From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 .../chemmacros/chemmacros.module.tikz.code.tex     | 187 +++++++++++++++++++++
 1 file changed, 187 insertions(+)
 create mode 100644 macros/latex/contrib/chemmacros/chemmacros.module.tikz.code.tex

(limited to 'macros/latex/contrib/chemmacros/chemmacros.module.tikz.code.tex')

diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.tikz.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.tikz.code.tex
new file mode 100644
index 0000000000..2e8dfd243c
--- /dev/null
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.tikz.code.tex
@@ -0,0 +1,187 @@
+% --------------------------------------------------------------------------
+%
+% the CHEMMACROS package -- module: `tikz'
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% --------------------------------------------------------------------------
+% https://github.org/cgnieder/chemmacros/
+% contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+% Copyright 2011-2017 Clemens Niederberger
+%
+% 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 Clemens Niederberger.
+% --------------------------------------------------------------------------
+\ChemModule*{tikz}{2015/10/26 upright greek symbols}
+
+\RequirePackage{tikz}
+\usetikzlibrary{calc,decorations.pathmorphing}
+
+\ExplSyntaxOn
+
+\tl_const:Nx \c_chemmacros_other_colon_tl { \token_to_str:N : }
+
+% --------------------------------------------------------------------------
+% TikZ drawings - helper macros
+\cs_new_protected:Npn \chemmacros_tikz_picture:nn #1#2
+  { \tikzpicture[{#1}] #2 \endtikzpicture }
+\cs_new_protected:Npn \chemmacros_tikz:nn #1#2           { \tikz[{#1}] {#2} }
+\cs_new_protected:Npn \chemmacros_tikz_draw:n #1         { \draw[{#1}] }
+\cs_new_protected:Npn \chemmacros_tikz_node:n #1         { \node[{#1}] }
+\cs_new_protected:Npn \chemmacros_tikz_shade:n #1        { \shade[{#1}] }
+\cs_new_protected:Npn \chemmacros_tikz_shadedraw:n #1    { \shadedraw[{#1}] }
+\cs_new_protected:Npn \chemmacros_tikz_node_in_draw:n #1 { node[{#1}] }
+
+\cs_generate_variant:Nn \chemmacros_tikz_picture:nn     { xn }
+\cs_generate_variant:Nn \chemmacros_tikz_draw:n         { x }
+\cs_generate_variant:Nn \chemmacros_tikz_node:n         { x }
+\cs_generate_variant:Nn \chemmacros_tikz_shade:n        { x }
+\cs_generate_variant:Nn \chemmacros_tikz_shadedraw:n    { x }
+\cs_generate_variant:Nn \chemmacros_tikz_node_in_draw:n { x }
+
+% --------------------------------------------------------------------------
+% arrow tips for electron movement
+\dim_new:N \l__chemmacros_el_length_dim
+
+% full tip for pairs
+\pgfarrowsdeclare { el } { el }
+  {
+    \dim_set:Nn \l__chemmacros_el_length_dim
+      { 2.5pt + 2.5\pgflinewidth }
+    \pgfarrowsleftextend { -\l__chemmacros_el_length_dim }
+    \pgfarrowsrightextend { .5\pgflinewidth }
+  }
+  {
+    \dim_set:Nn \l__chemmacros_el_length_dim
+      { 2.5pt + 2.5\pgflinewidth }
+    \pgfsetdash {} { 0pt }
+    \pgfsetroundjoin
+    \pgfsetroundcap
+    \pgfpathmoveto { \pgfpoint { 0pt } { 0pt } }
+    \pgfpathlineto
+      {
+        \pgfpoint
+          { -\l__chemmacros_el_length_dim }
+          { .3\l__chemmacros_el_length_dim }
+      }
+    \pgfpathlineto
+      { \pgfpoint { -.5\l__chemmacros_el_length_dim } { 0pt } }
+    \pgfpathlineto
+      {
+        \pgfpoint
+          { -\l__chemmacros_el_length_dim }
+          { -.3\l__chemmacros_el_length_dim }
+      }
+    \pgfpathlineto { \pgfpoint { 0pt } { 0pt } }
+    \pgfusepathqfillstroke
+  }
+
+% half tip on the left
+\pgfarrowsdeclare { left~el } { left~el }
+  {
+    \dim_set:Nn \l__chemmacros_el_length_dim
+      { 2.5pt + 2.5\pgflinewidth }
+    \pgfarrowsleftextend { -\l__chemmacros_el_length_dim }
+    \pgfarrowsrightextend { .5\pgflinewidth }
+  }
+  {
+    \dim_set:Nn \l__chemmacros_el_length_dim
+      { 2.5pt + 2.5\pgflinewidth }
+    \pgfsetdash {} { 0pt }
+    \pgfsetroundjoin
+    \pgfsetroundcap
+    \pgfpathmoveto { \pgfpoint { 0pt } { 0pt } }
+    \pgfpathlineto
+      {
+        \pgfpoint
+          { -\l__chemmacros_el_length_dim }
+          { .3\l__chemmacros_el_length_dim }
+      }
+    \pgfpathlineto { \pgfpoint { -.5\l__chemmacros_el_length_dim } { 0pt } }
+    \pgfpathlineto { \pgfpoint { 0pt } { 0pt } }
+    \pgfusepathqfillstroke
+  }
+
+% half tip in the right
+\pgfarrowsdeclare { right~el } { right~el }
+  {
+    \dim_set:Nn \l__chemmacros_el_length_dim
+      { 2.5pt + 2.5\pgflinewidth }
+    \pgfarrowsleftextend { -\l__chemmacros_el_length_dim }
+    \pgfarrowsrightextend { .5\pgflinewidth }
+  }
+  {
+    \dim_set:Nn \l__chemmacros_el_length_dim
+      { 2.5pt + 2.5\pgflinewidth }
+    \pgfsetdash {} { 0pt }
+    \pgfsetroundjoin
+    \pgfsetroundcap
+    \pgfpathmoveto { \pgfpoint { 0pt } { 0pt } }
+    \pgfpathlineto
+      {
+        \pgfpoint
+          { -\l__chemmacros_el_length_dim }
+          { -.3\l__chemmacros_el_length_dim }
+      }
+    \pgfpathlineto { \pgfpoint { -.5\l__chemmacros_el_length_dim } { 0pt } }
+    \pgfpathlineto { \pgfpoint { 0pt } { 0pt } }
+    \pgfusepathqfillstroke
+  }
+% --------------------------------------------------------------------------
+% http://tex.stackexchange.com/a/25689/
+\ChemCompatibilityFrom{5.3}
+\pgfdeclaredecoration{wave}{initial}{
+  \state{initial}[
+    width = +0pt ,
+    next~ state = sine,
+    persistent~ precomputation = {
+      \pgfmathsetmacro\matchinglength{
+        \pgfdecoratedinputsegmentlength /
+        int(\pgfdecoratedinputsegmentlength/\pgfdecorationsegmentlength)
+      }
+      \setlength{\pgfdecorationsegmentlength}{\matchinglength pt}
+    }
+  ]{}
+  \state{sine}[width=\pgfdecorationsegmentlength]{
+    \pgfpathsine{
+      \pgfpoint
+        {0.25\pgfdecorationsegmentlength}
+        {0.5\pgfdecorationsegmentamplitude}
+      }
+    \pgfpathcosine{
+      \pgfpoint
+        {0.25\pgfdecorationsegmentlength}
+        {-0.5\pgfdecorationsegmentamplitude}
+      }
+    \pgfpathsine{
+      \pgfpoint
+        {0.25\pgfdecorationsegmentlength}
+        {-0.5\pgfdecorationsegmentamplitude}
+      }
+    \pgfpathcosine{
+      \pgfpoint
+        {0.25\pgfdecorationsegmentlength}
+        {0.5\pgfdecorationsegmentamplitude}
+      }
+  }
+  \state{final}{}
+}
+\EndChemCompatibility
+
+% --------------------------------------------------------------------------
+\tex_endinput:D
+
+2015/10/26 - add decoration `wave' (complete sines)
-- 
cgit v1.2.3

