使用灵魂来突出显示文本和数学,同时跳过任何其他宏

使用灵魂来突出显示文本和数学,同时跳过任何其他宏

我尝试突出显示大段文本,其中中间有各种其他宏,如\cite,,,等等。\SI\ref

如果我做如下的事情:

\hl{the duration is \SI{4}{\second} as shown in Figure~\ref{fig:fig1} \citep{Doe2015}}

文本会在“is”处被截断,有时甚至无法编译。

有没有办法编写这样的宏:

\DeclareRobustCommand{\robusthl}[1]{
    \ifnotmacro\hl{#1}\fi}

太感谢了!

答案1

保护 中的违规命令\mbox。另一方面,应尽可能避免使用下划线。

\documentclass{article}

\usepackage{soul,siunitx,natbib}
\soulregister{\ref}{1}
\soulregister{\citep}{1}

\begin{document}

\hl{the duration is \mbox{\SI{4}{\second}} as shown in
Figure~\mbox{\ref{fig:fig1}} \mbox{\citep{Doe2015}}}

\begin{figure}\caption{X}\label{fig:fig1}\end{figure}

\begin{thebibliography}{1}

\bibitem[Doe(2015)]{Doe2015} A paper

\end{thebibliography}

\end{document}

在此处输入图片描述

相关内容