summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/novel/novel-Obsolete.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/luatex/latex/novel/novel-Obsolete.sty
Initial commit
Diffstat (limited to 'macros/luatex/latex/novel/novel-Obsolete.sty')
-rw-r--r--macros/luatex/latex/novel/novel-Obsolete.sty485
1 files changed, 485 insertions, 0 deletions
diff --git a/macros/luatex/latex/novel/novel-Obsolete.sty b/macros/luatex/latex/novel/novel-Obsolete.sty
new file mode 100644
index 0000000000..305fc7b7c7
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-Obsolete.sty
@@ -0,0 +1,485 @@
+%%
+%% This is file `novel-Obsolete.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-Obsolete.sty}%
+[2018/04/26 v1.52 LaTeX file (obsolete macros)]
+%%
+
+
+%% OBSOLETE MACROS !!!
+%%
+%% Prior to version 1.50, `novel' contained some macros or features that
+%% worked but were hard to maintain, or worked in a fashion that was
+%% user-unfriendly, or was not as good as some better code.
+%% These macros have been gathered here. DO NOT USE THEM IN NEW DOCUMENTS.
+%% They have only been retained for backwards-compatibility.
+%% If you find a bug -- too bad! Anything here is "won't fix."
+%%
+
+
+%% OBSOLETE
+\gdef\SetCropmarkGap#1{} % simply ignored
+%%
+
+
+%% OBSOLETE
+\newcommand\pushtextdown[1]{% OBSOLETE
+ \ifthenelse{\equal{#1}{} \OR \equal{#1}{ } \OR \equal{#1}{0}}{%
+ \def\@howmuchdown{0em}%
+ }{%
+ \def\@howmuchdown{#1}%
+ }%
+ ~\par\vspace*{-\nbs}\vspace*{\@howmuchdown}\par%
+}
+%%
+
+
+%% OBSOLETE
+%% \squeeze{} and \crush{} slightly shrink the horizonal dimension of the
+% enclosed text. May span paragraphs. Emergency only! No compounding.
+\long\gdef\squeeze#1{{\addfontfeature{FakeStretch=0.99}#1}}
+\long\gdef\crush#1{{\addfontfeature{FakeStretch=0.98}#1}}
+%%
+
+
+%% OBSOLETE
+\gdef\specialblankline{\null} % deprecated
+%%
+
+
+%% OBSOLETE.
+%%Replaced by better method. Will be honored, but not documented.
+\newcommand\TestCoverImage[1]{%
+ \@tempTFfalse%
+ \IfSubStr{#1}{jpg}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{jpeg}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{JPG}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{JPEG}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{png}{%
+ \@tempTFtrue
+ \if@pdfxISoff\else
+ \ifthenelse{\equal{\@PDFversion}{PDF/X-1}}{
+ \ClassError{novel}{Cannot use png cover image with PDF/X-1a}%
+ {PDF/X-1a requires CMYK image. But png format is always RGB.}%
+ }{}
+ \fi
+ \ClassWarning{novel}{^^JCover image is png file type. ^^J%
+ Format png only supports RGB, not CMYK. ^^J%
+ This might be OK if you are not using PDF/X-1a, ^^J%
+ and if your print service accepts RGB artwork. ^^J%
+ But in many cases, not OK. Did you need CMYK? ^^J}%
+ }{}%
+ \IfSubStr{#1}{PNG}{%
+ \@tempTFtrue
+ \if@pdfxISoff\else
+ \ifthenelse{\equal{\@PDFversion}{PDF/X-1}}{
+ \ClassError{novel}{Cannot use png cover image with PDF/X-1a}%
+ {PDF/X-1a requires CMYK image. But png format is always RGB.}%
+ }{}
+ \fi
+ \ClassWarning{novel}{^^JCover image is png file type. ^^J%
+ Format png only supports RGB, not CMYK. ^^J%
+ This might be OK if you are not using PDF/X-1a, ^^J%
+ and if your print service accepts RGB artwork. ^^J%
+ But in many cases, not OK. Did you need CMYK? ^^J}%
+ }{}%
+ \if@tempTF\else%
+ \ClassError{novel}{Cover image has wrong file extension}%
+ {Cover image must be jpg, JPG, jpeg, JPEG. ^^J%
+ Can also use png or PNG if CMYK not required.}%
+ \fi%
+} % end \TestCoverImage
+%%
+\newcommand\SetCoverImage[1]{%
+ \if@coverart%
+ \ClassWarning{novel}{^^J\string\SetCoverImage\space is obsolete. ^^J%
+ It will be honored, but not documented. From `novel' version 1.50 use ^^J%
+ novel-scripts, then \ScriptCoverImage\space instead. ^^J}%
+ \TestCoverImage{#1}%
+ \AddToShipoutPictureBG{%
+ \AtPageUpperLeft{%
+ \InlineImage{#1}%
+ }%
+ }%
+ \null% without this, page has no "content"
+ \else%
+ \ClassError{novel}{\string\SetCoverImage\space requires `coverart' option}%
+ {You must use the `coverart' document class option, for cover image.}%
+ \fi%
+} % end \SetCoverImage
+%%
+
+
+%% OBSOLETE
+\newif \if@FlexResolutionSet
+\gdef\@novereserror{%
+ \ClassError{novel}{\string\SetFlexResolution\space bad value}%
+ {Resolution dpi must be integer from 200 to 9600. Default 300.}%
+}
+\newcommand\SetFlexResolution[1]{
+ \IfInteger{#1}{ %
+ \FPiflt{#1}{200}\@novereserror\else\fi % not enough
+ \FPifgt{#1}{9600}\@novereserror\else\fi % too much
+ \gdef\@novimgres{#1} %
+ }{ %
+ \@novreserror %
+ } %
+ \@FlexResolutionSettrue %
+}%
+%
+\AtEndPreamble{% called by `novel.cls' \AtEndPreamble
+ \if@FlexResolutionSet %
+ \pdfimageresolution=\@novimgres % from \SetFlexResolution. Default 300.
+ \fi %
+}%
+%%
+
+
+%% BLOCK IMAGE (OBSOLETE)
+%% ----------------------------------------------------------------------------
+%% \BlockImage[alignment]{image}[text]
+%% OBSOLETE FROM VERSION 1.50. Use \FloatImage instead.
+\DeclareDocumentCommand \BlockImage { O{c} m +O{} }{%
+ \ClassWarning{novel}{^^J\string\BlockImage\space command is obsolete. ^^J%
+ It will remain in effect for existing documents that have it. ^^J%
+ New documents: Use \string\FloatImage, or \string\WrapImage, instead. ^^J%
+ Purpose and syntax is slightly different. See docs. ^^J}%
+ \iftoggle{@inheadfoot}{%
+ \ClassError{novel}{Cannot use \string\BlockImage\space in header/footer}%
+ {Header footer allow \string\InlineImage, but not \string\BlockImage.}%
+ }{}%
+ \@TestImageExtension{#2}%
+ % Allows empty or blank to be used, and still provide default values:
+ \ifthenelse{\equal{#1}{} \OR \equal{#1}{\space}}{%
+ \def\@myargs{c}}{\def\@myargs{#1}%
+ }%
+ \StrDel{\@myargs}{\space}[\@myargsns]% needs {\space} not { }
+ \StrCut{\@myargsns}{,}{\@myalign}{\@mycoord}%
+ \StrCut{\@mycoord}{,}{\@myxt}{\@myyt}%
+ \ifthenelse{\equal{\@myxt}{}\OR\equal{\@myxt}{0}}{%
+ \def\@myx{0pt}}{\def\@myx{\@myxt}%
+ }%
+ \ifthenelse{\equal{\@myyt}{}\OR\equal{\@myyt}{0}}{%
+ \def\@myy{0pt}}{\def\@myy{\@myyt}%
+ }%
+ %
+ \global\@UsingNovelCommandtrue%
+ \gdef\@mygraphic{\novel@sub@inclgr{#2}}%
+ \gdef\@mygraphicname{#2}%
+ \setlength\@imagewidth{\widthof{\@mygraphic}}%
+ \global\@imagewidth=\@imagewidth%
+ \setlength\@imageheight{\heightof{\@mygraphic}}%
+ \global\@imageheight=\@imageheight%
+ \setlength\@imagehoffset{\@myx}%
+ \IfBeginWith{\@myy}{b}{%
+ \ClassError{novel}{Cannot use voffset `b' on %
+ \string\BlockImage, page \thepage}%
+ {The `b' voffset only works with \string\InlineImage, %
+ not \string\BlockImage.}%
+ }{%
+ \setlength\@imagevoffset{-\@imageheight}%
+ \addtolength\@imagevoffset{\@myy}%
+ }%
+ %
+ \setlength\@mytotalht{0pt}%
+ \addtolength\@mytotalht{\@imageheight}%
+ \addtolength\@mytotalht{-\@myy}%
+ \addtolength\@mytotalht{1em}%
+ \def\@mytotalhtN{\strip@pt\@mytotalht}%
+ \FPdiv{\@mytotalhtN}{\@mytotalhtN}{\strip@pt\nbs}%
+ \FPadd{\@mytotalhtN}{\@mytotalhtN}{0.5}%
+ \FPround{\@mytotalhtN}{\@mytotalhtN}{0}%
+ %
+ \begin{linegap}{\@mytotalhtN}%
+ %
+ \ifthenelse{\equal{\@myalign}{c}\OR\equal{\@myalign}{}}{%
+ {\centering%
+ \makebox[0pt][l]{%
+ \hspace{\dimexpr\@myx-0.5\@imagewidth}%
+ \stake\smash{\raisebox{\dimexpr\@myy-\@imageheight}{\@mygraphic}}%
+ }%
+ \par%
+ }
+ \vspace*{-\nbs}%
+ {\centering #3\par}%
+ }{}%
+ \ifthenelse{\equal{\@myalign}{r}}{%
+ \noindent\makebox[0pt][l]{%
+ \hspace{\dimexpr\textwidth+\@myx-\@imagewidth}%
+ \stake\smash{\raisebox{\dimexpr\@myy-\@imageheight}{\@mygraphic}}%
+ }\par%
+ \vspace{-2\nbs}%
+ \begin{adjustwidth}{0pt}{\@imagewidth+\parindent}%
+ \strut\par%
+ #3\par%
+ \end{adjustwidth}%
+ }{}%
+ \ifthenelse{\equal{\@myalign}{l}}{%
+ \noindent\makebox[0pt][l]{%
+ \hspace{\@myx}%
+ \stake\smash{\raisebox{\dimexpr\@myy-\@imageheight}{\@mygraphic}}%
+ }%
+ \par%
+ \vspace{-2\nbs}%
+ \begin{adjustwidth}{\@imagewidth+\parindent}{0pt}%
+ \strut\par%
+ #3\par%
+ \end{adjustwidth}%
+ }{}%
+ \end{linegap}%
+ \global\@UsingNovelCommandfalse%
+} % end \BlockImage (OBSOLETE)
+%%
+
+
+%% LINEGAP IS OBSOLETE CODE. NOT DOCUMENTED.
+%% ----------------------------------------------------------------------------
+% Allows text to be placed (potentially) off-grid, with grid resuming after.
+\newif \if@WithinLinegap % true within linegap environment
+\newcounter{currentlinegap} % 0 when not within linegap, >0 otherwise.
+\DeclareDocumentEnvironment {linegap} { m } {%
+ \FPifint{#1}\else%
+ \ClassError{novel}{Non-integer linegap on page \thepage}%
+ {Only integer >= 1 allowed for linegap.}%
+ \fi%
+ \FPiflt{#1}{1}%
+ \ClassError{novel}{Insufficient linegap on page \thepage}%
+ {Only integer >= 1 allowed for linegap.}%
+ \fi%
+ \par%
+ \null%
+ \vspace*{-\nbs}%
+ \global\@WithinLinegaptrue%
+ \begin{textblock*}{\textwidth}[0,0](0pt,0pt)%
+ \setcounter{currentlinegap}{#1}
+ \strut\par%
+ \vspace*{-\nbs}%
+}{% close the environment:
+ \end{textblock*}%
+ \global\@WithinLinegapfalse%
+ \par%
+ \vspace*{#1\nbs}%
+ \setcounter{currentlinegap}{0}%
+} % end linegap (obsolete)
+%%
+
+
+%% REWORK IS OBSOLETE CODE. NOT DOCUMENTED.
+%% ----------------------------------------------------------------------------
+%% \ReworkTrimSize retroactively changes Trim Size after layout.
+% If you use \ReworkTrimSize, you must first use \SetTrimSize (not defaults):
+\newlength\@NewTrimWidth
+\newlength\@NewTrimHeight
+\newif \if@ReworkTrimSize
+\newcommand\ReworkTrimSize[2]{% width, height
+ \ClassWarning{novel}{\string\Rework\space commands are obsolete. ^^J%
+ The \string\Rework\space commands are still effective for old documents, ^^J%
+ but should not be used for new documents, due to potential layout issues.}%
+ \if@SetTrimSize\else
+ \ClassError{novel}{Must use \string\SetTrimSize\space %
+ before \string\ReworkTrimSize}%
+ {\string\ReworkTrimSize\space cannot be applied to default Trim Size. ^^J%
+ You must manually \string\SetTrimSize\space prior to %
+ \string\ReworkTrimSize.}%
+ \fi
+ \if@coverart % New in version 1.2
+ \ClassError{novel}{\string\Rework\space commands cannot be used %
+ with `coverart' option}%
+ {Instead of \string\Rework, you must re-do the graphics artwork.}
+ \else
+ \global\@ReworkTrimSizetrue
+ \gsetlength\@NewTrimWidth{#1}
+ \gsetlength\@NewTrimHeight{#2}
+ \typeout{^^J Class `novel' Alert: %
+ Used \string\ReworkTrimSize\space command. ^^J%
+ Carefully review your PDF to ensure that line breaks, paragraphs, ^^J%
+ and page breaks are where you expect them to be. ^^J}%
+ \fi
+}% end \ReworkTrimSize
+%%
+
+
+%% REWORK IS OBSOLETE CODE. NOT DOCUMENTED.
+%% Retroactively change margins after layout. See documentation.
+% If you use \ReworkMargins, you must first use \SetMargins (not defaults):
+\newlength\@NewTopMargin
+\newlength\@NewOuterMargin
+\newlength\@NewBottomMargin
+\newlength\@NewInnerMargin
+\newif \if@ReworkMargins
+\newcommand\ReworkMargins[4]{ % top, outer, bottom, inner
+ \ClassWarning{novel}{\string\Rework\space commands are obsolete. ^^J%
+ The \string\Rework\space commands are still effective for old documents, ^^J%
+ but should not be used for new documents, due to potential layout issues.}%
+ \if@coverart % New in version 1.2
+ \ClassError{novel}{\string\Rework\space commands cannot be used %
+ with coverart option}%
+ {Instead of \string\Rework, you must re-do the graphics artwork.}
+ \else
+ \global\@ReworkMarginstrue
+ \gsetlength\@NewTopMargin{#1}
+ \gsetlength\@NewOuterMargin{#2}
+ \gsetlength\@NewBottomMargin{#3}
+ \gsetlength\@NewInnerMargin{#4}
+ \typeout{^^JClass novel Alert: Used \string\ReworkMargins. ^^J%
+ Carefully review your PDF to ensure that line breaks, paragraphs, ^^J%
+ and page breaks are where you expect them to be. ^^J}%
+ \fi
+}% end \ReworkMargins
+\LetLtxMacro\ReworkMargin{\ReworkMargins}\relax % for those who mis-type
+%% When \Rework, should result honor new margins (if possible), or should
+% result maintain original aspect ratio?
+\newif \if@AspectPriority
+\newcommand\ReworkPriority[1]{%
+ \@tempTFfalse
+ \ifthenelse{\equal{#1}{aspect}}{\@AspectPrioritytrue\@tempTFtrue}{}
+ \ifthenelse{\equal{#1}{margins}}{\@AspectPriorityfalse\@tempTFtrue}{}
+ \ifthenelse{\equal{#1}{margin}}{\@AspectPriorityfalse\@tempTFtrue}{}
+ \if@tempTF\else
+ \ClassError{novel}{Bad choice for \string\ReworkPriority}%
+ {Rework priority choices: aspect, margins (default margins).}%
+ \fi
+}
+\ReworkPriority{margins} % default
+%%
+
+
+%% REWORK IS OBSOLETE CODE. NOT DOCUMENTED.
+\gdef\ObsoleteRework{ %
+% A few values from the original calculation must be stored:
+\newlength\@OriginalEmSize
+ \gsetlength\@OriginalEmSize{\@SetFontSize}
+\newlength\@OriginalTextWidth % same as original available width
+ \gsetlength\@OriginalTextWidth{\textwidth}
+\newlength\@OriginalHeight % includes header/footer
+ \gsetlength\@OriginalHeight{\@AvailableHeight}
+\newlength\@OriginalBaselineSkip
+ \gsetlength\@OriginalBaselineSkip{\baselineskip}
+% Change the values of trim size and margins, as requested.
+% If not changed, same as before:
+\if@ReworkTrimSize
+ \gsetlength\@TrimWidth{\@NewTrimWidth}
+ \gsetlength\@TrimHeight{\@NewTrimHeight}
+\fi
+\if@ReworkMargins
+ \gsetlength\@TopMargin{\@NewTopMargin}
+ \gsetlength\@OuterMargin{\@NewOuterMargin}
+ \gsetlength\@BottomMargin{\@NewBottomMargin}
+ \gsetlength\@InnerMargin{\@NewInnerMargin}
+\fi
+% Re-calculate:
+\gsetlength\@AvailableWidth{\@TrimWidth-\@OuterMargin-\@InnerMargin}
+\gsetlength\@AvailableHeight{\@TrimHeight-\@TopMargin-\@BottomMargin}
+%%
+\xdef\@TWratio{\fpeval{\@AvailableWidth/\@OriginalTextWidth}}
+\xdef\@THratio{\fpeval{\@AvailableHeight/\@OriginalHeight}}
+\FPmin{\@TMratio}{\@TWratio}{\@THratio}
+%%
+\if@AspectPriority
+ \gsetlength\textwidth{\@TMratio\@OriginalTextWidth}
+ \gsetlength\@SetFontSize{\@TMratio\@OriginalEmSize}
+ \gsetlength\baselineskip{\@TMratio\@OriginalBaselineSkip}
+ % Find whether limiting factor is width or height:
+ \ifnumcomp{\@TWratio}{<}{\@THratio}{%
+ \setlength\@tempLength{\@AvailableHeight-\@AdjLPP\baselineskip}
+ \setlength\@tempLength{\@tempLength-\baselineskip+\@SetFontSize}
+ \setlength\@tempLength{0.5\@tempLength}
+ \gsetlength{\@TopMargin}{\@TopMargin+\@tempLength}
+ \gsetlength{\@BottomMargin}{\@BottomMargin+\@tempLength}
+ \FPround{\@tempN}{\strip@pt\@tempLength}{2}
+ \setlength\@tempLength{\@tempN pt}
+ \FPround{\@tempN}{\@TMratio}{4}
+ \typeout{^^JClass `novel' Info: Rework preserving aspect ratio. ^^J Each%
+ vertical margin \the\@tempLength\space over requested rework value. ^^J%
+ Scale \@tempN\space applied to text size and baselineskip. ^^J%
+ } %
+ }{%
+ \gsetlength\@OuterMargin{\@OuterMargin+0.5\@AvailableWidth-0.5\textwidth}
+ \gsetlength\@InnerMargin{\@InnerMargin+0.5\@AvailableWidth-0.5\textwidth}
+ \setlength\@tempLength{0.5\@AvailableWidth-0.5\textwidth}
+ \FPround{\@tempN}{\strip@pt\@tempLength}{2}
+ \setlength\@tempLength{\@tempN pt}
+ \FPround{\@tempN}{\@TMratio}{4}
+ \typeout{^^JClass `novel' Info: Rework preserving aspect ratio. ^^J%
+ Each side margin \the\@tempLength\space over requested rework value. ^^J%
+ Scale \@tempN\space applied to text size and baselineskip. ^^J%
+ } %
+ } % end \ifnumcomp
+\else % margins priority:
+ % Discover what happens if scaled according to text width:
+ \gsetlength\textwidth{\@AvailableWidth}
+ \gsetlength\@SetFontSize{\@TWratio\@OriginalEmSize}
+ \gsetlength\baselineskip{1.2\@SetFontSize} % test for least allowable
+ \setlength\@tempLength{\@AdjLPP\baselineskip}
+ \ifdimcomp{\@AvailableHeight-\@tempLength}{<}{0pt}{%
+ % Will not fit vertically, so will need to re-scale \@SetFontSize.
+ \gsetlength\@SetFontSize{\@OriginalEmSize}
+ \gsetlength\baselineskip{\fpeval{\@AvailableHeight/(\@AdjLPP+1.3)}pt}
+ \FPdiv\@THratio{\strip@pt\baselineskip}{\strip@pt\@OriginalBaselineSkip}
+ \gsetlength\@SetFontSize{0.8333\baselineskip} % 0.8333 = 1/1.2, tight skip
+ \FPdiv{\@tempN}{\strip@pt\@SetFontSize}{\strip@pt\@OriginalEmSize}
+ \gsetlength\textwidth{\@tempN\@OriginalTextWidth}
+ \gsetlength\@OuterMargin{%
+ 0.5\@OuterMargin+0.5\@TrimWidth-0.5\@InnerMargin-0.5\textwidth%
+ }
+ \gsetlength\@InnerMargin{%
+ 0.5\@InnerMargin+0.5\@TrimWidth-0.5\@OuterMargin-0.5\textwidth%
+ }
+ \FPround{\@ActualOuterN}{\strip@pt\@OuterMargin}{2}
+ \FPround{\@ActualInnerN}{\strip@pt\@InnerMargin}{2}
+ \FPmul{\@TWratio}{\@TWratio}{\@THratio}
+ \FPmul{\@THratio}{\@TWratio}{1.2}
+ \FPround{\@TWratio}{\@TWratio}{4}
+ \FPround{\@THratio}{\@THratio}{4}
+ \typeout{^^JClass `novel' Info: Reworked side margins enlarged. ^^J%
+ Actual Outer Margin is now \@ActualOuterN pt. ^^J%
+ Actual Inner Margin is now \@ActualInnerN pt. ^^J%
+ Scale \@TWratio\space applied to text, ^^J%
+ \@THratio\space applied to baselineskip. ^^J%
+ } %
+ }{% Fits vertically. Keep \@SetFontSize. Calculate \baselineskip to fit:
+ \gsetlength\baselineskip{%
+ \fpeval{(\@AvailableHeight-1.3*\@SetFontSize)/\@AdjLPP}pt%
+ } %
+ \FPdiv{\@BLratio}{\strip@pt\baselineskip}{\strip@pt\@OriginalBaselineSkip}
+ \FPround{\@BLratio}{\@BLratio}{4}
+ \FPround{\@TWratio}{\@TWratio}{4}
+ \typeout{^^JClass `novel' Info: Rework was able to fit new margins. ^^J%
+ Scale applied to font size: \@TWratio. ^^J%
+ Scale applied to baselineskip: \@BLratio. ^^J%
+ } %
+ }% end \ifdimcomp.
+\fi
+} % end ObsoleteRework.
+%%
+
+
+%%
+\AtBeginDocument{%
+ \LetLtxMacro\ReworkTrimSize\relax
+ \LetLtxMacro\ReworkMargins\relax
+ \LetLtxMacro\ReworkPriority\relax
+ \LetLtxMacro\SetFlexResolution\relax % cannot use past Preamble
+ \providecommand\acronym[1]{\midcase{#1}}% acronym deprecated
+} %
+%%
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-Obsolete.sty'.
+
+