# Custom shaped horizontal rule spanning the entire document

I learned how to create a simple horizontal rule by reading the question: Horizontal line spanning the entire document in LaTeX

I would like to create a chirp-shaped horizontal rule spanning the entire document. I have managed to draw the chirp with PGF/TikZ with the help of this answer.

The problem that I am facing now is accommodating the chirp rule inside the document so that it divides the page completely i.e. spanning the entire document.

How can I stretch/move the tikzpicture to fit the entire page?

This is my 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}


Three things to change:

• use \noindent in front of the tikzpicture
• use xshift to shift the image by the amount of the left margin
• increase the domain
• optional: add a bit of space after the rule

\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}


• @codeaviator please consider in your choice of accepted answer that marmots solution is much more flexible, e.g. if you change your margins ... – user36296 Mar 9 '18 at 14:24

Alternative to @samcarter's nice answer:

\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}


The difference is that the plot range is not hard coded.