TeX, LaTeX, Metafont
Home
Dynamische Systeme: DynManif
vltx - eine TeX-Shell
Die TeX-Shell xlatex ist nun schon ein wenig in die Jahre gekommen - und xtem ist mir ein wenig zu umfangreich. Daher habe ich für den Hausgebrauch eine eigene, erweiterbare TeX-Shell - angelehnt an xlatex - in Tcl/Tk entworfen: vltx.

Vielleicht suchen Sie ja auch solch ein Programm?
Gesammelte Makros
Es ist zwar noch ein weiter Weg zum "TeXpert", aber gemäß der Hierarchy of TeXnical Accomplishments habe ich zumindest den Status des "Hackers" erreicht, wie diese kleine Kollektion nützlicher LaTeX-Makros hoffentlich zeigt. ;-)
- Kommentar-Umgebung
- Formelnummer zwischen zwei Zeilen
- Mengensymbole für die natürlichen, reellen, rationalen und komplexen Zahlen
- Mengensymbol für die ganzen Zahlen
- Mengen
- Seitenstil
- Fußnoten
Hinweis: Makros, die das Zeichen "@"
enthalten, funktionieren nur, wenn dieses als normales Zeichen
interpretiert wird. Dies gelingt durch den Befehl
"\catcode`\@=11" bzw.
"\makeatletter". Hinterher das Zurückschalten
mittels "\catcode`\@=12" bzw.
"\makeatother" nicht vergessen!
Kommentar-Umgebung
Sämtlicher Text, der zwischen "\begin{comment}"
und "\end{comment}" eingeschlossen ist, wird
ignoriert - sofern er nicht so lang ist, daß er den Arbeitsspeicher
von TeX sprengt. Ein Schachteln der Umgebungen ist nicht möglich.
\begingroup
\catcode`|=0\catcode`[=1\catcode`]=2%
\@makeother\{\@makeother\}\@makeother\\
|long|gdef|c@mment#1\end{comment}[|end[comment]]
|endgroup
\def\comment{\let\do\@makeother\dospecials\c@mment}
\def\endcomment{\@ignoretrue}
Einem Editor mit konfigurierbarem Syntax-Highlighting kann man sogar beibringen, diese Umgebung dann andersfarbig (so wie die normalen Kommentare) darzustellen.
Formelnummer zwischen zwei Zeilen
Durch "\midnumber\\" am Ende einer Zeile eines
"eqnarray" wird die Formelnummer zwischen
der aktuellen und der folgenden Zeile positioniert, falls beide den
normalen Abstand - also "\baselineskip" -
voneinander haben.
\def\midnumber{\global\@tempdima\baselineskip
\global\advance\@tempdima\jot
\nonumber\\[-0.5\@tempdima]&&\\[-1.5\@tempdima]\nonumber}
Mengensymbole für die natürlichen, reellen, rationalen und komplexen Zahlen
(Die ersten beiden Makros stammen nicht von mir.)
\def\N{{\rm I\mkern-3mu N}}
\def\R{{\rm I\mkern-3mu R}}
\def\Q{{\@QC Q}}
\def\C{{\@QC C}}
\def\@QC#1{\mathpalette{\setbox0=\hbox\bgroup$\rm}%
{\egroup C$\egroup\rm\rlap{\kern0.4\wd0\vrule
width 0.05\wd0 height 0.97\ht0 depth -0.01\ht0}%
#1\bgroup}}
Mengensymbol für die ganzen Zahlen
Man kann ein Symbol für die ganzen Zahlen zwar wie oben aus
zwei Buchstaben zusammenbasteln, das sieht aber nicht besonders gut aus.
Stattdessen kann man aber mit Metafont ein eigenes Zeichen definieren.
Um das Zeichen aus dem Font
cmmz10.mf
dann in LaTeX2e einzubinden, muß man nur noch folgende Befehle
- vor "\begin{document}" - in sein Dokument
aufnehmen:
\DeclareFontFamily{U}{cmmz}{}
\DeclareFontShape{U}{cmmz}{m}{n}{<-8><8><9><10>%
<10.95><12><14.4><17.28><20.74><24.88>cmmz10}{}
\DeclareSymbolFont{mz}{U}{cmmz}{m}{n}
\DeclareMathSymbol\Z{\mathord}{mz}{"5A}
Die Zeile $$\Z^\Z$$ liefert dann:

Mengen
Wer keine Lust hat, "$\{\,x\;|\;x>0\,\}$"
zu tippen, um die Menge
"{ x | x > 0 }"
zu erhalten, der sollte einmal das folgende Makro probieren:
\def\set#1{\{\,\s@t#1&\,\}}
\def\s@t#1&{#1\;|\;#2}
Die Befehlsfolge "$\set{x&x>0}$" liefert
dann dasselbe Resultat.
Seitenstil
Dies ist ein Seitenstil, der die Seitenüberschriften
durch eine Linie vom Rest der Seite trennt - er wird durch
"\pagestyle{vrstyle}" aktiviert:
\def\ps@vrstyle{\let\@mkboth\markboth
\def\@oddhead{\underline{\rule[-2pt]\z@\z@
\hb@xt@\textwidth{\rm\rightmark\hfill\thepage}}}%
\def\@evenhead{\underline{\rule[-2pt]\z@\z@
\hb@xt@\textwidth{\rm\thepage\hfill\leftmark}}}%
\def\@oddfoot{}%
\def\@evenfoot{}%
\def\chaptermark##1{\markboth{\@chapapp\ \thechapter. \ ##1}{}}%
\def\sectionmark##1{\markright{\thesection. \ ##1}}%
\def\subsectionmark##1{}}
Fußnoten
Zum Schluß noch eine Anwendung von
"\expandafter": In mathematischen Texten ist
es ungünstig, Fußnoten mit Zahlen oder kleinen Buchstaben
durchzunumerieren, da sie leicht mit Exponenten verwechselt werden
können. Will man statt dessen einige graphische Symbole verwenden,
hat man das Problem, daß es meist nur so wenige davon gibt,
daß sie nicht für ein ganzes Kapitel reichen. Leider
läßt es sich nicht gut automatisieren, die Zählung
auf jeder Seite beim ersten Symbol neu zu starten: Man kann bei einem
Absatz, der über eine Seitengrenze umgebrochen wird, kaum
feststellen, ob eine Fußnote noch auf der alten Seite steht
(Zähler nicht zurücksetzen) oder schon auf der neuen
(Zähler zurücksetzen). Manuell kann man dies mit Hilfe
der folgenden Makros leicht machen: Hängt man an
"\footnote", "\footnotemark"
oder "\footnotetext" einen Stern an, so wird
der Zähler zurückgesetzt. Die üblichen optionalen
Parameter kann man dann danach anhängen.
\let\f@@tnote\footnote
\let\f@@tnotemark\footnotemark
\let\f@@tnotetext\footnotetext
\def\footnote
{\@ifnextchar*{\c@footnote\z@\expandafter\f@@tnote\@gobble}\f@@tnote}
\def\footnotemark
{\@ifnextchar*{\c@footnote\z@\expandafter\f@@tnotemark\@gobble}\f@@tnotemark}
\def\footnotetext
{\@ifnextchar*{\c@footnote\@ne\expandafter\f@@tnotetext\@gobble}\f@@tnotetext}
Und das sind meine persönlichen Favoriten unter den Fußnoten:
\def\thefootnote{\ensuremath{\ifcase\c@footnote
\or\dagger\or\ddagger\or\dagger\dagger\or\ddagger\ddagger\else\@ctrerr\fi}}
Volker Reichelt, letzte Änderung am 11. Juli 2005


