这是我在 LaTeX 中实现我想要的格式的最佳尝试:
\documentclass{article}
\usepackage[a4paper, total={160mm, 247mm}]{geometry}
\usepackage{color}
\definecolor{medred}{rgb}{0.75, 0, 0} % medium red
\usepackage{amsfonts, amsmath, amsthm}
\newtheoremstyle{definition}
{12pt} % Space above
{12pt} % Space below
{\sffamily} % Body font
{0pt} % Indent amount
{\sffamily\bfseries} % Theorem head font
{: } % Punctuation after theorem head
{0pt} % Space after theorem head
{} % Theorem head spec (can be left empty, meaning ‘normal’
\theoremstyle{definition}
\newtheorem{definition}{\textcolor{medred}{Definition}}
\begin{document}
\begin{definition}{$\mathbb{N}^+$}\\
$\mathbb{N}^+$ is the set of all positive natural numbers:
\begin{equation*}
\mathbb{N}^+:=\{1, 2, 3, \ldots\}
\end{equation*}
\end{definition}
\begin{definition}{$\mathbb{N}_0$}\\
$\mathbb{N}_0$ is the set of natural numbers including $0$:
\begin{equation*}
\mathbb{N}_0:=\{0, 1, 2, 3, \ldots\}
\end{equation*}
\end{definition}
\begin{definition}{Collatz sequence}\\
A \textit{Collatz sequence} is a mapping of all numbers from the set $\mathbb{N}_0$, called indices, to numbers from the set $\mathbb{N}^+$, called sequence members …
\end{definition}
\end{document}
但这是我真正想要的。(它是用 Microsoft Word 创建的。不幸的是,这需要手动对定义进行编号,但我需要自动编号,这就是我更喜欢用 LaTeX 编写文档的原因。)
据我所知,定义有 5 个部分:
- 类型= 字符串
Definition
。它在第 20 行与红色一起定义为 \newtheorem 命令的参数。(字符串末尾的空格字符不能是该参数的一部分,因为 latex 会自动添加它。) - 序列号= 紧跟在类型后面的数字,每次定义新类型时都会自动增加。我设法将数字加粗(我想是因为它们是“定理头”的一部分),但我没能将它们变成红色,而且我不知道该怎么做。
- 标点= 字符串
:
。它是从第 10 行开始的 \newtheoremstyle 命令的第7 个参数。再说一遍:我可以将这个字符串设为粗体,但不能将其设为红色。 - 标题= 在我的示例中,与前面提到的元素位于同一行的字符串。它是将要定义的事物的名称。但显然这个标题和我调用的下一个元素'身体'都属于所谓的‘定理主体’在手册中。我可以通过更改 \newtheoremstyle 命令的第 4个参数将标题和正文都设为粗体或非粗体。但我希望将这一部分设为粗体和红色,将下一个元素设为黑色和正常。
- 身体= 这是在 title 元素中命名的事物的定义。我希望它以与标题不同的格式出现(黑色和正常)
我怎样才能实现这些格式?
我还有两个愿望,都不太重要(“有则更好”,但不是“必须”):
我想指定某种字体(如 Arial、Calibiri 或 Libertine),而不仅仅是字体系列(如 \sffamily)。我在哪里可以找到简短但很好的文档来描述这一点?
我还想让定义标题中出现的 $\mathbb{N}^+$ 和其他数学表达式也变成粗体。我也无法在 MS-Word 中做到这一点(好吧,我可以在 word 中将其格式化为粗体,但只有 N₀ 中的下标 0 变成了粗体,但 N 和 + 的外观都没有改变),所以我认为这是数学字体的问题,它们不提供粗体符号。有没有解决这个问题的变通方法?
答案1
正如@John Kormylo 所说,有些字体没有粗体版本。
\documentclass{article}
\usepackage{fontspec}
\usepackage{xcolor}
\definecolor{medred}{rgb}{0.75,0,0}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage[bb=boondox]{mathalpha}
\newtheoremstyle{definition}
{12pt}
{12pt}
{\fontspec{Arial}}
{0pt}
{\fontspec{Arial}\bfseries\boldmath\color{medred}}
{\newline}
{0pt}
{\thmname{#1}\space\thmnumber{#2}:\space\thmnote{#3}}
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\begin{document}
\begin{definition}[$\mathbb{N}^+$]
$\mathbb{N}^+$ is the set of all positive natural numbers:
\begin{equation*}
\mathbb{N}^+:=\{1, 2, 3, \ldots\}
\end{equation*}
\end{definition}
\begin{definition}[$\mathbb{N}_0$]
$\mathbb{N}_0$ is the set of natural numbers including $0$:
\begin{equation*}
\mathbb{N}_0:=\{0, 1, 2, 3, \ldots\}
\end{equation*}
\end{definition}
\begin{definition}[Collatz sequence]
A \textit{Collatz sequence} is a mapping of all numbers from the set $\mathbb{N}_0$, called indices, to numbers from the set $\mathbb{N}^+$, called sequence members …
\end{definition}
\end{document}
答案2
我认为您不想在定义语句中使用“任意”字体。如果您想使用无衬线字体,那很好,但文档中应该只有一种无衬线字体,否则它会看起来像拼凑的。
这里我定义了一个不同的无衬线字体,即 Source Sans Pro。fontspec
如果您希望在选择上拥有更多自由,可以与 XeLaTeX 或 LuaLaTeX 一起使用\setsansfont
。
我添加了未编号定义或没有标题的示例,您可能想要省略冒号。
\documentclass{article}
\usepackage[a4paper, total={160mm, 247mm}]{geometry}
\usepackage{xcolor}
\usepackage{amsfonts, amsmath, amsthm}
\usepackage[default]{sourcesanspro}
\definecolor{medred}{rgb}{0.75, 0, 0} % medium red
\newtheoremstyle{mydef}
{12pt} % Space above
{12pt} % Space below
{\sffamily} % Body font
{0pt} % Indent amount
{\color{medred}\sffamily\bfseries} % Theorem head font
{} % Punctuation after theorem head (the spec below take care)
{\newline} % Space after theorem head
{\thmname{#1}\thmnumber{ #2}\thmnote{: #3}}
\theoremstyle{mydef}
\newtheorem{definition}{Definition}
\newtheorem*{definition*}{Definition}% just to test
\begin{document}
\begin{definition}[$\mathbb{N}^+$]
$\mathbb{N}^+$ is the set of all positive natural numbers:
\begin{equation*}
\mathbb{N}^+:=\{1, 2, 3, \dotsc\}
\end{equation*}
\end{definition}
\begin{definition}[$\mathbb{N}_0$]
$\mathbb{N}_0$ is the set of natural numbers including $0$:
\begin{equation*}
\mathbb{N}_0:=\{0, 1, 2, 3, \dotsc\}
\end{equation*}
\end{definition}
\begin{definition*}[Collatz sequence]
A \textit{Collatz sequence} is a mapping of all numbers from
the set $\mathbb{N}_0$, called indices, to numbers from the set
$\mathbb{N}^+$, called sequence members …
\end{definition*}
\begin{definition}
This definition has no title
\end{definition}
\begin{definition*}
This definition has no title and no number
\end{definition*}
\end{document}