格式化定理

格式化定理

这是我在 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 个部分:

  1. 类型= 字符串Definition。它在第 20 行与红色一起定义为 \newtheorem 命令的参数。(字符串末尾的空格字符不能是该参数的一部分,因为 latex 会自动添加它。)
  2. 序列号= 紧跟在类型后面的数字,每次定义新类型时都会自动增加。我设法将数字加粗(我想是因为它们是“定理头”的一部分),但我没能将它们变成红色,而且我不知道该怎么做。
  3. 标点= 字符串:。它是从第 10 行开始的 \newtheoremstyle 命令的7 个参数。再说一遍:我可以将这个字符串设为粗体,但不能将其设为红色。
  4. 标题= 在我的示例中,与前面提到的元素位于同一行的字符串。它是将要定义的事物的名称。但显然这个标题和我调用的下一个元素'身体'都属于所谓的‘定理主体’在手册中。我可以通过更改 \newtheoremstyle 命令的第 4个参数将标题和正文都设为粗体或非粗体。但我希望将这一部分设为粗体和红色,将下一个元素设为黑色和正常。
  5. 身体= 这是在 title 元素中命名的事物的定义。我希望它以与标题不同的格式出现(黑色和正常)

我怎样才能实现这些格式?


我还有两个愿望,都不太重要(“有则更好”,但不是“必须”):

  1. 我想指定某种字体(如 Arial、Calibiri 或 Libertine),而不仅仅是字体系列(如 \sffamily)。我在哪里可以找到简短但很好的文档来描述这一点?

  2. 我还想让定义标题中出现的 $\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}

在此处输入图片描述

相关内容