%% layout.tex---Teil von OGFUDA %% \def\fileversion{1.0} \def\filedate{01-FEB-1993} \def\filename{layout.tex} \meldedich \section{Layout-"Anderungen} \subsection{"Uber- und Unterschriften} \r Ein Bekannter hat folgendes Problem. Er m"ochte den \verb|\paragraph{}|-Befehl\indexcs{paragraph} im {\em article}-Stil einsetzen, um einen gr"o"seren Text in vier Hierarchiestufen\index{Hierarchiestufen} zu gliedern. Leider hat \cs{paragraph} die Eigenschaft, die Absatz"uberschrift\index{Ueberschrift@\"Uberschrift} vom Text nicht durch einen Zeilenumbruch abzusetzen. Der Text folgt der "Uberschrift nur durch ein Geviert (\cs{quad}) getrennt---ein zus"atzlicher \ind{Zeilenumbruch} bzw.\ \ind{Absatzumbruch} wie z.\,B.\ bei \verb|\subsubsection| fehlt. Ein \glq\verb|\\|\grq\ hinter der "Uberschrift zur Erzeugung eines Zeilenumbruchs f"uhrt ebenso wie \qcs{par}\ oder ein \qcs{linebreak}\ nur zu Fehlermeldungen\index{Fehlermeldung!von linebreak@von \verb=\linebreak=}. Gibt es eine M"oglichkeit eine vierte \ind{Hierarchiestufe} im {\em article}-Stil zu benutzen, die genauso wie \verb|\subsubsection| arbeitet? \p Wenn eine \cs{paragraph}-"Uberschrift nicht durch vertikalen Raum vom Absatz getrennt wird, dann ist das eine Design-Entscheidung\index{Design-Entscheidung} des Autors von \sty{article}. Wenn man das anders haben will---und das gilt generell f"ur fast alle Benutzerw"unsche---sollte man besser gleich einen eigenen Style definieren, der vielleicht in gro"sen Teilen dem \sty{article} "ahnlich ist. Innerhalb des Dokuments sollte man m"oglichst die vom Style-Designer vorgesehenen Befehle verwenden, um den Inhalt entsprechend zu gliedern. Das Erscheinungsbild, das durch diese Befehle festgelegt wird, sollte man nicht versuchen durch Low-Level-Befehle wie \glq\verb|\\|\grq\ oder \qcs{linebreak} zu "andern, sondern man sollte dann besser diese Befehle selbst "andern. \r Sie sprechen damit die Dreiteilung von Autor, Layouter und Setzer an. \p Ganz recht. Die Befehle und Umgebungen von \LaTeX\ sollen das Konzept einer m"oglichst klaren Trennung von Inhalt und Layout erm"oglichen. Dabei ist der Style-Designer f"ur das Layout, der Autor dann nur noch f"ur den Inhalt und dessen Gliederung verantworlich und \TeX f"ur den fachgerechten Satz. \r Manchmal mu"s diese Trennung vom Autor h"aufig aus sehr pragmatischen Gr"unden durchbrochen werden. Einerseits kommt es hin und wieder vor, da"s der Zeilen- oder Seitenumbruch einmal unbefriedigende Resultate liefert und dies nur durch Einf"ugen von Low-Level-Befehlen ge"andert werden kann, andererseits bieten Styles manchmal gew"unschte Gliederungs"-m"oglichkeiten nicht an, so da"s man diese im Notbehelf realisieren mu"s. \p Und damit sind wir wieder bei Ihrem Problem. Der einfachste Weg, den man verwenden kann, ist der einfach nach \cs{paragraph} die Sequenz \glq\verb|\ \\|\grq\ einzuf"ugen. Dies ist jedoch nur dann sinnvoll, wenn man dies einmalig---als Ausnahme---einf"ugen mu"s (falls z.\,B.\ \LaTeX\ nur an dieser Stelle umbrechen sollte, der Aufwand einer allgemeineren L"osung zu gro"s w"are oder einfach nur ein Termin eingehalten werden mu"s). \r Und wie gehe ich sonst vor? \p Will man dagegen nach jedem \cs{paragraph}-Befehl eine neue Zeile beginnen, sollte man besser diesen Befehl selbst "andern und im Dokument selbst keine "Anderung vornehmen. Dadurch spart man sich im Endeffekt eine Menge Zeit und hat sp"ater immer noch die M"oglichkeit, das Aussehen dieses Befehls erneut zu "andern, ohne dann diese "Anderung wieder r"uckg"angig machen zu m"ussen. \r Eine "au"sert akzeptable L"osung. \p Die sogenannten "`standard styles"' wie {\em article\/} oder {\em report\/} oder {\em book\/}, die mit \LaTeX\ mitgeliefert werden, sollte man als {\em Beispiele\/} ansehen, wie man seine eigenen Styles definieren kann. Au"serdem sind diese Styles eigentlich nicht f"ur das in Europa "ubliche Papierformat DIN~A4 gemacht worden, so da"s man daf"ur auf alle F"alle entsprechende Anpassungen verwenden sollte. \r Also "andere ich \sty{article} in entsprechender Weise. \p Auf gar keinen Fall! \smallskip \begin{center} Layout-"Anderungen d"urfen {\bf niemals} in den\\ Original {\tt .sty}-Dateien vorgenommen werden!\\ Hierf"ur erstelle man sich besondere {\tt .sty}-Dateien,\\ die via \cs{documentstyle[...]} eingelesen werden.\\ {\bf Ver"andern Sie niemals die Originaldateien!} \end{center} \smallskip Wenn man also \sty{article} "andern will, sollte man entweder den Style umbenennen oder nur den zu "andernden Teil in einer Styleoption neu definieren. \p Wieso weisen Sie so eindringlich darauf hin, die Originaldateien nicht abzu"andern? \p Weil Sie sich damit in den Abgrund der Inkompatibilit"at\index{inkompatibel} begeben. \r Und wie finde ich die zu "andernden Stellen? \p Erfahrene \TeX{}ler bieten die folgende Vorgehensweise an. \begin{enumerate} \item Durchforsten Sie das \LaTeX-Manual von L.~{\sc Lamport}! \item Zu jeder {\tt .sty}-Datei existiert eine dokumentierte Version mit der Endung {\tt doc}\index{doc-Datei@{\tt .doc}-Datei}; zu \sty{article} geh"ort also die dokumentierte Datei {\tt article.doc}. Durchsuchen Sie diese als n"achstes! \item Falls die bisherige Suche nicht zum Erfolg f"uhrte, m"ussen Sie {\tt latex.tex} selbst durchforsten. \item Als letzte Quelle sollte das \TeX{}book von \DEK\ herangezogen werden. \end{enumerate} \r Ich verfasse also eine {\tt .sty}-Datei mit den gew"unschten "Anderungen und lese sie wie andere {\tt .sty}-Dateien ein. Welchen Inhalt sollte sie f"ur diesen Fall besitzen? \p Hier hilft uns {\tt art1{\it x}.doc} weiter. Dort finden wir an entsprechender Stelle die Definition von \cs{paragraph}, deren Zuweisung von \cs{afterskip} von \glq\verb|0pt|\grq\ auf \glq\verb|1ex plus .1ex|\grq\ ge"andert wurde.\footnote{In "alteren Stylefiles fehlt der interne Befehl {\tt \string\reset@font}. In diesem Fall sollte man \LaTeX-Version {\it und\/} alle Stylefiles auf den neuesten Stand bringen!} % \begin{ogfudatim} \def\paragraph{\@startsection {paragraph}% NAME {4}% LEVEL {0pt}% INDENTation of heading from left margin {3.25ex plus1ex minus.2ex}% BEFORESKIP % (if < 0pt supress indentation % of following heading) {1ex plus .1ex}% AFTERSKIP (if <= 0pt => run-in header) {\reset@font\normalsize\bf}% STYLE } \end{ogfudatim} % Ob man sich in dem damit gesetzten Dokument dann zwischen den vielen "Uberschriften noch auskennt, ist allerdings das Problem des Layout-Designers oder---schlimmer noch---des Lesers. \r Sie sagen es: grundlegende "Anderungen des Layouts sollten professionellen Layoutern vorbehalten bleiben. \p Und diese "Anderungen wiederum k"onnen meist nur sachgerecht von \LaTeX-Profis vorgenommen werden. \r Ich gebe Ihnen ganz und gar recht. Jedoch sind manchmal aus verschiedensten Gr"unden {\em kleinere\/} "Anderungen vorzunehmen. (So bestehen einige Dozenten auf einen sogenannten "`doppelten"' Zeilenabstand\index{Zeilenabstand!doppelter}% \index{Aendern@\"Andern!des Zeilenabstandes} bei wissenschaftlichen Arbeiten; "uber die typographische Qualit"at einer derartigen Verordnung m"ussen wir gewi"s nicht streiten.) \p Ganz gewi"s nicht. \r In diesen F"allen ist doch gut zu wissen, wie man ungef"ahr vorzugehen hat, falls einmal kein \LaTeX-Profi greifbar und dennoch einmal eine Kleinigkeit, wie zum Beispiel Kopf- oder Fu"szeilen\index{Aendern@\"Andern!von Kopf- und Fu\ss zeilen}, etwas abzu"andern ist. \p Auch diese "Anderungen sind dann in einer eigenen {\tt .sty}-Datei unterzubringen. F"ur "Anderungen der Kopf- bzw.\ Fu"szeilen finden wir folgenden Code in \sty{article}. % \begin{ogfudatim} \if@twoside % zweiseitiges Dokument? \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% Keine Fusszeile auf Seite \def\@evenhead{\rm\thepage \hfil \sl\leftmark}% Linke % Kopfzeile \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}% Rechte % Kopfzeile % \rightmark und \leftmark werden mit \markboth bzw. % \markright gesetzt. % \section setzt \leftmark auf #1 und \rightmark auf {} \def\sectionmark##1{\markboth {\uppercase{\ifnum\c@secnumdepth>\z@ \thesection\hskip 1em\relax \fi ##1}}% {}}% % \subsection setzt nur \rightmark und #1, % \leftmark bleibt dabei unveraendert \def\subsectionmark##1{\markright {\ifnum\c@secnumdepth>\@ne \thesubsection\hskip 1em\relax \fi ##1}}} \else % bei einseitigem Dokument wird obiges etwas "optimiert" \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% Leere Fusszeile \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}% Kopfzeile \def\sectionmark##1{\markright {\uppercase{\ifnum\c@secnumdepth>\z@ \thesection\hskip 1em\relax \fi ##1}}}} \fi \end{ogfudatim} So k"onnen Sie also durch die Deklaration von % \begin{ogfudatim} \def\@oddfoot{\hfil OGFUDA\hfil} \def\@evenfoot{\hfil {\sc Rainer Juhser} im Gespr"ach mit {\sc Pete T.\ Rex} \hfil} \end{ogfudatim} % \makeatletter % Durch die Redefinition \def\@oddfoot{\gdef\@oddfoot{}\hfil OGFUDA\hfil} \def\@evenfoot{\gdef\@evenfoot{}\hfil {\sc Rainer Juhser} im Gespr"ach mit {\sc Pete T.\ Rex}\hfil} \makeatother % die Fu"szeilen erzeugen, die Sie auf den folgenden beiden Seiten sehen. Wird f"ur dieses Dokument nur ein Stil f"ur ein einseitiges Dokument verwendet, so erscheint der in {\tt \string\@evenfoot} definierte Text nicht, da es dann keine geraden bzw.\ besser R"uckseiten (``even pages'') gibt. \subsection{"Anderung des Zeilenabstandes} \r Ausgezeichnet! Und wie ist dem Problem des zweizeiligen Zeilenabstandes\index{Zeilenabstand!doppelter} beizukommen? \makeatletter \def\norm@lsize{\@setsize\norm@lsize{18pt}\xiipt\@xiipt} \norm@lsize \makeatother \p Auf die folgende Art. In \sty{art12} findet sich die Anweisungsfolge. % \begin{ogfudatim} \def\@normalsize{\@setsize\normalsize{14.5pt}\xiipt\@xiipt[...]} \end{ogfudatim} % "Andert man den Wert \glq\verb|12pt|\grq\ auf beispielsweise {\tt 18pt}, so erhalten Sie etwa anderthalbzeiligen Zeilenabstand\index{Zeilenabstand!anderthalbfacher}. Dieser Absatz ist mit dieser Einstellung geschrieben.\footnote{Wie Sie sehen, wirkt der ver"anderte Zeilenabstand% \index{Zeilenabstand!in Fussnoten@in Fu\ss noten} {\em nicht\/} in Fu"snoten, da f"ur Fu"snoten eine kleiner Fontgr"o"se verwendet wird; w"unschen Sie auch hier einen vergr"o"serten Zeilenabstand, mu"s die Deklaration von {\tt \string\footnotesize} analog der oben ge"anderten Definition von {\tt\string\normalsize} erfolgen.} Normalerweise ist der Zeilenabstand in \sty{art12}, dessen \makeatletter \def\foot@notesize{\@setsize\footnotesize{15pt}\xpt\@xpt}% Stil\footnote{\foot@notesize Hier sehen Sie einen etwa anderthalbzeiligen Zeilenabstand innerhalb der Fu"snote. Dies wird erreicht durch eine Neudeklaration von {\tt\string\footnotesize}.} \makeatother hier verwendet wird, $14{,}5$\,pt. % wieder zurueckschalten, darauf achten, dass Paragraph % vorher(!) abgeschlossen wird. \par\normalsize \r Dieser Anblick l"a"st mich grausen\index{Grausen}. \p Tja, Sie sprechen mir aus dem Herzen, aber was soll man machen, wenn h"oherer \ind{Zwang} vorliegt? \r Das Beste daraus machen. Aber zwei Fragen stellen sich mir in diesem Zusammenhang. Zun"achst scheint die von Ihnen vorgeschlagene L"osung schrift"-gr"o"sen"-abh"angig zu sein. Wie "ublich fassen wir die vorzunehmende "Anderung in eine eigene {\tt .sty}-Datei mit dem Namen \sty{grausen}. Falls wir jetzt aber unser Dokument statt mit % \begin{ogfudatim} \documentstyle[12pt,grausen,...]{article} \end{ogfudatim} % mit % \begin{ogfudatim} \documentstyle[10pt,grausen,...]{article}, \end{ogfudatim} % "ubersetzen, so erhalten wir das Ganze in einer $10$\,pt-Grundschrift gesetzt, wobei der Zeilenabstand dann allerdings fast zweizeilig ist; $18$\,pt \ind{Zeilenabstand} sind hier nicht mehr \ind{anderthalbzeilig}. Vielleicht w"aren etwa $15$\,pt angebrachter. \p Ein ausgezeichneter Einwand! In der Tat sollten wir dann schon N"agel mit K"opfen machen, und zwar so. Um \sty{grausen} von der Gr"o"se der \ind{Grundschrift} unabh"angig zu machen, verwenden wir das interne Makro \verb|\@ptsize|. Es enth"alt eine $0$, $1$ oder~$2$, falls eine $10$\,pt-, $11$\,pt- oder eine $12$\,pt-Schriftgr"o"se ausgew"ahlt wurde. \r Demnach hat sich also \verb|\@ptsize| die Einerziffer der jeweils ge"-w"ahlten Grundschrift"-gr"o"se gemerkt. \p So ist es. Dies k"onnen wir nun ausnutzen. Die Datei \sty{grausen} sollte die folgenden Zeilen enthalten. % \begin{ogfudatim} \ifcase \@ptsize \def\@normalsize{\@setsize\normalsize{15pt}\xpt\@xpt[...]} \or \def\@normalsize{\@setsize\normalsize{16.5pt}\xipt\@xipt[...]} \or \def\@normalsize{\@setsize\normalsize{18pt}\xiipt\@xiipt[...]} \fi \end{ogfudatim} % Die mit \glq\verb|[...]|\grq\ bezeichneten Stellen enthalten jeweils den Originalcode aus der Gr"o"sendatei; dieser betrifft im wesentlichen die verschiedenen Zeilenabst"ande im mathematischen Satz (die ihrerseits noch einer Anpassung bed"urfen). \r Aha. Wollten wir zus"atzlich noch den Abstand der Fu"snotenzeilen ver"andern, k"onnten wir unter der jeweiligen Definition von \cs{normalsize} die entsprechend ge"anderte Definition von \cs{footnotesize} notieren. \p Wie gesagt, N"agel mit K"opfen zu machen bedeutet hier, ebenfalls die \cs{small}-, \cs{scriptsize}- und die anderen Fontdeklarationen anzupassen. Beachten Sie bitte, da"s ein mittels % \begin{ogfudatim} {\small ...} \end{ogfudatim} % gesetzter Absatz zwingend mit einer Leerzeile enden mu"s, also etwa so % \begin{ogfudatim} {\small text ... text. } \end{ogfudatim} % zu notieren ist; andernfalls liest \TeX{} den gesamten durch \glq\verb|{|\grq\ und \glq\verb|}|\grq\ begrenzten Absatz ein und restauriert hinter der schlie"senden Klammer den Wert von \cs{baselineskip}, bevor der komplette Absatz umgebrochen wird. Da als Zeilenabstand eines Absatzes der beim Umbruch aktuelle Wert des Parameters \cs{baselineskip} verwendet wird, erh"alt man sonst den Wert der vor der durch \verb|{| begonnenen Gruppe. \r Gut zu wissen! \subsection{Fu"snoten} \r Meine zweite Frage betrifft noch einmal Fu"snoten. Ich habe bemerkt, da"s Sie den Ausdruck \qcs{footnotesize} innerhalb einer Fu"snote verwenden; wie ich wei"s, ist jedoch die Verwendung von \cs{verb} innerhalb von \cs{footnote} nicht m"oglich. \p Ganz recht. Der Grund daf"ur ist, da"s das \cs{footnote}-Kommando sein Argument auf einen Sitz verschluckt und \verb|\verb=...=| keine Gelegenheit bekommt, die Sonderzeichen zu "`entsch"arfen"'. Der {\em category code\/}, der die syntaktischen Eigenschaften eines Zeichens festlegt, kann danach nicht mehr ge"andert werden. Und eben diese werden von \cs{verb} ver"andert, um alle Zeichen zu inaktivieren. \r Und wie haben Sie \qcs{footnotesize} in die Fu"snote eingeschleust? \p Ich notierte \glq\verb|\char`\\|\cs{footnotesize}\grq; \verb|\char`\\| bzw.\ \verb|\char'134| bzw.\ \verb|\char92| veranla"st \TeX, das auf der Position~92 befindliche Zeichen des aktuellen Zeichensatzes zu verwenden (134 ist der Oktal-, 92 der Dezimalcode des Zeichens \verb|\|).{\tolerance=6000\par} \r Viele Anwender sind auf eine andere Gestaltung der Fu"snoten angewiesen, als sie \LaTeX\ bietet. Dies betrifft zun"achst einmal die Einr"uckungen der Fu"snoten. \p Sie schneiden da ein "au"serst heikles Thema an! Nicht etwa, weil Ihr Problem schwierig zu l"osen ist, sondern weil es gro"se Kontroversen bez"uglich der Fu"snoten "uberhaupt gibt. Diese Diskussion aufzugreifen, kann aber nicht unsere Sache sein; vielmehr verweise ich Sie (sofern Sie daran interessiert sind) auf Reiss Vorstudien~\cite{reiss} und den Anmerkungen von Fisch und Strohschneider zu diesen Vorstudien~\cite[S.~447--461]{fisch}. \r Ich gebe Ihnen da wohl recht, aber was k"onnen Sie mir nun in Bezug auf mein Problem berichten? \p In {\tt article.doc} finden wir den entscheidenden Hinweis. Dort findet sich der folgende Kode.\footnote{In dieser Fu"snote werden die normalen Werte des momentan verwendeten Styles verwendet.\par Und dies ist ein zweiter Absatz.} % \begin{ogfudatim} \long\def\@makefntext#1{% \parindent 1em % (1) \noindent \hbox to 1.8em% (2) {\hss$\m@th^{\@thefnmark}$}#1} \end{ogfudatim} % {% \makeatletter \long\def\@makefntext#1{\parindent 10em\noindent \hbox to10pt{\hss$\m@th^{\@thefnmark}$}#1} \makeatother Die mit (1) markierte Stelle% \footnote{Hier werden in (1) die Werte $10$\,em und in (2) der Wert $10$\,pt verwendet.\par Etwas ungew"ohnlich, aber dies soll nur zur Verdeutlichung dienen.} % \makeatletter \long\def\@makefntext#1{\parindent 0em\noindent \hbox to0pt{\hss$\m@th^{\@thefnmark}$}#1} \makeatother % zieht die erste Zeile eines neuen Absatzes um~$1$\,em% % \footnote{F"ur diese Fu"snote wurden alle Werte auf~$0$\,pt gesetzt, so da"s der Text mit dem linken Rand abschlie"st.\par Die Fu"snotemarkierung ragt dabei mit der angegeben Definition in den linken Rand hinaus.} % ein und die mit (2) markierte Stelle r"uckt den ersten Absatz mit der Fu"snotenmarkierung um $10$\,pt ein.} Ferner k"onnen Sie hier auch das Aussehen der Fu"snotenmarke "andern. Schreiben Sie in der letzten Zeile obiger Definition statt % \begin{ogfudatim} \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1} \end{ogfudatim} die Erkl"arung \begin{ogfudatim} \mbox{(\@thefnmark)} #1}, \end{ogfudatim} % {% \makeatletter \long\def\@makefntext#1{\parindent 1em\noindent \mbox{(\@thefnmark)} #1} \makeatother % so erhalten Sie eine Fu"snotenmarkierung, die hier\footnote{Eine unsinnige Fu"snote mehr. Beachten Sie den andersartig gestalteten Fu"snotenz"ahler!} % zu sehen ist.} "Andern Sie diese beiden Werte gem"a"s Ihren Anforderungen oder schreiben Sie das Makro komplett um % {% \makeatletter \long\def\@makefntext#1{\parindent 1em\noindent \makebox[2em][r]{$\m@th\@thefnmark.\;\;$}#1} \makeatother % und speichern dieses Makro z.\,B.\ unter dem Namen \sty{myfootnt} ab.% \footnote{Versuchen Sie auch einmal diese Einstellungen! Diese finden in einer Stil-Option Einsatz, die es erlaubt, im zweispaltigen Satz die Fu"snoten ans Ende der rechten Spalten auszugeben.\par Dieser Stil tr"agt den Namen \sty{ftnright} und ist auf vielen \TeX-Servern zu finden.}} % Diese Datei kann dann bei Bedarf wie andere Stildateien auch eingelesen werden. Die letzte Fu"snote wurde "ubrigens mit der Definition % \begin{ogfudatim} \long\def\@makefntext#1{\parindent 1em% \noindent \makebox[2em][r]{$\m@th\@thefnmark.\;\;$}#1} \end{ogfudatim} % formatiert. \r Nun gut, bei n"aherem Hinsehen erschlie"st sich mir der Kode. Obwohl mir dieser Kode noch nicht ganz klar ist, verlasse ich mich auf Ihren Rat. \p Tja, selbst minimale "Anderungen des Layouts sind in der vorliegenden \LaTeX-Version h"aufig nur mit Klimmz"ugen und genaueren Kenntnissen der Internas zu erreichen. Hoffen wir, da"s sich das in neueren Versionen "andert. Sie sprachen aber von mehreren Problemen? \r Ja, ein weiteres Problem ist die seitenweise Numerierung der Fu"snoten. Wie ist dies zu bewerkstelligen? \p Auf eine einfache Art und Weise nicht. Der Grund daf"ur liegt daran, da"s die Fu"snotennummern genau zu dem Zeitpunkt erfolgt, an dem die Fu"snote im Text erscheint. Die Nummer der Fu"snore kann danach nicht mehr ge"andert werden. Das Problem ist nun, da"s die Bestimmung der Seitengrenzen erst "`nachtr"aglich"' (asynchron zum Text) erfolgt. Somit kann es sein, da"s ein Textst"uck mit einer Fu"snote, deren Nummer schon festgelegt wurde, auf die n"achste Seite geschoben wird, da dieses Textst"uck nicht mehr auf die Seite pa"st. In diesen F"allen m"u"ste man also die Nummern dieser Fu"snoten nachtr"aglich "andern, was nicht m"oglich ist. Rein logisch gesehen, geh"ort die Fu"snotennumerierung zu den textbezogenen Z"ahlern, unabh"angig davon, ob man sie seitenweise z"ahlt oder nicht. (Einige \TeX hacker glauben, dies sei einer der Punkte, die \DEK\ in \TeX\ etwas kurzsichtig behandelt hat.) Eine funktionierende L"osung ist \sty{footnpag} oder auch \sty{pgefoot}, welche die {\tt .aux}-Datei benutzen, und deshalb nur bei einer verh"altnism"a"sig kleinen Anzahl von Fu"snoten angewendet werden k"onnen (falls Sie kein Big\-\TeX\ verwenden). \r Nun verraten Sie mir noch, wie ich Fu"snoten innerhalb einer \env{tabular} verwenden kann! \p In einer \env{tabular} funktioniert das \cs{footnote}-Kommando nicht mehr. Hier m"ussen Sie schon selbst Hand anlegen, und zwar mit den \cs{footnotemark}- und \cs{footnotetext}-Kommando. \r Erl"autern Sie mir bitte, wie! \p Das \cs{footnotemark}-Kommando macht zweierlei: es setzt eine Fu"s"-notenmarke wie "ublich an die angegebene Stelle und erh"oht den Fu"snotenz"ahler {\tt footnote} um~$1$. \cs{footnotetext} erzeugt den Fu"snotentext mit einer Markierung, die dem aktuellen Wert des Fu"snotenz"ahlers entspricht. \cs{footnotetext} ver"andert den Wert des Fu"snotenz"ahlers {\tt footnote} dabei nicht. \r Ich k"onnte also beispielsweise eine Tabelle so eingeben: % \begin{ogfudatim} \begin{tabular}{|c|l|}\hline \TeX & 3.141\\ \hline \LaTeX & 2.09\footnotemark\\ \hline \end{tabular} \footnotetext{Version vom 25. M"arz 1992.} \end{ogfudatim} und erhielte das folgende Resultat. \begin{center} \begin{tabular}{|c|l|}\hline \TeX & 3.141\\ \hline \LaTeX & 2.09\footnotemark\\ \hline \end{tabular} \footnotetext{Version vom 25. M"arz 1992.} \end{center} \p Genau. Was aber ist zu tun, wenn Sie mehrere Fu"snoten in einer Tabelle erzeugen wollen? \r Warten Sie bitte\dots Das gibt dann ein Problem, denn wenn ich zwei Fu"snoten in einer Tabelle so eingebe. % \begin{ogfudatim} \begin{tabular}{|c|l|}\hline \TeX & 3.141\footnotemark\\ \hline \LaTeX & 2.09\footnotemark\\ \hline \end{tabular} \footnotetext{Version vom 16. M"arz 1992 (f"ur Insider: "`$3{:}16$"').} \footnotetext{Version vom 25. M"arz 1992.} \end{ogfudatim} % Dann erhalte ich nicht das gew"unschte Ergebnis, da ja jeder Aufruf des Befehls \cs{footnotemark} den Fu"s"-noten"-z"ah"-ler um~$1$ erh"oht. Daher w"urde bei beiden Fu"snoten nur die Marke der zweiten Fu"snoten verwendet. \p Genau. Gehen Sie daher so vor. % \begin{ogfudatim} \begin{tabular}{|c|l|}\hline \TeX & 3.141\footnotemark\\ \hline \LaTeX & 2.09\footnotemark\\ \hline \end{tabular} \addtocounter{footnote}{-1} \footnotetext{Version vom 16. M"arz 1992 (f"ur Insider: "`$3{:}16$"').} \stepcounter{footnote} \footnotetext{Version vom 25. M"arz 1992.} \end{ogfudatim} % Damit erhalten Sie das Gew"unschte: \begin{center} \begin{tabular}{|c|l|}\hline \TeX & 3.141\footnotemark\\ \hline \LaTeX & 2.09\footnotemark\\ \hline \end{tabular}. \addtocounter{footnote}{-1} \footnotetext{Version vom 16. M"arz 1992 (f"ur Insider: "`$3{:}16$"').} \stepcounter{footnote} \footnotetext{Version vom 25. M"arz 1992.} \end{center} \r Also mu"s in diesem Fall der Schreibende selbst f"ur die richtige Numerierung der Fu"snoten sorgen. \p Leider ist das so. \r H"aufig geh"oren aber Fu"snoten sachlich zur Tabelle und nicht zum umgebenden Text; wie kann ich erreichen, da"s die Fu"snoten unmittelbar unter die Tabelle gesetzt werden? \r Verwenden Sie in einem solchen Fall eine \env{minipage}, in die Sie die Tabelle stellen, also etwa so: % \begin{ogfudatim} \begin{minipage}{12cm} \begin{tabular}{|c|l|}\hline \TeX & 3.141\footnote{Version vom 16. M"arz 1992 (f"ur Insider: "`$3{:}16"'$).}\\ \hline \LaTeX & 2.09\footnote{Version vom 25. M"arz 1992.}\\ \hline \end{tabular} \end{minipage} \end{ogfudatim} % und Sie erhalten das folgende Ergebnis. \begin{center} \begin{minipage}{12cm} \begin{tabular}{|c|l|}\hline \TeX & 3.141\footnote{Version vom 16. M"arz 1992 (f"ur Insider: "`$3{:}16$"').}\\ \hline \LaTeX & 2.09\footnote{Version vom 25. M"arz 1992.}\\ \hline \end{tabular} \end{minipage} \end{center} \r Aha. Die \env{minipage} benutzt also ihren eigenen Fu"snotenz"ahler. Mich st"ort jetzt nur noch etwas die Linie, die die Tabelle von der Fu"snote abgrenzt. Wie kann ich diese zum Verschwinden bringen? \p Durch eine Neudeklaration des Befehls \cs{footnoterule}. Allerdings sollte diese Neudeklaration nur {\em lokal\/} innerhalb der \env{minipage} erfolgen, denn sonst erscheinen im ganzen Dokument keine Trennlinien mehr zwischen Text und Fu"snoten. Notieren Sie daher etwa das Folgende. % \begin{ogfudatim} \begin{minipage}{12cm} \renewcommand{\footnoterule}{} % <<<=== \begin{tabular}{|c|l|}\hline \TeX & 3.141\footnote{Version vom 16. M"arz 1992 (f"ur Insider: "`$3{:}16$"').}\\ \hline \LaTeX & 2.09\footnote{Version vom 25. M"arz 1992.}\\ \hline \end{tabular} \end{minipage} \end{ogfudatim} % Als Ergebnis erhalten Sie dann die folgende Tabelle. \begin{center} \begin{minipage}{12cm} \renewcommand{\footnoterule}{} \begin{tabular}{|c|l|}\hline \TeX & 3.141\footnote{Version vom 16. M"arz 1992 (f"ur Insider: "`$3{:}16$"').}\\ \hline \LaTeX & 2.09\footnote{Version vom 25. M"arz 1992.}\\ \hline \end{tabular} \end{minipage} \end{center} Sie k"onnen "ubrigens auch hier die Formatierung des Fu"snotentextes, ganz genau wie oben vorgestellt, durch eine "Anderung von \verb|\@makefntext| beeinflussen. Dazu verwenden Sie am besten eine neudefinierte Umgebung, die z.\,B.\ die \env{minipage} und die neuen Definitionen von \cs{footnoterule} und \verb|\@makefntext| beinhalten. Wie ich an andere Stelle schon erw"ahnt habe, sollte das Layout m"oglichst durch Befehle und Umgebungen in einem Style bzw.\ einer Styleoption und nicht direkt im Dokument selbst realisiert werden. \endinput