好的,这是 LaTeX 的新手。
先从一个非常简单的例子开始。
任意放置空白是怎么回事?可以做些什么来修复它?
\documentclass[border=10mm]{standalone}
\begin{document}
Find the value of: M=x(\neg{y}+yz), if (x, y, z)=(1, 0, 0)
\end{document}
为了显示:
无换行符:
当我尝试添加\\
、、等 时\newline
,它看起来是这样的。\linebreak
\documentclass[border=10mm]{standalone}
\begin{document}
Find the value of: \\
M=x(\neg{y}+yz), if (x,y,z)=(1,0,0)
\end{document}
答案1
为了使您的示例排版更漂亮,我建议采用以下方法:
\documentclass[border=10mm,varwidth]{standalone}
\usepackage{amsmath}
\begin{document}
Find the value of:
\[ M = x (\neg{y} + yz) \text{, if } (x, y, z) = (1, 0, 0) \]
\end{document}
\text{}
源自amsmath
包。它允许您在数学环境中排版普通流文本。数学环境以 开始\[
并以 结束\]
。推荐varwidth
归功于@Phelype Oleinik 的评论。
另一种方法是使用$
来开始和停止数学环境。由于它不会引入新行,因此我将换行符留\\
在了上一行:
\documentclass[border=10mm,varwidth]{standalone}
\begin{document}
Find the value of:
$M = x (\neg{y} + yz)$, if $(x, y, z) = (1, 0, 0)$
\end{document}
答案2
任意放置空白是怎么回事
我要尝试一下这个。
LaTeX 有三种模式——至少就用户而言。
我们关注的是数学模式和文本模式(其中有两种类型,但并不重要)。
数学模式是为精美排版数学而设计的。它很棒。它可以处理这类事情。它会在 + 符号和 = 符号等周围放置正确的排版空格。它会给你一个真正的减号(具有正确的间距)而不是破折号。它x
默认以斜体排版字母,例如,就像变量所期望的那样。它会排版一串字母,例如ax
,间距适合两个变量的乘积,这正是我们想要的。因为它会处理间距,所以它会忽略代码中的空格,从而允许你在代码中添加间距以使代码更具可读性。但它这样做的原因是,你很难在所有正确的位置输入所有不同数量的空格。所以它做到了。它尽其所能让我们的生活变得轻松,并为我们产生最佳结果,而我们无需做任何事情。如果你想要的是数学,那就太好了。如果你想要的是文本,那就没那么好了。
你说过
M=x(
没有进入数学模式,因此它的排版就像文本一样,并且没有在 = 符号周围添加适当的间距,并且您的字母不是斜体,并且没有遵守良好的数学排版规则。
然后你使用了命令\neg
。现在\neg
只能在数学模式下使用。因此,当你在代码上运行 LaTeX 时,它会发现一个错误。你没有进入数学模式(请参阅其他答案以了解如何执行此操作),但你使用了只能在数学模式下使用的命令。问题!因此,LaTeX 已尝试解决此问题,并在错误消息中告诉你它做了什么:
! Missing $ inserted.
<inserted text>
$
l.4 Find the value of: M=x(\neg
{y}+yz), if (x, y, z)=(1, 0, 0)
它为您添加了一个$
,使您进入数学模式。现在您可以使用\neg
并且代码可以工作。但是 LaTeX 不知道何时结束数学模式,因此整行的其余部分都以数学模式结束,并且$
直到结尾才能添加结束符,因为 LaTeX 如何知道它应该去哪里?
现在,+ 号和 = 号周围的空格已经正确,逗号周围的空格也已正确。这很好。但是,里面有文字。里面有单词“if”。这不是数学。但是 LaTeX 将其置于数学模式。因此,它会被视为数学,单词“if”周围的空格会被忽略,单词“if”不会被视为单词“if”,而是两个变量的乘积我和F。