Programmeren in L A TEX



Vergelijkbare documenten
L A TEX-workshop (Handleiding)

L A TEX-cursus week 6 (Handleiding)

LATEX Cursus voor beginners

Samenvatting L A TEX-cursus

L A TEX voor beginners

L A TEX-cursus 4 e sessie: verdieping

MiKTEX en L A TEX Introductie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

L A TEX cursus sessie 5: Classes & packages

L A TEXcursus 5 e sessie: plaatjes en afbeeldingen

Frederik De Schrijver & Lennert Acke. 1 december Inleiding tot LATEX

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Programmeren met Arduino-software

Vakgroep CW KAHO Sint-Lieven

Inleiding tot LaTeX. Peter Dedecker 30 november 2006

Zelftest Inleiding Programmeren

VBA voor Doe het Zelvers deel 20

PYTHON REEKS 1: BASICS. Mathias Polfliet

MiKT E X en L A T E X Introductie

BEGINNER JAVA Inhoudsopgave

De Notulen-class. A Eskwadraat TEXniCie hektex@a-eskwadraat.nl. 18 maart 2015

Variabelen en statements in ActionScript

extra oefening algoritmiek - antwoorden

Hoofdstuk 5: Functies voor getallen en teksten

Modelleren en Programmeren

OEFENINGEN PYTHON REEKS 1

Verzamelingen, Lijsten, Functioneel Programmeren

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

PHP herhaalt: for en while

II. ZELFGEDEFINIEERDE FUNCTIES

L A TEX ESA 2007/2008. Eelco Schatborn 6 september 2007

VAN HET PROGRAMMEREN. Inleiding

L A TEX-cursus 5 e sessie: scriptie in L A TEX

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Thinking of Development

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Haskell: programmeren in een luie, puur functionele taal

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

OEFENINGEN PYTHON REEKS 1

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Hoofdstuk 2: Werken met variabelen

OEFENINGEN PYTHON REEKS 1

L A TEX-workshop (Handleiding)

Programmeren in Java les 3

Blog-Het gebruik van variabelen in Excel VBA

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Inleiding Latex als wiskundige tekstverwerker

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Informatica: C# WPO 11

Een introductie tot L A TEX

Het omzetten van een ER-diagram naar SQL

Informatica: C# WPO 2

Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende beslissingen. Je kan daarbij keuzestructuren gebruiken.

ACM Student Chapter Pieter Belmans L A TEX

L A TEX-workshop (Handleiding)

PLAATJES IN L A TEX WI1605

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014

Waarom LaTeX? en niet Word of zoiets... Wilfried Van Hirtum. 30 augustus 2009

Javascript oefenblad 1

Verzamelingen, Lijsten, Functioneel Programmeren

6.2 VBA Syntax. Inleiding Visual Basic

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Een korte samenvatting van enkele FORTRAN opdrachten

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

Inleiding logica Inleveropgave 3


Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Verzamelingen, Lijsten, Functioneel Programmeren

RCL Arduino Workshop 1

SQL datadefinitietaal

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

Hoofdstuk 7: Werken met arrays

Programmeren met Python

[8] De ene 1 is de andere niet

Plaatjes in LaTeX/MiKTeX

Lab Webdesign: Javascript 3 maart 2008

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Informatie. Voorbeeld. Voorbeeld: toegangsprijs

VBA voor Doe het Zelvers Deel 7

oefening JavaScript - antwoorden

Modelleren en Programmeren

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Inleiding tot programmeren: Javascript

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Transcriptie:

Programmeren in L A TEX Sjoerd Timmer Jeroen Leeuwestein TEXniCie 4 mei 2010

Inhoud 1 Inleiding 2 Eigen commando s 3 Variabelen 4 Testen en herhalen 5 Commando s vervangen 6 Samenvatting

Commando s Een commando roep je aan als: \commando[optioneel argument]{andere}{argumenten} Een commando kun je ook zelf definiëren: \newcommand{ naam }[ aantal argumenten ]{ definitie } In de definitie kun je argumenten invoegen met #1, #2, #3, etc...

Commando s Een commando roep je aan als: \commando[optioneel argument]{andere}{argumenten} Een commando kun je ook zelf definiëren: \newcommand{ naam }[ aantal argumenten ]{ definitie } In de definitie kun je argumenten invoegen met #1, #2, #3, etc...

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}

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}

Environments Environments kun je ook zelf maken: \newenvironment{naam}[ aantal argumenten ] { code die aan het begin wordt uitgevoerd } { code die aan het einde wordt uitgevoerd } De argumenten van een environment staan achter \begin{naam}

Environments Environments kun je ook zelf maken: \newenvironment{naam}[ aantal argumenten ] { code die aan het begin wordt uitgevoerd } { code die aan het einde wordt uitgevoerd } De argumenten van een environment staan achter \begin{naam}

variabelen in L A TEX L A TEX kent drie soorten variabelen: counters Voor gehele getallen (zoals pagina nummers) lengths Voor afstanden (zoals paginabreedte) booleans Kan true of false zijn

Counters Een aantal counters worden door L A TEX vanzelf bijgehouden. Dit zijn: part paragraph figure enumi chapter subparagraph table enumii section page footnote enumiii subsection equation mpfootnote enumiv subsubsection

Counters gebruiken De waarde van een counter kun je in tekst in een document opnemen in verschillende formats: \arabic \roman \Roman \alph \Alph 1 i I a A 2 ii II b B 3 iii III c C 4 iv IV d D Bijvoorbeeld: Paginanummers worden standaard geprint met \arabic{page} het \newcounter-commando maakt ook een \the counter commando aan. Dat gebruikt een standaard weergave. Je kunt dus ook \thepage en \thechapter gebruiken.

