有没有办法直接将 TeX 代码编译成 SVG 图像格式(而不是绕道 TeX => PDF => SVG)?
我发现了这个问题: 在线将 LaTeX 转换为 SVG
但我不想在线进行 - 它应该是命令行调用。
答案1
tex2svg
该命令tex2svg
一旦生效mathjax-node-cli
结合node.js
已安装。
使用(X)Ubuntu LTS,这只需要两个安装步骤:
$ sudo apt install nodejs npm
$ sudo npm install --global mathjax-node-cli
命令:
$ /usr/local/lib/node_modules/mathjax-node-cli/bin/tex2svg '\sin^2{\theta} + \cos^2{\theta} = 1' > test.svg
将产生:
注1:如果node
与 NVM 一起使用,路径可能会有所不同。可以使用以下命令找到路径:
$ type node
/usr/bin/node
笔记2:生成的 SVG 文件在浏览器中正确呈现,但是无法使用标准图像工具显示。
注3:从 TeX 文件生成 SVG 可以按如下方式进行:
$ cat YOURSOURCEFILE.tex | xargs -0 -t -I % /usr/local/lib/node_modules/mathjax-node-cli/bin/tex2svg '%' > YOURENDFILE.svg
答案2
您可以使用经典的 LaTeX (带 dvi 输出) 和dvisvgm
(http://www.ctan.org/pkg/dvisvgm) 将 dvi 文件转换为 SVG。
编辑:我不知道 *svgtex 实现可以一步完成转换。
答案3
在我的窗户上,这是有效的,
安装:
- Ghostscript(选择64位)
- Inkscape(选择64位)
然后将“bin”文件夹添加到路径。
例如,我将“C:\Program Files\Inkscape\bin”和“C:\Program Files\gs\gs9.54.0\bin”添加到用户路径。
如果你有一个“document.tex”文件,那么
pdflatex document.tex
gswin64 -dNoOutputFonts -sDEVICE=pdfwrite -o tmp.pdf document.pdf
inkscape -o document.svg tmp.pdf
这里 gswin64 可以将文本转换为路径,避免 inkscape 转换为 svg 时出现字体错误。虽然 inkscape 有“-T”选项可以将文本转换为路径,但是当你使用 tikzpicture 时,这个选项有时不起作用。
答案4
这是一个将 tex 中的数学表达式转换为 svg 的命令行工具(通过 pdflatex 和 pdf2svg):https://github.com/yannikschaelte/tex2svg
使用示例:
tex2svg '$\exp(i\cdot\pi) + 1 = 0$' out.svg
(免责声明:我是作者,因此可能有偏见。)