章节/部分中的数字和文本之间的间距相同

章节/部分中的数字和文本之间的间距相同

我已经在 Google 上搜索了好几个小时,我的目标是让每个章节/部分都具有相同的缩进量。这意味着虽然有数字,但每个章节都从左边距 3 厘米处开始。你明白我的意思吗?:)

我正在使用该titlesec包自定义字体大小、颜色等,但无法正确设置间距。因此,我尝试使用两个 parbox 来实现,如下所示:

    \titleformat{\section}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\parbox{1cm}{\flushleft\thesection}{\parbox{6cm}{\flushleft #1}}}
      [\vspace*{5pt}]

如果章节标题现在是双倍行距,它看起来会非常丑陋,并且 LaTeX 只会把 parboxes 扔得到处都是。

你们知道怎样做才能让每个章节/部分/小节都从同一点开始吗?

答案1

您的想法很好,但您只需使用适当的长度即可。如果数字框具有宽度,x则标题框的宽度必须等于\textwidth-x。在下面的示例中,对于数字,我使用了\makebox宽度为\mylena(最初设置为1.5cm)的框,对于标题,我使用了内容和宽度\parbox为的框。我根据您的代码片段使用了一些定义,但您当然可以使用您的设置(请注意,您需要两个独立但相似的定义:一个用于编号单元,另一个用于未编号单元(通过键)):\raggedright\mylenb=\textwidth-\mylenanumberless

\documentclass{book}
\usepackage[explicit]{titlesec}
\usepackage{xcolor}

\newlength\mylena
\newlength\mylenb
\setlength\mylena{1.5cm}
\setlength\mylenb{\dimexpr\textwidth-\mylena\relax}

\newcommand\PlaceNumber[1]{%
  \makebox[\mylena][l]{#1}}

\colorlet{pt_Blau_04}{cyan!60!black}

\titleformat{\chapter}
      {\color{pt_Blau_04}\huge\sffamily\bfseries}
      {}
      {0em}
      {\PlaceNumber{\thechapter}\parbox[t]{\mylenb}{\raggedright#1}}
\titleformat{name=\chapter,numberless}
      {\color{pt_Blau_04}\huge\sffamily\bfseries}
      {}
      {0em}
      {\PlaceNumber{}\parbox[t]{\mylenb}{\raggedright#1}}
\titleformat{\section}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\PlaceNumber{\thesection}\parbox[t]{\mylenb}{\raggedright#1}}
      [\vspace*{5pt}]
\titleformat{name=\section,numberless}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\PlaceNumber{}\parbox[t]{\mylenb}{\raggedright#1}}
      [\vspace*{5pt}]
\titleformat{\subsection}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\PlaceNumber{\thesubsection}\parbox[t]{\mylenb}{\raggedright#1}}
\titleformat{name=\subsection,numberless}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\PlaceNumber{}\parbox[t]{\mylenb}{\raggedright#1}}

\begin{document}

\chapter{Test Chapter with some additional text to see the indentation}
\section{Test Numbered Section}
\section*{Test Unnumbered Section}
\subsection{Test Numbered  Subsection}
\subsection*{Test Unnumbered  Subsection}

\end{document}

在此处输入图片描述

答案2

如果您不打算在章节和部分标题中设置段落分隔符(您不应该这样做),这里有一组更简单的宏,无需进行测量:

\documentclass{book}
\usepackage{titlesec}
\usepackage{xcolor}

\newlength\numberwidth
\setlength\numberwidth{1.5cm}

\newcommand\dotitle[2]{%
  \parbox{\textwidth}{
    \raggedright
    \hangindent\numberwidth\hangafter1
    \makebox[\numberwidth][l]{#1}#2%
  }%
}

\colorlet{pt_Blau_04}{cyan!60!black}

\titleformat{\chapter}
      {\color{pt_Blau_04}\huge\sffamily\bfseries}
      {}
      {0em}
      {\dotitle{\thechapter}}
\titleformat{name=\chapter,numberless}
      {\color{pt_Blau_04}\huge\sffamily\bfseries}
      {}
      {0em}
      {\dotitle{}}
\titleformat{\section}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\dotitle{\thesection}}
      [\vspace*{5pt}]
\titleformat{name=\section,numberless}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\dotitle{}}
      [\vspace*{5pt}]
\titleformat{\subsection}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\dotitle{\thesubsection}}
\titleformat{name=\subsection,numberless}
      {\color{pt_Blau_04}\large\sffamily\bfseries}
      {}
      {0em}
      {\dotitle{}}

\begin{document}

\chapter{Test Chapter with some additional text to see the indentation}
{\let\cleardoublepage\relax % just to make the example fit in one page
 \chapter*{Test unnumbered chapter}
}
\section{Test Numbered Section}
\section*{Test Unnumbered Section}
\subsection{Test Numbered  Subsection}
\subsection*{Test Unnumbered  Subsection}

\end{document}

我使用TeX 的\hangindent\hangafter功能。该\dotitle命令有两个参数,第二个是章节标题,与通常一样titlesec

在此处输入图片描述

相关内容