利用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
官方文档 。
该代码生成的图片为: