我想要以下部分的编号样式:
第一节
A. 小节
- 子小节
以下几行代码呈现出不同的风格:
\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\thesubsection}{\thesection.\Alph{subsection}}
\renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}}
第一节
IA 分节
IA1. 子小节
非常感谢您的帮助!
此致,
答案1
除字体大小外,下面的操作几乎可以满足您的要求:
\documentclass[]{article}
\makeatletter %needed
% reduce space between number and section title a bit
\renewcommand{\@seccntformat}[1]%
{{\csname the#1\endcsname\hspace{.25em}}}
% allow more space in ToC for section number (4.5em here)
\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{4.5em}}
% adjust indentation for the lower levels
\renewcommand{\l@subsection}{\@dottedtocline{1}{3.0em}{1.5em}}
\renewcommand{\l@subsubsection}{\@dottedtocline{1}{3.5em}{2.5em}}
\makeatother
\renewcommand{\thesection}{\Roman{section}.}
\renewcommand{\thesubsection}{\Alph{subsection}.}
\renewcommand\thesubsubsection{\protect\phantom{\thesubsection}%
\arabic{subsubsection}.}
\begin{document}
\tableofcontents
\section{A section}
\subsection{A subsection}
\subsubsection{A subsubsection}
\end{document}
请注意\protect
重新定义中的\thesubsubsection
:宏的参数是一个移动参数(在多个地方使用,这里在标题和目录中),因此某些宏(如\phantom
)需要\protect
避免编译错误。
编辑:添加了一些额外的重新定义,以便为更长的罗马数字提供空间。
答案2
在 内部加入空格\thesubsubsection
并不是一个好主意,因为这个空格也会进入交叉引用,所以\ref{foo}
会给出______1
,其中______
表示额外的空格。
我建议将宏更改\@seccntformat
为subsubsection
,\ifnum0=\pdfstrcmp
以便检查计数器是否等subsubsection
。
\documentclass{article}
\usepackage{tocloft}
\renewcommand*{\thesection}{\Roman{section}.}
\renewcommand*{\thesubsection}{\Alph{subsection}.}
\renewcommand*{\thesubsubsection}{\arabic{subsubsection}.}
\newlength{\subsubsectionnumberindent}
\setlength{\subsubsectionnumberindent}{3ex}
\addtolength{\cftsubsubsecnumwidth}{-3.5ex}
\newcommand{\subsubsectionheadingformat}{%
\hskip\subsubsectionnumberindent\arabic{subsubsection}.\quad%
}
\makeatletter
\let\latex@@seccntformat\@seccntformat
\renewcommand{\@seccntformat}[1]{%
\ifnum0=\pdfstrcmp{#1}{subsubsection}%
\subsubsectionheadingformat%
\else
\latex@@seccntformat{#1}%
\fi
}
\makeatother
\begin{document}
\tableofcontents
Please see \fbox{\ref{foosubsubsec}}
\section{Section}
\subsection{Subsection}
\subsubsection{SubSubsection} \label{foosubsubsec}
\end{document}