¡La expansión de microtipo se desactiva cuando se cambia el tamaño de fuente! (lualatex)

¡La expansión de microtipo se desactiva cuando se cambia el tamaño de fuente! (lualatex)

Parece que la expansión del microtipo se desactiva cuando se cambia el tamaño de fuente del tamaño de fuente predeterminado. Aquí hay dos fragmentos de código, en el primero la expansión funciona, en el segundo no (como si al microtipo nunca se le hubieran dado opciones de estirar y reducir).

Obras:

% main.tex
\documentclass[9pt]{extarticle}
\usepackage[english]{babel}
\usepackage{color}
\usepackage{blindtext}
\usepackage{multicol}
\definecolor{textblack}{RGB}{26,25,25}
\usepackage{fontspec}
\usepackage[expansion=true,stretch=500,shrink=500]{microtype}
\setmainfont[Ligatures=TeX,Renderer=Basic]{Warnock Pro}
\sloppy
\begin{document}
    \color{textblack}
    \fontsize{9pt}{12pt}\selectfont
    \begin{multicols}{3}
        \blindtext[10]
    \end{multicols}
\end{document}

Dominio:

>> lualatex main.tex

Producción: obras de ampliación

No funciona:

%main.tex
\documentclass[9pt]{extarticle}
\usepackage[english]{babel}
\usepackage{color}
\usepackage{blindtext}
\usepackage{multicol}
\definecolor{textblack}{RGB}{26,25,25}
\usepackage{fontspec}
\usepackage[expansion=true,stretch=500,shrink=500]{microtype}
\setmainfont[Ligatures=TeX,Renderer=Basic]{Warnock Pro}
\sloppy
\begin{document}
    \color{textblack}
    \fontsize{8.8pt}{12pt}\selectfont
    \begin{multicols}{3}
        \blindtext[10]
    \end{multicols}
\end{document}

Dominio:

>> lualatex main.tex

Producción: la expansión no funciona Sugiera si esto se puede solucionar y cómo, o si hay un problema con mi código.

Gracias,

Un hombre

Respuesta1

microtype configura la expansión de fuente solo para un conjunto restringido de tamaños de fuente. Si agrega su tamaño a la lista, funciona (redefinir el texto básico probablemente no sea la mejor manera de hacerlo):

\documentclass{article}
\usepackage[english]{babel}
\usepackage{color}
\usepackage{blindtext}
\usepackage{multicol}
\definecolor{textblack}{RGB}{26,25,25}
\usepackage{fontspec}
\usepackage[expansion=true,stretch=500,shrink=500]{microtype}
\DeclareMicrotypeSet*{basictext}
{ encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TU},
 family = {rm*,sf*},
 series = {md*},
 size = {normalsize,footnotesize,small,large,9.1} %added 9.1
}
\setmainfont[Ligatures=TeX]{Arial}
\begin{document}
    \fontsize{9.1pt}{12pt}\selectfont
    \begin{multicols}{3}
        \blindtext[10]
    \end{multicols}
\end{document}

También puede eliminar la restricción, por ejemplo, utilizando otro conjunto distinto al predeterminado:

\documentclass{article}
\usepackage[english]{babel}
\usepackage{color}
\usepackage{blindtext}
\usepackage{multicol}
\definecolor{textblack}{RGB}{26,25,25}
\usepackage{fontspec}
\usepackage[expansion=true,stretch=500,shrink=500]{microtype}
\UseMicrotypeSet[expansion]{alltext}
\setmainfont[Ligatures=TeX]{Arial}
\begin{document}
    \fontsize{9.1pt}{12pt}\selectfont
    \begin{multicols}{3}
        \blindtext[10]
    \end{multicols}
\end{document}

O incluso más conciso, pasando expansion=alltextcomo una opción de paquete mientras se carga microtipo:

\documentclass{article}
\usepackage[english]{babel}
\usepackage{color}
\usepackage{blindtext}
\usepackage{multicol}
\definecolor{textblack}{RGB}{26,25,25}
\usepackage{fontspec}
\usepackage[expansion=alltext,stretch=500,shrink=500]{microtype}% expansion=all would also work as that set too does not have restrictions on size, and is the least restrictive of all predefined sets
\setmainfont[Ligatures=TeX]{Arial}
\begin{document}
    \fontsize{9.1pt}{12pt}\selectfont
    \begin{multicols}{3}
        \blindtext[10]
    \end{multicols}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Para ser sincero, no sé por qué la gente consume microtypenada. Por supuesto, tiene algunas interfaces agradables como textls, pero para ampliar puedo lograr lo mismo con dos líneas de Lua y una función de fuente. Esto tampoco tiene el problema del tamaño de fuente.

%main.tex
\documentclass[9pt]{extarticle}
\usepackage[english]{babel}
\usepackage{color}
\usepackage{blindtext}
\usepackage{multicol}
\definecolor{textblack}{RGB}{26,25,25}
\usepackage{fontspec}
\usepackage[expansion=false]{microtype}
\directlua{
  fonts.expansions.setups.default.stretch = 500
  fonts.expansions.setups.default.shrink = 500
}
\adjustspacing=2
\setmainfont[Ligatures=TeX,Renderer=Basic,RawFeature={expansion=default}]{Roboto}
\sloppy
\begin{document}
    \color{textblack}
    \fontsize{8.8pt}{12pt}\selectfont
    \begin{multicols}{3}
        \blindtext[10]
    \end{multicols}
\end{document}

Explicación de los comandos utilizados:

  1. \adjustspacing: Del manual de luatex: "Cuando \adjustspacingtiene el valor 2, la optimización hz se aplicará a los glifos y kerns. Cuando el valor es 3, solo se tratarán los glifos. Un valor menor que 2 desactiva esta función". Por lo tanto, \adjustspacing=2habilita la expansión de fuentes, equivalente a microtype's expansion=true(que de todos modos es la predeterminada).
  2. \directlua{...stretch = 500, ...}: equivalente de lualatex para microtypela opción del paquete stretch=500.
  3. \usepackage[expansion=false]{microtype}Pasar expansion=falsegarantiza que aún puedas usar microtype para sus otras características, mientras que la expansión se maneja usando lua. Si no aprueba expansion=false, su ejecución de lualatex fallará con un error: "error: (expansión de fuente): la fuente se ha expandido con un paso de expansión diferente" y no se producirá ningún pdf.

información relacionada