[心得] 利用 TikZ 在 LaTeX 文档中制作水印

楼主: ChenMeng0518 (LSiYue)   2014-04-22 08:43:11
本文最早发布于[知乎专栏](http://zhuanlan.zhihu.com/LaTeX/19734756)﹐
略有修改﹔个人博客有[存盘](http://liam0205.me/LaTeX-watermark)
**在未获得本人书面许可的情况下﹐禁止任何形式的‘合理使用’、转载、
分享以及将链接发至本站外任何网站或 App, 外泄斩立决。智商欠奉﹐中文
阅读障碍者, 请在监护人及医师协助下学习本段落﹐谢谢合作。**
制作水印基本上需要解决下面几个问题﹕
* 水印应该叠放在正文的下面﹐不得覆蓋文字
* 水印应该放置在合适的位置
* 水印的颜色应该足够澹﹐因此不会影响(太多)文章正文的阅读
在 LaTeX 中﹐可以用 [eso-pic 宏包](http://www.ctan.org/pkg/eso-pic)
提供的 \AddToShipoutPictureBG 命令﹐来将内容叠放在正文的下面﹔使用
[Ti*k*Z 宏包](http://www.ctan.org/pkg/pgf)(这是绘图工具 PGF 的前
端)来为水印文字定位﹔使用 [xcolor 宏包](http://www.ctan.org/pkg/xcolor)
设置水印的颜色。
同时﹐我们会希望﹕
* 设定水印文字内容
* 设定水印文字大小
* 设定水印文字偏转角度
* 能够在合适的位置开启水印效果
于是我们有了下面这样的实现﹕
\newcommand{\watermark}[3]{\AddToShipoutPictureBG{%
\parbox[b][\paperheight]{\paperwidth}{%
\vfill%
\centering%
\tikz[remember picture, overlay]%
\node [rotate = #1, scale = #2] at (current page.center)%
{\textcolor{gray!80!cyan!30}{#3}};
\vfill}}}
\newcommand{\watermarkoff}{\ClearShipoutPictureBG}
一个可供测试的完整例子是﹕
\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{eso-pic}
\newcommand{\watermark}[3]{\AddToShipoutPictureBG{%
\parbox[b][\paperheight]{\paperwidth}{%
\vfill%
\centering%
\tikz[remember picture, overlay]%
\node [rotate = #1, scale = #2] at (current page.center)%
{\textcolor{gray!80!cyan!30}{#3}};
\vfill}}}
\usepackage{blindtext}
\begin{document}
\watermark{60}{10}{DRAFT}
\blinddocument
\clearpage
\end{document}
以上。
作者: andrew43 (讨厌有好心推文后删文者)   2014-04-22 19:38:00
推。另外我记得还有几个package可以很轻松产生浮水印。
楼主: ChenMeng0518 (LSiYue)   2014-04-23 06:27:00
那些套件比较老,水印常浮与正文之上。

Links booklink

Contact Us: admin [ a t ] ucptt.com