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 \fnsymbol
Quellcode 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 numspell
standardmäßig nur mit tatsächlichen Zahlen funktioniert, während sie fmtcount
auch über eine Schnittstelle für LaTeX-Zähler verfügen.
Das fmtcount
Paket scheint implizite Unterstützung für die Geschlechter (männlich, weiblich, neutral) zu haben, während numspell
dies nur für einige explizite Sprachen der Fall ist.
Die lateinische Sprache wird von unterstützt, numspell
aber 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
tocloft
Paket 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
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}