隐藏章节编号但保留按章节排列的公式编号

隐藏章节编号但保留按章节排列的公式编号

原始问题 (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{...}

使用各自的计数器scenarioscenarioh遵循正常的 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}

注意 -

  1. 有一个选项可以跳过某个部分\skipscenario(在场景 3 之后实现)。
  2. 感谢@egreg,现在对章节和方程的引用已正确显示。

尚未解决的部分:补充信息

这肯定需要存储equation所有前面部分(scenarios 和scenariohs)的计数器,并在引用较旧的部分时重新实现它们。

这里仍然是一个悬而未决的问题。

答案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你最终会得到不需要的信息。

在此处输入图片描述

相关内容