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
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: 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=alltext
als 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}
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:
\adjustspacing
: Aus dem Luatex-Handbuch: „Wenn\adjustspacing
der 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=2
Aktiviert also die Schrifterweiterung, das Äquivalent vonmicrotype
'sexpansion=true
(was ohnehin die Standardeinstellung ist).\directlua{...stretch = 500, ...}
: lualatex-Äquivalent fürmicrotype
die Paketoption vonstretch=500
.\usepackage[expansion=false]{microtype}
Durch das Übergebenexpansion=false
wird sichergestellt, dass Sie Microtype weiterhin für seine anderen Funktionen verwenden können, während die Erweiterung mithilfe von Lua erfolgt. Wenn Sie nicht übergebenexpansion=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.