图表列表 - 标题标签与图表标签相匹配

图表列表 - 标题标签与图表标签相匹配

在我的文档中,正文中的图表标题为“图表”,而附录中的图表标题为“附录”。我希望图表列表中也反映出这一点。我可以让代码\renewcommand{\cftfigpresnum}{Figure }有所不同来实现这一点吗?

以下输出是由下面的 MWE 产生的 - 我希望“附录中的图 2 图”为“附录中的附录 2 图”。

enter image description here

\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}

enter image description here

相关内容