Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
% (find-LATEX "2020ats.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2020ats.tex" :end))
% (defun C () (interactive) (find-LATEXsh "lualatex 2020ats.tex" "Success!!!"))
% (defun D () (interactive) (find-pdf-page      "~/LATEX/2020ats.pdf"))
% (defun d () (interactive) (find-pdftools-page "~/LATEX/2020ats.pdf"))
% (defun e () (interactive) (find-LATEX "2020ats.tex"))
% (defun u () (interactive) (find-latex-upload-links "2020ats"))
% (defun v () (interactive) (find-2a '(e) '(d)))
% (defun cv () (interactive) (C) (ee-kill-this-buffer) (v) (g))
% (find-pdf-page   "~/LATEX/2020ats.pdf")
% (find-sh0 "cp -v  ~/LATEX/2020ats.pdf /tmp/")
% (find-sh0 "cp -v  ~/LATEX/2020ats.pdf /tmp/pen/")
%   file:///home/edrx/LATEX/2020ats.pdf
%               file:///tmp/2020ats.pdf
%           file:///tmp/pen/2020ats.pdf
% http://angg.twu.net/LATEX/2020ats.pdf
% http://angg.twu.net/LATEX/2020ats.tex
% http://angg.twu.net/LATEX/2020ats.tex.html
% (find-LATEX "2019.mk")

\documentclass[oneside,12pt,a5paper]{article}
\usepackage[colorlinks,citecolor=DarkRed,urlcolor=DarkRed]{hyperref} % (find-es "tex" "hyperref")
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pict2e}
\usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor")
%\usepackage{colorweb}                 % (find-es "tex" "colorweb")
%\usepackage{tikz}
%
% (find-dn6 "preamble6.lua" "preamble0")
\usepackage{proof}   % For derivation trees ("%:" lines)
\input diagxy        % For 2D diagrams ("%D" lines)
\xyoption{curve}     % For the ".curve=" feature in 2D diagrams
%
%\usepackage{edrx15}               % (find-LATEX "edrx15.sty")
%\input edrxaccents.tex            % (find-LATEX "edrxaccents.tex")
%\input edrxchars.tex              % (find-LATEX "edrxchars.tex")
%\input edrxheadfoot.tex           % (find-LATEX "edrxheadfoot.tex")
%\input edrxgac2.tex               % (find-LATEX "edrxgac2.tex")
%
%\usepackage[backend=biber,
%   style=alphabetic]{biblatex}            % (find-es "tex" "biber")
%\addbibresource{catsem-slides.bib}        % (find-LATEX "catsem-slides.bib")
%
% (find-es "tex" "geometry")
\begin{document}

\catcode`\^^J=10
\directlua{dofile "dednat6load.lua"}  % (find-LATEX "dednat6load.lua")

A demo of {\tt newnode:} and {\tt at:}

% (find-es "dednat" "at:")
%
%L Node = Class {
%L   type       = "Node",
%L   __tostring = function (node) return mytostring(node) end,
%L   __index    = {
%L     v    = function (node) return v(node.x,node.y) end,
%L     setv = function (node,v) node.x=v[1]; node.y=v[2]; return node end,
%L   },
%L }
%L storenode = function (node)
%L     node = Node(node)
%L     table.insert(nodes, node)
%L     node.noden = #nodes         -- nodes[node.noden] == node
%L     if node.tag then            -- was: "and not nodes[node.tag]"...
%L       nodes[node.tag] = node    -- nodes[node.tag] == node
%L     end
%L     return node
%L   end
%L 
%L tow = function (vv, ww, a, b)
%L     local diff = ww-vv
%L     local diffrot90 = v(diff[2], -diff[1])
%L     return vv + (a or 0.5)*diff + (b or 0)*diffrot90
%L   end
%L ats_to_vs = function (str)
%L     return (str:gsub("@(%w+)", "nodes[\"%1\"]:v()"))
%L   end
%L forths["newnode:"] = function ()
%L     local tag = getword()
%L     ds:push(storenode({tag=tag, TeX=phantomnode}))
%L   end
%L forths["at:"] = function ()
%L     local node = ds:pick(0)
%L     local vexpr = getword()
%L     node:setv(expr(ats_to_vs(vexpr)))
%L   end

%D diagram ??
%D 2Dx     100               +60
%D 2D  100 A0 -------------> A1
%D 2D      |    ----- B4 B5   |
%D 2D      |    \   B3\       |
%D 2D      |     \B2   v      |
%D 2D      v B0 B1 ---->      v
%D 2D  +40 A2 -------------> A3
%D 2D
%D (( A0 A1 ->
%D    A0 A2 ->
%D    A1 A3 ->
%D    A2 A3 ->
%D    A0 A3 -> .curve= _20pt
%D    A0 A3 -> .curve= ^20pt
%D    newnode: B0 at: tow(@A0,@A2,0.75,0.1)
%D    newnode: B5 at: tow(@A3,@A1,0.75,0.1)
%D    newnode: B1 at: @B0+v(15,0)
%D    newnode: B4 at: @B5-v(15,0)
%D    B0 B1 =>
%D    B4 B5 =>
%D    newnode: B2 at: tow(@A0,@A3)+v(-7,4)
%D    newnode: B3 at: tow(@A0,@A3)+v(7,-4)
%D    B2 B3 =>
%D ))
%D enddiagram
$$\pu
  \diag{??}
$$

%L phantomnode = "{\\color{red} O}"

%D diagram ??
%D 2Dx     100               +60
%D 2D  100 A0 -------------> A1
%D 2D      |    ----- B4 B5   |
%D 2D      |    \   B3\       |
%D 2D      |     \B2   v      |
%D 2D      v B0 B1 ---->      v
%D 2D  +40 A2 -------------> A3
%D 2D
%D (( A0 A1 ->
%D    A0 A2 ->
%D    A1 A3 ->
%D    A2 A3 ->
%D    A0 A3 -> .curve= _20pt
%D    A0 A3 -> .curve= ^20pt
%D    newnode: B0 at: tow(@A0,@A2,0.75,0.1)
%D    newnode: B5 at: tow(@A3,@A1,0.75,0.1)
%D    newnode: B1 at: @B0+v(15,0)
%D    newnode: B4 at: @B5-v(15,0)
%D    B0 B1 =>
%D    B4 B5 =>
%D    newnode: B2 at: tow(@A0,@A3)+v(-7,4)
%D    newnode: B3 at: tow(@A0,@A3)+v(7,-4)
%D    B2 B3 =>
%D ))
%D enddiagram
$$\pu
  \diag{??}
$$



\GenericWarning{Success:}{Success!!!}  % Used by `M-x cv'

\end{document}

%  __  __       _        
% |  \/  | __ _| | _____ 
% | |\/| |/ _` | |/ / _ \
% | |  | | (_| |   <  __/
% |_|  |_|\__,_|_|\_\___|
%                        
% <make>

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-LATEXfile "2019planar-has-1.mk")
make -f 2019.mk STEM=2020ats veryclean
make -f 2019.mk STEM=2020ats pdf

% Local Variables:
% coding: utf-8-unix
% ee-tla: "ats"
% End: