我对表格列表有疑问。它没有出现在我的文档中。
该.cls
文件是这里。
文档:
\documentclass[thesis=B,czech]{FITthesis}[2012/06/26]
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{longtable}
\department{text}
\title{text}
\authorGN{text}
\authorFN{text}
\authorWithDegrees{text}
\supervisor{text}
\acknowledgements{text}
\abstractCS{text}
\abstractEN{text}
\placeForDeclarationOfAuthenticity{text}
\declarationOfAuthenticityOption{1}
\keywordsCS{text}
\keywordsEN{text}
\usepackage{chngcntr}
\AtBeginDocument{
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\renewcommand\thefigure{\arabic{figure}}
\renewcommand\thetable{\arabic{table}}
}
\begin{document}
\begin{introduction}
%
\end{introduction}
\chapter {First}
text
\begin{figure}[h]
\caption{Function.}
\label{fig:function}
\end{figure}
\begin{center}
\begin{longtable}{ c | c | c }
$1$ & $2$ & 3 \\ \hline
\caption{tab}
\label{tab:tab}
\end{longtable}
\end{center}
\begin{conclusion}
%
\end{conclusion}
\appendix
\end{document}
答案1
班上FITthesis.cls
没有需要明确使用\listoftables
,因为它试图检测是否应该自动生成列表。
问题在于,用于自动检测的机制不太好,因为它基于环境检测,而不是标题类型。如果table
文档中使用了环境,则将生成 LoT;否则,不会生成任何列表。
这显然是错误的,因为表格的标题可以与环境无关table
(可以有longtable
, 或threeparttable
, 或\captionof{table}{...}
)。
表格列表可参见FITthesis.cls
:
\AtEndEnvironment{table}{\gdef\there@is@a@table{}}
\AtEndDocument{\ifdefined\there@is@a@table\label{tab:was:used:in:doc}\fi}
\DeclareRobustCommand{\listoftablescond}{\@ifundefined{r@tab:was:used:in:doc}{}{\listoftables*}}
table
这意味着,正如我之前所说,只有在文档中使用时才会生成 LoT 。
由于 MWE 中table
未使用,因此即使存在 LoT,也不会生成longtable
。这显然是一个糟糕的设计选择,应该由类的作者/维护者纠正。如果要进行自动生成,那么机制必须基于标题,而不是基于特定环境。
\listoftables
人们可以在文档中明确调用,但是,一旦table
使用,就会得到两个表格列表。
这里最好的解决方案是,当类的作者/维护者纠正问题时,也注册longtable
LoT 的自动生成,使用:
\makeatletter
\AtEndEnvironment{longtable}{\gdef\there@is@a@table{}}
\makeatother
完整示例:
\documentclass[thesis=B,czech]{FITthesis}[2012/06/26]
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{longtable}
\makeatletter
\AtEndEnvironment{longtable}{\gdef\there@is@a@table{}}
\makeatother
\department{text}
\title{text}
\authorGN{text}
\authorFN{text}
\authorWithDegrees{text}
\supervisor{text}
\acknowledgements{text}
\abstractCS{text}
\abstractEN{text}
\placeForDeclarationOfAuthenticity{text}
\declarationOfAuthenticityOption{1}
\keywordsCS{text}
\keywordsEN{text}
\usepackage{chngcntr}
\AtBeginDocument{
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\renewcommand\thefigure{\arabic{figure}}
\renewcommand\thetable{\arabic{table}}
}
\begin{document}
\begin{longtable}{ c | c | c }
$1$ & $2$ & 3 \\ \hline
\caption{tab}
\label{tab:tab}
\end{longtable}
\end{document}