Titlesec 撤销了 etoolbox 补丁。如何使它们兼容?

Titlesec 撤销了 etoolbox 补丁。如何使它们兼容?

回答说了如何避免缩进长章节标题并获得如图所示的效果(不是我引入了这种格式,这只是我现在必须处理的格式,不幸的是标题必须如下所示):

在此处输入图片描述

\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 不需要使用补丁。

A

需要选择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}

相关内容