Paquete acro, palabra género femenino y masculino en francés

Paquete acro, palabra género femenino y masculino en francés

Estoy escribiendo un documento en francés y tengo que lidiar con las formas de género de las palabras con el acropaquete. Me gustaría producir algo como

tridimensionnelles (3D) (una forma femenina) o bidimensionnel (2D) (para una forma masculina)

Con el código:

\documentclass[12pt,twoside,openright]{book}
\usepackage[version=3]{acro} %list of abbreviations

\acsetup{
    list/template = longtable,
    list/display = used,
    uppercase/list,
    format/alt
}
\DeclareAcronym{2d}{
    short   = 2D,
    long    = bidimensionnel,
    alt-format = tridimensionnelles}
\DeclareAcronym{3d}{
    short   = 3D,
    long    = tridimensionnel,
    alt = tridimensionnelles}

\begin{document}
\ac{2d} is masculine gender form.
\newline
\aca{3d} is the feminine gender form, but there is not the short form (3D).
\end{document}

Puedo producir texto como

ingrese la descripción de la imagen aquí

Pero el 3D entre paréntesis no aparece.

¿Tiene alguna idea para abordar las formas de género con el acropaquete?

Respuesta1

acrotiene interfaces para definir nuevas propiedades arbitrarias \DeclareAcroPropertyy nuevos comandos que \NewAcroCommandse detallan en la documentación en las secciones29. Propiedadesy30. Comandos de siglas propias.

Sin embargo, para definir múltiples propiedades y una interfaz interna, creo que \DeclareAcroEndingse puede abusar ligeramente con buenos resultados. \DeclareAcroEnding{feminine}{}{}define *-femininey *-feminine-formequivale a *-pluraly *-plural-formque están inicialmente vacíos. Cuando la forma femenina difiere mediante letras adjuntas a la forma masculina long-feminine=les, se puede establecer, o cuando difiere más sustancialmente, long-feminine-form=tridimensionellesse puede utilizar para indicarlo en su totalidad.

Luego necesitamos agregar nuevas \acvariantes para aplicar estas propiedades, por ejemplo

\NewAcroCommand \acF {m}
  { \acrofeminine \UseAcroTemplate {first} {#1} }
\NewAcroCommand \AcF {m}
  { \acrofeminine \acroupper \UseAcroTemplate {first} {#1} }

(tenga en cuenta que estoy usando Fpara evitar chocar con el ya existente\acf comandos de tipo ya existentes que fuerzan la apariencia completa). Otras variantes deben definirse explícitamente individualmente, pero pueden basarse en las definiciones encontradas.en la fuente.

\documentclass[12pt,twoside,openright]{book}
\usepackage{acro}[=v3]

\DeclareAcroEnding{feminine}{}{}

\DeclareAcronym{2d}{
    short   = 2D,
    long    = bidimensionnel,
    long-feminine=les,
}
\DeclareAcronym{3d}{
    short   = 3D,
    long    = tridimensionnel,
    long-feminine-form=tridimensionnelles,
}

\NewAcroCommand \acF {m}
  { \acrofeminine \UseAcroTemplate {first} {#1} }
\NewAcroCommand \AcF {m}
  { \acrofeminine \acroupper \UseAcroTemplate {first} {#1} }

\begin{document}
\ac{2d} \acreset{2d} \acF{2d}

\acF{3d} \acreset{3d} \ac{3d}

\printacronyms[heading=none]
\end{document}

Salida de código

Para el plural femenino, creo que tenemos que declarar una terminación separada \DeclareAcroEnding{feminineplural}{s}{s}usando el mismo valor predeterminado que para la pluralterminación. Desafortunadamente, no veo cómo podemos heredar las feminineterminaciones, por lo que esto requerirá cierta duplicación, incluso si al plural solo se le agrega una s.

\documentclass[12pt,twoside,openright]{book}
\usepackage{acro}[=v3]

\DeclareAcroEnding{feminine}{}{}
\DeclareAcroEnding{feminineplural}{s}{s}

\DeclareAcronym{2d}{
    short   = 2D,
    long    = bidimensionnel,
    long-feminine=les,
    long-feminineplural=less
}

\NewAcroCommand \acpF {m}
  { \acrofeminineplural \UseAcroTemplate {first} {#1} }

\begin{document}
\acp{2d} \acreset{2d} \acpF{2d}

\printacronyms[heading=none]
\end{document}

Salida de código


Probablemente se podría construir una interfaz un poco mejor que la explotación \DeclareAcroEnding, pero no sin una gran cantidad de código repetitivo o sin depender de la expl3interfaz.

Respuesta2

La solución perezosa, cuando se tiene un acrónimo que puede tomar dos formas que difieren arbitrariamente (ya sea en uno o en todos los cortos/largos/primeros/plurales/etc.), es definir dos acrónimos estrechamente conectados.

La uselistpropiedad de una sigla permite las siglas 2dy 2dBpermite 2dconsiderarse usada si 2dBse ha usado, aunque no se haya usado, y viceversa.

\DeclareAcronym{2d}{
    short   = 2D,
    long    = bidimensionnel,
    uselist = {2dB},
}
\DeclareAcronym{2dB}{
    short   = 2D,
    long    = bidimensionnelB,
    uselist = {2d},
}

Las dos siglas pueden diferir tanto o tan poco (incluso nada si es necesario) y dentro del texto no compartirán un primer uso común. Esto puede ampliarse a un número arbitrario de siglas si es necesario.

Sin embargo, existen algunas advertencias al combinar acrónimos como este:

  • El restablecimiento del uso sigue siendo local para el acrónimo, \acreset{2d}solo se restablecerá 2dmientras, si se ha utilizado, 2dBaún recordará que se utilizó.

  • \acsetup{single=true}dará un comportamiento inesperado si se usan ambos pero uno de ellos solo se usa una vez.

  • Como tenemos dos acrónimos, enumeraremos \printacronymsambos a menos que su forma de lista sea idéntica (por ejemplo, si comparten una forma corta/larga pero difieren en las propiedades plurales). Esto se puede resolver etiquetando una de las siglas y usando excludeen\printacronyms

    \DeclareAcronym{2d}{
        short   = 2D,
        long    = bidimensionnel,
        uselist = {2dB},
    }
    \DeclareAcronym{2dB}{
        short   = 2D,
        long    = bidimensionnelB,
        uselist = {2d},
        tag = {B-form},
    }
    
    \begin{document}
    \ac{2d}    
    \ac{2dB}
    
    \printacronyms[heading=none,exclude={B-form}]
    \end{document}
    

    sin embargo, esto también puede tener consecuencias inesperadas si solo 2dBtermina usándose en el documento y \acsetup{list/display=used}se configura.

información relacionada