![如何使用外部 SVG 图像生成页面内容周围的边框图案?](https://linux22.com/image/459325/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%A4%96%E9%83%A8%20SVG%20%E5%9B%BE%E5%83%8F%E7%94%9F%E6%88%90%E9%A1%B5%E9%9D%A2%E5%86%85%E5%AE%B9%E5%91%A8%E5%9B%B4%E7%9A%84%E8%BE%B9%E6%A1%86%E5%9B%BE%E6%A1%88%EF%BC%9F.png)
我想使用一个小型 SVG 花卉图案单元,就像下图中的那样(它只是一个原型,我还没有完成它的工作)在 LaTeX 中围绕我的页面内容创建边框:
显然,所提供图像中的图案也需要一些角点种类,以实现垂直和水平重复之间的过渡。
我应该使用什么包(如果有的话),以及如何使用给定的包实现这一点?我听说过很多关于 TiKZ 的事情,但我不确定它是否是实现这种结果的最简单方法。
只是为了确保我清楚,我想使用外部 SVG 图像,而不是通过 LaTeX 生成图案。
PS:SE 界面不允许我包含实际的 SVG 图像,因此这里是:https://mega.nz/file/A5tzTTzA#6dneLjLA-H24hc45MdoICEQOoAM7LKllWZ-jnGe1apU
答案1
对于以下答案,我以适合乳胶的文件格式保存了您的模式的单一报告,例如 pdf
然后我使用该tikzpagenodes
包创建一个框架:
\documentclass{article}
\usepackage{lipsum} % just for the dummy text
\usepackage{tikzpagenodes}
\newcommand{\repx}{8}
\newcommand{\repy}{11}
\newlength{\patternheight}
\setlength{\patternheight}{1.5cm}
\newlength{\patternoverlapp}
\setlength{\patternoverlapp}{-0.15cm}
\newcommand{\pattern}{%
\kern-\patternoverlapp%
\foreach \foo in {1,...,\repetition}{%
\kern\patternoverlapp%
\includegraphics[
width=\dimexpr-\patternoverlapp*(\repetition-1)/(\repetition)+\linewidth/\repetition\relax,
height=\patternheight
]{pattern}%
}%
}
\AddToHook{shipout/background}{
\begin{tikzpicture}[remember picture, overlay,inner sep=0pt,outer sep=0pt]
\node[anchor=south,text width=\textwidth+2*\patternheight] at (current page text area.north) {
\let\repetition\repx
\pattern
};
\node[anchor=south,rotate=90,text width=\textheight] at (current page text area.west) {
\let\repetition\repy
\pattern
};
\node[anchor=south,rotate=180,text width=\textwidth+2*\patternheight] at (current page text area.south) {
\let\repetition\repx
\pattern
};
\node[anchor=south,rotate=270,text width=\textheight] at (current page text area.east) {
\let\repetition\repy
\pattern
};
\end{tikzpicture}
}
\begin{document}
\lipsum
\end{document}