我正在努力实现一个目标极其类似于所要求的自定义定理编号。 那里egreg 解释道如何创建自定义定理环境。但是,必须指定它是定理、命题还是其他。他使用以下代码。
\usepackage{amsthm}
\newtheorem{innercustomgeneric}{\customgenericname}
\providecommand{\customgenericname}{}
\newcommand{\newcustomtheorem}[2]{%
\newenvironment{#1}[1]
{%
\renewcommand\customgenericname{#2}%
\renewcommand\theinnercustomgeneric{##1}%
\innercustomgeneric
}
{\endinnercustomgeneric}
}
\newcustomtheorem{customthm}{Theorem}
\newcustomtheorem{customlemma}{Lemma}
我不想做这个最终决定,而是想要一个customgen
在调用时title
使用该标题的环境。考虑使用 egreg 的命令进行以下操作。
\begin{customthm}{CUSTOM_LABEL}
This is Theorem CUSTOM_LABEL
\end{customthm}
这将创建一个环境,开始Theorem CUSTOM_LABEL
。我想
\begin{customgen}{CUSTOM_TITLE}
This may or may not be a theorem
\end{customgen}
开始CUSTOM_TITLE
。
我几乎可以通过用 替换 并注释掉命令 来实现这一点[2]
。[1]
但是\renewcommand\customgenericname{#2}
,左侧有多余的空格。我不知道如何摆脱它。
答案1
它比这简单多了。
\documentclass{article}
\usepackage{amsthm}
\newtheorem{customthminner}{\customthmname}[section]
\newcommand{\customthmname}{}
\newenvironment{customthm}[1]
{\renewcommand{\customthmname}{#1}\customthminner}
{\endcustomthminner}
\begin{document}
\section{Famous theorems}
\begin{customthm}{Gauss's lemma}
Blah blah
\end{customthm}
\begin{customthm}{Fermat's last theorem}
Blah blah
\end{customthm}
\end{document}
如果您不想编号,请使用\newtheorem*
(并且没有可选参数)。