广告 1. 错误:多重阴影

广告 1. 错误:多重阴影

我正在尝试查找 pgf-blur 中的一些错误,其中一些已经在这里报告过(例如)。

以下所有实验均使用 TL 2016 完成。

有两个错误:

  1. 错误:多重阴影
  2. 错误:包含在 XeLaTeX 中

广告 1. 错误:多重阴影

正如 TeX StackExchange 上多次提到的那样(例如,这里,xelatex 中阴影的多次使用已损坏。

请参阅附带文件mwe-graphic.texxelatex它会产生错误的阴影,但lualatex会产生pdflatex完美的阴影:

\usepackage{tikz}
\usetikzlibrary{shadows.blur}
\begin{document}
\thispagestyle{empty}
\begin{tikzpicture}
\draw[blur shadow](-2,0)circle(1);
\draw[blur shadow](0,0)rectangle(3,2);
\end{tikzpicture}
\end{document}

可能的解决方案:Andrew Stacey 在 pst-blur 中进行了修复 http://bazaar.launchpad.net/~tex-sx/tex-sx/development/files

使用此文件,多个阴影可以工作,但不同的问题再次出现:

广告 2. 错误:包含在 XeLaTeX 中

考虑以下文件mwe.tex

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{center}
\includegraphics{mwe-graphic.pdf}
\end{center}
\end{document}

a. 使用 CTAN 或 TeX Live 的默认 pgf-blur

  1. luatex mwe-graphic.tex; xelatex mwe.tex 生成正确的图形,但 xelatex 运行已损坏:

    xdvipdfmx:fatal: Loop in object hierarchy detected. Broken PDF file?

  2. xelatex mwe-graphic.tex; xelatex mwe.tex 产生带有不正确阴影的输出,见上文

b. 使用上面链接的版本

  1. luatex mwe-graphic.tex; xelatex mwe.tex
  2. xelatex mwe-graphic.tex; xelatex mwe.tex

    两者都产生了正确的图形,但是运行时的 xelatexmwe已损坏:

    xdvipdfmx:fatal: Loop in object hierarchy detected. Broken PDF file?


现在我的问题是:有人能提供一个解决所有这些问题的版本吗?我也会联系原作者,但我不太乐观。

谢谢

诺伯特

答案1

我建议的补丁https://tex.stackexchange.com/a/445321/2388此处也适用于多重阴影:

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{shadows.blur}
\makeatletter
\newcounter{shadowblurcount}
\tikzset{
  /tikz/render blur shadow/.code={
   \stepcounter{shadowblurcount}%
    \pgfbs@savebb
    \pgfsyssoftpath@getcurrentpath{\pgfbs@input@path}%
    \pgfbs@compute@shadow@bbox
    \pgfbs@process@rounding{\pgfbs@input@path}{\pgfbs@fadepath}%
    \pgfbs@apply@canvas@transform
    \colorlet{pstb@shadow@color}{white!\pgfbs@opacity!black}%
    \pgfdeclarefading{shadowfading\the\c@shadowblurcount}{\pgfbs@paint@fading}%
    \pgfsetfillcolor{black}%
    \pgfsetfading{shadowfading\the\c@shadowblurcount}%
       {\pgftransformshift{\pgfpoint{\pgfbs@midx}{\pgfbs@midy}}}%
    \pgfbs@usebbox{fill}%
    \pgfbs@restorebb
  },
  }
\makeatother
\begin{document}
\thispagestyle{empty}
\begin{tikzpicture}
\draw[blur shadow](-2,0)circle(1);
\draw[blur shadow](0,0)rectangle(3,2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

给出一个明确的答案:Ulrike 提到的更改已在 Andrew Stacey 的版本中出现,现在已合并到包中。xelatex 的错误是 (x)dvipdfm(x) 的问题,并且已在我们的开发存储库中修复,修复后的二进制文件将出现在 TL2019 中。

此外,Martin Giese 同意将维护权转交给我,我今天已将修复版本上传至 CTAN,这意味着它将在几天后出现在 TeX Live 中。

如需进一步的错误报告/拉取请求/等,请使用 Github 开发页面:https://github.com/norbusan/pgf-blur

相关内容