矢量图形(Vector Picture, SVG, PDF)转TiKZ代码
在使用LaTeX的过程中,我们需要往往需要使用一些图片,譬如,在样式文件中,但是如果在样式文件中使用外部的图片,总感觉不是那么地舒服「请原谅强迫症」。因此,想办法将图形内嵌入LaTeX文件。
首先,我们需要知道如下的知识:
- TiKZ是LaTeX绘图最成功的语言(之一);
- 图像分为位图与矢量图;「这一点不知道请自行百度或Google,已经有太多的讲解,在此不再赘述〕
- 矢量图形的常见格式:PDF、EPS、emf、wmf、ps、SVG、Tiff;「注意,这里说的是矢量图形的格式,并没有说这些格式一定是矢量图形,事实上,其中大部分图形均支持位图」
因此考虑将PDF中的矢量图形「后文中的PDF如不加说明是指存储矢量图形的PDF,另外将该类PDF以图像简称」转换为TiKZ代码。由于PDF中也是有一点的存储规则,在实际阅读时,由PDF阅读器进行渲染「与位图不同,位图基本上是拷贝,当然会加上缩放、解压缩等操作」。因此如果可以将PDF的语言翻译为人类可理解的语言,后面就可以通过编程来完成。按照这个思路,在网上搜索,但是没有找到相关的内容。并且我们直接以记事本(不是Windows自带的记事本,而是Notepad++、Notepad2、Notepad3、Sublime、Emeditor、UltraEditor、EditPlus等文本编辑器)打开,可是看到里面的内容大都不可读,如下:

所以,暂放弃将PDF转换为TiKZ代码。
因此尝试其他格式的矢量图形。在尝试上面的矢量图形之后,发形SVG的图形是明码「原谅我滥用术语,但是我认为很贴切」,所以将此内容转换为对应的TiKZ是具有可行性的。
由于继续在网上搜索,让我找到了如下的内容:
- How to export svg to tikz
- Converting an SVG image to TikZ code
- Exporting from Inkscape to LaTeX - via TikZ
于是,剩下的内容就简单啦,下载InkScape,安装插件inkscape2tikz或者是svg2tikz,「由于我装了两个,不知道是哪个起了作用,不想探究竟了」。插件安装方法见:How do you install extensions on windows?,即将对应的*.inx及对应文件目录下的所有文件「通常包含*.inx及另外的*.py文件,其中__init__.py是空文件,放心覆盖。」全部复制到安装目录下的share/extensions文件夹下,重启即可。安装成功后可在【Extensions→Export】下发现【Export to TikZ path】。

接下来的事情就简单了,打开对应的*.svg文件,导出为TiKZ路径,在导出的时候可以参见下面的设置。

个人比较喜欢放到剪贴板,如果没有勾选【Export to TikZ path】,则需要在下面的【Export to TikZ path】里填入文件名称,需要包含路径,不然的话,直接导出在插件所在的目录。
PS;上文只说了有SVG及PDF等格式的文件,没有说是如何转换的。实际上很简单,可以使用矢量图形编辑软件,如Adobe Illustrator/CorelDraw等软件完成。通用步骤是:新建文档,导入对应的文件「可拖拽完成」,另存为或者导出,在另存为或者导出的选项卡里选择对应的格式即可。
PS:源代码及试用文件见:链接: https://pan.baidu.com/s/1lGmB2CzczfAFP8y_J045cg 提取码: fky4
转载请保留作者及原网页:矢量图形(Vector Picture, SVG, PDF)转TiKZ代码
矢量图形(Vector Picture, SVG, PDF)转TiKZ代码的更多相关文章
- 把上传过来的多张图片拼接转为PDF的实现代码
以下是把上传过来的多张图片拼接转为PDF的实现代码,不在本地存储上传上来的图片,下面是2中做法,推荐第一种,把pdf直接存储到DB中比较安全. 如果需要在服务器上存储客户端上传的文件时,切记存储文件时 ...
- matplotlib绘制矢量图像(svg),pdf and ps文件
机器学习的过程中处理数据,会遇到数据可视化的问题. 大部分都是利用python的matplotlib库进行数据的可视化处理. plt.show() 默认都是输出.png文件,图片只要稍微放大一点,就糊 ...
- Qt5实现文本编辑器(附图片转PDF与详细代码)
1. 功能介绍 老规矩,我们直接上截图 这是主界面 文件菜单界面 编辑菜单界面 设置菜单界面 关于菜单界面 2. 功能演示 设置字体颜色 设置字体大小 点击关于菜单 点击关于Qt菜单 会自动跳转到Qt ...
- word 转 pdf,c#代码
通过使用 C# 控制 office 软件 com 组件转 pdf 1 word 转 pdf 方案二:可以使用 netoffice 进行转换 参考文档:https://netoffice.io/docu ...
- iText实现导出pdf文件java代码实现例子
///////////////////////////////////主类////////////////////////////////////////// package com.iText; i ...
- iOS生成PDF的关键代码-备忘
//此方法只是把当前页面的内容生成PDF并保存在沙盒中. //还需要做:把当前面没有显示的内容以分页的形式生成PDF,并把PDF读取并显示出来 //关于显示可以参考:念茜的博客 iOS开发笔记——PD ...
- 【推荐】推荐一本学习ExtJS4的好书《ExtJS江湖》(含pdf电子书和源代码下载地址)
最近在网上游逛,突然发现了一本介绍ExtJS 4框架的好书,书名叫<ExtJS江湖>,作者是大漠穷秋,个人感觉非常不错,书写得很幽默,很具有可读性,在此推荐给各位. 以下是这本书的介绍: ...
- 用Graphviz画简单依赖图示例
代码: digraph module { 0 [label="global.h"]; 1 [label="bst_operator.c"]; 2 [label= ...
- HTML5: SVG (可缩放矢量图形)
ylbtech-HTML5: SVG (可缩放矢量图形) 可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式.它由万维网联盟制定,是一个开放标准. 1. ...
随机推荐
- Windows系统调用中API的3环部分(依据分析重写ReadProcessMemory函数)
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中API的3环部分 一.R3环API分析的重 ...
- [HNOI2007] 理想正方形 二维ST表
题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入输出格式 输入格式: 第一行为3个整数,分别表示a,b,n的值 第二行至 ...
- SPDK发送和接收连接请求的处理
因工作需要分析了部分SPDK代码,主要梳理login请求以及响应的处理,供参考. 参考代码——SPDK代码实现(以PLOGI为例): SPDK处理PLOGI分为三个阶段: 第一阶段通过一条GET_PA ...
- TensorFlow2.0(9):TensorBoard可视化
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 图像处理笔记(二十):LAWS纹理滤波应用于缺陷检测
LAWS纹理滤波 texture_laws(Image, 原图像 ImageTexture, 输出值,滤波后图像 FilterType, 过滤器类型 Shift, 灰度值转换,滤波后的灰度值可能会比较 ...
- date命令查看与修改
在我们使用linux服务器时,肯定会遇到Linux服务器时间不准确的情况如何查看Linux系统的时间,如何修改Linux系统上的当前时间呢. 查看Linux系统当前时间: 命令: date +回车 修 ...
- 使用 Hexo,Material Theme 以及 Github Pages 搭建个人博客
准备条件 Node.js npm Git GitHub账号 开始搭建 hexo init Blog cd Blog npm install hexo-deployer-git --save npm i ...
- 五分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
买买买结算系统 一年一度的双十一购物狂欢节就要到了,又到剁手党们开始表演的时刻了.当我们把种草很久的商品放入购物车以后,点击"结算"按钮时,就来到了买买买必不可少的结算页面了.让我 ...
- 再谈 APISIX 高性能实践
2019 年 8 月 31 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·成都站,APISIX 主要作者王院生在活动上做了<APISIX ...
- fenby C语言 P33
#include <stdio.h> int main(void){ char *ps="my dream is to be a programmer"; printf ...