comportamiento extraño de \ fontseries

Oct 26 2020

En el siguiente MWE, "Lorem ipsum" debería ser ligero, pero obtienes el peso normal.

%\RequirePackage[2019/10/01]{latexrelease}
\documentclass{article}
  
\begin{document}

\fontseries{l}\fontfamily{NotoSans-TLF}\selectfont Lorem ipsum

\end{document}

La advertencia dice:

LaTeX Font Warning: Font shape `OT1/cmr/l/n' undefined
(Font)              using `OT1/cmr/m/n' instead on input line 6.

Aparentemente, LaTeX prueba OT1 / cmr / l / n (que no existe), sustituye OT1 / cmr / m / n, y finalmente obtienes OT1 / NotoSans-TLF / m / n.

Si usa \RequirePackage[2019/10/01]{latexrelease}(esto cancela los cambios de NFSS de LaTeX 2020-02-02), obtiene la serie ligera como se esperaba.

Observaciones adicionales:

  • Si pides \fontseries{sb}, obtienes en su blugar.
  • Si pides \fontseries{c}, obtienes en su mlugar.
  • Si usted pide ul, el, m, b, ebo ub, se obtiene la serie fuente solicitada. (Esto es muy confuso porque, por ejemplo, OT1 / cmr / ul / n tampoco existe)
  • Si usa \fontfamily{NotoSans-TLF}\fontseries{l}\selectfont Lorem ipsumen su lugar, obtiene la serie de fuentes solicitada.
  • El mismo problema ocurre con otras fuentes.

Respuestas

6 egreg Oct 26 2020 at 18:19

Los atributos de fuente se cambian en el orden

\fontencoding
\fontfamily
\fontshape
\fontseries
\fontsize

Entonces, lo que sucede con su entrada es que primero se cambia la forma a l, que Computer Modern no ha cambiado , por lo que se sustituye por la predeterminada m.

Usando el orden correcto, la salida es la esperada:

\documentclass{article}

\begin{document}

\fontfamily{NotoSans-TLF}\fontseries{l}\selectfont Lorem ipsum

\end{document}

Lo más importante es tener la declaración de la familia al principio, porque esto hará que LaTeX lea el archivo de definición de fuente (si aún no lo ha hecho) para que se conozcan los otros atributos posibles.

6 UlrikeFischer Oct 26 2020 at 18:43

La diferencia entre la serie uly la les que el kernel de LaTeX tiene una regla para el m/lcambio:

\DeclareFontSeriesChangeRule {m}{l}{l}{m}

Esta regla significa que si m(primer argumento) es la serie actual y lse solicita (segundo argumento), lse intenta (tercer argumento) y si no existe, la serie vuelve a m(cuarto argumento).

Como escribió egreg, está intentando cambiar la serie mientras cmraún está activa, por lo que, como no tiene l-serie, mes forzado.

Puede obtener un efecto similar ulsi también declara una regla:

\documentclass{article}

\begin{document}

{ \fontseries{ul}\fontfamily{NotoSans-TLF}\selectfont Lorem ipsum }

\DeclareFontSeriesChangeRule {m}{ul}{ul}{m}

{ \fontseries{ul}\fontfamily{NotoSans-TLF}\selectfont Lorem ipsum }

\end{document}  

Puede evitar el retroceso meliminando el cuarto argumento de la regla:

\documentclass{article}

\DeclareFontSeriesChangeRule {m}{l}{l}{}
\begin{document}

\fontseries{l}\fontfamily{NotoSans-TLF}\selectfont Lorem ipsum 

\end{document}