% \iffalse %% File: sidecap.dtx %% % %\NeedsTeXFormat{LaTeX2e}[2022-06-01] %\ProvidesPackage{sidecap}[2023/01/24 v1.7a SideCap Package (RN/HjG)] % %<*driver> \documentclass{ltxdoc} \usepackage{sidecap} \GetFileInfo{sidecap.sty} \CodelineIndex \EnableCrossrefs \RecordChanges \begin{document} \DocInput{sidecap.dtx} \end{document} % % % Copyright 1997--2016 Rolf Niepraschk and Hubert Gaesslein. % Copyright 2016--.. Rolf Niepraschk % This program can be redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN % archives in directory macros/latex/base/lppl.txt; either % version 1.3 of the License, or any later version. % % This work has the LPPL maintenance status "author-maintained". % \fi % % \CheckSum{683} % % \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 \~} % % % \MakeShortVerb{\|} % \setlength\parindent{0pt} % % ^^A \CodelineIndex Fehler !!! % ^^A \RecordChanges kein Fehler !!! % % \changes{v1.0 (RN)}{1997/01/04}{New} % \changes{v1.1 (RN/HjG)}{1997/05/01}{First public version} % \changes{v1.2 (HjG)}{1998/01/29}{Proposal for amendments} % \changes{v1.3 (RN/HjG)}{1998/01/29}{Unsuccessful attempt to make % star-forms work} % \changes{v1.4c (HjG)}{1998/06/05}{Successful (?) attempt to make % star-forms work, plus some amendments} % \changes{v1.4d (RN)} {1998/06/05}{New (LPPL) license} % \changes{v1.5d (RN/HjG)}{2000/03/16}{Slight amendments to documentation.} % \changes{v1.5h (RN/HjG)}{2002/05/24}{Improved compatibility with package % hyperref.} % \changes{v1.5h (RN/HjG)}{2002/05/24}{Environment wide does the right thing % now outside SCfloat environments.} % % \changes{v1.6d (RN/HjG)}{2002/09/13}{Simplify internal calculations % using primitive operators where possible and useful, % saving tokens (suggested by Frank Mittelbach.} % % \IndexPrologue{^^A % \section*{Index}^^A % \markboth{Index}{Index}^^A % Numbers written in \emph{italic} refer to the page where the % corresponding entry is described, the ones % \underline{underlined} to the definition, the rest to the places % where the entry is used.} % % % ^^A ----------------------------- % % \title{\unskip % The \textsf{sidecap} package^^A % } % \author{Rolf Niepraschk {\normalsize (\texttt{niepraschk@ptb.de})}\and % Hubert G\"a{\ss}lein} % \date{\fileversion\ -- \filedate} % \maketitle % % % ^^A ----------------------------- % % % \begin{abstract} % This package defines the new environments |SCfigure| and |SCtable|, % analogous to |figure| and |table|, which make it easy to % typeset captions sideways. % % Additionally, a |wide| environment is defined; it allows to use % the margin area, e.\,g., for figures wider than |\textwidth|. % % \iffalse % (???) % Support for other types of floating environments is provided, % e.\,g., as available by the |newfloat| package. % \fi % \end{abstract} % % \pagestyle{headings} % % ^^A ----------------------------- % % ^^A \tableofcontents % % ^^A ----------------------------- % % \section{Introduction} % % In some cases it may be useful to typeset the caption aside the figure or % the table. For this purpose the package \textsf{sidecap} defines the new % environments |SCfigure| and |SCtable|. The figure or the table and the % caption are put into two minipages that are positioned side by side and % centered as a whole. The space between the minipages is |\sidecaptionsep|. The % correct positioning with respect to left and right pages requires at least % two compilation runs. % % ^^A ----------------------------- % % \section{Usage} % % |\usepackage[|\meta{option}|]{sidecap}| % % \smallskip % % |\begin{SCtable} [|\meta{relwidth}|][|\meta{float}|] ... | % |\end{SCtable}| % % |\begin{SCfigure} [|\meta{relwidth}|][|\meta{float}|] ... | % |\end{SCfigure}| % % \smallskip % |\begin{SCtable*} [|\meta{relwidth}|][|\meta{float}|] ... | % |\end{SCtable*}| % % |\begin{SCfigure*}[|\meta{relwidth}|][|\meta{float}|] ... | % |\end{SCfigure*}| % % \medskip % \begin{center} % \begin{tabular}{r@{~}p{.75\linewidth}} % \meta{option} -- & |outercaption| (default): Caption appears left on % left pages and right on right % pages. \\[.25\baselineskip] % & |innercaption|: Caption appears right on left pages % and left on right pages.\\[.25\baselineskip] % & |leftcaption|, |rightcaption|: Caption is always on % the left or right, respectively.\\[.25\baselineskip] % & |wide|: The floating objects may extend into the % margin area. % \\[.25\baselineskip] % & |raggedright|, |raggedleft|, |ragged|: Better % justification for small captions. % The \textsf{ragged2e} package is used if available. % \\[.5\baselineskip] % \meta{relwidth} -- & optional; caption width relative to the width of the % figure or table. A large value (e.g., 50) reserves % the maximum width that is possible. % Default is |\sidecaptionrelwidth| % (which is initialized to 1.0).\\[.5\baselineskip] % \meta{float} -- & optional; like the floating position parameter of the % original table\slash figure environments. % Default is |tbp|. % \end{tabular} % \end{center} % % \medskip % |\begin{wide} ... \end{wide}| % % The |wide| environment may be used inside |figure| and |table| % environments as well as in the normal text. % % ^^A ----------------------------- % % \section{Required packages} % % This package requires the standard \LaTeX\ package \textsf{ifthen}. % % ^^A ----------------------------- % % \section{Supported packages} % % This package is compatible with \LaTeX\ package \textsf{hyperref} % (tested with version 6.71v as of 2001/11/12). % If the |raggedright| or |raggedleft| or |ragged| package option has % been given, then captions will be set with ragged margin. % The \textsf{ragged2e} package will be used if it can be found. % % \iffalse % This package supports the \LaTeX\ package \textsf{newfloat}, % coming soon \dots\ (?) % \fi % % ^^A ----------------------------- % % \StopEventually{^^A % \PrintChanges\PrintIndex % ^^A Make sure that the index is not printed twice % ^^A (ltxdoc.cfg might have a second \PrintIndex command) % \let\PrintChanges\relax % \let\PrintIndex\relax % } % % ^^A ----------------------------- % % \section{The implementation} % % \subsection{Register allocation and auxiliary macros} % % \begin{macrocode} %<*package> \RequirePackage{ifthen} \@ifdefinable{\SC@BOXWD}{\newdimen\SC@BOXWD} \@ifdefinable{\SC@CAPWD}{\newdimen\SC@CAPWD} % 2 noetig ??? \@ifdefinable{\SC@tempdima}{\newdimen\SC@tempdima} \@ifdefinable{\SC@tempdimb}{\newdimen\SC@tempdimb} \newcounter{SC@C} \newsavebox{\SC@BOX} \newcommand*{\SC@FLOAT}{} \newcommand*{\SC@IDENT}{SC@\number\value{SC@C}} \newcommand*\SC@label[1]{\gdef\SC@LABtext{#1}\ignorespaces} \newcommand*\SC@orig@caption{} \newcommand*\SC@orig@label{} \newcommand*\sidecaptionsep{} \edef\sidecaptionsep{\the\marginparsep} \newcommand*\sidecaptionrelwidth{1.0} \newcommand*\sidecaptionvpos[2]{% 2002/08/31 \@namedef{SC@#1@vpos}{#2}% } \newboolean{SC@wide} \def\SC@widefalse{\global\let\ifSC@wide\iffalse} \def\SC@widetrue {\global\let\ifSC@wide\iftrue} % Kann man auf dieses Laengenregister verzichten? Nein! (RN) <****> \newcommand*\SC@calcwidths[1]{% \SC@tempdima#1\relax \SC@BOXWD\wd\SC@BOX \SC@CAPWD\SC@fraction\SC@BOXWD \@tempdima\SC@BOXWD \advance\@tempdima\SC@CAPWD \advance\@tempdima\sidecaptionsep \ifdim\@tempdima>\SC@tempdima \advance\SC@CAPWD-\@tempdima \advance\SC@CAPWD\SC@tempdima \fi \SC@tempdimb\@tempdima } %\newcommand*{\isSC@WIDEi}[2]{#2} %default: false %\newcommand*{\isSC@WIDEii}[2]{#2} %default: false \newcommand*{\isSC@WIDEi}[2]{\ifSC@wide#1\else#2\fi} %default: false \newcommand*{\isSC@WIDEii}[2]{\ifSC@wide#1\else#2\fi} %default: false %\newcommand*{\isSC@First}[2]{#1} %default: true \newcommand*\SC@justify{} \newcommand*\SC@justify@caption{} \newcommand*\SC@justify@body{} \newboolean{SC@origRagged} \setboolean{SC@origRagged}{false} %% ??? % \end{macrocode} % \begin{macro}{\SC@SaveCommands} % \changes{v1.5e (RN)}{2001/11/10}{\cmd\SC@AtFirstCall: % Saves the old meaning % of \cmd\caption\ and \cmd\label\ at first call of some SC macros % (compatibility with `hyperref').} % \changes{v1.5h (RN/HjG)}{2002/05/24}{Renamed \cmd\SC@AtFirstCall\ ^^A % to \cmd\SC@SaveCommands\ and changed definition.} % \begin{macrocode} \newcommand*{\SC@SaveCommands}{% \let\SC@orig@caption=\caption \let\SC@orig@label=\label% } % \end{macrocode} % \end{macro} % \begin{macrocode} \SC@SaveCommands % necessary? or even wrong? % \end{macrocode} % % \subsection{Package \textsf{hyperref} compatibility} % % \changes{v1.5d (RN/HjG)}{2000/02/04}{Compatibility with `hyperref', % thanks to Heiko Oberdiek} % Note: The |\pageref| doesn't work with \textsf{hyperref} \dots \mbox{:-(} % \changes{v1.6 (RN/HjG)}{2002/06/07}{% % Oneside mode had been forgotten ;-)}% % \begin{macrocode} \if@twoside \newcommand*{\isSC@ODD}[2]{% \ifthenelse{\isodd{\pageref{\SC@IDENT}}}{#1}{#2}} \else \newcommand*{\isSC@ODD}[2]{#1}% \fi % \end{macrocode} % % % \subsection{Option processing} % % \begin{macrocode} \DeclareOption{innercaption}{% \renewcommand*{\SC@FLOAT}[2]{% \isSC@ODD{{#1}\hspace{\sidecaptionsep}{#2}} {{#2}\hspace{\sidecaptionsep}{#1}}} \renewcommand*\SC@justify@caption{% \isSC@ODD{\RaggedLeft}{\RaggedRight}} } \DeclareOption{outercaption}{% \renewcommand*{\SC@FLOAT}[2]{% \isSC@ODD{{#2}\hspace{\sidecaptionsep}{#1}} {{#1}\hspace{\sidecaptionsep}{#2}}} \renewcommand*\SC@justify@caption{% \isSC@ODD{\RaggedRight}{\RaggedLeft}} } \DeclareOption{rightcaption}{% \renewcommand*{\SC@FLOAT}[2]{{#2}\hspace{\sidecaptionsep}{#1}} \def\SC@justify@caption{\RaggedRight}% } \DeclareOption{leftcaption}{% \renewcommand*{\SC@FLOAT}[2]{{#1}\hspace{\sidecaptionsep}{#2}} \def\SC@justify@caption{\RaggedLeft}% } % \end{macrocode} % \changes{v1.5a (RN)}{1999/07/18}{New Option and environment `wide'; some % small changes} % \begin{macrocode} \DeclareOption{wide}{% \renewcommand*{\isSC@WIDEi}[2]{\if@twocolumn #2\else #1\fi}% ??? \renewcommand*{\isSC@WIDEii}[2]{#1}} % \end{macrocode} % These `ragged\dots' options should stay here, behind the `\dots caption' options! % \changes{v1.5b (RN)}{1999/10/31}{New Option `raggedright' as suggested by % James Kilfiger (mailto:mapdn@csv.warwick.ac.uk)} % \begin{macrocode} \DeclareOption{raggedright}{% \def\SC@justify{\RaggedRight}} % \end{macrocode} % \changes{v1.5f (RN)}{2002/01/13}{New option `raggedleft'} % \begin{macrocode} \DeclareOption{raggedleft}{% \def\SC@justify{\RaggedLeft}} % \end{macrocode} % \changes{v1.5g (RN)}{2002/01/18}{New option `ragged'} % \begin{macrocode} \DeclareOption{ragged}{% \def\SC@justify{\SC@justify@caption}% \let ? } % \end{macrocode} % % \begin{macrocode} \DeclareOption{origragged}{\setboolean{SC@origRagged}{true}} % \end{macrocode} % % % \changes{v1.6 (RN/HjG)}{2002/06/07}{% % New option `margincaption' added.}% % \begin{macrocode} \DeclareOption{margincaption}{% \ds@outercaption\ds@outerbody\ds@wide \let\ds@innercaption\@empty \let\ds@leftcaption\@empty \let\ds@rightcaption\@empty \def\SC@calcwidths#1{% \SC@tempdimb#1\relax \SC@BOXWD\SC@tempdimb % *-form !!! ??? \advance\SC@BOXWD-\marginparwidth \advance\SC@BOXWD-\marginparsep \SC@CAPWD\marginparwidth }% } % \end{macrocode} % % \begin{macrocode} \DeclareOption{innerbody}{% \def\SC@justify@body{% \isSC@ODD{\RaggedRight}{\RaggedLeft}} } \DeclareOption{outerbody}{% \def\SC@justify@body{% \isSC@ODD{\RaggedLeft}{\RaggedRight}} } \DeclareOption{centerbody}{% \def\SC@justify@body{\Centering} } \DeclareOption{rightbody}{% \def\SC@justify@body{\RaggedLeft}% } \DeclareOption{leftbody}{% \def\SC@justify@body{\RaggedRight}% } % \end{macrocode} % % \begin{macrocode} \ExecuteOptions{outercaption} %%\InputIfFileExists{sidecap.cfg}{}{} % hier ? % 2002/06/14 \ProcessOptions\relax % \end{macrocode} % \changes{v1.6 (RN)}{2002/06/09}{``Smart'' loading of package ragged2e. % More simple code for hyperref compatibilty (\cmd\hypergetpageref).} % \changes{v1.6f (RN/HjG)}{2003/06/06}{Test for presence of package babel % (\cmd\org@pageref).} % \changes{v1.7a (RN)}{2023/01/24}{% % Special handling with \cmd\SC@pageref is no longer necessary.} % \begin{macrocode} \AtBeginDocument{% \ifSC@origRagged\else \@ifpackageloaded{ragged2e}{}% {% \IfFileExists{ragged2e.sty}{% \RequirePackage[NewParameters]{ragged2e}}% {% \PackageWarningNoLine{sidecap}{% Package `ragged2e' not found -- expect bad formatting}% }% } \fi \@ifundefined{RaggedRight}% {% \let\RaggedLeft\raggedleft \let\RaggedRight\raggedright \let\Centering\centering }{} } % \end{macrocode} % % % \subsection{User-level macros (environments)} % % \begin{environment}{SCfigure} % Simply passes the first (optional) parameter and the required one, % in this case `figure', to |SC@float|\,. % The figure caption should be bottom aligned. % \begin{macrocode} %\newcommand*\SCfigureVpos{b}% 2002/06/14 \@ifdefinable\SC@figure@vpos{\def\SC@figure@vpos{b}} \newenvironment{SCfigure}{\SC@float[\SC@figure@vpos]{figure}}{\endSC@float} \newenvironment{SCfigure*}{\SC@dblfloat[\SC@figure@vpos]{figure}}{\endSC@dblfloat} % \end{macrocode} % \end{environment} % % \begin{environment}{SCtable} % Simply passes the first (optional) parameter and the required one, % in this case `table', to |SC@float|\,. % The table caption should be top aligned. % \begin{macrocode} %\newcommand*\SCtableVpos{t}% 2002/06/14 \@ifdefinable\SC@table@vpos{\def\SC@table@vpos{t}} \newenvironment{SCtable}{\SC@float[\SC@table@vpos]{table}}{\endSC@float} \newenvironment{SCtable*}{\SC@dblfloat[\SC@table@vpos]{table}}{\endSC@dblfloat} % \end{macrocode} % \end{environment} % % \begin{environment}{wide} % This is an environment that allows to extend the width of the % text body (or of a floating environment) by using the margin space. % % It shouldn't be used in twocolumn text. % \begin{macrocode} % \newenvironment{wide}% {% \@parboxrestore% 2002/06/14 -- SW-Arch.: wozu? 2002/08/24 \advance\linewidth\marginparwidth \advance\linewidth\marginparsep \ifx\label\SC@label %<+debug> \typeout{WIDE: inside SCfloat}% \SC@widetrue \else %<+debug> \typeout{WIDE: outside SCfloat}% \begin{lrbox}\SC@BOX % \begin necessary: --> \@noitemerr \minipage\linewidth \fi }% {% \ifx\label\SC@label %<+debug> \typeout{WIDE: inside SCfloat}% %\renewcommand*{\isSC@WIDEi}[2]{\if@twocolumn ##2\else ##1\fi}% %\renewcommand*{\isSC@WIDEii}[2]{##1}% %\let\isSC@WIDE\isSC@WIDEi \else %<+debug> \typeout{WIDE: outside SCfloat}% \endminipage \end{lrbox}% \end necessary: --> \@noitemerr \global\advance\c@SC@C\@ne \SC@orig@label{\SC@IDENT}% nicht \ref... !!! \trivlist \item\relax \isSC@ODD{\def\SC@hpos{l}}{\def\SC@hpos{r}}% %<+debug> \typeout{WIDE: \string\linewidth=\the\linewidth}% \noindent\makebox[\textwidth][\SC@hpos]{\copy\SC@BOX}% \usebox{\SC@BOX} \endtrivlist \fi } % \end{macrocode} % \end{environment} % % % \subsection{Internal macros} % % \subsubsection{Collecting arguments} % % The new internal float environment, similar\slash analogous to % \LaTeX's |@float| environment. % % \smallskip % Syntax: % |\SC@float[|\meta{vpos}|]{|\meta{name}|}[|\meta{relwidth}|][|\meta{fps}|]| % % \begin{itemize} % \item % Parameter \meta{vpos} (optional) is the vertical positioning of the % caption. % \item % Parameter \meta{name} (required) is the name of the `original' \LaTeX\ % floating environment (e.g., `figure' or `table'). % \iffalse % ; or one defined with the % |newfloat| package. % \fi % \item % Parameter \meta{relwidth} (optional) is the desired relative width of the % caption. % \item % Parameter \meta{fps} (optional) is the usual \LaTeX\ float positioning % specifier. % \end{itemize} % % The usual `cascading' programming style is applied % (cf.\ \LaTeX's |\@float|). % % \begin{macro}{\SC@float} % Initially, the first optional parameter is checked for. % \begin{macrocode} \def\SC@float{\SC@SaveCommands\@ifnextchar[\SC@xfloat{\SC@xfloat[c]}} % \end{macrocode} % \end{macro} % \begin{macro}{\SC@xfloat} % Then the first and second parameters are consumed and the third one is % checked for. % \begin{macrocode} \def\SC@xfloat[#1]#2{\@ifnextchar[% {\SC@yfloat{#1}{#2}}% {\SC@zfloat{#1}{#2}{\sidecaptionrelwidth}[\@nameuse{fps@#2}]}} % \end{macrocode} % \end{macro} % \begin{macro}{\SC@yfloat} % Again, the fourth (and last) parameter is checked for. % \begin{macrocode} \def\SC@yfloat#1#2[#3]{\@ifnextchar[% {\SC@zfloat{#1}{#2}{#3}}% {\SC@zfloat{#1}{#2}{#3}[\@nameuse{fps@#2}]}} % \end{macrocode} % \end{macro} % % % \subsubsection{Capturing the float's contents} % % \begin{macro}{\SC@zfloat} % Finally, here is the macro that does all the work. % \begin{macrocode} \def\SC@zfloat#1#2#3[#4]{% \def\SC@vpos{#1}% \expandafter\edef\csname fps@#2\endcsname{#4}% \def\SC@captype{#2}% \ifx#3\@empty\def\SC@fraction{1}\else\def\SC@fraction{#3}\fi% % \end{macrocode} % The |\caption| and |\label| commands must be redefined. % \begin{macrocode} \let\SC@CAPtext\@empty \let\SC@OPTCAPtext\@empty \let\SC@LABtext\@empty% \renewcommand\caption[2][]{\gdef\SC@OPTCAPtext{##1}% \gdef\SC@CAPtext{##2}\ignorespaces}% \SC@justify \let\label=\SC@label \@namedef{fnum@#2}{\mbox{\@nameuse{#2name}~\@nameuse{the#2}}}% caption2 ? % \end{macrocode} % Save the figure or table (or whatever) in a box. % \begin{macrocode} \SC@widefalse \begin{lrbox}\SC@BOX % \begin necessary: --> \@noitemerr %%% \strut }% % \end{macrocode} % \end{macro} % % \begin{macro}{\SC@dblfloat} % Analogous to \LaTeX's |\@dblfloat|. % \begin{macrocode} \def\SC@dblfloat{% \SC@SaveCommands% \if@twocolumn\let\reserved@a\SC@dbflt\else\let\reserved@a\SC@float\fi \reserved@a} \def\SC@dbflt{\SC@float} % \end{macrocode} % \end{macro} % % % \subsubsection{Output the float's contents} % % \begin{macro}{\endSC@float} % Outputs the figure or table (or whatever) and the caption. % \begin{macrocode} \def\endSC@float{% %%% \strut \end{lrbox}% \end necessary: --> \@noitemerr %<+debug> \typeout{onecolumn}% \let\isSC@WIDE\isSC@WIDEi% \def\@FLOAT{\@float}\def\end@FLOAT{\end@float}% \isSC@WIDE% {\@tempdima\textwidth % \columnwidth ??? \advance\@tempdima\marginparwidth \advance\@tempdima\marginparsep}% {\@tempdima\columnwidth}% %<+debug> \typeout{endSC@float: \string\@tempdima=\the\@tempdima}% \endSC@FLOAT\@tempdima}% % \end{macrocode} % \end{macro} % \begin{macro}{\endSC@dblfloat} % Ditto for |*|\mbox{-}forms of floats. % \begin{macrocode} \def\endSC@dblfloat{% \end{lrbox}% \end necessary: --> \@noitemerr %<+debug> \typeout{twocolumn}% \let\isSC@WIDE\isSC@WIDEii% \def\@FLOAT{\@dblfloat}\def\end@FLOAT{\end@dblfloat}% \isSC@WIDE% {\@tempdima\textwidth% \advance\@tempdima\marginparwidth \advance\@tempdima\marginparsep}% {\@tempdima\textwidth}% %<+debug> \typeout{endSC@dblfloat: \string\@tempdima=\the\@tempdima}% \endSC@FLOAT\@tempdima}% % \end{macrocode} % \end{macro} % \begin{macro}{\endSC@FLOAT} % Sets the caption width. If caption width plus figure\slash table width % (plus separation space) is too large then the caption width is set equal % to the remaining width. % \begin{macrocode} \def\endSC@FLOAT#1{% \SC@calcwidths{#1}% % \end{macrocode} % \begin{macro}{\@FLOAT} % Calls the \LaTeX\ float command with the two minipages inside a main minipage. % \end{macro} % \begin{macrocode} \@FLOAT{\SC@captype}% \abovecaptionskip\z@skip \belowcaptionskip\z@skip % \end{macrocode} % Creates a label for each figure or table (etc.)\ for later determination if % the page is odd or even. The counter |SC@C| must be incremented before. % \begin{macrocode} \global\advance\c@SC@C\@ne \SC@orig@label{\SC@IDENT}% nicht \ref... !!! % \end{macrocode} % \begin{macro}{\isSC@WIDE} % ^^A ??? % \end{macro} % \begin{macrocode} \isSC@WIDE% {\ifdim\SC@tempdimb>\textwidth % ??? \isSC@ODD{\def\SC@hpos{l}}{\def\SC@hpos{r}}% \else% \def\SC@hpos{c}% \fi \@tempdimc\textwidth}% ??? {\@tempdimc\SC@tempdima\def\SC@hpos{c}}% % \end{macrocode} % ^^A ??? % \begin{macrocode} \makebox[\@tempdimc][\SC@hpos]{% % \end{macrocode} % \begin{macro}{\SC@FLOAT} % Has two parameters. The first parameter is the minipage with the caption % text inside and the last parameter is the minipage with the body of the figure % or table ^^A (or whatever floating environment object) % inside. % \end{macro} % \begin{macrocode} \SC@FLOAT% {\minipage[\SC@vpos]{\SC@CAPWD}% %% \nointerlineskip %\offinterlineskip% %% \kern0pt\relax \hrule \@height\z@\@depth\z@ %%% Testen, Doku. (Implementierung) !!! %\show\SC@justify@caption %%% \tracingall\tracingonline=0 \SC@justify \let\@arrayparboxrestore\relax % sonst Blocksatz! (\@parboxrestore) \let\usecaptionmargin\relax % sonst Pseudo-Blocksatz, nicht-alternierend! % \isSC@ODD {\RaggedRight }{\RaggedLeft } %%% A B C % \isSC@ODD{\typeout{xxxxx ungerade}}{\typeout{xxxxx gerade}}% % \def\@makecaption##1##2{##1: ##2\endgraf}% % \@parboxrestore % \@setminipage \iffalse % DEBUG: \endgraf \@makecaption{\csname fnum@\SC@captype\endcsname}% {\ignorespaces \SC@CAPtext}% \endgraf \else % \ifthenelse{\equal{\SC@OPTCAPtext}{\@empty}}% \ifx\SC@OPTCAPtext\@empty% Noetig? % FM: strut needed twice for multiline captions \SC@orig@caption[\SC@CAPtext]% {\strut\ignorespaces\SC@CAPtext\unskip\strut}% \expandafter\protect \else % FM: strut needed twice for multiline captions % FM: if \SC@CAPtext can contain trailing banks then we also need \unskip % FM: (not checked) \SC@orig@caption[\SC@OPTCAPtext]% \expandafter\protect {\strut\ignorespaces\SC@CAPtext\unskip\strut}% \expandafter\protect \fi \unskip% ??? Dok. !!! \ifx\SC@LABtext\@empty\else \SC@orig@label{\SC@LABtext}\fi% \expandafter\protect \fi %%% X Y Z \hrule \@height\z@\@depth\z@ \endminipage}% {\minipage[\SC@vpos]{\SC@BOXWD}% %% \nointerlineskip %\offinterlineskip% %% \kern0pt\relax \hrule \@height\z@\@depth\z@ \SC@justify@body \unhbox\SC@BOX % \strut \unhbox/\usebox{\SC@BOX}% TESTEN! % \kern0pt\relax \hrule \@height\z@\@depth\z@ \endminipage}% }% \end@FLOAT% } % \end{macrocode} % \end{macro} % \begin{macrocode} \InputIfFileExists{sidecap.cfg}{}{} % hier ? % 2002/06/14 % % \end{macrocode} % % ^^A ----------------------------- % % \Finale