图形和图像


LaTeX自身的图形绘制能力有限,所以在LaTeX中绘制图形一般都用各种图形包。 推荐使用的图形包有TikzPSTricks。 为了完整,此处仍然介绍LaTeX自身的图形绘制。

LaTeX所有的图形绘制命令必须放在一个“picture”环境中:

\begin{picture}(宽度,高度)(左下角横坐标,左下角纵坐标)
\end{picture}
其中“左下角坐标”连同括号是可选的,“宽度”、“高度”、“左下角横坐标”、 “左下角纵坐标”的值是相对于“\unitlength”的,它的默认值是1pt(也就是说 不用带长度单位,其长度单位是pt),不过你可以在绘图前改变它,比如:
\setlength{unitlength}{1.2cm}
\begin{picture}(宽度,高度)(左下角横坐标,左下角纵坐标)
\end{picture}
则上述值的实际大小是指定值乘以1.2cm。在秀文LaTeX编辑器中,该环境以源代码形式展现。

在图形环境中绘制命令有两个,绘制单个图形对象用

\put(横坐标,纵坐标){对象}
如果要将某个对象复制多次,组成复杂图形,可用命令
\multiput(横坐标,纵坐标)(横坐标增量,纵坐标增量)(重复次数){对象}
线段对象由命令
\line(斜率的x分量,斜率的y分量){长度}
表示,绘制一条线段可以这样:
\begin{picture}(1,1)
\put(0,0){\line(0,1){1}}
\end{picture}
圆对象由命令
\circle[*]{直径}
表示,如果带“*”号,绘制的是实心圆。绘制一个圆可以这样:
\begin{picture}(60,40)
\put(20,30){\circle{32}}
\end{picture}
箭头对象由命令
\vector(斜率的x分量,斜率的y分量){长度}
表示,绘制一个箭头可以这样:
\begin{picture}(60,40)
\put(30,20){\vector(1,0){30}}
\end{picture}
圆角矩形对象由命令
\oval(宽度,高度)[绘制区域]
表示,其中“绘制区域”是下列四个值中的一个:
含义
t上半部
b下半部
r右半部
l左半部
在绘制过程中随时可以用如下命令变换线的粗细:
\thicklines
\thinlines
\linethickness{粗细}
除了上述对象,对象还可以是文本或公式:
\begin{picture}(6,5)
\put(3.1,2.5){$c$}
\end{picture}
LaTeX还提供了几个“盒子”对象:
\makebox(宽度,高度)[位置]{盒子内容}
建立一个足够容纳其内容的矩形区域,其中“位置”指的是内容在盒子中的位置, 是下列四个值中的一个:
含义
t上边
b下边
r右边
l左边
\framebox(宽度,高度)[位置]{盒子内容}
建立一个带框的矩形区域,参数与前一个对象一样。
\dashbox(宽度,高度)[位置]{盒子内容}
建立一个带虚线框的矩形区域,参数与前一个对象一样。
\framebox{盒子内容}
用一个矩形框把内容包裹起来。

一些图形是以文件形式存在的,如ps/eps图形文件,还有就是图像,如bmp、 jpg、png等。要插入这些图形或图像,需要“graphicx”包:

\usepackage{graphicx}
可以用这个包提供的命令;
\includegraphics*[选项,选项,...]{图形图像文件名} \includegraphics*[左下角横坐标,左下角纵坐标][右上角横坐标,右上角纵坐标]{图形图像文件名}
“*”是可选的,主要目的是为了兼容旧的命令,可以不要。第二种形式的坐标也是同样目的。“选项” 都是“键=值”的形式,下表列出了这些键值的含义:
值的形式含义
bbbb=左下角横坐标 左下角纵坐标 宽度 高度将图形图像包含在指定的矩形区域内
bbllx bblly bburx bburybbllx=左下角横坐标 bblly=左下角纵坐标 bburx=右上角横坐标 bbury=右上角纵坐标同bb效果一样
natwidth natheightnatwidth=宽度 natheight=高度同bb=0 0 宽度 高度效果一样
viewportviewport=左下角横坐标 左下角纵坐标 宽度 高度只显示指定区域的内容
trimtrim=上 下 左 右分别指定上下左右四边各截去(值为正)或增加(值为负)多少
angleangle=角度旋转图形图像
originorigin=字母组合(稍后介绍)旋转原点
widthwidth=宽度要求的图形图像宽度
heightheight=高度要求的图形图像高度
totalheighttotalheight=高度要求的图形图像高度加上深度
keepaspectratiokeepaspectratio=true(或false)是否保持图形图像的纵横比
scalescale=缩放因子缩放图形图像
clipclip=true(或false)是否按边框裁剪图形图像
draftdraft=true(或false)是否只显示边框和文件名
在秀文LaTeX编辑器中,这条命令以源代码形式展现。除了“\includegraphics”命令,“graphicx” 包还提供了四个命令用于旋转和缩放对象:
\scalebox{水平缩放因子}[垂直缩放因子]{对象}
\resizebox{宽度}{高度}{对象}
\resizebox*{宽度}{总高度}{对象}
\rotatebox[选项,选项,...]{角度}{对象}
其中“选项”可以用两种形式指定旋转原点:
x=横坐标,y=纵坐标
origin=字母组合(稍后介绍)
字母组合的旋转原点中所用字母由下表给出:
字母含义
t
l
c中间
r
B基线
b
比如要缩放一个图片,可以用命令:
\includegraphics[scale=2]{tiger.eps}
也可以用命令:
\scale{2}{\includegraphics{tiger.eps}}

当图形图像太大,在当前页放不下时,你可能希望LaTeX自己找一个合适的地方 来放置,你可以这样:

\begin{figure}[位置]
\includegraphics[scale=2]{tiger.eps}
\caption{标题}
\end{figure}
其中“位置”连同方括号是可选项,如果不写,按缺省值。它决定了 LaTeX在哪儿放置:“h”表示就在此处,“t”表示在页的顶部, “b”表示在页的底部,“p”表示在一个专门的页。 在多栏的情况下,如果希望图形图像能跨栏,可以用
\begin{figure*}[位置]
\includegraphics[scale=2]{tiger.eps}
\caption{标题}
\end{figure*}

某些情况下,你可能想自己完全掌握图文混排的形式,“wrapfig”包 提供了将图形图像放在文本一边的命令。“picinpar”包提供了环绕的 命令。“picins”包提供了用盒子包围图形图像的命令。


目录