![隐藏章节编号但保留按章节排列的公式编号](https://linux22.com/image/435372/%E9%9A%90%E8%97%8F%E7%AB%A0%E8%8A%82%E7%BC%96%E5%8F%B7%E4%BD%86%E4%BF%9D%E7%95%99%E6%8C%89%E7%AB%A0%E8%8A%82%E6%8E%92%E5%88%97%E7%9A%84%E5%85%AC%E5%BC%8F%E7%BC%96%E5%8F%B7.png)
原始问题 (i):我的章节标题采用“场景 1:学习使用 LaTeX”等形式,因此当标题打印为“1 场景 1:学习使用 LaTeX”时,它看起来很愚蠢。因此我想隐藏章节编号。
但是我仍然希望方程编号按节排序(因此第 1 节中的第一个方程标记为 (1.1) 等)。
我尝试在序言中放入 \numberwithin{equation}{section} 并使用 \section*{...},但所有部分中的方程编号都是 (0.1)、(0.2) 等。
关于如何做到这一点有什么想法吗?提前致谢!
后续问题(ii):这是针对我的论文的一个更具体的问题,关于如何编写各个章节以使编号有意义。
我的论文包含以下部分,并且我在每一部分旁边写了我希望如何对方程式进行编号:
场景 1 (1.1)、(1.2) 等
场景 2(2.1)等
场景 3(3.1)等
场景 4(4.1)等
场景 5(5.1)等
情景 H1(H1.1)等
场景 8 (8.1) 等
情景 H2(H2.1)等
补充信息
补充信息还包含以下小节:
情景 1 数字延续上述情景 1 中的结果,例如 (1.9)、(1.10) 等
场景 2 如上所述,例如(2.7)等
场景 6(6.1)等
场景 7 (7.1) 等
答案1
对于原始问题(i)
您可以按以下方式重新定义节和方程编号--
\documentclass{article}
\usepackage{amsmath}
\renewcommand{\thesection}{Scenario \arabic{section}:}
\renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
\begin{document}
\section{Solving equations in \LaTeX}
Consider the equation with one variable---
\begin{equation}
a^2 + 2a = 8
\end{equation}
which solves as $a = 2$.
\section{Moving deeper}
Two equations with two unknowns---
\begin{align}
a &= b + 3 \\
b &= 2
\end{align}
boils down to $a = 5$.
\section{The harder part}
Two equations with three unknowns do not have a unique solution\ldots
\begin{align}
a &= b + c \\
b &= c - 5
\end{align}
solves for any value of $c$.
\end{document}
由此产生了——
关于后续问题的第一部分(ii)
满足额外情景 H1(仅限该问题的第一部分),如下所示:
...可以通过将我的答案与@Werner 的更强大、低级的 TeX 解决方案...有点接近@egreg 的回答并定义两个section
类似命令
\scenario{...}
和\scenarioh{...}
使用各自的计数器scenario
并scenarioh
遵循正常的 LaTeX 协议(请原谅我有限的 TeX 知识)。
\documentclass{article}
\usepackage{amsmath}
\numberwithin{equation}{section}
\makeatletter
\renewcommand{\@seccntformat}[1]{%
Scenario~\csname the#1\endcsname:\quad}
\makeatother
\newcounter{scenario}
\newcounter{scenarioh}
\renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
\newcommand{\scenario}[1]{
\addtocounter{scenario}{1}
\renewcommand{\thesection}{%
\arabic{scenario}%
}
\section{#1}
\renewcommand{\theequation}{%
\arabic{scenario}.\arabic{equation}%
}
}
\newcommand{\scenarioh}[1]{
\addtocounter{scenarioh}{1}
% A "Scenario H" will normally
% increment the "Scenario" counter by 1
\addtocounter{scenario}{1}
\renewcommand{\thesection}{%
H\arabic{scenarioh}%
}
\section{#1}
\renewcommand{\theequation}{%
H\arabic{scenarioh}.\arabic{equation}%
}
}
\newcommand{\skipscenario}{\addtocounter{scenario}{1}}
\begin{document}
\scenario{Solving equations in \LaTeX}\label{sec:sol}
Consider the equation with one variable---
\begin{equation}
a^2 + 2a = 8
\end{equation}
which solves as $a = 2$, or $a = -4$.
\scenario{Moving deeper}
Two equations with two unknowns---
\begin{align}
a &= b + 3 \\
b &= 2
\end{align}
boils down to $a = 5$, being the only root, unlike \S\,\ref{sec:sol}.
\scenario{The harder part}
Two equations with three unknowns do not have a unique solution\ldots
\begin{align}
a &= b + c \\
b &= c - 5
\end{align}
solves for any value of $c$.
\scenarioh{Weird use cases}\label{sec:weird}
Fermat's last theorem states---
\begin{align}
a^n + b^n = c^n \qquad n > 2
\label{eq:weird}
\end{align}
We skip a the next scenario and move on to scenario \ref{sec:iden}.
\skipscenario
\scenario{Identities}\label{sec:iden}
Let's take the identity---
\begin{equation}
a \equiv a
\end{equation}
which might have a remote reference to equation \eqref{eq:weird} in \$\,\ref{sec:weird}.
\end{document}
注意 -
- 有一个选项可以跳过某个部分
\skipscenario
(在场景 3 之后实现)。 - 感谢@egreg,现在对章节和方程的引用已正确显示。
尚未解决的部分:补充信息
这肯定需要存储equation
所有前面部分(scenario
s 和scenarioh
s)的计数器,并在引用较旧的部分时重新实现它们。
这里仍然是一个悬而未决的问题。
答案2
您不应该重新定义,而\thesection
应该重新定义如何打印章节编号。
在这里我改变了 的默认含义,以\@seccntformat
查看是否\format<level>
已定义,在这种情况下使用它;否则它坚持默认。
\documentclass{article}
\usepackage{amsmath}
\counterwithin{equation}{section}
\makeatletter
\renewcommand{\@seccntformat}[1]{%
\ifcsname format#1\endcsname
\csname format#1\endcsname
\else
\csname the#1\endcsname\quad % default
\fi
}
\makeatother
\newcommand{\formatsection}{Scenario \thesection: }
\begin{document}
\section{Solving equations in \LaTeX}
Consider the equation with one variable
\begin{equation}
a^2 + 2a = 8
\end{equation}
which solves as $a = 2$.
\section{Moving deeper}
Two equations with two unknowns
\begin{align}
a &= b + 3 \\
b &= 2
\end{align}
boils down to $a = 5$.
\section{The harder part}
Two equations with three unknowns do not have a unique solution
\begin{align}
a &= b + c \\
b &= c - 5
\end{align}
solves for any value of $c$.
\end{document}
由于懒惰,我摘取了 Partha D. 的回答的主体部分。
为什么不重新定义\thesection
?因为这样\ref
你最终会得到不需要的信息。