首页 > 分享 > LaTex图和表之直接在 LaTeX 中绘制图表

LaTex图和表之直接在 LaTeX 中绘制图表

LaTex图和表之直接在 LaTeX 中绘制图表

文章目录 LaTex图和表之直接在 LaTeX 中绘制图表介绍创建新图片定义绘图单位的大小定义图片的大小了解图片尺寸绘制图形了解偏移和原点 图片环境示例LaTeX2e 非官方参考手册中的示例 其他示例贝塞尔基本曲线椭圆形、线条和圆形组合线条、圆圈和文本

介绍

LaTeX的内置环境可用于创建图表/图形 - 您无需加载任何外部软件包即可使用它,但是已经编写了诸如pict2e和picture之类的软件包来增强或改进其功能。

本文简要介绍了picture该环境,所有示例都使用 pict2e 包。以下资源中提供了更广泛的文档和一系列有用的示例:

LaTeX2e 非官方参考手册
LaTeX2ε的简短介绍(见第5章)
维基百科
picture-mode在tex.stackexchange的问题标记
pict2e 软件包文档
与TikZ / PGF,MetaPost,PSTricks或Asymptote等强大而复杂的图形工具相比,picture环境似乎非常有限,但是,不时地,它可能足以满足您的需求。

创建新图片

创建新图片通常涉及以下步骤:

定义要使用的绘图单位的大小;声明一个定义图片大小的picture环境;使用 put、multiput或qbezier命令绘制各个图形组件。

定义绘图单位的大小

要创建图片,通常首先通过unitlengthpicture命令设置绘图单位,该命令必须在环境之外使用。例如,如果您编写

setlength{unitlength}{1cm}
绘图单位将被解释为1cm的倍数。默认单位为 1pt。

定义图片的大小

环境的一般形式如下picture

begin{picture}(width, height)(Xoffset, Yoffset) ... end{picture} 1234 width和height是以unitlength为单位的值,用于定义图片的大小。LaTeX使用这些值来创建一个框,其尺寸为

框(图片)宽度 = ×widthunitlength 框(图片)高度 = ×heightunitlength 12 (Xoffset, Yoffset)是一个可选坐标,用于设置图片的原点(左下角),表示为相对于默认位置的偏移量。 Xoffset和Yoffset也由的当前unitlength值确定的单位表示

请注意,Xoffset,Yoffset并且不影响LaTeX保留的空间量;例如箱体尺寸。

了解图片尺寸

我们将创建两张图片,两张图片都使用setlength{unitlength}{1cm}和每个图片width和height均为3个单位。

第一张图片使用默认原点:(0,0)

begin{picture}(3,3) ... end{picture} 123

第二张图片通过以下方式偏移(平移)原点:(1,1)

begin{picture}(3,3)(1,1) ... end{picture} 123

绘制图形

图形是使用一系列命令例如(put multiput qbezier)创建的,这些命令生成构建图片或插图的各个“组件”(或“对象”):

put(x, y){component}绘制component在(x,y)位置 。multiput(x, y)(dx, dy){n}{component}绘制componentn次:从(x, y)位置开始,然后以(dx, dy)为参照值反复平移,以重绘。qbezier[n](x1, y1)(x, y)(x2, y2):绘制一条二次贝塞尔曲线,其中:
n一个可选整数,用于确定所用点数绘制/生成曲线
(x1, y1)是曲线的起点
(x2, y2)是曲线的终点
(x, y)表示(二次)贝塞尔曲线控制点

component(组件)是通常使用图形基元(如line oval circle vector等)生成的图形元素 — 有关可用基元的详细信息,请参阅LaTeX2e 非官方参考手册和LaTeX2ε的简短介绍(见第5章)

注: pict2e包扩展了picture原始环境,提供了几个用于绘制贝塞尔曲线的命令:bezier qbezier cbezier和 qbeziermax 。

了解偏移和原点

在下面的示例中,put命令用于绘制彩色点,这些点指示图形中的关键坐标(位置)。这两个示例都使用fbox的命令在 LaTeX 创建的包含我们图片的框周围绘制边框,显示图形的边界框。

示例 1:使用默认原点

documentclass{article} usepackage[pdftex]{pict2e} usepackage[dvipsnames]{xcolor} begin{document} setlength{unitlength}{1cm} setlength{fboxsep}{0pt} This is my picturefbox{% begin{picture}(3,3) put(0,0){{color{blue}circle*{0.25}}hbox{kern3pt texttt{(0,0)}}} put(3,3){{color{red}circle*{0.25}}hbox{kern3pt texttt{(3,3)}}} end{picture}} end{document} 12345678910111213

在这里插入图片描述

