跳转至内容

LaTeX/导入图形

来自维基教科书,自由的教科书

导入外部图形

[编辑 | 编辑源代码]

LaTeX

入门
  1. 简介
  2. 安装
  3. 安装额外的包
  4. 基础
  5. 如何获得帮助

常用元素

  1. 文档结构
  2. 文本格式化
  3. 段落格式化
  4. 颜色
  5. 字体
  6. 列表结构
  7. 特殊字符
  8. 国际化
  9. 旋转
  10. 表格
  11. 标题创建
  12. 页面布局
  13. 自定义页面页眉和页脚‎
  14. 导入图形
  15. 浮动体、图形和标题
  16. 脚注和边注
  17. 超链接
  18. 标签和交叉引用
  19. 首字母

机制

  1. 错误和警告
  2. 长度
  3. 计数器
  4. 规则和支撑

技术文本

  1. 数学
  2. 高级数学
  3. 定理
  4. 化学图形
  5. 算法
  6. 源代码清单
  7. 语言学

特殊页面

  1. 索引
  2. 词汇表
  3. 参考文献管理
  4. 更多参考文献

特殊文档

  1. 科学报告(学士报告、硕士论文、博士论文)
  2. 信件
  3. 演示文稿
  4. 教师专区
  5. 简历
  6. 学术期刊(MLA、APA 等)

创建图形

  1. 介绍过程式图形
  2. MetaPost
  3. Picture
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 创建 3D 图形

编程

  1. Plain TeX
  2. 创建包
  3. 创建包文档
  4. 主题

杂项

  1. 模块化文档
  2. 协作编写 LaTeX 文档
  3. 导出到其他格式

帮助和建议

  1. 常见问题解答
  2. 技巧

附录

  1. 作者
  2. 链接
  3. 包参考
  4. LaTeX 示例文档
  5. 索引
  6. 命令词汇表

编辑此框编辑目录

可以使用 graphicx 包导入外部图形。最重要的命令是 \includegraphics。LaTeX 本身将图像视为普通文本,即具有特定高度和宽度的框。

\documentclass{article}
\usepackage{graphicx}
\begin{document}
The following image does not show any wombats
\includegraphics[height=\baselineskip]{example-image}.

\includegraphics[height=3cm]{example-image-a}\includegraphics[width=5cm]{example-image-b}

\includegraphics[height=3cm]{example-image-a} \includegraphics[width=5cm]{example-image-b}
\end{document}

包文档列出了 widthheight 选项以及其他选项。

使用 pdflatex 支持多种图形格式:pdfpngjpg。现代 LaTeX 安装也可以使用 eps 文件,但方式间接。

dvi 模式下的 LaTeX 只支持 eps 文件。


width=200px


可以将图像排列在矩阵中。只需要考虑图像的适当宽度即可。

\documentclass{article}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{showframe}
\begin{document}
\begin{center}
\includegraphics[width=.3\linewidth]{example-image}\quad\includegraphics[width=.3\linewidth]{example-image-a}\quad\includegraphics[width=.3\linewidth]{example-image-b}
\\[\baselineskip]% adds vertical line spacing
\includegraphics[width=.3\linewidth]{example-image}\quad\includegraphics[width=.3\linewidth]{example-image-a}\quad\includegraphics[width=.3\linewidth]{example-image-b}
\end{center}
\end{document}

三张图像排成一行,每张图像的宽度仅为可用行宽的 30%,相对于下方文本居中。

Different images can be aligned in a matrix shape easily.


如果要添加标题并让 LaTeX 跟踪编号,请查看浮动体部分

转换图形

[编辑 | 编辑源代码]
注意

还应该查看导出到其他格式,了解其他可能性。

epstopdf

可以使用epstopdf 实用程序(包含在同名包中)将 EPS 转换为 PDF。此工具实际上由pdflatex在加载 graphicx 包时,在后台将 EPS 文件转换为 PDF。此过程对用户完全不可见。

可以使用命令行批量转换文件。在 Bourne Shell(Unix)中,可以通过以下命令实现:

$ for i in *.eps; do epstopdf "$i"; done

在 Windows 中,可以通过将以下行放在 批处理文件(扩展名为.bat的文本文件)中,与图像位于同一目录

for %%f in (*.eps) do epstopdf %%f

然后可以通过命令行运行它。

如果 epstopdf 生成了一个包含小图形的整页,并且图形位于该页面的某个位置,请使用

$ epstopdf --gsopt=-dEPSCrop foo.eps

或尝试使用ps2pdf实用程序,该实用程序应已与 Ghostscript 一起安装(所有 TeX 发行版都需要)。

$ ps2pdf -dEPSCrop foo.eps

对最终的 PDF 进行裁剪。

eps2eps

如果上述所有方法都失败,可以在尝试其他转换之前,使用eps2eps 工具(另请参见下一节)简化 EPS 文件

$ eps2eps input.eps input-e2.eps

这将把所有字体转换为预先绘制的图像,这在提交出版物手稿时有时是可取的。但是,另一方面,字体不会转换为线条,而是转换为位图,这会降低字体的质量。

