如何使用 titlesec 在 section、subsection、subsubsec 上获得合法样式的缩进?

如何使用 titlesec 在 section、subsection、subsubsec 上获得合法样式的缩进?

到目前为止,我已经尝试了各种示例中的代码,并得到以下结果:

\usepackage(titlesec)
\titleformat{\section}[block]{\bfseries}{\thesection.}{1em}{} 
\titleformat{\subsection}[block]{\hspace{2em}{\thesubsection}{1em}{}
\titleformat{\subsubsection}[block]{\hspace{3em}}{\thesubsubsection}{1em}{}

缩进标题及其编号。但我不知道如何让每个部分/小节/小子部分的内容有缩进边距。换句话说,我希望部分/小节/小子部分的内容与其缩进的标题一致。

titlesec 能做到这一点吗?我一直在与文档作斗争,但我认为他们比我拥有更多的 tex 知识,因为我尝试的所有方法似乎都不起作用。

我想使用 titlesec,因为根据我的理解,我在编写文档时不需要做任何进一步的调整。我使用 pandoc 从 markdown 生成该部分,因此我无法在我的部分上使用内联格式。

根据评论请求添加以下内容:

以下是我所拥有的:

我拥有的

以下是我想要的:

我想要的

或者,我想要这样的东西:

我也想要这个

答案1

这当然是可能的,无需自动化,使用changepage包裹adjustwidth环境:

在此处输入图片描述

\documentclass{article}
\usepackage{changepage,lipsum,titlesec}% http://ctan.org/pkg/{changepage,lipsum,titlesec}
\titleformat{\section}[block]{\bfseries}{\thesection.}{1em}{}
\titleformat{\subsection}[block]{}{\thesubsection}{1em}{}
\titleformat{\subsubsection}[block]{}{\thesubsubsection}{1em}{}
\titlespacing*{\subsection} {2em}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titlespacing*{\subsubsection} {3em}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\begin{document}
\section{A section}
\lipsum[1]
\subsection{A subsection}
\begin{adjustwidth}{2em}{0pt}
  \lipsum[2]
\end{adjustwidth}
\subsubsection{A subsubsection}
\begin{adjustwidth}{3em}{0pt}
  \lipsum[3]
\end{adjustwidth}
\end{document}

第一个参数adjustwidth是左侧缩进,第二个参数是右侧缩进。

上述 MWE 还包括 Gonzalo 关于titlesec使用 更好地对齐和真实间距分段单元的建议\titlespacing

答案2

作为比较,ConTeXt 提供了一个\startsection...\stopsection版本的节标题命令,以及用于连接到节的开始和结束的键beforesection和。因此,只需设置和即可获得所需的效果。aftersectionbeforesection=\startnarroweraftersection=\stopnarrower

在下面的代码中,我定义了一个新的narrower环境以避免干扰。

\setupwhitespace[medium]

\definenarrower
  [sectionnarrower]
  [left=2em,
   default=left]

\setuphead
  [subsection]
  [
    margin=2em,
    beforesection={\startsectionnarrower},
    aftersection={\stopsectionnarrower},
  ]

\setuphead
  [subsubsection]
  [
    margin=4em,
    beforesection={\startsectionnarrower},
    aftersection={\stopsectionnarrower},
  ]

通过此设置,您不需要在主文档中添加任何命令。

\starttext

\startsection
    [title={A section}]

  \input ward

  \startsubsection
      [title={A subsection}]

    \input ward

    \startsubsubsection
        [title={A subsubsection}]

      \input ward

    \stopsubsubsection

    \input ward

  \stopsubsection

  \input ward
\stopsection

\stoptext

在此处输入图片描述

要获取页边距中的章节编号,请添加

\setuphead[alternative=inmargin]

相关内容