Producir una versión delgada de Computer Modern ajustando los parámetros de Metafont

Producir una versión delgada de Computer Modern ajustando los parámetros de Metafont

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 autotracepara 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:

  1. ¿Cómo se podrían producir todos los glifos de CM, con una distribución TeX actual?

  2. ¿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,

captura de pantalla del autotrace

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 romano generate textitetc. 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.mfse cambian todos los caracteres.

Puede ejecutar mf '\mode=supre; mode_setup; input cmr10.mf'para generar cmr10.2400gfun archivo con mapas de bits de todos los caracteres en una resolución de 2400 ppp. Puede solicitar gftopk cmr10.2400gfla 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 pngarchivos (un carácter por archivo), puede utilizar dvipngel software. Primero, cree su versión de mapa de bits desde cmr10.2400pka cmr10.2400pkusar gftopky 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 cmpara crear cm.dvi. Cada carta está en una sola página. Finalmente corre dvipng --freetype0 cm. Crea un montón de cm*.pngarchivos. Debido a que la resolución predeterminada dvipnges 400, escalamos las fuentes 6 veces (ver \fontcomando) para obtener la resolución 2400 en nuestro resultado. Cuando --freetype0se utiliza la opción, dvipgutiliza fuentes de mapa de bits, busca fuentes con una resolución de 6x400=2400 y utiliza el archivo cmr10.2400pkpreparado por usted.

información relacionada