我想避免任何内联方程式从左边距开始。
我现在的解决方案是编译文档,检查发生这种情况的位置,然后~
在内联方程式前面添加一个,然后重新编译。但这很烦人。
这
\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}
产生与上图相同的结果。