Удалить ссылку из списка рисунков

Удалить ссылку из списка рисунков

У меня есть страница списка рисунков. Некоторые из подписей к рисункам имеют цитату. Как мне удалить цитату со страницы списка рисунков и сохранить цитату на обычных страницах? С уважением

::::::::::::::::::::::::::: Дополнение Я использую следующую команду:

\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для добавления хука pre и post к \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 продолжит искать во входном потоке следующий токен — который может быть буквально чем угодно — и рассматривать его как четвертый аргумент команды. Ожидайте странных сообщений об ошибках и странных сбоев, если вы сделаете это...

Связанный контент