tikz 和 atbegshi

tikz 和 atbegshi
  1. 以下在第 1 页没有显示水印。如何才能在第 1 页上添加水印?

  2. \\没有效果。如何强制换行?

    \documentclass{article}
    \usepackage{lipsum}
    \usepackage{graphicx}
    \usepackage{atbegshi}
    \usepackage{tikz}
    \AtBeginShipoutInit
    \AtBeginShipout{%
      \tikz[overlay,remember picture]{%
        \path[use as bounding box](0,0);
        \node [gray!55,inner sep=0pt,rotate=45] at
          ([shift={(.5\paperwidth,-.5\paperheight)}]current page.north west){%
          \scalebox{3}{%
            \fontseries{b}\fontfamily{bch}\fontsize{14.4}{17}\selectfont
            DRAFT\\Page~\thepage
          }%
        };
      }%
    }
    
    \begin{document}
    \title{Test document}
    \author{Ahmed Musa}
    \maketitle
    \lipsum[1-20]
    \end{document}
    

感谢 Gonzalo Medina 对代码进行格式化。

答案1

Paul Gaborit 找到了解决方案我的第一次尝试使用\AtBeginShipout \AtBeginShipoutAddToBox

  • \AtBeginShipout用于在每次“shipout”操作之前添加代码。
  • \AtBeginShipoutAddToBox用于将材质(此处\draftpage)放入当前的背景中\AtBeginShipoutBox

使用此方法,结果始终包含页面(带或不带草稿标记)。(使用\AtBeginShipoutFirst— 可用于在第一页之前添加代码 — 会产生更多垂直空间,这样第 4 页的最后一行就会出现在第五页上。)

代码

\documentclass{article}

\usepackage{atbegshi}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{tikz}
\AtBeginShipoutInit
\newcommand*{\draftpage}{%
  \tikz[overlay,remember picture]{%
    \node [text=gray!55,inner sep=0pt,rotate=45,align=center,
    font=\fontseries{b}\fontfamily{bch}\fontsize{43.2}{51}\selectfont]
    at (current page) {DRAFT\\Page~\thepage};
  }%
}

\AtBeginShipout{\AtBeginShipoutAddToBox{\draftpage}}

\title{Test document}
\author{Ahmed Musa}
\begin{document}
\maketitle
\lipsum[1-20]
\thepage
\end{document}

输出

正确的代码

问题的第二部分(我第一次回答时确实忽略了)被纳入其中,并使用了使用TikZ'sscalealignkey 的打击乐方法。

答案2

我找到了一种替代方法阿特别格什。我侵入了输出程序。

\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\makeatletter
\def\AfterManifest{\g@addto@macro\@aftermanifest}
\def\@aftermanifest{}
\g@addto@macro\document{%
  \let\AfterManifest\@iden
  \@aftermanifest
  \let\AfterManifest\@notprerr
  \global\let\@aftermanifest\relax
  \ignorespaces
}
\AfterManifest{%
  \let\@savedoutputpage\@outputpage
  \def\@outputpage{%
    \let\@savedbegindvi\@begindvi
    \def\@begindvi{%
      \am@watermark
      \@savedbegindvi
    }%
    \@savedoutputpage
    \let\@begindvi\@savedbegindvi
  }%
}
\def\am@watermark{%
  \tikz[overlay,remember picture]{%
    \node [text=gray!55,inner sep=0pt,rotate=45,align=center,scale=5,
    font=\fontseries{b}\fontfamily{bch}\selectfont]
    at (current page) {DRAFT\\[1ex]Page~\thepage};
  }%
}
\makeatother

\title{Test document}
\author{Ahmed Musa}
\begin{document}
\maketitle
\lipsum[1-20]
\thepage
\end{document}

在此处输入图片描述

相关内容