当我使用该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
似乎会检查引用前面是否缺少空格。使用cite
loaded、、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}