home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / inputs / latex / unpacked / ltnews.cls < prev    next >
Text File  |  1995-06-21  |  14KB  |  480 lines

  1. % \iffalse meta-comment
  2. %
  3. % Copyright 1993-1995 the LaTeX3 project and any individual authors
  4. % listed elsewhere in this file.  All rights reserved.
  5. % For further copyright information see the file legal.txt, and any
  6. % other copyright notices in this file.
  7. % This file is part of the LaTeX2e system.
  8. % ----------------------------------------
  9. %   This system is distributed in the hope that it will be useful,
  10. %   but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  12. %   For error reports concerning UNCHANGED versions of this file no more
  13. %   than one year old, see bugs.txt.
  14. %   Please do not request updates from us directly.  Primary
  15. %   distribution is through the CTAN archives.
  16. % IMPORTANT COPYRIGHT NOTICE:
  17. % You are NOT ALLOWED to distribute this file alone.
  18. % You are allowed to distribute this file under the condition that it is
  19. % distributed together with all the files listed in manifest.txt.
  20. % If you receive only some of these files from someone, complain!
  21. % Permission is granted to copy this file to another file with a clearly
  22. % different name and to customize the declarations in that copy to serve
  23. % the needs of your installation, provided that you comply with
  24. % the conditions in the file legal.txt.
  25. % However, NO PERMISSION is granted to produce or to distribute a
  26. % modified version of this file under its original name.
  27. %  
  28. % You are NOT ALLOWED to change this file.
  29. % \fi
  30. % Filename: ltnews.cls
  31. % Author: Alan Jeffrey
  32. % Version: 0.07
  33.  
  34. % This is the LaTeX2e document class for the `LaTeX News' information 
  35. % sheet which comes with every LaTeX release.  It may be useful for 
  36. % newsletters, or as an example of how simple newsletters can be set with 
  37. % LaTeX.  The changes log is at the end of the file.
  38.  
  39. % Copyright 1994 Alan Jeffrey and the LaTeX3 project.  All rights reserved.
  40.  
  41. % This is a LaTeX2e document class.
  42.  
  43. \NeedsTeXFormat{LaTeX2e}
  44.  
  45. \ProvidesClass{ltnews}[1994/11/29 Standard LaTeX class]
  46.  
  47. % The configuration file, used for passing options.
  48.  
  49. \InputIfFileExists{ltnews.cfg}{%
  50.    \ClassInfo{ltnews}{Using local configuration file}%
  51. }{%
  52.    \ClassInfo{ltnews}{No local configuration file}%
  53. }
  54.  
  55. % The lw35fonts option uses the fonts:
  56. %
  57. %    Adobe Palatino          (main text)
  58. %    Adobe Helvetica Bold    (headings)
  59. %    Courier                 (program listings)
  60. %    Mathptm math italic     (2e logo)
  61. %    Mathptm symbol font     (AMS logo)
  62. %
  63. % The type1fonts option uses the fonts:
  64. %    Adobe Utopia            (main text)
  65. %    URW Grotesk-T Bold      (headings)
  66. %    Lucida Sans typewriter  (program listings)
  67. %    Mathptm math italic     (2e logo)
  68. %    Mathptm symbol font     (AMS logo)
  69.  
  70. % The Adobe Palatino fonts:
  71.  
  72. \DeclareFontFamily{OT1}{ppl}{}
  73. \DeclareFontShape{OT1}{ppl}{m}{n}{<-> pplr7t}{}
  74. \DeclareFontShape{OT1}{ppl}{m}{sc}{<-> pplrc7t}{}
  75. \DeclareFontShape{OT1}{ppl}{m}{it}{<-> pplri7t}{}
  76.  
  77. % The Adobe Helvetica fonts:
  78.  
  79. \DeclareFontFamily{OT1}{phv}{}
  80. \DeclareFontShape{OT1}{phv}{b}{n}{<-> phvb7t}{}
  81.  
  82. % The Adobe Courier fonts:
  83.  
  84. \DeclareFontFamily{OT1}{pcr}{\hyphenchar\font=-1}
  85. \DeclareFontShape{OT1}{pcr}{m}{n}{<-> pcrr7t}{}
  86.  
  87. % The Utopia fonts:
  88.  
  89. \DeclareFontFamily{OT1}{put}{}
  90. \DeclareFontShape{OT1}{put}{m}{n}{<-> putr7t}{}
  91. \DeclareFontShape{OT1}{put}{m}{sc}{<-> putrc7t}{}
  92. \DeclareFontShape{OT1}{put}{m}{it}{<-> putri7t}{}
  93.  
  94. % The URW Grotesk fonts:
  95.  
  96. \DeclareFontFamily{OT1}{ugq}{}
  97. \DeclareFontShape{OT1}{ugq}{b}{n}{<-> ugqb7t}{}
  98.  
  99. % The Lucida Sans Typewriter fonts:
  100.  
  101. \DeclareFontFamily{OT1}{hlct}{\hyphenchar\font=-1}
  102. \DeclareFontShape{OT1}{hlct}{m}{n}{<-> hlct7t}{}
  103.  
  104. % The mathptm math italic:
  105.  
  106. \DeclareFontFamily{OML}{ptmcm}{\skewchar\font=127}
  107. \DeclareFontShape{OML}{ptmcm}{m}{it}{<-> zptmcmrm}{}
  108.  
  109. % The mathptm symbol font:
  110.  
  111. \DeclareFontFamily{OMS}{pzccm}{}
  112. \DeclareFontShape{OMS}{pzccm}{m}{n}{<-> zpzccmry}{}
  113.  
  114. % The TeX logo for use with Palatino.
  115.  
  116. \def\pplTeX{T\kern-.15em\lower.4ex\hbox{E}\kern-.1emX\@}
  117.  
  118. % The LaTeX logo for use with Palatino.
  119.  
  120. \DeclareRobustCommand{\pplLaTeX}{L\kern-.3em
  121.         {\setbox0\hbox{T}%
  122.          \vbox to\ht0{\hbox{%
  123.                             \csname S@\f@size\endcsname
  124.                             \fontsize\sf@size\z@
  125.                             \math@fontsfalse\selectfont
  126.                             A}%
  127.                       \vss}%
  128.         }%
  129.         \kern-.07em
  130.         \TeX}
  131.  
  132. % The TeX logo for use with Utopia.
  133.  
  134. \def\putTeX{T\kern-.1667em\lower.4ex\hbox{E}\kern-.075emX\@}
  135.  
  136. % The LaTeX logo for use with Utopia.
  137.  
  138. \DeclareRobustCommand{\putLaTeX}{L\kern-.2em
  139.         {\setbox0\hbox{T}%
  140.          \vbox to\ht0{\hbox{%
  141.                             \csname S@\f@size\endcsname
  142.                             \fontsize\sf@size\z@
  143.                             \math@fontsfalse\selectfont
  144.                             A}%
  145.                       \vss}%
  146.         }%
  147.         \kern-.05em
  148.         \TeX}
  149.  
  150. % The TeX logo for use with Helvetica.
  151.  
  152. \def\phvTeX{T\kern-.1em\lower.4ex\hbox{E}\kern-.05emX\@}
  153.  
  154. % The LaTeX logo for use with Helvetica.
  155.  
  156. \DeclareRobustCommand{\phvLaTeX}{L\kern-.3em
  157.         {\calculate@math@sizes
  158.          \setbox0\hbox{T}%
  159.          \vbox to\ht0{\hbox{%
  160.                             \csname S@\f@size\endcsname
  161.                             \fontsize\sf@size\z@
  162.                             \math@fontsfalse\selectfont
  163.                             A}%
  164.                       \vss}%
  165.         }%
  166.         \kern-.05em
  167.         \TeX}
  168.  
  169. % The TeX logo for use with Grotesk.
  170.  
  171. \def\ugqTeX{T\kern-.1em\lower.4ex\hbox{E}\kern-.05emX\@}
  172.  
  173. % The LaTeX logo for use with Grotesk.
  174.  
  175. \DeclareRobustCommand{\ugqLaTeX}{L\kern-.15em
  176.         {\calculate@math@sizes
  177.          \setbox0\hbox{T}%
  178.          \vbox to\ht0{\hbox{%
  179.                             \csname S@\f@size\endcsname
  180.                             \fontsize\sf@size\z@
  181.                             \math@fontsfalse\selectfont
  182.                             A}%
  183.                       \vss}%
  184.         }%
  185.         \kern-.01em
  186.         \TeX}
  187.  
  188. % The TeX logo for use with CMSS.
  189.  
  190. \def\cmssTeX{T\kern-.2em\lower.4ex\hbox{E}\kern-.05emX\@}
  191.  
  192. % The LaTeX logo for use with CMSS.
  193.  
  194. \DeclareRobustCommand{\cmssLaTeX}{L\kern-.22em
  195.         {\setbox0\hbox{T}%
  196.          \vbox to\ht0{\hbox{%
  197.                             \csname S@\f@size\endcsname
  198.                             \fontsize\sf@size\z@
  199.                             \math@fontsfalse\selectfont
  200.                             A}%
  201.                       \vss}%
  202.         }%
  203.         \kern-.17em
  204.         \TeX}
  205.  
  206. % Switch off some of the article options.
  207.  
  208. \DeclareOption{a4paper}{\OptionNotUsed}
  209. \DeclareOption{a5paper}{\OptionNotUsed}
  210. \DeclareOption{b5paper}{\OptionNotUsed}
  211. \DeclareOption{letterpaper}{\OptionNotUsed}
  212. \DeclareOption{legalpaper}{\OptionNotUsed}
  213. \DeclareOption{executivepaper}{\OptionNotUsed}
  214. \DeclareOption{landscape}{\OptionNotUsed}
  215. \DeclareOption{twoside}{\OptionNotUsed}
  216. \DeclareOption{titlepage}{\OptionNotUsed}
  217. \DeclareOption{onecolumn}{\OptionNotUsed}
  218.  
  219. % The CM fonts
  220.  
  221. \newcommand{\@titlefont}{\normalfont\Huge}
  222. \newcommand{\@indiciafont}{\normalfont\footnotesize}
  223. \newcommand{\@headingfont}{%
  224.    \large\sffamily\slshape
  225.    \let\LaTeX\cmssLaTeX\let\TeX\cmssTeX
  226. }
  227.  
  228. % The LW 35 fonts option
  229.  
  230. \DeclareOption{lw35fonts}{%
  231.    \renewcommand{\rmdefault}{ppl}%
  232.    \renewcommand{\ttdefault}{pcr}%
  233.    \renewcommand{\sfdefault}{phv}%
  234.    \renewcommand{\@titlefont}{%
  235.       \fontsize{50}{60}\fontfamily{phv}\fontseries{b}\selectfont
  236.       \let\LaTeX\phvLaTeX\let\TeX\phvTeX
  237.    }%
  238.    \renewcommand{\@indiciafont}{%
  239.       \fontsize{8}{10}\fontfamily{ppl}\fontshape{it}\selectfont
  240.    }%
  241.    \renewcommand{\@headingfont}{%
  242.       \fontsize{12}{14}\fontfamily{phv}\fontseries{b}\selectfont
  243.       \let\LaTeX\phvLaTeX\let\TeX\phvTeX
  244.    }%
  245.    \DeclareSymbolFont{letters}{OML}{ptmcm}{m}{it}%
  246.    \DeclareSymbolFont{symbols}{OMS}{pzccm}{m}{n}%
  247.    \let\LaTeX\pplLaTeX
  248.    \let\TeX\pplTeX
  249. }
  250.  
  251. % The type 1 fonts option
  252.  
  253. \DeclareOption{type1fonts}{%
  254.    \renewcommand{\rmdefault}{put}%
  255.    \renewcommand{\ttdefault}{hlct}%
  256.    \renewcommand{\sfdefault}{ugq}%
  257.    \renewcommand{\@titlefont}{%
  258.       \fontsize{50}{60}\fontfamily{ugq}\fontseries{b}\selectfont
  259.       \let\LaTeX\ugqLaTeX\let\TeX\ugqTeX
  260.    }%
  261.    \renewcommand{\@indiciafont}{%
  262.       \fontsize{8}{10}\fontfamily{put}\fontshape{it}\selectfont
  263.    }%
  264.    \renewcommand{\@headingfont}{%
  265.       \fontsize{12}{14}\fontfamily{ugq}\fontseries{b}\selectfont
  266.       \let\LaTeX\ugqLaTeX\let\TeX\ugqTeX
  267.    }%
  268.    \renewcommand{\verbatim@font}{%
  269.       \fontsize{9}{12}\fontfamily{hlct}\selectfont
  270.    }%
  271.    \DeclareSymbolFont{letters}{OML}{ptmcm}{m}{it}%
  272.    \DeclareSymbolFont{symbols}{OMS}{pzccm}{m}{n}%
  273.    \let\LaTeX\putLaTeX
  274.    \let\TeX\putTeX
  275. }
  276.  
  277. % The default action for any option is to pass it to the article
  278. % class.
  279.  
  280. \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
  281.  
  282. % Execute the options.
  283.  
  284. \ProcessOptions
  285.  
  286. % Load the article class.
  287.  
  288. \LoadClass[twocolumn,oneside]{article}
  289.  
  290. % The page style.
  291.  
  292. \pagestyle{empty}
  293. \setlength{\parindent}{1em}
  294. \setlength{\rightskip}{0pt plus \textwidth}
  295. \setlength{\@rightskip}{\rightskip}
  296. \setlength{\parfillskip}{0pt plus 2\textwidth}
  297. \setlength{\columnsep}{2em}
  298.  
  299. % The text size, which tries to work with both A4 and letter paper sizes. 
  300.  
  301. \setlength{\textheight}{230mm}
  302. \setlength{\topmargin}{-10mm}
  303.  
  304. \setlength{\textwidth}{180mm}
  305. \setlength{\oddsidemargin}{-10mm}
  306.  
  307. % \maketitle parameters.
  308.  
  309. \newcommand{\publicationmonth}{\renewcommand{\@month}}
  310. \newcommand{\@month}{\ClassError{ltnews}
  311.    {No \protect\publicationmonth~given}\@eha}
  312.  
  313. \newcommand{\publicationyear}{\renewcommand{\@year}}
  314. \newcommand{\@year}{\ClassError{ltnews}
  315.    {No \protect\publicationyear~given}\@eha}
  316.  
  317. \newcommand{\publicationissue}{\renewcommand{\@issue}}
  318. \newcommand{\@issue}{\ClassError{ltnews}
  319.    {No \protect\publicationissue~given}\@eha}
  320. \newcommand{\issuename}{Issue}
  321.  
  322. \newcommand{\indicia}{\renewcommand{\@indicia}}
  323. \newcommand{\@indicia}{%
  324.    \LaTeXNews, and the \LaTeX{} software,
  325.    is brought to you by the \LaTeX3 project team;
  326.    Copyright \@year, all rights reserved.
  327. }
  328.  
  329. \title{\LaTeXNews}
  330.  
  331. % The \maketitle for the LaTeX News.
  332.  
  333. \renewcommand{\maketitle}{%
  334.    \twocolumn[{%
  335.       \parbox[t][7\baselineskip]{\textwidth}{%
  336.          \@titlefont\@title\\[\medskipamount]
  337.          \normalfont\normalsize\issuename~\@issue, \@month~\@year
  338.       }%
  339.    }]%
  340.    \thispagestyle{titlepage}
  341. }
  342.  
  343. \newcommand{\ps@titlepage}{%
  344.    \renewcommand{\@oddhead}{\hfill}%
  345.    \renewcommand{\@evenhead}{\hfill}%
  346.    \renewcommand{\@oddfoot}{\@indiciafont\@indicia\hfill}%
  347.    \renewcommand{\@evenfoot}{\@indiciafont\@indicia\hfill}%
  348. }
  349.  
  350. % Sectioning commands.
  351.  
  352. \renewcommand{\section}{%
  353.    \@startsection
  354.       {section}{1}{\z@}{-1.5ex \@plus -1ex \@minus -.2ex}%
  355.       {1ex \@plus.2ex}{\@headingfont}%
  356. }
  357.  
  358. % No section numbers.
  359.  
  360. \setcounter{secnumdepth}{0}
  361.  
  362. % Set lists tighter, but brought in by 1em (otherwise the first line 
  363. % always looks very wide).
  364.  
  365. \renewcommand{\@listI}{%
  366.    \setlength{\parsep}{0pt}%
  367.    \setlength{\topsep}{\medskipamount}%
  368.    \setlength{\itemsep}{0pt}%
  369.    \setlength{\listparindent}{1em}%
  370.    \setlength{\rightskip}{1em}%
  371. }
  372.  
  373. \newenvironment{citations}{%
  374.    \list{}{%
  375.       \renewcommand{\makelabel}[1]{\itshape{##1},}%
  376.    }%
  377. }{%
  378.    \endlist
  379. }
  380.  
  381. % Some logos.
  382.  
  383. \newcommand{\NFSS}{NFSS}
  384. \newcommand{\LaTeXNews}{\LaTeX~News}
  385. \newcommand{\AW}{Addison Wesley}
  386. \newcommand{\SLiTeX}{\textsc{Sli}\TeX}
  387. \newcommand{\AmS}{$${\protect\the\textfont2 A}\kern-.1667em\lower
  388.          .5ex\hbox{\protect\the\textfont2 M}\kern
  389.          -.125em{\protect\the\textfont2 S}}
  390. \newcommand{\AmSLaTeX}{\mbox{\AmS-\LaTeX}}
  391.  
  392. % Hacking to make <...> produce italics in verbatim.  NB: this can be 
  393. % done more cleanly using the verbatim package.  But the ltnews class has 
  394. % to run on any LaTeX installation, even those without the verbatim 
  395. % package.  
  396.  
  397. % Here we extend the font-setting command to include making <> active
  398. % (ie adjusting the input encoding).
  399. \renewcommand \verbatim@font {%
  400.   \normalfont \ttfamily
  401.   \catcode`\<=\active
  402.   \catcode`\>=\active
  403. }
  404.   
  405. % Make active <...> produce italics surrounded by angle brackets (used in
  406. % verbatim and \verb).
  407. % << produces a less-than, and >> produces a greater-than.
  408.  
  409. \begingroup
  410.   \catcode`\<=\active
  411.   \catcode`\>=\active
  412.   \gdef<{\@ifnextchar<\@lt\@meta}
  413.   \gdef>{\@ifnextchar>\@gt\@gtr@err}
  414.   \gdef\@meta#1>{{\reset@font\normalsize\itshape#1\/}}
  415.   \gdef\@lt<{\char`\<}
  416.   \gdef\@gt>{\char`\>}
  417. \endgroup
  418. \def\@gtr@err{%
  419.    \ClassError{ltxguide}{%
  420.       Isolated \protect>%
  421.    }{%
  422.       In this document class, \protect<...\protect>
  423.       is used to indicate a parameter.\MessageBreak
  424.       I've just found a \protect> on its own.
  425.       Perhaps you meant to type \protect>\protect>?
  426.    }%
  427. }
  428. \def\verbatim@nolig@list{\do\`\do\,\do\'\do\-}
  429.  
  430. % That's it!
  431.  
  432. \endinput
  433.  
  434. % CHANGELOG
  435. %
  436. % 20 May 1994, v0.01: Created file.
  437. %
  438. % 21 May 1994, v0.02: Made <...> produce italics inside verbatim.  Added 
  439. %    the indicia, \publicationyear, \publicationmonth and 
  440. %    \publicationissue.  Added the citations environment.  Switched off 
  441. %    some of the article class options.
  442. % 21 May 1994, v0.03: Fixed a bug with ragged right.  Fixed a bug
  443. %    which was causing underfull hbox messages.
  444. % 27 May 1994, v0.04: Added SliTeX logo, and proper AMS LaTeX logo.
  445. %    Added angle brackets to <...>.
  446. %
  447. % 31 May 1994, v0.05: Added downloaded PS fonts options.  Removed
  448. %    angle brackets from <...> since these were the last remaining
  449. %    bitmaps!  Added variants of the LaTeX logo.  Added the ltnews.cfg
  450. %    file.  Added the lw35fonts option.
  451. %
  452. % 27 Jul 1994, v0.06: Corrected a typo `\PassOptionToClass' should
  453. %    have been `\PassOptionsToClass'.  Manas Mandal pointed that one
  454. %    out. 
  455. %
  456. % 29 Nov 1994, v0.07: Made <...> only active in verbatim.
  457.  
  458. % BUGS
  459. %
  460. % Switching between logos like this is a mess.
  461. %
  462. % The last column should be set flush bottom.
  463.  
  464.