Crear una numeración de sección personalizada

Crear una numeración de sección personalizada

Soy nuevo en LaTeX. Me gustaría crear un estilo de numeración de secciones usando una lista personalizada de cadenas de caracteres (primo, secundo, tertio…). Tengo entendido que debería hacer algo como esto:

\renewcommand\thesection{\fnsymbol{section}}

Sólo que no con, \fnsymbolpor supuesto, sino con otro comando inspirado en él, generando mi lista personalizada en lugar de *, †, ‡… El único problema es que no tengo idea de cómo hacerlo. Ni siquiera sé dónde encontrar el \fnsymbolcódigo fuente del comando. ¿Podría alguien ayudarme con esto, por favor?

Respuesta1

Para escribir números ordinales parece haberdos paquetesadecuado para eso:

Tienen una interfaz ligeramente diferente en la que numspellsolo funciona con números reales listos para usar y fmtcounttambién tiene una interfaz para contadores LaTeX.

El fmtcountpaquete parece tener soporte implícito para géneros (masculino, femenino, neutral), mientras que numspellsolo lo tiene para algunos lenguajes explícitos.

El idioma latino es apoyado por numspellpero no por fmtcount. (Su ejemplo parece estar en latín).

Aquí hay un comienzo para el italiano. (¿Suficientemente cerca?)

Tenga en cuenta que dado que se utiliza el mismo esquema de numeración para la tabla de contenidos y para las referencias

  • el espaciado se ha ajustado con el tocloftpaquete y
  • los casos de referencias podrían no ser correctos.

Si realmente desea crear su propia tabla de búsqueda, querrá tener un comando de nivel superior (para contadores) y un comando de bajo nivel que haga el trabajo real.

Para ello, puede utilizar la \NewNumberingScheme{<scheme>}{<look up>}macro que configura

  • \<scheme>y
  • \@<scheme>,

similar en cuanto a cómo funcionan todos los demás ( arabic, alph, roman, fnsymbol) donde \@<scheme>toma un argumento #1(el valor del contador) que debe usarse en <look up>.

Agregué un pequeño ejemplo \weirdque luego puedes usar como lo harías \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}}

Código

\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}

Producción

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Respuesta2

Defina su secuencia de cadenas.

\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}

ingrese la descripción de la imagen aquí

información relacionada