使用平铺制作重复水印

使用平铺制作重复水印

我正在尝试制作两种不同类型的水印:

  1. 一种是将多个单词以一定角度排列以填满页面,
  2. 可平铺的,可容纳单词和/或图像。

这两种方法都需要具备以下关键方面:a) 填满整个页面(或几乎填满整个页面);b) 包含半透明灰色文本(包含文本时)。这应该适用于所有页面(或一定范围),因为最终目标是制作一些如果复制到其他地方则难以去除水印的东西。到目前为止,我还没有找到可行的方法。以下是两种方法的一个例子: 水印示例 1

水印示例 2

对于第一种情况,我希望能够手动定义“换行”的位置。第二种情况应该能够包含带有文本的图像,并以相同的方式平铺它们(例如,如果我用图像文件替换“2”)。我知道这应该是可能的,但我就是想不通。

答案1

您以前可以使用xwatermark如下包来执行此操作:

\usepackage[printwatermark]{xwatermark} % OBSOLETE, NO LONGER WORKING
\newwallpaper[allpages,color=black!12,tilexsize=0.14\paperwidth,tileysize=0.015\paperwidth,tilexoffset=1ex,tileyoffset=2ex]{Watermark}

但从 2021 年左右开始,这种方法不再有效。

另一种方法是使用draftwatermark包并使用 for 循环填充表格(这本身就很棘手,请参阅在表格环境中使用循环的问题):

\documentclass[12pt,a4paper]{article}

\usepackage{pgffor}
\usepackage{draftwatermark}
\newcounter{it}
\DraftwatermarkOptions{
  scale=0.08,
  angle=45,
  text={\begin{tabular}{c}%
          \setcounter{it}{1}%
          \whiledo{\theit<100}{%
          \foreach \col in {0,...,15}{Watermark\ \ } \\%
          \stepcounter{it}%
          }
          \end{tabular}
          },
  color=black!12,
}

\usepackage{ifthen}
\usepackage{newtxtext,newtxmath}
\usepackage{xcolor}


\begin{document}
hello
\end{document}

解释\foreach循环将文本重复一行,并留出一些间距 ( \ \),重复 15 次。您可以将其更改为表格的列,但这会使它变得更加复杂。不幸的是,添加另一个\foreach循环来创建行不起作用。为此,我们使用计数器和循环\whiledo来创建 100 行。

填充整个页面所需的迭代次数取决于水印的文本。

您可以使用包选项来更改角度和比例draftwatermark

newtxtext出于某种原因,如果不选择其他字体(或fourier两者似乎都有效),它对我来说效果不佳

结果如下: 在此处输入图片描述

相关内容