
Я пытаюсь создать документ с номерами разделов на полях страницы. Я нашел псевдорешение, которое заключается 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]
, но это пустая трата ресурсов: номер раздела не создает абзац.