如何更改章节编号和标题之间的间距?我想实现以下目标:
1.(但是从该行的最开头开始有 1 厘米的空间!)章节标题
在标题中数字和文本之间的间距我基本上问的是同样的问题,但后来我才意识到,有一个非常重要的区别,即从哪里开始测量这个空间!所以,我真正想要的是一个恒定的空间——例如 1 厘米——从行首开始测量,而不仅仅是节号和节标题之间的空间。
答案1
这里有一个与你的解决方案非常相似的解决方案上一个问题\rlap
,除了它在标题的定义中使用section
,以便章节编号不占用任何空间(从 TeX 的角度来看)
\documentclass{article}
\usepackage[showframe=true]{geometry}
\usepackage[explicit]{titlesec}
\titleformat{\section}%
{\Large\bfseries}% format
{\rlap{% label
\thesection}\hspace{1cm}#1}%
%{\thesection #1}%
{0pt}% horizontal sep
{}% before
\begin{document}
\section{First section}
\setcounter{section}{14}
\section{Another section}
\end{document}
如果章节编号过高或者其中包含章节编号,则可能会遇到问题。
答案2
以下是使用 ConTeXt 的解决方案:
\setuphead
您可以使用带有参数的命令numberwidth
。
\setuphead [章节,部分] [numberwidth=3cm] \开始文本 \startsection [title=Foo] \blackrule [height=1ex, width=3cm] %仅用于演示 \输入 knuth \停止部分 \停止文本
其结果是:
该规则仅用于演示,尺寸为 3cm。
答案3
“无包装”解决方案。
\documentclass{article}
\makeatletter
\def\@seccntformat#1{\protect\makebox[1cm][l]{\csname the#1\endcsname}}
\makeatother
\begin{document}
\noindent\rule{1cm}{1pt}
\section{First Section}
\setcounter{section}{14}
\section{Another Section}
\end{document}
相同的间距也适用于较低级别的部分(编号时)。
答案4
如果您仍在使用 KOMA-Script 类,则没有catcode change
建议:
\documentclass{scrartcl}
\renewcommand*{\othersectionlevelsformat}[3]{%
\makebox[1cm][l]{#3}%
}
\begin{document}
\section{Section}
\subsection{Subsection}
\subsubsection{Subsubsection}
\end{document}
如果你愿意,你可以在不同级别使用不同的缩进:
\documentclass{scrartcl}
\renewcommand*{\othersectionlevelsformat}[3]{%
\ifstr{#1}{section}{\makebox[1cm]}{%
\ifstr{#1}{subsection}{\makebox[1.5cm]}{\makebox[2cm]}}%
[l]{#3}%
}
\begin{document}
\section{Section}
\subsection{Subsection}
\subsubsection{Subsubsection}
\setcounter{section}{10}\section{Section}
\subsection{Subsection}
\subsubsection{Subsubsection}
\end{document}