如何在 LaTeX 中删除引用前的空格?

如何在 LaTeX 中删除引用前的空格?

我有类似的东西

\documentclass{article}
\usepackage{cite}
\begin{document}

Blah Blah (\cite{All14})

\bibliography{Ref}
\bibliographystyle{alpha}
\end{document}

但是 LaTeX 总是在我的引文前面加一个空格,也就是说,我的输出看起来像“Blah Blah ( [All14])”。因此,我将其修改为Blah Blah (\hspace*{-3px}\cite{All14})。但是,这似乎不是一个优雅的解决方案。有没有更好的方法来消除这个空格?

答案1

cite包很聪明,在需要时会在引用前插入空格。例如,如果你输入

Here is some text\cite{xxx}.

然后它会在“text”后插入一个空格。此行为可以通过以下方式完全关闭:

\usepackage[noadjust]{cite}

或者,如果您希望通常情况下出现这种行为,但在个别情况下遇到问题,您可以插入一个小空格

(\hspace{1sp}\cite{All14} says...)

1sp是 TeX 中最小的非零空间,根据 TeX 书,大约是光波长的 1/100。

示例输出

\documentclass{article}

\usepackage{cite}

\begin{document}

Blah Blah (\hspace{1sp}\cite{All14})

\bibliography{Ref}
\bibliographystyle{alpha}

\end{document}

答案2

正如 Andrew Swann 所提到的,该\usepackage[noadjust]{cite}工作全局性地删除了引用前的空格。

但是,即使此参数是全局设置的,在引用前设置空格的一种简单方法是在引用前使用波浪符号:

~\cite{All14}

当需要孤立案例时,这将在引用之前创建空间,同时仍保持全局参数完好无损。

PS:对于这个答案的微不足道的补充,我深表歉意。但我没有足够的声誉来对 Andrew Swann 已经很出色的答案添加评论。

答案3

这是一篇旧帖子,但我相信不必要的空间只是错误方法的轻微影响,因此我还有其他建议:

  1. 不要使用cite。此包用于格式化数字引用,因此我认为对于alpha引用是 bibtex 键的样式来说,它没有什么用处。如果没有此包,(\cite{All14})它将按预期工作。

  2. 不要使用括号。引用已经使用括号作为分隔符,因此额外的分隔完全是多余的。

  3. 好的,出于某些奇怪的原因,您需要cite使用双分隔符的和引用。在这种情况下,分隔符格式由\citeleft和控制\citeright。因此,要获得所需的内容,您可以使用\renewcommand\citeleft{([}\renewcommand\citeright{])},因此您只需使用即可\cite{All14}获得([All14])

此外,还有一点(基于意见的)评论:如果可能的话,避免使用 bibkeys 作为参考。这不是不优雅,而是下一个。

相关内容