diff options
author | Norbert Preining <norbert@preining.info> | 2024-04-18 03:01:14 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-04-18 03:01:14 +0000 |
commit | 01aeff9f14b706b8b64c4f782f2253e431e89e49 (patch) | |
tree | 1c111c83ed48646133936a24432af81a0e023e39 /graphics/pgf | |
parent | 5e39b1cb205459cadf7e418c73567bf999923ce7 (diff) |
CTAN sync 202404180301
Diffstat (limited to 'graphics/pgf')
-rw-r--r-- | graphics/pgf/contrib/tikzmarmots/LICENSE.txt | 415 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikzmarmots/README.md | 2 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikzmarmots/tikzlibrarymarmots.code.tex | 4 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc-settings.sty | 182 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.pdf | bin | 226107 -> 209675 bytes | |||
-rw-r--r-- | graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.tex | 339 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikzmarmots/tikzmarmots-v1.sty | 186 | ||||
-rw-r--r-- | graphics/pgf/contrib/tikzmarmots/tikzmarmots.sty | 173 |
8 files changed, 510 insertions, 791 deletions
diff --git a/graphics/pgf/contrib/tikzmarmots/LICENSE.txt b/graphics/pgf/contrib/tikzmarmots/LICENSE.txt deleted file mode 100644 index f8b699e6eb..0000000000 --- a/graphics/pgf/contrib/tikzmarmots/LICENSE.txt +++ /dev/null @@ -1,415 +0,0 @@ -The LaTeX Project Public License -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - -LPPL Version 1.3c 2008-05-04 - -Copyright 1999 2002-2008 LaTeX3 Project - Everyone is allowed to distribute verbatim copies of this - license document, but modification of it is not allowed. - - -PREAMBLE -======== - -The LaTeX Project Public License (LPPL) is the primary license under -which the LaTeX kernel and the base LaTeX packages are distributed. - -You may use this license for any work of which you hold the copyright -and which you wish to distribute. This license may be particularly -suitable if your work is TeX-related (such as a LaTeX package), but -it is written in such a way that you can use it even if your work is -unrelated to TeX. - -The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', -below, gives instructions, examples, and recommendations for authors -who are considering distributing their works under this license. - -This license gives conditions under which a work may be distributed -and modified, as well as conditions under which modified versions of -that work may be distributed. - -We, the LaTeX3 Project, believe that the conditions below give you -the freedom to make and distribute modified versions of your work -that conform with whatever technical specifications you wish while -maintaining the availability, integrity, and reliability of -that work. If you do not see how to achieve your goal while -meeting these conditions, then read the document `cfgguide.tex' -and `modguide.tex' in the base LaTeX distribution for suggestions. - - -DEFINITIONS -=========== - -In this license document the following terms are used: - - `Work' - Any work being distributed under this License. - - `Derived Work' - Any work that under any applicable law is derived from the Work. - - `Modification' - Any procedure that produces a Derived Work under any applicable - law -- for example, the production of a file containing an - original file associated with the Work or a significant portion of - such a file, either verbatim or with modifications and/or - translated into another language. - - `Modify' - To apply any procedure that produces a Derived Work under any - applicable law. - - `Distribution' - Making copies of the Work available from one person to another, in - whole or in part. Distribution includes (but is not limited to) - making any electronic components of the Work accessible by - file transfer protocols such as FTP or HTTP or by shared file - systems such as Sun's Network File System (NFS). - - `Compiled Work' - A version of the Work that has been processed into a form where it - is directly usable on a computer system. This processing may - include using installation facilities provided by the Work, - transformations of the Work, copying of components of the Work, or - other activities. Note that modification of any installation - facilities provided by the Work constitutes modification of the Work. - - `Current Maintainer' - A person or persons nominated as such within the Work. If there is - no such explicit nomination then it is the `Copyright Holder' under - any applicable law. - - `Base Interpreter' - A program or process that is normally needed for running or - interpreting a part or the whole of the Work. - - A Base Interpreter may depend on external components but these - are not considered part of the Base Interpreter provided that each - external component clearly identifies itself whenever it is used - interactively. Unless explicitly specified when applying the - license to the Work, the only applicable Base Interpreter is a - `LaTeX-Format' or in the case of files belonging to the - `LaTeX-format' a program implementing the `TeX language'. - - - -CONDITIONS ON DISTRIBUTION AND MODIFICATION -=========================================== - -1. Activities other than distribution and/or modification of the Work -are not covered by this license; they are outside its scope. In -particular, the act of running the Work is not restricted and no -requirements are made concerning any offers of support for the Work. - -2. You may distribute a complete, unmodified copy of the Work as you -received it. Distribution of only part of the Work is considered -modification of the Work, and no right to distribute such a Derived -Work may be assumed under the terms of this clause. - -3. You may distribute a Compiled Work that has been generated from a -complete, unmodified copy of the Work as distributed under Clause 2 -above, as long as that Compiled Work is distributed in such a way that -the recipients may install the Compiled Work on their system exactly -as it would have been installed if they generated a Compiled Work -directly from the Work. - -4. If you are the Current Maintainer of the Work, you may, without -restriction, modify the Work, thus creating a Derived Work. You may -also distribute the Derived Work without restriction, including -Compiled Works generated from the Derived Work. Derived Works -distributed in this manner by the Current Maintainer are considered to -be updated versions of the Work. - -5. If you are not the Current Maintainer of the Work, you may modify -your copy of the Work, thus creating a Derived Work based on the Work, -and compile this Derived Work, thus creating a Compiled Work based on -the Derived Work. - -6. If you are not the Current Maintainer of the Work, you may -distribute a Derived Work provided the following conditions are met -for every component of the Work unless that component clearly states -in the copyright notice that it is exempt from that condition. Only -the Current Maintainer is allowed to add such statements of exemption -to a component of the Work. - - a. If a component of this Derived Work can be a direct replacement - for a component of the Work when that component is used with the - Base Interpreter, then, wherever this component of the Work - identifies itself to the user when used interactively with that - Base Interpreter, the replacement component of this Derived Work - clearly and unambiguously identifies itself as a modified version - of this component to the user when used interactively with that - Base Interpreter. - - b. Every component of the Derived Work contains prominent notices - detailing the nature of the changes to that component, or a - prominent reference to another file that is distributed as part - of the Derived Work and that contains a complete and accurate log - of the changes. - - c. No information in the Derived Work implies that any persons, - including (but not limited to) the authors of the original version - of the Work, provide any support, including (but not limited to) - the reporting and handling of errors, to recipients of the - Derived Work unless those persons have stated explicitly that - they do provide such support for the Derived Work. - - d. You distribute at least one of the following with the Derived Work: - - 1. A complete, unmodified copy of the Work; - if your distribution of a modified component is made by - offering access to copy the modified component from a - designated place, then offering equivalent access to copy - the Work from the same or some similar place meets this - condition, even though third parties are not compelled to - copy the Work along with the modified component; - - 2. Information that is sufficient to obtain a complete, - unmodified copy of the Work. - -7. If you are not the Current Maintainer of the Work, you may -distribute a Compiled Work generated from a Derived Work, as long as -the Derived Work is distributed to all recipients of the Compiled -Work, and as long as the conditions of Clause 6, above, are met with -regard to the Derived Work. - -8. The conditions above are not intended to prohibit, and hence do not -apply to, the modification, by any method, of any component so that it -becomes identical to an updated version of that component of the Work as -it is distributed by the Current Maintainer under Clause 4, above. - -9. Distribution of the Work or any Derived Work in an alternative -format, where the Work or that Derived Work (in whole or in part) is -then produced by applying some process to that format, does not relax or -nullify any sections of this license as they pertain to the results of -applying that process. - -10. a. A Derived Work may be distributed under a different license - provided that license itself honors the conditions listed in - Clause 6 above, in regard to the Work, though it does not have - to honor the rest of the conditions in this license. - - b. If a Derived Work is distributed under a different license, that - Derived Work must provide sufficient documentation as part of - itself to allow each recipient of that Derived Work to honor the - restrictions in Clause 6 above, concerning changes from the Work. - -11. This license places no restrictions on works that are unrelated to -the Work, nor does this license place any restrictions on aggregating -such works with the Work by any means. - -12. Nothing in this license is intended to, or may be used to, prevent -complete compliance by all parties with all applicable laws. - - -NO WARRANTY -=========== - -There is no warranty for the Work. Except when otherwise stated in -writing, the Copyright Holder provides the Work `as is', without -warranty of any kind, either expressed or implied, including, but not -limited to, the implied warranties of merchantability and fitness for a -particular purpose. The entire risk as to the quality and performance -of the Work is with you. Should the Work prove defective, you assume -the cost of all necessary servicing, repair, or correction. - -In no event unless required by applicable law or agreed to in writing -will The Copyright Holder, or any author named in the components of the -Work, or any other party who may distribute and/or modify the Work as -permitted above, be liable to you for damages, including any general, -special, incidental or consequential damages arising out of any use of -the Work or out of inability to use the Work (including, but not limited -to, loss of data, data being rendered inaccurate, or losses sustained by -anyone as a result of any failure of the Work to operate with any other -programs), even if the Copyright Holder or said author or said other -party has been advised of the possibility of such damages. - - -MAINTENANCE OF THE WORK -======================= - -The Work has the status `author-maintained' if the Copyright Holder -explicitly and prominently states near the primary copyright notice in -the Work that the Work can only be maintained by the Copyright Holder -or simply that it is `author-maintained'. - -The Work has the status `maintained' if there is a Current Maintainer -who has indicated in the Work that they are willing to receive error -reports for the Work (for example, by supplying a valid e-mail -address). It is not required for the Current Maintainer to acknowledge -or act upon these error reports. - -The Work changes from status `maintained' to `unmaintained' if there -is no Current Maintainer, or the person stated to be Current -Maintainer of the work cannot be reached through the indicated means -of communication for a period of six months, and there are no other -significant signs of active maintenance. - -You can become the Current Maintainer of the Work by agreement with -any existing Current Maintainer to take over this role. - -If the Work is unmaintained, you can become the Current Maintainer of -the Work through the following steps: - - 1. Make a reasonable attempt to trace the Current Maintainer (and - the Copyright Holder, if the two differ) through the means of - an Internet or similar search. - - 2. If this search is successful, then enquire whether the Work - is still maintained. - - a. If it is being maintained, then ask the Current Maintainer - to update their communication data within one month. - - b. If the search is unsuccessful or no action to resume active - maintenance is taken by the Current Maintainer, then announce - within the pertinent community your intention to take over - maintenance. (If the Work is a LaTeX work, this could be - done, for example, by posting to comp.text.tex.) - - 3a. If the Current Maintainer is reachable and agrees to pass - maintenance of the Work to you, then this takes effect - immediately upon announcement. - - b. If the Current Maintainer is not reachable and the Copyright - Holder agrees that maintenance of the Work be passed to you, - then this takes effect immediately upon announcement. - - 4. If you make an `intention announcement' as described in 2b. above - and after three months your intention is challenged neither by - the Current Maintainer nor by the Copyright Holder nor by other - people, then you may arrange for the Work to be changed so as - to name you as the (new) Current Maintainer. - - 5. If the previously unreachable Current Maintainer becomes - reachable once more within three months of a change completed - under the terms of 3b) or 4), then that Current Maintainer must - become or remain the Current Maintainer upon request provided - they then update their communication data within one month. - -A change in the Current Maintainer does not, of itself, alter the fact -that the Work is distributed under the LPPL license. - -If you become the Current Maintainer of the Work, you should -immediately provide, within the Work, a prominent and unambiguous -statement of your status as Current Maintainer. You should also -announce your new status to the same pertinent community as -in 2b) above. - - -WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE -====================================================== - -This section contains important instructions, examples, and -recommendations for authors who are considering distributing their -works under this license. These authors are addressed as `you' in -this section. - -Choosing This License or Another License ----------------------------------------- - -If for any part of your work you want or need to use *distribution* -conditions that differ significantly from those in this license, then -do not refer to this license anywhere in your work but, instead, -distribute your work under a different license. You may use the text -of this license as a model for your own license, but your license -should not refer to the LPPL or otherwise give the impression that -your work is distributed under the LPPL. - -The document `modguide.tex' in the base LaTeX distribution explains -the motivation behind the conditions of this license. It explains, -for example, why distributing LaTeX under the GNU General Public -License (GPL) was considered inappropriate. Even if your work is -unrelated to LaTeX, the discussion in `modguide.tex' may still be -relevant, and authors intending to distribute their works under any -license are encouraged to read it. - -A Recommendation on Modification Without Distribution ------------------------------------------------------ - -It is wise never to modify a component of the Work, even for your own -personal use, without also meeting the above conditions for -distributing the modified component. While you might intend that such -modifications will never be distributed, often this will happen by -accident -- you may forget that you have modified that component; or -it may not occur to you when allowing others to access the modified -version that you are thus distributing it and violating the conditions -of this license in ways that could have legal implications and, worse, -cause problems for the community. It is therefore usually in your -best interest to keep your copy of the Work identical with the public -one. Many works provide ways to control the behavior of that work -without altering any of its licensed components. - -How to Use This License ------------------------ - -To use this license, place in each of the components of your work both -an explicit copyright notice including your name and the year the work -was authored and/or last substantially modified. Include also a -statement that the distribution and/or modification of that -component is constrained by the conditions in this license. - -Here is an example of such a notice and statement: - - %% pig.dtx - %% Copyright 2005 M. Y. Name - % - % This work may be distributed and/or modified under the - % conditions of the LaTeX Project Public License, either version 1.3 - % of this license or (at your option) any later version. - % The latest version of this license is in - % http://www.latex-project.org/lppl.txt - % and version 1.3 or later is part of all distributions of LaTeX - % version 2005/12/01 or later. - % - % This work has the LPPL maintenance status `maintained'. - % - % The Current Maintainer of this work is M. Y. Name. - % - % This work consists of the files pig.dtx and pig.ins - % and the derived file pig.sty. - -Given such a notice and statement in a file, the conditions -given in this license document would apply, with the `Work' referring -to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being -generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' -referring to any `LaTeX-Format', and both `Copyright Holder' and -`Current Maintainer' referring to the person `M. Y. Name'. - -If you do not want the Maintenance section of LPPL to apply to your -Work, change `maintained' above into `author-maintained'. -However, we recommend that you use `maintained', as the Maintenance -section was added in order to ensure that your Work remains useful to -the community even when you can no longer maintain and support it -yourself. - -Derived Works That Are Not Replacements ---------------------------------------- - -Several clauses of the LPPL specify means to provide reliability and -stability for the user community. They therefore concern themselves -with the case that a Derived Work is intended to be used as a -(compatible or incompatible) replacement of the original Work. If -this is not the case (e.g., if a few lines of code are reused for a -completely different task), then clauses 6b and 6d shall not apply. - - -Important Recommendations -------------------------- - - Defining What Constitutes the Work - - The LPPL requires that distributions of the Work contain all the - files of the Work. It is therefore important that you provide a - way for the licensee to determine which files constitute the Work. - This could, for example, be achieved by explicitly listing all the - files of the Work near the copyright notice of each file or by - using a line such as: - - % This work consists of all files listed in manifest.txt. - - in that place. In the absence of an unequivocal list it might be - impossible for the licensee to determine what is considered by you - to comprise the Work and, in such a case, the licensee would be - entitled to make reasonable conjectures as to which files comprise - the Work. diff --git a/graphics/pgf/contrib/tikzmarmots/README.md b/graphics/pgf/contrib/tikzmarmots/README.md index dcc8ed647c..5dbde87676 100644 --- a/graphics/pgf/contrib/tikzmarmots/README.md +++ b/graphics/pgf/contrib/tikzmarmots/README.md @@ -1,5 +1,7 @@ # Tikzmarmots +> *Notice: this package has been merged into the TikZlings package and, starting with version 2.0, is now a wrapper around the `tikzlings-marmots` package. The previous version can be accessed via `\usepackage{tikzmarmots}[v1]`.* + 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 diff --git a/graphics/pgf/contrib/tikzmarmots/tikzlibrarymarmots.code.tex b/graphics/pgf/contrib/tikzmarmots/tikzlibrarymarmots.code.tex index 2f34797f53..dc93fdbf5d 100644 --- a/graphics/pgf/contrib/tikzmarmots/tikzlibrarymarmots.code.tex +++ b/graphics/pgf/contrib/tikzmarmots/tikzlibrarymarmots.code.tex @@ -10,8 +10,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 1.0 -% Nov 8, 2018 +% Version 2.0 +% Apr 17, 2024 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{tikzmarmots} diff --git a/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc-settings.sty b/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc-settings.sty new file mode 100644 index 0000000000..9f7307dc87 --- /dev/null +++ b/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc-settings.sty @@ -0,0 +1,182 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Personal helper theme for package documentations +% Copyright samcarter +% +% This file may be distributed and/or modified +% under the LaTeX Project Public License 1.3c or later +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Usage: +% ln ~/Life/latex/beamertheme-sam/themesam.sty package-doc-settings.sty +% \usepackage[ +% themecolor=samdblue +% ]{\jobname-settings} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Colours +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{xcolor} +\definecolor{samyellow}{RGB}{246,193,65} +\definecolor{samorange}{RGB}{241,147,45} +\definecolor{samred}{RGB}{191,26,46}% TikZbricks +\definecolor{sammagenta}{RGB}{170,42,104}% TikZmarmots +\definecolor{samviolet}{RGB}{136,46,114}% TikZlings +\definecolor{samlila}{RGB}{101,67,159}% Rainbow beamer theme +\definecolor{samdblue}{RGB}{0,51,134}% beamer theme +\definecolor{samlblue}{RGB}{22,89,155}% TikZducks +\definecolor{samteal}{RGB}{25,143,157}% Tcolorbox beamer theme +\definecolor{samlgreen}{RGB}{68,170,153}% Jigsaw +\definecolor{samdgreen}{RGB}{78,178,125} +\definecolor{samlgray}{RGB}{160,160,185} +\definecolor{samdgray}{RGB}{60,60,85} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Package options +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{xkeyval} +\DeclareOptionX{themecolor}[samdblue]{\colorlet{themecolor}{#1}} +\DeclareOptionX{listingcolor}[samlblue]{\colorlet{listingcolor}{#1}} +\ExecuteOptionsX{themecolor,listingcolor} +\ProcessOptionsX + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Packages +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\@ifclassloaded{beamer}{}{% + \RequirePackage[english]{babel} + \RequirePackage[paper=a4paper,margin=2.9cm]{geometry} + \RequirePackage{scrlayer-scrpage} + \let\hrulefillx\hrulefill + \RequirePackage[bitstream-charter]{mathdesign} + \let\hrulefill\hrulefillx + \RequirePackage[hang,flushmargin,bottom]{footmisc} + \RequirePackage[colorlinks=true,breaklinks=true,allcolors=themecolor]{hyperref} +} +\RequirePackage[T1]{fontenc} +\RequirePackage{xspace} +\RequirePackage{inconsolata}% mono font with bold, but italic is missing +% \RequirePackage[scale=0.85]{cascadia-code} +% \AddToHook{cmd/ttfamily/before}{\fontseries{sl}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Listings +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage[ + cachedir=./build/ +]{minted} + +% smuggling custom pygmentize style in cache folder +% (a real pygmentise style would need installtion in some python folder) +\begin{filecontents*}[noheader]{./build/sam.pygstyle} +\makeatletter +\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% + \let\PYG@ul=\relax \let\PYG@tc=\relax% + \let\PYG@bc=\relax \let\PYG@ff=\relax} +\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} +\def\PYG@toks#1+{\ifx\relax#1\empty\else% + \PYG@tok{#1}\expandafter\PYG@toks\fi} +\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% + \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} +\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} + +% optional arguments +\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor{black}{##1}}} + +% macros +\expandafter\def\csname PYG@tok@k\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}} +% curly brakets +\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}} + +% comments (italics won't work with the inconsolata font) +\expandafter\def\csname PYG@tok@c\endcsname{\def\PYG@tc##1{\textcolor{gray}{##1}}} + +\def\PYGZbs{\char`\\} +\def\PYGZus{\char`\_} +\def\PYGZob{\char`\{} +\def\PYGZcb{\char`\}} +\def\PYGZca{\char`\^} +\def\PYGZam{\char`\&} +\def\PYGZlt{\char`\<} +\def\PYGZgt{\char`\>} +\def\PYGZsh{\char`\#} +\def\PYGZpc{\char`\%} +\def\PYGZdl{\char`\$} +\def\PYGZhy{\char`\-} +\def\PYGZsq{\char`\'} +\def\PYGZdq{\char`\"} +\def\PYGZti{\char`\~} +% for compatibility with earlier versions +\def\PYGZat{@} +\def\PYGZlb{[} +\def\PYGZrb{]} +\makeatother +\end{filecontents*} + +\usemintedstyle{sam} +\setminted{ + breaksymbolleft={}, + tabsize=2, + breaklines=true, +} +\newminted[samcode]{latex}{} +\newmintinline[saminline]{latex}{} + +% use non-bold and all coloured for inline code in articles +\ifdefined\insertaspectratio\else + \patchcmd{\minted@inputpyg@inline}{\minted@input}{\color{listingcolor}\renewcommand\textcolor[3][]{##3}\renewcommand\bfseries{}\minted@input}{}{} +\fi + +\RequirePackage[most]{tcolorbox} +\tcbuselibrary{minted} +\tcbset{% + colframe=themecolor, + arc=2mm, + fonttitle=\bfseries, + sidebyside, + center lower, + righthand width=5.7cm, + bottom=2pt, + top=2pt, + sidebyside gap=10pt, + lower separated=false, + listing engine=minted, + minted language=latex, + colback=themecolor!10 +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% document settings +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\@ifclassloaded{scrartcl}{% + \addtokomafont{sectioning}{\color{themecolor}} + \addtokomafont{date}{\normalsize} + \addtokomafont{author}{\normalsize} + \setlength{\footnotemargin}{0.7em} +}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Custom macros +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\providecommand*{\CTAN}{\textsc{CTAN}\xspace} +\providecommand*{\TikZ}{Ti\emph{k}Z\xspace} +\providecommand*{\miktex}{MiK\TeX\xspace} +\providecommand*{\texlive}{\TeX{}Live\xspace} +\providecommand*{\tikzbrick}{Ti\emph{k}Zbrick\xspace} +\providecommand*{\tikzducks}{Ti\emph{k}Zducks\xspace} +\providecommand*{\tikzlings}{Ti\emph{k}Zlings\xspace} +\providecommand*{\tikzmarmots}{Ti\emph{k}Zmarmots\xspace} +\providecommand*{\ConTeXt}{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.pdf b/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.pdf Binary files differindex a05c431384..2df83aafbf 100644 --- a/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.pdf +++ b/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.pdf diff --git a/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.tex b/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.tex index 20569b0aba..52d20b781b 100644 --- a/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.tex +++ b/graphics/pgf/contrib/tikzmarmots/tikzmarmots-doc.tex @@ -10,117 +10,131 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 1.0 -% Nov 8, 2018 +% Version 2.0 +% Apr 17, 2024 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% !TeX program = txs:///arara +% arara: latexmk: { +% arara: --> engine: pdflatex, +% arara: --> options: [ +% arara: --> '-shell-escape', +% arara: --> '-synctex=1', +% arara: --> '-interaction=nonstopmode', +% arara: --> ] +% arara: --> } \documentclass[parskip=half]{scrartcl} -% packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} -\usepackage[english]{babel} -\usepackage[bitstream-charter]{mathdesign} +% meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\title{The \texorpdfstring{\tikzmarmots}{tikzmarmots} package} +\subtitle{using marmots in \TikZ} +\author{% + \texorpdfstring{ + \begin{tikzpicture} + \marmot + \end{tikzpicture}\\[0.8em] + \texttt{samcarter}\\ + \url{https://github.com/samcarter/tikzmarmots}\\ + \url{https://www.ctan.org/pkg/tikzmarmots} + }{samcarter}} +\date{Version 2.0 -- \today} + +\usepackage[ + themecolor=sammagenta +]{\jobname-settings} + +\colorlet{blue}{samlblue} + \usepackage{tikzducks} \usetikzlibrary{ducks} \usepackage{tikzmarmots} \usetikzlibrary{marmots} -\usepackage[most]{tcolorbox} -\usepackage[paper=a4paper,margin=3cm]{geometry} -\usepackage{url} -\usepackage{xspace} -\usepackage{scrlayer-scrpage} +\usepackage{tikzlings-addons} \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} -\newcommand{\TikZ}{Ti\emph{k}Z\xspace} -\newcommand{\tikzducks}{Ti\emph{k}Zducks\xspace} -\newcommand{\tikzmarmots}{Ti\emph{k}Zmarmots\xspace} -\newcommand{\miktex}{MiK\TeX\xspace} -\newcommand{\texlive}{\TeX{}Live\xspace} + +% including commented lines from the .sty files %%%%%%%%%%%%%%%%%%%%%% +% thanks to Phelype Oleinik https://topanswers.xyz/tex?q=1861#a2092 +\ExplSyntaxOn +\makeatletter +\iow_new:N \l__tikzlings_iow +\tl_new:N \l__tikzlings_file_name_tl +\NewDocumentCommand \CommentInput { m } + { \tikzlings_comment_input:n {#1} } +\cs_new_protected:Npn \tikzlings_comment_input:n #1 + { + \file_get_full_name:nNTF {#1} \l__tikzlings_file_name_tl + { \__tikzlings_comment_input: } + { \msg_error:nnn { tikzlings } { file-not-found } {#1} } + } +\msg_new:nnn { tikzlings } { file-not-found } { File~'#1'~not~found. } +\cs_new_protected:Npn \__tikzlings_comment_input: + { + \group_begin: + \cctab_select:N \c_other_cctab + \int_set:Nn \tex_endlinechar:D { `\^^M } + \use:x { \tex_everyeof:D { \exp_not:N \q_nil \char_generate:nn { 13 } { 13 } } } + \char_set_active_eq:NN \^^M \__tikzlings_process_line:w + \char_set_catcode_active:N \^^M + \iow_open:Nn \l__tikzlings_iow { \c_sys_jobname_str . cif } % cif => comment input file + \exp_after:wN \__tikzlings_process_line:w + \tex_input:D { \l__tikzlings_file_name_tl } + \iow_close:N \l__tikzlings_iow + \group_end: + \declare@file@substitution { \l__tikzlings_file_name_tl } { \c_sys_jobname_str . cif } + \input { \l__tikzlings_file_name_tl } + \undeclare@file@substitution { \l__tikzlings_file_name_tl } + } +\group_begin: +\char_set_catcode_active:N \^^M +\char_set_active_eq:NN \^^M \scan_stop: +\cs_new_protected:Npx \__tikzlings_process_line:w #1 ^^M + { \exp_not:N \__tikzlings_parse_line:w ^^M #1 ^^M \c_percent_str \s_stop } +\cs_set_protected:Npn \__tikzlings_tmp:w #1 + { + \cs_new_protected:Npn \__tikzlings_parse_line:w ##1 ^^M #1 ##2 \s_stop + { + \tl_if_empty:nTF {##1} + { + \peek_charcode_remove:NTF #1 + { \__tikzlings_ignore_line:w } + { \__tikzlings_output_line:w } + ##2 \s_stop ^^M + } + { + \tl_set:Nx \l_tmpa_tl { \tl_tail:n {##1} } + \tl_if_eq:NNF \l_tmpa_tl \q_nil { ^^M } + } + } + \cs_new_protected:Npn \__tikzlings_output_line:w ##1 ^^M #1 \s_stop + { \iow_now:Nn \l__tikzlings_iow {##1} } + \cs_new_protected:Npn \__tikzlings_ignore_line:w ##1 \s_stop { } + } +\exp_args:No \__tikzlings_tmp:w { \c_percent_str } +\group_end: +\makeatother +\ExplSyntaxOff % customisation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\definecolor{duckblue}{RGB}{0,70,140} -\definecolor{marmotred}{RGB}{140,20,40} -\addtokomafont{sectioning}{\color{marmotred}} -\addtokomafont{date}{\normalsize} -\addtokomafont{author}{\normalsize} \setlength{\footnotemargin}{0.7em} - -\lstdefinestyle{marmotstyle}{% - language={[latex]TeX}, - tabsize=2, - breaklines, - basicstyle=\footnotesize\ttfamily, - commentstyle={\color{green!50!black}\slshape}, - columns=fullflexible, - emphstyle=\color{orange!70!black}, - 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}, - moretexcs={marmot,path,definecolor,scalebox,foreach,node,draw,PassOptionsToPackage,usetikzlibrary,selectcolormodel,colorlet,includegraphics,tikzset,shade,duck}, - delim ={[s][\ttfamily\color{green!50!black}]{$}{$}}, - moredelim=[is][\footnotesize\ttfamily\color{orange!70!black}]{|}{|}, - index=[1][emph] -} - -\tcbset{% - colframe=marmotred, - arc=2mm, - fonttitle=\bfseries, - sidebyside, - listing options={style=marmotstyle}, - center lower, - righthand width=6.5cm, - bottom=0pt, - top=0pt, - before lower={% - \setlength{\parskip}{0.5cm}% - \spaceskip=5\fontdimen2\font% - }, -} - -\lstset{style=marmotstyle} - \setlength{\footheight}{45pt} \cfoot{% - \begin{tikzpicture}[scale=0.5] - \marmot - \duck[invisible,signpost=\scalebox{0.6}{\thepage}] - \end{tikzpicture} -} + \begin{tikzpicture}[scale=0.5] + \marmot + \thing[scale=0.8,signpost=\scalebox{0.6}{\thepage}] + \end{tikzpicture} +} \pagestyle{scrheadings} -%\indexsetup{firstpagestyle=scrheadings} -%\makeindex - -% meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\title{The \texorpdfstring{\tikzmarmots}{tikzmarmots} package} -\subtitle{using marmots in \TikZ} -\author{% - \texorpdfstring{\texttt{samcarter} (alias - \begin{tikzpicture}[scale=0.3,baseline=3pt] - \duck[body=yellow!50!brown!50!white, - longhair=red!50!brown, - jacket=blue!50!black] - \end{tikzpicture})\\[0.8em] - \url{https://github.com/samcarter/tikzmarmots}\\ - \url{https://www.ctan.org/pkg/tikzmarmots} - }{samcarter}} -\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. +\begin{tcolorbox}[coltext=themecolor,width=.8\textwidth,center,sidebyside=false,bottom=10pt,top=10pt] +The \tikzmarmots package was merged into the Ti\emph{k}Zlings package and, starting with version 2.0, is now a wrapper around the \saminline|tikzlings-marmots| package. + +To access the previous version, use \saminline|\usepackage{tikzmarmots}[v1]|. \end{tcolorbox} @@ -135,117 +149,34 @@ This package is work in progress, therefore I would be happy to hear your feedba 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} -% -%Without the friendly and helpful community of \href{https://tex.stackexchange.com/}{TeX.Stackexchange} this package would not exist. -% -%%I would like to thank a few fellow users in particular: -%%TODO marmot -%%TODO ulrike - -\subsection{License} - Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{http://www.latex-project.org/lppl.txt}. The shown example marmots are purely fictional characters, any resemblance to real marmots or persons is purely coincidental and no copyright infringement is intended. -\subsection{Dependencies} - -The \tikzmarmots package loads \TikZ, which in turn loads the \lstinline|xcolor| package (amongst others). If you require one of these packages to be loaded with some option, please consider loading it yourself before the \tikzmarmots package or use, e.g. - -\begin{lstlisting}[aboveskip=1.2em,morekeywords={xcolor,svgnames}] - \PassOptionsToPackage{svgnames}{xcolor} -\end{lstlisting} - -\section{Usage} - -The basic usage is fairly simple, to draw a marmot: -\begin{tcblisting}{title={Basic marmot}} -\begin{tikzpicture} - \marmot -\end{tikzpicture} -\end{tcblisting} - -To customise this basic marmot, the package uses \lstinline|pgf| keys. - -These keys can for example be used to change the marmot's colour via \lstinline|body=<colour name>|. - -\begin{tcblisting}{title={Blue marmot}} -\begin{tikzpicture} - \marmot[body=blue] -\end{tikzpicture} -\end{tcblisting} - -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} - \marmot[whiskers] -\end{tikzpicture} -\begin{tikzpicture} - \marmot[whiskers=blue] -\end{tikzpicture} -\end{tcblisting} - -Or to make it blush: - -\begin{tcblisting}{title={Blushing marmot}} -\begin{tikzpicture} - \marmot[blush] -\end{tikzpicture} -\end{tcblisting} - -Some marmots even show their chisel teeth: - -\begin{tcblisting}{title={Chisel teeth}} -\begin{tikzpicture} - \marmot[teeth] -\end{tikzpicture} -\end{tcblisting} - -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} - +\begingroup + \tcbset{tikz lower} + \CommentInput{tikzlings-marmots.sty} +\endgroup 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 - \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] + \marmot + \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} -To make the usage easier for the \TikZ-savvy users, the marmots can also be used as \TikZ library. It can be loaded with \lstinline|\usetikzlibrary{marmots}|. In addition to the normal functionality of the \tikzmarmots package, the marmots are now also available as \lstinline|pic|. A short example: +To make the usage easier for the \TikZ-savvy users, the marmots can also be used as \TikZ library. It can be loaded with \saminline|\usetikzlibrary{marmots}|. In addition to the normal functionality of the \tikzmarmots package, the marmots are now also available as \saminline|pic|. A short example: \begin{tcolorbox}[title={\TikZ library ``marmots''}] -\begin{lstlisting}[morekeywords={marmots,duck,standalone,tikz,document}] +\begin{samcode} \documentclass{standalone} \usepackage{tikz} @@ -264,7 +195,7 @@ To make the usage easier for the \TikZ-savvy users, the marmots can also be used \end{tikzpicture} \end{document} -\end{lstlisting} +\end{samcode} \tcblower \begin{tikzpicture} @@ -284,45 +215,43 @@ The above list of available customisations does not sound very exhaustive, but t \begin{tcblisting}{title={Adding things to the marmot}} \begin{tikzpicture} - \marmot - \fill[blue] (2,0) rectangle (1,1); + \marmot + \fill[blue] (0,0) rectangle (1,1); \end{tikzpicture} \end{tcblisting} %\begin{tcblisting}{title={Monochrome marmot}} %\begin{tikzpicture} -% \selectcolormodel{gray} -% \marmot +% \selectcolormodel{gray} +% \marmot %\end{tikzpicture} %\end{tcblisting} -\section{Re-using accessories from the \tikzducks package} +\section{Re-using accessories from the \tikzlings package} As already said in the introduction, this package focuses on the marmots themselves and does not provide additional accessories. -However there is no need to despair! Many of the accessories from the \tikzducks package (\url{https://www.ctan.org/pkg/tikzducks}) can be re-used using the \lstinline|invisible| key which will only produce the desired item without a duck. - -The marmots are designed to have the same height as the ducks, so many items can be adopted without any modifications. One example: +However there is no need to despair! There are many accessories available from the \saminline|tikzlings-addons| package (\url{https://www.ctan.org/pkg/tikzlings}). \addtocounter{footnote}{1} \begin{tcblisting}{title={Marmot Queen$^{\thefootnote}$}} -%\usepackage{tikzducks} +%\usepackage{tikzlings-addons} \begin{tikzpicture} - \marmot - \duck[invisible,crown] -\end{tikzpicture} + \marmot + \thing[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: - +The items can be modified with the usual \TikZ keys and come with additional options. Here one example: \begin{tcblisting}{title={Happy Birthday!}} -%\usepackage{tikzducks} +%\usepackage{tikzlings-addons} \begin{tikzpicture} - \marmot - \duck[invisible, cake=red!50!violet, scale=0.7, xshift=9, yshift=18] -\end{tikzpicture} + \marmot + \thing[cake=red!50!violet, + scale=1.2] +\end{tikzpicture} \end{tcblisting} -For a complete list of available accessories, please see the documentation of the \tikzducks package (\url{http://mirrors.ctan.org/graphics/pgf/contrib/tikzducks/tikzducks-doc.pdf}) + Please consult the \href{http://mirrors.ctan.org/graphics/pgf/contrib/tikzlings/tikzlings-doc.pdf}{\tikzlings package documentation} for an exhaustive list of options. \end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tikzmarmots/tikzmarmots-v1.sty b/graphics/pgf/contrib/tikzmarmots/tikzmarmots-v1.sty new file mode 100644 index 0000000000..ae2bf3d937 --- /dev/null +++ b/graphics/pgf/contrib/tikzmarmots/tikzmarmots-v1.sty @@ -0,0 +1,186 @@ +% !TeX root = ./testing/test.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzmarmots package +% A package to bring little marmots into tikz +% Maintained by samcarter +% +% Project repository and bug tracker: +% 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 1.0 +% Nov 8, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzmarmots} + [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}% + \tikzset{/marmot/.cd,#1}% + \marmot@draw% + \end{scope}% +} + +\newif\ifmarmot@blush +\newif\ifmarmot@whiskers +\newif\ifmarmot@teeth +\newif\ifmarmot@threeD +\newif\ifmarmot@shadow +\newif\ifmarmot@askphil + +\tikzset{ + % + % Pass unknown keys on to tikz + % + /marmot/.search also={/tikz,/pgf}, + /marmot/.cd, + % + % body + % + body/.code = \def\marmot@body{#1}, + body = brown, + % + % options + % + blush/.code = \marmot@blushtrue, + whiskers/.code = \marmot@whiskerstrue \def\marmot@whiskers{#1}, + whiskers/.default = gray, + 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{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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 (center: x=0.925) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\marmot@part@draw{\marmot@body!50!white} (0.925,1.47) ellipse (0.23 and 0.13); +% +% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\marmot@part@draw{\marmot@body!50!black} (0.925,1.6) circle (0.08); +% +% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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]; +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% optional +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@blush + \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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@whiskers + \foreach \X in {10,20,33}{% + \filldraw[line width=0pt,\marmot@whiskers] (0.925,1.6) + (\X:0.08) to[out=\X,in={180-\X}] ++({\X-20}:0.3) --++(0,0.005) to[out={180-\X},in=\X] cycle (0.925,1.6) + ({180-\X}:0.08) to[out={180-\X},in=\X] ++({200-\X}:0.3) --++(0,0.005) to[out=\X,in={180-\X}] cycle; + } +\fi +% +% Teeth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@teeth + \draw[very thin,fill=white] (0.88,1.41) -- (0.88,1.38) to[out=-5,in=-175] (0.97,1.38) -- (0.97,1.41) to[out=-170,in=-10] cycle; + \draw[very thin] (0.925,1.405) -- (0.925,1.38); +\fi +% +} + diff --git a/graphics/pgf/contrib/tikzmarmots/tikzmarmots.sty b/graphics/pgf/contrib/tikzmarmots/tikzmarmots.sty index ae2bf3d937..f773854489 100644 --- a/graphics/pgf/contrib/tikzmarmots/tikzmarmots.sty +++ b/graphics/pgf/contrib/tikzmarmots/tikzmarmots.sty @@ -11,176 +11,11 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 1.0 -% Nov 8, 2018 +% Version 2.0 +% Apr 17, 2024 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ProvidesPackage{tikzmarmots} - [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}% - \tikzset{/marmot/.cd,#1}% - \marmot@draw% - \end{scope}% -} - -\newif\ifmarmot@blush -\newif\ifmarmot@whiskers -\newif\ifmarmot@teeth -\newif\ifmarmot@threeD -\newif\ifmarmot@shadow -\newif\ifmarmot@askphil - -\tikzset{ - % - % Pass unknown keys on to tikz - % - /marmot/.search also={/tikz,/pgf}, - /marmot/.cd, - % - % body - % - body/.code = \def\marmot@body{#1}, - body = brown, - % - % options - % - blush/.code = \marmot@blushtrue, - whiskers/.code = \marmot@whiskerstrue \def\marmot@whiskers{#1}, - whiskers/.default = gray, - 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{% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% minimal bounding box size -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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 (center: x=0.925) -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw{\marmot@body!50!white} (0.925,1.47) ellipse (0.23 and 0.13); -% -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw{\marmot@body!50!black} (0.925,1.6) circle (0.08); -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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]; -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% optional -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@blush - \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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@whiskers - \foreach \X in {10,20,33}{% - \filldraw[line width=0pt,\marmot@whiskers] (0.925,1.6) + (\X:0.08) to[out=\X,in={180-\X}] ++({\X-20}:0.3) --++(0,0.005) to[out={180-\X},in=\X] cycle (0.925,1.6) + ({180-\X}:0.08) to[out={180-\X},in=\X] ++({200-\X}:0.3) --++(0,0.005) to[out=\X,in={180-\X}] cycle; - } -\fi -% -% Teeth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifmarmot@teeth - \draw[very thin,fill=white] (0.88,1.41) -- (0.88,1.38) to[out=-5,in=-175] (0.97,1.38) -- (0.97,1.41) to[out=-170,in=-10] cycle; - \draw[very thin] (0.925,1.405) -- (0.925,1.38); -\fi -% -} + [2024/04/17 v2.0 Drawing marmots in TikZ] +\RequirePackage{tikzlings-marmots}
\ No newline at end of file |