TikZ 图片破坏了 Adob​​e Reader 上的页面

TikZ 图片破坏了 Adob​​e Reader 上的页面

以下 MWE 包含有问题的代码。在 Acrobat Reader 中查看 PDF 时,不会显示包含此代码的页面。我自己不使用 Acrobat,但我的导师使用,所以我的论文必须与该程序兼容。我可以重新写这篇文章,但不知道错误是什么让我很谨慎。

它编译时没有错误,并且按 SumatraPDF 中应有的方式显示。但在 Acrobat 中,褪色的径向条纹不会显示,并且该图之后同一页面上的其他内容根本不会呈现。

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{fadings}
\begin{document}
\begin{tikzpicture}
    %I draw the circle.
        \draw[purple!70!black,fill](0,0) circle(1.5);
        \draw[path fading=circle with fuzzy edge 10 percent,fill=purple!80](0,0) circle(1.5);
        \foreach \x in {0,30,...,360}{
    %I generate two random numbers and store them
        \pgfmathparse{rand}\pgfmathsetmacro{\randomnbr}{\pgfmathresult}
        \pgfmathparse{rand}\pgfmathsetmacro{\randomnbrpos}{\pgfmathresult}
    %I now draw the radial streaks.
            \draw[line cap=round,line width=\randomnbrpos*.5mm,purple!80!black,path fading=east,fading transform={rotate=5*\randomnbr+\x},rotate=5*\randomnbr+\x] (rand*.1+.5,0)--(\randomnbrpos*.5+1.0,0)++(0,1pt);
        }
    \end{tikzpicture}
\end{document}

它应该是这样的
它应该是这样的

答案1

问题是你使用的是 ,它会在和rand之间生成随机数,而不是,它会在和之间生成随机数。这会导致某些线的宽度为负数,从而使 Acrobat 无法正常工作。-11rnd01

rand用替换rnd可解决问题:

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{fadings}
\begin{document}
\begin{tikzpicture}
    %I draw the circle.
        \draw[purple!70!black,fill](0,0) circle(1.5);
        \draw[path fading=circle with fuzzy edge 10 percent,fill=purple!80](0,0) circle(1.5);
        \foreach \x in {0,30,...,360}{
    %I generate two random numbers and store them
        \pgfmathsetmacro{\randomnbr}{rnd}
        \pgfmathsetmacro{\randomnbrpos}{rnd}
    %I now draw the radial streaks.
            \draw[line cap=round,line width=\randomnbrpos*.5mm,purple!80!black,path fading=east,fading transform={rotate=5*\randomnbr+\x},rotate=5*\randomnbr+\x] (rand*.1+.5,0)--(\randomnbrpos*.5+1.0,0)++(0,1pt);
        }
    \end{tikzpicture}
\end{document}

答案2

我可以使用 Adob​​e Acrobat X 在 OS X 上确认此问题。所有其他基于 PDFKit 的 PDF 查看器(Skim、Preview、IDE 集成查看器)均可正常工作。

一个简单但根据我的经验,解决有问题的 PDF 的方法是通过将其转换为 PS 然后转换为 PDF1.3(基本上栅格化了一些淡入淡出和透明效果)来清理它们:

pdf2ps problematic.pdf tmp.ps
ps2pdf tmp.ps santized.pdf

生成的 PDF 在 Acrobat 中显示正常。

相关内容