LyX 中的公理 1 和 1'

LyX 中的公理 1 和 1'

我正在使用 LyX 和“定理 (AMS,按类型编号)”和“定理 (AMS 扩展,按类型编号)”模块。我希望得到以下输出:

公理 1. Lorem。

公理 1'。伊普萨姆。

有没有办法使用 LyX 模块 + ERT 来实现这一点?在此链接中 (公理或假设的自定义枚举),有人用纯 TeX 做了这个。由于我是初学者,我不知道如何使用它来解决我的问题。也许解决方案是编辑 LyX 的定理模块文件,但我不知道该怎么做。在另一个链接中 (如何使“声明”环境看起来像“定理”环境?)有一个编辑 LyX 模块文件的示例来获取您想要的内容。

答案1

在 LyX 的本地布局中添加以下内容(文档 > 设置... > 本地布局):

#\DeclareLyXModule{Other}
#DescriptionBegin
#Defines Axiomp (primed axioms)
#DescriptionEnd
#Requires: theorems-ams-extended
#Category: theorems

Format 35

Requires    amsmath

# The environments defined (regular and starred) are :
# - Axiomp

Style Axiomp
    CopyStyle             Theorem
    DependsOn               Theorem
    LatexName             axp
    LabelString           "Axiom \theaxp."
    Preamble
      \usepackage{etoolbox}
      \theoremstyle{plain}
      \newtheorem{axp}{\protect\axiomname}
      \makeatletter
      \patchcmd{\axp}{\th@plain}{\th@plain\setcounter{axp}{\numexpr\value{thm}-1}}{}{}
      \renewcommand{\theaxp}{\arabic{axp}$'$}
      \makeatother
    EndPreamble
    LangPreamble
      \providecommand{\axiomname}{_(Axiom)}
    EndLangPreamble
    BabelPreamble
      \addto\captions$$lang{\renewcommand{\axiomname}{_(Axiom)}}
    EndBabelPreamble
End

单击“确认”以将其添加Axiomp到样式列表中。虽然您的显示可能类似于

在此处输入图片描述

你的输出应该导致

在此处输入图片描述


如果你希望更多的控制编号,然后您可以将以下内容添加到文档>设置> LaTeX 序言中:

\makeatletter
\renewcommand{\axp}{%
  \@@thm
    {\let\thm@swap\@gobble\th@plain}
    {axp}
    {\protect\axiomname}}

\def\@@thm#1#2#3{% modified from original \@thm
  \ifhmode\unskip\unskip\par\fi
  \normalfont
  \trivlist
  \let\thmheadnl\relax
  \let\thm@swap\@gobble
  \thm@notefont{\fontseries\mddefault\upshape}%
  \thm@headpunct{.}% add period after heading
  \thm@headsep 5\p@ plus\p@ minus\p@\relax
  \thm@space@setup
  #1% style overrides
  \@topsep \thm@preskip               % used by thm head
  \@topsepadd \thm@postskip           % used by \@endparenv
  \def\@tempa{#2}\ifx\@empty\@tempa
    \def\@tempa{\@oparg{\@@begintheorem{#3}{}}[]}%
  \else
    \setcounter{#2}{\value{ax}}%
    \def\@tempa{\@oparg{\@@begintheorem{#3}{\csname the#2\endcsname}}[]}%
  \fi
  \@tempa
}

\def\@@begintheorem#1#2[#3]{%
  \typeout{hello}%
  \def\myvar{#3}\show\myvar%
  \deferred@thm@head{\the\thm@headfont \thm@indent
    \@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}%
    \@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\@iden}%
    \@ifempty{#3}{}{\setcounter{axp}{#3}}%\@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}%
    \let\thmnote\@gobble%
    \thm@swap\swappedhead\thmhead{#1}{#2}{#3}%
    \the\thm@headpunct
    \thmheadnl % possibly a newline.
    \hskip\thm@headsep
  }%
  \ignorespaces}
\makeatother

它修改与带引数的公理 ( ) 相关的定理环境,axp以重新路由到专门的\@@thm\@@begintheorem构造。输入形式

在此处输入图片描述

产量

在此处输入图片描述

正如 LyX wiki 中提到的那样,需要使用 ERT 作为可选参数如何向环境添加可选参数

许多 LaTeX 环境接受影响其行为的可选参数。theorem例如,环境接受排版在定理编号后的可选参数,通常用作定理的名称或给予其发现者的荣誉。在 LaTeX 中,这将这样写:\begin{theorem}[Cohen, 1961]\begin{theorem}[Schröder-Bernstein Theorem],结果如下:

定理 1.1 (Cohen, 1961)。
定理 1.2 (Schröder-Bernstein 定理)。

LyX 没有提供明显的方法来做到这一点,但实际上它非常简单。您需要做的就是在 LyX 中出现“定理 1.2”或其他内容后立即将可选参数输入为 ERT。它之所以有效,是因为可选参数跟在环境声明之后。

相关内容