mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	Added note at top, since LaTeX style writers like to force name changes when someone else makes a change to the style. I'm sending a note to the author reporting the error and asking for an updated version. This cannot be distributed in this form. This will be resolved when I get a response from Ulf Lindgren. Typo reported by rwolff@noao.edu (Richard Wolff).
		
			
				
	
	
		
			433 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			433 lines
		
	
	
	
		
			10 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
%%% Derived from the original fncychap.sty,
 | 
						|
%%% but changed ``TWELV'' to ``TWELVE''.
 | 
						|
 | 
						|
%%% Copyright   Ulf A. Lindgren
 | 
						|
%%%             Department of Applied Electronics
 | 
						|
%%%             Chalmers University of Technology
 | 
						|
%%%             S-412 96 Gothenburg, Sweden
 | 
						|
%%%             E-mail lindgren@ae.chalmers.se
 | 
						|
%%%
 | 
						|
%%% Note        Permission is granted to modify this file under
 | 
						|
%%%             the condition that it is saved using another
 | 
						|
%%%             file and package name.
 | 
						|
%%%
 | 
						|
%%% Revision    1.1
 | 
						|
%%%
 | 
						|
%%%             Jan. 8th Modified package name base date option
 | 
						|
%%%             Jan. 22th Modified FmN and FmTi for error in book.cls
 | 
						|
%%%                  \MakeUppercase{#}->{\MakeUppercase#}
 | 
						|
%%%             Apr. 6th Modified Lenny option to prevent undesired 
 | 
						|
%%%                  skip of line.
 | 
						|
%%%             Nov. 8th Fixed \@chapapp for AMS
 | 
						|
%%%             Feb. 11th Fixed appendix problem related to Bjarne
 | 
						|
%%% Last modified    Feb. 11th 1998
 | 
						|
 | 
						|
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
 | 
						|
\ProvidesPackage{fncychap}
 | 
						|
             [1997/04/06 v1.11
 | 
						|
                 LaTeX package (Revised chapters)]
 | 
						|
 | 
						|
%%%% DEFINITION OF Chapapp variables
 | 
						|
\newcommand{\CNV}{\huge\bfseries}
 | 
						|
\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}}
 | 
						|
 | 
						|
 | 
						|
%%%% DEFINITION OF TheChapter variables
 | 
						|
\newcommand{\CNoV}{\huge\bfseries}
 | 
						|
\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}}
 | 
						|
 | 
						|
\newif\ifUCN
 | 
						|
\UCNfalse
 | 
						|
\newif\ifLCN
 | 
						|
\LCNfalse
 | 
						|
\def\ChNameLowerCase{\LCNtrue\UCNfalse}
 | 
						|
\def\ChNameUpperCase{\UCNtrue\LCNfalse}
 | 
						|
\def\ChNameAsIs{\UCNfalse\LCNfalse}
 | 
						|
 | 
						|
%%%%% Fix for AMSBook 971008
 | 
						|
 | 
						|
\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}
 | 
						|
 | 
						|
 | 
						|
%%%%% Fix for Bjarne and appendix 980211
 | 
						|
 | 
						|
\newif\ifinapp
 | 
						|
\inappfalse
 | 
						|
\renewcommand\appendix{\par
 | 
						|
  \setcounter{chapter}{0}%
 | 
						|
  \setcounter{section}{0}%
 | 
						|
  \inapptrue%
 | 
						|
  \renewcommand\@chapapp{\appendixname}%
 | 
						|
  \renewcommand\thechapter{\@Alph\c@chapter}}
 | 
						|
 | 
						|
%%%%%
 | 
						|
 | 
						|
\newcommand{\FmN}[1]{%
 | 
						|
\ifUCN
 | 
						|
   {\MakeUppercase#1}\LCNfalse
 | 
						|
\else
 | 
						|
   \ifLCN
 | 
						|
      {\MakeLowercase#1}\UCNfalse
 | 
						|
   \else #1
 | 
						|
   \fi
 | 
						|
\fi}
 | 
						|
 | 
						|
 | 
						|
%%%% DEFINITION OF Title variables
 | 
						|
\newcommand{\CTV}{\Huge\bfseries}
 | 
						|
\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}}
 | 
						|
 | 
						|
