summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/diagmac2/doc/diagmactest.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/diagmac2/doc/diagmactest.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/diagmac2/doc/diagmactest.tex')
-rw-r--r--macros/latex/contrib/diagmac2/doc/diagmactest.tex403
1 files changed, 403 insertions, 0 deletions
diff --git a/macros/latex/contrib/diagmac2/doc/diagmactest.tex b/macros/latex/contrib/diagmac2/doc/diagmactest.tex
new file mode 100644
index 0000000000..a4ee5e99f4
--- /dev/null
+++ b/macros/latex/contrib/diagmac2/doc/diagmactest.tex
@@ -0,0 +1,403 @@
+%TESTS OF DIAGRAM MACROS - J. C. Reynolds - December 1987
+
+%This is an input file for LATEX that inputs the macros in diagmac.tex
+%and tests them. A user's manual for these macros is in diagmac.doc
+
+\documentclass[12pt]{article}
+\input diagmac
+\oddsidemargin=0in
+\evensidemargin=0in
+\textwidth=6.5in
+\begin{document}
+
+\thispagestyle{empty}
+
+\begin{centering}
+{\large\bf TESTS OF DIAGRAM MACROS} \\[14 pt]
+\today \\[21 pt]
+\end{centering}
+
+
+%These are the two examples given in the user's manual.
+
+$$\diagram{
+\vertex 0,100:{A}{\border{3pt}{4pt}\rect}
+\vertex 150,100:{B}{\border{3pt}{4pt}\rect}
+\vertex 0,0:{A'}{\border{3pt}{4pt}\rect}
+\vertex 150,0:{B'}{\border{3pt}{4pt}\rect}
+\setedge 0,100,150,100:
+\shadeedge
+\drawsolidedge
+\drawedgehead{100}10
+\abutabove 75:{\textstyle c}{\border{2pt}{2pt}\octagon{3pt}}
+\setedge 0,0,150,0:
+\shadeedge
+\drawsolidedge
+\drawedgehead{100}10
+\abutbelow 75:{\textstyle c'}{\border{2pt}{2pt}\octagon{3pt}}
+\setedge 0,100,0,0:
+\shadeedge
+\drawsolidedge
+\drawedgehead{100}10
+\abutleft 50:{\textstyle a}{\border{2pt}{2pt}\octagon{3pt}}
+\setedge 150,100,150,0:
+\shadeedge
+\drawsolidedge
+\drawedgehead{100}10
+\abutright 50:{\textstyle b}{\border{2pt}{2pt}\octagon{3pt}}
+}$$
+
+$$\ctdiagram{
+\ctv 0,100:{A}
+\ctv 150,100:{B}
+\ctv 0,0:{A'}
+\ctv 150,0:{B'}
+\ctet 0,100,150,100:{c}
+\cteb 0,0,150,0:{c'}
+\ctel 0,100,0,0:{a}
+\cter 150,100,150,0:{b}
+}$$
+
+\newpage
+
+%This gives a thorough workout to the general macros for diagrams.
+%The result looks like an eye-chart for Martians.
+
+$$\diagram{
+\vertex -150,0:{X+Y}{\border{4pt}{3pt}\rorect{2pt}01\outline}
+\vertex 0,-50:Y{\border{10pt}{10pt}\hexagon\outline}
+\vertex 150,0:\sum{\border{10pt}{10pt}\octagon{10pt}\outline
+ \border{5pt}{5pt}\octagon{12pt}\thicklines\outline\thinlines}
+\vertex -100,150:\alpha{\border{4pt}{3pt}\diamond\outline}
+\vertex 100,150:\sum{\border{10pt}{10pt}\rorect{20pt}00\outline
+ \border{5pt}{5pt}\rorect{24pt}00\thicklines\outline\thinlines}
+\vertex 0,200:{X^2+Y^2}{\border{4pt}{3pt}\rect\outline}
+\place -150,-150:{X+Y^{Z^2}}
+ {\leftghost X\symmetrize\borderto{0pt}{0pt}\border{4pt}{3pt}\rect\outline
+ \setcircle{16pt}{\xcenter}{\bexpr}\drawcircle0110
+ \drawcirclehead{0}{-1}1
+ \abutcirclebelow{-10pt}\alpha{\border{2pt}{2pt}\rect\outline}
+ \abutcirclebelow{10pt}\alpha{\border{2pt}{2pt}\rect\outline}}
+\placed{150pt}{-150pt}{X+Y}
+ {\rightghost Y\symmetrize\borderto{0pt}{26pt}\border{4pt}{0pt}\rect\outline
+ \placed{\lexpr}{\ycenter}{\vrule height3.2pt depth-2.8pt width10pt}{}
+ \place 0,-3:{\vrule height3.2pt depth-2.8pt width10pt}{\xcenter=\lexpr}
+ \setcircle{16pt}{\rexpr}{\texpr}\shiftcircle{8pt}{8pt}\drawcircle1101
+ \drawcirclehead{0}{-1}1\drawcirclehead{-1}00
+ \abutcircleabove{0pt}\alpha{\border{2pt}{2pt}\rect\outline}}
+\vertex 0,-150:{}{\setcircle{40pt}{\xcenter}{\ycenter}\drawcircle1111
+ \drawcirclehead231\drawcirclehead{-2}30
+ \drawcirclehead6{-9}0\drawcirclehead{-4}{-6}1
+ \abutcircleleft{0pt}\alpha{\border{2pt}{2pt}\rect\outline}
+ \abutcircleright{20pt}\alpha{\border{2pt}{2pt}\rect\outline}
+ \abutcircleright{0pt}\alpha{\border{2pt}{2pt}\rect\outline}
+ \abutcircleright{-20pt}\alpha{\border{2pt}{2pt}\rect\outline}}
+\setedge 0,200,-100,150:\shadeedge\drawsolidedge\drawedgehead{100}10
+ \abutleft 185:{\alpha+\beta}{\border{2pt}{2pt}\rorect{5pt}01\outline}
+\setedge 0,200,100,150:\shadeedge\drawsolidedge\drawedgehead{100}10
+ \abutright 185:{\alpha+\beta}{\border{2pt}{2pt}\rorect{5pt}01\outline}
+\setedge -150,0,0,-50:\shadeedge\drawdashedge{11pt}{10pt}01\drawedgehead{80}01
+ \abutleftd{-25pt}{\alpha\beta}
+ {\border{2pt}{2pt}\borderto{25pt}{0pt}\rect\outline}
+\setedge -150,0,150,0:\drawedgehead{50}01\shadeedge\drawsolidedge
+ \abutabove -10:\rho{\border{2pt}{2pt}\diamond\outline}
+\setedge -150,0,-100,150:\shadeedge\drawsolidedge\drawedgehead{100}10
+ \abutleft 75:\rho{\border{10pt}{10pt}\octagon{10pt}\outline}
+\setedge -150,0,100,150:\shadeedge\drawdotedge{7pt}1
+ \abutaboved{-100pt}\rho{\border{10pt}{10pt}\hexagon\outline}
+\setedge 0,-50,150,0:\shadeedge\drawsolidedge\drawedgehead{20}11
+ \abutrightd{-25pt}\rho{\border{2pt}{2pt}\borderto{25pt}{0pt}\rect\outline}
+\setedge 0,-50,-100,150:\shadeedge\drawsolidedge
+\setedge 0,-50,100,150:\shadeedge\drawsolidedge
+\setedge 150,0,-100,150:\shadeedge\drawsolidedge
+ \abutbelowd{100pt}\rho{\border{10pt}{10pt}\hexagon\outline}
+\setedge 150,0,100,150:\shadeedge\drawdashedge{40pt}{40pt}11\drawedgehead000
+ \abutleft 75:\rho{\border{10pt}{10pt}\hexagon\outline}
+ \shiftedge{-10pt}\shadeedge\drawdashedge{30pt}{30pt}10\drawedgehead000
+ \shiftedge{-10pt}\shadeedge\drawdashedge{11pt}{5pt}01\drawedgehead000
+ \shiftedge{-10pt}\shadeedge\drawdotedge{8pt}0\drawedgehead{100}10
+ \abutright 75:\rho{\border{5pt}{5pt}\rorect{5pt}11\outline}
+\setedge -100,150,100,150:\drawedgehead{50}11\shadeedge\drawsolidedge
+ \abutbelow 0:\rho{\border{2pt}{2pt}\rect\outline}
+\setedge 0,-50,-150,-150:\thicklines\drawedgehead{50}01\thinlines
+ \shadeedge\drawdashedge{13pt}{3pt}01\drawedgehead{50}11
+ \abutbelow -50:{X \atop Y}{\border{2pt}{2pt}\rorect{5pt}10\outline}
+\setedge 0,-50,0,-150:\thicklines\shadeedge\drawsolidedge\thinlines
+\setedge 0,-50,150,-150:\shadeedge\drawsolidedge
+ \abutabove 75:{X \atop Y}{\border{2pt}{2pt}\rorect{5pt}10\outline}
+\setedge -175,-50,-175,-100:\drawdashedge{10pt}{31pt}11
+\setedge -165,-100,-165,-50:\drawdashedge{15pt}{15pt}01
+\setedge -155,-50,-155,-100:\drawdashedge{5pt}{5pt}11
+\setedge -145,-100,-145,-50:\drawdotedge{26pt}1
+\setedge -135,-50,-135,-100:\drawdotedge{25pt}1
+\setedge -125,-100,-125,-50:\drawdotedge{5pt}1
+\setedge 125,-50,175,-50:\drawdashedge{10pt}{31pt}11
+\setedge 175,-60,125,-60:\drawdashedge{15pt}{15pt}01
+\setedge 125,-70,175,-70:\drawdashedge{5pt}{5pt}11
+\setedge 175,-80,125,-80:\drawdotedge{26pt}1
+\setedge 125,-90,175,-90:\drawdotedge{25pt}1
+\setedge 175,-100,125,-100:\drawdotedge{5pt}1
+}$$
+
+\newpage
+
+%These three diagrams test the macros for category-theory diagrams.
+
+$$\ctdiagram{
+\ctvg0,0:{Y'}{\ctlpbl{I_{Y'}}}
+\ctvg150,0:{Z=Z_0}{\ctgl{Z}\ctlpbr{I_Z}}
+\ctvg0,100:{X_0=X}{\ctgr{X}\ctlptl{I_X}}
+\ctvg150,100:{Y}{\ctlptr{I_Y}}
+\ctet0,100,150,100:\alpha
+\cteb0,0,150,0:{\beta'}
+\ctel0,100,0,0:{\alpha'}
+\cter150,100,150,0:\beta
+\ctetb0,100,150,0:11{\alpha;\beta}{\alpha';\beta'}
+}$$
+
+$$\ctdiagram{\ctdash
+\ctvg0,0:{Y'}{\ctlpblcc{I_{Y'}}}
+\ctvg150,0:{Z=Z_0}{\ctgl{Z}\ctlpbrcc{I_Z}}
+\ctvg0,100:{X_0=X}{\ctgr{X}\ctlptlcc{I_X}}
+\ctvg150,100:{Y}{\ctlptrcc{I_Y}}
+\ctet0,100,150,100:\alpha
+\ctnohead\cteb0,0,150,0:{\beta'}\cthead
+\ctel0,100,0,0:{\alpha'}
+\cter150,100,150,0:\beta
+\ctelr0,100,150,0:11{\alpha';\beta'}{\alpha;\beta}
+}$$
+
+$$\ctdiagram{
+\ctv0,0:{Y'}
+\ctvg150,0:{Z=Z_0}{\ctgl{Z}}
+\ctvg0,100:{X_0=X}{\ctgr{X}}
+\ctv150,100:Y
+\ctetg0,100,150,100;50:\alpha
+\ctebg0,0,150,0;50:{\beta'}
+\ctelg0,100,0,0;30:{\alpha'}
+\cterg150,100,150,0;30:\beta
+\ctetbg0,100,150,0;50,100:10{\rho}{\rho'}
+\ctelrg0,0,150,100;70,30:01{\theta}{\theta'}
+}$$
+
+\newpage
+
+%The next two diagrams are further tests of the macros for drawing
+%double edges.
+
+$$\ctdiagram{
+\ctv0,0:X
+\ctv-100,100:Y\ctv-100,0:Y\ctv-100,-100:Y
+\ctv100,100:Z\ctv100,0:Z\ctv100,-100:Z
+\ctetb0,0,-100,100:10\alpha\beta
+\ctdash\ctetb0,0,-100,0:00\alpha\beta\ctsolid
+\ctetb0,0,-100,-100:01\alpha\beta
+\ctetb0,0,100,100:10\alpha\beta
+\ctdash\ctetb0,0,100,0:11\alpha\beta\ctsolid
+\ctetb0,0,100,-100:01\alpha\beta
+}$$
+
+$$\ctdiagram{
+\ctv0,0:X
+\ctv-100,100:Y\ctv0,100:Y\ctv100,100:Y
+\ctv-100,-100:Z\ctv0,-100:Z\ctv100,-100:Z
+\ctelr0,0,-100,100:10\alpha\beta
+\ctelr0,0,0,100:00\alpha\beta
+\ctelr0,0,100,100:01\alpha\beta
+\ctelr0,0,-100,-100:10\alpha\beta
+\ctelr0,0,0,-100:11\alpha\beta
+\ctelr0,0,100,-100:01\alpha\beta
+}$$
+
+\newpage
+
+%These two diagrams test the usage of \ctinnermid and \ctoutermid.
+
+$$\ctdiagram{\ctv 0,0:{
+{\displaystyle\sum_{i=0}^{100}x_i\cdot y_i}\over
+{\displaystyle\sqrt{\biggl(\sum_{i=0}^{100}x_i^2\biggr)
++\biggl(\sum_{i=0}^{100}y_i^2\biggr)}}}
+\ctv0,150:A\ctv150,150:B\ctv150,0:C\ctv150,-150:D
+\ctv0,-150:E\ctv-150,-150:F\ctv-150,0:G\ctv-150,150:H
+\cter0,0,0,150:A\ctinnermid\cter0,0,0,150:a\ctoutermid
+\cter150,150,0,0:B\ctinnermid\cter150,150,0,0:b\ctoutermid
+\cteb0,0,150,0:C\ctinnermid\cteb0,0,150,0:c\ctoutermid
+\cteb150,-150,0,0:D\ctinnermid\cteb150,-150,0,0:d\ctoutermid
+\ctel0,0,0,-150:E\ctinnermid\ctel0,0,0,-150:e\ctoutermid
+\ctel-150,-150,0,0:F\ctinnermid\ctel-150,-150,0,0:f\ctoutermid
+\ctet0,0,-150,0:G\ctinnermid\ctet0,0,-150,0:g\ctoutermid
+\ctet-150,150,0,0:H\ctinnermid\ctet-150,150,0,0:h
+}$$
+
+$$\ctdiagram{\ctv 0,0:{
+{\displaystyle\sum_{i=0}^{100}x_i\cdot y_i}\over
+{\displaystyle\sqrt{\biggl(\sum_{i=0}^{100}x_i^2\biggr)
++\biggl(\sum_{i=0}^{100}y_i^2\biggr)}}}
+\ctv-150,150:A\ctv0,150:C\ctv150,150:E\ctv150,0:G
+\ctelr0,0,-150,150:11AB\ctinnermid
+\ctelr0,0,-150,150:11ab\ctoutermid
+\ctelr0,150,0,0:11CD\ctinnermid
+\ctelr0,150,0,0:11cd\ctoutermid
+\ctetb0,0,150,150:11EF\ctinnermid
+\ctetb0,0,150,150:11ef\ctoutermid
+\ctetb150,0,0,0:11GH\ctinnermid
+\ctetb150,0,0,0:11gh
+}$$
+
+\newpage
+
+%This is a ``real'' diagram, relating directed complete relations to
+%Scott's inverse limit construction. It is sufficiently crowded
+%that it has been necessary to place some of the abutted expressions
+%carefully to avoid ambiguity.
+
+$$\ctdiagram{
+\ctvg0,0:{D_0}{\border{2pt}{0pt}}
+\ctv72,0:{D_1}
+\ctv144,0:{D_2}
+\ctv216,0:{\quad\cdots}
+\ctvg288,144:{D_\infty}{\advance\ycenter by 5pt\border{50pt}{10pt}}
+\ctv234,36:{\cdots}
+\ctetbg0,0,72,0;48,48:10{\phi_0}{\psi_0}
+\ctetbg72,0,144,0;114,114:10{\phi_1}{\psi_1}
+\ctetb144,0,216,0:10{\phi_2}{\psi_2}
+\ctelrg0,0,288,144;42,30:10{\Phi_0}{\Psi_0}
+\ctelrg72,0,288,144;42,30:10{\Phi_1}{\Psi_1}
+\ctelrg144,0,288,144;42,30:10{\Phi_2}{\Psi_2}
+\ctvg0,-72:{D'_0}{\border{2pt}{0pt}}
+\ctv72,-72:{D'_1}
+\ctv144,-72:{D'_2}
+\ctv216,-72:{\quad\cdots}
+\ctvg288,-216:{D'_\infty}{\advance\ycenter by -5pt\border{50pt}{10pt}}
+\ctv234,-108:{\cdots}
+\ctetbg0,-72,72,-72;48,48:10{\phi'_0}{\psi'_0}
+\ctetbg72,-72,144,-72;114,114:10{\phi'_1}{\psi'_1}
+\ctetb144,-72,216,-72:10{\phi'_2}{\psi'_2}
+\ctelrg0,-72,288,-216;-114,-102:10{\Phi'_0}{\Psi'_0}
+\ctelrg72,-72,288,-216;-114,-102:10{\Phi'_1}{\Psi'_1}
+\ctelrg144,-72,288,-216;-114,-102:10{\Phi'_2}{\Psi'_2}
+\cter0,0,0,-72:{\alpha_0}
+\cter72,0,72,-72:{\alpha_1}
+\cter144,0,144,-72:{\alpha_2}
+\ctv216,-36:{\cdots}
+\ctdash
+\cter288,144,288,-216:{\alpha_\infty}
+}$$
+
+\newpage
+
+%This shows how a macro can be defined and then used to give two different
+%views of the same diagram.
+
+\def\testcube#1#2#3#4#5#6#7#8{
+$$\ctdiagram{
+\ctv#1,#3:{A_1}
+\ctv#2,#3:{B_1}
+\ctv#1,#4:{A_2}
+\ctv#2,#4:{B_2}
+\ctv#5,#7:{A'_1}
+\ctv#6,#7:{B'_1}
+\ctv#5,#8:{A'_2}
+\ctv#6,#8:{B'_2}
+\ctet#1,#3,#2,#3:{\gamma_1}
+\ctet#1,#4,#2,#4:{\gamma_2}
+\cter#1,#3,#1,#4:{\alpha}
+\cter#2,#3,#2,#4:{\beta}
+\ctet#5,#7,#6,#7:{\gamma'_1}
+\ctet#5,#8,#6,#8:{\gamma'_2}
+\cter#5,#7,#5,#8:{\alpha'}
+\cter#6,#7,#6,#8:{\beta'}
+\cter#1,#3,#5,#7:{a_1}
+\cter#2,#3,#6,#7:{b_1}
+\cter#1,#4,#5,#8:{a_2}
+\cter#2,#4,#6,#8:{b_2}
+}$$}
+
+\testcube{0}{200}{200}{0}{50}{150}{150}{50}
+
+\testcube{0}{150}{150}{0}{100}{250}{200}{50}
+
+\newpage
+
+%An example of a partial ordering with a limit point.
+
+$${\def\diagramunit{0.25in}
+\ctdiagram{\ctnohead
+\ctv0,0:{\geq 0}
+\ctv2,2:{\geq 1}
+\ctv4,4:{\geq 2}
+\ctv7,7:\infty
+\ctv-2,2:{=0}
+\ctv0,4:{=1}
+\ctv2,6:{=2}
+\cten0,0,2,2:
+\cten2,2,4,4:
+\cten0,0,-2,2:
+\cten2,2,0,4:
+\cten4,4,2,6:
+\ctdot
+\cten4,4,7,7:
+}}$$
+
+%An example of a binary tree, produced by user macros.
+
+\newcount\cnx\newcount\cny\newcount\cnxx\newcount\cnyy
+
+\def\treea#1{\cnxx=\cnx\cnyy=\cny
+\ctv\cnx,\cny:{\scriptstyle #1}
+\advance\cnx by -1\advance\cny by 4
+\ctdot
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by 2
+\cten\cnxx,\cnyy,\cnx,\cny:
+\ctsolid
+\cnx=\cnxx\cny=\cnyy}
+
+\def\treeb#1{\ctv\cnx,\cny:{\scriptstyle #1}
+\advance\cnx by -2\advance\cny by 4
+\treea{#10}
+\cnxx=\cnx\advance\cnxx by 2\cnyy=\cny\advance\cnyy by -4
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by 4
+\treea{#11}
+\cnxx=\cnx\advance\cnxx by -2\cnyy=\cny\advance\cnyy by -4
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by -2\advance\cny by -4}
+
+\def\treec#1{\ctv\cnx,\cny:{\scriptstyle #1}
+\advance\cnx by -4\advance\cny by 4
+\treeb{#10}
+\cnxx=\cnx\advance\cnxx by 4\cnyy=\cny\advance\cnyy by -4
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by 8
+\treeb{#11}
+\cnxx=\cnx\advance\cnxx by -4\cnyy=\cny\advance\cnyy by -4
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by -4\advance\cny by -4}
+
+\def\treed#1{\ctv\cnx,\cny:{\scriptstyle #1}
+\advance\cnx by -8\advance\cny by 4
+\treec{#10}
+\cnxx=\cnx\advance\cnxx by 8\cnyy=\cny\advance\cnyy by -4
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by 16
+\treec{#11}
+\cnxx=\cnx\advance\cnxx by -8\cnyy=\cny\advance\cnyy by -4
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by -8\advance\cny by -4}
+
+\def\tree{\ctv\cnx,\cny:\bot\def\centerheight{2pt}
+\advance\cnx by -16\advance\cny by 4
+\treed{0}
+\cnxx=\cnx\advance\cnxx by 16\cnyy=\cny\advance\cnyy by -4
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by 32
+\treed{1}
+\cnxx=\cnx\advance\cnxx by -16\cnyy=\cny\advance\cnyy by -4
+\cten\cnxx,\cnyy,\cnx,\cny:
+\advance\cnx by -16\advance\cny by -4}
+
+$${\def\diagramunit{7.5pt}
+\ctdiagram{\ctnohead\cnx=0\cny=0\tree}}$$
+
+\end{document}