LaTex (tikz) 转换为图像
2.52 MB
37 页
0 下载
30 浏览
0 评论
0 收藏
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
概览 | ||
LaTex (tikz) 转换为图像 发布 1.0.0 高斯羽 博士 (Dr. Gāo, Sī Yǔ) 2019 年 10 月 24 日 目录 1 系统和软件 3 1.1 转换软件的使用理由 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 软件的安装和配置 5 2.1 配置系统环境变量 Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 测试是否成功修改 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 极简教程 7 3.1 转换为 SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 转换为 PNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3 转换为 EMF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 转换为 EPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4 LaTex standalone 包的配置 11 4.1 standalone 的转换命令配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2 编译命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.3 简例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5 转换流程 17 5.1 转换为 SVG 之流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.2 转换为 PNG 之流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.3 转换为 EMF 之流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.4 转换为 EPS 之流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6 脚本详解 25 6.1 mk_folder.bat 详解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.2 gs_split_pdf.bat 详解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.3 pdf_to_svg.bat 详解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.4 pdf_to_png.bat 详解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 7 一步到位 29 7.1 一步转换成 SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 i 7.2 一步转换成 PNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 7.3 一步转换成 EMF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.4 一步转换成 EPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 8 总结 33 ii LaTex (tikz) 转换为图像, 发布 1.0.0 此项目是一个关于把 LaTex 文档直接转换为各种图像的教程(在编译 TEX 文件时,同时生成单独 的图片)。此教程主要关注如何把 tikz 生成的,内嵌于 LaTex 生成的 PDF 文件中的图像转换为各种格 式的单独图片。 此项目会讨论到的图片格式如下 • SVG (矢量图) • PNG(位图) • EMF (Windows 系统上的矢量图) • EPS (印刷常用格式) 此项目的在于提供基于 Windows 系统的教程和例子。作者相信 Linux 用户有能力独自解决这个问 题。 此教程会提供软件安装和配置指南,并会结合例子进行讲解。 此教程认为用户已经对 LaTex 有一定的理解,因而不会对 LaTex 中之各种进行详解。 本教程将会详尽讲解流程。若只想快速使用而不在乎原理,可先阅读软件的安装和配置 然后按照极 简教程 中之步骤执行即可。 目录 1 LaTex (tikz) 转换为图像, 发布 1.0.0 2 目录 CHAPTER 1 系统和软件 此项目会用到如下的系统和软件,请先保证你已安装了它们。 • Windows 7 或 Windows 10 • texlive(2019 年的发布,免费) • LaTex 的 standalone 包(texlive 自带) • pdftocairo (texlive 自带,用于 PNG 转换) • pdf2svg(Windows 编译版,免费。用于 SVG 转换) • inksacpe(0.92.4,免费。用于 EMF 和 EPS 的转换) • ghostscript (9.50,免费。用于 PDF 文件的分页) 1.1 转换软件的使用理由 此项目选择的转换软件主要基于以下理由。 • 此项目坚持所有使用的转换软件必须为免费 • 转换结果必须是一页 PDF 一张图 • 当把 PDF 转换为矢量图时,必须为真正的矢量图,而不是包裹在矢量格式中的位图 – 因此,此项目不使用 ImageMagick,因其在转换矢量图时经常栅格化 • 当转为为矢量图时,字体应该嵌入而不是栅格化 • 转换命令应尽可能简单 • 使用的软件尽可能少以降低依赖性 3 LaTex (tikz) 转换为图像, 发布 1.0.0 注解: 尽管 inkscape 也可以进行 PNG 和 SVG 的转换,但 pdftocairo 和 pdf2svg 自带了多页到单页 的功能,使用便利,而且安装也简易,故而用此二软件分别进行 PNG 和 SVG 的转换而不使用 inkscape 。若使用 inkscape ,则需要先调用 ghostscript 对 PDF 进行分页,然后再转换。 4 Chapter 1. 系统和软件 CHAPTER 2 软件的安装和配置 软件的下载链接可在系统和软件 获得。若链接失效,请自行搜索。 • texlive 的安装过程比较长,请耐心等待(根据网速而定,可能需要数十分钟到数小时不等)。 – texlive 自带 standalone 包和 pdftocairo • inkscape 和 ghostscript 可采用默认安装或者改变一下安装路径(非 C 盘) • 关于 pdf2svg ,请在 github 页面下载 zip 压缩包,然后解压出对应系统位元的版本(32 位或 64 位)。之后把解压出来的文件夹路径加到系统的环境变量 Path 中即可。 • 请保证所有软件的路径都加到系统环境变量 Path 中,否则 Windows 的 CMD 会无法找到它们(除 非用完整路径)。此点会在配置系统环境变量 Path 详述。 2.1 配置系统环境变量 Path 当在 CMD 中键入非完整路径时,譬如调用 pdftocairo 时,只键入“pdftocairo”而不是它完整的 安装路径时(譬如“c:\一些文件夹\pdftocairo.exe”),系统会查找保存在 Path 变量中的路径,看能不能 找到。故此,为了便利和兼容,一般情况下软件安装时都会把自身重要的路径加到 Path 中。 当然,也有列外的情况,比如不用安装的软件(譬如 pdf2svg ),或者用户没有修改环境变量的权 限。这些情况下就需要手动把路径加到 Path 中。权限不足的用户需要管理员的帮助,或者进行提权。 在 Windows 上配置环境变量有好几种方法,此处描述基于 Windows 7 的一种方法。Windows 10 的 方法基本一样,只不过微软把界面做了一些优化。 警告: 注意,在改动环境变量时请先进行备份。 步骤如下。 5 LaTex (tikz) 转换为图像, 发布 1.0.0 1. 打开系统的控制面板 2. 点击右上角的查看方式并设为大图标 3. 点击“系统” 4. 点击“高级系统设置” 5. 点击“环境变量” 6. 选中“系统环境变量”下的 Path 7. 点击“编辑” 8. 在弹出的窗口中,复制所有路径并保存到用以备份用的纯文本文件 9. 在弹出窗口的路径结尾,键入分号“;”(英文的),之后粘贴入需要加入的文件夹路径(不要把文件 的完整路径加进去)(Windows 10 有友好的 GUI,不需要键入分号) 10. 点击所有确认键 2.2 测试是否成功修改 假设加入的是 pdftocairo 的路径,那么,打开 Windows 的 CMD,键入如下命令: pdftocairo --help 如果配置 Path 成功,那一系列的帮助信息将会显示在 CMD 里面。如果不成功,那 CMD 会说找 不到 pdftocairo 。 注解: 可能需要重启电脑 你可能需要重启电脑才能令环境变量生效。若重启后仍没有生效,则证明配置错误。 一般来说,texlive 会自动添加路径,但 inkscape ,ghostscript 和 pdf2svg 都需要手动添加路 径。 6 Chapter 2. 软件的安装和配置 CHAPTER 3 极简教程 本章意在提供最简短而必要的步骤,以使用户快速上手。 在应用本章步骤前,请先保证所有需要的软件和配置已完成。 3.1 转换为 SVG 1. 把本教程附带的 util 文件夹复制到需要转换的 TEX 文件所在之目录下。 2. 对需要转换的 TEX 的文件的 documentclass 进行如下配置: 1 \documentclass[tikz, convert, convert={outext=.svg, command=\unexpanded{ 2 % 'out_svg' 是用来存放 SVG 的文件夹 3 % 'out_svg' 是用來存放 SVG 的文件夾 4 % 'out_svg' is the destination folder for SVG files 5 call ./util/mk_folder out_svg 6 && cd /d out_svg 7 && call ../util/pdf_to_svg ../\infile\space \outfile\space 8 }}]{standalone} 3. 使用 -shell-escape 参数对 TEX 文件进行编译。例如(需要把尖括号,及其所包裹的内容更换成 你的 TEX 文件的文件名): xelatex -synctex=1 -interaction=nonstopmode -shell-escape < 你 TEX 文件的 文件名>.tex 4. 转换好的 SVG 文件将存放在 out_svg 文件夹下。 7 LaTex (tikz) 转换为图像, 发布 1.0.0 3.2 转换为 PNG 1. 把本教程附带的 util 文件夹复制到需要转换的 TEX 文件所在之目录下。 2. 对需要转换的 TEX 的文件的 documentclass 进行如下配置: 1 \documentclass[tikz, convert, convert={command=\unexpanded{ 2 % 'out_png' 是用来存放 PNG 的文件夹 3 % 'out_png' 是用來存放 PNG 的文件夾 4 % 'out_png' is the destination folder for PNG files 5 call ./util/mk_folder out_png 6 && cd /d out_png 7 && call ../util/pdf_to_png.bat 600 ../\infile\space 8 }}]{standalone} 3. 使用 -shell-escape 参数对 TEX 文件进行编译。例如(需要把尖括号,及其所包裹的内容更换成 你的 TEX 文件的文件名): xelatex -synctex=1 -interaction=nonstopmode -shell-escape < 你 TEX 文件的 文件名>.tex 4. 转换好的 PNG 文件将存放在 out_png 文件夹下。 3.3 转换为 EMF 1. 把本教程附带的 util 文件夹复制到需要转换的 TEX 文件所在之目录下。 2. 对需要转换的 TEX 的文件的 documentclass 进行如下配置: 1 \documentclass[tikz, convert, convert={outext=.pdf, command=\unexpanded{ 2 % 'out_emf' 是用来存放 EMF 的文件夹 3 % 'out_emf' 是用來存放 EMF 的文件夾 4 % 'out_emf' is the destination folder for EMF files 5 call ./util/mk_folder out_emf 6 && call ./util/gs_split_pdf.bat out_emf \outfile\space \infile\space 7 && cd /d out_emf 8 && call ../util/pdf_to_emf.bat 9 && del /F *.pdf \sapce 10 }}]{standalone} 11 % inkscape 只能实现单张的 PDF 转换 EMF,所以要先用 ghostscript 把 LaTex 生 成的 12 % PDF 分页,然后调用 inkscape 做循环,把所有单页的 PDF 转换为 EMF,最后删除 所 13 % 有单页的 PDF,只保留 EMF。 14 % inkscape 只能實現單張的 PDF 轉� EMF,所以要先用 ghostscript 把 LaTex 生 成的 (下页继续) 8 Chapter 3. 极简教程 LaTex (tikz) 转换为图像, 发布 1.0.0 (续上页) 15 % PDF 分頁,然後調用 inkscape 做循環,把所有單頁的 PDF 轉�爲 EMF,最後�除 所 16 % 有單頁的 PDF,只保留 EMF。 17 % inkscape can only convert single page PDF to EMF. Therefore, the whole 18 % PDF generated by LaTex needs to be split into single pages first, by 19 % ghostscript. Then use inkscape in a loop to convert all single page 20 % PDFs into EMFs. Finally, delete all single page PDFs and keep only the 21 % EMFs. 3. 使用 -shell-escape 参数对 TEX 文件进行编译。例如(需要把尖括号,及其所包裹的内容更换成 你的 TEX 文件的文件名): xelatex -synctex=1 -interaction=nonstopmode -shell-escape < 你 TEX 文件的 文件名>.tex 4. 转换好的 EMF 文件将存放在 out_emf 文件夹下。 3.4 转换为 EPS 1. 把本教程附带的 util 文件夹复制到需要转换的 TEX 文件所在之目录下。 2. 对需要转换的 TEX 的文件的 documentclass 进行如下配置: 1 \documentclass[tikz, convert, convert={outext=.pdf, 2 command=\unexpanded{{ 3 % 'out_eps' 是用来存放 EPS 的文件夹 4 % 'out_eps' 是用來存放 EPS 的文件夾 5 % 'out_eps' is the destination folder for EPS files 6 call ./util/mk_folder out_eps 7 && call ./util/gs_split_pdf.bat out_eps \outfile\space \infile\space 8 && cd /d out_eps 9 && call ../util/pdf_to_eps.bat 10 && del /F *.pdf \sapce 11 }}}]{standalone} 12 % inkscape 只能实现单张的 PDF 转换 EPS,所以要先用 ghostscript 把 LaTex 生 成的 13 % PDF 分页,然后调用
|
下载文档到本地,方便使用
共 37 页, 还有
8 页可预览,
继续阅读
文档评分