Problema con los paquetes acro y fancyhdr en xelatex: uso de acrónimos en los títulos de las secciones

Problema con los paquetes acro y fancyhdr en xelatex: uso de acrónimos en los títulos de las secciones

Introducción

Recientemente, tuve un problema con el acropaquete mientras escribía mi tesis con xelatex.

Mi documento usa el fancyhdrpaquete, donde configuro el título de la sección para que aparezca en el pie de página. Las letras del título de la sección aparecen en mayúsculas.

La cuestión

Me gusta usar siglas cuando puedo. Entonces, decidí usar una solicitud de acrónimo en el título de una sección, como esta:

\section{Moving Forward to Distributed \ac{sdn} Management}

Pero por alguna razón, el motor pensó que era divertido forzar todo el texto en mayúsculas en el título de la sección, transformando un \ac{sdn}en un \ac{SDN}.

Entonces, sucedió esto al pie de página del documento: pie de página extraño

Debido a esto, me acosó un acrónimo fantasma que aparecía dos veces en el archivo auxiliar:

\acro@used@once {SDN}{78}{78}{89}
\acro@used@twice {SDN}{79}{79}{90}

mientras que estas solicitudes de acrónimos fantasmas aparecieron en el registro de creación de documentos. No existían solicitudes de acrónimos en las líneas especificadas:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! acro error: "undefined"
! 
! You've requested acronym `SDN' on line 499 but you apparently haven't
! defined it, yet!
! Maybe you've misspelled `SDN'?
! 
! See the acro documentation for further information.
! 
! Type <return> to continue.
!...............................................  

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! acro error: "undefined"
! 
! You've requested acronym `SDN' on line 514 but you apparently haven't
! defined it, yet!
! Maybe you've misspelled `SDN'?
! 
! See the acro documentation for further information.
! 
! Type <return> to continue.
!...............................................  

Respuesta1

Esto no está necesariamente obligado a hacerlo fancyhdr. Lo mismo ocurre con un simple \pagestyle{headings}en la clase de artículo.

El problema es que \sectionmarklo hace \MakeUppercaseen el encabezado y, dado que \ac y amigos son comandos protegidos, los cambios \ac{sdn}conducen \ac{SDN}al mensaje de error.

  • Una “solución” obvia es definir el acrónimo con un ID en mayúscula:

     \DeclareAcronym{SDN}{...}
    

Sin embargo, cambiar esto puede ser un trabajo tedioso, dependiendo de la cantidad de acrónimos y llamadas de acrónimos en su documento. (Aunque buscar y reemplazar podría ser bastante fácil...)

  • Otra posibilidad podría ser usar el textcasepaquete que redefine \MakeUppercasepara que podamos decirle a LaTeX que no escriba en mayúsculas ciertas partes:

     \documentclass{article}
     \usepackage{acro}
     \usepackage[overload]{textcase}
    
     \DeclareAcronym{sdn}{
       short = SDN ,
       long  = some dummy nonsense
     }
    
     \pagestyle{headings}
    
     \begin{document}
    
     \section{Moving Forward to Distributed \protect\NoCaseChange{\acs*{sdn}} Management}
    
     \end{document}
    
  • Como tercera opción que no depende de la forma en que se define el estilo del título, acrose introdujo la opción case-sensitivea principios de este año (con el lanzamiento de la v2.11 el 11/01/2020) para abordar este tipo de problemas. Suponiendo que no tiene dos acrónimos diferentes, uno que se usa sdncomo ID y el otro que se usa, SDNpuede decir acroque debe tratar a ambos como iguales:

     \documentclass{article}
     \usepackage{acro}
    
     \acsetup{case-sensitive=false}
    
     \DeclareAcronym{sdn}{
       short = SDN ,
       long  = some dummy nonsense
     }
    
     \pagestyle{headings}
    
     \begin{document}
    
     \section{Moving Forward to Distributed \acs*{sdn} Management}
    
     \end{document}
    

Los dos últimos ejemplos dan

ingrese la descripción de la imagen aquí

Respuesta2

La solución

Parece que la combinación de usar el acropaquete con el fancyhdrpaquete mientras se coloca el título de la sección en el pie de página ha demostrado tener errores. Debido a esto, eliminé la \ac{sdn}solicitud del título, lo que resolvió el problema de la \ac{SDN}solicitud fantasma.

Ahora, el pie de página del documento es correcto y las solicitudes de acrónimos fantasmas han desaparecido. ingrese la descripción de la imagen aquí

información relacionada