imgtops

imgtops 是一款轻量级图形实用程序,用于在光栅图形 (JPG、PNG 等) 和 EPS/PS 文件之间进行转换。

Inkscape

Inkscape 也可以将文件从多种格式转换到多种格式,无论是通过 GUI 还是通过命令行。例如,要从 SVG 图像中获得 PDF,可以执行以下操作:

$ inkscape -z -D --file=input.svg --export-pdf=output.pdf

可以在 LaTeX 文件中运行此命令,Template:LaTeX/package 包(在使用 --shell-escape 选项运行 (pdf)latex 时)可以使用 Inkscape 的 pdf+tex 导出选项来实现此目的,或者可以使用简单的宏。参见 如何在 LaTeX 中包含 SVG 图表?-- Stackexchange 参见 导出到其他格式 获取更多详细信息。

pstoedit

要正确编辑 EPS 文件,可以使用pstoedit 将其转换为可编辑格式。例如,要获得可编辑的 Xfig 文件,请执行以下操作:

$ pstoedit -f fig input.eps output.fig

要获得 SVG 文件(可以使用任何矢量图形工具(如 Inkscape)编辑),可以执行以下操作:

$ pstoedit -f plot-svg input.eps output.svg

有时 pstoedit 无法创建目标格式(例如,当 EPS 文件包含裁剪信息时)。

PDFCreator

在 Windows 下,PDFCreator 是一款开源软件,可以创建 PDF 和 EPS 文件。它安装了一个虚拟打印机,可以通过具有“打印...”菜单项的其他软件访问(几乎所有程序都有)。

光栅图形转换器

这三个程序的功能基本相同,可以进行大多数图形格式之间的转换。但是,Sam2p 是三者中最新的,似乎既能提供最佳质量,又能产生最小的文件。

PNG alpha 通道

[编辑 | 编辑源代码]

如果您在 PNG 格式中包含具有 alpha 通道的图形,Acrobat Reader 有时在显示颜色方面存在问题。可以通过删除 alpha 通道来解决此问题。在 Linux 上,可以通过以下命令实现:convert来自 ImageMagick 程序

convert -alpha off input.png output.png

将彩色 EPS 转换为灰度

[编辑 | 编辑源代码]

有时,彩色 EPS 图形需要转换为黑白或灰度才能满足出版物要求。可以使用 eps2eps(来自 Ghostscript 包)和 [1] 程序来实现此目的

$ eps2eps input.eps input-e2.eps
$ pscol -0gray input-e2.eps input-gray.eps

第三方图形工具

[编辑 | 编辑源代码]

我们这里不会讨论在 LaTeX 代码中创建的程序化图形(TikZ、PSTricks、MetaPost 及其同类)。有关该内容,请参阅 Introducing Procedural Graphics

您应该优先使用矢量图形而不是光栅图形,因为矢量图形的质量更高。光栅图形只应在照片情况下使用。任何类型的图表都应该是矢量图形。

正如我们之前看到的,LaTeX 处理

  • EPS 和 PDF 用于矢量图形;
  • PNG 和 JPG 用于光栅图形。

如果某些工具无法保存这些格式,您可能需要在导入之前转换它们。

矢量图形

[编辑 | 编辑源代码]
Dia

Dia 是一款跨平台的绘图工具,可以导出 eps 图像,或使用 tikz 包生成 tex 绘图。

Inkscape

另一个用于创建矢量图形的程序是 Inkscape。它可以在 Windows、Linux 或 Mac OS X(使用 X11)上原生运行。它使用 可缩放矢量图形 (SVG) 文件,尽管它可以导出到许多可以包含在 LaTeX 文件中的格式,例如 EPS 和 PDF。从 0.48 版本开始,有一个组合的 PDF/EPS/PS+LaTeX 输出选项,类似于 Xfig 提供的选项。 这里有说明 如何将您的矢量图像保存为 LaTeX 可以识别的 PDF 格式,并让 LaTeX 自动管理图像中的文本样式和大小。[1]。现在有了 svg 包[2],它提供了一个 \includesvg 命令,使用 Inkscape 将 svg 图形直接转换为 LaTeX 文档并包含其中。您可以查看 这个扩展示例

一个非常有用的插件是 textext,它可以导入 LaTeX 对象。这可用于将数学符号或 LaTeX 字体插入图形(然后可以将这些图形导入 LaTeX 文档)。

Ipe

Ipe 可扩展绘图编辑器是一款免费的矢量图形编辑器,用于创建 PDF 或 EPS 格式的图形。与 Xfig 不同,Ipe 在屏幕上以正确的尺寸显示 LaTeX 字体,这使得更容易将文本标签放置在正确的位置。Ipe 还具有各种捕捉模式(例如,捕捉到点、线或交点),可用于几何构造。

lpic

lpic[2] 提供了另一种解决方案,它允许对导入的图形进行 TeX 注释。请参阅 Labels in the figures

LibreOffice

也可以使用 LibreOffice Draw 将矢量图形导出为 EPS 格式,它是一款适用于 Windows、Linux 和 Mac 的开源办公套件。

