Inkscape → PDF → includegraphics → XeLaTeX → 更改颜色

Inkscape → PDF → includegraphics → XeLaTeX → 更改颜色

我有一个 SVG 文件,是使用 Inkscape 制作/编辑的。我想将此图像包含在我的论文中。svg 文件在这里:http://brussense.be/temp/theSVG.svg (由于 Inkscape 使用非标准功能,因此在大多数浏览器中无法正确呈现)

我使用 Inkscape 将其导出以获取此 PDF(v1.5):http://brussense.be/temp/PDFed.pdf (此文件在 Acrobat Pro X 中显示正常)

以下是将 PDF 包含到 LaTeX 文档中的 MWE:

\documentclass[a4paper]{report}

\usepackage[xetex,hiresbb]{graphicx}

\begin{document}

\begin{figure}[!h]
\centering
\includegraphics[width=\textwidth]{PDFed.pdf}
\caption{Some caption}
\end{figure}

\end{document}

我的问题是,当我用西拉特克斯(与pdfmx驱动程序)生成的 pdf 中图像的颜色明显发生了变化:http://brussense.be/temp/XeTeXed.pdf

我也尝试从 Inkscape 导出到 v1.4 PDF,但结果是一样的。

我知道这里有人问过一个非常类似的问题:\includegraphics PDF,颜色问题

但有两点不同:

  • 据我所知我的 svg 文件确实如此不是包含透明物体,也不alpha 混合(所有颜色的 alpha 通道均为 255),也不任何模糊或其他过滤器

  • 该问题特定于 pdftex,建议的解决方案导致 XeLaTeX 中出现编译错误

有人知道我该如何解决这个问题吗?我看到了解决这个问题的各种可能方法,但到目前为止我还没有成功:

  • Inkscape 中的一些设置更改
  • svg 文件中的一些(不可见的)变化
  • 对 PDF 文件进行一些后期处理(我已经使用过 ICC 配置文件等,但对此完全陌生)
  • 我的 LaTeX 代码有一些变化
  • XeLaTeX 或 xdvipdfmx 的一些参数
  • 还有别的吗?

答案1

查看 PDF 时,我看到一个 PageGroup(对象 19),因此\includegraphics PDF,颜色问题可能确实适用。尝试导出为 PDF 1.3 - 那时应该没有 PageGroup。

答案2

对于 pdflatex 使用:

\pdfpageattr {/Group << /S /Transparency /I true /CS /DeviceRGB>>}

对于带有 dvipdfm(x) 的 XeLaTeX,请尝试:

\makeatletter%
\special{pdf: put @thispage <</Group << /S /Transparency /I true /CS /DeviceRGB>> >>}%
\makeatother%

代码应插入到页面顶部。我使用 XeLaTeX 和 Beamer,并在后面插入代码\begin{frame}

可能存在适用于所有页面(而不是单个页面)的解决方案。

答案3

问题是,无论你指定什么颜色,Inkscape 都会以 RGB 颜色导出 PDF。你可以使用 Acrobat Pro 检查 PDF 的颜色。以下是一些Inkscape 错误报告在 Launchpad 上以及pdftex 错误追踪器. pdftex 和我假设 xelatex 在导出时也使用 CMYK。现在,当 CMYK 页面上有 RGB 图像时,您将遇到报告的颜色问题。有两种解决方案:使用导出 CMYK 颜色的 svg 到 pdf 转换器,例如 Scribus 或 Acrobat Pro,或者在图像周围放置一个 PageGroup,将 RGB 区域与 CMYK 区域分开。

是的,观众确实起到了一定的作用,正如pdftex 错误报告

答案4

我遇到了同样的问题,这最终帮助了我。

假设您的 LaTeX 文件被调用,presentation.tex您运行以下命令:

xelatex 演示文稿.tex
pdftk 演示.pdf 输出未压缩.pdf 解压缩
sed -i 's/^\/Type \/Page$/\/Type \/Page\n\/Group\n\\>\n/' uncompressed.pdf
pdftk 未压缩.pdf 输出演示.pdf 压缩

sed脚本实际上将 selitsky 建议的后记直接插入到 PDF 的所有页面中。压缩步骤很慢,但对我来说还是有用的。

相关内容