[心得] 利用 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