Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
% This is the "edrx08.sty" file of dednat4.
% (find-dn4ex "edrx08.sty")
%   http://angg.twu.net/dednat4/examples/edrx08.sty
%   http://angg.twu.net/dednat4/examples/edrx08.sty.html
% Author: Eduardo Ochs <eduardoochs@gmail.com>
% Version: 2008nov14

% I use this as my main include(d) file.
% This is not self-contained! It has some "\input"s - namely:
%   \input edrxdnt.tex    % (find-dn4ex "edrxdnt.tex")
%   \input edrxdefs.tex   % (find-dn4ex "edrxdefs.tex")
% Also, this file is loaded by:
%   (find-dn4ex "edrxmain41.tex")
%   (find-dn4ex "edrxmain41a.tex")
% See also:
%   (find-dn4 "Makefile" "demo1")

% Here's a minimal example of use:
% create a file "foo.tex" containing this:
% (strip out the initial "%"s, of course...)
%
%     --snip--snip--
%     \documentclass[oneside]{book}
%     \usepackage[latin1]{inputenc}
%     \usepackage{edrx08}
%     %L process "edrx08.sty"  -- (find-dn4ex "edrx08.sty")
%     % For the footer with the filename and a timestamp:
%     \input edrxheadfoot.tex
%     \begin{document}
%   
%     % Run this to produce foo.dnt:
%     %  (find-sh "~/dednat4/dednat41 foo.tex")
%     % Make LaTeX load the TeXed versions of the trees and diagrams:
%     \input foo.dnt
%   
%     %D diagram adjunction-DNC
%     %D 2Dx    100       +20
%     %D 2D 100 a,b <==== a
%     %D 2D      -        -
%     %D 2D      |  <-->  |
%     %D 2D      v        v
%     %D 2D +20  c ===> b|->c
%     %D 2D
%     %D (( a,b   a
%     %D     c  b|->c
%     %D    @ 0 @ 1 <= @ 0 @ 2 |-> @ 1 @ 3 |-> @ 2 @ 3 =>
%     %D    @ 0 @ 3 harrownodes nil 20 nil <->
%     %D ))
%     %D enddiagram
%   
%     $$\diag{adjunction-DNC}$$
%   
%     \end{document}
%     --snip--snip--
%
% Then run:
%   ~/dednat4/dednat41 foo.tex
%   latex foo.tex
%   xdvi  foo.dvi



% «.bbold»		(to "bbold")
% «.glyphs»		(to "glyphs")
% «.ttchars»		(to "ttchars")
% «.arrows»		(to "arrows")
% «.limp»		(to "limp")
% «.pbsymbol»		(to "pbsymbol")
% «.standardabbrevs»	(to "standardabbrevs")
% «.experimental.lua»	(to "experimental.lua")
% «.slides»		(to "slides")
% «.colors»		(to "colors")
% «.dags»		(to "dags")
% «.savebox»		(to "savebox")
% «.crossover»		(to "crossover")
% «.diagprep»		(to "diagprep")

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{stmaryrd}
\usepackage{array}
\usepackage{url}
\usepackage{color}
\usepackage{graphicx}    % <- temporary?
% \usepackage{pxfonts}   % <- temporary?
% \usepackage{fitch}     % <- temporary?
% \usepackage{hyperref}
%\usepackage{verbatimbox} % <- temporary?
                         % (find-es "tex" "verbatimbox")
\usepackage{shortvrb}




