在我的文档中,正文中的图表标题为“图表”,而附录中的图表标题为“附录”。我希望图表列表中也反映出这一点。我可以让代码\renewcommand{\cftfigpresnum}{Figure }
有所不同来实现这一点吗?
以下输出是由下面的 MWE 产生的 - 我希望“附录中的图 2 图”为“附录中的附录 2 图”。
\documentclass[a4paper, 12pt]{report}
\usepackage{tocloft}
\setlength{\cftfignumwidth}{6 em}
\renewcommand{\cftfigpresnum}{Figure }
\begin{document}
\listoffigures
\begin{figure}[ht]
\caption{Figure in main text}
\end{figure}
\renewcommand{\figurename}{Appendix}
\begin{figure}[ht]
\caption{Figure in appendices}
\end{figure}
\end{document}
答案1
宏\ctffigpresnum
可以用于此,但是必须将其直接写入文件.lof
(\addtocontents{lof}{...}
参见下面的代码)\protect
在写入过程中需要语句来保存脆弱的命令。
我已经使用了,\addtolength{\cftfignumwidth}{...}
而不是明确将其设置为固定长度\setlength
。
\documentclass[a4paper, 12pt]{report}
\usepackage{tocloft}
\addtolength{\cftfignumwidth}{4em}
\renewcommand{\cftfigpresnum}{Figure }
\begin{document}
\listoffigures
\begin{figure}[ht]
\caption{Figure in main text}
\end{figure}
\renewcommand{\figurename}{\appendixname}
\addtocontents{lof}{\protect\renewcommand{\protect\cftfigpresnum}{\appendixname\ }}
\begin{figure}[ht]
\caption{Figure in appendices}
\end{figure}
\end{document}