从图片列表中删除引文

从图片列表中删除引文

我有图表列表页。其中一些图表的标题有引文。我怎样才能从图表列表页中删除引文并将引文保留在正常页面上?问候

::::::::::::::::::::::::::: 附录我正在使用以下命令:

\newcommand{\munepsfig}[3][scale=1.0]{%
    \begin{figure}[!htbp]
        \centering
        \vspace{2mm}
        \includegraphics[#1]{figures/#2.eps}
        \caption{#3}
        \label{fig:#2}
    \end{figure}
}

示例用法:

\munepsfig[scale=0.5,angle=90]{barchart}{Population over time}

答案1

使用可选参数\caption

\caption[Text to the LoF]{Text for the document \cite{xx}}

通过对原始问题的编辑,我建议\munepsfig(使用xparse包)进行这样的定义:

\usepackage{xparse}

\NewDocumentCommand\munepsfig{O{scale=1.0}mom}
{% 
\begin{figure}[!htbp] 
  \centering 
  \vspace{2mm} 
  \includegraphics[#1]{figures/#2.eps}
  \IfNoValueTF {#3}
    {\caption{#4}}
    {\caption[#3]{#4}} 
  \label{fig:#2} 
\end{figure}%
}

像这样使用它:

\munepsfig[scale=0.5,angle=90]{image}[Text for the LoF]{Text for the document}

如果你想在 LoF 中使用不同的文本,或者简单地

\munepsfig[scale=0.5,angle=90]{image}{Text for the document and the LoF}

使文档和 LoF 中包含相同的文本。

请注意,新的第三个参数是可选的,因此只有在您想使用可选参数时才必须使用它\caption

答案2

如果你只\cite在标题中使用,而不使用其他引用命令,也没有可选参数,那么另一种方法是使用etoolbox添加前置和后置钩子\listoffigures并重新定义\cite

\usepackage{etoolbox}

\makeatletter
\let\oldcite\cite
\pretocmd{\listoffigures}{\def\cite{\ignorespaces\@gobble}}{}{}
\apptocmd{\listoffigures}{\let\cite\oldcite}{}{}
\makeatother

答案3

如果你想要按照bibliographystyle外观进行分类,我建议使用包notoccite

它允许在目录中引用,但其编号遵循其在正文中出现的位置。

答案4

您需要更改自定义命令的设置以接受一个附加参数,即要写入图片列表的材料。在下面的代码中,的内容将显示在图片列表中;除了引用命令外,#4它应该与非常相似。#3

\newcommand{\munepsfig}[4][scale=1.0]{%
    \begin{figure}[!htbp]
        \centering
        \vspace{2mm}
        \includegraphics[#1]{figures/#2.eps}
        \caption[#4]{#3}
        \label{fig:#2}
    \end{figure}
}

您可以按如下方式使用这个修改后的命令:

\munepsfig[scale=0.5,angle=90]{barchart}{Population over time 
      \cite{some-source}}{Population over time}

这种方法的一个缺点是:如果要在图表列表中显示的材料与要在标题中显示的材料相同,您仍然需要提供第四个参数。如果不提供,LaTeX 将继续在输入流中查找下一个标记(实际上可以是任何东西),并将其视为命令的第四个参数。如果您这样做,可能会出现奇怪的错误消息和奇怪的崩溃……

相关内容