带有 if 条件的 patchcmd

带有 if 条件的 patchcmd

我遇到了一个问题,我需要在图表列表中添加前缀,但幸运的是我找到了解决方案。我使用这个fancyhdr包,所以我需要tocloft带有title选项的包。我只将它用于我的符号和方程式列表。但还不错,因为我使用了“Mico”的代码(同一线程):

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@caption}{\csname the#1\endcsname}{\csname fnum@#1\endcsname:}{}{}
\renewcommand*\l@figure{\@dottedtocline{1}{1.5em}{4.5em}} % default for 3rd arg: 2.3em
\let\l@table\l@figure % as in article.cls
\makeatother

它基本上可以工作,但是列表会显示所有图形/表格,甚至是隐藏的图形/表格\caption[]{example}

截屏

这是一个我无法解决的大问题。我是 LaTeX 初学者,但我认为\patchcdm只需要一个条件?!有什么想法吗?


编辑 1:添加示例

\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@caption}{\csname the#1\endcsname}{\csname fnum@#1\endcsname:}{}{}
\renewcommand*\l@figure{\@dottedtocline{1}{1.5em}{4.5em}} % default for 3rd arg: 2.3em
\let\l@table\l@figure % as in article.cls
\makeatother

\begin{document}
\listoffigures
\listoftables

\begin{figure}[h]
\caption{list this figure}
\centering show
\end{figure}

\begin{figure}[h]
\caption[]{don't list this figure}
\centering hide
\end{figure}


\begin{table}[h]
\caption[]{don't list this table}
\centering hide
\end{table}

\begin{table}[h]
\caption{list this table}
\centering show
\end{table}


\end{document}

截图示例

相关内容