
Tengo un archivo y quiero generar alternativamente archivos PDF imprimibles xelatex
y páginas HTML mediante htlatex
. De forma predeterminada, htlatex
produce ecuaciones PNG realmente feas y de baja resolución. Quiero SVG en su lugar.
sínoQuiero usar MathJaX. Quiero que mi archivo funcione sin JavaScript y no quiero que los usuarios tengan que renderizar el complejo TeX cada vez.
Siguiendo los consejos online, puse esto en c.cfg
...
\Preamble{ext=htm,charset="utf-8",p-width,pic-align}
\Configure{Picture}{.svg}
\makeatletter
\Configure{graphics*}
{svg}
{
{\Configure{Needs}{File: \[email protected]}\Needs{}}
\Picture[\csname a:GraphicsAlt\endcsname]{\csname Gin@base\endcsname.svg
\csname a:Gin-dim\endcsname}
}
\begin{document}
\EndPreamble
Corrí htlatex
a través de htlatex myfile "c"
... y obtuve esto: pstoedit: Unsupported output format svg
.
Mmmm, ¿qué pasó aquí?¿Mi sistema está mal configurado, como pensó este reportero de errores de Debian?? No. Quizás en algún momento pstoedit
la conversión a SVG fue software gratuito, peroya no.
SVG es un "complemento" shareware de pstoedit
, y no hay ningún binario para mi sistema operativo, FreeBSD.
¿Cómo puedo tener matemáticas SVG y realmente SVG cualquier otra cosa marcada entre algún comando y htlatex
sin pstoedit
?
He determinado que htlatex
funciona internamente generando primero un archivo EPS, por ejemplo zztest.eps
. Luego lo intenta pstoedit -f svg zztest.eps test0x.svg
. Así que pensé en probar con otro convertidor, pero otros convertidores, como uniconvertor
y inkscape -z
, no reconocen adecuadamente la magia de LaTeX y colocan el EPS en un lienzo enorme (ver más abajo). Además, es engorroso tener que ejecutar el otro convertidor cada vez; debería haber una manera de especificar qué convertidor usar.
La imagen debería verse como la salida de default htlatex
, solo como un SVG.
Respuesta1
Realmente deberíamos reemplazarlo pstoedit
con algo mejor. En realidad, el proceso en el que convertimos DVI
a PostScript
y luego a SVG
no es realmente necesario hoy en día, ya que hoy en día existe un convertidor DVI
directo .SVG
Puedes cambiar los comandos para la conversión de imágenes en tex4ht.env
un archivo, pero este proceso no es realmente fácil. En su lugar, usaría make4ht
, que es un reemplazo moderno htlatex
con soporte para archivos de compilación. Puede especificar comandos personalizados para la conversión de imágenes en estos archivos de compilación.
Guarde el siguiente código como test.mk4
:
Make:image("svg$","dvisvgm -n -p ${page} -c 1.4,1.4 -s ${source} > ${output}")
El archivo de compilación es un script Lua, Make:image
el comando proporciona un comando para la conversión de imágenes. Este comando tiene dos argumentos, el primero es el formato de imagen configurado (es una expresión regular, por lo tanto $
al final), el segundo es la plantilla para el comando de conversión. Hay tres parámetros importantes: ${source}
el nombre del DVI
archivo, ${page}
el número de página de la imagen convertida y ${output}
el nombre de la imagen generada.
Puede compilar su documento usando el comando
make4ht -c c.cfg test.tex
El archivo de compilación se usa automáticamente cuando se le asigna el nombre de archivo TeX de entrada con .mk4
extensión.
Último comentario sobre la calidad matemática: sería mejor usar mathml
el formato, porque las imágenes también tienen otros problemas además de la resolución (accesibilidad, falta de coincidencia entre los tamaños de fuente, no se alinean con la línea de base y probablemente muchos más). El problema mathml
es la escasa compatibilidad con el navegador, que es prácticamente inexistente aparte de Firefox. Mathjax agrega un buen soporte para todos los navegadores, pero entiendo perfectamente que eso no te guste. Existe la posibilidad de utilizar Mathjax en el momento de la compilación. Este método se reemplaza mathml
con portable HTML
, que luego se puede mostrar sin Javascript. VerNodo Mathjax. La próxima versión de Make4ht brindará opciones para este proyecto.