<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hello Eduardo,<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 3 Feb 2019, at 6:25 pm, Eduardo Ochs <<a href="mailto:eduardoochs@gmail.com" class="">eduardoochs@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div class="">Hi list,</div>
<div class=""><br class="">
</div>
<div class="">this idea is on the frontier between diagxy and XyPic, but I thought</div>
<div class="">that this would be the best place to discuss it.</div>
</div>
</div>
</div>
</blockquote>
<div><br class="">
</div>
<div>It seems you want to partially compile the diagxy coding</div>
<div>into the purely Xy-pic coding, on which it is based.</div>
<div><br class="">
</div>
<div>That’s a pretty tricky thing to do in full generality.</div>
<br class="">
<blockquote type="cite" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div class="">If we take a look at diagxy.tex, that in my machine is in this path,</div>
<div class=""><br class="">
</div>
<div class="">/usr/local/texlive/2018/texmf-dist/tex/generic/barr/diagxy.tex</div>
<div class=""><br class="">
</div>
<div class="">we see that the high-level macro "\morphism" can be called with some</div>
<div class="">of its arguments omitted; it calls "\morphismp", that calls</div>
<div class="">"\morphismpp", that calls "\morphismppp", that calls "\morphismppp",</div>
<div class="">that call "\domorphism", and "\domorphism" has lots of "if"s and lots</div>
<div class="">of calls to XyPic. The first of them is:</div>
<div class=""><br class="">
</div>
<div class="">  \POS(#1,#2)*+!!<0ex,\axis>{#7}\ar#4^-{#9} (\xend,\yend)*+!!<0ex,\axis>{#8}%</div>
<div class=""><br class="">
</div>
<div class="">If we replace it by</div>
<div class=""><br class="">
</div>
<div class="">  \XYPIC{\POS(#1,#2)*+!!<0ex,\Axis>{#7}\ar#4^-{#9} (\Xend,\Yend)*+!!<0ex,\Axis>{#8}}%</div>
</div>
</div>
</blockquote>
<div><br class="">
</div>
<div><br class="">
</div>
<br class="">
<blockquote type="cite" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">and do the same for all the other calls to XyPic, and define</div>
<div class=""><br class="">
</div>
<div class="">  \def\XYPIC#1{{%</div>
<div class="">    \def\POS       {POS }%</div>
<div class="">    \def\ar        {ar }%</div>
<div class="">    \def\labelstyle{labelstyle }%</div>
<div class="">    \def\beta      {beta }%</div>
<div class="">    \def\delta     {delta }%</div>
<div class="">    \def\phantom   {phantom }%</div>
<div class="">    \def\Axis{\the\axis}%</div>
<div class="">    \def\Xend{\the\xend}%</div>
<div class="">    \def\Yend{\the\yend}%</div>
<div class="">    \directlua{print("#1")}%</div>
<div class="">  }}</div>
<div class=""><br class="">
</div>
<div class="">then we get this on stdout:</div>
<div class=""><br class="">
</div>
<div class="">  POS (0,-675)*+!!<0ex,2.5pt>{X}ar @{->}@<2.5pt>@/^15pt/^-{f} (900,0)*+!!<0ex,2.5pt>{Y}</div>
<div class="">  POS (0,-675)*+!!<0ex,2.5pt>{X}ar @{->}_-{g} (900,0)*+!!<0ex,2.5pt>{Y}</div>
<div class="">  POS (900,0)*+!!<0ex,2.5pt>{Y}ar @{->}@<2.5pt>@/^15pt/^-{h} (1800,-675)*+!!<0ex,2.5pt>{Z}</div>
<div class="">  POS (900,0)*+!!<0ex,2.5pt>{Y}ar @{->}_-{i} (1800,-675)*+!!<0ex,2.5pt>{Z}</div>
<div class="">  POS (0,-675)*+!!<0ex,2.5pt>{X}ar @{->}@/^15pt/^-{k} (1800,-675)*+!!<0ex,2.5pt>{Z}</div>
<div class="">  POS (0,-675)*+!!<0ex,2.5pt>{X}ar @{->}|-*+<1pt,4pt>{labelstyle j}(1800,-675)*+!!<0ex,2.5pt>{Z}</div>
<div class="">  POS (0,-675)*+!!<0ex,2.5pt>{X}ar @{->}@<-15pt>|-*+<1pt,4pt>{labelstyle hf}(1800,-675)*+!!<0ex,2.5pt>{Z}</div>
<div class="">  POS (0,-675)*+!!<0ex,2.5pt>{X}ar @{->}@<-15pt>@/_15pt/|-*+<1pt,4pt>{labelstyle ig}(1800,-675)*+!!<0ex,2.5pt>{Z}</div>
<div class="">  POS (225,-337)*+!!<0ex,2.5pt>{phantom {O}}ar @{->}^-{beta } (450,-337)*+!!<0ex,2.5pt>{phantom {O}}</div>
<div class="">  POS (1350,-337)*+!!<0ex,2.5pt>{phantom {O}}ar @{<-}^-{delta } (1575,-337)*+!!<0ex,2.5pt>{phantom {O}}</div>
<div class="">  POS (900,-540)*+!!<0ex,2.5pt>{phantom {O}}ar @{<-}@<-15pt>_-{t} (900,-990)*+!!<0ex,2.5pt>{phantom {O}}</div>
<div class="">  POS (900,-652)*+!!<0ex,2.5pt>{phantom {O}}ar @{<-}@<15pt>^-{s} (900,-877)*+!!<0ex,2.5pt>{phantom {O}}</div>
<div class=""><br class="">
</div>
<div class="">that is ALMOST the XyPic code that diagxy calls, except for the</div>
<div class="">missing backslashes - that I don't know how to add.</div>
</div>
</div>
</blockquote>
<div><br class="">
</div>
<div>This can be done if you replace the directlua  call with TeX’s  \message </div>
<div>and use the following, with calls to the \string primitive:</div>
<div><br class="">
</div>
<div>
<div>% Print on stdout all the calls to XyPic.</div>
<div>\def\XYPIC#1{{%</div>
<div>  \edef\POS       {\string\POS }%</div>
<div>  \def\ar        {\string\ar }%</div>
<div>  \def\labelstyle{\string\labelstyle\space }%</div>
<div>  \def\beta      {\string\beta }%</div>
<div>  \def\delta     {\string\delta }%</div>
<div>  \def\phantom   {\string\phantom }%</div>
<div>  \def\Axis{\the\axis}%</div>
<div>  \def\Xend{\the\xend}%</div>
<div>  \def\Yend{\the\yend}%</div>
<div>%  \directlua{print("#1")}%</div>
<div>  \message{#1^^J}%</div>
<div>}}</div>
<div class=""><br class="">
</div>
</div>
<div>Using \edef  is slightly more efficient, since it produces the expansion with \string </div>
<div>only once, rather than every time \POS is called.</div>
<div>You can do this with all the macros that need to be expanded into letters.</div>
<div>Note also the need for a space after some of them, depending upon how they are used.</div>
<div><br class="">
</div>
<div>It’s such considerations that need to be taken into account, to be able to make this idea </div>
<div>fully general.</div>
<br class="">
<blockquote type="cite" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">The code is here:</div>
<div class=""><br class="">
</div>
<div class="">  <a href="http://angg.twu.net/LATEX/2019diagxyhack.tex" class="">http://angg.twu.net/LATEX/2019diagxyhack.tex</a></div>
</div>
</div>
</blockquote>
<div><br class="">
</div>
<div>Thanks.</div>
<div>I needed this to be able to reproduce what you posted.</div>
<div><br class="">
</div>
<br class="">
<blockquote type="cite" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div class=""><br class="">
</div>
<div class="">  Cheers,</div>
<div class="">    Eduardo Ochs</div>
<div class="">    <a href="https://protect-au.mimecast.com/s/7eKTClx1OYUOxQ0gF9tQEr?domain=angg.twu.net" class="">
http://angg.twu.net/dednat6.html</a></div>
<div class="">    <a href="https://protect-au.mimecast.com/s/upDgCmO5wZs1zOBEhBWssh?domain=angg.twu.net" class="">
http://angg.twu.net/math-b.html</a></div>
<div class=""><br class="">
</div>
</div>
</div>
</blockquote>
<br class="">
</div>
<div><br class="">
</div>
<div>Hope this helps.</div>
<div><br class="">
</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>Ross</div>
<br class="">
<div class=""><br class="">
Dr Ross Moore<br class="">
Department of Mathematics and Statistics 
<div class="">12 Wally’s Walk, Level 7, Room 734<br class="">
Macquarie University, NSW 2109, Australia<br class="">
T: +61 2 9850 8955  |  F: +61 2 9850 8114<br class="">
M:+61 407 288 255  |  E: <a href="mailto:ross.moore@mq.edu.au" class="">ross.moore@mq.edu.au</a><br class="">
<a href="http://www.maths.mq.edu.au" class="">http://www.maths.mq.edu.au</a><span style="font-size: 12px; line-height: normal;"><a href="http://mq.edu.au/" target="_blank" style="font-size: 12px; line-height: normal;" class=""><span><br class="Apple-interchange-newline" style="caret-color: rgb(0, 105, 217); color: rgb(0, 105, 217); font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-family: Arial, sans-serif; orphans: 2; widows: 2;">
<span style="caret-color: rgb(0, 105, 217); color: rgb(0, 105, 217); font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-family: Arial, sans-serif; orphans: 2; widows: 2;"><span><span><span><span><img apple-inline="yes" id="3A83FD31-8051-4B99-BAFF-294A762186C0" src="cid:image001.png@01D030BE.D37A46F0" class=""></span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class="">
<span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">CRICOS
 Provider Number 00002J. Think before you</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">print. </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class="">
<span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">Please
 consider the environment before printing this</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">email.</span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class="">
<br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class="">
<span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">This
 message is intended for the addressee named</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">and
 may </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class="">
<span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">contain
 confidential information. If you are not the</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">intended </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class="">
<span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">recipient,
 please delete it and notify the sender. Views</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">expressed </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class="">
<span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">in
 this message are those of the individual sender, and</span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class=""> </span><span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">are
 not </span><br style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none;" class="">
<span style="font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; text-decoration: none; float: none; display: inline !important;" class="">necessarily
 the views of Macquarie University.</span> </span></span></span></span></span></a></span></div>
<a href="http://mq.edu.au/" target="_blank" style="font-size: 12px; line-height: normal;" class=""></a></div>
<br class="">
</body>
</html>