在我的文档的某些部分,我想在段落上设置悬挂缩进。我注意到当我使用 \hangparas 时,节空间会变得混乱。与文档中的其他节相比,当我使用悬挂包时,节之间的垂直空间较少。如何在使用 \hangparas 时保持节之间的相同空间?
\documentclass[10pt,openany]{book}
\usepackage{fontspec}
\usepackage{libertine}
\usepackage{titlesec}
\usepackage{multicol}
\usepackage[autocompile]{gregoriotex}
\usepackage{fancyhdr}
\usepackage{verse}
\usepackage{enumitem}
\usepackage{longtable}
\usepackage{xurl}
\usepackage{hanging}
\usepackage[english]{babel}
\usepackage{blindtext}
\titleformat{\chapter}[display]{\normalfont\bfseries\centering}{}{0pt}{\Large}
\titleformat{\section}[display]{\normalfont\itshape\centering}{}{0pt}{}
\begin{document}
\chapter{Some Chapter}
\fancyhead[CO,CE]{\textsc{Some Chapter}}
\section{Section w No Hanging}
\blindtext
\blindtext
\section{Section w Hanging}
\begin{hangparas}{1em}{1}
\blindtext
\blindtext
\end{hangparas}
\section{Next Section}
\blindtext
\end{document}
答案1
章节标题之后的环境hangparas
不会重置\if@nobreak
为 false,因为它在执行\everypar
之前已经发生了变化。\@nobreakfalse
我们可以让它不忽视它。
\documentclass[10pt,openany]{book}
\usepackage{fontspec}
\usepackage{libertine}
\usepackage{titlesec}
\usepackage{multicol}
\usepackage[autocompile]{gregoriotex}
\usepackage{fancyhdr}
\usepackage{verse}
\usepackage{enumitem}
\usepackage{longtable}
\usepackage{xurl}
\usepackage{hanging}
\usepackage[english]{babel}
\usepackage{blindtext}
\titleformat{\chapter}[display]{\normalfont\bfseries\centering}{}{0pt}{\Large}
\titleformat{\section}[display]{\normalfont\itshape\centering}{}{0pt}{}
\makeatletter
\def\hangparas#1#2{%
\setlength{\parindent}{\z@}%
\everypar{%
\if@nobreak
\@nobreakfalse
\clubpenalty \@M
\else
\clubpenalty \@clubpenalty
\fi
\everypar{\hangpara{#1}{#2}}%
\hangpara{#1}{#2}%
}%
}
%\def\endhangparas{\par\@nobreakfalse}
\makeatother
\begin{document}
\chapter{Some Chapter}
\fancyhead[CO,CE]{\textsc{Some Chapter}}
\section{Section w No Hanging}
\blindtext
\blindtext
\section{Section w Hanging}
\begin{hangparas}{1em}{1}
\blindtext
\blindtext
\end{hangparas}
\section{Next Section}
\blindtext
\end{document}