该fbox命令在图形的边界框周围绘制一个边框,显示 LaTeX 保留的空间(区域):

图片宽度 = width x unitlength = 3 × 1cm = 3cm。
图片高度 = height x unitlength = 3 × 1cm = 3cm。
第一个示例显示,原点(0,0),位于begin{picture}执行命令的点,紧跟在文本“这是我的图片”之后。此外,右上角位于(3,3)
位置 ,(width,height)提供给begin{picture}(3,3)的值。

示例 2:将原点移位 (1,1)

documentclass{article} usepackage[pdftex]{pict2e} usepackage[dvipsnames]{xcolor} begin{document} setlength{unitlength}{1cm} setlength{fboxsep}{0pt} This is my picturefbox{% begin{picture}(3,3)(1,1) put(0,0){{color{blue}circle*{0.25}}hbox{kern3pttexttt{(0,0)}}} put(1,1){{color{orange}circle*{0.25}}hbox{kern3pttexttt{(1,1)}}} put(3,3){{color{red}circle*{0.25}}hbox{kern3pttexttt{(3,3)}}} put(4,4){{color{black}circle*{0.25}}hbox{kern3pttexttt{(4,4)}}} end{picture}} end{document} 123456789101112131415

在这里插入图片描述第二个示例显示了移位原点的效果,并突出显示了一些关键点:

fbox(width,height)(1,1)创建的边框显示图形的边界框(由 LaTeX 创建的框的宽度和高度)不受移位原点的影响:它仍然由提供给begin{picture}(3,3)
图片宽度 = width x unitlength = 3 × 1cm = 3cm
图片高度 = width x unitlength = 3 × 1cm = 3cm
绘图元素不会限制(剪切)到 LaTeX 创建的区域(边界框尺寸)。例如,蓝点和(0,0)坐标绘制在 fbox生成的边界线之外,这表示边界框。
用户需要确保绘图元素保持在定界框中,并且不覆盖任何周围的文本。
原点(0,0), 不再紧跟在文本“这是我的图片”之后,在 begin{picture}执行命令的点上:原点现在向左移动 1 个单位,向下移动 1 个单位右上角现在位于(4,4)该位置。

图片环境示例

LaTeX2e 非官方参考手册中的示例

LaTeX2e非官方参考手册包含许多picture环境示例,其中一些示例与在 Overleaf 中打开它们的链接一起在此处复制,允许您编辑和浏览代码。

示例 1:vector 命令

documentclass{article} usepackage[pdftex]{pict2e} begin{document}setlength{unitlength}{1cm}begin{picture}(6,6) % picture box will be 6cm wide by 6cm tallput(0,0){vector(2,1){4}} % for every 2 over this vector goes 1 upput(2,1){makebox(0,0)[l]{ first leg}}put(4,2){vector(1,2){2}}put(5,4){makebox(0,0)[l]{ second leg}}put(0,0){vector(1,1){6}}put(3,3){makebox(0,0)[r]{sum }}end{picture} end{document} 12345678910111213

此示例生成以下输出:
在这里插入图片描述

示例 2:qbezier、line、vector、thinlines 和 thicklines 命令
请注意,在qbezier中不使用该命令,而在put{...}中使用其他基元命令(如 line``vector)。

documentclass{article} usepackage[pdftex]{pict2e} begin{document} setlength{unitlength}{1cm} begin{picture}(8,4) thinlines % Start with thin lines put(0,0){vector(1,0){8}} % x axis put(0,0){vector(0,1){4}} % y axis put(2,0){line(0,1){3}} % left side put(4,0){line(0,1){3.5}} % right side thicklines % Use thicker lines for the qbezier commands qbezier(2,3)(2.5,2.9)(3,3.25) qbezier(3,3.25)(3.5,3.6)(4,3.5) thinlines % Back to using thin lines put(2,3){line(4,1){2}} put(4.5,2.5){framebox{Trapezoidal Rule}} end{picture} end{document}

123456789101112131415161718

在这里插入图片描述
示例 3:multiput 和 linethickness 命令

documentclass{article} usepackage[pdftex]{pict2e} begin{document} setlength{unitlength}{1cm} thicklines begin{picture}(10,10) linethickness{0.05mm} multiput(0,0)(1,0){10}{line(0,1){10}} multiput(0,0)(0,1){10}{line(1,0){10}} linethickness{0.5mm} multiput(0,0)(5,0){3}{line(0,1){10}} multiput(0,0)(0,5){3}{line(1,0){10}} end{picture} end{document} 1234567891011121314

在这里插入图片描述

其他示例

贝塞尔基本曲线

下面的示例使用qbezier该命令绘制贝塞尔曲线:

qbezier(1,1)(5,5)(9,0.5)
请注意以下几点:

