LaTeX für Lehrer

Sachverstand2 @ Geocities.com

18. Oktober 2005


Inhalt

1. Intro

Standard-Textprozessoren haben große Nachteile: Gelegentlich beobachten wir auch Vorteile:

Den ersten Vorteil erschlagen wir, indem wir pdf-Dateien erzeugen.

Ums Nachdenken bei den Bildern kommt man nicht so einfach herum, da muß man das entsprechende Kapitel dieses Tutorials lesen.

2. Paradigma

Textprozessoren verleiten den Benutzer, die zahlreichen vorhandenen Layout-Elemente auch zu benutzen. Die entstehenden Dateien werden deshalb schnell unübersichtlich.

LaTeX benutzt ein professionelles Paradigma:

Der geneigte Leser wird an dieser Stelle bemerken, daß Latex sich eher für längere Texte eignet - zB Unterrichtsvorbereitungen für ein komplettes Halbjahr, oder Bücher.

Arbeitsblätter unter LaTeX zu erstellen ist dagegen eine Strafe. Es gibt allerdings Mittel und Wege, sie (selbst unter windos) zu erstellen und anschließend unter Benutzung von Open-Source-Software nahtlos ins pdf-Dokument einzubinden.

3. Workstation

Zum Erstellen professioneller pdf-Dokumente braucht man: Vorbereitung: Von der CD booten, ''Workstation installieren'' anklicken, User ''nemo'' anlegen, Passwort nicht vergessen.

X einrichten: 800x600x256 Farben für 14''-Monitor, 1024x768x256 für 17''-Monitor.

Reboot, CD rausnehmen, fertig.

4. Das erste LaTeX-Dokument

Eine kommentierte Version hiervon und ein Screenshot findet sich im Anhang.


\documentclass [11pt] {article}

\usepackage {german}
\usepackage {umlaut}
\usepackage {palatino}
\usepackage {graphicx}
\usepackage {boxedminipage}
\usepackage [margin=14mm] {geometry}

