diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/caption/ltcaption.dtx |
Initial commit
Diffstat (limited to 'macros/latex/contrib/caption/ltcaption.dtx')
-rw-r--r-- | macros/latex/contrib/caption/ltcaption.dtx | 907 |
1 files changed, 907 insertions, 0 deletions
diff --git a/macros/latex/contrib/caption/ltcaption.dtx b/macros/latex/contrib/caption/ltcaption.dtx new file mode 100644 index 0000000000..1365f2ecc8 --- /dev/null +++ b/macros/latex/contrib/caption/ltcaption.dtx @@ -0,0 +1,907 @@ +% \iffalse meta-comment +% +% This is file `ltcaption.dtx'. +% +% Copyright (C) 2007-2013 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm) +% +% -------------------------------------------------------------------------- +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% This Current Maintainer of this work is Axel Sommerfeldt. +% +% This work consists of the files caption.ins, caption.dtx, caption2.dtx, +% caption3.dtx, bicaption.dtx, ltcaption.dtx, subcaption.dtx, and newfloat.dtx, +% the derived files caption.sty, caption2.sty, caption3.sty, +% bicaption.sty, ltcaption.sty, subcaption.sty, and newfloat.sty, +% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex. +% +% \fi +% \CheckSum{378} +% +% \iffalse +%<*driver> +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +\ProvidesFile{ltcaption.drv}% + [2013/06/01 v1.4 This package fixes caption problems with + other-than-centered aligned longtables] +\hbadness=9999 \newcount\hbadness \hfuzz=48pt % Make TeX shut up. +% +\documentclass{ltxdoc} +\setlength\parindent{0pt} +\setlength\parskip{\smallskipamount} +% +\usepackage{ifpdf} +\ifpdf + \usepackage{mathptmx,courier} + \usepackage[scaled=0.90]{helvet} +% \addtolength\marginparwidth{15pt} +\fi +% +\usepackage[bottom]{footmisc} +\usepackage{longtable} +\makeatletter\let\LT@makecaption@ORI\LT@makecaption\makeatother +% +\usepackage{hypdoc} +\ifpdf\usepackage{hypdestopt}\fi +\hypersetup{pdfkeywords={LaTeX, package, ltcaption},pdfstartpage={},pdfstartview={}} +% +\usepackage{ltcaption}[2007/09/01] +%\usepackage[LTcapwidthtotable]{fr-longtable} +% +\DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em% + M\kern.05em A\kern.1em-\kern.1em Script}} +% +\begin{document} + \DocInput{ltcaption.dtx} +\end{document} +%</driver> +% \fi +% +% \newcommand*\purerm[1]{{\upshape\mdseries\rmfamily #1}} +% \newcommand*\puresf[1]{{\upshape\mdseries\sffamily #1}} +% \newcommand*\purett[1]{{\upshape\mdseries\ttfamily #1}} +% \let\class\puresf \let\package\puresf +% \let\env\purett \let\opt\purett +% +% \def\thispackage{the \package{ltcaption} package} +% \def\Thispackage{The \package{ltcaption} package} +% \newcommand*\version[2][]{\textit{v#2}} +% +% \GetFileInfo{ltcaption.drv} +% \let\docdate\filedate +% \let\docversion\fileversion +% \GetFileInfo{ltcaption.sty} +% +% \title{\texorpdfstring{\Thispackage\thanks{%^^A +% This package has version number \docversion.}}%^^A +% {The ltcaption package}} +% \author{Axel Sommerfeldt\\ +% \url{https://gitlab.com/axelsommerfeldt/caption}} +% \date{\docdate} +% \maketitle +% +% \begin{abstract} +% \centering +% \mbox{This package fixes caption problems with other-than-centered aligned longtables.}\\ +% (solves \href{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=tools/3387}%^^A +% {\LaTeX\ PR \texttt{tools/3387}}) +% \end{abstract} +% +% \tableofcontents +% +% \clearpage +% \section{The user interface} +% +% The content of \cs{caption} in longtables is usually centered to the content of the +% longtable itself. +% This is sufficient for centered longtables, but for left or right aligned longtables +% this results in captions moved into the left or right page margin. +% +% To solve this problem just include this package \emph{after} the \package{longtable} +% package\cite{longtable}, e.g.: +% \begin{quote} +% |\usepackage{longtable,ltcaption}| +% \end{quote} +% Afterwards the captions of all longtables should be aligned as expected, +% even for not-centered longtables. +% +% \subsection{Further justification} +% +% \DescribeMacro{\LTcapskip} +% This length is controlling the skip between the caption and the contents +% below the caption (which is usually the longtable contents if you place +% the caption above the longtable), and it can be altered with +% |\setlength\LTcapskip{|\ldots|}|. +% When \thispackage\ is loaded it will be set to |\abovecaptionskip| which +% usually represents the skip between caption and contents in floating +% environments. +% (Without this package, the \package{longtable} package uses |\baselineskip| here.) +% +% \DescribeMacro{\LTcapleft} +% \DescribeMacro{\LTcapright} +% You can alter the centering of the caption box (of width |\LTcapwidth|) +% by setting the lengths |\LTcapleft| \& |\LTcapright| to appropriate values. +% These are set to |\fill| by default, just like the values |\LTleft| \& |\LTright|. +% +% \DescribeMacro{\LTcapmarginsfalse} +% Another option is the usage of the command |\LTcapmarginsfalse| which makes +% \thispackage\ using the values |\LTleft| \& |\LTright| instead of +% |\LTcapleft| \& |\LTcapright|. +% +% \emph{Note:} +% If \thispackage\ will be used with one of the \package{NTG} document +% classes\cite{NTGclasses}, |\CaptionLabelFont| \& |\CaptionTextFont| will +% not only be used for |figure| \& |table| captions, but for |longtable| +% captions as well. +% +% \emph{Note:} +% These lengths \& commands do not work when \thispackage\ is used with one +% of the \KOMAScript\ document classes \class{scrartcl}, \class{scrreprt}, or \class{scrbook}~\cite{KOMAScript}, +% or used with the \class{memoir} document class~\cite{memoir}. +% The \KOMAScript\ resp.~\class{memoir} settings for captions are used instead. +% Same with the \package{caption} package which also uses its own options +% and settings. +% +% \subsection{Bonus features} +% +% \DescribeMacro{\LTcaptype} +% As a bonus feature this package patches the \package{longtable} package +% so |\LTcaptype| will be used internally instead of the fixed caption type +% `table'. So for example this code snipped: +% \begin{quote} +% |\renewcommand\LTcaptype{figure}|\\ +% |\begin{longtable}{ll}|\\ +% |\caption{An example longtable}\\|\\ +% | A & B \\|\\ +% |\end{longtable}| +% \end{quote} +% \pagebreak[3] +% will result in a longtable like this: +% \pagebreak[3] +% \setcounter{figure}{6} +% \begingroup +% \renewcommand\LTcaptype{figure} +% \begin{longtable}{l} +% \caption{An example longtable}\\ +% \ldots \\ +% \end{longtable} +% \endgroup +% +% \DescribeEnv{longtable*} +% Another bonus feature is the addition of the environment |longtable*| which +% does not increment the |table| counter. (As a consequence, |\caption| is not +% available for such longtables, but |\caption*| still is.) +% +% \pagebreak[3] +% \section{Spot the difference} +% +% \begin{minipage}{\linewidth} +% Without \thispackage: +% \makeatletter +% \let\LT@makecaption\LT@makecaption@ORI +% \makeatother +% +% \iffalse show textwidth \fi +% \noindent\rule{\textwidth}{1pt} +% +% \begin{longtable}[l]{l} +% \caption{Left aligned longtable left aligned longtable left aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \begin{longtable}[r]{l} +% \caption{Right aligned longtable right aligned longtable right aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \begin{longtable}[c]{l} +% \caption{Centered longtable centered longtable centered longtable +% centered longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \noindent\rule{\textwidth}{1pt} +% \end{minipage} +% +% \bigskip +% +% \begin{minipage}{\linewidth} +% With \thispackage\ (and the default value of |\LTcapwidth|): +% +% \noindent\rule{\textwidth}{1pt} +% +% \begin{longtable}[l]{l} +% \caption{Left aligned longtable left aligned longtable left aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \begin{longtable}[r]{l} +% \caption{Right aligned longtable right aligned longtable right aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \begin{longtable}[c]{l} +% \caption{Centered longtable centered longtable centered longtable +% centered longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \noindent\rule{\textwidth}{1pt} +% \end{minipage} +% +% \bigskip +% +% \begin{minipage}{\linewidth} +% With \thispackage\ and |\LTcapwidth=\linewidth|: +% \LTcapwidth=\linewidth +% +% \noindent\rule{\textwidth}{1pt} +% +% \begin{longtable}[l]{l} +% \caption{Left aligned longtable left aligned longtable +% left aligned longtable left aligned longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \begin{longtable}[r]{l} +% \caption{Right aligned longtable right aligned longtable +% right aligned longtable right aligned longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \begin{longtable}[c]{l} +% \caption{Centered longtable centered longtable centered longtable +% centered longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \noindent\rule{\textwidth}{1pt} +% \end{minipage} +% +% \bigskip +% +% \begin{minipage}{\linewidth} +% With \thispackage\ and |\LTcapleft=0pt| +% resp. |\LTcapright=0pt|: +% +% \noindent\rule{\textwidth}{1pt} +% +% \LTcapleft=0pt\relax +% \LTcapright=\fill +% \begin{longtable}[l]{l} +% \caption{Left aligned longtable left aligned longtable left aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \LTcapleft=\fill +% \LTcapright=0pt\relax +% \begin{longtable}[r]{l} +% \caption{Right aligned longtable right aligned longtable right aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \noindent\rule{\textwidth}{1pt} +% \end{minipage} +% +% \bigskip +% +% \begin{minipage}{\linewidth} +% With \thispackage\ and |\LTcapleft=\tabcolsep|\\ +% resp. |\LTcapright=\tabcolsep|: +% +% \noindent\rule{\textwidth}{1pt} +% +% \LTcapleft=\tabcolsep +% \LTcapright=\tabcolsep plus 1fill +% \begin{longtable}[l]{l} +% \caption{Left aligned longtable left aligned longtable left aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \LTcapleft=\tabcolsep plus 1fill +% \LTcapright=\tabcolsep +% \begin{longtable}[r]{l} +% \caption{Right aligned longtable right aligned longtable right aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \noindent\rule{\textwidth}{1pt} +% \end{minipage} +% +% \bigskip +% +% \begin{minipage}{\linewidth} +% With \thispackage\ and |\LTcapmarginsfalse|: +% \LTcapmarginsfalse +% +% \noindent\rule{\textwidth}{1pt} +% +% \begin{longtable}[l]{l} +% \caption{Left aligned longtable left aligned longtable left aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \begin{longtable}[r]{l} +% \caption{Right aligned longtable right aligned longtable right aligned +% longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \begin{longtable}[c]{l} +% \caption{Centered longtable centered longtable centered longtable +% centered longtable}\\ +% This is only a test\\ +% \end{longtable} +% +% \noindent\rule{\textwidth}{1pt} +% \end{minipage} +% +% \iffalse +% --------------------------------------------------------------------------- % +% \fi +% +% \StopEventually{%^^A +% \pagebreak[3] +% \begin{thebibliography}{9} +% \bibitem{longtable} +% David Carlisle: +% \href{http://www.ctan.org/pkg/longtable}% +% {\emph{The longtable package}}, +% 2004/02/01 +% +% \bibitem{NTGclasses} +% Victor Eijkhout: +% \href{http://www.ctan.org/pkg/ntgclass}% +% {\emph{An introduction to the Dutch \LaTeX\ document classes}}, +% \mbox{3~September~1989} +% +% \bibitem{KOMAScript} +% Markus Kohm \& Jens-Uwe-Morawski: +% \href{http://www.ctan.org/pkg/koma-script}% +% {\emph{KOMA-Script -- a versatile \LaTeXe\ bundle}}, +% 2012-07-22 +% +% \bibitem{memoir} +% Peter Wilson, maintained by Lars Madsen: +% \href{http://www.ctan.org/pkg/koma-script}% +% {\emph{The Memoir Class for Configurable Typesetting}}, +% 2013-05-30 +% +% \bibitem{floatrow} +% Olga Lapko: +% \href{http://www.ctan.org/pkg/floatrow}% +% {\emph{The floatrow package documentation}}, +% 2007/08/24 +% \end{thebibliography} +% } +% +% \iffalse +% --------------------------------------------------------------------------- % +% \fi +% +% \DoNotIndex{\\,\_,\ ,\@@par} +% \DoNotIndex{\@bsphack} +% \DoNotIndex{\@car,\@cdr,\@classoptionslist,\@cons,\@currext,\@currname} +% \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs} +% \DoNotIndex{\@for,\@firstofone,\@firstoftwo} +% \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom} +% \DoNotIndex{\@ifnextchar,\@ifpackagelater,\@ifpackageloaded} +% \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@namedef,\@nameuse} +% \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist} +% \DoNotIndex{\@removeelement,\@restorepar,\@secondoftwo,\@setpar} +% \DoNotIndex{\@tempa,\@tempboxa,\@tempdima,\@tempdimb,\@tempdimc,\@tempb,\@tempc} +% \DoNotIndex{\@testopt} +% \DoNotIndex{\@undefined,\@unprocessedoptions,\@unusedoptionlist} +% \DoNotIndex{\p@,\z@} +% \DoNotIndex{\active,\addtocounter,\addtolength,\advance,\aftergroup} +% \DoNotIndex{\baselineskip,\begin,\begingroup,\bfseries,\box} +% \DoNotIndex{\catcode,\centering,\changes,\csname,\def,\divide,\do,\downarrow} +% \DoNotIndex{\edef,\else,\empty,\end,\endcsname,\endgraf,\endgroup,\expandafter} +% \DoNotIndex{\fi,\footnotesize,\global} +% \DoNotIndex{\hangindent,\hbox,\hfil,\hsize,\hskip,\hspace,\hss} +% \DoNotIndex{\ifcase,\ifdim,\ifnum,\ifodd,\ifvoid,\ifvmode} +% \DoNotIndex{\ifx,\ignorespaces,\itshape} +% \DoNotIndex{\Large,\large,\leavevmode,\leftmargini,\leftskip,\let,\linewidth} +% \DoNotIndex{\llap,\long,\m@ne,\margin,\mdseries,\message} +% \DoNotIndex{\newcommand,\newdimen,\newlength,\newline,\newif,\newsavebox} +% \DoNotIndex{\next,\nobreak,\nobreakspace,\noexpand,\noindent,\numberline} +% \DoNotIndex{\normalcolor,\normalfont,\normalsize,\or,\par,\parbox,\parfillskip} +% \DoNotIndex{\parindent,\parskip,\prevdepth,\protect,\protected@edef,\protected@write} +% \DoNotIndex{\providecommand,\quad} +% \DoNotIndex{\raggedleft,\raggedright,\relax,\renewcommand,\RequirePackage} +% \DoNotIndex{\rightskip,\rmfamily} +% \DoNotIndex{\sbox,\scriptsize,\scshape,\setbox,\setlength,\sffamily,\slshape} +% \DoNotIndex{\small,\string,\space,\strut} +% \DoNotIndex{\textheight,\the,\toks@,\typeout,\ttfamily} +% \DoNotIndex{\unvbox,\uparrow,\upshape,\usebox,\usepackage} +% \DoNotIndex{\value,\vbox,\vsize,\vskip,\wd,\width,\z@skip} +% \DoNotIndex{\AtBeginDocument,\AtEndOfPackage,\CurrentOption,\DeclareOption} +% \DoNotIndex{\ExecuteOptions,\GenericWarning,\IfFileExists,\InputIfFileExists} +% \DoNotIndex{\NeedsTeXFormat,\MessageBreak} +% \DoNotIndex{\PackageError,\PackageInfo,\PackageWarning,\PackageWarningNoLine} +% \DoNotIndex{\PassOptionsToPackage,\ProcessOptions,\ProvidesPackage} +% +% \iffalse +% --------------------------------------------------------------------------- % +% \fi +% +% \setlength{\parskip}{0pt plus 1pt} +% \changes{v1.0}{2007/04/15}{First release} +% \changes{v1.1}{2007/07/06}{Support of \cs{LTcaptype} added} +% +% \iffalse +% --------------------------------------------------------------------------- % +% \fi +% +% \clearpage +% \section{The Implementation} +% \iffalse +%<*package> +% \fi +% +% \subsection{Identification} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +\ProvidesPackage{ltcaption}[2018/08/26 v1.4a longtable captions (AR)] +% \end{macrocode} +% +% \begin{macrocode} +\@ifpackageloaded{longtable}{}{% + \PackageError{ltcaption}{longtable package not loaded, aborting}{RTFM}} +% \end{macrocode} +% +% \subsection{User interface} +% +% \begin{macro}{\LTcaptype} +% |\LTcaptype| is preset to |table|. +% \begin{macrocode} +\providecommand*\LTcaptype{table} +\providecommand*\ext@table{lot} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ext@lstlisting} +% Since the \package{listings} package do not define |\ext@lstlisting|, +% but we needed it when |\renewcommand\LTcaptype{lstlisting}| was done +% by the end user, we define it here. +% \begin{macrocode} +\@ifundefined{caption@AtBeginDocument}\AtBeginDocument\caption@AtBeginDocument{% + \@ifpackageloaded{listings}{% + \providecommand*\ext@lstlisting{lol}}{}} +% \end{macrocode} +% \end{macro} +% +% To save \TeX\ memory some stuff will not be defined if the +% \package{caption} package is loaded. +% +% \begin{macrocode} +\@ifpackageloaded{caption}{}{% +% \end{macrocode} +% +% \changes{v1.1}{2007/04/20}{The skips will not be defined if the +% \package{caption} package is loaded} +% +% \begin{macro}{\LTcapskip} +% \changes{v1.2}{2007/03/28}{This skip added} +% \begin{macrocode} + \newskip\LTcapskip \LTcapskip=\abovecaptionskip +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\LTcapleft} +% \begin{macro}{\LTcapright} +% \begin{macro}{\ifLTcapmargins} +% Our skips and the flag belonging to them.\\ +% (Default: Use these skips (and not |\LTleft| \& |\LTright|.)\par +% \begin{macrocode} + \newskip\LTcapleft \LTcapleft=\fill + \newskip\LTcapright \LTcapright=\fill + \newif\ifLTcapmargins \LTcapmarginstrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \changes{v1.1}{2007/05/05}{Usage of \cs{CaptionLabelFont} \& +% \cs{CaptionTextFont} added} +% +% \begin{macro}{\CaptionLabelFont} +% \begin{macro}{\CaptionTextFont} +% These commands are provided by the \package{NTG} document classes. +% To make this package work with other document classes as well, +% we need to define |\Caption|\-|Label|\-|Font| \& |\Caption|\-|Text|\-|Font| here. +% \begin{macrocode} + \providecommand*\CaptionLabelFont{} + \providecommand*\CaptionTextFont{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\CaptionLabelSeparator} +% \changes{v1.3}{2011/09/12}{This macro added} +% Additionally, we define |\Caption|\-|Label|\-|Separator| which is predefined as colon. +% \begin{macrocode} + \providecommand*\CaptionLabelSeparator{:} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +} +% \end{macrocode} +% +% \subsection{The longtable patch} +% +% \begin{macro}{\LT@array} +% \changes{v1.1a}{2008/03/21}{Improved redefinition of \cs{refstepcounter} etc.} +% We insert our stuff into the definition of |\LT@array| here. +% Since the \package{hyperref} package patches |\LT@array| as well +% and since this only works with the original definition of |\LT@array|, +% we have to do this after the \package{hyperref} package, +% i.e. |\AtBeginDocument|. +% \begin{macrocode} +\@ifundefined{caption@AtBeginDocument}\AtBeginDocument\caption@AtBeginDocument{% + \let\ltcaption@ORI@LT@array\LT@array + \renewcommand*\LT@array{% +% \end{macrocode} +% We modify |\ref|\-|step|\-|counter| resp.~|\H@ref|\-|step|\-|counter| and +% |\hyper@make|\-|current|, so |\LT|\-|cap|\-|type| is used instead of |table|. +% \begin{macrocode} + \let\caption@LT@refstepcounter\refstepcounter + \def\refstepcounter{% + \caption@LTtype\caption@LT@refstepcounter}% + \let\caption@LT@Hrefstepcounter\H@refstepcounter + \def\H@refstepcounter{% + \caption@LTtype\caption@LT@Hrefstepcounter}% + \let\caption@LT@makecurrent\hyper@makecurrent + \def\hyper@makecurrent{% + \caption@LTtype\caption@LT@makecurrent}% +% \end{macrocode} +% We redefine |\lst@@caption| so |\thelstlisting| will +% printout its counter, too. +% \begin{macrocode} + \def\lst@@caption{\relax}% +% \end{macrocode} +% \begin{macrocode} + \ltcaption@ORI@LT@array}} +% \end{macrocode} +% \begin{macrocode} +\newcommand*\caption@LTtype[2]{% + \edef\caption@LT@tempa{#2}% + \ifx\caption@LT@tempa\caption@LT@table + \caption@LT@type#1% + \else + #1{#2}% + \fi}% +% \end{macrocode} +% \begin{macrocode} +\newcommand*\caption@LT@type[1]{% + \expandafter#1\expandafter{\LTcaptype}} +% \end{macrocode} +% \begin{macrocode} +\newcommand*\caption@LT@table{table}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\LT@c@ption} +% \changes{v1.1a}{2008/01/22}{Bugfix: Made it \cs{long}} +% \changes{v1.2a}{2011/01/01}{Bugfix: \cs{ignorespaces} added} +% The original implementation: +% \begin{verbatim} +% \def\LT@c@ption#1[#2]#3{% +% \LT@makecaption#1\fnum@table{#3}% +% \def\@tempa{#2}% +% \ifx\@tempa\@empty\else +% {\let\\\space +% \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% +% \fi} +% \end{verbatim}%^^A +% Our implementation simply uses |\LTcaptype| instead of |{table}|: +% \begin{macrocode} +\long\def\LT@c@ption#1[#2]#3{% + \LT@makecaption#1{\csname fnum@\LTcaptype\endcsname}{#3}% + \LT@listentry\LTcaptype{#2}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\LT@makecaption} +% \changes{v1.1}{2007/04/20}{\cs{LT@@makecaption} added} +% \changes{v1.1}{2007/06/27}{Adapted to the \package{floatrow} package by Olga Lapko} +% \changes{v1.2}{2007/03/28}{Uses \cs{LTcapskip} instead of \cs{baselineskip} now} +% \changes{v1.3}{2011/09/12}{Usage of \cs{CaptionLabelSeparator} added} +% |\LT@makecaption|\marg{cmd}\marg{label}\marg{text}\par +% \smallskip +% Original code: +% \begin{verbatim} +% \def\LT@makecaption#1#2#3{% +% \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% +% % Based on article class "\@makecaption", "#1" is "\@gobble" in star +% % form, and "\@firstofone" otherwise. +% \sbox\@tempboxa{#1{#2: }#3}% +% \ifdim\wd\@tempboxa>\hsize +% #1{#2: }#3% +% \else +% \hbox to\hsize{\hfil\box\@tempboxa\hfil}% +% \fi +% \endgraf\vskip\baselineskip}% +% \hss}}} +% \end{verbatim}%^^A +% Our code:\footnote{Adapted to the \package{floatrow} package by Olga Lapko} +% \begin{macrocode} +\renewcommand\LT@makecaption[3]{% + \LT@@makecaption{% + \sbox\@tempboxa{% + #1{{\CaptionLabelFont#2\CaptionLabelSeparator} }\CaptionTextFont#3}% + \ifdim\wd\@tempboxa>\hsize + #1{{\CaptionLabelFont#2\CaptionLabelSeparator} }\CaptionTextFont#3% + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgraf\vskip\LTcapskip}} +% \end{macrocode} +% \begin{macrocode} +\newcommand\LT@@makecaption[1]{% + \caption@LT@make{\hb@xt@\hsize{% + \ifLTcapmargins + \hspace\LTcapleft + \FBifLTcapwidth{\advance\LTcapwidth-\LTcapleft}% + \else + \hspace\LTleft + \FBifLTcapwidth{\advance\LTcapwidth-\LTleft}% + \fi + \FBifLTcapwidth{\advance\LTcapwidth-% + \ifLTcapmargins\LTcapright\else\LTright\fi}% + \parbox[t]\LTcapwidth{#1}% + \ifLTcapmargins + \hskip\LTcapright + \else + \hskip\LTright + \fi}}} +% \end{macrocode} +% This one will be usually defined by the \package{fr-longtable} package, +% which is part of the \package{floatrow} package\cite{floatrow}: +% \begin{macrocode} +\AtBeginDocument{\providecommand*\FBifLTcapwidth[1]{}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\caption@LT@make} +% Typesets the caption as |\multicolumn|\ldots +% \begin{macrocode} +\newcommand\caption@LT@make[1]{% + \noalign{\caption@LT@config}% +% \end{macrocode} +% Note: If used with the \package{array} package |\caption@LTfmt| needs +% to be expanded, therefore we need some |\expandafter| here. +% \begin{macrocode} + \expandafter\LT@mcol\expandafter\LT@cols\expandafter{\caption@LTfmt}{% + \hb@xt@\z@{% + \hspace\caption@LTleft + \parbox[t]\linewidth{#1}% + \hspace\caption@LTright}}}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\caption@LT@config} +% |\caption@LT@config| analyses |\LTleft| \& |\LTright| +% and set |\caption@LTleft| \& |\caption@LTright| accordingly +% to the `opposite' values, e.g., |\LTleft=1cm| will result to +% |\caption@LTleft=-1cm| and |\LTleft=0pt plus 1fill| +% will result to |\caption@LTleft=0pt minus 1fill|. +% Furthermore |\caption@LTfmt| is set to the according +% multicolumn format; this is far away from being bulletproof +% (e.g., a stretch or shrink will always be treated as `fill') +% but will hopefully cover all `real' cases. +% \begin{macrocode} +\newcommand*\caption@LT@config{% +% \end{macrocode} +% \begin{macrocode} + \caption@LT@parse\LTleft\caption@LTleft\caption@ifLTleft + \caption@LT@parse\LTright\caption@LTright\caption@ifLTright +% \end{macrocode} +% \begin{macrocode} + \xdef\caption@LTfmt{% + @{}\caption@ifLTleft{\caption@ifLTright{c}{r}}{l}@{}}} +% \end{macrocode} +% \end{macro} +% +% \iffalse +% \def\@defplusminus#1 #2 #3 #4 #5\@nil{% +% \def\@plus{#2}\def\@minus{#4}} +% \@tempskipa=1pt plus 1pt minus 1pt\relax +% \expandafter\@defplusminus\the\@tempskipa\@nil +% \fi +% +% \begin{macro}{\caption@LT@parse} +% Parsing of the skip, we collect a |\@fixpart|, a |@pluspart|, +% and a |\@minuspart| and make our definitions based on that. +% \begin{macrocode} +\newcommand*\caption@LT@parse[3]{% +% \end{macrocode} +% \begin{macrocode} + \let\@pluspart\@undefined + \let\@minuspart\@undefined + \expandafter\caption@LT@parse@\expandafter\@fixpart\the#1 x % +% \end{macrocode} +% \begin{macrocode} + \xdef#2{-\@fixpart + \ifx\@minuspart\@undefined\else + \space\@plus\space\@minuspart + \fi + \ifx\@pluspart\@undefined\else + \space\@minus\space\@pluspart + \fi}% +% \end{macrocode} +% \changes{v1.1}{2007/04/17}{Made it 5 token shorter} +% \begin{macrocode} + \let#3\@firstoftwo + \ifx\@pluspart\@undefined + \ifx\@minuspart\@undefined + \let#3\@secondoftwo + \fi + \fi} +% \end{macrocode} +% \begin{macrocode} +\def\caption@LT@parse@#1#2 {% +% \end{macrocode} +% Note: |\def\@tempa{#2}\ifx\@tempa\@plus|\ldots would not work here +% because of different catcodes. +% \begin{macrocode} + \edef\@tempa{\@car#2\@nil}% + \if p\@tempa + \def\next{\caption@LT@parse@\@pluspart}% + \else\if m\@tempa + \def\next{\caption@LT@parse@\@minuspart}% + \else\if x\@tempa + \let\next\relax + \else + \def#1{#2}% + \def\next{\caption@LT@parse@ @}% + \fi\fi\fi + \next} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\LT@listentry} +% \changes{v1.4}{2018/08/26}{This macro added} +% \begin{macrocode} +\newcommand*\LT@listentry[2]{% + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\let\\\space + \addcontentsline{\csname ext@#1\endcsname}{#1}% + {\protect\numberline{\csname the#1\endcsname}{#2}}}% + \fi + \ignorespaces} +% \end{macrocode} +% \end{macro} +% +% \subsection{The \texttt{longtable*} environment} +% \changes{v1.1}{2007/09/01}{Environment \env{longtable*} added} +% +% \begin{environment}{longtable*} +% \changes{v1.1a}{2008/03/21}{Improved redefinition of \cs{refstepcounter} etc.} +% A |longtable| environment without reference counter and hyperlink anchors. +% \begin{macrocode} +\newenvironment{longtable*}{% +% \end{macrocode} +% We simply supress anything which has to do with reference counters here. +% \begin{macrocode} + \let\caption@LT@type\@gobble +% \end{macrocode} +% Unfortunately this is not so easy with |\Hy@raisedlink| (which actually sets +% the hyperlink anchor), so we assume that we have to supress the first usage. +% \begin{macrocode} + \let\caption@LT@raisedlink\Hy@raisedlink + \def\Hy@raisedlink{% + \let\Hy@raisedlink\caption@LT@raisedlink + \@gobble}% +% \end{macrocode} +% Finally we are redefining |\caption| so the non-starred variant +% issues an error. +% \begin{macrocode} + \let\ltcaption@ORI@LT@c@ption\LT@c@ption + \def\LT@c@ption##1[##2]##3{% + \ifx##1\@firstofone + \PackageError{ltcaption}% + {Not allowed in longtable* environment}% + {If you do not understand this error, please take a closer + look\MessageBreak at the documentation of the `ltcaption' + package.\MessageBreak \@ehc}% + \else + \ltcaption@ORI@LT@c@ption{##1}[{##2}]{##3}% + \fi}% +% \end{macrocode} +% \begin{macrocode} + \longtable}% + {\endlongtable} +% \end{macrocode} +% \end{environment} +% +% \subsection{Adaption for \texorpdfstring{\KOMAScript}{KOMA Script}} +% +% \begin{macrocode} +\@ifundefined{@komalongtablefalse}{}{% + \if@komalongtable +% \end{macrocode} +% \begin{macrocode} + \renewcommand\LT@makecaption[3]{% + \noalign{% + \if@captionabove + \vskip\belowcaptionskip + \else + \vskip\abovecaptionskip + \fi + }% + \caption@LT@make{% + \@@makecaption{#1}{#2}{#3}% + \endgraf + \if@captionabove + \vskip\abovecaptionskip + \else + \vskip\belowcaptionskip + \fi + }% + }% +% \end{macrocode} +% \begin{macrocode} + \let\LT@@makecaption\@undefined +% \end{macrocode} +% \begin{macrocode} + \fi} +% \end{macrocode} +% +% \subsection{Adaption for \texorpdfstring{Memoir}{Memoir}} +% +% \begin{macrocode} +\@ifclassloaded{memoir}{% + \@ifundefined{@@makecaption}{}{% + \renewcommand\LT@makecaption[3]{% +% \noalign{\vskip\abovecaptionskip}% + \caption@LT@make{% + \let\@memtempa\relax + % starred form -> #1 = \@gobble + \ifx#1\@gobble + \let\@contnfont\@empty + \let\@contdelim\@empty + \@@makecaption{}{#3}% + \else + \@@makecaption{#2}{#3}% + \fi + \endgraf\vskip\belowcaptionskip}}% +% \end{macrocode} +% \begin{macrocode} + \let\LT@@makecaption\@undefined +% \end{macrocode} +% \begin{macrocode} + }}{} +% \end{macrocode} +% +% \iffalse +%</package> +% \fi +% +% \iffalse +% --------------------------------------------------------------------------- % +% \fi +% +% \Finale +% +\endinput |