![Producir una versión delgada de Computer Modern ajustando los parámetros de Metafont](https://rvso.com/image/449616/Producir%20una%20versi%C3%B3n%20delgada%20de%20Computer%20Modern%20ajustando%20los%20par%C3%A1metros%20de%20Metafont.png)
Espero producir una versión personalizada de todos los glifos de Computer Modern, donde los parámetros se modifican de modo que los trazos del lápiz sean muy finos (esencialmente sin relleno, solo trazos de esqueleto central). Mi objetivo es utilizarlos autotrace
para convertir esos trazos en trazados SVG, lo que da como resultado glifos de un solo trazo para usar en otros programas (pen-plotters, Mathjax, etc.)
Los libros de Metafont y CM son un poco abrumadores, por lo que agradecería consejos/ejemplos simples que me indiquen la dirección correcta, específicamente:
¿Cómo se podrían producir todos los glifos de CM, con una distribución TeX actual?
¿Cuál es el mejor lugar para encontrar todos los parámetros que deberán ajustarse para realizar trazos finos y de ancho constante?
Editar:Para aclarar, aquí hay una descripción de lo que busco.
A partir de las fuentes de Metafont (aquícopiado de Wikipedia)
%file name: beta.mf
%mode_setup;
% Define a beanlike shape for the character B
beginchar("B",11pt#,11pt#,0);
% Setup coordinates as an equation system
y1=y2=y3=0;
y4=y5=y6=h;
x1=x4=0;
x2=x5=w;
x3=x6=2*w;
% Define pen
pickup pencircle xscaled 0.2w yscaled 0.04w rotated 45;
% Draw the character curve
% z1 is the same as (x1, y1)
draw z1..z3..z6{z2-z6}..z5..{z4-z2}z4..cycle;
endchar;
end
se puede producir un glifo (ráster o vectorial, no es importante), que luego se procesa mediante seguimiento automático (por ejemplo, a través de Inkscape) para obtener solo la línea central,
Ahora, deseo hacer esto mediante programación para más de 2200 glifos de Computer Modern, y muchos tienen trazos que confundirán al algoritmo porque varían demasiado en grosor. Me gustaría ayudar al algoritmo de seguimiento automático produciendo primero una versión de glifos CM que tengan trazos casi uniformes.
Respuesta1
Las fuentes Metafont para fuentes CM se encuentran fonts/source/public/cm/
en TeXlive. Cada archivo con nombre de fuente real (por ejemplo cmr10.mf
) incluye la configuración de alrededor de 60 parámetros y la última línea es generate roman
o generate textit
etc. Esto ejecuta los archivos donde todos los caracteres se describen mediante procedimientos, estos procedimientos utilizan los parámetros mencionados como variables globales. Entonces, si cambia un parámetro, cmr10.mf
se cambian todos los caracteres.
Puede ejecutar mf '\mode=supre; mode_setup; input cmr10.mf'
para generar cmr10.2400gf
un archivo con mapas de bits de todos los caracteres en una resolución de 2400 ppp. Puede solicitar gftopk cmr10.2400gf
la creación de un formato comprimido de la salida mf en el archivo cmr10.2400pk
. Se desea la alta resolución para el próximo proceso de seguimiento automático.
Si desea generar todos los glifos CM con un solo comando, intente
for i in cm*.mf ; do mf '\mode=supre; mode_setup; input' $i; done
EditarSi desea crear png
archivos (un carácter por archivo), puede utilizar dvipng
el software. Primero, cree su versión de mapa de bits desde cmr10.2400pk
a cmr10.2400pk
usar gftopk
y déjela en su directorio actual. Luego puedes crear un archivo (digamos cm.tex
):
\font\f=cmr10 scaled 6000
\f
\nopagenumbers
a
\vfil\break
b
\vfil\break % ... etc
\bye
Corre tex cm
para crear cm.dvi
. Cada carta está en una sola página. Finalmente corre dvipng --freetype0 cm
. Crea un montón de cm*.png
archivos. Debido a que la resolución predeterminada dvipng
es 400, escalamos las fuentes 6 veces (ver \font
comando) para obtener la resolución 2400 en nuestro resultado. Cuando --freetype0
se utiliza la opción, dvipg
utiliza fuentes de mapa de bits, busca fuentes con una resolución de 6x400=2400 y utiliza el archivo cmr10.2400pk
preparado por usted.