以黄色突出显示引用列表

以黄色突出显示引用列表

我正在使用 soul 包来突出显示文本片段,使用 \hl 命令。但是,如果 \hl 命令中包含命令,则此包会出现问题。通常可以通过将命令放在 \mbox{} 中来解决这些问题,但问题是,如果我们想要保护的是 \cite 命令,那么里面的文本在需要时无法拆分成多行,这是一个问题。

我的最小工作示例失败了:

\documentclass[preprint,12pt,authoryear]{elsarticle}

\usepackage{color,soul}

\begin{document}
\hl{A statement \citep{ref1,ref2,ref3,ref4,ref5,ref6}}.

\bibliographystyle{elsarticle-harv} 
\bibliography{references.bib}

\end{document}

可以通过将 \citep{...} 替换为 \mbox{\citep{...}} 来部分解决此问题:

\documentclass[preprint,12pt,authoryear]{elsarticle}

\usepackage{color,soul}

\begin{document}
\hl{A statement \mbox{\citep{ref1,ref2,ref3,ref4,ref5,ref6}}}.

\bibliographystyle{elsarticle-harv} 
\bibliography{references.bib}

\end{document}

但在那种情况下,引用文本是不可分解的,因此我得到的文本超出了边距。

我尝试的另一种方法是将 \citep 命令放在 {...} 内:

\documentclass[preprint,12pt,authoryear]{elsarticle}

\usepackage{color,soul}

\begin{document}
\hl{A statement {{\citep{ref1,ref2,ref3,ref4,ref5,ref6}}}.

\bibliographystyle{elsarticle-harv} 
\bibliography{references.bib}

\end{document}

最后一种方法导致错误“Package soul 错误:重建失败”。

有什么办法可以解决这个问题吗?我真的迷路了……

答案1

尝试这个:

\documentclass[preprint,12pt,authoryear]{elsarticle}
\usepackage[many]{tcolorbox}
\newtcolorbox{mybox}[1][]{%
#1}
\begin{document}
    
    \begin{mybox}[colback=yellow, halign =left]
        A statement \citep{ref1,ref2,ref3,ref4,ref5,ref6}.
        
        \bibliographystyle{elsarticle-harv} 
        \bibliography{references.bib}
        
    \end{mybox} 
    
\end{document}

相关内容