フォントサイズが変更されると、マイクロタイプの拡張が無効になります。(lualatex)

フォントサイズが変更されると、マイクロタイプの拡張が無効になります。(lualatex)

フォントサイズがデフォルトのフォントサイズから変更されると、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}

使用されるコマンドの説明:

  1. \adjustspacing: luatex マニュアルより: 「\adjustspacingの値が 2 の場合、グリフとカーニングに hz 最適化が適用されます。 の値が 3 の場合、グリフのみが処理されます。 2 より小さい値の場合、この機能は無効になります。」 つまり、\adjustspacing=2フォント拡張が有効になり、microtypeのと同等になりますexpansion=true(いずれにしても、これはデフォルトです)。
  2. \directlua{...stretch = 500, ...}: lualatexmicrotypeのパッケージ オプションと同等ですstretch=500
  3. \usepackage[expansion=false]{microtype}を渡すと、expansion=false拡張が lua を使用して処理される間も、microtype の他の機能を引き続き使用できます。 を渡さない場合expansion=false、lualatex の実行はエラー「エラー: (フォント拡張): フォントが異なる拡張ステップで拡張されました」で失敗し、pdf は生成されません。

関連情報