%!PS << /PageSize [600 400] >> setpagedevice /margin 0 def /line-height 1.8 def /default-font-size 30 def /default-font /serif def /get-or-default { % dict fallback key | value 3 -1 roll exch 2 copy % fallback dict key dict key known { get exch pop } { pop pop } ifelse } def /page-height { currentpagedevice /PageSize get 1 get } def /page-width { currentpagedevice /PageSize get 0 get } def /left-margin { page-width margin mul } def /right-margin { page-width page-width margin mul sub } def /bottom-margin { page-height margin mul } def /top-margin { page-height page-height margin mul sub } def /center-show { dup stringwidth pop page-width exch sub 2 div currentpoint 3 1 roll pop exch gsave moveto show grestore } def /apply-style { dup dup default-font /font get-or-default << /sans << /normal /Helvetica /bold /Helvetica-Bold /italic /Helvetica-Oblique >> /serif << /normal /Times-Roman /bold /Times-Bold /italic /Times-Italic >> /fixed << /normal /Courier /bold /Courier-Bold /italic /Courier-Oblique >> >> exch get exch /normal /style get-or-default get findfont exch 1 /scale get-or-default default-font-size mul scalefont setfont } def /slide { dup % calculate top-margin to center text 0 exch { apply-style (x\nx) stringwidth pop add } forall page-height exch sub 2 div page-height exch sub 0 exch moveto % display text line-by-line { dup dup apply-style /text get center-show 1 /scale get-or-default default-font-size mul line-height mul -1 mul 0 exch rmoveto } forall showpage } def /code { [ exch { << /scale 0.6 /font /fixed >> dup 3 1 roll exch /text exch put } forall ] page-height 0.05 mul page-height dup 0.05 mul sub moveto { dup dup apply-style /text get gsave show grestore 1 /scale get-or-default default-font-size mul line-height mul -0.7 mul 0 exch rmoveto } forall showpage } def /title { << /text 3 2 roll /style /italic /scale 1.4 >> } def [ << /text (Stick it to the man(1):) /font /sans >> << /text (Intro to {TeX,}Info) /style /bold /scale 1.5 >> << /text (@pkal@commenting.onthe.incoherenceofthe.net) /font /fixed /scale 0.5 >> << /text (https://wwwcip.cs.fau.de/~oj14ozun/src+etc/texinfo.pdf) /font /fixed /scale 0.5 >> << /text (27May25) /style /italic /scale 0.5 >> ] slide [ (Online Documentation on UN*X?) title << /text (man(1)) /font /fixed /scale 2 >> ] slide [ << /text (One Page per Manual) >> << /text (Based on Nroff) >> << /text (Roots in RUNOFF (1964) on the CTSS) >> << /text (No semantic markup or hypertext) >> ] slide [ (.TH CAT "1" "April 2025" "GNU coreutils 9.7" "User Commands") (.SH NAME) (cat \\- concatenate files and print on the standard output) (.SH SYNOPSIS) (.B cat) ([\\fI\\,OPTION\\/\\fR]... [\\fI\\,FILE\\/\\fR]...) (.SH DESCRIPTION) (.\\" Add any additional description here) (.PP) (Concatenate FILE(s) to standard output.) (.PP) (With no FILE, or when FILE is \\-, read standard input.) (.TP) (\\fB\\-A\\fR, \\fB\\-\\-show\\-all\\fR) (equivalent to \\fB\\-vET\\fR) (...) ] code [ (...) (.SH AUTHOR) (Written by Torbjorn Granlund and Richard M. Stallman.) (.SH "REPORTING BUGS") (GNU coreutils online help: ) (.br) (Report any translation bugs to ) (.SH "SEE ALSO") (\\fBtac\\fP(1)) (.PP) (.br) (Full documentation ) ] code [ (But what about mdoc?) title << /text ((Alternative macros for manpages)) /scale .8 >> ] slide [ (.Sh STANDARDS) (The) (.Nm) (utility is compliant with the) (.St -p1003.1-2008) (specification.) (.Pp) (The flag) (.Op Fl n) (is an extension to that specification.) (.Pp) (.Nm) (also exists as a built-in to) (.Xr csh 1) (and) (.Xr ksh 1 ,) (though with a different syntax. ) ] code [ (Nevertheless...) title << /text (A tool like less(1) doesn't easily) >> << /text (make use of the semantic information.) >> << /text ((How d'ya look for a flag?)) /scale .8 >> ] slide [ (GNU TeXInfo) title << /text (Multi-Output Documentation System) >> << /text (Indirectly based on TeX) >> << /text (Roots in "Scribe" and "Bolio" on the ITS) >> << /text (Semantic Markup and Hypertext support!) >> ] slide [ (How to Read?) title << /text (info(1)) /font /fixed /scale 1.5 >> << /text (For instance:) >> << /text ($ info gdb) /font /fixed >> ] slide [ (How to Navigate?) title << /text (Mostly like less(1)!) >> << /text (Follow a hyperlink with "Return") /scale 0.7 >> << /text (Jump to a node with "g") /scale 0.7 >> << /text (Jump to an index entry with "i") /scale 0.7 >> << /text (Find out my using the help presented by "h") /scale 0.7 >> ] slide [ (Watch out, buddy!) title << /text (Info and Info manuals might) >> << /text (not always be installed by default!) >> << /text (Nag your local Sysadmin!) /style /bold >> ] slide [ (Any alternatives?) title << /text (Many manuals have HTML pages online) >> << /text (PDF/Printed versions are available) >> << /text (And you can read Info manuals in Emacs) >> ] slide [ (How to write?) title << /text (Plain-text with TeX-ish markup:) >> << /text (@command{arg1,arg2,arg2}) /font /fixed >> ] slide [ (What commands are there?) title << /text (@code, @samp, @var, @kbd, @env, @file) /font /fixed /scale 0.7 >> << /text (@chapter, @section, @subsection) /font /fixed /scale 0.7 >> << /text (@emph, @strong, @sc) /font /fixed /scale 0.7 >> << /text (@url, @ref, @cite, @index) /font /fixed /scale 0.7 >> << /text (...) /font /fixed /scale 0.7 >> ] slide [ (How are .texi files structured?) title << /text (There is some boilerplate...) >> ] slide [ (\\input texinfo @c -*-texinfo-*-) (@comment %**start of header) (@include version.texi) (@settitle GNU Sample @value{VERSION}) (@syncodeindex pg cp) (@comment %**end of header) (@copying) (This manual is for GNU Sample (version @value{VERSION}, @value{UPDATED}),) (which is an example in the Texinfo documentation.) () (Copyright @copyright{} 2016 Free Software Foundation, Inc.) (@quotation) (Permission is granted to copy, distribute and/or modify this document) (under the terms of the GNU Free Documentation License, Version 1.3 or) (any later version published by the Free Software Foundation; with no) (Invariant Sections, with no Front-Cover Texts, and with no Back-Cover) ] code [ (Note the first line:) title << /text (\\input texinfo) /font /fixed >> << /text (This is TeX that redefines the catcode from \\ to @:) /style /bold /scale 0.9 >> << /text (\\catcode`\\@=0) /font /fixed >> << /text (\\catcode`\\\\=\\active) /font /fixed >> << /text (Hence printed TeXinfo use TeX directly!) >> ] slide [ (@node First Chapter) (@chapter First Chapter) (@cindex Sample index entry) () (This is the contents of the first chapter.) () (Here is a numbered list.) () (@enumerate) (@item) (This is the first item.) (@item) (This is the second item.) (@end enumerate) () (The @code{makeinfo} and @code{texinfo-format-buffer}) (commands transform a Texinfo file.) ] code [ (Examples of Info manuals) title << /text (GNU Tools: Coreutils, GDB, GCC, Glibc, ...)>> << /text (Emacs: ...itself, Elisp, and many packages!)>> << /text (Books: SICP, unofficial LaTeX2e manual)>> << /text (I wish: POSIX and Language Specs) /style /bold >> ] slide [ << /text (@bye) /font /fixed >> ] slide