有人能用 LaTeX 做出这个吗?
我的意思是在左侧对部分进行编号?也许,这可以通过包来实现titlesec
。或者也许还有其他方法。
答案1
以下是一些可以作为起点的代码;其思路是使用titlesec
包来定制部分单元标题;当然,根据您的需要进行必要的调整:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[explicit]{titlesec}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{lipsum}% just to generate text for the example
\definecolor{myblue}{RGB}{76,117,180}
\newlength\mylen
\setlength\mylen{4em}
\titleformat{\section}
{\normalfont\Large\sffamily}{\llap{\makebox[3\mylen]{\textcolor{myblue}{\fontsize{40}{48}\selectfont\thesection.}}}}{0em}{\makebox[\linewidth][r]{\setlength\fboxsep{10pt}\colorbox{myblue}{\parbox[b]{\dimexpr\textwidth+\mylen-2\fboxsep-2\fboxrule\relax}{\vskip1ex\textcolor{white}{\scshape#1}\vskip1ex}}}}
\titleformat{\subsection}[runin]
{\normalfont\sffamily}{\llap{\makebox[\mylen][l]{\textcolor{myblue}{\thesubsection}}\hfill}}{0em}{#1}
\titleformat{\subsubsection}[runin]
{\normalfont\sffamily}{\llap{\makebox[\mylen][l]{\textcolor{myblue}{\thesubsubsection}}\hfill}}{0em}{#1}
\titlespacing*{\subsection}
{0pt}{3.25ex plus 1ex minus .2ex}{0pt}
\titlespacing*{\subsubsection}
{0pt}{3.25ex plus 1ex minus .2ex}{0pt}
\begin{document}
\section{A Test Numbered Section with a Title Spanning Several Lines}
\subsection{}
\lipsum[4]
\subsection{}
\lipsum[4]
\subsubsection{}
\lipsum[4]
\subsubsection{}
\lipsum[4]
\subsection{}
\lipsum[4]
\end{document}
现在我重新审视这个问题,另一个选择(也许更好)是使用titlesec
(如我之前的代码)自定义 \section 标题,然后使用enumitem
包生成一个枚举列表,给出标签所需的对齐方式;这里有一个使用此方法的示例(我定义了一个只有两个嵌套级别的新枚举列表,但您可以将我的定义扩展到 10 个级别):
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[explicit]{titlesec}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage{lipsum}% just to generate text for the example
\definecolor{myblue}{RGB}{76,117,180}
\newlength\mylen
\setlength\mylen{4em}
\titleformat{\section}
{\normalfont\Large\sffamily}{\llap{\makebox[3\mylen]{\textcolor{myblue}{\fontsize{40}{48}\selectfont\thesection.}}}}{0em}{\makebox[\linewidth][r]{\setlength\fboxsep{10pt}\colorbox{myblue}{\parbox[b]{\dimexpr\textwidth+\mylen-2\fboxsep-2\fboxrule\relax}{\vskip1ex\textcolor{white}{\scshape#1}\vskip1ex}}}}
\newlist{blueenum}{enumerate}{2}
\setlist[blueenum,1]{%
label=\textcolor{myblue}{\thesection.\arabic*},
leftmargin=-10pt,labelsep=18pt,
font=\bfseries}
\setlist[blueenum,2]{
label=\textcolor{myblue}{\theblueenumi.\arabic*},
leftmargin=25pt,labelsep=35pt}
\begin{document}
\section{A Test Numbered Section with a Title Spanning Several Lines}
\begin{blueenum}
\item \lipsum[4]
\item \lipsum[4]
\begin{blueenum}
\item \lipsum[4]
\item \lipsum[4]
\end{blueenum}
\item \lipsum[4]
\end{blueenum}
\end{document}
最后一种方法还允许您轻松生成所需的变量缩进。