TpX

矢量编辑器 TpX 将几何对象与文本对象分开。几何对象被保存到 .PDF 文件中,其余部分被保存到 .TpX 文件中,由 LaTeX 处理。用户只需在 TpX 编辑器中创建图形,然后使用命令 \input{...TpX} 从 latex 文件中调用 .TpX 文件。

Xfig

Xfig 是一款基本程序,可以生成矢量图形,这些图形可以导出到 LaTeX。它可以在 Unix 平台上安装。

在 Microsoft Windows 系统上,Xfig 只能使用 Cygwin-X 安装;但是,这需要高速互联网连接,并且需要在您的计算机上占用约 2 GB 的空间。使用 Cygwin,要运行 Xfig,您需要先启动“启动 X - 服务器”,然后启动“xterm”以调出一个终端。在这个终端中,键入“xfig”(不带引号)并按回车键。

或者,使用 WinFIG。WinFIG 试图在 Windows 计算机上实现 xfig 的功能。

有许多方法可以使用 xfig 为 LaTeX 文档创建图形。一种方法是将图形导出为 LaTeX 文档。然而,这种方法有一些缺点:线只能以 30 度和 45 度的倍数的角度绘制,带箭头的线只能以 45 度的倍数的角度绘制,不支持几种曲线等等。

另一方面,将文件导出为 PDF/LaTeX 或 PS/LaTeX,在绘制方面提供了更大的灵活性。以下是操作方法

  1. 在 xfig 中创建图形。在您需要 LaTeX 文本的地方,例如数学公式,在文本框中输入 LaTeX 字符串。
  2. 使用“编辑”工具打开每个文本框的属性,并将“特殊标记”字段中的选项更改为“特殊”。这告诉 LaTeX 在打开图形时解释这些文本框。
  3. 转到“文件”->“导出”,并将文件导出为 PDF/LaTeX(两部分)或 PS/LaTeX(两部分),具体取决于您使用 pdflatex 还是 pslatex 编译文件。
  4. 在您的 LaTeX 文档中,图片应该放置的地方,使用以下代码,其中“test”替换为图像的名称
    \begin{figure}
     \centering
     \input{test.pdf_t}
     \caption{Your figure}
     \label{figure:example}
    \end{figure}
    

    请注意,这就像包含图片一样,只是我们使用\includegraphics,而是使用\input。如果导出到 PS/LaTeX,则要包含的文件扩展名将是 .pstex_t 而不是 .pdf_t。

  5. 确保在文件中包含包 graphicxcolor,使用 \usepackage 命令,紧接在 \documentclass 命令之后,如下所示
    \usepackage{graphicx}
    \usepackage{color}
    

搞定!

有关使用 xfig 与 LaTeX 的更多详细信息,请参阅 xfig 用户手册这一章

其他工具

商业矢量图形软件,如 Adobe Illustrator、CorelDRAW 和 FreeHand,通常用于读取写入 EPS 图形。但是,这些产品仅限于 Windows 和 Mac OS X 平台。

光栅图形

[编辑 | 编辑源代码]
Adobe Photoshop

Photoshop 可以保存为 EPS。

GIMP

GIMP 具有图形用户界面,并且是跨平台的。它可以保存为 EPS 和 PDF。

绘图和图表

[编辑 | 编辑源代码]
通用地图工具 (GMT)

通用地图工具 (GMT),地图和各种高度可定制的绘图。

Gnumeric

Gnumeric,电子表格具有 SVG、EPS、PDF 导出功能

Gnuplot

Gnuplot,自 1986 年以来一直在生成科学图形。如果您想制作数学绘图,那么 Gnuplot 可以保存为任何格式。与 PGF/TikZ 配合使用可以获得最佳效果。

matplotlib

matplotlib,用 python 编写的绘图库,具有 PDF 和 EPS 导出功能。另一方面,它也具有 PGF 导出功能。有一些技巧可以将除 EPS 以外的格式导入 DVI 文档,但它们非常复杂。另一方面,将任何图像转换为 EPS 非常简单,因此不值得考虑它们。

R

R,统计和科学图形。

编辑 EPS 图形

[编辑 | 编辑源代码]

如上所述,可以从外部程序将图形内容作为 EPS 文件导入 LaTeX。但有时您想编辑或润色这些图形文件。EPS 文件可以使用任何文本编辑器进行编辑,因为它以 ASCII 格式进行格式化。在文本编辑器中,您可以实现简单的操作,例如替换字符串、更改边界框或略微移动项目,但任何进一步的操作都变得很麻烦。矢量图形编辑器(如 Inkscape)也可能能够导入 EPS 文件以进行后续编辑。这种方法也更容易编辑。但是,导入过程偶尔会修改原始 EPS 图像。

注释和参考文献

[编辑 | 编辑源代码]
  1. Johan B. C. Engelen. "如何在 LaTeX 中包含 SVG 图片" (PDF). mirrorcatalogs.com.
  2. Philip Ilten. "CTAN 上的 svg 包". ctan.org.


上一页: 页面布局 索引 下一页: 浮动体、图形和标题
华夏公益教科书