我的目的是创建证明中的可视化步骤。
我根据环境烹饪了这道菜description
:
\documentclass{article}
\newcounter{subproofcount}
\newcommand{\thesubproffcount}{\arabic{subproofcount}}
\newcommand{\subprooflabel}[1]{\refstepcounter{subproofcount}(\roman{subproofcount}) \underline{\bf #1}}
\newenvironment{subproof}{\let\Olddescriptionlabel\descriptionlabel\let\descriptionlabel\subprooflabel \begin{description}\setcounter{subproofcount}{0}}{\end{description}\let\descriptionlabel\Olddescriptionlabel}
\begin{document}
Here is a proof.
\section{Title 1}
\section{Title 2}
\begin{subproof}
\item[\( A\) is open] \label{ITEMone}
Let \( \epsilon>0\) etc.
\item[\( A\) is bounded]
Suppose etc. Using \ref{ITEMone}
\end{subproof}
\end{document}
下列物品的编号正确:
我的问题是\ref{ITEMone}
创建了对该部分的引用(即本例中的“2”)而不是对该项目的引用subproof
(即示例中的(i))。
编辑:针对我的用例的最佳答案在这里:https://tex.stackexchange.com/a/697316/109167
答案1
这使用了一个新的列表环境。请注意,当使用可选参数时,默认情况下\item
不会增加计数器。
唯一剩下的问题是将左边距放在可选参数的左边还是右边。
\documentclass{article}
\usepackage{showframe}% alignment tool
\newcounter{subproofcount}
\renewcommand{\thesubproofcount}{\roman{subproofcount}}
\newcommand{\subprooflabel}[1]{\hbox to \leftmargin{\hfill(\thesubproofcount)\hspace\labelsep}\underline{\bf #1}}
\newcommand{\subproofitem}[1][]{\refstepcounter{subproofcount}\csname @item\endcsname[#1]}
\newenvironment{subproof}{\let\item=\subproofitem
\list{subproofcount}{\usecounter{subproofcount}\let\makelabel=\subprooflabel}}%
{\endlist}
\begin{document}
Here is a proof.
\section{Title 1}
\section{Title 2}
\begin{subproof}
\item[\( A\) is open] \label{ITEMone}
Let \( \epsilon>0\) etc.\\
Add another line.
\item[\( A\) is bounded]
Suppose etc. Using \ref{ITEMone}
\end{subproof}
\end{document}
答案2
由于分步证明中的数字(i)、(ii)等至少与相关的描述性标签一样明显,因此我将创建一个定制的枚举环境,并subproof
借助枚举项包及其\newlist
宏\setlist
。这样,通过\label
和进行交叉引用\ref
就变得非常简单了。
\documentclass{article}
\usepackage[normalem]{ulem} % for \uline macro
\newcommand\descr[1]{{\boldmath\bfseries\uline{#1}}\hphantom{.}}
\usepackage{enumitem}
\newlist{subproof}{enumerate}{1}
\setlist[subproof]{label=(\roman*)}
\begin{document}
\section{Title 1}
\section{Title 2}
\begin{subproof}
\item \label{ITEMone}
\descr{\( A\) is open} Let \( \epsilon>0\). Then \dots
\item
\descr{\( A\) is bounded} Using subproof \ref{ITEMone}, we \dots
\end{subproof}
\end{document}