
Observaciones
El newtxmath
paquete viene con soporte para varias fuentes, incluidas libertine
, minion
o garamondx
. Personalmente me gusta mucho Garamond, pero garamondx
no forma parte de la instalación predeterminada. Por eso lo uso ebgaramond
en su lugar.
Para hacerlo, simplemente copié la parte desde donde se configuran las fuentes newtxmath
.
Planteamiento del problema
Aquí hay un mínimoNOejemplo práctico de lo que he intentado cargar hasta ahora ebgaramond
como un alfabeto matemático. ( unicode-math
o mathspec
no es una opción, debe ser pdflatex
compatible)
\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}
Pregunta extra
¿Cómo puedo utilizarchapoteo¿Glifos como mathcal
alfabeto?
EDITAR 2014-01-03
Como lo señala el comentario de cfr, la pregunta se reduce a¿Cómo puedo crear archivos OML para ebgaramond
?(La pregunta extra sigue siendo válida)
Respuesta1
Actualizar
La solución más sencilla ahora es utilizarebgaramond-matemáticas, un nuevo paquete disponible desde CTAN.
ebgaramond-maths
ahora está incluido en TeX Live. Si tiene TeX Live 2014 instalado, debería obtener el paquete cuando actualice. (Por ejemplo, ejecutándolo tlmgr update --all
en la línea de comando o usando el contenedor GUI de su elección).
Es probable que la respuesta a continuación sea útil sólo si desea modificar los resultados o aplicar el método a una fuente diferente.
Respuesta original
Configurar el material de \mathcal es relativamente sencillo. Configurar el soporte OML lo es menos.
Proporcionar soporte OML para EBGaramond
Son posibles varios enfoques. Tomé lo que me pareció más simple dada la forma en que funciona el paquete ebgaramond existente. Probablemente haría esto de manera diferente si estuviera generando soporte tanto para texto como para matemáticas desde cero, pero en este caso estoy tratando de evitar la duplicación de esfuerzos tanto como sea posible.
variables
Cree un directorio de trabajo en algún lugar al que llamaré
${work}
. No importa dónde, siempre y cuando tengas permiso para escribir allí. (No hagas esto como root, obviamente).Llamaré
${texmain}
a su directorio texmf principal y actual. En mi sistema, eso es/usr/local/texlive/current
o/usr/local/texlive/2013
.
Ambiente de trabajo
Cambiar a ${work}
. De ahora en adelante, asumo que todos los comandos se ejecutan en este directorio y que todos los archivos creados se guardan aquí.
Copie los archivos necesarios a su directorio de trabajo o cree enlaces simbólicos si lo prefiere:
cp ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./
o
ln -s ${texmain}/texmf-dist/tex/fontinst/mathetx/oml.etx ${texmain}/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond12-Italic.otf ./
Crear un archivo de codificación preliminar
Este no es el archivo de codificación del que finalmente le hablarás a TeX, pero formará la base de ese archivo.
Primero, ejecute fontinst en modo interactivo. (Es decir, simplemente escriba 'fontinst' como comando). Cuando se le solicite:
\input finstmsc.sty
\etxtoenc{oml}{oml-ebgaramond}
\bye
Esto producirá oml-ebgaramond.enc que puede modificar ligeramente antes de enviarlo a otftotfm.
sed -i -e 's/TeXMathItalicEncoding/EBGaramondTeXMathItalicEncoding/g' -e 's/oldstyle//' oml-ebgaramond.enc
Generar la fuente TeX
ebgaramond ya proporciona los archivos tipo 1 que necesita, por lo que no es necesario regenerarlos. Todo lo que se requiere es generar un .tfm adecuado.
otftotfm -e oml-ebgaramond.enc EBGaramond12-Italic.otf > EBGaramond-Maths.map
Esto creará tanto el archivo .tfm como el fragmento del archivo .map que TeX necesita para usar la fuente. Básicamente, .tfm es sólo una fuente en lo que respecta a TeX. (pdfTeX ve las cosas de manera ligeramente diferente: también quiere el bit tipo1).
También creará un nuevo archivo de codificación con lo que seguramente será un nombre muy extraño. Este es el archivo de codificación que utilizará TeX, como se especifica en el fragmento del archivo .map. oml-ebgaramond.enc ahora se puede eliminar si lo desea, ya que ya no es necesario.
Crear la definición de fuente para LaTeX
Hasta donde yo sé, otftotfm no genera archivos de definición de fuentes para LaTeX, pero el archivo es bastante simple en este caso. Cree un archivo con el siguiente contenido:
%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
y guárdalo como OMLEBGaramond-Maths.fd
. Esto le dice a LaTeX en qué consiste la familia de fuentes EBGaramond-Maths en la codificación OML. En concreto le indica qué fuentes TeX pertenecen a esta familia en esta codificación y las características de cada una. (En este caso, solo hay una fuente que luego se sustituye por otros pesos, ya que no hay negrita en EBGaramond y OML solo se preocupa por la forma de cursiva).
Cree un archivo de paquete para LaTeX (opcional)
Generalmente es más fácil cargar un paquete que repetir la configuración de fuente cada vez que desee utilizar una configuración particular, por lo que crearía un paquete LaTeX. Para ello, cree otro archivo con el siguiente contenido:
\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
y guárdalo como ebgaramond-maths.sty
.
- Si no desea pedirle a la gente que instale las fuentes, descomente la línea correspondiente en el archivo .sty.
Luego, desde ${work} se puede probar el resultado antes de instalar las fuentes:
\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}
produce:
Respuesta2
Sisoloentonces se necesita la fuente matemática
\documentclass{article}
\usepackage[ebgaramond]{newtxmath}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}
pero si ebgaramond
también es necesario en el texto, entonces
\documentclass{article}
\usepackage[ebgaramond]{newtx}
\begin{document}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
$ABCDEFGHIJKLMNOPQRSTUVWXYZ$
$abcdefghijklmnopqrstuvwxyz$
$1234567890$
\end{document}