我想在同一文档中手动将子部分设置为字母或数字
1. First section
1.P. First subsection
1.P.1. First subsubsection
1.P.2. Second subsubsection
1.V. Second subsection
2. Second section
2.1 First subsection
(无需间距)
我仍然希望章节和子章节级别的编号遵循通常的计数规则。
是否有可能做类似的事情:
\section{First section}
\lettersubsection[P]{First subsection}
\subsubsection{First subsubsection}
\subsubsection{Second subsubsection}
\lettersubsection[V]{Second subsection}
\section{First section}
\subsection{First subsection}
但是如何定义\lettersubsection[]{}
?我在这里卡住了。是否可以像这样组合计数器?我认为我可以避免在同一个部分中混合字母和数字,如果这可以使事情变得更容易的话。非常感谢!
答案1
您可以扩展该\subsection
命令以在括号中采用可选参数;在这种情况下,将使用参数而不是数字。
\documentclass{article}
\NewCommandCopy{\originalsubsection}{\subsection}
\RenewDocumentCommand{\subsection}{sd()O{#4}m}{%
\IfBooleanTF{#1}
{\originalsubsection*{#4}}%
{%
\IfNoValueTF{#2}
{% no letter
\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}%
}
{% letter
\addtocounter{subsection}{-1}%
\renewcommand{\thesubsection}{\thesection.#2}%
}
\originalsubsection[#3]{#4}%
}%
}
\begin{document}
\section{First section}
\subsection(P){First subsection}
\subsubsection{First subsubsection}
\subsubsection{Second subsubsection}
\subsection(V){Second subsection}\label{v}
\subsubsection{First subsubsection}\label{1-v}
\section{First section}
\subsection{First subsection}
\ref{v} and \ref{1-v}
\end{document}
为了hyperref
工作,还添加
\renewcommand{\theHsubsection}{\thesubsection}
在给定代码的末尾。