在小节后缩进整个段落

在小节后缩进整个段落

基本上,我需要在小节后缩进段落,如下所示:

例子

基本上,我需要缩进小节后的所有内容。我已经为小节的标题设置了正确的格式,如下所示:

\documentclass[12pt]{report}
\usepackage{titlesec}    
\titleformat{\subsection}[block]{\bfseries\itshape\normalsize\hspace{2em}}{\thesubsection}{1em}{}
\begin{document}
\end{document}

我在这里找到了一个解决方案:缩进整个段落

然而,问题是为了应用该解决方案,我需要在每个小节之前和之后手动添加代码。

另一个解决方案是:缩进每个 \subsubsection 元素

建议使用新环境:

\documentclass{article}
\usepackage{changepage}

\usepackage{lipsum} 
\newenvironment{subs}
  {\adjustwidth{3em}{0pt}}
  {\endadjustwidth}
\begin{document}
\subsection{A subsection}


\lipsum[2]

\begin{subs}
\subsubsection{One}

\lipsum[3]

\subsubsection{Two}

\lipsum[4]

\end{subs}
\end{document}

但是,这有同样的问题:我需要手动添加\begin...\end每个子部分的环境。有更好的解决方案吗?

答案1

与你的第一次一样引用答案并且使用etoolboxpatchcmd你可以假设它\leftskip没有用于其他任何事情,魔法是:

\patchcmd{\subsection}{-3.25ex\@plus -1ex \@minus -.2ex}{3.25ex\@plus -1ex \@minus -.2ex\setlength{\leftskip}{0cm}}{}{}
\patchcmd{\subsection}{1.5ex \@plus .2ex}{1.5ex \@plus .2ex\setlength{\leftskip}{2cm}}{}{}
\patchcmd{\section}{-3.5ex \@plus -1ex \@minus -.2ex}{-3.5ex \@plus -1ex \@minus -.2ex\setlength{\leftskip}{0cm}}{}{}

\section它在和开始时关闭移位\subsection,并在进入 时将其打开\subsection。这是一个 MWE,我在其中更改了页面大小以适应两页上的示例:

\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{etoolbox}
\usepackage{lipsum}
\usepackage[margin=25mm]{geometry}

\makeatletter
\patchcmd{\section}{-3.5ex \@plus -1ex \@minus -.2ex}{-3.5ex \@plus -1ex \@minus -.2ex\setlength{\leftskip}{0cm}}{}{}
\patchcmd{\subsection}{-3.25ex\@plus -1ex \@minus -.2ex}{3.25ex\@plus -1ex \@minus -.2ex\setlength{\leftskip}{0cm}}{}{}
\patchcmd{\subsection}{1.5ex \@plus .2ex}{1.5ex \@plus .2ex\setlength{\leftskip}{2cm}}{}{}
\makeatother
\begin{document}
\setcounter{chapter}{3}
\section{Section Foo}
\lipsum[1]
\subsection{A subsection}\label{s:first}
\lipsum[2]
\subsection{Another subsection}
\lipsum[3-5]

\section{Section Bar}
\textbf{As seen in section \ref{s:first}}
\lipsum[5]
\subsection{Test again}
\lipsum[5]
\end{document}

结果如下: 在此处输入图片描述

注1:这也适用于hyperref,只要您在加载之前制作补丁即可。

笔记2:这种方法很可能不是兼容titlesec。它假设分段命令(下面\chapter)基于标准\@startsection命令。这不是问题,因为您也可以以类似的方式修补标题的格式以获得斜体

注3:要确定第二个参数的值\patchcmd(取决于类和 ptsize),您必须查看 sectionng 命令的内容。为此,我使用自定义命令:

\newcommand{\mymeaning}[1]{{\small\noindent{\bfseries \string #1} = \meaning #1\par\medskip}}

基于标准命令\meaning并进行一些修饰,并\mymeaning{\subsection}在文档中执行例如。

相关内容