我想使文章类文档中的章节标题变为多行并在其边缘带有标签。
我使用了两个框:一个用于标签,另一个用于文本,以强制其拆分。
\documentclass[a4paper,11pt]{article}
\usepackage[explicit]{titlesec}
\titleformat{\section}
{\fontsize{28}{24}\headingfont}%format
{\makebox[0pt][r]{%
\headingfontlight\thesection\hskip 9pt}}%
{0pt}
{\makebox[\dimexpr\linewidth][l]{%
\parbox{\dimexpr\textwidth+\marginparwidth+\marginparsep\relax}
{\raggedright #1}}}
该代码运行良好,但有一个问题:部分标签被放置在标题框的中心而不是其顶部。
任何想法都将不胜感激。
答案1
使用\parbox[t]
。不要使用explicit
选项titlesec
,总有一天你会后悔的:定义一个单独的宏比破坏 的最后一个参数要干净得多\titleformat
。
\documentclass[a4paper,11pt]{article}
\usepackage{titlesec}
\titleformat{\section}
{\fontsize{28}{24}\headingfont}%format
{\makebox[0pt][r]{\headingfontlight\thesection\hskip 9pt}}%
{0pt}
{\printsectiontitle}
\newcommand{\printsectiontitle}[1]{%
\makebox[\dimexpr\linewidth][l]{%
\parbox[t]{\dimexpr\textwidth+\marginparwidth+\marginparsep\relax}
{\raggedright #1}%
}%
}
\let\headingfont\selectfont % just for the example
\let\headingfontlight\relax
\begin{document}
\section{Some long long long long long long long long long long long long heading}
\end{document}
将标题设置为 28pt 并将基线跳过 24pt 的目的是什么?只是为了使线条太近且间距不均匀?