Пунктуация в формулах LaTeX

похоже, что при написании математики обычной практикой является добавление знаков препинания к отображаемым формулам.

есть ли трюк, чтобы не ставить знак препинания внутри формулы?

Я хочу, чтобы избежать

Consider the function
[ sin(x).]

Я бы предпочел что-то вроде:

Consider the function
[ sin(x)].

но, конечно, полная остановка отображается ниже формулы.

есть ли умный способ разделить формулы и знаки препинания в LaTeX?

4 ответов


Вы можете загрузить пакет breqn (совместим с amsmath) и имеет это поведение, встроенное в его среду dmath:

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

выведет то же самое, что и \[\sin(x).\], т. е., как если бы точка была внутри выражения.

в качестве бонуса вы также получите автоматический разрыв линии в своем математическом уравнении.


\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 

существует также вопрос о том, какой шрифт пунктуация должна быть включена. Вы не увидите проблемы, пока не попробуете другой математический шрифт, такой как Эйлер. Тогда запятые и периоды явно отличаются в текстовом режиме и в математическом режиме. Я написал пунктуацию в текстовом режиме в отображаемых формулах как \mbox{,} или лениво как \mbox, перед $$.


размещение пунктуации внутри среды отображения является обычным способом. Проблема в том, что когда Latex обрабатывает \], он заканчивает mathbox, поэтому все, что следует, будет частью нового вертикального окна.

вы можете попробовать что-то вроде:

\hbox{\[My formula\]}.

это не тестируется и, вероятно, имеет проблемы с интервалом, но если вас интересует такое решение, я мог бы попытаться получить что-то рабочее.

FWIW, вы могли быть заинтересованы внутри https://mathoverflow.net/questions/6675/periods-and-commas-in-mathematical-writing