我需要将我的 LaTeX 文档转换为 PNG。问题是,我还需要生成的图像尽可能短(高度方面)。我尝试过,latex
然后是dvipng
,但结果总是页面大小。例如,获取.tex
包含以下内容的文件:
\documentclass{article}
\begin{document}
Hello. This is a test.
\begin{equation}
L = 2
\end{equation}
\end{document}
如果我使用 编译它latex
,然后运行dvipng
,我会得到一个大小与整页相当的 PNG 文件。我需要的是 PNG 文件的高度刚好足以容纳所有内容。因此图像会在等式之后立即结束。图像仍然需要具有全宽(因为等式编号)。
有办法实现这个吗?
答案1
您可以standalone
为此使用该类。它会preview
自动加载包以将生成的 PDF 裁剪为内容。这使得使用变得pdfcrop
不必要。
只需将article
类替换为即可standalone
。(它article
在内部使用,但可以使用选项指定另一个类class
。)请注意,自 v1.0 以来,默认选项已从 更改为preview
。crop
后者更适合图片等,但不支持换行符。请preview
手动选择或使用varwidth
选项。
\documentclass[preview]{standalone}
\begin{document}
Hello. This is a test.
\begin{equation}
L = 2
\end{equation}
\end{document}
有一个border
类选项用于设置内容周围的边框(默认值为 0.5bp)。此选项接受一个(所有边的边框)、两个(左/右、上/下)或四个值(左、下、右、上)。
要将其转换为 PNG,我建议使用convert
命令图像魔法:
pdflatex file
convert -density 300 file.pdf -quality 90 file.png
这里的密度是 300 DPI,可以根据您的需要进行调整。质量设置选择压缩级别和其他内容,据我所知 90 是最佳值。
您还可以分别选择 X 和 Y 的 DPI 分辨率并调整生成的图像的大小,例如:
convert -density 600x600 file.pdf -quality 90 -resize 1080x800 file.png
更新2011/12/21:
新版本 1.0standalone
现在可以自动调用上述命令行(及其他命令行),例如:
\documentclass[convert={density=300,size=1080x800,outext=.png}]{standalone}
或者简单来说(使用默认设置 300dpi,不调整大小,PNG):
\documentclass[convert]{standalone}
这需要-shell-escape
编译器选项来允许在 LaTeX 文档中执行转换程序。
答案2
很容易忽略的一件事是页码。页码限制了最终图像的高度,因此最好将其省略。一种简单的方法是使用empty
页面样式。
当我为这个地方制作图像时,我会制作一个类似这样的文档:
\documentclass{article}
\thispagestyle{empty}
\begin{document}
Hello. This is a test.
\begin{equation}
L = 2
\end{equation}
\end{document}
然后运行pdflatex
它以获取 PDF;下次运行pdfcrop
(附带 TeXLive)使其尽可能小;最后使用 NetPBM 库工具将其转换为 PNG。(这是在 Unix 机器上。)所以我的工作流程是:
pdflatex document.tex
pdfcrop document.pdf
pdftoppm document-crop.pdf|pnmtopng > document.png
瞧:
答案3
如果您有 dvi 文件file.dvi
,则运行dvipng -T tight file.dvi
将生成一个 png,其中图像会自动尽可能地裁剪。(您可能还想使用标志设置输出分辨率-D
,例如dvipng -T tight -D 150 file.dvi
每英寸 150 点。)
正如安德鲁在他的回答中指出的那样,去掉页码是一个好主意。
答案4
如果你使用的是 Linux,你可以尝试pnglatex
。这很简单;要生成公式,你可以这样写
$ pnglatex -f "E=mc^2"
如果图像是使用创建的,pnglatex
您也可以逆转该过程。
$ pnglatex -r formula.png
E=mc^2
它支持管道。因此,假设formula.tex
有一个包含公式的文本文件,您可以使用一行代码生成并打开图像。
cat formula.tex | pnglatex | xargs eog
它有多个选项:
-b <color> Set the background color
-B <color> Set the border color
-d <dpi> Set the output resolution to the specified dpi
-e <environment> Set the environment for the formula (i.e. displaymath or eqnarray)
-f <formula> The LaTeX formula
-F <color> Set the foreground color
-h Print the help message
-H <header> Input file in header
-l <file> Log file
-m <margin> Set the margin
-M Strip meta information
-o <file> Specify the output file name
-O Optimize the image
-p <packages> A colon separated list of LaTeX package names
-P <padding> Set the padding
-r <file> Read an image and print the LaTeX formula
-s <size> Set the font size
-S Don't print image file name
-v Show version