![以“部分”作为重置计数器的 newtheorem 报告类](https://linux22.com/image/250434/%E4%BB%A5%E2%80%9C%E9%83%A8%E5%88%86%E2%80%9D%E4%BD%9C%E4%B8%BA%E9%87%8D%E7%BD%AE%E8%AE%A1%E6%95%B0%E5%99%A8%E7%9A%84%20newtheorem%20%E6%8A%A5%E5%91%8A%E7%B1%BB.png)
抱歉,我对这个问题没有 MWE。
我有一个.dtx
班级,查看了diff
以前的“好”版本和现在的版本,完全想不起到底哪里出了问题,但问题就在这里。所以我想询问有关 的更多详细信息part
。
好的,因此班级发出一个\renewtheorem{test}[part]{Name}
,用户创建环境,例如:
\begin{test}\label{abc}
Ok.
\end{test}
但是当排版为“ as in test (\ref{abc})
”而不是
与测试(1)类似
(之前)文件显示
如测试(.1)所示。
不知道在哪里,但是为什么那个点是不是在那儿冒出来的?
在简单的 MWE 中,部件未显示其相对于点的存在\ref
。什么可能导致那里出现点?如果我设置\renewcommand\thepart{100}
则为\ref{abc}
:100.1
仍然是点!
谢谢。
答案1
当你声明\newtheorem{thm}[part]{Theorem}
你告诉 LaTeXthm
环境应该使用part
计数器,而不是仅为环境定义一个新的计数器时。因此,假设这是第一个定理,并且没有\part
发出任何命令,代码
\begin{thm}\label{abc}
Text
\end{thm}
This is the reference~(\ref{abc}).
将打印
定理一 文本
此为參考文(I)。
你可能已经
\newtheorem{thm}{Theorem}[part]
这是完全不同的。在这种情况下,thm
会创建一个计数器,并且每当part
步进时,计数器都会重置。此外,\thethm
定义为
\newcommand\thethm{\thepart.\arabic{thm}}
这解释了你的输出。实际上,report
类定义了
\newcommand\thepart{\Roman{part}}
并且当您不发出任何\part
命令时,计数器的值为 0,因此\thepart
不会打印任何内容。这就是为什么您会.1
同时获得定理编号和对它的引用。重新定义\renewcommand{\thepart}{100}
不会改变 的定义\thethm
,这将得到100.1
。
答案2
有计数器.dtx
列表和环境/计数器列表;只能用作共享计数器或重置计数器;仅part,chapter,section,subsection,subsubsection
\LaTex
ntheorem
a,b,c,d,e,...
b
a
\LaTeX
d
a,b,c
,等等。在“没有共享计数器“其中a,b,c,...
,part
计数器用作哨兵,当\renewtheorem{}{}
必须发出而未指定共享或重置计数器时。列表中的搜索\LaTeX
没有单独列出这种情况,以便part
与其他chapter,section,subsubsection
情况区分开来。
按照建议删除该[part]
部分,与开始时(混淆)的错误“[part]
最后”区分开来,并指示我检测缺失的代码行\ifthenelse
。
注意:part
不参与report
文档的排版。