summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/t-angles
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/t-angles
Initial commit
Diffstat (limited to 'macros/latex/contrib/t-angles')
-rw-r--r--macros/latex/contrib/t-angles/README21
-rw-r--r--macros/latex/contrib/t-angles/t-angles.sty509
-rw-r--r--macros/latex/contrib/t-angles/t-manual.pdfbin0 -> 127680 bytes
-rw-r--r--macros/latex/contrib/t-angles/t-manual.tex723
4 files changed, 1253 insertions, 0 deletions
diff --git a/macros/latex/contrib/t-angles/README b/macros/latex/contrib/t-angles/README
new file mode 100644
index 0000000000..c3528c17fe
--- /dev/null
+++ b/macros/latex/contrib/t-angles/README
@@ -0,0 +1,21 @@
+ t-angles.sty
+is a LaTeX style for drawing tangles, trees,
+Hopf algebra operations and other pictures.
+
+It is based on emTeX, TPIC or pdfLaTeX \special's.
+Therefore, it can be used with the most popular drivers:
+ emTeX drivers, dviwin, xdvi, dvips, yap, dvipdfm, kdvi
+and with pdfLaTeX and pdfeLaTeX.
+
+The manual t-manual.tex describes the style file
+t-angles.sty of 14.08.2006.
+t-manual.pdf is produced with pdfLaTeX.
+
+The program is free software; it is covered by the GNU General Public
+License.
+
+You can contact the authors:
+ Yu. Bespalov, V. Lyubashenko
+via e-mail:
+bespalov@imath.kiev.ua
+lub@imath.kiev.ua
diff --git a/macros/latex/contrib/t-angles/t-angles.sty b/macros/latex/contrib/t-angles/t-angles.sty
new file mode 100644
index 0000000000..2e75c7b391
--- /dev/null
+++ b/macros/latex/contrib/t-angles/t-angles.sty
@@ -0,0 +1,509 @@
+% a manual is available from CTAN and http://www.math.ksu.edu/~lub/
+% \usepackage[emtex]{t-angles} % for emtex drivers, dviwin, dvips, yap or
+% \usepackage{t-angles} = \usepackage[TPIC]{t-angles}
+% % for TPIC drivers such as dviwin, xdvi, dvips, yap, dvipdfm
+% \usepackage[kluwer]{t-angles} or \usepackage[emtex,kluwer]{t-angles}
+% % to use with kluwer.cls
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % %
+ % This is file t-angles.sty ( version 14.08.2006 ) %
+ % %
+ % Diagram macros for tangles and braided Hopf algebras %
+ % %
+ % (Yu. Bespalov, V. Lyubashenko) %
+ % %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Copyright (C) 2006 Yu. Bespalov, V. Lyubashenko
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation.
+
+\RequirePackage{ifpdf}
+
+\newcount{\hstretch} \hstretch 100
+\newcount{\vstretch} \vstretch 100
+\newlength{\unitlens} \unitlens 10pt
+\def\FillCircDiam{3}
+
+\DeclareOption{pdflatex}{%
+%% Hans Hagen's CONTEXT Support Macros from supp-emp.tex
+\def\EMmoveto%
+ {\EMgetposition\EMlastmovex\EMlastmovey}
+\def\EMlinewd{.4}
+\def\EMlineto%
+ {\bgroup
+ \EMgetposition\EMlastlinex\EMlastliney
+ \count0=\EMlastmovex \advance\count0 by -\EMlastlinex
+ \count2=\EMlastmovey \advance\count2 by -\EMlastliney
+ \ifnum\count0>0 %this \ifnum is added by VL
+ \advance\count0 32768
+ \else
+ \advance\count0 -32768
+ \fi
+ \ifnum\count2>0 %this \ifnum is added by VL
+ \advance\count2 32768
+ \else
+ \advance\count2 -32768
+ \fi
+ \divide\count0 by 65536
+ \divide\count2 by 65536
+ \pdfliteral{\EMlinewd\space w 0 0 m \the\count0 \space\the\count2 \space l S}%
+ \global\let\EMlastmovex\EMlastlinex
+ \global\let\EMlastmovey\EMlastliney
+ \egroup}
+\def\resetEMspecials%
+ {\gdef\EMlastmovex{0}\gdef\EMlastmovey{0}}
+\def\EMgetposition#1#2%
+ {\bgroup
+ \pdfsavepos
+ \global\advance\EMcounter by 1
+ \expandafter\write\expandafter\EMfile\expandafter
+ {\expandafter\noexpand\expandafter\EMsetpos\number\EMcounter
+ \space\number\pdflastxpos\space\number\pdflastypos}%
+ \EMsetcounters
+ \xdef#1{\the\count0}%
+ \xdef#2{\the\count2}%
+ \egroup}
+\newcount\EMcounter
+\newwrite\EMfile
+\def\EMfilename{\jobname.emp}
+\def\startEMspecials%
+ {\resetEMspecials
+ \openin\scratchread=\EMfilename \relax
+ \ifeof\scratchread\else \input \EMfilename \relax \fi
+ \closein\scratchread
+ \immediate\openout\EMfile=\EMfilename\relax}
+\def\stopEMspecials%
+ {\closeout\EMfile}
+\ifx\undefined\scratchread \newread\scratchread \fi
+\def\EMsetpos#1 #2 #3 % number x y
+ {\expandafter\xdef\csname EM:#1\endcsname{\count0=#2 \count2=#3}}
+\def\EMsetcounters%
+ {\count0=0 \count2=0
+ \csname EM:\the\EMcounter\endcsname}
+%% end of macros "EMTEX specials to PDF conversion"
+\gdef\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
+ \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth
+ \def\EMlinewd{0.4}} %\@wholewidth=0.4pt
+\gdef\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
+ \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth
+ \def\EMlinewd{0.8}} %\@wholewidth=0.8pt
+\def\emline#1#2#3#4#5#6{%
+ \put(#1,#2){\EMmoveto}%
+ \put(#4,#5){\EMlineto}}%
+\def\drawpath#1#2#3#4{\emline{#1}{#2}1{#3}{#4}2} % graphics for *.lp
+}
+%
+\DeclareOption{emtex}{%
+\ifpdf
+\ExecuteOptions{pdflatex}
+ \else
+\gdef\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
+ \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth
+ \special{em:linewidth \the\@wholewidth}} %\@wholewidth=0.4pt
+\gdef\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
+ \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth
+ \special{em:linewidth \the\@wholewidth}} %\@wholewidth=0.8pt
+\def\emline#1#2#3#4#5#6{%
+ \put(#1,#2){\special{em:moveto}}%
+ \put(#4,#5){\special{em:lineto}}}%
+\def\drawpath#1#2#3#4{\emline{#1}{#2}1{#3}{#4}2} % graphics for *.lp
+\fi}
+%
+\newcount\@gphlinewidth
+%
+\DeclareOption{TPIC}{%
+\ifpdf
+\ExecuteOptions{pdflatex}
+ \else
+\@gphlinewidth\@wholewidth \divide\@gphlinewidth 4736
+ \advance\@gphlinewidth\@ne %\@gphlinewidth=6
+\gdef\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
+ \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth
+ \@gphlinewidth\@wholewidth \divide\@gphlinewidth 4736
+ \advance\@gphlinewidth\@ne} %\@gphlinewidth=6
+\gdef\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
+ \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth
+ \@gphlinewidth\@wholewidth \divide\@gphlinewidth 4736}
+ %\@gphlinewidth=11
+\def\@paspecial#1#2{%
+ \special{pa #1 #2}}
+\def\path(#1,#2){%
+ \special{pn \the\@gphlinewidth}%
+ \@path(#1,#2)}
+\def\@path(#1,#2){%
+ \@tempdima #1\unitlength
+ \@tempdimb #2\unitlength
+ \@tempcnta \@tempdima \advance\@tempcnta 2368 \divide\@tempcnta 4736
+ \@tempcntb -\@tempdimb \advance\@tempcntb -2368 \divide\@tempcntb 4736
+ \@paspecial{\the\@tempcnta}{\the\@tempcntb}%
+ \@ifnextchar ({\@path}{\special{fp}}}
+\providecommand{\drawpath}[4]{\path(#1,#2)(#3,#4)} % TPIC graphics for *.lp
+\providecommand{\emline}[6]{\path(#1,#2)(#4,#5)} % TPIC graphics for *.pic
+\fi}
+%
+\DeclareOption{kluwer}{%
+\def\tangle{\begingroup\let\hline\savehline\t@ngle\array{l}}
+\def\tanglec{\begingroup\let\hline\savehline\t@ngle\array{c}}
+\def\tangler{\begingroup\let\hline\savehline\t@ngle\array{r}}
+\def\tangles{\begingroup\let\hline\savehline\t@ngle\array}
+}
+%
+\ExecuteOptions{TPIC}
+
+\newcount{\h@r}
+\newcount{\v@r}
+\newcount{\h@z}
+\newcount{\v@t}
+\newlength{\unith}
+\newlength{\unitv}
+\newlength{\textwd}
+%
+\let\kilglu\@killglue
+%
+\def\@step[#1]{\unith\unitlens
+\divide\unith 1000 \multiply\unith 10 \multiply\unith\hstretch
+\@killglue\kern #1\unith}
+\def\step{\@ifnextchar[{\@step}{\@step[1]}}
+\def\hhstep{\step[-.5]} \def\hstep{\step[.5]} \def\Step{\step[2]}
+%
+\def\object#1{\settowidth{\textwd}{${#1}$}
+\hbox{\put(0,0){\kern -.5\textwd${#1}$}\hss}}
+%
+\def\t@ngl@{%
+\gdef\hm@dehalf{1}\gdef\hm@de{2}\gdef\hm@defives{10}\gdef\hm@detens{20}
+\gdef\hm@dethree{7}\gdef\hm@deseven{13}\gdef\hm@defiveteen{15}}
+%
+\def\t@ngle{\t@ngl@
+\gdef\above@bjectskip{0pt}\gdef\below@bjectskip{4pt}
+%
+\def\object##1{{\settowidth{\textwd}{${##1}$}
+\@killglue\setbox0=\hbox{\kern -.5\textwd${##1}$}%
+\unith\ht0\unitv\dp0%
+\advance\unith\above@bjectskip\advance\unitv\below@bjectskip%
+\ht0=\unith\dp0=\unitv\wd0=0pt\box0}}
+%
+\unitlength\unitlens\divide\unitlength 1000
+\unith\unitlength \multiply\unith10 \multiply\unith\hstretch
+\unitv\unitlength \multiply\unitv10 \multiply\unitv\vstretch
+\def\@step[##1]{\@killglue\kern ##1\unith}
+%
+\def\hbx(##1,##2)##3{%
+\@killglue\setbox0=\hbox{##3}\ht0=##2\unitv\dp0=0pt\wd0=##1\unith\box0}
+\def\hln##1{\hbx(##1,0){\hbox to ##1\unith{\hrulefill}}}
+%
+\def\hstr##1{\unith\unitlength \multiply\unith10
+\hstretch ##1 \multiply\unith\hstretch}
+\def\vstr##1{\unitv\unitlength \multiply\unitv10
+\vstretch ##1 \multiply\unitv\vstretch}
+%
+\def\c@@rds(##1,##2,##3,##4){%
+\h@r\hstretch\v@r\vstretch\h@z\hstretch\v@t\vstretch%
+\multiply\h@r ##1 \multiply\v@r ##2 \multiply\h@z ##3 \multiply\v@t ##4%
+\put(\h@r,\v@r)}
+\def\EMl@ne(##1,##2,##3,##4){%
+\h@r\hstretch\v@r\vstretch\h@z\hstretch\v@t\vstretch%
+\multiply\h@r ##1 \multiply\v@r ##2 \multiply\h@z ##3 \multiply\v@t ##4%
+\emline{\h@r}{\v@r}1{\h@z}{\v@t}2}
+%
+% N O D E S A N D L I N E S
+\def\id{\hbx(0,\hm@de){\c@@rds(0,0,0,\hm@detens){\line(0,1){\v@t}}}}
+\def\idash{\hbx(0,2){\c@@rds(0,0,0,3){\line(0,1){\v@t}}%
+\c@@rds(0,5,0,2){\line(0,1){\v@t}}\c@@rds(0,9,0,2){\line(0,1){\v@t}}%
+\c@@rds(0,13,0,2){\line(0,1){\v@t}}\c@@rds(0,17,0,3){\line(0,1){\v@t}}}}
+\def\node{\hbx(0,0){\c@@rds(0,0,\FillCircDiam,0){\circle*{\h@z}}}}
+\def\n{\hbx(0,\hm@de){\c@@rds(0,0,0,\hm@detens){\line(0,1){\v@t}}%
+\c@@rds(0,0,\FillCircDiam,0){\circle*{\h@z}}}}
+\def\s{\hbx(0,\hm@de){\c@@rds(0,0,0,\hm@detens){\line(0,1){\v@t}}%
+\c@@rds(0,\hm@detens,\FillCircDiam,0){\circle*{\h@z}}}}
+\def\unit{\hbx(0,\hm@de){\c@@rds(0,0,0,10){\line(0,1){\v@t}}%
+\c@@rds(0,12,4,0){\circle{\h@z}}}}
+\def\counit{\hbx(0,\hm@de){\c@@rds(0,10,0,10){\line(0,1){\v@t}}%
+\c@@rds(0,8,4,0){\circle{\h@z}}}}
+%
+%%%% ARGUMENT OF \ne,\nw,\se,\sw,\ned,\nwd,\sed,\swd IS 0,1,2,3 OR 4;
+%%%% 0 PRODUCES EMPTY BOX AND
+%%%% OTHER PRODUCE LINES WITH HORIZONTAL PROJECTIONS =##1
+\def\@nsew##1##2##3##4##5{\hbx(1,\hm@de){\ifcase##1
+\or\EMl@ne(##2)\or\EMl@ne(##3)\or\EMl@ne(##4)\or\EMl@ne(##5)\fi}}
+\def\ne##1{\@nsew{##1}{0,0,10,\hm@detens}{-10,0,10,\hm@detens}%
+{-20,0,10,\hm@detens}{-30,0,10,\hm@detens}}
+\def\nw##1{\@nsew{##1}{0,\hm@detens,10,0}{0,\hm@detens,20,0}%
+{0,\hm@detens,30,0}{0,\hm@detens,40,0}}
+\def\se##1{\@nsew{##1}{10,0,0,\hm@detens}{10,0,-10,\hm@detens}%
+{10,0,-20,\hm@detens}{10,0,-30,\hm@detens}}
+\def\sw##1{\@nsew{##1}{0,0,10,\hm@detens}{0,0,20,\hm@detens}%
+{0,0,30,\hm@detens}{0,0,40,\hm@detens}}
+%
+\def\nd{\hbx(0,2){\c@@rds(0,0,0,3){\line(0,1){\v@t}}%
+\c@@rds(0,5,0,2){\line(0,1){\v@t}}\c@@rds(0,9,0,2){\line(0,1){\v@t}}%
+\c@@rds(0,13,0,2){\line(0,1){\v@t}}\c@@rds(0,17,0,3){\line(0,1){\v@t}}%
+\c@@rds(0,0,\FillCircDiam,0){\circle*{\h@z}}}}
+\def\ned##1{\hbx(1,2){\ifcase##1\or%
+\EMl@ne(0,0,1,2)\EMl@ne(2,4,4,8)\EMl@ne(5,10,7,14)\EMl@ne(8,16,10,20)\or%
+\EMl@ne(-10,0,-7,3)\EMl@ne(-5,5,-3,7)\EMl@ne(-1,9,1,11)%
+\EMl@ne(3,13,5,15)\EMl@ne(7,17,10,20)\or%
+\EMl@ne(-20,0,-14,4)\EMl@ne(-11,6,-8,8)\EMl@ne(-5,10,-2,12)
+\EMl@ne(1,14,4,16)\EMl@ne(7,18,10,20)\or%
+\EMl@ne(-30,0,-26,2)\EMl@ne(-24,3,-20,5)\EMl@ne(-18,6,-14,8)%
+\EMl@ne(-12,9,-8,11)\EMl@ne(-6,12,-2,14)\EMl@ne(0,15,4,17)%
+\EMl@ne(6,18,10,20)\fi}}
+\def\nwd##1{\hbx(1,2){\ifcase##1\or%
+\EMl@ne(0,20,2,16)\EMl@ne(3,14,5,10)\EMl@ne(6,8,8,4)\EMl@ne(9,2,10,0)\or%
+\EMl@ne(0,20,3,17)\EMl@ne(5,15,7,13)\EMl@ne(9,11,11,9)%
+\EMl@ne(13,7,15,5)\EMl@ne(17,3,20,0)\or%
+\EMl@ne(0,20,3,18)\EMl@ne(6,16,9,14)\EMl@ne(12,12,15,10)%
+\EMl@ne(18,8,21,6)\EMl@ne(24,4,30,0)\or%
+\EMl@ne(0,20,4,18)\EMl@ne(6,17,10,15)\EMl@ne(12,14,16,12)\EMl@ne(18,11,22,9)%
+\EMl@ne(24,8,28,6)\EMl@ne(30,5,34,3)\EMl@ne(36,2,40,0)\fi}}
+\def\sd{\hbx(0,2){\c@@rds(0,0,0,3){\line(0,1){\v@t}}%
+\c@@rds(0,5,0,2){\line(0,1){\v@t}}\c@@rds(0,9,0,2){\line(0,1){\v@t}}%
+\c@@rds(0,13,0,2){\line(0,1){\v@t}}\c@@rds(0,17,0,3){\line(0,1){\v@t}}%
+\c@@rds(0,20,\FillCircDiam,0){\circle*{\h@z}}}}
+\def\sed##1{\hbx(1,2){\ifcase##1\or%
+\EMl@ne(10,0,8,4)\EMl@ne(7,6,5,10)\EMl@ne(4,12,2,16)\EMl@ne(1,18,0,20)\or%
+\EMl@ne(10,0,7,3)\EMl@ne(5,5,3,7)\EMl@ne(1,9,-1,11)%
+\EMl@ne(-3,13,-5,15)\EMl@ne(-7,17,-10,20)\or%
+\EMl@ne(10,0,7,2)\EMl@ne(4,4,1,6)\EMl@ne(-2,8,-5,10)%
+\EMl@ne(-8,12,-11,14)\EMl@ne(-14,16,-20,20)\or%
+\EMl@ne(10,0,6,2)\EMl@ne(4,3,0,5)\EMl@ne(-2,6,-6,8)\EMl@ne(-8,9,-12,11)%
+\EMl@ne(-14,12,-18,14)\EMl@ne(-20,15,-24,17)\EMl@ne(-26,18,-30,20)\fi}}
+\def\swd##1{\hbx(1,2){\ifcase##1\or%
+\EMl@ne(0,0,2,4)\EMl@ne(3,6,5,10)\EMl@ne(6,12,8,16)\EMl@ne(9,18,10,20)\or%
+\EMl@ne(0,0,3,3)\EMl@ne(5,5,7,7)\EMl@ne(9,9,11,11)%
+\EMl@ne(13,13,15,15)\EMl@ne(17,17,20,20)\or%
+\EMl@ne(0,0,3,2)\EMl@ne(6,4,9,6)\EMl@ne(12,8,15,10)%
+\EMl@ne(18,12,21,14)\EMl@ne(24,16,30,20)\or%
+\EMl@ne(0,0,4,2)\EMl@ne(6,3,10,5)\EMl@ne(12,6,16,8)\EMl@ne(18,9,22,11)%
+\EMl@ne(24,12,28,14)\EMl@ne(30,15,34,17)\EMl@ne(36,18,40,20)\fi}}
+%
+% D A S H E D C R O S S E S
+\def\xd{\hbx(2,2){\EMl@ne(0,0,4,4)\EMl@ne(6,6,8,8)\EMl@ne(12,12,14,14)%
+\EMl@ne(16,16,20,20)\EMl@ne(0,20,4,16)\EMl@ne(6,14,14,6)\EMl@ne(16,4,20,0)}}
+\def\xxd{\hbx(2,2){\EMl@ne(0,0,4,4)\EMl@ne(6,6,14,14)\EMl@ne(16,16,20,20)%
+\EMl@ne(0,20,4,16)\EMl@ne(6,14,8,12)\EMl@ne(12,8,14,6)\EMl@ne(16,4,20,0)}}
+\def\hxd{\hbx(1,2){\EMl@ne(0,0,2,4)\EMl@ne(3,6,4,8)\EMl@ne(6,12,7,14)%
+\EMl@ne(8,16,10,20)\EMl@ne(0,20,2,16)\EMl@ne(3,14,7,6)\EMl@ne(8,4,10,0)}}
+\def\hxxd{\hbx(1,2){\EMl@ne(0,0,2,4)\EMl@ne(3,6,7,14)\EMl@ne(8,16,10,20)%
+\EMl@ne(0,20,2,16)\EMl@ne(3,14,4,12)\EMl@ne(6,8,7,6)\EMl@ne(8,4,10,0)}}
+%
+% O T H E R L I N E S
+\def\@d##1##2{\hbx(\hm@dehalf,\hm@de){%
+\EMl@ne(##1\hm@defives,##2\hm@detens)}}
+\def\d{\@d{}{0,0,}} \def\dd{\@d{0,0,}{}}
+\def\@hd##1##2##3{\hbx(.5,\hm@de){\EMl@ne(##1,\hm@defives,##2)%
+\c@@rds(##1,\hm@defives,0,\hm@defives){\line(0,##31){\v@t}}}}
+\def\hd{\@hd{5}{0,\hm@detens}{-}} \def\dh{\@hd{0}{5,0}{}}
+\def\hdd{\@hd{0}{5,\hm@detens}{-}} \def\ddh{\@hd{5}{0,0}{}}
+%
+% P U T S O M E T H I N G A N Y W H E R E
+\def\n@de##1##2##3{\hbx(0,0){%
+\c@@rds(##1,0,0){\makebox(0,0)[##2]{$\scriptstyle ##3$}}}}
+\def\nodeu##1{\hbx(0,0){\n@de{0,3}{cb}{##1}}}
+\def\noded##1{\hbx(0,0){\n@de{0,-3}{ct}{##1}}}
+\def\nodel##1{\hbx(0,0){\n@de{-2,0}{rc}{##1}}}
+\def\noder##1{\hbx(0,0){\n@de{2,0}{lc}{##1}}}
+\def\noderu##1{\hbx(0,0){\n@de{5,2}{lb}{##1}}}
+\def\noderd##1{\hbx(0,0){\n@de{5,-2}{lt}{##1}}}
+\def\nodelu##1{\hbx(0,0){\n@de{-5,2}{rb}{##1}}}
+\def\nodeld##1{\hbx(0,0){\n@de{-5,-2}{rt}{##1}}}
+\def\Put(##1,##2)[##3]##4{%
+\h@r\hstretch \multiply\h@r ##1
+\v@r\vstretch \multiply\v@r ##2
+\put(\h@r,\v@r){\makebox(\h@z,\v@t)[##3]{\scriptsize$##4$}}}
+% \def\negobj##1{\raise -0.2\unitv\hbox{\put(0,0){$##1$}}}
+% \def\obj##1{\raise .2\unitv\hbox{\put(0,0){$##1$}}}
+% \def\Obj##1{\settowidth{\textwd}{$##1$}%
+% \raise 1.1\unitv\hbox{\kern -1\textwd $##1$}}
+%
+% B O X E S
+\def\dbox##1##2{\hbx(##1,\hm@de){\multiply\hstretch ##1%
+\c@@rds(0,0,10,\hm@detens){\dashbox{100}(\h@z,\v@t){\scriptsize$##2$}}}}
+\def\ffbox##1##2{\hbx(##1,\hm@de){\multiply\hstretch ##1%
+\c@@rds(0,0,10,\hm@detens){\framebox(\h@z,\v@t){\scriptsize$##2$}}}}
+\def\obox##1##2{\hbx(##1,\hm@de){\multiply\hstretch ##1%
+\c@@rds(5,\hm@defives,10,\hm@detens){\oval(\h@z,\v@t)}%
+\c@@rds(0,0,10,\hm@detens){\makebox(\h@z,\v@t)[cc]{\scriptsize$##2$}}}}
+\def\tbox##1##2{\hbx(##1,\hm@de){\multiply\hstretch ##1%
+\c@@rds(0,0,10,\hm@detens){\makebox(\h@z,\v@t)[cc]{\scriptsize$##2$}}}}
+%
+% ( C O ) P A I R I N G S
+\def\@ev##1##2##3##4{\hbx(##1){\c@@rds(##2,##3,##3){\oval(\h@z,\v@t)[##4]}}}
+\def\ev{\@ev{\hm@de,\hm@de}{\hm@defives,\hm@detens}\hm@detens b}
+\def\coev{\@ev{\hm@de,\hm@de}{\hm@defives,0}\hm@detens t}
+\def\hcoev{\@ev{1,\hm@de}{5,0}{10}t}
+\def\hev{\@ev{1,\hm@de}{5,\hm@detens}{10}b}
+\def\Coev{\@ev{1,\hm@de}{15,0}{30}t}
+\def\Ev{\@ev{1,\hm@de}{15,\hm@detens}{30}b}
+\def\COEV{\@ev{2,2}{30,0}{60}t}
+\def\EV{\@ev{2,2}{30,20}{60}b}
+%
+% ( O V E R / U N D E R ) C R O S S I N G S
+\def\X{\hbx(1,\hm@de){\EMl@ne(0,\hm@detens,10,0)\EMl@ne(0,0,10,\hm@detens)}}
+\def\XX{\hbx(\hm@de,\hm@de){\EMl@ne(0,\hm@detens,\hm@detens,0)%
+\EMl@ne(0,0,\hm@detens,\hm@detens)}}
+\def\x{\hbx(\hm@de,\hm@de){\EMl@ne(0,\hm@detens,\hm@detens,0)%
+\EMl@ne(0,0,\hm@dethree,\hm@dethree)%
+\EMl@ne(\hm@detens,\hm@detens,\hm@deseven,\hm@deseven)}}
+\def\xx{\hbx(\hm@de,\hm@de){\EMl@ne(0,\hm@detens,\hm@dethree,\hm@deseven)%
+\EMl@ne(0,0,\hm@detens,\hm@detens)%
+\EMl@ne(\hm@detens,0,\hm@deseven,\hm@dethree)}}
+\def\hx{\hbx(1,2){\EMl@ne(0,20,10,0)\EMl@ne(0,0,3,6)\EMl@ne(10,20,7,14)}}
+\def\hxx{\hbx(1,2){\EMl@ne(0,20,3,14)\EMl@ne(0,0,10,20)\EMl@ne(10,0,7,6)}}
+%
+% ( C O ) P R O D U C T S
+\def\pr@d##1##2##3{%
+\c@@rds(##1){\oval(\h@z,\v@t)[c##2]}\c@@rds(##3){\line(0,1){\v@t}}}%
+\def\pr@dd##1##2##3##4{\c@@rds(5,##1,10,10){\oval(\h@z,\v@t)[c##2]}%
+\EMl@ne(5,10,##3)\c@@rds(5,##4,0,5){\line(0,1){\v@t}}}
+\def\c@cyc##1{\c@@rds(##1,\FillCircDiam,0){\circle*{\h@z}}}
+\def\cu{\@ifnextchar*%
+{\hbx(\hm@de,\hm@de){\pr@d{\hm@defives,\hm@detens,\hm@detens,\hm@detens}%
+{b}{\hm@defives,0,0,\hm@defives}%
+\c@cyc{\hm@defives,\hm@defives}}\@gobble}%
+{\hbx(\hm@de,\hm@de){\pr@d{\hm@defives,\hm@detens,\hm@detens,\hm@detens}%
+{b}{\hm@defives,0,0,\hm@defives}}}}
+\def\cd{\@ifnextchar*%
+{\hbx(\hm@de,\hm@de){\pr@d{\hm@defives,0,\hm@detens,\hm@detens}%
+{t}{\hm@defives,\hm@defives,0,\hm@defives}%
+\c@cyc{\hm@defives,\hm@defives}}\@gobble}%
+{\hbx(\hm@de,\hm@de){\pr@d{\hm@defives,0,\hm@detens,\hm@detens}%
+{t}{\hm@defives,\hm@defives,0,\hm@defives}}}}
+\def\hcu{\@ifnextchar*%
+{\hbx(1,\hm@de){\pr@d{5,\hm@detens,10,10}{b}{5,0,0,\hm@defiveteen}%
+\c@cyc{5,\hm@defiveteen}}\@gobble}%
+{\hbx(1,\hm@de){\pr@d{5,\hm@detens,10,10}{b}{5,0,0,\hm@defiveteen}}}}
+\def\hcd{\@ifnextchar*%
+{\hbx(1,\hm@de){\pr@d{5,0,10,10}{t}{5,5,0,\hm@defiveteen}%
+\c@cyc{5,5}}\@gobble}%
+{\hbx(1,\hm@de){\pr@d{5,0,10,10}{t}{5,5,0,\hm@defiveteen}}}}
+\def\Cu{\@ifnextchar*%
+{\hbx(4,2){\pr@d{20,20,40,20}{b}{20,0,0,10}\c@cyc{20,10}}\@gobble}%
+{\hbx(4,2){\pr@d{20,20,40,20}{b}{20,0,0,10}}}}
+\def\Cd{\@ifnextchar*%
+{\hbx(4,2){\pr@d{20,0,40,20}{t}{20,10,0,10}\c@cyc{20,10}}\@gobble}%
+{\hbx(4,2){\pr@d{20,0,40,20}{t}{20,10,0,10}}}}
+\def\hd@cd##1{\@ifnextchar*%
+{\hbx(1,2){\pr@dd{0}{t}{##1,20}{5}\c@cyc{5,5}}\@gobble}%
+{\hbx(1,2){\pr@dd{0}{t}{##1,20}{5}}}}
+\def\hd@cu##1{\@ifnextchar*%
+{\hbx(1,2){\pr@dd{20}{b}{##1,0}{10}\c@cyc{5,15}}\@gobble}%
+{\hbx(1,2){\pr@dd{20}{b}{##1,0}{10}}}}
+\def\hdcd{\hd@cd 0} \def\hddcd{\hd@cd{10}}
+\def\hdcu{\hd@cu{10}} \def\hddcu{\hd@cu 0}
+%
+% A C T I O N S
+\def\@ct##1##2##3##4##5{\hbx(##1,\hm@de){%
+\c@@rds(##2,##3,##4,##4){\oval(\h@z,\v@t)[##5]}%
+\c@@rds(##2,0,0,\hm@detens){\line(0,1){\v@t}}}}
+\def\@lu[##1]{{\multiply\hstretch##1\@ct{##1}{10}{\hm@detens}{20}{lb}}}
+\def\@ru[##1]{{\multiply\hstretch##1\@ct{##1}{0} {\hm@detens}{20}{rb}}}
+\def\@ld[##1]{{\multiply\hstretch##1\@ct{##1}{10}{0}{20}{lt}}}
+\def\@rd[##1]{{\multiply\hstretch##1\@ct{##1}{0}{0}{20}{rt}}}
+\def\lu{\@ifnextchar[{\@lu}{\@lu[1]}}
+\def\ru{\@ifnextchar[{\@ru}{\@ru[1]}}
+\def\ld{\@ifnextchar[{\@ld}{\@ld[1]}}
+\def\rd{\@ifnextchar[{\@rd}{\@rd[1]}}
+\def\Lu{\lu[2]}\def\Ru{\ru[2]}\def\Ld{\ld[2]}\def\Rd{\rd[2]}
+\def\@hlu[##1]{{\divide\unith2\multiply\hstretch##1%
+\@ct{##1}{5}{\hm@detens}{10}{lb}}}
+\def\@hru[##1]{{\divide\unith2\multiply\hstretch##1%
+\@ct{##1}{0}{\hm@detens}{10}{rb}}}
+\def\@hld[##1]{{\divide\unith2\multiply\hstretch##1%
+\@ct{##1}{5}{0}{10}{lt}}}
+\def\@hrd[##1]{{\divide\unith2\multiply\hstretch##1%
+\@ct{##1}{0}{0}{10}{rt}}}
+\def\hlu{\@ifnextchar[{\@hlu}{\@hlu[1]}}
+\def\hru{\@ifnextchar[{\@hru}{\@hru[1]}}
+\def\hld{\@ifnextchar[{\@hld}{\@hld[1]}}
+\def\hrd{\@ifnextchar[{\@hrd}{\@hrd[1]}}
+% \def\hlu{\@ct{.5}{5}{\hm@detens}{10}{lb}}
+% \def\hru{\@ct{.5}{0}{\hm@detens}{10}{rb}}
+% \def\hld{\@ct{.5}{5}{0}{10}{lt}}
+% \def\hrd{\@ct{.5}{0}{0}{10}{rt}}
+%
+% C O M P O S I T I O N S
+\def\c@mp##1##2##3##4##5##6{\hbx(##1,2){%
+\c@@rds(##2,0,##3){\oval(\h@z,\v@t)[##4t]}%
+\c@@rds(##2,20,##3){\oval(\h@z,\v@t)[##4b]}%
+\c@@rds(##2,##5,0,##6){\line(0,1){\v@t}}}}
+\def\cucd{\c@mp{1}{5}{10,10}{}{5}{10}}
+\def\k{\c@mp{1}{0}{20,10}{r}{0}{20}}
+\def\kk{\c@mp{1}{10}{20,10}{l}{0}{20}}
+\def\rurd{\c@mp{.5}{0}{10,10}{r}{0}{20}}
+\def\luld{\c@mp{.5}{5}{10,10}{l}{0}{20}}
+%
+% M O R P H I S M S I N A C I R C L E
+\def\c@rcled##1##2{\c@@rds(##1,12,12){\oval(\h@z,\v@t)}%
+\c@@rds(##1,0,0){\makebox(\h@z,\v@t)[cc]{\scriptsize$##2$}}}
+% ( 1, 0 ) -, ( 0, 1 ) - T E N S O R S
+\def\@Q##1##2{\hbx(0,\hm@de){%
+\c@@rds(0,##1,0,4){\line(0,1){\v@t}}\c@rcled{0,10}{##2}}}
+\def\Q##1{\@Q{0}{##1}} \def\QQ##1{\@Q{16}{##1}}
+% ( 1, 1 ) - T E N S O R S
+\def\O##1{\hbx(0,\hm@de){\c@@rds(0,0,0,4){\line(0,1){\v@t}}%
+\c@@rds(0,16,0,4){\line(0,1){\v@t}}\c@rcled{0,10}{##1}}}
+\def\S{\O{S}} \def\SS{\O{S^{-1}}}
+%\def\circ##1{\hbx(2,2){\c@rcled{10,4}{##1}}}
+\def\morph##1{\hbx(2,2){\c@@rds(10,10,10,10){\oval(\h@z,\v@t)}%
+\c@@rds(5,5,10,10){\makebox(\h@z,\v@t)[cc]{\scriptsize$##1$}}%
+\c@@rds(10,0,0,5){\line(0,1){\v@t}}%
+\c@@rds(10,15,0,5){\line(0,1){\v@t}}}}
+% ( 2, 0 ) -, ( 0, 2 ) - T E N S O R S
+\def\r@##1##2##3##4##5{\hbx(2,\hm@de){%
+\c@@rds(0,##1,0,4){\line(0,##41){\v@t}}%
+\c@@rds(20,##1,0,4){\line(0,##41){\v@t}}%
+\c@@rds(4,##1,8,8){\oval(\h@z,\v@t)[l##2]}%
+\c@@rds(16,##1,8,8){\oval(\h@z,\v@t)[r##2]}\c@rcled{##3}{##5}}}
+\def\ro##1{\r@{4}{t}{10,8}{-}{##1}}
+\def\coro##1{\r@{16}{b}{10,12}{}{##1}}
+%
+\def\R@##1##2##3{\hbx(4,\hm@de){%
+\c@@rds(14,##1,28,20){\oval(\h@z,\v@t)[l##2]}%
+\c@@rds(26,##1,28,20){\oval(\h@z,\v@t)[r##2]}\c@rcled{20,10}{##3}}}
+\def\Ro##1{\R@{0}{t}{##1}}
+\def\coRo##1{\R@{20}{b}{##1}}
+% ( 2, 1 ) -, ( 1, 2 ) - T E N S O R S
+\def\t@##1##2##3##4##5##6{\hbx(2,2){%
+\c@@rds(4,##1,8,8){\oval(\h@z,\v@t)[l##2]}%
+\c@@rds(16,##1,8,8){\oval(\h@z,\v@t)[r##2]}%
+\c@@rds(0,##1,0,5){\line(0,##31){\v@t}}%
+\c@@rds(20,##1,0,5){\line(0,##31){\v@t}}%
+\c@@rds(10,##4,0,5){\line(0,##31){\v@t}}%
+\c@rcled{10,##5}{##6}}}
+\def\tu##1{\t@{15}b{}{0}{11}{##1}} \def\td##1{\t@{5}t{-}{20}{9}{##1}}
+% ( 2, 2 ) - T E N S O R S
+\def\ox##1{\hbx(2,2){\c@@rds(10,10,14,14){\oval(\h@z,\v@t)}%
+\c@@rds(10,10,0,0){\makebox(\h@z,\v@t)[cc]{\scriptsize$##1$}}
+\EMl@ne(0,0,5,5)\EMl@ne(0,20,5,15)\EMl@ne(20,20,15,15)\EMl@ne(20,0,15,5)}}
+%
+% HALF HEIGHT ROW IS PRODUCED BY \hh or \HH AT THE BEGINNING OF THE ROW
+% \HH is global for a row, \hh is local
+\def\HH{\gdef\hm@dehalf{.5}\gdef\hm@de{1}
+\gdef\hm@dethree{3}\gdef\hm@defives{5}\gdef\hm@deseven{7}
+\gdef\hm@detens{10}\gdef\hm@defiveteen{5}}
+\def\hh{\def\hm@dehalf{.5}\def\hm@de{1}
+\def\hm@dethree{3}\def\hm@defives{5}\def\hm@deseven{7}
+\def\hm@detens{10}\def\hm@defiveteen{5}}
+%
+\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
+\let\@classiv\@arrayclassiv \def\arraystretch{0}\arraycolsep0pt
+\def\\{\gdef\above@bjectskip{4pt}\gdef\below@bjectskip{0pt}\t@ngl@\@arraycr}
+\let\@halignto\@empty\@tabarray}
+}
+% E N D \def\t@ngle
+%
+\def\tangle{\t@ngle\array{l}} \def\endtangle{\endarray\t@ngl@}
+\def\tanglec{\t@ngle\array{c}} \let\endtanglec\endtangle
+\def\tangler{\t@ngle\array{r}} \let\endtangler\endtangle
+\def\tangles{\t@ngle\array} \let\endtangles\endtangle
+%
+\ProcessOptions
+\ifpdf
+\startEMspecials
+\let\EMenddocument\enddocument
+\def\enddocument{\stopEMspecials\EMenddocument}
+\fi
+\endinput
diff --git a/macros/latex/contrib/t-angles/t-manual.pdf b/macros/latex/contrib/t-angles/t-manual.pdf
new file mode 100644
index 0000000000..2cafa40af3
--- /dev/null
+++ b/macros/latex/contrib/t-angles/t-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/t-angles/t-manual.tex b/macros/latex/contrib/t-angles/t-manual.tex
new file mode 100644
index 0000000000..2a8a4e419c
--- /dev/null
+++ b/macros/latex/contrib/t-angles/t-manual.tex
@@ -0,0 +1,723 @@
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % %
+ % This is file t-manual.tex ( version 14.08.2006 ) %
+ % %
+ % Diagram macros for tangles and braided Hopf algebras %
+ % %
+ % (Yu. Bespalov, V. Lyubashenko) %
+ % %
+ % available from CTAN and http://www.math.ksu.edu/~lub/ %
+ % %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\documentclass[11pt]{article}
+
+\usepackage{amsmath}
+\usepackage{t-angles}
+%\usepackage[emtex]{t-angles}
+%\usepackage{t-erratr}
+
+\setlength{\textwidth}{16 true cm}
+\setlength{\textheight}{22.5 true cm}
+\setlength{\topmargin}{-1.4 true cm}
+\setlength{\oddsidemargin}{0mm}
+
+\title{{\Huge\tt t-angles.sty }
+\footnote{t-angles.sty is available from {\tt
+http://www.math.ksu.edu/$\sim$lub/} or from CTAN}
+\\
+\mbox{\Large\bf(Diagram macros for tangles and braided Hopf algebras)}
+}
+\author{Yu. Bespalov \and V. Lyubashenko}
+\date{Version 14.08.2006}
+
+\def\subsec#1{\subsection*{#1}\addcontentsline{toc}{subsection}{#1}}
+
+\def\hhmode{{{\tt hh}-mode }}
+\def\Command#1{\hbox{\tt\string#1}}
+\def\command#1{\ \hbox{\tt\string#1} \ }
+\def\SHOW#1#2{\begin{array}{c}
+ \begin{tangle}#1\end{tangle}\\
+ \hbox{\tt\string#2}
+ \end{array}}
+\def\Show#1{\SHOW#1#1}
+\def\Showh#1{\SHOW{\hh#1}#1}
+
+
+\bibliographystyle{amsplain}
+
+\begin{document}
+
+\maketitle
+\tableofcontents
+
+\section{Introduction}
+
+\subsection*{Usage:}
+\addcontentsline{toc}{subsection}{Usage}
+$$
+\vcenter{\hbox{\command{\usepackage[emtex]\{t-angles\}}}
+ \hbox{(for \command{emtex} drivers, \tt dviwin,}
+ \hbox{ \tt dvips, yap )}}
+\qquad \hbox{or} \qquad
+\vcenter{\hbox{\command{\usepackage\{t-angles\}} $\equiv$}
+ \hbox{\command{\usepackage[TPIC]\{t-angles\}}}
+ \hbox{(for TPIC drivers such as \tt dviwin,}
+ \hbox{ {\tt xdvi, dvips, yap, dvipdfm, kdvi} )}}
+$$
+To use with \command{kluwer.cls} add the option \command{kluwer}:\\
+\command{\usepackage[emtex,kluwer]\{t-angles\}} or
+\command{\usepackage[kluwer]\{t-angles\}}.
+
+The main option \command{TPIC} is executed by default. It can be
+overwritten by the antagonistic option \command{emtex}. These two
+options give slightly different *.dvi output, when they are used with
+\LaTeX. The package works also with pdf\LaTeX. In this case both
+options produce identical *.pdf output. Actually, the third option
+\command{pdflatex} is executed in this case automatically. You should
+not type \command{\usepackage[pdflatex]\{t-angles\}} in your file
+unless you want to prohibit its use with \LaTeX. Another way to produce
+*.pdf file is to apply \command{dvipdfm} to the *.dvi output, obtained
+with the \command{TPIC} option.
+
+Under pdf\LaTeX{} the information about slanted lines is stored in a file
+*.emp and read on the following pass. Consequently, the changes made in
+a tangle diagram are not reflected immediately in the *.pdf output. You
+may need several ($\simeq2$) runs of pdf\LaTeX{} to see the final
+picture.
+
+
+\subsec{Acknowledgments}
+ An optional parameter for (co)actions is proposed by Bernhard Drabant.
+The file \command{t-angles.sty} contains parts of
+\command{emlines2.sty} by Georg Horn and Eberhard Mattes and parts of
+\command{eepic.sty} by Conrad Kwok. PDF implementation of em\TeX{}
+specials is due to Hans Hagen. We have incorporated his con\TeX t
+support macros `em\TeX{} specials to PDF conversion' from
+\command{supp-emp.tex} distributed with Te\TeX. These parts of the code
+are used in the three options: \command{emtex}, \command{TPIC} and
+\command{pdflatex} respectively. To understand them the reader is
+invited to read comments in the original works. In order to distinguish
+between ordinary \LaTeX{} and pdf\LaTeX{} modes, Heiko Oberdiek's
+package \command{ifpdf.sty} is loaded.
+
+
+\subsection*{Main features:}
+\addcontentsline{toc}{subsection}{Main features}
+\begin{itemize}
+\item
+The environments
+$$
+\vcenter{\hbox{\tt \{tangle\}}
+ \hbox{\tt \{tanglec\}}
+ \hbox{\tt \{tangler\}}
+ \hbox{\tt \{tangles\}}}
+\qquad
+\vcenter{\hbox{are arrays with}
+ \hbox{one or more}
+ \hbox{column style:}}
+\qquad
+\vcenter{\hbox{\tt \{array\}\{l\}}
+ \hbox{\tt \{array\}\{c\}}
+ \hbox{\tt \{array\}\{r\}}
+ \hbox{\tt \{array\}} }
+\quad
+\vcenter{\hbox{(left)}
+ \hbox{(centered)}
+ \hbox{(right)}
+ \hbox{(any)}}
+$$
+respectively. Likewise {\tt \{array\}}, the {\tt \{tangles\}}
+environment allows an optional argument {\tt t} or {\tt b} to align
+the upper base line or the bottom of the tangle with the exterior
+base line: \verb+\begin{tangles}[b]{l*3cr}+.
+\item
+ \command\unitlens is the global length parameter.
+ Default value is \command{10 pt} .
+\item
+ \command\hstretch and \command\vstretch are relative length
+ parameters, horizontal and vertical stretch:
+\begin{equation*}
+\begin{split}
+\command\unith = \command\hstretch \%\;\; \text{of}\; \command\unitlens \,,
+\\
+\command\unitv = \command\vstretch \%\;\; \text{of}\; \command\unitlens \,,
+\end{split}
+\end{equation*}
+ set to an integer number of percents before the beginning of a tangle.
+\newline
+ Default settings are
+\command{\hstretch}{\tt 100} and \command{\vstretch}{\tt 100}.
+ The commands \command\hstretch and \command\vstretch should be used only
+ outside of tangle environments (with an exception of embedded tangle
+ environments).
+\item
+The commands \command{\hstr \{<number>\}} ,
+\command{\vstr \{<number>\}} can be used inside tangle environments
+instead of \command{\hstretch <number>} , \command{\vstretch <number>}.
+They will act within their \LaTeX{} scope.
+\item
+The height of every row is \ {\tt 2}\command\unitv
+or \command\unitv if the command \command\hh (see below) is used;
+\newline
+the widths of standard fragments are \ {\tt 0, .5, 1, 2, 3} or {\tt 4}
+\command\unith
+\item
+The command \command\hh obeys to \LaTeX{} scope rules. The command
+\command\HH acts in the same way as \command\hh but put at the
+beginning of a row works for the whole row in the \ {\tt \{tangles\}}
+environment.
+\item
+The style understands the commands
+\command\thinlines and \command\thicklines .
+\item
+The command \command{\step[<number>]} is used to produce horizontal space
+\command\kern{\tt <number>}\command\unith and works in any mode
+(inside and outside of the \command{tangle} environment).
+\begin{eqnarray*}
+&\command\step = \command{\step[1]}
+\qquad
+&\command\Step = \command{\step[2]}
+\\
+&\command\hstep = \command{\step[.5]}
+\quad
+&\command\hhstep = \command{\step[-.5]}
+\end{eqnarray*}
+\item
+Vertical spacing before the next row is produced by
+\ $\backslash\backslash[\langle\hbox{\tt vertical\_space}\rangle]$ \
+with optional argument (like in standard \ {\tt \{array\}} \
+environment).
+\item
+The command \command{\object\#1} is used to put the object \command{#1}
+directly over or under the end of the string (inside and outside of the
+\ {\tt \{tangle\}} \ environment). It adds a vertical space below or
+above as required. More space can be added as above.
+\newline
+The command
+\command{\Put(x\_coord,y\_coord)[binding\_point]<object>} puts
+{\tt <object>} into the intended position and works in
+\ {\tt \{tangle[cs]\}} \ environment like a combination of \command\put
+and \command\makebox. Coordinates are integers, measured in
+{\tt .1}\command\unith, {\tt .1}\command\unitv units;
+\command{binding\_point} is a combination of two letters \ {\tt lcr} \
+and \ {\tt tcb} \ according to the usual \LaTeX{} rules.
+\newline
+The commands
+\command{\nodeu\#1,} \command{\noded\#1,}
+\command{\nodel\#1,} \command{\noder\#1,}
+\command{\noderu\#1,} \command{\noderd\#1,}
+\command{\nodelu\#1,} \command{\nodeld\#1}
+produce zero boxes and put \ {\tt \#1} \ into the corresponding
+position.
+\newline
+\begin{minipage}{0.4\textwidth}
+The picture
+\begin{equation*}
+\vstretch 200 \hstretch 200
+\begin{tangle}
+\nodeu.\noded.\nodel.\noder.\noderu.\noderd.\nodelu.\nodeld.
+\end{tangle}
+\end{equation*}
+is described by the lines:
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+\begin{verbatim}
+\vstretch 200 \hstretch 200
+\begin{tangle}
+\nodeu.\noded.\nodel.\noder.
+\noderu.\noderd.\nodelu.\nodeld.
+\end{tangle}
+\end{verbatim}
+\end{minipage}
+\end{itemize}
+
+\section{Macros in pictures}
+
+\subsec{Straight lines and nodes}
+
+\begin{itemize}
+\item
+The commands \command\id, \command\n, \command\s,\command\node,
+\command\unit, \command\counit work also in \hhmode.
+$$
+\Show\id \quad
+\Show\idash \quad
+\Show\n \quad
+\Show\s \quad
+\Show\nd \quad
+\Show\sd \quad
+\Show\node \quad
+\Show\unit \quad
+\Show\counit
+$$
+The command \command\FillCircDiam denotes the filled circle diameter.
+It is set to an integer between 1 and 9 (here the measure unit is
+0.1 \command\unith). Default value is 3.
+\item
+The command \command\hln{\tt <number>} \ produces horizontal line on
+\ {\tt <number>}\command\unith.
+\item
+Argument of \command\ne,\command\nw,\command\se,\command\sw,
+\command\ned,\command\nwd,\command\sed,\command\swd
+is \ {\tt 0,1,2,3} or {\tt 4}; {\tt 0} produces empty box and
+other produce (dash) lines with horizontal projections equal
+\ {\tt <argument>}\command{\unith} cribbed into {\tt 1$\times$2} box.
+The commands \command\ne,\command\nw,\command\se,\command\sw
+produce {\tt 1$\times$1} box in \hhmode.
+$$
+\SHOW{\nw1}{\nw{1}}\quad
+\SHOW{\nwd1}{\nwd{1}}\quad
+\SHOW{\sw0}{\sw{0}}\quad
+\SHOW{\se3}{\se{3}}\quad
+\SHOW{\sed3}{\sed{3}}\quad
+\SHOW{\nw3\nw2\nw1\n\ne1\ne2\ne3}{\nw{3}\string\nw{2}%
+\string\nw{1}\string\n\string\ne{1}\string\ne{2}\string\ne{3}}
+$$
+\item
+All the following commands work in \hhmode and produce
+the similar diagrams in {\tt .5$\times$1} boxes.
+$$
+\Show\d \quad
+\Show\dd \quad
+\Show\hd \quad
+\Show\hdd \quad
+\Show\dh \quad
+\Show\ddh
+$$
+\end{itemize}
+
+
+\subsec{(Under/over)crossings. Braiding and symmetry}
+The following crossings and dashed crossings are shown in normal mode.
+$$
+\Show\x \quad
+\Show\xx \quad
+\Show\hx \quad
+\Show\hxx \quad
+\Show\X \quad
+\Show\XX \quad
+\Show\xd \quad
+\Show\xxd \quad
+\Show\hxd \quad
+\Show\hxxd
+$$
+The commands \command\X, \command\XX, \command\x, \command\xx work in
+\hhmode and produce similar diagrams of half width and height
+({\tt 1$\times$1} boxes).
+
+\subsec{(Co)pairings.}
+The commands \command\ev, \command\coev work in \hhmode and produce
+the similar diagrams of half width and height ({\tt .5$\times$1} boxes).
+For convenience in \hhmode \command\hev $\equiv$ \command\ev and
+\command\hev $\equiv$ \command\ev.
+\begin{align*}
+\Show\hev \quad
+&\Show\ev \quad
+&\Show\Ev \quad
+&\Show\EV
+&\\
+\Show\hcoev \quad
+&\Show\coev \quad
+&\Show\Coev \quad
+&\Show\COEV
+&\end{align*}
+
+
+\subsec{Morphisms. Frame and dash boxes}
+\begin{itemize}
+\item
+$$
+\SHOW{\Q f}{\Q \ f} \quad
+\SHOW{\QQ f}{\QQ \ f} \quad
+\SHOW{\O f}{\O \ f} \quad
+%\SHOW{\circ f}{\circ \ f} \quad
+\SHOW{\morph f}{\morph \ f} \quad
+\SHOW{\tu f}{\tu \ f} \quad
+\SHOW{\td f}{\td \ f} \quad
+\Show\S \quad
+\Show\SS
+$$
+\item
+$$
+\SHOW{\ox f}{\ox \ f} \qquad\qquad
+\SHOW{\ro p}{\ro \ p} \quad
+\SHOW{\coro q}{\coro \ q} \quad
+\SHOW{\Ro p}{\Ro \ p} \quad
+\SHOW{\coRo q}{\coRo \ q}
+$$
+\item
+The commands \command{\dbox\#1\#2,}\command{\ffbox\#1\#2,}
+\command{\obox\#1\#2,}\command{\tbox\#1\#2} put {\tt \$\#2\$} in the middle
+of \ {\tt \#1}$\times${\tt 2} (or {\tt \#1}$\times${\tt 1} \ in
+\hhmode ) box with dash, rectangle, oval frame or without frame.
+\par
+For example, the text
+\newline
+\begin{minipage}{.4\textwidth}
+\begin{verbatim}
+\begin{tangles}{rcl}
+\HH\obox 10&&\obox 10\\
+\HH\d&&\dd\\
+&\hhstep\obox 3V\hhstep&
+\end{tangles}
+\end{verbatim}
+\end{minipage}
+produces
+\begin{minipage}{.4\textwidth}
+\begin{equation*}
+\begin{tangles}{rcl}
+\HH\obox 10&&\obox 10\\
+\HH\d&&\dd\\
+&\hhstep\obox 3V\hhstep&
+\end{tangles}
+\end{equation*}
+\end{minipage}
+\end{itemize}
+
+\subsec{(Co)multiplications and cocycles}
+The commands \command\cu, {\tt \string\cu *},
+\command\cd, {\tt \string\cd *} work in \hhmode and produce the similar
+diagrams of half width and height ({\tt .5$\times$1} boxes).
+For convenience in \hhmode \command\hcu $\equiv$ \command\cu and
+\command\hcd $\equiv$ \command\cd .
+\begin{equation*}
+\begin{split}
+\Show\Cu \quad
+\Show\cu \quad
+\Show\hcu \quad
+\Show\hdcu \quad
+\Show\hddcu
+\\
+\SHOW{\Cu *}{\Cu *} \quad
+\SHOW{\cu *}{\cu *} \quad
+\SHOW{\hcu *}{\hcu *} \quad
+\SHOW{\hdcu *}{\hdcu *} \quad
+\SHOW{\hddcu *}{\hddcu *}
+\\
+\SHOW{\Cd *}{\Cd *} \quad
+\SHOW{\cd *}{\cd *} \quad
+\SHOW{\hcd *}{\hcd *} \quad
+\SHOW{\hdcd *}{\hdcd *} \quad
+\SHOW{\hddcd *}{\hddcd *}
+\\
+\Show\Cd \quad
+\Show\cd \quad
+\Show\hcd \quad
+\Show\hdcd \quad
+\Show\hddcd
+\end{split}
+\end{equation*}
+
+\subsec{(Co)actions}
+Commands \command\lu, \command\ld, \command\ru, \command\rd
+have optional parameter \ {\tt [\#1]} which equals to width of the box:
+\begin{align*}
+&\command\hh
+& \SHOW{\hh\Lu}{\Lu$\equiv\!\!\!\!$\command\lu$\!\!\!\!\!\!$[2]} \quad
+ \SHOW{\hh\lu} {\lu$\equiv\!\!\!\!$\command\lu$\!\!\!\!\!\!$[1]} \quad
+ \Showh\hlu \quad
+ \Showh\hru \quad
+ \SHOW{\hh\ru} {\ru$\equiv\!\!\!\!$\command\ru$\!\!\!\!\!\!$[1]} \quad
+ \SHOW{\hh\Ru} {\Ru$\equiv\!\!\!\!$\command\ru$\!\!\!\!\!\!$[2]}
+&\\
+&&\SHOW\Lu{\Lu$\equiv\!\!\!\!$\command\lu$\!\!\!\!\!\!$[2]} \quad
+ \SHOW\lu{\lu$\equiv\!\!\!\!$\command\lu$\!\!\!\!\!\!$[1]} \quad
+ \Show\hlu \quad
+ \Show\hru \quad
+ \SHOW\ru{\ru$\equiv\!\!\!\!$\command\ru$\!\!\!\!\!\!$[1]} \quad
+ \SHOW\Ru{\Ru$\equiv\!\!\!\!$\command\ru$\!\!\!\!\!\!$[2]}
+&\\
+&&\SHOW\Ld{\Ld$\equiv\!\!\!\!$\command\ld$\!\!\!\!\!\!$[2]} \quad
+ \SHOW\ld{\ld$\equiv\!\!\!\!$\command\ld$\!\!\!\!\!\!$[1]} \quad
+ \Show\hld \quad
+ \Show\hrd \quad
+ \SHOW\rd{\rd$\equiv\!\!\!\!$\command\rd$\!\!\!\!\!\!$[1]} \quad
+ \SHOW\Rd{\Rd$\equiv\!\!\!\!$\command\rd$\!\!\!\!\!\!$[2]}
+&\\
+&\command\hh
+& \SHOW{\hh\Ld}{\Ld$\equiv\!\!\!\!$\command\ld$\!\!\!\!\!\!$[2]} \quad
+ \SHOW{\hh\ld}{\ld$\equiv\!\!\!\!$\command\ld$\!\!\!\!\!\!$[1]} \quad
+ \Showh\hld \quad
+ \Showh\hrd \quad
+ \SHOW{\hh\rd}{\rd$\equiv\!\!\!\!$\command\rd$\!\!\!\!\!\!$[1]} \quad
+ \SHOW{\hh\Rd}{\Rd$\equiv\!\!\!\!$\command\rd$\!\!\!\!\!\!$[2]}
+&\end{align*}
+
+\subsec{Compositions}
+$$
+\Show\kk \quad
+\Show\luld \quad
+\Show\cucd \quad
+\Show\rurd \quad
+\Show\k
+$$
+
+\section{Examples}
+
+\begin{minipage}{.3\textwidth}
+\[
+\begin{tangle}
+\object{B}\step\object{B}\\
+\cucd\\
+\object{B}\step\object{B}
+\end{tangle}
+\;=\enspace
+\begin{tangles}{lcr}
+\HH \cd && \cd \\
+\HH \id & \x & \id \\
+\HH \cu && \cu
+\end{tangles}
+\]
+\begin{equation*}
+\hstretch 90 \vstretch 60
+\begin{tangle}
+\step\hcoev\step\coev\\
+\dd\step\hxx\step\dd\\
+\id\Step\id\step\hx\\
+\d\step\hxx\step\d\\
+\step\hev\step\ev
+\end{tangle}
+\end{equation*}
+\end{minipage}
+\begin{minipage}{.2\textwidth}
+The first picture is produced by:
+\end{minipage}
+\quad
+\begin{minipage}{.4\textwidth}
+\begin{verbatim}
+\[
+\begin{tangle}
+\object{B}\step\object{B}\\
+\cucd\\
+\object{B}\step\object{B}
+\end{tangle}
+\;=\enspace
+\begin{tangles}{lcr}
+\HH \cd && \cd \\
+\HH \id & \x & \id \\
+\HH \cu && \cu
+\end{tangles}
+\]
+\end{verbatim}
+\end{minipage}
+
+\begin{minipage}{0.23\textwidth}
+Nested environments:
+\[
+\begin{tanglec}
+ \begin{tangles}[b]{c}
+ \vstr{200} \xx \\ \vstr{200} \xx
+ \end{tangles}
+\step[4]
+ \begin{tangles}[b]{*3c}
+ & \object{F} & \\ & \xx & \\ \id && \O{u_1^2} \\
+ & \xx & \\ \id && \O{u_1^2}
+ \end{tangles}
+\\
+\id \Step \coRo\omega \Step \id \\
+\hstr{200} \coRo\omega
+\end{tanglec}
+\]
+The level of nesting depends on the save size of your \TeX.
+\end{minipage}
+\ \
+\begin{minipage}{0.7\textwidth}
+\begin{verbatim}
+\[
+\begin{tanglec}
+ \begin{tangles}[b]{c}
+ \vstr{200} \xx \\ \vstr{200} \xx
+ \end{tangles}
+\step[4]
+ \begin{tangles}[b]{*3c}
+ & \object{F} & \\ & \xx & \\ \id && \O{u_1^2} \\
+ & \xx & \\ \id && \O{u_1^2}
+ \end{tangles}
+\\
+\id \Step \coRo\omega \Step \id \\
+\hstr{200} \coRo\omega
+\end{tanglec}
+\]
+\end{verbatim}
+\end{minipage}
+\smallskip
+
+Note the use of optional argument \verb+[b]+ to align the subtangles
+at the bottom.
+
+\section{Development}
+
+\subsec{History and versions}
+
+The style was produced by the first author in 1994. It was completely
+modified and essentially improved by the second author in 1997 for
+real--life applications in \cite{BKLT:int}.
+
+{%beginenumerate
+\setlength{\leftmargini}{34mm}
+\begin{enumerate}
+\item[04.04.99$\to$20.04.00]
+The output of commands \command{\tu\#1,}\command{\td\#1,}
+\command{\ro\#1,}\command{\coro\#1,}\command{\Ro\#1,}\command{\coRo\#1}
+slightly differs. Now they fit their boxes.
+
+\item[20.04.00$\to$10.09.00]
+Dashed crossings are represented by the commands
+\command{\xd,}\command{\xxd,}\command{\hxd,}\command{\hxxd.}
+
+\item[10.09.00$\to$22.04.06]
+It is possible to use the package with pdf\LaTeX.
+
+\item[22.04.06$\to$14.08.06]
+Behaviour of the package with pdfe\LaTeX{} of MiK\TeX{} 2.5 is
+corrected.
+
+\end{enumerate}
+}%endenumerate
+
+\begin{thebibliography}{1}
+
+\bibitem{BKLT:int}
+Yu.~N. Bespalov, T.~Kerler, V.~V. Lyubashenko, and V.~G. Turaev,
+ \emph{Integrals for braided {H}opf algebras}, J. Pure and Appl. Algebra
+ \textbf{148} (2000), no.~2, 113--164, Available as
+ http://arXiv.org/abs/q-alg/9709020.
+
+\end{thebibliography}
+
+%\bibliography{yuri}
+
+%\subsec{Bugs}
+%\begin{itemize}
+%\item
+%\end{itemize}
+
+\subsec{Directions for modification
+%\protect\footnote{What can you suggest?}
+}
+
+\begin{itemize}
+\item
+In the future some problems can be solved by introducing global
+(logical) parameters that switch configuration and behavior of certain
+families of commands in questionable situations.
+\item
+To adopt commands like in {\tt \{picture\}} environment to
+produce special fragments of one time use.
+\item
+To make the second argument of the command \command{\Put(\#1)[\#2]\#3}
+optional.
+\item
+To produce command index for this manual.
+\item
+To add possibility to change size of circle in circled morphisms
+(in particular, to turn \command\morph into a special case of \command\O).
+\end{itemize}
+
+
+\medskip
+\begin{center}
+\fbox{Suggestions are welcome.}
+\end{center}
+
+
+\appendix
+\section{Exercises}
+How to produce the following ?
+\begin{equation*}
+\vstretch 300
+\begin{tanglec}
+\hh\dd\d\step[1.5]\dd\d \\
+\obox 6{\hstretch 85 \vstretch 80
+ \begin{tangles}{rcl}
+ \HH\obox 10&&\obox 10\\
+ \HH\d&&\dd\\
+ &\hhstep\obox 3V\hhstep&
+ \end{tangles} }
+\end{tanglec}
+\end{equation*}
+
+\end{document}
+
+
+\section{\tt t-erratr.sty}
+
+Macros from the old versions of \ {\tt tangles.sty} \ are stored in
+this file for compatibility.
+\begin{itemize}
+\item
+The following commands are special cases of
+\command{\ffbox\#1\#2,}\command{\dbox\#1\#2}:
+\begin{align*}
+&\SHOW{\dash f}{\dash \ f} \enspace
+&\SHOW{\Dash f}{\Dash \ f} \enspace
+&\SHOW{\DDash f}{\DDash \ f} \quad
+&\SHOW{\Frabox f}{\Frabox \ f} \enspace
+&\SHOW{\doubleFrabox f}{\doubleFrabox \ f}
+\\
+\command\hh
+&\SHOW{\hh\dash f}{\dash \ f} \enspace
+&\SHOW{\hh\Dash f}{\Dash \ f} \enspace
+&\SHOW{\hh\DDash f}{\DDash \ f} \quad
+&\SHOW{\hh\Frabox f}{\Frabox \ f} \enspace
+&\SHOW{\hh\doubleFrabox f}{\doubleFrabox \ f}
+\end{align*}
+and \command{\frabox} is equivalent to \command{\Frabox}.
+\item
+The following morphisms are special cases of
+\command{\ro\#1,} \command{\coro\#1,} \command{\Ro\#1,} \command{\coro\#1}:
+\vstretch 150 \hstretch 150
+\begin{align*}
+&\hstep\Show\r
+&\hstep\Show\rh
+&\hstep\Show\ra
+&\hstep\Show\rb
+\\
+&\hstep\Show\rr
+&\hstep\Show\rrr
+&\hstep\Show\rra
+&\hstep\Show\rrb
+\\
+&\Show\R
+&\Show\Rh
+&\Show\Ra
+&\Show\Rb
+\\
+&\Show\RR
+&&\Show\RRa
+&\Show\RRb
+\end{align*}
+\item
+The following commands are special cases of \command{\O\#1}:
+$$
+\vstretch 150 \hstretch 150
+\Show\tS \quad
+\Show\tSS \quad
+\SHOW{\Ointl H}{\Ointl \ H} \;
+\SHOW{\Ointr H}{\Ointr \ H} \;
+\SHOW{\Ocointl H}{\Ocointl \ H} \;
+\SHOW{\Ocointr H}{\Ocointr \ H}
+$$
+\item
+$$
+\SHOW{\pairing p}{\pairing \ p} \quad
+\SHOW{\Pairing P}{\Pairing \ P} \quad
+$$
+\item
+Functions of the old unsightly commands
+\command{\obj\#1,} \command{\Obj\#1,} \command{\negobj\#1}
+are shouldered by the command \command{\Put(\#1)[\#2]\#3}.
+\end{itemize}
+
+Commands \command{\harc}, \command{\inarc}, \command{\outarc} have two
+arguments -- horizontal and vertical diameters of an ellipse
+\vspace*{5mm}
+\[
+\SHOW{\inarc{15}{20}}{\inarc \{15\}\{20\}} \qquad
+\SHOW{\harc{20}{15}}{\harc \{20\}\{15\}} \qquad
+\SHOW{\outarc{30}{25}}{\outarc \{30\}\{25\}}
+\]
+
+\end{document}