Titlesec 和延伸至边缘的标题

Titlesec 和延伸至边缘的标题

我想使用titlesec渐变阴影部分标题延伸到左边距。我想让部分编号和渐变延伸到左边距,但是希望章节标题文本与文档文本对齐

\documentclass{article}
\usepackage{tikz}
\usepackage[nobottomtitles*]{titlesec}
\usepackage{blindtext}
\titleformat{\section}[block]%              
    {\Large\bfseries
     \tikz[overlay] \shade[left color=black!20,right color=white] (0,-1ex) rectangle (\textwidth,1em);}%    
    {\thesection}%                   
    {3em}% <---- what do I need here???
    {}
\titlespacing*{\section}{-5em}{*1}{*1}

\begin{document}
\section{Here is my section title}
\blindtext
\end{document}

似乎我需要类似的东西5em-<sep>-<labelwidth>,但我不知道如何实现。我希望无论使用什么字体或字体大小,结果都能正常工作。

问题:如何以独立于字体的方式使章节标题文本与文档正文文本对齐?

答案1

借助以下工具构建章节标题几乎更容易:titlesecexplicit选项。这允许您使用#1的:<title>\section{<title>}

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usepackage[nobottomtitles*,explicit]{titlesec}
\usepackage{lipsum}

\titleformat{\section}[block]
  {\Large\bfseries}
  {}
  {0pt}
  {\hspace{-5em}% Move into margin
   \tikz[overlay] \shade[left color=black!20, right color=white] (0,-1ex) rectangle (\dimexpr\textwidth+5em,1em);% Set background shaded rectangle
   \makebox[5em][l]{\thesection}#1}% Set number + title

\titlespacing*{\section}{0pt}{*1}{*1}

\begin{document}

\section{Here is my section title}
\lipsum[1]

\end{document}

相关内容