diff options
author | Karl Berry <karl@freefriends.org> | 2024-06-14 21:41:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-06-14 21:41:25 +0000 |
commit | 9595127cb8c18f411e8e696009e35704d8b67df2 (patch) | |
tree | d6fae5c81ff0280cd68b0d2d31e96566101af4a4 /Master/texmf-dist | |
parent | 7c6daf8381f92e1cb7cb876f2252496bf7298f10 (diff) |
multitoc (14jun24)
git-svn-id: svn://tug.org/texlive/trunk@71520 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/multitoc/README.md | 44 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/multitoc/multitoc.pdf | bin | 0 -> 285181 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/multitoc/multitoc.dtx | 516 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/multitoc/multitoc.ins | 47 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/multitoc/multitoc.sty | 76 |
5 files changed, 683 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/multitoc/README.md b/Master/texmf-dist/doc/latex/multitoc/README.md new file mode 100644 index 00000000000..69078f454e6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/multitoc/README.md @@ -0,0 +1,44 @@ +# The `multitoc` package + +Copyright (C) Martin Schröder, 1998–1999, Marei Peischl (peiTeX) <marei@peitex.de>, 2024 + + multitoc 2024/06/13 v2.02 + +*************************************************************************** + + This material is subject to the LaTeX Project Public License version 1.3c + or later. See http://www.latex-project.org/lppl.txt for details. + +*************************************************************************** + +This work has the LPPL maintenance status `maintained'. +This package is maintained but will not receive any additional features anymore. + +The Current Maintainer of this work is + Marei Peischl <marei@peitex.de>. + +[Link to the GitLab Repository](https://gitlab.com/TeXhackse/ragged2e) + +## Abstract +This package only exists and is maintained for compatibility reasons! + +The package automatically sets the table of contents, list of figures and list of tables in two or more columns (the number of columns may be configured). + +The package uses the multicol package. + +## Provided files + +* README.md +* multitoc.dtx +* multitoc.ins + +The file +* multitoc.sty + +## Issue Tracker +If you think you may have found a bug in this package, please visit + https://gitlab.com/TeXhackse/multitoc/issues + +## Version History + * 2.02 Bugfix to no longer break other lists but toc/lot and lof +t.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/multitoc/multitoc.pdf b/Master/texmf-dist/doc/latex/multitoc/multitoc.pdf Binary files differnew file mode 100644 index 00000000000..7401b2f53ea --- /dev/null +++ b/Master/texmf-dist/doc/latex/multitoc/multitoc.pdf diff --git a/Master/texmf-dist/source/latex/multitoc/multitoc.dtx b/Master/texmf-dist/source/latex/multitoc/multitoc.dtx new file mode 100644 index 00000000000..2e6c5bd9c9f --- /dev/null +++ b/Master/texmf-dist/source/latex/multitoc/multitoc.dtx @@ -0,0 +1,516 @@ +%% \iffalse meta-comment +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright (C) Martin Schröder, 1998–1999 +% Marei Peischl (peiTeX) <marei@peitex.de>, 2024 +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% 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.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% This package is maintained but will not receive any additional features. +% +% The Current Maintainer of this work is +% Marei Peischl <marei@peitex.de>. +% +% +% This work consists of the files +% README.md +% multitoc.dtx +% multitoc.ins +% and the derived file +% multitoc.sty. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \fi +% \iffalse +\NeedsTeXFormat{LaTeX2e}[2015-09-18] +%<package>\ProvidesPackage{multitoc} +%<package> [2024/06/13 v2.02 MultiToc Package] +% +%<*driver> +\ProvidesFile{multitoc.drv} + [1999/06/08 v2.02 Driver for MultiToc Package] +\documentclass{ltxdoc} +\usepackage{url} +\usepackage{ragged2e} +\usepackage[toc]{multitoc} +\GetFileInfo{multitoc.sty} +\makeatletter +\IfFileExists{gitHeadInfo.gin}{ + \newcommand*{\GI@githeadinfo@file}{gitHeadInfo.gin} +}{} +\makeatother +\usepackage{gitinfo2} +\setcounter{IndexColumns}{2} +\EnableCrossrefs +%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready +\CodelineIndex % Index code by line number +\OnlyDescription % comment out for implementation details +%%\OldMakeIndex % use if your MakeIndex is pre-v2.9 +\setcounter{IndexColumns}{2} +\setlength{\IndexMin}{30ex} +\setlength{\premulticols}{\IndexMin} +\RaggedRight +\begin{document} + \DocInput{multitoc.dtx} +\end{document} +%</driver> +% \fi +% +% \changes{v0.90}{1998/05/23}{New} +% \changes{v1.00}{1998/08/09}{Documentation improved} +% \changes{v2.00}{1998/08/23}{Redesign} +% \changes{v2.01}{1999/06/08}{Moved to LPPL} +% +% \newcommand*{\option}[1]{\textnormal{\sffamily#1}} +% \newcommand*{\package}[1]{\textnormal{\sffamily#1}} +% \newcommand*{\file}[1]{\textnormal{\texttt{.#1}}} +% \newcommand*{\env}[1]{\textnormal{\texttt{#1}}} +% +% +% ^^A ----------------------------- +% +% \title{\unskip +% The \textsf{multitoc} package^^A +% \thanks{^^A +% The version number of this file is \fileversion, +% revision~\#\gitAbbrevHash, last revised \protect\gitAuthorIsoDate.\protect\newline +% The name \textsf{multitoc} is a tribute to the $8+3$ +% file-naming convention of certain ``operating +% systems''; strictly speaking it should be +% \textsf{MulticolumnToc}.} +% } +% \author{Martin Schröder\\ +% \url{https://gitlab.com/TeXhackse/multitoc}\thanks{maintained by Marei Peischl}} +% \date{\filedate} +% \maketitle +% +% ^^A ----------------------------- +% +% \begingroup\renewcommand*{\abstractname}{Disclaimer/Warning} +% \begin{abstract} +% \changes{v2.02}{2024/06/13}{Add note, that there will not be any additional features.} +% This package is maintained to keep compatibility but will not receive any further feature extensions as there are a lot of packages providing by far more functionality. +% +% In case you are looking for methods to modify lists have a look at Markus Kohm's tocbasic Package \cite{package:tocbasic} or the corresponding CTAN Topic \url{https://ctan.org/topic/toc-etc}. +% \end{abstract} +% \endgroup +% +% \begin{abstract} +% This package allows setting only the table of contents, list of +% figures and/or list of tables in two or more columns. +% The number of columns can be configured via commands; the +% multicolumn toc(s) can be selected via package options. +% \end{abstract} +% +% \pagestyle{headings} +% +% ^^A ----------------------------- +% +% \tableofcontents +% +% ^^A ----------------------------- +% +% \section{Introduction} +% +% +% ^^A ----------------------------- +% +% \subsection{The problem\label{sec:sec:problem}} +% ^^A +% When you want to set only the table of contents of a document in two +% (or more columns), there is one known way^^A +% \footnote{^^A +% This was first used in the \package{doc} +% package\protect\cite{package:doc}. +% }^^A +% : Add an +% \begin{quote} +% |\addtocontents{toc}{\protect\begin{multicols}{2}}| +% \end{quote} +% before the \cs{tableofcontents} and an +% \begin{quote} +% |\addtocontents{toc}{\protect\end{multicols}}| +% \end{quote} +% at the end of the document. +% This way your \file{toc} will start with |\begin{multicols}{2}| +% and end with |\end{multicols}|. +% +% This can be automised by using \cs{AtBeginDocument} and +% \cs{AtEndDocument} but this has the drawback that it may +% collide with other commands inserted using \cs{AtEndDocument} that +% try to write information to the auxilary file (like the +% \package{count1to} package\cite{package:count1to}). +% This is because \TeX{} has two ways to write information to files +% \cite[p.\ 226--228]{KnuthTeXa}: immediately (when the \cs{write} is +% prefixed by \cs{immediate}) or deferred till the current page is +% finished and written out by \TeX{} (at the next \cs{shipout}). +% \cs{addtocontents} does a deferred \cs{write}, \package{count1to} +% does an immediate. +% +% \begin{quote} +% \small +% Sidenote: \cs{addtocontents} writes a command to the \file{aux} file +% to write its information to the \file{toc} file. +% The \file{aux} is read in and executed by |\end{document}| and at +% the next run by |\begin{document}|. +% So the \file{toc} is written by |\end{document}| and at the +% next run by |\begin{document}|. +% \end{quote} +% +% When you use the automised solution with \package{count1to} this may +% happen: +% \begin{enumerate} +% \item The |\addtocontents{toc}{\protect\end{multicols}}| is inserted +% using \cs{AtEndDocument} somewhere in the preamble. +% \item \package{count1to} inserts this code +% \begin{quote} +% \hfuzz135pt +% \small +% |\clearpage|\\ +% |\immediate\write\@auxout{\string\newlabel{TotalPages}{{\the\count1}{\the\count1}}}| +% \end{quote} +% via an |\AtBeginDocument{\AtEndDocument{| so it can be sure that +% this code is the \emph{last} code executed by \cs{AtEndDocument}. +% \item At the |\end{document}| first the code from step~1 is executed +% which adds the information to the current page to write the +% |\@writefile{toc}{\end{multicols}}| to the auxilary file +% \emph{when the current page is finished}. +% +% Then the code from step~2 is executed, which lets \LaTeX{} clear +% the page (to force all pending writes to be written) and +% \emph{immediately} after that write the information for the +% |TotalPages| to the auxilary file. +% +% Now suppose that the |\end{document}| is called \emph{just after} +% \LaTeX{} has finished the last page. +% The code from step~1 is never written to the file (since at the +% \cs{clearpage} \LaTeX{} has no page to finish and so the code +% waits for the \cs{shipout} which won't come), but the code from +% step~2 is. +% So you now have an \file{aux} which won't write the +% |\end{multicols}| to the \file{toc}. +% This of course produces an error at the next run. +% \end{enumerate} +% +% +% ^^A ----------------------------- +% +% \subsection{A solution} +% ^^A +% \DescribeMacro{\@starttoc} +% An easy way around this is to simply redefine \cs{@starttoc} from +% \cite{package:ltsect} which reads in the \file{toc} to wrap a +% \env{multicol} around it.\footnote{^^A +% Thanks to Frank Mittelbach for reminding me of this.}^^A +% $^{,}$^^A +% \footnote{^^A +% \raggedright +% Version~1.00 of this package provided a more elaborate solution +% to this using \cs{immediateaddtocontents}; this is no longer needed. +% But the commands from version~1.00 are still provided (see +% section~\ref{sec:sec:version100}).} +% +% +% ^^A ----------------------------- +% +% \section{Parameters} +% ^^A +% \DescribeMacro{\multicolumntoc} +% \DescribeMacro{\multicolumnlot} +% \DescribeMacro{\multicolumnlof} +% The number of columns for the table of contens, list of figures and +% list of tables can be set by redefining the commands +% \cs{multicolumntoc}, \cs{multicolumnlot} and \cs{multicolumnlof}. +% The default is two columns. +% +% +% ^^A ----------------------------- +% +% \section{Options} +% ^^A +% The package has the following options: +% \nopagebreak +% \begin{description} +% \item[\normalfont\option{toc}] +% The table of contents is set in \cs{multicolumntoc} columns. +% \item[\normalfont\option{lof}] +% The list of figures is set in \cs{multicolumnlof} columns. +% \item[\normalfont\option{lot}] +% The list of tables is set in \cs{multicolumnlot} columns. +% \end{description} +% +% +% ^^A ----------------------------- +% +% \section{Required packages} +% ^^A +% The package requires the \package{multicol} and the +% \package{ifthen} packages. +% +% +% ^^A ----------------------------- +% +% \StopEventually{^^A +% +% +% ^^A ----------------------------- +% +% \begin{thebibliography}{1} +% \raggedright +% \bibitem{package:ltfiles} +% Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport, +% Frank Mittelbach, Chris Rowley and Rainer Sch\"opf. +% \newblock \package{ltfiles.dtx}. +% \newblock \texttt{CTAN: tex-archive/macros/latex/base/ltfiles.dtx}. +% \newblock \LaTeXe{} kernel. +% \bibitem{package:ltsect} +% Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport, +% Frank Mittelbach, Chris Rowley, Tobias Oetiker and Rainer Sch\"opf. +% \newblock \package{ltsect.dtx}. +% \newblock \url{CTAN: tex-archive/macros/latex/base/ltsect.dtx}. +% \newblock \LaTeXe{} kernel. +% \bibitem{KnuthTeXa} +% Donald~E.\ Knuth. +% \newblock \emph{The {\TeX}Book}, volume~A of \emph{Computers +% and Typesetting}. +% \newblock Addison-Wes\-ley, 1986. +% \newblock Eleventh printing, revised, May 1991. +% \bibitem{package:doc} +% Frank Mittelbach. +% \newblock The \package{doc} and \package{shortvrb} package. +% \newblock \url{CTAN: tex-archive/macros/latex/base/doc.dtx}. +% \newblock \LaTeXe{} package. +% \bibitem{package:count1to} +% Martin Schr\"oder. +% \newblock The \package{count1to} package. +% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/count1to.dtx}. +% \newblock \LaTeXe{} package. +% \bibitem{package:tocbasic} +% Markus Kohm +% \newblock KOMA-Script +% \newblock \url{CTAN: tex-archive/macros/latex/contrib/koma-script/tocbasic.dtx}. +% \newblock \LaTeXe{} package. +% \end{thebibliography} +% +% } +% +% +% ^^A ----------------------------- +% +% \section{The Implementation} +% ^^A +% \setlength{\parindent}{0pt} +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% We need the \package{multicol} and the \package{ifthen} packages. +% \begin{macrocode} +\RequirePackage{multicol} +\RequirePackage{ifthen} +% \end{macrocode} +% +% +% ^^A ----------------------------- +% +% \subsection{The parameters} +% ^^A +% \begin{macro}{\multicolumntoc} +% \begin{macro}{\multicolumnlot} +% \begin{macro}{\multicolumnlof} +% \mbox{} +% \begin{macrocode} +\newcommand{\multicolumntoc}{2} +\newcommand{\multicolumnlot}{2} +\newcommand{\multicolumnlof}{2} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% ^^A ----------------------------- +% +% \subsection{Initial Code} +% ^^A +% \begin{macro}{@multitoc@toc} +% \changes{v2.00}{1998/08/23}{new} +% \cs{if@multitoc@toc} is used to flag the use of the \option{toc} +% otion. +% \begin{macrocode} +\newboolean{@multitoc@toc} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{@multitoc@lot} +% \changes{v2.00}{1998/08/23}{new} +% \cs{if@multitoc@lot} is used to flag the use of the \option{lot} +% otion. +% \begin{macrocode} +\newboolean{@multitoc@lot} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{@multitoc@lof} +% \changes{v2.00}{1998/08/23}{new} +% \cs{if@multitoc@lof} is used to flag the use of the \option{lof} +% otion. +% \begin{macrocode} +\newboolean{@multitoc@lof} +% \end{macrocode} +% \end{macro} +% +% +% ^^A ----------------------------- +% +% \subsection{The options} +% ^^A +% The options simply set the corresponding flags. +% \changes{v2.00}{1998/08/23}{Redesign} +% \changes{v1.00}{1998/08/09}{\cs{clearpage}} +% \begin{macrocode} +\DeclareOption{toc}{\setboolean{@multitoc@toc}{true}} +\DeclareOption{lot}{\setboolean{@multitoc@lot}{true}} +\DeclareOption{lof}{\setboolean{@multitoc@lof}{true}} +% \end{macrocode} +% +% +% ^^A ----------------------------- +% +% \subsection{Executing options} +% ^^A +% There are no default options. +% \begin{macrocode} +\ProcessOptions\relax +% \end{macrocode} +% +% +% ^^A ----------------------------- +% +% \subsection{Redefining \cs{@starttoc}} +% ^^A +% \begin{macro}{\@starttoc} +% From \cite{package:ltsect}: +% \begin{quote} +% The |\@starttoc|\marg{ext} command is used to define the commands:\\ +% |\tableofcontents|, |\listoffigures|, etc. +% +% For example: +% |\@starttoc{lof}| is used in |\listoffigures|. This command +% reads the |.|\meta{ext} file and sets up to write the new +% |.|\meta{ext} file. +% +% \begin{oldcomments} +% \@starttoc{EXT} == +% BEGIN +% \begingroup +% \makeatletter +% read file \jobname.EXT +% IF @filesw = true +% THEN open \jobname.EXT as file \tf@EXT +% FI +% @nobreak :=G FALSE %% added 24 May 89 +% \endgroup +% END +% \end{oldcomments} +% \end{quote} +% We store the current definition in \cs{@multitoc@starttoc} +% and wrap it in a \env{multicol} environment if the right +% option has been selected. +% We also have to determine the number of columns to use.\footnote{^^A +% This could probably be coded more effeciently, but this code +% works\ldots} +% \changes{v2.02}{2024/06/13}{Fix bug breaking other lists but toc/lof/lot. Thanks to Markus Kohm for reporting.} +% \begin{macrocode} +\let\@multitoc@starttoc\@starttoc +\ExplSyntaxOn +\renewcommand*{\@starttoc}[1]{% + \clist_if_in:nnTF {toc,lof,lot} {#1} { + \ifthenelse{\boolean{@multitoc@#1}}{ + \begin{multicols}{\use:c{multicolumn#1}}% + \@multitoc@starttoc{#1}% + \end{multicols} + }{ + \@multitoc@starttoc{#1} + } + }{ + \@multitoc@starttoc{#1} + } +} +\ExplSyntaxOff +% \end{macrocode} +% \end{macro} +% +% +% ^^A ----------------------------- +% +% \subsection{Code from Version~1.00\label{sec:sec:version100}} +% ^^A +% The first version of this package took a different approach to +% solving the problem mentioned in section~\ref{sec:sec:problem} and +% provided the commands \cs{protected@write@immediate} and +% \cs{immediateaddtocontents}. +% Their code has been retained here for compatibilty reasons. +% +% \DescribeMacro{\immediateaddtocontents} +% \cs{immediateaddtocontents} is a version of \cs{addtocontents} which +% does just what the name implies: Write the information \cs{immediate}. +% +% \begin{macro}{\protected@write@immediate} +% This is a changed version of \cs{protected@write} +% from~\cite{package:ltfiles}. +% It takes three arguments: an output stream, some initialization +% code, and some text to write. +% It then writes this \emph{immediately}, with +% appropriate handling of |\protect| and |\thepage|. +% \changes{v2.00}{1998/09/06}{retained} +% \begin{macrocode} +\newcommand*{\protected@write@immediate}[3]{% + \begingroup + \let\thepage\relax + #2% + \let\protect\string + \edef\reserved@a{\immediate\write#1{#3}}% + \reserved@a + \endgroup + \if@nobreak\ifvmode\nobreak\fi\fi + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\immediateaddtocontents} +% This is a changed version of \cs{addtocontents} +% from~\cite{package:ltsect}. +% The |\immediateaddtocontents{|\meta{table}|}{|\meta{text}|}| command +% \emph{immediately} adds \meta{text} to the |.|\meta{table} file, +% with no page number. +% \changes{v2.00}{1998/09/06}{retained} +% \begin{macrocode} +\newcommand*{\immediateaddtocontents}[2]{% + \protected@write@immediate\@auxout + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}% + {\string\@writefile{#1}{#2}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% ^^A ----------------------------- +% +% \Finale +% +% \PrintIndex\PrintChanges +% ^^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 diff --git a/Master/texmf-dist/source/latex/multitoc/multitoc.ins b/Master/texmf-dist/source/latex/multitoc/multitoc.ins new file mode 100644 index 00000000000..e42692f99aa --- /dev/null +++ b/Master/texmf-dist/source/latex/multitoc/multitoc.ins @@ -0,0 +1,47 @@ +\input docstrip.tex + +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ragged2e.ins} + [2024/06/13 v2.02 Installation script for MultiToc Package] + +\preamble +Copyright (C) 1998–1999 Martin Schröder, 2024 Marei Peischl (peiTeX) <marei@peitex.de> + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3c +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.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is + Marei Peischl <marei@peitex.de>. + +This work consists of the files multitoc.dtx and multitoc.ins +and the derived file multitoc.sty. + +\endpreamble +\keepsilent +\askforoverwritefalse +\generate{% + \file{multitoc.sty}{\from{multitoc.dtx}{package}} +} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* style files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space multitoc.sty} +\Msg{*} +\Msg{* To produce the documentation run the file multitoc.dtx} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} +\endbatchfile +%% +%% End of file `multitoc.ins'. diff --git a/Master/texmf-dist/tex/latex/multitoc/multitoc.sty b/Master/texmf-dist/tex/latex/multitoc/multitoc.sty new file mode 100644 index 00000000000..4978376998a --- /dev/null +++ b/Master/texmf-dist/tex/latex/multitoc/multitoc.sty @@ -0,0 +1,76 @@ +%% +%% This is file `multitoc.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% multitoc.dtx (with options: `package') +%% Copyright (C) 1998–1999 Martin Schröder, 2024 Marei Peischl (peiTeX) <marei@peitex.de> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is +%% Marei Peischl <marei@peitex.de>. +%% +%% This work consists of the files multitoc.dtx and multitoc.ins +%% and the derived file multitoc.sty. +%% +%% \iffalse meta-comment +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e}[2015-09-18] +\ProvidesPackage{multitoc} + [2024/06/13 v2.02 MultiToc Package] +\RequirePackage{multicol} +\RequirePackage{ifthen} +\newcommand{\multicolumntoc}{2} +\newcommand{\multicolumnlot}{2} +\newcommand{\multicolumnlof}{2} +\newboolean{@multitoc@toc} +\newboolean{@multitoc@lot} +\newboolean{@multitoc@lof} +\DeclareOption{toc}{\setboolean{@multitoc@toc}{true}} +\DeclareOption{lot}{\setboolean{@multitoc@lot}{true}} +\DeclareOption{lof}{\setboolean{@multitoc@lof}{true}} +\ProcessOptions\relax +\let\@multitoc@starttoc\@starttoc +\ExplSyntaxOn +\renewcommand*{\@starttoc}[1]{% +\clist_if_in:nnTF {toc,lof,lot} {#1} { +\ifthenelse{\boolean{@multitoc@#1}}{ +\begin{multicols}{\use:c{multicolumn#1}}% +\@multitoc@starttoc{#1}% +\end{multicols} +}{ +\@multitoc@starttoc{#1} +} +}{ +\@multitoc@starttoc{#1} +} +} +\ExplSyntaxOff +\newcommand*{\protected@write@immediate}[3]{% + \begingroup + \let\thepage\relax + #2% + \let\protect\string + \edef\reserved@a{\immediate\write#1{#3}}% + \reserved@a + \endgroup + \if@nobreak\ifvmode\nobreak\fi\fi + } +\newcommand*{\immediateaddtocontents}[2]{% + \protected@write@immediate\@auxout + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}% + {\string\@writefile{#1}{#2}}} +\endinput +%% +%% End of file `multitoc.sty'. |