这篇日志,主要收集一下自己在 Tikz 画图时候使用的一些小技巧。
1. Why TikZ ?
在开始前,先撒一碗毒鸡汤。
都说 LaTeX 学习成本高,这么说是不是会给人留下一个错觉,认为学会了后就好了?很不幸,就我目前用 LaTeX 的感受而言,这个会的要求非常高,很可能用了好多年 LaTeX 后你还没有达到会的程度,也就是说,这个高门槛的学习痛苦会一直伴随着我们。有些人宣扬的 LaTeX 更加方便快捷、节省时间(比如图表公式参考文献交叉引用那些),个人认为其实并不成立。因为,用来学 LaTeX,Debug,Google 答案,等待大神回复的时间,远远超过用 Word 来做上面那些复杂繁琐的事情所花的时间。使用 TikZ 也是同样的心酸,相比 Visio 和 PPT,我相信在一个硕士、博士周期内, 在画图上,TikZ 并不能在整体上节省我们的时间。不幸的是,由于 TikZ 使用的人比 LaTeX 又远远的少的多,所以学习 TikZ、Google 答案,等待大神回复将是一个更加漫长而痛苦的过程。
既然我把学用 TikZ 说得那么痛苦,那为什么自己还要坚持用 TikZ 来画图呢?主要基于下面两点:
- TikZ 可以精确控制安放的位置,而 PPT 上我在尝试很多图像块堆叠时位置间距没法统一,作为细节控不能忍受,这是我开始学习 TikZ 的唯一原因;
- 我已经开始尝到编辑文本代码而非鼠标操作、循环语句以及代码复用所带来的方便快捷,在痛苦的学习过程中,几次这样的高峰体验,是让我继续坚持且坚定的原因。
总结一下,就是希望能够用更加优雅的方式来解决问题,但这优雅背后的心酸只有自己知道了。
这篇日志,收集我自己在 Tikz 画图时候的一些小需求以及解决方法,如果能够降低你在学习 TikZ 过程中的痛苦,那就再好不过了。也是处于这个目的,我把日志名字取成了TikZ 止痛剂,希望这篇日志能够像布洛芬一样缓解学习 TikZ 的痛苦。
2. Drawing Tips
2.1 给插入图像添加边框
当将一些相近的纯色图像堆叠在一起的时候,有时需要在每张图像外边包一圈彩色的边框。这个需求,可以利用 north west
和 south east
这样的 Anchors 很容易的实现,举例的代码如下
1 | \node (a) [anchor = north west, inner sep = 0] at (0, 0) {\includegraphics[scale=1]{"./img"}}; |
第一行插入图像,命名为 a
,第二行,利用 a.north west
和 a.south east
指定矩形的对角线上的两点。
2.2 把图像变成平行四边形
有些时候,我们为了让图像有点立体感,希望能够将矩形的图像变成平行四边形。这个需求,利用 \draw
命令的 xslant
和 yslant
的两个属性值^xslant,可以很容易的实现。我们先一个自己画的矩形变成平行四边形:
1 | \tikz \draw[xslant = 1, fill = red] (0,0) rectangle (2,1); |
如果是图像的话,也差不多,代码为:
1 | \node[xslant = 1, draw] (a) at (0,0) {\includegraphics[scale = 1]{"./img"}}; |
3. Miscellaneous
3.1 Font larger than \Huge
?
基本的 LaTeX 提供了 10 个简单的声明式命令来调整文字的大小,其中最大的一个就是 \Huge
,字体尺寸为 24.88pt。在平时写论文的时候,基本不可能需要这么大的字体,更不用说比 \Huge
更大的了。但是,在 TikZ 作图时候,由于图片都很大,在不缩小图片的时候,\Huge
字体的文字就会显得比较小。那如何得到比 Huge
更大的字体呢?
一种方法是使用moresize
宏包^moresize,在导言区加入下面这句话,就可以使用 \HUGE
命令了,会得到更大一点的字体。
1 | \usepackage{moresize} |
另一种更普遍的方法是使用 \fontsize
命令^fontsize,前提是用的是 Type 1 字体(比如 mathptmx
or mathpazo
宏包),那么可以使用下面命令指定字体大小:
1 | {\fontsize{50}{60}\selectfont Foo!} |
Foo!
是文字内容,这里的 50
是尺寸,60
是行距,通常行距要比字体尺寸大 20% 左右。
致谢
最后,感谢 L 叔 在我第一次接触 TikZ 时给我提供的热心代码,以及 Dawn 在本文写作过程中给予的帮助,也感谢您一直阅读到这里,如果我的文章有错误或不足之处,请务必在评论中留言指出,千万不用客气,万分感谢~
Release Note
- 2017-03-03: 第一次提交。
参考资料
如果您觉得我的文章对您有所帮助,不妨小额捐助一下,您的鼓励是我长期坚持的动力。