%  _     _           _     _ 
% | |__ | |__   ___ | | __| |
% | '_ \| '_ \ / _ \| |/ _` |
% | |_) | |_) | (_) | | (_| |
% |_.__/|_.__/ \___/|_|\__,_|
%                            
% «bbold»  (to ".bbold")
% Amsfonts.sty's "\mathbb" uses the "bbm10" font, that has nice
% blackboard bold letters, but only a few other characters...
% Bbold.sty redefines "\mathbb" to use the "bbold10" font, that has
% more characters, but then the letters become much uglier...
% This hack is a possible solution - it makes both fonts available at
% once, the one from amsfonts as \mathbb, the other one as \mathbbold.
%
% (find-fline "/usr/share/texmf-tetex/tex/latex/amsfonts/amsfonts.sty" "\\mathbb")
% (find-fline "/usr/share/texmf-tetex/tex/latex/bbold/bbold.sty" "\\mathbb")
%
\newcommand{\bbfamily}{\fontencoding{U}\fontfamily{bbold}\selectfont}
\newcommand{\textbbold}[1]{{\bbfamily#1}}
\DeclareMathAlphabet{\mathbbold}{U}{bbold}{m}{n}

\def\mathbblow{\mathbbold}    % lowercase letters are usually better on bbold
\def\mathbbnum{\mathbbold}    % only bbold has all digits

% To compare bbm and bbold:
% (find-angg ".emacs" "find-testfont")
% (find-testfont "\\T{bbm10}\\T{bbold10}")
% (eedn4a "$\\mathbb{ABCDEINRZ}\\mathbblow{abcdeinrz}\\mathbbnum{0123456789}$")


%        _             _         
%   __ _| |_   _ _ __ | |__  ___ 
%  / _` | | | | | '_ \| '_ \/ __|
% | (_| | | |_| | |_) | | | \__ \
%  \__, |_|\__, | .__/|_| |_|___/
%  |___/   |___/|_|              
%
% «glyphs»  (to ".glyphs")
% (find-eev "eev-compose.el")
\catcode`¬=13 \def¬{\neg}
\catcode`×=13 \def×{\times}
\catcode`·=13 \def·{\cdot}
\catcode`*=13 \def*{\ensuremath{\bullet}}
\catcode`=13 \def{\llbracket}
\catcode`=13 \def{\rrbracket}

% ÞåÆØðÛÏ
% §®∧∨⊃ýÎñ¨Ý¢ÌþÅ¿‚©³
% Ñ¥¤¸î­£¦¯ËÐ
% (find-eev "eev-math-glyphs.el")
% (find-lsrcfile "stmaryrd/stmaryrd.sty")
%
\catcode`Þ=13 \defÞ{\Theta}
\catcode`å=13 \defå{\Pi}
\catcode`Æ=13 \defÆ{\Sigma}
\catcode`Ø=13 \defØ{\Omega}

\catcode`=13 \def{\delta}
\catcode`=13 \def{\varepsilon}
\catcode`=13 \def{\theta}
\catcode`ð=13 \defð{\lambda}
\catcode`Û=13 \defÛ{\nu}
\catcode`=13 \def{\pi}
\catcode`=13 \def{\rho}
\catcode`=13 \def{\sigma}
\catcode`=13 \def{\tau}
\catcode`Ï=13 \defÏ{\omega}

\catcode`§=13 \def§{\top}
\catcode`®=13 \def®{\bot}
\catcode`∧=13 \def∧{\land}
\catcode`∨=13 \def∨{\lor}
\catcode`⊃=13 \def⊃{\limp}
\catcode`ý=13 \defý{\forall}
\catcode`Î=13 \defÎ{\exists}
\catcode`ñ=13 \defñ{\Box}
\catcode`¨=13 \def¨{{:}}
\catcode`Ý=13 \defÝ{\in}
\catcode`¢=13 \def¢{\circ}

\catcode`Ì=13 \defÌ{\cap}
\catcode`þ=13 \defþ{\cup}
\catcode`Å=13 \defÅ{\int}
\catcode`¿=13 \def¿{^\perp}
\catcode`‚=13 \def‚{\infty}
\catcode`©=13 \def©{\ge}
\catcode`³=13 \def³{^{-1}}

\catcode`=13 \def{\sqcap}
\catcode`÷=13 \def÷{\sqcup}
\catcode`Ñ=13 \defÑ{\bindnasrepma}
\catcode`¤=13 \def¤{\otimes}
\catcode`¥=13 \def¥{\oplus}
\catcode`¸=13 \def¸{\pi}

\catcode`î=13 \defî{\natural}
\catcode`­=13 \def­{\underline}
\catcode`£=13 \def£{\vec}

\catcode`¦=13 \def¦{\mathbf}
\catcode`¯=13 \def¯{\mathrm}
\catcode`Ë=13 \defË{\text}
\catcode`Ð=13 \defÐ{\mathsf}

% \catcode`º=13 \defº{${}^\underline{\mathrm{o}}$}
% \def\sto{\Rrightarrow}          % syntactic "to"



