Plain TeX または OpTeX で mlmodern フォントを使用するにはどうすればいいですか?

Plain TeX または OpTeX で mlmodern フォントを使用するにはどうすればいいですか?

mlmodern フォントを Plain TeX や OpTeX でも体系的に使用したいのですが、mlmodern.sty のコードを tex または optex コンパイラが理解できるコードに変換することができません。これは可能ですか?

答え1

プレーン TeX の場合は、基本的に のすべての「フォント」部分を繰り返す必要がありますplain.tex

\font\tenrm=rm-mlmr10 % roman text
\font\preloaded=rm-mlmr9
\font\preloaded=rm-mlmr8
\font\sevenrm=rm-mlmr7
\font\preloaded=rm-mlmr6
\font\fiverm=rm-mlmr5
\font\teni=mlmmi10 % math italic
\font\preloaded=mlmmi9
\font\preloaded=mlmmi8
\font\seveni=mlmmi7
\font\preloaded=mlmmi6
\font\fivei=mlmmi5
\font\tensy=mlmsy10 % math symbols
\font\preloaded=mlmsy9
\font\preloaded=mlmsy8
\font\sevensy=mlmsy7
\font\preloaded=mlmsy6
\font\fivesy=mlmsy5
\font\tenex=mlmex10 % math extension
\font\preloaded=rm-mlmss10 % sans serif
%\font\preloaded=rm-mlmssq8
\font\preloaded=rm-mlmsso10 % sans serif italic
%\font\preloaded=rm-mlmssqi8
\font\tenbf=rm-mlmbx10 % boldface extended
\font\preloaded=rm-mlmbx9
\font\preloaded=rm-mlmbx8
\font\sevenbf=rm-mlmbx7
\font\preloaded=rm-mlmbx6
\font\fivebf=rm-mlmbx5
\font\tentt=rm-mlmtt10 % typewriter
\font\preloaded=rm-mlmtt9
\font\preloaded=rm-mlmtt8
\font\preloaded=rm-mlmtto10 % slanted typewriter
\font\tensl=rm-mlmro10 % slanted roman
\font\preloaded=rm-mlmro9
\font\preloaded=rm-mlmro8
\font\tenit=rm-mlmri10 % text italic
\font\preloaded=rm-mlmri9
\font\preloaded=rm-mlmri8
\font\preloaded=rm-mlmri7
\font\preloaded=rm-mlmu10 % unslanted text italic
\font\preloaded=mlmmib10 % bold math italic
\font\preloaded=mlmbsy10 % bold math symbols
\font\preloaded=rm-mlmcsc10 % caps and small caps
%\font\preloaded=rm-mlmssbx10 % sans serif bold extended
%\font\preloaded=rm-mlmdunh10 % Dunhill style
\font\preloaded=rm-mlmr7 scaled \magstep4 % for titles
\font\preloaded=rm-mlmtt10 scaled \magstep2
\font\preloaded=rm-mlmssbx10 scaled \magstep2

\let\preloaded=\undefined % preloaded fonts must be declared anew later.

\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177
\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60

\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
\def\rm{\fam\z@\tenrm}
\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni}
\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
\def\cal{\fam\tw@}
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4
\textfont\itfam=\tenit
\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5
\textfont\slfam=\tensl
\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6
\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
\scriptscriptfont\bffam=\fivebf
\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7
\textfont\ttfam=\tentt

\tenrm

Abc {\it def\/} {\sl ghi\/} {\bf jkl}

$a+b+\alpha$

$$
\sum+\int_\Gamma
$$

\bye

ファイルを調べて名前を見つけました.fd

ここに画像の説明を入力してください

pdffontsPDFファイルを実行すると、

name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
VAJVJL+MLMRoman10-Regular            Type 1            Custom           yes yes no       4  0
XAMRRZ+MLMRoman10-Italic             Type 1            Custom           yes yes no       5  0
QLCGIE+MLMRomanSlant10-Regular       Type 1            Custom           yes yes no       6  0
BUCLYS+MLMRoman10-Bold               Type 1            Custom           yes yes no       7  0
HJQQGN+MLMMathItalic10-Regular       Type 1            Custom           yes yes no       8  0
LGTMNF+MLMMathExtension10-Regular    Type 1            Custom           yes yes no       9  0
CMLUYB+MLMRoman7-Regular             Type 1            Custom           yes yes no      10  0

答え2

プレーンTeX用。からコマンド\font(行 400 ~ 467)をコピーしplain.tex、すべてのコマンドを削除して\font\preloaded...、名前をcm*ディレクトリ の対応する既存のファイル名に置き換えます。テキスト フォントのエンコードをまたはまたはなどfonts/tfm/public/mlmodern/から 1 つ選択し、テキスト フォントにはこれらのファイル名のみを使用します。数式フォントは元の に対応します。これをマクロ ファイルに保存します。からも行 477 ~ 492 を追加します。cs-ec-qx-mlm*cm*\textfont...plain.tex

OpTeX用。重要な情報はドキュメントに記載されていますmlmodern: "OpenTypeのサポートは将来のバージョンで予定されています「この計画が実現するかどうか、作者に問い合わせることをお勧めします。実現しない場合は、この古いmlmodernフォント実装では非 ASCII 言語を単純に使用することはできません。Unicode マシン LuaTeX があり、Unicode フォントが必要であることに注意してください。現在、高品質の OpenType フォントが何百もあるときに、非常に特殊な再エンコード マクロ トリックを実行するのは良い考えではありません。

ドキュメントに記載されている OpenType フォントを持つ作者の「将来のバージョン」をお持ちの場合は、ファイルf-lmfonts.opmを にコピーしf-mlmodern.opm、ここでのファイル名をコンピュータ内の.otf実際のファイル名に変更します。その後、 を使用します。.otf\fontfam[mlmodern]

ASCII 言語のみを使用している場合は、ファイルをコピーしてfonts-preload.opm、ここで名前を既存の名前にmath-preload.opm変更できますtfm(ファイルの場合と同様)。ただし、このアプローチには将来性がありません。最新の TeX エンジンを使用する場合は、最新のフォントが必要です。名前にのみが含まれるplain.tex古いフォントはありません。modern

関連情報