我想在文本中穿插编号命题,因此我定义了一个不会重置计数器的列表。
\documentclass{article}
\usepackage{enumitem}
\newlist{propositions}{enumerate}{1}%
\setlist[propositions]{
label=(\arabic*),
resume,
}
\begin{document}
\begin{propositions}
\item foo
\end{propositions}
\begin{propositions}
\item bar
\end{propositions}
这按预期工作,但是,由于我通常一次只给出一个命题,因此\item
似乎是多余的,因此我将环境包装在一个包含的新环境中
\item
。
\newenvironment{proposition}{\begin{propositions}\item}{\end{propositions}}
\begin{proposition}
baz
\end{proposition}
\begin{proposition}
boo
\end{proposition}
\end{document}
但是现在发生了一些不理想的情况,因为生成的数字是 1、2、3、3。大概是包装使计数器局部化,因此它无法存活到下一个命题环境?我该如何补救?
答案1
这有效:
\documentclass{article}
\usepackage{enumitem}
\newlist{propositions}{enumerate}{1}%
\setlist[propositions]{
label=(\arabic*),
resume,
}
\newenvironment{proposition}
{\propositions\item}
{\endpropositions}
\begin{document}
\begin{proposition}
foo
\end{proposition}
\begin{proposition}
bar
\end{proposition}
\end{document}
但是,您应该考虑采用不同的方法。
\documentclass{article}
\usepackage{amsthm}
\newtheoremstyle{propositions}
{\topsep} % ABOVESPACE
{\topsep} % BELOWSPACE
{\itshape} % BODYFONT
{0pt} % INDENT
{\normalfont} % HEADFONT
{} % HEADPUNCT
{5pt plus 1pt minus 1pt} % HEADSPACE
{(\thmnumber{#2})} % CUSTOM-HEAD-SPEC
\theoremstyle{propositions}
\newtheorem{proposition}{}
\begin{document}
\begin{proposition}
foo
\end{proposition}
\begin{proposition}
bar
\end{proposition}
\end{document}
如果您喜欢直立式身体,请换成\itshape
。\normalfont
您还可以支持“命名提案”
\documentclass{article}
\usepackage{amsthm}
\newtheoremstyle{propositions}
{\topsep} % ABOVESPACE
{\topsep} % BELOWSPACE
{\itshape} % BODYFONT
{0pt} % INDENT
{\normalfont} % HEADFONT
{} % HEADPUNCT
{5pt plus 1pt minus 1pt} % HEADSPACE
{(\thmnumber{#2})} % CUSTOM-HEAD-SPEC
\theoremstyle{propositions}
\newtheorem{proposition}{}
\newenvironment{proposition*}[1]
{\addtocounter{proposition}{-1}\renewcommand{\theproposition}{#1}\proposition}
{\endproposition}
\begin{document}
References: \ref{prop:foo}, \ref{prop:bar}, \ref{prop:K}, \ref{prop:check}.
\begin{proposition}\label{prop:foo}
foo
\end{proposition}
\begin{proposition}\label{prop:bar}
bar
\end{proposition}
\begin{proposition*}{K}\label{prop:K}
K is this one
\end{proposition*}
\begin{proposition}\label{prop:check}
check
\end{proposition}
\end{document}
如果你也想hyperref
配合的话,就得对之前的代码稍微修改一下。
\documentclass{article}
\usepackage{amsthm}
\usepackage{hyperref}
\newtheoremstyle{propositions}
{\topsep} % ABOVESPACE
{\topsep} % BELOWSPACE
{\itshape} % BODYFONT
{0pt} % INDENT
{\normalfont} % HEADFONT
{} % HEADPUNCT
{5pt plus 1pt minus 1pt} % HEADSPACE
{(\thmnumber{#2})} % CUSTOM-HEAD-SPEC
\theoremstyle{propositions}
\newtheorem{proposition}{}
\newenvironment{proposition*}[1]
{%
\addtocounter{proposition}{-1}%
\renewcommand{\theproposition}{#1}%
\renewcommand{\theHproposition}{#1}%
\proposition
}
{\endproposition}
\begin{document}
References: \ref{prop:foo}, \ref{prop:bar}, \ref{prop:K}, \ref{prop:check}.
\begin{proposition}\label{prop:foo}
foo
\end{proposition}
\begin{proposition}\label{prop:bar}
bar
\end{proposition}
\begin{proposition*}{K}\label{prop:K}
K is this one
\end{proposition*}
\begin{proposition}\label{prop:check}
check
\end{proposition}
\end{document}