¿Cómo cambiar la forma en que se presenta un contador en función de su valor?

¿Cómo cambiar la forma en que se presenta un contador en función de su valor?

Necesito un entorno donde la forma en que se presenta el contador del entorno cambie según el valor del contador. Si el contador es menor que 10 debe ir seguido de la marca ordinal “º”, de lo contrario se imprime sin ella.

Intenté usar los paquetes amsthmy ifthenpara hacer esto:

\newtheorem{artigo}{Art.}
\renewcommand{\theartigo}{%
\ifx\artigo<10%
\arabic{artigo}º%
\else%
\arabic{artigo}%
\fi%
}

Pero no funciona, aparece “Art. 1”, en lugar de “Art. 1º”, cuando uso el ambiente artigo.

¿Qué estoy haciendo mal?

Respuesta1

La prueba de valores enteros se realiza con

\ifnum counter value [relation] number ... \else ... \fi

es decir

\ifnum\value{artigo} < 10
  true branch
\else
  false branch
\fi

Alternativamente se puede utilizar

\makeatletter
\renewcommand{\theartigo}{%
  \ifnum\c@artigo<10
    \arabic{artigo}º%
  \else
    \arabic{artigo}
  \fi
}
\makeatother

para deshacerse de la \value{artigo}macro, pero tiene un precio de \makeatletter...\makeatother, por lo que no se ahorra al escribir ;-) ( \c@artigoes la macro del contador interno la que contiene el valor del contador)

\documentclass{article}

\usepackage[utf8]{inputenc}



\newtheorem{artigo}{Art.}
\renewcommand{\theartigo}{%
  \ifnum\value{artigo}<10
    \arabic{artigo}º%
  \else
    \arabic{artigo}%
  \fi
}

\begin{document}

\begin{artigo}
Foo
\end{artigo}

\setcounter{artigo}{9}
\begin{artigo}
Foo again
\end{artigo}


\end{document}

ingrese la descripción de la imagen aquí

información relacionada