$$ 数学模式 Latex 后的标点符号

$$ 数学模式 Latex 后的标点符号

我想知道如何在$$没有换行符的情况下在后面放置标点符号,并且不在里面放置这个标点符号。

例如:We have $$1+1=2$$, so $$1+1\neq 3$$.返回

示例 1

而我想要得到的结果是(标点符号前没有换行符)

示例 2

使用命令进行We have $$1+1=2,$$ so $$1+1\neq 3.$$

但我不想将标点符号放在数学环境中(在我看来这不对),所以我想使用命令得到第二个结果We have $$1+1=2$$, so $$1+1\neq 3$$.

您有解决办法吗?

感谢您的帮助 !

托马斯

答案1

正如 Ulrike 和 Enrico 在评论中指出的那样,(a) 标点符号确实里面显示数学组和(b)它的好多了\[ ... \]而不是$$ ... $$在 LaTeX 文档中书写。

但是,如果你无法改掉这两个习惯,并且能够使用 LuaLaTeX,那么以下解决方案可能就是你所需要的。如下所示的解决方案目前仅适用于两个标点符号,., ,(逗号)和.(句号,又称“句号”);但是,很容易将其扩展以处理其他标点符号,例如;:。此外,请注意代码 (a) 自动在标点符号前插入一个细空格,(b) 将标点符号置于文本模式 - 以防文本模式和数学模式标点符号不相同 - 并且 (c) 允许在结束字符对$$和标点符号之间留有空格(但不是换行符)。

在此处输入图片描述

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{luacode}
\begin{luacode}
function switch_punctuation ( s )
   return ( s:gsub ( "%$%$%s-([%.%,])" , "\\,\\mbox{%1}$$" ) )
end
\end{luacode}
\AtBeginDocument{\directlua{luatexbase.add_to_callback(
    "process_input_buffer", switch_punctuation , "switchpunctuation" )}}

\begin{document}
We have $$1+1=2$$, so $$1+1\neq 3$$ .
\end{document}

相关内容