Not exactly the result you wanted, but it can be a starting point. It combines framed
and tikz
packages. The idea can lead to further improvements.
See http://www.texample.net/tikz/examples/framed-tikz/
(btw, I'm the author)
UPDATE: Playing with the idea of a fractal decoration, and also with shaded paper and blurred drop shadows, I got the following results. Currently the implementation still does not use framed
, so it is restricted to the case in which the framed paragraph does not break among pages.
\documentclass[a5paper]{article}
\usepackage{lipsum} % To generate test text
\usepackage{framed}
\usepackage{tikz}
\usepackage[margin=1cm]{geometry}% for screen preview
\usetikzlibrary{decorations.pathmorphing,calc,shadows.blur,shadings}
\pgfmathsetseed{1} % 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, shade=bilinear interpolation,
lower left=black!20, upper left=black!15, upper right=white, lower right=black!10},
irregular border/.style={decoration={irregular fractal line, amplitude=0.2},
decorate,
},
ragged border/.style={ decoration={random steps, segment length=7mm, amplitude=2mm},
decorate,
}
}
% Macro to draw the shape behind the text, when it fits completly in the
% page
\def\tornpaper#1{
\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
decorate[irregular border]{decorate{decorate{decorate{decorate[ragged border]{
($(A.south east) - (0, random*5mm)$) -- ($(A.south west) - (0, random*5mm)$)
}}}}}
-- (A.north west) -- (A.north east) -- cycle;
\end{pgfonlayer}}
}
\begin{document}
\noindent
\tornpaper{
\parbox{.9\textwidth}{\lipsum[11]}
}
\bigskip
\noindent
\tornpaper{
\parbox{.9\textwidth}{\lipsum[15]}
}
\end{document}
NOTE Some pdf viewers (eg. Sumatra) have issues to display the interpolated shading used in the last examples.
UPDATE See also the related question Torn paper: matching up the torn edges
tikz
answers will show up soon; I'd like to note that it seems to me that some fractal-based solution might be a good idea.irfanview
.