Estou tentando produzir um documento com números de seção na margem da página. Encontrei uma pseudo-solução que llap
é a numeração das seções para imitar o resultado. Não estou satisfeito com a forma como o número e a seção se alinham. Na verdade, acho que eles não se alinham (veja as fotos acima).
Normalmente, meu método preferido para resolver isso é emitindo o \strut
comando, mas não consegui descobrir uma maneira de fazer isso dentro do \titleformat
comando.
Como posso alinhá-los de qualquer maneira?
MWE:
\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}
Responder1
Por que um \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}
Observe que o número deve ir no terceiro argumento para \titleformat
, para que inúmeras seções se comportem corretamente. O tamanho da fonte global deve estar no segundo argumento.
Qual é o problema \parbox
? Que seu alinhamento vertical padrão é c
; você deveria ter usado \parbox[t]
, mas é um desperdício de recursos: o número da seção não forma um parágrafo.