我必须按如下方式格式化章节和小节编号:
(我使用article
类。)
I. Section
A. Subsection
B. Subsection
II. Section
A. Subsection
B. Subsection
我使用包sectsty
。目前,代码如下:
\usepackage{sectsty}
\sectionfont{\normalfont\centering\scshape}
\subsectionfont{\normalfont\itshape}
\renewcommand\thesection{\Roman{section}}
\renewcommand\thesubsection{\thesection.\Alph{subsection}}
但如果我这么做,我会得到:
I Section
I.A Subsection
ETC。
如何去掉小节编号中的罗马数字,以及如何添加尾随的点?
答案1
你问,
如何删除小节中的罗马数字?
你很接近了。只需改变
\renewcommand\thesubsection{\thesection.\Alph{subsection}}
到
\renewcommand\thesubsection{\Alph{subsection}}
即省略\thesection.
扩展为 的前缀\Roman{section}.
。
另外:请注意,编号问题与包的使用或不使用无关sectsty
。
附录I
:为了在、等上添加“点”(又称句号、句号)A
,我建议您在序言中添加以下代码:
% Method proposed in "The LaTeX Companion", 2nd ed.:
\makeatletter
\def\@seccntformat#1{\@ifundefined{#1@cntformat}%
{\csname the#1\endcsname\space}% default
{\csname #1@cntformat\endcsname}}% enable individual control
\newcommand\section@cntformat{\thesection.\space} % section level
\newcommand\subsection@cntformat{\thesubsection.\space} % subsection level
\makeatother
这种看起来有些复杂的方法保留了创建章节和小节交叉引用的能力,而不会在交叉引用中突然出现令人讨厌的点。(如果一个人天真地设置而不是\renewcommand\thesection{\Roman{section}.}
只设置当前的,就会发生这种情况\renewcommand\thesection{\Roman{section}}
。)
以下是 MWE(最小工作示例)的输出:
\documentclass{article}
\usepackage{sectsty}
\sectionfont{\normalfont\centering\scshape}
\subsectionfont{\normalfont\itshape}
\renewcommand\thesection{\Roman{section}}
\renewcommand\thesubsection{\Alph{subsection}}
% Method proposed in "The LaTeX Companion", 2nd ed.:
\makeatletter
\def\@seccntformat#1{\@ifundefined{#1@cntformat}%
{\csname the#1\endcsname\space}% default
{\csname #1@cntformat\endcsname}}% individual control
\newcommand\section@cntformat{\thesection.\space} % section level
\newcommand\subsection@cntformat{\thesubsection.\space} % subsection level
\makeatother
\begin{document}
\section{Section}
\subsection{First Subsection}
\subsection{Second Subsection}
\end{document}