
Eu tenho um arquivo e quero produzir alternadamente arquivos PDF imprimíveis via xelatex
e páginas HTML via htlatex
. Por padrão, htlatex
produz equações PNG realmente feias e de baixa resolução. Eu quero SVG.
Eu façonãodeseja usar MathJaX. Quero que meu arquivo funcione sem JavaScript e não quero que os usuários tenham que renderizar o complexo TeX todas as vezes.
Seguindo conselhos on-line, coloquei isso em 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
Corri htlatex
via htlatex myfile "c"
... e consegui isso: pstoedit: Unsupported output format svg
.
Hum, o que aconteceu aqui?Meu sistema está mal configurado, como pensou este repórter de bug do Debian? Não. Talvez em algum momento pstoedit
a conversão de SVG tenha sido software livre, masNão mais.
SVG é um "plugin" de shareware pstoedit
e não existe binário para meu sistema operacional, FreeBSD.
Como posso ter matemática SVG e realmente SVG qualquer outra coisa marcada entre algum comando, com htlatex
sem pstoedit
?
Eu determinei que htlatex
funciona internamente, primeiro gerando um arquivo EPS, por exemplo zztest.eps
, . Em seguida, ele tenta pstoedit -f svg zztest.eps test0x.svg
. Então pensei em tentar outro conversor, mas outros conversores, como uniconvertor
e inkscape -z
, não reconhecem adequadamente a mágica do LaTeX e colocam o EPS em uma tela enorme (veja abaixo). Além disso, é complicado ter que executar o outro conversor todas as vezes; deve haver uma maneira de especificar qual conversor usar.
A imagem deve se parecer com a saída de default htlatex
, assim como um SVG.
Responder1
Deveríamos realmente substituir pstoedit
por algo melhor. Na realidade, o processo para o qual convertemos DVI
e PostScript
depois para SVG
não é realmente necessário hoje, já que DVI
o SVG
conversor direto existe hoje em dia.
Você pode alterar os comandos para conversão de imagem em tex4ht.env
arquivo, mas esse processo não é muito fácil. Em vez disso, eu usaria make4ht
, que é um substituto moderno htlatex
com suporte para arquivos de construção. Você pode especificar comandos personalizados para conversão de imagem nesses arquivos de construção.
Salve o seguinte código como test.mk4
:
Make:image("svg$","dvisvgm -n -p ${page} -c 1.4,1.4 -s ${source} > ${output}")
O arquivo de construção é um script Lua, Make:image
o comando fornece comando para conversão de imagem. Este comando possui dois argumentos, o primeiro é o formato de imagem configurado (é uma expressão regular, portanto $
no final), o segundo é o modelo para o comando de conversão. Existem três parâmetros importantes: ${source}
o nome do DVI
arquivo, ${page}
o número da página da imagem convertida e ${output}
o nome da imagem gerada.
Você pode compilar seu documento usando o comando
make4ht -c c.cfg test.tex
O arquivo de construção é usado automaticamente quando é nomeado como arquivo TeX de entrada com .mk4
extensão.
Último comentário sobre qualidade matemática: seria melhor usar mathml
formato, pois as imagens também apresentam outros problemas além da resolução (acessibilidade, incompatibilidade entre tamanhos de fonte, não se alinham com a linha de base e provavelmente muitos mais). O problema mathml
é o suporte deficiente do navegador, que é praticamente inexistente fora do Firefox. Mathjax adiciona um bom suporte a todos os navegadores, mas entendo perfeitamente que você não gosta disso. Existe a possibilidade de usar Mathjax em tempo de compilação. Este método é substituído mathml
por portable HTML
, que pode então ser exibido sem Javascript. VerNó Mathjax. A próxima versão do Make4ht fornecerá opções para este projeto.