我正在使用我自己的环境编写数学讲座以进行定义:
\newenvironment{mydefs}
{\begin{asparaenum}[\P\slshape\thesection.a]}
{\end{asparaenum}}
因此每个定义都像“section_number.letter”一样编号(例如 3.a)
但是我在引用 def 时遇到了麻烦。无论它是什么部分,
\begin{mydefs}
\item
\label{123}
Something
\end{mydefs}
....
\ref{123}
我得到的是“1.letter”而不是“section_number.letter”(例如 1.b 而不是 3.b)。希望您能帮助我处理这个问题
PS,如果可能的话,我真的很想保留这种编号(section.letter)样式。
谢谢
答案1
我建议enumitem
不要太死板paralist
。
\documentclass{article}
\usepackage{enumitem}
\newenvironment{mydefs}
{\begin{enumerate}[
nosep,
label=\P\slshape\thesection.\alph*\ ,
ref=\thesection.\alph*,
leftmargin=0pt,labelwidth=0pt,align=left,itemindent=\parindent,labelsep=0pt
]}
{\end{enumerate}}
\begin{document}
\section{title}
\begin{mydefs}
\item\label{1}
Something
\item\label{2}
Something
\item\label{3}
Something
\end{mydefs}
\section{Another}
\begin{mydefs}
\item\label{11}
Something
\item\label{22}
Something
\item\label{33}
Something
\end{mydefs}
1: \ref{1}
2: \ref{2}
3: \ref{3}
11: \ref{11}
22: \ref{22}
33: \ref{33}
\end{document}
这个倾斜的数字实在太可怕了。
答案2
该asparaenum
环境可以通过enumitem
包裹。
该选项wide
模拟项目作为段落以及带有选项noitemsep
和的紧凑列表nosep
。
\newlist
创建基于itemize
、enumerate
和的定制列表description
。
例子
\documentclass{article}
\usepackage{enumitem}
\newlist{mydefs}{enumerate}{1}
\setlist[mydefs]{label=\P\slshape\thesection.\alph*,wide,noitemsep,nosep}
\begin{document}
\begin{mydefs}
\item\label{123}
Something
\item B
\end{mydefs}
As in \ref{123} we ...
\end{document}