как добавить горизонтальную линию перед каждым разделом, управляя стилем раздела

как добавить горизонтальную линию перед каждым разделом, управляя стилем раздела

Я хочу добавить горизонтальные линии перед каждым разделом, вот так

введите описание изображения здесь

вручную я могу просто поместить \rule{\textwidth}{1pt}перед каждым разделом, но мне нужен более гибкий метод, например, поместив несколько фрагментов кода в преамбулу для управления стилем раздела, чтобы добиться этого.

решение1

Вероятно, вам не нужно правило перед первым разделом или когда раздел начинается в верхней части страницы. Следующий код выполняет это.

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}

\usepackage{lipsum}

\titleformat{\section}
  {\sectionrule\Large\bfseries}
  {\thesection}
  {1em}
  {}

% this command is executed at each \section command
\newcommand{\sectionrule}{%
  % no rule before the first section
  \ifnum\value{section}=0
  \else
    % otherwise, ensure being between paragraphs
    \par
    % add some vertical space
    \addvspace{\bigskipamount}%
    % the rule realized as leaders, so it disappears at a page break
    % see also http://tex.stackexchange.com/a/61643/4427
    \leaders\vrule width \textwidth\vskip0.4pt
    % some other vertical space
    \bigskip
  \fi
}


\begin{document}

\section{First}

\lipsum[1-3]

\section{Second}

\lipsum[2-6]\lipsum[2]\lipsum[2]

\section{Third}

\lipsum

\end{document} 

введите описание изображения здесь

Альтернативное решение: правило должно располагаться вверху страницы на случай разрыва страницы.

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}

\usepackage{lipsum}

\titleformat{\section}
  {\sectionrule\Large\bfseries}
  {\thesection}
  {1em}
  {}

\newcommand{\sectionrule}{%
    \par
    \addvspace{\bigskipamount}%
    \hrule
    \nopagebreak
    \bigskip
}

\begin{document}

\section{First}

\lipsum[1-3]

\section{Second}

\lipsum[2-6]\lipsum[2]\lipsum[2]

\section{Third}

\lipsum

\end{document}

введите описание изображения здесь

решение2

С titlesec это просто:

\documentclass{article}% http://ctan.org/pkg/amsproc

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{titlesec}

\titleformat{\section}{\vbox{\rule{\linewidth}{0.8pt}}\bigskip\LARGE\bfseries}{\thesection}{1em}{}
\begin{document}
\begin{equation}
  v = \sqrt{2gl(\cos\phi_0 - \cos \phi)}
\end{equation}
\section{Section two}

\end{document} 

введите описание изображения здесь

Связанный контент