Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

36 views
Skip to first unread message

Ch'enMeng

unread,
Apr 21, 2014, 8:43:17 PM4/21/14
to
本文最早發布於[知乎專欄](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}

以上。

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 183.217.28.189
※ 文章網址: http://www.ptt.cc/bbs/LaTeX/M.1398127398.A.37E.html

0 new messages