\ProvidesPackage{miscdoc}[2010/01/20 v1.2 documentation macros misc latex pkgs] % miscdoc.sty % Copyright 2010 Robin Fairbairns % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is Robin Fairbairns. % % This work consists of the file miscdoc.sty (only) \setcounter{errorcontextlines}{1274} % The package arose from a small exercise to document packages whose % previous documentation consisted solely of comments in the package files. % The macros here defined are lifted from the author's faq.sty % (written for the UK TeX FAQ, CTAN:help/uk-tex-faq) or are inspired % by others' work (credited where the author is known) ... except % where they came as a flash of inspiration while actually writing the % documentation. % this option suggested by Heiko Oberdiek, 2010-01-29 \DeclareOption{hyper}{% \AtEndOfPackage{% \RequirePackage[pdfusetitle]{hyperref} \RequirePackage{bookmark} \bookmarksetup{numbered,open,openlevel=1} } } \ProcessOptions\relax % note: T1 encoding assumed \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage{booktabs} % from faq.sty \newcommand\cs[1]{\texttt{\char`\\#1}} \let\csx\cs \def\bsbs{\cs{\char`\\}} % \cmdinvoke\cs % \cs typeset as above % may consist of optional or mandatory arguments; % % the `arguments' are simply typesett \texttt, as yet -- if something % fancier is needed, there's a bunch of code needs rewriting here... \DeclareRobustCommand\cmdinvoke{\@ifstar {\let\@tempa\emph\@scmdinvoke}% {\let\@tempa\relax\@scmdinvoke}% } \def\@scmdinvoke#1{\texttt{\symbol{92}#1}% \futurelet\@let@token\@cmdinvoke } \def\@cmdinvoke{\ifx\@let@token\bgroup \let\@tempb\@cmdinvoke@lbrace \else \ifx\@let@token[% ] \let\@tempb\@cmdinvoke@lbrack \else \ifx\@let@token(% ) \let\@tempb\@cmdinvoke@lparen \else \let\@tempb\@empty \fi \fi \fi \@tempb } \def\@cmdinvoke@lbrace#1{\penalty0\hskip0pt\relax \texttt{\symbol{123}\@tempa{#1}\symbol{125}}% \futurelet\@let@token\@cmdinvoke } \def\@cmdinvoke@lbrack[#1]{\penalty-150\hskip0pt\relax \texttt{[\@tempa{#1}]}% \futurelet\@let@token\@cmdinvoke } \def\@cmdinvoke@lparen(#1){\penalty-150\hskip0pt\relax \texttt{(\@tempa{#1})}% \futurelet\@let@token\@cmdinvoke } % and extension -- versions that take a single extra (delimiter) % argument, such as \delcmdinvoke{lscrunge}( ... awful syntax, but... \DeclareRobustCommand\delcmdinvoke{\@ifstar {\let\@tempa\emph\@sdelcmdinvoke}% {\let\@tempa\relax\@sdelcmdinvoke}% } \def\@sdelcmdinvoke#1#2{\texttt{\symbol{92}#1#2}% \futurelet\@let@token\@cmdinvoke } % sui generis \newcommand\newitem{\par\addvspace{1ex}\noindent} % inspired by doc.sty in latex distribution \newcommand\meta[1]{\ensuremath{\langle}\emph{#1}\ensuremath{\rangle}} % meaningful names, as in faq.sty \newcommand\environment[1]{\texttt{#1}} \newcommand\pkgoption[1]{\texttt{#1}} \newcommand\extension[1]{\texttt{.#1}} \newcommand\Package[1]{\textsf{#1}} \def\option{\@ifnextchar[\@optionb\@option}% ] \def\@optionb[#1]{{\normalfont\ttfamily[#1]}} \def\@option#1{\texttt{#1}} \let\FontName\textsf