避免在左边距开始内联方程式

避免在左边距开始内联方程式

我想避免任何内联方程式从左边距开始。

我现在的解决方案是编译文档,检查发生这种情况的位置,然后~在内联方程式前面添加一个,然后重新编译。但这很烦人。

\documentclass{minimal}
\begin{document}
iada iada iada iada iada iada iada iada iada iada iada iada iada iada 
iada iada iada iada iada iada $2+2=4$ iada iada iada
\end{document}

会产生中断

iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada 
2+2=4 iada iada iada

但我更喜欢与这里类似的效果(只是不必~每次都包含!)

\documentclass{minimal}
\begin{document}
iada iada iada iada iada iada iada iada iada iada iada iada iada iada 
iada iada iada iada iada iada~$2+2=4$ iada iada iada
\end{document}

这将给予

iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada iada  
iada 2+2=4 iada iada iada

答案1

假设我同意 Marienplatz 的评论,这是一个实现你想要的简单尝试,但你必须使用新命令\inline{...}而不是$...$

\documentclass{minimal}

\newcommand{\inline}[1]{%
\nolinebreak$#1$%
}

\begin{document}
iada iada iada iada iada iada iada iada iada iada iada iada iada iada
iada iada iada iada iada iada \inline{2+2=4} iada iada iada

iada iada iada iada iada iada iada iada iada iada iada iada iada iada
iada iada iada iada iada \inline{2+2=4} iada iada iada
\end{document} 

输出:

在此处输入图片描述


编辑

我认为重新定义$...$不是一个好的做法。

无论如何,您可以通过在序言中添加以下几行来实现这一点(免责声明:我不知道这是否会导致任何其他问题……当然您不必使用$$...$$但是\[...\]):

\makeatletter
\let\inline=$
\catcode`\$=\active
\protected\def$#1${%
  \nolinebreak\inline#1\inline%
}
\makeatother

因此 MWE

\documentclass{minimal}

\makeatletter
\let\inline=$
\catcode`\$=\active
\protected\def$#1${%
  \nolinebreak\inline#1\inline%
}
\makeatother

\begin{document}
iada iada iada iada iada iada iada iada iada iada iada iada iada iada
iada iada iada iada iada iada $2+2=4$ iada iada iada

iada iada iada iada iada iada iada iada iada iada iada iada iada iada
iada iada iada iada iada $2+2=4$ iada iada iada
\end{document} 

产生与上图相同的结果。

相关内容