Erstellen einer benutzerdefinierten Abschnittsnummerierung

Erstellen einer benutzerdefinierten Abschnittsnummerierung

Ich bin neu bei LaTeX. Ich möchte einen Abschnittsnummerierungsstil mit einer benutzerdefinierten Liste von Zeichenfolgen (primo, secundo, tertio…) erstellen. Nach meinem Verständnis sollte ich ungefähr so ​​vorgehen:

\renewcommand\thesection{\fnsymbol{section}}

Natürlich nicht mit \fnsymbol, sondern mit einem anderen, davon inspirierten Befehl, der meine benutzerdefinierte Liste anstelle von *, †, ‡… generiert. Das einzige Problem ist, dass ich keine Ahnung habe, wie das geht. Ich weiß nicht einmal, wo ich den \fnsymbolQuellcode des Befehls finden kann. Kann mir bitte jemand dabei helfen?

Antwort1

Um Ordinalzahlen auszuschreiben, gibt es anscheinendzwei Paketedafür geeignet:

Sie verfügen über eine leicht unterschiedliche Schnittstelle, die numspellstandardmäßig nur mit tatsächlichen Zahlen funktioniert, während sie fmtcountauch über eine Schnittstelle für LaTeX-Zähler verfügen.

Das fmtcountPaket scheint implizite Unterstützung für die Geschlechter (männlich, weiblich, neutral) zu haben, während numspelldies nur für einige explizite Sprachen der Fall ist.

Die lateinische Sprache wird von unterstützt, numspellaber nicht von fmtcount. (Ihr Beispiel scheint auf Latein zu sein.)

Hier ist ein Anfang für Italienisch. (Nahe genug?)

Beachten Sie, dass für das Inhaltsverzeichnis und für die Referenzen dasselbe Nummerierungsschema verwendet wird.

  • der Abstand wurde mit dem tocloftPaket angepasst und
  • Die Fälle der Referenzen könnten nicht stimmen.

Wenn Sie wirklich Ihre eigene Nachschlagetabelle erstellen möchten, benötigen Sie einen Befehl auf oberster Ebene (für Zähler) und einen Befehl auf niedriger Ebene, der die eigentliche Arbeit erledigt.

Hierzu können Sie das \NewNumberingScheme{<scheme>}{<look up>}Makro verwenden, das

  • \<scheme>Und
  • \@<scheme>,

ähnlich wie alle anderen funktionieren ( arabic, alph, roman, fnsymbol), wobei \@<scheme>ein Argument #1(der Wert des Zählers) angenommen wird, das in verwendet werden muss <look up>.

Ich habe ein kleines Beispiel hinzugefügt \weird, das Sie dann wie gewohnt verwenden können \fnsymbol:

\NewNumberingScheme{weird}{%
  \ifcase #1\relax zero\or eins\or second\or tertio\or viertes\or
     fifth\or another one\else more than six\fi}

\renewcommand*\thesubsection{\weird{subsection}}

Code

\documentclass[italian]{article}
\usepackage{babel}
\usepackage{fmtcount}

% Adusting Table of Contents spacing
\usepackage{tocloft}
\setlength\cftsecnumwidth{5em}
\setlength\cftsubsecnumwidth{5em}
\setlength\cftsubsubsecnumwidth{6em}

\renewcommand*{\thesection}{\Ordinalstring{section}}

\usepackage{cleveref}

% custom numbering scheme
\makeatletter
\newcommand*\NewNumberingScheme[2]{%
  \edef\@tempa{\noexpand\newcommand*\expandafter\noexpand\csname #1\endcsname[1]{%
  \noexpand\expandafter\expandafter\noexpand\csname @#1\endcsname\noexpand\csname c@####1\endcsname}%
    \noexpand\newcommand*\expandafter\noexpand\csname @#1\endcsname}%
  \@tempa[1]{#2}}
\makeatother

\NewNumberingScheme{weird}{%
  \ifcase #1\relax zero\or eins\or second\or tertio\or viertes\or
     fifth\or another one\else more than six\fi}
\renewcommand*\thesubsection{\weird{subsection}}

%%% only for blindtext
\usepackage{blindtext}% ignore warning about italian not defined:
\makeatletter\renewcommand\blind@checklanguage{}\makeatother
%%%
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\section{test}
\label{test}
This is \cref{test}.
\end{document}

Ausgabe

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Antwort2

Definieren Sie Ihre Zeichenfolge.

\documentclass{article}

\makeatletter
\NewExpandableDocumentCommand{\mynumbering}{m}{%
  \ExpandArgs{c}\@mynumbering{c@#1}%
}
\ExplSyntaxOn
\NewExpandableDocumentCommand{\@mynumbering}{m}
 {
  \int_case:nn { #1 }
   {
    {1}{primo}
    {2}{secundo}
    {3}{tertio}
    %...
   }
 }
\ExplSyntaxOff

\renewcommand{\thesection}{\mynumbering{section}}

\begin{document}

\section{First}
\section{Second}
\section{Third}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen