diff options
Diffstat (limited to 'graphics/pgf/base/doc/pgfmanual-en-library-folding.tex')
-rw-r--r-- | graphics/pgf/base/doc/pgfmanual-en-library-folding.tex | 275 |
1 files changed, 275 insertions, 0 deletions
diff --git a/graphics/pgf/base/doc/pgfmanual-en-library-folding.tex b/graphics/pgf/base/doc/pgfmanual-en-library-folding.tex new file mode 100644 index 0000000000..67f83b76bd --- /dev/null +++ b/graphics/pgf/base/doc/pgfmanual-en-library-folding.tex @@ -0,0 +1,275 @@ +% Copyright 2019 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Free Documentation License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + + +\section{Paper-Folding Diagrams Library} +\label{section-calender-folding} + +\begin{tikzlibrary}{folding} + This library defines pic types for creating paper-folding diagrams. Many + thanks to Nico van Cleemput for providing most of the code. +\end{tikzlibrary} + +Here is a big example that produces a diagram for a calendar: +% +\begin{codeexample}[ + leave comments, + preamble={\usetikzlibrary{calendar,folding}}, +] +\sffamily\scriptsize +\tikz \pic [ + transform shape, + every calendar/.style={ + at={(-8ex,4ex)}, + week list, + month label above centered, + month text=\bfseries\textcolor{red}{\%mt} \%y0, + if={(Sunday) [black!50]} + }, + folding line length=2.5cm, + face 1={ \calendar [dates=\the\year-01-01 to \the\year-01-last];}, + face 2={ \calendar [dates=\the\year-02-01 to \the\year-02-last];}, + face 3={ \calendar [dates=\the\year-03-01 to \the\year-03-last];}, + face 4={ \calendar [dates=\the\year-04-01 to \the\year-04-last];}, + face 5={ \calendar [dates=\the\year-05-01 to \the\year-05-last];}, + face 6={ \calendar [dates=\the\year-06-01 to \the\year-06-last];}, + face 7={ \calendar [dates=\the\year-07-01 to \the\year-07-last];}, + face 8={ \calendar [dates=\the\year-08-01 to \the\year-08-last];}, + face 9={ \calendar [dates=\the\year-09-01 to \the\year-09-last];}, + face 10={\calendar [dates=\the\year-10-01 to \the\year-10-last];}, + face 11={\calendar [dates=\the\year-11-01 to \the\year-11-last];}, + face 12={\calendar [dates=\the\year-12-01 to \the\year-12-last];} +] {dodecahedron folding}; +\end{codeexample} + +The foldings are sorted by number of faces. + +\begin{pictype}{tetrahedron folding}{} + This pic type draws a folding diagram for a tetrahedron. The following keys + influence the pic: + % + \begin{key}{/tikz/folding line length=\meta{dimension}} + Sets the length of the base line for folding. For the dodecahedron this + is the length of all the sides of the pentagons. + \end{key} + % + \begin{key}{/tikz/face 1=\meta{code}} + The \meta{code} is executed for the first face of the dodecahedron. + When it is executed, the coordinate system will have been shifted and + rotated such that it lies at the middle of the first face of the + dodecahedron. + \end{key} + % + \begin{key}{/tikz/face 2=\meta{code}} + Same as |face 1|, but for the second face. + \end{key} + % + \begin{key}{/tikz/face 3=\meta{code}} + \end{key} + % + \begin{key}{/tikz/face 4=\meta{code}} + \end{key} + % + There are further similar options for more faces (for commands shown + later). + + Here is a simple example: + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [ + transform shape, + folding line length=6mm, + face 1={ \node[red] {1};}, + face 2={ \node {2};}, + face 3={ \node {3};}, + face 4={ \node {4};} +] {tetrahedron folding}; +\end{codeexample} + + The appearance of the cut and folding lines can be influenced using the + following styles: + % + \begin{stylekey}{/tikz/every cut (initially \normalfont empty)} + Executed for every line that should be cut using scissors. + \end{stylekey} + % + \begin{stylekey}{/tikz/every fold (initially help lines)} + Executed for every line that should be folded. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic[ + every cut/.style=red, + every fold/.style=dotted, + folding line length=6mm +] { tetrahedron folding }; +\end{codeexample} + \end{stylekey} + + There is one style that is mainly useful for the present documentation: + % + \begin{stylekey}{/tikz/numbered faces} + Sets |face |\meta{i} to |\node {|\meta{i}|};| for all~$i$. + \end{stylekey} +\end{pictype} + +\begin{pictype}{tetrahedron truncated folding}{} + A folding of a truncated tetrahedron. + % +\begin{codeexample}[width=5cm,preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { tetrahedron truncated folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{cube folding}{} + A folding of a cube. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { cube folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{cube truncated folding}{} + A folding of a truncated cube. + % +\begin{codeexample}[width=5cm,preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { cube truncated folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{octahedron folding}{} + A folding of an octahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { octahedron folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{octahedron folding}{} + A folding of a truncated octahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { octahedron truncated folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{dodecahedron folding}{} + A folding of a dodecahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { dodecahedron folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{dodecahedron' folding}{} + This is an alternative folding of a dodecahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { dodecahedron' folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{dodecahedron rhombic folding}{} + A rhombic dodecahedron, based on square-of-two rhombi. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { dodecahedron rhombic folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{dodecahedron golden folding}{} + An alternative rhombic dodecahedron, flat laying, based on golden rhombi. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { dodecahedron golden folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{cuboctahedron folding}{} + A folding of a cuboctahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { cuboctahedron folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{cuboctahedron truncated folding}{} + A folding of a truncated cuboctahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { cuboctahedron truncated folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{icosahedron folding}{} + A folding of an icosahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { icosahedron folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{rhombicuboctahedron folding}{} + A folding of an rhombicuboctahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { rhombicuboctahedron folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{snub cube folding}{} + A folding of a snub cube. + % +\begin{codeexample}[width=5cm,preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { snub cube folding }; +\end{codeexample} + % +\end{pictype} + +\begin{pictype}{icosidodecahedron folding}{} + A folding of an icosidodecahedron. + % +\begin{codeexample}[preamble={\usetikzlibrary{folding}}] +\tikz \pic [folding line length=6mm, numbered faces, transform shape] + { icosidodecahedron folding }; +\end{codeexample} + % +\end{pictype} + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "pgfmanual-pdftex-version" +%%% End: |