Tikz 在 titlesec 标头中不可能淡出吗?

Tikz 在 titlesec 标头中不可能淡出吗?

我想在页眉中放置一个具有淡入淡出效果的 TikZ 图形(我在文档正文中将其作为插图重现),这是我使用包设置的titlesec。以下 MWE 似乎表明它不起作用。有什么解决方法吗?

\documentclass[12pt]{article}
\usepackage{tikz}

\usetikzlibrary{fadings}
\usepackage[pagestyles]{titlesec}


\newpagestyle{teststyle}{
 \renewcommand{\makeheadrule}{%
  \color{blue}%
  \rule[-.3\baselineskip]{\linewidth}{1pt}}
   %% HEADER - depends on option
  \sethead{}%
   {}%
   {%
   \FadingSection
   }%
}

\newcommand{\FadingSection}{%
    \begin{tikzpicture}[baseline=(mabox.base)]
        \node[rectangle,baseline=current bounding box.base,anchor=south east,inner ysep =0cm,inner xsep =0cm](mabox) at (0,0) {\sectiontitle};
        \fill[path fading=west,fill=white] (-5,0) rectangle (0,1em);
    \end{tikzpicture}   
}

\begin{document}
\pagestyle{teststyle}
\section{ ABCD EFGH IJKLM NOPQR 1111 2222 3333 4444}
\FadingSection

\end{document}

答案1

这似乎是 PGF/TikZ 中的一个错误,与 PDF 特效有关,例如在页面主体之外应用的淡入淡出、图案和透明度。当我尝试在输出例程中添加透明度时,我的一些代码也遇到了同样的问题。显然一些 PDF 字典没有更新或正确连接。我想与 Joseph Wright 讨论过这个问题,他比我更了解输出驱动程序等。

此特定问题仅发生在单页文档中。当文档包含多页时,此问题才会发生。我猜有些\end{document}PDF 内容刷新得太早了。您可以通过\newpage在它前面直接添加 来解决这个问题,这样在到达文档末尾之前就会刷新当前页面。因此,只要 之后没有内容,就不会出现尾随空白页。\newpage顺便说一句,添加\AtEndDocument{\newpage}不一样,因为它来得太晚了。

在下面的代码中,部分标题的淡入淡出可以正常工作:

\documentclass[12pt]{article}
\usepackage{tikz}

\usetikzlibrary{fadings}
\usepackage[pagestyles]{titlesec}


\newpagestyle{teststyle}{
 \renewcommand{\makeheadrule}{%
  \color{blue}%
  \rule[-.3\baselineskip]{\linewidth}{1pt}}%
   %% HEADER - depends on option
  \sethead{}%
   {}%
   {%
   \FadingSection
   }%
}

\newcommand{\FadingSection}{%
    \begin{tikzpicture}[baseline=(mabox.base)]
        \node[rectangle,baseline=current bounding box.base,anchor=south east,inner ysep=0cm,inner xsep=0cm,text=blue](mabox) at (0,0) {\sectiontitle};
        \fill[path fading=west,fill=white] (-5,0) rectangle (0,1em);
    \end{tikzpicture}%
}

\pagestyle{teststyle}
\begin{document}
\section{ABCD EFGH IJKLM NOPQR 1111 2222 3333 4444}
\FadingSection
\newpage% Required to make it work
\end{document}

答案2

我认为我已经找到了错误。第 300 行pgfsys-pdftex.def对 a 的引用pgfsmaks。它周围都是对pgfsmasks 的引用。当我做出明显的改变时,我不再收到关于最后一页褪色消失的投诉。

这是差异。

--- pgfsys-pdftex.def   2010-10-25 23:00:21.000000000 +0200
+++ pgfsys-pdftex.def   2012-04-22 22:06:25.000000000 +0200
@@ -297,7 +297,7 @@
     \PackageError{pgf}{Undefined fading '#1'}{}%
   \else%
     {%
-      \expandafter\ifx\csname pgfsmaks@#1\endcsname\relax%
+      \expandafter\ifx\csname pgfsmask@#1\endcsname\relax%
         \pgf@sys@pdf@install@mask{#1}%
       \fi%
       \pgftransformreset%

我刚刚检查了 PGF 的后续版本(刚刚注意到上面文件的日期),发现它有同样的拼写错误。

相关内容