%  _   _       _                    
% | |_| |_ ___| |__   __ _ _ __ ___ 
% | __| __/ __| '_ \ / _` | '__/ __|
% | |_| || (__| | | | (_| | |  \__ \
%  \__|\__\___|_| |_|\__,_|_|  |___/
%                                   
% Use this macro to produce the \def_{\ttchar...} lines (below) from
% catcode/def lines (above):
% (setq last-kbd-macro (kbd "13*<delete> SPC 7*<right> \\ ttchar { $ C-e <left> $ } C-a <down>"))
%
% «ttchars»  (to ".ttchars")
% (find-es "tex" "leavevmode")
%\def\ttchar#1{\setbox0=\hbox{\texttt{a}}\hbox to \wd0{\hss#1\hss}}
\def\ttchar#1{\setbox0=\hbox{\texttt{a}}\leavevmode\hbox to \wd0{\hss#1\hss}}
\def\basicttchars{
  \def¬{\ttchar{$\neg$}}
  \def·{\ttchar{$\cdot$}}
  \def×{\ttchar{$\times$}}
  \def*{\ttchar{$\bullet$}}
  \def«{\ttchar{$\langle\!\langle$}}
  \def»{\ttchar{$\rangle\!\rangle$}}
  \def{\ttchar{$\llbracket$}}
  \def{\ttchar{$\rrbracket$}}
  \defÞ{\ttchar{$\Theta$}}
  \defå{\ttchar{$\Pi$}}
  \defÆ{\ttchar{$\Sigma$}}
  \defØ{\ttchar{$\Omega$}}
  \def{\ttchar{$\delta$}}
  \def{\ttchar{$\varepsilon$}}
  \def{\ttchar{$\theta$}}
  \defð{\ttchar{$\lambda$}}
  \defÛ{\ttchar{$\nu$}}
  \def{\ttchar{$\pi$}}
  \def{\ttchar{$\rho$}}
  \def{\ttchar{$\sigma$}}
  \def{\ttchar{$\tau$}}
  \defÏ{\ttchar{$\omega$}}
  \def§{\ttchar{$\top$}}
  \def®{\ttchar{$\bot$}}
  \def∧{\ttchar{$\land$}}
  \def∨{\ttchar{$\lor$}}
  \def⊃{\ttchar{$\limp$}}
  \defý{\ttchar{$\forall$}}
  \defÎ{\ttchar{$\exists$}}
  \defñ{\ttchar{$\Box$}}
  \def¨{\ttchar{${:}$}}
  \defÝ{\ttchar{$\in$}}
  \def¢{\ttchar{$\circ$}}
  \defÌ{\ttchar{$\cap$}}
  \defþ{\ttchar{$\cup$}}
  \defÅ{\ttchar{$\int$}}
  \def¿{\ttchar{$^\perp$}}
  \def‚{\ttchar{$\infty$}}
  \def©{\ttchar{$\ge$}}
  \def³{\ttchar{${}^{\text{-\!1}}$}}
  \def{\ttchar{$\sqcap$}}
  \def÷{\ttchar{$\sqcup$}}
  \defÑ{\ttchar{$\bindnasrepma$}}
  \def¤{\ttchar{$\otimes$}}
  \def¥{\ttchar{$\oplus$}}
  \def¸{\ttchar{$\pi$}}
  \defî{\ttchar{$\natural$}}
  % \catcode`­=13 \def­{\underline}
  % \catcode`£=13 \def£{\vec}
  % \catcode`¦=13 \def¦{\mathbf}
  % \catcode`¯=13 \def¯{\mathrm}
  % \catcode`Ë=13 \defË{\text}
  % \catcode`Ð=13 \defÐ{\mathsf}
  % For Coq, 2009oct23:
  \def{\ttchar{$\langle\!\langle$}}
  \def{\ttchar{$\rangle\!\rangle$}}
  }

\def\ttchars{\basicttchars}
\def\myttchars{\basicttchars}




%                                   
%   __ _ _ __ _ __ _____      _____ 
%  / _` | '__| '__/ _ \ \ /\ / / __|
% | (_| | |  | | | (_) \ V  V /\__ \
%  \__,_|_|  |_|  \___/ \_/\_/ |___/
%                                   
% «arrows»  (to ".arrows")
% (find-symbolspage 41)

\def\ito{\hookrightarrow}
\def\isoto{\underset{iso}{\to}}
\def\epito{{\twoheadrightarrow}}
\def\bij{\leftrightarrow}
\def\toto{\rightrightarrows}
\def\functo{\Rightarrow}
\def\ton#1{\overset{#1}{\to}}
\def\xton#1{\xrightarrow{#1}}
\def\iton#1{\overset{#1}{\ito}}
\def\otn#1{\overset{#1}{\ot}}
\def\TNto{\overset{.}{\to}}
\def\idto{\overset{id}{\to}}
\def\vaipra{\quad\Longrightarrow\quad}
\def\funto{\Rightarrow}
\def\funton#1{\overset{#1}\Rightarrow}
\def\tnto{\ton{\bullet}}
%\def\iff{\Leftrightarrow}
\def\Bij{\Leftrightarrow}
\def\funot{\Leftarrow}
\def\dnto{\downarrow}
\def\upto{\uparrow}
\def\dnfunto{\Downarrow}
\def\upfunto{\Uparrow}
\def\monicto{\rightarrowtail}
\def\monicot{\leftarrowtail}
\def\ot{\leftarrow}
\def\squigto{\rightsquigarrow}
\def\squigbij{\leftrightsquigarrow}
\def\sqto{\rightsquigarrow}
\def\sqbij{\leftrightsquigarrow}
\def\vbij{\updownarrow}
\def\lrto{\leftrightarrows}

\def\mto{{\mapsto}}
\def\mton#1{\overset{#1}{\mto}}
\def\widemtos{\def\mto{\mapsto}}
\def\thinmtos{\def\mto{{\mapsto}}}

\def\lmto{\mapsto}
\def\tnton#1{\underset{#1}{\overset{\bullet}{\to}}}

\def\mapsot{\leftarrow\mapsfromchar}
\def\mot{{\mapsot}}
\def\iot{\hookleftarrow}
\def\dashto{\dashrightarrow}
\def\dashot{\dashleftarrow}
\def\mdashto{\mapstochar\dashrightarrow}
\def\mdashot{\dashleftarrow\mapsfromchar}




%  _ _                 
% | (_)_ __ ___  _ __  
% | | | '_ ` _ \| '_ \ 
% | | | | | | | | |_) |
% |_|_|_| |_| |_| .__/ 
%               |_|    
%
% «limp»  (to ".limp")
% Logical implication (a thin, long, vaguely arrow-like, \supset char)
% Note that this "symbol" does not change size in \scriptstyle...
% (find-es "tex" "thin_supset")
% (find-lsrcfile "amslatex/math/amsopn.dtx" "DeclareMathOperator")
% (find-lsrcfile "amslatex/math/amsopn.dtx" "DeclareRobustCommand{\\qopname}")
\def\limpchar{{%
  \setlength{\unitlength}{1pt}%
  \begin{picture}(6,4)
    \put(0,2){\oval(12,4)[r]}
  \end{picture}%
  }}
% \def\limp{\qopname\relax o{\limpchar}}
\def\limp{\mathrel{\limpchar}}
%\def\limp{\mathbin{\limpchar}}


%        _                         _           _ 
%  _ __ | |__  ___ _   _ _ __ ___ | |__   ___ | |
% | '_ \| '_ \/ __| | | | '_ ` _ \| '_ \ / _ \| |
% | |_) | |_) \__ \ |_| | | | | | | |_) | (_) | |
% | .__/|_.__/|___/\__, |_| |_| |_|_.__/ \___/|_|
% |_|              |___/                         
%
% «pbsymbol»  (to ".pbsymbol")
\def\pbsymbol#1{%
  \begin{picture}(#1,#1)
    \put(0,0){\line(1,0){#1}}
    \put(#1,#1){\line(0,-1){#1}}
  \end{picture}}


%           _              _       _   
%   ___  __| |_ ____  ____| |_ __ | |_ 
%  / _ \/ _` | '__\ \/ / _` | '_ \| __|
% |  __/ (_| | |   >  < (_| | | | | |_ 
%  \___|\__,_|_|  /_/\_\__,_|_| |_|\__|
%                                      
\ifx\NOEDRXDNT\UNDEFINED
\input edrxdnt.tex              % (find-dn4ex "edrxdnt.tex")
\fi
% \input edrxdednat.tex         % (find-dn4ex "edrxdednat.tex")
                                % (find-dn4 "experimental.lua")

% «standardabbrevs»  (to ".standardabbrevs")
% «experimental.lua»  (to ".experimental.lua")
%L standardabbrevs()            -- (find-dn4 "dednat41.lua")
%L require "experimental"       -- (find-dn4 "experimental.lua")

\def\ee{\varepsilon}
\def\cded #1{\begin{matrix}\ded {#1}\end{matrix}}
\def\cdiag#1{\begin{matrix}\diag{#1}\end{matrix}}

\def\fcded#1{\fbox{$\cded{#1}$}}
\def\fbded#1{\fbox{$\ded{#1}$}}

% Todo: compare using "matrix" and "vcenter" for cded and cdiag... See:
% http://www.phil.cam.ac.uk/teaching_staff/Smith/LaTeX/ndexamples/proofsty3.html
% I have not tested the \vcenter method much - but here are the definitions,
% if they work they will be renamed \cded and \cdiag and will replace the
% current ones.
\def\vcded #1{\vcenter{\leavevmode$\ded {#1}$}}
\def\vcdiag#1{\vcenter{\leavevmode$\diag{#1}$}}

% (find-dn4file "diagxy.tex" "\\newdir")
% \newdir^{ (}{{ }*!/-.5em/@^{(}}%
% \newdir^{) }{{ }*!/.5em/@^{)}}%




%           _              _       __     
%   ___  __| |_ ____  ____| | ___ / _|___ 
%  / _ \/ _` | '__\ \/ / _` |/ _ \ |_/ __|
% |  __/ (_| | |   >  < (_| |  __/  _\__ \
%  \___|\__,_|_|  /_/\_\__,_|\___|_| |___/
%                                         
\input edrxdefs.tex             % (find-dn4ex "edrxdefs.tex")
\def\co{\mathrm{co}}
\def\bsk{\bigskip}
\def\msk{\medskip}
\def\ssk{\smallskip}

% "set of ...", and
% "set of ... such that ..."
\def\sof#1{\{\,#1\,\}}
\def\sst#1#2{\{\,#1\;|\;#2\,\}}
\def\ssst#1#2{\{\,#1\;||\;#2\,\}}

\def\Opens{\mathcal{O}}
\def\compl{{\text{\,compl}}}
\def\interior{{\text{int}}}
\def\sh{\sharp}
\def\fl{\flat}

% (find-angg ".emacs.papers" "stmaryrd")
\def\Dbr#1{\left\llbracket#1\right\rrbracket}
\def\dbr#1{\llbracket#1\rrbracket}
\def\Dbrnat#1{\Dbr{#1}^\natural}
\def\dbrnat#1{\dbr{#1}^\natural}


% Extra:
% (find-dn4ex "edrxslides.tex")
\def\myslide#1#2{{\bf #1}}
\def\tocline#1#2{\par #1 \dotfill #2}
% This is useful for slides:
% \setlength{\parindent}{0em}


%      _ _     _           
%  ___| (_) __| | ___  ___ 
% / __| | |/ _` |/ _ \/ __|
% \__ \ | | (_| |  __/\__ \
% |___/_|_|\__,_|\___||___/
%                          
% «slides»  (to ".slides")
% (find-es "tex" "mytoc")
% (find-LATEX "2005oct20-seminar.tex")
% (find-dn4ex "edrxslides.tex")
\makeatletter
\def\mylosopen#1{\newwrite\tf@mylos\openout\tf@mylos=#1}
\makeatother
\def\addtolos#1{\addtocontents{mylos}{\protect\tocline{#1} {\thepage}}}
\def\myslidelos#1#2{
    {\bf #1}\label{#2}%
    \addtolos{#1}%
    % \addtocontents{mylos}{\protect\tocline {#1} {\thepage}}%
  }
\def\makelos#1{\mylosopen{#1}\def\myslide{\myslidelos}}
%\def\ignore#1{}
%\def\nolos{\let\addtolos=\ignore}
%
% Usage:
% % \mylosopen{\jobname.los}
% \mylosopen{tmp.los}
% \def\myslide#1#2{\myslidelos{#1}{#2}}
% %
% {\bf Index of the slides}
% \medskip
% We insert the list of slides here by hand...
% (find-fline "tmp.los")
% (insert-file "tmp.los")
% ...



%            _                
%   ___ ___ | | ___  _ __ ___ 
%  / __/ _ \| |/ _ \| '__/ __|
% | (_| (_) | | (_) | |  \__ \
%  \___\___/|_|\___/|_|  |___/
%                             
% «colors»  (to ".colors")
% (find-es "tex" "bicolorhbox")
\def\blue  #1{{\color{blue}#1}}
\def\red   #1{{\color{red}#1}}
\def\orange#1{{\color{orange}#1}}
\def\yellow#1{{\color{yellow}#1}}
\def\smashedvrule#1#2#3{\vrule width#1 height#2 depth#3 \kern-#1}
\def\bicolorhbox#1{{%
  \setbox0\hbox{#1}%
  \yellow{\smashedvrule{\wd0}{\ht0}{0pt}}%
  \orange{\smashedvrule{\wd0}{0pt}{\dp0}}%
  \box0%
  }}

% (find-es "tex" "color")
% (find-lsrcfile "graphics/color.dtx" "\\definecolor{red}")
\def\edrxcolors{
  \definecolor{orange}{rgb}{1,.64,0}
  }
% Usage:
% \edrxcolors
% \def\bhbox{\bicolorhbox}
% Foobar\bhbox{plic}ploc



%      _                 
%   __| | __ _  __ _ ___ 
%  / _` |/ _` |/ _` / __|
% | (_| | (_| | (_| \__ \
%  \__,_|\__,_|\__, |___/
%              |___/     
%
% «dags»  (to ".dags")
% (find-es "tex" "dags")
% Some definitions (probably temporary) for
% typesetting the DAGs for (pre)sheaves.
%
% 2011feb13:
\newdimen\mypictureunit
\setbox0=\hbox{\rm0}
\mypictureunit=.085\wd0
\mypictureunit=.084\wd0
%
\def\dagput(#1,#2)#3{\put(#1,#2){\hbox to 0pt{\hss\scriptsize#3\hss}}}
\def\dagpicture(#1,#2)(#3,#4)[#5]#6{{%
  %\unitlength=.1ex%
  %\setbox0\hbox{x}\unitlength=.1\wd0%
  %\setbox0\hbox{x}\unitlength=.095\wd0%
  %\setbox0\hbox{x}\unitlength=.090\wd0%
  \unitlength=\mypictureunit
  \lower #5\unitlength\hbox{%
    \begin{picture}(#1,#2)(#3,#4)
      #6
    \end{picture}%
  }}}
\def\dagHouse#1#2#3#4#5{%
  \dagpicture(20,36)(-10,-24)[12]{
    \dagput( 0,  0){$#1$}    % top
    \dagput(-6,-12){$#2$}    % second line, left
    \dagput( 6,-12){$#3$}    % second line, right
    \dagput(-6,-24){$#4$}    % third line, left
    \dagput( 6,-24){$#5$}    % third line, right
  }}
\def\dagVee#1#2#3{%
  \dagpicture(20,24)(-10,-12)[0]{
    \dagput(-6,  0){$#1$}    % top left
    \dagput( 6,  0){$#2$}    % top right
    \dagput( 0,-12){$#3$}    % bottom
  }}
\def\dagPyr#1#2#3{%
  \dagpicture(20,24)(-10,-12)[0]{
    \dagput( 0,  0){$#1$}    % top
    \dagput(-6,-12){$#2$}    % bottom left
    \dagput( 6,-12){$#3$}    % bottom right
  }}
\def\dagKite#1#2#3#4#5{%
  \dagpicture(20,48)(-10,-36)[16]{
    \dagput( 0,  0){$#1$}    % top
    \dagput(-6,-12){$#2$}    % second line, left
    \dagput( 6,-12){$#3$}    % second line, right
    \dagput( 0,-24){$#4$}    % third line
    \dagput( 0,-36){$#5$}    % bottom
  }}
\def\dagSqr#1#2#3#4{%
  \dagpicture(20,24)(-10,-12)[0]{
    \dagput(-6,  0){$#1$}    % top left
    \dagput( 6,  0){$#2$}    % top right
    \dagput(-6,-12){$#3$}    % bottom left
    \dagput( 6,-12){$#4$}    % bottom right
  }}
\def\dagTwo#1#2{%
  \dagpicture(8,24)(-4,-12)[0]{
    \dagput( 0,  0){$#1$}    % top
    \dagput( 0,-12){$#2$}    % bottom
  }}
\def\dagThree#1#2#3{%
  \dagpicture(8,36)(-4,-24)[6]{
    \dagput( 0,  0){$#1$}    % top
    \dagput( 0,-12){$#2$}    % middle
    \dagput( 0,-24){$#3$}    % bottom
  }}
\def\dagTee#1#2#3#4{%
  \dagpicture(32,24)(-16,-12)[0]{
    \dagput(-12,  0){$#1$}    % top left
    \dagput(  0,  0){$#2$}    % top middle
    \dagput( 12,  0){$#3$}    % top right
    \dagput(  0,-12){$#4$}    % bottom
  }}
\def\dagSeven#1#2#3#4#5#6#7{%
  \dagpicture(44,36)(-22,-24)[6]{
    \dagput(  0,  0){$#1$}    % top
    \dagput( -9,-12){$#2$}    % middle left
    \dagput(  9,-12){$#3$}    % middle right
    \dagput(-18,-24){$#4$}    % bottom left
    \dagput( -6,-24){$#5$}    % bottom middle left
    \dagput(  6,-24){$#6$}    % bottom middle right
    \dagput( 18,-24){$#7$}    % bottom right
  }}
% Reason for the name "Reh":
% (find-einsert '(638 1360))
%  638 is an "r with fishhook" (IPA),
% 1360 is the "(capital) Armenian Reh".
\def\dagReh#1#2#3#4{\dagHouse{#1}{#2}{#3}{#4}{}}


% For my notes on sheaves and presheaves
\def\dbul{{\bullet\bullet}}      % supersaturated cover
\def\bulm{{\bullet-}}            % minimal saturated cover
\def\bul{\bullet}                % saturated cover
\def\bol{\circ}                  % cover
\def\dtri{{\blacktriangle\blacktriangle}}  % supersaturated subcover
\def\tri{\blacktriangle}                   % saturated subcover
\def\tro{\vartriangle}                     % subcover

\def\calU{{\mathcal{U}}}
\def\calV{{\mathcal{V}}}

% «savebox»  (to ".savebox")
% These are mainly for nested diagrams
% (find-LATEX "2008graphs.tex" "ess-and-star")
% (find-LATEX "2008graphs.tex" "minimal-dag")
% (find-LATEX "2008graphs.tex" "minimal-dag" "A .tex= \\usebox{\\myboxa}")
% (find-kopkadaly4page (+ 12  87) "\\newsavebox{\\boxname}")
% (find-kopkadaly4text            "\\newsavebox{\\boxname}")
\newsavebox{\myboxa}
\newsavebox{\myboxb}
\newsavebox{\myboxc}
\newsavebox{\myboxd}
\newsavebox{\myboxe}
\newsavebox{\myboxf}
\newsavebox{\myboxg}
\newsavebox{\myboxh}

% «diagprep»  (to ".diagprep")
% (find-dn4ex "edrxdnt.tex" "defdiag")
% Experimental, 2010mar25
%\def\defdiagprep#1#2{\expandafter\def\csname diagprep-#1\endcsname{#2}}
%\def\ifdiagprepundefined#1{\expandafter\ifx\csname diagprep-#1\endcsname\relax}
%\def\diagprep#1{\ifdiagprepundefined{#1}
%    \errmessage{UNDEFINED DIAGPREP: #1}
%  \else
%    \csname diagprep-#1\endcsname
%  \fi
%}
%\def\diagwithboxes#1{\diagprep{#1}\diag{#1}}

% These are mainly for putting multi-line text in nodes in diagrams
\def\textc#1{\begin{tabular}{c}#1\end{tabular}}
\def\textl#1{\begin{tabular}{l}#1\end{tabular}}

%:*\s[*\dncdisplay[*
\def\dncdisplay[#1|#2]{\begin{pmatrix} #2 \\ #1 \end{pmatrix}}

\def\ov{\overline}

% «crossover»  (to ".crossover")
% (find-es "tex" "crossover")
\def\crossover#1#2#3{%
  \setbox0\hbox{#1}%
  \copy0%
  \hskip -\wd0%
  \setbox1\hbox{\vrule height#2 width\wd0 depth0pt}%
  \raise#3\copy1\relax}
\def\mycrossover#1{\crossover{#1}{0.25pt}{1.75pt}}


\def\emp{\emptyset}

\def\sm#1{\begin{smallmatrix}#1\end{smallmatrix}}
\def\psm#1{\left(\begin{smallmatrix}#1\end{smallmatrix}\right)}






% Local Variables:
% coding:               raw-text-unix
% ee-delimiter-percent: "\n%*\n"
% ee-anchor-format:     "«%s»"
% End: