Формирование теорем

Формирование теорем

Это моя лучшая попытка добиться нужного мне формата в 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. пунктуация= строка :. Это 7 аргумент команды \newtheoremstyle, которая начинается со строки 10. Еще раз: я могу сделать эту строку жирной, но не могу сделать ее красной.
  4. заголовок= строка, которая в моих примерах стоит в той же строке, что и элементы, упомянутые ранее. Это имя вещи, которая будет определена. Но очевидно, что это название и следующий элемент, который я называю'тело'принадлежат как к тому, что называется«тело теоремы»в руководствах. Я могу сделать заголовок и текст жирными или нежирными, изменив 4- й аргумент команды \newtheoremstyle. Но я хочу, чтобы эта часть была жирной и красной, а следующий элемент — черным и обычным.
  5. тело= Это определение вещи, которая названа в элементе title. Я хочу, чтобы она отображалась в другом формате, чем заголовок (черный и нормальный)

Как мне достичь этих форматов?


У меня есть еще два желания, оба менее важные («приятно иметь», но не «обязательно»):

  1. Я хочу указать определенный шрифт (например, Arial, Calibiri или Libertine), а не просто семейство шрифтов (например, \sffamily). Где я могу найти короткую, но хорошую документацию, описывающую это?

  2. Я также хочу, чтобы $\mathbb{N}^+$ и другие математические выражения, которые появляются в названии определения, тоже были жирными. Я также не смог сделать это в MS-Word (ну, я мог отформатировать его жирным шрифтом в Word, но тогда жирным стал только нижний индекс 0 в N₀, но ни 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}

введите описание изображения здесь

Связанный контент