在定理环境中缩进新行

在定理环境中缩进新行

我一直在寻找解决方案,但一无所获。我试图通过创建一个定理环境,amsthm这样就会有一个换行符(就像 break 定理模型一样),但第一行会缩进。我尝试重新定义环境和其他东西,但到目前为止没有帮助。我当前的代码是:

\documentclass{memoir}
    \usepackage{amsthm}
    \usepackage{lipsum}
    \usepackage{amssymb}
    \newtheoremstyle{teo}%〈name〉
        {3pt}%〈Space above〉
        {3pt}%〈Space below〉
        {}%〈Body font〉
        {}%〈Indent amount〉
        {\bfseries}%〈Theorem head font〉
        {:}%〈Punctuation after theorem head〉
        {\newline}%〈Space after theorem head〉
        {\thmname{#1}\thmnumber{ #2}{\mdseries\thmnote{ [#3]}}}%〈Theorem head spec(can be left empty, meaning ‘normal’)〉
    \theoremstyle{teo}
        \newtheorem{thmx}{Theorem}
    \newenvironment{thm}
      {\pushQED{\qed}\renewcommand{\qedsymbol}{$\square$}\thmx}
      {\popQED\endthmx}
    \usepackage{indentfirst}
    \begin{document}
        \begin{thm}[Bézout's Theorem]    
            \lipsum[1]
        \end{thm}
    \end{document}

我的目标是通过自动化的方式实现类似这样的结果:

\documentclass{memoir}
    \usepackage{amsthm}
    \usepackage{lipsum}
    \usepackage{amssymb}
    \newtheoremstyle{teo}%〈name〉
        {3pt}%〈Space above〉
        {3pt}%〈Space below〉
        {}%〈Body font〉
        {}%〈Indent amount〉
        {\bfseries}%〈Theorem head font〉
        {:}%〈Punctuation after theorem head〉
        {\newline}%〈Space after theorem head〉
        {\thmname{#1}\thmnumber{ #2}{\mdseries\thmnote{ [#3]}}}%〈Theorem head spec(can be left empty, meaning ‘normal’)〉
    \theoremstyle{teo}
        \newtheorem{thmx}{Theorem}
    \newenvironment{thm}
      {\pushQED{\qed}\renewcommand{\qedsymbol}{$\square$}\thmx}
      {\popQED\endthmx}
    \usepackage{indentfirst}
    \begin{document}
        \begin{thm}[Bézout's Theorem]    
            \null \hspace{1em} \lipsum[1]
        \end{thm}
    \end{document}

也就是说,当我输入这样的定理时,可以具有任意的间距。

我对这个问题的不当之处表示歉意,因为我对这个 SE 还很陌生。

答案1

我们可以修补\newtheoremstyle以接受\newline<other tokens>

\documentclass{memoir}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{etoolbox}
\usepackage{lipsum}

\makeatletter
\patchcmd{\newtheoremstyle}
 {\def\@tempb{\newline}}
 {\def\@tempb{\newline}\edef\@tempa{\unexpanded\expandafter{\@car#8\@nil}}}
 {}{}
\patchcmd{\newtheoremstyle}
 {\def\thmheadnl{\newline}}
 {\def\thmheadnl{#8}}
 {}{}
\makeatother

\newtheoremstyle{teo}%〈name〉
  {3pt}%〈Space above〉
  {3pt}%〈Space below〉
  {}%〈Body font〉
  {}%〈Indent amount〉
  {\bfseries}%〈Theorem head font〉
  {:}%〈Punctuation after theorem head〉
  {\newline\hspace*{\parindent}}%〈Space after theorem head〉
  %〈Theorem head spec follows (can be left empty, meaning ‘normal’)〉
  {\thmname{#1}\thmnumber{ #2}{\mdseries\thmnote{ [#3]}}}
\makeatletter
\makeatother

\theoremstyle{teo}

\newtheorem{thmx}{Theorem}
\newenvironment{thm}
  {\pushQED{\qed}\renewcommand{\qedsymbol}{$\square$}\thmx}
  {\popQED\endthmx}

\begin{document}

\begin{thm}[Bézout's Theorem]
\lipsum[1]\lipsum*[2]
\end{thm}

\end{document}

在此处输入图片描述

但这似乎不是一个好主意。

答案2

\newtheoremstyle(的第三个参数正文字体)可用于更改缩进设置。在这种情况下(另请参阅https://tex.stackexchange.com/a/67308) 您可以使用\parshape,它定义指定行数的缩进和行长(请参阅TeX 按主题分类,第 18.2.2 节)。在对指定的行应用长度后,段落的剩余部分将根据最后一行指定的长度进行格式化。

对于一个定理,第一行是定理标题,第二行和第三行分别是内容的第一行和第二行。在下面的例子中,缩进设置为0pt\parindent(在本例中为 15pt)和0pt。行长设置为\textwidth,对于第二行,使用 减少了缩进值\dimexpr,否则行会继续到右边距。如果要更改缩进量,应该将两次出现的 替换\parindent为其他值(例如10mm)。

梅威瑟:

\documentclass{memoir}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{lipsum}
\newtheoremstyle{teo}% name
    {3pt}% Space above
    {3pt}% Space below
    {\parshape 3 0pt \textwidth \parindent \dimexpr\textwidth-\parindent 0pt \textwidth}% Body font
    {}% Indent amount
    {\bfseries}% Theorem head font
    {:}% Punctuation after theorem head
    {\newline}% Space after theorem head
    {\thmname{#1}\thmnumber{ #2}{\mdseries\thmnote{ [#3]}}}% Theorem head spec(can be left empty, meaning ‘normal’)
    \theoremstyle{teo}
    \newtheorem{thmx}{Theorem}
    \newenvironment{thm}
      {\pushQED{\qed}\renewcommand{\qedsymbol}{$\square$}\thmx}
      {\popQED\endthmx}

\begin{document}
   \begin{thm}[B\'{e}zout's Theorem]    
      \lipsum[1]
   \end{thm}
\end{document}

结果:

在此处输入图片描述

相关内容