我正在编写某种实验性法律文件,该文件可能会被大量编辑。一些法律段落引用了法律条款或段落。由于该文件将被大量编辑,这些条款和段落的编号也会发生变化。我希望我的文件万无一失,这样当文件中的引用发生变化时,引用中的编号也会随之更改。
例子 :
第 1 条 我喜欢的法律
§1 一些文本 §2 更多文本引用第 3 条第 2 款
第二条 我不喜欢的法律
§1 文字丑陋 §2 文字更加丑陋
第 3 条 我喜欢的另一项法律
§1 好文章 §2 更多好文章
几个月后,当我们完全删除了第 2 条之后,就会变成:
第 1 条 我喜欢的法律
§1 一些文本 §2 更多文本引用第 2 条第 2 款
第二条 我喜欢的另一项法律
§1 好文章 §2 更多好文章
目标是参考自动改变。
所以我认为每当添加新文章或段落时我都可以自动创建标签。标签将包含文章的标题,例如 \label{art:Another law I like},因为标题比数字更不容易改变。然后我会使用 nameref 引用它们。
以下是我的文章:
\counterwithout{subsubsection}{subsection}
\counterwithin*{subsubsection}{section}
\setsecnumdepth{subsubsection}
\newcommand{\article}{\subsubsection}
\titleformat{\subsubsection}%command
[block]%shape
{\bfseries}%format
{Art. \arabic{subsubsection}}%label
{1em}%sep
{}%before
[]%after
\titlespacing{\subsubsection}
{0em}{3ex plus 1ex minus .5ex}{10pt}
和我的段落:
\newcounter{parnum}[subsubsection]
\renewcommand{\theparnum}{\arabic{parnum}}
\newcommand{\paragraphe}[1]{%
\refstepcounter{parnum}%
~\\\indent\normalfont\textbf{\S\theparnum\space.---\space#1\quad}}
看来我的 \newcommand{\paragraphe}[1] 中的 \label{#1} 应该可以工作,但实际上却不行。标签太长了?那么 \article 呢?
这是包含我的标题结构的 MWE:
\documentclass[a4paper,12pt,british,french,twoside,footnotereset=true]{memoir}
\usepackage{times} % police Times
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\RequirePackage{titlesec}
\RequirePackage{titleps}
%%% SECTIONS %%%
% [1] sections (I)
\renewcommand{\thesection}{\Roman{section}}
\newcommand{\sectionbreak}{\clearpage}
\titleformat{\section}[frame]
{\normalfont}
{\filright
\footnotesize
\enspace SECTION \thesection\enspace}
{8pt}
{\Large\bfseries\filcenter}
% [2] titres
\setsecnumdepth{subsection}
\newcommand{\titre}{\subsection}
\titleformat{\subsection}%command
[block]%shape
{\bfseries}%format
{TITRE \arabic{subsection} :}%label
{1em}%sep
{}%before
[]%after
\titlespacing{\subsection}
{3em}{3ex plus 1ex minus .5ex}{10pt}
% [3] articles
\counterwithout{subsubsection}{subsection}
\counterwithin*{subsubsection}{section}
\setsecnumdepth{subsubsection}
\newcommand{\article}{\subsubsection}
\titleformat{\subsubsection}%command
[block]%shape
{\bfseries}%format
{Art. \arabic{subsubsection}}%label
{1em}%sep
{}%before
[]%after
\titlespacing{\subsubsection}
{0em}{3ex plus 1ex minus .5ex}{10pt}
% [4] paragraphes
\newcounter{parnum}[subsubsection]
\renewcommand{\theparnum}{\arabic{parnum}}
\newcommand{\paragraphe}[1]{%
\refstepcounter{parnum}%
~\\\indent\normalfont\textbf{\S\theparnum\space.---\space#1\quad}}
% [5] sous-paragraphes
\newcounter{subparnum}[parnum]
\renewcommand{\thesubparnum}{\arabic{subparnum}}
\newcommand{\sousparagraphe}[1]{%
\refstepcounter{subparnum}%
~\\\indent\textbf{\S\theparnum.\thesubparnum\space.---\space#1\quad}}
%%% DOC %%%
\begin{document}
\mainmatter
\section{Une section}
\titre{Un titre}
\article{Un article}
\lipsum[1]
\paragraphe{Un paragraphe}
\lipsum[1]
\sousparagraphe{Un sous-paragraphe}
\lipsum[1]
\article{Deux articles}
\titre{Deux titres}
\article{Un article}
\lipsum[1]
\article{Deux articles}
\lipsum[1]
\section{Deux sections}
\titre{Un titre}
\article{Un article}
\lipsum[1]
\article{Deux articles}
\lipsum[1]
\paragraphe{Un paragraphe}
\lipsum[1]
\titre{Deux titres}
\article{Un article}
\lipsum[1]
\article{Deux articles}
\lipsum[1]
\section{Trois sections}
\end{document}