\documentclass[11pt,a4paper]{article}
\title{Title}
\author{Author}
\begin{document}
\maketitle
$\{ n \mid n\ \mbox{is\ even} \}$
\end{document}
由于我很少在数学模式下显示直立字母,所以我很长一段时间都忽略了这个问题。但最近,当我准备辅导笔记时,我发现手动创建空格很烦人。因此我想知道有什么办法吗?
我还想知道是否可以在数学模式下不使用诸如“\mbox”或“\textup”之类的命令来显示直立字母?
答案1
您有多种选择。前面的注释:\mathrm
不在您的选择之列,因为您必须手动插入单词间空格标记。(另外:我还会在左花括号之后和右花括号之前插入细空格指令。)
“基本 LaTeX”:
\mbox
$\{\, n \mid n \mbox{ is even} \,\}$
加载包后
amsmath
:\text
$\{\, n \mid \text{$n$ is even} \,\}$
请注意,第二个
n
是论点的一部分,\text
因为短语“n 是偶数”是一个句法单位。“n”应该以数学斜体呈现这一事实从属于句法关注。其他注意事项。
\mbox
和\text
宏以对“周围”文本材料有效的字体样式呈现其参数。通常,“周围”样式将是普通或直立字母模式。但是,如果表达式 ${\, n \mid \text{$n$ is even} \,}$ 出现在定理类环境中,该环境通常会以斜体呈现普通文本,则\mbox
和的参数\text
也将设置为斜体。如果这不是您想要的,您应该写$\{\, n \mid \textnormal{$n$ is even} \,\}$
或者
$\{\, n \mid \textup{$n$ is even} \,\}$
\mbox
以下示例检查由、\text
、\textrm
、\textnormal
和生成的输出\textup
以包含子句$n$ is even
。请注意,根据数学内容周围材料的字体样式,这五个宏可能会产生不同的结果。唯一可以“保证”该条款始终使用直立衬线(“罗马”)字符排版的万无一失的方法是使用复合命令
\textrm{\textup{...}}
。但是,根据文档中有效的字体设置,使用复合命令不一定是最佳选择。例如,在beamer
使用无衬线字体显示文本和数学材料的文档中,使用复合命令是不正确的。
\documentclass{article}
\usepackage{amsmath,array}
\setlength\parindent{0pt} % just for this example
\newcommand{\myexample}{\par
$\begin{array}{@{}l >{$\upshape}l<{$}}
\{\, n \mid n \mbox{ is even} \,\} & {\ttfamily \string\mbox}\\
\{\, n \mid \text{$n$ is even} \,\} & {\ttfamily \string\text}\\
\{\, n \mid \textrm{$n$ is even} \,\} & {\ttfamily \string\textrm}\\
\{\, n \mid \textnormal{$n$ is even} \,\} & {\ttfamily \string\textnormal}\\
\{\, n \mid \textup{$n$ is even} \,\} & {\ttfamily \string\textup}\\
\{\, n \mid \textup{\textrm{$n$ is even}} \,\} & {\ttfamily \string\textup/\string\textrm\ combined}\\
\end{array}$}
\begin{document}
Surrounding text mode: ``normal,'' i.e., upright/serif
\myexample
\bigskip
{\itshape Surrounding text mode italics \myexample}
\bigskip
{\sffamily Surrounding text mode sans-serif/upright\myexample}
\bigskip
{\renewcommand\familydefault\sfdefault
Surrounding text mode: ``normal text mode'' reset to sans-serif, but current text mode is serif\slash upright
\myexample}
\bigskip
{\renewcommand\familydefault\sfdefault
\sffamily\itshape
Surrounding text mode: ``normal text mode'' reset to sans-serif, current text mode is sans-serif\slash italic
\myexample}
\end{document}