|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% (find-LATEX "2022tikzwd-1.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2022tikzwd-1.tex" :end))
% (defun C () (interactive) (find-LATEXSH "lualatex 2022tikzwd-1.tex" "Success!!!"))
% (defun D () (interactive) (find-pdf-page "~/LATEX/2022tikzwd-1.pdf"))
% (defun d () (interactive) (find-pdftools-page "~/LATEX/2022tikzwd-1.pdf"))
% (defun e () (interactive) (find-LATEX "2022tikzwd-1.tex"))
% (defun u () (interactive) (find-latex-upload-links "2022tikzwd-1"))
% (defun v () (interactive) (find-2a '(e) '(d)))
% (defun cv () (interactive) (C) (ee-kill-this-buffer) (v) (g))
% (defun d0 () (interactive) (find-ebuffer "2022tikzwd-1.pdf"))
% (code-eec-LATEX "2022tikzwd-1")
% (find-pdf-page "~/LATEX/2022tikzwd-1.pdf")
% (find-sh0 "cp -v ~/LATEX/2022tikzwd-1.pdf /tmp/")
% (find-sh0 "cp -v ~/LATEX/2022tikzwd-1.pdf /tmp/pen/")
% file:///home/edrx/LATEX/2022tikzwd-1.pdf
% file:///tmp/2022tikzwd-1.pdf
% file:///tmp/pen/2022tikzwd-1.pdf
% http://angg.twu.net/LATEX/2022tikzwd-1.pdf
% (find-LATEX "2019.mk")
% (find-lualatex-links "2022tikzwd-1" "twd")
\documentclass[11pt,oneside,article]{memoir}
%\usepackage[colorlinks,citecolor=DarkRed,urlcolor=DarkRed]{hyperref} % (find-es "tex" "hyperref")
\usepackage[colorlinks,citecolor=red,urlcolor=red]{hyperref} % (find-es "tex" "hyperref")
%\usepackage{amsmath}
%\usepackage{amsfonts}
%\usepackage{amssymb}
%\usepackage{pict2e}
%\usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor")
%\usepackage[]{xcolor} % (find-es "tex" "xcolor")
\usepackage{colorweb} % (find-es "tex" "colorweb")
%\usepackage{tikz}
%
\usepackage{amsthm}
\usepackage{newpxtext}
\usepackage[varg,bigdelims]{newpxmath}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz}
%
\usepackage{edrx21} % (find-LATEX "edrx21.sty")
\input edrxaccents.tex % (find-LATEX "edrxaccents.tex")
\input edrx21chars.tex % (find-LATEX "edrx21chars.tex")
\input edrxheadfoot.tex % (find-LATEX "edrxheadfoot.tex")
%\input edrxgac2.tex % (find-LATEX "edrxgac2.tex")
%
\usetikzlibrary{
%cd,
%math,
decorations.markings,
%decorations.pathreplacing,
positioning,
%arrows.meta,
%circuits.logic.US,
%shapes,
calc,
fit,
quotes}
%
% (find-es "tex" "geometry")
\newcommand{\tn}{\textnormal}
\newcommand{\inp}[1]{#1^{\tn{in}}}
\newcommand{\outp}[1]{#1^{\tn{out}}}
\newcommand{\upd}[1]{#1^{\tn{upd}}}
\newcommand{\rdt}[1]{#1^{\tn{rdt}}}
\tikzset{
oriented WD/.style={%everything after equals replaces "oriented WD" in key.
every to/.style={out=0,in=180,draw},
label/.style={
font=\everymath\expandafter{\the\everymath\scriptstyle},
inner sep=0pt,
node distance=2pt and -2pt},
semithick,
node distance=1 and 1,
decoration={markings, mark=at position \stringdecpos with \stringdec},
ar/.style={postaction={decorate}},
execute at begin picture={\tikzset{
x=\bbx, y=\bby,
every fit/.style={inner xsep=\bbx, inner ysep=\bby}}}
},
string decoration/.store in=\stringdec,
string decoration={\arrow{stealth};},
string decoration pos/.store in=\stringdecpos,
string decoration pos=.7,
bbx/.store in=\bbx,
bbx = 1.5cm,
bby/.store in=\bby,
bby = 1.5ex,
bb port sep/.store in=\bbportsep,
bb port sep=1.5,
bb port length/.store in=\bbportlen,
bb port length=4pt,
bb penetrate/.store in=\bbpenetrate,
bb penetrate=0,
bb min width/.store in=\bbminwidth,
bb min width=1cm,
bb rounded corners/.store in=\bbcorners,
bb rounded corners=2pt,
bb small/.style={bb port sep=1, bb port length=2.5pt, bbx=.4cm, bb min width=.4cm, bby=.7ex},
bb medium/.style={bb port sep=1, bb port length=2.5pt, bbx=.4cm, bb min width=.4cm, bby=.9ex},
bb/.code 2 args={%When you see this key, run the code below:
\pgfmathsetlengthmacro{\bbheight}{\bbportsep * (max(#1,#2)+1) * \bby}
\pgfkeysalso{draw,minimum height=\bbheight,minimum width=\bbminwidth,outer sep=0pt,
rounded corners=\bbcorners,thick,
prefix after command={\pgfextra{\let\fixname\tikzlastnode}},
append after command={\pgfextra{\draw
\ifnum #1=0{} \else foreach \i in {1,...,#1} {
($(\fixname.north west)!{\i/(#1+1)}!(\fixname.south west)$) +(-\bbportlen,0)
coordinate (\fixname_in\i) -- +(\bbpenetrate,0) coordinate (\fixname_in\i')}
\fi
% Define the endpoints of tickmarks
\ifnum #2=0{} \else foreach \i in {1,...,#2} {
($(\fixname.north east)!{\i/(#2+1)}!(\fixname.south east)$) +(-\bbpenetrate,0)
coordinate (\fixname_out\i') -- +(\bbportlen,0) coordinate (\fixname_out\i)}
\fi;
}}}
},
bb name/.style={append after command={\pgfextra{\node[anchor=north] at (\fixname.north) {#1};}}}
}
\tikzset{
%unoriented WD/.style={
% every to/.style={draw},
% shorten <=-\penetration, shorten >=-\penetration,
% label distance=-2pt,
% thick,
% node distance=\spacing,
% execute at begin picture={\tikzset{
% x=\spacing, y=\spacing}}
% },
pack size/.store in=\psize,
pack size = 8pt,
spacing/.store in=\spacing,
spacing = 8pt,
link size/.store in=\lsize,
%link size = 2pt,
% penetration/.store in=\penetration,
% penetration = 2pt,
pack color/.store in=\pcolor,
pack color = blue,
pack inside color/.store in=\picolor,
pack inside color=blue!20,
pack outside color/.store in=\pocolor,
pack outside color=blue!50!black,
surround sep/.store in=\ssep,
surround sep=8pt,
link/.style={
circle,
draw=black,
fill=black,
inner sep=0pt,
minimum size=\lsize
},
%pack/.style={
% circle,
% draw = \pocolor,
% fill = \picolor,
% inner sep = .25*\psize,
% minimum size = \psize
%},
%outer pack/.style={
% ellipse,
% draw,
% inner sep=\ssep,
% color=\pocolor,
%},
%intermediate pack/.style={
% ellipse,
% dashed,
% draw,
% inner sep=\ssep,
% color=\pocolor,
%},
}
\settrims{0pt}{0pt} % page and stock same size
\settypeblocksize{*}{35pc}{*} % {height}{width}{ratio}
\setlrmargins{*}{*}{1} % {spine}{edge}{ratio}
\setulmarginsandblock{1in}{1in}{*} % height of typeblock computed
\setheadfoot{\onelineskip}{2\onelineskip} % {headheight}{footskip}
\setheaderspaces{*}{1.5\onelineskip}{*} % {headdrop}{headsep}{ratio}
\checkandfixthelayout
\setcounter{tocdepth}{1}
\setcounter{secnumdepth}{1}
%\pagestyle{ruled}
\renewcommand*{\chaptitlefont}{\bfseries\Large}
\setsecheadstyle{\bfseries\large\raggedright}
\setsubsecheadstyle{\bfseries\raggedright}
\begin{document}
Some diagrams from:
{\footnotesize
\url{https://github.com/appliedcategorytheory/TikZWD}
}
\bsk
%\begin{equation}\label{eqn.overview}\tag{overview}
\begin{tikzpicture}
\begin{scope}[font=\footnotesize, text height=1.5ex, text depth=.5ex]
\begin{scope}[oriented WD, bb port sep=1, bb port length=2.5pt, bb min width=.4cm,
bby=.2cm, inner xsep=.2cm, x=.5cm, y=.3cm]
\begin{scope}[color=red]
\node[bb={1}{1}] (Catf) {$f$};
\node[bb={1}{1}, right=1 of Catf] (Catg) {$g$};
\node[bb={0}{0}, fit=(Catf) (Catg)] (Cat) {};
\node[coordinate] at (Cat.west|-Catf_in1) (Cat_in1) {};
\node[coordinate] at (Cat.east|-Catg_out1) (Cat_out1) {};
\draw[shorten <=-2pt] (Cat_in1) -- (Catf_in1);
\draw (Catf_out1) -- (Catg_in1);
\draw[shorten >=-2pt] (Catg_out1) -- (Cat_out1);
\end{scope}
%
\begin{scope}[color=orange]
\node[bb={1}{2}, above right=-1.5 and 4 of Catf] (Monf) {$f$};
\node[bb={2}{1}, below right=-1 and 1 of Monf] (Mong) {$g$};
\node[bb={0}{0}, fit=(Monf) (Mong)] (Mon) {};
\node[coordinate] at (Mon.west|-Monf_in1) (Mon_in1) {};
\node[coordinate] at (Mon.west|-Mong_in2) (Mon_in2) {};
\node[coordinate] at (Mon.east|-Monf_out1) (Mon_out1) {};
\node[coordinate] at (Mon.east|-Mong_out1) (Mon_out2) {};
\draw[shorten <=-2pt] (Mon_in1) -- (Monf_in1);
\draw[shorten >=-2pt] (Monf_out1) -- (Mon_out1);
\draw (Monf_out2) to (Mong_in1);
\draw[shorten <=-2pt] (Mon_in2) -- (Mong_in2);
\draw[shorten >=-2pt] (Mong_out1) -- (Mon_out2);
\end{scope}
%
%\node[bb={2}{1}, right= 4.5 of Monf] (Trf) {$f$};
%\node[bb={2}{2}, below right=-1 and 1 of Trf] (Trg) {$g$};
%\node[bb={0}{0}, fit={($(Trf.north west)+(-.5,1)$) ($(Trg.south east)+(.5,-1)$)}] (Tr) {};
%\node[coordinate] at (Tr.west|-Trf_in2) (Tr_in1) {};
%\node[coordinate] at (Tr.west|-Trg_in2) (Tr_in2) {};
%\node[coordinate] at (Tr.east|-Trf_out1) (Tr_out1) {};
%\node[coordinate] at (Tr.east|-Trg_out2) (Tr_out2) {};
%\draw[shorten <=-2pt] (Tr_in1) -- (Trf_in2);
%\draw (Trf_out1) to (Trg_in1);
%\draw[shorten <=-2pt] (Tr_in2) -- (Trg_in2);
%\draw[shorten >=-2pt] (Trg_out2) -- (Tr_out2);
%\draw let \p1=(Trg.east), \p2=(Trf.north west), \n1=\bbportlen, \n2=\bby in
% (Trg_out1) to[in=0] (\x1+\n1,\y2+\n2) -- (\x2-\n1,\y2+\n2) to[out=180] (Trf_in1);
%
\end{scope}
%\begin{scope}[penetration=0, unoriented WD, pack outside color=black, pack inside color=white]
% \begin{scope}[color=orange]
% \node[pack, right=2.9 of Trf] (Hypf) {$f$};
% \node[pack, below right=0 and .5 of Hypf] (Hypg) {$g$};
% \node[outer pack, inner sep=5pt, fit=(Hypf) (Hypg)] (Hyp) {};
% \node[coordinate] at ($(Hypg.-30)!.5!(Hyp.-30)$) (link) {};
% \draw (Hypf) to[bend left] (Hypg);
% \draw (Hypf) to[bend right] (Hypg);
% \draw (Hypg) -- (link);
% \draw[shorten >= -2pt] (link) to[bend left] (Hyp.-20);
% \draw[shorten >= -2pt] (link) to[bend right] (Hyp.-45);
% \draw[shorten >= -2pt] (Hypf) -- (Hyp);
% \end{scope}
%\end{scope}
%\begin{scope}[circuit logic US, thick, every to/.style={out=0,in=180}]
% \node[and gate, draw, right=2.5 of Hypf] (Opdf) {$f$};
% \node[and gate, draw, below right=0 and 0.5 of Opdf] (Opdg) {$g$};
% \node[and gate, inner sep=1pt, draw, fit=(Opdf) (Opdg)] (Opd) {};
% \draw[shorten <=-2pt] (Opd.input 1|-Opdf.west) to (Opdf.west);
% \draw[shorten <=-2pt] (Opd.input 1|-Opdg.input 2) to (Opdg.input 2);
% \draw (Opdf.output) to (Opdg.input 1);
% \draw[shorten >=-2pt] (Opdg.output) to (Opd.output);
%\end{scope}
\node[below=.65 of Cat.south] (Cat name) {category};
\node[text width=1.5cm] at (Cat name-|Mon) {monoidal category};
%\node[text width=2.5cm] at (Cat name-|Tr) {traced monoidal category};
%\node[text width=2cm] at (Cat name-|Hyp) {hypergraph category};
%\node at (Cat name-|Opd) {operad};
\end{scope}
\end{tikzpicture}
%\end{equation}
\GenericWarning{Success:}{Success!!!} % Used by `M-x cv'
\end{document}
% Local Variables:
% coding: utf-8-unix
% ee-tla: "twd"
% indent-tabs-mode: nil
% End: