%!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