作者:Daniel
时间:2020年6月9日
Karl是一名中学数学老师,他担任学校数学组组长。学期快结束了,他现在正在准备出一套年级期末考试试卷。
作为一名数学老师,每年要准备各种数学文档——电子讲义、各种考试试卷、公开课ppt、甚至公众号里的文章。
没有接触LaTeX之前,word+powerpoint+几何画板是标配,要编写一份文档,各种切换忙不停:图文切换、公式文字切换、公式编辑器切换、画板与office切换;画起图来,鼠标是主要工具,画线、画圆、画多边形全靠按着鼠标左键拖来拖去,画好了,复制来粘贴去。一份文档准备下来感觉老眼昏花、腰酸背痛,简直太苦逼了!
一个偶然的机会,Carl接触到了LaTeX, 发现这一切工作居然可以在一个工作界面,完全靠敲击键盘就可以搞掂,鼠标仅仅偶尔用来移动一下光标。即使是画图,也是用键盘搞掂,基本上大脑里面想到什么,都可以通过敲击键盘完成。他的思想完全集中在内容本身,手指在键盘上跳舞,键盘发出有节奏的、好听的嚓嚓嚓的声音,那感觉简直像一位钢琴大师在演奏一首悠扬曼妙的音乐一般。枯燥的工作变成了一种艺术、一种享受,简直不要太酷了!
Carl忍不住要把他的新发现告诉他的同事,有了这样高效的工具,他们周末就有时间一起去钓鱼了!
为了让同事明白是怎么做到用键盘“画”图的,他准备一个简单的平面几何作图题:已知给定线段ABABAB, 求作:等边三角形△ABC\triangle ABC△ABC。
这可是一个古老的问题,两千三百多年以前,希腊数学家欧几里得在几何原本里画出的第一个图形就是等边三角形。那时还没有发明电脑,他是一手拿着直尺,一手拿着圆规,在昏暗的油灯下画出了这个图形,并从此定下了尺规作图的规矩。顺便说一句,中国的老话——不依规矩,不成方圆中的规矩就是圆规和直尺的意思。
Carl准备用TikZ的平面几何画图宏包tkz-euclide来作这个图。他惊奇地发现,电脑程序作图所用的思路居然与欧几里得的尺规作图法是一致的,难怪这个宏包的名字叫做euclide,原来是纪念数学大师Euclid的天才般的工作! 在WinEdit编辑界面,Carl熟练地输入下面的代码:
\documentclass{standalone}\usepackage{tkz-euclide}%%调用tkz-euclide宏包\usetkzobj{all}%%如果你的texlive是2020版本的,请删去这行命令!\usepackage{ctex}%%支持使用中文的宏包\begin{document}\begin{tikzpicture}\end{tikzpicture}\end{document}上面的这些是每份画图文档都需要的部分,可以保存成为一个空白文档,下次打开只需要输入中间部分的画图命令就可以了,需要注意的是,命令行中的百分号起注释的作用,并不执行什么动作。
接下来就是告诉同事如何画这个图形。他认为把一件复杂的工作分成若干简单的部分,然后逐步完成每个部分的想法不错,这样容易让人理解整个的思想,并抓住要点。
实际上,每次用tkz-euclide画平面几何图形都有四个步骤:
定义点集(Defining points);绘制图形(Drawing);标记图形(Marking);设置标签(Labeling)。为了更好地记住这些步骤,Carl将其称为DDML作图法。
本例使用DDML作图法的步骤为:
定义固定点 A ( 0 , 0 ) , B ( 3 , 2 ) A(0,0),B(3,2)A(0,0),B(3,2), 然后分别以 A , B A,BA,B为圆心, A B ABAB为半径作圆 A AA、圆 B BB,并取其交点为 C , D C,DC,D;(这一步的圆只是用来计算交点,并没有实际画出来)(1)画圆 A AA; (2)画圆 B BB; (3)画三角形 A B C ABCABC; (4)画 A , ⋯ , D A,\cdots,DA,⋯,D四个点;标记三个相等的边;设置点 A , ⋯ , D A,\cdots,DA,⋯,D的标签为 A , ⋯ , D A,\cdots,DA,⋯,D,设置 A B ABAB边为 c cc。拟好了腹稿,现在开始敲击代码吧,随着手指在键盘上欢快的跳跃,Carl只用了几分钟就敲好下面的命令:
\begin{tikzpicture}[scale=.5]% Defining fixed points\tkzDefPoint(0,0){A}\tkzDefPoint(3,2){B}%Defining other points by calculus\tkzInterCC(A,B)(B,A)\tkzGetPoints{C}{D}% drawings\tkzDrawCircle[blue,dashed](A,B)\tkzDrawCircle[blue,dashed](B,A)\tkzDrawPolygon[red,thick,fill=orange!80](A,B,C)\tkzDrawPoints[fill=red](A,...,D)% marking\tkzMarkSegments[mark=s||](A,B B,C C,A)% labelling\tkzLabelSegments[swap,below=2pt](A,B){$c$}\tkzLabelPoints(A,B,D)\tkzLabelPoints[above](C)\node[below right,text width=7cm,align=justify]at (8,8){ \large \textbf{作图:}\par\vskip 1em \emph{ 给定线段\textcolor{blue}{$AB$}, 作\textcolor{orange!80}{等边三角形}\textcolor{blue}{$\triangle ABC$}.}} ;\end{tikzpicture}这些命令都很好理解,也好记忆。编译一下就得到下面的效果图。Carl 做了一个深呼吸,凝视着这幅图形,心里充满了成就感!
关注公众号:大哉数学之为用,领取福利啦! 标题 【LaTeX微信交流加群:】
如果你希望交流LaTeX使用或者TikZ作图方面的问题,请先添加作者微信:niltxz,然后加入作者的LaTeX交流微信群。
【免费资料索取:】如果你需要LaTeX方面的安装、使用的入门学习材料,请在本公众号回复:latex0, 索取资料下载