¿Cómo utilizar fuentes mlmodernas con Plain TeX u OpTeX?

¿Cómo utilizar fuentes mlmodernas con Plain TeX u OpTeX?

Me gustaría utilizar sistemáticamente fuentes mlmodern con Plain TeX e incluso OpTeX, pero no puedo convertir el código de mlmodern.sty en un código que los compiladores tex u optex puedan entender. es posible?

Respuesta1

Para TeX simple, esencialmente debes repetir toda la parte de "fuentes" en 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

Encontré los nombres buscando en los .fdarchivos.

ingrese la descripción de la imagen aquí

Ejecutar pdffontsen el archivo PDF muestra

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

Respuesta2

Para TeX simple.Copie los comandos \font(líneas 400--467) de plain.tex, elimine todos los comandos \font\preloaded...y reemplace los nombres cm*con los correspondientes nombres de archivos existentes del directorio fonts/tfm/public/mlmodern/. Debe elegir una de las codificaciones para fuentes de texto , cs-etc. y usar solo estos nombres de archivo para fuentes de texto. Las fuentes matemáticas corresponden al original . Guarde esto en su archivo de macro. Agregue las líneas 477--492 con from también.ec-qx-mlm*cm*\textfont...plain.tex

Para OpTeX.La información clave está escrita en el mlmoderndocumento: "La compatibilidad con OpenType está prevista para versiones futuras". Le recomiendo que pregunte a los autores si este plan se ha realizado. De lo contrario, los lenguajes que no sean ASCII no se pueden usar simplemente con esta mlmodernimplementación de fuente antigua. Tenga en cuenta que tenemos una máquina Unicode LuaTeX y necesitamos fuentes Unicode. Haciendo algunas modificaciones muy específicas Los trucos de codificación de macros no son una buena idea cuando hoy en día tenemos cientos de fuentes OpenType de alta calidad.

Si tiene una "versión futura" de los autores con fuentes OpenType mencionadas en la documentación, puede copiar el archivo f-lmfonts.opmy f-mlmodern.opmcambiar el nombre de los .otfarchivos aquí a .otfarchivos reales en su computadora. Entonces usa \fontfam[mlmodern].

Si está utilizando sólo el lenguaje ASCII, puede copiar archivos fonts-preload.opmy math-preload.opmmodificar tfmlos nombres aquí a los nombres existentes (de forma similar a como ocurre con plain.texel archivo). Pero este enfoque no tiene futuro: necesitamos fuentes modernas cuando utilizamos un motor TeX moderno. No hay fuentes antiguas que modernsolo aparezcan en sus nombres.

información relacionada