I read this article about how to make a torn paper effect. So I tried the code below, but some errors arise.
\documentclass[a4paper,11pt,twoside]{book}
\usepackage{lipsum} % To generate test text
\usepackage{framed}
\usepackage{ifthen}
\usepackage{tikz}
\usepackage[margin=1cm]{geometry}% for screen preview
\usetikzlibrary{decorations.pathmorphing,calc,shadows.blur,shadings}
\newcounter{mathseed}
\setcounter{mathseed}{3}
\pgfmathsetseed{\arabic{mathseed}} % To have predictable results
% Define a background layer, in which the parchment shape is drawn
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
% This is the base for the fractal decoration. It takes a random point between the start and end, and
% raises it a random amount, thus transforming a segment into two, connected at that raised point
% This decoration can be applied again to each one of the resulting segments and so on, in a similar
% way of a Koch snowflake.
\pgfdeclaredecoration{irregular fractal line}{init}
{
\state{init}[width=\pgfdecoratedinputsegmentremainingdistance]
{
\pgfpathlineto{\pgfpoint{random*\pgfdecoratedinputsegmentremainingdistance}{(random*\pgfdecorationsegmentamplitude-0.02)*\pgfdecoratedinputsegmentremainingdistance}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
}
}
% define some styles
\tikzset{
paper/.style={draw=black!10, blur shadow, every shadow/.style={opacity=1, black}, shade=bilinear interpolation,
lower left=black!10, upper left=black!5, upper right=white, lower right=black!5, fill=none},
irregular cloudy border/.style={decoration={irregular fractal line, amplitude=0.2},
decorate,
},
irregular spiky border/.style={decoration={irregular fractal line, amplitude=-0.2},
decorate,
},
ragged border/.style={ decoration={random steps, segment length=7mm, amplitude=2mm},
decorate,
}
}
\tikz{
\node[inner sep=1em] (A) {#1}; % Draw the text of the node
\begin{pgfonlayer}{background} % Draw the shape behind
\fill[paper] % recursively decorate the bottom border
\pgfextra{\pgfmathsetseed{\arabic{mathseed}}\addtocounter{mathseed}{1}}%
{decorate[irregular cloudy border]{decorate{decorate{decorate{decorate[ragged border]{
(A.north west) -- (A.north east)
}}}}}}
-- (A.south east)
\pgfextra{\pgfmathsetseed{\arabic{mathseed}}}%
{decorate[irregular spiky border]{decorate{decorate{decorate{decorate[ragged border]{
-- (A.south west)
}}}}}}
-- (A.north west);
\end{pgfonlayer}}
}{%
\tikz{
\node[inner sep=1em] (A) {#1}; % Draw the text of the node
\begin{pgfonlayer}{background} % Draw the shape behind
\fill[paper] % recursively decorate the bottom border
\pgfextra{\pgfmathsetseed{\arabic{mathseed}}\addtocounter{mathseed}{1}}%
{decorate[irregular spiky border]{decorate{decorate{decorate{decorate[ragged border]{
(A.north east) -- (A.north west)
}}}}}}
-- (A.south west)
\pgfextra{\pgfmathsetseed{\arabic{mathseed}}}%
{decorate[irregular cloudy border]{decorate{decorate{decorate{decorate[ragged border]{
-- (A.south east)
}}}}}}
-- (A.north east);
\end{pgfonlayer}}
}}
\begin{document}
\noindent
\tornpaper{
\parbox{.9\textwidth}{\lipsum[11]}
}
\noindent
\tornpaper{
\parbox{.9\textwidth}{\lipsum[15]}
}
\noindent
\tornpaper{
\parbox{.9\textwidth}{\lipsum[5]}
}
\end{document}
The reports are:
- You can't use 'macro parameter character #' in restricted horizontal mode. \node[inner sep=1em] (A) {#
- Package pgfkeys Error: Choice 'bilinear interpolation' unknown in choice key '/tikz/shade'. I am going to ignore this key. \fill[paper]
- Missing \begin{document}. \end{pgfonlayer}}
- Too many }'s. }
- You can't use 'macro parameter character #' in restricted horizontal mode. \node[inner sep=1em] (A) {#
- Package pgfkeys Error: Choice 'bilinear interpolation' unknown in choice key '/tikz/shade'. I am going to ignore this key. \fill[paper]
- Too many }'s. }}
- Undefined control sequence. \tornpaper
- Undefined control sequence. \tornpaper
- Undefined control sequence. \tornpaper
What is the problem?
Thank's in advance!
\tornpaperwhich had one argument. You've deleted the macro definition, keeping its contents: all your various errors follow predictably from that. – Paul Stanley Jan 16 '19 at 23:14shade=bilinear interpolationbyshading=bilinear interpolation, the code works find. (According to what I find the result is great also without anybilinear interpolation.) – Jan 17 '19 at 04:03\def\tornpaper#1{% \ifthenelse{\isodd{\value{mathseed}}}{from the code or the problem withshade=bilinear interpolation. Thank you!!! – Kώστας Κούδας Jan 17 '19 at 06:04