我正在尝试创建一个包含一些不寻常标题和缩进的文档类。我的目标是使宽度chapter/section number + whitespace
等于文本\leftskip
2.5 厘米。使用 titlesec 包,我获得了几乎可以接受的结果,为章节和节标题设置了一些目测的 \hspace 值(例如 2.1 厘米和 1.9 厘米),但正如您从我的示例中看到的那样,当标题数字变大时,它会中断。
在可视化文字处理器中,我只需在标题编号后插入一个制表符,并将制表位设置为 2.5 厘米,我希望在 LaTeX 中复制此操作。我对环境有所了解tabbed
,但我不知道如何在此上下文中使用 titlesec 配置来应用它。
\documentclass[12pt,a4paper]{report}
\usepackage{lipsum}
\usepackage{titlesec}
\newlength\extramargin
\setlength\extramargin{2.5cm} % Regular text indent
\setlength\leftskip{\extramargin}
\titleformat{\chapter}[hang]
{\normalfont\sffamily\bfseries}
{\thechapter.\hspace{2.1cm}} % incorrect indent if chapter > 9
{0pt}
{\uppercase}
[\titlerule]
\titlespacing{\chapter}{0pt}{2em}{1em}
\titleformat{\section}[hang]
{\normalfont\sffamily\bfseries}
{\thesection\hspace{1.9cm}} % incorrect indent if section > 9
{0pt}
{}
\makeatother
\begin{document}
\chapter{Chapter title}
\section{Section}
\lipsum[1]
\section{Section}
\section{Section}
\section{Section}
\section{Section}
\section{Section}
\section{Section}
\section{Section}
\section{Section}
\section{Section}
Oh no!
\end{document}
答案1
使用盒子:
\titleformat{\section}[hang]
{\normalfont\sffamily\bfseries}
{\makebox[2.1cm][l]{\thesection}} % incorrect indent if section > 9
{0pt}
{}
2.1cm
按照您的意愿进行调整。