TeX Live中的图像转换工具

206 阅读2分钟

TeX Live中的本格做法

一个简单的例子:

\documentclass{article}
\pagestyle{empty}
\begin{document}
\[E=mc^2\]
\end{document}
% 文件名:m.tex

如果你想得到.png文件呢,可以使用:

latex m && dvipng m 

如果你想得到.svg文件呢,可以使用:

latex m && dvisvgm -n m 

当然了,上面都是使用.dvi文件做处理,用.pdf文件处理,也没问题:

pdflatex m && dvisvgm --pdf m.pdf 

这就得到了SVG文件。

一点注记

我为什么没推荐pdftocairo 这个程序呢?虽然windows版本的TeX Live自带,但是其他平台的TeX Live可就不一定自带了。因为这是poppler中的程序,当前的TeX Live中的可执行程序已经不依赖poppler了,大部分都替换成了Paweł Jackowski的pplib了。 Windows版的TeX Live中保留,只能说是一种历史惯性。

鉴于其他答案都列举了pdftocairo的用法,此处就不再介绍了。

思路打开,把.pdf文件转换成图像,那做法就很多了。比如说MuPDF和GhostScript。这两个软件都是Artifex的软件,都能解析.pdf文件。

比如说MuPDF中的用法(转图):

mutool draw -o m.png m.pdf
mutool draw -o m.svg m.pdf
mutool draw -o m.ps m.pdf

而GhostScript的用法(在某些平台下面rungs可以替换为gs):

rungs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r300 -sOutputFile=m.png m.pdf

-sDEVICE=png16m里面的png16m在GhostScript里面称作device,它支持的device非常多:

 Available devices:
   bbox bit bitcmyk bitrgb bitrgbtags bj10e bj200 bjc600 bjc800 bmp16 bmp16m
   bmp256 bmp32b bmpgray bmpmono bmpsep1 bmpsep8 cdeskjet cdj500 cdj550
   cdjcolor cdjmono chameleon cljet5 cljet5c cljet5pr declj250 deskjet
   devicen display dj505j djet500 djet500c dnj650c docxwrite eps2write
   eps9high eps9mid epson epsonc fpng fs600 hocr ibmpro ijs imagen ink_cov
   inkcov jetp3852 jpeg jpegcmyk jpeggray laserjet lbp8 lj250 lj3100sw
   lj4dith lj4dithp lj5gray ljet2p ljet3 ljet3d ljet4 ljet4d ljet4pjl
   ljetplus lp2563 m8510 mswinpr2 necp6 nullpage oce9050 ocr paintjet pam
   pamcmyk32 pamcmyk4 pbm pbmraw pclm pclm8 pcx16 pcx24b pcx256 pcxcmyk
   pcxgray pcxmono pdfimage24 pdfimage32 pdfimage8 pdfocr24 pdfocr32 pdfocr8
   pdfwrite pgm pgmraw pgnm pgnmraw picty180 pj pjetxl pjxl pjxl300 pkmraw
   plan planc plang plank planm planr plib plibc plibg plibk plibm png16
   png16m png16malpha png256 png48 pngalpha pnggray pngmono pngmonod pnm
   pnmcmyk pnmraw ppm ppmraw ps2write psdcmyk psdcmyk16 psdcmykog
   psdcmyktags psdcmyktags16 psdrgb psdrgb16 pxlcolor pxlmono r4081 sj48
   spotcmyk st800 stcolor t4693d2 t4693d4 t4693d8 tek4696 tiff12nc tiff24nc
   tiff32nc tiff48nc tiff64nc tiffcrle tiffg3 tiffg32d tiffg4 tiffgray
   tifflzw tiffpack tiffscaled tiffscaled24 tiffscaled32 tiffscaled4
   tiffscaled8 tiffsep tiffsep1 txtwrite uniprint xpswrite

看到里面的docxwrite没有,其实你还可以使用下面的命令:

 rungs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=docxwrite -sOutputFile=m.docx m.pdf

是的,你是可以直接用GhostScript把.pdf文件转换成.docx文件的(当然,排版可能就丢失了)。

上面说的这几个软件,在与TeX Live相关的可用性上如下:

WindowsmacOS其他
MuPDF需要安装需要安装需要安装
GhostScript可用可用需要安装
pdftocairo可用需要安装需要安装