我有类似的东西
\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
这是一篇旧帖子,但我相信不必要的空间只是错误方法的轻微影响,因此我还有其他建议:
不要使用
cite
。此包用于格式化数字引用,因此我认为对于alpha
引用是 bibtex 键的样式来说,它没有什么用处。如果没有此包,(\cite{All14})
它将按预期工作。不要使用括号。引用已经使用括号作为分隔符,因此额外的分隔完全是多余的。
好的,出于某些奇怪的原因,您需要
cite
使用双分隔符的和引用。在这种情况下,分隔符格式由\citeleft
和控制\citeright
。因此,要获得所需的内容,您可以使用\renewcommand\citeleft{([}
和\renewcommand\citeright{])}
,因此您只需使用即可\cite{All14}
获得([All14])
。
此外,还有一点(基于意见的)评论:如果可能的话,避免使用 bibkeys 作为参考。这不是不优雅,而是下一个。