
Observações
O newtxmath
-package vem com suporte para várias fontes, incluindo libertine
, minion
ou garamondx
. Pessoalmente gosto muito do Garamond, mas garamondx
não faz parte da instalação padrão. Assim eu uso ebgaramond
em vez disso.
Para isso, apenas copiei a parte onde as fontes são configuradas newtxmath
.
Declaração do problema
Aqui está um mínimoNÃOexemplo prático do que tentei até agora carregar ebgaramond
como um alfabeto matemático. ( unicode-math
ou mathspec
não é uma opção, precisa ser pdflatex
compatível)
\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}
Pergunta bônus
Como posso usarbalançarglifos como mathcal
alfabeto?
EDITAR 03/01/2014
Apontada pelo comentário do CFR, a questão se reduz aComo posso criar arquivos OML para ebgaramond
?(A pergunta bônus permanece válida)
Responder1
Atualizar
A solução mais simples agora é usarebgaramond-matemática, um novo pacote disponível no CTAN.
ebgaramond-maths
agora está incluído no TeX Live. Se você tiver o TeX Live 2014 instalado, deverá obter o pacote ao atualizar. (Por exemplo, executando tlmgr update --all
na linha de comando ou usando o wrapper GUI de sua preferência.)
A resposta abaixo provavelmente será útil apenas se você quiser ajustar os resultados ou aplicar o método a uma fonte diferente.
Resposta original
Configurar o material \mathcal é relativamente simples. Configurar o suporte OML é menos complicado.
Fornece suporte OML para EBGaramond
Várias abordagens são possíveis. Eu escolhi o que me pareceu o mais simples, dada a forma como o pacote ebgaramond existente funciona. Eu provavelmente faria isso de forma diferente se estivesse gerando suporte para texto e matemática do zero, mas neste caso estou tentando evitar ao máximo a duplicação de esforços.
Variáveis
Crie um diretório de trabalho em algum lugar que eu chamarei de
${work}
. Não importa onde, desde que você tenha permissão para escrever lá. (Não faça isso como root, obviamente.)Vou ligar para
${texmain}
o seu diretório texmf principal e atual. No meu sistema, isso é/usr/local/texlive/current
ou/usr/local/texlive/2013
.
Ambiente de trabalho
Mudar para ${work}
. A partir de agora, presumo que todos os comandos sejam executados neste diretório e que todos os arquivos criados sejam salvos aqui.
Copie os arquivos necessários para o seu diretório de trabalho ou crie links simbólicos, se preferir:
cp ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./
ou
ln -s ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./
Crie um arquivo de codificação preliminar
Este não é o arquivo de codificação sobre o qual você finalmente falará ao TeX, mas ele formará a base para esse arquivo.
Primeiro, execute fontinst no modo interativo. (Ou seja, basta digitar 'fontinst' como comando.) No prompt:
\input finstmsc.sty
\etxtoenc{oml}{oml-ebgaramond}
\bye
Isso produzirá oml-ebgaramond.enc que você pode modificar levemente antes de alimentar o otftotfm.
sed -i -e 's/TeXMathItalicEncoding/EBGaramondTeXMathItalicEncoding/g' -e 's/oldstyle//' oml-ebgaramond.enc
Gere a fonte TeX
ebgaramond já fornece os arquivos type1 necessários, portanto não há necessidade de regenerá-los. Tudo o que é necessário é gerar um .tfm adequado.
otftotfm -e oml-ebgaramond.enc EBGaramond12-Italic.otf > EBGaramond-Maths.map
Isso criará o arquivo .tfm e o fragmento do arquivo .map que o TeX precisa para usar a fonte. Essencialmente, o .tfm é apenas uma fonte no que diz respeito ao TeX. (pdfTeX vê as coisas de maneira um pouco diferente - ele também quer o bit type1.)
Ele também criará um novo arquivo de codificação com um nome que quase certamente será muito estranho. Este é o arquivo de codificação que o TeX usará, conforme especificado no fragmento do arquivo .map. oml-ebgaramond.enc agora pode ser excluído se desejar, pois não é mais necessário.
Crie a definição de fonte para LaTeX
Otftotfm não gera arquivos de definição de fonte para LaTeX, até onde eu sei, mas o arquivo é bem simples neste caso. Crie um arquivo com o seguinte conteúdo:
%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
e salve-o como OMLEBGaramond-Maths.fd
. Isso informa ao LaTeX em que consiste a família de fontes EBGaramond-Maths na codificação OML. Especificamente, informa quais fontes TeX pertencem a esta família nesta codificação e as características de cada uma. (Nesse caso, existe apenas uma fonte que é substituída por outros pesos, pois não há negrito no EBGaramond e o OML só se preocupa com o formato em itálico.)
Crie um arquivo de pacote para LaTeX (opcional)
Geralmente é mais fácil carregar um pacote do que repetir a configuração da fonte cada vez que você deseja usar uma configuração específica, então eu criaria um pacote LaTeX. Para isso, crie outro arquivo com o seguinte conteúdo:
\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
e salve-o como ebgaramond-maths.sty
.
- Se você não deseja pedir às pessoas que instalem as fontes, remova o comentário da linha relevante no arquivo .sty.
Então, a partir de ${work} o resultado pode ser testado antes da instalação das fontes:
\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}
produz:
Responder2
Seapenasa fonte matemática é necessária então
\documentclass{article}
\usepackage[ebgaramond]{newtxmath}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}
mas se ebgaramond
for necessário também no texto, então
\documentclass{article}
\usepackage[ebgaramond]{newtx}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}