Undervisningsmaterialer med LaTeX og PDF
Denne note forklarer hvordan man kan fremstille forelæsningsplancher
og undervisningsmateriale til elektronisk distribution (f.eks. på
Internettet) i PDF-format. Det forudsættes at man er vant til at
bruge tekstformateringssystemet LaTeX. De her omtalte
formateringsprogrammer findes på mange Unix- og Linux-installationer
(såsom dirac.dina.kvl.dk), og fås antagelig også til MS Windows.
PDF-dokumenter kan læses på alle platforme med Acrobat Reader
(normalt acroread under Unix), i modsætning til
Postscript-dokumenter, eller dokumenter lavet med MS Powerpoint, MS
Word, Presentations, Wordperfect og lignende. Hvis PDF-dokumenterne
er lavet fornuftigt kan de desuden være meget mere kompakte, og dermed
hurtigere at hjemtage via modem-forbindelser.
Undervisningsnoter i PDF
Latex-dokumenter bør formateres med et Postscript-skriftsnit såsom
Times, ikke standard-skriftsnittet Computer Modern, for at give
kompakte og pæne PDF-filer. For perfektionister har Morten Larsen
lavet en vejledning
i brugen af MathTime skriftsnittene, hvis matematiksymboler er
specielt tilpasset de sædvanlige Postscript-skriftsnit. MathTime er
installeret her på IMF KVL; det er ikke nødvendigt, men giver et
pænere resultat.
- Dokumentet bør altså starte på denne måde:
\documentclass[a4paper]{article}
\usepackage{isolatin1,pslatex,fullpage}
\usepackage[T1]{fontenc}
- Dokumentet formateres med Latex, konverteres til Postscript, og
derefter til PDF:
latex dokument.tex
dvips -ta4 dokument -o
ps2pdf -sPAPERSIZE=a4 dokument.ps
Herefter har man en fil dokument.pdf som kan lægges på
nettet, hvor den kan læses med Acrobat Reader. Parameteren
-sPAPERSIZE=a4 kan undværes på mine maskiner, men der findes
installationer hvor den ikke kan.
Forelæsningsplancher med LaTeX og seminar.cls
Plancher kan formateres med pakken seminar:
- Dokumentklassen skal være seminar. Vi bruger A4-papir
her i landet, og jeg foretrækker plancher der ligger ned (specielt i
lavloftede lokaler hvor folk ikke kan se nedre halvdel af planchen):
\documentclass[a4,landscape]{seminar}
\pagestyle{pskursus} % sideformat (se nedenfor)
\newcommand{\lecture}{7} % forelæsningnummer (se nedenfor)
- Man kan lave en konfigurationsfil seminar.con som man
lægger i samme katalog som sine plancher. Jeg bruger noget i denne
stil, blandt andet til at definere sideformatet pskursus, så
der kommer sidenumre af formen Side 7-2 (dvs forelæsning 7
planche 2) på alle plancher:
\newcommand{\kursus}{Programmering 1999}
\usepackage{semhelv} % Skriftsnit er Helvetica (sans serif)
\usepackage{isolatin1} % Danske bogstaver
\newpagestyle{pskursus}{}{\kursus\hfill KVL\hfill Side \lecture-\thepage}
\newcommand{\luft}{\vspace{0.5cm}}
\newcommand{\head}[1]{\par{\bf #1}\par}
\setlength{\slidewidth}{25cm}
\setlength{\slideheight}{16.5cm}
\renewcommand{\slidetopmargin}{0.5cm}
\renewcommand{\slideframewidth}{2pt}
\slidesmag{3}
\endinput
- Dokumentet (f.eks. fore7.tex) formateres med LaTeX og
udskrives på plastic (f.eks. på printeren lp6, for alt i verden ikke i
duplex):
latex fore7.tex
dvips -f -ta4 -tlandscape fore7 | lpr -Plp6
- Plancherne pakkes med 4 plancher på 1 side og konverteres til PDF:
dvips -f -ta4 -tlandscape fore7 | psnup -r -c -4 -m0.5cm > fore7.ps
ps2pdf -sPAPERSIZE=a4 fore7.ps
Herefter kan filen fore7.pdf lægges på nettet. Her er et eksempel.
Dynamiske forelæsningsplancher
Med LaTeX, PDF og Acrobat Reader kan man lave dynamiske forelæsninger
à la Presentations og Powerpoint:
Med disse systemer kan man lave meget flotte ting, men jeg bruger
dem ikke selv (endnu?). Jeg foretrækker at det der står på de
studerendes (sort/hvide) papirudskrift er præcis hvad de ser på
skærmen.
Figurer i PDF-dokumenter
Figurer bør laves i Postscript; de bliver typisk væsentligt
komprimeret ved den efterfølgende konvertering til PDF. En fordel ved
Postscript-figurer er at de normalt kan skaleres ved indsætning i
Latex-dokumentet uden skade på kvaliteten (tekster bliver i de kasser
de skal være i, osv).
- Fremstilling af tegninger: hertil synes xfig at virke
fornuftigt. Eksporter figuren i Encapsulated Postscript (eps). Adobe
Illustrator og Corel Draw rapporteres også at være virkelig gode til
dette formål.
- Fremstilling af grafer: programmet gnuplot kan tegne
grafer ud fra filer med eksperimentelle data, og kan tegne
funktionsgrafer mv. Eksporter grafen i Postscript. Maple er godt til
avanceret funktionstegning, og kan producere Postscript.
- Fremstilling af skærmbilleder fra andre programmer:
- Unix/Linux: brug xv kommando Ctrl+G til at `grabbe'
et vindue, og gem i Postscript-format (f.eks. greyscale, 8 bit,
compressed).
- MS Windows: Tryk Alt+PrintScreen for at kopiere et enkelt vindue
til udklipsholder, eller PrintScreen for at kopiere hele skærmen.
Åben MS Paint og indsæt (Ctrl+V) udklippet der. Rediger og gem som
bitmap (.bmp-fil), der overføres til Linux, hvor xv kommando
Ctrl+S kan bruges til at konvertere til Postscript-format.
For at indsætte en Postscript-figur i et Latex-dokument kan man
bruge følgende (der er formentlig 117 andre måder):
PDF-dokumenter med hyper-referencer
Et PDF-dokument kan indeholde hyper-referencer, altså klikbare
henvisninger (links) til andre dele af samme dokument, eller andre
dokumenter på WWW.
- Indsæt følgende efter alle andre forekomster af
\usepackage:
\usepackage[dvips,colorlinks]{hyperref}
Dette giver farvede hyper-referencer i dokumentet, hvilket ser godt ud
på skærmen, men dårligt på en sort-hvid laserskriver. Fjern altså
option colorlinks når du skal lave noget der primært er til
papir.
- Formater dokumentet med latex, konverter til Postscript
inklusive hyper-referencer (bemærk option -z til
dvips) og derefter til PDF:
latex dokument.tex
dvips -ta4 -z dokument -o
ps2pdf dokument.ps
Alle afsnits- og sidehenvisninger (inklusive et eventuelt indeks) samt
hele indholdsfortegnelsen bliver automatisk til hyper-referencer.
En web-reference (URL) skal indsættes med en kommando i stil med
\url{http://www.itu.dk/people/sestoft/noter.html} for at blive
til en hyper-reference.
Der er utallige andre muligheder med pakken hyperref; dem
har jeg aldrig brugt.
PDF-dokumenter med og uden hyper-referencer
Det er nyttigt at kunne formatere det samme materiale (noter) både i
en version med farvede hyper-referencer (til at læse på skærmen), og i
sort-hvid (til udskrift på papir og fotokopiering). Farvet tekst
gengives dårligt i sort-hvid kopi, og sort-hvid udgaven fylder kun det
halve.
Det kan gøres på denne måde:
- Inkludér disse kommandoer i LaTeX-dokumentet:
\newif\ifhyperref
\ifx\hyperref\undefined
\hyperreffalse
\else
\hyperreftrue
\fi
\ifhyperref
% Hyperlink version: translate with dvips -z and ps2pdf
% For interactive color output devices (i.e. computer displays):
\usepackage[dvips,colorlinks]{hyperref}
\else
% For passive black and white output devices (i.e. printers):
\usepackage{hyperref}
\fi
- Formater dokumentet med farvede hyper-referencer, konverter til
Postscript, konverter til PDF, for at få hyperdokument.pdf i
farver:
latex '\def\hyperref{} \input{dokument.tex}'
dvips -ta4 -z dokument -o hyperdokument
ps2pdf hyperdokument.ps
- Formater samme dokument til sort-hvid udskrift, konverter til
Postscript, og konverter til PDF, for at få
papirdokument.pdf i sort-hvid:
latex '\input{dokument.tex}'
dvips -ta4 dokument -o papirdokument
ps2pdf papirdokument.ps
Formentlig kan det også gøres smartere, jeg ved blot ikke hvordan.
Andre skriftsnit end Times
Standardskriftsnittet er Times Roman når man benytter Postscript (som
angivet med \usepackage[T1]{fontenc}
).
Man kan vælge et andet skriftsnit, f.eks. New Century Schoolbook,
ved at benytte en kommando af formen:
\usepackage{newcent}
De andre valgmuligheder kan vælges på lignende vis:
Package | Description |
avant | AvantGarde font as default
sans |
avantgar | ITC Avant Garde |
bookman | Bookman font as default
roman |
chancery | Zapf Chancery font as default
roman |
charter | default roman |
courier | default ttdefault |
helvet | Helvetica font as default
sans |
helvetic | Helvetica-Oblique font as
default sans |
ncntrsbk | NewCenturySchlbk-Roman |
newcent | NewCenturySchoolbook font as
default roman |
palatcm | Palatino + Computer Modern math
fonts |
palatino | Palatino font as default
roman |
pifont | Pi font support (special
characters) |
times | Times font as default
roman |
utopia | Utopia font as default roman
|
zapfchan | ITC Zapf Chancery as default
roman |
Denne tabel er fra en webside om Latex
og skriftsnit hos Department of Engineering, University of
Cambridge.
Tak
Gode kolleger (Niels Hallenberg, Ken Friis Larsen, Morten Larsen,
Jesper Møller, Lars Otto, Poul Thyregod, Anders Nielsen) har bidraget
med rettelser, tip, og forslag til forbedringer.
Peter Sestoft (sestoft@itu.dk) 2000-09-08,
2005-10-20