titlesec и отступ

Oct 02 2020

Я использую titlesecпакет для форматирования разделов моей статьи. В принципе, я хочу, чтобы номер раздела был выровнен с левым полем основного текста, а заголовок раздела был выровнен с первой строкой абзаца с отступом, например:

1.    Section title
      text text text text text text text text text text text text 
text text text text text text text text text text

Я попробовал несколько решений, подобных следующему, но безуспешно. Спасибо вам за помощь.

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\setlength{\parindent}{2em}

\usepackage{titlesec} 
\titleformat{\section}{\normalfont\bfseries}{\thesection.}{\the\parindent}{}

\begin{document}
\section{Section name}
\end{document}

Ответы

1 Vincent Oct 02 2020 at 21:35

Я думаю, что самый простой способ сделать это - указать номер секции фиксированной длины, такой же, как и для определения \parindent.

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\setlength{\parindent}{1cm}

\usepackage{titlesec} 
\titleformat{\section}{\normalfont\bfseries}{\makebox[1cm][l]{\thesection.}}{0pt}{}
\titlespacing{\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}

\usepackage{lipsum}

\begin{document}
\section{Section name}
\lipsum[1]
\end{document}

Я использовал 1cmвместо 2emустановки \parindent, потому 2emчто длина заголовка раздела не будет такой же, как и в абзаце, поскольку заголовок раздела выделен жирным шрифтом. Использование \titlespacingтолько для автоматического отступа права абзаца после заголовка раздела, длины используются те по умолчанию, принятые в titlesec«s документации .