Re: ArteLaTeX (febbraio 2012) figura 8: bibliografie suddivise

#80628
Up
0
Down
::



@Antonio
: non ti serve guardare gli ellissi… l’operazione [tt]arc[/tt] ha già di per se la capacità di generare ellissi (a pagina 246 c’è un esempio in cui indirettamente si evidenzia che la forma [tt]ellipse[/tt] può essere disegnata con [tt]arc[/tt]).


@Liverpool
: io ho cominciato veramente da poco a voler imparare la gestione delle forme.. pian piano migliorerò: come in ogni cosa ci vuole tempo. Ammetto che non è semplice capire il funzionamento, sapere esattamente quali dimensioni possono essere definite (ad esempio mi beccavo sempre un sacco di errori definendo [tt]\pgf@xd[/tt] e così via- per questo poi ho tagliato corto). Devo dire, però che anche se non perfetto, il mio metodo permette anche di fare cose più fancy rispetto ad una semplice piegatura ad angolo retto.

Nel nuovo esempio servono due ulteriori parametri che permettono di modificare il segmento di congiunzione della piega: `\documentclass{article}
\usepackage{tikz,lipsum}

\makeatletter
\pgfkeys{/tikz/.cd,
corner size/.initial=10pt,
inner corner size/.initial=5pt,
corner start/.initial=15pt,
corner end/.initial=5pt,
corner up height/.initial=5pt,
corner down height/.initial=15pt,
fine sep start/.initial=1.35pt,
fine sep end/.initial=1.35pt,
}

\newlength\pgf@xd
\newlength\pgf@xe
\newlength\pgf@yf
\newlength\pgf@yg
\newlength\pgf@xh
\newlength\pgf@yh
\newlength\pgf@xi
\newlength\pgf@yi

\pgfdeclareshape{document}{
\inheritsavedanchors[from=rectangle]
\inheritanchorborder[from=rectangle]
\inheritanchor[from=rectangle]{center}
\inheritanchor[from=rectangle]{north}
\inheritanchor[from=rectangle]{north west}
\inheritanchor[from=rectangle]{south}
\inheritanchor[from=rectangle]{west}
\inheritanchor[from=rectangle]{east}

\savedmacro\cornersize{%
\edef\cornersize{\pgfkeysvalueof{/tikz/corner size}}%
}

\savedmacro\innercornersize{%
\edef\innercornersize{\pgfkeysvalueof{/tikz/inner corner size}}%
}

\savedmacro\startcornersize{%
\edef\startcornersize{\pgfkeysvalueof{/tikz/corner start}}%
}

\savedmacro\endcornersize{%
\edef\endcornersize{\pgfkeysvalueof{/tikz/corner end}}%
}

\savedmacro\cornerupheight{%
\edef\cornerupheight{\pgfkeysvalueof{/tikz/corner up height}}%
}

\savedmacro\cornerdownheight{%
\edef\cornerdownheight{\pgfkeysvalueof{/tikz/corner down height}}%
}

\savedmacro\finesep{%
\edef\finesep{\pgfkeysvalueof{/tikz/fine sep start}}%
}

\savedmacro\finesepend{%
\edef\finesepend{\pgfkeysvalueof{/tikz/fine sep end}}%
}

% … and possibly more
\backgroundpath{
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
% compute corner of ‘‘flipped page’’
\pgf@xc=\pgf@xb \advance\pgf@xc by-\cornersize
\pgf@yc=\pgf@yb \advance\pgf@yc by-\cornersize

\setlength{\pgf@xd}{\pgf@xb}
\advance\pgf@xd by-\startcornersize

\setlength{\pgf@xe}{\pgf@xb}
\advance\pgf@xe by-\endcornersize

\setlength{\pgf@yf}{\pgf@yb}
\advance\pgf@yf by-\cornerupheight

\setlength{\pgf@yg}{\pgf@yb}
\advance\pgf@yg by-\cornerdownheight

\setlength{\pgf@xh}{\pgf@xb}
\advance\pgf@xh by-\cornersize
\advance\pgf@xh by-\finesep

\setlength{\pgf@yh}{\pgf@yb}
\advance\pgf@yh by-\finesep

\setlength{\pgf@xi}{\pgf@xb}
\advance\pgf@xi by-\finesepend

\setlength{\pgf@yi}{\pgf@yb}
\advance\pgf@yi by-\cornersize
\advance\pgf@yi by-\finesepend

% construct main path
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}} %start
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}} % go up
\pgfpathlineto{\pgfpoint{\pgf@xd}{\pgf@yb}} % go straight on untill start corner
\pgfpatharc{90}{0}{\innercornersize}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xe}{\pgf@yc}}
\pgfpatharc{90}{0}{\innercornersize}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathclose
% add little corner
\pgfpathmoveto{\pgfpoint{\pgf@xh}{\pgf@yh}}
\pgfpathlineto{\pgfpoint{\pgf@xi}{\pgf@yi}}
\pgfpathclose
}
}
\makeatother

\begin{document}

\tikzset{document color/.style={top color=cyan!5, bottom color=cyan!20}}
\tikzset{document size/.style={
minimum width=0.7\textwidth,
minimum height=0.8\textheight,
text width=0.6\textwidth,
inner sep=2.35cm,
align=justify,
corner size=60pt,
inner corner size=25pt,
corner start=80pt,
corner end=25pt,
fine sep end=7.4pt,
fine sep start=4.8pt,
}
}

\begin{tikzpicture}
\node[draw,document,document color,document size] (x) {
\lipsum[1-2]
};
\end{tikzpicture}
\end{document}
` Risultato:

[attachment=519]Immagine_2012-11-16-2.jpg[/attachment]

Per quanto riguarda la colorazione della parte piegata: è un vero casino… cioè, siccome il path viene originato a metà di un arco, prosegue verso una seconda metà di un arco prima di dirigersi in una coordinata nota (l’angolo del foglio) mi riesce complicato con le conoscenze attuali capire come fare. L’ombreggiatura, invece, dovrebbe essere meno complicata: pensavo di disegnare un secondo segmento più spesso partendo dall’estremo del foglio, seguendo l’arco e arrivando nell’angolo del foglio per poi applicare un fading. Appena capisco come si fa aggiorno. 😉

Ciao
Claudio

Attachments:
You must be logged in to view attached files.

Go to top