在 titlesec 内对齐 parbox

在 titlesec 内对齐 parbox

在此处输入图片描述

在此处输入图片描述

我正在尝试制作一个在页边空白处带有章节编号的文档。我找到了一个伪解决方案,即使用llap章节编号来模拟结果。我对编号和章节的对齐方式不满意。事实上,我觉得它们根本没有对齐(见上图)。

通常,我解决这个问题的方法是通过发出命令\strut,但我无法找到在\titleformat命令中执行此操作的方法。

我该如何对齐它们呢?

梅威瑟:

\documentclass[]{article}


\usepackage{titlesec}
\usepackage{xcolor}
\usepackage{showframe}

\newlength\titleindent
\setlength\titleindent{.25in}


\titleformat{\section}% 
  {\normalfont}% 
  {}%
  {0pt}%
  {\llap{\parbox{\titleindent}{\large\thesection\strut\hfill}}\large}%
  []% 



\begin{document}

\section{MMMMmmm}


\end{document}

答案1

为什么\parbox

\documentclass[]{article}

\usepackage{titlesec}
\usepackage{showframe}

\newlength\titleindent
\setlength\titleindent{.25in}

\titleformat{\section}
  {\normalfont\large}
  {\makebox[0pt][r]{\thesection\hspace{\titleindent}}}
  {0pt}
  {}

\begin{document}

\section{MMMMmmm}

\end{document}

请注意,数字应放在第三个参数中\titleformat,这样无数字部分才能正确运行。全局字体大小应放在第二个参数中。

在此处输入图片描述

有什么问题\parbox?它的默认垂直对齐方式是c;您应该使用\parbox[t],但这是浪费资源:节号不能组成段落。

相关内容