我想用 LaTeX 排版法规和法律。为此,我需要一种方法来构建我的文档,如下所示:
- 标题
- 章节
- 部分
- [小节]
- 文章
有什么方法可以覆盖默认(或 KOMA-Script)类提供的分段命令吗?您可以在此处看到我想要实现的结构示例:https://www.boe.es/buscar/pdf/2015/BOE-A-2015-10566-consolidado.pdf
谢谢!
答案1
以下是使用 class 的建议scrartcl
:
\documentclass[english]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{babel}
\newcaptionname{english}{\Titlename}{Title}
\newcaptionname{english}{\Chaptername}{Chapter}
\newcaptionname{english}{\Sectionname}{Section}
\newcaptionname{english}{\Subsectionname}{Subsection}
\newcaptionname{english}{\Articlename}{Article}
\renewcommand\raggedpart{\centering}
\renewcommand\raggedsection{\centering}
\newcommand\entryprefix[2]{%
#1\ #2
}
\DeclareNewSectionCommand[
style=part,
level=\partnumdepth,
tocbeforeskip=2.25em plus 1pt,
tocindent=0pt,
tocnumwidth=2.3em,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Titlename}
]{Title}
\renewcommand\theTitle{\Roman{Title}}
\renewcommand\Titleformat{\Titlename~\theTitle\autodot}
\DeclareNewSectionCommand[
style=part,
level=0,
counterwithin=Title,
font=\LARGE,
prefixfont=\Large,
tocindent=1em,
tocnumwidth=2.3em,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Chaptername}
]{Chapter}
\renewcommand\theChapter{\Roman{Chapter}}
\renewcommand\Chapterformat{\Chaptername~\theChapter\autodot}
\RedeclareSectionCommand[
counterwithin=Chapter,
tocentryformat=\normalfont,
tocbeforeskip=0pt plus .2pt,
tocentryindent=2em,
tocpagenumberformat=\normalfont,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Sectionname},
toclinefill=\TOCLineLeaderFill
]{section}
\renewcommand\thesection{\arabic{section}}
\renewcommand\sectionformat{\Sectionname~\thesection\autodot\enskip}
\RedeclareSectionCommand[
tocentryindent=3em,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Subsectionname}
]{subsection}
\renewcommand\thesubsection{\arabic{subsection}}
\renewcommand\subsectionformat{\Subsectionname~\thesubsection\autodot\enskip}
\DeclareNewSectionCommand[
style=section,
level=\subsubsectionnumdepth,
beforeskip=3.25ex plus 1ex minus .2ex,
afterskip= 1.5ex plus .2ex,
indent=0pt,
font=\mdseries\slshape,
tocstyle=default,
toclevel=\subsubsectiontocdepth,
tocindent=4em,
tocnumwidth=2.3em,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Articlename}
]{Article}
\renewcommand\Articleformat{\Articlename~\theArticle\autodot\enskip}
\renewcommand\sectionlinesformat[4]{%
\ifstr{#1}{Article}
{\raggedright\textbf{\upshape#3}#4.}
{#3#4}%
}
\usepackage{lipsum}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\Title{Title level}
\Chapter{Chapter level}
\section{Section level}
\Article{An article}
\lipsum[1-3]
\Article{A second article}
\lipsum[4]
\section{Section level}
\subsection{A subsection}
\Article{An article}
\lipsum[1-3]
\subsection{Another subsection}
\Article{A second article}
\lipsum[4]
\Title{Title level}
\Chapter{Chapter level}
\section{Section level}
\Article{An article}
\lipsum[1-3]
\Article{Another article}
\lipsum[4]
\end{document}
答案2
基于 esdd 的解决方案,我建议使用 scrjura 包来排版法律文本。我的代码大部分是从 Elkes 的解决方案中窃取的,我只在 Artículo 级别进行了更改并更改了语言,因为我们必须为 Artículos 提供标题名称。
\documentclass[spanish, juratotoc=true, toc=flat]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{scrjura, libertine}
\newcaptionname{spanish}{\Titlename}{TÍTULO}
\newcaptionname{spanish}{\Chaptername}{CAPÍTULO}
\newcaptionname{spanish}{\Sectionname}{Sección}
\newcaptionname{spanish}{\Subsectionname}{Subsección}
%\newcaptionname{english}{\Articlename}{Article}
\providecaptionname{spanish}{\parname}{Artículo}
\providecaptionname{spanish}{\parshortname}{Art.}
\renewcommand{\Clauseformat}[1]{Artículo~#1.}
\setkomafont{contract.Clause}{\itshape{}}
\renewcommand\raggedpart{\centering}
\renewcommand\raggedsection{\centering}
\newcommand\entryprefix[2]{%
#1\ #2
}
\DeclareNewSectionCommand[
style=part,
level=\partnumdepth,
tocbeforeskip=2.25em plus 1pt,
tocindent=0pt,
tocnumwidth=2.3em,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Titlename}
]{Title}
\renewcommand\theTitle{\Roman{Title}}
\renewcommand\Titleformat{\Titlename~\theTitle\autodot}
\DeclareNewSectionCommand[
style=part,
level=0,
counterwithin=Title,
font=\LARGE,
prefixfont=\Large,
tocindent=1em,
tocnumwidth=2.3em,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Chaptername}
]{Chapter}
\renewcommand\theChapter{\Roman{Chapter}}
\renewcommand\Chapterformat{\Chaptername~\theChapter\autodot}
\RedeclareSectionCommand[
counterwithin=Chapter,
tocentryformat=\normalfont,
tocbeforeskip=0pt plus .2pt,
tocentryindent=2em,
tocpagenumberformat=\normalfont,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Sectionname},
toclinefill=\TOCLineLeaderFill
]{section}
\renewcommand\thesection{\arabic{section}}
\renewcommand\sectionformat{\Sectionname~\thesection\autodot\enskip}
\RedeclareSectionCommand[
tocentryindent=3em,
tocdynnumwidth,
tocentrynumberformat=\entryprefix{\Subsectionname}
]{subsection}
\renewcommand\thesubsection{\arabic{subsection}}
\renewcommand\subsectionformat{\Subsectionname~\thesubsection\autodot\enskip}
% \DeclareNewSectionCommand[
% style=section,
% level=\subsubsectionnumdepth,
% beforeskip=3.25ex plus 1ex minus .2ex,
% afterskip= 1.5ex plus .2ex,
% indent=0pt,
% font=\mdseries\slshape,
% tocstyle=default,
% toclevel=\subsubsectiontocdepth,
% tocindent=4em,
% tocnumwidth=2.3em,
% tocdynnumwidth,
% tocentrynumberformat=\entryprefix{\Articlename}
% ]{Article}
% \renewcommand\Articleformat{\Articlename~\theArticle\autodot\enskip}
% \renewcommand\sectionlinesformat[4]{%
% \ifstr{#1}{Article}
% {\raggedright\textbf{\upshape#3}#4.}
% {#3#4}%
% }
\usepackage{lipsum}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\Title{Title level}
\Chapter{Chapter level}
\section{Section level}
\begin{contract}
\Clause{title=Objeto.}
\label{CLA:objeto}
La potestad sancionadora de las Administraciones Públicas se ejercerá cuando haya
sido expresamente reconocida por una norma con rango de Ley,\dots
El ejercicio de la potestad sancionadora corresponde\dots
\Clause{title=Ámbito Subjetivo}
\label{CLA:ambito-subjetivo}
Las disposiciones de este Capítulo serán extensivas al ejercicio por las
Administraciones Públicas de su potestad disciplinaria
Las disposiciones de este capítulo no serán de aplicación al ejercicio por las
Administraciones Públicas de la potestad
\end{contract}
\section{Section level}
\subsection{A subsection}
\begin{contract}
\Clause{title=Principios generales}
\label{CLA:principios-generales}
La potestad sancionadora de las Administraciones Públicas se ejercerá cuando haya
sido expresamente reconocida por una norma con rango de Ley,\dots
El ejercicio de la potestad sancionadora corresponde\dots
Las disposiciones de este Capítulo serán extensivas al ejercicio por las
Administraciones Públicas de su potestad disciplinaria
Las disposiciones de este capítulo no serán de aplicación al ejercicio por las
Administraciones Públicas de la potestad
\Clause{title={Principios de intervención de las Administraciones Públicas para el desarrollo de
una actividad.}, tocentry={Principios de intervención}}
\label{CLA:titl-de-interv}
La potestad sancionadora de las Administraciones Públicas se ejercerá cuando haya
sido expresamente reconocida por una norma con rango de Ley,\dots
El ejercicio de la potestad sancionadora corresponde\dots
Las disposiciones de este Capítulo serán extensivas al ejercicio por las
Administraciones Públicas de su potestad disciplinaria
Las disposiciones de este capítulo no serán de aplicación al ejercicio por las
Administraciones Públicas de la potestad
\end{contract}
\end{document}