LaTeX公式中的标点符号

时间:2010-02-10 08:58:30

标签: latex punctuation

在编写数学时,通常的做法是在显示的公式中添加标点符号。

是否有任何技巧可以避免将标点符号放在公式中?

我想避免

Consider the function
\[ \sin(x).\]

我宁愿有类似的东西:

Consider the function
\[ \sin(x)\].

但当然,句号下方会显示句号。

是否有一种聪明的方法可以在LaTeX中分离公式和标点符号?

4 个答案:

答案 0 :(得分:10)

\catcode`\@=11 
\let\seveendformula\]
\def\]{\@ifnextchar.\PointAndEndFormula\seveendformula}
\def \PointAndEndFormula #1{.\seveendformula}
\catcode`\@=12 

添加

更复杂的解决方案适用于.,?!;:

\catcode`\@=11 
\def\addtopunct#1{\expandafter\let\csname punct@\meaning#1\endcsname\let}
\addtopunct{.}    \addtopunct{,}    \addtopunct{?}
\addtopunct{!}    \addtopunct{;}    \addtopunct{:}

\let\seveendformula\]
\def\PunctAndEndFormula #1{#1\seveendformula}
\def\]{\futurelet\punctlet\checkpunct@i}
\def\checkpunct@i{\expandafter\ifx\csname punct@\meaning\punctlet\endcsname\let  
       \expandafter\PunctAndEndFormula 
       \else \expandafter\seveendformula\fi}
\catcode`\@=12 

答案 1 :(得分:8)

还存在标点符号应该在哪个 font 的问题。在尝试使用其他数学字体(例如Euler)之前,您不会看到问题。然后在文本模式和数学模式中逗号和句点明显不同。我已将显示的公式中的文字模式标点符号编写为\mbox{,},或者在\mbox,之前将其$$懒惰地写为。{/ p>

答案 2 :(得分:4)

您可以加载breqn package(与amsmath兼容)并将此行为与其dmath环境一起构建:

Consider the function
\begin{dmath}\sin(x)\end{dmath}.

输出与\[\sin(x).\]相同,即,就好像点在表达式中一样。

作为奖励,您还可以在数学方程式中获得自动换行功能。

答案 3 :(得分:2)

将标点符号放在显示环境中是常用的方法。问题是,当Latex处理\]时,它会结束数学框,因此后面的任何内容都将成为新垂直框的一部分。

您可以尝试以下方式:

\hbox{\[My formula\]}.

这未经过测试,可能存在间距问题,但如果您对这种解决方案感兴趣,我可以尝试一些工作。

FWIW,您可能对https://mathoverflow.net/questions/6675/periods-and-commas-in-mathematical-writing

感兴趣