
Os relatórios jurídicos na Alemanha costumam usar uma forma um tanto estranha de estruturação. Em vez dos números habituais, temos
A.
(B., CD...) para o primeiro nível,
EU.
- Números romanos para o segundo nível
1.
números arábicos para o terceiro nível
a)
b), c), d) ... para o quarto nível e
aa)
bb), cc), dd) para o quinto nível.
Eu implementei isso no seguinte exemplo quase mínimo. Eu gostaria de ter referências abreviadas. Se você estiver lendo a seção »B.« e houver referência à subseção »B.II.«, basta imprimir »II.«. Mas se você está lendo a seção A., você precisa de »B.II.«. Se você estiver se referindo de B.II.3.a)cc) a algo em B.II.3.a)bb), a saída de \ref
obviamente não deveria ser B.II.3.a)bb), mas simplesmente bb ). Se você estiver em B.II.4., a referência deverá dizer 3.a)bb).
Mas se você estiver se referindo a algum lugar em CI1., a referência completa será necessária para B.II.3.a)bb).
Pedido especial: a solução também deve ser combinada com o pacote varioref.
A documentclass jura fornece esse tipo de referência. Mas dependo do script KOMA por vários motivos. Então tentei pegar o código do jura.dtx e adaptá-lo, mas recebo uma mensagem de erro que não entendo, veja abaixo.
Então: Posso ter referências que dependam do local onde está \ref
no texto? Toda solução é bem-vinda.
Edite a resposta de Ulrike:
Este código produz sempre um “II”. em níveis inferiores à subseção:
\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}
Este é o meu MWE anterior, agora meio obsoleto:
\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}
OK, e agora a ideia de reciclar o código do obsoleto jura.dtx
Seguindo o conselho de jknappen, tentei usar o código jura.dtx exatamente para o comportamento que gostaria de ter. Alterei o código para:
%\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}
Infelizmente, há um erro (nome do arquivo: 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>
Alguém aqui tem tempo e diversão para encontrar uma solução para um dos dois exemplos?
Responder1
Em teoria isso não é muito difícil. Você pode usar zref para armazenar todos os vários valores de seção, subseção etc. de um rótulo, e então você só precisa testar seus valores e comparar com os valores atuais e decidir o que deve acontecer.
Na prática pode ser um pouco cansativo se você realmente quiser fazer isso para todos os níveis, pois há vários testes e normalmente é necessário um grande pedaço de papel para acertar todos os ramos (nunca faço na primeira tentativa) .
\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}
Responder2
Você está ciente dopacote jura? Embora seja bastante antigo e sem suporte, ele fornece a estrutura de níveis de notas que você esboça (e vai ainda mais abaixo até os níveis indicados por α) β) e αα) ββ)
EDIT: Observe que a marcação do documento introduzida jura
(ou \usepackage{alphanum}
que contém a estrutura de níveis) é incompatível com os comandos usuais de seccionamento do LaTeX (como \section
etc.). Você deve usar o jura
estilo de seccionamento usando \toc
, \sub
, e \levelup
.
Responder3
OresponderdeUlrike Fischerme mostrou o caminho e depois de estudar por um dia inteiro encontrei a seguinte solução.
Provavelmente é o nível mais baixo de codificação que você já leu, então esteja avisado. Se alguém encontrar uma solução melhor: muito bem!
Mas sem a ajuda generosa da Ulrikes isso não teria sido possível, muito obrigado!
Alguns comentários estão em alemão, desculpe, já é tarde e duvido que amanhã entenda o que escrevi hoje! Ah, e os vários "(" inúteis nos comentários existem para deixar o Emacs feliz, que de outra forma não corresponde aos "{" e "}".
\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}