使用 soul 包与 cite 包结合使用突出显示引用时出现多余空格的问题

使用 soul 包与 cite 包结合使用突出显示引用时出现多余空格的问题

当我使用该soul包与该cite包结合来突出显示一些包含波浪号和引用的文本时(例如\hl{Ref.~\cite{xyz}},我在“Ref.”单词和引用编号之间得到了不需要的额外空格。

在此处输入图片描述

我在这里放置波浪号是因为我不想让 LaTeX 将点解释为句子的结尾。

这是我的 MWE:

\documentclass{article}
\usepackage{xcolor,soul}
\soulregister\cite7
\usepackage{cite} % error disappears without this package


\begin{document}
\hl{Ref.~\cite{xyz}}

Ref.~\cite{xyz}
\end{document}

\soulregister\cite7在这里,我按照建议使用了如何使 \hl(突出显示)自动将不兼容的命令放置在 \mbox 中?

我需要cite收缩[1,2,3,4]到的包[1-4](我在 MWE 中没有这个,但我的实际文档中有)。

答案1

问题不在于波浪符号,而在于该包cite似乎会检查引用前面是否缺少空格。使用citeloaded、、A \cite{x}A~\cite{x}A\cite{x}结果完全相同。它们都在 前面有一个空格[<number>]

我们现在得到的错误是,cite似乎在命令中查找前导空格时遇到了问题\hl{}。它找不到任何空格,并且每次都添加它。因此,一个简单的解决方法是将命令\cite始终直接放在单词后面Ref.。这也可以节省您输入波浪符号的时间。

% arara: pdflatex

\documentclass{article}
\usepackage{xcolor,soul}
\soulregister\cite7
\usepackage{cite}


\begin{document}
\hl{Ref.\cite{xyz}}

Ref.\cite{xyz} % cite adds the correct white space here

Ref. \cite{xyz} % cite converts the white space to a tilde

Ref.~\cite{xyz} % everything done manually
\end{document}

在此处输入图片描述

相关内容