Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Programmeren in LATEX Sjoerd Timmer
Jeroen Leeuwestein TEXniCie
4 mei 2010
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Inhoud
1
Inleiding
2
Eigen commando’s
3
Variabelen
4
Testen en herhalen
5
Commando’s vervangen
6
Samenvatting
Testen en herhalen
Commando’s vervangen
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Commando’s
Een commando roep je aan als: \commando[optioneel argument]{andere}{argumenten} Een commando kun je ook zelf defini¨eren: \newcommand{hnaami}[haantal argumenteni]{hdefinitiei} In de definitie kun je argumenten invoegen met #1, #2, #3, etc...
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Commando’s
Een commando roep je aan als: \commando[optioneel argument]{andere}{argumenten} Een commando kun je ook zelf defini¨eren: \newcommand{hnaami}[haantal argumenteni]{hdefinitiei} In de definitie kun je argumenten invoegen met #1, #2, #3, etc...
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Voorbeeld
Je maakt een commando met: \newcommand{\plaatje}[3]{ \begin{figure} \includegraphics{#1} \label{#2} \caption{#3} \end{figure} } En vanaf dan kun je een figuur invoegen met: \plaatje{fig.png}{label:fig}{Onderschrift}
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Voorbeeld
Je maakt een commando met: \newcommand{\plaatje}[3]{ \begin{figure} \includegraphics{#1} \label{#2} \caption{#3} \end{figure} } En vanaf dan kun je een figuur invoegen met: \plaatje{fig.png}{label:fig}{Onderschrift}
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Environments
Environments kun je ook zelf maken: \newenvironment{naam}[haantal argumenteni] {hcode die aan het begin wordt uitgevoerdi} {hcode die aan het einde wordt uitgevoerdi} De argumenten van een environment staan achter \begin{naam}
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Environments
Environments kun je ook zelf maken: \newenvironment{naam}[haantal argumenteni] {hcode die aan het begin wordt uitgevoerdi} {hcode die aan het einde wordt uitgevoerdi} De argumenten van een environment staan achter \begin{naam}
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
variabelen in LATEX
LATEX kent drie soorten variabelen: counters Voor gehele getallen (zoals pagina nummers) lengths Voor afstanden (zoals paginabreedte) booleans Kan true of false zijn
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Counters
Een aantal counters worden door LATEX vanzelf Dit zijn: part paragraph figure chapter subparagraph table section page footnote subsection equation mpfootnote subsubsection
bijgehouden. enumi enumii enumiii enumiv
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Counters gebruiken De waarde van een counter kun je in tekst in een document opnemen in verschillende formats: \arabic 1 2 3 4
\roman i ii iii iv
\Roman I II III IV
\alph a b c d
\Alph A B C D
Bijvoorbeeld: Paginanummers worden standaard geprint met \arabic{page} het \newcounter-commando maakt ook een \thehcounteri commando aan. Dat gebruikt een standaard weergave. Je kunt dus ook \thepage en \thechapter gebruiken.
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Counters gebruiken De waarde van een counter kun je in tekst in een document opnemen in verschillende formats: \arabic 1 2 3 4
\roman i ii iii iv
\Roman I II III IV
\alph a b c d
\Alph A B C D
Bijvoorbeeld: Paginanummers worden standaard geprint met \arabic{page} het \newcounter-commando maakt ook een \thehcounteri commando aan. Dat gebruikt een standaard weergave. Je kunt dus ook \thepage en \thechapter gebruiken.
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Counters gebruiken De waarde van een counter kun je in tekst in een document opnemen in verschillende formats: \arabic 1 2 3 4
\roman i ii iii iv
\Roman I II III IV
\alph a b c d
\Alph A B C D
Bijvoorbeeld: Paginanummers worden standaard geprint met \arabic{page} het \newcounter-commando maakt ook een \thehcounteri commando aan. Dat gebruikt een standaard weergave. Je kunt dus ook \thepage en \thechapter gebruiken.
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Eigen counters
Counters kun je zelf maken en waardes geven met: \newcounter{hcounternaami} \setcounter{hcounternaami}{hwaardei} \addtocounter{hcounternaami}{hwaardei} \stepcounter{hcounternaami} Bijvoorbeeld: \newcounter{mijnteller} \setcounter{mijnteller}{9} \Roman{mijnteller} lever nu IX op
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Eigen counters
Counters kun je zelf maken en waardes geven met: \newcounter{hcounternaami} \setcounter{hcounternaami}{hwaardei} \addtocounter{hcounternaami}{hwaardei} \stepcounter{hcounternaami} Bijvoorbeeld: \newcounter{mijnteller} \setcounter{mijnteller}{9} \Roman{mijnteller} lever nu IX op
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Lengths
Lengths zijn net als counters, maar ze hebben een eenheid en een backslash: \newlength{\hnaami} \setlength{\hnaami}{\hlengtei} Bijvoorbeeld: \newlength{\mijnlengte} \setlength{\mijnlengte}{185cm} Lengths kun je gewoon gebruiken door \mijnlengte te typen. LATEX heeft ook een aantal lengths voorgedefini¨eerd zoals \textwidth en \paperwidth
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Lengths
Lengths zijn net als counters, maar ze hebben een eenheid en een backslash: \newlength{\hnaami} \setlength{\hnaami}{\hlengtei} Bijvoorbeeld: \newlength{\mijnlengte} \setlength{\mijnlengte}{185cm} Lengths kun je gewoon gebruiken door \mijnlengte te typen. LATEX heeft ook een aantal lengths voorgedefini¨eerd zoals \textwidth en \paperwidth
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Lengths
Lengths zijn net als counters, maar ze hebben een eenheid en een backslash: \newlength{\hnaami} \setlength{\hnaami}{\hlengtei} Bijvoorbeeld: \newlength{\mijnlengte} \setlength{\mijnlengte}{185cm} Lengths kun je gewoon gebruiken door \mijnlengte te typen. LATEX heeft ook een aantal lengths voorgedefini¨eerd zoals \textwidth en \paperwidth
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Lengths
Lengths zijn net als counters, maar ze hebben een eenheid en een backslash: \newlength{\hnaami} \setlength{\hnaami}{\hlengtei} Bijvoorbeeld: \newlength{\mijnlengte} \setlength{\mijnlengte}{185cm} Lengths kun je gewoon gebruiken door \mijnlengte te typen. LATEX heeft ook een aantal lengths voorgedefini¨eerd zoals \textwidth en \paperwidth
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Booleans
Booleans kun je alsvolgt gebruiken: \newboolean{naam} \setboolean{naam}{waarde} De waarde vraag je op met \boolean{naam}
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Het ifthen-package
Het ifthen package levert twee commando’s die met tests werken: \ifthenelse{htesti}{hthen-codei}{helse-codei} \whiledo{htesti}{hdo-codei} Bijvoorbeeld: \ifthenelse{1 < 2}{Klopt}{Dit gebeurt nooit!} Dit levert altijd de tekst Klopt
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Het ifthen-package
Het ifthen package levert twee commando’s die met tests werken: \ifthenelse{htesti}{hthen-codei}{helse-codei} \whiledo{htesti}{hdo-codei} Bijvoorbeeld: \ifthenelse{1 < 2}{Klopt}{Dit gebeurt nooit!} Dit levert altijd de tekst Klopt
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Verschillende soorten tests
De htesti in \ifthenelse of \whiledo kan nog verschillende dingen vergelijken: integers(gehele getallen) en counters strings(tekst) lengths booleans
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Integers vergelijken
Je kunt gehele getallen vergelijken met: < kleiner dan > groter dan = gelijk De waarde van een counter kun je ook vergelijken door \value{counter} te gebruiken.
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Integers vergelijken(voorbeeld)
\newcounter{teller} \setcounter{teller}{1} \whiledo{\value{teller}< 5}{ \clearpage \stepcounter } Dit voert vier keer het commando \clearpage uit (dus drie witte pagina’s)
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Tekst vergelijken
Met het commando \equal{tekst1}\tekst2 kun je twee teksten vergelijken. Als er LATEX-commando’s in de argumenten zitten worden die eerst uitgevoerd. Je kunt bijvoorbeeld de datum testen met: \ifthenelse{\equal{\today}{Mei 4, 2010}} {Vandaag is de presentatie!} {Helaas, geen presentatie} Let op: \today is de dag waarop je pdflatex voor het laatst uitgevoerd hebt.
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Andere testen
Je kunt lengths ook vergelijken: \lengthtest{\textwidth<5cm} Je kunt ook de waarde van een boolean gebruiken: \ifthenelse{\boolean{naam}}{Doe iets}{Doe iets anders}
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Andere testen
Je kunt lengths ook vergelijken: \lengthtest{\textwidth<5cm} Je kunt ook de waarde van een boolean gebruiken: \ifthenelse{\boolean{naam}}{Doe iets}{Doe iets anders}
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Samengestelde tests
Je kunt de logische operatoren \and, \or, \not, \( en \) gebruiken: \ifthenelse {1<2 \and\( 2>4\or3<4 \)} {1} {0} Als je het package calc laadt kun je ook +, −, × en / gebruiken Let op: het tweede deel van een deling of vermenigvuldiging moet een integer zijn
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Samengestelde tests
Je kunt de logische operatoren \and, \or, \not, \( en \) gebruiken: \ifthenelse {1<2 \and\( 2>4\or3<4 \)} {1} {0} Als je het package calc laadt kun je ook +, −, × en / gebruiken Let op: het tweede deel van een deling of vermenigvuldiging moet een integer zijn
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Voorbeeld: Fibonacci
Stel, je bent wiskundige. Je moet een paper schrijven over Fibonacci getallen. Je hebt heel vaak de eerste paar getallen nodig, maar je bent te lui om ze zelf steeds in te typen. Bovendien ben je bang dat je dan typfouten maakt. Zou je daar een LATEXcommando voor kunnen schrijven?
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Voorbeeld: Fibonacci
Stel, je bent wiskundige. Je moet een paper schrijven over Fibonacci getallen. Je hebt heel vaak de eerste paar getallen nodig, maar je bent te lui om ze zelf steeds in te typen. Bovendien ben je bang dat je dan typfouten maakt. Zou je daar een LATEXcommando voor kunnen schrijven?
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Fibonacci: Variabelen maken
\documentclass{article} \usepackage{ifthen,calc} \newcounter{n} \newcounter{nmineen} \newcounter{nmintwee} \newcounter{aantal}
Commando’s vervangen
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Fibonacci: Het echte werk \newcommand\fib[1]{ \setcounter{nmineen}{1} \setcounter{nmintwee}{1} \setcounter{aantal}{1} 1 \whiledo{\value{aantal}<#1}{ \stepcounter{aantal} \setcounter{n}{\value{nmineen}+\value{nmintwee}} \setcounter{nmintwee}{\value{nmineen}} \setcounter{nmineen}{\value{n}} , \arabic{nmintwee} } }
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Fibonacci: Het echte werk \newcommand\fib[1]{% \setcounter{nmineen}{1}% \setcounter{nmintwee}{1}% \setcounter{aantal}{1}% 1% \whiledo{\value{aantal}<#1}{% \stepcounter{aantal}% \setcounter{n}{\value{nmineen}+\value{nmintwee}}% \setcounter{nmintwee}{\value{nmineen}}% \setcounter{nmineen}{\value{n}}% , \arabic{nmintwee}% }% }%
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Fibonacci: gebruik
\begin{document} \fib{10} \end{document} Dit levert: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
Commando’s vervangen
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Commando’s vervangen
Stel dat je in een deel van je document sections een andere opmaak wilt geven. Een eerste poging zou kunnen zijn: \newcommand{\oldsection}[1]{\section{#1}} \renewcommand{\section}[1]{\oldsection{\emph{#1}}} LATEX raakt dan echter in een oneindige lus!
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Commando’s vervangen
Stel dat je in een deel van je document sections een andere opmaak wilt geven. Een eerste poging zou kunnen zijn: \newcommand{\oldsection}[1]{\section{#1}} \renewcommand{\section}[1]{\oldsection{\emph{#1}}} LATEX raakt dan echter in een oneindige lus!
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Commando’s vervangen
Stel dat je in een deel van je document sections een andere opmaak wilt geven. Een eerste poging zou kunnen zijn: \newcommand{\oldsection}[1]{\section{#1}} \renewcommand{\section}[1]{\oldsection{\emph{#1}}} LATEX raakt dan echter in een oneindige lus!
Samenvatting
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Het \let-commando
Met \let maak je een letterlijke kopie van een ander commando: \let\oldsection\section \renewcommand{\section}[1]{\oldsection{\emph{#1}}} Nu kun je aan het einde ook de oude stijl terugzetten met: \let\section\oldsection
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Commando’s vervangen
Samenvatting
Het \let-commando
Met \let maak je een letterlijke kopie van een ander commando: \let\oldsection\section \renewcommand{\section}[1]{\oldsection{\emph{#1}}} Nu kun je aan het einde ook de oude stijl terugzetten met: \let\section\oldsection
Inleiding
Eigen commando’s
Variabelen
Testen en herhalen
Samenvatting
Eigen commando’s en environments Het ifthen-package \ifthenelse \whiledo Verschillende soorten tests
Het calc-package Het gebruik van \let
Commando’s vervangen
Samenvatting