我如何格式化章节/小节/等等,就像嵌套列表一样?

我如何格式化章节/小节/等等,就像嵌套列表一样?

我想格式化章节/小节/等,以便小节的整个正文相对于父节的正文缩进,就像嵌套列表一样,即

1. Section heading.  Lorem ipsum dolor sit amet, consectetur adipisicing elit,
   sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

   a. Subsection heading.  Duis aute irure dolor in reprehenderit in voluptate
      velit esse cillum dolore eu fugiat nulla pariatur.

我目前正在使用该titlesec包通过以下宏来实现运行部分标题:

\titleformat{\section}[runin]{\normalfont\bfseries}{\thesection.}{.5em}{}[\quad]

\titleformat{\subsection}[runin]{\normalfont\bfseries}{\thesubsection.}{.5em}{}[\quad]
\titlespacing{\subsection}{\parindent}{*2}{\wordsep}

输出结果如下:

1. Section heading.  Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

   a. Subsection heading.  Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur.

我尝试过使用包以及定义中的hanging底层\hangindent和命令,但是都没有产生预期的结果。\hangafter\titleformat

答案1

不是。理论上,\section可以重写命令来调整页面布局,但那并不好玩。而且,有时,章节的结束位置可能会不明确。我建议使用类似下面的方法,将章节标题重新定义为环境,然后使用 changepage 包更改边距。

\documentclass[twoside]{文章}
\usepackage{changepage,lipsum}
\newenvironment{h1}[2][]{\section[#1]{#2}}{}
\newenvironment{h2}[2][]{%
  \begin{调整宽度}{2em}{}
    \子节[#1]{#2}%
}{%
  \end{调整宽度}
}
\newenvironment{h3}[2][]{%
  \begin{调整宽度}{2em}{}
    \subsubsection[#1]{#2}%
}{%
  \end{调整宽度}
}
\开始{文档}
\begin{h1}{first}
  \lipsum[1]
  \begin{h2}{秒}
    \lipsum[2]
  \结束{h2}
  \begin{h2}{第三}
    \lipsum[3]
    \begin{h3}{第四}
      \lipsum[4]
    \结束{h3}
  \结束{h2}
\结束{h1}
\结束{文档}

正如您提到的,可以使用 titlesec 来更改章节标题的格式。

答案2

即使你能以某种方式插入代码来缩进(子)节命令中的以下文本,你也会在下一个子节中遇到问题,因为它会进一步缩进文本。你最好将其中一个 changemargin 命令(https://texfaq.org/FAQ-chngmargonfly)例如 KOMA 级:

\documentclass{scrartcl}
\usepackage{lipsum}
\usepackage{titlesec}
\titleformat{\section}[runin]{\normalfont\bfseries}{\makebox[1cm][l]{\thesection.}}{0pt}{}[\quad]
\titleformat{\subsection}[runin]{\normalfont\bfseries}{\makebox[1cm][l]{\thesection.}}{0pt}{}[\quad]
\titlespacing{\section}{-1cm}{*2}{\wordsep}
\titlespacing{\subsection}{-1cm}{*2}{\wordsep}
\begin{document}
 \section{section heading} \lipsum[1]

\begin{addmargin}[1cm]{0cm}
 \leavevmode
 \subsection{sub heading} \lipsum[2]
 \begin{quote}
 \lipsum[1]
 \end{quote}
\end{addmargin}
\end{document}

如果标题后的文本很简单(即不包含改变边距的环境/命令,如列表),您也可以简单地前进 \leftskip。

相关内容