标题中从行首到标题的间距(不包括章节编号)

标题中从行首到标题的间距(不包括章节编号)

如何更改章节编号和标题之间的间距?我想实现以下目标:

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}

相关内容