summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/latex2e-help-texinfo/graphics/asy/list.asy
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/latex2e-help-texinfo/graphics/asy/list.asy')
-rw-r--r--Master/texmf-dist/doc/latex/latex2e-help-texinfo/graphics/asy/list.asy236
1 files changed, 236 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/latex2e-help-texinfo/graphics/asy/list.asy b/Master/texmf-dist/doc/latex/latex2e-help-texinfo/graphics/asy/list.asy
new file mode 100644
index 00000000000..c9d58d73bf8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/latex2e-help-texinfo/graphics/asy/list.asy
@@ -0,0 +1,236 @@
+import settings;
+settings.outformat="pdf";
+
+unitsize(1pt);
+
+void leftbar(picture pic, pair a, pair d, pen p=currentpen)
+{
+ picture opic;
+ // was: Draw(opic,-0.5d--0.5d,p+solid);
+ Draw(opic,-0d--0.5d,p+solid);
+ add(pic,opic,a);
+}
+picture leftbar(pair a, pair d, pen p=currentpen)
+{
+ picture pic;
+ leftbar(pic,a,d,p);
+ return pic;
+}
+void rightbar(picture pic, pair a, pair d, pen p=currentpen)
+{
+ picture opic;
+ // was: Draw(opic,-0.5d--0.5d,p+solid);
+ Draw(opic,-0.5d--0d,p+solid);
+ add(pic,opic,a);
+}
+picture rightbar(pair a, pair d, pen p=currentpen)
+{
+ picture pic;
+ leftbar(pic,a,d,p);
+ return pic;
+}
+
+arrowbar BeginLeftBar(real size=0)
+{
+ return new bool(picture pic, path g, pen p, margin margin) {
+ real size=size == 0 ? barsize(p) : size;
+ leftbar(pic,point(g,0),size*dir(g,0)*I,p);
+ return true;
+ };
+}
+
+arrowbar LeftBar(real size=0)
+{
+ return new bool(picture pic, path g, pen p, margin margin) {
+ int L=length(g);
+ real size=size == 0 ? barsize(p) : size;
+ leftbar(pic,point(g,L),size*dir(g,L)*I,p);
+ return true;
+ };
+}
+arrowbar EndLeftBar(real size=0)=LeftBar;
+
+arrowbar LeftBars(real size=0)
+{
+ return new bool(picture pic, path g, pen p, margin margin) {
+ real size=size == 0 ? barsize(p) : size;
+ BeginLeftBar(size)(pic,g,p,margin);
+ EndLeftBar(size)(pic,g,p,margin);
+ return true;
+ };
+}
+arrowbar BeginRightBar(real size=0)
+{
+ return new bool(picture pic, path g, pen p, margin margin) {
+ real size=size == 0 ? barsize(p) : size;
+ rightbar(pic,point(g,0),size*dir(g,0)*I,p);
+ return true;
+ };
+}
+
+arrowbar RightBar(real size=0)
+{
+ return new bool(picture pic, path g, pen p, margin margin) {
+ int L=length(g);
+ real size=size == 0 ? barsize(p) : size;
+ rightbar(pic,point(g,L),size*dir(g,L)*I,p);
+ return true;
+ };
+}
+arrowbar EndRightBar(real size=0)=LeftBar;
+
+arrowbar RightBars(real size=0)
+{
+ return new bool(picture pic, path g, pen p, margin margin) {
+ real size=size == 0 ? barsize(p) : size;
+ BeginRightBar(size)(pic,g,p,margin);
+ EndRightBar(size)(pic,g,p,margin);
+ return true;
+ };
+}
+arrowbar BeginLeftBar=BeginLeftBar(),
+ LeftBar=LeftBar(),
+ EndLeftBar=EndLeftBar(),
+ LeftBars=LeftBars(),
+ BeginRightBar=BeginRightBar(),
+ RightBar=RightBar(),
+ EndRightBar=EndRightBar(),
+ RightBars=RightBars();
+
+// Simulate text lines
+real em=10pt; // Computer Modern
+real baselineskip=1.2*em;
+real textpen_wd=0.8*em;
+pen textpen = linewidth(textpen_wd)+mediumgray+squarecap+opacity(0.5); // simulate text lines
+pen surrounding_environmentpen = textpen; // simulate text lines
+pen labelpen = black+font("OT1","cmr","m","it")+fontsize(7);
+
+// basic list
+real pagewidth=8cm;
+real pageleftmargin=0.25cm;
+real pagerightmargin=0.25cm;
+real baseline; // keep track of vert location of baseline
+
+int num_lines_above = 2;
+int num_lines_first_item_first_paragraph = 3;
+int num_lines_first_item_second_paragraph = 1;
+int num_lines_second_item = 3;
+int num_lines_below = 2;
+
+// list parameters
+// LaTeX's book 10 defaults; not suitable for illustration
+// real leftmargin=2.5*em;
+// real rightmargin=0*em;
+// real topsep=8pt;
+// real parskip=0pt;
+// real partopsep=2pt;
+// real labelwidth=leftmargin;
+// real labelsep=0.5*em;
+// real parsep=4pt;
+// real itemindent=parsep;
+// real listparindent=itemindent;
+// real itemsep=4pt;
+// parameters shown on the diagram
+real leftmargin=2.5*em;
+real rightmargin=1.5*em;
+real topsep=8pt;
+real parskip=4pt;
+real partopsep=2pt;
+real labelwidth=3em;
+real labelsep=0.5*em;
+real parsep=4pt;
+real itemindent=16pt;
+real listparindent=5pt;
+real itemsep=8pt;
+
+real labelleftedge = (pageleftmargin+leftmargin+itemindent)-(labelwidth+labelsep);
+real labelrightedge = labelleftedge+labelwidth;
+
+// helper lines
+// draw((pageleftmargin+leftmargin,0)--(pageleftmargin+leftmargin,-30),green);
+// draw((pageleftmargin+leftmargin+itemindent,0)--(pageleftmargin+leftmargin+itemindent,-30),green);
+// draw((pageleftmargin+leftmargin+itemindent-labelwidth,0)--(pageleftmargin+leftmargin+itemindent-labelwidth,-30),blue);
+// draw((pageleftmargin+leftmargin+itemindent-labelwidth-labelsep,0)--(pageleftmargin+leftmargin+itemindent-labelwidth-labelsep,-30),red);
+
+path lne;
+
+// lines above list
+baseline=0;
+lne = (pageleftmargin,baseline)--(pagewidth-pagerightmargin,baseline);
+draw(lne,surrounding_environmentpen);
+for (int line_no=0; line_no<(num_lines_above-1); ++line_no) {
+ baseline = baseline-baselineskip;
+ lne=(pageleftmargin,baseline)--(pagewidth-pagerightmargin,baseline);
+ draw(lne,surrounding_environmentpen);
+}
+label("Surrounding environment, preceding material",(0.5*(pageleftmargin+pagewidth-pagerightmargin),baseline),labelpen);
+real bot_preceding_material = baseline-0.5*textpen_wd;
+
+// list first item
+baseline=baseline-baselineskip-topsep-parskip-partopsep;
+real top_item_one = baseline+0.5*textpen_wd;
+draw((labelleftedge,baseline)--(labelrightedge,baseline),textpen); // label
+label("Label",(0.5*(labelleftedge+labelrightedge),baseline),labelpen);
+draw((labelrightedge+labelsep,baseline)--(pagewidth-pagerightmargin-rightmargin,baseline),textpen); // rest of label line
+label("\makebox[0em][l]{First item}",((pageleftmargin+leftmargin)+3.5em,baseline),labelpen);
+for (int line_no=0; line_no<(num_lines_first_item_first_paragraph-1); ++line_no) {
+ baseline = baseline-baselineskip;
+ draw((pageleftmargin+leftmargin,baseline)--(pagewidth-pagerightmargin-rightmargin,baseline),textpen);
+}
+real bot_item_one_par_one = baseline-0.5*textpen_wd;
+
+// first item's second paragraph
+baseline = baseline-baselineskip-parsep;
+real top_item_one_par_two = baseline+0.5*textpen_wd;
+draw((pageleftmargin+leftmargin+listparindent,baseline)--(pagewidth-pagerightmargin-rightmargin,baseline),textpen);
+label("\makebox[0em][l]{First item, second paragraph}",((pageleftmargin+leftmargin)+3.5em,baseline),labelpen);
+for (int line_no=0; line_no<(num_lines_first_item_second_paragraph-1); ++line_no) {
+ baseline = baseline-baselineskip;
+ draw((pageleftmargin+leftmargin,baseline)--(pagewidth-pagerightmargin-rightmargin,baseline),textpen);
+}
+real bot_item_one = baseline-0.5*textpen_wd;
+
+// list second item
+baseline=baseline-baselineskip-itemsep-parsep;
+real top_item_two = baseline+0.5*textpen_wd;
+draw((labelleftedge,baseline)--(labelrightedge,baseline),textpen); // label
+label("Label",(0.5*(labelleftedge+labelrightedge),baseline),labelpen);
+draw((labelrightedge+labelsep,baseline)--(pagewidth-pagerightmargin-rightmargin,baseline),textpen); // rest of label line
+label("\makebox[0em][l]{Second item}",((pageleftmargin+leftmargin)+3.5em,baseline),labelpen);
+for (int line_no=0; line_no<(num_lines_second_item-1); ++line_no) {
+ baseline = baseline-baselineskip;
+ draw((pageleftmargin+leftmargin,baseline)--(pagewidth-pagerightmargin-rightmargin,baseline),textpen);
+}
+real bot_item_two = baseline-0.5*textpen_wd;
+
+// lines after list
+baseline=baseline-baselineskip-topsep-parsep-partopsep;
+real top_following_material = baseline+0.5*textpen_wd;
+label("Surrounding environment, following material",(0.5*(pageleftmargin+pagewidth-pagerightmargin),baseline),labelpen);
+draw((pageleftmargin,baseline)--(pagewidth-pagerightmargin,baseline),surrounding_environmentpen);
+for (int line_no=0; line_no<(num_lines_below-1); ++line_no) {
+ baseline = baseline-baselineskip;
+ draw((pageleftmargin,baseline)--(pagewidth-pagerightmargin,baseline),surrounding_environmentpen);
+}
+
+// vertical markers
+real v_x = pagewidth-pagerightmargin+6pt;
+draw(Label("{\scriptsize $v_0$}",red),reverse((v_x,bot_preceding_material)--(v_x,top_item_one)),red,bar=LeftBars);
+draw(Label("{\scriptsize $v_1$}",red),reverse((v_x,bot_item_one_par_one)--(v_x,top_item_one_par_two)),red,bar=LeftBars);
+draw(Label("{\scriptsize $v_2$}",red),reverse((v_x,bot_item_one)--(v_x,top_item_two)),red,bar=LeftBars);
+draw(Label("{\scriptsize $v_3$}",red),reverse((v_x,bot_item_two)--(v_x,top_following_material)),red,bar=LeftBars);
+
+// horizontal markers
+real h_y_top = top_item_one+3pt;
+draw(Label("{\scriptsize $h_0$}",blue),reverse((labelleftedge,h_y_top)--(labelrightedge,h_y_top)),blue,bar=LeftBars);
+draw(Label("{\scriptsize $h_1$}",blue),reverse((labelrightedge,h_y_top)--(labelrightedge+labelsep,h_y_top)),blue,bar=LeftBars);
+
+real h_y_mid = bot_item_one-3pt;
+draw(Label("{\scriptsize $h_2$}",blue),(pageleftmargin+leftmargin,h_y_mid)--(pageleftmargin+leftmargin+listparindent,h_y_mid),blue,bar=LeftBars);
+
+real h_y_bot = bot_item_two-3pt;
+draw(Label("{\scriptsize $h_3$}",blue),(pageleftmargin,h_y_bot)--(pageleftmargin+leftmargin,h_y_bot),blue,bar=LeftBars);
+draw(Label("{\scriptsize $h_4$}",blue),(pageleftmargin+leftmargin,h_y_bot)--(pageleftmargin+leftmargin+itemindent,h_y_bot),blue,bar=LeftBars);
+draw(Label("{\scriptsize $h_5$}",blue),(pagewidth-pagerightmargin-rightmargin,h_y_bot)--(pagewidth-pagerightmargin,h_y_bot),blue,bar=LeftBars);
+
+