我正在制作一份飞机清单,这是我发现一些 Latex 函数的一种方法。
因此,由于 mulitcols 包,检查表打印在 A4 纸上,分成两列。文档分成不同的章节(常规检查表、紧急检查表……)。因此,这似乎表现良好。
每列都有一个专用编号(代替页码),并且该编号打印在每列的标题中。(这里也有我预期的结果,可能不是最好的方式)
我想为每个章节制作一个专用的目录:常规检查表的第一页将列出常规检查表程序。紧急情况章节将列出紧急程序,...目录应按如下方式呈现数据:检查表名称.......{col number}
但不幸的是,在尝试了几次 tocloft 包后,我还是没有得到我想要的结果。列号没有按预期检索和显示(它从 0 开始,而不是 3,...),数据显示得也不好。此外,我不知道如何避免在正常清单目录中显示紧急清单...
所以,如果你知道我该怎么做。
我的代码在背面: https://www.overleaf.com/read/vjvjpfrryzvh
\addcontentsline 在我的清单环境中定义为第 236 行(我需要对其进行处理以简化内容并提高代码的可读性):
%add counter for each checklist created (not used, but in case...)
\refstepcounter{checklist}
%prepare the print of the TOC
%TODO: correct the implantation in order to have
%Cheklist name ...... colnumber
\phantomsection
\addcontentsline{cll}{figure}{\protect\numberline{\thecolumn}#1}\par
%Check list are printed as Table
\setlength{\tabcolsep}{0.5em} % for the horizontal padding
\begin{tabular}{p{\dimexpr \linewidth-2\tabcolsep}}
\toprule
\multicolumn{1}{c}{\textbf{\uppercase{#1}}}\\
\midrule
列号的定义/计算是在 \AddEverypageHook 定义第 76 行中完成的。我用它来生成标题。
%3rd - add header above each pages.
%Even if not mandatory, we provide if for odd and even pages
\AddEverypageHook{\ifdim\columnwidth<\textwidth
\ifodd\value{page}\rlap{\hspace{\oddsidemargin}%
\raisebox{\dimexpr-\topmargin-\headheight}[0pt][0pt]%
{\begin{minipage}[t]{\dimexpr2\linewidth+\columnsep }
\begin{multicols*}{2}
\begin{tabularx}{\linewidth}{|c|>{\setlength\hsize{1.8\hsize}}X|>{\setlength\hsize{0.2\hsize}}X|}
\hline
\large JA4032 & \centering \large \textbf{\leftmark} & \large \stepcounter{column}\thecolumn \\
\hline
& \multicolumn{1}{|c|}{\today} & \\ \hline
\end{tabularx}
\begin{tabularx}{\linewidth}{|c|>{\setlength\hsize{1.8\hsize}}X|>{\setlength\hsize{0.2\hsize}}X|}
\hline
\large JA4032 & \centering \large \textbf{\leftmark} & \large \stepcounter{column}\thecolumn \\
\hline
& \multicolumn{1}{|c|}{\today} & \\
\hline
\end{tabularx}
\end{multicols*}
\end{minipage}}
}
\else\rlap{\hspace{\evensidemargin}%
\raisebox{\dimexpr-\topmargin-\headheight}[0pt][0pt]%
{\begin{minipage}[t]{\dimexpr2\linewidth+\columnsep }
\begin{multicols*}{2}
\begin{tabularx}{\linewidth}{|c|>{\setlength\hsize{1.8\hsize}}X|>{\setlength\hsize{0.2\hsize}}X|}
\hline
\large JA4032 & \centering \large \textbf{\leftmark} & \large \stepcounter{column}\thecolumn \\
\hline
& \multicolumn{1}{|c|}{\today} & \\
\hline
\end{tabularx}
\begin{tabularx}{\linewidth}{|c|>{\setlength\hsize{1.8\hsize}}X|>{\setlength\hsize{0.2\hsize}}X|}
\hline
\large JA4032 & \centering \large \textbf{\leftmark} & \large \stepcounter{column}\thecolumn \\
\hline
& \multicolumn{1}{|c|}{\today} & \\
\hline
\end{tabularx}
\end{multicols*}
\end{minipage}}
}
\fi%
\fi}
并且我定义并使用了tocloft包第128行。
%------------------------------------------------------
%Definition for the Table of contents
%TOC is printed in the first pages of a chapter (Normal Checlist, Emergency...
%TOC presents the name of the checklist and the column number where is set the checklist
%TODO: Correct the column number: printed column number is not the good one.
%TODO: customize to print only the checklist items set in the current chapter
\usepackage{tocloft}
\newcommand{\listechecklistname}{Normal Checklist}
\newlistof{checklist}{cll}{\listechecklistname}
PS:可能到 overleaf 项目的链接不是很有效..但它具有在上下文中呈现数据的优势..
非常感谢你的支持