自定义我自己的子部分编号

自定义我自己的子部分编号

我正在尝试撰写一篇论文,并希望轻松地对某一章节内的子章节标题进行编号,以便以后可以在文档中轻松引用它们。

以下是我目前的情况:

\documentclass[10pt]{article}
\usepackage{amsmath, amsthm, amssymb, amsfonts}
\usepackage{fancyhdr, graphicx}
\usepackage[width=5.5in, height=8in]{geometry}

\begin{document}

\section{Exact Solutions of the Navier-Stokes Equations}

Intro.

\subsubsection{Solution 1: Description}

Solution 1

\subsubsection{Solution 2: Description}

Solution 2

\subsubsection{Solution 3: Description}

Solution 3

\end{document}

输出结果如下:

1.0.1 解决方案 1:描述

解决方案 1

1.0.2 解决方案 2:描述

解决方案 2

但我想让它显示为:

解决方案 1:说明

解决方案 1

解决方案 2:说明

解决方案 2

这样“解决方案 i”部分就变成了数字——如果这有意义的话。

我这样做的原因是:1 - 它看起来不错,2 - 这样我以后可以使用 \label 和 \ref,以便以后在文档中参考它们。

答案1

下面是一个示例,它“自动”重新定义子小节标题数字格式和编号,并使用下一个恢复它\section

我还习惯\cleveref将小节称为解决方案,而不是小节。

\documentclass[10pt]{article}
\usepackage{amsmath, amsthm, amssymb, amsfonts}
\usepackage{fancyhdr, graphicx}
\usepackage{xpatch}
\usepackage[width=5.5in, height=8in]{geometry}

\usepackage{cleveref}


\makeatletter
\let\latexthesubsubsection\thesubsubsection
\let\latex@@seccntformat\@seccntformat

\newcommand{\othersubsubformat}{%
  \renewcommand{\thesubsubsection}{Solution \arabic{subsubsection}}
  \def\@seccntformat##1{\csname the##1\endcsname:\ }
}
\newcommand{\restoresubsubformat}{%
\let\@seccntformat\latex@@seccntformat
\let\thesubsubsection\latexthesubsubsection
}

\xpretocmd{\section}{\restoresubsubformat}{}{}

\begin{document}



\section{Exact Solutions of the Navier-Stokes Equations}



\othersubsubformat

Intro.

We have a nice solution in \ref{solution:3}

\subsubsection{Description}

Solution 1

\subsubsection{Description}

Solution 2

\subsubsection{Description} \label[Solution]{solution:3}

Solution 3


\section{Other stuff}

\subsection{Foo}
\subsubsection{Foobar}

\end{document}

在此处输入图片描述

答案2

这是我根据 Christian Hupfer 在他的一条评论中的建议找到的解决方案。

\documentclass[10pt]{article}
\usepackage{amsmath, amsthm, amssymb, amsfonts}
\usepackage[width=5.5in, height=8in]{geometry}

\theoremstyle{definition}
\newtheorem{solution}{Solution}

\begin{document}

\section{Exact Solutions of the Navier-Stokes Equations}


Intro.

See solution \ref{solution:3} for ...

\begin{solution} \textbf{Description} \\

Solution 1

\end{solution}

\begin{solution} \textbf{Description} \\

    Solution 2

\end{solution}

\begin{solution} \textbf{Description} \\ \label{solution:3}

    Solution 3

\end{solution}

\end{document}

答案3

那里有两个不同的抑制子小节编号的方法:

  1. 使用\subsubsection*。这将完全抑制编号,同时也抑制将此子小节添加到目录中。

  2. \setcounter{secnumdepth}{2}(您只需要此命令一次,最好在文档的序言中)。这将抑制打印子节的编号。它不会影响目录的生成。

答案4

如果您担心的是小节的字体太大,那么请更改小节字体的定义。您可以通过 找到(子)小节代码texdoc article。在您的序言中执行

\makeatletter
\renewcommand{\subsection}{...} % changing the font specification 
\makeatother

然后 在文档中使用\subsection{...}而不是。\subsubsection{...}

相关内容