
Cuando utilizo linguex
el empaquetado de numeración de ejemplo, si lo uso \defaultfontfeatures{Numbers=OldStyle}
con xetex o luatex, con ciertos números de ejemplo superiores a 99, no hay espacio entre el número de ejemplo y el texto:
Ejemplo mínimo (con puntos suspensivos de ejemplos repetidos reales necesarios para llevar la numeración a más de 99):
\documentclass{article}[12pt]
\usepackage{fontspec}
\defaultfontfeatures{Numbers=OldStyle}
\setmainfont{Junicode}
\usepackage{linguex}
\begin{document}
\ex. Hello, world! Quit. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
....
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\end{document}
Aparte de no utilizar números antiguos, ¿hay alguna forma de solucionar este problema? Intenté jugar con diferentes valores para Linguex \Exlabelwidth
, pero ninguno de los valores pareció hacer ninguna diferencia.
Respuesta1
La fuente del problema
El problema se debe al hecho de que la fuente Junicode tiene números de estilo antiguo proporcionales verdaderos, mientras que algunas otras fuentes tienen números de estilo antiguo de ancho fijo y números de estilo antiguo proporcionales. El linguex
paquete establece una longitud interna que es múltiplo del dígito de ancho más pequeño en la fuente actual. El dígito de ancho más pequeño en la fuente Junicode es 1
, y resulta ser demasiado pequeño en relación con algunos de los otros anchos de números en la fuente, por lo que el cálculo del espaciado entre etiquetas se desvía.
Podemos ver esto en acción comparando el ancho de los números de estilo antiguo de Junicode con la fuente Linux Libertine que tiene ambos tipos. Con los números proporcionales de estilo antiguo surge el problema, pero con los números de ancho fijo de estilo antiguo no. (Gracias a Jason por señalar esto).
\documentclass[varwidth]{standalone}
\usepackage{fontspec}
\newfontfamily\Junicode[Numbers=OldStyle]{Junicode}
\newfontfamily\LibertineFixed[Numbers=OldStyle]{Linux Libertine O}
\newfontfamily\LibertineProportional[Numbers={OldStyle,Proportional}]{Linux Libertine O}
\usepackage{linguex}
\usepackage{pgffor}
\newlength{\tmplen}
\newcommand{\displaywidthof}[1]
{\settowidth{\tmplen}{#1}\parbox{.8in}{#1: \the\tmplen}}
\begin{document}
\foreach \x in {Junicode,LibertineProportional,LibertineFixed}{
\csname\x\endcsname
\x
\foreach \y in {0,...,9}{
\displaywidthof{\y}
}
\setcounter{ExNo}{99}
\ex. XXX.
\ex. YYY.
}
\end{document}
La solución al problema
Afortunadamente, hay una manera de solucionar este problema: algunos comandos no documentados en el paquete le permiten establecer anchos para el espaciado de las etiquetas. El autor de linguex
sugerencias sobre el problema en la documentación.
Espero que las fuentes cooperen manteniendo al mínimo la diferencia entre el ancho de los dígitos. De lo contrario, podrías experimentar un comportamiento extraño
\Exlabelwidth
De hecho, ayudé a resolver un problema similar con otra fuente que fue la razón original de este código. El comando:
\philabeldefault
hace lo siguiente:
\renewcommand{\philarge}{4\mindigitwidth}
\renewcommand{\philmiddle}{3\mindigitwidth}
\renewcommand{\philsmall}{2\mindigitwidth}}
Donde los números aquí son los multiplicadores de centenas, decenas y unidades respectivamente. Observe que los multiplicadores son diferentes para cada conjunto, lo que dará como resultado un espaciado no uniforme.
Entonces, una forma de solucionar el problema es simplemente cambiar el multiplicador por la \philarge
longitud:
\renewcommand{\philarge}{4.5\mindigitwidth}
funciona bien.
Sin embargo, también puedes dar una longitud fija para las tres longitudes usando el comando:
\phlabelwidth
Quizás esta sea una mejor solución. Entonces configurando
\phlabelwidth{1.4em}
resuelve muy bien el problema.
\documentclass{article}[12pt]
\usepackage{fontspec}
\defaultfontfeatures{Numbers=OldStyle}
\setmainfont{Junicode}
\usepackage{linguex}
\phlabelwidth{1.4em}
\begin{document}
\ex. Hello, world! Quit. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\setcounter{ExNo}{9}
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\setcounter{ExNo}{99}
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\ex. Hello, world! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
\end{document}