使用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}