%% %% This is file `titles.stq', %% generated with the docstrip utility. %% %% The original source files were: %% %% titles.sty %% %% This program is part of the Frankenstein bundle for LaTeX. %% %% Copyright (C) 1995-2001 Matthew Swift %% %% This file may have one of TWO names, either %% titles.sty or titles.stq. This %% LaTeX package will work ONLY if it is called titles.sty %% and placed in a proper directory. This file should have been %% distributed to you with a DIFFERENT file (also) called %% titles.sty which functions identically to this one %% but contains documentation in comments. This file works faster, %% but the other should be kept because it contains the documentation %% for this LaTeX package. Files called README and INSTALL should have %% also been distributed to you with this file; see them for more %% information. %% %% This program is free software; you may redistribute it and/or %% modify it under the conditions of the LaTeX Project Public %% License, either version 1.2 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.2 or later is %% part of all distributions of LaTeX version 1999/12/01 or later. %% %% This program is distributed in the hope that it will be useful, %% but WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %% LaTeX Project Public License for more details. %% %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \def\fileinfo{title macros (Frankenstein's references)} \def\DoXPackageS {} \def\initelyHavECitationS {} \def\fileversion{v1.2} \def\filedate{2001/08/31} \def\docdate{2001/08/31} \edef\PPOptArg {% \filedate\space \fileversion\space \fileinfo } \makeatletter% A special comment to help create bst files. Don't change! \@ifundefined{JusTLoaDInformatioN} {% }{% ELSE (we know the compsci package is already loaded, too) \UndefineCS\JusTLoaDInformatioN \SaveDoXVarS \eExpand\csname DoXPackageS\endcsname\In {%use \csname in case it's undefined \usepackage{#1}% }% \RestoreDoXVarS \makeatother \endinput }% A special comment to help create bst files. Don't change! \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{titles}[\PPOptArg] %% \RequirePackage{moredefs,slemph} \ReserveCS\ti@domelater \DeclareOption{british} {% \def\ti@domelater {% \let\Wrapquotes\WrapquotesNN \@doublequotes@false } } \DeclareOption{american} {% \def\ti@domelater {% \let\Wrapquotes\WrapquotesNS \@doublequotes@true } } \ExecuteOptions{american} \ProcessOptions \newcommand\IfQuestionOrExclamation [1] {% \@tempswafalse \ti@checkfor@q #1?\@nil \ti@checkfor@e #1!\@nil \if@tempswa \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi } \newboolean{@ti@sw@} \ReserveCS\ti@prev \ReserveCS\ti@prev@prev \NewName{ti@checkfor@q} {#1?#2\@nil} {% \def\sc@t@a{#2}% \def\sc@t@b{?}% \ifx\sc@t@a\ShortEmpty \else \ifx\sc@t@a\sc@t@b \@tempswatrue \else \let\ti@prev\sc@t@a \let\ti@prev@prev\sc@t@a \@ti@sw@true \@whilesw \if@ti@sw@ \fi {% \ifx\sc@t@a\ShortEmpty \@ti@sw@false \else \let\ti@prev@prev\ti@prev \let\ti@prev\sc@t@a \edef\sc@t@a{\E@cdr\sc@t@a\@nil}% \fi }% \edef\ti@prev@prev{\E@car\ti@prev@prev\@nil}% \ifx\ti@prev@prev\sc@t@b \@tempswatrue \fi \fi \fi } \NewName{ti@checkfor@e} {#1!#2\@nil} {% \def\sc@t@a{#2}% \def\sc@t@b{!}% \ifx\sc@t@a\ShortEmpty \else \ifx\sc@t@a\sc@t@b \@tempswatrue \else \let\ti@prev\sc@t@a \let\ti@prev@prev\sc@t@a \@ti@sw@true \@whilesw \if@ti@sw@ \fi {% \ifx\sc@t@a\ShortEmpty \@ti@sw@false \else \let\ti@prev@prev\ti@prev \let\ti@prev\sc@t@a \edef\sc@t@a{\E@cdr\sc@t@a\@nil}% \fi }% \edef\ti@prev@prev{\E@car\ti@prev@prev\@nil}% \ifx\ti@prev@prev\sc@t@b \@tempswatrue \fi \fi \fi } \newcommand*\ti@wrapquotes@suck [1] {% \IfQuestionOrExclamation {#1} {% \ti@wrapquotes@nosuck{#1}% }{% ELSE \begingroup \if@doublequotes@ \@doublequotes@false \def\sc@t@a {\ti@open@double #1\ti@close@double@suck}% \else \@doublequotes@true \def\sc@t@a {\ti@open@single #1\ti@close@single@suck}% \fi \sc@t@a \endgroup }% } \newcommand*\ti@wrapquotes@nosuck [1] {% \begingroup \if@doublequotes@ \@doublequotes@false \def\sc@t@a {\ti@open@double #1\ti@close@double@nosuck}% \else \@doublequotes@true \def\sc@t@a {\ti@open@single #1\ti@close@single@nosuck}% \fi \sc@t@a \endgroup } \newboolean{@doublequotes@} \newcommand*\WrapquotesNS {% \ti@wrapquotes@suck } \newcommand*\WrapquotesIS {% \ToggleBoolean{@doublequotes@}% \ti@wrapquotes@suck } \newcommand*\WrapquotesNN {% \ti@wrapquotes@nosuck } \newcommand*\WrapquotesIN {% \ToggleBoolean{@doublequotes@}% \ti@wrapquotes@nosuck } \newcommand*\WrapquotesSN [1] {% \begingroup \ti@open@single #1\ti@close@single@nosuck \endgroup } \newcommand*\WrapquotesDN [1] {% \begingroup \ti@open@double #1\ti@close@double@nosuck \endgroup } \newcommand*\WrapquotesSK [1] {% FIX: test \begingroup \ti@open@single #1\ti@close@single@nosuck\@% \endgroup } \ReserveCS\Wrapquotes \ti@domelater \newcommand\ti@open@double {% \gdef\sc@t@f {\textquotedblleft}% \ti@openquote } \newcommand\ti@open@single {% \gdef\sc@t@f {\textquoteleft}% \ti@openquote } \newcommand\ti@openquote {% \futurelet\sc@t@a\ti@@openquote } \newcommand\ti@@openquote {% \sc@t@f \ifx\sc@t@a\WrapquotesNS \,% \else \ifx\sc@t@a\WrapquotesNN \,% \else \ifx\sc@t@a\WrapquotesIN \,% \else \ifx\sc@t@a\WrapquotesIS \,% \else \ifx\sc@t@a\WrapquotesSN \,% \else \ifx\sc@t@a\WrapquotesDN \,% \else \ifx\sc@t@a\WrapquotesSK \,% \else \fi \fi \fi \fi \fi \fi \fi } \newcommand*\ti@close@single@nosuck {% \aftergroup\ti@close@single@@nosuck } \newcommand*\ti@close@double@nosuck {% \aftergroup\ti@close@double@@nosuck } \newcommand*\ti@close@single@@nosuck {% \gdef\sc@t@f {\textquoteright}% \ti@close@quote@nosuck } \newcommand*\ti@close@double@@nosuck {% \gdef\sc@t@f {\textquotedblright}% \ti@close@quote@nosuck } \newboolean{@look@nosuck@} \@look@nosuck@false \newcommand\ti@close@quote@nosuck {% \@look@nosuck@true %% FIX \expandafter \ti@q@ifnextcharin \expandafter {\nospacelist} {% \sc@t@f }{% ELSE \sc@t@f\space }% } \newcommand\ti@close@double@suck {% \aftergroup\ti@close@double@@suck } \newcommand\ti@close@single@suck {% \aftergroup\ti@close@single@@suck } \newcommand\ti@close@double@@suck {% \gdef\sc@t@f {\textquotedblright}% \ti@close@quote@suck } \newcommand\ti@close@single@@suck {% \gdef\sc@t@f {\textquoteright}% \ti@close@quote@suck } \requirecommand\nospacelist {% ,.':;?-/\slash~!)]\bgroup\egroup\@sptoken\ \space\/\@xobeysp } \newcommand\ti@close@quote@suck {% \@look@nosuck@false \ti@q@ifnextcharin {.,} {% \sc@t@c\sc@t@f\DGobbleM % This gobbles the original punctuation. }{% ELSE \@look@nosuck@true \expandafter \ti@q@ifnextcharin \expandafter {\nospacelist} {% \sc@t@f }{% ELSE \sc@t@f\space }% }% } %% FIX \newcommand\ti@q@ifnextcharin [3] {% args: charlist true false \gdef\sc@t@e {#1}% \gdef\sc@t@a {#2}% \gdef\sc@t@b {#3}% \ti@q@check } \newcommand\ti@q@check {% \futurelet\sc@t@c\ti@q@ifnch } %% \verb*|\ | \newcommand\ti@q@ifnch {% \ifx\sc@t@c\ifvmode \let\sc@t@d\ti@q@handle@ifvmode \else \let\sc@t@d\ti@q@@ifnch \fi \sc@t@d } \newcommand\ti@q@@ifnch {% \ifx\sc@t@c\check@icr \defcommand\sc@t@d [1] {% ##1\aftergroup\ti@q@check }% \else \ifx\sc@t@c\endgroup \def\sc@t@d {\aftergroup\ti@q@check}% \else \ifx\sc@t@c\@sptoken \let\sc@t@d\ti@q@handle@space \else \ifx\sc@t@c\egroup \def\sc@t@d {\aftergroup\ti@q@check}% \else \ifx\sc@t@c\ti@close@double@suck \let\sc@t@d\ti@q@handle@double@suck \else \ifx\sc@t@c\ti@close@single@suck \let\sc@t@d\ti@q@handle@single@suck \else \ifx\sc@t@c\ti@close@double@nosuck \let\sc@t@d\ti@q@handle@double@nosuck \else \ifx\sc@t@c\ti@close@single@nosuck \let\sc@t@d\ti@q@handle@single@nosuck \else \@tempswafalse \expandafter \@tfor \expandafter \sc@t@g \expandafter :% \expandafter =% \sc@t@e \do {% \expandafter\ifx\sc@t@g\sc@t@c \@tempswatrue \@break@tfor \else \fi }% \if@tempswa \let\sc@t@d\sc@t@a % the ``true'' clause \else \let\sc@t@d\sc@t@b % the ``false'' clause \fi \fi \fi \fi \fi \fi \fi \fi \fi \sc@t@d } \newcommand\ti@q@handle@ifvmode {% \FrankenInfo{titles} {Handling an \string\ifvmode\space following a title.\MessageBreak If you now get an error that \string\sc@t@d\space does not\MessageBreak match its definition, this \string\ifvmode\space is\MessageBreak unexpected}% \DefName{sc@t@d} {\ifvmode\else\check@icr\fi} {% \ifvmode \else \check@icr \fi \aftergroup\ti@q@check }% \sc@t@d } \ReserveCS\ti@q@handle@space \let\sc@t@a\: \def\:{\ti@q@handle@space} \expandafter\def\: {\ti@q@check} \let\:\sc@t@a \newcommand*\ti@q@handle@double@suck [1] {% \g@addto@macro\sc@t@f {\,\textquotedblright}% \ti@q@check } \newcommand*\ti@q@handle@single@suck [1] {% \g@addto@macro\sc@t@f {\,\textquoteright}% \ti@q@check } \newcommand*\ti@q@handle@double@nosuck [1] {% \if@look@nosuck@ \g@addto@macro\sc@t@f {\,\textquotedblright}% \let\sc@t@d\sc@t@a % the ``true'' clause of ti@q@ifnextcharin \else \let\sc@t@d\sc@t@b % the ``false'' clause of ti@q@ifnextcharin \fi \ti@q@check } \newcommand*\ti@q@handle@single@nosuck [1] {% \if@look@nosuck@ \g@addto@macro\sc@t@f {\,\textquoteright}% \let\sc@t@d\sc@t@a % the ``true'' clause of ti@q@ifnextcharin \else \let\sc@t@d\sc@t@b % the ``false'' clause of ti@q@ifnextcharin \fi \ti@q@check } \newlet\word\textitswitch \newlet\foreign\textitswitch \newcommand\foreignword [1] {% \phrase{\word{#1}}% } \newcommand\phrase [1] {% \textquoteleft #1\textquoteright\@% } \newlet\term\textitswitch \newlet\defn\textslswitch \newlet\book\textitswitch \newlet\journal\textitswitch \newlet\music\textitswitch \newlet\article\Wrapquotes \newlet\storytitle\Wrapquotes \newlet\poemtitle\Wrapquotes \newlet\play\textitswitch % \manualref{7.145} \newlet\craft\textitswitch \newlet\species\textitswitch \InputIfFileExists{titles.cfg}{}{} \endinput %% %% End of file `titles.stq'.