通过阅读以下问题,我学会了如何创建一个简单的水平线:LaTeX 中横跨整个文档的水平线
我想创建一个叽叽喳喳形水平线横跨整个文档。我已设法使用 PGF/TikZ 绘制了 chirp,借助这个答案。
我现在面临的问题是适应文档内部的 chirp 规则,以便它完全划分页面,即跨越整个文档。
我如何拉伸/移动tikzpicture
以适合整个页面?
这是我的 MWE:
\documentclass[12pt,english]{article}
\usepackage[a4paper,hmargin=2cm,bmargin=3cm,tmargin=2.8cm,centering]{geometry}
\usepackage{tikz}
\usepackage{lipsum}
\definecolor{mygray}{gray}{0.5}
\tikzset{declare function={f(\t)=0.2*sin(100*\t^(0.06*\t));}}
\newcommand\chirprule{%
\begin{tikzpicture}[remember picture, overlay]
\draw[domain=0:18,variable=\t,samples=1000,draw=mygray,line width=4pt]
plot ({\t},{f(\t)});
\end{tikzpicture}
}
\begin{document}
\lipsum[1]
% Simple horizontal rule.
\noindent\makebox[\linewidth]{\textcolor{mygray}{\rule{\paperwidth}{4pt}}}
\lipsum[2]
\chirprule % Chirp rule.
\lipsum[3]
\end{document}
答案1
需要改变的有三件事:
\noindent
在前面使用tikzpicture
- 用于
xshift
将图像移动左边距 - 增加
domain
- 可选:在规则后添加一点空格
\documentclass[12pt]{article}
\usepackage[a4paper,hmargin=2cm,bmargin=3cm,tmargin=2.8cm,centering]{geometry}
\usepackage{tikz}
\usepackage{lipsum}
\definecolor{mygray}{gray}{0.5}
\tikzset{declare function={f(\t)=0.2*sin(100*\t^(0.06*\t));}}
\newcommand\chirprule{%
\noindent
\begin{tikzpicture}[remember picture, overlay]
\draw[domain=0:21,variable=\t,samples=1000,draw=mygray,line width=4pt,xshift=-2cm]
plot ({\t},{f(\t)});
\end{tikzpicture}
\vspace*{0.5em}
}
\begin{document}
\lipsum[1]
% Simple horizontal rule.
\noindent\makebox[\linewidth]{\textcolor{mygray}{\rule{\paperwidth}{4pt}}}
\lipsum[2]
\chirprule % Chirp rule.
\lipsum[3]
\end{document}
答案2
@samcarter 的精彩答案的替代方案:
\documentclass[12pt,english]{article}
\usepackage[a4paper,hmargin=2cm,bmargin=3cm,tmargin=2.8cm,centering]{geometry}
\usepackage{tikz}
\usepackage{lipsum}
\definecolor{mygray}{gray}{0.5}
\tikzset{declare function={f(\t)=0.2*sin(100*\t^(0.06*\t));}}
\newcommand\chirprule{%
\begin{tikzpicture}[remember picture, overlay]
\coordinate(here);
\draw[domain=0:18,variable=\t,samples=1000,draw=mygray,line width=4pt]
(current page.west|-here) --plot ({\t},{f(\t)})--(current page.east|-here);
\end{tikzpicture}
}
\begin{document}
\lipsum[1]
% Simple horizontal rule.
\noindent\makebox[\linewidth]{\textcolor{mygray}{\rule{\paperwidth}{4pt}}}
\lipsum[2]
\chirprule % Chirp rule.
\lipsum[3]
\end{document}
不同之处在于绘图范围不是硬编码的。