Die Microtype-Erweiterung wird deaktiviert, wenn die Schriftgröße geändert wird! (lualatex)

Die Microtype-Erweiterung wird deaktiviert, wenn die Schriftgröße geändert wird! (lualatex)

Es scheint, als ob die Erweiterung von Microtype deaktiviert wird, wenn die Schriftgröße von der Standardschriftgröße geändert wird. Hier sind zwei Codeteile, im ersten funktioniert die Erweiterung, im zweiten nicht (als ob Microtype nie die Optionen „Ausdehnen“ und „Verkleinern“ erhalten hätte).

Werke:

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

Befehl:

>> lualatex main.tex

Ausgabe: Erweiterungsarbeiten

Funktioniert nicht:

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

Befehl:

>> lualatex main.tex

Ausgabe: Erweiterung funktioniert nicht Bitte geben Sie an, ob und wie dies behoben werden kann oder ob ein Problem mit meinem Code vorliegt.

Danke,

Ein Mann

Antwort1

Microtype richtet die Schrifterweiterung nur für eine begrenzte Anzahl von Schriftgrößen ein. Wenn Sie Ihre Größe zur Liste hinzufügen, funktioniert es (eine Neudefinition von Basictext ist wahrscheinlich nicht die beste Methode):

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

Sie können die Einschränkung auch aufheben, indem Sie beispielsweise ein anderes Set als das Standardset verwenden:

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

ODER noch knapper, indem Sie es expansion=alltextals Paketoption beim Laden des Mikrotyps übergeben:

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

Bildbeschreibung hier eingeben

Antwort2

Ehrlich gesagt weiß ich nicht, warum die Leute es microtypeüberhaupt verwenden. Zugegeben, es hat einige nette Schnittstellen wie textls, aber zur Erweiterung kann ich dasselbe mit zwei Zeilen Lua und einer Schriftartfunktion erreichen. Außerdem gibt es hier nicht das Problem mit der Schriftgröße.

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

Erklärung der verwendeten Befehle:

  1. \adjustspacing: Aus dem Luatex-Handbuch: „Wenn \adjustspacingder Wert 2 ist, wird die Hz-Optimierung auf Glyphen und Unterschneidungen angewendet. Wenn der Wert 3 ist, werden nur Glyphen behandelt. Ein Wert kleiner als 2 deaktiviert diese Funktion.“ \adjustspacing=2Aktiviert also die Schrifterweiterung, das Äquivalent von microtype's expansion=true(was ohnehin die Standardeinstellung ist).
  2. \directlua{...stretch = 500, ...}: lualatex-Äquivalent für microtypedie Paketoption von stretch=500.
  3. \usepackage[expansion=false]{microtype}Durch das Übergeben expansion=falsewird sichergestellt, dass Sie Microtype weiterhin für seine anderen Funktionen verwenden können, während die Erweiterung mithilfe von Lua erfolgt. Wenn Sie nicht übergeben expansion=false, schlägt Ihr Lualatex-Lauf mit einem Fehler fehl: „Fehler: (Schrifterweiterung): Schriftart wurde mit einem anderen Erweiterungsschritt erweitert“, und es wird kein PDF erstellt.

verwandte Informationen