\includegraphics 和 \includepdf 都使用 pdfTeX 从我的(R 输出)pdf 图表中删除所有副本(文本)

\includegraphics 和 \includepdf 都使用 pdfTeX 从我的(R 输出)pdf 图表中删除所有副本(文本)

我在 Mac OSX 上的 TexMaker 2.1 中使用 pdfTeX,版本 3.1415926-1.40.10 (TeX Live 2009) (format=pdflatex 2010.8.30)。我使用“更简单”的方法安装了任何 latex 包http://guides.macrumors.com/Installing_LaTeX_on_a_Mac- MacTex 批次。

我在 R 中将一些图表输出为 PDF,并希望将它们包含在我的 PDF 报告中。两者的includegraphics输入includepdf相同,只有线条和颜色,但没有图例或主标题中的文本。发生了什么?

这是我的 pdf 的链接:http://www.scribd.com/doc/43122065/Vf和一些示例文本:

\documentclass[11pt]{article}
\usepackage{graphicx}
\usepackage{pdfpages}
\begin{document}

Bladebla

\includepdf{Vf.pdf} 
\includegraphics{Vf.pdf}

What more bla bla
\end{document}

我只尝试了这段代码,得到了相同的结果,因此我的序言中的任何其他内容都不应干扰它。

答案1

注意:我是即将推荐的软件包的合著者,因此这是一个无耻的推销。

您可以尝试使用 tikzDevivce 创建图形,它允许 TeX 处理所有排版。这有望避免您遇到的任何字体问题,因为图形中的文本将使用与论文正文相同的字体,显示效果很好。

要在 R 中安装包:

install.packages('tikzDevice')

然后像往常一样制作图形,但使用tikz()而不是 来pdf()开始绘图输出:

require(tikzDevice)
tikz('myAwesomeRPlot.tex')

# Your plotting code here

dev.off()

tikzDevice 的输出是一个.tex文件,其中包含使用 TikZ(TeX、LaTeX 和 ConTeXt 的出色图形包)构建绘图所需的命令(但是,我们的输出目前仅与 LaTeX 兼容)。要将您的绘图包含在论文中,请使用\input而不是\includegraphics

% In your preamble:
\usepackage{tikz}

% Later on in your paper...
\begin{figure}
  \input{myAwesomeRPlot}
  \caption{Check out the spread on that distribution!}
\end{figure}

您还可以将standAlone=TRUE选项传递给tikz(),生成的.tex文件将是自包含的,可以由 LaTeX 排版,而无需将其包含在其他文档中。

如需更多信息和示例,请查看包装插图

希望这可以帮助!

附录

需要注意的是,tikzDevice 将所有的绘图文本作为 LaTeX 代码。这允许您执行以下操作:

curve({x^2 / 2},-1,1,main="Plot of $y=\\frac{x^2}{2}$",ylab="$\\frac{x^2}{2}$")

LaTeX 会排版图中的方程式。此行为会产生一些后果:

  • 每个 LaTeX 命令开头的反斜杠必须用另一个反斜杠转义,因为 R 将反斜杠视为转义字符。

  • 如果不希望将任何 LaTeX 特殊字符(如#$%^、等)视为 LaTeX 命令,则必须对其进行转义:_

    plot(...,main="I really want the dollar sign in \\$2.99!")
    
  • 如果绘图文本中的 LaTeX 代码需要特殊包,则需要让 tikzDevice 知道这一点。tikzLatexPackages有关详细信息,请参阅插图 3.1 节中的文档。

答案2

选项 1(中等简单,希望可以做到):当我从 pdfTeX 切换到 XeTeX 时,所有字体问题都消失了。我使用 TextMate,它有一个用于切换引擎的弹出列表。有关在 TexMaker 中执行此操作的说明请参见此处。XeTeX 处理字体比 pdfTeX 更容易。我曾遇到过无数导入 PDF 文件的问题,但 XeTeX 都能解决这些问题。YMMV。请记住:XeTeX 可以完美读取您的 LaTeX 文档并输出 PDF。没有任何理由(据我所知)坚持使用 pdfTeX。(提示某人跳到键盘上用 5、4、3... 敲出理由)

选项 2(很简单,如果您有软件的话肯定会有效):使用您的 Illustrator 或 PS STill by Stone 或(谷歌:轮廓 PDF 字体)副本并轮廓字体,这意味着您将它们从文本转换为路径(很像您的图表)。

选项 3(简单但质量较低):保存为高分辨率 PNG 文件。250dpi 左右的任何分辨率都可以。如果您认为这是不可接受的,我认为从其他来源引入的外部字体与文档设计不匹配已经违反了良好的设计,所以您不会因此而受到太大的损害!:)

附注:我不知道您使用 LaTeX 多久了,但我会给出一些免费建议。虽然 LaTeX 在处理外部插图方面做得很好,但它在处理外部文本方面做得不太好。每当我在 LaTeX 之外设计某些东西时,我总是会带回来并使用 PGF/TikZ 来完成。它不仅麻烦少得多,而且看起来也更好,您会发现一切都更易于维护。值得一提的是……

答案3

我通过手动保存 R 显示的图表(另存为图表窗口)然后导入该 PDF 而不是直接导入我的 R 代码生成的 PDF 来解决这个问题。

本质上,在 R 中:

pdf(file = ss.pdf)
plot(bla)
title("This will not show up when I include the pdf file in my Latex code")
dev.off()

然而:

plot(bla)
title("This will be fine if I "save as: ss.pdf" from the R window and then include in Latex")

答案4

pdfpages 包可能会有帮助!

\usepackage{pdfpages}

\includepdf[pages=1.4]{foo.pdf}

相关内容