From 71c52946180c9f028a476f4eb7910c59eae0226c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 31 Mar 2011 23:19:52 +0000 Subject: new translation booktabs-de (31mar11) git-svn-id: svn://tug.org/texlive/trunk@21907 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/booktabs-de/README-DE | 64 ++ .../doc/latex/booktabs-de/booktabs-de.dtx | 1089 ++++++++++++++++++++ .../doc/latex/booktabs-de/booktabs-de.ins | 87 ++ .../doc/latex/booktabs-de/booktabs-de.pdf | Bin 0 -> 274075 bytes 4 files changed, 1240 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/booktabs-de/README-DE create mode 100644 Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.dtx create mode 100644 Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.ins create mode 100644 Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.pdf (limited to 'Master/texmf-dist/doc/latex/booktabs-de') diff --git a/Master/texmf-dist/doc/latex/booktabs-de/README-DE b/Master/texmf-dist/doc/latex/booktabs-de/README-DE new file mode 100644 index 00000000000..1b9c0a22df3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/booktabs-de/README-DE @@ -0,0 +1,64 @@ + The booktabs package + For publication quality tables for LaTeX + + +File: README +Author: Danie Els +Translation: Thomas Manderla / Christine Römer + + + +DESCRIPTION +=========== + +This package provide some additional commands to enhance +the quality of tables in LaTeX. Guidelines are given as +to what constitutes a good table in this context. + +Copyright: (C) 1995--2005 Simon Fear +Licence: GPL + +FILES IN DISTRIBUTION +===================== + + BASE DISTRIBUTION: + + README This file. + booktabs.ins Package installation file. + booktabs.dtx Package source file. + COPYING GPL license file. + + booktabs.sty Package style file. It was produced by + executing "latex booktabs-de.ins". + + DOCUMENTATION: + + booktabs.pdf User manual for booktabs package-de. It was + produced by executing: + pdflatex booktabs-de.dtx + pdflatex booktabs-de.dtx + makeindex -s gglo.ist -o booktabs-de.gls booktabs-de.glo + makeindex -s gind.ist -o booktabs.ind booktabs-de.idx + pdflatex booktabs-de.dtx + pdflatex booktabs-de.dtx + +BASIC INSTALLATION +==================== + + The minimum requirement to use the package is the to have + booktabs-de.sty in a directory where TeX can find it. + + For a basic installation on a TDS compliant system, move the + following files to the following directories: + + /tex/latex/booktabs-de/ + booktabs-de.sty + + /source/latex/booktabs/ + booktabs-de.ins + booktabs-de.dtx + COPY + + /doc/latex/booktabs-de/ + README-DE + booktabs-de.pdf diff --git a/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.dtx b/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.dtx new file mode 100644 index 00000000000..988276743d0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.dtx @@ -0,0 +1,1089 @@ +% \iffalse (meta-comment) +% ----------------------------------------------------------------- +% File: booktabs-de.dtx +% Author: Simon Fear +% Maintainer: Danie Els (dnjels@sun.ac.za) +% Modifiziert von: Christine R"omer and Thomas Manderla +% +% This file is part of the booktabs package for publication +% quality tables for LaTeX +% +% Copyright (C) 1995--2005 Simon Fear +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of +% the License, or (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public +% License along with this program; if not, write to the Free +% Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, +% MA 02111-1307 USA +% +% ----------------------------------------------------------------- +% This file contains the documentations and source code for the +% booktabs-de package for use with LaTeX2e. See the file 'README-DE' +% for a list of all the files as well as directions for the +% installation of this package. +% ----------------------------------------------------------------- +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{booktabs-de.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesPackage{booktabs-de} +%<*package> + [2005/04/14 v1.61803 publication quality tables] +% +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{booktabs}[2005/04/14] +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[ngerman]{babel} +%\usepackage[marginal]{footmisc} +\usepackage{charter} +\setlength{\parindent}{0pt} +\setlength{\parskip}{1ex plus 0.2ex minus 0.1ex} + \EnableCrossrefs + \CodelineIndex + \RecordChanges + \setlength\hfuzz{15pt} + \hbadness=7000 + \MakeShortVerb{\=} + \MakeShortVerb{\"} + \PageIndex +\begin{document} + \DocInput{booktabs-de.dtx} +\end{document} +% +% \fi +% +% \CheckSum{484} +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% +% \DeleteShortVerb{\|} +% \GetFileInfo{booktabs-de.dtx} +% +%\title{Anfertigen von hochwertigen Tabellen mit \LaTeX \thanks{Diese Datei +%basiert auf der booktabs-Version vl.61803 und der Revision von +%2005/04/14.}} +%\author{\Large{Simon Fear}\\300A route de Meyrin Meyrin\\Switzerland.\\\\ +%"Uberf"uhrt ins Deutsche\\ von Thomas Manderla und\\ Christine +%R"omer\footnote{christine\_roemer@t-online.de}} +%\date{Printed \today} +% +% \maketitle +% +% \begin{abstract} +% \noindent Dieser Artikel beschreibt einige zus"atzliche Befehle in +% =booktabs=, geschaffen f"ur die Verbesserung der Qualit"at von +% Tabellen in \LaTeX{}. Richtlinien, was eine gute Tabelle +% ausmacht, werden in diesem Zusammenhang auch angegeben. Die Ausf"uhrungen +% sind zum =booktabs=-Paket aus dem Jahr 2000 (Version 1.61), das +% der Ausgabe von 1995 (Version 1.00) einige Verbesserungen hinzugef"ugt +% hatte, vor allem =longtable=-Kompatibilit"at. +% Weitere Ausgaben (Versionen 1.618, 1.6180 und 1.61803) sind +% blo"s \emph{bug patches} und Unterst"utzung f"ur das =colortbl=-Paket\footnote{Von Danie Els +% (\texttt{dnjels@sun.ac.za}) in Abwesenheit des Autors.}. +% \end{abstract} +% +% \bigskip +% +% \section{Einf"uhrung} +% +% Die unten beschriebenen Routinen sollten das einfache Erstellen von +% Tabellen, wie sie in wissenschaftlichen B"uchern und Zeitschriften erscheinen, +% erm"oglichen. Was sie von gew"ohnlichen \LaTeX -Tabellen unterscheidet, +% ist die vorgegebene Nutzung von Abstand "uber- und unterhalb von Linien, +% sowie Linien unterschiedlicher `Dicke'. Was sie weiterhin von Tabellen, wie sie +% von vielen Leuten, die \LaTeX{} nutzen, erstellt werden, unterscheidet, ist +% das Fehlen vertikaler und doppelter Linien. +% +% Es muss eine deutliche Unterscheidung zwischen dem, was man hier eine +% {\em formale Tabelle} nennt, was ein Set an Werten in beschrifteten Spalten ist, +% und dem, was man {\em Tableau} nennen werde, vornehmen. Letzteres ist das, was im +% \LaTeX -Handbuch dargestellt ist, und zunehmend auch als Ausgabe vieler +% Datenbankverwaltungssysteme zu finden ist. Solche Tableaus haben wahrscheinlich +% Icons im "Uberfluss und verwenden sicherlich auch Farben. Das Layout solche eines +% {em Tableaus} ist (hoffentlich) etwas Einmaliges, wenn man das Durcheinander an +% Material, +% das der Designer zu einer sinnvollen Kombination zusammenzustellen versucht, +% bedenkt. Das Layout einer {\em Tabelle} hingegen hat sich durch Jahrhunderte an +% Erfahrung etabliert und sollte nur in au"sergew"ohnlichen Umst"anden ge"andert +% werden. +% +% Zur Illustration kann dieses Tableau aus dem \LaTeX -Handbuch +% herangezogen werden (S.\,64 alte Edition): +% +% \begin{center} +% \begin{tabular}{||l|lr||} \hline +% M"ucken & Gramm & \$13.65 \\ \cline{2-3} +% & je & .01 \\ \hline +% Gnu & ausgestopft & 92.50 \\ \cline{1-1} \cline{3-3} +% Emu & & 33.33 \\ \hline +% G"urteltier & gefroren & 8.99 \\ \hline +% \end{tabular} +% \end{center} +% +% Das ist ein Mischmasch an Informationen, das zwar wahrscheinlich, +% so wie es ist, vern"unftig dargestellt ist (Aber ist der Emu nun ausgestopft +% oder nicht?). Jedoch sollte es als ver"offentlichte Tabelle viel eher +% gem"a"s der Richtlinien, die weiter unten auf der Seite im Handbuch empfohlen +% werden, erscheinen: +% +% \begin{center} +% \begin{tabular}{@{}llr@{}} \toprule +% \multicolumn{2}{c}{Artikel} \\ \cmidrule(r){1-2} +% Tier & Beschreibung & Preis (\$)\\ \midrule +% M"ucke & pro Gramm & 13.65 \\ +% & pro St"uck & 0.01 \\ +% Gnu & ausgestopft & 92.50 \\ +% Emu & ausgestopft & 33.33 \\ +% G"urtetier & gefroren & 8.99 \\ \bottomrule +% \end{tabular} +% \end{center} +% +% Es bedarf viel weniger M"uhe, das als formale Tabelle zu setzen. +% Es muss kein neues Layout f"ur alles, was gemacht wird, ausgearbeitet werden. +% Zudem kann fast gewiss sein, dass die Daten nicht falsch gelesen werden, weil +% der Leser nicht lernen muss, wie er irgendeine neuartige Pr"asentation zu +% lesen hat. +% +% Ungl"ucklicherweise kann die obige Tabelle nicht in reinem \LaTeX , +% erzeugt werden. Sie kann so gesetzt werden, aber trotz +% bester Bem"uhungen erzeugt das Nutzen simpler =\hline=-Befehle das +% Nachfolgende: +% +% \begin{center} +% \begin{tabular}{@{}llr@{}} \hline +% \multicolumn{2}{c}{Artikel} \\ \cline{1-2} +% Tier & Beschreibung & Preis (\$)\\ \hline +% M"ucke & pro Gramm & 13.65 \\ +% & pro St"uck & 0.01 \\ +% Gnu & ausgestopft & 92.50 \\ +% Emu & ausgestopft & 33.33 \\ +% G"urteltier & gefroren & 8.99 \\ \hline +% \end{tabular} +% \end{center} +% +% Zu beachten ist (wenn es nicht schon offensichtlich ist), dass nicht genug +% Abstand zwischen der obersten Linie und dem großen `A' von `Artikel' ist. +% "Ahnliches gilt f"ur die anderen Linien: Ein direkter Vergleich zeigt dies +% deutlich. +% Au"serdem sind in der ersten Version die oberen und unteren Linien +% st"arker als die mittlere, die wiederum st"arker als die Teillinie +% unterhalb von +% `Artikel' ist. Nat"urlich \emph{k"onnte} man =\doublerulesep= neu definieren +% und dann =\hline\hline= nutzen, um einen "ahnlichen Effekt zu erzielen. Und man +% k"onnte \emph{struts} nutzen, um die Abst"ande zu verbessern. Aber es ist nicht n"otig, +% an solche Sachen denken zu m"ussen. +% Der =booktabs=-Style definiert seine Befehle so, +% dass sich um solche Dinge automatisch gek"ummert wird. +% +% Allgemein w"urde ich sagen, dass dieses Paket von keinem Interesse f"ur +% diejenigen +% ist, die nach einer Alternative zu Pic\TeX{} suchen, um schicke Tableaus zu +% zaubern. Eher ist es eine Gestaltungsrichtlinie im Bereich Tabellenlayout +% f"ur Autoren von wissenschaftlichen Artikeln und B"uchern. +% Es geht nicht zu weit, zu sagen, dass, wenn Sie mit den Befehlen dieses Pakets +% keine Tabelle erstellen können, es neu entwerfen sollten. +% +% \subsection{Eine Anmerkung zur Terminologie\label{notation}} +% +% Im Britischen Setzen wird eine `line' stets `rule' genannt. Vielleicht +% verwirrenderweise (jedenfalls aus historischen Gr"unden) wird die `thickness' +% einer Linie oft als `width' bezeichnet. (wobei nahezu jeder andere dies +% `depth' oder `height' nennen w"urde, wenn sie sich auf eine horizontale +% Linie bezieht). Eine `thick black line' wird `heavy +% rule' genannt. Ich habe diese Terminologie in den meisten der neuen Befehle +% beibehalten. Wenn es f"ur nichts anderes gut ist, dann zumindest, um +% Verwirrung mit =\hline= auszuschlie"sen. In der Deutschen "Ubersetzung wird an +% der Stelle von `St"arke' gesprochen. +% +% \section{Das Layout formaler Tabellen} +% +% Man geht nicht sehr weit fehl, wenn man zwei einfache Regeln +% im Hinterkopf behält: +% \begin{enumerate} +% \item Nie vertikale Linien benutzen. +% \item Nie doppelte Linien benutzen. +% \end{enumerate} +% Diese Richtlinien wirken extrem, aber mir ist noch kein gutes Argument, +% warum man sie brechen sollte, untergekommen. Zum Beispiel, wenn man das +% Gef"uhl hat, +% dass die Information in der linken H"alfte der Tabelle von der rechten +% Seite so verschieden ist, dass sie durch eine vertikale Linie getrennt +% werden muss, so sollte man stattdessen lieber zwei Tabellen verwenden. +% Nicht jeder h"alt sich an die zweite Regel: Ich habe f"ur einen Verleger +% gearbeitet, der auf doppelte Linien "uber Summen bestand. Meine Wahl +% w"are das nicht gewesen. +% +% Es gibt drei weitere Regeln, die es wert sind, hier erw"ahnt zu werden, weil +% sie normalerweise au"serhalb der Kreise von professionellen Setzern +% und Redakteuren unbekannt sind: +% \begin{enumerate}\setcounter{enumi}{2} +% \item St"uckzahlen sollten in den Spaltenkopf (nicht in den K"orper der +% Tabelle) gesetzt werden. +% \item Einem Dezimalpunkt sollte stets eine Ziffer vorangehen; also 0.1 +% {\em nicht} blo\ss .1. +% \item `Ditozeichen', wie G"ansef"'u"schen, sollten nicht benutzt werden, +% um einen Wert zu wiederholen. Unter vielen Umst"anden macht eine freie +% Zelle das Ganze genauso gut. Falls nicht, sollte der Wert wiederholt +% werden. +% \end{enumerate} +% +% Ob Sie den kleinen Penibilit"aten folgen wollen oder nicht, wenn Sie nur die +% folgenden Befehle in Ihren formalen Tabellen benutzen, werden Ihnen Ihre Leser +% dankbar sein. Ich möchte betonen, dass die Richtlinien nicht nur dazu da sind, +% die Pedanten gl"ucklich zu machen. Das Prinzip ist, dass eine verst"arkte Struktur +% in der Pr"asentation bereits von Beginn an die Gedanken strukturiert. +% +% \section{Verwenden der neuen Befehle} +% +% \DescribeMacro\toprule +% \DescribeMacro\midrule +% \DescribeMacro\bottomrule +% Im einfachsten aller F"alle beginnt eine Tabelle mit =\toprule=, hat +% eine einzelne Reihe von Spaltenk"opfen und dann eine trennende Linie, die +% =\midrule=. Nach den Datenspalten wird mit =\bottomrule= abgeschlossen. +% Die meisten Buchverleger setzen =\toprule= und +% =\bottomrule= st"arker (also dicker, siehe Punkt 1.1\ref{notation}) als die +% zwischenliegende =\midrule=. Wenn die Tabellen jedoch in sehr kleinen +% Schriftgr"o"sen erscheinen, ist es manchmal unm"oglich, diese Unterscheidung zu +% treffen und zudem setzen manche Journals routinem"a"sig alle Linien in der +% gleichen St"arke. +% +% Die Linienbefehle hier verwenden alle eine Voreinstellung, der im Dokument +% (vorzugs- aber nicht notwendigerweise in der Pr"aambel) nachjustiert werden +% kann. F"ur die oberste und die unterste Linie ist diese Voreinstellung +% =\heavyrulewidth= und f"ur mittlere Linien ist er =\lightrulewidth= (eine +% genauere Beschreibung folgt). In sehr seltenen F"allen, wenn etwas besonderes +% getan werden muss, k"onnen die optionalen Argumente in die Linienbefehle +% eingesetzt werden, welche folgende formale Syntax haben: +% +% \begin{quote} +% =\toprule=[\meta{wd}] \\ +% =\midrule=[\meta{wd}] \\ +% =\bottomrule=[\meta{wd}] +% \end{quote} +% +% Hierbei ist \meta{wd} eine \TeX dimension (zum Beispiel 1pt, .5em, +% etc.). +% +% Alle hier beschriebenen Linienbefehle stehen nach dem Abschluss =\\= +% der vorigen Reihe (au"ser =\toprule=, der +% gleich nach dem =\tabular{}=befehl kommt). In anderen Worten, sie stehen +% genau da, wo simples \LaTeX{} =\hline= oder =\cline= erlaubt. +% +% \DescribeMacro\cmidrule +% H"aufig wird eine Teillinie ben"otigt, die sich nur "uber einige der Spalten +% erstreckt, wof"ur ein =\cmidrule= (Der Pendant vom \LaTeX =\cline= +% Befehl) ben"otigt wird. F"ur gew"ohnlich sollte diese Linie nicht "uber die +% gesamte Breite der Spalten reichen. Dies ist insbesondere der Fall, wenn ein +% =\cmidrule= direkt nach dem Ende eines anderen begonnen werden muss (\LaTeX +% =\cline=n sto"sen hier zusammen, wenn man nicht ganz besonders vorsichtig mit +% =\extracolsep= ist). Von daher wird man f"ur gew"ohnlich die optionalen +% `Trimm'befehle nutzen wollen. +% +% Die Trimmbefehle stehen, wenn sie "uberhaupt genutzt werden, in +% Klammern (wie diese hier), ohne trennende Leerzeichen. Die m"oglichen +% Festlegungen sind =r=, =r{=\meta{wd}=}=, =l= und +% =l{=\meta{wd}=}=, oder jede Kombination davon, wobei \meta{wd} eine +% Abmessung ist, und =r= und =l= anzeigen, ob das rechte und/oder linke Ende +% der Linie beschnitten werden soll. Die Form ohne explizites Argument entspricht +% =r{\cmidrulekern}=, wobei =\cmidrulekern= voreingestellt +% $0.5$\,em enth"alt, aber es kann vom Nutzer in der Pr"aambel +% festgelegt werden.\footnote{Nutzerr"uckmeldungen ergaben, dass die Vorgabe der +% Version 1.00, 0.25\,em, zu klein war. Entschuldigung f"ur alle Verluste an +% R"uckw"artskompatibilit"at. Zu beachten ist, dass das urspr"ungliche +% Verhalten einfach durch \texttt{\textbackslash cmidrulekern} in der Pr"aambel +% wiederhergestellt werden kann, oder einfach \texttt{(r\{.25\,em\})} +% verwendet werden kann.} +% +% Hier ist ein erl"auterndes Beispiel: =(lr{.75em})= macht einen vorgegebenes +% linkes Beschneiden und genau $0.75$\,em auf der rechten Seite. =(r{.75em}l)= +% ist hier genauso g"ultig.\footnote{\texttt{(lrrlr\{.75em\})} macht "ubrigens das +% gleiche: Nur die zuletzt angetroffenen linken und rechten Festlegungen werden +% angewandt.} +% +% Die vollst"andige Syntax des Befehls lautet +% \begin{quote} +% =\cmidrule=[\meta{wd}](\meta{trim})\{$a$--$b$\} +% \end{quote} +% wobei \meta{wd} ein optionaler Linienst"arkenbefehl ist, in eckigen +% Klammern [wie diese hier] (die +% Voreinstellung hierbei ist =\cmidrulewidth=) und das letzte Argument, +% \emph{das nicht optional ist}, gibt die Zahlen der Spalten an, die "uberspannt +% werden sollen. +% +% Als Beispiel einer Anwendung dieser Befehle kann der Code, der die +% Beispieltabelle oben erzeugte, dienen: +% \begin{verbatim} +% \begin{tabular}{@{}llr@{}} \toprule +% \multicolumn{2}{c}{Artikel} \\ \cmidrule(r){1-2} +% Tier & Beschreibung & Preis (\$)\\ \midrule +% Mücke & pro Gramm & 13.65 \\ +% & pro Stück & 0.01 \\ +% Gnu & ausgestopft & 92.50 \\ +% Emu & ausgestopft & 33.33 \\ +% Gürteltier & gefroren & 8.99 \\ \bottomrule +% \end{tabular} +% \end{verbatim} +% +% \DescribeMacro\addlinespace +% Gelegentlich m"ochte man ein wenig zus"atzlichen Abstand zwischen manchen Reihen +% der Tabelle einzuf"ugen; zum Beispiel vor der letzten Reihe, wenn sie eine Summe +% angibt. Dazu bedarf es blo"s des Einf"ugens von +% \begin{quote} +% =\addlinespace=[\meta{wd}] +% \end{quote} +% nach den =\\= Abschlusszeichen. Zwischen normalen Textreihen ist der Effekt +% genau wie bei herk"ommlichem \LaTeX verwendung von +% =\\[\defaultaddspace]=, was ich eher klobig finde. Au"serdem ist es besser +% als =\\ \\=, was zu viel Abstand einf"ugt. Zudem kann +% =\addlinespace= vor, nach oder zwischen Zeilen verwendet werden, wenn man das +% genaue Ausma"s an Abstand, der eingef"ugt werden soll, kontrollieren will. Der +% voreingestellte Abstand vor oder nach einer angrenzenden Linie wird entweder +% durch genau =\defaultaddspace= oder die Gr"o"se des Abstands, die im optionalen +% Argument angegeben wird, ersetzt.\footnote{Das ist eine "Anderung zur Version +% 1.00, +% wo der Abstand manchmal \emph{zus"atzlich} zum voreingestellten Abstand um die +% Linie berechnet wurde.} +% +% \section{Missbrauch der neuen Befehle} +% +% F"ur ein Zusammenarbeiten der neuen Linienbefehle mit =\hline= oder +% =\cline= kann nicht garantiert werden, auch wenn diese verf"ugbar und +% unver"andert bleiben. Man kann sich aber auch keinen Grund vorstellen, +% warum man sie vermischen wollte. +% +% Viel wichtiger ist, dass die Linien, die durch neue Befehle erstellt +% werden, unter keiner Garantie mit Vertikalen verbunden werden, die durch ={|}= +% -Buchstaben in der Pr"aambel gebaut werden. Das ist ein Feature (siehe oben). Man +% sollte in Tabellen einfach keine vertikalen Linien verwenden, Punkt. +% +% \DescribeMacro\morecmidrules +% Wenn man sich vom Benutzen einer Doppellinie beim besten Willen nicht abhalten +% kann, wird selbst eine so bizarre Konstruktion wie =\toprule\bottomrule\midrule= +% ohne eine Fehlermeldung funktionieren (genauso wie man =\hline= verdoppeln +% kann). Diese Linien werden vom normalen \LaTeX separator =\doublerulesep= +% getrennt. Wenn die Perversion, doppelte Linien zu setzen, soweit geht, +% doppelte =\cmidrule=s einzubauen, so wird man den zus"atzlichen Befehl +% =\morecmidrules= ben"otigen, um das ordentlich zu machen, denn normalerweise sind +% zwei =\cmidrule=s in einer Reihe eine vern"unftige Konstruktion, die nach zwei +% Linien in derselben `Linienreihe' ruft. Daher schreibt der zweite Befehl bei +% \begin{quote} +% =\cmidrule=\{1-2\}=\cmidrule{1-2}= +% \end{quote} +% eine Linie, die die erste genau "uberschreibt. +% Ich nehme an, man m"ochte dann eher +% \begin{quote} +% =\cmidrule=\{1-2\}=\morecmidrules==\cmidrule=\{1-2\} +% \end{quote} +% was eine doppelte Linie zwischen den Spalten eins und zwei ergibt und durch +% =\cmidrulesep= getrennt wird (Hinweis: Da eine =\cmidrule= normalerweise +% sehr d"unn ist, richtet das normale =\doublerulesep= hier wahrscheinlich +% zu viel Abstand ein). Eine ganze neue Reihe an Linien sollte abgeschlossen +% werden, bevor der Befehl =\morecmidrules= eingegeben wird. Zu beachten ist, dass +% =\morecmidrules= keinerlei Effekt hat, wenn er nicht unmittelbar einer +% =\cmidrule= folgt. (d.\,h. es ist kein allgemeiner abstandschaffender Befehl). +% +% \DescribeMacro\specialrule +% Falls man das au"sergew"ohnliche Bed"urfnis hat, genau $0.5$\,em, zwischen zwei +% Linien festzulegen, so lie"se sich eine Konstruktion wie =\midrule = +% =\addlinespace[.5em] \midrule= verwenden. In einem seltenen Anfall von Toleranz +% habe ich dann doch den Befehl +% \begin{quote} +% =\specialrule=\{\meta{wd}\}\{\meta{abovespace}\}\{\meta{belowspace}\} +% \end{quote} +% erstellt, bei dem alle drei Argumente obligatorisch sind. Aber, wer den h"aufig +% verwendet, hat Zweck und Inhalt der obigen Richtlinien falsch verstanden. Eine +% vorangehende Linie f"ugt ihren voreingestellten Abstand nicht unter sich und +% eine nachstehende Linie f"ugt keinen Abstand "uber sich hinzu, folglich bekommt +% man \emph{genau} den Abstand, der in den Argumenten angegeben wird.\footnote{Das +% ist eine "Anderung zur Version 1.00, die vielmehr einen extra +% \texttt{\textbackslash doublerulesep}, wo immer sie konnte, hinzuf"ugte.} +% +% +% \section{Booktabs und longtables} +% +% Wenn man sowohl das =booktabs=- als auch das =longtable=-Paket geladen hat, +% k"onnen die =booktabs= Linienbefehle ganz genau wie oben beschrieben in einer +% =longtable= verwendet werden. +% +% Es gibt eine Neuheit, die es wert ist, erw"ahnt zu werden: Innerhalb +% einer =longtable= k"onnen die optionalen linken und rechten Trimmbefehle +% verwendet werden, die normalerweise nur f"ur =\cmidrule=s, mit =\toprule=, +% =\midrule= und =\bottomrule= (und wenn es sein muss auch mit=\specialrule=) +% funktionieren. Nutzer, die die vorherige Ausgabe wegen longtable-Kompatibilit"at +% gehackt haben,\footnote{Jim Service war der Erste.} schienen alle Linien auf der +% rechten Seite um 0.5\,em beschneiden zu wollen. Ich denke, dasselbe l"asst sich +% durch =@{}= als Spezifikation der letzten Spalte erreichen. +% Dennoch, nach dem Ausarbeiten des restlichen Codes war es ein +% leichtes, Parsing f"ur die optionalen Argumente hinzuzuf"ugen, also hab +% ich es gemacht. (Ich habe es aber nicht durchgezogen, noch das optionale Beschneiden der +% Linien \emph{au"serhalb} einer =longtable= zu erm"oglichen. Das w"are eine +% Riesenarbeit gewesen. Wenn man unbedingt beschnittene Linien haben muss, dann +% sollte man =longtable=s verwenden!) +% +% Ein Hinweis etwas technischer Natur: Innerhalb einer =longtable= ergeben +% =\hline= und +% =\hline\hline= beide eine \emph{doppelte} Linie (um Seitenumbr"uche an +% dieser Stelle zu erm"oglichen). Die =booktabs=-Linie tut das hingegen +% \emph{nicht}. Die automatische Doppelung von =\hline= in der =longtable= ist +% fragw"urdig, sogar nach Aussage der Dokumentation zu dem Paket. +% Aber doppelte =booktabs=Linien ergeben auch beinahe gar keinen Sinn. Im +% ungl"ucklichen Fall, dass eine =booktabs=linie an einem Seitenumbruch +% erscheinen sollte, muss man die notwendigen Anpassungen per Hand machen. +% (Im Allgemeinen heißt das, die st"orende Linie zu l"oschen.) +% +% +% \section{Booktabs und das colortbl-Paket} +% +% =Booktabs= ist jetzt mit dem =colortbl=-Paket kompatibel.\footnote{Seit v1.6180} +% Der Befehl \cmd{\arrayrulecolor}\\ +% wird farbige Linien hervorrufen, wenn das =colortbl=-Paket geladen ist. +% +% +% \section{Technische Zusammenfassung der Befehle} +% +% Die neuen Linienbefehle sind innerhalb der voreingestellten =tabular=- (und +% =array=-) Umgebungen g"ultig, im modifizierten =tabular= und =array= von +% =\usepackage{array}=, und innerhalb der voreingestellten Tabellen und +% =longtables= nach\\ +% =\usepackage{longtable}=. +% +% Die Befehle folgen der Standardplatzierungssyntax von =\hline=. +% Es kann Platz (sogar ein, aber nicht zwei Enter) +% zwischen aufeinanderfolgenden Linienbefehlen sein. +% \footnote{Eine willkommene Ver"anderung gegen"uber Version 1.00, +% bei der Abstand zwischen Linienbefehlen f"ur r"atselhafte Fehlermeldungen sorgte.} +% +% Was sich als gro"se Ver"anderung zu vorherigen Ausgaben zeigt, ist, dass +% ich innerhalb des Macrocodes jetzt drei Linienklassen definiere. (Im +% normalen Gebrauch ben"otigt man diese Definitionen nicht, deshalb habe ich sie +% oben nicht erw"ahnt. +% Eine Linie der Klasse 1 (ansonsten eine `normale' Linie genannt) ist jede +% =\toprule=, =\midrule=, =\bottomrule=, oder =\cmidrule=. Die Linien der Klasse 2 +% sind =\specialrule= und =\addlinespace=. Schlie"slich ist eine Linie der Klasse +% 0 keine der vorhergehenden -- oder in anderen Worten, "uberhaupt keine +% Linie.\footnote{Mit der Ausnahme, dass \texttt{\textbackslash hline} und +% \texttt{\textbackslash cline} Klasse 0 sind. Doch es gibt keinen Grund, dar"uber +% schlaflose N"achte zu verbringen, da man die beiden Linienziehsysteme nicht +% durcheinander bringen m"ochte.} Zu beachten ist, dass =\addlinespace= als +% eine Klasse-2-Regel gilt, nicht als Klasse-0-Text. +% +% Im Folgenden, wird jeder Befehl im `normalen Gebrauch', beschrieben, also +% die Linie wird zwischen zwei Textzeilen verwendet. (Oder technischer, +% ihr geht eine Klasse-0-Linie vorher und eine schlie"st sich ihr an). Danach +% wird ein Blick auf die Ausnahmen geworfen. +% \begin{quote} +% =\toprule=[\meta{wd}] +% \end{quote} +% Eine Linie von der St"arke \meta{wd} (default =\heavyrulewidth=) mit +% =\abovetopsep= Abstand dar"uber und +% =\belowrulesep= zus"atzlichen vertikalen darunter eingef"ugten Abstand. Als +% Voreinstellung ist =\abovetopsep= null, was f"ur eine Linie, die ganz oben +% stehen soll, +% recht vern"unftig scheint. Wenn die Tabellen jedoch Beschriftungen haben, +% kann es sinnvoller sein, =\abovetopsep= zu verwenden, um eine angemessene Menge +% an Abstand zwischen Beschriftung und Tabelle einf"ugen, als im Eifer des Gefechts +% daran zu denken, einen =\vspace{}=-Befehl einzusetzen. +% \begin{quote} +% =\midrule=[\meta{wd}] +% \end{quote} +% Eine \meta{wd} (default =\lightrulewidth=) Linie mit +% =\aboverulesep= Abstand dar"uber und +% mit =\belowrulesep= Abstand darunter. +% \begin{quote} +% =\bottomrule=[\meta{wd}] +% \end{quote} +% Eine \meta{wd} (default =\heavyrulewidth=) Linie mit =\aboverulesep= +% Abstand dar"uber und mit =\belowbottomsep= Abstand darunter. Voreingestellt ist +% =\belowbottomsep= null\footnote{Das ist eine Ver"anderung zur Version 1.00, +% bei der stets ein \texttt{\textbackslash belowrulesep}} war. +% Es gibt einen h"aufig vorkommenden und legitimen Grund, warum man Platz unter +% der untersten Linie schaffen möchte: n"amlich, wenn es um Fu"snoten in Tabellen +% geht. +% Wenn man nicht die Voreinstellung "uberschreibt, kann man +% =\bottomrule \addlinespace[\belowrulesep]= verwenden +% oder einen passend gestalteten \emph{strut} in den Fu"snotentext setzen. +% Aber damit es sich sinnvoll in einer =longtable=-Fu"szeile verh"alt, +% muss die Voreinstellung null sein. +% \begin{quote} +% =\cmidrule=[\meta{wd}](\meta{trim})\{$a$--$b$\} +% \end{quote} +% Eine \meta{wd} (default =\cmidrulewidth=) Linie mit +% =\aboverulesep= Abstand dar"uber (au"ser sie folgt einer anderen +% =\cmidrule=, in welchem Fall sie der gleichen vertikalen Anordnung folgt. Das +% gleiche passiert, wenn sie auf eine =\morecmidrules= folgt, getrennt von einer +% vorhergehenden =\cmidrule= um =\cmidrulesep=). +% Eine =\cmidrule= hat +% =\belowrulesep= unter sich (au"ser ihr folgt eine andere +% =\cmidrule=, in welchem Fall die folgende Linie der gleichen vertikalen +% Anordnung folgt; oder wenn nach ihr eine =\morecmdirules= kommt, in welchem Fall +% =\cmidrulesep= unter ihr Platz gelassen wird). +% +% Die =\cmidrule= "uberspannt Spalten $a$ bis $b$ genauso, wie es im obligatorischen +% Argument angegeben wurde. Das optionale Argument \meta{trim}, das wenn +% "uberhaupt in Klammern steht, kann jede Sequenz der Zeichen =r=, =l= +% und ={=\meta{wd}=}= beinhalten, wobei letzteres das Kerning auf die Seite +% anwendet, die das direkt vorhergehende Zeichen angab. +% (Momentan wird hier noch nicht auf Fehler "uberpr"uft, es gilt also darauf zu +% achten, die Syntax richtig zu setzen.) +% \begin{quote} +% =\morecmidrules= +% \end{quote} +% Instruiert \LaTeX\ damit, eine neue Reihe von =\cmidrules= zu beginnen, +% die von der letzten durch =\cmidrulesep= getrennt wird. Hat in einem anderen +% Kontext keine Bedeutung. +% \begin{quote} +% =\specialrule=\{\meta{wd}\}\{\meta{abovespace}\}\{\meta{belowspace}\} +% \end{quote} +% Eine \meta{wd} Linie -- zu beachten ist, dass das hier ein obligatorisches +% Argument ist -- mit +% \meta{abovespace} dar"uber und \meta{belowspace} darunter. +% \begin{quote} +% =\addlinespace=[\meta{wd}] +% \end{quote} +% Technisch gesehen hat das denselben Effekt wie +% =\specialrule{0pt}{0pt}{=\meta{wd}=}=, d.\,h. eine Linie ohne St"arke und ohne +% Abstand dar"uber und mit \meta{wd} (default =\defaultaddspace=) Abstand +% darunter. Dieser Befehl wurde in erster Linie designed , um im Tabellenk"orper +% Abst"ande hinzuzuf"ugen, kann aber auch genutzt werden, um eine genaues +% Ma"s an Abstand "uber oder unter einer Klasse-1-Linie festzulegen. +% +% \vspace{1em} +% Nun zu den Ausnahmen zu den oberen Befehlen. Es wurde bereits in den +% Definitionen gezeigt, dass vor und nach den Klasse-2-Linien genauso viel +% Abstand gelassen wird, wie in den Argumenten angegeben. +% Das hat zur Folge, dass eine Klasse-2-Linie den Abstand, der normalerweise +% durch eine Klasse-1-Linie erzeugt w"urde, unterdr"uckt (Z.\,B. +% =\belowrulesep= nach einer =\toprule=) und ihn mit dem Argument +% der Klasse-2-Linie ersetzt. Analog dazu wird bei der Kombination +% \{Klasse-2-Linie\}\{Klasse-1-Linie\} der "ubliche Abstand oberhalb +% der Klasse-1-Linie (z.\,B. =\aboverulesep=) unterdr"uckt. Allerdings wird bei +% der Kombination \{Klasse-2-Linie\}\{Klasse-2-Linie\} kein Abstand unterdr"uckt: +% die Linien werden sowohl durch ={=\meta{belowspace}=}= der ersten Linie +% als auch durch ={=\meta{abovespace}=}= der zweiten Linie getrennt. +% Nicht zuletzt ergibt die Kombination \{Klasse-1-Linie\}\{Klasse-1-Linie\} +% immer Linien, die durch =\doublerulesep= getrennt sind und sie unterdr"uckt +% allen normalen Abstand, der zwischen den Linien erzeugt worden ist (aber +% l"asst "uber der ersten und unter der zweiten normale Abst"ande). +% +% Als eine Ausnahme zu dieser Ausnahme schlie"st `Klasse-1-Linie' +% =\cmidrule= aus. Derartige Linien lassen sich mit anderen =\cmidrule=s und +% =\morecmidrules= ganz normal wie oben beschrieben kombinieren. Ich wei"s +% nicht, und es ist mir auch egal, was die Kombination +% =\toprule\cmidrule{1-2}\midrule= erg"abe. Ich sehe keine Entschuldigung +% f"ur eine derartige Anwendung. +% +%\vspace{1em} +% Die voreingestellten Ausma"se werden zu Beginn der Makrobeschreibung +% (Section \ref{code}) definiert. Der Nutzer kann diese Voreinstellungen +% in der Pr"aambel "andern oder auch au"serhalb einer Tabellenumgebung, +% ganz einfach, indem er einen Befehl in genau demselben Format wie in +% Sektion \ref{code} einf"ugt. Eine Neudefinition wird bis zum Ende des Dokuments, +% oder bis sie wieder neu definiert wird, wirken. +% \emph{Innerhalb einer Tabelle} m"usste man die "Anderung global in einer +% =noalign=-Gruppe machen: +% z.\,B. \verb|\noalign\{\global\abovetopsep=1em\toprule}|. Ich hoffe, +% wird nie n"otig sein. +% +% \section{Danksagungen} +% Bin nat"urlich dem DEK und Lamport riesig zu Dank verpflichtet; das optionale +% Argument und das =\cmidrule=zeug +% insbesondere wurde von =latex.sty= geklaut. +% Das Dokumentationtreiberzeug wurde von der tools-Paketbeschreibung +% =dcolumn.dtx= von David Carlisle geklaut. +% +% F"ur das beta-Testen und die Unterstützung \ldots +% +% \StopEventually +% +% \section{Der code\label{code}} +% +% Die aktuelle Version wird am Anfang der Datei definiert, was in etwa so +% aussieht +% \begin{macrocode} +%<*package> +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{booktabs} +% [\filedate\space version\fileversion] +% \end{macrocode} +% +% Zuerst werden die oben beschriebenen neuen Dimensionen eingerichtet: +% \begin{macrocode} +\newdimen\heavyrulewidth +\newdimen\lightrulewidth +\newdimen\cmidrulewidth +\newdimen\belowrulesep +\newdimen\belowbottomsep +\newdimen\aboverulesep +\newdimen\abovetopsep +\newdimen\cmidrulesep +\newdimen\cmidrulekern +\newdimen\defaultaddspace +\heavyrulewidth=.08em +\lightrulewidth=.05em +\cmidrulewidth=.03em +\belowrulesep=.65ex +\belowbottomsep=0pt +\aboverulesep=.4ex +\abovetopsep=0pt +\cmidrulesep=\doublerulesep +\cmidrulekern=.5em +\defaultaddspace=.5em +% \end{macrocode} +% Und einige interne Z"ahler, die f"ur den Endnutzer von keinem Interesse +% sind, die unten beschrieben werden, sobald es n"otig sein sollte: +% +% \changes{v1.618}{2003/03/28}{Remove \cs{@cmidrulewidth} } +% \begin{macrocode} +\newcount\@cmidla +\newcount\@cmidlb +\newdimen\@aboverulesep +\newdimen\@belowrulesep +\newcount\@thisruleclass +\newcount\@lastruleclass +\@lastruleclass=0 +\newdimen\@thisrulewidth +% \end{macrocode} + +% \DescribeMacro\futurenonspacelet +% +% Als n"achstes wird ein n"utzliches Makro definiert +% (mehr oder weniger direkt aus dem +% Kapitel Dirty Tricks aus dem \TeX book; dort verzeichnet). Man sollte +% =\futurenonspacelet= anstelle von =\futurelet= verwenden, wenn man nach dem +% n"achsten (non-space) Zeichen, nach einem Makro mit einem Argument sucht. +% (Nach einem Makro +% ohne ein Argument wird ein Leerzeichen ohnehin ignoriert, also w"urde +% =\futurenonspacelet= nicht gebraucht werden.) Dieser Kniff erlaubt es dem +% Nutzer, wei"se Leerzeichen zwischen aufeinanderfolgenden Linienbefehlen zu +% setzen (was in Version 1.00 nicht klappte). +% \begin{macrocode} +\def\futurenonspacelet#1{\def\@BTcs{#1}% + \afterassignment\@BTfnslone\let\nexttoken= } +\def\@BTfnslone{\expandafter\futurelet\@BTcs\@BTfnsltwo} +\def\@BTfnsltwo{\expandafter\ifx\@BTcs\@sptoken\let\next=\@BTfnslthree + \else\let\next=\nexttoken\fi \next} +\def\@BTfnslthree{\afterassignment\@BTfnslone\let\next= } +% \end{macrocode} +% +% +% \subsection{Linien von ganzer St\"arke} +% +% Wenn man nicht in einer =longtable=Umgebung ist, kann man einfach +% Linien von ganzer St"arke als =\hrule= in einer =\noalign{}=-Gruppe +% bearbeiten. Innerhalb einer =longtable= jedoch muss die Linie wie eine +% =\cmidrule{1-\LT@cols}= gezogen werden (Die Begr"undung daf"ur ist in der +% =longtable=-Dokumentation erkl"art). +% +% Um beides zu erlauben, m"ussen alle Linienmakros sofort eine +% =\noalign=-Gruppe "offnen, w"ahrend sie ausarbeiten, ob sie innerhalb +% einer =longtable= aufgerufen wurden; wenn das nicht gemacht wird, bekommt, +% der \TeX zu Grunde liegender =\halign=-Prozess Schluckauf. +% Ich verwende den kleinen Trick von \LaTeX{} +% (\verb?\ifnum=0`}?), um dem Parser vorzumachen, dass die +% Klammerzahl in Ordnung ist. Die Klammer wird nach dem ganzen "Uberspringen +% am Ende des =\@BTendrule=-Makros dann tats"achlich geschlossen. +% +% Die Klasse-1-Linien und =\specialrule= unterscheiden sich in den Voreinstellungen +% nur im Abstand dar"uber und darunter und in der St"arke, die durch eine normale +% Routine erlassen wird, =\@BTrule=, +% siehe unten. Die Abst"ande, =\@aboverulesep= und =\@belowrulesep=, +% werden innerhalb der =\noalign=gruppe festgelegt, werden also von +% =\@BTrule= "ubernommen. Genauso wei"s =\@BTrule= alles, was es "uber die +% Routine, die es aufgerufen hat, wissen muss, durch das Untersuchen der +% "ubernommenen =\@thisruleclass=. Das optionale St"arkenargument wird von +% =\@BTrule= analysiert, nachdem es auf die Voreinstellung gesetzt wurde, falls +% es fehlt. +% +%\begin{macro}{\toprule} +% \changes{v1.61803}{2005/04/14}{Change \cmd{\@belowrulesep} to \cmd{\belowrulesep}} +% \begin{macro}{\midrule} +% \begin{macro}{\bottomrule} +% \begin{macro}{\specialrule} +% \begin{macrocode} +\def\toprule{\noalign{\ifnum0=`}\fi + \@aboverulesep=\abovetopsep + \global\@belowrulesep=\belowrulesep + \global\@thisruleclass=\@ne + \@ifnextchar[{\@BTrule}{\@BTrule[\heavyrulewidth]}} +\def\midrule{\noalign{\ifnum0=`}\fi + \@aboverulesep=\aboverulesep + \global\@belowrulesep=\belowrulesep + \global\@thisruleclass=\@ne + \@ifnextchar[{\@BTrule}{\@BTrule[\lightrulewidth]}} +\def\bottomrule{\noalign{\ifnum0=`}\fi + \@aboverulesep=\aboverulesep + \global\@belowrulesep=\belowbottomsep + \global\@thisruleclass=\@ne + \@ifnextchar[{\@BTrule}{\@BTrule[\heavyrulewidth]}} +\def\specialrule#1#2#3{\noalign{\ifnum0=`}\fi + \@aboverulesep=#2\global\@belowrulesep=#3\global\@thisruleclass=\tw@ + \@BTrule[#1]} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\addlinespace} +% Ein =\addlinespace= ist im Wesentlichen eine Linie ohne Breite, keinem Abstand +% dar"uber und angegebem (oder voreingestelltem) Abstand darunter. Aber weil die +% Linie nicht wirklich gezogen wird, sondern blo\ss ein =\vskip= ist, ist es nicht +% n"otig, zu schauen, ob man in einer longtable ist. Also muss man +% =\@BTrule= nicht als `echte' Linie bezeichnen. Aber wir teilen den =\@BTendrule= +% Vorausschau- und flagsetting -Code (sieh unten), und der =\vskip= wir dort +% gemacht. +% \begin{macrocode} +\def\addlinespace{\noalign{\ifnum0=`}\fi + \@ifnextchar[{\@addspace}{\@addspace[\defaultaddspace]}} +\def\@addspace[#1]{\global\@belowrulesep=#1\global\@thisruleclass=\tw@ + \futurelet\@tempa\@BTendrule} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@BTrule} +% Alle Linien (au"ser =\addlinespace=) teilen diesen Code. +% \begin{macrocode} +\def\@BTrule[#1]{% + \global\@thisrulewidth=#1\relax +% \end{macrocode} +% Das St"arkenargument (wenn der Nutzer keines angibt, dann wird +% die Aufrufroutine =\@BTrule= mit der Voreinstellung aufgerufen haben) sollte f"ur +% sp"atere Verwendung in einer globalen Variable gespeichert werden. +% \begin{macrocode} + \ifnum\@thisruleclass=\tw@\vskip\@aboverulesep\else +% \end{macrocode} +% Speziallinien f"ugen immer angegebenen Abstand dar"uber ein. (Es ist +% zu beachten, dass =addlinespaces= hier nicht gehen). +% \begin{macrocode} + \ifnum\@lastruleclass=\z@\vskip\@aboverulesep\else + \ifnum\@lastruleclass=\@ne\vskip\doublerulesep\fi\fi\fi +% \end{macrocode} +% Nach Text (der letzten Klasse-1-Linie) sollte der Linie =\aboverulesep= +% vorangehen; doch falls es direkt nach einer vorhergehenden Linie kommt, +% sollte ein =\doublerulesep= eingef"ugt werden. +% +% Nun wird durch einen sehr fiesen Hack herausbekommen, ob man sich in einer +% =longtable= befindet. Das ist leicht, wenn =\longtable= nicht mal definiert +% ist: Dann ist man nicht drin. +% Aber es reicht nicht einfach nur zu gucken, ob =longtable= geladen +% ist -- man k"onnte ja auch innerhalb einer normalen Tabelle anstatt einer +% =longtable= sein. Also wird geguckt, ob =\hline= von seiner +% \LaTeX definition umgemodelt wurde, um genauso wie +% =\LT@hline= zu sein. (Momentan macht =longtable= diese Umdefinition, wenn es +% eine =longtable=-Umgebung "offnet, aber nicht global, also ist es gel"oscht, +% sobald sich die Umgebung schlie"st.) Ein weiteres Paket k"onnte +% das m"oglicherweise tun! Und =longtable= k"onnte sich ver"andern, insofern +% es das einf"uhrt! Bisher ist es nicht v"ollig sicher, aber ich habe noch +% keine bessere Methode gefunden. +% +% Wir richten =\@BTswitch= ein, um =\@BTnormal= oder =\@BLTrule= aufzurufen, +% je nachdem was passt, und rufen es dann auf. +% \begin{macrocode} + \ifx\longtable\undefined + \let\@BTswitch\@BTnormal + \else\ifx\hline\LT@hline + \let\@BTswitch\@BLTrule + \else + \let\@BTswitch\@BTnormal + \fi\fi + \@BTswitch} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\CT@arc@} +% \changes{v1.6180}{2005/03/16}{add colortbl command for color support} +% Das ist Unterst"utzung f"ur das =colortbl=-Paket f"ur farbige +% Linien. \cmd{\CT@arc@} h"alt das \cmd{\arrayrulecolor} Setting. +% \begin{macrocode} +\AtBeginDocument{% + \providecommand*\CT@arc@{}}%% colortbl support +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@BTnormal} +% \changes{v1.6180}{2005/03/16}{add colortbl \cmd{\CT@arc@} command for color support} +% Das ist f"ur den Fall, dass wir \emph{nicht} in einer =longtable= sind. +% Wir sind bereits in einer +% =\noalign=-Gruppe, alles, was getan werden muss, ist eine =\hrule= zu ziehen +% und alle zur"uckliegenden Abst"ande zu verschlingen, um dann +% die Abschlussroutine mit =\@tempa= mit dem n"achsten Zeichen im Dokument +% gleichzusetzen. +% +% \begin{macrocode} +\def\@BTnormal{% + {\CT@arc@\hrule\@height\@thisrulewidth}% + \futurenonspacelet\@tempa\@BTendrule} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@BLTrule} +% Das ist f"ur eine Linie voller St"arke in einer =longtable=. Zuerst wird geguckt, +% ob ein Kerningargument verwendet wurde; falls das so ist, soll =\@@BLTrule= +% es auslesen, +% ansonsten kann =\@@BLTrule= mit einem leeren String aufgerufen werden: +% \begin{macrocode} +\def\@BLTrule{\@ifnextchar({\@@BLTrule}{\@@BLTrule()}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@@BLTrule} +% \begin{macrocode} +\def\@@BLTrule(#1){\@setrulekerning{#1}% +\global\@cmidlb\LT@cols +% \end{macrocode} +% Die Routine =\@setrulekerning= analysiert die Zeichen des Kerningarguments +% und setzt die globalen Kerningst"arken entsprechend (oder zur Voreinstellung, +% wenn der Nutzer +% sie nicht explizit angegeben hat). Die globale Anweisung an =\@cmidlb= +% legt die Spaltenzahl f"ur die =\@cmidruleb=makro fest, die mit +% =cmidrules= geteilt wird. +% \begin{macrocode} +\ifnum0=`{\fi}% +% \end{macrocode} +% Schlie"st die momentan ge"offnete =\noalign=-Gruppe. Innerhalb einer =longtable= +% werden Linien als Bezugsstriche in einer Textbox, die +% =\LT@cols= Spalten breit ist, gezogen. +% \begin{macrocode} +\@cmidruleb +% \end{macrocode} +% Zeichnet die Linie. Der =\@cmidruleb=-Code wird mit gew"ohnlichen =\cmidrule=s +% geteilt. +% \begin{macrocode} +\noalign{\ifnum0=`}\fi +% \end{macrocode} +% Ein neues =noalign= muss aber sofort ge"offnet werden, da \TeX{} sonst eine +% neue Textbox beginnen wird, wo wir keine wollen. Dann, nach dem Löschen +% des nicht gewollten wei"sen Platzes, kann die Abschlussroutine aufgerufen +% werden. +% \begin{macrocode} +\futurenonspacelet\@tempa\@BTendrule} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@BTendrule} +% Wir schauen einen Schritt weiter; das Zeichen ist in =\@tempa=), um zu sehen, ob +% eine andere Linie folgt (Der Nutzer sollte sich sch"amen!). Wenn dem so ist, +% wird =\@lastruleclass= =\@thisruleclass= gleichgesetzt +% (und damit f"ur die folgende Linie festgelegt). Wenn es keine darauffolgende +% Linie gibt, wird =\@lastruleclass= freigelassen (d.\,h. auf Null +% gesetzt), was technisch gesehen, nicht wahr ist, da gerade eine Linie gezogen +% wurde. Aber es stellt es korrekt f"ur die n"achste Linie, der begegnet wird, +% ein; die muss auf dazwischenliegenden Text folgen. +% \begin{macrocode} +\def\@BTendrule{\ifx\@tempa\toprule\global\@lastruleclass=\@thisruleclass + \else\ifx\@tempa\midrule\global\@lastruleclass=\@thisruleclass + \else\ifx\@tempa\bottomrule\global\@lastruleclass=\@thisruleclass + \else\ifx\@tempa\cmidrule\global\@lastruleclass=\@thisruleclass + \else\ifx\@tempa\specialrule\global\@lastruleclass=\@thisruleclass + \else\ifx\@tempa\addlinespace\global\@lastruleclass=\@thisruleclass + \else\global\@lastruleclass=\z@\fi\fi\fi\fi\fi\fi + \ifnum\@lastruleclass=\@ne\relax\else\vskip\@belowrulesep\fi + \ifnum0=`{\fi}} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Spezielle Unterlinien} +% +% \begin{macro}{\@setrulekerning} +% Der folgende Code analysiert die Trimmingargumente (wenn es welche gibt) +% f"ur =\cmidrule= oder eine =\BLTrule=. Die Linie +% wird links und rechts durch =\cmrkern@l= und =\cmrkern@l= beschnitten, +% die beide als Voreinstellung Null haben, auf =\cmidrulekern= durch die +% einfachen Argumente +% =(lr)= gesetzt werden oder durch den Nutzer wie bei =(r{.5em})= eingestellt +% werden. Es wird Zeichen f"ur Zeichen durch die Argumente gest"obert. +% Die Zeichen =r= und =l= bewirken, dass =\cmrkern@r= oder =\cmrkern@l= auf +% =\cmidrulekern= gesetzt werden. Es gibt keine Vorschau, um zu sehen, ob +% eine St"arke das n"achste Zeichen ist. Diese Strategie ist f"ur die +% einfachen Befehle effizient, wohingegen es f"ur die bedingten Befehle +% ineffizient ist. Viel wichtiger ist jedoch, dass es viel einfacher +% zu programmieren ist. Die Zeichen =r= und =l= legen auch +% =\cmrswitch= fest, sodass, wenn sich das n"achste Zeichen als +% ={=\meta{wd}=}= herausstellt, das Kerning auf der Seite, die gerade +% festgelegt ist, gemacht wird. Ich war zu faul, um eine Fehlermeldung zu +% zu programmieren, falls anderen Zeichen als =r=, =l= oder +% ={=\meta{wd}=}= begegnet wird. +% \changes{v1.6180}{2005/03/16}{Refine option testing in \cmd{\@setrulekerning}} +% \begin{macrocode} +\def\@setrulekerning#1{% + \global\let\cmrkern@l\z@ + \global\let\cmrkern@r\z@ + \@tfor\@tempa :=#1\do + {\def\@tempb{r}% + \ifx\@tempa\@tempb + \global\let\cmrkern@r\cmidrulekern + \def\cmrsideswitch{\cmrkern@r}% + \else + \def\@tempb{l}% + \ifx\@tempa\@tempb + \global\let\cmrkern@l\cmidrulekern + \def\cmrsideswitch{\cmrkern@l}% + \else + \global\expandafter\let\cmrsideswitch\@tempa + \fi + \fi}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\cmidrule} +% \begin{macro}{\@cmidrule} +% \begin{macro}{\@@cmidrule} +% \begin{macro}{\@@@cmidrule} +% =\cmidrule= nutzt =\@lastruleclass= auf eine v"ollig andere Weise +% als die Linien von ganzer St"arke. (Vielleicht h"atte ich ein anderes +% Flag nutzen sollen; es erschien mir zu der Zeit effizient \ldots). Das +% wird (links) auf eins gesetzt, wenn man sich in der Mitte einer Reihe von +% =\cmidrules= befindet oder eine neue (mit =\morecmidrules=) anf"angt. +% Ansonsten, f"ur den Fall, dass =\@lastruleclass= null ist, wird vor die Linie +% ein =\aboverulesep= gesetzt. +% \begin{macrocode} +\def\cmidrule{\noalign{\ifnum0=`}\fi + \@ifnextchar[{\@cmidrule}{\@cmidrule[\cmidrulewidth]}} +\def\@cmidrule[#1]{\@ifnextchar({\@@cmidrule[#1]}{\@@cmidrule[#1]()}} +\def\@@cmidrule[#1](#2)#3{\@@@cmidrule[#3]{#1}{#2}} +% \end{macrocode} +% Das hier ist ein Herumt"ufteln, um die Voreinstellungen f"ur fehlende +% optionale Argumente einzustellen. +% Es wird au"serdem in einer anderen Reihenfolge zu =\@@@cmidrule= "ubergegangen, +% n"amlich =[a-b]=={width required}= ={kerning commands}= (das ist +% die Reihenfolge, in der die Argumente wirklich abgehandelt werden): +% \begin{macrocode} +\def\@@@cmidrule[#1-#2]#3#4{\global\@cmidla#1\relax + \global\advance\@cmidla\m@ne + \ifnum\@cmidla>0\global\let\@gtempa\@cmidrulea\else + \global\let\@gtempa\@cmidruleb\fi + \global\@cmidlb#2\relax + \global\advance\@cmidlb-\@cmidla +% \end{macrocode} +% Das erstellt einen Schalter (=\@gtempa=), um die relvanten Routinen +% =\@cmidrulea= oder =\@cmidruleb= aufzurufen, abh"angig davon, ob man von +% Spalte anf"angt oder nicht. +% \begin{macrocode} + \global\@thisrulewidth=#3 +% \end{macrocode} +% Das wird durch Voreinstellung oder eingesetztes Argument eingestellt. Dann +% werden alle Trimmingargumente analysiert, um dementsprechend +% =\cmrkern@r= und =\cmrkern@l= einzustellen: +% \begin{macrocode} + \@setrulekerning{#4} +% \end{macrocode} +% Nun kann dar"uber, falls gew"unscht, Platz einf"ugen, das =\noalign= +% geschlossen +% und dann zur angemessenen Linienziehroutine, wie oben beschrieben, gewechselt +% werden (=\let= bis =\@gtempa=): +% \begin{macrocode} + \ifnum\@lastruleclass=\z@\vskip \aboverulesep\fi + \ifnum0=`{\fi}\@gtempa +% \end{macrocode} +% Nach gezogener Linie kann nun +% ein anderes =\noalign= ge"offnet und die Abschlussroutine aufgerufen werden: +% \begin{macrocode} + \noalign{\ifnum0=`}\fi\futurenonspacelet\@tempa\@xcmidrule} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@xcmidrule} +% In dieser Abschlussroutine ist zu rp"ufen, ob ein anderes =\cmidrule= folgt; +% wenn ja, sollte vertikal zur"uckgeschritten werden, damit es sich mit der gerade +% gezeichneten Linie f"ugt. +% Das Setzen von =\@lastruleclass= auf 1 wird verhindern, dass "uber dem n"achsten +% wieder ein Abstand eingef"ugt wird. Wenn eine =\morecimdrules= folgt, +% wird ein (positives) =\cmidrulesep= eingef"ugt (und wieder einmal +% =\@lastruleclass= auf 1 gesetzt). +% Ansonsten ist das die letzte Linie der momentanen Gruppe und es l"asst sich ganz +% einfach =\belowrulesep= dahintersetzen. Abschlie"send wird das =\noalign= +% geschlossen. +% \changes{v1.618}{2003/03/28}{Change to \cmd{\@xcmidrule}: +% replace \cmd{\@cmidrulewidth} with \cmd{\@thisrulewidth }} +% \begin{macrocode} +\def\@xcmidrule{% + \ifx\@tempa\cmidrule + \vskip-\@thisrulewidth + \global\@lastruleclass=\@ne + \else \ifx\@tempa\morecmidrules + \vskip \cmidrulesep + \global\@lastruleclass=\@ne\else + \vskip \belowrulesep + \global\@lastruleclass=\z@ + \fi\fi + \ifnum0=`{\fi}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@cmidrulea} +% Dieser Code (wird unter diesem Text aufgerufen) zeichnet die +% Linien. Sie werden als Boxen +% im Text gezeichnet, anstatt in einer =\noalign=gruppe, was das Kerning +% links und rechts gestattet. +% \changes{v1.6180}{2005/03/16}{add colortbl \cmd{\CT@arc@} command for color support} +% \begin{macrocode} +\def\@cmidrulea{% + \multispan\@cmidla&\multispan\@cmidlb + \unskip\hskip\cmrkern@l% + {\CT@arc@\leaders\hrule \@height\@thisrulewidth\hfill}% + \hskip\cmrkern@r\cr}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@cmidruleb} +% \changes{v1.6180}{2005/03/16}{add colortbl \cmd{\CT@arc@} command for color support} +% \begin{macrocode} +\def\@cmidruleb{% + \multispan\@cmidlb + \unskip\hskip \cmrkern@l% + {\CT@arc@\leaders\hrule \@height\@thisrulewidth\hfill}% + \hskip\cmrkern@r\cr}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\morecmidrules} +% Das ist wirklich ein hohler Befehl; die ganze Arbeit ist davor bereits +% in der =\cmidrule=routine gemacht worden. Es l"asst sich einen Schritt voraus +% schauen, um zu gucken, ob ein =\morecmidrules= der aktuellen =\cmidrule= folgt, +% und k"onnen das Flag setzen, falls ja. Ansonsten macht =\morecmidrules= an sich +% "uberhaupt nichts. +% \begin{macrocode} +\def\morecmidrules{\noalign{\relax}} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +%\PrintChanges +%\PrintIndex +%\end{document} diff --git a/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.ins b/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.ins new file mode 100644 index 00000000000..d0f2d87a3b8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.ins @@ -0,0 +1,87 @@ +% ----------------------------------------------------------------- +% File: booktabs-de.ins +% Author: Simon Fear +% Maintainer: Danie Els (dnjels@sun.ac.za) +% Modifiziert: Christine Römer (christine-roemer@t-online.de) +% +% This file is part of the booktabs package for publication +% quality tables for LaTeX +% +% Copyright (C) 1995--2005 Simon Fear +% +% This program is free software; you can redistribute it and/or +% modify it under the terms of the GNU General Public License as +% published by the Free Software Foundation; either version 2 of +% the License, or (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public +% License along with this program; if not, write to the Free +% Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, +% MA 02111-1307 USA +% +% ----------------------------------------------------------------- +% This file will generate fast loadable files and documentation +% driver files from the doc files in this package when run through +% LaTeX or TeX. +% +% The file README' contains a list of all the files as well +% directions for installation of this package. +% ----------------------------------------------------------------- + +\def\batchfile{booktabs-de.ins} +\def\filedate{2005/03/16} +\input docstrip.tex +\keepsilent + +\preamble + +----------------------------------------------------------------- +Author: Simon Fear +Maintainer: Danie Els (dnjels@sun.ac.za) + +This file is part of the booktabs-de package for publication +quality tables for LaTeX + + Copyright (C) 1995--2005 Simon Fear + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public +License along with this program; if not, write to the Free +Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, +MA 02111-1307 USA +----------------------------------------------------------------- +\endpreamble + +\generate{% + \askforoverwritefalse + \file{booktabs-de.sty}{\from{booktabs-de.dtx}{package}}% +} + +{\obeyspaces% +\Msg{**********************************************************}% +\Msg{* *}% +\Msg{* To finish the installation you have to move the *}% +\Msg{* following file into a directory searched by TeX: *}% +\Msg{* *}% +\Msg{* booktabs-de.sty *}% +\Msg{* *}% +\Msg{* To produce the documentation run the file booktabs.dtx *}% +\Msg{* through LaTeX. *}% +\Msg{* *}% +\Msg{* Happy TeXing! *}% +\Msg{**********************************************************}} +\endbatchfile diff --git a/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.pdf b/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.pdf new file mode 100644 index 00000000000..64d97174993 Binary files /dev/null and b/Master/texmf-dist/doc/latex/booktabs-de/booktabs-de.pdf differ -- cgit v1.2.3