Como usar fontes mlmodernas com Plain TeX ou OpTeX?

Como usar fontes mlmodernas com Plain TeX ou OpTeX?

Gostaria de usar sistematicamente fontes mlmodern com Plain TeX e até mesmo OpTeX, mas não consigo converter o código mlmodern.sty em um código que possa ser compreendido pelos compiladores tex ou optex. Isso é possível?

Responder1

Para TeX simples você tem que essencialmente repetir toda a parte de “fontes” em 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

Encontrei os nomes olhando nos .fdarquivos.

insira a descrição da imagem aqui

A execução pdffontsno arquivo PDF mostra

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

Responder2

Para TeX simples.Copie os comandos \font(linhas 400--467) de plain.tex, remova todos os comandos \font\preloaded...e substitua os nomes cm*pelos nomes existentes correspondentes dos arquivos do diretório fonts/tfm/public/mlmodern/. Você deve escolher uma codificação para fontes de texto cs-ou ec-etc. qx-e usar apenas esses nomes de arquivo para fontes de texto. As fontes matemáticas mlm*correspondem ao original cm*. Salve isso em seu arquivo de macro. Adicione as linhas 477--492 com \textfont...from plain.textambém.

Para OpTeX.As principais informações estão escritas no mlmoderndocumento: "O suporte OpenType está planejado para versões futuras". Eu recomendo que você pergunte aos autores se este plano foi realizado. Caso contrário, as linguagens não ASCII não podem ser simplesmente usadas com esta mlmodernimplementação de fonte antiga. Observe que temos a máquina Unicode LuaTeX e precisamos de fontes Unicode. Fazendo algumas alterações muito específicas. truques de codificação de macro não são uma boa ideia quando temos centenas de fontes OpenType com alta qualidade hoje.

Se você tiver uma "versão futura" de autores com fontes OpenType mencionadas na documentação, poderá copiar o arquivo f-lmfonts.opme f-mlmodern.opmrenomear os nomes dos .otfarquivos aqui para .otfarquivos reais em seu computador. Então use \fontfam[mlmodern].

Se você estiver usando apenas a linguagem ASCII, poderá copiar arquivos fonts-preload.opme math-preload.opmmodificar tfmnomes aqui para os nomes existentes (de forma semelhante ao plain.texarquivo). Mas essa abordagem não tem futuro: precisamos de fontes modernas quando usamos o mecanismo TeX moderno. Não há fontes antigas onde modernesteja apenas em seus nomes.

informação relacionada