diff options
Diffstat (limited to 'Master/texmf-doc/doc/english/FAQ-en/faq.sty')
-rw-r--r-- | Master/texmf-doc/doc/english/FAQ-en/faq.sty | 1150 |
1 files changed, 0 insertions, 1150 deletions
diff --git a/Master/texmf-doc/doc/english/FAQ-en/faq.sty b/Master/texmf-doc/doc/english/FAQ-en/faq.sty deleted file mode 100644 index e9acef465a4..00000000000 --- a/Master/texmf-doc/doc/english/FAQ-en/faq.sty +++ /dev/null @@ -1,1150 +0,0 @@ -% This is a LaTeX2e package for the UKTUG FAQ document. -% -% uses production LaTeX 2e commands -\NeedsTeXFormat{LaTeX2e}[1994/06/01]% at least! -\ProvidesPackage{faq}[2007/06/08 v2.4 English TeX FAQ macros] - -% this package new requires etex -\@ifundefined{eTeXversion}{% - \PackageError{faq}{This package requires e-TeX}{}% -}{} - -% -% something affecting fonts: do we use only freely available fonts -% (i.e., are we going to make the postscript of this publicly -% available?); the config file could change this setting if -% necessary. things affected herein are the definition of \MP (for -% metapost), which isn't currently doable with free fonts, and -% suppression of boldface versions of the logo fonts. -\newif\ifpublicversion \publicversiontrue - -% -% what fonts are we going to typeset in? -\newif\ifboldmathavail -\InputIfFileExists{faqfont.cfg}% must set \ifboldmathavail if necessary - {\typeout{FAQ -- loading font configuration file faqfont.cfg}} - {% - \RequirePackage{lmodern}% for sans fonts - \RequirePackage{mathptmx} - \RequirePackage[T1]{fontenc}% - \RequirePackage{textcomp}% - \boldmathavailfalse - \RequirePackage[scaled=0.85]{luximono}% not using cmtt-alike - \RequirePackage{textcomp}% - \DeclareRobustCommand{\$}{\char`\$}% otherwise tries to load tctt.... - \@ifundefined{Dings}{\RequirePackage{pifont}% - \def\Dings{\nopagebreak{\footnotesize - \dingline{167}}}% - }% - {}% - \DeclareRobustCommand\acro[1]{##1\@{}} - } - -% debugging (requires etex, like much of this package) -%\tracingifs=1 - -% suppress bold maths if they're not available -\ifboldmathavail\else\let\boldmath\@empty\fi - -% -% true for pdf output -\newif\ifsinglecolumn - -\RequirePackage{ifpdf} -\ifpdf - \PackageInfo{faq}{1-column PDF output\@gobble} - \expandafter\singlecolumntrue -\else - \PackageInfo{faq}{2-column DVI output\@gobble} - \expandafter\singlecolumnfalse -\fi - -% -% if we're doing pdf, set up hyperref package and backdoors that avoid -% its sillier byproducts... -\ifpdf - \@ifundefined{pdfavoidoverfull}{}{\pdfavoidoverfull=1} - \let\@faq@@url\url - \urldef\DebianSocialContract\@faq@@url - {http://www.debian.org/social_contract#guidelines} - \RequirePackage[pdftex% - ,colorlinks% - ,pdftitle=The\ UK\ TeX\ FAQ% - ,linkcolor=blue% - ,pdfpagemode=UseNone% - ,pdfstartview=FitH% -% ,bookmarks=false% - ,bookmarksnumbered% - ]{hyperref} - \usepackage{thumbpdf} - \pdfstringdefDisableCommands{% - \let\cs\psd@cs - \def\csx#1{\textbackslash#1}% - \def\marg#1{\textbraceleft#1\textbraceright}% - \let\acro\@firstofone - \let\ProgName\@firstofone - \let\Package\@firstofone - \def\meta#1{<#1>}% - % - \def\WYSIWYG{WYSIWYG}% - \def\AMSTeX{AmSTeX}% - \def\BibTeX{BibTeX}% - \def\PiCTeX{PiCTeX}% - \def\CDROM{CD-ROM}% - \def\TeXXeT{TeXXeT}% - \def\MLTeX{ML-TeX}% - \def\MP{MetaPost}% - \def\dots{...}% - \def\obracesymbol{\{}% - \def\cbracesymbol{\}}% - \def\,{}% - }% - \begingroup - \lccode`\~=`\|% - \lowercase{\endgroup - \def\psd@cs~#1~{\textbackslash#1}% - }% - % adding table of contents to bookmarks - \let\Orig@tableofcontents\tableofcontents - \def\tableofcontents{% - \pdfbookmark[1]{\contentsname}{contents}% - \Orig@tableofcontents - }% - % adding \subsection*{Finding the Files} - \AtBeginDocument{% - \let\Orig@subsection\subsection - \def\subsection{% - \@ifstar{\bookmark@subsectionstar}{\Orig@subsection}% - }% - }% - \def\bookmark@subsectionstar#1{% - \advance\Hy@linkcounter by 1\relax - \pdfbookmark[2]{#1}{subsectionstar.\the\Hy@linkcounter}% - \Orig@subsection*{#1}% - }% -\fi - -% -% general support -%\RequirePackage{calc} -% -% code for handling logo font -%% \RequirePackage{mflogo} -%% \ifpublicversion -%% \renewcommand{\MP}{Meta\-Post} -%% \let\faq@@MF\MF -%% \def\faq@bx{bx} -%% \DeclareRobustCommand{\MF}{{% -%% \ifx\f@series\faq@bx -%% \expandafter\textmd% -%% \fi -%% {\faq@@MF}% -%% }% -%% } -%% \fi -\DeclareRobustCommand\MF{Meta\-Font} -\DeclareRobustCommand\MP{Meta\-Post} -\let\textlogo\textmd -% -% get texnames package (as amended) -%\RequirePackage{stupid_names} -% define substitutes for stupid_names -\newcommand\LaTeXo{\LaTeX\,2.09} -\newcommand\AMSTeX{AMS\TeX} -\newcommand\AMSLaTeX{AMS\LaTeX} -\newcommand\BibTeX{Bib\TeX} -\newcommand\PiCTeX{PiC\TeX} -\newcommand\texlive{\TeX{} Live} -% -% ifthenelse for the undefined references -\RequirePackage{ifthen} -% -% tables are all long'uns -\RequirePackage{booktabs} -% -% we define conditional stuff using Eijkhout's package -\RequirePackage{comment} -\excludecomment{htmlversion} -\ifpdf - \includecomment{pdfversion} - \excludecomment{dviversion} - \includecomment{wideversion} - \excludecomment{narrowversion} -\else - \excludecomment{pdfversion} - \includecomment{dviversion} - \includecomment{narrowversion} - \excludecomment{wideversion} -\fi -% -% but we also want short versions, like LaTeX2HTML's -\let\htmlonly\@gobble -\let\nothtml\@firstofone -\let\latexhtml\@firstoftwo -\ifpdf - \let\narrowonly\@gobble - \let\wideonly\@firstofone -\else - \let\narrowonly\@firstofone - \let\wideonly\@gobble -\fi -% -% the little bit(s) of code that's(re) going to be ignored when the -% html is generated are enclosed by the following two commands -\let\htmlignore\relax -\let\endhtmlignore\relax - -% -% the Baskerville and other logos and abbreviations -\providecommand\BV{\emph{Baskerville}} -\providecommand\DANTE{\acro{DANTE}} -\providecommand\MSDOS{\acro{MS-DOS}} -\providecommand\CDROM{\acro{CD-ROM}} -\providecommand\elatex{e-LaTeX} -\providecommand\miktex{MiKTeX} -\providecommand\xetex{XeTeX} -\providecommand\plaintex{Plain \TeX{}} -% -%% \providecommand\TeXXeT{\TeX-{}-X\lower.5ex\hbox{E}\kern-.1667emT\@} -%\providecommand\MLTeX{ML-\TeX} -% -% provided for consistency's sake -\newcommand\PS{PostScript} -% -% to get \\ into example command arguments -\def\bsbs{\char`\\\char`\\} -% -\def\careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em - /\kern-.125em\smash{\lower.3ex\hbox{o}}}} -% -% another silliness: -\providecommand{\textoslash}{\o} -% -% \cs{SMC} \emph{isn't} small caps~--- Barbara Beeton says she thinks -% of it as ``big small caps''. She says (modulo capitalisation of -% things\dots): -% \begin{quote} -% For the things it's used for, regular small caps are not -% appropriate~--- they're too small. Real small caps are -% appropriate for author names (and are so used in continental -% bibliographies), section headings, running heads, and, on -% occasion, words to which some emphasis is to be given. \cs{SMC} -% was designed to be used for acronyms and all-caps abbreviations, -% which look terrible in small caps, but nearly as bad in all caps -% in the regular text size. The principle of using ``one size -% smaller'' than the text size is similar to the design of caps in -% German~--- where they are smaller relative to lowercase than are -% caps in fonts intended for English, to improve the appearance of -% regular text in which caps are used at the heads of all nouns, not -% just at the beginnings of sentences. -% \end{quote} -% -% We define this in terms of the memory of the size currently selected -% that's maintained in \cs{@currsize}: if the user does something -% silly re.~selecting fonts, we'll get the wrong results. The -% following code is adapted from |relsize.sty| by Donald Arseneau and -% Matt Swift, from a 2.09 original by Bernie Cosell. (Note that the -% order of examination of \cs{@currsize} is to get the commonest cases -% out of the way first.) -% \begin{macrocode} -%<!latex2e>\def\SMC{\small} -%<*latex2e> -\DeclareRobustCommand\SMC{% - \ifx\@currsize\normalsize\small\else - \ifx\@currsize\small\footnotesize\else - \ifx\@currsize\footnotesize\scriptsize\else - \ifx\@currsize\large\normalsize\else - \ifx\@currsize\Large\large\else - \ifx\@currsize\LARGE\Large\else - \ifx\@currsize\scriptsize\tiny\else - \ifx\@currsize\tiny\tiny\else - \ifx\@currsize\huge\LARGE\else - \ifx\@currsize\Huge\huge\else - \small\SMC@unknown@warning - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi -} -\newcommand\SMC@unknown@warning{\PackageWarning{faq}{Unknown text font - size command -- using \string\small}} -\DeclareRobustCommand\textSMC[1]{{\SMC #1}} -% \end{macrocode} -% -% The \cs{acro} command uses \cs{SMC} as it was originally intended. -% Note that, since most of these things are uppercase-only names, it -% fiddles with the spacefactor after inserting its text. font config -% files may define \cs{acro} otherwise -% -% \begin{macrocode} -\@ifundefined{acro}{% - \DeclareRobustCommand\acro[1]{\textSMC{#1}\@}% -}{} -% \end{macrocode} -% -%\TUGboat (effectively) takes arguments {<empty>}vol(issue) -\DeclareRobustCommand\TUGboat[1]{\expandafter\@TUGboat\ignorespaces} -\def\@TUGboat#1(#2){\textsl{TUGboat} \textbf{#1}(#2)} -% -% The NTS and eTeX (and for consistency Eplain) logos -%% \DeclareRobustCommand\NTS{$\mathcal{N}$\lower.5ex\hbox -%% {$\mathcal{T}$}$\mathcal{S}$\@} -%% \DeclareRobustCommand\eTeX{{$\varepsilon$}-\TeX} -%% \DeclareRobustCommand\eTeX{e-\TeX} -%% \DeclareRobustCommand\Eplain{Eplain} -%% \DeclareRobustCommand\PDFTeX{\acro{PDF}\TeX} -%% \DeclareRobustCommand\PDFLaTeX{\acro{PDF}\LaTeX} -%% \DeclareRobustCommand\CONTeXT{Con\TeX{}t} -\DeclareRobustCommand\YandY{\acro{Y}\&\acro{Y}} - -% non-silly names... -\renewcommand\TeX{TeX} -\newcommand\Eplain{Eplain} -\newcommand\eTeX{e-\TeX} -\newcommand\ExTeX{Ex\TeX} -\newcommand\NTS{NTS} -\newcommand\PDFTeX{PDF\TeX} -\newcommand\LuaTeX{Lua\TeX} -%\newcommand\TeXXeT{TeX-{}-XeT} - -\newcommand\AllTeX{(La)\TeX} -\newcommand\CONTeXT{Con\TeX{}t} -\newcommand\PDFLaTeX{PDF\LaTeX} -\renewcommand\LaTeX{La\TeX} -\newcommand\twee{2e} -% -% Other odds and ends (appear differently in TeX and http or plain -% text -% -% wysiwyg gets capitalised at the beginning of a sentence. not -% entirely reliably... -\DeclareRobustCommand\WYSIWYG{% - \ifvmode - \let\faq@tempa\MakeUppercase - \else - \ifnum\spacefactor>2000 - \let\faq@tempa\MakeUppercase - \else - \let\faq@tempa\relax - \fi - \fi - \textsc{\faq@tempa wysiwyg}% -} -% -% Command for doing `square one' :-} -\newcommand\sqfbox[1]{\framebox{\makebox[\totalheight]{#1\/}}} -% -% an arrow used as a hyphen... -\newcommand\arrowhyph{\ensuremath{\rightarrow}\penalty0\hskip0pt\relax} -% -% Here's a \fullline macro that works in lists and so on -\newcommand\fullline[1]{\@tempdima\hsize\relax - \advance\@tempdima-\leftmargin\relax - \advance\@tempdima-\rightmargin\relax - \hb@xt@\@tempdima{#1}% -} -% -% list indentations (narrower than default because two-column, but -% squeezed further to gain a bit more space still) -\setlength\leftmargini {1.8em} -\setlength\leftmarginii {1.2em} -\setlength\leftmarginiii{1em} -\setlength\leftmarginiv {0.8em} -% -% for tidy expression of things with parentheses around them: -\newcommand\parens[1]{(#1)} -\newcommand\oparen{(}%)( [footling around to match brackety things in emacs] -\newcommand\cparen{)} -% -% make the tex logo robust -\edef\@tempa{\noexpand\DeclareRobustCommand\noexpand\TeX{\TeX}} -\@tempa -% -% this piece of fantasy was let loose on an unsuspecting world by -% christina thiele, but i bet she didn't write it ;-) -\edef\diatop{\noexpand\protect\csname diatop \endcsname} -\expandafter\def\csname diatop \endcsname[#1|#2]{% - \leavevmode - {% - \setbox1=\hbox{{#1{}}}\setbox2=\hbox{{#2{}}}% - \dimen0=\ifdim\wd1>\wd2\wd1\else\wd2\fi% - \dimen1=\ht2\advance\dimen1by-1ex% - \setbox1=\hbox to1\dimen0{\hss#1\hss}% - \rlap{\raise1\dimen1\box1}% - \hbox to1\dimen0{\hss#2\hss}% - }% -}% -% -% for han the thanh (who knows whether i've actually got this right; i -% can't use the T5 fonts, which aren't even really publicly available -% yet) -\DeclareRobustCommand{\The}{Th\diatop[\'|\^e]} -%% % -%% % 2e's LaTeX logo sets the A in scripstyle jammed up to the top of the T; it -%% % also has the advantage that it's set in the same font as the -%% % surrounding text. However, the esteemed bbeeton says the logo looks -%% % "squidge awful" in italic text (I agree; and the same is true of its -%% % behaviour in slanted text) -%% % -%% % So here's a version that allows for the slant of the leading L -%% \DeclareRobustCommand{\LaTeX}{L% -%% {\setbox0\hbox{T}% -%% \setbox\@tempboxa\hbox{$\m@th$% -%% \csname S@\f@size\endcsname -%% \fontsize\sf@size\z@ -%% \math@fontsfalse\selectfont -%% A}% -%% \@tempdima\ht0 -%% \advance\@tempdima-\ht\@tempboxa -%% \@tempdima\strip@pt\fontdimen1\font\@tempdima -%% \advance\@tempdima-.36em -%% \kern\@tempdima -%% \vbox to\ht0{\box\@tempboxa -%% \vss}% -%% }% -%% \kern-.15em -%% \TeX} -%% % -%% % Ditto for \AllTeX (as used in TUGboat) -%% \DeclareRobustCommand{\AllTeX}{(L% -%% {\setbox0\hbox{T}% -%% \setbox\@tempboxa\hbox{$\m@th$% -%% \csname S@\f@size\endcsname -%% \fontsize\sf@size\z@ -%% \math@fontsfalse\selectfont -%% A}% -%% \@tempdima\ht0 -%% \advance\@tempdima-\ht\@tempboxa -%% \@tempdima\strip@pt\fontdimen1\font\@tempdima -%% \advance\@tempdima-.36em -%% \kern\@tempdima -%% \vbox to\ht0{\box\@tempboxa -%% \vss}% -%% }\kern-.075em)% -%% \kern-.075em\TeX} -%% % -%% % A similar game is used in defining an `all LaTeX' sort of thing: -%% \DeclareRobustCommand\twee{2$_{\textstyle\varepsilon}$} -% -% it proves that, for Alan's stuff, the following needs to have been -% done _before_ we define the macros -\RequirePackage{shortvrb} -\MakeShortVerb{\|} -% -% A command which sets some text in typewriter, with the hyphenchar -% temporarily set to its first argument \FAQverb\HYPHEN{TEXT}. -% NB: This requires no catcode hackery, so should work inside moving -% arguments. It will, however, produce spurious spaces after CSs, and -% won't allow brace-unmatched input. It also won't survive going into a -% moving argument if \HYPHEN won't. -% -\let\FAQverbFamily\ttfamily -\DeclareRobustCommand{\FAQverb}[2]{{% - \ifvmode\leavevmode\fi - \lefthyphenmin=256\setlanguage\language - \FAQverbFamily\hyphenchar\the\font`#1\relax - \def\@tempa{#2}% - \expandafter\@faq@strip\meaning\@tempa\@faq@strip - \hyphenchar\the\font\m@ne -}\setlanguage\language} -\def\@faq@strip#1->#2\@faq@strip{#2} -% -% Document markup: -% -% (new method, using url.sty -- old version using FAQverb stuff -% deleted from comments 2000/03/24) -\newcommand\Email{\begingroup \urlstyle{tt}\Url} % email address -\ifpdf -\def\mailto#1{\href{mailto:#1}{\Email{#1}}} -\else -\newcommand\mailto{\begingroup \urlstyle{tt}\Url} % mailable address -\fi -\DeclareRobustCommand\FTP{\begingroup \urlstyle{tt}\Url} % FTP site address -\DeclareRobustCommand\File{\begingroup \urlstyle{tt}\Url} % File name -\DeclareRobustCommand\@ctan@path{\begingroup \urlstyle{tt}\Url} % CTAN path - % (argument in braces) -\ifpdf -\newcommand\@CTAN[3]{\href{#1#2#3}{\@ctan@path{#2}}} % relay via hyperreference -\else -\newcommand\@CTAN[3]{\@ctan@path{#2}} % text-only reference -\fi -\newcommand\Newsgroup{\begingroup \urlstyle{tt}\Url} % newsgroup -\let\URL\url % just a URL -\ifpdf -\let\nolinkURL\nolinkurl % unlinked version -\else -\let\nolinkURL\url % there ain't no linking -\fi -% url.sty defines \path, etc. hyperref may redefine... -\ifpdf - % hyperref has defined \href - \let\FAQ@@href\href - % we actually want to ignore the * in \href* - \def\href{\@ifstar\FAQ@@href\FAQ@@href} -\else -% -% here, latex for printing - \newcommand\href{% - \@ifstar - {\let\@href@text\@empty\@href@a}% - {\def\@href@text{see }\@href@a}% - } -% -% decisions now made about - \newcommand\@href@a{\begingroup - \@makeother\\% - \@makeother\_% - \@makeother\%% - \@makeother\~% - \@makeother\#% - \@href@b - } -% -% enter here in a group with sanitised arg - \newcommand\@href@b[1]{\endgroup - \urldef\@href@tempurl\url{#1}% - \@href@getanchor - } -% -% out of the group again: argument is the anchor - \newcommand\@href@getanchor[1]{#1% - \@ifnextchar@nosp'% - {\@href@getanchorq}% - { (\@href@text\@href@tempurl)\@let@token}% - } -% -% one quote after the anchor - check for a second - \newcommand\@href@getanchorq{% gobble the first quote - \@ifnextchar@nosp'% - \href@getanchor@qq - {' (\@href@text\@href@tempurl)\@let@token}% restore quote - } - \newcommand\href@getanchor@qq{% gobble the second quote too - {'' (\@href@text\@href@tempurl)}% restore both quotes - } -% -% two quotes after the anchor -\fi -\long\def\@ifnextchar@nosp#1#2#3{% - \let\reserved@d=#1% - \def\reserved@a{#2}% - \def\reserved@b{#3}% - \afterassignment\@ifnch@nosp\let\@let@token= } -\def\@ifnch@nosp{% - \ifstophere\stopherefalse\show\@let@token\fi - \ifx\@let@token\reserved@d - \expandafter\reserved@a - \else - \expandafter\reserved@b - \fi -} -\setcounter{errorcontextlines}{999} -\newif\ifstophere - -%%\ifx\DeclareUrlCommand\undefined -\DeclareRobustCommand\ProgName{% - \begingroup - \def\UrlFont{\rmfamily\itshape}\csname Url@do\endcsname - \Url -} -%%\else -%% \DeclareUrlCommand\@ProgName{\def\UrlFont{\rmfamily\itshape}} -%% \DeclareRobustCommand\ProgName{\@ProgName} -%%\fi -\let\Package\ProgName % pro tem -\let\Class\Package % ... -\let\FontName\Package % ... - -% another little oddity (from doc.sty originally, iirc) -\newcommand\meta[1]{\ensuremath{\langle}\emph{#1}\ensuremath{\rangle}} - -% -% ISBN references -\def\ISBN{\@ifstar\@ISBNstar\@ISBN} -\def\@ISBNstar#1#2{\acro{ISBN}-10~#1, \acro{ISBN}-13~#2} -\def\@ISBN#1{\acro{ISBN}-10~#1} -% -% Alan's code for CTAN references (now hacked to be capable of urls -% for use in pdf output): -% -% define a location for a package on CTAN -% ignores a leading * (which has meaning for html version only) -% #1 is the package name -% #2 is the CTAN path to the thing -% a package in a directory -\ifpdf - \newcommand{\CTANdirectory}{\@ifstar\@sCTANdirectory\@CTANdirectory} -\else - \newcommand{\CTANdirectory}{\@ifstar\@CTANdirectory\@CTANdirectory} -\fi -\newcommand{\@CTANdirectory}[2]{\@ifundefined{ctan-#1}{% - \expandafter\gdef\csname ctan-#1\endcsname{\@CTAN\LocalCTAN{#2}\CTANDirFmt}% -}{% - \PackageWarningNoLine{faq}{Repeated definition of label: #1}% - \stepcounter{CTAN@replabs}% -}} -\ifpdf - \newcommand{\@sCTANdirectory}[2]{\@ifundefined{ctan-#1}{% - \expandafter\gdef\csname ctan-#1\endcsname{\@CTAN\LocalCTAN{#2}/}% - }{% - \PackageWarningNoLine{faq}{Repeated definition of label: #1}% - \stepcounter{CTAN@replabs}% - }} -\fi -% -% a package in a single file (the same appearance, but the WWW -- and -% ultimately the pdf -- versions are different). -\ifpdf -\newcommand{\CTANfile}[2]{\@ifundefined{ctan-#1}{% - \expandafter\gdef\csname ctan-#1\endcsname{\@CTAN\LocalCTAN{#2}{}}% -}{% - \PackageWarningNoLine{faq}{Repeated definition of label: #1}% - \stepcounter{CTAN@replabs}% -}} -\else -\let\CTANfile\CTANdirectory -\fi -% -% Make reference to a CTAN package -% -% counters for the undefined references and repeated labels -\newcounter{CTAN@unrefs} -\newcounter{CTAN@replabs}% -% -% the command itself -\DeclareRobustCommand{\CTANref}[1]{\@ifundefined{ctan-#1}{% - \PackageWarning{CTAN}{Undefined reference: #1}% - \stepcounter{CTAN@unrefs}% -}{% - \csname ctan-#1\endcsname -}} -% -% href to a ctan package -\ifpdf - \DeclareRobustCommand{\CTANhref}[2]{\@ifundefined{ctan-#1}{% - \PackageWarning{CTAN}{Undefined reference: #1}% - \stepcounter{CTAN@unrefs}% - }{{% - \def\@CTAN##1##2##3{http://www.tex.ac.uk/tex-archive/##2}% - \href{\csname ctan-#1\endcsname}{#2}% - }}} -\else % DVI version - \DeclareRobustCommand{\CTANhref}[2]{\@ifundefined{ctan-#1}{% - \PackageWarning{CTAN}{Undefined reference: #1}% - \stepcounter{CTAN@unrefs}% - }{{% - \def\@ctan@path##1{\expandafter\httpify\LocalCTAN!##1} - \edef\@tempa{\csname ctan-#1\endcsname}% - \expandafter\href\expandafter{\@tempa}{#2}% - }}} -\fi -% -% this is surely temporary -\def\httpify ftp://ftp#1!{http://www#1} -% -% hook for diagnosing undefined references at the end -\AtEndDocument{\ifthenelse{\theCTAN@unrefs > 0}{% - \PackageWarningNoLine{ctan}{There were \arabic{CTAN@unrefs} undefined - references to CTAN}% - }% - {}% - \ifthenelse{\theCTAN@replabs > 0}{% - \PackageWarningNoLine{ctan}{There were \arabic{CTAN@replabs} - multiply defined references to CTAN}% - }% - {}% -} -% -% a slight variation of description for lists of book titles -\newcommand{\booklabel}[1]{\hspace\labelsep\normalfont\itshape #1} -\newenvironment{booklist}{% - \begin{list}{}% - {% - \labelwidth\z@ - \itemindent-\leftmargin - \let\makelabel\booklabel - \parskip \z@ - \itemsep \z@ - }% - }% - {\end{list}} -% -% proglist is the same as booklist if we're using italics for program -% names, but will need hacking otherwise -\newenvironment{proglist}{\begin{booklist}}{\end{booklist}} -% -% similarly for ctanrefs environment -\newcommand{\ctanreference}[1]{% - \hspace\labelsep\normalfont\ttfamily\itshape - \bgroup - \@makeother\_% - \scantokens{#1}% - \unskip - \egroup - \/\normalfont:% -} -\newenvironment{ctanrefs}{% - \begin{list}{}% - {% - \labelwidth\z@ - \itemindent-\leftmargin - \let\makelabel\ctanreference - \topsep 4\p@ - \parskip \z@ - \itemsep \z@ - \@rightskip=\z@\@plus1in\relax - \spaceskip=.3333em\relax - \xspaceskip=.5em\relax - }% - }% - {\end{list}} -% -% compact the itemize, enumerate and description environments -\let\FAQ@@itemize\itemize -\renewcommand\itemize{% - \topsep 0.25\topsep - \FAQ@@itemize - \parskip \z@ - \itemsep \z@ -} -\let\FAQ@@enumerate\enumerate -\renewcommand\enumerate{% - \topsep 0.25\topsep - \FAQ@@enumerate - \parskip \z@ - \itemsep \z@ -} -\let\FAQ@@description\description -\renewcommand\description{% - \topsep 0.25\topsep - \FAQ@@description - \parskip \z@ - \itemsep \z@ -} -% -% and similarly close up verbatim's separation from what surrounds it -\let\FAQ@@verbatim\verbatim -\renewcommand\verbatim{% - \topsep 0.25\topsep - \FAQ@@verbatim -} -% -% \raggedwithindent is useful when we've got an URL or something -% overrunning the end of the line (and this line is terminated with -% \\) -% -% Typical usage is within the argument of a \nothtml command -\newcommand\raggedwithindent{% - \rightskip=\z@\@plus5em\relax - \spaceskip=.3333em\relax - \xspaceskip=.5em\relax - \hangindent=1pc\relax} -% -% things needed for the benefit of texfaq2html's `sanitise_line' -\let\textpercent\% -\let\faq@@textbar\textbar -\chardef\faq@vertbar`\| -\renewcommand\textbar{\def\@tempa{cmtt}% - \ifx\@tempa\f@family - \faq@vertbar - \else - \faq@@textbar - \fi -} -% -% redefine \cs{l@section} to require space for itself at the bottom -% of a column -\renewcommand\l@section[2]{% - \ifnum \c@tocdepth >\z@ - \addpenalty\@secpenalty - \addvspace{1.0em \@plus\p@}% -% "needspace" element here (doesn't work) -% \vskip \z@ \@plus 3\baselineskip -% \penalty -\@highpenalty -% \vskip \z@ \@plus -3\baselineskip - \setlength\@tempdima{1.5em}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode \bfseries - \advance\leftskip\@tempdima - \hskip -\leftskip - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par - \endgroup - \fi -} -% -% subsections: these are a curious half-breed between latex sections -% and subsections -- as designed, i'm not intending there ever to be -% more than 9 per section (hahaha) -\renewcommand\subsection{\@startsection{subsection}% - \tw@ - \z@ - {-1.5ex \@plus-1ex \@minus-.3ex}% - {1ex \@plus.2ex}% - {\normalfont\large\bfseries - \raggedright}% - } -\renewcommand*\l@subsection[2]{% - \ifnum \c@tocdepth >\@ne - \addpenalty\@secpenalty - \addvspace{0.5em \@plus\p@}% -% "needspace" element here (doesn't work) -% \vskip \z@ \@plus 3\baselineskip -% \penalty -\@highpenalty -% \vskip \z@ \@plus -3\baselineskip - \setlength\@tempdima{2.0em}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode \bfseries - \advance\leftskip\@tempdima - \hskip -\leftskip - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par - \endgroup - \fi} -% -% -% the question structure -% \Question[label name]{question asked} -% if [label name] present, the named label is assigned with \Qlabel -\newcounter{question} -\newcommand\Question[2][]{% - \ifpdf - \def\annot@label{#1}% - \def\annot@question{#2}% - \fi - \edef\l@stl@bel{\@gobbletwo#1}% - \qu@stion{#2}% - \def\reserved@a{#1}% - \ifx\reserved@a\@empty - \PackageWarning{faq}{Question "#2" has no label}% - \else - \Qlabel{#1}% - \fi -} -\newcommand\qu@stion{\@startsection{question}% - \thr@@ - \z@ - {-1.25ex \@plus -1ex \@minus -.2ex}% - {0.75ex \@plus .2ex}% - {% - \normalfont - \normalsize - \bfseries - \raggedright - \protected@edef\@svsec{\protect\annot@set\@svsec}% - }% -} -\newcommand*\questionmark[1]{} -\newcommand*\l@question{\@dottedtocline{2}{2.0em}{2.3em}} -% -% alias questions make a little perl script to set up a hash array -% that takes one from old question to current one. -\newcount\aliasfile -\aliasfile=-1 -\newcommand\AliasQuestion[1]{% - \ifnum\aliasfile<0 - \newwrite\aliasfile - \immediate\openout\aliasfile aliasquestion.list - \immediate\write\aliasfile {\faq@percent old_label_to_new = (}%) - \AtEndDocument{%( - \immediate\write\aliasfile{);}% - \immediate\write\aliasfile{1;}% - }% - \else - \immediate\write\aliasfile {,}% finish previous line - \fi - \immediate\write\aliasfile{"\@gobbletwo#1","\l@stl@bel"}% -} -{% - \catcode`\!=\the\catcode`\%% - \catcode`\%=\the\catcode`\+! - \gdef\faq@percent{%}! -} -% -\long\def\@ReturnAfterFi#1\fi{\fi#1}% -\ifpdf - \newcommand*\toclevel@question{3}% - \let\orig@section\section - \let\orig@subsection\subsection - \let\orig@subsubsection\subsubsection - \def\section{% - \def\toclevel@question{2}% - \orig@section - } - \def\subsection{% - \def\toclevel@question{3}% - \orig@subsection - } - \def\subsubsection{% - \def\toclevel@question{4}% - \orig@subsubsection - } - % - \def\annot@set{% - \ifx\annot@label\@empty - \else - \begingroup - \def\x##1-##2\@nil{\def\annot@label{##2}}% - \expandafter\x\annot@label\@nil - \def\x##1_##2\@nil{% - ##1% - \ifx\\##2\\% - \else - \noexpand\textunderscore - \@ReturnAfterFi{\x##2\@nil}% - \fi - }% - \edef\annot@label{\expandafter\x\annot@label_\@nil}% - \edef\NL{\string\n}% - \pdfstringdef\annot@text{% - http://www.tex.ac.uk/cgi-bin/texfaq2html?label=\annot@label\NL - \annot@question - }% - \rlap{% - \kern-10mm\relax - \settoheight{\dimen@}{X}% - \pdfannotlink - width 200mm - height \dimen@ - depth 25mm - user {% - /Subtype/Text% - /T(Question \thequestion: \annot@label)% - /Contents(\annot@text)% - }% - \pdfendlink - }% - \endgroup - \fi - }% - \@ifundefined{pdfannotlink}{% - \let\pdfannotlink\pdfstartlink - }{} -\else - \let\annot@set\relax -\fi -% -% \QuestionLabel starts out as a null command (so that inputting a -% .lab file at s.o.d has no effect), but it's then reset to -% \@questionLabel in case the file is going to be read again later -% (e.g., as an appendix), but we don't have a sensible definition of -% _that_ yet, either... -\newcommand{\labellist}{% - \newcommand{\QuestionLabel}[3]{}% -% \@starttoc{lab}% - \let\QuestionLabel\@questionLabel -} -\newcommand{\@questionLabel}[3]{} -% -% \afterquestion is used when the \Question command itself has to be -% inside a group for some reason (e.g., to have it in \boldmath) -\newcommand\afterquestion{% - \global\toks@\expandafter{\the\everypar}% - \edef\@tempa{% - \noexpand\@afterindentfalse - \noexpand\everypar{\the\toks@}% - }% - \expandafter\endgroup\@tempa -} -% -% \cs{Destination} is used immediately after a \cs{Question} command -% in the various add-* files to signify where the question is supposed -% to go -\newcommand\Destination[1]{\begin{center} - \itshape#1 - \end{center} -} -% -% we `number' our sections alphabetically -\renewcommand{\thesection}{\Alph{section}} -% -% keywords for questions. these get translated into comments in web -% versions -\newcommand\keywords{\begingroup - \@makeother\\% - \@makeother\^% - \@makeother\_% - \@makeother\%% - \expandafter\endgroup - \@gobble -} -% -% \Qlabel and \Qref: define and refer to labels -\ifpdf -% hyperref version of \label doesn't get set until begin document - \AtBeginDocument{\let\Qlabel\label} -\else - \let\Qlabel\label -\fi -% \Qref[<text before q no>]{<hyper anchor text>}{<question label>} -% (default for arg 1 is "see question"; a conventional null argument -% here is \htmlonly, which gobbles a space) -% produces: -% <text before q no> <question number> -% -% \Qref*... produces -% <hyper anchor text> (<text before q no> <question number>) -% -% the code is supposed to deal correctly with things surrounded by -% double quotes (i.e., ``\Qref*....'' closes the quotes before putting -% the question number in parentheses. -% -% this stuff should be reconsidered to produce more sensible behaviour -% when running pdftex -% -\ifpdf -% -% if we're using pdflatex, we let hyperref take the strain, and make -% \Qrefs look like the html versions -\DeclareRobustCommand\Qref{\@ifstar\@QrefH\@QrefH} -\newcommand\@QrefH[3][\relax]{% - \expandafter\let\expandafter\reserved@a\csname r@#3\endcsname - \ifx\reserved@a\relax - \protect\G@refundefinedtrue - \nfss@text{\reset@font\bfseries ??}% - \@latex@warning{% - Reference `#3' on page \thepage \space undefined% - }% - \else -% \protected@edef\reserved@b{\reserved@a}% - \def\reserved@c##1##2##3##4##5{% - \def\reserved@d{{##1}{##2}{#2}{##4}{##5}}% - }% - \expandafter\reserved@c\reserved@a - \expandafter\Hy@setref@link\reserved@d\@empty\@empty\@nil\@thirdoffive - \fi -} -\else -% -% not using pdflatex: we've a ghastly job on our hands... -\newcommand\Qref{\@ifstar\@QrefA\@QrefB} -\newcommand\@QrefA[3][see question]{#2% - \def\@QrefAai{#1}% - \def\@QrefAaiii{#3}% - \afterassignment\@QrefAl\let\@tempa= } -\newcommand\@QrefAl{% \@tempa is char after original \Qref's args - % \@QrefAai/\@QrefAaiii are arguments of \Qref - \ifx\@tempa'% - \def\@next{% - \afterassignment\@QrefAQ - \let\@tempa= % - }% - \expandafter\@next - \else - { (\@QrefAai~\ref{\@QrefAaiii})\@tempa}% - \fi -} -\newcommand\@QrefAQ{% \@tempa is second char after original \Qref's - % arguments (first was a quote character) - \ifx\@tempa'% - '' (\@QrefAai~\ref{\@QrefAaiii})% - \else - { (\@QrefAai~\ref{\@QrefAaiii})'\@tempa}% - \fi -} -%% \@ifnextchar'{\@QrefAQb{#1}{#2}}{ (#1~\ref{#2})'}} -%% \newcommand\@QrefAQb[3]{% param 3 quote again -%% '' (#1~\ref{#2})} -\newcommand\@QrefB[3][see question]{#1~\ref{#3}} -% -\fi -% -% from doc package, then hacked about by yours truly -\DeclareRobustCommand\csx[1]{{\FAQverbFamily\char`\\#1}} -%\def\cs|#1|{\csx{#1}} -% -% fancier versions of the above -% -% \cmdinvoke\cs<argument sequence> -% \cs typeset as above -% <argument sequence> may consist of optional or mandatory arguments; -% so far only "one mandatory" and "one optional, one mandatory" -% are supported by texfaq2html -% -% 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 -} -% -% for writing \cmdinvoke out by hand (in titles) -\def\marg#1{\texttt{\symbol{123}{#1}\symbol{125}}} - -% that stuff doesn't work in pdf thumbnails. herewith an alternative -% for label ps@empty: -\DeclareRobustCommand\psatempty{% - \texttt{\string\pagestyle\string{empty\string}}% -} - -% minuscule bit more structured markup... -\def\environment#1{\texttt{#1}} -\def\pkgoption#1{\texttt{#1}} -\def\extension#1{\texttt{.#1}} - -% deal with tabular: special defs to make texfaq2html doable -\let\tbamp& -\def\tbeol{\\} -\def\tbhline{\midrule} - -% -% symbols for the braces (which can confuse perl sumfink rotten -\def\obracesymbol{\symbol{123}} -\def\cbracesymbol{\symbol{125}} - -% -% for quoting verbatim environments in examples: -\begingroup \catcode `|=0 \catcode `[= 1 -\catcode`]=2 \catcode `\{=12 \catcode `\}=12 -\catcode`\\=12 -|gdef|@quotexverbatim#1\end{quoteverbatim}[#1|end[quoteverbatim]] -|endgroup -\def\quoteverbatim{\@verbatim \frenchspacing\@vobeyspaces \@quotexverbatim} -\let\endquoteverbatim\endverbatim - -% -% for comments during maintenance -%\def\Q#1{\footnote{{\ttfamily QUERY: #1}}} -%\def\Q#1{\marginpar{{\ttfamily QUERY: #1}}} -% -% Checking structure (null for now) -\newcommand\checked[2]{} -% -% for Alan's benefit -\newbox\@footnoteenvbox -\newenvironment{footnoteenv} - {\begin{lrbox}\@footnoteenvbox\reset@font\footnotesize\ignorespaces} - {\end{lrbox}% - \footnote{\unhbox\@footnoteenvbox}} -% -% end of package -\endinput |