我正在尝试撰写一篇论文,并希望轻松地对某一章节内的子章节标题进行编号,以便以后可以在文档中轻松引用它们。
以下是我目前的情况:
\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
那里有两个不同的抑制子小节编号的方法:
使用
\subsubsection*
。这将完全抑制编号,同时也抑制将此子小节添加到目录中。\setcounter{secnumdepth}{2}
(您只需要此命令一次,最好在文档的序言中)。这将抑制打印子节的编号。它不会影响目录的生成。
答案4
如果您担心的是小节的字体太大,那么请更改小节字体的定义。您可以通过 找到(子)小节代码texdoc article
。在您的序言中执行
\makeatletter
\renewcommand{\subsection}{...} % changing the font specification
\makeatother
然后 在文档中使用\subsection{...}
而不是。\subsubsection{...}