%%%% DEFINITION OF the basic rule width
 | 
						|
\newlength{\RW}
 | 
						|
\setlength{\RW}{1pt}
 | 
						|
\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}}
 | 
						|
 | 
						|
\newif\ifUCT
 | 
						|
\UCTfalse
 | 
						|
\newif\ifLCT
 | 
						|
\LCTfalse
 | 
						|
\def\ChTitleLowerCase{\LCTtrue\UCTfalse}
 | 
						|
\def\ChTitleUpperCase{\UCTtrue\LCTfalse}
 | 
						|
\def\ChTitleAsIs{\UCTfalse\LCTfalse}
 | 
						|
\newcommand{\FmTi}[1]{%
 | 
						|
\ifUCT
 | 
						|
 | 
						|
   {\MakeUppercase#1}\LCTfalse
 | 
						|
\else
 | 
						|
   \ifLCT
 | 
						|
      {\MakeLowercase#1}\UCTfalse
 | 
						|
   \else #1
 | 
						|
   \fi
 | 
						|
\fi}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
\newlength{\mylen}
 | 
						|
\newlength{\myhi}
 | 
						|
\newlength{\px}
 | 
						|
\newlength{\py}
 | 
						|
\newlength{\pyy}
 | 
						|
\newlength{\pxx}
 | 
						|
 | 
						|
 | 
						|
\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@}
 | 
						|
 | 
						|
\newcommand{\DOCH}{%
 | 
						|
  \CNV\FmN{\@chapapp}\space \CNoV\thechapter
 | 
						|
  \par\nobreak
 | 
						|
  \vskip 20\p@
 | 
						|
  }
 | 
						|
\newcommand{\DOTI}[1]{%
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 40\p@
 | 
						|
    }
 | 
						|
\newcommand{\DOTIS}[1]{%
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 40\p@
 | 
						|
    }
 | 
						|
 | 
						|
%%%%%% SONNY DEF
 | 
						|
 | 
						|
\DeclareOption{Sonny}{%
 | 
						|
  \ChNameVar{\Large\sf}
 | 
						|
  \ChNumVar{\Huge}
 | 
						|
  \ChTitleVar{\Large\sf}
 | 
						|
  \ChRuleWidth{0.5pt}
 | 
						|
  \ChNameUpperCase
 | 
						|
  \renewcommand{\DOCH}{%
 | 
						|
    \raggedleft
 | 
						|
    \CNV\FmN{\@chapapp}\space \CNoV\thechapter
 | 
						|
    \par\nobreak
 | 
						|
    \vskip 40\p@}
 | 
						|
  \renewcommand{\DOTI}[1]{%
 | 
						|
    \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
 | 
						|
    \vskip 5\p@
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \mghrulefill{\RW}\par\nobreak
 | 
						|
    \vskip 40\p@}
 | 
						|
  \renewcommand{\DOTIS}[1]{%
 | 
						|
    \CTV\raggedleft\mghrulefill{\RW}\par\nobreak
 | 
						|
    \vskip 5\p@
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \mghrulefill{\RW}\par\nobreak
 | 
						|
    \vskip 40\p@}
 | 
						|
}
 | 
						|
 | 
						|
%%%%%% LENNY DEF
 | 
						|
 | 
						|
\DeclareOption{Lenny}{%
 | 
						|
 | 
						|
  \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont}
 | 
						|
  \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont}
 | 
						|
  \ChTitleVar{\Huge\bfseries\rm}
 | 
						|
  \ChRuleWidth{1pt}
 | 
						|
  \renewcommand{\DOCH}{%
 | 
						|
    \settowidth{\px}{\CNV\FmN{\@chapapp}}
 | 
						|
    \addtolength{\px}{2pt}
 | 
						|
    \settoheight{\py}{\CNV\FmN{\@chapapp}}
 | 
						|
    \addtolength{\py}{1pt}
 | 
						|
 | 
						|
    \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter}
 | 
						|
    \addtolength{\mylen}{1pt}
 | 
						|
    \settowidth{\pxx}{\CNoV\thechapter}
 | 
						|
    \addtolength{\pxx}{-1pt}
 | 
						|
 | 
						|
    \settoheight{\pyy}{\CNoV\thechapter}
 | 
						|
    \addtolength{\pyy}{-2pt}
 | 
						|
    \setlength{\myhi}{\pyy}
 | 
						|
    \addtolength{\myhi}{-1\py}
 | 
						|
    \par
 | 
						|
    \parbox[b]{\textwidth}{%
 | 
						|
    \rule[\py]{\RW}{\myhi}%
 | 
						|
    \hskip -\RW%
 | 
						|
    \rule[\pyy]{\px}{\RW}%
 | 
						|
    \hskip -\px%
 | 
						|
    \raggedright%
 | 
						|
    \CNV\FmN{\@chapapp}\space\CNoV\thechapter%
 | 
						|
    \hskip1pt%
 | 
						|
    \mghrulefill{\RW}%
 | 
						|
    \rule{\RW}{\pyy}\par\nobreak%
 | 
						|
    \vskip -\baselineskip%
 | 
						|
    \vskip -\pyy%
 | 
						|
    \hskip \mylen%
 | 
						|
    \mghrulefill{\RW}\par\nobreak%
 | 
						|
    \vskip \pyy}%
 | 
						|
    \vskip 20\p@}
 | 
						|
 
 | 
						|
 | 
						|
  \renewcommand{\DOTI}[1]{%
 | 
						|
    \raggedright
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 40\p@}
 | 
						|
 | 
						|
  \renewcommand{\DOTIS}[1]{%
 | 
						|
    \raggedright
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 40\p@}
 | 
						|
 }
 | 
						|
 | 
						|
 | 
						|
