% \iffalse meta-comment
%
% Copyright 1994 the LaTeX3 project and the individual authors.
% All rights reserved. For further copyright information see the file
% legal.txt, and any other copyright indicated in this file.
% 
% This file is part of the LaTeX2e system.
% ----------------------------------------
% 
%  This system 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.
% 
% 
% IMPORTANT NOTICE:
% 
% For error reports in case of UNCHANGED versions see bugs.txt.
% 
% Please do not request updates from us directly.  Distribution is
% done through Mail-Servers and TeX organizations.
% 
% You are not allowed to change this file.
% 
% You are allowed to distribute this file under the condition that
% it is distributed together with all files mentioned in manifest.txt.
% 
% If you receive only some of these files from someone, complain!
% 
% You are NOT ALLOWED to distribute this file alone.  You are NOT
% ALLOWED to take money for the distribution or use of either this
% file or a changed version, except for a nominal charge for copying
% etc.
% \fi
% Filename: ltnews.cls
% Author: Alan Jeffrey
% Version: 0.07
 
% This is the LaTeX2e document class for the `LaTeX News' information 
% sheet which comes with every LaTeX release.  It may be useful for 
% newsletters, or as an example of how simple newsletters can be set with 
% LaTeX.  The changes log is at the end of the file.
 
% Copyright 1994 Alan Jeffrey and the LaTeX3 project.  All rights reserved.
 
% This is a LaTeX2e document class.
 
\NeedsTeXFormat{LaTeX2e}
 
\ProvidesClass{ltnews}[1994/11/29 Standard LaTeX class]

% The configuration file, used for passing options.

\InputIfFileExists{ltnews.cfg}{%
   \ClassInfo{ltnews}{Using local configuration file}%
}{%
   \ClassInfo{ltnews}{No local configuration file}%
}

% The lw35fonts option uses the fonts:
%
%    Adobe Palatino          (main text)
%    Adobe Helvetica Bold    (headings)
%    Courier                 (program listings)
%    Mathptm math italic     (2e logo)
%    Mathptm symbol font     (AMS logo)
%
% The type1fonts option uses the fonts:
% 
%    Adobe Utopia            (main text)
%    URW Grotesk-T Bold      (headings)
%    Lucida Sans typewriter  (program listings)
%    Mathptm math italic     (2e logo)
%    Mathptm symbol font     (AMS logo)

% The Adobe Palatino fonts:

\DeclareFontFamily{OT1}{ppl}{}
\DeclareFontShape{OT1}{ppl}{m}{n}{<-> pplr7t}{}
\DeclareFontShape{OT1}{ppl}{m}{sc}{<-> pplrc7t}{}
\DeclareFontShape{OT1}{ppl}{m}{it}{<-> pplri7t}{}

% The Adobe Helvetica fonts:

\DeclareFontFamily{OT1}{phv}{}
\DeclareFontShape{OT1}{phv}{b}{n}{<-> phvb7t}{}

% The Adobe Courier fonts:

\DeclareFontFamily{OT1}{pcr}{\hyphenchar\font=-1}
\DeclareFontShape{OT1}{pcr}{m}{n}{<-> pcrr7t}{}
 
% The Utopia fonts:

\DeclareFontFamily{OT1}{put}{}
\DeclareFontShape{OT1}{put}{m}{n}{<-> putr7t}{}
\DeclareFontShape{OT1}{put}{m}{sc}{<-> putrc7t}{}
\DeclareFontShape{OT1}{put}{m}{it}{<-> putri7t}{}

% The URW Grotesk fonts:

\DeclareFontFamily{OT1}{ugq}{}
\DeclareFontShape{OT1}{ugq}{b}{n}{<-> ugqb7t}{}

% The Lucida Sans Typewriter fonts:

\DeclareFontFamily{OT1}{hlct}{\hyphenchar\font=-1}
\DeclareFontShape{OT1}{hlct}{m}{n}{<-> hlct7t}{}

% The mathptm math italic:

\DeclareFontFamily{OML}{ptmcm}{\skewchar\font=127}
\DeclareFontShape{OML}{ptmcm}{m}{it}{<-> zptmcmrm}{}

% The mathptm symbol font:

\DeclareFontFamily{OMS}{pzccm}{}
\DeclareFontShape{OMS}{pzccm}{m}{n}{<-> zpzccmry}{}

% The TeX logo for use with Palatino.

\def\pplTeX{T\kern-.15em\lower.4ex\hbox{E}\kern-.1emX\@}

% The LaTeX logo for use with Palatino.

\DeclareRobustCommand{\pplLaTeX}{L\kern-.3em
        {\setbox0\hbox{T}%
         \vbox to\ht0{\hbox{%
                            \csname S@\f@size\endcsname
                            \fontsize\sf@size\z@
                            \math@fontsfalse\selectfont
                            A}%
                      \vss}%
        }%
        \kern-.07em
        \TeX}

% The TeX logo for use with Utopia.

\def\putTeX{T\kern-.1667em\lower.4ex\hbox{E}\kern-.075emX\@}

% The LaTeX logo for use with Utopia.

\DeclareRobustCommand{\putLaTeX}{L\kern-.2em
        {\setbox0\hbox{T}%
         \vbox to\ht0{\hbox{%
                            \csname S@\f@size\endcsname
                            \fontsize\sf@size\z@
                            \math@fontsfalse\selectfont
                            A}%
                      \vss}%
        }%
        \kern-.05em
        \TeX}

% The TeX logo for use with Helvetica.

\def\phvTeX{T\kern-.1em\lower.4ex\hbox{E}\kern-.05emX\@}

% The LaTeX logo for use with Helvetica.

\DeclareRobustCommand{\phvLaTeX}{L\kern-.3em
        {\calculate@math@sizes
         \setbox0\hbox{T}%
         \vbox to\ht0{\hbox{%
                            \csname S@\f@size\endcsname
                            \fontsize\sf@size\z@
                            \math@fontsfalse\selectfont
                            A}%
                      \vss}%
        }%
        \kern-.05em
        \TeX}

% The TeX logo for use with Grotesk.

\def\ugqTeX{T\kern-.1em\lower.4ex\hbox{E}\kern-.05emX\@}

% The LaTeX logo for use with Grotesk.

\DeclareRobustCommand{\ugqLaTeX}{L\kern-.15em
        {\calculate@math@sizes
         \setbox0\hbox{T}%
         \vbox to\ht0{\hbox{%
                            \csname S@\f@size\endcsname
                            \fontsize\sf@size\z@
                            \math@fontsfalse\selectfont
                            A}%
                      \vss}%
        }%
        \kern-.01em
        \TeX}

% The TeX logo for use with CMSS.

\def\cmssTeX{T\kern-.2em\lower.4ex\hbox{E}\kern-.05emX\@}

% The LaTeX logo for use with CMSS.

\DeclareRobustCommand{\cmssLaTeX}{L\kern-.22em
        {\setbox0\hbox{T}%
         \vbox to\ht0{\hbox{%
                            \csname S@\f@size\endcsname
                            \fontsize\sf@size\z@
                            \math@fontsfalse\selectfont
                            A}%
                      \vss}%
        }%
        \kern-.17em
        \TeX}

% Switch off some of the article options.
 
\DeclareOption{a4paper}{\OptionNotUsed}
\DeclareOption{a5paper}{\OptionNotUsed}
\DeclareOption{b5paper}{\OptionNotUsed}
\DeclareOption{letterpaper}{\OptionNotUsed}
\DeclareOption{legalpaper}{\OptionNotUsed}
\DeclareOption{executivepaper}{\OptionNotUsed}
\DeclareOption{landscape}{\OptionNotUsed}
\DeclareOption{twoside}{\OptionNotUsed}
\DeclareOption{titlepage}{\OptionNotUsed}
\DeclareOption{onecolumn}{\OptionNotUsed}

% The CM fonts

\newcommand{\@titlefont}{\normalfont\Huge}
\newcommand{\@indiciafont}{\normalfont\footnotesize}
\newcommand{\@headingfont}{%
   \large\sffamily\slshape
   \let\LaTeX\cmssLaTeX\let\TeX\cmssTeX
}

% The LW 35 fonts option

\DeclareOption{lw35fonts}{%
   \renewcommand{\rmdefault}{ppl}%
   \renewcommand{\ttdefault}{pcr}%
   \renewcommand{\sfdefault}{phv}%
   \renewcommand{\@titlefont}{%
      \fontsize{50}{60}\fontfamily{phv}\fontseries{b}\selectfont
      \let\LaTeX\phvLaTeX\let\TeX\phvTeX
   }%
   \renewcommand{\@indiciafont}{%
      \fontsize{8}{10}\fontfamily{ppl}\fontshape{it}\selectfont
   }%
   \renewcommand{\@headingfont}{%
      \fontsize{12}{14}\fontfamily{phv}\fontseries{b}\selectfont
      \let\LaTeX\phvLaTeX\let\TeX\phvTeX
   }%
   \DeclareSymbolFont{letters}{OML}{ptmcm}{m}{it}%
   \DeclareSymbolFont{symbols}{OMS}{pzccm}{m}{n}%
   \let\LaTeX\pplLaTeX
   \let\TeX\pplTeX
}

% The type 1 fonts option

\DeclareOption{type1fonts}{%
   \renewcommand{\rmdefault}{put}%
   \renewcommand{\ttdefault}{hlct}%
   \renewcommand{\sfdefault}{ugq}%
   \renewcommand{\@titlefont}{%
      \fontsize{50}{60}\fontfamily{ugq}\fontseries{b}\selectfont
      \let\LaTeX\ugqLaTeX\let\TeX\ugqTeX
   }%
   \renewcommand{\@indiciafont}{%
      \fontsize{8}{10}\fontfamily{put}\fontshape{it}\selectfont
   }%
   \renewcommand{\@headingfont}{%
      \fontsize{12}{14}\fontfamily{ugq}\fontseries{b}\selectfont
      \let\LaTeX\ugqLaTeX\let\TeX\ugqTeX
   }%
   \renewcommand{\verbatim@font}{%
      \fontsize{9}{12}\fontfamily{hlct}\selectfont
   }%
   \DeclareSymbolFont{letters}{OML}{ptmcm}{m}{it}%
   \DeclareSymbolFont{symbols}{OMS}{pzccm}{m}{n}%
   \let\LaTeX\putLaTeX
   \let\TeX\putTeX
}

% The default action for any option is to pass it to the article
% class.
 
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
 
% Execute the options.
 
\ProcessOptions
 
% Load the article class.
 
\LoadClass[twocolumn,oneside]{article}

% The page style.
 
\pagestyle{empty}
\setlength{\parindent}{1em}
\setlength{\rightskip}{0pt plus \textwidth}
\setlength{\@rightskip}{\rightskip}
\setlength{\parfillskip}{0pt plus 2\textwidth}
\setlength{\columnsep}{2em}

% The text size, which tries to work with both A4 and letter paper sizes. 
 
\setlength{\textheight}{230mm}
\setlength{\topmargin}{-10mm}
 
\setlength{\textwidth}{180mm}
\setlength{\oddsidemargin}{-10mm}
 
% \maketitle parameters.
 
\newcommand{\publicationmonth}{\renewcommand{\@month}}
\newcommand{\@month}{\ClassError{ltnews}
   {No \protect\publicationmonth~given}\@eha}
 
\newcommand{\publicationyear}{\renewcommand{\@year}}
\newcommand{\@year}{\ClassError{ltnews}
   {No \protect\publicationyear~given}\@eha}
 
\newcommand{\publicationissue}{\renewcommand{\@issue}}
\newcommand{\@issue}{\ClassError{ltnews}
   {No \protect\publicationissue~given}\@eha}
\newcommand{\issuename}{Issue}
 
\newcommand{\indicia}{\renewcommand{\@indicia}}
\newcommand{\@indicia}{%
   \LaTeXNews, and the \LaTeX{} software,
   is brought to you by the \LaTeX3 project team;
   Copyright \@year, all rights reserved.
}
 
\title{\LaTeXNews}
 
% The \maketitle for the LaTeX News.
 
\renewcommand{\maketitle}{%
   \twocolumn[{%
      \parbox[t][7\baselineskip]{\textwidth}{%
         \@titlefont\@title\\[\medskipamount]
         \normalfont\normalsize\issuename~\@issue, \@month~\@year
      }%
   }]%
   \thispagestyle{titlepage}
}
 
\newcommand{\ps@titlepage}{%
   \renewcommand{\@oddhead}{\hfill}%
   \renewcommand{\@evenhead}{\hfill}%
   \renewcommand{\@oddfoot}{\@indiciafont\@indicia\hfill}%
   \renewcommand{\@evenfoot}{\@indiciafont\@indicia\hfill}%
}
 
% Sectioning commands.
 
\renewcommand{\section}{%
   \@startsection
      {section}{1}{\z@}{-1.5ex \@plus -1ex \@minus -.2ex}%
      {1ex \@plus.2ex}{\@headingfont}%
}
 
% No section numbers.
 
\setcounter{secnumdepth}{0}
 
% Set lists tighter, but brought in by 1em (otherwise the first line 
% always looks very wide).
 
\renewcommand{\@listI}{%
   \setlength{\parsep}{0pt}%
   \setlength{\topsep}{\medskipamount}%
   \setlength{\itemsep}{0pt}%
   \setlength{\listparindent}{1em}%
   \setlength{\rightskip}{1em}%
}
 
\newenvironment{citations}{%
   \list{}{%
      \renewcommand{\makelabel}[1]{\itshape{##1},}%
   }%
}{%
   \endlist
}
 
% Some logos.
 
\newcommand{\NFSS}{NFSS}
\newcommand{\LaTeXNews}{\LaTeX~News}
\newcommand{\AW}{Addison Wesley}
\newcommand{\SLiTeX}{\textsc{Sli}\TeX}
\newcommand{\AmS}{$${\protect\the\textfont2 A}\kern-.1667em\lower
         .5ex\hbox{\protect\the\textfont2 M}\kern
         -.125em{\protect\the\textfont2 S}}
\newcommand{\AmSLaTeX}{\mbox{\AmS-\LaTeX}}

% Hacking to make <...> produce italics in verbatim.  NB: this can be 
% done more cleanly using the verbatim package.  But the ltnews class has 
% to run on any LaTeX installation, even those without the verbatim 
% package.  
 
% Here we extend the font-setting command to include making <> active
% (ie adjusting the input encoding).
\renewcommand \verbatim@font {%
  \normalfont \ttfamily
  \catcode`\<=\active
  \catcode`\>=\active
}
  
% Make active <...> produce italics surrounded by angle brackets (used in
% verbatim and \verb).
% << produces a less-than, and >> produces a greater-than.
 
\begingroup
  \catcode`\<=\active
  \catcode`\>=\active
  \gdef<{\@ifnextchar<\@lt\@meta}
  \gdef>{\@ifnextchar>\@gt\@gtr@err}
  \gdef\@meta#1>{{\reset@font\normalsize\itshape#1\/}}
  \gdef\@lt<{\char`\<}
  \gdef\@gt>{\char`\>}
\endgroup
\def\@gtr@err{%
   \ClassError{ltxguide}{%
      Isolated \protect>%
   }{%
      In this document class, \protect<...\protect>
      is used to indicate a parameter.\MessageBreak
      I've just found a \protect> on its own.
      Perhaps you meant to type \protect>\protect>?
   }%
}
\def\verbatim@nolig@list{\do\`\do\,\do\'\do\-}

% That's it!
 
\endinput
 
% CHANGELOG
%
% 20 May 1994, v0.01: Created file.
%
% 21 May 1994, v0.02: Made <...> produce italics inside verbatim.  Added 
%    the indicia, \publicationyear, \publicationmonth and 
%    \publicationissue.  Added the citations environment.  Switched off 
%    some of the article class options.
% 
% 21 May 1994, v0.03: Fixed a bug with ragged right.  Fixed a bug
%    which was causing underfull hbox messages.
% 
% 27 May 1994, v0.04: Added SliTeX logo, and proper AMS LaTeX logo.
%    Added angle brackets to <...>.
%
% 31 May 1994, v0.05: Added downloaded PS fonts options.  Removed
%    angle brackets from <...> since these were the last remaining
%    bitmaps!  Added variants of the LaTeX logo.  Added the ltnews.cfg
%    file.  Added the lw35fonts option.
%
% 27 Jul 1994, v0.06: Corrected a typo `\PassOptionToClass' should
%    have been `\PassOptionsToClass'.  Manas Mandal pointed that one
%    out. 
%
% 29 Nov 1994, v0.07: Made <...> only active in verbatim.

% BUGS
%
% Switching between logos like this is a mess.
%
% The last column should be set flush bottom.
 
