From 621d4074c3976631f81047dec629532809f8488a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 9 Nov 2018 21:54:24 +0000 Subject: tikzmarmots (9nov18) git-svn-id: svn://tug.org/texlive/trunk@49114 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/tikzmarmots/README.md | 2 +- .../doc/latex/tikzmarmots/tikzmarmots-doc.pdf | Bin 212998 -> 226107 bytes .../doc/latex/tikzmarmots/tikzmarmots-doc.tex | 80 ++++++++++------ .../latex/tikzmarmots/tikzlibrarymarmots.code.tex | 6 +- .../tex/latex/tikzmarmots/tikzmarmots.sty | 104 ++++++++++++++++----- 5 files changed, 135 insertions(+), 57 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/tikzmarmots/README.md b/Master/texmf-dist/doc/latex/tikzmarmots/README.md index cf7b04491f5..dcc8ed647c6 100644 --- a/Master/texmf-dist/doc/latex/tikzmarmots/README.md +++ b/Master/texmf-dist/doc/latex/tikzmarmots/README.md @@ -4,7 +4,7 @@ This is a little LaTeX package for marmots to be used in TikZ pictures. This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt -The project repository, including a bug tracker, can be found at https://github.com/samcarter8/tikzmarmots/issues +The project repository, including a bug tracker, can be found at https://github.com/samcarter/tikzmarmots/issues ### A few examples: diff --git a/Master/texmf-dist/doc/latex/tikzmarmots/tikzmarmots-doc.pdf b/Master/texmf-dist/doc/latex/tikzmarmots/tikzmarmots-doc.pdf index d9bcccafd4d..a05c4313842 100644 Binary files a/Master/texmf-dist/doc/latex/tikzmarmots/tikzmarmots-doc.pdf and b/Master/texmf-dist/doc/latex/tikzmarmots/tikzmarmots-doc.pdf differ diff --git a/Master/texmf-dist/doc/latex/tikzmarmots/tikzmarmots-doc.tex b/Master/texmf-dist/doc/latex/tikzmarmots/tikzmarmots-doc.tex index 56351729506..20569b0aba7 100644 --- a/Master/texmf-dist/doc/latex/tikzmarmots/tikzmarmots-doc.tex +++ b/Master/texmf-dist/doc/latex/tikzmarmots/tikzmarmots-doc.tex @@ -5,13 +5,13 @@ % Maintained by samcarter % % Project repository and bug tracker: -% https://github.com/samcarter8/tikzmarmots +% https://github.com/samcarter/tikzmarmots % % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.1 -% July 10, 2018 +% Version 1.0 +% Nov 8, 2018 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[parskip=half]{scrartcl} @@ -28,13 +28,13 @@ \usepackage[most]{tcolorbox} \usepackage[paper=a4paper,margin=3cm]{geometry} \usepackage{url} -\usepackage[colorlinks=true,breaklinks=true,urlcolor=duckblue,linkcolor=duckblue,citecolor=duckblue,filecolor=duckblue]{hyperref} \usepackage{xspace} \usepackage{scrlayer-scrpage} \usepackage{marvosym} \usepackage{fontawesome} \usepackage[hang,flushmargin,bottom]{footmisc} \usepackage{imakeidx} +\usepackage[colorlinks=true,breaklinks=true,urlcolor=duckblue,linkcolor=duckblue,citecolor=duckblue,filecolor=duckblue]{hyperref} % macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\CTAN}{\textsc{CTAN}\xspace} @@ -60,7 +60,7 @@ commentstyle={\color{green!50!black}\slshape}, columns=fullflexible, emphstyle=\color{orange!70!black}, - emph=[1]{body,blush,whiskers,invisible,cake,crown,teeth}, + emph=[1]{body,blush,whiskers,invisible,cake,crown,teeth,3D,shadow,askphil,scale,xshift,yshift}, texcsstyle=*\color{duckblue}\bfseries, keywordstyle=\color{red!60!black}\bfseries, morekeywords={tikzpicture,scope,patterns,calc,pgfinterruptboundingbox}, @@ -110,24 +110,29 @@ longhair=red!50!brown, jacket=blue!50!black] \end{tikzpicture})\\[0.8em] - \url{https://github.com/samcarter8/tikzmarmots}\\ -% \url{https://www.ctan.org/pkg/tikzmarmots} + \url{https://github.com/samcarter/tikzmarmots}\\ + \url{https://www.ctan.org/pkg/tikzmarmots} }{samcarter}} -\date{Version 0.1 -- \today} +\date{Version 1.0 -- \today} \begin{document} \maketitle \thispagestyle{scrheadings} +\begin{tcolorbox}[coltext=marmotred,width=.8\textwidth,center, sidebyside=false, bottom=10pt,top=10pt] +The \tikzmarmots package was merged into the Ti\emph{k}Zlings package. To get an up-to-date version, please load the {\color{duckblue}\lstinline|tikzlings-marmots|} or the more general {\color{duckblue}\lstinline|tikzlings|} package instead. +\end{tcolorbox} + + \section{Introduction} \label{intro} -Inspired by the enthusiasms of the TeX.Stackexchange user \href{https://tex.stackexchange.com/users/121799/marmot}{@marmot} for animals of the same species, this little package can draw marmots using \TikZ. +Inspired by the enthusiasms of the TeX.Stackexchange user \href{https://tex.stackexchange.com/users/121799/marmot}{@marmot} for beings of the same species, this little package can draw marmots using \TikZ. Unlike its older sibling, the \tikzducks package, this packages focuses on drawing the marmot itself. Additional accessories are not part of the package, but can be taken from other sources. -This package is work in progress, therefore I would be happy to hear your feedback and ideas how to improve the package. The head version of the source code can be found on \url{github.com/samcarter8/tikzmarmots}, including a bug tracker -- please make constructive use of it! -%A more stable package version can be found on \CTAN (\url{www.ctan.org/pkg/tikzmarmots}) and is included in both \miktex and \texlive as \tikzmarmots. +This package is work in progress, therefore I would be happy to hear your feedback and ideas how to improve the package. The head version of the source code can be found on \url{github.com/samcarter/tikzmarmots}, including a bug tracker -- please make constructive use of it! +A more stable package version can be found on \CTAN (\url{www.ctan.org/pkg/tikzmarmots}) and is included in both \miktex and \texlive as \tikzmarmots. If you seek any other assistance (not bug reports/feature requests), I suggest asking on \href{https://tex.stackexchange.com}{TeX.Stackexchange}. %\subsection{Acknowledgements} @@ -153,8 +158,6 @@ The \tikzmarmots package loads \TikZ, which in turn loads the \lstinline|xcolor| \PassOptionsToPackage{svgnames}{xcolor} \end{lstlisting} - - \section{Usage} The basic usage is fairly simple, to draw a marmot: @@ -174,7 +177,17 @@ These keys can for example be used to change the marmot's colour via \lstinline| \end{tikzpicture} \end{tcblisting} -They can also be used to add whiskers to the marmot: +The colour of the belly and muzzle will use a lighter shade of the selected colour, while a darker shade is chosen for paws, nose and eyes. + +The key \lstinline|3D| will make the marmot 3-dimensional: + +\begin{tcblisting}{title={3D marmot}} +\begin{tikzpicture} + \marmot[3D] +\end{tikzpicture} +\end{tcblisting} + +Keys can also be used to add whiskers to the marmot: \begin{tcblisting}{title={Whiskers}} \begin{tikzpicture} @@ -201,21 +214,31 @@ Some marmots even show their chisel teeth: \end{tikzpicture} \end{tcblisting} -\newpage +The marmots also can cast a shadow: + +\begin{tcblisting}{title={Shadow}} +\begin{tikzpicture} + \marmot[shadow] +\end{tikzpicture} +\end{tcblisting} + +This ability is important if you want to ask Punxsutawney Phil\footnote{\url{https://en.wikipedia.org/wiki/Punxsutawney_Phil}} on Groundhog Day how the weather is going to be. With a probability derived from the statistics of 120 Groundhog Days\footnote{\url{https://www.livescience.com/32974-punxsutawney-phil-weather-prediction-accuracy.html}} the option \lstinline|askphil| might or might not result in a shadow. + +\begin{tcblisting}{title={Ask Phil}} +\begin{tikzpicture} + \marmot[askphil] +\end{tikzpicture} +\end{tcblisting} + + If the size of the marmots should be changed or shifted: \begin{tcblisting}{title={Scaled and shifted marmots}, righthand width=3cm} \begin{tikzpicture}[scale=0.6] \marmot - \begin{scope}[xshift=90pt, scale=.5, yshift=150pt] - \marmot[body=brown!80!gray] - \end{scope} - \begin{scope}[xshift=60pt, scale=.5, yshift=100pt] - \marmot[body=brown!80!yellow] - \end{scope} - \begin{scope}[xshift=80pt, scale=.5, yshift=50pt] - \marmot[body=brown!80!red] - \end{scope} + \marmot[xshift=90pt, scale=.5, yshift=150pt,body=brown!80!gray] + \marmot[xshift=60pt, scale=.5, yshift=100pt,body=brown!80!yellow] + \marmot[xshift=80pt, scale=.5, yshift=50pt,body=brown!80!red] \end{tikzpicture} \end{tcblisting} @@ -255,7 +278,6 @@ To make the usage easier for the \TikZ-savvy users, the marmots can also be used \end{tikzpicture} \end{tcolorbox} -\clearpage \section{Further customisation} The above list of available customisations does not sound very exhaustive, but there are basically infinite possibilities for further customisation, as the marmots are just shapes in a \TikZ picture -- all the heavy weapons of the \TikZ package are thus available for further customisation. @@ -281,13 +303,15 @@ However there is no need to despair! Many of the accessories from the \tikzducks The marmots are designed to have the same height as the ducks, so many items can be adopted without any modifications. One example: -\begin{tcblisting}{title={Marmot King}} +\addtocounter{footnote}{1} +\begin{tcblisting}{title={Marmot Queen$^{\thefootnote}$}} %\usepackage{tikzducks} \begin{tikzpicture} \marmot \duck[invisible,crown] \end{tikzpicture} \end{tcblisting} +\footnotetext[\thefootnote]{The Marmot Queen is inspired by \href{http://www.ilregnodeifanes.it/inglese/summary.htm}{The Fanes' saga}} Unfortunately not all accessories will work. Some are entirely unsuitable (e.g. clothing which shape was specially designed for the ducks), others can be modified to fit: @@ -295,9 +319,7 @@ Unfortunately not all accessories will work. Some are entirely unsuitable (e.g. %\usepackage{tikzducks} \begin{tikzpicture} \marmot - \begin{scope}[scale=0.7,xshift=9,yshift=18] - \duck[invisible,cake=red!50!violet] - \end{scope} + \duck[invisible, cake=red!50!violet, scale=0.7, xshift=9, yshift=18] \end{tikzpicture} \end{tcblisting} diff --git a/Master/texmf-dist/tex/latex/tikzmarmots/tikzlibrarymarmots.code.tex b/Master/texmf-dist/tex/latex/tikzmarmots/tikzlibrarymarmots.code.tex index 03503f16296..2f34797f532 100644 --- a/Master/texmf-dist/tex/latex/tikzmarmots/tikzlibrarymarmots.code.tex +++ b/Master/texmf-dist/tex/latex/tikzmarmots/tikzlibrarymarmots.code.tex @@ -5,13 +5,13 @@ % Maintained by samcarter % % Project repository and bug tracker: -% https://github.com/samcarter8/tikzmarmots +% https://github.com/samcarter/tikzmarmots % % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.1 -% July 10, 2018 +% Version 1.0 +% Nov 8, 2018 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{tikzmarmots} diff --git a/Master/texmf-dist/tex/latex/tikzmarmots/tikzmarmots.sty b/Master/texmf-dist/tex/latex/tikzmarmots/tikzmarmots.sty index d9c6537b188..ae2bf3d9376 100644 --- a/Master/texmf-dist/tex/latex/tikzmarmots/tikzmarmots.sty +++ b/Master/texmf-dist/tex/latex/tikzmarmots/tikzmarmots.sty @@ -1,4 +1,4 @@ -% !TeX root = ./test.tex +% !TeX root = ./testing/test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % The tikzmarmots package @@ -6,19 +6,40 @@ % Maintained by samcarter % % Project repository and bug tracker: -% https://github.com/samcarter8/tikzmarmots +% https://github.com/samcarter/tikzmarmots % % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.1 -% July 10, 2018 +% Version 1.0 +% Nov 8, 2018 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ProvidesPackage{tikzmarmots} - [2018/07/08 v0.1 Drawing marmots in TikZ] + [2018/11/09 v1.0 Drawing marmots in TikZ] + +\PackageWarning{tikzmarmots}{The TikZmarmots package was merged into the TikZlings package, please load the package `tikzlings-marmots` or the more general `tikzlings` package instead} \RequirePackage{tikz} +\usetikzlibrary{shadows.blur} +\usetikzlibrary{fadings} + +\tikzfading[name=marmot@blush, +inner color=transparent!50, +outer color=transparent!100] + +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} + +\ifluatex + \let\pdfrandomseed\randomseed +\fi + +\ifxetex + \pgfmathsetseed{\time} +\else + \pgfmathsetseed{\number\pdfrandomseed} +\fi \newcommand*{\marmot}[1][]{% \begin{scope}% @@ -27,10 +48,12 @@ \end{scope}% } -\newif\ifmarmot@name \newif\ifmarmot@blush \newif\ifmarmot@whiskers \newif\ifmarmot@teeth +\newif\ifmarmot@threeD +\newif\ifmarmot@shadow +\newif\ifmarmot@askphil \tikzset{ % @@ -38,7 +61,6 @@ % /marmot/.search also={/tikz,/pgf}, /marmot/.cd, - name/.code = \marmot@nametrue \def\marmot@name{#1}, % % body % @@ -50,7 +72,11 @@ blush/.code = \marmot@blushtrue, whiskers/.code = \marmot@whiskerstrue \def\marmot@whiskers{#1}, whiskers/.default = gray, - teeth/.code = \marmot@teethtrue, + teeth/.code = \marmot@teethtrue, + 3D/.code = \marmot@threeDtrue, + shadow/.code = \marmot@shadowtrue, + askphil/.code = \marmot@askphiltrue, + ask phil/.forward to=/marmot/askphil, } \def\marmot@draw{% @@ -62,41 +88,71 @@ \path (0.3,0.1) rectangle (1.83,2.17); % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@threeD + \def\marmot@part@draw##1{\shade[ball color=##1]} +\else + \def\marmot@part@draw##1{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% shadow +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\ifmarmot@askphil + \pgfmathparse{int(random(1,120))} + \let\marmot@random=\pgfmathresult + \ifnum\marmot@random>17 + \marmot@shadowtrue + \fi +\fi +% +\ifmarmot@shadow + \fill[opacity=0,blur shadow,rotate=-80] (-0.25,1.3) ellipse (0.28 and 0.8); +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% Body parts +% Body parts (center: x=0.925) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body!50!black] (1.18,0.2) ellipse (0.23 and 0.09); -\fill[\marmot@body!50!black] (0.67,0.2) ellipse (0.23 and 0.09); +\marmot@part@draw{\marmot@body!50!black} (1.18,0.2) ellipse (0.23 and 0.09); +\marmot@part@draw{\marmot@body!50!black} (0.67,0.2) ellipse (0.23 and 0.09); % % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body!50!black] (1.18,2.03) ellipse (0.09 and 0.13); -\fill[\marmot@body!50!black] (0.67,2.03) ellipse (0.09 and 0.13); +\marmot@part@draw{\marmot@body!50!black} (1.18,2.03) ellipse (0.09 and 0.13); +\marmot@part@draw{\marmot@body!50!black} (0.67,2.03) ellipse (0.09 and 0.13); % % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body!50!black] (1.81,0.67) .. controls (1.79,0.40) and (1.27,0.24) .. (1.26,0.44) .. controls (1.24,0.56) and (1.37,0.51) .. (1.50,0.53) .. controls (1.62,0.54) and (1.81,0.72) .. (1.81,0.67) -- cycle; +\marmot@part@draw{\marmot@body!50!black} (1.81,0.67) .. controls (1.79,0.40) and (1.27,0.24) .. (1.26,0.44) .. controls (1.24,0.56) and (1.37,0.51) .. (1.50,0.53) .. controls (1.62,0.54) and (1.81,0.72) .. (1.81,0.67) -- cycle; % % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body] (1.52,0.92) .. controls (1.52,0.26) and (1.28,0.18) .. (0.95,0.18) .. controls (0.61,0.18) and (0.32,0.26) .. (0.32,0.92) .. controls (0.32,1.58) and (0.59,2.11) .. (0.92,2.11) .. controls (1.25,2.11) and (1.52,1.58) .. (1.52,0.92) -- cycle; +\marmot@part@draw{\marmot@body} (1.52,0.92) .. controls (1.52,0.26) and (1.28,0.18) .. (0.925,0.18) .. controls (0.57,0.18) and (0.33,0.26) .. (0.33,0.92) .. controls (0.32,1.58) and (0.59,2.11) .. (0.925,2.11) .. controls (1.26,2.11) and (1.53,1.58) .. (1.52,0.92) -- cycle; % % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body!50!white] (1.35,0.71) .. controls (1.35,0.41) and (1.17,0.37) .. (0.92,0.37) .. controls (0.69,0.37) and (0.48,0.41) .. (0.48,0.71) .. controls (0.48,1.01) and (0.67,1.26) .. (0.91,1.26) .. controls (1.15,1.26) and (1.35,1.01) .. (1.35,0.71) -- cycle; +\marmot@part@draw{\marmot@body!50!white} (1.35,0.71) .. controls (1.35,0.41) and (1.17,0.37) .. (0.925,0.37) .. controls (0.68,0.37) and (0.5,0.41) .. (0.5,0.71) .. controls (0.5,1.01) and (0.7,1.26) .. (0.925,1.26) .. controls (1.15,1.26) and (1.35,1.01) .. (1.35,0.71) -- cycle; % % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body!50!black,rotate around={70:(1.31,0.93)}] (1.31,0.93) ellipse (0.24 and 0.13); -\fill[\marmot@body!50!black,rotate around={-70:(0.54,0.93)}] (0.54,0.93) ellipse (0.24 and 0.13); +\marmot@part@draw{\marmot@body!50!black,rotate around={70:(1.31,0.93)}} (1.31,0.93) ellipse (0.24 and 0.13); +\marmot@part@draw{\marmot@body!50!black,rotate around={-70:(0.54,0.93)}} (0.54,0.93) ellipse (0.24 and 0.13); % % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body!50!white] (0.925,1.47) ellipse (0.23 and 0.13); +\marmot@part@draw{\marmot@body!50!white} (0.925,1.47) ellipse (0.23 and 0.13); % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body!50!black] (0.925,1.6) circle (0.08); +\marmot@part@draw{\marmot@body!50!black} (0.925,1.6) circle (0.08); % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\marmot@body!50!black] (0.77,1.77) circle (0.05); -\fill[\marmot@body!50!black] (1.08,1.77) circle (0.05); +\marmot@part@draw{\marmot@body!50!black} (0.77,1.77) circle (0.05); +\marmot@part@draw{\marmot@body!50!black} (1.08,1.77) circle (0.05); % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \draw[\marmot@body!50!black] (1.07,1.51) arc [start angle=-20, end angle=-160, radius=0.16]; @@ -109,8 +165,8 @@ % % Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifmarmot@blush - \shade[inner color=red!30!\marmot@body,outer color=\marmot@body] (0.63,1.6) circle (0.1); - \shade[inner color=red!30!\marmot@body,outer color=\marmot@body] (1.22,1.6) circle (0.1); + \fill[red,path fading=marmot@blush] (0.63,1.6) circle (0.1); + \fill[red,path fading=marmot@blush] (1.22,1.6) circle (0.1); \fi % % Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- cgit v1.2.3