为什么我的代码这行中空格没有效果?

为什么我的代码这行中空格没有效果?

这是我的代码:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{amsmath}

\usepackage[frenchb]{babel}
\begin{document}

Number $2-a$:

\begin{align*}
Z &\longleftarrow \Phi(x,x) \\
Y &\longleftarrow Y +1
\end{align*}
Number $2-b$:
      \begin{align*}
IF x &\in A    GOTO E\\
Z &\longleftarrow \Phi(x,x) \\
Y &\longleftarrow Y +1
\end{align*}

\end{document}

它看起来像这样(问题在于红圈中的线):

在此处输入图片描述

我应该怎么做才能使这一行看起来像这样,使其看起来更像单词分开的手写体:

在此处输入图片描述

答案1

在数学模式下,空格会被忽略。(align以及align*equation会自动切换到数学模式。)只需测试$a b$:输出中没有空格即可。如果您想在数学模式下有空格,可以使用显式空格(例如\␣(斜线空格)或\hspace{1em}),但要获得正确的字距调整和罗马字体而不是斜体格式,您应该切换到文本模式,即

\text{IF }x&\in\text{A    GOTO E}

\text命令由数学无论如何,您已经加载了该包。在AGOTO之间只有一个常规空格,如果需要更多空格\hspace{1em}(在文本模式下!)可以在那里使用。

答案2

使用

\text{IF }x &\in\text{ A    GOTO E}\\

数学模式下的空格没有效果。

答案3

在数学模式下,文本的每个元素都被视为变量,并以此方式排版:具体来说,就此而言,变量不应形成“单词”,这就是文本引擎不会显示空格的原因。但是,可以“在数学模式下像非数学模式一样”打印文本,但您必须告诉 latex 应将该内容视为文本。

您可以使用各种命令:

  • \mathrm,,\mathbf等等(对于数学文本,例如函数名称:这也不会提供正确的间距!)
  • \text来自amsmath包(对于随意的文本,将使用外部环境的字体)
  • \textrm,,\textbf等等(如果您需要特定的字体格式——与数学等效的区别在于您可以在其中使用重音字符或内联数学)

在您的示例中,这是有效的,例如:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{amsmath}

\begin{document}

Number $2-a$:

\begin{align*}
Z &\longleftarrow \Phi(x,x) \\
Y &\longleftarrow Y +1
\end{align*}
Number $2-b$:
\begin{align*}
\mathbf{IF } x &\in A \mathbf{ GOTO } E\\
Z &\longleftarrow \Phi(x,x) \\
Y &\longleftarrow Y +1
\end{align*}

\end{document}

请注意,正如我上面所说,空格在数学显示中基本上会被忽略。因此,如果您希望将空格考虑在内,并将文本与句子的其余部分分开,则需要确保空格与文本一起位于括号内。

相关内容