Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /trunk/doc/report/manpage.sty
ViewVC logotype

Annotation of /trunk/doc/report/manpage.sty

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1684 - (view) (download) (as text)

1 : jhr 1684 % manpage.sty
2 :     %
3 :     % COPYRIGHT (c) 2012 John Reppy (http://cs.uchicago.edu/~jhr)
4 :     % All rights reserved.
5 :     %
6 :     % This package supports formatting of Unix-style manual pages. It is
7 :     % based, in part, on the latex2man package by Jurgen Vollmer.
8 :     %
9 :     % To use
10 :     %
11 :     % \usepackage[options]{manpage}
12 :     %
13 :     % The supported options are
14 :     %
15 :     % newpage -- start each ManPage environment on its own page.
16 :     % toc -- add tableofcontents entries for manual pages.
17 :     %
18 :     % This package provides the following commands and environments:
19 :     %
20 :     % \begin{ManPage}{section}{name}{author}
21 :     % ... manpage sections ...
22 :     % \end{ManPage}
23 :     %
24 :    
25 :     \NeedsTeXFormat{LaTeX2e}
26 :     \ProvidesPackage{manpage}[2001/12/12 v1.0]
27 :     \usepackage{ifthen}
28 :    
29 :     %%%%%%%%%%%%%%%%%%%% Option processing %%%%%%%%%%%%%%%%%%%%
30 :     \newboolean{MP@newpage}
31 :     \setboolean{MP@newpage}{false}
32 :     \newboolean{MP@contentsentry}
33 :     \setboolean{MP@contentsentry}{false}
34 :    
35 :     \DeclareOption{newpage}{
36 :     \setboolean{MP@newpage}{true}
37 :     }
38 :     \DeclareOption{toc}{
39 :     \setboolean{MP@contentsentry}{true}
40 :     }
41 :     \ProcessOptions
42 :    
43 :     %%%%%%%%%%%%%%%%%%%% Globals %%%%%%%%%%%%%%%%%%%%
44 :     \newlength{\MPindent}
45 :     \setlength{\MPindent}{4em}
46 :     \newcommand{\MPsection}{section}
47 :    
48 :     %%%%%%%%%%%%%%%%%%%% Internal commands %%%%%%%%%%%%%%%%%%%%
49 :     \newenvironment{MP@Section}[1]{%
50 :     \item[#1]\mbox{}\\
51 :     }{}
52 :     \newcommand{\MP@Arg}[1]{\textit{#1}}
53 :     \newcommand{\MP@Opt}[1]{\textbf{#1}}
54 :     \newcommand{\MP@File}[1]{\texttt{#1}}
55 :     %
56 :     % versions for inside the OPTIONS environment
57 :     %
58 :     \newcommand{\MP@Options@Arg}[1]{\textit{#1}}
59 :     \newcommand{\MP@Options@Opt}[1]{\texttt{\textbf{#1}}}
60 :     \newcommand{\MP@Options@File}[1]{\textit{#1}}
61 :     \newenvironment{MP@Options}{%
62 :     \begin{MP@Section}{OPTIONS}%
63 :     \begin{list}{}{
64 :     \setlength{\leftmargin}{\MPindent}%
65 :     \setlength{\itemindent}{0em}%
66 :     \setlength{\itemsep}{0em}%
67 :     \setlength{\topsep}{0em}%
68 :     % redefine external commands
69 :     \renewcommand{\Opt}[1]{\MP@Options@Opt{##1}}
70 :     \renewcommand{\Arg}[1]{\MP@Options@Arg{##1}}
71 :     \renewcommand{\OptEqArg}[2]{\MP@Options@Opt{##1=}\MP@Options@Arg{##2}}
72 :     \newenvironment{Flag}[1]{%
73 :     \item[##1]\mbox{}\\
74 :     }{}
75 :     }%
76 :     }{%
77 :     \end{list}%
78 :     \end{MP@Section}%
79 :     }
80 :    
81 :     %%%%%%%%%%%%%%%%%%%% External commands %%%%%%%%%%%%%%%%%%%%
82 :     \newenvironment{ManPage}[3]{%
83 :     % #1 - section
84 :     % #2 - name
85 :     % #3 - author
86 :     \ifthenelse{\boolean{MP@newpage}}{\clearpage}{}%
87 :     \ifthenelse{\boolean{MP@contentsentry}}{\addcontentsline{toc}{\MPsection}{#2}}{}%
88 :     % The manual page is a list environment
89 :     \begin{list}{}{
90 :     \setlength{\leftmargin}{\MPindent}%
91 :     \setlength{\itemindent}{0em}%
92 :     \setlength{\itemsep}{0em}%
93 :     \setlength{\topsep}{0em}%
94 :     }
95 :     % define section commands
96 :     \newenvironment{NAME}{\begin{MP@Section}{NAME}}{\end{MP@Section}}
97 :     \newenvironment{SYNOPSIS}{\begin{MP@Section}{SYNOPSIS}}{\end{MP@Section}}
98 :     \newenvironment{DESCRIPTION}{\begin{MP@Section}{DESCRIPTION}}{\end{MP@Section}}
99 :     \newenvironment{OPTIONS}{\begin{MP@Options}}{\end{MP@Options}}
100 :     \newenvironment{ENVIRONMENT}{\begin{MP@Section}{ENVIRONMENT}}{\end{MP@Section}}
101 :     \newenvironment{FILES}{\begin{MP@Section}{FILES}}{\end{MP@Section}}
102 :     \newenvironment{BUGS}{\begin{MP@Section}{BUGS}}{\end{MP@Section}}
103 :     \newenvironment{SEEALSO}{\begin{MP@Section}{SEEALSO}}{\end{MP@Section}}
104 :     \newenvironment{SECTION}[1]{\begin{MP@Section}{#1}}{\end{MP@Section}}
105 :     % define external command names
106 :     \newcommand{\Opt}[1]{\MP@Opt{##1}} % Option
107 :     \newcommand{\Arg}[1]{\MP@Arg{##1}} % Argument
108 :     \newcommand{\OptEqArg}[2]{\MP@Opt{##1=}\MP@Arg{##2}}
109 :     \newcommand{\OptArg}[2]{\Opt{##1}\Arg{##2}} % Option with Argument
110 :     \newcommand{\OptoArg}[2]{\Opt{##1}[\Arg{##2}]} % Option with optinal
111 :     % Argument
112 :     \newcommand{\oArg}[1]{[\Arg{##1}]} % optional Argument
113 :     \newcommand{\oOpt}[1]{[\Opt{##1}]} % optional Option
114 :     \newcommand{\oOptArg}[2]{[\OptArg{##1}{##2}]} % optional Option with
115 :     % Argument
116 :     \newcommand{\oOptoArg}[2]{[\OptoArg{##1}{##2}]} % optional Option with
117 :     % optional Argument
118 :     \newcommand{\Prog}[1]{\textit{##1}} % Program name
119 :     \newcommand{\Cmd}[2]{\textit{##1}(##2)} % Command with section
120 :     % number
121 :     \newcommand{\File}[1]{\MP@File{##1}} % File name
122 :     \newcommand{\Dots}{$\ldots$}
123 :     }{%
124 :     \end{list}%
125 :     }

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0