|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% (find-LATEX "2019xysyntax.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2019xysyntax.tex" :end))
% (defun C () (interactive) (find-LATEXSH "lualatex 2019xysyntax.tex" "Success!!!"))
% (defun D () (interactive) (find-pdf-page "~/LATEX/2019xysyntax.pdf"))
% (defun d () (interactive) (find-pdftools-page "~/LATEX/2019xysyntax.pdf"))
% (defun e () (interactive) (find-LATEX "2019xysyntax.tex"))
% (defun u () (interactive) (find-latex-upload-links "2019xysyntax"))
% (defun v () (interactive) (find-2a '(e) '(d)))
% (defun cv () (interactive) (C) (ee-kill-this-buffer) (v) (g))
% (defun d0 () (interactive) (find-ebuffer "2019xysyntax.pdf"))
% (code-eec-LATEX "2019xysyntax")
% (find-pdf-page "~/LATEX/2019xysyntax.pdf")
% (find-sh0 "cp -v ~/LATEX/2019xysyntax.pdf /tmp/")
% (find-sh0 "cp -v ~/LATEX/2019xysyntax.pdf /tmp/pen/")
% file:///home/edrx/LATEX/2019xysyntax.pdf
% file:///tmp/2019xysyntax.pdf
% file:///tmp/pen/2019xysyntax.pdf
% http://angg.twu.net/LATEX/2019xysyntax.pdf
% (find-LATEX "2019.mk")
% (find-lualatex-links "2019xysyntax")
\documentclass[oneside]{article}
\usepackage[colorlinks,urlcolor=violet]{hyperref} % (find-es "tex" "hyperref")
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{xcolor} % (find-es "tex" "xcolor")
%
% (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")
%
\begin{document}
\catcode`\^^J=10
\directlua{dofile "dednat6load.lua"} % (find-LATEX "dednat6load.lua")
% \co: a low-level way to typeset code; a poor man's "\verb"
\def\co#1{{%
\def\\{\char92}%
\def\^{\char94}%
\tt#1%
}}
\def\qco#1{`\co{#1}'}
\def\qqco#1{``\co{#1}''}
\def\ang#1{\ensuremath{\langle\text{#1}\rangle}}
% (find-dn6 "treetex.lua" "unabbrev_tatsuta")
%L unabbrev_syntree = function (str)
%L local body, star = str:match"^<(.*)>(%*?)$"
%L if body then
%L body = body:gsub("_", " ")
%L if #star > 0 then star = "^*" end
%L return format("\\langle\\text{%s}\\rangle%s", body, star)
%L end
%L return "\\text{\\co{"..str:gsub("[\\{}_]", "\\%1").."}}"
%L end
%L unabbrev_tatsuta = unabbrev_syntree
%L -- To deactivate the hack do:
%L -- unabbrev_tatsuta = unabbrev
\title{Notes on the \Xy-pic syntax}
\author{Eduardo Ochs}
\maketitle
\section{``Mixing \Xy-pic code''}
% (find-es "xypic" "mixing-xypic-code")
Section ``5.6. Mixing XY-pic code'' of \co{xypic/barrdoc.pdf} has this
chunk of \Xy-pic code intermixed with diagxy code (with another formatting):
\begin{verbatim}
\POS(1500,1000)*+!!<0ex,.75ex>{T_{n-1}}
\ar@{-}|!{(1000,500);(1500,500)}\hole(1167,334)
\POS(1167,334)
\ar|!{(1000,500);(1000,0)}\hole_<>(.6){h_{n-1}}
(500,0)*+!!<0ex,.75ex>{S_n}
\end{verbatim}
\subsection{First line}
Its first line is:
\begin{verbatim}
\POS(1500,1000)*+!!<0ex,.75ex>{T_{n-1}}
\end{verbatim}
Its parse tree is:
%:
%: 1500 1000
%: -------- -------- -------
%: ( <factor> , <factor> ) + <empty>
%: ----------------------- -------- -------
%: <vector> <add_op> <size>
%: -------- ----------------
%: <coord> <modifier> <object>
%: ------- --------------------------------------
%: <pos> * <object>
%: ----------------
%: <coord>
%: -------
%: \POS <pos>
%: ------------
%: <command>
%:
%: ^command
%:
%:
%: 0ex .75ex T_{n-1}
%: ------- ------- -------
%: < <dimen> , <dimen> > { <text> }
%: --------------------- -------------
%: ! <vector> <objectbox>
%: --------------- ------------
%: ! <modifier> <object>
%: ---------- ------------------------------
%: <modifier> <object>
%: ------------------------
%: <object>
%:
%: ^object1
%:
\pu
$$\ded{command}$$
$$\ded{object1}$$
\subsection{Second line}
Its second line is:
\begin{verbatim}
\ar@{-}|!{(1000,500);(1500,500)}
\end{verbatim}
Let's start by two subexpressions:
%:
%: -
%: ----------
%: <connchar>
%: ------- ---------- ----------- ----------
%: <empty> <tipchar>* <connchar>* <tipchar>*
%: --------- ---------- ----------- -----
%: @ <variant> { <tip> <conn> <tip> }
%: --------------------------------------------------
%: <form>
%:
%: ^form1
%:
%:
%: 1000 500
%: -------- --------
%: ( <factor> , <factor> ) 1500 500
%: --------------------------- -------- --------
%: <vector> ( <factor> , <factor> )
%: -------- ---------------------------
%: <coord> <vector>
%: ------- -----------------------
%: <pos> ; <coord>
%: -----------------
%: <pos>
%:
%: ^pos1
%:
%: -------
%: (1000,500);(1500,500) <empty>
%: ===================== -------
%: ! { <pos> } <slide> ????
%: --------------------------------------- ---- ------- -------
%: <place> <cs> <empty> <empty>
%: -------- ---- ------- --------
%: | <anchor> <it> <alias> <labels>
%: --------------------------------------------------------------
%: <labels>
%:
%: ^labels1
%:
\pu
$$\ded{form1}$$
$$\ded{pos1}$$
$$\ded{labels1}$$
I don't know what is a \ang{cs}, I'm guessing that it can expand to
\ang{empty}.
Then, if a \ang{pos} can expand to \ang{empty}, then:
%:
%: ????
%: ----- -------
%: @{-} <pos> <empty> |!{(1000,500);(1500,500)}
%: ======= ---------- ------- =========================
%: <form> <path-pos> <slide> <labels>
%: ------- ------------------------------
%: <form>* <segment>
%: ------- ---------
%: \ar <arrow> <path>
%: ---------------------
%: <\TeX{}_commands>
%: -----------------
%: <command>
%:
%: ^command2
%:
\pu
$$\ded{command2}$$
%-- Revert:
%L unabbrev_tatsuta = unabbrev
% (find-xyreferpage 8 "Figure 1: hposiitions.")
% (find-xyrefertext 8 "Figure 1: hposiitions.")
% (find-xyreferpage 12 "Figure 3: hobjectis")
% (find-xyrefertext 12 "Figure 3: hobjectis")
% (find-xyreferpage 16 "Figure 4: hdecoriations")
% (find-xyrefertext 16 "Figure 4: hdecoriations")
% (find-xyreferpage 17 "Figure 5: Kernel library hdiriectionals")
% (find-xyrefertext 17 "Figure 5: Kernel library hdiriectionals")
% (find-xyreferpage 19 "Figure 6: hciricles")
% (find-xyrefertext 19 "Figure 6: hciricles")
% (find-xyreferpage 22 "Figure 7: Syntax for curves")
% (find-xyrefertext 22 "Figure 7: Syntax for curves")
% (find-xyreferpage 39 "Figure 14: hpathis")
% (find-xyrefertext 39 "Figure 14: hpathis")
% (find-xyreferpage 42 "Figure 15: harrowis")
% (find-xyrefertext 42 "Figure 15: harrowis")
\newpage
\section{Hyperlinks to the syntax tables in xyrefer.pdf}
A sexp like \co{(find-xyreferpage 8 "<pos>")} opens \co{xyrefer.pdf}
at page 8 using xpdf. See the section about ``elisp hyperlinks'' here
for the general idea:
\url{http://angg.twu.net/eev-intros/find-eev-quick-intro.html}
The \co{"<pos>"} is ignored.
I use this as an index for the \Xy-pic syntax.
{\scriptsize
\begin{verbatim}
;; (find-xyreferpage 8 "<pos>")
;; (find-xyreferpage 8 "<coord>")
;; (find-xyreferpage 8 "<vector>")
;; (find-xyreferpage 8 "<corner>")
;; (find-xyreferpage 8 "<place>")
;; (find-xyreferpage 8 "<slide>")
;; (find-xyreferpage 8 "Figure 1: <pos>itions.")
;;
;; (find-xyreferpage 12 "<object>")
;; (find-xyreferpage 12 "<objectbox>")
;; (find-xyreferpage 12 "<modifier>")
;; (find-xyreferpage 12 "<add op>")
;; (find-xyreferpage 12 "<size>")
;; (find-xyreferpage 12 "<direction>")
;; (find-xyreferpage 12 "<diag>")
;; (find-xyreferpage 12 "<composite>")
;; (find-xyreferpage 12 "Figure 3: <object>s.")
;;
;; (find-xyreferpage 16 "<decor>")
;; (find-xyreferpage 16 "<command>")
;; (find-xyreferpage 16 "Figure 4: <decor>ations.")
;;
;; (find-xyreferpage 19 "\\cir <radius> { <cir> }")
;; (find-xyreferpage 19 "<radius>")
;; (find-xyreferpage 19 "<cir>")
;; (find-xyreferpage 19 "<orient>")
;; (find-xyreferpage 19 "Figure 6: <cir>cles.")
;;
;; (find-xyreferpage 22 "\\curve <modifier> { <curve-object> <poslist> }")
;; (find-xyreferpage 22 "<modifier>")
;; (find-xyreferpage 22 "<curve-option>")
;; (find-xyreferpage 22 "<curve-object>")
;; (find-xyreferpage 22 "<poslist>")
;; (find-xyreferpage 22 "<delim>")
;; (find-xyreferpage 22 "Figure 7: Syntax for curves.")
;;
;; (find-xyreferpage 39 "\PATH <path>")
;; (find-xyreferpage 39 "\afterPATH { <decor> } <path>")
;; (find-xyreferpage 39 "<path>")
;; (find-xyreferpage 39 "<turn>")
;; (find-xyreferpage 39 "<turnradius>")
;; (find-xyreferpage 39 "<segment>")
;; (find-xyreferpage 39 "<slide>")
;; (find-xyreferpage 39 "<labels>")
;; (find-xyreferpage 39 "<anchor>")
;; (find-xyreferpage 39 "<it>")
;; (find-xyreferpage 39 "<alias>")
;; (find-xyreferpage 39 "Figure 14: <path>s")
;;
;; (find-xyreferpage 42 "\\ar <arrow> <path>")
;; (find-xyreferpage 42 "<arrow>")
;; (find-xyreferpage 42 "<form>")
;; (find-xyreferpage 42 "<variant>")
;; (find-xyreferpage 42 "<tip>")
;; (find-xyreferpage 42 "<tipchar>")
;; (find-xyreferpage 42 "<conn>")
;; (find-xyreferpage 42 "<connchar>")
;; (find-xyreferpage 42 "Figure 15: <arrow>s.")
\end{verbatim}
}
\GenericWarning{Success:}{Success!!!} % Used by `M-x cv'
\end{document}
$\bfig
\POS(1500,1000)*+
!!<0ex,.75ex>{T_{n-1}}
\ar@{-}|!{(1000,500);(1500,500)}\hole(1167,334)
\POS(1167,334)\ar|!{(1000,500);(1000,0)}\hole_<>(.6){h_{n-1}}
(500,0)*+!!<0ex,.75ex>{S_n}
\efig
$
% \POS(1500,1000)*+
% !!<0ex,.75ex>{T_{n-1}}
% \ar@{-}|!{(1000,500);(1500,500)}\hole(1167,334)
% \POS(1167,334)\ar|!{(1000,500);(1000,0)}\hole_<>(.6){h_{n-1}}
% (500,0)*+!!<0ex,.75ex>{S_n}
% Local Variables:
% coding: utf-8-unix
% End: