请教一下,有没有人用latex画过图?代码生成的那种,不要插入图片的。 1.我之前都是用Tpx画的生成图片直接插入,请问Tpx画的图有什么办法可以直接转换成latex代码吗? 2.sage里面的图可以转换成latex代码,但是我直接插入latex,运行不了,我已经加了graphics,tikz的宏包。是还需要设置其他的环境吗? 3.latex工具栏里有一个diagram的选项,有一些常用的图,这个我也跑不出来,不知道是应该在什么环境下可以跑出来? 4.或者有其它好的方法吗?不需要一个点一点的去试位置的那种。

5 回答5

1
目前主要还是靠 `tikz` 等包提供的功能画图。 有网站可以生成和图对应的代码,例如 https://www.geogebra.org/
1
现在已经有的 比如 matlab2TiKZ 看看这里: [https://github.com/matlab2tikz/matlab2tikz](https://github.com/matlab2tikz/matlab2tikz) 比如, inkscape2tikz 也可以的, 地址: [https://github.com/halamalala/inkscape2tikz](https://github.com/halamalala/inkscape2tikz)
  • inkscape2tikz这个项目没有使用说明,readme太简略了,有点难懂。matlab2tikz还行,但是matlab可以直接修改图片,导出图片反而更方便 – 青莲剑仙 2019-09-29 19:44 回复
1
在LaTeX中用代码绘图主要有TiKZ和Asymptote两种方式,TiKZ代码可以直接嵌入到LaTeX中,Asymptote需要多带带来实现,然后用宏包实现图的插入。 个人极不推荐用其它软件转换成绘制代码,主要有3个原因: 1. 各类软件转换的代码,往往会有很多无法处理的“垃圾代码”,这可能会产生绘图效率低等 问题。 2. 各类软件转换的代码,特别是复杂一些图形,其代码可读性和可维护性都极低,不便于交流和协作,并且会给代码后期维护带来极大的困难。 3. 使用其它软件转换代码,必将对该软件产生依赖,这样会降低LaTeX代码的灵活性。 个人推荐,直接用TiKZ绘图,现在有大量专用宏包和开源实例代码,往往只需要简单调用宏包并能实例代码进行适当调整,就可以满足自己的需求。 建议用`texdoc tikz`阅读TiKZ的使用手册,以学习其基本语法和使用规则。
  • 对头,不能每次都编译,费时间,可以考虑用standalone文档类独立编译图。 – registor 2019-09-29 11:19 回复
1
1. 不建议使用其他绘图程序自动生成的代码,机器形成的代码很难读,而且有很多冗余的东西,人写的会简洁一些。 2. 不建议在文档中直接用代码画图,编译整篇文档,特别是长文档的时间成本太高了,想想你每次排版的时候都把插图重画一遍,这又是何必呢?当然,如果你的插图中有些内容和你的文本有交叉引用,那是另外一种情况。一般情况下,用代码画好,直接插入图片引用是比较方便的。
  • 是的,插入代码会造成编译费时间,建议每个图分别用standalone文档类来写。 – registor 2019-09-29 11:36 回复
0
谢谢大家,我后来找到了,除了tikz包加了 \usetikzlibrary{arrows,shapes} 就可以啦。 常用的library还有很多,但怎么知道什么时候加哪个,我还不是很清楚。 \usetikzlibrary{trees} \usetikzlibrary{matrix,arrows} \usetikzlibrary{intersections} \usetikzlibrary{shadows} \usetikzlibrary{positioning} \usetikzlibrary{calc,through} \usetikzlibrary{decorations.pathreplacing}
  • 看手册,没有别的方法。 – Chennanzhang 2019-10-14 13:36 回复

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。