From fca59bea770346cf1c1f9b0e00cb48a61b44a8f3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 25 Oct 2015 21:00:20 +0100 Subject: import of old now defunct presentation slides svn repo --- .../OLS2004-proceedings/AuthorDirList.txt | 51 + .../OLS2004-proceedings/Authors.tex | 357 +++++ .../OLS2004-proceedings/EXAMPLE/Makefile | 41 + .../OLS2004-proceedings/EXAMPLE/bibliography.tex | 180 +++ .../OLS2004-proceedings/EXAMPLE/bibliography2.tex | 41 + .../EXAMPLE/complexCode/Figures/example.c | 18 + .../EXAMPLE/complexCode/Figures/example.ll | 22 + .../EXAMPLE/complexCode/Makefile | 41 + .../EXAMPLE/complexCode/complexFigure.tex | 88 ++ .../EXAMPLE/complexCode/example-c.tex | 22 + .../EXAMPLE/complexCode/example-ll.tex | 24 + .../EXAMPLE/complexCode/lgrind.sty | 228 +++ .../EXAMPLE/complexCode/llvm.lst | 15 + .../OLS2004-proceedings/EXAMPLE/conditional.tex | 15 + .../OLS2004-proceedings/EXAMPLE/figures.tex | 40 + .../EXAMPLE/includegraphics.tex | 15 + .../OLS2004-proceedings/EXAMPLE/legalese.tex | 19 + .../EXAMPLE/multipleAuthors.tex | 68 + .../OLS2004-proceedings/EXAMPLE/myPaper.pdf | Bin 0 -> 34244 bytes .../OLS2004-proceedings/EXAMPLE/myPaper.tex | 495 +++++++ .../OLS2004-proceedings/EXAMPLE/references.tex | 29 + .../OLS2004-proceedings/EXAMPLE/tables.tex | 79 + .../OLS2004-proceedings/Makefile | 61 + .../OLS2004-proceedings/MasterOLS-2side.tex | 538 +++++++ .../OLS2004-proceedings/MasterOLS.html | 671 +++++++++ .../OLS2004-proceedings/MasterOLS.tex | 534 +++++++ .../OLS2004-proceedings/TEMPLATES/Blank.tex | 67 + .../OLS2004-proceedings/TEMPLATES/ProtoMake | 41 + .../OLS2004-proceedings/TEMPLATES/README | 4 + .../OLS2004-proceedings/TEMPLATES/cprog.sty | 249 ++++ .../OLS2004-proceedings/TEMPLATES/csty.sty | 250 ++++ .../OLS2004-proceedings/TEMPLATES/eclepsf.sty | 278 ++++ .../OLS2004-proceedings/TEMPLATES/lineno.sty | 1517 ++++++++++++++++++++ .../TEMPLATES/mpss-commands.tex | 70 + .../OLS2004-proceedings/TEMPLATES/ols-fonts.tex | 25 + .../OLS2004-proceedings/TEMPLATES/ols.sty | 84 ++ .../OLS2004-proceedings/TEMPLATES/twocolumn.sty | 13 + .../OLS2004-proceedings/TEMPLATES/usenix.sty | 55 + .../OLS2004-proceedings/TEMPLATES/zrl.sty | 432 ++++++ .../OLS2004-proceedings/all.txt | 306 ++++ .../OLS2004-proceedings/bin/CreateIndiv.pl | 222 +++ .../OLS2004-proceedings/bin/cleanurl.pl | 61 + .../OLS2004-proceedings/bin/makeMainPaper.pl | 81 ++ .../OLS2004-proceedings/bin/masterToHtml.pl | 32 + .../OLS2004-proceedings/bin/parseall.pl | 126 ++ .../OLS2004-proceedings/texmf/ls-R | 16 + .../texmf/tex/latex/combine/combcite.sty | 109 ++ .../texmf/tex/latex/combine/combine.cls | 1009 +++++++++++++ .../texmf/tex/latex/combine/combinet.sty | 138 ++ .../texmf/tex/latex/combine/combnat.sty | 543 +++++++ .../OLS2004-proceedings/welte/Makefile | 41 + .../OLS2004-proceedings/welte/Record.ols | 6 + .../welte/netfilter-failover-ols2002.tex | 504 +++++++ .../OLS2004-proceedings/welte/welte-abstract.tex | 10 + .../OLS2004-proceedings/welte/welte.tex | 652 +++++++++ .../netfilter-failover-ols2004.mgp | 369 +++++ 56 files changed, 11002 insertions(+) create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/AuthorDirList.txt create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/Authors.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/Makefile create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/bibliography.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/bibliography2.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Figures/example.c create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Figures/example.ll create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Makefile create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/complexFigure.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/example-c.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/example-ll.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/lgrind.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/llvm.lst create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/conditional.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/figures.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/includegraphics.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/legalese.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/multipleAuthors.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/myPaper.pdf create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/myPaper.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/references.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/tables.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/Makefile create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS-2side.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS.html create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/Blank.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/ProtoMake create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/README create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/cprog.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/csty.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/eclepsf.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/lineno.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/mpss-commands.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/ols-fonts.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/ols.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/twocolumn.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/usenix.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/zrl.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/all.txt create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/CreateIndiv.pl create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/cleanurl.pl create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/makeMainPaper.pl create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/masterToHtml.pl create mode 100755 2004/netfilter-failover-ols2004/OLS2004-proceedings/bin/parseall.pl create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/texmf/ls-R create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/texmf/tex/latex/combine/combcite.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/texmf/tex/latex/combine/combine.cls create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/texmf/tex/latex/combine/combinet.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/texmf/tex/latex/combine/combnat.sty create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/welte/Makefile create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/welte/Record.ols create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/welte/netfilter-failover-ols2002.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/welte/welte-abstract.tex create mode 100644 2004/netfilter-failover-ols2004/OLS2004-proceedings/welte/welte.tex create mode 100644 2004/netfilter-failover-ols2004/netfilter-failover-ols2004.mgp (limited to '2004/netfilter-failover-ols2004') diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/AuthorDirList.txt b/2004/netfilter-failover-ols2004/OLS2004-proceedings/AuthorDirList.txt new file mode 100644 index 0000000..75a20a7 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/AuthorDirList.txt @@ -0,0 +1,51 @@ +almesberger +aloni +andersen +anderson +axboe +bhattacharya +bird +bligh +bottomley +boutcher +brown +bryant +chubb +coekaerts +corbet +devriendt +domsch +feldman +fields +gammo +gettys +haddad +halcrow +hansen +kroahhartman +lindsley +love +mackall +magenheimer +maloy +mccracken +meeks +melo +miyazawa +packard +pai +perezgonzalez +pratt +robb +ronciak +russell +sarma +shankar +riel +volmat +walicki +welte +wichmann +wilson +worth +wright diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/Authors.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/Authors.tex new file mode 100644 index 0000000..5e744d4 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/Authors.tex @@ -0,0 +1,357 @@ +% email=werner@almesberger.net +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=24 +\coltocauthor{Werner Almesberger} +\coltoctitle{TCP Connection Passing} +\label{art01} +\import{almesberger} + +% email=da-x@colinux.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=14 +\coltocauthor{Dan Aloni} +\coltoctitle{Cooperative Linux} +\label{art02} +\import{aloni} + +% email=andersen@codepoet.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=11 +\coltocauthor{Erik Andersen} +\coltoctitle{Build your own Embedded Linux Wireless Access Point} +\label{art03} +\import{andersen} + +% email=anderson@netsweng.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=40 +\coltocauthor{Stuart Anderson} +\coltoctitle{Run-time testing of LSB Applications} +\label{art04} +\import{anderson} + +% email=axboe@suse.de +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=152 +\coltocauthor{Jens Axboe} +\coltoctitle{Linux Block IO: present and future} +\label{art05} +\import{axboe} + +% email=suparna@in.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=64 +\coltocauthor{Suparna Bhattacharya} +\coltoctitle{Linux AIO Performance and Robustness for Enterprise Workloads} +\label{art06} +\import{bhattacharya} + +% email=tim.bird@am.sony.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=132 +\coltocauthor{Tim R.\ Bird} +\coltoctitle{Methods to Improve Bootup Time in Linux} +\label{art07} +\import{bird} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=153 +\coltocauthor{Martin J.\ Bligh} +\coltoctitle{Linux on NUMA} +\label{art08} +\import{bligh} + +% email=jejb@steeleye.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=27 +\coltocauthor{James Bottomley} +\coltoctitle{Improving Kernel Performance by Unmapping the Page Cache} +\label{art09} +\import{bottomley} + +% email=boutcher@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=26 +\coltocauthor{Dave Boutcher} +\coltoctitle{Linux Virtualization on IBM Power5 Systems} +\label{art10} +\import{boutcher} + +% email=len.brown@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=9 +\coltocauthor{Len Brown} +\coltoctitle{ACPI: Advanced Configuration and Power Management Interface} +\label{art11} +\import{brown} + +% email=raybry@sgi.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=147 +\coltocauthor{Ray Bryant} +\coltoctitle{Scaling Linux to the Extreme} +\label{art12} +\import{bryant} + +% email=peterc@gelato.unsw.edu.au +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=100 +\coltocauthor{Peter Chubb} +\coltoctitle{Get More Device Drivers out of the Kernel!} +\label{art13} +\import{chubb} + +% email=wim.coekaerts@oracle.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=13 +\coltocauthor{Wim A.\ Coekaerts} +\coltoctitle{2.6 kernel for big servers compared to 2.4} +\label{art14} +\import{coekaerts} + +% email=corbet@lwn.net +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=127 +\coltocauthor{Jonathan Corbet} +\coltoctitle{Where 2.7 is going} +\label{art15} +\import{corbet} + +% email=paul.devriendt@amd.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=22 +\coltocauthor{Paul Devriendt} +\coltoctitle{SMP and frequency scaling} +\label{art16} +\import{devriendt} + +% email=matt_domsch@dell.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=117 +\coltocauthor{Matt Domsch} +\coltoctitle{Dynamic Kernel Module Support: From Theory to Practice} +\label{art17} +\import{domsch} + +% email=scott.feldman@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=177 +\coltocauthor{Scott Feldman} +\coltoctitle{e100 weight reduction program} +\label{art18} +\import{feldman} + +% email=bfields@umich.edu +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=76 +\coltocauthor{James Bruce Fields} +\coltoctitle{NFSv4 and rpcsec\_gss for linux} +\label{art19} +\import{fields} + +% email=lgammo@cs.uwaterloo.ca +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Louay Gammo} +\coltoctitle{Comparing and Evaluating epoll(), select(), and poll()} +\label{art20} +\import{gammo} + +% email=jim.gettys@hp.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{James Gettys} +\coltoctitle{The (Re)Architecture of the X Window System} +\label{art21} +\import{gettys} + +% email=ibrahim.haddad@ericsson.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=51 +\coltocauthor{Ibrahim Haddad} +\coltoctitle{Towards Linux-based Open Telecom Platforms} +\label{art22} +\import{haddad} + +% email=linuxsymposium.org@halcrow.us +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=55 +\coltocauthor{Michael Austin Halcrow} +\coltoctitle{Demands, Solutions, and Improvements for Linux Filesystem Security} +\label{art23} +\import{halcrow} + +% email=haveblue@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=131 +\coltocauthor{Dave Hansen} +\coltoctitle{Hotplug Memory and the Linux VM} +\label{art24} +\import{hansen} + +% email=greg@kroah.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=168 +\coltocauthor{Greg Kroah-Hartman} +\coltoctitle{kobjects and krefs: lockless reference counting for kernel structures} +\label{art25} +\import{kroahhartman} + +% email=ricklind@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=82 +\coltocauthor{Rick Lindsley} +\coltoctitle{The Cursor Wiggles Faster: Measuring Scheduler Performance} +\label{art26} +\import{lindsley} + +% email=rml@ximian.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=122 +\coltocauthor{Robert Love} +\coltoctitle{On a Kernel Events Layer and User-space Message Bus System} +\label{art27} +\import{love} + +% email=mpm@selenic.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=30 +\coltocauthor{Matt Mackall} +\coltoctitle{Linux-tiny and directions for small systems} +\label{art28} +\import{mackall} + +% email=dan.magenheimer@hp.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=68 +\coltocauthor{Dan Magenheimer} +\coltoctitle{Xen and the Art of Open Source Virtualization} +\label{art29} +\import{magenheimer} + +% email=jon.maloy@ericsson.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=52 +\coltocauthor{Jon Paul Maloy} +\coltoctitle{TIPC: Providing Communication for Linux Clusters} +\label{art30} +\import{maloy} + +% email=dmccr@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=109 +\coltocauthor{Dave McCracken} +\coltoctitle{Object-based reverse mapping} +\label{art31} +\import{mccracken} + +% email=michael@ximian.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=145 +\coltocauthor{Michael Meeks} +\coltoctitle{The World of OpenOffice} +\label{art32} +\import{meeks} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=130 +\coltocauthor{Arnaldo Carvalho de Melo} +\coltoctitle{TCPfying the Poor Cousins} +\label{art33} +\import{melo} + +% email=kazunori@miyazawa.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=119 +\coltocauthor{Kazunori Miyazawa} +\coltoctitle{IPv6 IPsec and Mobile IPv6 implementation of Linux} +\label{art34} +\import{miyazawa} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Keith Packard} +\coltoctitle{Getting X off the hardware} +\label{art35} +\import{packard} + +% email=linuxram@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=54 +\coltocauthor{Ram Pai} +\coltoctitle{Linux 2.6 performance improvement through readahead optimization} +\label{art36} +\import{pai} + +% email=inaky.perez-gonzalez@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=10 +\coltocauthor{Inaky Perez-Gonzalez} +\coltoctitle{I would hate user space locking if it weren't that sexy\ldots} +\label{art37} +\import{perezgonzalez} + +% email=slpratt@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=58 +\coltocauthor{Steven L.\ Pratt} +\coltoctitle{Workload Dependent Performance Evaluation of the 2.6 I/O Schedulers} +\label{art38} +\import{pratt} + +% email=sam.robb@timesys.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=104 +\coltocauthor{Sam Robb} +\coltoctitle{Creating Cross-Compile Friendly Software} +\label{art39} +\import{robb} + +% email=john.ronciak@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=46 +\coltocauthor{John A.\ Ronciak} +\coltoctitle{Page-Flip Technology for use within the Linux Networking Stack} +\label{art40} +\import{ronciak} + +% email=rusty@rustcorp.com.au +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=16 +\coltocauthor{Rusty Russell} +\coltoctitle{Linux Kernel Hotplug CPU Support} +\label{art41} +\import{russell} + +% email=dipankar@in.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=156 +\coltocauthor{Dipankar Sarma} +\coltoctitle{Issues with Selected Scalability Features of the 2.6 Kernel} +\label{art42} +\import{sarma} + +% email=dshankar@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=72 +\coltocauthor{Kittur (Doc) S.\ Shankar} +\coltoctitle{Achieving CAPP/EAL3+ Security Certification for Linux} +\label{art43} +\import{shankar} + +% email=riel@redhat.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=125 +\coltocauthor{Rik van Riel} +\coltoctitle{Improving Linux resource control using CKRM} +\label{art44} +\import{riel} + +% email=avolmat@src.ricoh.co.jp +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=110 +\coltocauthor{Alain Volmat} +\coltoctitle{Linux on a Digital Camera} +\label{art45} +\import{volmat} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{John A.\ Walicki} +\coltoctitle{The Linux Client at IBM: Enterprise Enabling the Linux Desktop} +\label{art46} +\import{walicki} + +% email=laforge@gnumonks.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=86 +\coltocauthor{Harald Marc Welte} +\coltoctitle{ct\_sync: state replication of ip\_conntrack} +\label{art47} +\import{welte} + +% email=mats.d.wichmann@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=175 +\coltocauthor{Mats Wichmann} +\coltoctitle{Increasing the appeal of Open Source projects} +\label{art48} +\import{wichmann} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Matthew S.\ Wilson} +\coltoctitle{New approaches in software provisioning and system maintenance} +\label{art49} +\import{wilson} + +% email=cworth@east.isi.edu +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=70 +\coltocauthor{Carl D.\ Worth} +\coltoctitle{``On-demand'' Linux in a Power-aware Microsensor} +\label{art50} +\import{worth} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Chris Wright} +\coltoctitle{Linux Virtualization} +\label{art51} +\import{wright} + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/Makefile b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/Makefile new file mode 100644 index 0000000..367a0c9 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/Makefile @@ -0,0 +1,41 @@ + +.SUFFIXES: .tex .dvi .aux .eps .fig .dia .ps .pdf .bib .bbl + +TOP=myPaper +TEXFILES=$(TOP).tex +FIGFILES:=$(wildcard *.fig) +EPSFILES:=$(wildcard *.eps) +EPSFILES+=$(FIGFILES:.fig=.eps) +PDFFILES=$(EPSFILES:.eps=.pdf) + +.fig.eps: + fig2dev -L eps $< >$@ + +.fig.pdf: + fig2dev -L pdf $< >$@ + +.eps.pdf: + epstopdf $< + +all: $(TOP).ps $(TOP).pdf + +$(TOP).ps: $(TOP).dvi + dvips -o $(TOP).ps $(TOP) + +$(TOP).dvi: $(TEXFILES) $(EPSFILES) + latex $(TOP) || true + bibtex $(TOP) || true + latex $(TOP) || true + latex $(TOP) + +$(TOP).pdf: $(TEXFILES) $(PDFFILES) + pdflatex $(TOP) || true + bibtex $(TOP) || true + pdflatex $(TOP) || true + pdflatex $(TOP) + +clean: + rm -f *.aux *.dvi *.log + rm -f $(TOP).ps $(TOP).pdf $(TOP).bbl $(TOP).blg + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/bibliography.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/bibliography.tex new file mode 100644 index 0000000..78340bc --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/bibliography.tex @@ -0,0 +1,180 @@ + +This example is based on Keith Packard's 2003 paper for +the Linux Symposium Proceedings. + +The easiest way to do a bibliography is to use BiBTeX. +In the body of the paper, you \cite{} various references. +The citation name is the first name following the opening +curly brace in the .bib file. For example, with the list below, +I could \cite{autoconf} and \cite{freetype2}. + +Near the end of your main .tex file, you include a section like so: +\begin{flushleft} +\bibliography{keithp} +\bibliographystyle{plain} +\end{flushleft} +(this comes *before* \end{document}.) + +And in a separate file whose name matches the \bibliography{} +declaration above (e.g., keithp.bib in this case), you define all +the references. Note that \url is a valid way to typeset web +references. + +Note that the makefiles are already set up to process this form +of bibliography, so using it is indeed easy. (It's also one +reason why the input files are processed multiple times, though.) + +Here are some sample entries for various types +of publications: + +@book{autoconf, + title = "GNU Autoconf, Automake and Libtool", + author = "Gary V. Vaughan and Ben Elliston and Tom Tromey and Ian Lance Taylor", + publisher = "New Riders", + year = 2000, + note = {ISBN 1-57870-190-2}, }, + +@article{blinn:1994, + title = "Compositing Theory", + author = "Jim Blinn", + journal = "IEEE Computer Graphics and Applications", + year = 1994, + month = "September", + note = "Republished in~\cite{blinn:1998}" } + +@book{blinn:1998, + title = "{Jim Blinn's Corner: Dirty Pixels}", + author = "Jim Blinn", + year = 1998, + publisher = "Morgan Kaufmann", + isbn = "1-55860-455-3", } + +@techreport{dbe, + title = "{Double Buffer Extension Protocol}", + author = "Ian Elliott and David P. Wiggins", + institution = "X Consortium, Inc.", + type = "X Consortium Standard", + year = 1994, } +@manual{dc, + title = "DC - An Interactive Desk Calculator", + author = "Robert Morris and Lorinda Cherry", + organization = "AT\&T Bell Laboratories", + note = "Unix Programmer's Manual Volume 2, 7th Edition", + year = 1978, }, + +@misc{freetype2, + title = "The design of {FreeType} 2", + author = "David Turner and The FreeType Development Team", + year = 2000, + note = "\url{http://www.freetype.org/freetype2/docs/design/}", +}, + +@inproceedings{gj, + title = "Making the future safe for the past: Adding Genericity to the Java Programming Language", + author = "Gilad Bracha and Martin Odersky and David Stoutamire and Phillip Wadler", + month = "October", + booktitle = "Conference on Object-Oriented Programing systems, Languages and Applications (OOPSLA '98)", + year = 1998, + publisher = "ACM", + organization = "SIGPLAN", } + +@phdthesis{Hobby85, + author = {John D. Hobby}, + title = {Digitized Brush Trajectories}, + school = {Stanford University}, + year = {1985}, + note = {Also {\it Stanford Report STAN-CS-85-1070}} +} + +@article{itsy, + title = "{Itsy: Stretching the Bounds of Mobile Computing}", + author = "William R. Hamburgen and Deborah A. Wallach and Marc A. Viredaz and Lawrence S. Brakmo and Carl A. Waldspurger and Joel F. Bartlett and Timothy Mann and Keith I. Farkas", + journal = "IEEE Computer", + year = 2001, + publisher = "Institute of Electrical and Electronics Engineers, Inc.", + volume = 34, + number = 4, + month = "April", + pages = "28-35", } + +@inproceedings{lbx:1993, + title = "{An Update on Low Bandwidth X (LBX): A Standard For X and Serial Lines}", + author = "Jim Fulton and Chris Kent Kantarjiev", + booktitle = "Proceedings of the Seventh Annual X Technical Conference", + month = "January", + year = 1993, + pages = "251-266", + address = "Boston, MA", + organization = "MIT X Consortium", +}, + +@inproceedings{lmbench:1996, + title = "{lmbench: Portable tools for performance analysis}", + author = "Larry McVoy and Carl Staelin", + booktitle = "Technical Conference Proceedings", + month = "January", + year = 1996, + pages = "279-284", + address = "San Diego, CA", + organization = "USENIX", } + +@Article{Nistnet00, + author = "NIST Internetworking Technology Group", + title = "{NISTNet} network emulation package", + journal = "\url{http://www.antd.nist.gov/itg/nistnet/}", + month = jun, + year = "2000", + bibdate = "Thursday, June 29, 2000 at 16:40:15 (MEST)", + submitter = "Katarina Asplund", +} + +@TechReport{AMD:2000:XTW, + author = "{AMD Corporation}", + title = "{x86-64$^{\mathrm{TM}}$ Technology White Paper}", + institution = "{AMD Corporation}", + address = "One AMD Place, Sunnyvale, CA 94088, USA", + pages = "12", + day = "17", + month = aug, + year = "2000", + bibdate = "Fri May 04 12:53:45 2001", + bibsource = "\url{http://www.amd.com/products/cpg/64bit/index.html}", + URL = "\url{http://www.amd.com/products/cpg/64bit/pdf/x86-64_wp.pdf}; + \url{http://www1.amd.com/products/cpg/x8664bit/faq}", + acknowledgement = ack-nhfb, + annote = "The x86-64 architecture is definitely not an IA-64 + implementation, but rather, an extension of IA-32 by + widening the integer registers to 64-bits.", +} + +@unpublished{pinzari, + author = "Gian Filippo Pinzari", + title = "The NX X Protocol Compressor", + note = "Electronic Communication", + month = "March", + year = "2003", + } + +@inproceedings{Gettys:2002, + title = "{The Future is Coming, Where the X Window System Should Go}", + author = "James Gettys", + booktitle = "FREENIX Track, 2002 Usenix Annual Technical Conference", + month = "June", + year = 2002, + organization = "USENIX", + address = "Monterey, CA", + url = "\url{http://www.usenix.org/publications/library/proceedings/usenix02/tech/freenix/full_papers/gettys/gettys_html/index.html}", +} + +@misc{ewing, + title = "Linux 2.0 Penguins", + author = "Larry Ewing", + note = "\url{http://www.isc.tamu.edu/~lewing/linux}", +} + +@misc{gimp, + title = "The {GIMP}: The {GNU} Image Manipulation Program", + author = "Peter Mattis and Spencer Kimball and the GIMP developers", + note = "\url{http://www.gimp.org}", +} + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/bibliography2.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/bibliography2.tex new file mode 100644 index 0000000..c838404 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/bibliography2.tex @@ -0,0 +1,41 @@ + +Here's another way of handling bibliographies; it does +not use a .bib file, but includes the items at the end +of the paper, before \end{document}. + +Each item has the format +\bibitem[printName]{citeName} details + +The "printName" will be printed at the point of your citation, +and again in the list of references. The "citeName" is what +you use in the source to create the citation. For example, +using the first entry below, I could \cite{menyhart} and +have the author's name print out properly in the appropriate +places. + +The bibliography below comes from Tony Luck's 2003 Linux +Symposium paper: + + +\begin{thebibliography}{99} +\raggedright +\bibitem[Menyh\'{a}rt]{menyhart} Z.\ Menyh\'{a}rt and D.\ Song, +{\em OS Machine Check Recovery on Itanium Architecture-base Platforms}, +Intel Developer Forum, Fall 2002 + +\bibitem[Ziegler]{ziegler} J.F.\ Ziegler, +{\em Terrestrial cosmic ray intensities}, +IBM Journal of Research and Development, Volume 42, Number 1, 1998 + +\bibitem[SDV]{SDV} Intel, +{\em Intel Itanium Architecture Software Developer's Manual, Volume 1--3} + +\bibitem[EHG]{EHG} Intel, +{\em Itanium Processor Family Error Handling Guide}, August 2001 + +\bibitem[SAL]{SAL} Intel, +{\em Itanium Processor Family System Abstraction Layer (SAL) Specification}, November 2002 + +\end{thebibliography} + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Figures/example.c b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Figures/example.c new file mode 100644 index 0000000..34d1726 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Figures/example.c @@ -0,0 +1,18 @@ +typedef struct QuadTree { + double Data; + struct QuadTree *Children[4]; +} QT; + +void Sum3rdChildren(QT *T, + double *Result) { + double Ret; + if (T == 0) { Ret = 0; + } else { + QT *Child3 = + T[0].Children[3]; + double V; + Sum3rdChildren(Child3, &V); + Ret = V + T[0].Data; + } + *Result = Ret; +} diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Figures/example.ll b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Figures/example.ll new file mode 100644 index 0000000..f9ce373 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Figures/example.ll @@ -0,0 +1,22 @@ +%struct.QuadTree = type { double, [4 x %QT*] } +%QT = type %struct.QuadTree + +void %Sum3rdChildren(%QT* %T, double* %Result) { +entry: %V = alloca double ;; %V is type 'double*' + %tmp.0 = seteq %QT* %T, null ;; type 'bool' + br bool %tmp.0, label %endif, label %else + +else: ;;tmp.1 = &T[0].Children[3] 'Children' = Field #1 + %tmp.1 = getelementptr %QT* %T, long 0, ubyte 1, long 3 + %Child3 = load %QT** %tmp.1 + call void %Sum3rdChildren(%QT* %Child3, double* %V) + %tmp.2 = load double* %V + %tmp.3 = getelementptr %QT* %T, long 0, ubyte 0 + %tmp.4 = load double* %tmp.3 + %tmp.5 = add double %tmp.2, %tmp.4 + br label %endif + +endif: %Ret = phi double [ %tmp.5, %else ], [ 0.0, %entry ] + store double %Ret, double* %Result + ret void ;; Return with no value +} diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Makefile b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Makefile new file mode 100644 index 0000000..9777b58 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/Makefile @@ -0,0 +1,41 @@ + +.SUFFIXES: .tex .dvi .aux .eps .fig .dia .ps .pdf .bib .bbl + +TOP=complexFigure +TEXFILES=$(TOP).tex +FIGFILES:=$(wildcard *.fig) +EPSFILES:=$(wildcard *.eps) +EPSFILES+=$(FIGFILES:.fig=.eps) +PDFFILES=$(EPSFILES:.eps=.pdf) + +.fig.eps: + fig2dev -L eps $< >$@ + +.fig.pdf: + fig2dev -L pdf $< >$@ + +.eps.pdf: + epstopdf $< + +all: $(TOP).ps $(TOP).pdf + +$(TOP).ps: $(TOP).dvi + dvips -o $(TOP).ps $(TOP) + +$(TOP).dvi: $(TEXFILES) $(EPSFILES) + latex $(TOP) || true + bibtex $(TOP) || true + latex $(TOP) || true + latex $(TOP) + +$(TOP).pdf: $(TEXFILES) $(PDFFILES) + pdflatex $(TOP) || true + bibtex $(TOP) || true + pdflatex $(TOP) || true + pdflatex $(TOP) + +clean: + rm -f *.aux *.dvi *.log + rm -f $(TOP).ps $(TOP).pdf $(TOP).bbl $(TOP).blg + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/complexFigure.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/complexFigure.tex new file mode 100644 index 0000000..6fe6c94 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/complexFigure.tex @@ -0,0 +1,88 @@ +\documentclass[twocolumn,12pt]{article} +\usepackage{ols} +\ifpdf +\usepackage[pdftex]{epsfig} +\else +\usepackage{epsfig} +\fi +\input{ols-fonts} + +% These packages are Proceedings-friendly. +\usepackage{cprog} +\usepackage[nolineno,norules]{lgrind} +\usepackage[hang,scriptsize]{subfigure} + +% These ones are only suitable for standalone +\usepackage{subfigure} +%%% both of these break the Proceedings and are thus evil +\usepackage{listings} +\input{llvm.lst} % Get listing support for llvm code +%%%% + + +\begin{document} + +\date{} + +%make title bold and 14 pt font (Latex default is non-bold, 16 pt) +\title{Architecture for a Next-Generation GCC} + +\author{ +Chris Lattner \hspace*{0.5in} Vikram Adve\\ +\emph{University of Illinois at Urbana, Champaign}\\ +\texttt{\em\normalsize \{lattner, vadve\}@cs.uiuc.edu}\\ +\emph{\normalsize \url{http://llvm.cs.uiuc.edu}}} + +\maketitle + +% You have to do this to suppress page numbers. Don't ask. +\thispagestyle{empty} + +Formatting team's note: The two figures here illustrate two ways of presenting +the same information, and are hopefully more complex +than you'll require. The first is set using Proceedings-friendly +packages; the second works only as a standalone paper. + +%%% Figure typeset in a Proceedings-friendly fashion +%%% (thanks to Diego Novillo for inspiration) +\begin{figure*}[t] +\scriptsize +%%% \centering +\subfigure[Example function]{% +\label{figure:example_c} +\parbox{0.65\columnwidth}{\input{example-c}} +}\hspace*{5pt}\vrule\hspace*{5pt} +\subfigure[Corresponding LLVM code] {% +\label{figure:example_llvm} +\parbox{1.35\columnwidth}{\input{example-ll}}} +%%% }% +\caption{C and LLVM code for a function} +\label{figure:example} +\end{figure*} + +%%===------------------------ +% Code example figure +% +\begin{figure*} [t] +\scriptsize +\centering +\subfigure[Example function] { +\label{figure2:example_c} +\lstset{language=c} +\lstinputlisting{Figures/example.c} +}\hspace*{5pt}\vrule\hspace*{5pt} +\subfigure[Corresponding LLVM code] { +\label{figure2:example_llvm} +\lstset{language=LLVM} +\lstinputlisting{Figures/example.ll} +}% +\caption{C and LLVM code for a function} +\label{figure2:example} +\end{figure*} +% +%%===------------------------ + + +\end{document} + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/example-c.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/example-c.tex new file mode 100644 index 0000000..2f8bf0d --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/example-c.tex @@ -0,0 +1,22 @@ +\begin{cprog} +typedef struct QuadTree { + double Data; + struct QuadTree + *Children[4]; +} QT; + +void Sum3rdChildren(QT *T, + double *Result) { + double Ret; + if (T == 0) { Ret = 0; + } else { + QT *Child3 = + T[0].Children[3]; + double V; + Sum3rdChildren(Child3, + &V); + Ret = V + T[0].Data; + } + *Result = Ret; +} +\end{cprog} diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/example-ll.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/example-ll.tex new file mode 100644 index 0000000..681b759 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/example-ll.tex @@ -0,0 +1,24 @@ +\begin{verbatim} +%struct.QuadTree = type { double, [4 x %QT*] } +%QT = type %struct.QuadTree + +void %Sum3rdChildren(%QT* %T, double* %Result) { +entry: %V = alloca double ;; %V is type 'double*' + %tmp.0 = seteq %QT* %T, null ;; type 'bool' + br bool %tmp.0, label %endif, label %else + +else: ;;tmp.1 = &T[0].Children[3] 'Children' = Field #1 + %tmp.1 = getelementptr %QT* %T, long 0, ubyte 1, long 3 + %Child3 = load %QT** %tmp.1 + call void %Sum3rdChildren(%QT* %Child3, double* %V) + %tmp.2 = load double* %V + %tmp.3 = getelementptr %QT* %T, long 0, ubyte 0 + %tmp.4 = load double* %tmp.3 + %tmp.5 = add double %tmp.2, %tmp.4 + br label %endif + +endif: %Ret = phi double [ %tmp.5, %else ], [ 0.0, %entry ] + store double %Ret, double* %Result + ret void ;; Return with no value +} +\end{verbatim} diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/lgrind.sty b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/lgrind.sty new file mode 100644 index 0000000..2d04753 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/lgrind.sty @@ -0,0 +1,228 @@ +%% +%% This is file `lgrind.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% lgrind.dtx (with options: `package') +%% +%% LGrind is used to format source code of different programming +%% languages for LaTeX. +%% +%% LGrind is a minor adaptation of Jerry Leichter's tgrind for LaTeX, +%% which was a notable improvement upon Van Jacobsen's tgrind for +%% plain TeX, which was adapted from vgrind, a troff prettyprinter. +%% +%% Based on Van Jacobson's ``tgrindmac'', a macro package for TeX. +%% Modified, 1987 by Jerry Leichter. Put '@' in all internal names. +%% Modified, 1991 by George Reilly. Changed name from tgrind to lgrind. +%% Modified, 1995 by Michael Piefel. Made it work with \LaTeXe. +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{lgrind} + [1997/01/30 v3.4 LGrind environment and supporting stuff] +\newcount\lc@unt +\newcount\ln@xt +\newcount\LGnuminterval +\LGnuminterval=10 +\DeclareOption{nolineno}{\LGnuminterval=50000} +\DeclareOption{lineno5}{\LGnuminterval=5} +\newif\ifLGleftnum +\DeclareOption{leftnum}{\LGleftnumtrue} +\newskip\LGindent +\LGindent=1.6667\parindent +\DeclareOption{noindent}{\LGindent=0pt} +\newif\ifLGnorules +\DeclareOption{norules}{\LGnorulestrue} +\newlength{\LGsloppy} +\setlength{\LGsloppy}{7.2pt} +\DeclareOption{fussy}{\LGsloppy=0pt} +\newcommand{\DefaultProc}{\@gobble} +\newcommand{\DefaultProcCont}{\@gobble} +\DeclareOption{procnames}{ +\renewcommand{\DefaultProc}[1]{\renewcommand{\Procname}{#1}% +\global\setbox\procbox=\hbox{\PNsize #1}} +\renewcommand{\DefaultProcCont}[1]{\renewcommand\Procname{#1} +\global\setbox\procbox=\hbox{\PNsize\dots #1}}} +\newbox\procbox +\newcommand{\Procname}{} +\ProcessOptions +\def\BGfont{\sffamily} +\def\CMfont{\rmfamily\itshape} +\def\NOfont{\sffamily} +\def\KWfont{\rmfamily\bfseries} +\def\STfont{\ttfamily} +\def\VRfont{\rmfamily} +\def\PNsize{\BGfont\small} +\def\LGsize{\small} +\def\LGfsize{\footnotesize} +\newif\ifLGinline +\newif\ifLGd@fault +\def\LGbegin{\ifLGinline$\hbox\else$$\vbox\fi\bgroup\LGd@faulttrue} +\def\LGend{\ifLGd@fault\egroup\ifLGinline$\else$$\fi\LGd@faultfalse\fi} +\newif\ifc@mment +\newif\ifstr@ng +\newif\ifright@ +\newbox\ls@far +\newbox\tb@x +\newdimen\TBw@d +\newdimen\@ts +{\catcode`\_=\active \gdef\@setunder{\let_=\sp@ce}} +\newcommand{\lgrindheader}{} +\newcommand{\lgrindfilename}{}\newcommand{\lgrindfilesize}{} +\newcommand{\lgrindmodyear}{}\newcommand{\lgrindmodmonth}{} +\newcommand{\lgrindmodday}{}\newcommand{\lgrindmodtime}{} +\newenvironment{lgrind}[1][1]{% +\def\Line##1{\L{\LB{##1}}}% +\newcommand{\Head}[1]{\gdef\lgrindhead{##1}}% +\newcommand{\File}[6]{\gdef\lgrindfilename{##1}\message{(LGround: ##1)}% + \gdef\lgrindmodyear{##2}\gdef\lgrindmodmonth{##3}% + \gdef\lgrindmodday{##4}\gdef\lgrindmodtime{##5}% + \gdef\lgrindfilesize{##6}}% +\let\Proc=\DefaultProc% +\let\ProcCont=\DefaultProcCont% +\hfuzz=\LGsloppy +\def\NewPage{\filbreak\bigskip}% +\ifLGinline + \def\L##1{\setbox\ls@far\null{\CF\strut##1}\ignorespaces}% +\else + \let\r@ghtlno\relax\let\l@ftlno\relax + \ifnum\LGnuminterval>\z@ + \ifLGleftnum + \def\l@ftlno{\ifvoid\procbox\ifnum\lc@unt>\ln@xt + \global\advance\ln@xt by\LGnuminterval + \llap{{\normalfont\scriptsize\the\lc@unt\quad}}\fi + \else\llap{\box\procbox\quad}\fi}% + \else + \def\r@ghtlno{\ifvoid\procbox\ifnum\lc@unt>\ln@xt + \global\advance\ln@xt by\LGnuminterval + \rlap{{\normalfont\scriptsize\enspace\the\lc@unt}}\fi + \else\rlap{\enspace\box\procbox}\fi}% + \fi + \fi + \def\L##1{\@@par\setbox\ls@far=\null\strut + \global\advance\lc@unt by1% + \hbox to \hsize{\hskip\LGindent\l@ftlno ##1\egroup% + \hfil\r@ghtlno}% + \ignorespaces}% +\fi +\lc@unt=#1\advance\lc@unt by-1% +\ln@xt=\LGnuminterval\advance\ln@xt by-1% +\loop\ifnum\lc@unt>\ln@xt\advance\ln@xt by\LGnuminterval\repeat% +\def\LB{\hbox\bgroup\bgroup\box\ls@far\CF\let\next=}% +\def\Tab##1{\egroup\setbox\tb@x=\lastbox\TBw@d=\wd\tb@x% + \advance\TBw@d by 1\@ts\ifdim\TBw@d>##1\@ts + \setbox\ls@far=\hbox{\box\ls@far \box\tb@x \sp@ce}\else + \setbox\ls@far=\hbox to ##1\@ts{\box\ls@far \box\tb@x \hfil}\fi\LB}% +\ifLGinline\def\sp@ce{\hskip .3333em}% +\else \setbox\tb@x=\hbox{\texttt{0}}% + \@ts=0.8\wd\tb@x \def\sp@ce{\hskip 1\@ts}\fi +\catcode`\_=\active \@setunder +\def\CF{\ifc@mment\CMfont\else\ifstr@ng\STfont\fi\fi} +\def\N##1{{\NOfont ##1}\global\futurelet\next\ic@r}% +\def\K##1{{\KWfont ##1}\global\futurelet\next\ic@r}% +\def\V##1{{\VRfont ##1}\global\futurelet\next\ic@r}% +\def\ic@r{\let\@tempa\/\ifx.\next\let\@tempa\relax% + \else\ifx,\next\let\@tempa\relax\fi\fi\@tempa}% +\def\C{\egroup\bgroup\CMfont \global\c@mmenttrue \global\right@false}% +\def\CE{\egroup\bgroup \global\c@mmentfalse}% +\def\S{\egroup\bgroup\STfont \global\str@ngtrue}% +\def\SE{\egroup\bgroup \global\str@ngfalse}% +\def\,{\relax \ifmmode\mskip\thinmuskip \else\thinspace \fi}% +\def\!{\relax \ifmmode\mskip-\thinmuskip \else\negthinspace \fi}% +\def\CH##1##2##3{\relax\ifmmode ##1\relax +\else\ifstr@ng ##2\relax\else$##3$\fi\fi }% +\def\{{\CH\lbrace {\char'173}\lbrace }% +\def\}{\CH\rbrace {\char'175}\rbrace }% +\def\1{\CH///}% % / +\def\2{\CH\backslash {\char'134}\backslash }% % \ +\def\|{\CH|{\char'174}|}% +\def\<{\CH<<<}% +\def\>{\CH>>>}% +\def\*{\CH***}\relax %\relax for DOCSTY +\def\-{\CH---}% +\def\_{\ifstr@ng {\char'137}\else + \leavevmode \kern.06em \vbox{\hrule width.35em}% + \ifdim\fontdimen\@ne\font=\z@ \kern.06em \fi\fi }% +\def\&{\textsf{\char'046}}% +\def\#{{\STfont\char'043}}% +\def\%{{\char'045}}% +\def\~{{\char'176}}% +\def\3{\ifc@mment\ifright@ ''\global\right@false% + \else``\global\right@true \fi + \else{\texttt{\char'042}}\fi}% +\def\4{\ifc@mment'\else {\texttt{\char'015}}\fi}% +\def\5{{\texttt{\char'136}}}% +\def\${{\ifmmode\slshape\else\ifdim\fontdimen\@ne\font>\z@\slshape\fi\fi + \char'044}}% %No $ in \it, use \sl +\parindent\z@\parskip\z@ plus 1pt\hsize\linewidth% +\bgroup\BGfont +} +{\egroup\@@par} % end of environment lgrind +\def\lgrinde{\ifLGinline\else\LGsize\fi\begin{lgrind}} +\def\endlgrinde{\end{lgrind}} +\def\lagrind{\@ifstar{\@slagrind}{\@lagrind}} + +\def\@lagrind{\@ifnextchar[{\@@lagrind}{\@@lagrind[t]}} +\def\@slagrind{\@ifnextchar[{\@@slagrind}{\@@slagrind[t]}} +\def\@@lagrind[#1]#2#3#4{% + \begin{figure}[#1] +\ifLGnorules\else\hrule\fi +\vskip .5\baselineskip +\begin{minipage}\columnwidth\LGsize\LGindent\z@ + \begin{lgrind} +\input #2\relax + \end{lgrind} +\end{minipage} +\vskip .5\baselineskip plus .5\baselineskip +\ifLGnorules\else\hrule\fi\vskip .5\baselineskip +\begingroup + \setbox\z@=\hbox{#4}% + \ifdim\wd\z@>\z@ +\caption{#3}% +\label{#4}% + \else +\captcont{#3}% + \fi +\endgroup +\vskip 2pt + \end{figure} +} +\def\@@slagrind[#1]#2#3#4{% + \begin{figure*}[#1] +\ifLGnorules\else\hrule\fi +\vskip .5\baselineskip +\begin{minipage}\linewidth\LGsize\LGindent\z@ + \begin{lgrind} +\input #2\relax + \end{lgrind} +\end{minipage} +\vskip .5\baselineskip plus .5\baselineskip +\ifLGnorules\else\hrule\fi\vskip .5\baselineskip +\begingroup + \setbox\z@=\hbox{#4}% + \ifdim\wd\z@>\z@ +\caption{#3}% +\label{#4}% + \else +\captcont{#3}% + \fi +\endgroup +\vskip 2pt + \end{figure*} +} +\def\lgrindfile#1{% + \par\addvspace{0.1in} + \ifLGnorules\else\hrule\fi + \vskip .5\baselineskip + \begingroup\LGfsize\LGindent\z@ +\begin{lgrind} + \input #1\relax +\end{lgrind} + \endgroup + \vskip .5\baselineskip + \ifLGnorules\else\hrule\fi + \addvspace{0.1in} +} +\endinput +%% +%% End of file `lgrind.sty'. diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/llvm.lst b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/llvm.lst new file mode 100644 index 0000000..8adbb23 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/complexCode/llvm.lst @@ -0,0 +1,15 @@ +\lstdefinelanguage{LLVM} + {morekeywords={ + begin,end,true,false,declare,global,constant,const,internal,implementation, + null,to,except,not, + void,bool,sbyte,ubyte,short,ushort,int,uint,long,ulong,float,double,type,label,opaque, + add,sub,mul,div,rem,and,or,xor,setne,seteq,setlt,setgt,setle,setge, + phi,call,cast,shl,shr, + ret,br,switch,invoke, + malloc,alloca,free,load,store,getelementptr + }, + sensitive=true, +% morecomment=[l]{;}, +% morestring=[b]", + } + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/conditional.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/conditional.tex new file mode 100644 index 0000000..39dd102 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/conditional.tex @@ -0,0 +1,15 @@ + +Sometimes you have to do things differently depending on whether +you're building the entire Proceedings... here's an example... + +\ifols +\usepackage{cprog} +\usepackage[nolineno,norules]{lgrind} +\usepackage[hang,scriptsize]{subfigure} +\else +\usepackage{subfigure} +%%% both of these break the Proceedings and are thus evil +\usepackage{listings} +\input{llvm.lst} % Get listing support for llvm code +\fi + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/figures.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/figures.tex new file mode 100644 index 0000000..0f96dd6 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/figures.tex @@ -0,0 +1,40 @@ + +\begin{figure}[tb] + \begin{center} + \includegraphics[height=4cm]{ndp_table}\includegraphics[height=4cm]{ndp_table2} + \end{center} + \caption{NDP Table: Linux vs USAGI\label{ndp_table}} +\end{figure} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Need the whole page? Note the asterisk after 'figure'... + +\begin{figure*}[t] +\begin{center} +\includegraphics[width=0.65\textwidth]{chaos} \ \\ +(a) Chip \hspace{3cm} (b) CPU +\caption{A micrograph of an on-chip-multiprocessor M32R prototype chip} +\label{chaos} +\end{center} +\end{figure*} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{figure*} +\begin{center} +\begin{minipage}{16cm} +\begin{center} +\includegraphics[width=0.475\textwidth]{mappi} +\hspace{1cm} +\includegraphics[scale=0.7]{mappi_diagram} +\end{center} +\end{minipage} +\caption{Mappi: the M32R FPGA evaluation board; it has the M32R +softmacro on FPGA (CPU, MMU, Cache, SDI, SDRAMC, UART, Timer), FPGA +Xilinx XCV2000E $\times$2, SDRAM(64MB), FlashROM, 10BaseT Ethernet, +Serial 2ch, PC-card slot $\times$2, and Display I/F(VGA)} \label{mappi} +\end{center} +\end{figure*} + + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/includegraphics.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/includegraphics.tex new file mode 100644 index 0000000..01ab098 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/includegraphics.tex @@ -0,0 +1,15 @@ + +Various options can be used for scaling and cropping. Note +that \textwidth and \columnwidth can be your friends for such +operations -- most often, \columnwidth. + +\includegraphics[clip,width=\columnwidth]{ols2003-ipsec-fig-input} +\includegraphics[scale=0.9]{scsi-ds} +\includegraphics[clip,height=3.0in]{relayarch} +\includegraphics[width=2cm]{tpch-host-based-component} +\includegraphics[width=\linewidth]{tpcw-component} +\includegraphics{efi-fig5} + +This one uses 90 percent of the column width: +\includegraphics[width=0.9\columnwidth]{rmap_shadow_pages} + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/legalese.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/legalese.tex new file mode 100644 index 0000000..8d6e10e --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/legalese.tex @@ -0,0 +1,19 @@ + +% Legalese should be avoided unless your lawyers insist. Even +% then, it is typeset in small print because, although it may +% need to be there, there isn't a programmer on the planet +% who actively wants to read such stuff :-) +\begin{small} +\copyright ~2003 Your Lawyers, Inc. +Permission to redistribute in accordance with Linux Symposium +submission guidelines is granted; all other rights reserved. +A Bunch Of Things, and the Bunch Of Things logo are +registered trademarks and +NameOne, NameTwo, and NameThree are trademarks of Your Lawyers, Inc., +in the United States and/or other countries worldwide. +Linux is a registered trademark of Linus Torvalds. +Intel and Itanium are registered trademarks +of Intel Corporation. +All other trademarks mentioned herein are the property of their +respective owners. +\end{small} diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/multipleAuthors.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/multipleAuthors.tex new file mode 100644 index 0000000..fd89e77 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/multipleAuthors.tex @@ -0,0 +1,68 @@ + +Sometimes there are more than two authors, or the authors wish to have +a slightly different layout of names. That's fine, and here are some +examples. Just keep the font sizes and families consistent. +Note that we use Name, Institution, and Email address; postal addresses +are generally omitted for this conference. (Examples below use +fictitional email addresses, although they are otherwise from +the 2003 Linux Symposium.) + + +\title{Linux Support for NUMA Hardware} + +\author{ +Matthew Dobson, Patricia Gaughen, Michael Hohnbaum \\ +{\em IBM LTC, Beaverton, Oregon, USA}\\ +{\tt\normalsize one@email.addr, two@email.addr, three@email.addr} \\ +% +\smallskip +Erich Focht \\ +{\em NEC HPCE, Stuttgart, Germany}\\ +{\tt\normalsize four@other.email.addr} +} % end author + +\maketitle + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title{Linux\textregistered ~Scalability for Large NUMA Systems} + +\author{ +Ray Bryant and John Hawkes \\ +{\em Silicon Graphics, Inc.}\\ +{\tt\normalsize one@email.addr ~~~~~~~ two@email.addr}\\ +} % end author + +\maketitle + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The 'and' construct may be used for more than two authors: + +\title{Linux IPv6 Networking \\ +{\normalsize Past, Present, and Future}} + +\author{ +Hideaki Yoshifuji \\ +{\em The University of Tokyo}\\ +{\tt\normalsize one@email.addr} \\ +\and +Kazunori Miyazawa \\ +{\em Yokogawa Electric Corporation} \\ +{\tt\normalsize two@email.addr} \\ +\and +Yuji Sekiya \\ +{\em The University of Tokyo}\\ +{\tt\normalsize three@email.addr} \\ +\and +Hiroshi Esaki \\ +{\em The University of Tokyo}\\ +{\tt\normalsize four@another.email.addr} +\and +Jun Murai \\ +{\em Keio University}\\ +{\tt\normalsize five@a.different.email.addr} +} + +\maketitle + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/myPaper.pdf b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/myPaper.pdf new file mode 100644 index 0000000..9a3f880 Binary files /dev/null and b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/myPaper.pdf differ diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/myPaper.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/myPaper.tex new file mode 100644 index 0000000..a0300c2 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/myPaper.tex @@ -0,0 +1,495 @@ +\documentclass[twocolumn,12pt]{article} +\usepackage{ols} +\ifpdf +\usepackage[pdftex]{epsfig} +\else +\usepackage{epsfig} +\fi +\input{ols-fonts} + +\begin{document} + +% Required: Do not print the date. +\date{} + +\title{Formatting Tips and Tricks: \\ + {\normalsize Some potentially helpful examples}} + +\author{ +John W.\ Lockhart \\ +{\em Red Hat, Inc.}\\ +{\tt\normalsize lockhart@\{oco.net,redhat.com\}}\\ +\and +Optional Second Author\\ +{\em Second Institution}\\ +{\tt\normalsize another@address.for.email.com}\\ +} % end author section + +\maketitle + +% Required: Suppress page numbers on title page +\thispagestyle{empty} + +\section*{Abstract} +This example paper contains tips and tricks to ensure that what you +write is what appears in the \textit{Proceedings} with as little +editing as possible. The most important parts are at the end; please +read them. + +If you are new to {\LaTeX}, please read this paper in its entirety, +and check out its source and any other \texttt{.tex} files in the +\texttt{\small EXAMPLE} directory. + +If you have a paper from OLS-2002 or the 2003 Linux Symposium or GCC +Summit, and would like to crib from its final formatting, please drop +me a note and I'll be happy to send along the edited source. +Likewise, if you would like a copy of the final edited form of this +year's source, just let me know. + +The tree was created based on the information on the conference +website. If you don't have a subdirectory, create one along the same +lines. Blank materials are in the \texttt{\small TEMPLATES} +directory; \texttt{ProtoMake} and \texttt{Blank.tex} are probably the +most interesting files. Likewise, if your Abstract was available when +I looked, it has been included. Feel free to edit it; it's just there +to get you started and to provide an example of how to properly +include files should you need to. + + +\section{Simple Formatting Tricks} + +\LaTeX\ is just a fancy markup language\ldots \textit{most} of the +time. + +Some of the more common font and layout conventions follow: +\begin{itemize} +\item \texttt{texttt} produces \texttt{typewriter} style. +\item \texttt{textit} produces \textit{italics}. +\item \texttt{textbf} produces \textbf{boldface}. +\item \texttt{textsc} produces \textsc{small caps}. +\item \texttt{\textit{Font}} \textbf{\textsc{styles}} can be + \textit{\textbf{combined}}\footnote{Often eye-breakingly. Restraint is Good.} +\end{itemize} + +Paragraphs + can be awfully messy +in the source, and even +% what, a comment? +have comments interspersed. Be careful with % unintentional +percent signs---75\% of the time you'll accidentally comment out the +rest of the text on the line. + +Unescaped dollar signs will put you into math mode, so be likewise +careful. Of course, that's sometimes exactly where you \textit{want} +to be. + +Tildes do not produce tildes in \LaTeX ---think instead of +\textsc{html}'s \texttt{\ } and you'll get the picture. Instead, +you can use \texttt{{\textbackslash}{\~{}}\{\}} or +\texttt{{\textbackslash}textasciitilde} to produce a tilde. +Table~\ref{lockhart-tab1} provides a list of characters that require +special handling. Note that tables may ``float''---that is, {\LaTeX} +might move your table to a place where it all fits on a single page, +rather than putting it exactly where you have included it in your +source. +% +% that's +% \~{} +% or +% \textasciitilde +% for a tilde (without all the extra typesetting). +% Escape anything but a backslash by using a backslash. Backslash +% itself is \textbackslash (as seen above). + +\begin{table}[!th] +\centering +\begin{small} +\begin{tabular}[b]{c|c|p{2.3cm}} +Char & Command & Otherwise \\ +\hline +% # +\# & \texttt{{\textbackslash}\#} & argument number \tabularnewline +\hline +% $ +\$ & \texttt{{\textbackslash}\$} & toggle math mode \tabularnewline +\hline +% % +\% & \texttt{{\textbackslash}\%} & comment: ignore rest of line \tabularnewline +\hline +% & +\& & \texttt{{\textbackslash}\&} & tabstop \tabularnewline +\hline +% _ +\_ & \texttt{{\textbackslash}{\_}} & subscript in math mode \tabularnewline +\hline +% { +\{ & \texttt{{\textbackslash}\{} & open environment \tabularnewline +\hline +% } +\} & \texttt{{\textbackslash}\}} & close environment \tabularnewline +\hline +% ~ +{\~{}} & \texttt{{\textbackslash}{\~{}}\{\}} & non-breaking space \tabularnewline +{\textasciitilde} & \texttt{{\textbackslash}textasciitilde} & non-breaking space \tabularnewline +\hline +% \ +{\textbackslash} & \texttt{{\textbackslash}textbackslash} & begin command \tabularnewline +\end{tabular} +\end{small} +\caption{{\LaTeX} characters that require special handling} +\label{lockhart-tab1} +\end{table} + +\subsection{New Macros}\label{lockhart-newmacros} + +A number of macros based on the \texttt{url} package have been created +for this year. They are: +\begin{itemize} +\item \ident{ident} -- intended for identifiers, + \texttt{{\textbackslash}ident\{some\_text\}} sets the text in + \texttt{tt} and may break the line at any punctuation. Spaces are deleted. +\item \ident{lident} -- intended for long identifiers, this works the + same as \ident{ident}, but sets the text in a smaller font. +\item \ident{code} -- intended for short excerpts of code, this works + like \ident{ident}, except that spaces are preserved. Lines are not + broken on spaces. +\item \ident{lcode} -- intended for longer excerpts of code, this works + like \ident{code}, except that text is set in a smaller font. This + probably does not work correctly for multi-line code fragments; + consider using the \texttt{cprog} package for that. +\item \ident{brcode} -- intended for excerpts of source code, this works + like \ident{code}, except that line breaks may occur at spaces. +\item \ident{lbrcode} -- intended for excerpts of source code, this works + like \ident{brcode}, except that text is set in a smaller font. +\end{itemize} + +Examples are shown in Table~\ref{lockhart-macro-examples}. + +\begin{table*}[tb] +\begin{itemize} +\item \verb|\ident{a_long_identifier}| --- this example in turn yields \ident{a_long_identifier} + +\item \texttt{{\textbackslash}lident|an\_even\_lon ger\_identifier|} --- this + in turn + yields \lident|an_even_lon ger_identifier| + +\item \verb|\lcode{int un_useful(int *a) { return *a; }}| --- this + yields + \lcode{int un_useful(int *a) { return *a; }} + +\item \verb|\lbrcode{int un_useful(int *a) { return *a; }}| --- this + yields + \lbrcode{int un_useful(int *a) { return *a; }} + +\end{itemize} +\caption{Examples of New Macros} +\label{lockhart-macro-examples} +\end{table*} + +\section{Typesetting conventions} + +You shouldn't have to worry too much here, but I'll illustrate a few +things. + +Quotation marks, both `single' and ``double,'' look good in body text, +while other \texttt{"styles"} might look better for other uses. Note +that when you're typesetting for a compiler, punctuation goes outside +the \texttt{"quotation marks",} but punctuation is placed +\textit{inside} the quotation marks for ``narrative.'' + +There are multiple flavors of dashes---the em dash, the en--dash, the +oft-used hyphen, and the minus sign (math mode: $2x - 3$). + +\subsection{Choices for uniformity} + +For source code, we have chosen the common style of not beginning a +line with a comma. The compiler doesn't care, but keeping the printed +page consistent between papers is useful. + +Identifiers may need to be split between lines, so we use a typewriter font +and mark up the string appropriately: +\texttt{sys\_\linebreak[0]sched\_\linebreak[0]yield()} or +\texttt{\small A\_\linebreak[0]REALLY\_\linebreak[0]LONG\_\linebreak[0]IDENTIFIER\_\linebreak[0]THAT\_\linebreak[0]NEEDS\_\linebreak[0]TO\_\linebreak[0]BE\_\linebreak[0]THIS\_\linebreak[0]LONG} +would be good examples\footnote{Alternatively, see the macros in +Section~\ref{lockhart-newmacros}.}. To tell {\LaTeX} that an unhyphenated line +break is okay if required, just use \texttt{{\textbackslash}linebreak[0]}. + +\subsection{Points of English} + +A few nitpicks: +\begin{enumerate} +\item \textit{it's} is a macro which expands to \textit{it is}. It + has no other meaning. +\item \textit{its} is possessive. +\item Items in a series are: \textit{a}, \textit{b}, and \textit{c}. + Never \textit{a}, \textit{b} and \textit{c}. This rule makes it + much simpler when you must use complex values of (for example) + \textit{b}. For truly long constructs, you may use a semicolon + as a delimiter rather than a comma. +\item Some phrases should be hyphenated---for instance, when you're + using an adjective to modify another adjective, or a noun that + appears before another. A high-performance system; a win-win + situation; a high-level loop transformation; a slow-moving train, + but a slowly moving car; that sort of thing. Most of the time, + people will still be able to parse the results easily if the sentence isn't + perfect. +\item Be happy, know your homonyms. There, they're, their. To, two, + too. Your, you're. And so forth. Spelling checkers show their + limitations on this\ldots +\end{enumerate} + +Of course, proofreading is a wonderful thing, and every bit of it you +(or any guinea pigs you can persuade) do is a Good Thing. I'll +correct what I notice, but I have only two eyes and there's a lot of +margin-crunching formatting to be done. There are certain +times, often with non-native speakers, where I'm not clear on the +meaning. If I catch something like that in time, I'll ask; if not, +chances are that I'll keep my hands off of the section in question so +as not to insert a woefully incorrect meaning. + +\section{Tools} + +It helps to have the following installed on your system: +\begin{itemize} +\item \textbf{\tt tetex}. The most common \TeX\ package for Linux. +\item \textbf{\tt transfig}. Graphics in \texttt{.fig} format, + useful for figures. +\item \textbf{\tt dia}. Also useful for figures. +\item \textbf{\tt ImageMagick}. Great for photographs and graphics + manipulation \& conversion. +\item \textbf{\tt xpdf} or \textbf{\tt acroread} for viewing PDF files. +\item Utilites often found in {\tt tetex}, but which your distribution + may have packaged separately: \texttt{xdvi}, \texttt{dvips}, + \texttt{pdflatex}. +\item \textbf{\tt ghostscript} for handling Postscript. +\end{itemize} + +\section{Examples} + +Some examples from previous conferences have been included +in this package; hopefully they'll be useful in handling code +examples. Reducing everything to \texttt{footnotesize} or setting it +\texttt{verbatim} won't magically make it fit on the page, alas. Have +a look in the \texttt{EXAMPLE} directory to find these items: +\begin{itemize} +\item {\raggedright \texttt{\small bibli\-og\-raphy.tex}, \texttt{\small bibli\-og\-ra\-phy2.tex}, and + \texttt{\small ref\-er\-ences.tex}. Different ways of citing any relevant + works external to your paper.} +\item \texttt{conditional.tex}. If you have {\LaTeX} code that works + only by itself and need to do conditional processing, here's an example. +\item \texttt{\small complexCode/complexFigure.tex}. An example of a complex + figure containing side-by-side C code. +\item \texttt{figures.tex}. Different ways of doing figures. +\item \texttt{includegraphics.tex}. Different ways to include graphics. +\item \texttt{legalese.tex}. Legal disclaimers. +\item \texttt{multipleAuthors.tex}. Formatting examples for multiple authors. +\item \texttt{tables.tex}. Different ways to do tables. +\end{itemize} + +\subsection{Bad Examples} + +A prior year's paper gave the example of setting \texttt{verbatim} +sections in \texttt{tt}. Repetitiously and redundantly enough, that's +the default. So, please, no instances of +\begin{verbatim} + {\tt + \begin{verbatim} + ... +\end{verbatim} + +\begin{small} +\centering +\textbf{Corrected.} You might, however, wish to do something like this instead: +\begin{verbatim} + \begin{small} + \centering + \textbf{Corrected.} You ... + \begin{verbatim} + ... +\end{verbatim} +\end{small} +Of course, check the source of this document +(\lident{EXAMPLE/myPaper.tex}) for more ideas. Valid font sizes, for +instance, include \texttt{normalsize}, \texttt{small}, +\texttt{footnotesize}, \texttt{scriptsize}, and \texttt{tiny}. Please +don't use anything larger than \texttt{normalsize}. + + +Another extant bad example is the practice of ending paragraphs with a +double backslash (\texttt{\textbackslash\textbackslash}) \textit{and} +a blank line. This creates unwanted, superfluous whitespace between +paragraphs. \LaTeX\ is, believe it or not, supposed to be easy. Just +leave one or more blank lines between paragraphs and you'll be fine. + + +\section{Style packages} + +I've included the \texttt{combine} package used for last year's +\textit{Proceedings}. Just copy (or move) the \texttt{texmf} +directory to your home directory. You should then be able to use the +``BigBuild'' script to produce a sample \textit{Proceedings}. + +One environment is setting necessary to make everything work: +\begin{center} +{\footnotesize \texttt{export TEXINPUTS='.//:\$\{LOCALTEX\}//:'}} +\end{center} +% +% or for those of you who'd like to cut'n'paste from the source: +% export TEXINPUTS='.//:${LOCALTEX}//:' +% +If you add the above to your \texttt{\textasciitilde/.bashrc}, you can +dispense with \texttt{BigBuild} and just use \texttt{make}. + +Should you wish to download and install the latest and greatest +version of \texttt{combine}, it may be found at +\begin{center}\small +\texttt{http://www.tex.ac.uk\linebreak[0]/tex-archive\linebreak[0]/macros\linebreak[0]/latex\linebreak[0]/contrib\linebreak[0]/supported\linebreak[0]/combine} +\end{center} + +The most common cause of build problems is including style packages +that aren't compatible with \texttt{combine}. Unfortunately, this +includes\footnote{At least using last year's versions, that was the case.} +things like \texttt{hyperref} and \texttt{html}---two +otherwise-wonderful packages for handling URLs and such. + +\section{Graphics and Symbols} + +For importing graphics, don't forget to omit any file extensions. +That's because \texttt{latex} and \texttt{pdflatex} look for +different formats. + +The easiest ways to get special symbols such as +Registered\textregistered\ and Trademark\texttrademark\ +is to use the \LaTeX\ 2e \texttt{{\textbackslash}text} constructs: +thus, \texttt{{\textbackslash}textregistered} and +\texttt{{\textbackslash}texttrademark}. + +\section{\TeX\ References} + +See \texttt{\small http://www.tug.org/} and especially +\texttt{\small http://www.tug.org/begin.html} for +online and paper references. + +For a free and extremely useful document, try: +\texttt{\small http://www.tug.org\linebreak[0]/tex-archive\linebreak[0]/info\linebreak[0]/lshort\linebreak[0]/english\linebreak[0]/lshort.pdf}. +Note that translations\footnote{French, for instance: +\url{http://www.tug.org/tex-archive/info/lshort/french/flshort-3.20.pdf}; +note also that this section of the Example paper shows different ways +of handling URLs.} +are available, for those more comfortable in something other than +English: +\texttt{\small http://www.tug.org\linebreak[0]/tex-archive\linebreak[0]/info\linebreak[0]/lshort/} + +%%% Cut'n'paste versions of those URLs: +% http://www.tug.org/tex-archive/info/lshort/english/lshort.pdf +% http://www.tug.org/tex-archive/info/lshort/french/flshort-3.20.pdf +% http://www.tug.org/tex-archive/info/lshort/ + +I tend to use \textit{A Guide to \LaTeX} (Kopka \& Daly, ISBN 0-201-39825-7) and the +\textit{\LaTeX\ Graphics Companion} (Goossens, Rahtz, \& Mittelbach) +the most these days. + +You are also welcome to send questions to me at +\texttt{{lockhart}{@}{redhat.com}} (work) or +\texttt{{lockhart}{@}{oco.net}} (home). +% +% {}'s begin a new environment in TeX, as in C. +% A few extra {}'s might let an email address escape notice +% by spammers' collecting 'bots, should the .tex file wind +% up on a website somewhere at some point. +% + +As usual, please refrain from submitting anything remotely resembling +a Microsoft Word \texttt{.doc} file\ldots \texttt{}. It's a +\textit{lot} easier for me to fix up plain ASCII text and +convert/insert accompanying graphics, if you find yourself terminally +confused or in a dire emergency. + +\begin{figure}[!ht] +\begin{center} +\begin{footnotesize} +\begin{verbatim} + cd yourLastName + make clean + cd .. + tar zcf yourLastName.tar.gz \ + yourLastName +\end{verbatim} +\end{footnotesize} +\caption{Submitting a paper} +\end{center} +\label{lockhart-fig1} +\end{figure} + +\section{Simple rules to keep your formatting team happy} +\begin{enumerate} +\item To submit your paper, just \texttt{make clean} in your + directory, \texttt{tar} it up, and send the resulting gzipped tarball to + \texttt{papers@linuxsymposium.org} or \texttt{papers@gccsummit.org}, + as appropriate. See Figure~\ref{lockhart-fig1} for an example. +\item Use the existing directory structure, please. The directory + names are intended to be the last name of the presenter (lowercase, + punctuation omitted); the main paper should be + \texttt{lastname.tex} and any additional files should be + \texttt{lastname-file.extension}. This is because we use the + \texttt{combine} package to put all the papers together, and + instruct {\LaTeX} to search the entire (sub)directory hierarchy for + input files. You don't want someone else's file by mistake, right? + Putting your name on it helps to keep things straight. The same + goes for \verb|\label{}| and \verb|\ref{}| commands. +\item Omit file extensions and pathnames in your {\LaTeX} source, + please. By omitting the path and just saying \texttt{{\textbackslash}input\{lockhart-abstract\}}, + a paper can be built from both its directory and from its + parent directory. For graphics, omitting the extension lets \texttt{latex} or + \texttt{pdflatex} pick its preferred input format for the best + possible results. +\item No proprietary document/graphics formats, please. This especially means MS + Office, Visio, or other such tools. \LaTeX\ can, however, import + EPS and PDF, if you can save in those formats. +\item Originals, please. For example, if you have photographs, send + along the full-resolution JPG (crop out any undesired elements if + necessary, but use the maximum resolution). For diagrams, the XFig or Dia files. + This ensures the best possible print quality. Printing will be in + black and white, but the online PDF's will be in full color. Your + screen is probably about 72dpi, but the typesetter is probably using + something that's at least 1200dpi. The more resolution, the better. + Since hardcopy will be printed in Ottawa, the papersize will be + North American ``letter.'' Please keep that in mind if you are + concerned about page breaks and such. +\item Do \textbf{\textit{not}} use sans-serif fonts, or go changing + global font sizes. We're using 12-point Times Roman for body text. + Likewise, please don't go haywire with italics. I once received a + huge collection of tables, each of which set the font size and face + on an item-by-item basis. \textit{Incorrectly}. +\item The Postscript--to/from--PDF conversion tools aren't always a + good choice\ldots try it yourself and see. There's a good reason we + use \texttt{pdflatex} directly\ldots +\item Those of you who like to begin lines of code with commas: as + previously mentioned, we're + typesetting the code with the comma attached to the preceding + identifier (as most publishers do). Feel free to post your + preferred version to the web and to refer to it in the paper. +\item If possible, please avoid trivial new macros. Should you need + to add something, though, please use + \texttt{{\textbackslash}providecommand} rather than + \texttt{{\textbackslash}newcommand}, and preface the command with + your last name. This minimizes naming conflicts in the global + namespace of \texttt{combine}, and helps to ensure that you get the + macro that you want. +\item Trivia note: generally speaking, it takes longer to edit a + submission from a {\TeX}spert than plain, unmarked ASCII. If you + consider yourself a {\LaTeX} expert and love to write fancy new + commands, please consider contributing clean-ups or well-tested + new features for the infrastructure rather than customizing the + daylights out of your submission. Thanks! +\end{enumerate} + +This paper builds correctly using the tetex-1.0.7-66 package on Red +Hat Linux 9, and also on Fedora Core 2 (Test 1) with tetex-2.0.2-12.1. +Other distributions haven't been tested, but should work. If you run +into problems, please let me know. + +And remember, it's only typesetting, not rocket science. Or hacking +compilers or kernels. \texttt{:-)} Have some fun along the way\ldots + +\end{document} diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/references.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/references.tex new file mode 100644 index 0000000..9359956 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/references.tex @@ -0,0 +1,29 @@ + +For those who don't want to use BiBTeX, a simple References section +can do the trick. The following is from Rik van Riel's 2003 +Linux Symposium paper: + +\section{References} +\raggedright +Draves, Richard P. \textit{Page Replacement and Reference Bit +Emulation in Mach.} In Proceedings of the USENIX Mach Symposium, +Monterey, CA, November 1991. + +Y.\ Smaragdakis, S.\ Kaplan, and P.\ Wilson, \textit{EELRU: Simple and +Effective Adaptive Page Replacement} in Proceeding of the 1999 ACM +SIGMETRICS Conference, 1999. + +Gideon Glass and Pei Cao. \textit{Adaptive Page Replacement Based on +Memory Reference Behavior.} In Proceedings of ACM SIGMETRICS 1997, +June, 1997. + +D.\ Lee, J.\ Choi, J.-H.\ Kim, S.H.\ Noh, S.L.\ Min, Y.\ Cho, and +C.S.\ Kim, \textit{LRFU: A spectrum of policies that subsumes the +least recently used and least frequently used policies} IEEE +Trans.\ Computers, vol.\ 50, no.\ 12, pp. 1352--1360, 2001. + +S.\ Jiang and X.\ Zhuang. \textit{LIRS: An efficient low inter-reference +recency set replacement policy to improve buffer cache performance.} +In Proc.\ of SIGMETRICS 2002. + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/tables.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/tables.tex new file mode 100644 index 0000000..e2cfb6c --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/EXAMPLE/tables.tex @@ -0,0 +1,79 @@ + +A simple table.... + +\begin{table}[tbph] +\begin{center} +\caption{Summary of TAHI Conformance Test (usagi24-s20020401, \%)\label{tahi-usagi24}} +\begin{tabular}{|c|c|c|c|} +\hline +Test Series & Pass & Warn & Fail \\ +\hline +\hline +Spec. & 100 & 0 & 0 \\ +ICMPv6 & 100 & 0 & 0 \\ +Neighbor Discovery & 79 & 5 & 15 \\ +Autoconf & 98 & 2 & 0 \\ +PMTU & 50 & 0 & 50 \\ +IPv6/IPv4 Tunnel & 100 & 0 & 0 \\ +Robustness & 100 & 0 & 0 \\ +\hline +\end{tabular} +\end{center} +\end{table} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +A full-page, far more complex table.... + +\begin{table*}[t] +\begin{center} +\footnotesize +\begin{tabular}{|l|l||r|r|r|r|r|r|r|r|r||r|} + \hline + \multicolumn{2}{|c||}{} & & \multicolumn{2}{|c|}{ANSI.os} + & & \multicolumn{2}{|c|}{POSIX.os} & \multicolumn{2}{|c|}{LSB.os} + & & RedHat7.3 \\ + \cline{4-5} \cline{7-10} + \multicolumn{2}{|c||}{\raisebox{1.3ex}[0pt]{Section}} + & \multicolumn{1}{|c|}{\raisebox{1.3ex}[0pt]{ANSI.hdr}} + & \multicolumn{1}{|c|}{F} & \multicolumn{1}{|c|}{M} + & \multicolumn{1}{|c|}{\raisebox{1.3ex}[0pt]{POSIX.hdr}} + & \multicolumn{1}{|c|}{F} & \multicolumn{1}{|c|}{M} + & \multicolumn{1}{|c|}{F} & \multicolumn{1}{|c|}{M} + & \multicolumn{1}{|c||}{\raisebox{1.3ex}[0pt]{Total}} & Total \\ + \hline + \hline + & Expect + & 386 & 1244 & 1244 & 394 & 1600 & 1600 & 908 & 908 & 8284 & 8284 \\ + \cline{2-12} + \multicolumn{1}{|c|}{\raisebox{1.3ex}[0pt]{Total}} + & Actual + & 386 & 1244 & 1244 & 394 & 1600 & 1600 & 908 & 908 & 8284 & 8284 \\ + \hline + \multicolumn{2}{|l||}{Succeeded} + & 176 & 1112 & 86 & 207 & 1333 & 0 & 695 & 0 & 3609 & 3583 \\ + \multicolumn{2}{|l||}{Failed} + & 4 & 0 & 0 & 5 & 2 & 0 & 49 & 0 & 60 & 45 \\ + \multicolumn{2}{|l||}{Warnings} + & 0 & 12 & 0 & 0 & 5 & 0 & 2 & 0 & 19 & 18 \\ + \multicolumn{2}{|l||}{FIP} + & 2 & 0 & 0 & 2 & 2 & 0 & 1 & 0 & 7 & 7 \\ + \multicolumn{2}{|l||}{Unresolved} + & 0 & 0 & 0 & 0 & 0 & 0 & 5 & 0 & 5 & 4 \\ + \multicolumn{2}{|l||}{Uninitiated} + & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ + \multicolumn{2}{|l||}{Unsupported} + & 203 & 0 & 0 & 179 & 72 & 0 & 59 & 0 & 513 & 513 \\ + \multicolumn{2}{|l||}{Untested} + & 0 & 4 & 0 & 0 & 7 & 0 & 39 & 0 & 50 & 43 \\ + \multicolumn{2}{|l||}{NotInUse} + & 1 & 116 & 1158 & 1 & 179 & 1600 & 58 & 908 & 4021 & 4021 \\ + \hline +\end{tabular} +Key: F:function, M:macro;\ FIP: Further Information Provided +\end{center} +\hspace{5mm} +\caption{LSB 1.2 testsuites result} +\label{lsb_result} +\end{table*} + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/Makefile b/2004/netfilter-failover-ols2004/OLS2004-proceedings/Makefile new file mode 100644 index 0000000..66dfd97 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/Makefile @@ -0,0 +1,61 @@ + +.SUFFIXES: .dvi .tex .ps .eps .tif .pdf .fig .bbl .bib .gif + +MASTER=MasterOLS +TMASTER=MasterOLS-2side +TESTER=QuickMaster +SUBDIRS=welte + + +all : eachdir ps pdf + +eachdir : + for i in $(SUBDIRS) ; do $(MAKE) -C $$i ; done + +clean : topclean + for i in $(SUBDIRS) ; do $(MAKE) -C $$i clean ; done + +topclean : + rm -f *.aux *.log $(MASTER)-bak.pdf $(MASTER).dvi $(MASTER).ps + rm -f *.bbl $(MASTER).bbl $(MASTER).blg + if [ -f $(MASTER).pdf ] ; then mv $(MASTER).pdf $(MASTER)-bak.pdf ; fi + + +ps : $(MASTER).dvi + dvips -o $(MASTER).ps $(MASTER) + +# there seems to be a problem with extra brackets in some +# figure refs that occasionally crops up on the first run... +# thus the nonstop mode... + +$(MASTER).dvi: + latex -interaction=nonstopmode $(MASTER) || true + bibtex $(MASTER) || true + latex $(MASTER) || true + latex $(MASTER) + +twoside: + latex -interaction=nonstopmode $(TMASTER) || true + bibtex $(TMASTER) || true + latex -interaction=nonstopmode $(TMASTER) || true + latex $(TMASTER) + +twosidepdf: + pdflatex -interaction=nonstopmode $(TMASTER) || true + bibtex $(TMASTER) || true + pdflatex $(TMASTER) || true + pdflatex $(TMASTER) + +pdf: + pdflatex -interaction=nonstopmode $(MASTER) || true + bibtex $(MASTER) || true + pdflatex $(MASTER) || true + pdflatex $(MASTER) + +test: + pdflatex -interaction=nonstopmode $(TESTER) || true + bibtex $(TESTER) || true + pdflatex $(TESTER) || true + pdflatex $(TESTER) + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS-2side.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS-2side.tex new file mode 100644 index 0000000..aef21ca --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS-2side.tex @@ -0,0 +1,538 @@ +%% First set up a variable that docs can check +%% to see if we're doing the whole proceedings at once. +%% This can make a difference in how things are to be +%% processed, especially in instances where TeX's default +%% internal memory is insufficient for the whole proceedings, +%% but would work fine for a single document. +%% +%% Mostly it's used to conditionally create substitute commands +%% for packages like hyperref and html that won't play +%% nicely with the combine package. +%% + +\newcount\olsmaster +\olsmaster=1 + +\documentclass[twocolumn,twoside,12pt]{combine} +\usepackage{ols} +\ifpdf +\usepackage[pdftex]{epsfig} +\else +\usepackage{epsfig} +\fi +\usepackage{rotating} + +% Other packages that authors have used... +% nonstd: lineno +\usepackage[modulo]{lineno} +\usepackage{alltt} + +\usepackage[T1]{fontenc} +% \usepackage[dvips]{color,graphics,graphicx} +% \usepackage{color} +\ifpdf +\usepackage[pdftex]{graphicx} +\else +\usepackage{graphicx} +\fi + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +% \usepackage[normalem]{ulem} +% \usepackage{amsfonts,amsmath,amssymb,latexsym} +% nonstd: +%%% \usepackage{ascmac} +\usepackage{csty} +%% \usepackage{eclepsf} + +\usepackage{enumerate} +\usepackage{geometry} +%%%%% html breaks 'combine' rather badly +% \usepackage{html} +%%% hyperref is nearly as bad +% \usepackage{hyperref} +\usepackage{isolatin1} +\usepackage{latexsym} +\usepackage{longtable} +\usepackage{multicol} +% nonstd: +\usepackage{cprog} + +\usepackage{float} +\usepackage{supertabular} +\usepackage{textcomp} +%% \usepackage{thumbpdf} +\usepackage{times} +\usepackage{url} +\usepackage[T1,obeyspaces]{zrl} +% nonstd: +\usepackage{usenix} + +\usepackage{wrapfig} +% \input{mpss-commands} +%%% okay, are these evil? +%%% \newcounter{chapter} +%%% \setcounter{chapter}{0} +\usepackage{fancyvrb} +%%% \usepackage{listings} +%%% (probably :-( + + +\title{Proceedings of the\\ +Linux Symposium} +\author{\vspace{4in}} +\date{July 21st--24th, 2004\\ + Ottawa, Ontario\\ + Canada} + +% make room for "OLS2004...pagenumber" header +\setlength{\topmargin}{-0.5in} +\setlength{\headheight}{0.2in} +\setlength{\headsep}{0.3in} +\setlength{\evensidemargin}{0pt} +\setlength{\oddsidemargin}{0pt} + +%%%%%%%%%%%%%%%%% DOC STARTS HERE %%%%%%%%%%%%%%%%%%%% +\begin{document} +\pagestyle{empty} +\thispagestyle{empty} + + +%%%%%%%%%%%%%% TITLE PAGE %%%%%%%%%%%%%%%%%%% +\onecolumn +\thispagestyle{empty} +\maketitle +\thispagestyle{empty} + +%%%%%%%%%%%%%%% TABLE OF CONTENTS %%%%%%%%%%%%%% +\onecolumn +\thispagestyle{empty} +\cleardoublepage +\thispagestyle{empty} +\tableofcontents +\cleardoublepage +\thispagestyle{empty} + + +%%%%%%%%%%%%%%%%%%%%% CREDITS PAGE %%%%%%%%%%%%%%%%%% +\twocolumn[\thispagestyle{empty} + +\vspace{2cm} + +\textbf{{\Large Conference Organizers}} + +\vspace{5mm} +\begin{large} +\hspace*{0.5in}Andrew J.\ Hutton, \textit{Steamballoon, Inc.}\\ +\hspace*{0.5in}Stephanie Donovan, \textit{Linux Symposium}\\ +\hspace*{0.5in}C.\ Craig Ross, \textit{Linux Symposium} +\end{large} + +\vspace{1cm} +\textbf{{\Large Review Committee}} + +\vspace{5mm} +\begin{large} +\hspace*{0.5in}Jes Sorensen, \textit{Wild Open Source, Inc.}\\ +\hspace*{0.5in}Matt Domsch, \textit{Dell}\\ +\hspace*{0.5in}Gerrit Huizenga, \textit{IBM}\\ +\hspace*{0.5in}Matthew Wilcox, \textit{Hewlett-Packard}\\ +\hspace*{0.5in}Dirk Hohndel, \textit{Intel}\\ +\hspace*{0.5in}Val Henson, \textit{Sun Microsystems}\\ +\hspace*{0.5in}Jamal Hadi Salimi, \textit{Znyx}\\ +\hspace*{0.5in}Andrew Hutton, \textit{Steamballoon, Inc.} +\end{large} + +\vspace{1cm} + +\textbf{{\Large Proceedings Formatting Team}} + +\vspace{5mm} +\begin{large} +\hspace*{0.5in}John W.\ Lockhart, \textit{Red Hat, Inc.}\\ +\end{large} + +\vspace{3.5in} + +\vspace*{\fill} + +\begin{center} +Authors retain copyright to all submitted papers, but have granted +unlimited redistribution rights to all as a condition of submission. +\end{center}] + +%%%%%%%% PAGE HEADINGS DEFINITIONS %%%%%%%%%%%%%%%%%%%% +\pagestyle{myheadings} +%\markright{Linux Symposium\ \hrulefill\ } +\markboth{~~{\textbullet}~~Linux Symposium\ ~\hrulefill\ }{\ \hrulefill\ Linux Symposium 2004~~{\textbullet}~~} + + +%%%%%%%%%%%%%%% PAPERS BEGIN HERE %%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{papers}[\cleardoublepage] + +%% \coltocauthor{} +%% \coltoctitle{} +%% \label{} +%% \import{} + +% email=werner@almesberger.net +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=24 +\coltocauthor{Werner Almesberger} +\coltoctitle{TCP Connection Passing} +\label{art01} +\import{almesberger} + +% email=da-x@colinux.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=14 +\coltocauthor{Dan Aloni} +\coltoctitle{Cooperative Linux} +\label{art02} +\import{aloni} + +% email=andersen@codepoet.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=11 +\coltocauthor{Erik Andersen} +\coltoctitle{Build your own Embedded Linux Wireless Access Point} +\label{art03} +\import{andersen} + +% email=anderson@netsweng.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=40 +\coltocauthor{Stuart Anderson} +\coltoctitle{Run-time testing of LSB Applications} +\label{art04} +\import{anderson} + +% email=axboe@suse.de +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=152 +\coltocauthor{Jens Axboe} +\coltoctitle{Linux Block IO: present and future} +\label{art05} +\import{axboe} + +% email=suparna@in.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=64 +\coltocauthor{Suparna Bhattacharya} +\coltoctitle{Linux AIO Performance and Robustness for Enterprise Workloads} +\label{art06} +\import{bhattacharya} + +% email=tim.bird@am.sony.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=132 +\coltocauthor{Tim R.\ Bird} +\coltoctitle{Methods to Improve Bootup Time in Linux} +\label{art07} +\import{bird} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=153 +\coltocauthor{Martin J.\ Bligh} +\coltoctitle{Linux on NUMA} +\label{art08} +\import{bligh} + +% email=jejb@steeleye.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=27 +\coltocauthor{James Bottomley} +\coltoctitle{Improving Kernel Performance by Unmapping the Page Cache} +\label{art09} +\import{bottomley} + +% email=boutcher@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=26 +\coltocauthor{Dave Boutcher} +\coltoctitle{Linux Virtualization on IBM Power5 Systems} +\label{art10} +\import{boutcher} + +% email=len.brown@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=9 +\coltocauthor{Len Brown} +\coltoctitle{ACPI: Advanced Configuration and Power Management Interface} +\label{art11} +\import{brown} + +% email=raybry@sgi.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=147 +\coltocauthor{Ray Bryant} +\coltoctitle{Scaling Linux to the Extreme} +\label{art12} +\import{bryant} + +% email=peterc@gelato.unsw.edu.au +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=100 +\coltocauthor{Peter Chubb} +\coltoctitle{Get More Device Drivers out of the Kernel!} +\label{art13} +\import{chubb} + +% email=wim.coekaerts@oracle.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=13 +\coltocauthor{Wim A.\ Coekaerts} +\coltoctitle{2.6 kernel for big servers compared to 2.4} +\label{art14} +\import{coekaerts} + +% email=corbet@lwn.net +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=127 +\coltocauthor{Jonathan Corbet} +\coltoctitle{Where 2.7 is going} +\label{art15} +\import{corbet} + +% email=paul.devriendt@amd.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=22 +\coltocauthor{Paul Devriendt} +\coltoctitle{SMP and frequency scaling} +\label{art16} +\import{devriendt} + +% email=matt_domsch@dell.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=117 +\coltocauthor{Matt Domsch} +\coltoctitle{Dynamic Kernel Module Support: From Theory to Practice} +\label{art17} +\import{domsch} + +% email=scott.feldman@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=177 +\coltocauthor{Scott Feldman} +\coltoctitle{e100 weight reduction program} +\label{art18} +\import{feldman} + +% email=bfields@umich.edu +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=76 +\coltocauthor{James Bruce Fields} +\coltoctitle{NFSv4 and rpcsec\_gss for linux} +\label{art19} +\import{fields} + +% email=lgammo@cs.uwaterloo.ca +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Louay Gammo} +\coltoctitle{Comparing and Evaluating epoll(), select(), and poll()} +\label{art20} +\import{gammo} + +% email=jim.gettys@hp.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{James Gettys} +\coltoctitle{The (Re)Architecture of the X Window System} +\label{art21} +\import{gettys} + +% email=ibrahim.haddad@ericsson.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=51 +\coltocauthor{Ibrahim Haddad} +\coltoctitle{Towards Linux-based Open Telecom Platforms} +\label{art22} +\import{haddad} + +% email=linuxsymposium.org@halcrow.us +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=55 +\coltocauthor{Michael Austin Halcrow} +\coltoctitle{Demands, Solutions, and Improvements for Linux Filesystem Security} +\label{art23} +\import{halcrow} + +% email=haveblue@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=131 +\coltocauthor{Dave Hansen} +\coltoctitle{Hotplug Memory and the Linux VM} +\label{art24} +\import{hansen} + +% email=greg@kroah.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=168 +\coltocauthor{Greg Kroah-Hartman} +\coltoctitle{kobjects and krefs: lockless reference counting for kernel structures} +\label{art25} +\import{kroahhartman} + +% email=ricklind@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=82 +\coltocauthor{Rick Lindsley} +\coltoctitle{The Cursor Wiggles Faster: Measuring Scheduler Performance} +\label{art26} +\import{lindsley} + +% email=rml@ximian.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=122 +\coltocauthor{Robert Love} +\coltoctitle{On a Kernel Events Layer and User-space Message Bus System} +\label{art27} +\import{love} + +% email=mpm@selenic.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=30 +\coltocauthor{Matt Mackall} +\coltoctitle{Linux-tiny and directions for small systems} +\label{art28} +\import{mackall} + +% email=dan.magenheimer@hp.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=68 +\coltocauthor{Dan Magenheimer} +\coltoctitle{Xen and the Art of Open Source Virtualization} +\label{art29} +\import{magenheimer} + +% email=jon.maloy@ericsson.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=52 +\coltocauthor{Jon Paul Maloy} +\coltoctitle{TIPC: Providing Communication for Linux Clusters} +\label{art30} +\import{maloy} + +% email=dmccr@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=109 +\coltocauthor{Dave McCracken} +\coltoctitle{Object-based reverse mapping} +\label{art31} +\import{mccracken} + +% email=michael@ximian.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=145 +\coltocauthor{Michael Meeks} +\coltoctitle{The World of OpenOffice} +\label{art32} +\import{meeks} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=130 +\coltocauthor{Arnaldo Carvalho de Melo} +\coltoctitle{TCPfying the Poor Cousins} +\label{art33} +\import{melo} + +% email=kazunori@miyazawa.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=119 +\coltocauthor{Kazunori Miyazawa} +\coltoctitle{IPv6 IPsec and Mobile IPv6 implementation of Linux} +\label{art34} +\import{miyazawa} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Keith Packard} +\coltoctitle{Getting X off the hardware} +\label{art35} +\import{packard} + +% email=linuxram@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=54 +\coltocauthor{Ram Pai} +\coltoctitle{Linux 2.6 performance improvement through readahead optimization} +\label{art36} +\import{pai} + +% email=inaky.perez-gonzalez@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=10 +\coltocauthor{Inaky Perez-Gonzalez} +\coltoctitle{I would hate user space locking if it weren't that sexy\ldots} +\label{art37} +\import{perezgonzalez} + +% email=slpratt@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=58 +\coltocauthor{Steven L.\ Pratt} +\coltoctitle{Workload Dependent Performance Evaluation of the 2.6 I/O Schedulers} +\label{art38} +\import{pratt} + +% email=sam.robb@timesys.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=104 +\coltocauthor{Sam Robb} +\coltoctitle{Creating Cross-Compile Friendly Software} +\label{art39} +\import{robb} + +% email=john.ronciak@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=46 +\coltocauthor{John A.\ Ronciak} +\coltoctitle{Page-Flip Technology for use within the Linux Networking Stack} +\label{art40} +\import{ronciak} + +% email=rusty@rustcorp.com.au +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=16 +\coltocauthor{Rusty Russell} +\coltoctitle{Linux Kernel Hotplug CPU Support} +\label{art41} +\import{russell} + +% email=dipankar@in.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=156 +\coltocauthor{Dipankar Sarma} +\coltoctitle{Issues with Selected Scalability Features of the 2.6 Kernel} +\label{art42} +\import{sarma} + +% email=dshankar@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=72 +\coltocauthor{Kittur (Doc) S.\ Shankar} +\coltoctitle{Achieving CAPP/EAL3+ Security Certification for Linux} +\label{art43} +\import{shankar} + +% email=riel@redhat.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=125 +\coltocauthor{Rik van Riel} +\coltoctitle{Improving Linux resource control using CKRM} +\label{art44} +\import{riel} + +% email=avolmat@src.ricoh.co.jp +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=110 +\coltocauthor{Alain Volmat} +\coltoctitle{Linux on a Digital Camera} +\label{art45} +\import{volmat} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{John A.\ Walicki} +\coltoctitle{The Linux Client at IBM: Enterprise Enabling the Linux Desktop} +\label{art46} +\import{walicki} + +% email=laforge@gnumonks.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=86 +\coltocauthor{Harald Marc Welte} +\coltoctitle{ct\_sync: state replication of ip\_conntrack} +\label{art47} +\import{welte} + +% email=mats.d.wichmann@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=175 +\coltocauthor{Mats Wichmann} +\coltoctitle{Increasing the appeal of Open Source projects} +\label{art48} +\import{wichmann} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Matthew S.\ Wilson} +\coltoctitle{New approaches in software provisioning and system maintenance} +\label{art49} +\import{wilson} + +% email=cworth@east.isi.edu +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=70 +\coltocauthor{Carl D.\ Worth} +\coltoctitle{``On-demand'' Linux in a Power-aware Microsensor} +\label{art50} +\import{worth} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Chris Wright} +\coltoctitle{Linux Virtualization} +\label{art51} +\import{wright} + + +\end{papers} +\clearpage +\end{document} diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS.html b/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS.html new file mode 100644 index 0000000..be1ecaa --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS.html @@ -0,0 +1,671 @@ + + + + + +2004 Linux Symposium -- + + + + + + + + + + + +
+>linuxsymposium +
+July 21-24th, 2004, Ottawa, Canada +
+
+ + + + + + + +
+

Content

+Register/Login
+Paper Presentations
+Tutorials
+BOFS/Meetings
+Sponsors
+ +

Contacts

+Information
+ +
+Home
+ +
+

+ +

Paper Presentations

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Werner Almesberger 
+ TCP Connection Passing +
 
Dan Aloni 
+ Cooperative Linux +
 
Erik AndersenCodepoet Consulting
+ Build your own Embedded Linux Wireless Access Point +
 
Stuart AndersonnetSwweng, LLC
+ Run-time testing of LSB Applications +
 
Jens AxboeSUSE
+ Linux Block IO - present and future +
 
Suparna BhattacharyaIBM
+ Linux AIO Performance and Robustness for Enterprise Workloads +
 
Tim R BirdSony Electronics
+ Methods to Improve Bootup Time in Linux +
 
Martin J Bligh 
+ Linux on NUMA +
 
James BottomleySteelEye Technology, Inc.
+ Improving Kernel Performance by Unmapping the Page Cache +
 
Dave BoutcherIBM
+ Linux Virtualization on IBM Power5 Systems +
 
Len BrownIntel
+ ACPI -- Advanced Configuration and Power Management Interface +
 
Ray BryantSilicon Graphics
+ Scaling Linux to the Extreme +
 
Peter ChubbNICTA
+ Get More Device Drivers out of the Kernel! +
 
Wim A CoekaertsOracle
+ 2.6 kernel for big servers compared to 2.4 +
 
Jonathan CorbetLWN.net
+ Where 2.7 is going +
 
Paul DevriendtAMD
+ SMP and frequency scaling +
 
Scott FeldmanIntel
+ e100 weight reduction program +
 
James Bruce FieldsUniversity of Michigan
+ NFSv4 and rpcsec_gss for linux +
 
Louay GammoUniversity of Waterloo
+ Comparing and Evaluating epoll(), select(), and poll() +
 
James GettysHP
+ The (Re)Architecture of the X Window System +
 
Ibrahim HaddadEricsson Research
+ Towards Linux-based Open Telecom Platforms +
 
Michael Austin HalcrowInternational Business Machines, Inc.
+ Demands, Solutions, and Improvements for Linux Filesystem Security +
 
David Christopher HansenIBM
+ Hotplug Memory and the Linux VM +
 
Greg Kroah-Hartman 
+ kobjects and krefs - lockless reference counting for kernel structures +
 
Rick LindsleyIBM Linux Technology Center
+ The Cursor Wiggles Faster: Measuring Scheduler Performance +
 
Robert LoveNovell
+ On a Kernel Events Layer and User-space Message Bus System +
 
Matt MackallSelenic Consulting
+ Linux-tiny and directions for small systems +
 
Dan MagenheimerHewlett Packard Co
+ Xen and the Art of Open Source Virtualization +
 
Jon Paul MaloyEricsson
+ TIPC: Providing Communication for Linux Clusters +
 
Dave McCrackenIBM
+ Object-based reverse mapping +
 
Michael MeeksNovell, Inc.
+ The world of OpenOffice +
 
Arnaldo Carvalho de MeloConectiva S.A.
+ TCPfying the Poor Cousins +
 
Kazunori MiyazawaUSAGI Project
+ IPv6 IPsec and Mobile IPv6 implementation of Linux +
 
Andrew MortonOSDL
+ keynote +
 
Keith PackardHP
+ Getting X off the hardware +
 
Ram PaiIBM Corporation
+ Linux 2.6 performance improvement through readahead optimization +
 
Inaky Perez-Gonzalez 
+ I would hate user space locking if it weren&#039;t that sexy... +
 
Steven L. PrattIBM
+ Workload Dependant Performance Evaluation of the 2.6 I/O Schedulers +
 
Sam RobbTimeSys
+ Creating Cross-Compile Friendly Software +
 
John A RonciakIntel Corp.
+ Page-Flip Technology for use within the Linux Networking Stack +
 
Rusty RussellIBM
+ Linux Kernel Hotplug CPU Support +
 
Dipankar SarmaIBM Global Services India Private Limited
+ Issues with Selected Scalability Features of the 2.6 Kernel +
 
Kittur (Doc) S ShankarIBM
+ Achieving CAPP/EAL3+ Security Certification for Linux +
 
Rik van RielRed Hat Inc
+ Improving Linux resource control using CKRM +
 
Alain VolmatRicoh Company Ltd.
+ Linux on a Digital Camera +
 
John A WalickiIBM Research
+ The Linux Client at IBM - Enterprise Enabling the Linux Desktop +
 
Harald Marc Weltenetfilter core team
+ ct_sync - state replication of ip_conntrack +
 
Mats WichmannLSB Project / Intel Corporation
+ Increasing the appeal of Open Source projects +
 
Matthew S. Wilson 
+ New approaches in software provisioning and system maintenance +
 
Carl D. WorthUSC/Information Sciences Institute
+ "On-demand" Linux in a Power-aware Microsensor +
 
Chris WrightOSDL
+ Linux Virtualization +
 
+

+
+

Related

+ Venue
+ Travel
+ FAQ
+ +

Archives

+ Proceedings
+ Photos
+2003
+2002
+2001
+2000
+1999
+
+

+ +Valid XHTML 1.0! +

+ +
+
+ + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS.tex new file mode 100644 index 0000000..6cfd765 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/MasterOLS.tex @@ -0,0 +1,534 @@ +%% First set up a variable that docs can check +%% to see if we're doing the whole proceedings at once. +%% This can make a difference in how things are to be +%% processed, especially in instances where TeX's default +%% internal memory is insufficient for the whole proceedings, +%% but would work fine for a single document. +%% +%% Mostly it's used to conditionally create substitute commands +%% for packages like hyperref and html that won't play +%% nicely with the combine package. +%% + +\newcount\olsmaster +\olsmaster=1 + +\documentclass[twocolumn,12pt]{combine} +\usepackage{ols} +\ifpdf +\usepackage[pdftex]{epsfig} +\else +\usepackage{epsfig} +\fi +\usepackage{rotating} + +% Other packages that authors have used... +% nonstd: lineno +\usepackage[modulo]{lineno} +\usepackage{alltt} + +\usepackage[T1]{fontenc} +% \usepackage[dvips]{color,graphics,graphicx} +% \usepackage{color} +\ifpdf +\usepackage[pdftex]{graphicx} +\else +\usepackage{graphicx} +\fi + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +% \usepackage[normalem]{ulem} +% \usepackage{amsfonts,amsmath,amssymb,latexsym} +% nonstd: +%%% \usepackage{ascmac} +\usepackage{csty} +%% \usepackage{eclepsf} + +\usepackage{enumerate} +\usepackage{geometry} +%%%%% html breaks 'combine' rather badly +% \usepackage{html} +%%% hyperref is nearly as bad +% \usepackage{hyperref} +\usepackage{isolatin1} +\usepackage{latexsym} +\usepackage{longtable} +\usepackage{multicol} +% nonstd: +\usepackage{cprog} + +\usepackage{float} +\usepackage{supertabular} +\usepackage{textcomp} +%% \usepackage{thumbpdf} +\usepackage{times} +\usepackage{url} +\usepackage[T1,obeyspaces]{zrl} +% nonstd: +\usepackage{usenix} + +\usepackage{wrapfig} +% \input{mpss-commands} +%%% okay, are these evil? +%%% \newcounter{chapter} +%%% \setcounter{chapter}{0} +\usepackage{fancyvrb} +%%% \usepackage{listings} +%%% (probably :-( + + +\title{Proceedings of the\\ +Linux Symposium} +\author{\vspace{4in}} +\date{July 21st--24th, 2004\\ + Ottawa, Ontario\\ + Canada} + +% make room for "OLS2004...pagenumber" header +\setlength{\topmargin}{-0.5in} +\setlength{\headheight}{0.2in} +\setlength{\headsep}{0.3in} + +%%%%%%%%%%%%%%%%% DOC STARTS HERE %%%%%%%%%%%%%%%%%%%% +\begin{document} +\pagestyle{empty} +\thispagestyle{empty} + + +%%%%%%%%%%%%%% TITLE PAGE %%%%%%%%%%%%%%%%%%% +\onecolumn +\thispagestyle{empty} +\maketitle +\thispagestyle{empty} + +%%%%%%%%%%%%%%% TABLE OF CONTENTS %%%%%%%%%%%%%% +\onecolumn +\thispagestyle{empty} + + +\tableofcontents + + +%%%%%%%%%%%%%%%%%%%%% CREDITS PAGE %%%%%%%%%%%%%%%%%% +\twocolumn[\thispagestyle{empty} + +\vspace{2cm} + +\textbf{{\Large Conference Organizers}} + +\vspace{5mm} +\begin{large} +\hspace*{0.5in}Andrew J.\ Hutton, \textit{Steamballoon, Inc.}\\ +\hspace*{0.5in}Stephanie Donovan, \textit{Linux Symposium}\\ +\hspace*{0.5in}C.\ Craig Ross, \textit{Linux Symposium} +\end{large} + +\vspace{1cm} +\textbf{{\Large Review Committee}} + +\vspace{5mm} +\begin{large} +\hspace*{0.5in}Jes Sorensen, \textit{Wild Open Source, Inc.}\\ +\hspace*{0.5in}Matt Domsch, \textit{Dell}\\ +\hspace*{0.5in}Gerrit Huizenga, \textit{IBM}\\ +\hspace*{0.5in}Matthew Wilcox, \textit{Hewlett-Packard}\\ +\hspace*{0.5in}Dirk Hohndel, \textit{Intel}\\ +\hspace*{0.5in}Val Henson, \textit{Sun Microsystems}\\ +\hspace*{0.5in}Jamal Hadi Salimi, \textit{Znyx}\\ +\hspace*{0.5in}Andrew Hutton, \textit{Steamballoon, Inc.} +\end{large} + +\vspace{1cm} + +\textbf{{\Large Proceedings Formatting Team}} + +\vspace{5mm} +\begin{large} +\hspace*{0.5in}John W.\ Lockhart, \textit{Red Hat, Inc.}\\ +\end{large} + +\vspace{3.4in} + +\vspace*{\fill} + +\begin{center} +Authors retain copyright to all submitted papers, but have granted +unlimited redistribution rights to all as a condition of submission. +\end{center}] + +%%%%%%%% PAGE HEADINGS DEFINITIONS %%%%%%%%%%%%%%%%%%%% +\pagestyle{myheadings} +\markright{Linux Symposium\ \hrulefill\ } +%\markboth{Ottawa Linux Symposium\ \hrulefill\ }{\ \hrulefill\ Ottawa Linux Symposium 2004} + + +%%%%%%%%%%%%%%% PAPERS BEGIN HERE %%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{papers} + +%% \coltocauthor{} +%% \coltoctitle{} +%% \label{} +%% \import{} + +% email=werner@almesberger.net +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=24 +\coltocauthor{Werner Almesberger} +\coltoctitle{TCP Connection Passing} +\label{art01} +\import{almesberger} + +% email=da-x@colinux.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=14 +\coltocauthor{Dan Aloni} +\coltoctitle{Cooperative Linux} +\label{art02} +\import{aloni} + +% email=andersen@codepoet.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=11 +\coltocauthor{Erik Andersen} +\coltoctitle{Build your own Embedded Linux Wireless Access Point} +\label{art03} +\import{andersen} + +% email=anderson@netsweng.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=40 +\coltocauthor{Stuart Anderson} +\coltoctitle{Run-time testing of LSB Applications} +\label{art04} +\import{anderson} + +% email=axboe@suse.de +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=152 +\coltocauthor{Jens Axboe} +\coltoctitle{Linux Block IO: present and future} +\label{art05} +\import{axboe} + +% email=suparna@in.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=64 +\coltocauthor{Suparna Bhattacharya} +\coltoctitle{Linux AIO Performance and Robustness for Enterprise Workloads} +\label{art06} +\import{bhattacharya} + +% email=tim.bird@am.sony.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=132 +\coltocauthor{Tim R.\ Bird} +\coltoctitle{Methods to Improve Bootup Time in Linux} +\label{art07} +\import{bird} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=153 +\coltocauthor{Martin J.\ Bligh} +\coltoctitle{Linux on NUMA} +\label{art08} +\import{bligh} + +% email=jejb@steeleye.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=27 +\coltocauthor{James Bottomley} +\coltoctitle{Improving Kernel Performance by Unmapping the Page Cache} +\label{art09} +\import{bottomley} + +% email=boutcher@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=26 +\coltocauthor{Dave Boutcher} +\coltoctitle{Linux Virtualization on IBM Power5 Systems} +\label{art10} +\import{boutcher} + +% email=len.brown@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=9 +\coltocauthor{Len Brown} +\coltoctitle{ACPI: Advanced Configuration and Power Management Interface} +\label{art11} +\import{brown} + +% email=raybry@sgi.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=147 +\coltocauthor{Ray Bryant} +\coltoctitle{Scaling Linux to the Extreme} +\label{art12} +\import{bryant} + +% email=peterc@gelato.unsw.edu.au +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=100 +\coltocauthor{Peter Chubb} +\coltoctitle{Get More Device Drivers out of the Kernel!} +\label{art13} +\import{chubb} + +% email=wim.coekaerts@oracle.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=13 +\coltocauthor{Wim A.\ Coekaerts} +\coltoctitle{2.6 kernel for big servers compared to 2.4} +\label{art14} +\import{coekaerts} + +% email=corbet@lwn.net +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=127 +\coltocauthor{Jonathan Corbet} +\coltoctitle{Where 2.7 is going} +\label{art15} +\import{corbet} + +% email=paul.devriendt@amd.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=22 +\coltocauthor{Paul Devriendt} +\coltoctitle{SMP and frequency scaling} +\label{art16} +\import{devriendt} + +% email=matt_domsch@dell.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=117 +\coltocauthor{Matt Domsch} +\coltoctitle{Dynamic Kernel Module Support: From Theory to Practice} +\label{art17} +\import{domsch} + +% email=scott.feldman@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=177 +\coltocauthor{Scott Feldman} +\coltoctitle{e100 weight reduction program} +\label{art18} +\import{feldman} + +% email=bfields@umich.edu +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=76 +\coltocauthor{James Bruce Fields} +\coltoctitle{NFSv4 and rpcsec\_gss for linux} +\label{art19} +\import{fields} + +% email=lgammo@cs.uwaterloo.ca +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Louay Gammo} +\coltoctitle{Comparing and Evaluating epoll(), select(), and poll()} +\label{art20} +\import{gammo} + +% email=jim.gettys@hp.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{James Gettys} +\coltoctitle{The (Re)Architecture of the X Window System} +\label{art21} +\import{gettys} + +% email=ibrahim.haddad@ericsson.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=51 +\coltocauthor{Ibrahim Haddad} +\coltoctitle{Towards Linux-based Open Telecom Platforms} +\label{art22} +\import{haddad} + +% email=linuxsymposium.org@halcrow.us +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=55 +\coltocauthor{Michael Austin Halcrow} +\coltoctitle{Demands, Solutions, and Improvements for Linux Filesystem Security} +\label{art23} +\import{halcrow} + +% email=haveblue@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=131 +\coltocauthor{Dave Hansen} +\coltoctitle{Hotplug Memory and the Linux VM} +\label{art24} +\import{hansen} + +% email=greg@kroah.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=168 +\coltocauthor{Greg Kroah-Hartman} +\coltoctitle{kobjects and krefs: lockless reference counting for kernel structures} +\label{art25} +\import{kroahhartman} + +% email=ricklind@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=82 +\coltocauthor{Rick Lindsley} +\coltoctitle{The Cursor Wiggles Faster: Measuring Scheduler Performance} +\label{art26} +\import{lindsley} + +% email=rml@ximian.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=122 +\coltocauthor{Robert Love} +\coltoctitle{On a Kernel Events Layer and User-space Message Bus System} +\label{art27} +\import{love} + +% email=mpm@selenic.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=30 +\coltocauthor{Matt Mackall} +\coltoctitle{Linux-tiny and directions for small systems} +\label{art28} +\import{mackall} + +% email=dan.magenheimer@hp.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=68 +\coltocauthor{Dan Magenheimer} +\coltoctitle{Xen and the Art of Open Source Virtualization} +\label{art29} +\import{magenheimer} + +% email=jon.maloy@ericsson.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=52 +\coltocauthor{Jon Paul Maloy} +\coltoctitle{TIPC: Providing Communication for Linux Clusters} +\label{art30} +\import{maloy} + +% email=dmccr@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=109 +\coltocauthor{Dave McCracken} +\coltoctitle{Object-based reverse mapping} +\label{art31} +\import{mccracken} + +% email=michael@ximian.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=145 +\coltocauthor{Michael Meeks} +\coltoctitle{The World of OpenOffice} +\label{art32} +\import{meeks} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=130 +\coltocauthor{Arnaldo Carvalho de Melo} +\coltoctitle{TCPfying the Poor Cousins} +\label{art33} +\import{melo} + +% email=kazunori@miyazawa.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=119 +\coltocauthor{Kazunori Miyazawa} +\coltoctitle{IPv6 IPsec and Mobile IPv6 implementation of Linux} +\label{art34} +\import{miyazawa} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Keith Packard} +\coltoctitle{Getting X off the hardware} +\label{art35} +\import{packard} + +% email=linuxram@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=54 +\coltocauthor{Ram Pai} +\coltoctitle{Linux 2.6 performance improvement through readahead optimization} +\label{art36} +\import{pai} + +% email=inaky.perez-gonzalez@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=10 +\coltocauthor{Inaky Perez-Gonzalez} +\coltoctitle{I would hate user space locking if it weren't that sexy\ldots} +\label{art37} +\import{perezgonzalez} + +% email=slpratt@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=58 +\coltocauthor{Steven L.\ Pratt} +\coltoctitle{Workload Dependent Performance Evaluation of the 2.6 I/O Schedulers} +\label{art38} +\import{pratt} + +% email=sam.robb@timesys.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=104 +\coltocauthor{Sam Robb} +\coltoctitle{Creating Cross-Compile Friendly Software} +\label{art39} +\import{robb} + +% email=john.ronciak@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=46 +\coltocauthor{John A.\ Ronciak} +\coltoctitle{Page-Flip Technology for use within the Linux Networking Stack} +\label{art40} +\import{ronciak} + +% email=rusty@rustcorp.com.au +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=16 +\coltocauthor{Rusty Russell} +\coltoctitle{Linux Kernel Hotplug CPU Support} +\label{art41} +\import{russell} + +% email=dipankar@in.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=156 +\coltocauthor{Dipankar Sarma} +\coltoctitle{Issues with Selected Scalability Features of the 2.6 Kernel} +\label{art42} +\import{sarma} + +% email=dshankar@us.ibm.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=72 +\coltocauthor{Kittur (Doc) S.\ Shankar} +\coltoctitle{Achieving CAPP/EAL3+ Security Certification for Linux} +\label{art43} +\import{shankar} + +% email=riel@redhat.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=125 +\coltocauthor{Rik van Riel} +\coltoctitle{Improving Linux resource control using CKRM} +\label{art44} +\import{riel} + +% email=avolmat@src.ricoh.co.jp +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=110 +\coltocauthor{Alain Volmat} +\coltoctitle{Linux on a Digital Camera} +\label{art45} +\import{volmat} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{John A.\ Walicki} +\coltoctitle{The Linux Client at IBM: Enterprise Enabling the Linux Desktop} +\label{art46} +\import{walicki} + +% email=laforge@gnumonks.org +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=86 +\coltocauthor{Harald Marc Welte} +\coltoctitle{ct\_sync: state replication of ip\_conntrack} +\label{art47} +\import{welte} + +% email=mats.d.wichmann@intel.com +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=175 +\coltocauthor{Mats Wichmann} +\coltoctitle{Increasing the appeal of Open Source projects} +\label{art48} +\import{wichmann} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Matthew S.\ Wilson} +\coltoctitle{New approaches in software provisioning and system maintenance} +\label{art49} +\import{wilson} + +% email=cworth@east.isi.edu +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=70 +\coltocauthor{Carl D.\ Worth} +\coltoctitle{``On-demand'' Linux in a Power-aware Microsensor} +\label{art50} +\import{worth} + +% email=~ +% url=http://linuxsymposium.org/2004/view_abstract.php?content_key=0 +\coltocauthor{Chris Wright} +\coltoctitle{Linux Virtualization} +\label{art51} +\import{wright} + + +\end{papers} +\clearpage +\end{document} diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/Blank.tex b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/Blank.tex new file mode 100644 index 0000000..ab04992 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/Blank.tex @@ -0,0 +1,67 @@ +\documentclass[twocolumn,12pt]{article} +\usepackage{ols} +\ifpdf +\usepackage[pdftex]{epsfig} +\else +\usepackage{epsfig} +\fi +\input{ols-fonts} +% The section above is required; no edits, please. +% We are using a 12-point serif font with certain +% macro packages. + +% If you really MUST define additional commands +% here, please be aware that it's a shared namespace, +% and the main build will NOT pick up your commands +% (potentially adding time to the editing process). +% See the docs for the 'combine' package for details. +% +% Please do NOT use \newcommand; use \providecommand instead. +% The shared namespace will be easier if you use your last +% name as part of the new command, like so: +% +% \providecommand{\lastnameCmd}[1]{\texttt{#1}} + + +\begin{document} + +% Required: do not print the date. +\date{} + +\title{__TITLE__ \\ +% {\normalsize Subtitle goes here} +} + +\author{ +__AUTHOR__ \\ +{\em __INSTITUTION__}\\ +{\tt\normalsize __EMAIL__}\\ +% \and +% Second Author\\ +% {\em Second Institution}\\ +% {\tt\normalsize another@address.for.email.com}\\ +} % end author section + +\maketitle + +% Required: do not use page numbers on title page. +\thispagestyle{empty} + +\section*{Abstract} +% Here is how to include text from another file. Use +% \input rather than \include. +\input{__ABSTRACT__} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% BODY OF PAPER GOES HERE %%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{document} + + + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/ProtoMake b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/ProtoMake new file mode 100644 index 0000000..916018b --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/ProtoMake @@ -0,0 +1,41 @@ + +.SUFFIXES: .tex .dvi .aux .eps .fig .dia .ps .pdf .bib .bbl + +TOP= +TEXFILES=$(TOP).tex +FIGFILES:=$(wildcard *.fig) +EPSFILES:=$(wildcard *.eps) +EPSFILES+=$(FIGFILES:.fig=.eps) +PDFFILES=$(EPSFILES:.eps=.pdf) + +.fig.eps: + fig2dev -L eps $< >$@ + +.fig.pdf: + fig2dev -L pdf $< >$@ + +.eps.pdf: + epstopdf $< + +all: $(TOP).ps $(TOP).pdf + +$(TOP).ps: $(TOP).dvi + dvips -o $(TOP).ps $(TOP) + +$(TOP).dvi: $(TEXFILES) $(EPSFILES) + latex $(TOP) || true + bibtex $(TOP) || true + latex $(TOP) || true + latex $(TOP) + +$(TOP).pdf: $(TEXFILES) $(PDFFILES) + pdflatex $(TOP) || true + bibtex $(TOP) || true + pdflatex $(TOP) || true + pdflatex $(TOP) + +clean: + rm -f *.aux *.dvi *.log + rm -f $(TOP).ps $(TOP).pdf $(TOP).bbl $(TOP).blg + + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/README b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/README new file mode 100644 index 0000000..0386065 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/README @@ -0,0 +1,4 @@ +If you discover that you require any additional latex bits, please inform +papers@linuxsymposium.org so that they may be added to this package. + +Thank you. diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/cprog.sty b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/cprog.sty new file mode 100644 index 0000000..a336397 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/cprog.sty @@ -0,0 +1,249 @@ +% This is CSTY.STY as received by email at december 1990 +% +% The cprog macros allow programs in C, C++, Pascal, and Modula-2 to be +% included directly into TeX documents. Program text is set in a Roman +% font, comments in slanted, and strings in typewriter. Operators such as +% <= are optionally combined into single symbols like $\le$. Keywords are +% *not* emphasised---I find this ugly and distracting. (By purest +% coincidence it would also be very hard to do.) +% +% These macros can be \input in plain TeX or used as a style file in LaTeX. +% They provide a convenient alternative to tgrind, particularly for program +% fragments embedded in documents. Full instructions for use appear in the +% macro package itself. +% +% +% \'Eamonn McManus +% +% ASCII: !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~ +% + +% BEGIN: cprog.tex (or cprog.sty) - formatting of C programs +% By \'Eamonn McManus . This file is not copyrighted. +% $Id: cprog.tex,v 1.4 90/09/12 23:21:26 emcmanus Exp $ + +% This allows C programs to be formatted directly by TeX. It can be +% invoked by \cprogfile{filename} or (in LaTeX) \begin{cprog} ... +% \end{cprog} or (in plain TeX) \cprog ... \end{cprog}. In LaTeX, the +% alternative form \begin{cprog*} is allowed, where spaces in C strings +% are printed using the `square u' character (like LaTeX {verbatim*}). +% In plain TeX, you have to use \csname cprog*\endcsname for this (sorry). +% If you are using \cprogfile, say \cprogttspacetrue beforehand if you +% want this effect. + +% The formatting is (necessarily) simple. C text is set in a normal Roman +% font, comments in a slanted font, and strings in a typewriter font, with +% spaces optionally made visible as the `square u' symbol. Tabs are +% expanded to four spaces (this does not look good when comments are +% aligned to the right of program text). Some pairs of input characters +% appear as single output characters: << <= >> >= != -> are respectively +% TeX's \ll \le \gg \ge \ne \rightarrow. Say \cprogpairsfalse to disable +% this. + +% You can escape to TeX within cprog text by defining an escape character. +% The character @ is suitable for C and Pascal. I have not tested other +% characters so they may interact badly with their existing definitions here. +% To define @ as the escape character, do \cprogescape@. Then within text +% you can do @ followed by TeX commands. These commands will be in a TeX +% group with the \catcodes of \{}% as normal. The commands are terminated +% by a newline, which is not considered part of the program text. + +% The fonts below can be changed to alter the setting of the various parts +% of the program. The \cprogbaselineskip parameter can be altered to +% change the line spacing. LaTeX's \baselinestretch is taken into account +% too. The indentation applied to the whole program is \cprogindent, +% initially 0. Before and after the program there are skips of +% \beforecprogskip and \aftercprogskip; the default values are \parskip +% and 0 respectively (since there will often be a \parskip after the +% program anyway). + +% If the source text is Pascal or Modula-2, say \pascaltrue or \modulatrue +% (respectively) before formatting it. This makes (* *) be recognised for +% comments instead of /* */. Braces {} are also recognised for Pascal. +% \pascalfalse or \modulafalse as appropriate restores the default of C. + +% This package works by making a large number of characters active. Since +% even spaces are active, it is possible to examine the next character in +% a macro by making it a parameter, rather than using \futurelet as one +% would normally do. This is more convenient, but the coding does mean +% that if the next character itself wants to examine a character it may +% look at a token from the macro rather than the input text. I think that +% all cases that occur in practice have been looked after. + +% The macros could still do with some work. For example, the big macro +% defined with [] taking the place of {} could be recoded to use {} and so +% be more legible. The internal macros etc should have @ in their names, +% and should be checked against LaTeX macros for clashes. + +% Allow multiple inclusion to go faster. + +\ifx\undefined\cprogsetup % The whole file. + +% Define the fonts used for program text, comments, and strings. +% Note that if \it is used for \ccommentfont, something will need to +% be done about $ signs, which come out as pounds sterling. +\let\ctextfont=\tt \let\ccommentfont=\sl \let\cstringfont=\tt + +% Parameters. Unfortunately \newdimen is \outer (\outerness is a mistake) +% so we need a subterfuge in case we are skipping the file. +\csname newdimen\endcsname\cprogbaselineskip \cprogbaselineskip=\baselineskip +\csname newdimen\endcsname\cprogindent \cprogindent=0pt +\csname newdimen\endcsname\cprogwidth % Gets default=\hsize when cprog invoked. +\csname newskip\endcsname\beforecprogskip \beforecprogskip=\parskip +\csname newskip\endcsname\aftercprogskip \aftercprogskip=0pt +\csname newif\endcsname\ifcprogttspace +\csname newif\endcsname\ifcprogpairs \cprogpairstrue +\csname newif\endcsname\ifpascal +\csname newif\endcsname\ifmodula % Same as Pascal but no {comments}. +{\def\junk{\fi\fi\fi\fi}} % If skipping. + +\let\cprogesc\relax +\begingroup \catcode`~=\active +\gdef\cprogescape#1{% + {\catcode`~=\active \uccode`~=`#1 \aftergroup\cprogescont + \uppercase{\aftergroup~}}} +\gdef\cprogescont#1{% + \def\cprogesc{% + \makeactive#1\def#1{% + \begingroup \catcode`\\0 \catcode`{1 \catcode`}2 \catcode`\%14 + \catcode` 10 \clinegroup{}}}} +\endgroup + +\def\makeactive#1{\catcode`#1=\active} \def\makeother#1{\catcode`#1=12} +{\obeyspaces\gdef\activespace{ } \obeylines\gdef\activecr{^^M}} +{\catcode`|=\catcode`\\ \makeactive\\ |gdef|activebackslash{\}} +{\catcode9=\active \gdef\activetab{^^I}} + +% The following group makes many characters active, so that their catcodes +% in the \cprogchars macro are active, allowing them to be defined. We +% could alternatively define more stuff like \activebackslash and use +% \expandafter or (carefully) \edef to expand these in the macro. +\begingroup +\catcode`[=\catcode`{ \catcode`]=\catcode`} +\makeactive! \makeactive" \makeactive' \makeactive( \makeactive* \makeactive- +\makeactive/ \makeactive< \makeactive> \makeactive? \makeactive^ \makeactive_ +\makeactive\{ \makeactive| \makeactive\} +\gdef\activestar[*] +\gdef\cprogchars[% + \makeother##\makeother$\makeother&\makeother\%\makeother^% + \makeactive"\makeactive'\makeactive*\makeactive?\makeactive{\makeactive}% + \makeactive}\makeactive\\\makeactive_\expandafter\makeactive\activetab% + \makeactive!\makeactive<\makeactive>\makeactive-\makeactive|% + \ifcprogpairs + \def!##1[\ifx=##1$\ne$\else\string!\null##1\fi]% + \def-##1[\ifx>##1$\rightarrow$\else$\string-$##1\fi]% + % We use \aftergroup in < and > to deal with the fact that #1 might + % itself examine the following character. + \def<##1[[$\ifx<##1\ll$\else\ifx=##1\le$\else + \ifx>##1\ifpascal\ne$\else\string<$\aftergroup>\fi + \else \string<$\aftergroup##1\fi\fi\fi]]% + \def>##1[[$\ifx>##1\gg$\else\ifx=##1\ge$\else + \string>$\aftergroup##1\fi\fi]]% + \else \def![\string!\null]% Avoid !` ligature. + \def-[$\string-$]\def<[$\string<$]\def>[$\string>$]% + \fi + \def?[\string?\null]% Avoid ?` ligature. + \def"[\cquote"[\tt\string"]]\def'[\cquote'[\tt\ttquote]]\def*[$\string*$]% + \ifmodula \pascaltrue \fi % Except that {...} is used for sets. + \ifpascal + \ifmodula \dulllbrace \else + \def{[\begingroup \dulllbrace{\ccommentsetup\def}[\/\endgroup }]]% + \fi \makeactive(\let(=\pascalcomment \makeactive^\def^[$\uparrow$]% + \else \dulllbrace\makeactive/\let/=\ccomment + \fi + \def}[$\}$]\def|[$\string|$]\def~[$\sim$]\let_\_% + \expandafter\def\activebackslash[$\backslash$]% + \obeyspaces \expandafter\def\activespace[\leavevmode\space]% + \expandafter\def\activetab[\ \ \ \ ]% + \obeylines \expandafter\def\activecr[\strut\par]] +\gdef\cprogarg[\expandafter\def\activebackslash##1[\ifx##1e\let\next\cprogend + \else$\backslash$\let\next##1\fi\next]\eatcr] +\gdef\cprogend nd#1{cprog#2}[\endcprogarg] % #1 can be space, #2 *. +\gdef\dulllbrace[\def{[$\{$]] +\endgroup + +\chardef\ttquote=13 % Undirected single quote. +\begingroup \makeactive" \makeactive' \makeactive! +\gdef\cquote#1#2{% #1 is the quote, " or ', #2 how to set it. + \begingroup #2\cstringfont \makeactive\\% + \ifpascal \makeother\\\makeother^% + \else \expandafter\let\activebackslash\quotebackslash + \fi + \expandafter\edef\activespace{\ifcprogttspace\char`\ \else\ \fi}% + \expandafter\let\activecr=\unclosedstring + \def!{\string!\null}% No !` ligature. + \makeother*\makeother-\makeother/\makeother<\makeother>% + \makeother_\makeother\{\makeother\}\makeother|\makeother~% + \ifx"#1\let'\ttquote \else \makeother"\fi + \def#1{#2\endgroup}} +\endgroup +\csname newhelp\endcsname\cprogunclosedstr{% +A string or character constant earlier in the line was unclosed.^^JSo +I'm closing it now.} +\def\unclosedstring{% + \escapechar-1% + \errhelp\cprogunclosedstr + \errmessage{Unclosed string}% + \endgroup} +\newlinechar=`^^J +\def\quotebackslash#1{\char`\\% + \expandafter\ifx\activecr#1\strut\par + \else\if'\noexpand#1\ttquote\else\string#1\fi\fi} + +% In a comment, we shrink the width of the opening / to that of a space so +% that the stars in multiline comments will line up. We also shrink the +% closing * for symmetry, but not in Pascal where it looks nasty. +% Note that \end{cprog} is not recognised in strings or comments. +\def\spacebox#1{\leavevmode \hbox to \spaceskip{#1\hss}} + +\begingroup \makeactive* \makeactive! \makeother/ +\gdef\ccommentsetup{\ccommentfont \makeother-\makeother'\makeother"\makeother/% + \def!{\string!\null}\expandafter\def\activebackslash{$\backslash$}} +\gdef\ccomment#1{% + \let\next\relax + \ifx#1*\bgroup \ccommentsetup + \spacebox{\ctextfont\string/}*% + \makeactive*\def*{\commentstar/}% + \else\if\noexpand#1/\begingroup //\ccommentsetup \clinegroup\activecr + \else \string/\let\next#1% + \fi\fi\next} +\gdef\pascalcomment#1{% + \ifx#1*\bgroup \ccommentsetup \let\next\dulllbrace \makeother(% + \spacebox{\ctextfont\string(}*\makeactive*\def*{\commentstar)}% + \else (\let\next#1\fi \next} +\obeylines \long\gdef\clinegroup#1#2^^M{#2\endgroup#1}% +\endgroup +\def\commentstar#1#2{% + {\if#1\noexpand#2\egroup \ifpascal\else\aftergroup\spacebox\fi\fi}{$*$}#2} + +% We usually have an active ^^M after \cprog or \begin{cprog}. +\def\eatcr#1{{\expandafter\ifx\activecr#1\else\aftergroup#1\fi}} + +% Expand to stretch and shrink (plus and minus) of parameter #1. +\def\stretchshrink#1{\expandafter\eatdimenpart\the#1 \end} +\def\eatdimenpart#1 #2\end{#2} + +\ifx\undefined\baselinestretch \def\baselinestretch{1}\fi + +\def\cprogsetup{\ctextfont \cprogchars \parskip=0pt\stretchshrink\parskip + \ifdim \cprogwidth=0pt \else \hsize\cprogwidth \fi + \cprogesc \spaceskip\fontdimen2\font \xspaceskip\spaceskip + \baselineskip=\baselinestretch\cprogbaselineskip \parindent=\cprogindent + \vskip\beforecprogskip} +\def\endcprog{\endgroup \vskip\aftercprogskip} +\def\cprogfile#1{\begingroup \cprogsetup \input#1\endcprog} +\def\cprog{\begingroup \cprogttspacefalse \cprogsetup \cprogarg} +% Like {verbatim*}, {cprog*} uses `square u' for spaces in quoted strings. +\expandafter\def\csname cprog*\endcsname{% + \begingroup \cprogttspacetrue \cprogsetup \cprogarg} +\expandafter\let\csname endcprog*\endcsname=\endcprog +% In LaTeX we need to call \end{cprog} properly to close the environment, +% whereas in plain TeX this will end the job. The test for LaTeX is not +% bulletproof, but most plain TeX documents don't refer to the LaTeX logo. +\ifx\undefined\LaTeX \let\endcprogarg=\endcprog +\else \def\endcprogarg{\ifcprogttspace\end{cprog*}\else\end{cprog}\fi} +\fi + +\fi % \ifx\undefined\cprogsetup + +\endinput diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/csty.sty b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/csty.sty new file mode 100644 index 0000000..54dff9c --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/csty.sty @@ -0,0 +1,250 @@ +% This is CSTY.STY as received by email at december 1990 +% +% The cprog macros allow programs in C, C++, Pascal, and Modula-2 to be +% included directly into TeX documents. Program text is set in a Roman +% font, comments in slanted, and strings in typewriter. Operators such as +% <= are optionally combined into single symbols like $\le$. Keywords are +% *not* emphasised---I find this ugly and distracting. (By purest +% coincidence it would also be very hard to do.) +% +% These macros can be \input in plain TeX or used as a style file in LaTeX. +% They provide a convenient alternative to tgrind, particularly for program +% fragments embedded in documents. Full instructions for use appear in the +% macro package itself. +% +% +% \'Eamonn McManus +% +% ASCII: !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~ +% + +% BEGIN: cprog.tex (or cprog.sty) - formatting of C programs +% By \'Eamonn McManus . This file is not copyrighted. +% $Id: cprog.tex,v 1.4 90/09/12 23:21:26 emcmanus Exp $ + +% This allows C programs to be formatted directly by TeX. It can be +% invoked by \cprogfile{filename} or (in LaTeX) \begin{cprog} ... +% \end{cprog} or (in plain TeX) \cprog ... \end{cprog}. In LaTeX, the +% alternative form \begin{cprog*} is allowed, where spaces in C strings +% are printed using the `square u' character (like LaTeX {verbatim*}). +% In plain TeX, you have to use \csname cprog*\endcsname for this (sorry). +% If you are using \cprogfile, say \cprogttspacetrue beforehand if you +% want this effect. + +% The formatting is (necessarily) simple. C text is set in a normal Roman +% font, comments in a slanted font, and strings in a typewriter font, with +% spaces optionally made visible as the `square u' symbol. Tabs are +% expanded to four spaces (this does not look good when comments are +% aligned to the right of program text). Some pairs of input characters +% appear as single output characters: << <= >> >= != -> are respectively +% TeX's \ll \le \gg \ge \ne \rightarrow. Say \cprogpairsfalse to disable +% this. + +% You can escape to TeX within cprog text by defining an escape character. +% The character @ is suitable for C and Pascal. I have not tested other +% characters so they may interact badly with their existing definitions here. +% To define @ as the escape character, do \cprogescape@. Then within text +% you can do @ followed by TeX commands. These commands will be in a TeX +% group with the \catcodes of \{}% as normal. The commands are terminated +% by a newline, which is not considered part of the program text. + +% The fonts below can be changed to alter the setting of the various parts +% of the program. The \cprogbaselineskip parameter can be altered to +% change the line spacing. LaTeX's \baselinestretch is taken into account +% too. The indentation applied to the whole program is \cprogindent, +% initially 0. Before and after the program there are skips of +% \beforecprogskip and \aftercprogskip; the default values are \parskip +% and 0 respectively (since there will often be a \parskip after the +% program anyway). + +% If the source text is Pascal or Modula-2, say \pascaltrue or \modulatrue +% (respectively) before formatting it. This makes (* *) be recognised for +% comments instead of /* */. Braces {} are also recognised for Pascal. +% \pascalfalse or \modulafalse as appropriate restores the default of C. + +% This package works by making a large number of characters active. Since +% even spaces are active, it is possible to examine the next character in +% a macro by making it a parameter, rather than using \futurelet as one +% would normally do. This is more convenient, but the coding does mean +% that if the next character itself wants to examine a character it may +% look at a token from the macro rather than the input text. I think that +% all cases that occur in practice have been looked after. + +% The macros could still do with some work. For example, the big macro +% defined with [] taking the place of {} could be recoded to use {} and so +% be more legible. The internal macros etc should have @ in their names, +% and should be checked against LaTeX macros for clashes. + +% Allow multiple inclusion to go faster. + +\ifx\undefined\cprogsetup % The whole file. + +% Define the fonts used for program text, comments, and strings. +% Note that if \it is used for \ccommentfont, something will need to +% be done about $ signs, which come out as pounds sterling. +\let\ctextfont=\tt \let\ccommentfont=\sl \let\cstringfont=\tt + +% Parameters. Unfortunately \newdimen is \outer (\outerness is a mistake) +% so we need a subterfuge in case we are skipping the file. +\csname newdimen\endcsname\cprogbaselineskip \cprogbaselineskip=\baselineskip +\csname newdimen\endcsname\cprogindent \cprogindent=0pt +\csname newdimen\endcsname\cprogwidth % Gets default=\hsize when cprog invoked. +\csname newskip\endcsname\beforecprogskip \beforecprogskip=\parskip +\csname newskip\endcsname\aftercprogskip \aftercprogskip=0pt +\csname newif\endcsname\ifcprogttspace +\csname newif\endcsname\ifcprogpairs \cprogpairstrue +\csname newif\endcsname\ifpascal +\csname newif\endcsname\ifmodula % Same as Pascal but no {comments}. +{\def\junk{\fi\fi\fi\fi}} % If skipping. + +\let\cprogesc\relax +\begingroup \catcode`~=\active +\gdef\cprogescape#1{% + {\catcode`~=\active \uccode`~=`#1 \aftergroup\cprogescont + \uppercase{\aftergroup~}}} +\gdef\cprogescont#1{% + \def\cprogesc{% + \makeactive#1\def#1{% + \begingroup \catcode`\\0 \catcode`{1 \catcode`}2 \catcode`\%14 + \catcode` 10 \clinegroup{}}}} +\endgroup + +\def\makeactive#1{\catcode`#1=\active} \def\makeother#1{\catcode`#1=12} +{\obeyspaces\gdef\activespace{ } \obeylines\gdef\activecr{^^M}} +{\catcode`|=\catcode`\\ \makeactive\\ |gdef|activebackslash{\}} +{\catcode9=\active \gdef\activetab{^^I}} + +% The following group makes many characters active, so that their catcodes +% in the \cprogchars macro are active, allowing them to be defined. We +% could alternatively define more stuff like \activebackslash and use +% \expandafter or (carefully) \edef to expand these in the macro. +\begingroup +\catcode`[=\catcode`{ \catcode`]=\catcode`} +\makeactive! \makeactive" \makeactive' \makeactive( \makeactive* \makeactive- +\makeactive/ \makeactive< \makeactive> \makeactive? \makeactive^ \makeactive_ +\makeactive\{ \makeactive| \makeactive\} +\gdef\activestar[*] +\gdef\cprogchars[% + \makeother##\makeother$\makeother&\makeother\%\makeother^% + \makeactive"\makeactive'\makeactive*\makeactive?\makeactive{\makeactive}% + \makeactive}\makeactive\\\makeactive_\expandafter\makeactive\activetab% + \makeactive!\makeactive<\makeactive>\makeactive-\makeactive|% + \ifcprogpairs + \def!##1[\ifx=##1$\ne$\else\string!\null##1\fi]% + \def-##1[\ifx>##1$\rightarrow$\else$\string-$##1\fi]% + % We use \aftergroup in < and > to deal with the fact that #1 might + % itself examine the following character. + \def<##1[[$\ifx<##1\ll$\else\ifx=##1\le$\else + \ifx>##1\ifpascal\ne$\else\string<$\aftergroup>\fi + \else \string<$\aftergroup##1\fi\fi\fi]]% + \def>##1[[$\ifx>##1\gg$\else\ifx=##1\ge$\else + \string>$\aftergroup##1\fi\fi]]% + \else \def![\string!\null]% Avoid !` ligature. + \def-[$\string-$]\def<[$\string<$]\def>[$\string>$]% + \fi + \def?[\string?\null]% Avoid ?` ligature. + \def"[\cquote"[\tt\string"]]\def'[\cquote'[\tt\ttquote]]\def*[$\string*$]% + \ifmodula \pascaltrue \fi % Except that {...} is used for sets. + \ifpascal + \ifmodula \dulllbrace \else + \def{[\begingroup \dulllbrace{\ccommentsetup\def}[\/\endgroup }]]% + \fi \makeactive(\let(=\pascalcomment \makeactive^\def^[$\uparrow$]% + \else \dulllbrace\makeactive/\let/=\ccomment + \fi + \def}[$\}$]\def|[$\string|$]\def~[$\sim$]\let_\_% + \expandafter\def\activebackslash[$\backslash$]% + \obeyspaces \expandafter\def\activespace[\leavevmode\space]% + \expandafter\def\activetab[\ \ \ \ ]% + \obeylines \expandafter\def\activecr[\strut\par]] +\gdef\cprogarg[\expandafter\def\activebackslash##1[\ifx##1e\let\next\cprogend + \else$\backslash$\let\next##1\fi\next]\eatcr] +\gdef\cprogend nd#1{cprog#2}[\endcprogarg] % #1 can be space, #2 *. +\gdef\dulllbrace[\def{[$\{$]] +\endgroup + +\chardef\ttquote=13 % Undirected single quote. +\begingroup \makeactive" \makeactive' \makeactive! +\gdef\cquote#1#2{% #1 is the quote, " or ', #2 how to set it. + \begingroup #2\cstringfont \makeactive\\% + \ifpascal \makeother\\\makeother^% + \else \expandafter\let\activebackslash\quotebackslash + \fi + \expandafter\edef\activespace{\ifcprogttspace\char`\ \else\ \fi}% + \expandafter\let\activecr=\unclosedstring + \def!{\string!\null}% No !` ligature. + \makeother*\makeother-\makeother/\makeother<\makeother>% + \makeother_\makeother\{\makeother\}\makeother|\makeother~% + \ifx"#1\let'\ttquote \else \makeother"\fi + \def#1{#2\endgroup}} +\endgroup +\csname newhelp\endcsname\cprogunclosedstr{% +A string or character constant earlier in the line was unclosed.^^JSo +I'm closing it now.} +\def\unclosedstring{% + \escapechar-1% + \errhelp\cprogunclosedstr + \errmessage{Unclosed string}% + \endgroup} +\newlinechar=`^^J +\def\quotebackslash#1{\char`\\% + \expandafter\ifx\activecr#1\strut\par + \else\if'\noexpand#1\ttquote\else\string#1\fi\fi} + +% In a comment, we shrink the width of the opening / to that of a space so +% that the stars in multiline comments will line up. We also shrink the +% closing * for symmetry, but not in Pascal where it looks nasty. +% Note that \end{cprog} is not recognised in strings or comments. +\def\spacebox#1{\leavevmode \hbox to \spaceskip{#1\hss}} + +\begingroup \makeactive* \makeactive! \makeother/ +\gdef\ccommentsetup{\ccommentfont \makeother-\makeother'\makeother"\makeother/% + \def!{\string!\null}\expandafter\def\activebackslash{$\backslash$}} +\gdef\ccomment#1{% + \let\next\relax + \ifx#1*\bgroup \ccommentsetup + \spacebox{\ctextfont\string/}*% + \makeactive*\def*{\commentstar/}% + \else\if\noexpand#1/\begingroup //\ccommentsetup \clinegroup\activecr + \else \string/\let\next#1% + \fi\fi\next} +\gdef\pascalcomment#1{% + \ifx#1*\bgroup \ccommentsetup \let\next\dulllbrace \makeother(% + \spacebox{\ctextfont\string(}*\makeactive*\def*{\commentstar)}% + \else (\let\next#1\fi \next} +\obeylines \long\gdef\clinegroup#1#2^^M{#2\endgroup#1}% +\endgroup +\def\commentstar#1#2{% + {\if#1\noexpand#2\egroup \ifpascal\else\aftergroup\spacebox\fi\fi}{$*$}#2} + +% We usually have an active ^^M after \cprog or \begin{cprog}. +\def\eatcr#1{{\expandafter\ifx\activecr#1\else\aftergroup#1\fi}} + +% Expand to stretch and shrink (plus and minus) of parameter #1. +\def\stretchshrink#1{\expandafter\eatdimenpart\the#1 \end} +\def\eatdimenpart#1 #2\end{#2} + +\ifx\undefined\baselinestretch \def\baselinestretch{1}\fi + +\def\cprogsetup{\ctextfont \cprogchars \parskip=0pt\stretchshrink\parskip + \ifdim \cprogwidth=0pt \else \hsize\cprogwidth \fi + \cprogesc \spaceskip\fontdimen2\font \xspaceskip\spaceskip + \baselineskip=\baselinestretch\cprogbaselineskip \parindent=\cprogindent + \vskip\beforecprogskip} +\def\endcprog{\endgroup \vskip\aftercprogskip} +\def\cprogfile#1{\begingroup \cprogsetup \input#1\endcprog} +\def\cprog{\begingroup \cprogttspacefalse \cprogsetup \cprogarg} +% Like {verbatim*}, {cprog*} uses `square u' for spaces in quoted strings. +\expandafter\def\csname cprog*\endcsname{% + \begingroup \cprogttspacetrue \cprogsetup \cprogarg} +\expandafter\let\csname endcprog*\endcsname=\endcprog +% In LaTeX we need to call \end{cprog} properly to close the environment, +% whereas in plain TeX this will end the job. The test for LaTeX is not +% bulletproof, but most plain TeX documents don't refer to the LaTeX logo. +\ifx\undefined\LaTeX \let\endcprogarg=\endcprog +\else \def\endcprogarg{\ifcprogttspace\end{cprog*}\else\end{cprog}\fi} +\fi + +\fi % \ifx\undefined\cprogsetup + +\endinput + diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/eclepsf.sty b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/eclepsf.sty new file mode 100644 index 0000000..3f41d65 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/eclepsf.sty @@ -0,0 +1,278 @@ +% EPSF macros by Kazuhiro Kazama and modified by Hideki ISOZAKI +% based on Trevor J. Darrell's psfig.tex +% +% All software, documentation, and related files in this distribution of +% psfig/tex are Copyright (c) 1987 Trevor J. Darrell +% +% Permission is granted for use and non-profit distribution of psfig/tex +% providing that this notice be clearly maintained, but the right to +% distribute any portion of psfig/tex for profit or as part of any commercial +% product is specifically reserved for the author. +\endlinechar=-1 + +\typeout{EPSF macro package for LaTeX. version 1.5 - Released May 11, 1992} +\newcount\@arga +\newcount\@argb +\newcount\@argc +\newcount\@ctmpa +\newcount\@ctmpb +\newcount\@ctmpc +\newcount\@ctmpd +\newcount\@ctmpe +\newdimen\@darg +\newdimen\@bblen +\newif\ifepsfdraft +\epsfdraftfalse + +\def\@setpsfile#1{ + \def\@psfile{#1} + \bb@search +} +\def\@setpsheight#1{ + \@darg=#1\relax + \edef\@psheight{\number\@darg} +} +\def\@setpswidth#1{ + \@darg=#1\relax + \edef\@pswidth{\number\@darg} +} +\def\@setpsscale#1{ + \def\@pshscale{#1} + \def\@psvscale{#1} +} +\def\@setpshscale#1{ + \def\@pshscale{#1} +} + +\def\@setpsvscale#1{ + \def\@psvscale{#1} +} + + + +% +% Go through the options setting things up. +% +\def\parse@ps@parms#1{ + \def\@bbw{0}\def\@bbh{0} + \def\@pshscale{1}\def\@psvscale{1} + \def\@psheight{0}\def\@pswidth{0}% in sp + \@for\@epsfopt:=#1\do + {\expandafter\@setparms\@epsfopt,}} + +\def\@setparms#1=#2,{\@nameuse{@setps#1}{#2}} + +% +% Compute %%BoundingBox height and width +% +\newif\ifcontinue + +\catcode`\%=12\relax + +\newread\ps@stream +\def\bb@search{\continuetrue + \typeout{analyzing \@psfile} + \openin\ps@stream=\@psfile + \catcode`\%=12\relax + \ifeof\ps@stream\errmessage{epsf: \@psfile\space not found}\fi + \loop + \read\ps@stream to \epsf@line + \expandafter\epsf@getbb\epsf@line%%BoundingBox:\end@getbb + \ifnum\@bbw=\z@\else \continuefalse\fi + \ifeof\ps@stream \continuefalse \fi + \ifcontinue \repeat + \closein\ps@stream + \catcode`\%=14 +} + +\def\epsf@getbb #1%%BoundingBox:#2\end@getbb{ + \def\epsf@tmp{#1}\def\epsf@atend{ (atend)} + \ifx\epsf@tmp\empty + \edef\epsf@tmp{#2} + \ifx\epsf@tmp\epsf@atend + \errmessage{%%BoundingBox: (atend)} + \else + \epsf@bbarg #2 0 0 0 0 0 %%BoundingBox\end@getbb + \fi + \fi} + +\def\epsf@bbarg #1 #2 #3 #4 #5%%BoundingBox#6\end@getbb{ + \def\epsf@tmp{#1} + \ifx\epsf@tmp\empty + \@darg=#4bp \advance\@darg-#2bp \edef\@bbw{\number\@darg} + \@darg=#5bp \advance\@darg-#3bp \edef\@bbh{\number\@darg} + \else + \@darg=#3bp \advance\@darg-#1bp \edef\@bbw{\number\@darg} + \@darg=#4bp \advance\@darg-#2bp \edef\@bbh{\number\@darg} + \fi + {\@arga=\@bbw \divide\@arga by 186468\relax + \@argb=\@bbh \divide\@argb by 186468\relax + \message{original: \the\@arga mm x \the\@argb mm}} +} + +\catcode`\%=14\relax + + +% \in@hundreds performs #1 * (#2 / #3) correct to the hundreds, +% then leaves the result in @result +% + +\def\in@hundreds#1#2#3{\@argb=#2 \@argc=#3 + \@ctmpa=\@argb % @ctmpa is first digit #2/#3 + \divide\@ctmpa by \@argc + \@ctmpb=\@ctmpa + \multiply\@ctmpb by \@argc + \advance\@argb by -\@ctmpb + \multiply\@argb by 10 + \@ctmpb=\@argb % @ctmpb is second digit of #2/#3 + \divide\@ctmpb by \@argc + \@ctmpc=\@ctmpb + \multiply\@ctmpc by \@argc + \advance\@argb by -\@ctmpc + \multiply\@argb by 10 + \@ctmpc=\@argb % @ctmpc is the third digit + \divide\@ctmpc by \@argc + \@arga=#1\@ctmpe=0 + \@ctmpd=\@arga + \multiply\@ctmpd by \@ctmpa + \advance\@ctmpe by \@ctmpd + \@ctmpd=\@arga + \divide\@ctmpd by 10 + \multiply\@ctmpd by \@ctmpb + \advance\@ctmpe by \@ctmpd + % + \@ctmpd=\@arga + \divide\@ctmpd by 100 + \multiply\@ctmpd by \@ctmpc + \advance\@ctmpe by \@ctmpd + % + \edef\@result{\number\@ctmpe} +} + +\def\compute@wfromh{ + \ifnum\@psheight>\z@ + \in@hundreds{\@psheight}{\@bbw}{\@bbh} + \edef\@pswidth{\@result} + \else + \in@hundreds{-\@psheight}{\@bbw}{\@bbh} + \edef\@pswidth{\number-\@result} + \fi +} +\def\compute@hfromw{ + % computing : height = width * (bbh / bbw) + \ifnum\@pswidth>\z@ + \in@hundreds{\@pswidth}{\@bbh}{\@bbw} + \edef\@psheight{\@result} + \else + \in@hundreds{-\@pswidth}{\@bbh}{\@bbw} + \edef\@psheight{\number-\@result} + \fi +} +\def\compute@handw{ + \ifnum\@psheight=\z@ + \ifnum\@pswidth=\z@ + \@darg=\@bbh sp \@darg=\@psvscale\@darg + \edef\@psheight{\number\@darg} + \@darg=\@bbw sp \@darg=\@pshscale\@darg + \edef\@pswidth{\number\@darg} + \else + \compute@hfromw + \fi + \else + \ifnum\@pswidth=\z@ + \compute@wfromh + \fi + \fi +} +{\catcode`\p=12\catcode`\t=12 +\gdef\remove@dim@frac#1.#2pt{#1}} + +% +% \epsfile +% usage : \epsfile{file=, height=, width=} +% usage : \epsfile{file=, scale=} +% usage : \epsfile{file=, vscale=, hscale=} +% +\def\epsfile{\@ifnextchar[{\@epsfile}{\@epsfile[]}} +\def\@epsfile[#1]#2{{ + \parse@ps@parms{#2} + \compute@handw + {\@arga=\@pswidth \divide\@arga by 186468\relax + \@argb=\@psheight \divide\@argb by 186468\relax + \message{becomes \the\@arga mm x \the\@argb mm}} + \@arga=\@psheight \divide\@arga by 65782\relax + \edef\@psvsize{\number\@arga} + \@arga=\@pswidth \divide\@arga by 65782\relax + \edef\@pshsize{\number\@arga} + \leavevmode + \ifnum\@pswidth>\z@ + \hbox to \@pswidth sp\bgroup + \else + \hbox to -\@pswidth sp\bgroup + \hfill + \fi + \ifnum\@psheight>\z@ + \vrule\@width\z@\@height\@psheight sp \@depth\z@ + \raise\@psheight sp + \else + \vrule\@width\z@\@height-\@psheight sp \@depth\z@ + \fi + \hbox to\z@\bgroup + \ifnum\@psheight=\z@ + \ifnum\@pswidth=\z@ + \edef\epsf@tmpa{\@pshscale,\@psvscale} + \edef\epsf@tmp{1,1} + \ifx\epsf@tmpa\epsf@tmp + \special{epsfile=\@psfile \space} + \else + \special{epsfile=\@psfile \space + vscale=\@psvscale \space hscale=\@pshscale \space} + \fi + \else + \special{epsfile=\@psfile \space hsize=\@pshsize \space} + \fi + \else + \ifnum\@pswidth=\z@ + \special{epsfile=\@psfile \space vsize=\@psvsize \space} + \else + \special{epsfile=\@psfile \space + hsize=\@pshsize \space vsize=\@psvsize \space} + \fi + \fi + \egroup + \ifnum\@psheight>\z@ + \vrule\@width\z@\@height\@psheight sp \@depth\z@ + \else + \vrule\@width\z@\@height-\@psheight sp \@depth\z@ + \raise-\@psheight sp + \fi + \hbox to\z@{#1}\hfil + \egroup +}} + +% You can put anything on the original picture. +% \epsfat puts it on the correct position +% even if you change the picture size. + +\def\epsfat(#1,#2)#3{\@killglue{ + \@darg=#1 \edef\epsf@atx{\number\@darg} + \ifnum\@pswidth>\z@ + \in@hundreds{\epsf@atx}{\@pswidth}{\@bbw} + \edef\epsf@atx{\@result} + \else + \in@hundreds{\epsf@atx}{-\@pswidth}{\@bbw} + \edef\epsf@atx{\number-\@result} + \fi + \@darg=#2 \edef\epsf@aty{\number\@darg} + \ifnum\@psheight>\z@ + \in@hundreds{\epsf@aty}{\@psheight}{\@bbh} + \edef\epsf@aty{\@result} + \else + \in@hundreds{\epsf@aty}{-\@psheight}{\@bbh} + \edef\epsf@aty{\number-\@result} + \fi + \smash{\raise\epsf@aty sp + \hbox to \z@{\kern\epsf@atx sp\relax#3\hss}}}\ignorespaces} + +\endlinechar=13\relax +\endinput diff --git a/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/lineno.sty b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/lineno.sty new file mode 100644 index 0000000..dcd6cd8 --- /dev/null +++ b/2004/netfilter-failover-ols2004/OLS2004-proceedings/TEMPLATES/lineno.sty @@ -0,0 +1,1517 @@ +\iffalse; awk '/S[H]ELL/' lineno.sty|sh;exit;\fi +%%% To pretty-print this file, feed it to a unix shell! +%%% +%%% $Id: lineno.sty,v 1.1 2002/04/29 22:21:32 sjw Exp $ +%%% +%%% Copyright 1995--2001 Stephan I. B"ottcher +%%% +%%% This program can be redistributed and/or modified under the terms +%%% of the LaTeX Project Public License Distributed from CTAN +%%% archives in directory macros/latex/base/lppl.txt; either +%%% version 1 of the License, or any later version. +%%% +% \documentclass[a4paper,12pt]{article}%D +% \usepackage{lineno}%D +% +% \title{ +% \texttt{\itshape +% lineno.sty \ v3.08b 2002/02/27 +% }\\\ \\ +% A \LaTeX\ package to attach +% \\ Line numbers to paragraphs +% }\author{ +% Stephan I. B\"ottcher +% }\date{ +% stephan@nevis.columbia.edu +%% \\ Stephan.Boettcher@desy.de +%% \\ Stephan.Boettcher@cern.ch +% \\} +% +% +% \def~{\verb~} +% \catcode`\<\catcode`\~ +% \def<#1>{$\langle${\itshape#1}\/$\rangle$} +% \catcode`\|\catcode`\~ +% \def|#1{{\ttfamily\string#1}} +% \newenvironment{code} +% {\par\runninglinenumbers +% \modulolinenumbers[1] +% \linenumbersep.3em +% \footnotesize +% \def\linenumberfont +% {\normalfont\tiny\itshape}} +% {} +% +% \begin{document}%D +%% \DocInput{lineno.doc}%D +% \pagewiselinenumbers +% \maketitle +% \tableofcontents +% \sloppy +% +% +% +% \section{ +% Introduction +% } +% This package provides line numbers on paragraphs. +% After \TeX\ has broken a paragraph into lines there will +% be line numbers attached to them, with the possibility to +% make references through the \LaTeX\ ~\ref~, ~\pageref~ +% cross reference mechanism. This includes four issues: +% \begin{itemize} +% \item attach a line number on each line, +% \item create references to a line number, +% \item control line numbering mode, +% \item count the lines and print the numbers. +% \end{itemize} +% The first two points are implemented through patches to +% the output routine. The third by redefining ~\par~, ~\@par~ +% and ~\@@par~. The counting is easy, as long as you want +% the line numbers run through the text. If they shall +% start over at the top of each page, the aux-file as well +% as \TeX s memory have to carry a load for each counted line. +% +% I wrote this package for my wife Petra, who needs it for +% transcriptions of interviews. This allows her to +% precisely refer to passages in the text. It works well +% together with ~\marginpar~s, but not to well with displaymath. +% ~\footnote~s are a problem, especially when they +% are split, but we may get there. +% +% lineno.sty works +% surprisingly well with other packages, for +% example, ~wrapfig.sty~. So please try if it +% works with whatever you need, and if it does, +% please tell me, and if it does not, tell me as +% well, so I can try to fix it. +% +% This style option is written for \LaTeXe, later than November 1994, +% since we need the ~\protected@write~ macro. + +\NeedsTeXFormat{LaTeX2e}[1994/11/04] +\ProvidesPackage{lineno} + [2002/01/27 line numbers on paragraphs v3.08b] + +%% v1.00 1995/03/31 SIB: first release for Petras interview transcriptions +%% v1.01 1995/10/28 SIB: added ~pagewise~ mode +%% v1.02 1995/11/15 SIB: added ~modulo~ option +%% v1.03 1995/12/05 SIB: pagewise: try to reduce the hash-size requirements +%% v2.00 1995/12/06 SIB: .. it works, new user interface +%% v2.01 1996/09/17 SIB: put into CVS +%% v2.02 1997/03/17 SIB: add: \@reinserts, for footnotes +%% v2.04 1998/03/09 SIB: add: linenomath environment +%% v2.05 1998/04/26 SIB: add: prevgraf test +%% v2.06 1999/03/02 SIB: LPPL added +%% v3.00 1999/06/11 SiB: include the extension in the main file +%% v3.01 1999/08/28 SiB: \@reinserts -> \holdinginserts +%% v3.02 2000/03/10 SiB: \@LN@output +%% v3.03 2000/07/01 SiB: \@LN@ExtraLabelItems, hyperref +%% v3.04 2000/12/17 SiB: longtable compatibility. +%% v3.05 2001/01/02 SiB: [fleqn] detection. +%% v3.05a 2001/01/04 SiB: [fleqn] detection reverted for eqnarray. +%% v3.06 2001/01/17 SiB: [twocolumn] mode support. +%% v3.07 2001/07/30 SiB: [hyperref] option obsoleted. +%% v3.08 2001/08/02 SiB: linenomath wrapping for \[ \] +%% v3.08a 2001/08/04 SiB: linenomath wrapping for \[ \] fixed +%% v3.08b 2002/01/27 SiB: enquotation typo fix +%% +%% Acknowledgements: +%% v3.06: Donald Arseneau, pointed to mparhack.sty. +%% v3.07+: Frank Mittelbach, points out inconsistencies in the +%% user interface. +% +% \section{ +% Put the line numbers to the lines +% } +% The line numbers have to be attached by the output +% routine. We simply set the ~\interlinepenalty~ to -100000. +% The output routine will be called after each line in the +% paragraph, except the last, where we trigger by ~\par~. +% The ~\linenopenalty~ is small enough to compensate a bunch of +% penalties (e.g., with ~\samepage~). +% +% (New v3.04) Longtable uses +% ~\penaly~-30000. The lineno penalty range was +% shrunk to $-188000 \dots -32000$. (/New v3.04) + +\newcount\linenopenalty\linenopenalty=-100000 +\mathchardef\linenopenaltypar=32000 + +% So let's make a hook to ~\output~, the direct way. The \LaTeX\ +% macro ~\@reinserts~ puts the footnotes back on the page. +% +% (New v3.01) ~\@reinserts~ badly +% screws up split footnotes. The bottom part is +% still on the recent contributions list, and the +% top part will be put back there after the bottom +% part. Thus, since lineno.sty does not play well +% with ~\inserts~ anyway, we can safely experiment +% with ~\holdinginserts~, without making things +% much worse. +% +% Or that's what I thought, but: Just activating +% ~\holdinginserts~ while doing the ~\par~ will +% not do the trick: The ~\output~ routine may be +% called for a real page break before all line +% numbers are done, and how can we get control +% over ~\holdinginserts~ at that point? +% +% Let's try this: When the ~\output~ routine is +% run with ~\holdinginserts=3~ for a real page +% break, then we reset ~\holdinginserts~ and +% restart ~\output~. +% +% Then, again, how do we keep the remaining +% ~\inserts~ while doing further line numbers? +% +% If we find ~\holdinginserts~=-3 we activate it again +% after doing ~\output~. (/New v3.01) +% +% (New v3.02) To work with +% multicol.sty, the original output routine is now +% called indirectly, instead of being replaced. +% When multicol.sty changes ~\output~, it is a +% toks register, not the real thing. (/New v3.02) + +\let\@LN@output\output +\newtoks\output +\output=\expandafter{\the\@LN@output} +\@LN@output={% + \LineNoTest + \if@tempswa + \LineNoHoldInsertsTest + \if@tempswa + \if@twocolumn\let\@makecol\@LN@makecol\fi + \the\output + \ifnum\holdinginserts=-3 + \global\holdinginserts 3 + \fi + \else + \global\holdinginserts-3 + \unvbox\@cclv + \ifnum\outputpenalty=10000\else + \penalty\outputpenalty + \fi + \fi + \else + \MakeLineNo + \fi + } + +% The float mechanism inserts ~\interlinepenalty~s during +% ~\output~. So carefully reset it before going on. Else +% we get doubled line numbers on every float placed in +% horizontal mode, e.g, from ~\linelabel~. +% +% Sorry, neither a ~\linelabel~ nor a ~\marginpar~ should +% insert a penalty, else the following linenumber +% could go to the next page. Nor should any other +% float. So let us suppress the ~\interlinepenalty~ +% altogether with the ~\@nobreak~ switch. +% +% Since (ltspace.dtx, v1.2p)[1996/07/26], the ~\@nobreaktrue~ does +% it's job globally. We need to do it locally here. + +\def\LineNoTest{% + \let\@@par\@@@par + \ifnum\interlinepenalty<-\linenopenaltypar + \advance\interlinepenalty-\linenopenalty + \my@nobreaktrue + \fi + \@tempswatrue + \ifnum\outputpenalty>-\linenopenaltypar\else + \ifnum\outputpenalty>-188000\relax + \@tempswafalse + \fi + \fi + } + +\def\my@nobreaktrue{\let\if@nobreak\iftrue} + +\def\LineNoHoldInsertsTest{% + \ifnum\holdinginserts=3\relax + \@tempswafalse + \fi + } + +% We have to return all the page to the current page, and +% add a box with the line number, without adding +% breakpoints, glue or space. The depth of our line number +% should be equal to the previous depth of the page, in +% case the page breaks here, and the box has to be moved up +% by that depth. +% +% The ~\interlinepenalty~ comes after the ~\vadjust~ from a +% ~\linelabel~, so we increment the line number \emph{after} +% printing it. The macro ~\makeLineNumber~ produces the +% text of the line number, see section \ref{appearance}. +% +% Finally we put in the natural ~\interlinepenalty~, except +% after the last line. + +\def\MakeLineNo{\@tempdima\dp\@cclv \unvbox\@cclv + \sbox\@tempboxa{\hbox to\z@{\makeLineNumber}}% + \stepcounter{linenumber}% + \dp\@tempboxa=\@tempdima\ht\@tempboxa=\z@ + \nointerlineskip\kern-\@tempdima\box\@tempboxa + \ifnum\outputpenalty=-\linenopenaltypar\else + \@tempcnta\outputpenalty + \advance\@tempcnta -\linenopenalty + \penalty\@tempcnta + \fi + } + +% +% +% \section{ +% Control line numbering +% } +% The line numbering is controlled via ~\par~. \LaTeX\ +% saved the \TeX-primitive ~\par~ in ~\@@par~. We push it +% one level further out, and redefine ~\@@par~ to insert +% the ~\interlinepenalty~ needed to trigger the +% line numbering. And we need to allow pagebreaks after a +% paragraph. +% +% New (2.05beta): the prevgraf test. A paragraph that ends with a +% displayed equation, a ~\noindent\par~ or ~wrapfig.sty~ produce empty +% paragraphs. These should not get a spurious line number via +% ~\linenopenaltypar~. + +\let\@@@par\@@par +\newcount\linenoprevgraf + +\def\linenumberpar{\ifvmode\@@@par\else\ifinner\@@@par\else + \advance\interlinepenalty \linenopenalty + \linenoprevgraf\prevgraf + \global\holdinginserts3% + \@@@par + \ifnum\prevgraf>\linenoprevgraf + \penalty-\linenopenaltypar + \fi + \kern\z@ + \global\holdinginserts0% + \advance\interlinepenalty -\linenopenalty + \fi\fi + } + +% The basic commands to enable and disable line numbers. +% ~\@par~ and ~\par~ are only touched, when they are ~\let~ +% to ~\@@@par~/~\linenumberpar~. The line number may be +% reset to 1 with the star-form, or set by an optional +% argument ~[~~]~. + +\def\linenumbers{\let\@@par\linenumberpar + \ifx\@par\@@@par\let\@par\linenumberpar\fi + \ifx\par\@@@par\let\par\linenumberpar\fi + \@ifnextchar[{\resetlinenumber}%] + {\@ifstar{\resetlinenumber}{}}% + } + +\def\nolinenumbers{\let\@@par\@@@par + \ifx\@par\linenumberpar\let\@par\@@@par\fi + \ifx\par\linenumberpar\let\par\@@@par\fi + } + +% What happens with a display math? Since ~\par~ is not executed, +% when breaking the lines before a display, they will not get +% line numbers. Sorry, but I do not dare to change +% ~\interlinepenalty~ globally, nor do I want to redefine +% the display math environments here. +% \begin{displaymath} +% display \ math +% \end{displaymath} +% See the subsection below, for a wrapper enviroment to make +% it work. But that requires to wrap each and every display +% in your LaTeX source. +% +% The next two commands are provided to turn on line +% numbering in a specific mode. Please note the difference: +% for pagewise numbering, ~\linenumbers~ comes first to +% inhibit it from seeing optional arguments, since +% re-/presetting the counter is useless. + +\def\pagewiselinenumbers{\linenumbers\setpagewiselinenumbers} +\def\runninglinenumbers{\setrunninglinenumbers\linenumbers} + +% Finally, it is a \LaTeX\ style, so we provide for the use +% of environments, including the suppression of the +% following paragraph's indentation. + +%%% TO DO: add \par to \linenumbers, if called from an environment. +%%% To DO: add an \@endpe hack if \linenumbers are turned on +%%% in horizontal mode. {\par\parskip\z@\noindent} or +%%% something. + +\@namedef{linenumbers*}{\par\linenumbers*} +\@namedef{runninglinenumbers*}{\par\runninglinenumbers*} + +\def\endlinenumbers{\par\@endpetrue} +\let\endrunninglinenumbers\endlinenumbers +\let\endpagewiselinenumbers\endlinenumbers +\expandafter\let\csname endlinenumbers*\endcsname\endlinenumbers +\expandafter\let\csname endrunninglinenumbers*\endcsname\endlinenumbers +\let\endnolinenumbers\endlinenumbers + +% +% \subsection{ +% Display math +% } +% +% Now we tackle the problem to get display math working. +% There are different options. +% \begin{enumerate}\item[ +% 1.] Precede every display math with a ~\par~. +% Not too good. +% \item[ +% 2.] Change ~\interlinepenalty~ and associates globally. +% Unstable. +% \item[ +% 3.] Wrap each display math with a ~{linenomath}~ +% environment. +% \end{enumerate} +% We'll go for option 3. See if it works: +% \begin{linenomath} +% \begin{equation} +% display \ math +% \end{equation} +% \end{linenomath} +% The star form ~{linenomath*}~ should also number the lines +% of the display itself, +% \begin{linenomath*} +% \begin{eqnarray} +% multi && line \\ +% display && math \\ +% & +% \begin{array}{c} +% with \\ +% array +% \end{array} +% & +% \end{eqnarray} +% \end{linenomath*} +% including multline displays. +% +% First, here are two macros to turn +% on linenumbering on paragraphs preceeding displays, with +% numbering the lines of the display itself, or without. +% The ~\ifx..~ tests if line numbering is turned on. It +% does not harm to add these wrappers in sections that are +% not numbered. Nor does it harm to wrap a display +% twice, e.q, in case you have some ~{equation}~s wrapped +% explicitely, and later you redefine ~\equation~ to do it +% automatically. + +\newcommand\linenomathNonumbers{% + \ifx\@@par\@@@par\else + \ifnum\interlinepenalty>-\linenopenaltypar + \global\holdinginserts3% + \advance\interlinepenalty \linenopenalty + \advance\predisplaypenalty \linenopenalty + \fi + \fi + \ignorespaces + } + +\newcommand\linenomathWithnumbers{% + \ifx\@@par\@@@par\else + \ifnum\interlinepenalty>-\linenopenaltypar + \global\holdinginserts3% + \advance\interlinepenalty \linenopenalty + \advance\predisplaypenalty \linenopenalty + \advance\postdisplaypenalty \linenopenalty + \advance\interdisplaylinepenalty \linenopenalty + \fi + \fi + \ignorespaces + } + +% The ~{linenomath}~ environment has two forms, with and +% without a star. The following two macros define the +% environment, where the stared/non-stared form does/doesn't number the +% lines of the display or vice versa. + +\newcommand\linenumberdisplaymath{% + \def\linenomath{\linenomathWithnumbers}% + \@namedef{linenomath*}{\linenomathNonumbers}% + } + +\newcommand\nolinenumberdisplaymath{% + \def\linenomath{\linenomathNonumbers}% + \@namedef{linenomath*}{\linenomathWithnumbers}% + } + +\def\endlinenomath{% + \global\holdinginserts0 + \@ignoretrue +} +\expandafter\let\csname endlinenomath*\endcsname\endlinenomath + +% The default is not to number the lines of a display. But +% the package option ~mathlines~ may be used to switch +% that behavior. + +\nolinenumberdisplaymath + +% +% +% \section{ +% Line number references +% } +% The only way to get a label to a line number in a +% paragraph is to ask the output routine to mark it. +% +% We use the marginpar mechanism to hook to ~\output~ for a +% second time. Marginpars are floats with number $-1$, we +% fake marginpars with No $-2$. Originally, every negative +% numbered float was considered to be a marginpar. +% +% The float box number ~\@currbox~ is used to transfer the +% label name in a macro called ~\@LNL@~. +% +% A ~\newlabel~ is written to the aux-file. The reference +% is to ~\theLineNumber~, \emph{not} ~\thelinenumber~. +% This allows to hook in, as done below for pagewise line +% numbering. +% +% (New v3.03) The ~\@LN@ExtraLabelItems~ are added for a hook +% to keep packages like ~{hyperref}~ happy. (/New v3.03) + +\let\@LN@addmarginpar\@addmarginpar +\def\@addmarginpar{% + \ifnum\count\@currbox>-2\relax + \expandafter\@LN@addmarginpar + \else + \@cons\@freelist\@currbox + \protected@write\@auxout{}{% + \string\newlabel + {\csname @LNL@\the\@currbox\endcsname}% + {{\theLineNumber}{\thepage}\@LN@ExtraLabelItems}}% + \fi} + +\let\@LN@ExtraLabelItems\@empty + +% \subsection{ +% The linelabel command +% } +% To refer to a place in line ~\ref{~~}~ at page +% ~\pageref{~~}~ you place a ~\linelabel{~~}~ at +% that place. +% +% \linelabel{demo} +% \marginpar{\tiny\raggedright +% See if it works: This paragraph +% starts on page \pageref{demo}, line +% \ref{demo}. +% }% +% If you use this command outside a ~\linenumbers~ +% paragraph, you will get references to some bogus +% line numbers, sorry. But we don't disable the command, +% because only the ~\par~ at the end of a paragraph may +% decides whether to print line numbers on this paragraph +% or not. A ~\linelabel~ may legally appear earlier than +% ~\linenumbers~. +% +% ~\linelabel~, via a fake float number $-2$, puts a +% ~\penalty~ into a ~\vadjust~, which triggers the +% pagebuilder after putting the current line to the main +% vertical list. A ~\write~ is placed on the main vertical +% list, which prints a reference to the current value of +% ~\thelinenumber~ and ~\thepage~ at the time of the +% ~\shipout~. +% +% A ~\linelabel~ is allowed only in outer horizontal mode. +% In outer vertical mode we start a paragraph, and ignore +% trailing spaces (by fooling ~\@esphack~). +% +% The argument of ~\linelabel~ is put into a macro with a +% name derived from the number of the allocated float box. +% Much of the rest is dummy float setup. + +\def\linelabel#1{% + \ifvmode + \ifinner \else + \leavevmode \@bsphack \@savsk\p@ + \fi + \else + \@bsphack + \fi + \ifhmode + \ifinner + \@parmoderr + \else + \@floatpenalty -\@Mii + \@next\@currbox\@freelist + {\global\count\@currbox-2% + \expandafter\gdef\csname @LNL@\the\@currbox\endcsname{#1}}% + {\@floatpenalty\z@ \@fltovf \def\@currbox{\@tempboxa}}% + \begingroup + \setbox\@currbox \color@vbox \vbox \bgroup \end@float + \endgroup + \@ignorefalse \@esphack + \fi + \else + \@parmoderr + \fi + } + +% \modulolinenumbers[3] +% \section{ +% The appearance of the line numbers +% }\label{appearance} +% The line numbers are set as ~\tiny\sffamily\arabic{linenumber}~, +% $10pt$ left of the text. With options to place it +% right of the text, or . . . +% +% . . . here are the hooks: + +\def\makeLineNumberLeft{\hss\linenumberfont\LineNumber\hskip\linenumbersep} + +\def\makeLineNumberRight{\linenumberfont\hskip\linenumbersep\hskip\columnwidth + \hbox to\linenumberwidth{\hss\LineNumber}\hss} + +\def\linenumberfont{\normalfont\tiny\sffamily} + +\newdimen\linenumbersep +\newdimen\linenumberwidth + +\linenumberwidth=10pt +\linenumbersep=10pt + +% Margin switching requires ~pagewise~ numbering mode, but +% choosing the left or right margin for the numbers always +% works. + +\def\switchlinenumbers{\@ifstar + {\let\makeLineNumberOdd\makeLineNumberRight + \let\makeLineNumberEven\makeLineNumberLeft}% + {\let\makeLineNumberOdd\makeLineNumberLeft + \let\makeLineNumberEven\makeLineNumberRight}% + } + +\def\setmakelinenumbers#1{\@ifstar + {\let\makeLineNumberRunning#1% + \let\makeLineNumberOdd#1% + \let\makeLineNumberEven#1}% + {\ifx\c@linenumber\c@runninglinenumber + \let\makeLineNumberRunning#1% + \else + \let\makeLineNumberOdd#1% + \let\makeLineNumberEven#1% + \fi}% + } + +\def\leftlinenumbers{\setmakelinenumbers\makeLineNumberLeft} +\def\rightlinenumbers{\setmakelinenumbers\makeLineNumberRight} + +\leftlinenumbers* + +% ~\LineNumber~ is a hook which is used for the modulo stuff. +% It is the command to use for the line number, when you +% customizes ~\makeLineNumber~. Use ~\thelinenumber~ to +% change the outfit of the digits. +% +% +% We will implement two modes of operation: +% \begin{itemize} +% \item numbers ~running~ through (parts of) the text +% \item ~pagewise~ numbers starting over with one on top of +% each page. +% \end{itemize} +% Both modes have their own count register, but only one is +% allocated as a \LaTeX\ counter, with the attached +% facilities serving both. + +\newcounter{linenumber} +\newcount\c@pagewiselinenumber +\let\c@runninglinenumber\c@linenumber + +% Only the running mode counter may be reset, or preset, +% for individual paragraphs. The pagewise counter must +% give a unique anonymous number for each line. + +\newcommand\resetlinenumber[1][1]{\c@runninglinenumber#1} + +% \subsection{ +% Running line numbers +% } +% Running mode is easy, ~\LineNumber~ and ~\theLineNumber~ +% produce ~\thelinenumber~, which defaults to +% ~\arabic{linenumber}~, using the ~\c@runninglinenumber~ +% counter. This is the default mode of operation. + +\def\makeRunningLineNumber{\makeLineNumberRunning} + +\def\setrunninglinenumbers{% + \def\theLineNumber{\thelinenumber}% + \let\c@linenumber\c@runninglinenumber + \let\makeLineNumber\makeRunningLineNumber + } + +\setrunninglinenumbers\resetlinenumber + +% +% +% \subsection{ +% Pagewise line numbers +% } +% Difficult, if you think about it. The number has to be +% printed when there is no means to know on which page it +% will end up, except through the aux-file. My solution +% is really expensive, but quite robust. +% +% With version ~v2.00~ the hashsize requirements are +% reduced, because we do not need one controlsequence for +% each line any more. But this costs some computation time +% to find out on which page we are. +% +% ~\makeLineNumber~ gets a hook to log the line and page +% number to the aux-file. Another hook tries to find out +% what the page offset is, and subtracts it from the counter +% ~\c@linenumber~. Additionally, the switch +% ~\ifoddNumberedPage~ is set true for odd numbered pages, +% false otherwise. + +\def\setpagewiselinenumbers{% + \let\theLineNumber\thePagewiseLineNumber + \let\c@linenumber\c@pagewiselinenumber + \let\makeLineNumber\makePagewiseLineNumber + } + +\def\makePagewiseLineNumber{\logtheLineNumber\getLineNumber + \ifoddNumberedPage + \makeLineNumberOdd + \else + \makeLineNumberEven + \fi + } + +% Each numbered line gives a line to the aux file +% \begin{verse} +% ~\@LN{~~}{~~}~ +% \end{verse} +% very similar to the ~\newlabel~ business, except that we need +% an arabic representation of the page number, not what +% there might else be in ~\thepage~. + +\def\logtheLineNumber{\protected@write\@auxout{}{% + \string\@LN{\the\c@linenumber}{\noexpand\the\c@page}}} + +% From the aux-file we get one macro ~\LN@P~ for each +% page with line numbers on it. This macro calls four other +% macros with one argument each. These macros are +% dynamically defined to do tests and actions, to find out +% on which page the current line number is located. +% +% We need sort of a pointer to the first page with line +% numbers, initiallized to point to nothing: + +\def\LastNumberedPage{first} +\def\LN@Pfirst{\nextLN\relax} + +% The four dynamic macros are initiallized to reproduce +% themselves in an ~\xdef~ + +\let\lastLN\relax % compare to last line on this page +\let\firstLN\relax % compare to first line on this page +\let\pageLN\relax % get the page number, compute the linenumber +\let\nextLN\relax % move to the next page + +% During the end-document run through the aux-files, we +% disable ~\@LN~. I may put in a check here later, to give +% a rerun recommendation. + +\AtEndDocument{\let\@LN\@gobbletwo} + +% Now, this is the tricky part. First of all, the whole +% definition of ~\@LN~ is grouped, to avoid accumulation +% on the save stack. Somehow ~\csname~~\endcsname~ pushes +% an entry, which stays after an ~\xdef~ to that . +% +% If ~\LN@P~ is undefined, initialize it with the +% current page and line number, with the +% \emph{pointer-to-the-next-page} pointing to nothing. And +% the macro for the previous page will be redefined to point +% to the current one. +% +% If the macro for the current page already exists, just +% redefine the \emph{last-line-number} entry. +% +% Finally, save the current page number, to get the pointer to the +% following page later. + +\def\@LN#1#2{{\expandafter\@@LN + \csname LN@P#2C\@LN@column\expandafter\endcsname + \csname LN@PO#2\endcsname + {#1}{#2}}} + +\def\@@LN#1#2#3#4{\ifx#1\relax + \ifx#2\relax\gdef#2{#3}\fi + \expandafter\@@@LN\csname LN@P\LastNumberedPage\endcsname#1 + \xdef#1{\lastLN{#3}\firstLN{#3}\pageLN{#4}{\@LN@column}{#2}\nextLN\relax}% + \else + \def\lastLN##1{\noexpand\lastLN{#3}}% + \xdef#1{#1}% + \fi + \xdef\LastNumberedPage{#4C\@LN@column}} + +% The previous page macro gets its pointer to the +% current one, replacing the ~\relax~ with the cs-token +% ~\LN@P~. + +\def\@@@LN#1#2{{\def\nextLN##1{\noexpand\nextLN\noexpand#2}% + \xdef#1{#1}}} + +% Now, to print a line number, we need to find the page, +% where it resides. This will most probably be the page where +% the last one came from, or maybe the next page. However, it can +% be a completely different one. We maintain a cache, +% which is ~\let~ to the last page's macro. But for now +% it is initialized to expand ~\LN@first~, where the poiner +% to the first numbered page has been stored in. + +\def\NumberedPageCache{\LN@Pfirst} + +% To find out on which page the current ~\c@linenumber~ is, +% we define the four dynamic macros to do something usefull +% and execute the current cache macro. ~\lastLN~ is run +% first, testing if the line number in question may be on a +% later page. If so, disable ~\firstLN~, and go on to the +% next page via ~\nextLN~. + +\def\testLastNumberedPage#1{\ifnum#1<\c@linenumber + \let\firstLN\@gobble + \fi} + +% Else, if ~\firstLN~ finds out that we need an earlier +% page, we start over from the beginning. Else, ~\nextLN~ +% will be disabled, and ~\pageLN~ will run +% ~\gotNumberedPage~ with four arguments: the first line +% number on this column, the page number, the column +% number, and the first line on the page. + +\def\testFirstNumberedPage#1{\ifnum#1>\c@linenumber + \def\nextLN##1{\testNextNumberedPage\LN@Pfirst}% + \else + \let\nextLN\@gobble + \def\pageLN{\gotNumberedPage{#1}}% + \fi} + +% We start with ~\pageLN~ disabled and ~\nextLN~ defined to +% continue the search with the next page. + +\long\def \@gobblethree #1#2#3{} + +\def\testNumberedPage{% + \let\lastLN\testLastNumberedPage + \let\firstLN\testFirstNumberedPage + \let\pageLN\@gobblethree + \let\nextLN\testNextNumberedPage + \NumberedPageCache + } + +% When we switch to another page, we first have to make +% sure that it is there. If we are done with the last +% page, we probably need to run \TeX\ again, but for the +% rest of this run, the cache macro will just return four +% zeros. This saves a lot of time, for example if you have +% half of an aux-file from an aborted run, in the next run +% the whole page-list would be searched in vain again and +% again for the second half of the document. +% +% If there is another page, we iterate the search. + +\def\testNextNumberedPage#1{\ifx#1\relax + \global\def\NumberedPageCache{\gotNumberedPage0000}% + \PackageWarningNoLine{lineno}% + {Linenumber reference failed, + \MessageBreak rerun to get it right}% + \else + \global\let\NumberedPageCache#1% + \fi + \testNumberedPage + } + +% \linelabel{demo2} +% \marginpar{\tiny\raggedright +% Let's see if it finds the label +% on page \pageref{demo}, +% line \ref{demo}, and back here +% on page \pageref{demo2}, line +% \ref{demo2}. +% }% +% To separate the official hooks from the internals there is +% this equivalence, to hook in later for whatever purpose: + +\let\getLineNumber\testNumberedPage + +% So, now we got the page where the number is on. We +% establish if we are on an odd or even page, and calculate +% the final line number to be printed. + +\newif\ifoddNumberedPage +\newif\ifcolumnwiselinenumbers +\columnwiselinenumbersfalse + +\def\gotNumberedPage#1#2#3#4{\oddNumberedPagefalse + \ifodd \if@twocolumn #3\else #2\fi\relax\oddNumberedPagetrue\fi + \advance\c@linenumber 1\relax + \ifcolumnwiselinenumbers + \subtractlinenumberoffset{#1}% + \else + \subtractlinenumberoffset{#4}% + \fi + } + +% You might want to run the pagewise mode with running line +% numbers, or you might not. It's your choice: + +\def\runningpagewiselinenumbers{% + \let\subtractlinenumberoffset\@gobble + } + +\def\realpagewiselinenumbers{% + \def\subtractlinenumberoffset##1{\advance\c@linenumber-##1\relax}% + } + +\realpagewiselinenumbers + +% For line number references, we need a protected call to +% the whole procedure, with the requested line number stored +% in the ~\c@linenumber~ counter. This is what gets printed +% to the aux-file to make a label: + +\def\thePagewiseLineNumber{\protect + \getpagewiselinenumber{\the\c@linenumber}}% + +% And here is what happens when the label is refered to: + +\def\getpagewiselinenumber#1{{% + \c@linenumber #1\relax\testNumberedPage + \thelinenumber + }} + +% % +% A summary of all per line expenses: +% \begin{description}\item +% [CPU:] The ~\output~ routine is called for each line, +% and the page-search is done. +% \item +% [DISK:] One line of output to the aux-file for each +% numbered line +% \item +% [MEM:] One macro per page. Great improvement over v1.02, +% which had one control sequence per line in +% addition. It blew the hash table after some five +% thousand lines. +% \end{description} +% +% +% +% \subsection{ +% Twocolumn mode (New v3.06) +% } +% +% Twocolumn mode requires another patch to the ~\output~ +% routine, in order to print a column tag to the .aux +% file. + +\let\@LN@orig@makecol\@makecol +\def\@LN@makecol{% + \@LN@orig@makecol + \setbox\@outputbox \vbox{% + \boxmaxdepth \@maxdepth + \protected@write\@auxout{}{% + \string\@LN@col{\if@firstcolumn1\else2\fi}% + }% + \box\@outputbox + }% \vbox +} + +\def\@LN@col#1{\def\@LN@column{#1}} +\@LN@col{1} + +% +% +% +% \subsection{ +% Numbering modulo 5 +% } +% Most users want to have only one in five lines numbered. +% ~\LineNumber~ is supposed to produce the outfit of the +% line number attached to the line, while ~\thelinenumber~ +% is used also for references, which should appear even if +% they are not multiples of five. + +\newcount\c@linenumbermodulo + +\def\themodulolinenumber{{\@tempcnta\c@linenumber + \divide\@tempcnta\c@linenumbermodulo + \multiply\@tempcnta\c@linenumbermodulo + \ifnum\@tempcnta=\c@linenumber\thelinenumber\fi + }} + +% The user command to set the modulo counter: + +\newcommand\modulolinenumbers[1][0]{% + \let\LineNumber\themodulolinenumber + \ifnum#1>1\relax + \c@linenumbermodulo#1\relax + \else\ifnum#1=1\relax + \def\LineNumber{\thelinenumber}% + \fi\fi + } + +\setcounter{linenumbermodulo}{5} +\modulolinenumbers[1] + +% +% \switchlinenumbers +% \modulolinenumbers[1] +% \section{ +% Package options +% } +% There is a bunch of package options, all of them +% executing only user commands (see below). +% +% Options ~left~ (~right~) put the line numbers on the left +% (right) margin. This works in all modes. ~left~ is the +% default. + +\DeclareOption{left}{\leftlinenumbers*} + +\DeclareOption{right}{\rightlinenumbers*} + +% Option ~switch~ (~switch*~) puts the line numbers on the +% outer (inner) margin of the text. This requires running +% the pagewise mode, but we turn off the page offset +% subtraction, getting sort of running numbers again. The +% ~pagewise~ option may restore true pagewise mode later. + +\DeclareOption{switch}{\setpagewiselinenumbers + \switchlinenumbers + \runningpagewiselinenumbers} + +\DeclareOption{switch*}{\setpagewiselinenumbers + \switchlinenumbers*% + \runningpagewiselinenumbers} + +% In twocolumn mode, we can switch the line numbers to +% the outer margin, and/or start with number 1 in each +% column. Margin switching is covered by the ~switch~ +% options. + +\DeclareOption{columnwise}{\setpagewiselinenumbers + \columnwiselinenumberstrue + \realpagewiselinenumbers} + +% The options ~pagewise~ and ~running~ select the major +% linenumber mechanism. ~running~ line numbers refer to a real +% counter value, which can be reset for any paragraph, +% even getting multiple paragraphs on one page starting +% with line number one. ~pagewise~ line numbers get a +% unique hidden number within the document, but with the +% opportunity to establish the page on which they finally +% come to rest. This allows the subtraction of the page +% offset, getting the numbers starting with 1 on top of each +% page, and margin switching in twoside formats becomes +% possible. The default mode is ~running~. +% +% The order of declaration of the options is important here +% ~pagewise~ must come after ~switch~, to overide running +% pagewise mode. ~running~ comes last, to reset the running +% line number mode, e.g, after selecting margin switch mode +% for ~pagewise~ running. Once more, if you specify all +% three of the options ~[switch,pagewise,running]~, the +% result is almost nothing, but if you later say +% ~\pagewiselinenumbers~, you get margin switching, with +% real pagewise line numbers. +% +\DeclareOption{pagewise}{\setpagewiselinenumbers + \realpagewiselinenumbers} + +\DeclareOption{running}{\setrunninglinenumbers} + +% The option ~modulo~ causes only those linenumbers to be +% printed which are multiples of five. + +\DeclareOption{modulo}{\modulolinenumbers\relax} + +% The package option ~mathlines~ switches the behavior of +% the ~{linenomath}~ environment with its star-form. +% Without this option, the ~{linenomath}~ environment does +% not number the lines of the display, while the star-form +% does. With this option, its just the opposite. +% +%%% 1999-06-10: renamed ~displaymath~ to ~mathlines~. + +\DeclareOption{mathlines}{\linenumberdisplaymath} + +% ~displaymath~ now calls for wrappers of the standard +% LaTeX display math environment. This was previously +% done by ~mlineno.sty~. + +\let\do@mlineno\relax +\DeclareOption{displaymath}{\let\do@mlineno\@empty} + +% The ~hyperref~ package, via ~nameref~, requires three more +% groups in the second argment of a ~\newlabel~. Well, why +% shouldn't it get them? (New v3.07) The presencs of the +% ~nameref~ package is now detected automatically +% ~\AtBeginDocument~. (/New v3.07) + +\DeclareOption{hyperref}{\PackageWarningNoLine{lineno}{% + Option [hyperref] is obsolete. + \MessageBreak The hyperref package is detected automatically.}} + +\AtBeginDocument{% + \@ifpackageloaded{nameref}{% + \def\@LN@ExtraLabelItems{{}{}{}}}} + +\ProcessOptions + +% \subsection{ +% Package Extensions +% } +% +% The extensions in this section were previously supplied +% in seperate ~.sty~ files. +% +% \subsubsection{ +% $display math$ +% } +% +% The standard \LaTeX\ display math environments are +% wrapped in a ~{linenomath}~ environment. +% +% (New 3.05) The ~[fleqn]~ option of the standard +% \LaTeX\ classes defines the display math +% environments such that line numbers appear just +% fine. Thus, we need not do any tricks when +% ~[fleqn]~ is loaded, as indicated by presents of +% the ~\mathindent~ register. (/New 3.05) +% +% (New 3.05a) for ~{eqnarray}~s we rather keep the +% old trick. (/New 3.05a) +% +% (New 3.08) Wrap ~\[~ and ~\]~ into ~{linenomath}~, +% instead of ~{displaymath}~. Also save the definition +% of ~\equation~, instead of replicating the current +% \LaTeX\ definition. (/New 3.08) + +\ifx\do@mlineno\@empty + \@ifundefined{mathindent}{ + + \let\LN@displaymath\[ + \let\LN@enddisplaymath\] + \renewcommand\[{\begin{linenomath}\LN@displaymath} + \renewcommand\]{\LN@enddisplaymath\end{linenomath}} + + \let\LN@equation\equation + \let\LN@endequation\endequation + \renewenvironment{equation} + {\linenomath\LN@equation} + {\LN@endequation\endlinenomath} + + }% \@ifundefined{mathindent} + + \let\LN@eqnarray\eqnarray + \let\LN@endeqnarray\endeqnarray + \renewenvironment{eqnarray} + {\linenomath\LN@eqnarray} + {\LN@endeqnarray\endlinenomath} + +\fi + +% \subsubsection{ +% Line numbers in internal vertical mode +% } +% +% The command ~\internallinenumbers~ adds line numbers in +% internal vertical mode, but with limitations: we assume +% fixed baseline skip. + +\def\internallinenumbers{\setrunninglinenumbers + \let\@@par\internallinenumberpar + \ifx\@par\@@@par\let\@par\internallinenumberpar\fi + \ifx\par\@@@par\let\par\internallinenumberpar\fi + \ifx\@par\linenumberpar\let\@par\internallinenumberpar\fi + \ifx\par\linenumberpar\let\par\internallinenumberpar\fi + \@ifnextchar[{\resetlinenumber}%] + {\@ifstar{\let\c@linenumber\c@internallinenumber + \c@linenumber\@ne}{}}% + } + +\let\endinternallinenumbers\endlinenumbers +\@namedef{internallinenumbers*}{\internallinenumbers*} +\expandafter\let\csname endinternallinenumbers*\endcsname\endlinenumbers + +\newcount\c@internallinenumber +\newcount\c@internallinenumbers + +\def\internallinenumberpar{\ifvmode\@@@par\else\ifinner\@@@par\else\@@@par + \begingroup + \c@internallinenumbers\prevgraf + \setbox\@tempboxa\hbox{\vbox{\makeinternalLinenumbers}}% + \dp\@tempboxa\prevdepth + \ht\@tempboxa\z@ + \nobreak\vskip-\prevdepth + \nointerlineskip\box\@tempboxa + \endgroup + \fi\fi + } + +\def\makeinternalLinenumbers{\ifnum\c@internallinenumbers>0\relax + \hbox to\z@{\makeLineNumber}\global\advance\c@linenumber\@ne + \advance\c@internallinenumbers\m@ne + \expandafter\makeinternalLinenumbers\fi + } + +% \subsubsection{ +% Line number references with offset +% } +% +% This extension defines macros to refer to line +% numbers with an offset, e.g., to refer to a line +% which cannot be labeled directly (display math). +% This was formerly knows as ~rlineno.sty~. +% +% To refer to a pagewise line number with offset: +% \begin{quote} +% ~\linerefp[~~]{~