该qbezier命令不在put命令中使用贝塞尔曲线的起点是(1,1)贝塞尔曲线的终点是(9,0.5)贝塞尔曲线控制点为(5,5)我们不使用可选整数来确定所用点数,绘制/生成贝塞尔曲线

documentclass{article} usepackage[pdftex]{pict2e} begin{document} setlength{unitlength}{0.8cm} begin{picture}(10,5) thicklines qbezier(1,1)(5,5)(9,0.5) put(2,1){{Bézier curve}} end{picture} end{document} 12345678910

在这里插入图片描述

椭圆形、线条和圆形

下面的示例演示 line``circle``oval命令,并注意它们在put{...} 命令中的用法:

documentclass{article} usepackage[pdftex]{pict2e} begin{document} setlength{unitlength}{1cm} thicklines begin{picture}(10,6) put(2,2.2){line(1,0){6}} put(2,2.2){circle{2}} put(6,2.2){oval(4,2)[r]} end{picture} end{document} 1234567891011

在这里插入图片描述

以下是这些命令的说明:

put(2,2.2){line(1,0){6}}:使用“方向矢量”绘制长线单位6(1,0)put(6,2.2){oval(4,2)[r]}:绘制一个以点(4,2)为中心的椭圆形。该参数是可选的,您可以使用[r]、[l]、[t]、[b] 来显示椭圆的右侧、左侧、顶部或底部。rltbput(2,2.2){circle{2}}:绘制一个以点(2,2.2)为中心的圆,其直径为2。

组合线条、圆圈和文本

可以组合不同的基本元素来创建更复杂的图片。在此示例中,将几条线和几个圆圈组合在一起以创建图片,并结合文本来标记点:

documentclass{article} usepackage[pdftex]{pict2e} begin{document} setlength{unitlength}{0.8cm} begin{picture}(12,4) thicklines put(8,3.3){{footnotesize $3$-simplex}} put(9,3){circle*{0.1}} put(8.3,2.9){$a_2$} put(8,1){circle*{0.1}} put(7.7,0.5){$a_0$} put(10,1){circle*{0.1}} put(9.7,0.5){$a_1$} put(11,1.66){circle*{0.1}} put(11.1,1.5){$a_3$} put(9,3){line(3,-2){2}} put(10,1){line(3,2){1}} put(8,1){line(1,0){2}} put(8,1){line(1,2){1}} put(10,1){line(-1,2){1}} end{picture} end{document}

12345678910111213141516171819202122

在这里插入图片描述

以下是使用的一些命令的摘要:

thicklines:这会增加线条的粗细。thinlines命令具有相反的效果。put(8,3.3){{footnotesize $3$-simplex}}:文本“3-单纯形”插入到该点(8,3.3),字体大小设置为footnotesize。相同的命令用于标记每个点。put(9,3){circle*{0.1}}:这将绘制一个填充圆,其中心(9,3)为0.1小直径(绘图单位),因此可以用作点。put(10,1){line(3,2){1}}:创建一条直线,从 开始,沿 长度为 1 的方向绘制(绘制单位)。(10,1)(3,2)

使用箭头
箭头也可以在环境中使用,所以下面是第二个示例:picture

documentclass{article} usepackage[pdftex]{pict2e} begin{document} setlength{unitlength}{0.20mm} begin{picture}(400,250) put(75,10){line(1,0){130}} put(75,50){line(1,0){130}} put(75,200){line(1,0){130}} put(120,200){vector(0,-1){150}} put(190,200){vector(0,-1){190}} put(97,120){$alpha$} put(170,120){$beta$} put(220,195){upper state} put(220,45){lower state 1} put(220,5){lower state 2} end{picture} end{document}

1234567891011121314151617

在这里插入图片描述
该命令使用与:vector line语法相同

put(120,200){vector(0,-1){150}}:绘制一个起始点为 (120,200)、长度为150且绘制方向为(0,-1)的矢量。

相关知识

LaTeX 计数器
LaTeX中的中英文字体设置、混排
Latex安装和基本使用(Mac+MikTex+TexStudio)
《Word排版艺术》读后感,兼谈LaTeX
希腊字母、花体字母的latex形式
【元旦快乐】HP Latex花样装饰应用产品冲击节日促销季
[latex]希腊字母的花体(异体)与斜体写法
LaTeX技巧838:LaTeX 公式上下花括号的交错
利用LaTeX写学校的学位论文模板(一)
Latex学习笔记——字母的变体(正体、花体)

网址: LaTex图和表之直接在 LaTeX 中绘制图表 https://m.huajiangbk.com/newsview1545312.html

所属分类:花卉
上一篇: 在线时间表
下一篇: Diagramming AI