\author {http://www.freewebs.com/gtslehrer}
\date   {\today}
\title  {Latex f"ur Lehrer - Test 1}

\pagestyle {headings}
\parindent 0.mm
\parskip=1mm
\fboxsep=5mm
\fboxrule=0.5mm

\newenvironment{lehr}{
  \begin{center}      \begin{boxedminipage}{\textwidth}
  \begin{bf}          \begin{large}
}{
  \end{large}         \end{bf}  
  \end{boxedminipage} \end{center}
}

\begin{document}
\maketitle
\tableofcontents

\section{Einleitung}
bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  
\section{Durchf"uhrung}
bla bla bla bla bla bla bla bla Ich fahre keinen Citro\"en. 

\begin{lehr}
  Referentielle Integrit"at ist...
\end{lehr}
  
\section{Zusammenfassung}
bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  
\end{document}

5. Dokumente erschaffen

Nach so viel Theorie wollen Sie sicher nun Ihre eigenen Dokumente erstellen.

Dazu brauchen Sie Ihren Satz Dateien (oder eine Datei mit allem drin - für den Anfang reicht das) und eine Kommandozeile.

5.1 tex

TeX von Donald Knuth ist der godfather des Dokumente-Erschaffens, aber es versteht kein LaTeX.

LaTeX ist allerdings ein Frontend zu TeX, und ist in TeX geschrieben. 1

5.2 latex

latex ist ein Programm, das eine Eingabedatei verlangt. Schreiben Sie also ein ganz kurzes test1.tex, und ''compilieren'' Sie es:

  latex test1                         # dabei kommt u.a. test.dvi heraus
  dvips -f test1.dvi > test1.ps       # konvertiert nach postscript
  ps2pdf test1.ps                     # erzeugt test1.pdf
  startx                              # startet X
  <klick>xterm                        # startet ein xterm
  xpdf test1.pdf                      # startet den pdf-viewer.

5.3 pdflatex

pdflatex ist wiederum ein Frontend für LaTeX.

  pdflatex test1                      # dabei kommt u.a. test.pdf heraus
  startx                              # startet X
  <klick>xterm                        # startet ein xterm
  xpdf test1.pdf                      # startet den pdf-viewer.

5.4 Es klappt nicht beim ersten Mal

... und wenn Sie es trotzdem, nach Stunden, schaffen, haben Sie jetzt etwas Schönes verdient. ZB einen Kaffee oder einen Spaziergang oder ... na Sie wissen schon was Ihnen gut tut.

6. Organisieren des Inputs

Wenn Sie mal Ihre Lieblings-Seitenränder herausgefunden haben, wollen Sie sie automatisch in allen Dokumenten einfügen.

Textdateien werden aber schnell unübersichtlich, deshalb rate ich Ihnen:


Dieses Dokument sieht bisher so aus:


% this is l4l.tex
\include{header1}

\title  {LaTeX f"ur Lehrer}

\include{header2}

\include{intro}
\include{paradigma}
\include{workstation}
\include{1stlatex}
\include{orga}

\include{anhang}
\end{document}



% this is header1.tex
\documentclass [11pt, a4paper] {article}

\usepackage {german,umlaut}
\usepackage {palatino}
%\renewcommand{\rmdefault}{phv}
\usepackage {graphicx}
\usepackage {boxedminipage}
\usepackage [margin=14mm] {geometry}

\pagestyle {headings}
\parindent 0.mm
\parskip=1mm
\fboxsep=5mm
\fboxrule=0.5mm

\newenvironment{lehr}{
  \begin{center}          \begin{boxedminipage}{\textwidth}
  \begin{bf}              \begin{large}
}{
  \end{large}             \end{bf}
  \end{boxedminipage}     \end{center}
}



% this is header2.tex
\author {http://www.freewebs.com/gtslehrer}
\date   {\today}

\begin{document}
\maketitle

\tableofcontents


Die Dateien werden durch include eingebunden.

Sie können auch input nehmen, aber dann müssen Sie das clearpage selbst hinschreiben.

Sie haben selbstverständlich schon gemerkt, daß alle Befehlsworte in LaTeX mit einem \ (Backslash) anfangen, und Kommentare mit einem Prozentzeichen.

7. Reservierte Zeichen und ihre Bedeutung

LaTeX hat folgende reservierte Zeichen:


  # $ % & ~ ^ _ \ { } $ < >

8. Tabellen

Eine Tabelle ist ein Float, d.h. sie ''fließt'' auf die nächste Seite, wenn sie auf die aktuelle nicht mehr paßt.

8.1 In Prosa


latex, hier kommt eine tabelle. 
  [
  genau hierher, 
  oder wenn das nicht geht, unten auf der seite, 
  oder wenn das nicht geht, oben auf der seite, 
  oder wenn das nicht geht, auf einer extra-seite
  ]
  die tabelle sieht so aus: {
    ein senkrechter Balken,
    eine zentrierte Spalte, so breit wie n"otig,
    ein senkrechter Balken,
    eine Spalte von halber \textwidth
  }{
    zun"achst eine horizontale linie
      erste zelle     
    & 
	    zweite zelle, da darf ich soviel text reinmachen wie ich will, LaTeX
  	  schafft das schon, notfalls bricht es den Text um. 
	  
  	  Ich darf sogar
	  
	    mehrere Abs"atze da hineinstecken und nat"urlich
  		
      $$ e^{Formeln} $$

    \hline \\

      dritte zelle
    &
      vierte zelle

    \hline \\

  }
  meine tabelle soll test-tabelle hei"sen. 
ende der tabelle

8.2 In LaTeX


\begin{table} [hbtp]                     % h here, b bottom, t top, p page
  \begin{tabular}{|c|p{0.5\textwidth}}
    \hline
      erste zelle     
    & 
	    zweite zelle, da darf ich soviel text reinmachen wie ich will, LaTeX
  	  schafft das schon, notfalls bricht es den Text um. 
	  
  	  Ich darf sogar
	  
	    mehrere Abs"atze da hineinstecken und nat"urlich
  		
      $$ e^{Formeln} $$

    \\ \hline 

      dritte zelle
    &
      vierte zelle

    \\ \hline 

	\end{tabular}

	\caption{test-tabelle}

\end{table}

8.3 In real

Siehe test-tabelle.


Tabelle: test-tabelle
erste zelle zweite zelle, da darf ich soviel text reinmachen wie ich will, LaTeX schafft das schon, notfalls bricht es den Text um.

Ich darf sogar

mehrere Absätze da hineinstecken und natürlich


\begin{displaymath}e^{Formeln} \end{displaymath}

dritte zelle vierte zelle


Der rechte senkrechte Strich fehlt, weil ich ihn im tabular nicht bestellt habe.

Das ''Siehe test-tabelle'' sieht merkwürdig aus. In LaTeX weiß ich aber nicht, ob die Tabelle auf derselben Seite landen wird.

Also darf ich nie schreiben: ''Die folgende Tabelle zeigt...'', sondern muß immer schreiben: ''Tabelle (caption) zeigt...''.

9. Listen

Selbsterklärend.


\begin{itemize}                       % eine aufz"ahlung
  \item erster item
  \item zweiter item
	
    Neue Abs"atze werden korrekt einger"uckt.
  \item noch ein item
  \begin{enumerate}                    % eine Numerierung, geschachtelt
    \item erster numerierungseintrag  % in die aufz"ahlung
    \item zweiter eintrag
    \item dritter
		
      auch dieser Absatz wird korrekt einger"uckt.
  \end{enumerate}
  \item der letzte eintrag der aufz"ahlung.
\end{itemize}


10. Bilder

Ich nehme im folgenden an, daß Sie sich für pdf-Dateien entschieden haben.

10.1 Konvertieren von gif und jpeg nach.ps

10.1.1 Auf der Kommandozeile


  giftopnm filename.gif > filename.ppm    # erzeugt filename.ppm
  pnmtopng filename.ppm > filename.png    # gotcha!


  djpeg -pnm filename.jpeg                # erzeugt filename.ppm
                # oder filename.pgm, wenn's ein graustufenbild war
  pnmtopng   filename.ppm > filename.png  # gotcha!

10.1.2 Mit ImageMagick

Öffnen Sie das fragliche Bild unter X mit display filename.whatever und klicken Sie sich durch die Save as ... Format ...-Fenster.

10.2 Einbinden

Zunächst brauchen Sie das package graphicx:


  \usepackage{graphicx}   % in der Pr"aambel, also zwischen
                          % \documentclass und \begin{document}

Dann brauchen Sie ein Float (s. Kapitel Tabellen):


\begin{figure}[htbp]     % htbp ist LaTeX Standard-Einstellung
  \includegraphics[width=0.3\textwidth]{serielle.ps}
  \includegraphics[width=3cm, height=1in]{serielle.ps}
  \includegraphics[width=2in, height=1cm]{serielle.ps}
  \caption{Serielle Anschl"usse an einem PC}
\end{figure}

10.3 Und so sieht's aus

Ich füge das Bild 3mal ein, damit Sie sehen, wie width und height funktionieren.

Siehe Bild ''Serielle Anschlüsse an einem PC''.

Abbildung: Serielle Anschlüsse an einem PC
\includegraphics[width=0.3\textwidth]{serielle.ps} \includegraphics[width=3cm, height=1in]{serielle.ps} \includegraphics[width=2in, height=1cm]{serielle.ps}

11. Arbeitsblätter einbinden

Ist eigentlich ganz einfach, macht nur viel Arbeit:

  1. Arbeitsblatt erstellen.
  2. Arbeitsblatt auf einem PostScript-Drucker drucken, Ausgabe in Datei umleiten.

    Unter Linux heißt diese Datei automatisch filename.ps.

    Unter windos benutzt man zB den Apple LaserWriter, der macht halbwegs gutes Postscript. Die Datei heißt anything.prn, wir benennen sie um nach filename.ps.

  3. Durch ghostscript und pstopnm jagen:

    
    ghostscript -g600x800 -sDEVICE=ppmraw -sOutputFile=filename.ppm filename.ps
    pstopnm filename.ps > filename.png
      # hier mu"s man <quit> <enter> eingeben.
    

  4. ... und fertig ist ein png-Bild, das man, wie gehabt, in LaTeX einbinden kann.

12. Happy LaTeXing!

Hier noch ein paar Befehle, die Sie unbedingt im Manual nachschlagen wollen:

clearpage input hrule paragraph medskip bigskip centering cite flushbottom footnotesize large Large huge HUGE frenchspacing em ldots onecolumn twocolumn pagestyle rm sf tt thanks vfill hfill

array description enumerate itemize quote quotation theorem verbatim verb verse

  • clearpage
  • flushbottom
  • ldots
  • vfill
  • theorem
  • input
  • footnotesize
  • onecolumn
  • hfill
  • verbatim
  • hrule
  • large
  • twocolumn
  • array
  • verb
  • paragraph
  • Large
  • pagestyle

  • description
  • verse
  • medskip
  • huge
  • rm
  • enumerate
  • bigskip
  • HUGE
  • sf
  • itemize
  • centering
  • frenchspacing
  • tt
  • quote
  • cite
  • em
  • thanks
  • quotation

13. Anhang 1 : Kommentiertes Listing


% Aller Text hinter einem % wird ignoriert. % ist das Kommentar-Zeichen.
% Wer wirklich ein Prozent-Zeichen haben will, benutzt \%. 

\documentclass [11pt, a4paper] {article}
% Ich habe article gew"ahlt, damit die Seitenzahlen immer rechts oben
% auf der Seite stehen. Weitere Optionen sind: book, report, letter, 
% slide.
% 11 pt ist gut aus 1 m Entfernung zu lesen, zB wenn mein 
% Unterrichtsskript auf dem Pult liegt. 

\usepackage {german}       % aktiviert deutsche Silbentrennung
\usepackage {umlaut}       % umlaut erm"oglicht die Eingabe deutscher 
% Umlaute, entweder als Buchstabe oder so: "o oder so: \"o. 
% citroen schreibt man citro\"en. 
\usepackage {palatino}     % meine Lieblingsschrift
\usepackage {graphicx}     % zum Einbinden von Bildern
\usepackage [margin=13mm] {geometry}     % Setzen von Seitenrändern
\usepackage {boxedminipage}  % f"ur Hervorhebungen, zB Lehrs"atze. s.u.

\author {http://www.freewebs.com/gtslehrer}
% Hier wird die interne Variable Autor gesetzt.
\date   {\today}
% Hier wird das Datum gesetzt. \date ist eine eingebaute Variable, die
% das aktuelle Datum einsetzt. Wenn wir das Package german verwenden, 
% wird sie in deutsch formatiert. 
\title  {Latex f"ur Lehrer - Test 1}

\pagestyle {headings}
% In den Kopfzeilen will ich die Seitennummer und die Kapitel"uberschrift.
\parindent 0.mm
% Den Anfang von Abs"atzen nicht (um 0mm) einr"ucken. LaTeX fri"st fast
% jede L"angeneinheit, zB pt, mm, in. 
\parskip=1mm     % Nach Absatz 1mm frei.
\fboxsep=5mm     % Framebox 5mm entfernt vom eingeschlossenen Text zeichnen. 
\fboxrule=0.5mm  % Framebox-Rahmendicke

% Hervorhebungen machen manche Leute als Randnotizen. Quatsch. 
% Hervorhebungen im Text macht man mit {\em hervorgehobene Worte}. 
% \em wie emphasized=hervorgehoben. 
% Hervorgehobene S"atze bekommen einen dicken Rahmen: 
% ein zentriertes St"uck Text, genausobreit wie der restliche Text, 
% fett (BoldFace) und etwas gr"o"ser. 
\newenvironment{lehr}{
  \begin{center}
  \begin{boxedminipage}{\textwidth}
	\begin{bf}
	\begin{large}
}{
	\end{large}
	\end{bf}  
	\end{boxedminipage}
	\end{center}
}

\begin{document}       % bis jetzt haben wir nur Verabredungen getroffen,
% die das ganze Dokument betreffen. Jetzt kommt das eigentliche Dokument. 

\maketitle             % hallo latex, mach einen Titel. 

\tableofcontents       % hallo latex, das Inhaltsverzeichnis kommt hierhin.

\section{Einleitung}   % Numerierung macht Latex automatisch richtig. 

bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  
\section{Durchf"uhrung}

bla bla bla bla bla bla bla bla Ich fahre keinen Citro\"en. 
  
\begin{lehr}
  Referentielle Integrit"at ist...
\end{lehr}
  
\section{Zusammenfassung}

bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  
\end{document}        % hallo Latex, Dokument ist hier zu Ende. 

\includegraphics[width=\textwidth]{screen.ps}

14. Anhang 2 : Skripten

Sie haben RedHat Linux 6.2 installiert und wollen damit komfortabel und professionell Teste erstellen? Wahlweise als pdf oder html? Dann lesen Sie weiter.

Es wird auch mit anderen Distributionen funktionieren, aber wie immer bei Linux: Your Mileage May Vary.

14.1 Verzeichnisstruktur und Prüfung

  1. Ich nehme an, Sie arbeiten als Benutzer me im Home-Verzeichnis /home/me am Projekt l4l.

  2. Legen Sie den Folder /home/me/Latex/l4l an.

  3. Legen Sie /home/me/Latex/header1.tex an:
    
    \documentclass [11pt, a4paper] {article}
    
    \usepackage {german}
    \usepackage {umlaut}
    \usepackage {palatino}
    %\renewcommand{\rmdefault}{phv}
    \usepackage {graphicx}
    \usepackage [margin=14mm] {geometry}
    \usepackage {boxedminipage}
    \pagestyle {headings}
    \parindent 0.mm
    \parskip=1mm
    \fboxsep=5mm
    \fboxrule=0.5mm
    
    \newenvironment{lehr}{
      \begin{center}
      \begin{boxedminipage}{\textwidth}
      \begin{bf}
      \begin{large}
    }{
      \end{large}
      \end{bf}
      \end{boxedminipage}
      \end{center}
    }
    

  4. Legen Sie /home/me/Latex/header2.tex an:
    
    \author {http://your.website.goes/here}
    \date   {\today}
    
    \begin{document}
    \maketitle
    \tableofcontents
    \vfill
    
    \framebox{\parbox{0.9\textwidth}{
      \centering
        \large{
          {\bf {\Large Disclaimer}}
    
    Alle Informationen in diesem Dokument sind falsch, unvolständig,
    irreführend, irrelevant und / oder funktionieren einfach nicht. 
    
    Wenn Sie es trotzdem benutzen, und es geht dabei etwas kaputt, 
    ist das Ihr Problem, nicht meins. 
        }
      } 
    }
    

  5. Legen Sie in l4l einen Soft-Link darauf an:
    
    cd /home/me/latex/l4l
    ln -s ../header1.tex 
    ln -s ../header2.tex
    
    So haben Sie Ihre Hauptvorlage, und alle Ihre Dokumente sehen gleich aus.

  6. Legen Sie /home/me/Latex/l4l/l4l.tex an:
    
    \include {header1}      % das .tex wird automatisch erzeugt
    \title {Latex f"ur Lehrer}
    \include {header2}
    
    \include{intro}
    
    \end{document}
    

  7. Die Kapitel binden Sie mit include ein. Das beschert u.a. einen Seitenwechsel vor jedem Kapitel.

    Ein absichtlicher Seitenwechsel (zB vor der Seite Übungen) wird mit clearpage erzeugt.

  8. Legen Sie intro.tex an:
    
    \section{Einleitung}
    Standard-Textprozessoren haben gro"se Nachteile:
    \begin{itemize}
    	\item sie fressen viel Speicherplatz;
    	\item sie machen vieles automatisch falsch;
    	\item sie zwingen zum Aufbewahren alter Versionen (falls die
    		soeben gespeicherte Datei, zB durch einen Absturz, 
    		unbrauchbar wird);
    	\item die Plazierung von Bildern erfolgt ''auf der Seite festgenagelt''
    		oder so ungl"ucklich, da"s viele halbleere Seiten entstehen;
    	\item die Dokumente sehen auf jedem Drucker anders aus.
    \end{itemize}
    

  9. Lassen Sie dies durch latex laufen, und gucken Sie sich das Ergebns mit xdvi an:
    
    latex $(basename ($pwd))
    startx
    xdvi $(basename ($pwd)).dvi
    

  10. Wenn's bis hier klappt, haben Sie die Hälfte.

14.2 Ein paar Skripten

14.2.1 Skripting

Linux ist kommandozeilenorientiert, d.h. Sie müssen Befehle eintippen. Damit das nicht immer wieder passiert, können Sie Skripten schreiben.

Versuchen Sie dies:


#!/bin/sh
## this ist /home/me/test1.sh

ls -la
cd /
ls -la
cd ~             # ce de leer tilde - wechselt ins homeverzeichnis

Machen Sie es ausführbar, und führen Sie es aus:


chmod 755 test1.sh     # lesbar, schreibbar, ausführbar für owner
                       # lesbar und ausführbar für den rest der welt
./test1.sh             # das aktuelle verzeichnis heißt . und ist
                       # standardmäßig nicht im PATH

Schreiben und testen Sie Skripten als me an Kopien der Original-Dateien. Wenn alles klappt, werden Sie root und kopieren die Skripten nach /usr/bin. Dann dürfen Sie auch den ./ weglassen.

14.2.2 Bilder einbinden

Sie möchten ein .gif einbinden? Schreiben Sie /usr/bin/giftopng :

#!/bin/sh
# giftopng: macht aus allen gif je ein png

if ls *.gif 2> /dev/null ; then
        for i in *.gif ; do
                j=$(echo $i | sed s/.gif/.png/)
                giftopnm $i | pnmtopng > $j
                echo $j created
        done
fi
Dasselbe können Sie auch mit .jpg, .fig oder .ps machen.

14.2.3 Die große Sause


#!/bin/sh
# /usr/bin/P   # macht genau, was drinsteht

giftopng
jpgtopng
figtopng
ps2png
pdflatex ($basename $(pwd))   # 3 runs needed for correct
pdflatex ($basename $(pwd))   # table of contents

xpdf ($basename $(pwd)).pdf

So brauchen Sie nur noch im Verzeichnis /home/me/Latex/l4l P zu drücken, der Rest läuft automatisch.

14.2.4 .fig braucht eine spezielle Behandlung

Mein Drucker druckt nur mit 150 dpi, sonst ist er zu langsam.

Also habe ich eine Seitenbreite von (210mm - 40mm Rand) / (25,4mm/inch) * 150 dots/inch = 1004 dots Seitenbreite.

Bei Bitmaps > 1004 dots verschluckt der Druckertreiber deshalb manchmal vertikale Linien in .fig-Dateien.

Also skaliere ich wie folgt:


#!/bin/sh

desired=900       # manche bilder sind kleiner als \textwidth

if [ -z $1 ] ; then
  echo "must give a .fig file as input"
  exit 1;
else
  file=$(basename $1 .fig)
#  echo "working on $file.fig..."
  fig2dev -L ppm $file.fig $file.ppm
  width=$(head -3 $file.ppm | tail -1 | cut -f1 -d" ")
  rm -f $file.ppm
  echo -n "width of $file.fig is $width ... "
  mag=$(echo "$desired/$width" | bc -lq)
#  echo "mag = $mag"
  fig2dev -L png -m $mag $file.fig $file.png
fi

Über dieses Dokument ...

LaTeX für Lehrer

This document was generated using the LaTeX2HTML translator Version 99.1 release (March 30, 1999)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -no_navigation -show_section_numbers -split 0 -no_parbox_images l4l.tex

The translation was initiated by on 2005-10-18


Fußnoten

... geschrieben.1
Puristen werden hier zürnen: TeX sei keine Programmiersprache.

Nun, TeX beschreibt, wie das Ergebnis aussehen soll. Programmiersprachen beschreiben, was das Produkt (das Programm) machen soll.

Da ein Dokument in erster Linie gut aussehen soll, ist TeX in diesem Sinne eine Programmiersprache. Das werden Sie spätestens an den ganzen Fehlermeldungen merken, die es während des Laufens ausspuckt, genau wie ein richtiger Compiler.

Korrekt beschrieben, ist TeX und sein frontend LaTeX natürlich eine Dokument-Beschreibungs-Sprache.




2005-10-18