A expansão do microtipo é desativada quando o tamanho da fonte é alterado! (lualatex)

A expansão do microtipo é desativada quando o tamanho da fonte é alterado! (lualatex)

Parece que a expansão do microtipo é desativada quando o tamanho da fonte é alterado do tamanho da fonte padrão. Aqui estão dois trechos de código: no primeiro, a expansão funciona, no segundo, não (como se o microtipo nunca tivesse recebido opções de esticar e encolher).

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{9pt}{12pt}\selectfont
    \begin{multicols}{3}
        \blindtext[10]
    \end{multicols}
\end{document}

Comando:

>> lualatex main.tex

Saída: obras de expansão

Não 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}

Comando:

>> lualatex main.tex

Saída: expansão não funciona Por favor, sugira se e como isso pode ser corrigido ou se há algum problema com meu código.

Obrigado,

Um homem

Responder1

microtype configura a expansão da fonte apenas para um conjunto restrito de tamanho de fonte. Se você adicionar seu tamanho à lista, ele funcionará (redefinir o texto básico provavelmente não é a melhor maneira de fazer isso):

\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}

Você também pode suspender a restrição, por exemplo, usando outro conjunto que não o padrão:

\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}

OU ainda mais conciso, passando expansion=alltextcomo uma opção de pacote ao carregar o 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}

insira a descrição da imagem aqui

Responder2

Para ser franco, não sei por que as pessoas usam microtype. É verdade que ele tem algumas interfaces interessantes como textls, mas para expansão posso conseguir as mesmas coisas com duas linhas de Lua e um recurso de fonte. Isso também não apresenta o problema do tamanho da fonte.

%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}

Explicação dos comandos usados:

  1. \adjustspacing: Do manual luatex: "Quando \adjustspacingtiver valor 2, a otimização hz será aplicada a glifos e kerns. Quando o valor for 3, apenas glifos serão tratados. Um valor menor que 2 desativa esse recurso." Portanto, \adjustspacing=2habilita a expansão da fonte, equivalente a microtype's expansion=true(que é o padrão).
  2. \directlua{...stretch = 500, ...}: equivalente a lualatex para microtypea opção de pacote de stretch=500.
  3. \usepackage[expansion=false]{microtype}A passagem expansion=falsegarante que você ainda possa usar o microtipo para seus outros recursos, enquanto a expansão é tratada usando lua. Se você não passar expansion=false, sua execução do lualatex falhará com um erro: "erro: (expansão da fonte): a fonte foi expandida com etapa de expansão diferente" e nenhum pdf será produzido.

informação relacionada