
備考
-パッケージには、、またはnewtxmath
を含むさまざまなフォントのサポートが付属しています。個人的には Garamond がとても気に入っていますが、libertine
デフォルトのインストールには含まれていません。そのため、代わりに を使用します。minion
garamondx
garamondx
ebgaramond
そのためには、フォントが設定されている部分を からコピーするだけですnewtxmath
。
問題文
ここに最小限のないebgaramond
これまで数学アルファベットとしてロードしようと試みたものの実例。(unicode-math
またはmathspec
オプションではないので、pdflatex
互換性が必要です)
\documentclass{article}
\usepackage{ebgaramond}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\DeclareSymbolFont{letters}{OML}{EBGaramond12-Italic-lf-t1--base}{m}{it}
\SetSymbolFont{letters}{bold}{OML}{EBGaramond12-Italic-lf-t1--base}{b}{it}
\DeclareFontSubstitution{OML}{EBGaramond12-Italic-lf-t1--base}{m}{it}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}
ボーナス質問
どのように使用すればいいですかスワッシュグリフをアルファベットとして使うmathcal
?
編集 2014-01-03
cfrのコメントで指摘されているように、この質問は次のようになる。OMLファイルを作成するにはどうすればいいですか?ebgaramond
?(ボーナス質問は有効のままです)
答え1
アップデート
最も簡単な解決策は、ebgaramond-数学CTAN から入手可能な新しいパッケージ。
ebgaramond-maths
は、現在 TeX Live に含まれています。TeX Live 2014 がインストールされている場合は、アップデート時にパッケージを取得する必要があります。(たとえば、tlmgr update --all
コマンド ラインで実行したり、選択した GUI ラッパーを使用したりします。)
以下の回答は、結果を微調整したり、別のフォントに方法を適用したりする場合にのみ役立つ可能性があります。
元の回答
\mathcal の設定は比較的簡単です。OML サポートの設定はそれほど簡単ではありません。
EBGaramond に OML サポートを提供する
いくつかのアプローチが可能です。既存の ebgaramond パッケージの動作方法を考慮して、最も簡単と思われる方法を採用しました。テキストと数学の両方のサポートを最初から生成する場合は、おそらく別の方法で行うでしょうが、この場合は、作業の重複をできるだけ避けるようにしています。
変数
どこかに作業ディレクトリを作成します。これを と呼びます
${work}
。書き込み権限があれば、場所はどこでも構いません。(当然ですが、これを root として実行しないでください。)${texmain}
メインの現在の texmf ディレクトリをと呼びます。私のシステムでは、/usr/local/texlive/current
または です/usr/local/texlive/2013
。
作業環境
に変更します${work}
。今後は、すべてのコマンドがこのディレクトリで実行され、作成されたすべてのファイルがここに保存されると想定します。
必要なファイルを作業ディレクトリにコピーするか、必要に応じてシンボリック リンクを作成します。
cp ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./
または
ln -s ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./
予備エンコードファイルを作成する
これは最終的に TeX に伝えるエンコーディング ファイルではありませんが、そのファイルの基礎となります。
まず、対話モードで fontinst を実行します。(つまり、コマンドとして「fontinst」と入力するだけです。) プロンプトで:
\input finstmsc.sty
\etxtoenc{oml}{oml-ebgaramond}
\bye
これにより、oml-ebgaramond.enc が生成され、otftotfm に渡す前に軽く修正することができます。
sed -i -e 's/TeXMathItalicEncoding/EBGaramondTeXMathItalicEncoding/g' -e 's/oldstyle//' oml-ebgaramond.enc
TeXフォントを生成する
ebgaramond は必要な type1 ファイルをすでに提供しているので、それらを再生成する必要はありません。必要なのは、適切な .tfm を生成することだけです。
otftotfm -e oml-ebgaramond.enc EBGaramond12-Italic.otf > EBGaramond-Maths.map
これにより、TeX がフォントを使用するために必要な .tfm ファイルと .map ファイル フラグメントの両方が作成されます。基本的に、TeX に関する限り、.tfm は単なるフォントです。(pdfTeX は少し異なる方法で認識します。type1 ビットも必要です。)
また、非常に奇妙な名前の新しいエンコーディング ファイルも作成されます。これは、.map ファイル フラグメントで指定されているように、TeX が使用するエンコーディング ファイルです。oml-ebgaramond.enc は不要になったため、必要に応じて削除できます。
LaTeXのフォント定義を作成する
私の知る限り、otftotfm は LaTeX 用のフォント定義ファイルを生成しませんが、この場合、ファイルは非常にシンプルです。次の内容のファイルを作成します。
%Filename: OMLEBGaramond-Maths.fd
%Based on a file created using fontinst v1.928
%THIS FILE SHOULD BE PUT IN A TEX INPUTS DIRECTORY
\ProvidesFile{OMLEBGaramond-Maths.fd}
[2014/01/03 font definitions for OML/EBGaramond-Maths.]
\DeclareFontFamily{OML}{EBGaramond-Maths}{}
\DeclareFontShape{OML}{EBGaramond-Maths}{m}{it}{
<-> EBGaramond12-Italic--oml-ebgaramond
}{}
\DeclareFontShape{OML}{EBGaramond-Maths}{b}{it}{<->ssub * EBGaramond-Maths/m/it}{}
\DeclareFontShape{OML}{EBGaramond-Maths}{bx}{it}{<->ssub * EBGaramond-Maths/m/it}{}
\endinput
これを として保存しますOMLEBGaramond-Maths.fd
。これにより、EBGaramond-Maths フォント ファミリが OML エンコーディングで何で構成されているかが LaTeX に伝えられます。具体的には、このエンコーディングでこのファミリに属する TeX フォントと、それぞれの特性が伝えられます。(この場合、そのようなフォントは 1 つだけであり、EBGaramond には太字がなく、OML は斜体の形状のみを考慮するため、他の太さに置き換えられます。)
LaTeX のパッケージ ファイルを作成する (オプション)
通常、特定の設定を使用するたびにフォント設定を繰り返すよりもパッケージをロードする方が簡単なので、LaTeX パッケージを作成します。これを行うには、次の内容の別のファイルを作成します。
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ebgaramond-maths}[2014/01/03 v1.0 ebgaramond-maths for use with EBGaramond]
\RequirePackage{ebgaramond}
% \pdfmapfile{+EBGaramond-Maths.map}
\DeclareSymbolFont{letters} {OML} {EBGaramond-Maths} {m} {it}
\DeclareSymbolFont{operators} {OT1} {EBGaramond-LF} {m} {n}
\SetSymbolFont{letters} {bold} {OML} {EBGaramond-Maths} {b} {it}
\SetSymbolFont{operators} {bold} {OT1} {EBGaramond-LF} {bx} {n}
\DeclareFontSubstitution{OML}{EBGaramond-Maths}{m}{it}
\DeclareFontSubstitution{OT1}{EBGaramond-LF}{m}{n}
\SetMathAlphabet{\mathbf} {normal} {OT1} {EBGaramond-LF} {bx} {n}
\SetMathAlphabet{\mathbf} {bold} {OT1} {EBGaramond-LF} {bx} {n}
\SetMathAlphabet{\mathit} {normal} {OT1} {EBGaramond-LF} {m} {it}
\SetMathAlphabet{\mathit} {bold} {OT1} {EBGaramond-LF} {bx} {it}
\DeclareMathAlphabet{\mathcal} {OT1} {EBGaramond-LF} {m} {sw}
\endinput
として保存しますebgaramond-maths.sty
。
- ユーザーにフォントのインストールを要求したくない場合は、.sty ファイル内の関連する行のコメントを解除します。
次に、フォントをインストールする前に、${work} から結果をテストできます。
\documentclass{article}
\usepackage{ebgaramond}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\pdfmapfile{+EBGaramond-Maths.map}
\usepackage{ebgaramond-maths}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
$\Gamma\varGamma\Delta\Lambda\varLambda\Xi\varXi\Pi\varPi\Sigma\varSigma\Upsilon\varUpsilon\Phi\varPhi\Psi\varPsi\Omega\varOmega$
$\alpha\beta\gamma\delta\epsilon\varepsilon\zeta\eta\theta\iota\kappa\lambda\mu\nu\xi\pi\rho\varrho\sigma\varsigma\tau\upsilon\phi\varphi\chi\psi\omega$
$\mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\mathbf{abcdefghijklmnopqrstuvwxyz}$
$\mathbf{0123456789}$
$\mathit{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\mathit{abcdefghijklmnopqrstuvwxyz}$
$\mathit{0123456789}$
$\mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\mathrm{abcdefghijklmnopqrstuvwxyz}$
$\mathrm{0123456789}$
$\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\mathcal{abcdefghijklmnopqrstuvwxyz}$
$\mathcal{0123456789}$
\end{document}
生成:
答え2
もしのみ数学フォントが必要なのは
\documentclass{article}
\usepackage[ebgaramond]{newtxmath}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}
しかしebgaramond
、テキストでも必要な場合は、
\documentclass{article}
\usepackage[ebgaramond]{newtx}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}