与 displaymath 类似,但没有数学模式

与 displaymath 类似,但没有数学模式

我经常发现自己在做这样的事情

\[
\begin{tabular}{cc}
foo & bar \\
baz & qux
\end{tabular}
\]

或者

\[
\begin{verbatim}
code snippet
\end{verbatim}
\]

将表格或代码片段放入我的文档而不使其浮动。我之所以使用它,\[...\]是因为我喜欢它使内容居中并在其上方和下方留出一点垂直空间的方式。但这当然\[...\]也会让我进入数学模式,这不是我想要的。

这相当于\[...\]没有让我进入数学模式吗?


事实上(如果我可以深入探讨一下“基于观点”的领域),我认为\[...\]应该不是进入数学模式。考虑类似这样的事情:

Finally, our equation becomes
\[
x^2 = y^2 - z^2,
\]
which is easily proved.

我经常想在公式中加入逗号(或句号,或其他符号),以便与周围的其他文本保持一致。但逗号应该不是在数学模式下排版,因为它不是数学逗号,而是文本逗号。所以我真正想要输入的是:

Finally, our equation becomes
\begin{some-suitable-environment}
$x^2 = y^2 - z^2$,
\end{some-suitable-environment}
which is easily proved.

这样我就可以划定居中文本中实际上是数学的部分。这是一个合理的建议吗?some-suitable-environment存在吗?

答案1

\begin{center}...\end{center}

是非数学中心显示环境。(但不要用它来$伪造中心数学显示,间距将不正确)。

答案2

这可能会帮助你找到一种方法

\documentclass[twocolumn]{article}

%  just for grid
\usepackage{tikz}
\usepackage{eso-pic}

\AddToShipoutPicture{%
\begin{tikzpicture}[overlay,remember picture]
  \draw[blue!20!white,thin]
       (current page.south west) grid [xstep=10mm,ystep=4mm] (current page.north east);
\end{tikzpicture}}

\makeatletter
\newenvironment{mtc}{%
\@@line\bgroup\hss}{\hss\egroup\vspace{\belowdisplayshortskip}}
\makeatother

\begin{document}
bla bla bla bla
\[x+y=z\]
bla bla bla bla

bla bla bla bla
\begin{equation}
 2x+2
\end{equation}
bla bla bla bla
\begin{center}
bla bla bla bla
\end{center} 
\newpage
bla bla bla bla

\begin{mtc}
$x+y=z$
\end{mtc}
bla bla bla bla

bla bla bla bla

\begin{mtc}
bla bla
\end{mtc}
bla bla bla bla

\begin{mtc}
bla bla bla bla
\end{mtc} 

\end{document}

在此处输入图片描述

答案3

您可以轻松创建一个新的环境,开始显示数学,但在文本模式下排版其内容。

\newsavebox{\wickersondisplaybox}

\newenvironment{wickersondisplay}
 {\[\begin{lrbox}{\wickersondisplaybox}}
 {\end{lrbox}\usebox{\wickersondisplaybox}\]}

\newcommand{\<}{\begin{wickersondisplay}}
\renewcommand{\>}{\end{wickersondisplay}} % \> is preempted

但这样做是错误的:使用它center并乐于接受它。

还请注意

\<
$\sum_{k=0}^n k=\frac{n(n+1}}{2}$,
\>

非常不同于

\[
\sum_{k=0}^n k=\frac{n(n+1}}{2}\text{,}
\]

如果您需要的只是一个“文本逗号”,只需使用\text{,}

答案4

根据 Barbara、touhami 和 David 的建议,我提出了以下实施方案:

% Define {center} environment with math-mode spacing (
\def\<{\begin{displaymath}\mbox\bgroup}
\def\>{\egroup\end{displaymath}}
% )

用法如下

Finally, our equation becomes
\<
$x^2 = y^2 - z^2$,
\>
which is easily proved.

并确保等式后的逗号采用正确的(文本模式)字体。

相关内容