我为 Remarks id by chapter#.remark# 编写了一个 LaTeX 自定义环境。我的第一次尝试是使用 \numberwithin(遵循 Kopka-Daly 第 4 版,第 288 页),下面显示了测试人员的情况。
\documentclass[12pt]{book}
\usepackage{amsmath}
\begin{document}
\newcounter{remarkno}
\numberwithin{remarkno}{chapter}
\newenvironment{remark}{\large
\refstepcounter{remarkno}
\noindent\textbf{Remark~\theremarkno}.
}
{}
\chapter{ \Huge{This is the first chapter}}
\chapter{ \Huge{This is the second chapter}}
\chapter{ \Huge{This is the third chapter}}
\begin{remark}
This should be id as Remark 3.1.
\end{remark}
\vspace{10pt}
\begin{remark}
This should be id as Remark 3.2.
\end{remark}
\end{document}
这行得通,但我在第 1-2 章之后看到了奇怪的标题。这些是从哪里来的?如果我用替换{book}
并{amsbook}
删除,\usepackage{amsmath}
我会得到一个错误: ! Undefined control sequence \@tempa -> \@nil
这可能是由于使用了过时的软件包版本造成的吗?
答案1
在标题中使用明确的字体变化是不好的风格(首先,您也会在目录中看到巨大的标题)。
此外,使用 12pt 选项,与使用的\Huge
完全相同,因此您什么都不做,除了破坏目录。\huge
\chapter
您不应该remark
“手动”定义,而应该使用标准工具,例如\newtheorem
。在这种情况下,加载amsthm
将提供所需的样式definition
。
\documentclass[12pt]{book}
\usepackage{amsmath}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{remark}{Remark}[chapter]
\begin{document}
\chapter{This is the first chapter}
\chapter{This is the second chapter}
\chapter{This is the third chapter}
\begin{remark}
This should be id as Remark 3.1.
\end{remark}
\begin{remark}
This should be id as Remark 3.2.
\end{remark}
\end{document}
如果你真的想要注释有\large
大小(但我希望你不要这样),你可以按照如下方式操作。
\documentclass[12pt]{book}
\usepackage{amsmath}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{remarkinner}{Remark}[chapter]
\newenvironment{remark}{\large\remarkinner}{\endremarkinner}
\begin{document}
\chapter{This is the first chapter}
\chapter{This is the second chapter}
\chapter{This is the third chapter}
\begin{remark}
This should be id as Remark 3.1.
\end{remark}
\begin{remark}
This should be id as Remark 3.2.
\end{remark}
\end{document}