diff options
Diffstat (limited to 'doc/slides/all')
-rw-r--r-- | doc/slides/all | 680 |
1 files changed, 680 insertions, 0 deletions
diff --git a/doc/slides/all b/doc/slides/all new file mode 100644 index 0000000..98c7d6c --- /dev/null +++ b/doc/slides/all @@ -0,0 +1,680 @@ +@SysInclude { eq } +@SysInclude { tab } +@SysInclude { fig } +@SysInclude { pas } +@SysInclude { graph } +@SysInclude { cprint } +@SysInclude { slides } +@SysDatabase @Reference { loutrefs } +@OverheadTransparencies + @Title { A Practical Introduction to the + +Lout + +Document Formatting System +} + @RunningTitle { lout } + @Author { Jeffrey H. Kingston } + @Institution { +Basser Dept. of Computer Science +The University of Sydney +} + @InitialLanguage { English } +// + +@Overhead + @Title { A simple input file } +@Begin +@ID @Code { +"@SysInclude { doc }" +"@Doc @Text @Begin" +"Hello, world" +"@End @Text" +} +@LP +@LP +@Heading { How to format it } +@ID @Code { +"lout filename > out.ps" +"ghostview out.ps" +"mpr out.ps" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +Hello, world +} +@End @Overhead + +@Overhead + @Title { Headings and paragraphs } +@Begin +@ID @Code { +"@SysInclude { doc }" +"@Doc @Text @Begin" +"@Heading { Introduction }" +"@PP" +"The design of the Lout formatting" +"system was undertaken with the" +"needs of the @I { ordinary user }" +"very much in mind." +"@End @Text" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Heading { Introduction } +@PP +The design of the Lout formatting +system was undertaken with the +needs of the @I { ordinary user } +very much in mind. +} +@End @Overhead + +@Overhead + @Title { Displays } +@Begin +@ID @Code { +"You certainly don't want to return to" +"his office and report:" +"@IndentedDisplay @I {" +"`I can't find an efficient algorithm, I" +"guess I'm just too dumb.'" +"}" +"To avoid serious damage to your" +"position in the company, it would" +"be better if ..." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +You certainly don't want to return to +his office and report: +@IndentedDisplay @I { +`I can't find an efficient algorithm, I +guess I'm just too dumb.' +} +To avoid serious damage to your +position in the company, it would +be better if ... +} +@End @Overhead + +@Overhead + @Title { Paragraph breaking styles } +@Begin +@ID @Code { +"You certainly don't want to return to" +"his office and report:" +"@ID { ragged nohyphen } @Break @I {" +"`I can't find an efficient algorithm, I" +"guess I'm just too dumb.'" +"}" +"To avoid serious damage to your" +"position in the company, it would" +"be better if ..." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +You certainly don't want to return to +his office and report: +@ID { ragged nohyphen } @Break @I { +`I can't find an efficient algorithm, I +guess I'm just too dumb.' +} +To avoid serious damage to your +position in the company, it would +be better if ... +} +@End @Overhead + +@Overhead + @Title { Lists } +@Begin +@ID @Code { +"@Heading { Operating Instructions }" +"@NumberedList" +"@ListItem { Press small green lever. }" +"@ListItem { Wait approximately 10 seconds" +"until red light flashes. }" +"@ListItem { If smoke emerges from rear of unit," +"call Service Department. }" +"@EndList" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Heading { Operating Instructions } +@NumberedList +@ListItem { Press small green lever. } +@ListItem { Wait approximately 10 seconds +until red light flashes. } +@ListItem { If smoke emerges from rear of unit, +call Service Department. } +@EndList +} +@End @Overhead + +@Overhead + @Title { Technical reports } +@Begin +@ID @Code { +"@SysInclude { report }" +"@Report" +" @Title { ... }" +" @Author { ... }" +" @Institution { ... }" +" @DateLine { ... }" +"//" +"@Abstract { ... }" +"@Section { ... }" +"@Section { ... }" +"@Section { ... }" +"@Appendix { ... }" +"@Appendix { ... }" +} +@End @Overhead + +@Overhead + @Title { Sections } +@Begin +@ID @Code { +"@Section" +" @Tag { dfs }" +" @Title { Depth-first search }" +"@Begin" +"@PP" +"We turn now to our first algorithm" +"on general graphs ..." +"@End @Section" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Heading { 10.6. Depth-first search } +@PP +We turn now to our first algorithm +on general graphs ... +} +@End @Overhead + +@Overhead + @Title { Cross references } +@Begin +@ID @Code { +"For further information, consult" +"Section @NumberOf dfs on page" +"@PageOf { dfs }." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +For further information, consult +Section 10.6 on page 245. +} +@End @Overhead + +@Overhead + @Title { References } +@Begin +@ID @Code { +"@Database @Reference { myrefs }" +"..." +"For the details, consult the User's" +"Guide @Cite { $kingston1995lout.user }." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +For the details, consult the User's +Guide [1]. +@LP +... +@LP +@Heading { References } +@NumberedList +@LI @RefPrint kingston1995lout.user +@LI ... +@EndList +} +@End @Overhead + +@Overhead + @Title { Database file myrefs.ld } +@Begin +@ID @Code { +"{ @Reference" +" @Tag { kingston1995lout.user }" +" @Type { Book }" +" @Author { Jeffrey H. Kingston }" +" @Title { A User's Guide to the Lout" +"Document Formatting System (Version 3) }" +" @Institution { Basser Department of" +"Computer Science }" +" @Address { University of Sydney" +"2006, Australia }" +" @Year { 1994 }" +"}" +} +@End @Overhead + +@Overhead + @Title { Books (and theses) } +@Begin +@BulletList +@LI { Title page, preface, introduction } +@LI { Automatic table of contents } +@LI { Prefatory pages numbered in Roman numerals } +@LI { Chapters, sections, subsections, appendices } +@LI { References at end of chapters or book } +@LI { Running page headers } +@LI { Odd-even page formats } +@LI { Sorted index } +@EndList +@End @Overhead + +@Overhead + @Title { Making a sorted index } +@Begin +@ID @Code { +"@PP" +"There are several possible ways to implement the" +"@I Partition procedure," +"partition @Index { @I Partition (in {@I Quicksort}) }" +"but the following seems to be the best. Starting ..." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Heading { Index } +@LD lines @Break { +... +partial order, 227 +@I Partition (in {@I Quicksort}), 189 +postorder traversal + of binary tree, 19 + topological ordering, 229 +... +} +} +@End @Overhead + +@Overhead + @Title { Equation formatting } +@Begin +@ID @Code { +"@SysInclude { eq }" +"..." +"Since @Eq { T(n-i) = T(0) = 0 } we have" +"@IndentedDisplay @Eq {" +"T(n) = big sum from i=0 to n-1 2 sup i = 2 sup n - 1" +"}" +"for the number of disk moves made by the Towers" +"of Hanoi algorithm, given @Eq { n } disks." +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +Since @Eq { T(n-i) = T(0) = 0 } we have +@IndentedDisplay @Eq { +T(n) = big sum from i=0 to n-1 2 sup i = 2 sup n - 1 +} +for the number of disk moves made by the Towers of Hanoi +algorithm, given @Eq { n } disks. +} +@End @Overhead + +@Overhead + @Title { Another equation } +@Begin +@ID @Code { +"@CenteredDisplay @Eq {" +"big int supp 1 on 0 `" +"dx over sqrt { 1 - x sup 2 }" +"= pi over 2" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@CenteredDisplay @Eq { +big int supp 1 on 0 ` +dx over sqrt { 1 - x sup 2 } += pi over 2 +} +} +@End @Overhead + +@Overhead + @Title { Tables } +@Begin +@ID @Code { +"@SysInclude { tab }" +"..." +"@Tab" +" @Fmta { @Col @I A ! @Col B }" +"{" +"@Rowa" +" A { Fortran }" +" B { The first ... language }" +"@Rowa" +" A { Algol-60 }" +" B { Said to be ... successors }" +"@Rowa" +" A { Pascal }" +" B { The famous ... successors }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Tab + vmargin { 0.4v } + @Fmta { @Col @I A ! @Col B } +{ +@Rowa + A { Fortran } + B { The first high-level +programming language } +@Rowa + A { Algol-60 } + B { Said to be a better +language than most of its successors } +@Rowa + A { Pascal } + B { The most famous of +Algol-60's successors } +} +} +@End @Overhead + +@Overhead + @Title { Another table } +@Begin +@RID @Code { +"@Tab" +" hmargin { 0.4c }" +" vmargin { 0.3v }" +" side { single }" +" @Fmta { @Col @B @CC X @Over A,B,C }" +" @Fmtb { @Col @I A ! @Col B !! @Col C }" +"{" +"" +"@Rowa above { single }" +" X { Value of mathematical ... dollars) }" +"" +"@Rowb above { double }" +" A { Quadratic formula }" +" B { @Eq { x ^= { ... } over 2a } }" +" C { 3^.5 }" +"" +"@Rowb below { single }" +" A { Binomial theorem }" +" B { @Eq { ( a + b ) sup n ^= ... b sup n-k } }" +" C { 12^ }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +0.6 @Scale @Tab + hmargin { 0.4c } + vmargin { 0.3v } + side { single } + @Fmta { @Col @B @CC X @Over A,B,C } + @Fmtb { @Col @I A ! @Col B !! @Col C } +{ +@Rowa + above { single } + X { Value of mathematical formulae (millions of dollars) } +@Rowb + above { double } + A { Quadratic formula } + B { @Eq { x ^= { minus b +- sqrt { b sup 2 - 4ac } } over 2a } } + C { 3^.5 } +@Rowb + below { single } + A { Binomial theorem } + B { @Eq { ( a + b ) sup n ^= big sum from k=0 to infty +matrix atleft { ( } atright { ) } { n above k } a sup k b sup n-k +} } + C { 12^ } +} +} +@End @Overhead + +@Overhead + @Title { Pascal programs } +@Begin +@ID @Code { +"@SysInclude { pas }" +"..." +"@ID @Pas {" +"procedure DoPriAbstract(root: PriEntry);" +"begin" +" if root^.leftchild <> nil then begin" +" DoPriAbstract(root^.leftchild);" +" write(', ');" +" end;" +" PriKeyAbstract(root^.key);" +" write(':');" +" PriValueAbstract(root^.value);" +" if root^.rightchild <> nil then begin" +" write(', ');" +" DoPriAbstract(root^.rightchild);" +" end;" +"end;" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Pas { +procedure DoPriAbstract(root: PriEntry); +begin + if root^.leftchild <> nil then begin + DoPriAbstract(root^.leftchild); + write(', '); + end; + PriKeyAbstract(root^.key); + write(':'); + PriValueAbstract(root^.value); + if root^.rightchild <> nil then begin + write(', '); + DoPriAbstract(root^.rightchild); + end; +end; +} &0io +} +@End @Overhead + +@Overhead + @Title { Basic graphics } +@Begin +@ID @Code { +"45d @Rotate 1.5 @Scale @Box {" +" Hello, world" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@ID @Code { +45d @Rotate 1.5 @Scale @Box { + Hello, world +} +} +} +@End @Overhead + +@Overhead + @Title { Advanced graphics } +@Begin +@ID @Code { +"@SysInclude { fig }" +"..." +"@Fig {" +"@Box" +" margin { 0c }" +" paint { black }" +"@Ellipse" +" linestyle { noline }" +" paint { white }" +"{ Hello, world }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Fig { +@Box + margin { 0c } + paint { black } +@Ellipse + linestyle { noline } + paint { white } +{ Hello, world } +} +} +@End @Overhead + +@Overhead + @Title { Point labelling } +@Begin +@ID @Code { +"@Fig {" +"A::" +"{" +" 1:: @Ellipse { 3c @Wide 2c @High }" +" //3c" +" 2:: @Box { 3c @Wide 2c @High }" +"}" +"@ShowLabels" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage { +@Fig { +A:: +{ + 1:: @Ellipse { 3c @Wide 2c @High } + //3c + 2:: @Box { 3c @Wide 2c @High } +} +@ShowLabels +} +} +@End @Overhead + +@Overhead + @Title { Graphs } +@Begin +@LP +@ID -1p @Font @Code { +"@Graph" +" abovecaption { New South Wales road deaths" +"(per 100 million vehicle km) }" +"{" +" @Data points { plus } pairs { dashed }" +" { 1963 5.6 1971 4.3 1976 3.7 1979 3.4" +" 1982 2.9 1985 2.3 1988 2.0 }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage @Graph + width { 9 cm } + height { 6 cm } + abovecaption { New South Wales road deaths +(per 100 million vehicle km) } +{ + @Data + points { plus } + pairs { dashed } + { + 1963 5.6 1971 4.3 1976 3.7 1979 3.4 1982 2.9 1985 2.3 1988 2.0 + } +} +@End @Overhead + +@Overhead @Begin +@RID @Code { +"-2p @Font @Graph" +" style { axes }" +" xorigin { 0 } yorigin { 0 }" +" xticks { 10@ 50@ 100@ 200@ 500@ }" +" objects { @NE at { 300 2 } @I { Exponential }" +" @SE at { ... } @I { Uniform } }" +" belowcaption { @I n }" +"{" +" @Data points { filledcircle } { ... }" +" @Data points { filledcircle } { ... }" +"" +" @Data pairs { dashed }" +" { 10 2 500 2 }" +"" +" @Data pairs { dashed }" +" {" +" xloop from { 10 } to { 500 } by { 20 } do" +" {" +" x sqrt { pi*x / 4 } + 1" +" }" +" }" +"}" +} +@End @Overhead + +@Overhead @Begin +@ShowPage -2p @Font @Graph + style { axes } + xorigin { 0 } + yorigin { 0 } + width { 10 cm } + height { 7 cm } + xticks { 10@ 50@ 100@ 200@ 500@ } + objects { + @NE at { 300 2 } @I { Exponential } + @SE at { 300 sqrt { pi*300/4 } + 1 } @I { Uniform } + } + belowcaption { @I n } + belowgap { 0 cm } +{ + @Data points { filledcircle } + { 10 1.97 50 2.01 100 2.00 200 2.0 500 2.00 } + + @Data points { filledcircle } + { 10 3.53 50 7.45 100 9.32 200 13.41 500 21.63 } + + @Data pairs { dashed } + { 10 2 500 2 } + + @Data pairs { dashed } + { + xloop from { 10 } to { 500 } by { 20 } do + { + x sqrt { pi*x / 4 } + 1 + } + } +} +@End @Overhead |