diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.polymers.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.polymers.code.tex | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.polymers.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.polymers.code.tex new file mode 100644 index 00000000000..dc304d4ba55 --- /dev/null +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.polymers.code.tex @@ -0,0 +1,166 @@ +% -------------------------------------------------------------------------- +% +% the CHEMMACROS package -- module: `polymers' +% +% -------------------------------------------------------------------------- +% 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-2016 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{polymers}{2016/03/07 polymers} + +\chemmacros_load_modules:n {nomenclature,tikz} + +% -------------------------------------------------------------------------- +% copolymers +\NewChemIUPAC \copolymer { \textit {co} } +\LetChemIUPAC \co \copolymer + +\NewChemIUPAC \statistical { \textit {stat} } +\LetChemIUPAC \stat \statistical + +\NewChemIUPAC \random { \textit {ran} } +\LetChemIUPAC \ran \random + +\NewChemIUPAC \alternating { \textit {alt} } +\LetChemIUPAC \alt \alternating + +\NewChemIUPAC \periodic { \textit {per} } +\LetChemIUPAC \per \periodic + +\NewChemIUPAC \block { \textit {block} } +\NewChemIUPAC \graft { \textit {graft} } + +% -------------------------------------------------------------------------- +% non-linear (co)polymers +\NewChemIUPAC \blend { \textit {blend} } +\NewChemIUPAC \comb { \textit {comb} } + +\NewChemIUPAC \complex { \textit {compl} } +\LetChemIUPAC \compl \complex + +\NewChemIUPAC \cyclic { \textit {cyclo} } +\LetChemIUPAC \cyclo \cyclic + +\NewChemIUPAC \branch { \textit {branch} } +\NewChemIUPAC \network { \textit {net} } +\LetChemIUPAC \net \network + +\NewChemIUPAC \ipnetwork { \textit {ipn} } +\LetChemIUPAC \ipn \ipnetwork + +\NewChemIUPAC \sipnetwork { \textit {sipn} } +\LetChemIUPAC \sipn \sipnetwork + +\NewChemIUPAC \star { \textit {star} } + +% -------------------------------------------------------------------------- + +\tl_new:N \l__chemmacros_polymer_delimiter_left_tl +\tl_new:N \l__chemmacros_polymer_delimiter_right_tl + +\tl_new:N \l__chemmacros_polymer_subscript_tl +\tl_new:N \l__chemmacros_polymer_superscript_tl + +\dim_new:N \l__chemmacros_polymer_delimiter_height_dim +\dim_new:N \l__chemmacros_polymer_delimiter_depth_dim + +\cs_new_protected:Npn \__chemmacros_set_polymer_delimiters:NN #1#2 + { + \tl_set:Nn \l__chemmacros_polymer_delimiter_left_tl {#1} + \tl_set:Nn \l__chemmacros_polymer_delimiter_right_tl {#2} + } + +% #1: height +% #2: depth +% #3: opening node +% #4: closing node +% #5: subscript +% #6: superscript +\cs_new_protected:Npn \chemmacros_make_polymer_braces:nnnnnn #1#2#3#4#5#6 + { + \dim_set:Nn \l__chemmacros_polymer_delimiter_height_dim { (#1+#2)/2 } + \dim_set:Nn \l__chemmacros_polymer_delimiter_depth_dim { (#1-#2)/2 } + \chemmacros_tikz_picture:nn {remember~ picture, overlay } + { + \chemmacros_tikz_node:n + { at = (#3) , yshift = \l__chemmacros_polymer_delimiter_depth_dim } + { + \c_math_toggle_token + \tex_left:D \l__chemmacros_polymer_delimiter_left_tl + \tex_vrule:D + height \l__chemmacros_polymer_delimiter_height_dim + depth \l__chemmacros_polymer_delimiter_height_dim + width \c_zero_dim + \tex_right:D . + \c_math_toggle_token + } ; + \chemmacros_tikz_node:n + { at = (#4) , yshift = \l__chemmacros_polymer_delimiter_depth_dim } + { + \c_math_toggle_token + \tex_left:D . + \tex_vrule:D + height \l__chemmacros_polymer_delimiter_height_dim + depth \l__chemmacros_polymer_delimiter_height_dim + width \c_zero_dim + \tex_right:D \l__chemmacros_polymer_delimiter_right_tl + \c_math_subscript_token { \hbox_overlap_right:n {#5} } + \c_math_superscript_token { \hbox_overlap_right:n {#6} } + \c_math_toggle_token + } ; + } + } +\cs_generate_variant:Nn \chemmacros_make_polymer_braces:nnnnnn {nnnnVV} + +\chemmacros_define_keys:nn {polymers} + { + delimiters .code:n = \__chemmacros_set_polymer_delimiters:NN #1 , + delimiters .initial:n = [] , + superscript .tl_set:N = \l__chemmacros_polymer_superscript_tl , + subscript .tl_set:N = \l__chemmacros_polymer_subscript_tl , + subscript .initial:n = $n$ + } + +\NewDocumentCommand \makepolymerdelims {O{}momm} + { + \group_begin: + \chemmacros_set_keys:nn {polymers} {#1} + \IfNoValueTF {#3} + { + \chemmacros_make_polymer_braces:nnnnVV {#2} {#2} {#4} {#5} + \l__chemmacros_polymer_subscript_tl + \l__chemmacros_polymer_superscript_tl + } + { + \chemmacros_make_polymer_braces:nnnnVV {#2} {#3} {#4} {#5} + \l__chemmacros_polymer_subscript_tl + \l__chemmacros_polymer_superscript_tl + } + \group_end: + } + +% -------------------------------------------------------------------------- +\tex_endinput:D + +2016/03/07 - first version +2016/03/08 - \makepolymerdelims + |