我经常发现自己打字
... see~\cite{reference}.
因为我不想让我的新行以引用开头(我认为它看起来真的很糟糕)。
但当然总是插入一个~
有点乏味,因为我的手指更倾向于重力朝向按键space
而不是按键~
。
有什么方法可以强制 LaTeXsee \cite{ref}
内部解释为see~\cite{ref}
?
顺便说一句:我不关心引用中的换行符,我认为它们很好。
答案1
如果你确定没有任何引用命令开始一个段落,例如
text text.
\cite{X} has shown ...
那么您可以使用一个简单的命令钩子(自 2021/06/01 起在 LaTeX 中可用)来执行此操作。然后您只需要在序言中输入一行,即使此后 cite 命令发生变化(例如,当包稍后对其进行修改时),它也能正常工作:
\documentclass{article}
\AddToHook{cmd/cite/before}{\unskip~} % <-- only that is needed
\ShowCommand\cite
\usepackage{natbib}
\ShowCommand\cite
\showoutput
\begin{document}
\ShowCommand\cite
A \cite{X}
\end{document}
s\ShowCommand
只是为了查看文档中不同位置处的定义是什么样的。
更新
正如 David 所建议的那样,我们还可以轻松处理城市以垂直模式开始的情况,方法是使用
\AddToHook{cmd/cite/before}{\ifhmode\unskip~\fi}
反而。
答案2
如何定义一个宏
\newcommand{\mycite}[1]{~\cite{#1}}
然后通过类似这样的方式引用?
see\mycite{ref}