tex2svg

tex2svg

有没有办法直接将 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

将产生:

tex2svg 输出,以 300 dpi 栅格化

注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

在我的窗户上,这是有效的,

安装:

  1. Ghostscript(选择64位)
  2. 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

(免责声明:我是作者,因此可能有偏见。)

相关内容