Thread View: pl.comp.dtp.tex
8 messages
8 total messages
Started by Łukasz
Sat, 07 Nov 2009 10:23
Zmienne w LaTeXu
Author: Łukasz
Date: Sat, 07 Nov 2009 10:23
Date: Sat, 07 Nov 2009 10:23
9 lines
1629 bytes
1629 bytes
Witam! Czy można w LaTeXu zadeklarować zmienne analogicznie do innych języków programowania? Chodzi mi o to, żebym mógł w jednym miejscu zadeklarować np. odległości z parshape'a i nie klepać tego samego tyle razy. Podobnie, czy można zastosować w pliku texowym pętle? pozdrawiam, Łukasz
Re: Zmienne w LaTeXu
Author: Piotr Sawinski
Date: Sat, 07 Nov 2009 11:42
Date: Sat, 07 Nov 2009 11:42
37 lines
2053 bytes
2053 bytes
Łukasz wrote:
> Witam!
>
> Czy można w LaTeXu zadeklarować zmienne analogicznie do innych języków
> programowania? Chodzi mi o to, żebym mógł w jednym miejscu
> zadeklarować np. odległości z parshape'a i nie klepać tego samego tyle
> razy. Podobnie, czy można zastosować w pliku texowym pętle?
>
> pozdrawiam,
> Łukasz
Dzien dobry,
mozna deklarowac zmienne i ponoc mozna robic petle. Pisze ponoc, gdyz za
moment dam tylko przyklad zaczerpniety z ksiazki.
1. Zmienne, np:
\newcommand{\mojparagraph}{\parshape4 1pt 150pt 3pt 250pt 5pt 350pt 1pt
150pt}
i potem wystarczy tylko
\mojparagraph
2. Petle. Przyklad zywcem zaczerpniety z ksiazki Lamporta, sluzy do
wyznaczania najwiekszego wspolnego dzielnika dwoch liczb. Korzysta z
pakietu ifthen:
\newcounter{ca} \newcounter{cb}
\newcommand{\printgcd}[2]{%
\setcounter{ca}{#1}\setcounter{cb}{#2}%
gcd(#1,#2) =
\whiledo{\not \(\value{ca}=\value{cb}\)}%
{\ifthenelse{\value{ca}>\value{cb}}%
{\addtocounter{ca}{-\value{cb}}}%
{\addtocounter{cb}{-\value{ca}}}%
gcd(\arabic{ca},\arabic{cb}) = }%
\arabic{ca}.}
i potem
\printgcd{128}{16}
Piotr Sawinski
Re: Zmienne w LaTeXu
Author: Jarosław Sokołowski
Date: Sat, 07 Nov 2009 13:20
Date: Sat, 07 Nov 2009 13:20
25 lines
1313 bytes
1313 bytes
Pan Łukasz napisał:
> Czy można w LaTeXu zadeklarować zmienne analogicznie do innych
> języków programowania? Chodzi mi o to, żebym mógł w jednym miejscu
> zadeklarować np. odległości z parshape'a i nie klepać tego samego
> tyle razy.
\newcount\licznik
\newdimen\miara
\newskip\klej
\licznik=7
\miara=17pt
\klej=20pt plus 5pt minus 3pt
> Podobnie, czy można zastosować w pliku texowym pętle?
\newcount\n \n=0
\loop\ifnum\n<44
\advance \n by 1
\leftline{A imię jego \the\n}
\repeat
--
Jarek
Re: Zmienne w LaTeXu
Author: Jarosław Sokołowski
Date: Sat, 07 Nov 2009 13:22
Date: Sat, 07 Nov 2009 13:22
16 lines
1312 bytes
1312 bytes
Pan Piotr Sawinski napisał:
> 1. Zmienne, np:
> \newcommand{\mojparagraph}{\parshape4 1pt 150pt 3pt 250pt 5pt 350pt 1pt
> 150pt}
> i potem wystarczy tylko
> \mojparagraph
Jeśli uznać definicję (makro) za szczególny rodzaj zmiennej, która może
jako wartości przybierać fragmenty kodu, to racja. Ale w TeXu są też
"normalne" zmienne -- liczniki (zmienne całkowite), miary (wyrażone
w dowolnych jednostkach odległości) i "mniej normalne" -- kleje, pudełka
itp.
--
Jarek
Re: Zmienne w LaTeXu
Author: AMX
Date: Sun, 08 Nov 2009 00:14
Date: Sun, 08 Nov 2009 00:14
35 lines
1483 bytes
1483 bytes
On Sat, 7 Nov 2009 13:20:27 +0000 (UTC),
Jarosław Sokołowski <jaros@lasek.waw.pl> wrote:
> \newcount\licznik
> \newdimen\miara
> \newskip\klej
>
> \licznik=7
> \miara=17pt
> \klej=20pt plus 5pt minus 3pt
>
>> Podobnie, czy można zastosować w pliku texowym pętle?
>
> \newcount\n \n=0
> \loop\ifnum\n<44
> \advance \n by 1
> \leftline{A imię jego \the\n}
> \repeat
>
Pięknie. Tak idiotoodpornie napisane, że w końcu
zrozumiałem. W takim razie czy mogę jeszcze poprosić o
wyjaśnienie:
1. operator porównania \ifnum\n==44?
2. warunek dla innych wielkości niż liczniki
3. czym się różni \let od \def?
AMX
--
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Zmienne w LaTeXu
Author: Jarosław Sokołowski
Date: Sun, 08 Nov 2009 11:28
Date: Sun, 08 Nov 2009 11:28
54 lines
1922 bytes
1922 bytes
AMX napisało:
>> \newcount\licznik
>> \newdimen\miara
>> \newskip\klej
>>
>> \licznik=7
>> \miara=17pt
>> \klej=20pt plus 5pt minus 3pt
>>
>>> Podobnie, czy można zastosować w pliku texowym pętle?
>>
>> \newcount\n \n=0
>> \loop\ifnum\n<44
>> \advance \n by 1
>> \leftline{A imię jego \the\n}
>> \repeat
>
> Pięknie. Tak idiotoodpornie napisane, że w końcu
> zrozumiałem. W takim razie czy mogę jeszcze poprosić o
> wyjaśnienie:
>
> 1. operator porównania \ifnum\n==44?
\ifnum\count0=2 to jest strona druga \else to nie jest strona druga \fi
> 2. warunek dla innych wielkości niż liczniki
%% (1)
\errmessage{Ora et labora, }
\loop\iftrue\errmessage{et labora, }\repeat
\errmessage{ad mortum defecatum.}
%% (2)
\newdimen\w \w=0pt
\newcount\n \n=0
\loop\ifnum\w<\hsize
\setbox0\hbox{[\the\n]}%
\advance \n by 1
\advance \w by \wd0
\noindent\leavevmode
\ifnum\w<\hsize\box0\fi
\repeat
> 3. czym się różni \let od \def?
\def\ziemniaki{{\bf podziemny skarb}}
\let\kartofle\ziemniaki
--
Jarek
Re: Zmienne w LaTeXu
Author: Piotr Sawinski
Date: Sun, 08 Nov 2009 14:04
Date: Sun, 08 Nov 2009 14:04
6 lines
1189 bytes
1189 bytes
Jarosław Sokołowski wrote:
> \errmessage{Ora et labora, }
> \loop\iftrue\errmessage{et labora, }\repeat
> \errmessage{ad mortum defecatum.}
Czytajac malo co sie nie posikalem:)
Re: Zmienne w LaTeXu
Author: Jarosław Sokołowski
Date: Sun, 08 Nov 2009 14:16
Date: Sun, 08 Nov 2009 14:16
12 lines
1191 bytes
1191 bytes
Pan Piotr Sawinski napisał:
>> \errmessage{Ora et labora, }
>> \loop\iftrue\errmessage{et labora, }\repeat
>> \errmessage{ad mortum defecatum.}
>
> Czytajac malo co sie nie posikalem:)
Dobrze, że nie to drugie, co jest napisane wyżej.
--
Jarek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads