フォントサイズがデフォルトのフォントサイズから変更されると、microtype の拡張が無効になるようです。ここに 2 つのコードがあります。最初のコードでは拡張が機能し、2 番目のコードでは機能しません (microtype に伸縮オプションが与えられていないかのようです)。
作品:
% 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}
指示:
>> lualatex main.tex
動作しません:
%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}
指示:
>> lualatex main.tex
出力: これを修正できるかどうか、また、私のコードに問題があるかどうかを教えてください。
ありがとう、
男
答え1
microtype は、フォント サイズの制限されたセットに対してのみフォント拡張を設定します。サイズをリストに追加すると、機能します (basictext を再定義するのはおそらく最善の方法ではありません)。
\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}
たとえば、デフォルト以外のセットを使用することによって制限を解除することもできます。
\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}
または、さらに簡潔にするには、expansion=alltext
マイクロタイプをロードするときにパッケージ オプションとして渡します。
\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}
答え2
microtype
率直に言って、なぜ人々が を使用するのか全くわかりません。確かに、 のような優れたインターフェースがいくつかありますtextls
が、拡張のために、2 行の Lua とフォント機能を使用して同じことを実現できます。これもフォント サイズの問題はありません。
%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}
使用されるコマンドの説明:
\adjustspacing
: luatex マニュアルより: 「\adjustspacing
の値が 2 の場合、グリフとカーニングに hz 最適化が適用されます。 の値が 3 の場合、グリフのみが処理されます。 2 より小さい値の場合、この機能は無効になります。」 つまり、\adjustspacing=2
フォント拡張が有効になり、microtype
のと同等になりますexpansion=true
(いずれにしても、これはデフォルトです)。\directlua{...stretch = 500, ...}
: lualatexmicrotype
のパッケージ オプションと同等ですstretch=500
。\usepackage[expansion=false]{microtype}
を渡すと、expansion=false
拡張が lua を使用して処理される間も、microtype の他の機能を引き続き使用できます。 を渡さない場合expansion=false
、lualatex の実行はエラー「エラー: (フォント拡張): フォントが異なる拡張ステップで拡張されました」で失敗し、pdf は生成されません。