所以,我有文件backmatter.tex
\clearpage
\printindex
\addcontentsline{toc}{section}{\indexname}
\newpage
\listoffigures
\addcontentsline{toc}{section}{Перелік ілюстрацій}
\newpage
\listoftables
\addcontentsline{toc}{section}{Перелік таблиць}
\clearpage
\bibliographystyle{alpha}
\bibliography{bibliography}
该文件包含在主文档的最末尾(就在 之前\end{document}
)。如果我的文档中不使用表格,它会生成表格列表的标题,但显然不会生成表格条目。所以我可以删除这段代码,但每次都这样做,因为我不会使用某些东西...... ...不方便。
那么,例如,如何预防
\newpage
\listoftables
\addcontentsline{toc}{section}{Перелік таблиць}
如果我的文档中没有表格,那么如何进行排版?
答案1
您可以使用它tocbibind
来避免页码问题。我还定义了条件来决定文档中是否存在表格或图形;这样的代码必须进入序言。
使用计数器的值并不安全,因为计数器可能与之相关chapter
,如果最后一章没有图形或表格,则该值毫无用处。
对于索引,我建议imakeidx
将其纳入目录中。对于基于西里尔语的文档,必须使用 Xindy 而不是 Makeindex。
\documentclass[a4paper]{book}
\usepackage[T2A]{fontenc}
\usepackage[ukrainian]{babel}
\usepackage[nottoc]{tocbibind}
\usepackage[xindy]{imakeidx}
\makeindex[intoc,options=-L ukrainian -C utf8]
% conditional printing of lists
\newif\iffigures
\AtBeginEnvironment{figure}{%
\iffigures\else\global\figurestrue\fi
}
\newif\iftables
\AtBeginEnvironment{table}{%
\iftables\else\global\tablestrue\fi
}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{Спочатку}
\index{Спочатку}
\begin{figure}\caption{підпис}\end{figure}
\begin{table}\caption{підпис}\end{table}
\backmatter
\printindex
\iffigures\listoffigures\fi
\iftables\listoftables\fi
\end{document}
我对文档进行了四次排版,适当地对figure
和的行进行了注释或取消了注释table
。
没有数字,没有表格
有图,无表格
没有数字、表格
图片、表格
答案2
查看包装托比宾:
“tocbibind 包可用于将诸如参考书目或索引之类的文档元素添加到目录中。”