【问题标题】:Punctuation in LaTeX formulasLaTeX 公式中的标点符号
【发布时间】:2010-02-10 08:58:30
【问题描述】:

在编写数学时,在显示的公式中添加标点似乎是一种常见的做法。

有什么诀窍可以避免在公式中加标点符号吗?

我想避免

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

我宁愿有类似的东西:

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

当然,句号显示在公式下方。

有没有一种巧妙的方法来分隔 LaTeX 中的公式和标点符号?

【问题讨论】:

    标签: latex punctuation


    【解决方案1】:
    \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 回答问题时不要犹豫不决。
    • 非常时尚。我不认为我可以编写这个新代码:这是非常深奥的东西。
    • 太棒了!它太有用了,也许应该把它放在一个 LaTeX 包中?
    • 这里有一个改进:我会将标点符号放在显示的方程式之后,使用你的技巧,如果我改变主意,很容易通过替换 \def\PunctAndEndFormula #1{#1\seveendformula} 来禁用标点符号的显示\def\PunctAndEndFormula #1{\seveendformula}。魔法!再次感谢!
    • 您能解释一下这段代码的作用/应该如何使用它吗?
    【解决方案2】:

    还有一个标点符号应该在哪个字体中的问题。除非你尝试不同的数学字体,比如欧拉,否则你不会看到问题。那么逗号和句点在文本模式和数学模式中明显不同。我在显示的公式中将文本模式标点符号写为\mbox{,} 或在$$ 之前懒惰地写为\mbox,

    【讨论】:

    • \text,更高级。
    【解决方案3】:

    您可以加载breqn package(与 amsmath 兼容)并在其 dmath 环境中内置此行为:

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

    将输出与\[\sin(x).\] 相同的结果,即,好像点在表达式内。

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

    【讨论】:

    • 有趣的包,但我看不到与原始问题的关系...breqn 似乎是一个打破长方程的包; OP 是关于显示方程中的标点符号。
    • @Olivier:我的解释中是否遗漏了什么? OP 要求 \[\sin(x)\]. 将句点拉到显示数学中,这正是我上面的示例所做的。
    • 哦!你说的对。这太棒了!只是breqn 的文档太乱了,我找不到。非常感谢!
    【解决方案4】:

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

    你可以试试这样的:

    \hbox{\[我的公式\]}。

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

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

    【讨论】:

    • 感谢您的链接!阅读那里的答案,我松了一口气,我不是唯一一个认为标点符号不应该成为公式的一部分的人。
    猜你喜欢
    • 2010-12-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多