%%%%%%% GLENN DEF
 | 
						|
 | 
						|
 | 
						|
\DeclareOption{Glenn}{%
 | 
						|
  \ChNameVar{\bfseries\Large\sf}
 | 
						|
  \ChNumVar{\Huge}
 | 
						|
  \ChTitleVar{\bfseries\Large\rm}
 | 
						|
  \ChRuleWidth{1pt}
 | 
						|
  \ChNameUpperCase
 | 
						|
  \ChTitleUpperCase
 | 
						|
  \renewcommand{\DOCH}{%
 | 
						|
    \settoheight{\myhi}{\CTV\FmTi{Test}}
 | 
						|
    \setlength{\py}{\baselineskip}
 | 
						|
    \addtolength{\py}{\RW}
 | 
						|
    \addtolength{\py}{\myhi}
 | 
						|
    \setlength{\pyy}{\py}
 | 
						|
    \addtolength{\pyy}{-1\RW}
 | 
						|
     
 | 
						|
    \raggedright
 | 
						|
    \CNV\FmN{\@chapapp}\space\CNoV\thechapter
 | 
						|
    \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak}
 | 
						|
 | 
						|
  \renewcommand{\DOTI}[1]{%
 | 
						|
    \addtolength{\pyy}{-4pt}
 | 
						|
    \settoheight{\myhi}{\CTV\FmTi{#1}}
 | 
						|
    \addtolength{\myhi}{\py}
 | 
						|
    \addtolength{\myhi}{-1\RW}
 | 
						|
    \vskip -1\pyy
 | 
						|
    \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
 | 
						|
    \raggedleft\CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 80\p@}
 | 
						|
 | 
						|
  \renewcommand{\DOTIS}[1]{%
 | 
						|
    \setlength{\py}{10pt}
 | 
						|
    \setlength{\pyy}{\py}
 | 
						|
    \addtolength{\pyy}{\RW}
 | 
						|
    \setlength{\myhi}{\baselineskip}
 | 
						|
    \addtolength{\myhi}{\pyy}
 | 
						|
    \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak
 | 
						|
%    \addtolength{}{}
 | 
						|
\vskip -1\baselineskip
 | 
						|
    \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt
 | 
						|
    \raggedleft\CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 60\p@}
 | 
						|
  }
 | 
						|
 | 
						|
%%%%%%% CONNY DEF
 | 
						|
 | 
						|
\DeclareOption{Conny}{%
 | 
						|
  \ChNameUpperCase
 | 
						|
  \ChTitleUpperCase  
 | 
						|
  \ChNameVar{\centering\Huge\rm\bfseries}
 | 
						|
  \ChNumVar{\Huge}
 | 
						|
  \ChTitleVar{\centering\Huge\rm}
 | 
						|
  \ChRuleWidth{2pt}
 | 
						|
 | 
						|
  \renewcommand{\DOCH}{%
 | 
						|
    \mghrulefill{3\RW}\par\nobreak
 | 
						|
    \vskip -0.5\baselineskip
 | 
						|
    \mghrulefill{\RW}\par\nobreak
 | 
						|
    \CNV\FmN{\@chapapp}\space \CNoV\thechapter
 | 
						|
    \par\nobreak
 | 
						|
    \vskip -0.5\baselineskip
 | 
						|
   }
 | 
						|
  \renewcommand{\DOTI}[1]{%
 | 
						|
    \mghrulefill{\RW}\par\nobreak
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 60\p@
 | 
						|
    }
 | 
						|
  \renewcommand{\DOTIS}[1]{%
 | 
						|
    \mghrulefill{\RW}\par\nobreak
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 60\p@
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
%%%%%%% REJNE DEF
 | 
						|
 | 
						|
\DeclareOption{Rejne}{%
 | 
						|
 | 
						|
  \ChNameUpperCase
 | 
						|
  \ChTitleUpperCase  
 | 
						|
  \ChNameVar{\centering\Large\rm}
 | 
						|
  \ChNumVar{\Huge}
 | 
						|
  \ChTitleVar{\centering\Huge\rm}
 | 
						|
  \ChRuleWidth{1pt}
 | 
						|
  \renewcommand{\DOCH}{%
 | 
						|
    \settoheight{\py}{\CNoV\thechapter}
 | 
						|
    \addtolength{\py}{-1pt}
 | 
						|
    \CNV\FmN{\@chapapp}\par\nobreak
 | 
						|
    \vskip 20\p@
 | 
						|
    \setlength{\myhi}{2\baselineskip}
 | 
						|
    \setlength{\px}{\myhi}
 | 
						|
    \addtolength{\px}{-1\RW}
 | 
						|
    \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip
 | 
						|
    10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip
 | 
						|
10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak
 | 
						|
     \vskip -1\p@
 | 
						|
    }
 | 
						|
  \renewcommand{\DOTI}[1]{%
 | 
						|
    \setlength{\mylen}{\textwidth}
 | 
						|
    \addtolength{\mylen}{-2\RW}
 | 
						|
    {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule
 | 
						|
width\RW}\par\nobreak
 | 
						|
    \vskip
 | 
						|
-1pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}
 | 
						|
    \vskip 60\p@
 | 
						|
    }
 | 
						|
  \renewcommand{\DOTIS}[1]{%
 | 
						|
    \setlength{\py}{\fboxrule}
 | 
						|
    \setlength{\fboxrule}{\RW}
 | 
						|
    \setlength{\mylen}{\textwidth}
 | 
						|
    \addtolength{\mylen}{-2\RW}
 | 
						|
    \fbox{\parbox{\mylen}{\vskip
 | 
						|
2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} 
 | 
						|
    \setlength{\fboxrule}{\py}
 | 
						|
    \vskip 60\p@
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
%%%%%%% BJARNE DEF
 | 
						|
 | 
						|
\DeclareOption{Bjarne}{%
 | 
						|
  \ChNameUpperCase
 | 
						|
  \ChTitleUpperCase  
 | 
						|
  \ChNameVar{\raggedleft\normalsize\rm}
 | 
						|
  \ChNumVar{\raggedleft \bfseries\Large}
 | 
						|
  \ChTitleVar{\raggedleft \Large\rm}
 | 
						|
  \ChRuleWidth{1pt}
 | 
						|
 | 
						|
 | 
						|
%% Note thechapter -> c@chapter fix appendix bug
 | 
						|
 | 
						|
  \newcounter{AlphaCnt}
 | 
						|
  \newcounter{AlphaDecCnt}
 | 
						|
  \newcommand{\AlphaNo}{%
 | 
						|
    \ifcase\number\theAlphaCnt
 | 
						|
      \ifnum\c@chapter=0
 | 
						|
        ZERO\else{}\fi
 | 
						|
    \or ONE\or TWO\or THREE\or FOUR\or FIVE
 | 
						|
    \or SIX\or SEVEN\or EIGHT\or NINE\or TEN
 | 
						|
    \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN
 | 
						|
    \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi
 | 
						|
}
 | 
						|
 | 
						|
  \newcommand{\AlphaDecNo}{%
 | 
						|
    \setcounter{AlphaDecCnt}{0}
 | 
						|
    \@whilenum\number\theAlphaCnt>0\do
 | 
						|
      {\addtocounter{AlphaCnt}{-10}
 | 
						|
       \addtocounter{AlphaDecCnt}{1}}
 | 
						|
     \ifnum\number\theAlphaCnt=0
 | 
						|
     \else
 | 
						|
       \addtocounter{AlphaDecCnt}{-1}
 | 
						|
       \addtocounter{AlphaCnt}{10}
 | 
						|
     \fi
 | 
						|
     
 | 
						|
     
 | 
						|
    \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or
 | 
						|
    FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi
 | 
						|
    }
 | 
						|
  \newcommand{\TheAlphaChapter}{%
 | 
						|
    
 | 
						|
    \ifinapp 
 | 
						|
      \thechapter
 | 
						|
    \else
 | 
						|
      \setcounter{AlphaCnt}{\c@chapter}
 | 
						|
      \ifnum\c@chapter<20
 | 
						|
        \AlphaNo
 | 
						|
      \else
 | 
						|
        \AlphaDecNo\AlphaNo
 | 
						|
      \fi
 | 
						|
    \fi
 | 
						|
    }  
 | 
						|
  \renewcommand{\DOCH}{%
 | 
						|
    \mghrulefill{\RW}\par\nobreak
 | 
						|
    \CNV\FmN{\@chapapp}\par\nobreak 
 | 
						|
    \CNoV\TheAlphaChapter\par\nobreak
 | 
						|
    \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak
 | 
						|
    \vskip 20\p@
 | 
						|
    }
 | 
						|
  \renewcommand{\DOTI}[1]{%
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 40\p@
 | 
						|
    }
 | 
						|
  \renewcommand{\DOTIS}[1]{%
 | 
						|
    \CTV\FmTi{#1}\par\nobreak
 | 
						|
    \vskip 40\p@
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
\DeclareOption*{%
 | 
						|
  \PackageWarning{fancychapter}{unknown style option}
 | 
						|
  }
 | 
						|
 | 
						|
\ProcessOptions* \relax
 | 
						|
 | 
						|
\def\@makechapterhead#1{%
 | 
						|
  \vspace*{50\p@}%
 | 
						|
  {\parindent \z@ \raggedright \normalfont
 | 
						|
    \ifnum \c@secnumdepth >\m@ne
 | 
						|
      \DOCH
 | 
						|
    \fi
 | 
						|
    \interlinepenalty\@M
 | 
						|
    \DOTI{#1}
 | 
						|
  }}
 | 
						|
\def\@schapter#1{\if@twocolumn
 | 
						|
                   \@topnewpage[\@makeschapterhead{#1}]%
 | 
						|
                 \else
 | 
						|
                   \@makeschapterhead{#1}%
 | 
						|
                   \@afterheading
 | 
						|
                 \fi}
 | 
						|
\def\@makeschapterhead#1{%
 | 
						|
  \vspace*{50\p@}%
 | 
						|
  {\parindent \z@ \raggedright
 | 
						|
    \normalfont
 | 
						|
    \interlinepenalty\@M
 | 
						|
    \DOTIS{#1}
 | 
						|
    \vskip 40\p@
 | 
						|
  }}
 | 
						|
 | 
						|
\endinput
 | 
						|
 | 
						|
 |