
ドイツの法務報告書では、少々変わった構成が使われることが多い。通常の数字の代わりに、
A.
(B.、CD ...)第1レベルの場合、
私。
-- 第2レベルのローマ数字
1.
第3レベルのアラビア数字
a)
b)、c)、d) ...第4レベルの場合
ああ)
第 5 レベルは bb)、cc)、dd) です。
私はこれを次のほぼ最小限の例で実装しました。 省略形の参照を使用したいと思います。 セクション »B.« を読んでいて、サブセクション »B.II.« への参照がある場合は、 »II.« を印刷するだけで十分です。 しかし、セクション A. を読んでいる場合は、 »B.II.« が必要です。 B.II.3.a)cc) から B.II.3.a)bb) 内の何かを参照している場合、出力は\ref
明らかに B.II.3.a)bb) ではなく、単に bb) である必要があります。 B.II.4. にいる場合は、参照に 3.a)bb) と記載する必要があります。
ただし、CI1 のどこかから参照する場合は、B.II.3.a)bb) への完全な参照が必要です。
特別なリクエスト: ソリューションは varioref パッケージとも連携する必要があります。
jura ドキュメントクラスは、この種の参照を提供します。しかし、私はさまざまな理由で KOMA スクリプトに依存しています。そこで、jura.dtx からコードを取得して適応させようとしましたが、理解できないエラー メッセージが表示されます (以下を参照)。
\ref
それで、テキスト内の場所に応じて参照を設定できますか? あらゆる解決策を歓迎します。
Ulrike の回答を編集:
このコードは、サブセクション以下のレベルでは常に「II.」を生成します。
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel, blindtext}
\setcounter{secnumdepth}{5} % fünf Ebenen
\renewcommand*{\thesection}{\Alph{section}.}
\renewcommand*{\thesubsection}{\Roman{subsection}.}
\renewcommand*{\thesubsubsection}{\arabic{subsubsection}.}
\renewcommand*{\theparagraph}{\alph{paragraph})}%)
\renewcommand*{\thesubparagraph}{\alph{subparagraph}\alph{subparagraph})}
\usepackage{zref-user,zref-counter}
\usepackage{expl3}
\makeatletter
\zref@newprop{section}[1]{\the\c@section}
\zref@newprop{subsection}[1]{\the\c@subsection}
\zref@addprop{main}{section}
\zref@addprop{main}{subsection}
\ExplSyntaxOn
\newcommand\myref[1]{%
\hyperref[#1]{
\int_compare:nTF
{
\zref@extractdefault {#1} {section} {0} = \the\c@section
}
{
%ref is from current section
\int_compare:nTF
{\zref@extractdefault {#1} {subsection} {0} = 0 }
{Was~nun?}
{\int_to_Roman:n{\zref@extractdefault {#1} {subsection} {0}}.}
}
{
%ref is from other section
\int_to_Alph:n {\zref@extractdefault {#1} {section} {0}}.
\int_to_Roman:n {\zref@extractdefault {#1} {subsection} {0}}
}}}
\ExplSyntaxOff
\makeatother
%\usepackage{xcolor}
\usepackage[]{hyperref}
\newcommand\Label[1]{\zlabel{#1}\label{#1}}
\begin{document}
\section{First}
\Label{sec:first}
I'm refering to the second section and I'd like to have a full
reference like this: \myref{sec:secondofsecond}.
\section{Second}
\Label{sec:second}
\myref{sec:secondofsecond}, \myref{sec:first}, \myref{sec:second} And lets test the
new references, see \myref{CLA:first-paragraph} or \myref{CLA:first-second.second}
\subsection{Firstofsecond}
\Label{sec:firstofsecond}
Text.
\subsection{Secondofsecond}
\Label{sec:secondofsecond}
Now down the tree:
\subsubsection{first of second.second}
\Label{CLA:first-second.second}
Just some letters.
\paragraph{first-paragraph}
\Label{CLA:first-paragraph}
And more text.
\end{document}
これは私の以前の MWE ですが、今では少し時代遅れになっています。
\documentclass[english, parskip=half, numbers=noendperiod]{scrartcl}
\usepackage[T1]{fontenc}\usepackage[utf8]{inputenc}
\usepackage{babel, blindtext}
\setcounter{secnumdepth}{5} % five levels
\renewcommand*{\thesection}{\Alph{section}.}
\renewcommand*{\thesubsection}{\Roman{subsection}.}
\renewcommand*{\thesubsubsection}{\arabic{subsubsection}.}
\renewcommand*{\theparagraph}{\alph{paragraph})}%)
\renewcommand*{\thesubparagraph}{\alph{subparagraph}\alph{subparagraph})}
\renewcommand*{\paragraphformat}{\theparagraph{}\enskip}
\renewcommand*{\subparagraphformat}{%
\thesubparagraph{}\enskip}
\makeatletter
\renewcommand{\p@subsection}{\thesection}
\renewcommand{\p@subsubsection}{\thesection\thesubsection}
\renewcommand{\p@paragraph}{\thesection\thesubsection\thesubsubsection}
\renewcommand{\p@subparagraph}{\thesection\thesubsection\thesubsubsection\theparagraph\,}
\makeatother{}
\begin{document}
\section{First}
\label{sec:first}
I'm refering to the second section and I'd like to have a full
reference like this: \ref{sec:secondofsecond}.
\section{Second}
\label{sec:second}
\subsection{Firstofsecond}
\label{sec:firstofsecond}
Text.
\subsection{Secondofsecond}
\label{sec:secondofsecond}
But now I'm refering to »Firstofsecond« and my readers do not need the
full reference (\ref{sec:firstofsecond}), simply »I.« would be sufficient.
From here a reference to »first of second / second« should look like
this: »1.« and not \ref{sec:first-second-second}
\subsubsection{First of second / second}
\label{sec:first-second-second}
text.
\end{document}
さて、廃止されたjura.dtxのコードを再利用するというアイデアについて
jknappen のアドバイスに従って、私が望む動作を正確に実現するために jura.dtx のコードを使用しようとしました。コードを次のように変更しました。
%\documentclass[english, parskip=half, numbers=noendperiod]{scrartcl}
\documentclass[english]{article}
\usepackage[T1]{fontenc}\usepackage[utf8]{inputenc}
\usepackage{babel, blindtext}
\setcounter{secnumdepth}{5} % fünf Ebenen
\renewcommand*{\thesection}{\Alph{section}.}
\renewcommand*{\thesubsection}{\Roman{subsection}.}
\renewcommand*{\thesubsubsection}{\arabic{subsubsection}.}
\renewcommand*{\theparagraph}{\alph{paragraph})}%)
\renewcommand*{\thesubparagraph}{\alph{subparagraph}\alph{subparagraph})}
%% Code stolen from jura.dtx
\makeatletter{}
\newcommand*{\@greek}[1]{\ifcase#1\relax\or$\alpha$\or$\beta$\or
$\gamma$\or$\delta$\or$\varepsilon$\or$\zeta$\or$\eta$\or$\vartheta$\or
$\iota$\or$\kappa$\or$\lambda$\or$\mu$\or$\nu$\or$\xi$\or$o$\or$\pi$\or
$\rho$\or$\sigma$\or$\tau$\or$\upsilon$\or$\varphi$\or$\chi$\or$\psi$\or
$\omega$\else\@ctrerr\fi}
\newcounter{lvla}
\newcounter{lvlb}
\newcounter{lvlc}
\newcounter{lvld}
\newcounter{lvle}
\newcounter{lvlf}
\newcounter{lvlg}
\newcounter{lvlh}
\newcounter{lvli}
\newcounter{lvlj}
\newcounter{lvlk}
\newcounter{lvll}
\renewcommand*{\thelvla}{\J@Number}
\renewcommand*{\thelvlb}{\J@Number}
\renewcommand*{\thelvlc}{\J@Number}
\renewcommand*{\thelvld}{\J@Number}
\renewcommand*{\thelvle}{\J@Number}
\renewcommand*{\thelvlf}{\J@Number}
\renewcommand*{\thelvlg}{\J@Number}
\renewcommand*{\thelvlh}{\J@Number}
\renewcommand*{\thelvli}{\J@Number}
\renewcommand*{\thelvlj}{\J@Number}
\renewcommand*{\thelvlk}{\J@Number}
\renewcommand*{\thelvll}{\J@Number}
\newcounter{tiefe}\setcounter{tiefe}{1}
%\setcounter{tocdepth}{12}
%\setcounter{secnumdepth}{12}
\newcommand*{\J@Number}{\J@NumberRoot{\value{tiefe}}%
\J@NumberEnd{\value{tiefe}}}
\newcommand*{\J@NumberRoot}[1]{\J@INumberRoot{#1}%
{\csname c@lvl\@alph{#1}\endcsname}}
\newcommand*{\J@INumberRoot}[2]{%
\ifcase#1\or
\@Alph{#2}\or
\@Roman{#2}\or
\@arabic{#2}\or
\@alph{#2}\or
\@alph{#2}\@alph{#2}\or
\@greek{#2}\or
\@greek{#2}\@greek{#2}\or
(\@arabic{#2})\or
(\@alph{#2})\or
(\@alph{#2}\@alph{#2})\or
(\@greek{#2})\or
(\@greek{#2}\@greek{#2})\fi}
\newcommand*{\J@NumberEnd}[1]{\ifnum#1<8\ifnum#1<4.\else)\fi\fi}
\newcommand*{\J@SetCurrent}{\xdef\@currentlabel{{\arabic{lvla}}%
{\arabic{lvlb}}{\arabic{lvlc}}{\arabic{lvld}}{\arabic{lvle}}%
{\arabic{lvlf}}{\arabic{lvlg}}{\arabic{lvlh}}{\arabic{lvli}}%
{\arabic{lvlj}}{\arabic{lvlk}}{\arabic{lvll}}}}
\ifnum\value{lvl\alph{tiefe}}=1%
\PackageWarning{alphanum}{only one subitem in level "\J@Number" ending}%
\fi
\setcounter{lvl\alph{tiefe}}{0}
\addtocounter{tiefe}{-1}
\renewcommand*{\ref}{%
\@ifstar{\@tempswatrue\J@ref}{\@tempswafalse\J@ref}}
\newcommand*{\J@ref}[1]{%
\expandafter\ifx\csname r@#1\endcsname\relax
\protect\G@refundefinedtrue
\nfss@text{\reset@font\bfseries ??}
\@latex@warning{Reference '#1' on page \thepage \space undefined}%
\else
\expandafter\J@refX\csname r@#1\endcsname
\fi
}
\newcommand*{\J@refX}[1]{\expandafter\J@refXX#1}
\newcommand*{\J@refXX}[2]{%
\ifcat_\ifnum9<1#1_\else X\fi
#1%
\else
\expandafter\J@refA#1%
\fi}
\newcommand*{\J@refA}[6]{\@tempcnta\@ne%
\J@refP1{#1}0\J@refP2{#2}{#1}\J@refP3{#3}{#2}\J@refP4{#4}{#3}%
\J@refP5{#5}{#4}\J@refP6{#6}{#5}\J@refB#6}
\newcommand*{\J@refB}[7]{\J@refP7{#2}{#1}\J@refP8{#3}{#2}%
\J@refP9{#4}{#3}\J@refP{10}{#5}{#4}\J@refP{11}{#6}{#5}%
\J@refP{12}{#7}{#6}\J@NumberEnd\@tempcnta}
\newcommand*{\J@refP}[3]{%
\if@tempswa%
\ifnum#2>0\@tempcnta#1\,\J@INumberRoot{#1}{#2}\fi
\else%
\ifnum#2=\value{lvl\@alph{#1}}%
\ifnum#1=12\PackageError{alphanum}{Self-reference detected!}{You used
a \protect\ref\space in the same section as the referenced
\protect\label\MessageBreak That makes no sense!}\fi
\else
\ifnum#2>0\@tempcnta#1\@tempswatrue\J@INumberRoot{#1}{#2}\else
\ifnum#3>0%
\@tempcnta#1\advance\@tempcnta-1\relax\J@INumberRoot{\@tempcnta}{#3}%
\fi
\fi
\fi
\fi}
\makeatother{}
\begin{document}
\section{First}
\label{sec:first}
I'm refering to the second section and I'd like to have a full
reference like this: \ref{sec:secondofsecond}.
\section{Second}
\label{sec:second}
\subsection{Firstofsecond}
\label{sec:firstofsecond}
Text.
\subsection{Secondofsecond}
\label{sec:secondofsecond}
But now I'm refering to »Firstofsecond« and my readers do not need the
full reference (\ref{sec:firstofsecond}), simply »I.« would be sufficient.
From here a reference to »first of second / second« should look like
this: »1.« and not \ref{sec:first-second-second}
\subsubsection{First of second / second}
\label{sec:first-second-second}
text.
\end{document}
残念ながら、エラーがあります (ファイル名: kurze-verweise-mwe.tex):
./kurze-verweise-mwe.tex:134: Missing number, treated as zero.
<to be read again>
I
l.134 ...ence like this: \ref{sec:secondofsecond}.
./kurze-verweise-mwe.tex:134: Missing = inserted for \ifnum.
<to be read again>
2 つの例のうちの 1 つに対する解決策を見つける時間と楽しみを持っている人はいますか?
答え1
理論的には、これはそれほど難しいことではありません。zref を使用して、ラベルのセクション、サブセクションなどのさまざまな値をすべて保存し、それらの値をテストして現在の値と比較し、何が起こるかを決定するだけで済みます。
実際には、すべてのレベルでこれを本当にやりたい場合、かなり多くのテストがあり、通常、すべてのブランチを正しく答えるには大きな紙が必要になるため、少し面倒になる可能性があります (私は最初の試みでそれをやったことはありません)。
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel, blindtext}
\setcounter{secnumdepth}{5} % fünf Ebenen
\renewcommand*{\thesection}{\Alph{section}.}
\renewcommand*{\thesubsection}{\Roman{subsection}.}
\renewcommand*{\thesubsubsection}{\arabic{subsubsection}.}
\renewcommand*{\theparagraph}{\alph{paragraph})}%)
\renewcommand*{\thesubparagraph}{\alph{subparagraph}\alph{subparagraph})}
\usepackage{zref-user,zref-counter}
\usepackage{expl3}
\makeatletter
\zref@newprop{section}[1]{\the\c@section}
\zref@newprop{subsection}[1]{\the\c@subsection}
\zref@addprop{main}{section}
\zref@addprop{main}{subsection}
\ExplSyntaxOn
\newcommand\myref[1]{%
\hyperref[#1]{
\int_compare:nTF
{
\zref@extractdefault {#1} {section} {0} = \the\c@section
}
{
%ref is from current section
\int_compare:nTF
{\zref@extractdefault {#1} {subsection} {0} = 0 }
{Was~nun?}
{\int_to_Roman:n{\zref@extractdefault {#1} {subsection} {0}}.}
}
{
%ref is from other section
\int_to_Alph:n {\zref@extractdefault {#1} {section} {0}}.
\int_to_Roman:n {\zref@extractdefault {#1} {subsection} {0}}
}}}
\ExplSyntaxOff
\makeatother
%\usepackage{xcolor}
\usepackage[]{hyperref}
\newcommand\Label[1]{\zlabel{#1}\label{#1}}
\begin{document}
\section{First}
\Label{sec:first}
I'm refering to the second section and I'd like to have a full
reference like this: \myref{sec:secondofsecond}.
\section{Second}
\Label{sec:second}
\myref{sec:secondofsecond}, \myref{sec:first}, \myref{sec:second}
\subsection{Firstofsecond}
\Label{sec:firstofsecond}
Text.
\subsection{Secondofsecond}
\Label{sec:secondofsecond}
\end{document}
答え2
あなたはご存知ですか?ジュラパッケージ? かなり古く、サポートされていないものの、あなたが描いた細かいグレードレベルの構造を提供します(さらに、α)β)およびαα)ββ)で示されるレベルまで下がります。
jura
編集: で導入された(または\usepackage{alphanum}
レベル構造を含む)ドキュメント マークアップは、通常の LaTeX セクション コマンド (など) と互換性がないことに注意してください。 、、およびを使用したセクション スタイル\section
を使用する必要があります。jura
\toc
\sub
\levelup
答え3
の答えのウルリケ・フィッシャー道を示してくれて、丸一日かけて調べた結果、次の解決策を見つけました。
おそらくこれは、あなたが読むことになる最も低レベルのコーディングなので、注意してください。誰かがもっと良い解決策を思いついたら、それは素晴らしいことです!
しかし、Ulrikes の寛大な援助がなければ、これは不可能でした。本当にありがとうございました!
コメントの一部はドイツ語です。申し訳ありませんが、もう遅いので、今日書いた内容を明日理解できるかどうかは疑問です。ああ、コメント内のさまざまな役に立たない「(」は、Emacs を満足させるためにあります。そうしないと、「{」と「}」が一致しません。
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel, blindtext}
\setcounter{secnumdepth}{5} % fünf Ebenen
\renewcommand*{\thesection}{\Alph{section}.}
\renewcommand*{\thesubsection}{\Roman{subsection}.}
\renewcommand*{\thesubsubsection}{\arabic{subsubsection}.}
\renewcommand*{\theparagraph}{\alph{paragraph})}%)
\renewcommand*{\thesubparagraph}{\alph{subparagraph}\alph{subparagraph})}
\usepackage{zref-user, zref-counter}
\usepackage{expl3}
\makeatletter
\zref@newprop{section}[1]{\the\c@section}
\zref@newprop{subsection}[1]{\the\c@subsection}
\zref@newprop{subsubsection}[1]{\the\c@subsubsection}
\zref@newprop{paragraph}[1]{\the\c@paragraph}
\zref@newprop{subparagraph}[1]{\the\c@subparagraph}
\zref@addprop{main}{section}
\zref@addprop{main}{subsection}
\zref@addprop{main}{subsubsection}
\zref@addprop{main}{paragraph}
\zref@addprop{main}{subparagraph}
\ExplSyntaxOn
\newcommand\myref[1]{%
\hyperref[#1]{%
\int_compare:nTF
{% A.-Ebene prüfen: sind wir auf dem gleichen Zweig?
\zref@extractdefault {#1} {section} {0} = \the\c@section
}
{ % Ja, wir sind auf dem gleichen Zweig
% Existiert eine weitere Ebene?
\int_compare:nTF
{\zref@extractdefault {#1} {subsection} {0} = 0}
% Wenn subsection 0 ist, also nicht existiert, dann muss section ausgegeben
% werden.
{
% \emph{Fehlerhafter Verweis}
\int_to_Alph:n {\zref@extractdefault {#1} {section} {0}}.
}
% Wenn dagegen subsection existiert, dann geht die Prüfung weiter:
{
% OK, weitere ebene existiert.
\int_compare:nTF % I.-Ebene
{
\zref@extractdefault {#1} {subsection} {0} = \the\c@subsection
}% Sind wir auf der gleichen I.-Ebene?
{% I.-Ebene: Gleiche Ebene
% Prüfung: gibt es eine weitere Ebene?
\int_compare:nTF
{\zref@extractdefault {#1} {subsubsection} {0} = 0}
{% Wenn 0, dann keine weitere Ebene und subsection ausgeben:
\int_to_Roman:n {\zref@extractdefault {#1} {subsection} {0}}.
}
{% OK, weitere Ebene existiert
\int_compare:nTF % subsubsection-Ebene
{% 1.-Ebene prüfen
\zref@extractdefault {#1} {subsubsection} {0} = \the\c@subsubsection
}
{% 1.-Ebene ist gleich
%Prüfung: gibt es eine weitere Ebene?
\int_compare:nTF % Gibt es eine a-Ebene?
{\zref@extractdefault {#1} {paragraph} {0} = 0}
{% Wenn 0, dann keine weitere Ebene und subsubsection ausgeben:
\int_to_arabic:n { \zref@extractdefault {#1} {subsubsection} {0}}.
}
{% Paragraph existiert:
\int_compare:nTF % a-Ebene prüfen
{
\zref@extractdefault {#1} {paragraph} {0} = \the\c@paragraph
}
{% a-Ebene ist gleich
% Prüfung: aa-Ebene vorhanden?
\int_compare:nTF %
{ \zref@extractdefault {#1} {subparagraph} {0} = 0}
%
{%( damit emacs happy ist
\int_to_alph:n {\zref@extractdefault {#1} {paragraph} {0} })
}
{% aa-Ebene vorhanden
\int_compare:nTF
{\zref@extractdefault {#1} {subparagraph} {0} = \the\c@subparagraph}
{\emph{Fehlerhafter VERWEIS}}
%( make emacs happy
{\int_to_alph:n { \zref@extractdefault {#1} {subparagraph} {0} }
\int_to_alph:n { \zref@extractdefault {#1} {subparagraph} {0} })
}
}
}
{% a-Ebene ist unterschiedlich (
\int_to_alph:n{\zref@extractdefault {#1} {paragraph} {0}})
}
}
}
{% 1.-Ebene ist unterschiedlich
\int_to_arabic:n{\zref@extractdefault {#1} {subsubsection} {0}}.
}
}% 3. Klammer Prüfung, ob subsection existiert (also wenn ja)
}
{% I.-Ebene: ungleich
% Also römische Nummer ausgeben
\int_to_Roman:n{\zref@extractdefault {#1} {subsection} {0}}.%
\int_compare:nTF%existiert die nächste Ebene?
{ \zref@extractdefault {#1} {subsubsection} {0} = 0 }
{}% = 0, subsubsection nicht vorhanden
{% ungleich 0
% also arabische Zahl ausgeben
\int_to_arabic:n { \zref@extractdefault {#1} {subsubsection} {0}}.
\int_compare:nTF%existiert die nächste Ebene paragraph?
{ \zref@extractdefault {#1} {paragraph} {0} = 0 }
{}% = 0, subsubsection nicht vorhanden
{% ungleich 0 (
\int_to_alph:n { \zref@extractdefault {#1} {paragraph} {0}})
}
% subpar Ebene vorhanden?
\int_compare:nTF
{ \zref@extractdefault {#1} {subparagraph} {0} = 0}
{}% ja, also existiert subpar nicht
{ %(
\int_to_alph:n {\zref@extractdefault {#1} {subparagraph} {0}}
\int_to_alph:n {\zref@extractdefault {#1} {subparagraph} {0}})
}
}
}% 3. Klammer I.-Ebene
}% 3. Klammer Prüfung, ob I. Ebene besteht.
}% 2. Klammer A.-Ebene
{% A.-Ebene: Ungleich
%ref is from other section
\int_to_Alph:n {\zref@extractdefault {#1} {section} {0}}.
\int_compare:nTF%existiert die nächste Ebene?
{ \zref@extractdefault {#1} {subsection} {0} = 0 }
{}% ja, erfüllt, keine subsection
{% subsection existiert:
\int_to_Roman:n {\zref@extractdefault {#1} {subsection} {0}}.
\int_compare:nTF%existiert die nächste Ebene?
{ \zref@extractdefault {#1} {subsubsection} {0} = 0 }
{}% = 0, subsubsection nicht vorhanden
{% ungleich 0
\int_to_arabic:n { \zref@extractdefault {#1} {subsubsection} {0} }.
\int_compare:nTF%existiert die nächste Ebene paragraph?
{ \zref@extractdefault {#1} {paragraph} {0} = 0 }
{}% = 0, paragraph nicht vorhanden
{% ungleich 0 (
\int_to_alph:n { \zref@extractdefault {#1} {paragraph} {0} })
\int_compare:nTF
{ \zref@extractdefault {#1} {subparagraph} {0} = 0}
{}% ja, also existiert subpar nicht
{% (
\int_to_alph:n {\zref@extractdefault {#1} {subparagraph} {0}}
\int_to_alph:n {\zref@extractdefault {#1} {subparagraph} {0}})
}
}
}
}
}% 3. Klammer A.-Ebene
}% hyperref Klammer zu
}%Ende Befehlsdefinition myref
\ExplSyntaxOff
\makeatother
\usepackage[]{hyperref}
\newcommand\Label[1]{\zlabel{#1}\label{#1}}
\begin{document}
\textbf{Präambel}
\begin{enumerate}
\item Reference to first section: \myref{sec:first}
\item Reference to second section: \myref{sec:second}
\item Reference to snd section / first subsection: \myref{sec:firstofsecond}
\item Ref. to snd sect. / second subsect: \myref{sec:secondofsecond}
\item Ref to snd sect. / second subsect / first arabic:
\myref{CLA:first-second.second}
\item Ref. to snd sect. / second subsect / first arabic / second par:
\myref{CLA:second-paragr}
\item Subparagraph: \myref{CLA:first-sub}
\end{enumerate}
\section{First}
\Label{sec:first}
Sytematically:
\begin{enumerate}
\item Reference to this section should display a warning: \myref{sec:first}.
\item Reference to next section: \myref{sec:second}
\item Reference to next section / first subsection: \myref{sec:firstofsecond}
\item Ref. to next sect. / second subsect: \myref{sec:secondofsecond}
\item Ref to next sect. / second subsect / first arabic:
\myref{CLA:first-second.second}
\item Ref. to next sect. / second subsect / first arabic / second par:
\myref{CLA:second-paragr}
\item Subparagraph: \myref{CLA:first-sub}
\end{enumerate}
\section{Second}
\Label{sec:second}
Sytematically:
\begin{enumerate}
\item Reference to previous section: \myref{sec:first}.
\item Reference to this section should display a warning: \myref{sec:second}
\item Reference to this section / first subsection: \myref{sec:firstofsecond}
\item Ref. to this sect. / second subsect: \myref{sec:secondofsecond}
\item Ref to this sect. / second subsect / first arabic:
\myref{CLA:first-second.second}
\item Ref. to this sect. / second subsect / first arabic / second par:
\myref{CLA:second-paragr}
\item Subparagraph: \myref{CLA:first-sub}
\end{enumerate}
\subsection{Firstofsecond}
\Label{sec:firstofsecond}
Sytematically:
\begin{enumerate}
\item Reference to previous section: \myref{sec:first}.
\item Reference to this section: \myref{sec:second}
\item Reference to this section / first subsection: \myref{sec:firstofsecond}
\item Ref. to this sect. / second subsect: \myref{sec:secondofsecond}
\item Ref to this sect. / second subsect / first arabic:
\myref{CLA:first-second.second}
\item Ref. to this sect. / second subsect / first arabic / second par:
\myref{CLA:second-paragr}
\item Subparagraph: \myref{CLA:first-sub}
\end{enumerate}
\subsection{Secondofsecond}
\Label{sec:secondofsecond}
Now down the tree:
\subsubsection{first of second.second}
\Label{CLA:first-second.second}
Just some letters.
\paragraph{first-paragraph}
\Label{CLA:first-paragraph}
And more text. Ref to next paragraph, should be a b): \myref{CLA:second-paragr}
\begin{enumerate}
\item Reference to previous section: \myref{sec:first}.
\item Reference to this section: \myref{sec:second}
\item Reference to this section / first subsection: \myref{sec:firstofsecond}
\item Ref. to this sect. / second subsect: \myref{sec:secondofsecond}
\item Ref to this sect. / second subsect / first arabic:
\myref{CLA:first-second.second}
\item Ref. to this sect. / second subsect / first arabic / second par:
\myref{CLA:second-paragr}
\item Subparagraph: \myref{CLA:first-sub}
\end{enumerate}
\paragraph{second paragr}
\Label{CLA:second-paragr}
\begin{enumerate}
\item Reference to previous section: \myref{sec:first}.
\item Reference to this section: \myref{sec:second}
\item Reference to this section / first subsection: \myref{sec:firstofsecond}
\item Ref. to this sect. / second subsect: \myref{sec:secondofsecond}
\item Ref to this sect. / second subsect / first arabic:
\myref{CLA:first-second.second}
\item Ref. to this sect. / second subsect / first arabic / second par:
\myref{CLA:second-paragr}
\end{enumerate}
\subparagraph{first sub}
\Label{CLA:first-sub}
\begin{enumerate}
\item Reference to previous section: \myref{sec:first}.
\item Reference to this section: \myref{sec:second}
\item Reference to this section / first subsection: \myref{sec:firstofsecond}
\item Ref. to this sect. / second subsect: \myref{sec:secondofsecond}
\item Ref to this sect. / second subsect / first arabic:
\myref{CLA:first-second.second}
\item Ref. to this sect. / second subsect / first arabic / second par:
\myref{CLA:second-paragr}
\item Subparagraph: \myref{CLA:first-sub}
\end{enumerate}
dsfsdf
\subsubsection{Last one}
\Label{CLA:last-one}
text
\paragraph{paragraph somewhere}
\Label{CLA:paragraph-somewhere}
OK, the par above should display a). And now we refer to the next subpar:
\myref{CLA:second-subpar}.
And now a subpar:
\subparagraph{second subpar}
\Label{CLA:second-subpar}
text
\subparagraph{third subpar}
\end{document}