避免在引用前换行

避免在引用前换行

我经常发现自己打字

... 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}

相关内容