使用 titlesec 和/或 komascript 在页边空白处添加标题编号

使用 titlesec 和/或 komascript 在页边空白处添加标题编号

使用titlesec和/或komascript如何格式化所有标题,以便数字左对齐在页边距中,标题在右侧,其下方有一条水平线(从页边距到文本宽度边缘)。

我剩下的头发都快掉光了 :(

 _____________________________
|                             |
| 3.1  Section Title          |
| -------------------------   |
|      Text width paragraph   |
|      Blah blah blah blah    |
|                             |

  >-<  >------------------<
   |                |
   `-- Margin       ` Text

答案1

这是一种使用的可能性titlesec

\documentclass{article}
\usepackage[calcwidth]{titlesec}
\usepackage{lipsum}

\newlength\mylen
\setlength\mylen{\dimexpr\oddsidemargin+1in+\hoffset\relax}

\titleformat{\section}
  {\normalfont\Large\bfseries}
  {\llap{\hspace*{-\mylen}\thesection\hfill}}{0em}{}
  [{\makebox[\linewidth][l]{%
    \hspace*{-\mylen}\rule{\dimexpr\textwidth+\mylen\relax}{1pt}}}]

\begin{document}

\section{A Test Section with a Short Title}
\lipsum[4]
\section{A Test Section with a Long Title Spanning More than One Line}
\lipsum[4]

\end{document}

在此处输入图片描述

当然,您可以调整值以\mylen获得所需的数字定位;例如,使用

\setlength\mylen{\dimexpr\oddsidemargin+\hoffset\relax}

你得到

在此处输入图片描述

答案2

警告:数字的边距框大小不是动态的。

\documentclass[10pt,twoside,letterpaper,openright]{scrbook}
\usepackage{lipsum}
\usepackage{titlesec}
\titleformat{\section}[block]%
  {\normalfont\scshape\filright}%
  {\makebox[2em][l]{\thesection}}%
  {1em}
  {}[\titlerule]
\titlespacing{\section}{-3em}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}
\begin{document}
\chapter{Lorem Ipsem}
\section{Lorem Ipsum}
\lipsum[1]
\section{Lorem Ipsum}
\lipsum[1]
\end{document}

相关内容