![amsthm 包的斜体](https://linux22.com/image/278891/amsthm%20%E5%8C%85%E7%9A%84%E6%96%9C%E4%BD%93.png)
我正在使用该amsthm
包,我注意到注释会自动以斜体显示,而定理和命题则不会。
该包还自动将哪些其他关键词的内容设置为斜体?
编辑:我没有定义任何定理样式。我只是使用了
\newtheorem{theorem}{Theorem}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{remark}[theorem]{Remark}
答案1
它由 设定\theoremstyle{#1}
。可能的值是plain
、definition
和remark
。例如
\documentclass{article}
\usepackage{amsthm}
\theoremstyle{plain}% default
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
\newtheorem{prop}[thm]{Proposition}
\theoremstyle{definition}
\newtheorem{defn}{Definition}[section]
\newtheorem{exmp}{Example}[section]
\theoremstyle{remark}
\newtheorem{rem}{Remark}
\begin{document}
\section{First}
\begin{thm}
One plus one equals two.
\end{thm}
\begin{lem}
One plus one equals two.
\end{lem}
\begin{prop}
One plus one equals two.
\end{prop}
\begin{defn}
Two is one plus one.
\end{defn}
\begin{rem}
One plus one equals two.
\end{rem}
\end{document}
答案2
这是基于您定义环境的风格。amsmath
默认提供三种样式(plain
、definition
和remark
),但您可以使用定义自己的样式\newtheoremstyle{<style>}
。
以下是定义的基本样式amsthm
:
\documentclass{article}
\usepackage{amsthm}% http://ctan.org/pkg/amsthm
\theoremstyle{theorem}\newtheorem{theorem}{Theorem}
\theoremstyle{definition}\newtheorem{definition}{Definition}
\theoremstyle{remark}\newtheorem{remark}{Remark}
\begin{document}
\begin{theorem} Some theorem. \end{theorem}
\begin{definition} Some definition. \end{definition}
\begin{remark} Some remark. \end{remark}
\end{document}
新样式具有以下界面(直接取自amsthm
文档, 部分4.3 新的定理风格,第 4 页):
\newtheoremstyle{note}% <name>
{3pt}% <Space above>
{3pt}% <Space below>
{}% <Body font>
{}% <Indent amount>
{\itshape}% <Theorem head font>
{:}% <Punctuation after theorem head>
{.5em}% <Space after theorem head>
{}% <Theorem head spec (can be left empty, meaning 'normal')>
自定义定理头规范稍微有点棘手,其细节包含在AMS 类文档(部分自定义定理样式,第 63 页):
有一个
\newtheoremstyle
命令可以使自定义定理样式的创建变得相当容易。用法:
#1 \newtheoremstyle{NAME}% #2 #3 #4 {ABOVESPACE}{BELOWSPACE}{BODYFONT}% #5 #6 #7 #8 {INDENT}{HEADFONT}{HEADPUNCT}{HEADSPACE}% #9 {CUSTOM-HEAD-SPEC}
将 'indent' 参数留空相当于输入
0pt
。'headpunct' 和 'headspace' 参数用于定理头与后续文本之间的标点符号和水平空格。'headspace' 有两个特殊值:单个空格表示应使用正常的单词间空格;“\newline
”表示头后应有换行符而不是水平空格。'custom-head-spec' 参数遵循特殊约定:它被解释为内部三参数函数 的替换文本\thmhead
,IE,就好像你正在定义\renewcommand{\thmhead}[3]{...#1...#2...#3...}
但省略了初始的
\renewcommand{\thmhead}[3]
。将提供给的三个参数\thmhead
是名称、编号和可选注释组件。在替换文本中,您可以(并且通常会想要)使用其他特殊函数\thmname
、\thmnumber
和\thmnote
。当且仅当相应的参数非空时,它们才会打印它们的参数\thmhead
。例如{\thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}}
这将导致打印定理注释
#3
时带有前面的空格和括号(如果存在),如果不存在,则会省略空格和括号,因为它们位于的参数内\thmnote
。最后,如果您有一段任意的额外代码想要放入某个地方,最好的地方就是在“正文字体”参数中。
该
\newtheoremstyle
命令旨在通过一个相对简单的界面提供对最常更改的样式方面的控制。更复杂的要求必须通过单独的 LaTeX 包来解决。当您使用 设置自定义定理样式时,
\newtheoremstyle
您不应使用\swapnumbers
。您可以完全控制定理头中元素的顺序,只需将它们放置在您想要的位置即可。或者,如果您确实使用\swapnumbers
,则必须查看 的定义\swappedhead
并进行适当的更改。