summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/nonfloat/nonfloat.dtx
blob: be83f07a1c1f51e41fdb6ba2e110850413324bea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
\def\filedate{1999/07/05}
\def\fileversion{1.0}
%
%
%\iffalse
% class `nonfloat' to be used with LaTeX 2e
% Copyright (C) 1999 Kai Rascher. All rights reserved.
%
% Copying of this file is authorized only if either
% (1) you make absolutely no changes to your copy, including name, or
% (2) if you do make changes, you name it something other than
%     nonfloat.* .
% This restriction helps ensure that all files developed
% are identical.
%
% Error reports for UNCHANGED versions please to:
%
%                         Kai Rascher
%                         Am Remenhof 17a
%                         38104 Braunschweig
%                         Germany
%                E-Mail:  <rascher@ifn.ing.tu-bs.de>
%
%\fi
%
%\flushbottom
%
%\parindent0mm
%\parskip3mm
%\title{ Nicht-gleitende Tabellen und Bilder\\
%        in \LaTeXe\\
%        --~nonfloat\thanks{Diese Datei
%        hat die Versionsnummer \fileversion\ --\
%        letzte "Uberarbeitung \filedate.}~~--}
%
%\author{ Kai Rascher\\
%         Am Remenhof 17a\\
%         D--38104 Braunschweig\\
%         {\tt rascher@ifn.ing.tu-bs.de}}
%
%\date{Version~\fileversion}
%
%\maketitle
%
%\section{Kurzinformation}
%
%Die Positionierung von Bildern und Tabellen in \LaTeXe-Dokumenten wirft
%immer wieder fragen auf. Insbesondere wenn Tabellen und Bilder nicht gleiten
%sollen, aber dennoch ein numerierte Tabellen"uberschrift bzw.\
%Bildunterschrift gew"unscht wird, wird h"aufig versucht, dies "uber den
%Parameter [h] zu erreichen. Da die Parameter f"ur Gleitobjekte optional und
%f"ur \LaTeXe\ nicht bindend sind, erreicht man durch die Angabe von [h]
%i.\,a.\ nicht die Plazierung der Tabelle oder des Bildes an der mit
%\glqq here\grqq\ angegebenen Stelle.
%
%Als Alternative kann auf das \LaTeXe-Paket \textsf{float} zur"uckgegriffen
%werden. Dieses Paket, welches die Definition weiterer Gleitobjekte beispielsweise
%f"ur Programm-Code oder Algorithmen erm"oglicht, bietet den zus"atzlichen
%Parameter [H]. Damit lassen sich Gleitobjekte zwar \glqq Here\grqq\ oder
%am Seitenanfang der n"achsten Seite plazieren, die Beschriftungen sind aber
%nur unterhalb des Gleitobjekts m"oglich. Typographisch richtig ist jedoch, da"s
%Tabellen stets "Uberschriften haben.
%
%Das Paket \textsf{nonfloat} greift die in \cite{epslatex,Reichert} gemachten
%Empfehlungen auf und definiert verschiedene \verb|\XXXcaption|-Befehle f"ur
%nicht-gleitende Objekte.
%
%Weiterhin erfolgt eine Anpassung der Plazierungsparameter \verb|\textfraction|,
%\verb|\topfraction|, \verb|\bottomfraction| und \verb|\floatpagefraction| nach
%Vorgaben in \cite{epslatex}. Zus"atzlich werden die L"angenangaben f"ur die
%Plazierung von Gleitobjekten auf separaten \glqq Floatpages\grqq\ so
%angepa"st, da"s keine vertikale Zentrierung mehr stattfindet.
%
%Tabellen und Bilder werden standardm"a"sig nicht zentriert, obwohl ein einzeiliger
%\verb|\caption|-Eintrag zentriert ausgegeben wird. In \textsf{nonfloat} wird nach
%\cite{Reichert2} eine entsprechende Anpassung vorgenommen. Dabei wird auch der
%vertikale Abstand von Tabellen"uberschriften analog zu den Bildunterschriften
%festgelegt.
%
%Aus \cite{epslatex} wurde die \verb|narrow|-Umgebung "ubernommen. Mit dieser
%Umgebung kann nicht nur ein schmaler Textbereich gesetzt werden, durch die
%Angabe negativer L"angen ist es m"oglich, sehr breite Bilder, Tabellen o.\,"a.\
%in den linken oder rechten Rand hineinragen zu lassen.
%
%\section{Verwendung}
%\subsection{Laden der Style-Option}
%Um die Befehle des \textsf{nonfloat}-Pakets verwenden zu k"onnen, mu"s die
%Style-Option mit einem Aufruf
%
%\verb|\usepackage{nonfloat}|
%
%nach der Deklaration der Dokumentenklasse mit \verb|\documentclass| geladen
%werden.
%
%\subsection{Befehle}
%Nach dem Laden stehen neben dem Befehl \verb|\caption| weitere 2~Befehle
%zur Erzeugung von Beschriftungen f"ur nicht-gleitende Tabellen und Bilder
%zur Verf"ugung.
%\\[\intextsep]
%\begin{minipage}{\linewidth}
%\centering%
%\tabcaption{Befehle f"ur Tabellen"uber- und Bildunterschriften}%
%\label{tab:Befehle}%
%\begin{tabular}{*{2}{l}}
%   "Uberschrift f"ur nicht-gleitende Tabellen & \verb|\tabcaption|\\
%   Unterschrift f"ur nicht-gleitende Bilder  & \verb|\figcaption|
%\end{tabular}
%\end{minipage}
%\\[\intextsep]
%Zur Realisierung wurde ein Befehl \verb|\topcaption| definiert, der den gleichen
%vertikalen Abstand zwischen einer "Uberschrift und dem Objekt einf"ugt, wie dies
%bei Objektunterschriften mit \verb|\caption| erfolgt. Der Befehl
%\verb|\topcaption| wird innerhalb des \LaTeXe-Dokumentes nicht ben"otigt.
%
%Die Befehle \verb|\tabcaption| und \verb|\figcaption| greifen auf die Befehle
%\verb|\topcaption| bzw.\ \verb|\caption| zur"uck, sind aber f"ur die Verwendung
%au"serhalb von Gleitumgebungen gedacht. Beispiele sind in
%Abschnitt~\ref{Beispiele} zu finden.
%
%\subsection{Anpassung der Plazierungsparameter}
%\tablename~\ref{tab:Plazierung} umfa"st die neu definierten Werte f"ur die
%Plazierungsparameter sowie ihre bisherigen \LaTeXe-Standardwerte. Au"serdem
%sind Ungleichungen f"ur empfohlene Wertebereiche gegeben \cite{epslatex}.
%\\[\intextsep]
%\begin{minipage}{\linewidth}
%\centering%
%\tabcaption{"Anderung der Parameter f"ur die Gleitobjektplazierung}%
%\label{tab:Plazierung}%
%\small
%\renewcommand{\arraystretch}{1.25}
%\begin{tabular}{@{}l*{2}{c}l@{}}\hline
%   Name                      & Wert       & Default      & Empfehlung\\ \hline
%   \verb|\textfraction|      & 0.15       & 0.2          & $\verb|\textfraction| \ge 0.15$\\
%   \verb|\topfraction|       & 0.85       & 0.7          & $\verb|\topfraction| \le 1-\verb|\textfraction|$\\
%   \verb|\bottomfraction|    & 0.65       & 0.3          & $\verb|\bottomfraction| < \verb|\topfraction|$\\
%                             &            &              & $\verb|\bottomfraction| \le 1-\verb|\textfraction|$\\
%   \verb|\floatpagefraction| & 0.60       & 0.5          & $\verb|\floatpagefraction| \le \verb|\topfraction|-0.05$\\
%                             &            &              & $\verb|\floatpagefraction| \le 1-\verb|\textfraction|$\\ \hline
%\end{tabular}
%\end{minipage}
%
%\subsection{Anpassung der table- und figure-Umgebung}
%Innerhalb der \verb|table|"~ und \verb|figure|"~Umgebung wird der Inhalt
%nicht zentriert gesetzt, obwohl gleichzeitig eine einzeilige Beschriftung
%zentriert ausgegeben wird. Die Umgebungen wurden daher umdefiniert, wobei
%dar"uber hinaus die vertikalen Abst"ande f"ur Tabellen"uberschriften analog
%zu Bildunterschriften angepa"st wurden \cite{Reichert2}.
%
%\subsection{Anpassung vertikaler Zwischenr"aume bei \glqq Gleitseiten\grqq}
%Wenn Gleitobjekte nicht innerhalb des Textes, sondern auf extra Seiten
%(Gleitseiten~--~Floatpages) angeordnet werden, zentriert \LaTeXe\ die Gleitobjekte
%vertikal. Dies wird durch die in \tablename~\ref{tab:Gleitseiten} angegebenen neuen
%Werte verhindert. Werden mehrere Gleitobjekte auf einer Gleitseite plaziert,
%wird nun der gleiche vertikale Zwischenraum wie bei Gleitobjekte auf
%anderen Seiten eingef"ugt. Die bisherigen Defaultwerte sind ebenfalls angegeben.
%\\[\intextsep]
%\begin{minipage}{\linewidth}
%\centering%
%\tabcaption{"Anderung der vertikalen Zwischenr"aume bei Gleitseiten}%
%\label{tab:Gleitseiten}%
%\small%
%\renewcommand{\arraystretch}{1.25}%
%\begin{tabular}{@{}*{3}{l}@{}}\hline
%   Name           & neuer Wert                     & Defaultwert\\ \hline
%   \verb|\@fptop| & \verb|0pt|                     & \verb|0pt plus 1.0fil|\\
%   \verb|\@fpsep| & \verb|20pt plus 2pt minus 2pt| & \verb|8pt plus 2.0fil|\\
%   \verb|\@fpbot| & \verb|0pt|                     & \verb|0pt plus 1.0fil|\\ \hline
%\end{tabular}
%\end{minipage}
%\\[\intextsep]
%
%Die Einheit \verb|fil| erm"oglicht das Einf"ugen vertikalen Zwischenraums
%beliebiger L"ange. Dies ist mit dem Befehl \verb|\vfill| vergleichbar.
%Durch Multiplikation von \verb|fil| wird eine entsprechend proportionale
%Aufteilung des Freiraums erzeugt.
%
%"Anderungen an den in \tablename~\ref{tab:Gleitseiten} gegebenen L"angenparametern
%m"ussen innerhalb eines \LaTeXe-Dokumentes mit den Befehlen \verb|\makeatletter|
%und \verb|\makeatother| eingerahmt werden, damit das at-Zeichen (\verb|@|)
%in den Parameternamen richtig verarbeitet wird.
%
%\subsection{Umgebung}
%Zum Setzen sehr breiter Bilder oder Tabellen kann die \verb|narrow|-Umgebung
%mit negativen L"angenangaben innerhalb oder au"serhalb von Gleitobjekten
%verwendet werden. Mit
%\begin{verbatim}
%   \begin{narrow}{-1in}{0in}
%      ...
%   \end{narrow}
%\end{verbatim}
%wird der Inhalt der \verb|narrow|-Umgebung so gesetzt, da"s er um 1\,in in den
%linken Rand ragt und b"undig mit dem rechten Rand abschlie"st. Soll auch in den
%rechten Rand geschrieben werden, mu"s die zweite L"angenangabe ebenfalls negativ
%sein.
%
%\subsection{Beispiele}
%\label{Beispiele}
%\subsubsection{Gleitende Tabelle}
%\begin{verbatim}
%  \begin{table}[htbp]
%    \caption{Tabellen"uberschrift}%
%    \label{tab:ueberschrift}%
%    \begin{tabular}{...}
%      ...
%    \end{tabular}
%  \end{table}
%\end{verbatim}
%
%\subsubsection{Gleitendes Bild}
%\begin{verbatim}
%  \begin{figure}[htbp]
%    \includegraphics[width=0.8\linewidth,clip=]{input.eps}%
%    \caption{Bildunterschrift}%
%    \label{fig:input.eps}%
%  \end{figure}
%\end{verbatim}
%
%\pagebreak
%\subsubsection{Nicht-gleitende Tabelle}
%\begin{verbatim}
%  \\[\intextsep]
%  \begin{minipage}{\linewidth}
%    \centering%
%    \tabcaption{Befehle f"ur Tabellen"uber- und Bildunterschriften}%
%    \label{tab:Befehle}%
%    \begin{tabular}{*{2}{l}}
%       ...
%    \end{tabular}
%  \end{minipage}
%  \\[\intextsep]
%\end{verbatim}
%Die Angabe von \verb|\\[\intextsep]| f"ugt genau den vertikalen Zwischenraum ein,
%der auch bei Gleitobjekten verwendet wird.
%
%\subsubsection{Nicht-gleitendes Bild}
%\begin{verbatim}
%  \\[\intextsep]
%  \begin{minipage}{\linewidth}
%    \centering%
%    \includegraphics[width=0.8\linewidth,clip=]{input.eps}%
%    \figcaption{Bildunterschrift}%
%    \label{fig:input.eps}%
%  \end{minipage}
%  \\[\intextsep]
%\end{verbatim}
%
%
%\begin{thebibliography}{99}
%  \bibitem{epslatex}  Reckdahl, Keith: \emph{Using Imported Graphics in \LaTeXe},
%                      Version~2.0, 15.~Dezember~1997.
%  \bibitem{Reichert}  Reichert, Axel:
%                      \mbox{\verb|<wdafcrw8a0.fsf@mpie-duesseldorf.mpg.de>|}
%                      Message-ID im Usenet
%  \bibitem{Reichert2} Reichert, Axel:
%                      \mbox{\verb|<wdso73fr22.fsf@mtntc1.mpie-duesseldorf.mpg.de>|}
%                      Message-ID im Usenet
%\end{thebibliography}
%\enddocument
%
%
%
%\begin{macrocode}
%
%  nonfloat BEFEHLE
%
%<*style>
\def\filename{nonfloat.sty}
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\RequirePackage{ifthen}[1994/06/01]
%
% Von Axel Reichert Message-ID: <wdafcrw8a0.fsf@mpie-duesseldorf.mpg.de>
% Definition eines \topcaption-Befehls mit angepa"sten Abst"anden, wenn
% das zu beschriftende Objekt unterhalb der Beschriftung steht.
\newcommand{\topcaption}{%
  \setlength{\@tempdima}{\abovecaptionskip}%
  \setlength{\abovecaptionskip}{\belowcaptionskip}%
  \setlength{\belowcaptionskip}{\@tempdima}%
  \caption%
}
%
% Definition von \figcaption zur Nutzung au"serhalb von Gleitumgebungen;
% aus epslatex.ps
\newcommand{\figcaption}{\def\@captype{figure}\caption}
%
% Definition von \tabcaption zur Nutzung au"serhalb von Gleitumgebungen
% Es wird \topcaption verwendet, damit die vertikalen Zwischenr"aume
% wieder passen;
% aus epslatex.ps und ver"andert.
\newcommand{\tabcaption}{\def\@captype{table}\topcaption}
%
% Von Axel Reichert Message-ID: <wdso73fr22.fsf@mtntc1.mpie-duesseldorf.mpg.de>
% Anpassen der figure-Umgebung, damit der Inhalt automatisch zentriert wird,
% denn einzeilige \caption-Eintr"age werden ebenfalls zentriert.
\renewenvironment{figure}[1][]{%
  \ifthenelse{\equal{#1}{}}{%
    \@float{figure}%
  }{%
    \@float{figure}[#1]%
  }%
  \centering%
}{%
  \end@float%
}
%
% Von Axel Reichert Message-ID: <wdso73fr22.fsf@mtntc1.mpie-duesseldorf.mpg.de>
% Anpassen der table-Umgebung, damit der Inhalt automatisch zentriert wird,
% denn einzeilige \caption-Eintr"age werden ebenfalls zentriert. Au"serdem wird
% der Abstand bei der table-Umgebung so angepa"st, da"s die Tabellen"uberschrift den
% richtigen Abstand zur darunter stehenden Tabelle aufweist.
\renewenvironment{table}[1][]{%
  \ifthenelse{\equal{#1}{}}{%
    \@float{table}%
  }{%
    \@float{table}[#1]%
  }%
  \centering%
  \setlength{\@tempdima}{\abovecaptionskip}%
  \setlength{\abovecaptionskip}{\belowcaptionskip}%
  \setlength{\belowcaptionskip}{\@tempdima}%
}{%
  \end@float%
}
%
% Anpassung der Plazierungsparameter
\renewcommand{\textfraction}{0.15}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{0.65}
\renewcommand{\floatpagefraction}{0.60}
%
% Anpassung der vertikalen Zwischenr"aume f"ur Gleitobjekte auf
% \glqq Gleitseiten\grqq
\setlength{\@fptop}{0pt}
\setlength{\@fpsep}{20pt plus 2pt minus 2pt}
\setlength{\@fpbot}{0pt}
%
% Definition der narrow-Umgebung
\newenvironment{narrow}[2]{%
  \begin{list}{}%
    {%
      \setlength{\topsep}{0pt}%
      \setlength{\leftmargin}{#1}%
      \setlength{\rightmargin}{#2}%
      \setlength{\listparindent}{\parindent}%
      \setlength{\itemindent}{\parindent}%
      \setlength{\parskip}{\parskip}%
    }%
  \item[]}%
  {\end{list}}%
%</style>
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{german}
\usepackage{nonfloat}
\begin{document}
\DocInput{nonfloat.dtx}
\end{document}
%</driver>
%
%\end{macrocode}
\endinput