我想要一种带有编号项目的描述环境。
MagicEnv
我需要一个像这样使用的环境:
We define and study a function `f`.
\begin{MagicEnv}
\item[Definition of $f$] The function $f$ is defined as
\begin{equation}
f(x)=x^2
\end{equation}
\item[$f(x)>0$] Some proof and discussions.
\item[$f$ is a bijection ] We prove that $f$ is a bijection
\begin{MagicEnv}
\item[$f$ is injective] \label{my_label}
Long proof here.
\item[$f$ is surjective]
Proof here
\end{MagicEnv}
\end{MagicEnv}
- 中的文字
[...]
必须同时加粗和下划线。 - 嵌套环境的编号必须记住外部编号。在这种情况下,我们有以下数字:
1 Definition of f
2 f>0
3 $f$ is a bijection
3.1 injective
3.2 surjective
- 我希望能够引用。这里
\ref{my_label}
应该打印“3.1”。(如果可能的话,使用 hyperef)
有关的 :refstepcounter 内部描述项目 这里的区别在于我想要
- 嵌套层数超过两层
- 子子项必须编号,例如 1.1、1.2、2.1、2.2 等。
编辑:在问题中明确MagicEnv
我正在寻找要生成的环境。同时将名称“magic_env”更改为“MagicEnv”。
答案1
enumitem
正如@lukeflo 评论中所述,您可以在不定义任何新环境的情况下执行此操作,使用嵌套enumerate
和修改,如手册§12.1 中\item
所述\litem
分数维:
\documentclass
[a5paper] %<!--for demo
{article}
\usepackage[margin=25mm,verbose=false]{geometry} %<!--for demo
\usepackage{enumitem} %<!-- neded
\usepackage[dvipsnames]{xcolor}
\usepackage[colorlinks]{hyperref}
\setlist[enumerate,1]{label=\arabic{enumi}}
\setlist[enumerate,2]{label=\arabic{enumi}.\arabic*}
\NewDocumentCommand{\litem}{o}{\item {\bfseries\boldmath #1\enspace}}
\begin{document}
We define and study a function $f$.
\begin{enumerate}
\litem[Definition of $f$] The function $f$ is defined as
\begin{equation}
f(x)=x^2
\end{equation}
\litem[$f(x)>0$] Some proof and discussions.
\litem[$f$ is a bijection] We prove that $f$ is a bijection
\begin{enumerate}
\litem[$f$ is injective] \label{my_label}
Long proof here.
\litem[$f$ is surjective]
Proof here
\end{enumerate}
\end{enumerate}
Here is a reference to the first subitem of third item : \ref{my_label}
\end{document}
编辑:更新代码和图片以消除虚假彗差。
编辑 2:我故意没有在粗体标签下划线,因为在我看来(以及这里的大多数人)这是一种错误的排版习惯。如果您真的想要它,请加载ulem
或soul
打包并\litem
相应地编辑定义。
编辑 3:如果你真的想嵌套超过 2 个级别,请添加例如
\setlist[enumerate,3]{label=\arabic{enumi}.\arabic{enumii}.\alph{*}}