利用LaTeX的TikZ宏包可以绘制图形,但是默认导出的为pdf格式。有时我们需要PNG等图片格式以便于插入在网页上,于是需要将pdf格式转换为图片格式。
安装ImageMagick 首先,我们去ImageMagick官网
下载合适版本的ImageMagick。下载完成后安装即可。安装完成后将安装目录添加到系统Path路径中(系统搜索环境变量)。
允许-shell-escape 不同编辑器允许-shell-escape的方式不同,可以在这个StackExchange问题下查找:How can I enable shell-escape?
。
此处以VScode中的LaTeX Workshop
插件为例。 打开VScode,确保已经安装LaTex Workshop。按下Ctrl+Shift+P,输入Preferences: Open Settings (JSON)。进入settings.json中添加如下代码
"latex-workshop.latex.tools": [ { "name": "latexmk", "command": "latexmk", "args": [ "-shell-escape", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "-outdir=%OUTDIR%", "%DOC%" ], "env": {} } ] 如果以前输入过,只需在"args"栏目中添加"-shell-escape"一项。这样就允许了-shell-excape。
LaTeX代码设置 为了导出PNG格式,我们选用standalone文档类,调用其中的convert选项来完成格式转换。下面给出一个例子:
\documentclass[convert={convertexe={magick}}]{standalone} \usepackage{tikz-cd} \usepackage{amsmath,amssymb} \usepackage{mathtools} \pagecolor{white} \begin{document} \begin{tikzcd}[row sep=huge] &D^{2}\arrow[dl,shift right]\arrow[dr,shift left,"+S^{1}"]{+S^{1}}&\\ \mathbb{R}^{2}\arrow[ur,shift right]\arrow[rr,"+\{\infty\}"] & &S^{2}\arrow[ul,shift left,"-\{p\}"] \end{tikzcd} $\xRightarrow{\text{generlization}} S^{n}=\mathbb{R}^{n}\bigcup \{\infty\}$ \end{document} 注意以下几点:
代码第一行的文档选项convert={convertexe={magick}}里面的magick为下载的ImageMagick中.exe文件的文件名(以后版本文件名也可能有变化,要注意改变)。网上其他相关的资料可能文档选项只有convert,因为ImageMagick早期版本可能文件名与现在不同。 转换后得到的PNG图片可能背景是透明的,\pagecolor{white}可以让背景变为白色。 默认得到的为300dpi的PNG格式图片。可以更改选项调整得到需要的图片,具体见:standalone官方文档
。 该代码生成的图片为: