1.前言
其实之前我已经写过一篇文章来总结了部分的TiKZ的可视化编辑软件,但是自己后面又发现了有很多的好用的工具,然后就都去用了一遍,也体会到了各个工具的优劣。后面发现,在某些方面TiKZ还是有一定的局限性。我也就去了解了各种的矢量图绘制软件,于是就有了这篇矢量图绘制软件推荐。
但是感觉有的时候,其实真没有必要太过于追求矢量图,位图也挺好的。但是我折腾就要折腾到底,满足自己近乎变态的绘图要求。所以下面我的内容将不在限定于TiKZ,但是绝大多数(90%)的软件都是支持导出tikz的 ……
PS:为什么我要写这篇文章?
1.纪念自己曾经折腾TiKZ的这段经历
2.为了给没有入坑的人提供一点参考,让你们少走一点弯路2. 工具内容
相关的部分工具大致划分为:
分为绘图软件绘图语言PS: 其实这种划分并不太准确(欢迎讨论交流),同时也欢迎交流其他的矢量图绘制软件。3.工具使用介绍
3.0 TiKZ和PgfPlots
LATEX\LaTeX自带的tikz宏包肯定不必多说了吧,我的专栏里也有很多的相关的内容.
3.1 MetaPost
可以稍微的介绍以下 MetaPost\rm{MetaPost}
的内容。
MetaPost\rm{MetaPost} 是脱胎于 DKE 的 MetaFont\rm {MetaFont}的一个东西,感觉和TiKZ差不多. 你可以在你的电脑上本地执行MetaPost的文件,也可以使用如下的在线网站。具体的使用文档可以查看官方文档,只需要在你电脑的终端中输入如下的命令:操作示意图
1. 文件
一段简单的测试代码(使用样例), 把它保存为文件fig.mp
2. 编译
在命令行输入如下的指令:
3. 输出
然后你会得到如下的输出:
4. 查看
打开eps文件(可以使用Gsview)就可以看到内容了,如下:
3.2 Asymptote
个人感觉这个软件(语言), 挺好的。
软件的介绍(来自百度百科):
Asymptote 是一种为了绘制技术图形而设计的矢量图语言,其灵感来自 MetaPost,它具有 IEEE 标准的浮点数支持、原生的三维图形支持、灰度 /RGB/CMYK/HSV 等不同色彩指定方式以及类似 C++ 的语法。与 MetaPost不同,Asymptote 原生的支持多段路径(因此不局限于单连通区域)、填充图案、Gouraud 着色(shading)以及PostScript 图像(和pdf等)自己那段时间真的想把这个东西学会,我在学习的过程中看到它的语法和C差不多,而且文档也讲的挺详细的。
它有两种绘图模式:
BathMode (写为一个文件)InteractiveMode (命令行实时交互)重要的是用它来绘制二维和三维图形的方法感觉比TikZ简单多了,而且这个也是TeXLive自带的一个宏包, 可以和TiKZ类似, 可以直接写在.TeX文件中,直接编译。还可以支持生成交互模式的三维pdf格式文档。
PS:要使用交互功能需要使用支持JavaScript的pdf阅读器(比如Adobe Acrobat)。使用演示
1.BatchMode
2.InteractiveMode
视频中用到的MarkDown文档在这里!
3.3 MatLab2TiKZ 和 TiKZit
我在之前的一篇文章已经详细介绍过这两个东西了,这里就不介绍了。
3.4 TiKZ 和 GNUPlot 结合
对于这个软件,我只能用一个词来形容。
那就是 短小精悍。但是我用的不多。
以下为 单独的使用GnuPlot的演示:关于GnuPlot在LaTeX中的使用,可以参见我的那篇 文章中关于GeoGebra那一节。但是讲解的不是那么的详细,我在这里把GnuPlot在TiKZ中的使用详细介绍一下
在介绍怎么使用 TikZ 与 Gnuplot 之前,我们先说怎么编译。在 TEX 发行里,Gnuplot
并不包含在内。它的原理是 TikZ 调用 Gnuplot 之后,在编译的过程中,我们将会得到两
个中间文件:∙\bullet 1. filename.pgf-plot.gnuplot
∙\bullet 2. filename.pgf-plot.table
其中,前者是 pgf-plot.table 的设定文件,而后者就是调用 Gnuplot 之后产生的一个数据表
(点的坐标),然后 TikZ 调用这些点的坐标得到函数图。
为了能够使用 TikZ 与 Gnuplot,需要做两件事∙\bullet 1. 在电脑安装 Gnuplot
∙\bullet 2. 命令行加入参数【临时】: pdflatex –shell-escape filename.tex
或者是修改配置文件【永久】
vscode 的配置文件中加上–shell-escape.
如下图:3.5 Adobe Illustrator联合GeoGeBra
这里介绍的这个 GeoGeBra 的使用和之前那片文章的使用方法不太一样。那篇文章是使用的GeoGeBra导出TiKZ代码的功能,这里我们主要是利用 GeoGeBra生成pdf文档的方法联合
Adobe Illustrator绘制一部分的矢量图(数学笔记之类的)。PS:满足你排版数学矢量图笔记的需要AI的各个功能都很强的,但是数学方面不太行,主要体现在如下的几点:
∙\bullet 1. 不支持数学公式的输入
∙\bullet 2. 不能进行函数图像的绘制
所以为了支持数学公式的输入我们需要给AI添加一个插件:
latex2ai.这个是官方的项目地址,里边有各种的注意事项,好好阅读一下就行了,里边讲的还是很详细的。
对应的使用教程为演示如下:
1.公式使用方法和模板的配置
2.联合GeoGeBra
3.6 TiKZiT和MatLab2TiKZ
TiKZiT的使用可以参见我的上一篇文章
3.7 LaTeXDraw
也不知道是什么原因,我安装了Perl等一系列的插件之后,这个软件现在还是无法导出pdf,我在官方的主页也没有找到修复的方法。
但是除了不能导出pdf外,LaTeXDraw这个软件真的是好用的,导出PSTriks代码很方便。界面的设计也是十分的简洁,看着也很舒服。
3.8 PPT(PowerPoint)
你以为PPT就只能够做一下幻灯片??? NO!NO!NO!
其实很多发表的论文中的图都是使用PPT来绘制的,可以直接导出svg, 然后随便到网上找一个svg装pdf的网站即可,他们网站上还有非常多的好用的pdf工具,下面截取部分加以展示:
操作演示:
3.9 IPE
强烈推荐这个软件,目前我已经入坑这个软件了。主要的优点
\bullet 1. UI 设计精良,看着很舒服
\bullet 2. 软件的功能设计合理,快捷键人性化
\bullet 3. 具有良好的拓展性,可以安装诸多的插件。
\bullet 4. 方便绘制几何图形和函数图像
界面截图:
我的一些排版作品:
1.怎么安装插件?进入官网:Ipelets,把对应的 .lua代码文件复制到你IPE的目录 Ipelets下,如图(我自己安装的插件):
PS: 部分的插件安装还是需要参考官方文档.1.我的IPE插件
2.IPE学习
对应的视频教程: ipe教程
对应的实例教程: ipe实例教程
看完了上面的两个教程之后,你会觉得这就是一个为了 TiKZ而生的软件。
3.10 Inkscape
最近总算是有机会来接触Inkscape则会个软件了,感觉对于IPE就是碾压,IPE有的优点,Inkscape几乎都有,IPE没有的,InkScape也有。而且你还可以自己去调用它的API接口,很强。终于理解了为什么那个外国小哥要用Inkscape了 . . .
比如Inkscape中的LaTeX公式对象可以在InkScape中编辑,而不用去修改源码,这点胜过IPE和AI,也有官方的说明:
首先便是使得InkScape支持 \rm{\LaTeX} 了,很简单,直接无脑安装一个 TexText就可以了,下载地址:
然后稍微参考一下官方的安装教程就很安装好了。
注:
你的插件可能会报错:解决办法
把你的模板文件中的中文全部删掉,使用原始的模板文件,模板文件如下:
改了之后我还产生报错
我报错的原因
是我之前使用Scoop安装过一次InkScape,导致TexText还是去找原来路径下的InkScape。
解决
只需要使用windows的.bat文件把TexText重新安装一次就行了,不要使用GUI的安装方式。
报错二
想要在LaTeX中使用中文产生了如下的报错:
需要去修改TexText的模板文件
解决方法
模板增加为:
InkScape的插件
InkScape的插件是十分丰富的,其余的InkScape插件的安装地址
推荐安装的一个TeX代码相关的插件:GtkSourceView【64位】
作用(官方解释)
具体的使用效果
安装好的使用截图:
其余的功能就和AI是差不多得了,参考学习一下就行了。
3.11 Dia
他们的绘图实时渲染不怎么好,UI界面看着很难受。
但是内在很强大,支持多种格式的导出,如图(截取部分):
导出后的文件的渲染效果也很好。所以这告诉了我们一个道理,外在往往不是那么的重要。
导出的图形
3.12 TpX
这个软件的使用体验上面的Dia差不多。
软件下载: 地址界面截图:
3.13 FlowframTK
软件下载:地址
这个软件的原名其实是叫做Jpgfdraw,后来因为种种的原因,改成了这个名字。而且这个软件的安装方式也很奇葩。它依赖与Java环境,使用的是一个Java脚本来安装的,可以看看官方的安装教程:
安装好之后,可能你们会不知道在哪里打开这个应用,它不是我们熟知的 .exe, 也不是Linux下的 .sh, 它的启动是双击windows下的一个批处理脚本 .bat 文件,如下:
这个是它的界面,看看怎么样:
功能啥的,我稍微的体验了一下,感觉不太好。
应该还有提升的空间。
这个软件的官方文档(就在安装目录下)说明是十分的详细的,如果想要学习这个软件还是比较简单的。这个是它帮助文档的部分目录截取:
制作这个软件,作者还是很用心的 ~~~3.14 AxMath和AxGlyph
这两个软件可以和MS那一套结合,类似于MathType,但是个人感觉比MathType强一百倍。当然也可以单独的使用,就i类似于其他的软件了。AxMath主要是用于数学公式的编辑,AxGlyph主要是用于矢量图的绘制。但是…但是…
那个Axglyph有时导出pdf会报错,具体的bug原因没有找到。如果你习惯于使用MS那一套,那么这两个东西是你的不二之选。
PS: 这两个软件是付费的,也没有多贵,买了也算是支持国产吧【doge】下面就是这两个软件的使用截图:
0. AxMath使用演示
个人作品1.AxGlyph的演示
我选取一部分官网的图片,自己用它做的事也不多。
个人的作品2.官网使用截图
3.15. Mermaid
这是一个开源项目,下面是官方介绍:
Mermaid is a JavaScript-based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development.简要的概括就是:使用MarkDown语法来制作流程图,思维导图,表格等各种图的工具。项目地址如下:
官方仓库也给了许多的例子:
具体的安装
通过NPM安装在本地使用在线的编辑网站但是导出的矢量图是svg格式的,因为我们往往使用的都是pdf格式,所以我写了一个把svg转化为pdf的python脚本。【也可以用网上那种svg转pdf的网站】
下面演示一下我那个脚本的使用示例:
1. Shell脚本配置如下
2.Python脚本如下
PS:这个脚本只能够处理比较简单的转换工作,有时候会字体丢失4. 结语
这次推荐的软件和绘制语言,就是我最近的折腾内容了,其实挺那啥的。。。。
感谢优秀开源的的TeX排版系统!!!
感谢伟大的开源工作者!!!
正是它们的无私付出,才使得很多的优秀软件能够被我们使用!!!
本文使用 Zhihu On VSCode 创作并发布2.若无意中侵犯到您的版权利益,请来信联系我们,我们会在收到信息后会尽快给予处理!
3.本站为纯属分享资源站点,网站内所有资源仅供学习交流之用,并请于下载后24小时内删除,如果喜欢,请支持正版,谢谢。
联系方式(QQ):291534978
暂无评论内容