print命令允许您将绘图发送到打印机,或以多种格式保存绘图。例如,
print -dpsc
将当前图形打印到彩色PostScript打印机。并且,
print foo.pdf
将当前图形保存为名为 foo.pdf 的PDF(便携式文档格式)文件。
当前的图形工具包生成的图形显示非常相似,但不同的解释器在显示特殊文本和打印此类文本的能力上有所差异。通常,"tex"解释器(默认值)在屏幕显示和打印方面都是表现最全面的。然而,对于复杂文本公式的呈现,"latex"解释器是首选。"none"解释器则按原样逐字打印文本,这种方式可移植性非常好,但不支持粗体、斜体、上标、下标、希腊字母等。
当使用-painters渲染器(所有矢量格式的默认渲染器)打印时,可以考虑以下两个选项:
print函数会先将所有字符串的解释器设置为"latex",这意味着所有字符串必须是有效的LaTeX字符串。下面是一个使用-dpdflatexstandalone选项展示文本打印功能的完整示例:
x = 0:0.01:3;
hf = figure ();
plot (x, erf (x));
hold on;
plot (x, x, "r");
axis ([0, 3, 0, 1]);
text (0.65, 0.6175, ...
['$\displaystyle\leftarrow x = {2 \over \sqrt{\pi}}' ...
'\int_{0}^{x} e^{-t^2} dt = 0.6175$'],
"interpreter", "latex");
xlabel ("x");
ylabel ("erf (x)");
title ("erf (x) with text annotation");
print (hf, "plot15_7", "-dpdflatexstandalone");
system ("pdflatex plot15_7");
open plot15_7.pdf
此示例的结果可以在图15.7中查看。
图15.7:使用-dpdflatexstandalone包含文本的示例
() ¶(options) ¶(filename, options) ¶(hfig, …) ¶RGB = print ("-RGBImage", …) ¶格式化图形以进行打印,然后将其保存到文件、发送到打印机,或返回RGB图像。
filename定义输出文件的名称。如果文件名没有后缀,则会从指定的设备推断出后缀并附加到文件名后。当既没有文件名也没有"-RGBImage"选项时,输出将发送到打印机。各种选项和文件名参数可以按任意顺序给出,但图形句柄参数hfig如果存在,则必须放在第一位。
示例:使用PDF和JPEG格式打印到文件。
figure (1); clf (); surf (peaks); print figure1.pdf # 扩展名指定格式 print -djpg figure1 # 将生成"figure1.jpg"文件
如果第一个参数是图形对象的句柄hfig,则指定要打印的图形。默认情况下,打印由gcf返回的当前图形。
对于分页格式的输出,例如PostScript和PDF,页面大小由图形的papersize属性与paperunits属性共同指定。绘图在页面上的位置和大小由图形的paperposition属性指定。页面的方向由图形的paperorientation属性指定。
对于非分页格式——例如JPEG等图像格式——输出的宽度和高度由图形的paperposition(3:4)属性值指定。
print命令支持多种options:
-fh指定要打印的图形的句柄h。
示例:打印图形1。
figure (1); clf (); surf (peaks); figure (2); print -f1 figure1.pdf ## 等效的函数形式: print (1, "figure1.pdf")
-Pprinter设置未指定filename时绘图发送到的打印机名称。
示例:使用PostScript格式打印到名为PS_printer的打印机。
clf (); surf (peaks); print -dpswrite -PPS_printer
-RGBImage返回图形的M×N×3 RGB图像。图像的大小取决于格式化选项。这类似于对绘图进行屏幕截图,但可以更改格式化选项,例如分辨率或单色/彩色。
示例:获取图形图像的像素。
clf ();
surf (peaks);
rgb = print ("-RGBImage");
-image | -opengl-vector | -painters指定使用基于像素的渲染器(-image或-opengl)还是基于矢量的渲染器(-vector或-painters)。这相当于更改图形的"Renderer"属性。当图形的"RendererMode"属性为"auto"(默认值)时,Octave将为光栅格式(如JPEG)使用"opengl"渲染器,为矢量格式(如PDF)使用"painters"渲染器。这些选项仅受"qt"图形工具包支持。
-svgconvert (default)-nosvgconvert当使用-painters渲染器时,启用或禁用基于SVG的后端工具链,其增强特性如下:
对于"none"和"tex"解释器,实际字体嵌入到输出文件中,从而允许在所有矢量格式中打印任意字符和字体。
使用"latex"解释器的字符串通过路径对象渲染。这看起来很好,但请注意文本信息(字体、字符等)会丢失。
默认情况下,-painters选项使用三角形组合来渲染补丁和曲面对象。这可能导致查看文件时出现抗锯齿伪影。-svgconvert选项重建多边形以避免这些伪影(尤其适用于二维图形)。
允许在PDF格式中打印透明图形对象。对于PostScript格式,任何透明对象的存在都将导致输出被光栅化。
注意:如果Octave是使用早于5.13的Qt版本构建的,-svgconvert可能导致图像对象的渲染不准确。
-polymerge-nopolymerge-polymerge-all当使用基于SVG的后端-svgconvert时,面被渲染为三角形。在某些情况下,一些查看器可能会在三角形共享边的位置显示细线。这些选项控制是否将所有共享边的三角形合并为多边形(-polymerge-all,对于包含许多三角形——包括线条标记——的图形可能耗时较长)、仅合并连续多边形(-polymerge),或完全不合并三角形(-no-polymerge)。默认情况下,仅合并共享边的连续三角形,除非打印的图形包含补丁或曲面图形对象,在这种情况下,所有共享边的三角形都会被合并。
-portrait-landscape指定打印输出的绘图方向。对于非打印输出,输出的纵横比对应于指定方向上由"paperposition"属性定义的绘图区域。此选项等效于更改图形的"paperorientation"属性。
-fillpage-bestfit当使用基于页面的格式(PDF、PostScript、打印机)时,忽略"paperposition"属性,使绘图占据整个页面。-fillpage选项将拉伸绘图以占据页面,四周留有0.25英寸的边距。-bestfit选项将扩展绘图以在页面上占据尽可能多的空间,同时不扭曲绘图的原始纵横比。
-color-mono彩色或单色输出。
-solid-dashed强制所有线条分别为实线或虚线。
-noui不打印可能覆盖绘图的uicontrol对象(如按钮)。这是默认行为,并且如果不使用外部屏幕捕获工具,则无法在输出中包含uicontrol对象。
-rNUM位图的分辨率,以每英寸点数(DPI)为单位。对于图元文件和SVG,默认值为屏幕分辨率;对于其他格式,默认值为150 DPI。要指定屏幕分辨率,请使用"-r0"。
示例:高分辨率光栅输出。
clf ();
surf (peaks (), "facelighting", "gouraud");
light ();
print ("-r600", "lit_peaks.png");
-Sxsize,ysize光栅格式(包括PNG、JPEG以及非常规地包括SVG)的绘图大小,以像素为单位。对于所有矢量格式(包括PDF、PS和EPS),绘图大小以点为单位指定。此选项等效于通过设置图形属性paperposition(3:4)来更改输出的宽度和高度。当使用print函数的命令形式时,必须将xsize,ysize选项用引号括起来,以防止Octave解释器识别嵌入的逗号(',')。例如,写成"-S640,480"。
-tight-loose强制EPS文件使用紧密或宽松的边界框。默认值为紧密。
-preview为EPS文件添加预览。支持的格式有:
-interchange提供交换预览。
-metafile提供图元文件预览。
-pict提供PICT预览。
-tiff提供TIFF预览。
-append将PostScript或PDF输出追加到同类型的现有文件中。
-Ffontname-Ffontname:size-F:size对所有文本使用fontname和/或fontsize。某些设备会忽略fontname:fig等。
-ddevice可用输出格式由device选项指定,为以下之一(标有'*'的设备仅在Gnuplot工具包中可用):
矢量格式
svg可缩放矢量图形(Scalable Vector Graphics)。
pdfpdfcrop便携式文档格式(Portable Document Format)。pdf设备将图形格式化为打印在纸上。周围页面的大小和图形在页面内的位置由paper*图形属性定义。
如果您不想要周围页面,请使用pdfcrop。
注意:使用-nosvgconvert选项时,PDF继承与PostScript相同的限制(有限的字体集和缺乏透明度)。
eps(2)epsc(2)封装的PostScript(Encapsulated PostScript,级别1和2,单色和彩色)。
基于OpenGL的图形工具包始终生成PostScript级别3.0。除非使用-svgconvert选项(默认值),否则它们对文本的支持有限。限制包括仅使用ASCII字符(例如,无希腊字母)和仅支持三种基本PostScript字体:Helvetica(默认值)、Times或Courier。任何其他字体将被Helvetica替代。
ps(2)psc(2)与eps相同,只是图形格式化为打印在纸上。周围页面的大小和图形在页面内的位置由paper*图形属性定义。
pslatexepslatexpdflatexpslatexstandaloneepslatexstandalonepdflatexstandalone为绘图的文本部分生成LaTeX文件filename.tex,为剩余图形部分生成文件filename.(ps|eps|pdf)。图形文件后缀.ps|eps|pdf由指定的设备类型决定。带'standalone'选项生成的LaTeX文件可以直接由LaTeX处理。不带'standalone'选项生成的文件旨在从另一个LaTeX文档中包含。无论哪种情况,LaTeX文件都包含一个\includegraphics命令,因此在处理LaTeX文件时会自动包含生成的图形文件。写入LaTeX文件的字符串完全按照在绘图中的指定方式保存。如果使用了TeX模式解释器的任何特殊字符,则必须在处理LaTeX之前编辑该文件。具体来说,特殊字符必须用美元符号括起来($ … $),LaTeX识别的其他字符(如花括号)可能也需要编辑。pdflatex设备以及任何standalone格式在Gnuplot工具包中不可用。
epscairo*pdfcairo*epscairolatex*pdfcairolatex*epscairolatexstandalone*pdfcairolatexstandalone*使用Cairo渲染器生成输出。epscairo和pdfcairo设备与epsc设备同义。LaTeX变体为绘图的文本部分生成LaTeX文件filename.tex,为绘图图形部分生成图像文件filename.(eps|pdf)。'standalone'变体的行为与上述'epslatexstandalone'描述相同。
canvas*基于JavaScript的HTML5画布绘图,可在Web浏览器中查看。
emfmetaMicrosoft增强型图元文件(Microsoft Enhanced Metafile)。
figXFig。对于Gnuplot图形工具包,可以使用附加选项-textspecial或-textnormal(默认值)来控制是否应为图形中的文本设置特殊标志。
latex*eepic*LaTeX图片环境和扩展图片环境。
tikztikzstandalone*使用PGF/TikZ格式生成LaTeX文件。基于OpenGL的工具包创建PGF文件,而Gnuplot创建TikZ文件。tikzstandalone设备生成一个包含TikZ文件的LaTeX文档。
光栅格式
png便携式网络图形(Portable Network Graphics)。
jpgjpegJPEG图像。
tiftifftiffnTIFF图像,带LZW压缩(tif, tiff)或未压缩(tiffn)。
gifGIF图像。
pbmPBMplus。
dumb*ASCII艺术。
如果省略设备类型,则从文件扩展名推断;如果没有文件名,则作为PostScript发送到打印机。
-dghostscript_deviceGhostscript支持其他设备。一些示例如下:
ljet2pHP LaserJet IIP。
pcx24b24位彩色PCX文件格式。
ppm便携式像素映射文件格式。
有关可用格式和设备的完整列表,请输入system ("gs -h")。
当Ghostscript输出发送到打印机时,大小由图形的"papersize"属性决定。当输出发送到文件时,大小由图形"paperposition"属性定义的绘图框决定。
-Gghostscript_command指定调用Ghostscript的命令。Unix系统的默认值为"gs",Windows系统的默认值为"gswin32c"。
-TextAlphaBits=n-GraphicsAlphaBits=nOctave能够通过使用Ghostscript为各种打印机、位图和矢量格式生成输出。对于位图和打印机输出,使用Ghostscript的TextAlphaBits和GraphicsAlphaBits选项应用抗锯齿。默认位数分别为4和1。N的允许值为1、2或4。
-no-append-file-extension使用此选项时,filename按原样使用,即不会自动附加与文件格式匹配的文件扩展名。
(h, filename) ¶(h, filename, fmt) ¶将图形对象h以图形格式fmt保存到文件filename。
如果h是图形对象的句柄,则保存该图形对象。如果h是其他图形对象的句柄,则保存包含该图形对象的图形。
可以使用print接受的所有设备格式。常用格式有:
ofigOctave图形文件格式(默认值)。
mfig两个文件:包含打开Octave图形文件filename.ofig代码的Octave m文件。
psPostScript。
eps封装的PostScript。
pdf便携式文档格式。
jpgJPEG图像。
png便携式网络图形图像。
emf增强型图元文件。
tifTIFF图像(已压缩)。
如果省略fmt,则从filename的扩展名提取。没有扩展名时的默认格式是"ofig"。
clf (); surf (peaks); saveas (1, "figure1.png");
另请参阅: print.
(orientation) ¶orientation = orient () ¶(hfig, orientation) ¶orientation = orient (hfig) ¶查询或设置当前活动图形或由句柄hfig指定的图形的纸张方向。
有效的orientation值为"portrait"(纵向)、"landscape"(横向)或"tall"(加长横向)。加长横向与横向类似,但图形被缩放以填满整个页面,而不会保留绘图框的纵横比。
在调用print时,页面方向用于配置输出页面方向。如果不带参数调用orient,则返回当前图形纸张方向的字符串。
从Octave 6.2.0开始,如果未指定图形句柄,orient使用由gcf返回的当前图形。
另请参阅: print.
(filename) ¶(h, filename) ¶(h, filename, fmt) ¶将图形句柄向量h指定的图形对象保存到文件filename中。
如果存在,fmt指定保存文件的格式,为以下之一:
默认格式为-binary以最小化存储空间。
编程说明:当生成用于最终出版的图形时,请使用print或saveas。当需要能够继续将图形作为Octave对象编辑时,请使用hgsave/hgload。
另请参阅: hgload, hdl2struct, savefig, saveas, print.
h = hgload (filename) ¶[h, old_prop] = hgload (filename, prop_struct) ¶将filename中的图形对象加载到图形句柄向量h中。
如果filename没有扩展名,Octave将尝试查找不带默认扩展名.ofig的文件以及带该扩展名的文件。
如果提供了结构prop_struct的元素,则用于覆盖filename中存储的顶层对象的属性,而filename中保存的原值将存储在old_prop中。old_prop是一个大小与h匹配的元胞数组;每个元胞包含一个结构,该结构包含在覆盖之前的现有属性名称和值。
另请参阅: openfig, hgsave, struct2hdl.
(filename) ¶(…, copies) ¶(…, visibility) ¶h = openfig (…) ¶从filename读取保存的图形窗口,并返回图形句柄h。
默认情况下,filename为"Untitled.fig"。如果未指定完整路径,则打开的文件将是加载路径中找到的第一个文件。如果找不到filename且没有扩展名,将在加载路径中搜索第一个扩展名为".fig"或".ofig"的文件(按此顺序)。
copies是一个可选输入,指示是否应创建新图形("new"),或是否可以重用现有图形("reuse")。当现有图形的"FileName"属性与指定的输入filename匹配时,可以重用该图形。当图形被重用时,它变为活动图形并显示在其他图形之上。如果图形在屏幕外,则会被重新定位到屏幕上。copies的默认值为"new"。
visibility是一个可选输入,指示是否显示图形("visible")或不显示("invisible")。当visibility作为输入提供给openfig时,它将覆盖filename中存储的可见性设置。
另请参阅: open, hgload, savefig, struct2hdl.
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2