Counters gebruiken De waarde van een counter kun je in tekst in een document opnemen in verschillende formats: \arabic \roman \Roman \alph \Alph 1 i I a A 2 ii II b B 3 iii III c C 4 iv IV d D Bijvoorbeeld: Paginanummers worden standaard geprint met \arabic{page} het \newcounter-commando maakt ook een \the counter commando aan. Dat gebruikt een standaard weergave. Je kunt dus ook \thepage en \thechapter gebruiken.

Counters gebruiken De waarde van een counter kun je in tekst in een document opnemen in verschillende formats: \arabic \roman \Roman \alph \Alph 1 i I a A 2 ii II b B 3 iii III c C 4 iv IV d D Bijvoorbeeld: Paginanummers worden standaard geprint met \arabic{page} het \newcounter-commando maakt ook een \the counter commando aan. Dat gebruikt een standaard weergave. Je kunt dus ook \thepage en \thechapter gebruiken.

Eigen counters Counters kun je zelf maken en waardes geven met: \newcounter{ counternaam } \setcounter{ counternaam }{ waarde } \addtocounter{ counternaam }{ waarde } \stepcounter{ counternaam } Bijvoorbeeld: \newcounter{mijnteller} \setcounter{mijnteller}{9} \Roman{mijnteller} lever nu IX op

Eigen counters Counters kun je zelf maken en waardes geven met: \newcounter{ counternaam } \setcounter{ counternaam }{ waarde } \addtocounter{ counternaam }{ waarde } \stepcounter{ counternaam } Bijvoorbeeld: \newcounter{mijnteller} \setcounter{mijnteller}{9} \Roman{mijnteller} lever nu IX op

Lengths Lengths zijn net als counters, maar ze hebben een eenheid en een backslash: \newlength{\ naam } \setlength{\ naam }{\ lengte } Bijvoorbeeld: \newlength{\mijnlengte} \setlength{\mijnlengte}{185cm} Lengths kun je gewoon gebruiken door \mijnlengte te typen. L A TEX heeft ook een aantal lengths voorgedefiniëerd zoals \textwidth en \paperwidth

Lengths Lengths zijn net als counters, maar ze hebben een eenheid en een backslash: \newlength{\ naam } \setlength{\ naam }{\ lengte } Bijvoorbeeld: \newlength{\mijnlengte} \setlength{\mijnlengte}{185cm} Lengths kun je gewoon gebruiken door \mijnlengte te typen. L A TEX heeft ook een aantal lengths voorgedefiniëerd zoals \textwidth en \paperwidth

Lengths Lengths zijn net als counters, maar ze hebben een eenheid en een backslash: \newlength{\ naam } \setlength{\ naam }{\ lengte } Bijvoorbeeld: \newlength{\mijnlengte} \setlength{\mijnlengte}{185cm} Lengths kun je gewoon gebruiken door \mijnlengte te typen. L A TEX heeft ook een aantal lengths voorgedefiniëerd zoals \textwidth en \paperwidth

Lengths Lengths zijn net als counters, maar ze hebben een eenheid en een backslash: \newlength{\ naam } \setlength{\ naam }{\ lengte } Bijvoorbeeld: \newlength{\mijnlengte} \setlength{\mijnlengte}{185cm} Lengths kun je gewoon gebruiken door \mijnlengte te typen. L A TEX heeft ook een aantal lengths voorgedefiniëerd zoals \textwidth en \paperwidth

Booleans Booleans kun je alsvolgt gebruiken: \newboolean{naam} \setboolean{naam}{waarde} De waarde vraag je op met \boolean{naam}

Het ifthen-package Het ifthen package levert twee commando s die met tests werken: \ifthenelse{ test }{ then-code }{ else-code } \whiledo{ test }{ do-code } Bijvoorbeeld: \ifthenelse{1 < 2}{Klopt}{Dit gebeurt nooit!} Dit levert altijd de tekst Klopt

Het ifthen-package Het ifthen package levert twee commando s die met tests werken: \ifthenelse{ test }{ then-code }{ else-code } \whiledo{ test }{ do-code } Bijvoorbeeld: \ifthenelse{1 < 2}{Klopt}{Dit gebeurt nooit!} Dit levert altijd de tekst Klopt

Verschillende soorten tests De test in \ifthenelse of \whiledo kan nog verschillende dingen vergelijken: integers(gehele getallen) en counters strings(tekst) lengths booleans

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.

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)

Tekst vergelijken Met het commando \equal{tekst1}\tekst2 kun je twee teksten vergelijken. Als er L A TEX-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.

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}

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}

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

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

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 L A TEXcommando voor kunnen schrijven?

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 L A TEXcommando voor kunnen schrijven?

Fibonacci: Variabelen maken \documentclass{article} \usepackage{ifthen,calc} \newcounter{n} \newcounter{nmineen} \newcounter{nmintwee} \newcounter{aantal}

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} } }

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}% }% }%

Fibonacci: gebruik \begin{document} \fib{10} \end{document} Dit levert: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55

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}}} L A TEX raakt dan echter in een oneindige lus!

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}}} L A TEX raakt dan echter in een oneindige lus!

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}}} L A TEX raakt dan echter in een oneindige lus!

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

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

Samenvatting Eigen commando s en environments Het ifthen-package \ifthenelse \whiledo Verschillende soorten tests Het calc-package Het gebruik van \let