这回答说了如何避免缩进长章节标题并获得如图所示的效果(不是我引入了这种格式,这只是我现在必须处理的格式,不幸的是标题必须如下所示):
\documentclass[a4paper]{article}
\usepackage{showframe} % ONLY to show the margins
%*************************************** added <<<<<<<<<<<<<<<
\usepackage{etoolbox} % needed for the patch
\makeatletter
\patchcmd{\@sect}
{\@hangfrom{\hskip #3\relax\@svsec}}
{\@svsec}
{}{}
\makeatother
%***************************************
% uncommenting next line that undoes the patch
% \usepackage[compact]{titlesec}
%\titleformat*{\section}{\Large\bfseries}
%\titleformat*{\subsection}{\normalsize\bfseries\itshape}
%\titleformat*{\subsubsection}{\normalsize\itshape}
\begin{document}
\section{La increíble y triste historia de la cándida Eréndira y de su abuela desalmada}
(...)
\subsection{Die unglaubliche und traurige Geschichte
von der einfältigen Eréndira und ihrer herzlosen Großmutter}
(...)
\subsubsection{La incredibile e triste storia della candida Eréndira e della sua nonna snaturata}
(...)
\end{document}
但是,如果我加载一些包,补丁的效果就会消失。有些包hyperref
只需按其他顺序加载即可修复。但是,如果我添加\usepackage{titlesec}
任何地方,问题仍然存在。有人知道如何修复这个问题吗?
答案1
titlesec
不需要使用补丁。
需要选择block
的选项\titleformat
。
\documentclass[a4paper]{article}
\usepackage{showframe} % ONLY to show the margins
\usepackage[compact]{titlesec}
\titleformat{\section}[block]{\Large\bfseries\hspace*{\parindent}}{\thesection}{1em}{}
\titleformat{\subsection}[block]{\normalsize\bfseries\itshape\hspace*{\parindent}}{\thesubsection}{1em}{}
\titleformat{\subsubsection}[block]{\normalsize\bfseries\itshape\hspace*{\parindent}}{\thesubsubsection}{1em}{}
\begin{document}
\section{La increíble y triste historia de la cándida Eréndira y de su abuela desalmada}
(...)
\subsection{Die unglaubliche und traurige Geschichte
von der einfältigen Eréndira und ihrer herzlosen Großmutter}
(...)
\subsubsection{La incredibile e triste storia della candida Eréndira e della sua nonna snaturata}
(...)
\end{document}