diff options
author | Karl Berry <karl@freefriends.org> | 2006-08-27 18:16:22 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-08-27 18:16:22 +0000 |
commit | 4ab3220f33f1983f5aff7b7253ad229e44c952fe (patch) | |
tree | c9d2408cfe8c113537c0031bc7e50bda98a262dc /Master/texmf-dist/source/latex/base | |
parent | 6e05e1819838930d7f7e4eb36620d2994a45b97b (diff) |
latex core update from latex-tds (27aug06)
git-svn-id: svn://tug.org/texlive/trunk@2043 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/base')
115 files changed, 12869 insertions, 797 deletions
diff --git a/Master/texmf-dist/source/latex/base/Makefile.unx b/Master/texmf-dist/source/latex/base/Makefile.unx deleted file mode 100644 index 414293e93b0..00000000000 --- a/Master/texmf-dist/source/latex/base/Makefile.unx +++ /dev/null @@ -1,56 +0,0 @@ - -######################################################################## -# Start of customization section -######################################################################## - -# The directory where all runtime files reside -DESTDIR= - -# The directory where the format files reside -FORMATDIR= - -######### Edit the following only if you want to move *.fd or *.ist -######### to a different place. - -# The directory where the .fd files reside: -FDDIR=$(DESTDIR) - -# The directory where class and package files reside: -INPUTDIR=$(DESTDIR) - -# The directory where the makeindex style files reside -ISTDIR=$(DESTDIR) - -######################################################################## -# End of customization section -######################################################################## - -FORMAT=latex - - -default: - @if test ! "${DESTDIR}" -o ! "$(FORMATDIR)" ; then \ - echo "Destination directories not set." ; \ - echo "Please edit the Makefile first!" ; \ - exit 1 ; \ - else \ - make format ; \ - fi - - -format: $(FORMAT).fmt - -$(FORMAT).fmt: $(FORMAT).ltx - initex $(FORMAT).ltx - - -install: $(FORMAT).fmt - cp -i $(FORMAT).fmt $(FORMATDIR) - cp -i *.fd $(FDDIR) - cp -i *.cls *.clo *.sty *.def *.tex $(INPUTDIR) - cp -i *.ist $(ISTDIR) - -clean: - rm $(FORMAT).fmt - rm *.dvi *.log *.aux *.glo *.idx *.ind *.gls *.lof *.lot *.toc - diff --git a/Master/texmf-dist/source/latex/base/alltt.dtx b/Master/texmf-dist/source/latex/base/alltt.dtx index 9b546ca9d82..bb5e2213ef4 100644 --- a/Master/texmf-dist/source/latex/base/alltt.dtx +++ b/Master/texmf-dist/source/latex/base/alltt.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/alltt.ins b/Master/texmf-dist/source/latex/base/alltt.ins index eceb19c9c86..f303c6bac6a 100644 --- a/Master/texmf-dist/source/latex/base/alltt.ins +++ b/Master/texmf-dist/source/latex/base/alltt.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/autoload.ins b/Master/texmf-dist/source/latex/base/autoload.ins index 62da1132621..0991f19cbb0 100644 --- a/Master/texmf-dist/source/latex/base/autoload.ins +++ b/Master/texmf-dist/source/latex/base/autoload.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -41,7 +41,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -49,12 +49,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/cfgguide.tex b/Master/texmf-dist/source/latex/base/cfgguide.tex new file mode 100644 index 00000000000..fac0b2d0132 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/cfgguide.tex @@ -0,0 +1,561 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: cfgguide.tex + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\documentclass{ltxguide}[1995/11/28] + +\newcommand{\filesection}[1]{\subsection{\sffamily{#1}}} +\newcommand{\iniTeX}{ini\TeX} + +\setcounter{secnumdepth}{0} + +\title{Configuration options for \LaTeXe} + +\author{\copyright~Copyright 1998, 2001, 2003 \LaTeX3 Project Team.\\ + All rights reserved.} + +\date{14 February 2003} + +\begin{document} + +\maketitle + +\tableofcontents + +\newpage + +\section{Configuring \LaTeX} + +Since one of the main aims of the new standard \LaTeX{} is to give all +users the freedom provided by a reliable document processing system +linked to a highly portable document format, the number of +configuration possibilities is strictly limited. The reasons for this +are explained in more detail in the article +\textit{Modifying \LaTeX{}} in the file \texttt{modguide.tex}. +An important consequence of this is that any document that relies on +any extension package must declare this package within the document +file; this helps to ensure that the document will work at a different +site, where the \LaTeX{} system may be configured differently. + +Local configuration options are, by convention, placed in +`configuration files', which have extension |.cfg|. This document +describes the possibilities for configuration in this release of +\LaTeX; it also explains how to configure the font definition files to +take advantage of the available fonts. + +The last section considers briefly how to proceed if you require +further customisation of the formatter. + + +\section{System configuration} + +\filesection{texsys.cfg} + +This is the only configuration file that \emph{must} be present. +During installation, if \LaTeX\ cannot find a file with this name +then a default file |texsys.cfg|, consisting entirely of comments, is +written out and used. Note that, until this file has been read, +\LaTeX{} is not able to test reliably whether a given file exists on +the system. + +The contents of the file |texsys.cfg| allow \LaTeX{} to cope with +various differences between the behaviours of different \TeX{} systems, +mainly in relation to file handling. The default version of this file +contains, in its comments, possible settings that may be needed for a +range of \TeX{} systems. For more information, typeset the file +|ltdirchk.dtx|. + +If you have copied your \LaTeX{} installation from a computer that +used a different operating system then you may well have a version of +|texsys.cfg| that will make it difficult to install \LaTeX{} on your +system. If this happens then start the process again with an empty +|texsys.cfg| file; this will produce an installation that should, at +least, allow you to typeset the documentation. However, it is +possible that \LaTeX{} can still find only those files that are in the +current directory; in this case you must set the macro |\input@path| +correctly for your system. + + +\section{Configuring the \LaTeX\ format} + +There are four configuration files that enable personal preferences to +be incorporated into the \LaTeX{} format file |latex.fmt|. The range +of preferences that can be configured by these files is strictly +limited as this helps to ensure document portability. + +All four files work in the same way: if the file \m{file}|.cfg| is +found, it will be input by \iniTeX; otherwise a default file +\m{file}|.ltx| will be input; this is sometimes done via a +minimal \m{file}|.cfg| that simply inputs \m{file}|.ltx|. Thus, +providing your own version of any of these |.cfg| files can completely +override any settings in the corresponding default standard |.ltx| +file. + + +\subsection{Font configuration} + +Before you even think about configuring the font declarations by +producing a file |fontmath.cfg| or |fonttext.cfg|, you should +read the documented file |fontdef.dtx|. This is the source file from +which the default files |fonttext.ltx| and |fontmath.ltx| are +produced; it contains information concerning the +contents of the default files and what sort of customisation is +possible. In particular, it describes in detail the effects of +individual customisations on document portability including: which +customisations can be made without endangering the ability to exchange +documents with other sites (even if the formatting differs); and which +things should be left untouched because they will make your system so +different from others that the documents it produces will be +non-portable. + +\textbf{WARNING } Please note that use of either of these font +configuration files has the following consequences. + \begin{itemize} + \item Since the content of the file |fontdef.dtx| \emph{might} + change in the future, anyone writing a font configuration file + must be prepared to update it for use with future releases. + \item Documents produced on your system are likely, at best, to be + portable only in the sense of being processable at a different + site---the actual formatting will not be the same if different + fonts are used. + \item The \LaTeX3 project team will not be able to support you in + diagnosing problems if these cannot be reproduced with a format + that does not use any configuration files. + \end{itemize} + +\filesection{fonttext.cfg} + +The file |fonttext.cfg| can contain declarations relating to the use +of fonts in text modes. + +If it exists, it defines which font shapes, families and encodings are +normally used in text mode, as well as the behavior of font attribute +commands such as |\textbf| etc. + +It could be used, for example, to produce a \LaTeX\ format that, by +default, typesets documents using Times fonts. Be warned, however, +that such customisation can have unfortunate consequences; so please +read carefully this section and the file |fontdef.dtx| below if you +are thinking of doing this. + +Please note carefully the above \textbf{warning}. + +\filesection{fontmath.cfg} + +The file |fontmath.cfg| can contain declarations relating to the use +of fonts in math mode. + +If it exists, it defines which fonts in which sizes are used in math +mode, and how they are used. It also defines all the math mode +commands that `are likely to' depend on the choice of math fonts used +(e.g.~commands that depend on the position of a glyph in a math font). + +The main reason for the existence of this file is to provide for future +updates when a standard math font encoding is available. Right now we +do \emph{not} encourage the use of this configuration file other than +for special applications. Writing a proper configuration file for math +mode needs expert knowledge! + +Please note carefully the above \textbf{warning}. + +\filesection{preload.cfg} + +The contents of the file |preload.cfg| can control the preloading of +commonly used fonts. Preloading fonts speeds up the processing of +documents but, because fonts cannot be `unloaded', you should not +preload too many; otherwise you may be unable to process documents +requiring unusual font families. + +The default file |preload.ltx| is produced from |preload.dtx|. It +loads only a few fonts and these are a good choice if you normally use +documents at the default, 10\,pt, size. If you normally use 11\,pt +or~12\,pt then the time for \LaTeX\ to startup may be noticeably +decreased if you preload the corresponding fonts for the sizes you +use. Similarly, if you normally use a different font family, for +example Times Roman (|ptm|) then you may want to preload fonts in this +family rather than the default Computer Modern fonts. + +\subsection{Hyphenation configuration} + +\filesection{hyphen.cfg} + +In order to hyphenate text, \TeX{} must have hyphenation patterns and, +since these patterns can be loaded only by \iniTeX, the choice of +which patterns to load must be made when the format is created. + +The hyphenation patterns for American English are stored in the file +named |hyphen.tex|; \LaTeX~2.09 always loaded this file when its +format was made. + +With \LaTeXe{} it is possible to configure which hyphenation patterns +are to be loaded into the format. When \iniTeX{} is processing +|latex.ltx|, it looks for a file called |hyphen.cfg|; this file can +be used to control which hyphenation patterns are loaded. If a file +|hyphen.cfg| cannot be found then \iniTeX{} will load the file +|hyphen.ltx|. + +The file |hyphen.ltx| loads the file |hyphen.tex| if it can find it; +otherwise it stops with an error since a format with no hyphenation +patterns is not very useful. It then sets |\language=0| and it sets +the values |\lefthyphenmin=2| and |\righthyphenmin=3|, which are +needed for American English. + +Thus, if you want any other patterns to be loaded then you should +create a file |hyphen.cfg|. For each language for which you wish to +load hyphenation patterns this file should: +\begin{itemize} +\item set |\language=|\m{number}; +\item load the file which contains the hyphenation patterns for that + language. +\end{itemize} +If the patterns you use require some definitions or assignments then +a group should be used to keep such changes local to their file. + +\textbf{Note.} The hyphenation files that are read in should \emph{only} +set the hyphenation tables for the language, using the commands +|\hyphenation| and |\patterns|. In particular they should make no +assignments to the lowercase/uppercase tables (|\lccode| and +|\uccode|) and should not make any global command definitions to be +used after the file has been read. Unfortunately some older +hyphenation files do contain such settings; thus they are +\emph{incompatible} with the mechanisms \LaTeX\ uses to ensure +independence of input and output encodings. + +After this the file |hyphen.cfg| should: +\begin{itemize} +\item set |\language| to its default value; +\item set |\lefthyphenmin| and |\righthyphenmin| to the correct values + for this default language. +\end{itemize} + +There are packages available, such as `french', that can help you with +this configuration. The `babel' collection contains many examples of +setting up a multi-lingual \LaTeX{} format. The documentation in +|lthyphen.dtx| (the source file for |hyphen.ltx|) also contains some +useful examples. + +[We intend in a future release of \LaTeX{} to provide a set of +standard commands for use in configuring hyphenation.] + + +\section{Configuring the font definition files} + +If you have special fonts available (or if some fonts are unavailable) +at your site then you may need to produce customised versions of the +font definition files; these have extension \texttt{.fd} and are read +by \LaTeX{} to obtain information about the font files installed at your +system and when to load them. + +Although we do not encourage such customisation, you will find +information about the content of these files and its syntax in the +documented source file \texttt{cmfonts.fdd} and +\textit{\LaTeXe{} font selection} in the file \texttt{fntguide.tex}. +[We hope to be able to provide further information and examples on +this subject at some time in the future.] + +Please note that the use of customised font definition files has the +following consequences. + \begin{itemize} + \item Documents produced on your system will, at best, to be + portable only in the sense of being processable at a different + site---the actual formatting will not be the same if different + fonts are used. + \item The \LaTeX3 project team will not be able to support you in + diagnosing problems if these cannot be reproduced with a format + that does not use any customised font definition files. + \end{itemize} + +Please also note that the whilst licence conditions on the standard +font definition files allow you to produce a customised version for +your own use, they do not allow you to distribute such a customised +font definition file under the original file name! + + +\subsection*{Note to system administrators} + +If you install a version of \LaTeX{} with a locally configured font +set-up then this system is likely to produce documents that are no +longer `formatting compatible'; for example, the use of different +default fonts will most likely produce different line and page breaks. +If you do install, on a multi-user system, a system that is configured +in such a way that it is not `formatting compatible' then you should +consider carefully the needs of users who need to create portable +documents. A good way to provide for their needs is to make +available, in addition, a standard form of \LaTeX{} without any +`formatting incompatible' customisations. + + +\section{Configuring compatibility mode} + +When processing documents that begin with |\documentstyle|, \LaTeXe{} +tries to emulate the old \LaTeX~2.09 system as far as possible. + +\filesection{latex209.cfg} + +Whenever a \LaTeX{} document starts with |\documentstyle|, rather than +with |\documentclass|, \LaTeX{} assumes that it is a \LaTeX~2.09 +document and therefore processes it in `compatibility mode'. This +does the following: +\begin{itemize} +\item sets the flag |\@compatibilitytrue|; +\item inputs the file |latex209.def|; +\item inputs the file |latex209.cfg| if it exists. +\end{itemize} + +The \LaTeX~2.09 set-up allowed the format itself to be customised. +When making the format with \iniTeX, the process ended with this +request: +\begin{quote}\tt + Input any local modifications here. +\end{quote} + +If your site did input any modifications at that point then the +\LaTeXe{} `compatibility mode' will not fully emulate \LaTeX~2.09 +\emph{as installed at your site}. In this case you should put all +these `local modifications' into a file called |latex209.cfg| and put +this file in the default input path at your site. These `local +modifications', although not stored in the format, will then be loaded +before any old-style document is processed. This should ensure that +you can continue to process any old documents that made use of this +local customisation. + + +\section[Configuration files for standard packages and classes]% + {Configuration files for standard packages\\ and classes} + +Most of the packages in the distribution do not have any associated +configuration files. The exceptions are listed here. + +\filesection{sfonts.cfg} + +The file |sfonts.cfg| can contain declarations relating to the use of +fonts in the slides class. +If it exists, it is read instead of the file |sfonts.def|. + +Please note that use of this configuration file has the following +consequences. + \begin{itemize} + \item Since the font set-up for slides has not yet been revised to + fit modern usage, the content of this file should be completely + updated sometime. Thus anyone writing such a configuration + file must be prepared to update it for use with future releases. + \item Documents are portable only in the sense of being processable + at a different site---the actual formatting will not be the same + if different fonts are used. + \item The \LaTeX3 project team will not be able to support you in + diagnosing problems if these cannot be reproduced with a format + that does not use this configuration file. + \end{itemize} + + +\filesection{ltnews.cfg} + +The file |ltnews.cfg| can be used to customise some aspects of the +behaviour of the \textsf{ltnews} class; this class is used to typeset +the the one page newsletter accompanying every \LaTeX{} distribution. +If this file is present then it is read in at the beginning of the +file |ltnews.cls|. + + +\filesection{ltxdoc.cfg} + +The file |ltxdoc.cfg| can be used to customise some aspects of the +behaviour of the \textsf{ltxdoc} class; this class is used to typeset +the documented code in the |.dtx| files. If this file is present then +it is read in at the beginning of the file |ltxdoc.cls|. + +As this file is read before the \textsf{article} class is loaded, you +may pass options to \textsf{article}. For example the following line +might be added to |ltxdoc.cfg| to format the documentation for A4 paper +instead of the default US letter paper size. +\begin{quote} +|\PassOptionsToClass{a4paper}{article}| +\end{quote} +You should note however, that even if paper size options are specified, +the \textsf{ltxdoc} class always sets the |\textwidth| parameter to +355\,pt, to enable 72 columns of text to appear in the verbatim code +listings. If you really need to over-ride this you could use: +\begin{quote} +|\AtEndOfClass{\setlength{\textwidth}{ ...}}| +\end{quote} +To set the |\textwidth| to your desired value at the end of the +\textsf{ltxdoc} class. + +By default, most of the |.dtx| documented code files in the +distribution will produce a `description' section followed by full +source listing of the package. If you wish to suppress the source +listings you may add the following line to |ltxdoc.cfg|: +\begin{quote} +|\AtBeginDocument{\OnlyDescription}| +\end{quote} + +The documentation of the \textsf{ltxdoc} package, which may be typeset +from the file |ltxdoc.dtx|, contains more examples of the use of this +configuration file. + +\filesection{ltxguide.cfg} + +The class \textsf{ltxguide} is used by the `guide' documents, such as +this document, in the \LaTeX\ distribution. A configuration file +|ltxguide.cfg| may be used with this class in a way very similar to +the customisation of the \textsf{ltxdoc} class described in the +previous section. + +\section{Configuration for other supported packages} + +The `graphics' bundle of packages needs two configuration files, +primarily to specify the driver used to process the |.dvi| file that +\LaTeX{} produces. More documentation on these files comes with the +graphics bundle but we mention them here for completeness. + +\filesection{graphics.cfg} + Normally this file just specifies a default option, by calling + |\ExecuteOptions|, for example |\ExecuteOptions{dvips}| or + |\ExecuteOptions{textures}|. + + This file is read by the \textsf{graphics} package, and so affects + all the packages in the bundle that are based on \textsf{graphics}: + \textsf{graphicx}, \textsf{epsfig}, \textsf{lscape}. + +\filesection{color.cfg} + Normally this file is identical to |graphics.cfg|. It specifies the + default driver option for the \textsf{color} package. + +\section{Non-standard versions} + +If you feel the need to make a version of \LaTeX{} that differs from +the standard version in ways that are not possible using the above +configuration possibilities, then you should first read +\textit{Modifying \LaTeX{}} in the file |modguide.tex|; this +will probably make you realise that you do not have any such need. + +Thus we are sure that you will never need to create a non-standard +version and, even if you do create one, we hope that you will not +distribute such a version. Nevertheless, you are permitted to do this +provided you take great care to do the following: +\begin{itemize} +\item +respect the conditions in legal.txt and individual files regarding +modification of files and changing the name; + +\item +change all the relevant `|\typeout| banners': i.e.~those produced by +all the non-standard files in your version and by the format; + +\item + ensure that the method used to run your version is clearly + distinguished from that used to run standard \LaTeX{}; e.g.~by using + a command name or menu entry that is clearly different from + \texttt{latex} (or \texttt{LaTeX} etc). +\end{itemize} + +\subsection{Examples} + +Since we have been prompted, despite our misgivings, to document how +to do this by members of the League for Programming Freedom, it seems +appropriate to describe here a possible modification of \LaTeX{} to +produce a system called fsf\TeX. + +To do this, you should create a file called \texttt{fsftex.tex} and +then run it using \iniTeX{} and the standard \LaTeX{} format. + +The contents of the file \texttt{fsftex.tex} should be as shown on +page \pageref{fsfcode}. The particular changes to the \LaTeX{} kernel +that you wish to make need to be added to the file at the position +indicated. You can also choose the extensions you want to use for the +class and package files in your system. + +\newpage +\label{fsfcode} + +\begin{footnotesize} +\begin{verbatim} +% fsftex.tex +% +% iniTEX Source code to make a `fsftex' format. +% +% To make this format on Unix: +% +% initex \&latex fsftex +% +% Then to run the format on file.tex: +% +% tex &fsftex file +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% *** VERY IMPORTANT!!! *** +% Change the typeout banner so users know that they +% are NOT running Standard LaTeX. +\everyjob{\typeout{fsfTeX 1.0 based on LaTeX2e \fmtversion}} +\makeatletter + +% fsfTeX changes some LaTeX internals: +% ... put what you like here ... +\def \fsf@xxxx {Some arbitrary \emph{freely modifiable} code goes here} + +% fsfTeX class files have extension .fcl (this week): +\def \@clsextension {fcl} + +% fsfTeX package files have extension .fsy: +\def \@pkgextension {fsy} + +% Change the file handling so that when a fsfTeX package or class +% is not available, the standard LaTeX file will be read. +% +% For example, \documentclass{article} will load article.fcl if such +% a file exists, but article.cls otherwise. This allows arbitrary +% processing on `article' documents without changing the standard +% article.cls file. + +\let\fsf@missingfileerror\@missingfileerror + +\def\@missingfileerror#1#2{% + \ifx #2\@clsextension + \InputIfFileExists {#1.cls}% + {\wlog {fsfTeX: loading #1.cls rather than #1.#2.}}% + {\fsf@missingfileerror {#1}{#2}}% + \else + \ifx #2\@pkgextension + \InputIfFileExists {#1.sty}% + {\wlog {fsfTeX: loading #1.sty rather than #1.#2.}}% + {\fsf@missingfileerror {#1}{#2}}% + \else + \fsf@missingfileerror {#1}{#2}% + \fi + \fi +} + +\makeatother +\dump +\end{verbatim} +\end{footnotesize} + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/classes.dtx b/Master/texmf-dist/source/latex/base/classes.dtx index 498bed48e0b..0f40af2b407 100644 --- a/Master/texmf-dist/source/latex/base/classes.dtx +++ b/Master/texmf-dist/source/latex/base/classes.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -69,7 +69,7 @@ %<*driver> \ProvidesFile{classes.drv} %</driver> - [2004/02/16 v1.4f + [2005/09/16 v1.4f %<article|report|book> Standard LaTeX document class] %<10pt|11pt|12pt> Standard LaTeX file (size option)] % \end{macrocode} @@ -135,6 +135,7 @@ % We do want an index, using linenumbers % \begin{macrocode} \EnableCrossrefs +\CodelineIndex % \end{macrocode} % We use so many \file{docstrip} modules that we set the % \texttt{StandardModuleDepth} counter to 1. @@ -1954,7 +1955,7 @@ % % We always start a new page, leave some white space and center the % information. The title is set in a |\LARGE| font, the author -% names and the in a |\large| font. +% names and the date in a |\large| font. % \changes{v1.3o}{1995/11/02}{(CAR) Make \cs{footnote} always work in % title, etc} % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/base/classes.ins b/Master/texmf-dist/source/latex/base/classes.ins index 0ae699f7832..0be40f11bd0 100644 --- a/Master/texmf-dist/source/latex/base/classes.ins +++ b/Master/texmf-dist/source/latex/base/classes.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/clsguide.tex b/Master/texmf-dist/source/latex/base/clsguide.tex new file mode 100644 index 00000000000..1ec54d934c9 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/clsguide.tex @@ -0,0 +1,1874 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: clsguide.tex + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\documentclass{ltxguide}[1995/11/28] + +\title{\LaTeXe~for class and package writers} + +\author{Copyright \copyright~1995--2006 The \LaTeX3 Project\\ + All rights reserved} + +\date{15 February 2006} + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +This document is an introduction to writing classes and packages for +\LaTeX{}, with special attention given to upgrading existing +\LaTeX~2.09 packages to \LaTeXe{}. The latter subject is also +covered in an article by Johannes Braams published in TUGboat~15.3. + +\subsection{Writing classes and packages for \LaTeXe} + +\LaTeX{} is a document preparation system that enables the document +writer to concentrate on the contents of their text, without bothering +too much about the formatting of it. For example, chapters are +indicated by |\chapter{<title>}| rather than by selecting 18pt bold. + +The file that contains the information about how to turn logical +structure (like `|\chapter|') into formatting (like `18pt bold ragged +right') is a \emph{document class}. In addition, some features (such +as colour or included graphics) are independent of the document class +and these are contained in \emph{packages}. + +One of the largest differences between \LaTeX~2.09 and \LaTeXe{} is in +the commands used to write packages and classes. In \LaTeX~2.09, +there was very little support for writing |.sty| files, and so writers +had to resort to using low-level commands. + +\LaTeXe{} provides high-level commands for structuring packages. +It is also much easier to build classes and packages on top of each +other, for example writing a local technical report class |cetechr| +(for the Chemical Engineering department) based on |article|. + +\subsection{Overview} + +This document contains an overview of how to write classes and +packages for \LaTeX{}. It does \emph{not} introduce all of the +commands necessary to write packages: these can be found in either +\emph{\LaTeXbook} or \emph{\LaTeXcomp}. But it does describe the new +commands for structuring classes and packages. + +\begin{description} + +\item[Section~\ref{Sec:general}] contains some general advice about + writing classes and packages. It describes the difference between + classes and packages, the command naming conventions, the use of + |doc| and |docstrip|, how \TeX's primitive file and box commands + interact with \LaTeX{}. It also contains some hints about general + \LaTeX{} style. + +\item[Section~\ref{Sec:structure}] describes the structure of classes + and packages. This includes building classes and packages on top of + other classes and packages, declaring options and declaring + commands. It also contains example classes. + +\item[Section~\ref{Sec:commands}] lists the new class and package + commands. + + \item[Section~\ref{Sec:upgrade}] gives detailed advice on how to + upgrade existing \LaTeX~2.09 classes and packages to \LaTeXe{}. + +\end{description} + +\subsection{Further information} + +For a general introduction to \LaTeX{}, including the new features of +\LaTeXe{}, you should read \emph{\LaTeXbook} +by Leslie Lamport~\cite{A-W:LLa94}. + +A more detailed description of the new features of \LaTeX, including an +overview of more than 200 packages and nearly 1000 ready to run examples, is +to be found in \emph{\LaTeXcomp second edition} by Frank Mittelbach and +Michel Goossens~\cite{A-W:MG2004}. + +The \LaTeX{} system is based on \TeX{}, which is +described in \emph{The \TeX book} by Donald E.~Knuth~\cite{A-W:DEK91}. + +There are a number of documentation files which accompany every copy +of \LaTeX{}. A copy of \emph{\LaTeX{} News} will come out with each +six-monthly release of \LaTeX{}, and is found in the files +|ltnews*.tex|. The author's guide \emph{\usrguide} describes the new +\LaTeX{} document features; it is in |usrguide.tex|. The guide +\emph{\fntguide} describes the \LaTeX{} font selection scheme for +class- and package-writers; it is in |fntguide.tex|. Configuring +\LaTeX{} is covered by the guide \emph{\cfgguide} in +\texttt{cfgguide.tex} whilst the philosophy behind our policy on +modifying \LaTeX{} is described in \emph{\modguide} in +\texttt{modguide.tex}. + +The documented source code (from the files used to produce the kernel +format via |latex.ltx|) is now available as +\emph{The \LaTeXe\ Sources}. +This very large document also includes an index of +\LaTeX{} commands. It can be typeset from the \LaTeX{} file +|source2e.tex| in the |base| directory, using the source files and +the class file |ltxdoc.cls| from this directory. + +For more information about \TeX{} and \LaTeX{}, please contact your +local \TeX{} Users Group, or the international \TeX{} Users Group. +Addresses and other details can be found at: +\begin{quote}\small\label{addrs} + \texttt{http://www.tug.org/lugs.html} +\end{quote} + + +\subsection{Policy on standard classes} + +Many of the problem reports we receive concerning the standard classes +are not concerned with bugs but are suggesting, more or less politely, +that the design decisions embodied in them are `not optimal' and +asking us to modify them. + +There are several reasons why we should not make such changes to these +files. +\begin{itemize} +\item + However misguided, the current behaviour is clearly what was + intended when these classes were designed. +\item + It is not good practice to change such aspects of `standard classes' + because many people will be relying on them. +\end{itemize} + +We have therefore decided not to even consider making such +modifications, nor to spend time justifying that decision. This does +not mean that we do not agree that there are many deficiencies in the +design of these classes, but we have many tasks with higher priority +than continually explaining why the standard classes for \LaTeX{} +cannot be changed. + +We would, of course, welcome the production of better classes, or of +packages that can be used to enhance these classes. So your first +thought when you consider such a deficiency will, we hope, be ``what +can I do to improve this?'' + +Similar considerations apply to those parts of the kernel that are +implementing design decisions, many of which should be left to the +class file but are not in the current system. We realise that in such +cases it is much more difficult for you to rectify the problem +yourself but it is also the case that making such changes in the +kernel would probably be a major project for us; therefore such +enhancements will have to wait for \LaTeX3. + +\section{Writing classes and packages} +\label{Sec:writing} + +This section covers some general points concerned with writing +\LaTeX{} classes and packages. + + +\subsection{Old versions} + +If you are upgrading an existing \LaTeX~2.09 style file then we +recommend freezing the 2.09 version and no longer maintaining it. +Experience with the various dialects of \LaTeX{} which existed in the +early 1990's suggests that maintaining packages for different versions +of \LaTeX{} is almost impossible. It will, of course, be necessary +for some organisations to maintain both versions in parallel for some +time but this is not essential for those packages and classes +supported by individuals: they should support only the new standard +\LaTeXe{}, not obsolete versions of \LaTeX{}. + + +\subsection{Using `docstrip' and `doc'} + +If you are going to write a large class or package for \LaTeX{} then +you should consider using the |doc| software which comes with +\LaTeX{}. +\LaTeX{} classes and packages written using this can be +processed in two ways: they can be run through \LaTeX{}, to produce +documentation; and they can be processed with |docstrip|, to produce +the |.cls| or |.sty| file. + +The |doc| software can automatically generate indexes of definitions, +indexes of command use, and change-log lists. It is very useful for +maintaining and documenting large \TeX{} sources. + +The documented sources of the \LaTeX{} kernel itself, and of the +standard classes, etc, are |doc| documents; they are in the |.dtx| +files in the distribution. You can, in fact, typeset the source code +of the kernel as one long document, complete with index, by running +\LaTeX{} on |source2e.tex|. Typesetting these documents uses the +class file |ltxdoc.cls|. + +For more information on |doc| and |docstrip|, consult the files +|docstrip.dtx|, |doc.dtx|, and \emph{\LaTeXcomp}. For examples of its +use, look at the |.dtx| files. + +\subsection{Is it a class or a package?} +\label{Sec:classorpkg} + +The first thing to do when you want to put some new \LaTeX{} commands +in a file is to decide whether it should be a \emph{document class} or a +\emph{package}. The rule of thumb is: +\begin{quote} + If the commands could be used with any document class, then make + them a package; and if not, then make them a class. +\end{quote} + +There are two major types of class: those like |article|, |report| or +|letter|, which are free-standing; and those which are extensions or +variations of other classes---for example, the |proc| document class, +which is built on the |article| document class. + +Thus, a company might have a local |ownlet| class for printing letters +with their own headed note-paper. Such a class would build on top of +the existing |letter| class but it cannot be used with any other +document class, so we have |ownlet.cls| rather than |ownlet.sty|. + +The |graphics| package, in contrast, provides commands for including +images into a \LaTeX{} document. Since these commands can be used +with any document class, we have |graphics.sty| rather than +|graphics.cls|. + + +\subsection{Command names} + +\LaTeX{} has three types of command. + +There are the author commands, such as |\section|, |\emph| and +|\times|: most of these have short names, all in lower case. + +There are also the class and package writer commands: +most of these have long mixed-case names such as the following. +\begin{verbatim} + \InputIfFileExists \RequirePackage \PassOptionsToClass +\end{verbatim} + +Finally, there are the internal commands used in the \LaTeX{} +implementation, such as |\@tempcnta|, |\@ifnextchar| and |\@eha|: +most of these commands contain |@| in their name, which means they +cannot be used in documents, only in class and package files. + +Unfortunately, for historical reasons the distinction between these +commands is often blurred. For example, |\hbox| is an internal +command which should only be used in the \LaTeX{} kernel, whereas +|\m@ne| is the constant $-1$ and could have been |\MinusOne|. + +However, this rule of thumb is still useful: if a command has |@| in +its name then it is not part of the supported \LaTeX{} language---and +its behaviour may change in future releases! If a command is +mixed-case, or is described in \emph{\LaTeXbook}, then you can rely on +future releases of \LaTeXe{} supporting the command. + +\subsection{Box commands and colour} +\label{Sec:colour} + +Even if you do not intend to use colour in your own documents, by +taking note of the points in this section you can ensure that your +class or package is compatible with the |color| package. This may +benefit people using your class or package who have access to colour +printers. + +The simplest way to ensure `colour safety' is to always use \LaTeX{} +box commands rather than \TeX{} primitives, that is use |\sbox| rather +than |\setbox|, |\mbox| rather than |\hbox| and |\parbox| or +the |minipage| environment rather than |\vbox|. +The \LaTeX{} box commands have new options which mean that they are now +as powerful as the \TeX{} primitives. + +As an example of what can go wrong, consider that in +|{\ttfamily <text>}| +the font is restored just \emph{before} the |}|, whereas in the +similar looking construction +|{\color{green} <text>}| +the colour is restored just \emph{after} the final |}|. Normally this +distinction does not matter at all; but consider a primitive \TeX{} +box assignment such as: +\begin{verbatim} + \setbox0=\hbox{\color{green} <text>} +\end{verbatim} +Now the colour-restore occurs after the |}| and so is \emph{not} +stored in the box. Exactly what bad effects this can have depends on +how colour is implemented: it can range from getting the wrong +colours in the rest of the document, to causing errors in the +dvi-driver used to print the document. + +Also of interest is the command |\normalcolor|. This is +normally just |\relax| (i.e., does nothing) +but you can use it rather like |\normalfont| to +set regions of the page such as captions or section headings to the +`main document colour'. + + +\subsection{Defining text and math characters} +\label{Sec:chars} + +Because \LaTeXe{} supports different encodings, definitions of commands +for producing symbols, accents, composite glyphs, etc.\ must be +defined using the commands provided for this purpose and described in +\emph{\fntguide}. This part of the system is still under development +so such tasks should be undertaken with great caution. + +Also, |\DeclareRobustCommand| should be used for encoding-independent +commands of this type. + +Note that it is no longer possible to refer to the math font set-up +outside math mode: for example, neither |\textfont 1| nor +|\scriptfont 2| are guaranteed to be defined in other modes. + + +\subsection{General style} +\label{Sec:general} + +The new system provides many commands designed to help you produce +well-structured class and package files that are both robust and +portable. This section outlines some ways to make intelligent use of +these. + +\subsubsection{Loading other files} +\label{Sec:loading} + +\NEWdescription{1995/12/01} +\LaTeX{} provides these commands: +\begin{verbatim} + \LoadClass \LoadClassWithOptions + \RequirePackage \RequirePackageWithOptions +\end{verbatim} +for using classes or packages inside other classes or packages. We +recommend strongly that you use them, rather than the primitive +|\input| command, for a number of reasons. + +Files loaded with |\input <filename>| will not be listed in the +|\listfiles| list. + +If a package is always loaded with |\RequirePackage...| or |\usepackage| +then, even if its loading is requested several times, it will be +loaded only once. By contrast, if it is loaded with |\input| then it +can be loaded more than once; such an extra loading may waste time and +memory and it may produce strange results. + +If a package provides option-processing then, again, strange results +are possible if the package is |\input| rather than loaded by means of +|\usepackage| or |\RequirePackage...|. + +If the package |foo.sty| loads the package |baz.sty| by use of +|\input baz.sty| then the user will get a warning: +\begin{verbatim} + LaTeX Warning: You have requested package `foo', + but the package provides `baz'. +\end{verbatim} +Thus, for several reasons, using |\input| to load packages is not a +good idea. + +Unfortunately, if you are upgrading the file |myclass.sty| to a class +file then you have to make sure that any old files which contain +|\input myclass.sty| still work. + +This was also true for the standard classes (|article|, |book| and +|report|), since a lot of existing \LaTeX~2.09 document styles contain +|\input article.sty|. The approach which we use to solve this is +to provide minimal files |article.sty|, |book.sty| and |report.sty|, +which simply load the appropriate class files. + +For example, |article.sty| contains just the following lines: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \@obsoletefile{article.cls}{article.sty} + \LoadClass{article} +\end{verbatim} +You may wish to do the same or, if you think that it is safe to do so, +you may decide to just remove |myclass.sty|. + +\subsubsection{Make it robust} + +We consider it good practice, when writing packages and classes, to use +\LaTeX{} commands as much as possible. + +Thus, instead of using |\def...| we recommend using one of +|\newcommand|, |\renewcommand| or |\providecommand|; |\CheckCommand| is +also useful. Doing this makes +it less likely that you will inadvertently redefine a command, giving +unexpected results. + +When you define an environment, use |\newenvironment| or +|\renewenvironment| instead |\def\foo{...}| and |\def\endfoo{...}|. + +If you need to set or change the value of a \m{dimen} or \m{skip} +register, use |\setlength|. + +To manipulate boxes, use \LaTeX{} commands such as |\sbox|, +|\mbox| and |\parbox| rather than |\setbox|, |\hbox| and |\vbox|. + +Use |\PackageError|, |\PackageWarning| or |\PackageInfo| (or the +equivalent class commands) rather than |\@latexerr|, |\@warning| or +|\wlog|. + +It is still possible to declare options by defining |\ds@<option>| and +calling |\@options|; but we recommend the |\DeclareOption| and +|\ProcessOptions| commands instead. These are more powerful and use +less memory. So rather than using: +\begin{verbatim} + \def\ds@draft{\overfullrule 5pt} + \@options +\end{verbatim} +you should use: +\begin{verbatim} + \DeclareOption{draft}{\setlength{\overfullrule}{5pt}} + \ProcessOptions\relax +\end{verbatim} + +The advantage of this kind of practice is that your code is more +readable and, more important, that it is less likely to break when +used with future versions of \LaTeX{}. + +\subsubsection{Make it portable} + +It is also sensible to make your files are as portable as possible. To +ensure this; they should contain only visible 7-bit text; and the +filenames should contain at most eight characters (plus the three +letter extension). Also, of course, it \textbf{must not} have the +same name as a file in the standard \LaTeX{} distribution, however +similar its contents may be to one of these files. + +It is also useful if local classes or packages have a common prefix, +for example the University of Nowhere classes might begin with |unw|. +This helps to avoid every University having its own thesis class, all +called |thesis.cls|. + +If you rely on some features of the \LaTeX{} kernel, or on a package, +please specify the release-date you need. For example, the package +error commands were introduced in the June 1994 release so, if you use +them then you should put: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e}[1994/06/01] +\end{verbatim} + +\subsubsection{Useful hooks} + +Some packages and document styles had to redefine the command +|\document| or |\enddocument| to achieve their goal. This is no +longer necessary. You can now use the `hooks' |\AtBeginDocument| and +|\AtEndDocument| (see Section~\ref{Sec:delays}). Again, using these +hooks makes it less likely that your code breaks with future versions +of \LaTeX{}. It also makes it more likely that your package can work +together with someone else's. + +\NEWdescription{1996/12/01} +However, note that code in the |\AtBeginDocument| hook is part of the +preamble. Thus there are restrictions on what can be put there; in +particular, no typesetting can be done. + +\section{The structure of a class or package} +\label{Sec:structure} + +\LaTeXe{} classes and packages have more structure than \LaTeX~2.09 +style files did. The outline of a class or package file is: +\begin{description} +\item[Identification] The file says that it is a \LaTeXe{} package or + class, and gives a short description of itself. +\item[Preliminary declarations] + Here the file declares some commands and can also load + other files. Usually these commands will be just those needed for + the code used in the declared options. +\item[Options] The file declares and processes its options. +\item[More declarations] This is where the file does most of its work: + declaring new variables, commands and fonts; and loading other files. +\end{description} + +\subsection{Identification} + +The first thing a class or package file does is identify itself. +Package files do this as follows: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesPackage{<package>}[<date> <other information>] +\end{verbatim} +For example: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesPackage{latexsym}[1994/06/01 Standard LaTeX package] +\end{verbatim} +Class files do this as follows: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{<class-name>}[<date> <other information>] +\end{verbatim} +For example: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{article}[1994/06/01 Standard LaTeX class] +\end{verbatim} +\NEWdescription{1998/06/19} +The \m{date} should be given in the form `\textsc{yyyy/mm/dd}' and +must be present if the optional argument is used (this is also true +for the |\NeedsTeXFormat| command). +Any derivation from this syntax will result in low-level \TeX{} +errors---the commands expect a valid syntax to speed up the daily +usage of the package or class and make no provision for the case that +the developer made a mistake! + +This date is checked whenever a user specifies a date in their +|\documentclass| or |\usepackage| command. For example, if you wrote: +\begin{verbatim} + \documentclass{article}[1995/12/23] +\end{verbatim} +then users at a different location +would get a warning that their copy of |article| was out of +date. + +The description of a class is displayed when the class is used. The +description of a package is put into the log file. These descriptions +are also displayed by the |\listfiles| command. The phrase +\texttt{Standard LaTeX} \textbf{must not} be used in the identification +banner of any file other than those in the standard \LaTeX{} +distribution. + + +\subsection{Using classes and packages} + +The first major difference between \LaTeX~2.09 style files and +\LaTeXe{} packages and classes is that \LaTeXe{} supports +\emph{modularity}, in the sense of building files from small +building-blocks rather than using large single files. + +A \LaTeX{} package or class can load a package as follows: +\begin{verbatim} + \RequirePackage[<options>]{<package>}[<date>] +\end{verbatim} +For example: +\begin{verbatim} + \RequirePackage{ifthen}[1994/06/01] +\end{verbatim} +This command has the same syntax as the author command |\usepackage|. +It allows packages or classes to use features provided by other +packages. For example, by loading the |ifthen| package, a package +writer can use the `if\dots then\dots else\dots' commands provided +by that package. + +A \LaTeX{} class can load one other class as follows: +\begin{verbatim} + \LoadClass[<options>]{<class-name>}[<date>] +\end{verbatim} +For example: +\begin{verbatim} + \LoadClass[twocolumn]{article} +\end{verbatim} +This command has the same syntax as the author command |\documentclass|. +It allows classes to be based on the syntax and appearance of another +class. For example, by loading the |article| class, a class writer +only has to change the bits of |article| they don't like, rather than +writing a new class from scratch. + +\NEWfeature{1995/12/01} +The following commands can be used in the common case that you want to +simply load a class or package file with exactly those options that +are being used by the current class. +\begin{verbatim} + \LoadClassWithOptions{<class-name>}[<date>] + \RequirePackageWithOptions{<package>}[<date>] +\end{verbatim} +For example: +\begin{verbatim} + \LoadClassWithOptions{article} + \RequirePackageWithOptions{graphics}[1995/12/01] +\end{verbatim} + +\subsection{Declaring options} + +\NEWdescription{1998/12/01} +The other major difference between \LaTeX~2.09 styles and \LaTeXe{} +packages and classes is in option handling. Packages and classes can +now declare options and these can be specified by authors; for +example, the |twocolumn| option is declared by the |article| class. +Note that the name of an option should contain only those characters +allowed in a `\LaTeX{} name'; in particular it must not contain any +control sequences. + +An option is declared as follows: +\begin{verbatim} + \DeclareOption{<option>}{<code>} +\end{verbatim} +For example, the |dvips| option (slightly simplified) +to the |graphics| package is implemented as: +\begin{verbatim} + \DeclareOption{dvips}{\input{dvips.def}} +\end{verbatim} +This means that when an author writes |\usepackage[dvips]{graphics}|, +the file |dvips.def| is loaded. As another example, the |a4paper| +option is declared in the |article| class to set the |\paperheight| +and |\paperwidth| lengths: +\begin{verbatim} + \DeclareOption{a4paper}{% + \setlength{\paperheight}{297mm}% + \setlength{\paperwidth}{210mm}% + } +\end{verbatim} +Sometimes a user will request an option which the class +or package has not explicitly declared. By default this will produce +a warning (for classes) or error (for packages); this behaviour +can be altered as follows: +\begin{verbatim} + \DeclareOption*{<code>} +\end{verbatim} +For example, to make the package |fred| produce a warning rather than +an error for unknown options, you could specify: +\begin{verbatim} + \DeclareOption*{% + \PackageWarning{fred}{Unknown option `\CurrentOption'}% + } +\end{verbatim} +Then, if an author writes |\usepackage[foo]{fred}|, they will get a +warning \texttt{Package fred Warning: Unknown option `foo'.} As +another example, the |fontenc| package tries to load a file +|<ENC>enc.def| whenever the \m{ENC} option is used. This +can be done by writing: +\begin{verbatim} + \DeclareOption*{% + \input{\CurrentOption enc.def}% + } +\end{verbatim} +\NEWdescription{1998/12/01} +It is possible to pass options on to another package or class, using +the command |\PassOptionsToPackage| or |\PassOptionsToClass| (note +that this is a specialised operation that works only for option +names). For example, to pass every unknown option on to the |article| +class, you can use: +\begin{verbatim} + \DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{article}% + } +\end{verbatim} +If you do this then you should make sure you load the class at some +later point, otherwise the options will never be processed! + +So far, we have explained only how to declare options, not how to +execute them. To process the options with which the file was called, +you should use: +\begin{verbatim} + \ProcessOptions\relax +\end{verbatim} +This executes the \m{code} for each option that was both specified and +declared (see Section~\ref{Sec:commands.options} for details of how +this is done). + +For example, if the |jane| package file contains: +\begin{verbatim} + \DeclareOption{foo}{\typeout{Saw foo.}} + \DeclareOption{baz}{\typeout{Saw baz.}} + \DeclareOption*{\typeout{What's \CurrentOption?}} + \ProcessOptions\relax +\end{verbatim} +and an author writes |\usepackage[foo,bar]{jane}|, then they will see +the messages \texttt{Saw foo.} and \texttt{What's bar?} + +\subsection{A minimal class file} + +Most of the work of a class or package is in defining new commands, or +changing the appearance of documents. This is done in the body of the +package, using commands such as |\newcommand| or |\setlength|. + +\LaTeXe{} provides several new commands to help class and package +writers; these are described in detail in Section~\ref{Sec:commands}. + +There are four things that every class file \emph{must} contain: these +are a definition of |\normalsize|, values for |\textwidth| and +|\textheight| and a specification for page-numbering. So a minimal +document class file\footnote {This class is now in the standard +distribution, as \texttt{minimal.cls}.} looks like this: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{minimal}[1995/10/30 Standard LaTeX minimal class] + \renewcommand{\normalsize}{\fontsize{10pt}{12pt}\selectfont} + \setlength{\textwidth}{6.5in} + \setlength{\textheight}{8in} + \pagenumbering{arabic} % needed even though this class will + % not show page numbers +\end{verbatim} +However, this class file will not support footnotes, marginals, +floats, etc., nor will it provide any of the 2-letter font commands +such as |\rm|; thus most classes will contain more than this minimum! + +\subsection{Example: a local letter class} + +A company may have its own letter class, for setting letters in the +company style. This section shows a simple implementation of such a +class, although a real class would need more structure. + +The class begins by announcing itself as |neplet.cls|. +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{neplet}[1995/04/01 NonExistent Press letter class] +\end{verbatim} +Then this next bit passes any options on to the |letter| class, which +is loaded with the |a4paper| option. +\begin{verbatim} + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}} + \ProcessOptions\relax + \LoadClass[a4paper]{letter} +\end{verbatim} +In order to use the company letter head, it redefines the +|firstpage| page style: this is the page style that is used on +the first page of letters. +\begin{verbatim} + \renewcommand{\ps@firstpage}{% + \renewcommand{\@oddhead}{<letterhead goes here>}% + \renewcommand{\@oddfoot}{<letterfoot goes here>}% + } +\end{verbatim} +And that's it! + +\subsection{Example: a newsletter class} + +A simple newsletter can be typeset with \LaTeX{}, using a variant of the +|article| class. +The class begins by announcing itself as |smplnews.cls|. +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{smplnews}[1995/04/01 The Simple News newsletter class] + + \newcommand{\headlinecolor}{\normalcolor} +\end{verbatim} +It passes most specified options on to the |article| class: apart from +the |onecolumn| option, which is switched off, and the |green| option, +which sets the headline in green. +\begin{verbatim} + \DeclareOption{onecolumn}{\OptionNotUsed} + \DeclareOption{green}{\renewcommand{\headlinecolor}{\color{green}}} + + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + + \ProcessOptions\relax +\end{verbatim} +It then loads the class |article| with the option |twocolumn|. +\begin{verbatim} + \LoadClass[twocolumn]{article} +\end{verbatim} +Since the newsletter is to be printed in colour, it now loads the +|color| package. The class does not specify a device driver option +since this should be specified by the user of the |smplnews| class. +\begin{verbatim} + \RequirePackage{color} +\end{verbatim} +The class then redefines |\maketitle| to produce the title in 72pt +Helvetica bold oblique, in the appropriate colour. +\begin{verbatim} + \renewcommand{\maketitle}{% + \twocolumn[% + \fontsize{72}{80}\fontfamily{phv}\fontseries{b}% + \fontshape{sl}\selectfont\headlinecolor + \@title + ]% + } +\end{verbatim} +It redefines |\section| and switches off section numbering. +\begin{verbatim} + \renewcommand{\section}{% + \@startsection + {section}{1}{0pt}{-1.5ex plus -1ex minus -.2ex}% + {1ex plus .2ex}{\large\sffamily\slshape\headlinecolor}% + } + + \setcounter{secnumdepth}{0} +\end{verbatim} +It also sets the three essential things. +\begin{verbatim} + \renewcommand{\normalsize}{\fontsize{9}{10}\selectfont} + \setlength{\textwidth}{17.5cm} + \setlength{\textheight}{25cm} +\end{verbatim} +In practice, a class would need more than this: it would provide +commands for issue numbers, authors of articles, page styles and so +on; but this skeleton gives a start. The |ltnews| class file is not +much more complex than this one. + +\section{Commands for class and package writers} +\label{Sec:commands} + +This section describes briefly each of the new commands for class and +package writers. To find out about other aspects of the new system, +you should also read \emph{\LaTeXbook}, \emph{\LaTeXcomp} and +\emph{\usrguide}. + +\subsection{Identification} + +The first group of commands discussed here are those used +to identify your class or package file. + +\begin{decl} +|\NeedsTeXFormat| \arg{format-name} \oarg{release-date} +\end{decl} +This command tells \TeX{} that this file should be processed using a +format with name \m{format-name}. You can use the optional argument +\m{release-date} to further specify the earliest release date of the +format that is needed. When the release date of the format is older +than the one specified a warning will be generated. The standard +\m{format-name} is \texttt{LaTeX2e}. The date, if present, must be in +the form \textsc{yyyy/mm/dd}. + +Example: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e}[1994/06/01] +\end{verbatim} + +\begin{decl} +|\ProvidesClass| \arg{class-name} \oarg{release-info} \\ +|\ProvidesPackage| \arg{package-name} \oarg{release-info} +\end{decl} +This declares that the current file contains the definitions for the +document class \m{class-name} or package \m{package-name}. + +The optional \m{release-info}, if used, must contain: +\begin{itemize} + \item the release date of + this version of the file, in the form \textsc{yyyy/mm/dd}; +\item optionally followed by a space and a short description, possibly + including a version number. +\end{itemize} +The above syntax must be followed exactly so that this information +can be used by |\LoadClass| or |\documentclass| (for classes) or +|\RequirePackage| or |\usepackage| (for packages) to test that the +release is not too old. + +The whole of this \m{release-info} information is displayed by +|\listfiles| and should therefore not be too long. + +Example: +\begin{verbatim} + \ProvidesClass{article}[1994/06/01 v1.0 Standard LaTeX class] + \ProvidesPackage{ifthen}[1994/06/01 v1.0 Standard LaTeX package] +\end{verbatim} + +\begin{decl} + |\ProvidesFile| \arg{file-name} \oarg{release-info} +\end{decl} +This is similar to the two previous commands except that here the full +filename, including the extension, must be given. It is used for +declaring any files other than main class and package files. + +Example: +\begin{verbatim} + \ProvidesFile{T1enc.def}[1994/06/01 v1.0 Standard LaTeX file] +\end{verbatim} + +Note that the phrase \texttt{Standard LaTeX} \textbf{must not} be used +in the identification banner of any file other than those in the +standard \LaTeX{} distribution. + +\subsection{Loading files} +\label{Sec:loadf} + +\NEWfeature{1995/12/01} +This group of commands can be used to create your own document class or +package by building on existing classes or packages. +\begin{decl} + |\RequirePackage| \oarg{options-list} \arg{package-name} + \oarg{release-info}\\ + |\RequirePackageWithOptions| \arg{package-name} + \oarg{release-info} +\end{decl} +Packages and classes should use these commands to load other packages. + +The use of |\RequirePackage| is the same as the author command +|\usepackage|. + +Examples: +\begin{verbatim} + \RequirePackage{ifthen}[1994/06/01] + \RequirePackageWithOptions{graphics}[1995/12/01] +\end{verbatim} + +\begin{decl} + |\LoadClass| \oarg{options-list} \arg{class-name} + \oarg{release-info}\\ + |\LoadClassWithOptions| \arg{class-name} + \oarg{release-info} +\end{decl} +\NEWfeature{1995/12/01} +These commands are for use \emph{only} in class files, they cannot be +used in packages files; +they can be used at most once within a class file. + +The use of|\LoadClass| is the same as +the use of |\documentclass| to load a class file. + +Examples: +\begin{verbatim} + \LoadClass{article}[1994/06/01] + \LoadClassWithOptions{article}[1995/12/01] +\end{verbatim} + +\NEWfeature{1995/12/01} +The two |WithOptions| versions simply load the class (or package) file +with exactly those options that are being used by the current file +(class or package). See below, in \ref{Sec:opmove}, for further +discussion of their use. + + +\subsection{Option declaration} +\label{Sec:commands.options.dec} + +\NEWdescription{1998/12/01} +The following commands deal with the declaration and handling of +options to document classes and packages. Every option name must be a +`\LaTeX{} name'. + +There are some commands designed especially for use within the +\m{code} argument of these commands (see below). + +\begin{decl} + |\DeclareOption| \arg{option-name} \arg{code} +\end{decl} +This makes \m{option-name} a `declared option' of the class or package +in which it is put. + +The \m{code} argument contains the code to be executed if that option +is specified for the class or package; it can contain any valid +\LaTeXe{} construct. + +Example: +\begin{verbatim} + \DeclareOption{twoside}{\@twosidetrue} +\end{verbatim} + +\begin{decl} + |\DeclareOption*| \arg{code} +\end{decl} +This declares the \m{code} to be executed for every option which is +specified for, but otherwise not explicitly declared by, the class or +package; this code is called the `default option code' and it can +contain any valid \LaTeXe{} construct. + +If a class file contains no |\DeclareOption*| then, by default, all +specified but undeclared options for that class will be silently +passed to all packages (as will the specified and declared options for +that class). + +If a package file contains no |\DeclareOption*| then, by default, each +specified but undeclared option for that package will produce an error. + + +\subsection{Commands within option code} +\label{Sec:within.code} + +These two commands can be used only within the \m{code} argument of +either |\DeclareOption| or |\DeclareOption*|. Other commands commonly +used within these arguments can be found in the next few subsections. + +\begin{decl} + |\CurrentOption| +\end{decl} +This expands to the name of the current option. + +\begin{decl} + |\OptionNotUsed| +\end{decl} +This causes the current option to +be added to the list of `unused options'. + +\NEWfeature{1995/06/01} + You can now include hash marks (\texttt{\#}) within these \m{code} + arguments without special treatment (formerly, it had been + necessary to double them). + +\subsection{Moving options around} +\label{Sec:opmove} + +These two commands are also very useful within the \m{code} argument +of |\DeclareOption| or |\DeclareOption*|: +\begin{decl} + |\PassOptionsToPackage| \arg{options-list} \arg{package-name}\\ + |\PassOptionsToClass| \arg{options-list} \arg{class-name} +\end{decl} +The command |\PassOptionsToPackage| passes the option names in +\m{options-list} to package \m{package-name}. +This means that it adds the \m{option-list} to the +list of options used by any future |\RequirePackage| or |\usepackage| +command for package \m{package-name}. + +Example: +\begin{verbatim} + \PassOptionsToPackage{foo,bar}{fred} + \RequirePackage[baz]{fred} +\end{verbatim} +is the same as: +\begin{verbatim} + \RequirePackage[foo,bar,baz]{fred} +\end{verbatim} + +Similarly, |\PassOptionsToClass| may be used in a class file to pass +options to another class to be loaded with |\LoadClass|. + +\NEWdescription{1995/12/01} +The effects and use of these two commands should be contrasted with +those of the following two (documented above, in \ref{Sec:loadf}): +\begin{verbatim} + \LoadClassWithOptions + \RequirePackageWithOptions +\end{verbatim} +The command|\RequirePackageWithOptions| is similar to +|\RequirePackage|, but it always loads the required package with +exactly the same option list as that being used by the current class +or package, rather than with any option explicitly supplied or passed +on by |\PassOptionsToPackage|. + +The main purpose of |\LoadClassWithOptions| is to allow one class to +simply build on another, for example: +\begin{verbatim} + \LoadClassWithOptions{article} +\end{verbatim} +This should be compared with the slightly different construction +\begin{verbatim} + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + \ProcessOptions\relax + \LoadClass{article} +\end{verbatim} +As used above, the effects are more or less the same, but the first is +a lot less to type; also the |\LoadClassWithOptions| method runs +slightly quicker. + +If, however, the class declares options of its own then +the two constructions are different. Compare, for example: +\begin{verbatim} + \DeclareOption{landscape}{\@landscapetrue} + \ProcessOptions\relax + \LoadClassWithOptions{article} +\end{verbatim} +with: +\begin{verbatim} + \DeclareOption{landscape}{\@landscapetrue} + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + \ProcessOptions\relax + \LoadClass{article} +\end{verbatim} +In the first example, the \textsf{article} class will be loaded with +option |landscape| precisely when the current class is called with +this option. By contrast, in the second example it will never be +called with option \texttt{landscape} as in that case \textsf{article} +is passed options only by the default option handler, but this handler +is not used for |landscape| because that option is explicitly +declared. + +\subsection{Delaying code} +\label{Sec:delays} + +These first two commands are also intended primarily for use within +the \m{code} argument of |\DeclareOption| or |\DeclareOption*|. + +\begin{decl} + |\AtEndOfClass| \arg{code}\\ + |\AtEndOfPackage| \arg{code} +\end{decl} +These commands declare \m{code} that is saved away internally and then +executed after processing the whole of the current class or package +file. + +Repeated use of these commands is permitted: the code in the +arguments is stored (and later executed) in the order of their +declarations. + +\begin{decl} + |\AtBeginDocument| \arg{code}\\ + |\AtEndDocument| \arg{code} +\end{decl} +These commands declare \m{code} to be saved internally and executed +while \LaTeX{} is executing |\begin{document}| or |\end{document}|. + +The \m{code} specified in the argument to |\AtBeginDocument| is +executed near the end of the |\begin{document}| code, \emph{after} the +font selection tables have been set up. It is therefore a useful +place to put code which needs to be executed after everything has been +prepared for typesetting and when the normal font for the document is +the current font. + +\NEWdescription{1995/12/01} +The |\AtBeginDocument| hook should not be used for code that does any +typesetting since the typeset result would be unpredictable. + +The \m{code} specified in the argument to |\AtEndDocument| is +executed at the beginning of the |\end{document}| code, +\emph{before} the final page is finished and before any leftover +floating environments are processed. If some of the \m{code} is to be +executed after these two processes, you should include a |\clearpage| +at the appropriate point in \m{code}. + +Repeated use of these commands is permitted: the code in the +arguments is stored (and later executed) in the order of their +declarations. + +\begin{decl}[1994/12/01] + |\AtBeginDvi| \arg{specials} +\end{decl} +These commands save in a box register things which are written to the +|.dvi| file at the beginning of the `shipout' of the first page of the +document. + +This should not be used for anything that will add any typeset +material to the |.dvi| file. + +Repeated use of this command is permitted. + + +\subsection{Option processing} +\label{Sec:commands.options} + +\begin{decl} + |\ProcessOptions| +\end{decl} +This command executes the \m{code} for each selected option. + +We shall first describe how |\ProcessOptions| works in a package file, +and then how this differs in a class file. + +To understand in detail what |\ProcessOptions| does in a package file, +you have to know the difference between \emph{local} and \emph{global} +options. +\begin{itemize} +\item \textbf{Local options} are those which have been explicitly + specified for this particular package in the \m{options} argument of + any of these: +\begin{quote} + |\PassOptionsToPackage{<options>}| \ |\usepackage[<options>]|\\ + |\RequirePackage[<options>]| +\end{quote} +\item \textbf{Global options} are any other options that are specified + by the author in the \m{options} argument of + |\documentclass[<options>]|. +\end{itemize} +For example, suppose that a document begins: +\begin{verbatim} + \documentclass[german,twocolumn]{article} + \usepackage{gerhardt} +\end{verbatim} +whilst package |gerhardt| calls package |fred| with: +\begin{verbatim} + \PassOptionsToPackage{german,dvips,a4paper}{fred} + \RequirePackage[errorshow]{fred} +\end{verbatim} +then: +\begin{itemize} +\item |fred|'s local options are |german|, |dvips|, |a4paper| + and |errorshow|; +\item |fred|'s only global option is |twocolumn|. +\end{itemize} + +When |\ProcessOptions| is called, the following happen. +\begin{itemize} +\item \emph{First}, for each option so far declared in |fred.sty| + by |\DeclareOption|, it looks to see if that option is either a + global or a local option for |fred|: if it is then the corresponding + code is executed. + + This is done in the order in which these options + were declared in |fred.sty|. +\item \emph{Then}, for each remaining \emph{local} option, the command + |\ds@<option>| is executed if it has been defined somewhere (other + than by a |\DeclareOption|); otherwise, the `default option code' is + executed. If no default option code has been declared then an error + message is produced. + + This is done in the order in which these + options were specified. +\end{itemize} +Throughout this process, the system ensures that the code declared for +an option is executed at most once. + +Returning to the example, if |fred.sty| contains: +\begin{verbatim} + \DeclareOption{dvips}{\typeout{DVIPS}} + \DeclareOption{german}{\typeout{GERMAN}} + \DeclareOption{french}{\typeout{FRENCH}} + \DeclareOption*{\PackageWarning{fred}{Unknown `\CurrentOption'}} + \ProcessOptions\relax +\end{verbatim} +then the result of processing this document will be: +\begin{verbatim} + DVIPS + GERMAN + Package fred Warning: Unknown `a4paper'. + Package fred Warning: Unknown `errorshow'. +\end{verbatim} +Note the following: + +\begin{itemize} +\item the code for the |dvips| option is executed before that for the + |german| option, because that is the order in which they are declared + in |fred.sty|; +\item the code for the |german| option is executed only once, when the + declared options are being processed; +\item the |a4paper| and |errorshow| options produce the warning from + the code declared by |\DeclareOption*| (in the order in which they + were specified), whilst the |twocolumn| option does not: this is + because |twocolumn| is a global option. +\end{itemize} + +In a class file, |\ProcessOptions| works in the same way, except +that: \emph{all} options are local; and the default value for +|\DeclareOption*| is |\OptionNotUsed| rather than an error. + +\NEWdescription{1995/12/01} +Note that, because |\ProcessOptions| has a |*|-form, it is wise to +follow the non-star form with |\relax|, as in the previous examples, +since this prevents unnecessary look ahead and possibly misleading +error messages being issued. + +\begin{decl} + |\ProcessOptions*| \\ + |\@options| +\end{decl} +This is like |\ProcessOptions| but it executes the options in the +order specified in the calling commands, rather than in the order of +declaration in the class or package. For a package this means that the +global options are processed first. + +The |\@options| command from \LaTeX~2.09 has been made equivalent to +this in order to ease the task of updating old document styles to +\LaTeXe{} class files. + +\begin{decl} + |\ExecuteOptions| \arg{options-list} +\end{decl} + +For each option in the \m{options-list}, in order, +this command simply executes the command +|\ds@<option>| (if this command is not defined, then that option is +silently ignored). + +It can be used to provide a `default option list' just before +|\ProcessOptions|. For example, suppose that in a class file you want +to set up the default design to be: two-sided printing; 11pt fonts; +in two columns. Then it could specify: +\begin{verbatim} + \ExecuteOptions{11pt,twoside,twocolumn} +\end{verbatim} + + +\subsection{Safe file commands} + +These commands deal with file input; they ensure that the non-existence +of a requested file can be handled in a user-friendly way. + +\begin{decl} +|\IfFileExists| \arg{file-name} \arg{true} \arg{false} +\end{decl} +If the file exists then the code specified in \m{true} is +executed. + +If the file does not exist then the code specified in \m{false} is +executed. + +This command does \emph{not} input the file. + +\begin{decl} + |\InputIfFileExists| \arg{file-name} \arg{true} \arg{false} +\end{decl} +This inputs the file \m{file-name} if it exists and, immediately +before the input, the code specified in \m{true} is executed. + +If the file does not exist then the code specified in \m{false} is +executed. + +It is implemented using |\IfFileExists|. + + +\subsection{Reporting errors, etc} + +These commands should be used by third party classes and packages to +report errors, or to provide information to authors. + +\begin{decl} + |\ClassError| \arg{class-name} \arg{error-text} \arg{help-text}\\ + |\PackageError| \arg{package-name} \arg{error-text} \arg{help-text} +\end{decl} +These produce an error message. The \m{error-text} is displayed and the +|?| error prompt is shown. If the user types |h|, they will be shown +the \m{help-text}. + +Within the \m{error-text} and \m{help-text}: |\protect| can be used to +stop a command from expanding; |\MessageBreak| causes a line-break; +and |\space| prints a space. + +Note that the \m{error-text} will have a full stop added to it, so do +not put one into the argument. + +For example: +\begin{verbatim} + \newcommand{\foo}{FOO} + \PackageError{ethel}{% + Your hovercraft is full of eels,\MessageBreak + and \protect\foo\space is \foo + }{% + Oh dear! Something's gone wrong.\MessageBreak + \space \space Try typing \space <<return>> + \space to proceed, ignoring \protect\foo. + } +\end{verbatim} +produces this display: +\begin{verbatim} + ! Package ethel Error: Your hovercraft is full of eels, + (ethel) and \foo is FOO. + + See the ethel package documentation for explanation. +\end{verbatim} +If the user types |h|, this will be shown: +\begin{verbatim} + Oh dear! Something's gone wrong. + Try typing <<return>> to proceed, ignoring \foo. +\end{verbatim} + +\begin{decl} + |\ClassWarning| \arg{class-name} \arg{warning-text}\\ + |\PackageWarning| \arg{package-name} \arg{warning-text}\\ + |\ClassWarningNoLine| \arg{class-name} \arg{warning-text}\\ + |\PackageWarningNoLine| \arg{package-name} \arg{warning-text}\\ + |\ClassInfo| \arg{class-name} \arg{info-text}\\ + |\PackageInfo| \arg{package-name} \arg{info-text} +\end{decl} +The four |Warning| commands are similar to the error commands, except +that they produce only a warning on the screen, with no error prompt. + +The first two, |Warning| versions, also show the line number where the +warning occurred, whilst the second two, |WarningNoLine| versions, do +not. + +The two |Info| commands are similar except that they log the +information only in the transcript file, including the line number. +There are no |NoLine| versions of these two. + +Within the \m{warning-text} and \m{info-text}: |\protect| can be used to +stop a command from expanding; |\MessageBreak| causes a line-break; +and |\space| prints a space. +Also, these should not end with a full stop as one is +automatically added. + + +\subsection{Defining commands} +\label{Sec:commands.define} + +\LaTeXe{} provides some extra methods of (re)defining commands that are +intended for use in class and package files. + +\NEWfeature{1994/12/01} +The \texttt{*}-forms of these commands should be used to define +commands that are not, in \TeX{} terms, long. This can be useful for +error-trapping with commands whose arguments are not intended to +contain whole paragraphs of text. + +\begin{decl} + |\DeclareRobustCommand| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition}\\ + |\DeclareRobustCommand*| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition} +\end{decl} +This command takes the same arguments as |\newcommand| but it declares +a robust command, even if some code within the\m{definition} is +fragile. You can use this command to define new robust commands, or +to redefine existing commands and make them robust. A log is put into +the transcript file if a command is redefined. + +For example, if |\seq| is defined as follows: +\begin{verbatim} + \DeclareRobustCommand{\seq}[2][n]{% + \ifmmode + #1_{1}\ldots#1_{#2}% + \else + \PackageWarning{fred}{You can't use \protect\seq\space in text}% + \fi + } +\end{verbatim} +Then the command |\seq| can be used in moving arguments, even though +|\ifmmode| cannot, for example: +\begin{verbatim} + \section{Stuff about sequences $\seq{x}$} +\end{verbatim} + +Note also that there is no need to put a |\relax| before the +|\ifmmode| at the beginning of the definition; this is because the +protection given by this |\relax| against expansion at the wrong time +will be provided internally. + +\begin{decl} + |\CheckCommand| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition}\\ + |\CheckCommand*| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition} +\end{decl} +This takes the same arguments as |\newcommand| but, rather than define +\m{cmd}, it just checks that the current definition of \m{cmd} is +exactly as given by \m{definition}. An error is raised if these +definitions differ. + +This command is useful for checking the state of the system before +your package starts altering the definitions of commands. It allows +you to check, in particular, that no other package has redefined the +same command. + +\subsection{Moving arguments} + +\NEWdescription{1994/12/01} +The setting of protect whilst processing (i.e.~moving) moving arguments +has been reimplemented, as has the method of writing information from +the |.aux| file to other files such as the |.toc| file. Details can +be found in the file |ltdefns.dtx|. + +We hope that these changes will not affect many packages. + +\section{Miscellaneous commands, etc} +\label{Sec:commands.misc} + +\subsection{Layout parameters} + +\begin{decl} +|\paperheight|\\ +|\paperwidth| +\end{decl} +These two parameters are usually set by the class to be the size of +the paper being used. This should be actual paper size, unlike +|\textwidth| and |\textheight| which are the size of the main text +body within the margins. + + +\subsection{Case changing} +\label{sec:case} + +\begin{decl} + |\MakeUppercase| \arg{text} \\ + |\MakeLowercase| \arg{text} +\end{decl} + +\NEWfeature{1995/06/01} +\TeX{} provides two primitives |\uppercase| and |\lowercase| for +changing the case of text. These are sometimes used in document +classes, for example to set information in running heads in all +capitals. + +Unfortunately, these \TeX{} primitives do not change the case of +characters accessed by commands like |\ae| or |\aa|. To overcome this +problem, \LaTeX{} provides two new commands |\MakeUppercase| and +|\MakeLowercase| to do this. + +For example: +\begin{quotation} +\begin{tabular}{rl} + |\uppercase{aBcD\ae\AA\ss\OE}| & \uppercase{aBcD\ae\AA\ss\OE}\\ + |\lowercase{aBcD\ae\AA\ss\OE}| & \lowercase{aBcD\ae\AA\ss\OE}\\ + |\MakeUppercase{aBcD\ae\AA\ss\OE}| & + \MakeUppercase{aBcD\ae\AA\ss\OE}\\ + |\MakeLowercase{aBcD\ae\AA\ss\OE}| & \MakeLowercase{aBcD\ae\AA\ss\OE} +\end{tabular} +\end{quotation} + +The commands |\MakeUppercase| and |\MakeLowercase| themselves are +robust, but they have moving arguments. + +The commands use the \TeX{} primitives |\uppercase| and |\lowercase|, +and so have a number of unexpected `features'. In particular, they +change the case of everything (except characters in the names of +control-sequences) in their text argument: this includes mathematics, +environment names, and label names. + +For example: +\begin{verbatim} + \MakeUppercase{$x+y$ in \ref{foo}} +\end{verbatim} +produces $X+Y$ and the warning: +\begin{verbatim} + LaTeX Warning: Reference `FOO' on page ... undefined on ... +\end{verbatim} +In the long run, we would like to use all-caps fonts rather than any +command like |\MakeUppercase| but this is not possible at the moment +because such fonts do not exist. + +\NEWdescription{1995/12/01} +In order that upper/lower-casing will work reasonably well, and in +order to provide any correct hyphenation, \LaTeXe{} \emph{must} use, +throughout a document, the same fixed table for changing case. +The table used is designed for the font encoding |T1|; this works well +with the standard \TeX{} fonts for all Latin alphabets but will cause +problems when using other alphabets. + +\subsection{The `openany' option in the `book' class} + +\NEWdescription{1996/06/01} +The |openany| option allows chapter and similar openings to +occur on left hand pages. Previously this option affected only +|\chapter| and |\backmatter|. It now also affects +|\part|, |\frontmatter| and |\mainmatter|. + +\subsection{Better user-defined math display environments} + +\begin{decl} + |\ignorespacesafterend| +\end{decl} + +\NEWfeature{1996/12/01} +\NEWdescription{2003/12/01} +Suppose that you want to define an environment for displaying text +that is numbered as an equation. A straightforward way to do this is +as follows: +\begin{verbatim} + \newenvironment{texteqn} + {\begin{equation} + \begin{minipage}{0.9\linewidth}} + {\end{minipage} + \end{equation}} +\end{verbatim} +However, if you have tried this then you will probably have noticed +that it does not work perfectly when used in the middle of a paragraph +because an inter-word space appears at the beginning of the first +line after the environment. + +There is now an extra command (with a very long name) available that +you can use to avoid this problem; it should be inserted as shown here: +\begin{verbatim} + \newenvironment{texteqn} + {\begin{equation} + \begin{minipage}{0.9\linewidth}} + {\end{minipage} + \end{equation} + \ignorespacesafterend} +\end{verbatim} + +This command may also have other uses. + +\subsection{Normalising spacing} + +\begin{decl} + |\normalsfcodes| +\end{decl} + +\NEWfeature{1997/06/01} +This command should be used to restore the normal settings of the +parameters that affect spacing between words, sentences, etc. + +An important use of this feature is to correct a problem, reported by +Donald Arseneau, that punctuation in page headers has always (in all +known \TeX{} formats) been potentially wrong whenever a page break +happens while a local setting of the space codes is in effect. These +space codes are changed by, for example, the command +\verb|\frenchspacing|) and the \textsf{verbatim} environment. + +It is normally given the correct definition automatically in +|\begin{document}| and so need not be explicitly set; however, if it +is explicitly made nonempty in a class file then automatic +default setting will be over-ridden. + + +\section{Upgrading \LaTeX~2.09 classes and packages} +\label{Sec:upgrade} + +This section describes the changes you may need to make when you +upgrade an existing \LaTeX{} style to a package or class but we shall +start in optimistic mode. + +Many existing style files will run with \LaTeXe{} without any +modification to the file itself. When everything is running OK, +please put a note in the newly created package or class file to record +that it runs with the new standard \LaTeX{}; then distribute it to +your users. + +\subsection{Try it first!} +\label{Sec:try-it} + +The first thing you should do is to test your style in `compatibility +mode'. The only change you need to make in order to do this is, +possibly, to change the extension of the file to |.cls|: you should +make this change only if your file was used as a main document style. +Now, without any other modifications, run \LaTeXe{} on a document that +uses your file. This assumes that you have a suitable collection of +files that tests all the functionality provided by your style file. +(If you haven't, now is the time to make one!) + +You now need to change the test document files so that they are +\LaTeXe{} documents: see \emph{\usrguide} for details of how to do +this and then try them again. You have now tried the test documents +in both \LaTeXe{} native mode and \LaTeX~2.09 compatibility mode. + +\subsection{Troubleshooting} +\label{Sec:trouble} + +If your file does not work with \LaTeXe{}, there are two likely +reasons. +\begin{itemize} +\item \LaTeX{} now has a robust, well-defined designer's interface for + selecting fonts, which is very different from the \LaTeX~2.09 + internals. +\item Your style file may have used some \LaTeX~2.09 internal commands + which have changed, or which have been removed. +\end{itemize} + +When you are debugging your file, you will probably need more +information than is normally displayed by \LaTeXe. This is achieved +by resetting the counter |errorcontextlines| from its default value of +$-1$ to a much higher value, e.g.~999. + +\subsection{Accommodating compatibility mode} + +Sometimes an existing collection of \LaTeX~2.09 documents makes it +inconvenient or impossible to abandon the old commands entirely. +If this is the case, then it is possible to accommodate both conventions +by making special provision for documents processed in compatibility +mode. + +\begin{decl} +|\if@compatibility| +\end{decl} +This switch is set when a document begins with |\documentstyle| rather +than |\documentclass|. Appropriate code can be supplied for either +condition, as follows: +\begin{verbatim} + \if@compatibility + <code emulating LaTeX 2.09 behavior> + \else + <code suitable for LaTeX2e> + \fi +\end{verbatim} + + +\subsection{Font commands} + +Some font and size commands are now defined by the document class +rather than by the \LaTeX{} kernel. If you are upgrading a +\LaTeX~2.09 document style to a class that does not load one of the +standard classes, then you will probably need to add definitions for +these commands. + +\begin{decl} + |\rm| |\sf| |\tt| |\bf| |\it| |\sl| |\sc| +\end{decl} +None of these short-form font selection commands are defined in the +\LaTeXe{} kernel. They are defined by all the standard class files. + +If you want to define them in your class file, there are several +reasonable ways to do this. + +One possible definition is: +\begin{verbatim} + \newcommand{\rm}{\rmfamily} + ... + \newcommand{\sc}{\scshape} +\end{verbatim} +This would make the font commands orthogonal; for example +|{\bf\it text}| would produce bold italic, thus: \textbf{\textit{text}}. +It will also make them produce an error if used in math mode. + +Another possible definition is: +\begin{verbatim} + \DeclareOldFontCommand{\rm}{\rmfamily}{\mathrm} + ... + \DeclareOldFontCommand{\sc}{\scshape}{\mathsc} +\end{verbatim} +This will make |\rm| act like |\rmfamily| in text mode (see above) and +it will make |\rm| select the |\mathrm| math alphabet in math mode. + +Thus |${\rm math} = X + 1$| will produce `${\rm math} = X + 1$'. + +If you do not want font selection to be orthogonal then you can +follow the standard classes and define: +\begin{verbatim} + \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} + ... + \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\mathsc} +\end{verbatim} +This means, for example, that |{\bf\it text}| will produce medium +weight (rather than bold) italic, thus: \textit{text}. + +\begin{decl} + |\normalsize| \\ + |\@normalsize| +\end{decl} +The command |\@normalsize| is retained for compatibility with +\LaTeX~2.09 packages which may have used its value; but redefining it +in a class file will have no effect since it is always reset to have +the same meaning as |\normalsize|. + +This means that classes \emph{must} now redefine |\normalsize| rather +than redefining |\@normalsize|; for example (a rather incomplete one): +\begin{verbatim} + \renewcommand{\normalsize}{\fontsize{10}{12}\selectfont} +\end{verbatim} +Note that |\normalsize| is defined by the \LaTeX{} kernel to be an +error message. + +\begin{decl} + |\tiny| |\footnotesize| |\small| |\large|\\ + |\Large| |\LARGE| |\huge| |\Huge| +\end{decl} +None of these other `standard' size-changing commands are defined in +the kernel: each needs to be defined in a class file if you need it. +They are all defined by the standard classes. + +This means you should use |\renewcommand| for |\normalsize| and +|\newcommand| for the other size-changing commands. + + +\subsection{Obsolete commands} + +Some packages will not work with \LaTeXe{}, normally because they relied +on an internal \LaTeX{} command which was never supported and has now +changed, or been removed. + +In many cases there will now be a robust, high-level means of +achieving what previously required low-level commands. Please consult +Section~\ref{Sec:commands} to see if you can now use the \LaTeXe{} +class and package writers commands. + +Also, of course, if your package or class redefined any of the kernel +commands (i.e.~those defined in the files |latex.tex|, |slitex.tex|, +|lfonts.tex|, |sfonts.tex|) then you will need to check it very +carefully against the new kernel in case the implementation has +changed or the command no longer exists in the \LaTeX2e{} kernel. + +Too many of the internal commands of \LaTeX~2.09 have been +re-implemented or removed to be able to list them all here. You must +check any that you have used or changed. + +We shall, however, list some of the more important commands which are +no longer supported. + +\begin{decl} + |\tenrm| |\elvrm| |\twlrm| \dots\\ + |\tenbf| |\elvbf| |\twlbf| \dots\\ + |\tensf| |\elvsf| |\twlsf| \dots\\ + \qquad$\vdots$ +\end{decl} +The (approximately) seventy internal commands of this form are no longer +defined. If your class or package uses them then \emph{please} +replace them with new font commands described in \emph{\fntguide}. + +For example, the command |\twlsf| should be replaced by: +\begin{verbatim} + \fontsize{12}{14}\normalfont\sffamily\selectfont +\end{verbatim} + +Another possibility is to use the |rawfonts| package, described in +\emph{\usrguide}. + +Also, remember that many of the fonts preloaded by \LaTeX~2.09 +are no longer preloaded. + +\begin{decl} + |\vpt| |\vipt| |\viipt| \dots +\end{decl} +These were the internal size-selecting commands in \LaTeX~2.09. +(They can still be used in \LaTeX~2.09 compatibility mode.) +Please use the command |\fontsize| instead: see \emph{\fntguide} for +details. + +For example, |\vpt| should be replaced by: +\begin{verbatim} + \fontsize{5}{6}\normalfont\selectfont +\end{verbatim} + +\begin{decl} + |\prm|, |\pbf|, |\ppounds|, |\pLaTeX| \dots +\end{decl} +\LaTeX~2.09 used several commands beginning with |\p| in order to +provide `protected' commands. For example, |\LaTeX| was defined to be +|\protect\pLaTeX|, and |\pLaTeX| was defined to produce the \LaTeX{} +logo. This made |\LaTeX| robust, even though |\pLaTeX| was not. + +These commands have now been reimplemented using +|\DeclareRobustCommand| +(described in Section~\ref{Sec:commands.define}). +If your package redefined one of the |\p|-commands then you must +remove the redefinition and use |\DeclareRobustCommand| to redefine the +non-|\p| command. + +\begin{decl} +|\footheight|\\ +|\@maxsep|\\ +|\@dblmaxsep| +\end{decl} +These parameters are not used by \LaTeXe{} so they have been removed, +except in \LaTeX~2.09 compatibility mode. Classes should no longer +set them. + +\begin{thebibliography}{1} + +\bibitem{A-W:DEK91} +Donald~E. Knuth. +\newblock {\em The \TeX book}. +\newblock Addison-Wesley, Reading, Massachusetts, 1986. +\newblock Revised to cover \TeX3, 1991. + +\bibitem{A-W:LLa94} +Leslie Lamport. +\newblock {\em {\LaTeX:} A Document Preparation System}. +\newblock Addison-Wesley, Reading, Massachusetts, second edition, 1994. + +\bibitem{A-W:MG2004} +Frank Mittelbach and Michel Goossens. +\newblock {\em The {\LaTeX} Companion second edition}. +\newblock With Johannes Braams, David Carlisle, and Chris Rowley. +\newblock Addison-Wesley, Reading, Massachusetts, 2004. + +\end{thebibliography} + +\newpage +\thispagestyle{empty} + +\section*{\LaTeXe{} Summary sheet: updating old styles} + +Section references below are to \emph{\clsguide}. + +\begin{enumerate} + +\item Should it become a class or a package? + See Section~\ref{Sec:classorpkg} for how to answer this question. + +\item If it uses another style file, then you will need to obtain an + updated version of this other file. Look at Section~\ref{Sec:loading} + for information on how to load other class and package files. + +\item Try it: see Section~\ref{Sec:try-it}. + +\item It worked? Excellent, but there are probably still some things + you should change in order to make your file into a well-structured + \LaTeXe{} file that is both robust and portable. So you should now + read Section~\ref{Sec:writing}, especially~\ref{Sec:general}. You + will also find some useful examples in Section~\ref{Sec:structure}. + + If your file sets up new fonts, font-changing commands or symbols, + you should also read \emph{\fntguide}. + +\item It did not work? There are three possibilities here: + \begin{itemize} + \item error messages are produced whilst reading your file; + \item error messages are produced whilst processing test documents; + \item there are no errors but the output is not as it should be. + \end{itemize} + Don't forget to check carefully for this last possibility. + + If you have got to this stage then you will need to read + Section~\ref{Sec:upgrade} to find the solutions that will make your + file work. +\end{enumerate} + +\end{document} + diff --git a/Master/texmf-dist/source/latex/base/cmextra.ins b/Master/texmf-dist/source/latex/base/cmextra.ins index 88df1a1a397..9a7f60e3b1b 100644 --- a/Master/texmf-dist/source/latex/base/cmextra.ins +++ b/Master/texmf-dist/source/latex/base/cmextra.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without diff --git a/Master/texmf-dist/source/latex/base/cmfonts.fdd b/Master/texmf-dist/source/latex/base/cmfonts.fdd index f493f30c724..2da915d97fb 100644 --- a/Master/texmf-dist/source/latex/base/cmfonts.fdd +++ b/Master/texmf-dist/source/latex/base/cmfonts.fdd @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/cmfonts.ins b/Master/texmf-dist/source/latex/base/cmfonts.ins index 8c06ef303f1..5c545bf4ecb 100644 --- a/Master/texmf-dist/source/latex/base/cmfonts.ins +++ b/Master/texmf-dist/source/latex/base/cmfonts.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without diff --git a/Master/texmf-dist/source/latex/base/cyrguide.tex b/Master/texmf-dist/source/latex/base/cyrguide.tex new file mode 100644 index 00000000000..2d4274806b7 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/cyrguide.tex @@ -0,0 +1,398 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\documentclass{ltxguide}[1999/02/28] + +\title{Cyrillic languages support in \LaTeX} + +\author{\copyright~Copyright 1998--1999,\\ Vladimir Volovich, + Werner Lemberg and \LaTeX3 Project Team.\\ All rights reserved.} + +\date{12 March 1999} + +\begin{document} + +\maketitle +\tableofcontents + +\begin{abstract} + This document contains basic information on the Cyrillic setup for + \LaTeX{}: how to get the fonts, how to set them up, how to use + the interface, its interaction with \babel{}, etc. This is only a first + draft of the document and it will probably be modified in future; so + please send in comments on it via the \texttt{latexbug} system + (see below). +\end{abstract} + + +\section{Introduction} + +Most Latin-based European languages were supported in \LaTeX{} by +introducing the~|T1|~font encoding and by using the \textsf{fontenc} +and \textsf{inputenc} packages; these use only standard \TeX{} means +to support any \mbox{8-bit} input encoding and this one standard font +encoding. The restriction to a single font encoding guarantees that +multiple languages can happily coexist in one document (\eg +hyphenation will be correct for all languages). + +Starting with the December~1998 Release, \LaTeX{} finally supports +Cyrillic languages. This support is based on the new standard +Cyrillic \TeX{} font encodings---|T2A|, |T2B|, |T2C|, and~|X2|. The +first three of these satisfy some basic requirements for +\LaTeX{}~|T*|~encodings, and thus can be used in multi-lingual documents +with other languages based on standard font encodings. + +The reason why we need four different Cyrillic font encodings is that +these font encodings support \emph{all} the Cyrillic languages that +have been used during the twentieth century (see +Section~\ref{fontencs})! The number of Cyrillic glyphs is large, so +they cannot be represented with 128~character slots; the other (lower) +128~slots are reserved for Latin letters and other invariant symbols +that are needed for the encoding to be a conformant +\LaTeX{}~\texttt{T}~encoding. + +There are some glyphs in the |T2*|~encodings which do not yet have +associated characters in \emph{Unicode}, the world-wide character +standard. Also, one more font encoding, |T2D|,~is planned for a +forthcoming release of \LaTeX{}. A lot of Cyrillic input encodings +are already supported (see Section~\ref{inputencs}), and additional +encodings could be added easily. + + +\subsection{Acknowledgments} +\label{sec:acks} + +The work on |T2*|~encodings was carried out by the T2~Team, led by +Alexander Berdnikov (other members are Mikhail Kolodin and Andrew +Janishewskii). The LH~fonts were produced by Olga Lapko (with +A.~Khodulev). The \textsf{T2} bundle and \textsf{ruhyphen} package +were written by Werner Lemberg and Vladimir Volovich (except that the +concrete hyphenation patterns which are part of \textsf{ruhyphen} came +from individual authors). The support for the Ukrainian language was +prepared by Andrij Shvaika. + + +\section{Installation} + +The \textsf{fontenc} and \textsf{inputenc} packages are installed +automatically in every base \LaTeX{} distribution. + +All the necessary extra files to use with these packages for Cyrillic +are in the \textsf{cyrillic} bundle, which at present contains the +following: four font encoding definition files (|t2aenc.def|, +|t2benc.def|, |t2cenc.def|, |x2enc.def|); several input encoding +definition files (all the other |*.def| files), and font definition +files (|*.fd|). +The installation of these is described here. + +\subsection{Fonts} + +The default font families in \LaTeX{} are the Computer Modern +families, namely the CM~fonts (|OT1|~encoded) and the EC~fonts +(|T1|~encoded). The LH~fonts, which are now available, provide +Computer Modern fonts for all Cyrillic font encodings. They are +designed to be compatible with the EC~fonts, and they provide the same +font shapes and sizes; they are available at |CTAN:fonts/cyrillic/lh| +(the latest version is 3.20). The installation instructions for the +fonts are in the file |INSTALL| in the font distribution. + +Other fonts, including Type~1 fonts, can also be used, provided that +their encoding (for \TeX{}) is \mbox{|T2|-compatible}. Some +ready-to-use packages supporting such fonts are also available, \eg at +\URL{ftp://ftp.vsu.ru/pub/tex} (they should soon be on \ctan). Currently, +you will find two packages there: \textsf{PsCyr}, which contains some +freely distributable Cyrillic Type~1 fonts with support for \LaTeX{}; +and \textsf{c1fonts}, which contains virtual fonts similar to the +\textsf{AE}~fonts package using the BlueSky and BaKoMa fonts +available from \ctan{} (see the |README| file in that package for +detailed information). Further font packages are expected soon. + +\subsection{Hyphenation patterns} + +You can find a collection of hyphenation patterns for the Russian +language in the \textsf{ruhyphen} package at +|CTAN:language/hyphenation/ruhyphen|. These patterns support the +|T2*|~encodings, as well as other popular font encodings used for +Russian typesetting (including the Omega internal encoding). +Patterns for other Cyrillic languages should be adapted to work with +the |T2*|~encodings. + +\subsection{\babel{} support for Russian and Ukrainian} +\label{bblrus} + +Version~3.6k of \babel{} includes support for the |T2*|~encodings and +for typesetting both Russian and Ukrainian texts using the Cyrillic +letters. The temporary fontencoding |LWN|, which was used in earlier +releases of \babel{}, will be withdrawn in the near future and replaced +by the |OT2| encoding. + +\subsection{Getting pre-built packages} + +Many of the major \TeX{} distributions, such as te\TeX{}, fp\TeX{} and +\TeX{}live, contain (or soon will) everything that is needed, +including the LH~fonts, \textsf{ruhyphen} and the latest version of +\babel{}. We hope that all \TeX{} distributions will soon include all +of these, so that the chances are that you will not need to install +this by yourself (but it is not difficult). + +If you are using em\TeX, Mik\TeX, or fp\TeX, you +can download the \textsf{ruemtex} package from +\URL{ftp://ftp.vsu.ru/pub/tex}. + +\section{Usage} + +Support for Cyrillic is based on these standard \LaTeX{} mechanisms: +the \textsf{fontenc} and \textsf{inputenc} packages (and on \babel{}). +Thus the basic principles for its use are similar to those for other +European languages: you simply add, to your document preamble, lines +like the following. + +\begin{verbatim} +\usepackage[T2A]{fontenc} +\usepackage[koi8-r]{inputenc} +\end{verbatim} + +Here you can put any desired input encoding instead of +\mbox{\texttt{koi8-r}}: for example, it would be \texttt{cp866} if you are +using a MS-DOS text editor with this Cyrillic code page to prepare your +documents, or \texttt{cp1251} if you are a MS~Windows user with Cyrillic +support. A full list of the available Cyrillic encodings can be found in +Section~\ref{inputencs} and in the file |cyinpenc.dtx|. + +Documents are, naturally, not restricted to a single font encoding; +this is essential for multi-lingual journals or documents. Such +changes can be made by using the |\fontencoding| command as part of a +font-change. However, it is best to access these font encodings via a +higher-level interface. + +Since such changes are often closely related to other +language-dependent settings, it is often sensible to use the \babel{} +system, which provides further useful `localisation' and standardised +multi-lingual interfaces (for further details, see +Section~\ref{bblrus}). Then you can use lines like the following in +your document: + +\begin{verbatim} +\usepackage[koi8-r]{inputenc} +\usepackage[russian]{babel} +\end{verbatim} + +This will automatically choose the default font encoding for Russian, +which is |T2A|, if available. Documentation of the complete set of +font-encoding selection rules can be found in |cyrillic.dtx| which is +part of |rusbabel|. + +These \LaTeX{} interfaces are very convenient because they make your +documents completely portable, being based solely on standard \TeX{} +features. This will mean that your documents can be processed on any +\TeX{} system without any need for re-encoding to the `native' +encoding used on each platform; this is because the encoding of the +document is specified in the document itself. + +Moreover, if necessary, more than one input encoding can be used +within a document; this could be useful if, for example, you need to +combine articles prepared by authors on different machines. Each part +of the document is then identified by a |\inputencoding| command, +which can therefore only be used between paragraphs. + +Please note that you must always use the two standard \LaTeX{} +commands, |\MakeUppercase| and |\MakeLowercase| to produce uppercase +or lowercase text in your documents. This is because |\uppercase| and +|\lowercase| will not work at all for Cyrillic (note that these latter +two commands are not, and never have been, available for use directly +in \LaTeX{} documents). + + +\section{Font encodings for Cyrillic languages} +\label{fontencs} + +The Cyrillic font encodings support the following languages. Note +that some languages can be properly typeset with more than one +encoding. + +\begin{itemize} +\raggedright +\item[|T2A|:] + Abaza, Avar, Agul, Adyghei, Azerbaijani, Altai, Balkar, Bashkir, + Bulgarian, Buryat, Byelorussian, Gagauz, Dargin, Dungan, Ingush, + Kabardino-Cherkess, Kazakh, Kalmyk, Karakalpak, Karachaevskii, + Karelian, Kirghiz, Komi-Zyrian, Komi-Permyak, Kumyk, Lak, Lezghin, + Macedonian, Mari-Mountain, Mari-Valley, Moldavian, Mongolian, + Mordvin-Moksha, Mordvin-Erzya, Nogai, Oroch, Osetin, Russian, Rutul, + Serbian, Tabasaran, Tadzhik, Tatar, Tati, Teleut, Tofalar, Tuva, + Turkmen, Udmurt, Uzbek, Ukrainian, Hanty-Obskii, Hanty-Surgut, + Gipsi, Chechen, Chuvash, Crimean-Tatar. +\item[|T2B|:] + Abaza, Avar, Agul, Adyghei, Aleut, Altai, Balkar, Byelorussian, + Bulgarian, Buryat, Gagauz, Dargin, Dolgan, Dungan, Ingush, Itelmen, + Kabardino-Cherkess, Kalmyk, Karakalpak, Karachaevskii, Karelian, + Ketskii, Kirghiz, Komi-Zyrian, Komi-Permyak, Koryak, Kumyk, Kurdian, + Lak, Lezghin, Mansi, Mari-Valley, Moldavian, Mongolian, + Mordvin-Moksha, Mordvin-Erzya, Nanai, Nganasan, Negidal, Nenets, + Nivh, Nogai, Oroch, Russian, Rutul, Selkup, Tabasaran, Tadzhik, + Tatar, Tati, Teleut, Tofalar, Tuva, Turkmen, Udyghei, Uigur, Ulch, + Khakass, Hanty-Vahovskii, Hanty-Kazymskii, Hanty-Obskii, + Hanty-Surgut, Hanty-Shurysharskii, Gipsi, Chechen, Chukcha, Shor, + Evenk, Even, Enets, Eskimo, Yukagir, Crimean Tatar, Yakut. +\item[|T2C|:] + Abkhazian, Bulgarian, Gagauz, Karelian, Komi-Zyrian, Komi-Permyak, + Kumyk, Mansi, Moldavian, Mordvin-Moksha, Mordvin-Erzya, Nanai, + Orok (Uilta), Negidal, Nogai, Oroch, Russian, Saam, Old-Bulgarian, + Old-Russian, Tati, Teleut, Hanty-Obskii, Hanty-Surgut, Evenk, + Crimean Tatar. +\end{itemize} + +The |X2|~encoding was designed to support all the above languages. +Its name does not start with |T| because, for example, it contains no +Latin letters (it is purely a Cyrillic glyph container); it therefore +cannot be used in mixed-script documents along with the other |T*| +encodings. Please consult Section~6.4 \textit{Naming conventions} of +the file |fntguide.tex| in the base \LaTeX{} distribution for details +of the differences between \LaTeX{} font encodings and how they are +named. + +There are two other \LaTeX{} Cyrillic font encodings, |OT2| and |LCY|, +that are not included in the base \LaTeX{} distribution. The first is +a \mbox{7-bit} encoding (hence the |O|) developed by the AMS; it is +useful for typesetting relatively small fragments of text in Cyrillic, +using a Latin transliteration scheme. The other, |LCY|, is an +\mbox{8-bit} Cyrillic encoding which is not compatible with the +requirements for \LaTeX{} |T*|~encodings (hence the |L|); thus it is not +suitable for typesetting multi-lingual documents, but it can be used in +Plain \TeX{}-based macro packages because it is an extension of |OT1|. +These two encodings are supported by \babel{} and by \textsf{ot2cyr}. + + +\section{Input encodings} +\label{inputencs} + +Several Cyrillic code-pages are widely used. Currently, \LaTeX{} +contains support for 20~Cyrillic input encodings (some of which are +variants of each other). + +\begin{itemize} + +\item |cp855| --- the standard \mbox{MS-DOS} Cyrillic code-page. + +\item |cp866| --- the standard \mbox{MS-DOS} Russian code-page. + Several code-pages very similar to this are also supported + (the differences are all in the range 242--254). + \begin{itemize} + \item |cp866av| -- the `Cyrillic Alternative' code-page (an + alternative variant of cp866); + \item |cp866mav| -- the `Modified Alternative Variant'; + \item |cp866nav| -- the `New Alternative Variant'; + \item |cp866tat| -- an experimental Tatarian code-page. + \end{itemize} + +\item |cp1251| --- the standard MS Windows Cyrillic code-page. + +\item \mbox{\texttt{koi8-r}} --- a standard Cyrillic code-page widely + used in UNIX-like systems for Russian language support that is + specified in RFC~1489. The situation with \mbox{\texttt{koi8-r}} is + somewhat similar to that for |cp866|: there are several similar + code-pages which coincide for all Russian letters but add some other + Cyrillic letters. The following are supported: + \begin{itemize} + \item \mbox{\texttt{koi8-u}} -- for Ukrainian; + \item \mbox{\texttt{koi8-ru}} -- this is described in a draft RFC + document specifying a widely used character set for mail and news + exchange in the Ukrainian internet community, as well as for + presenting WWW information resources in the Ukrainian language; + \item |isoir111| -- the \mbox{ISO-IR-111 ECMA} Cyrillic Code Page. + \end{itemize} + +\item |iso88595| --- the \mbox{ISO 8859-5} Cyrillic code-page (also called + \mbox{ISO-IR-144}). + +\item |maccyr| --- the Apple Macintosh Cyrillic code-page (also known + as Microsoft cp10007) and |macukr|, the Apple Macintosh Ukrainian + code-page, very similar to the Cyrillic code-page. + +\item The Mongolian code-pages: |ctt| |dbk| |mnk| |mos| |ncc| |mls|. + These code-pages were taken from Oliver Corff's `Mon\TeX' package + (available at |CTAN:language/mongolian/montex|). Since the |T2*| + encodings support the Mongolian Cyrillic script, it is convenient to + have support for Mongolian input encodings as well. Pointers to + documentation for these code-pages will be much appreciated. + +\end{itemize} + + +\section{Reporting bugs} + +In case you find a bug and want to report it, please follow the +guidelines given in the file |bugs.txt| in the base \LaTeX{} +distributions. Note that there is a category specifically for +reporting any bugs that occur only when using Cyrillic fonts or +support packages. + + +\section{Miscellanea in the \textsf{T2} bundle} +\label{t2m} + +The \textsf{T2}~bundle at |CTAN:macros/latex/contrib/supported/t2| +contains some other useful files, including support for Plain +\TeX{}-based macro packages, support for Bib\TeX{} and MakeIndex (see +also the \textsf{xindy} program and package---highly recommended for +making indices with Cyrillic), support for the \textsf{fontinst} +package, mapping tables relating these Cyrillic font encodings (and +input encodings) to the Unicode character names and slots (these are +in the subdirectory |enc-maps|), and more! + +To produce documented source listings of the \textsf{T2}~package, run +\LaTeX{} on the |*.dtx| and |*.fdd| files therein. + +When typesetting Cyrillic texts, there is a tradition of using +Cyrillic letters (in some situations) within math formul\ae, in +exactly the same way as most of the world uses Latin letters. +By default this does not work, because symbols declared with +|\DeclareTextSymbol| may not be used in math. + +If you need within math to `transparently' typeset glyphs declared in +font encoding definition files, then you could try using the +experimental \textsf{mathtext} package, which is also in the +\textsf{T2}~bundle. Note that this package uses up at least one +additional math alphabet per font encoding. For this and other +reasons, The \LaTeX3 Project Team considers that this experimental +extension to \LaTeX{}'s glyph-handling mechanisms should be used with +caution; but please try it out and send us your opinions and ideas. +Note that it is not included in the core of \LaTeX{} because both the +coding and the interfaces are likely to change at some point in the +future. + +Finally, here are some pointers to further information: + +\begin{quote} + \URL{http://www.cemi.rssi.ru/cyrtug}\\ + \URL{http://xtalk.price.ru/tex} +\end{quote} + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/doc.dtx b/Master/texmf-dist/source/latex/base/doc.dtx index cb658e0c800..582fac5ad33 100644 --- a/Master/texmf-dist/source/latex/base/doc.dtx +++ b/Master/texmf-dist/source/latex/base/doc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -35,7 +35,7 @@ %<+package|shortvrb>\NeedsTeXFormat{LaTeX2e}[1994/12/01] %<+package> \ProvidesPackage{doc} %<+shortvrb>\ProvidesPackage{shortvrb} -%<+package|shortvrb> [2004/02/09 v2.1b +%<+package|shortvrb> [2006/02/02 v2.1d %<+package|shortvrb> Standard LaTeX documentation package (FMi)] %\catcode`\<=12 % @@ -959,6 +959,8 @@ % \textsf{makeindex} program directly (on our MicroVAX) but the final % result was worth the trouble.} % +% \changes{v2.1d}{2006/02/02}{Corrected description of \cs{changes} +% macro.} % \DescribeMacro\changes % To maintain a change history within the file, the |\changes| % command may be placed amongst the description part of the changed @@ -969,15 +971,19 @@ % \end{quote} % The changes may be used to produce an auxiliary file (\LaTeX's % |\glossary| mechanism is used for this) which may be printed -% after suitable formatting. The |\changes| macro encloses the -% \meta{date} in parentheses and appends the \meta{text} to form the +% after suitable formatting. The |\changes| macro generates the % printed entry in such a change history; because old % versions\footnote{Before 2.6.} of the \textsf{makeindex} % program limit such fields to 64 characters, care should be taken -% not to exceed this limit when describing the change. When +% not to exceed this limit when describing the change. The actual +% entry consists of the \meta{version}, the |\actualchar|, the current +% macro name, a colon, the |\levelchar|, and, finally, the \meta{text}. +% The result is a glossaryentry for the \meta{version}, with the name of +% the current macro as subitem. Outside the |macro| environment, the +% text |\generalname| is used instead of the macro name. When % referring to macros in change descriptions it is conventional to use -% "`"\meta{macroname} rather than attempting to format it properly and -% using up valuable characters in the entry with old \textsf{makeindex} +% |\cs{|\meta{macroname}|}| rather than attempting to format it properly +% and using up valuable characters in the entry with old \textsf{makeindex} % versions. % % \changes{v1.7a}{1992/02/26}{Description of \cs{RecordChanges} etc. @@ -3316,7 +3322,7 @@ % by using \cs{special@index} not \cs{index} (PR/2928).} % \changes{v2.0e}{1998/12/28}{Use \cs{string}, not \cs{protect} in argument to % \cs{special@index}.} -% \changes{v2.1b}{2004/02/09}{environment names incorrectly sorted in +% \changes{v2.1c}{2004/07/23}{environment names incorrectly sorted in % index (pr/3615)} % \begin{macrocode} \def\SpecialMainEnvIndex#1{\@bsphack\special@index{% @@ -3363,7 +3369,7 @@ % \changes{v2.1b}{2004/02/09}{environment names incorrectly sorted in % index (pr/3615)} % \begin{macrocode} - \index{environments:#1\actualchar\levelchar{\protect\ttfamily#1}\encapchar + \index{environments:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar usage}\@esphack} % \end{macrocode} % Because both entries correspond to `descriptions' of the @@ -3796,7 +3802,7 @@ % To provide a change history log, the |\changes| command has % been introduced. This takes three arguments, respectively, the % version number of the file, the date of the change, and some detail -% regarding what change has been made. The first of these arguments +% regarding what change has been made. The second of these arguments % is otherwise ignored, but the others are written out and may be used % to generate a history of changes, to be printed at the end of the % document. However, note that older versions of Chen's standard diff --git a/Master/texmf-dist/source/latex/base/docstrip.dtx b/Master/texmf-dist/source/latex/base/docstrip.dtx index 4f6c7b61bfb..bf5f49ecf4e 100644 --- a/Master/texmf-dist/source/latex/base/docstrip.dtx +++ b/Master/texmf-dist/source/latex/base/docstrip.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -29,10 +29,10 @@ \catcode`\{=1 \catcode`\}=2 \def\filename{docstrip.dtx} -\def\fileversion{2.5c} -\def\filedate{2003/09/18} +\def\fileversion{2.5d} +\def\filedate{2005/07/29} \def\docdate {1999/03/31} -% \CheckSum{2436} +% \CheckSum{2439} %% \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 @@ -1875,6 +1875,16 @@ Z \iden{\def\@xifnch} {\futurelet\reserved@c\@ifnch} % \end{macrocode} % \end{macro} +% \begin{macro}{\kernel@ifnextchar} +% \changes{v2.5d}{2005/07/29}{Added macro} +% The 2003/12/01 release of \LaTeX\ incorporated this macro to avoid +% problems with \texttt{amsmath} but this also means that we have to +% perform the same trick here when people use \LaTeX\ on a +% installation file containing |\ProvidesFile|. +% \begin{macrocode} +\let\kernel@ifnextchar\@ifnextchar +% \end{macrocode} +% \end{macro} % % % \subsection{The evaluation of boolean expressions} diff --git a/Master/texmf-dist/source/latex/base/docstrip.ins b/Master/texmf-dist/source/latex/base/docstrip.ins index 90239d90df0..b6ce9689e52 100644 --- a/Master/texmf-dist/source/latex/base/docstrip.ins +++ b/Master/texmf-dist/source/latex/base/docstrip.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -44,7 +44,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -52,12 +52,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". @@ -89,16 +89,17 @@ extension .ins) which are part of the distribution. } +\generate{\file{ltxdoc.cls}{\from{ltxdoc.dtx}{class}} + } + \generate{\file{doc.sty}{\from{doc.dtx}{package}} \file{shortvrb.sty}{\from{doc.dtx}{shortvrb}} \usepostamble\istpost + \usedir{makeindex/base} \file{gind.ist}{\from{doc.dtx}{gind}} \file{gglo.ist}{\from{doc.dtx}{gglo}} } -\generate{\file{ltxdoc.cls}{\from{ltxdoc.dtx}{class}} - } - \ifToplevel{ \Msg{***********************************************************} \Msg{*} diff --git a/Master/texmf-dist/source/latex/base/ec.ins b/Master/texmf-dist/source/latex/base/ec.ins index 58235d5d6fc..0d06c5a8734 100644 --- a/Master/texmf-dist/source/latex/base/ec.ins +++ b/Master/texmf-dist/source/latex/base/ec.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without diff --git a/Master/texmf-dist/source/latex/base/encguide.tex b/Master/texmf-dist/source/latex/base/encguide.tex new file mode 100644 index 00000000000..32fc15807ec --- /dev/null +++ b/Master/texmf-dist/source/latex/base/encguide.tex @@ -0,0 +1,1406 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% $Id: encguide.tex,v 13.13 2006/01/18 23:29:23 robin Exp $ +% + + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\documentclass{ltxguide}[1994/11/20] + +\usepackage[T1]{fontenc} +\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{} +\usepackage{textcomp} +\usepackage{url} +\usepackage{mflogo} + +\addtolength\textheight{6\baselineskip} +\addtolength\topmargin{-2\baselineskip} + + +\newcommand\ttverb[1]{\texttt{\string#1}} + + +% for encodings +\providecommand{\Enc}[1]{\texttt{#1}} + +% for packages +\providecommand{\Pkg}[1]{% + \textsf{#1}} + +% for files +\providecommand{\File}[1]{% + \texttt{#1}} + +% let's have meta values too +\providecommand{\meta}[1]{% + \ensuremath{\langle}\emph{#1}\ensuremath{\rangle}} + +\usepackage{tabularx} + +% eine Umgebung zur Darstellung von Kodierungen +% +% Argumente: +% #1: Name in LaTeX (z.B. OT1) +% #2: Name der Kodierung (z.B. TeX text) +% #3: Name des Autors (z.B. Don Knuth) +% #4: Bereich der benützten Glyphindizes +% #5: variable Positionen +% #6: Beispielzeichensatz +% #7: Referenz +% +% XXX add code to handle more than a single font example (e.g., larm1000, +% lbrm1000, and lcrm1000). +% +\newenvironment{encodinginfo}[7]% + {\noindent + \begin{tabularx}{\linewidth}{@{}l>{\raggedright\let\\\tabularnewline}X}% + \LaTeX{} name: & \texttt{#1}\\% + Public name: & #2\\% + Author: & #3\\% + Glyph slots used: & #4\\% + Variable slots: & #5\\% + Font example: & \def\@tempa{#6}\ifx\@tempa\@empty---% + \else\texttt{#6}\referenceftable{#6}\fi\\% + Further reference: & #7% + \end{tabularx}% + \par\nobreak + \vspace*{3pt}% + \quote + }% + {\endquote + \vspace{6pt}} + +\makeatletter +\def\referenceftable#1{ + \@ifundefined{r@fonttable:#1}% + \relax + {;\space encoding table on page~\pageref{fonttable:#1}}% +} + +% font table macros mainly lifted from manmac.tex +\def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} +\def\hex#1{\hbox{\rm\H{}\tt#1}} + +\def\oddline#1{\cr\noalign{\nointerlineskip} + \multispan{19}\hrulefill& + \setbox0=\hbox{\lower 2.3pt\hbox{\hex{#1x}}}\smash{\box0}\cr + \noalign{\nointerlineskip}} +\def\evenline{\cr\noalign{\hrule}} +\def\chartstrut{\lower4.5pt\vbox to14pt{}} +\def\beginchart#1#2{$$\global\count@=0 #1 + \halign to\hsize\bgroup + \chartstrut##\tabskip0pt plus10pt& + &\hfil##\hfil&\vrule##\cr + \lower6.5pt\null + &&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline} +\def\endchart{\raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B& + &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$} +\def\:{\setbox0=\hbox{\noboundary\char\count@\noboundary}% + \ifdim\ht0>7.5pt\reposition + \else\ifdim\dp0>2.5pt\reposition\fi\fi + \box0\global\advance\count@ by1 } +\def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}} +\def\normalchart{% + &\oct{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline0 + &\oct{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline1 + &\oct{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline2 + &\oct{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline3 + &\oct{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline4 + &\oct{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline5 + &\oct{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline6 + &\oct{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline7 + &\oct{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + \top} + +\def\notophalf{} +\def\tophalf{% +%\noalign{\vskip 5pt\hrule} + &\oct{20x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline8 + &\oct{21x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{22x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline9 + &\oct{23x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{24x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline A + &\oct{25x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{26x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline B + &\oct{27x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{30x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline C + &\oct{31x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{32x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline D + &\oct{33x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{34x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline E + &\oct{35x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\oct{36x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline F + &\oct{37x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline} + +\def\ftable#1#2{% + \batchmode + \font\X=#1% + \errorstopmode + \ifx\X\nullfont + \@warning{Font #1 not found, table omitted} + \else + \count@="80 + \setbox0=\hbox{\X + \loop\char\count@\advance\count@ by1 \ifnum\count@<"100 + \repeat}% + \ifdim\wd0>0pt \let\top\tophalf\else\let\top\notophalf\fi + \beginchart\X{\hfill\llap{\textbf{#1, \large#2}\label{fonttable:#1}}}\normalchart + \endchart\par\vfill + \fi} +\makeatother + + +\setcounter{tocdepth}{3} + +\title{\LaTeX{} font encodings} + +\author{Frank Mittelbach \and Robin + Fairbairns \and Werner Lemberg \and \LaTeX3 Project Team.} + +\date{\copyright~Copyright 1995--1997, 2005, 2006 \\[5pt] 6 January 2006} + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +This document explains the ideas that underpin \LaTeX{} font +encodings and the constraints that apply when defining a new encoding; it +also lists the encodings that have already been defined. + +\subsection{Encodings in \TeX{}} + +\TeX{} (the program) implicitly recognises three sorts of encoding, +and all are (in a sense) discussed in the \TeX{}book~\cite{A-W:DKn86}: +\begin{itemize} +\item[1.] The input encoding, which specifies the meanings of characters + in files presented to \TeX{} for processing. The \TeX{}book + suggests that `your version of \TeX{} will recognise the characters + you type on your keyboard' (\TeX{} the program has provision for + static translations of input characters). +\end{itemize} +Such direct use of \TeX{}'s facilities is not the way modern +\LaTeX{} (or indeed any other \TeX{} macro package) is likely to deal +with input encodings. This document does not address the topic of +input encodings; the interested reader should examine the \LaTeX{} +base package \Pkg{inputenc} \cite[sec.~7.5.2, p.~357]{A-W:MG2004}. +\begin{itemize} +\item[2.] The token stream that \TeX{} processes internally. This stream + of \TeX{}'s consciousness is discussed in great detail in the + \TeX{}book. +\end{itemize} +Again, this document does not address the topic. \LaTeX's internal +character representation (\textsc{licr}) is well discussed in +\cite[sec.~7.11.2, p.~442]{A-W:MG2004}. +\begin{itemize} +\item[3.] The font encoding---i.e., the mapping of character codes to + glyphs in the fonts that are used to typeset \TeX{}'s output. + Again, a set of font encodings is enumerated in the \TeX{}book, but + that set has proved inadequate to the needs of modern multilingual + use of \LaTeX. +\end{itemize} +This document explains \emph{why} Knuth's original set of encodings is +inadequate to modern conditions, and discusses the issues that +surround the design and definition of new font encodings. + +Font encodings are important for more than their r\^{o}le in mapping the +glyphs of the fonts to be used for typesetting: their glyph tables are +also the context in which \TeX{}'s hyphenation algorithm operates. +There are constraints imposed by \TeX{} that affect the way in which +new font encodings, for use in a multi-lingual environment, may be +structured (see section~\ref{sec:restrictions} for details). + +\subsection{The history of \TeX{} font encodings} + +Little attention was paid to font encodings prior to the arrival of +\TeX{}\,3. Up to that time, one used Donald Knuth's fonts (the +Computer Modern family, using the encodings we now refer to as \Enc{OT1} and +the \Enc{OM} series), or one was on one's own. + +The Computer Modern text encoding raises problems in unmodified +\TeX{}, because hyphenation cannot break words containing +\verb"\accent" commands. Even in those Western European languages for +which the \Enc{OT1} encoding has symbols for the necessary +\verb"\accent"-based diacritics, this shortcoming ruins typesetting of +running text. + +With the advent of \TeX{}\,3, with its ability to switch between +hyphenation pattern sets, it was clear that the situation could not +continue. Thus a group at the TUG Annual General Meeting in Cork, +Ireland, specified a uniform encoding for 256-glyph fonts, that +contains accented letters and non-\textsc{ascii} letters necessary to +express most Western European languages (and some Eastern European ones) +without recourse to the \verb"\accent" command. + +This ``Cork'' encoding has since been realised in a series of fonts +designed with Metafont, in at least one font series that is available +both in Adobe Type 1 format and in OpenType format, % viz., Latin Modern +and in a number of virtual-font mappings of other font series. + +Since the time of the Cork meeting, much effort has been devoted to +the design of encodings for text fonts to use with \TeX{}, and the +Cork encoding influenced the design of many such encodings. + +Encodings for mathematical fonts have, in contrast, changed little +since Knuth's contributions. A TUG Technical Working Group was +established at the Cork meeting, whose aim was to define a set of +256-glyph encodings to regularise and extend Knuth's originals, using +ideas from several other fonts that had appeared since, and from the +known needs of researchers in mathematics and the mathematical sciences. + +Independently, a first proposal (the so-called \emph{Aston proposal}) was worked +out by Justin Ziegler together with Frank Mittelbach and other members of the +\LaTeX3 project team~\cite{ziegler}. A first implementation of +this propsal was realized by Matthias Clasen und Ulrik +Vieth~\cite{clasen,clasen-vieth}. + +However, the slow progress of these Mathematical encodings has been +overtaken by the addition (in the last decade or so) of a large number +of mathematical symbols to Unicode~\cite{beeton}; one can expect +further changes so that new public mathematical font encodings will +most likely be delayed still further. + + + +\subsection{Further information} + +For a general introduction to \LaTeX, including the new features of +\LaTeXe, you should read \emph{\LaTeXbook}, +Leslie Lamport, Addison Wesley, 2nd~ed, 1994. + +A more detailed description of the new features of \LaTeX, including an +overview of more than 200 packages and nearly 1000 ready to run examples, is +to be found in \emph{\LaTeXcomp{} second edition} by Frank Mittelbach and +Michel Goossens~\cite{A-W:MG2004}. + +The \LaTeX{} project sponsored a report on Mathematical % spelt out in full +font encodings, which +is worth reading for its insight into the problems of defining the way +in which math is used: see~\cite{ziegler,clasen,clasen-vieth}. + +The \LaTeX{} font selection scheme is based on \TeX, which is described +by its developer in \emph{The \TeX book}, Donald E.~Knuth, Addison +Wesley, 1986, revised in 1991 to include the features of \TeX~3. + +For more information about \TeX{} and \LaTeX, please contact your local +\TeX{} Users Group, or the international \TeX{} Users Group +(\url{http://www.tug.org}). + + + +\section{Existing font encodings} + +This section lists the encodings currently assigned; for each +encoding, we list the registered (\LaTeX{}) name, the assigned purpose +of the encoding, and the author. Further details may list the code +positions used in the encoding, the \emph{variable slots} (see below), +an example font (for which a listing will be provided later in the +document if the relevant fonts are present), and a source for further +reference. + +While the characteristic feature of an encoding is that each font +encoded according to the encoding should have the same glyph set, +there are some encodings (notably \Enc{OT1} and its descendants) in +which a few glyph code slots differ in their contents in different +fonts. + +\subsection{Naming conventions} + +Names for encoding schemes are strings of up to three letters (all +upper case) plus digits. + +The \LaTeX3 project reserves the use of encoding names starting with the +following letters: |T| (standard 256-long text encodings), |TS| +(symbols that are designed to extend a corresponding |T| encoding), +|X| (text encodings that do not conform to the strict requirements for +|T| encodings), |M| (standard 256-long mathematical encodings), |S| (other +symbol encodings), |A| (other special applications), |OT| (standard +128-long text encodings), and |OM| (standard 128-long mathematical encodings). + +Please do not use the above starting letters for non-portable +encodings. If new standard encodings emerge then we shall add them in +a later release of \LaTeX. + +Encoding schemes which are local to a site or a system should start +with |L|, experimental encodings intended for wide distribution will +start with |E|, whilst |U| is for Unknown or Unclassified encodings. + +\begin{quote} + \itshape We recommend that new encoding names should not be + introduced unless careful consideration and discussion in the user + community has confirmed the need for the encoding. If encodings have to + change from font to font, a number of problems arise, so it is best to + develop encodings that can be used with a large number of fonts in parallel. + This allows documents to be typeset using different fonts without problems. + + The \Enc{TS1} encoding is a good example of a \emph{bad} encoding (even + though it was developed with the best intentions) as a huge number of fonts + can only implement parts of it. Similarly, the fact that the few sets of + available mathematical fonts (beside Computer Modern Math) nearly + all implement slightly different encodings is a huge source of + problems. Don't add to this if possible! +\end{quote} + + +\subsection{128$^+$ glyph encodings (text)} + +The `OT' series of font encodings start with Donald Knuth's original +text encoding, that used for the text fonts in the earliest releases +of \TeX{} itself. The `O' of the encoding designator may be taken as +signifying `original', or just `old'. + +\begin{encodinginfo}{OT1} + {\TeX{} text} + {Donald Ervin Knuth} + {0x00--0x7F} + {0x0B--0x0F, 0x24, 0x3C, 0x3E, 0x5C, 0x7B--0x7D} +% {0X--'177} +% {'13--'17, '44, '74, '76, '134, '173--'175} + {cmr10} + {\cite[p.427]{A-W:DKn86}} + + Donald Knuth designed his font encoding (and hence his fonts) in a + very different environment from that which now pervades the \TeX{} + world: his (mainframe) computer had very little memory, there was + little experience in (or demand for) for multilingual technical + typesetting, and as a result it was appropriate to sacrifice + uniformity for efficiency. + + Thus Knuth's original fonts differ slightly in some encoded slots: + for example, the glyphs \texttt{\string<}, \texttt{\string>}, + \verb=\=, \verb={=, and \verb=}= are only available in the + typewriter fonts and the \textdollar{} and \textsterling{} signs + share the same position (in different font shapes). + + This means that direct selection of these slots can produce + unpredictable results, e.g., typing \texttt{\string<} or + \verb=\symbol{'74}= in a document can yield `\textquestiondown'. +\end{encodinginfo} + + +\begin{encodinginfo}{OT2} + {UW cyrillic encoding} + {University of Washington} + {0x00--0x7F} + {---} + {wnr10} + {\cite{Beeton:TB6-3-124}} + Support for this encoding is available in the Cyrillic bundle although for + all practical purposes it is better to use one of the \Enc{T2} encodings. +\end{encodinginfo} + + +\begin{encodinginfo}{OT3} + {UW IPA encoding} + {University of Washington} + {0x00--0x7f} + {---} + {wsuipa10} + {\cite[p.149]{CorkGW:91}} + The \Enc{OT3} encoding was never really used with \LaTeXe{} + following the introduction of the TIPA system which offers much + better support for IPA. In particular, no \File{ot3enc.def} + file was ever produced. +\end{encodinginfo} + + +\begin{encodinginfo}{OT4} + {Polish text encoding} + {B.~Jackowski and M.~Ry\'cko} %% ? Marcin Woli\'nski + {0x00--0x7F, 0x81, 0x82, 0x86, 0x8A, 0x8B, 0x91, 0x99, 0x9B, 0xA1, + 0xA2, 0xA6, 0xAA, 0xAB, 0xAE, 0xAF, 0xB1, 0xB9, 0xBB, 0xD3, 0xF3, + 0xFF} + {0x0B--0x0F, 0x24, 0x3C, 0x3E, 0x5C, 0x7B--0x7D} + {plr10} + {---} + + While Knuth included the means of typesetting the `lost L' (\L) in + his \Enc{OT1} encoding, he omitted the ogonek (\,\,\k{}), a diacritic + mark that is also needed in Polish text; hence the appearance, well + before the \Enc{T1} encoding, of fonts using this encoding. +\end{encodinginfo} + +\begin{encodinginfo}{OT5} + {Not currently allocated} + {---} + {---} + {---} + {} + {---} + +\end{encodinginfo} + + + +\begin{encodinginfo}{OT6} + {Armenian text encoding} + {Serguei Dachian} + {0x03--0x0F, 0x13--0x7F} + {---} + {artmr10} + {---} + + This encoding was allocated to permit use of Dachian's + Armenian fonts in a standard \LaTeX{} environment. +\end{encodinginfo} + + + +\subsection{256 glyph encodings (text)} + +\begin{encodinginfo}{T1} + {Cork encoding} + {Euro \TeX{} conference at Cork} + {0x00--0xFF} + {---} + {ecrm1000} + {\cite[p.514]{tub:MFe90}, \cite[p.99]{Knappen:TB17-2-96}} + + The Cork encoding was developed so that advantage could be taken of + the (then) new facilities of \TeX{}\,3, allowing hyphenation of + most Western European (and some Eastern European) languages in an + unmodified version of \TeX{}. + + The encoding was developed in the absence of any extant effort at + font design, but instances written in Metafont (the `EC' fonts), and + more recently Adobe Type 1 instances of the same fonts have become + available. + + Substantial (but incomplete) instances have also been developed, + which use virtual fonts. These latter instances map either Knuth's + original (OT1-encoded) fonts, or commercial fonts that contain the + Adobe `standard' set of 224 glyphs. +\end{encodinginfo} + +\begin{encodinginfo} + {T2A, T2B, T2C} + {Cyrillic encodings} + {The CyrTUG font team} + {0x00--0xFF} + {--- (within each encoding)} + {larm1000} + {\cite{Berdnikov:eurotex-98}} + + There are too many glyphs in the full Cyrillic complement of + languages for all of them to be covered by a single + \LaTeX{}-compliant encoding (the lower half of each + \Enc{T2}~encoding is identical to that of \Enc{T1}, in order that + each should be a conforming \LaTeX{} encoding~--- see + section~\ref{sec:restrictions}). The approach taken is + therefore to develop a single encoding, \Enc{X2} (see \ref{sec:extendedenc}) + which contains all the glyphs needed for the full set of + languages, and then to derive the three \LaTeX{}-complaint + \Enc{T2}-family encodings using the \Enc{X2} set together with that of + \Enc{T1}. + +\end{encodinginfo} + + + +\begin{encodinginfo}{T3} + {IPA encoding} + {FUKUI Rei, University of Tokyo} + {0x00--0xFF} + {---} + {tipa10} + {\cite[p.102]{Rei:TB17-2-102}} + + + The \Enc{T3} encoding (and associated macros) provides the glyphs required + in phonetic description according to current International Phonetic + Association recommendations \cite{ipa}. + + The \Enc{T3} encoding does \emph{not fulfil} the requirements for \Enc{T} + encodings---the name is a historical accident. The correct name would be + \Enc{X3}, but due to the fact that this font family has been used under its + current encoding name for a long time, the name will not change for + compatibility reasons. + +\end{encodinginfo} + + + +\begin{encodinginfo}{T4} + {African Latin (fc)} % public name + {J\"org Knappen} % author name + {0x00--0xFF} % range(s) of slots used for glyphs + {0x24} % range(s) of slots with variable glyphs if any + {fcr10} % name of an example font + {\cite{tub:JKn93}} + +The African Latin fonts contain in their lower half (0--127) the same +characters as the European Latin (T1-encoded) Fonts, while in their +upper half (128--255) they +contain letters and symbols for African languages that use extended +Latin alphabets. +Due to lack of space, J\"org had to play the unfortunate trick of +assigning \verb=\textdollar= and \verb=\textsterling= +the same position; users should take these characters +from the text companion font, if they are needed. Instead of defining +a lot of new control sequences for the single letters, there are three +accent-like control sequences with general purpose: +\verb=\m= (Modified-1), +\verb=\M= (Modified-2) and +\verb=\B= (Barred). +Most standard \LaTeX{} encoding-dependent commands +work. However, the Icelandic special letters are not available and `best +replacements' for \verb=\Th=, \verb=\th=, and \verb=\dh= +are used (barred T and d resp.). +\end{encodinginfo} + + +\begin{encodinginfo}{T5} + {Vietnamese encoding} + {Werner Lemberg and + Vladimir Volovich} + {0x00--0xFF} + {---} + {vnr10} + {\cite{vnr}} + + The \Enc{T5} encoding was developed for Vietnamese. Again, this encoding + \emph{does not} conform to the requirements for a \Enc{T}-encoding + because its large number of accented letters prevent the \verb=\lccode= and + \verb=\uccode= mapping requirements for \Enc{T} encodings from being + fulfilled. However, since the Vietnamese language does not + use word division in typesetting so that this requirement is + actually not important for this particular language. + Since every glyph used in Vietnamese text is internally + represented as \textsc{licr} macros, the commands \verb=\MakeUppercase= and + \verb=\MakeLowercase= still work as expected (as they change the case of the + \textsc{ascii} characters in \textsc{licr} definitions). + +\end{encodinginfo} + +\begin{encodinginfo} + {T6} + {Armenian} + {---} + {---} + {---} + {} + {---} + + This encoding is reserved to permit future expansion of Armenian + \TeX{} to use 256-character (hyphenatable) fonts. +\end{encodinginfo} + +\begin{encodinginfo}{T7} + {Greek encoding} + {---} + {---} + {---} + {} + {---} + +The name is already reserved for a 256 glyph greek encoding. The encoding +itself hasn't been defined so far. + +\end{encodinginfo} + + + +\subsection{256$^-$ glyph encodings (text symbols)} + +\begin{encodinginfo}{TS1} + {Text Companion encoding (Cork)} + {J\"org Knappen} + {0x00--0x0D, 0x12, 0x15, 0x16, 0x18--0x1D, 0x20, 0x24, 0x27, 0x2A, + 0x2C--0x3A, 0x3C--0x3E, 0x4D, 0x4F, 0x57, 0x5B, 0x5D--0x60, + 0x62--0x64, 0x6C--0x6E, 0x7E--0xBF, 0xD6, 0xF6} + {---} + {tcrm1000} + {\cite{Knappen:TB17-2-96}} + + The text symbol encoding offers access to symbolic glyphs that are + commonly used in text (for a variety of reasons), and whose style + should vary with the text that surrounds them. + + Unfortunately, the \Enc{TS1} encoding was developed without + reference to the glyphs available in existing commercial fonts. + As a result, only font families + explicitly developed for \TeX{} (i.e., typically originating with + \MF{}) actually contain all glyphs required by the \Enc{TS1} + encoding. Most other font families (whether free or commercial) + often only provide half of the set% +%% +%% don't show the comment if the tables are not generated +%% +\expandafter\ifx\csname r@fonttable:tcrm1000\endcsname\relax +\else + \expandafter\ifx\csname r@fonttable:ptmr8c\endcsname\relax + \else + \space (compare the two tables for \Enc{TS1} on + pages~\pageref{fonttable:tcrm1000} + and~\pageref{fonttable:ptmr8c})% + \fi +\fi. + To improve this situation somewhat, NFSS provides a way to define encoding + subsets on a per family basis in the \Pkg{textcomp} package (which + package offers support for the \Enc{TS1} encoding). +\end{encodinginfo} + + +\begin{encodinginfo}{TS3} + {IPA symbol encoding} + {FUKUI Rei, University of Tokyo} + {0x00--0x0A, 0x20--0x49, 0x50--0x56, 0x70--0x7B} + {---} + {tipx10} + {\cite{Rei:TB17-2-102}} + + The \Enc{TS3} encoding (together with the \Enc{T3} encoding) provides the + glyphs for typesetting phonetic transcriptions following the + guidelines of the International Phonetic Association \cite{ipa}. Support + is offered through the \Pkg{tipa} package. +\end{encodinginfo} + + + + +\subsection{256 glyph encodings (text extended)} +\label{sec:extendedenc} + +\begin{encodinginfo} + {X2} + {Cyrillic glyph container} + {The CyrTUG font team} + {0x00--0xFF} + {---} + {rxrm1000} + {\cite{Berdnikov:eurotex-98}} + + This encoding specifies the glyph container for Cyrillic characters, + which is used in specifying the \Enc{T2A}, \Enc{T2B} and \Enc{T2C} encodings. +\end{encodinginfo} + + + + +\subsection{128$^+$ glyph encodings (mathematics)} + + +\begin{encodinginfo}{OML} + {\TeX{} math italic} + {Donald Ervin Knuth} + {0x00--0x7F} + {---} + {cmmi10} + {\cite[p.430]{A-W:DKn86}} + + The \Enc{OML} encoding contains italic Latin and Greek letters for + use in mathematical formulas (typically used for variables) together + with some symbols. + +\end{encodinginfo} + +\begin{encodinginfo}{OMS} + {\TeX{} math symbol} + {Donald Ervin Knuth} + {0x00--0x7F} + {---} + {cmsy10} + {\cite[p.431]{A-W:DKn86}} + + The \Enc{OMS} encoding contains basic mathematical symbols, + together with an uppercase ``calligraphic'' Latin alphabet. +\end{encodinginfo} + + +\begin{encodinginfo}{OMX} + {\TeX{} math extension} + {Donald Ervin Knuth} + {0x00--0x7F} + {---} + {cmex10} + {\cite[p.432]{A-W:DKn86}} + + \Enc{OMS} encodes mathematical symbols with variable sizes, such as + the $\sum$ sign, which changes its size if used in displayed + formulas, and the construction parts for + brackets, braces and radicals, etc., which can stretch to accommodate + the thing they're enclosing. + +\end{encodinginfo} + + + + +\subsection{256 glyph encodings (mathematics)} + +So far there are no 256 glyph mathematical encodings. A proposal is +given in \cite{ziegler}. + + +\subsection{Other encodings} + +\begin{encodinginfo} + {C..} + {CJK encodings} + {Werner Lemberg} + {0x00--0xFF} + {---} + {} % no font, of course + {\cite{CJK}} + + The \Pkg{CJK} package defines a number of encodings which access Chinese, + Japanese and Korean fonts. + +\end{encodinginfo} + +\begin{encodinginfo} + {E..} + {Experimental encodings} + {---} + {0x00--0xFF} + {all} + {} + {\cite[p.416]{A-W:MG2004}} + + As the name indicates, encodings starting with the letter \Enc{E} are + intended for experimental encodings, that are still likely to change. +\end{encodinginfo} + +\begin{encodinginfo}{L..} + {Local encoding (site dependent)} + {---} + {0x00--0xFF} + {all} + {} + {\cite[p.416]{A-W:MG2004}} + + `Local' encodings provide the means to develop representation + techniques that are suited to a particular \TeX{} environment. While + the developer has freedom to specify their encoding as he or she + pleases, there is a strong incentive to obey the \LaTeX{} rules for + encodings, since it will otherwise be difficult to compose text using + the encoding. + + At least it was the intention that \Enc{L..} encodings are local and + site dependent. However, a number of such encodings became generally + used without ever getting a different name allocated. + +\end{encodinginfo} + + + +\begin{encodinginfo}{LY1} + {Y\&Y 256 glyph encoding} + {Berthold Horn} + {0x00--0x08, 0x0C, 0x10, 0x12--0xFF} + {\emph{believed none}} + {ptmr8y} + {\cite[p.416]{A-W:MG2004}} + + This is an alternative to the \Enc{T1} encoding developed by Y\&Y and + used in their commerical \TeX{} implementation. + +\end{encodinginfo} + + +\begin{encodinginfo}{LV1} + {MicroPress encoding} + {Michael Vulis} + {\emph{unknown}} + {\emph{unknown}} + {} + {\cite[p.416]{A-W:MG2004}} + + This is an encoding developed by MicroPress and used for some of their + fonts. + +\end{encodinginfo} + + +\begin{encodinginfo}{LGR} + {Greek 256 glyph encoding} + {\emph{unknown}} + {0x00--0xFF} + {\emph{believed none}} + {grmn1000} + {\cite[p.575]{A-W:MG2004}} + + Currently the main encoding in use for the Greek language. + + This encoding doesn't conform to the restrictions for + \Enc{T}-encodings described in section~\ref{sec:restrictions} on + page~\pageref{sec:restrictions} as it doesn't have \textsc{ascii} + glyphs at all. + +\end{encodinginfo} + + +\begin{encodinginfo} + {PD1} + {PDF DocEncoding} + {Adobe} + {0x08--0x0A, 0x0C, 0x0D, 0x18--0x7E, 0x80--0x9E, 0xA0--0xAE, 0xB0--0xFF} + {---} + {} + {\cite{Adobe:PDF-1.6}, \cite{hyperref}} + + The \Enc{PD1} encoding is a virtual encoding with 256 glyphs needed to + produce bookmarks and similar text in PDF document generated with pdf\LaTeX. + The encoding is ``virtual'' because by design there are no \TeX{} + fonts that cover \Enc{PD1}. Details can be found in appendix D.1 + of~\cite{Adobe:PDF-1.6}. +\end{encodinginfo} + +\begin{encodinginfo} + {PU} + {PDF Unicode Encoding} + {Adobe} + {---} + {---} + {} + {\cite{Adobe:PDF-1.6}, \cite{hyperref}} + + Another virtual encoding (with more than 600 characters) for + Unicode-encoded bookmarks in PDF documents. +\end{encodinginfo} + +\begin{encodinginfo}{U} + {Unknown encoding} + {---} + {potentially 0x00-0xFF} + {all} + {wasy10} + {\cite[p.416]{A-W:MG2004}} + + This encoding should be used for fonts that resist classification, + e.g., when it is clear that there will never be more than one font + using the same encoding. + +\end{encodinginfo} + + + +\section{Restrictions} +\label{sec:restrictions} + + +\subsection{Required glyphs for general text encodings} + +Encodings that are supposed to be used with \LaTeX{} for `general +purpose text fonts' need to have certain fixed glyphs in certain +encoding slots. A `general purpose text font' is one intended for +arbitrary natural language text and not just within special +environments (such as the phonetic alphabet) or just for typesetting +individual symbols (e.g., the text companion font with encoding +\Enc{TS1}). + +This is the case for the following glyphs that have to be in their +\textsc{ascii} positions for general purpose text encodings: +\begin{center} +\begin{tabular}[t]{cc} + Glyph & Position \\ \hline + ! & \number`\! \\ + ' & \number`\' \\ + ( & \number`\( \\ + ) & \number`\) \\ + \relax* & \number`\* \\ + + & \number`\+ \\ + , & \number`\, \\ + - & \number`\- \\ + . & \number`\. \\ + / & \number`\/ \\ + 0 \ldots\ 9 & \number`\0\ to \number`\9 \\ + \end{tabular} + \quad + \begin{tabular}[t]{cc} + Glyph & Position \\ \hline + : & \number`\: \\ + ; & \number`\; \\ + = & \number`\= \\ + ? & \number`\? \\ + @ & \number`\@ \\ + A \ldots\ Z & \number`\A\ to \number`\Z \\ + \relax[ & \number`\[ \\ + ] & \number`\] \\ + ` & \number`\` \\ + a \ldots\ z & \number`\a\ to \number`\z \\ +\end{tabular} +\quad +\begin{tabular}[t]{cc} +Glyph\footnotemark & Position \\ \hline +< & \number`\< \\ +> & \number`\> \\ +\string| & \number`\| \\ +\end{tabular}\footnotetext{The requirement for these three glyphs is + violated in the Latin alphabet \Enc{OT} encodings.} +\end{center} +In addition the following glyphs have to be present +somewhere\footnote{The position in this case is not important as they +are generated from ligature programs.} in the encoding together with +corresponding ligature programs to generate them: +\begin{center} +\begin{tabular}[t]{cc} +Glyph & Ligature program \\ \hline + `` & \texttt{`\/`} \\ + '' & \texttt{'\/'} \\ + -- & \texttt{-\/-} \\ + --- & \texttt{-\/-\/-} \\ +\end{tabular} +\end{center} + +This is $33 + 2 * 26 = 85$ positions ``required'', which leaves 171 +positions free. + +If there are free slots available then adding all or some of the +diacritics would be the best way to fill them. + +If there are insufficient slots for the characters needed, a possible +technique is to create a subsidiary encoding, and to move non-letter +characters to it. Since only ``letters'' take part in the hyphenation +algorithm, this technique doesn't affect the appearance of the typeset +result. + +\subsection{The constraints on upper/lower case tables} + +Due to some technical restrictions of \TeX{} related to hyphenation it +is not possible in \LaTeX{} to use more than one \verb=\lccode= or +\verb=\uccode= table. Therefore all encodings need to share these two +tables which are defined to be those of the \Enc{T1} encoding. + +The \Enc{T1} encoding has some nasty peculiarities which make certain slot +positions more or less unusable for other encodings if this +restriction is to be obeyed. This is unfortunate but since \Enc{T1} is well +established and the basis for a large number of languages it seemed +better to live with this situation instead of trying to replace \Enc{T1} with a +slightly better standard (with the result that for a long time +different \LaTeX{} installations would not be able to communicate with +each other because of incompatible font sets). + +The positions that are problematic are as follows. +\begin{center} +\begin{tabular}{lp{.8\linewidth}} +25 (\char 25) & uppercase maps strangely (same as for 105, \char 105)\\ +26 (\char 26) & uppercase maps strangely (same as for 106, \char 106)\\ +27 (\char 27) & lowercase maps to itself which makes this slot subject + to hyphenation (used to support \Enc{OT1} encoding) \\ +157 (\char 157) & lowercase maps strangely (same as for 73, \char 73) \\ +158 (\char 158) & uppercase maps strangely (same as for 240, \char 240) \\ +\end{tabular} +\end{center} +One way to use such slots is to fill them with ligature glyphs as +\TeX{} will not consult these tables for glyphs constructed through +ligatures programs but instead uses the entries for the individual +glyphs used to produce the ligature. + +A complete listing of the uppercase/lowercase mapping tables is to be +found in section~\ref{sec:uclc-tab} (page \pageref{sec:uclc-tab}). + +\newcount\temp \newcount\tempL \newcount\tempU + +\def\nextstep{\global\tempL=\lccode\temp + \global\tempU=\uccode\temp + \lctablenumbersize\the\temp & + \the\tempL& + \the\tempU&\printlowerupper{\the\temp}{\the\tempL}{\the\tempU}\\ + \global\advance\temp by 1 + \stepprint} + +\def\printlowerupper#1#2#3{\char#1\relax + (\ifnum#2=0\relax--\else\char#2\fi + /\ifnum#3=0\relax--\else\char#3\fi)} + +\def\stepprint{\relax\ifnum\temp<\endval + \let\next=\nextstep + \else + \let\next=\relax + \fi + \next} + +\def\dolctable#1#2{{\temp=#1\relax +\def\endval{#2}% +\setlength\tabcolsep{1.5pt}% +\begin{tabular}[t]{@{}cccc@{}} +pos&lc&uc&glyphs\\\hline +\stepprint +\end{tabular}}} + +\iffalse +\begin{center} +\tiny\let\lctablenumbersize\tiny +\mbox{\dolctable{0}{52}\vrule +\dolctable{52}{104}\vrule +\dolctable{104}{156}\vrule +\dolctable{156}{208}\vrule +\dolctable{208}{256}} +\end{center} +\fi + +\iffalse +\begin{center}\tiny +\mbox{\dolctable{0}{65}\vrule +\dolctable{65}{128}\vrule +\dolctable{128}{193}\vrule +\dolctable{193}{256}} +\end{center} +\fi + + + +\section{Encoding specific commands} + +An encoding specific command is one that generates a glyph (or +glyphs), to produce a graphic effect that may be implemented +differently in different encodings. The encoding specific command +automatically changes its implementation when the encoding changes in +the course of the document. Encoding specific commands figure in +\LaTeX's internal character representation (\textsc{licr}) and are also +discussed in \cite[sec.~7.11.2, p.~442]{A-W:MG2004}. + +The following table only covers the encoding specific commands from +the \Enc{OT1} and \Enc{T1} encodings. Other encodings may specify +additional encoding specific commands. In the table, the first 15 +commands are `accent-like' and need as an argument the character to be +accented. For example, |\v{c}| is the \textsc{licr} for `\v{c}'. + +\begin{tabbing} +\ttverb\textvisiblespace\quad\=bbbbbbbbbbbbbb\=b'b'\=ccccccccccc\kill +\ttverb\`{} \>OT1,T1\> \a`{}\> (grave) \\ +\ttverb\'{} \>OT1,T1\> \a'{}\> (acute) \\ +\ttverb\^{} \>OT1,T1\> \^{}\> (circumflex) \\ +\ttverb\~{} \>OT1,T1\> \~{}\> (tilde) \\ +\ttverb\"{} \>OT1,T1\> \"{}\> (umlaut) \\ +\ttverb\H{} \>OT1,T1\> \H{}\> (Hungarian umlaut) \\ +\ttverb\r{} \>OT1,T1\> \r{}\> (ring) \\ +\ttverb\v{} \>OT1,T1\> \v{}\> (ha\v{c}ek) \\ +\ttverb\u{} \>OT1,T1\> \u{}\> (breve) \\ +\ttverb\t{} \>OT1,T1\> \t{}\> (tie) \\ +\ttverb\={} \>OT1,T1\> \a={}\> (macron) \\ +\ttverb\.{} \>OT1,T1\> \.{}\> (dot) \\ +\ttverb\b{} \>OT1,T1\> \b{}\> (underbar) \\ +\ttverb\c{} \>OT1,T1\> \c{}\> (cedilla) \\ +\ttverb\d{} \>OT1,T1\> \d{}\> (dot under) \\ +\ttverb\k{} \>T1 \> \k{}\> (ogonek) \\ +% \ttverb\AA \>OT1,T1\> \AA \> \\ % no longer +\ttverb\AE \>OT1,T1\> \AE \> \\ +\ttverb\DH \>T1 \> \DH \> \\ +\ttverb\DJ \>T1 \> \DJ \> \\ +\ttverb\L \>OT1,T1\> \L \> \\ +\ttverb\NG \>T1 \> \NG \> \\ +\ttverb\OE \>OT1,T1\> \OE \> \\ +\ttverb\O \>OT1,T1\> \O \> \\ +\ttverb\SS \>OT1,T1\> \SS \> \\ +\ttverb\TH \>T1 \> \TH \> \\ +% \ttverb\aa \>OT1,T1\> \aa \> \\ no-longer +\ttverb\ae \>OT1,T1\> \ae \> \\ +\ttverb\dh \>T1 \> \dh \> \\ +\ttverb\dj \>T1 \> \dj \> \\ +\ttverb\guillemotleft \>T1 \> \guillemotleft \> (guillemet) \\ +\ttverb\guillemotright \>T1 \> \guillemotright \> (guillemet) \\ +\ttverb\guilsinglleft \>T1 \> \guilsinglleft \> (guillemet) \\ +\ttverb\guilsinglright \>T1 \> \guilsinglright \> (guillemet) \\ +\ttverb\i \>OT1,T1\> \i \> \\ +\ttverb\j \>OT1,T1\> \j \> \\ +\ttverb\l \>OT1,T1\> \l \> \\ +\ttverb\ng \>T1 \> \ng \> \\ +\ttverb\oe \>OT1,T1\> \oe \> \\ +\ttverb\o \>OT1,T1\> \o \> \\ +\ttverb\quotedblbase \>T1 \> \quotedblbase \> \\ +\ttverb\quotesinglbase \>T1 \> \quotesinglbase \> \\ +\ttverb\ss \>OT1,T1\> \ss \> \\ +\ttverb\textasciicircum \>OT1,T1\> \textasciicircum \> \\ +\ttverb\textasciitilde \>OT1,T1\> \textasciitilde \> \\ +\ttverb\textbackslash \>OT1,T1\> \textbackslash \> \\ +\ttverb\textbar \>OT1,T1\> \textbar \> \\ +\ttverb\textbraceleft \>OT1,T1\> \textbraceleft \> \\ +\ttverb\textbraceright \>OT1,T1\> \textbraceright \> \\ +\ttverb\textcompwordmark \>OT1,T1\> \textcompwordmark\> (invisible) \\ +\ttverb\textdollar \>OT1,T1\> \textdollar \> \\ +\ttverb\textemdash \>OT1,T1\> \textemdash \> \\ +\ttverb\textendash \>OT1,T1\> \textendash \> \\ +\ttverb\textexclamdown \>OT1,T1\> \textexclamdown \> \\ +\ttverb\textgreater \>OT1,T1\> \textgreater \> \\ +\ttverb\textless \>OT1,T1\> \textless \> \\ +\ttverb\textquestiondown \>OT1,T1\> \textquestiondown\> \\ +\ttverb\textquotedbl \>T1 \> \textquotedbl \> \\ +\ttverb\textquotedblleft \>OT1,T1\> \textquotedblleft\> \\ +\ttverb\textquotedblright \>OT1,T1\> \textquotedblright\> \\ +\ttverb\textquoteleft \>OT1,T1\> \textquoteleft \> \\ +\ttverb\textquoteright \>OT1,T1\> \textquoteright \> \\ +\ttverb\textregistered \>OT1,T1\> \textregistered \> \\ +\ttverb\textsection \>OT1,T1\> \textsection \> \\ +\ttverb\textsterling \>OT1,T1\> \textsterling \> \\ +\ttverb\texttrademark \>OT1,T1\> \texttrademark \> \\ +\ttverb\textunderscore \>OT1,T1\> \textunderscore \> \\ +\ttverb\textvisiblespace \>OT1,T1\> \textvisiblespace\> \\ +\ttverb\th \>T1 \> \th \> +\end{tabbing} + + + + +\begin{thebibliography}{99} +\addcontentsline{toc}{section}{\numberline{\relax}\refname} + + +\bibitem{Adobe:PDF-1.6} \emph{\textsc{PDF} reference}: + Adobe portable document format version~1.6. Adobe Systems + Incorporated, 2005. % why \textsuperscript{3}? + \url{http://partners.adobe.com/public/developer/en/pdf/PDFReference16.pdf}. + +\bibitem{Beeton:TB6-3-124} Barbara Beeton: + \emph{Mathematical symbols and cyrillic fonts ready for + distribution}. In: TUGBoat, 6\#3), 1985. + \url{http://tug.org/TUGboat/Articles/tb06-3/tb13beetcyr.pdf}. + +\bibitem{beeton} Barbara Beeton: \emph{Unicode + and math, a combination whose time has come -- Finally!}. In: + TUGBoat, 21\#3, 2000. + \url{http://www.tug.org/TUGboat/Articles/tb21-3/tb68beet.pdf}. + + +\bibitem{Berdnikov:eurotex-98} A.\@ Berdnikov, O.\@ + Lapko, M.\@ Kolodin, A.\@ Janishevsky and + A.\@ Burykin: \emph{The Encoding Paradigm in + \LaTeXe{} and the Projected X2 Encoding for Cyrillic Texts}. + Euro\TeX~98. + \url{http://www.gutenberg.eu.org/pub/GUTenberg/publicationsPDF/28-29-berdnikova.pdf}. + +\bibitem{CJK} \emph{The \Pkg{CJK} package}: + \url{http://cjk.ffii.org}. + +\bibitem{clasen} Matthias Clasen: \emph{A new + implementation of \LaTeX{} math}, 1997-98. + \url{http://www.tug.org/twg/mfg/papers/current/newmath.ps.gz}. + +\bibitem{clasen-vieth} Matthias Clasen and Ulrik + Vieth: \emph{Towards a new Math Font Encoding + for (La)\TeX}. March 1998, + \url{http://www.tug.org/twg/mfg/papers/current/mfg-euro-all.ps.gz}. + +\bibitem{CorkGW:91} +Dean Guenther and Janene Winter. +\newblock An international phonetic alphabet. +\newblock In Guenther \cite{proc:MGu91}, pages 149--156. +\newblock Published as {TUG}boat 12\#1. + +\bibitem{proc:MGu91} +Mary Guenther, editor. +\newblock {\em {\TeX} 90 Conference Proceedings}, March 1991. +\newblock Published as {TUG}boat 12\#1. + +\bibitem{tub:MFe90} +Michael~J. Ferguson. +\newblock Report on multilingual activities. +\newblock {\em {TUG}boat}, 11(4):514--516, 1990. + +\bibitem{fontinst} \emph{The \Pkg{fontinst} package}: + \textlangle CTAN\textrangle\url{/fonts/utilities/fontinst}. + +\bibitem{Rei:TB17-2-102} Fukui Rei: + \emph{\textsl{TIPA}: A system for processing phonetic + symbols in \LaTeX}. In: TUGBoat, 17\#, 1996. + \url{http://www.tug.org/TUGboat/Articles/tb17-2/tb51rei.pdf}. + +\bibitem{hyperref} \emph{The \Pkg{hyperref} package}: + \url{http://www.tug.org/applications/hyperref}. + +\bibitem{tub:JKn93} +J\"org Knappen. +\newblock Fonts for Africa: The fc Fonts. +\newblock {\em {TUG}boat}, 14(2):104, 1993. + +\bibitem{Knappen:TB17-2-96} J\"org Knappen: + \emph{The \Pkg{dc} fonts~1.3: Move towards stability + and completeness}. In: TUGBoat 17\#2, 1996. + \url{http://www.tug.org/TUGboat/Articles/tb17-2/tb51knap.pdf}. + +\bibitem{A-W:DKn86} +Donald~E. Knuth. +\newblock {\em The {\TeX}book}. +\newblock Volume~A of {\em Computers \& {T}ypesetting\/}, + May 1989. +\newblock Eight printing. + +\bibitem{vnr} \emph{The \Pkg{vnr} font family}, developed by + the author of pdf\TeX, {H\`an Th\^e\protect\llap{\raise 0.5ex\hbox{\'{\relax}}} Th\`anh}. + \url{http://vntex.org/download/vntex}. + + \bibitem{ipa} Home page of the International Phonetic Association. + \url{http://www.arts.gla.ac.uk/IPA/ipa.html} + +\bibitem{A-W:LLa94} +Leslie Lamport. +\newblock {\em {\LaTeX:} A Document Preparation System}. +\newblock Addison-Wesley, Reading, Massachusetts, second edition, 1994. + +\bibitem{LH-Fonts} \emph{The \Pkg{lh}-Fonts for Cyrillic}: + \textlangle CTAN\textrangle\url{/fonts/cyrillic/lh}. + +\bibitem{A-W:MG2004} +Frank Mittelbach and Michel Goossens. +\newblock {\em The {\LaTeX} Companion second edition}. +\newblock With Johannes Braams, David Carlisle, and Chris Rowley. +\newblock Addison-Wesley, Reading, Massachusetts, 2004. + +\bibitem{Unicode} \emph{The Unicode Standard}. + \url{http://unicode.org}. + +\bibitem{ziegler} Justin Ziegler, \emph{Technical + Report on Math Font Encodings}, June 1994, + \url{http://www.tug.org/twg/mfg/papers/ltx3pub/l3d007.ps.gz}. + +\end{thebibliography} + +\clearpage\appendix +\begin{center} + \Large\bfseries Appendices +\end{center} + +\section{Example code tables} + +This appendix contains a table of each font mentioned as an ``example'' +font above, providing that the font was available when the document +was processed with \LaTeX{}. (\LaTeX{} generates a warning message +for each font it fails to find.) + +\subsection{Text encodings} + +\ftable{cmr10}{OT1} + +\ftable{wnr10}{OT2} + +\ftable{wsuipa10}{OT3} + +\ftable{plr10}{OT4} + +\ftable{artmr10}{OT6} + +\ftable{ecrm1000}{T1} + +\ftable{larm1000}{T2A} + +\ftable{lbrm1000}{T2B} + +\ftable{lcrm1000}{T2C} + +\ftable{tipa10}{T3} + +\ftable{fcr10}{T4} + +\ftable{vnr10}{T5} + + +\subsection{Text symbol encodings} + +The full table for \Enc{TS1} as provided by European Computer Modern family: +\ftable{tcrm1000}{TS1} + +\pagebreak + +In contrast typical PostScript fonts usually have incomplete implementations +of \Enc{TS1} sometimes missing more than half of the glyphs: + +\ftable{ptmr8c}{TS1} + +\ftable{tipx10}{TS3} + + + +\subsection{Extended text encodings} + +\ftable{rxrm1000}{X2} + + +\subsection{Mathematical encodings} + +\ftable{cmmi10}{OML} + +\ftable{cmsy10}{OMS} + +\ftable{cmex10}{OMX} + + +\subsection{Other encodings} + +\ftable{ptmr8y}{LY1} + +%%\ftable{????}{LV1} + +\ftable{grmn1000}{LGR} + +\ftable{wasy10}{U} +\ftable{logo10}{U} + +\clearpage +\section{Uppercase and lowercase tables} +\label{sec:uclc-tab} + +The following two sets of tables list the \verb"\uppercase" and +\verb"\lowercase" values for each position in the \LaTeX{} standard +256-character tables. + +Each row of each table lists: +\begin{quote} + \begin{tabular}{lp{0.7\textwidth}} + pos & The position in the table (0-255) \\ + lc & The value in the \verb"\lowercase" table at the position \\ + & (note that value 0 here means that \verb"\lowercase" is + ineffective for this character, and hyphenation does not apply + to it) \\ + uc & The value in the \verb"\uppercase" table at the position \\ + & (note that value 0 here means that \verb"\uppercase" is + ineffective for this character) \\ + glyphs & The glyphs specified for the T1 encoding for this + position, laid out as \meta{glyph}\textbf{(}\meta{lowercase + glyph}\textbf{/}\meta{uppercase glyph}\textbf{)} + \end{tabular} +\end{quote} + +\begin{center} + \let\lctablenumbersize\footnotesize + \makebox[\textwidth]{\hss + \dolctable{0}{32}\quad\dolctable{32}{64}\quad + \dolctable{64}{96}\quad\dolctable{96}{128}% + \hss} + + \makebox[\textwidth]{\hss + \dolctable{128}{160}\quad\dolctable{160}{192}\quad + \dolctable{192}{224}\quad\dolctable{224}{256}% + \hss} +\end{center} +\end{document} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/source/latex/base/exscale.dtx b/Master/texmf-dist/source/latex/base/exscale.dtx index 8728a43a87d..ade70f86e67 100644 --- a/Master/texmf-dist/source/latex/base/exscale.dtx +++ b/Master/texmf-dist/source/latex/base/exscale.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/exscale.ins b/Master/texmf-dist/source/latex/base/exscale.ins index 04ac8b87ec3..1696c55f2d5 100644 --- a/Master/texmf-dist/source/latex/base/exscale.ins +++ b/Master/texmf-dist/source/latex/base/exscale.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/fixltx2e.dtx b/Master/texmf-dist/source/latex/base/fixltx2e.dtx index a55e295fcac..8c9a12996f0 100644 --- a/Master/texmf-dist/source/latex/base/fixltx2e.dtx +++ b/Master/texmf-dist/source/latex/base/fixltx2e.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -38,7 +38,7 @@ %<driver>\ProvidesFile{fixltx2e.drv} % \fi % \ProvidesFile{fixltx2e.dtx} - [2004/02/13 v1.1h fixes to LaTeX] + [2006/03/24 v1.1n fixes to LaTeX] % % \iffalse %<*driver> @@ -54,7 +54,7 @@ %</driver> % \fi % -% \CheckSum{896} +% \CheckSum{1077} % %% \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 @@ -426,7 +426,7 @@ %\end{verbatim} % % -% \subsection{No hyphenation in first word after float environment(pr/3498)} +% \subsection{No hyphenation in first word after float environment (pr/3498)} % %\begin{verbatim} % >Number: 3498 @@ -579,6 +579,147 @@ % The packages \Lpack{type1cm} and \Lpack{type1ec} must not be loaded % additionally; they enable only continuous scaling. % +% +% +% \section{Fixes added for 2005/12/01} +% +% \subsection{\texttt{\textbackslash textsubscript} not defined in +% latex.ltx (pr/3492)} +% +%\begin{verbatim} +% >Number: 3492 +% >Category: latex +% >Synopsis: \textsubscript not defined in latex.ltx +% >Arrival-Date: Tue Jan 14 23:01:00 CET 2003 +% >Originator: tgakic@chem.tue.nl (Ionel Mugurel Ciobica) +% +% I use \textsubscript much more often than \textsuperscript, and +% \textsubscript it is not defined in latex.ltx. Could you please +% consider including the definition of \textsubscript in the latex.ltx +% for the next versions of LaTeX. Thank you. +%\end{verbatim} +% +% \subsection{\texttt{\textbackslash DeclareMathSizes} only take pts. +% (pr/3693)} +% +%\begin{verbatim} +% >Number: 3693 +% >Category: latex +% >Synopsis: \DeclareMathSizes only take pts. +% >Arrival-Date: Fri Jun 11 16:21:00 CEST 2004 +% >Originator: moho01ab@student.cbs.dk (Morten Hoegholm) +% +% The last three arguments of \@DeclareMathSizes cannot take a dimension +% as argument, making it inconsistent with the rest of the font changing +% commands and itself, as the second argument can take a dimension +% specification. +%\end{verbatim} +% +% \subsection{\texttt{\textbackslash addpenalty} ruins flush-bottom (pr/3073)} +% +%\begin{verbatim} +% >Number: 3073 +% >Category: latex +% >Synopsis: \addpenalty ruins flush-bottom +% >Arrival-Date: 20 Oct 2005 14:46:35 -0700 +% >Originator: asnd@triumf.ca (Donald Arseneau) +% >Description: +% The (revised) definition of \addpenalty has been +% incorporated into fixltx2e, but now Plamen Tanovski has found a +% problem: since the \vskip is increased by the previous depth, +% consecutive \addpenalty and \addvspace commands keep enlarging +% the \vskip. +%\end{verbatim} +% +% \subsection{\texttt{\textbackslash footnotemark[x]} crashes with fixltx2e.sty +% (pr/3752)} +% +%\begin{verbatim} +% >Number: 3752 +% >Category: tools +% >Synopsis: feature \footnotemark[x] crashes with fixltx2e.sty +% >Arrival-Date: Fri Dec 17 10:11:00 +0100 2004 +% >Originator: stefan.pofahl@zsw-bw.de (Stefan Pofahl) +% +% If I use /fnsymbol together with fixltx2e.sty I can not use +% optinal parameter [num] +% \footnotemark[1] is not showing the mark number 1 but +% the mark \value{footnote}. +%\end{verbatim} +% This bug was related to pr/3400, where |\@fnsymbol| was made robust. +% +% \subsubsection{Notes on the implementation strategy} +% +% Pr/3400 made |\@fnsymbol| decide between text-mode and math-mode, +% which requires a certain level of robustness somewhere as the +% decision between text and math must be made at typesetting time and +% not when inside |\protected@edef| or similar commands. One way of +% dealing with this is to make sure the value seen by |\@fnsymbol| is +% a fully expanded number, which could be handled by code such as +% \begin{verbatim} +% \def\fnsymbol#1{\expandafter\@fnsymbol +% \expandafter{\the\csname c@#1\endcsname}} +% \end{verbatim} +% This would be a good solution if everybody used the high level +% commands only by writing code like |\fnsymbol{footnote}|. Unfortunately +% many classes (including the standard classes) and packages use the +% internal forms directly as in |\@fnsymbol\c@footnote| so the easy +% solution of changing |\fnsymbol| would break code that had worked for +% the past 20~years. +% +% Therefore the implementation here makes |\@fnsymbol| itself a +% non-robust command again and instead uses a new robust command +% \DescribeMacro{\TextOrMath}|\TextOrMath|, which will take care of +% typesetting either the math or the text symbol. In order to do so, +% we face an age old problem and unsolvable problem in \TeX: A +% reliable test for math mode that doesn't destroy +% kerning. Fortunately this problem can be solved when using e\TeX\ so +% if you use this as engine for your \LaTeX\ format, as recommended by +% the \LaTeX3 Project, you will get a fully functioning |\TextOrMath| +% command with no side effects. If you use regular \TeX\ as engine for +% your \LaTeX\ format then we have to choose between the lesser of two +% evils: 1)~breaking ligatures and preventing kerning or 2)~face the +% risk of choosing text-mode at the beginning of an alignment cell, +% which was suppodes to be math-mode. We have decided upon 1) as is +% costumary for regular robust commands in \LaTeX. +% +% +% \subsection{Fewer fragile commands} +% +%\begin{verbatim} +% >Number: 3816 +% >Category: latex +% >Synopsis: Argument of \@sect has an extra }. +% >Arrival-Date: Sat Oct 22 23:11:01 +0200 2005 +% >Originator: susi@uriah.heep.sax.de (Susanne Wunsch) +% +% Use of a \raisebox in \section{} produces the error message +% mentioned in the subject. +% +% PR latex/1738 descriped a similar problem, which has been solved +% 10 years ago. Protecting the \raisebox with \protect solved my +% problem as well, but wouldn't it make sense to have a similar fix +% as in the PR? +% +% It is particulary confusing, that an unprotected \raisebox in a +% \section*-environment works fine, while in a \section-environment +% produces error. +%\end{verbatim} +% +% While not technically a bug, in this day and age there are few +% reasons why commands taking optional arguments should not be robust. +% +% \subsubsection{Notes on the implementation strategy} +% +% Rather than changing the kernel macros to be robust, we have decided +% to add the macro \DescribeMacro{\MakeRobust}|\MakeRobust| in +% \Lpack{fixltx2e} so that users can easily turn fragile macros into +% robust ones. A macro |\foo| is made robust by doing the simple +% |\MakeRobust{\foo}|. \Lpack{fixltx2e} makes the following kernel +% macros robust: |\(|, |\)|, |\[|, |\]|, |\makebox|, |\savebox|, +% |\framebox|, |\parbox|, |\rule| and |\raisebox|. +% +% % \StopEventually{} % % \section{Implementation} @@ -1077,7 +1218,11 @@ % (pr/3073)} % % \begin{macro}{\addpenalty} -% Fix provided by Donald (though the original fix was not good enough). +% Fix provided by Donald (though the original fix was not good +% enough). In 2005 Plamen Tanovski discovered that this fix wasn't +% good enough either as the \cs{vskip} kept getting bigger if +% several \cs{addpenalty} commands followed each other. Donald +% kindly send a new fix. % \begin{macrocode} \def\addpenalty#1{% \ifvmode @@ -1089,8 +1234,16 @@ \penalty#1\relax \else \@tempskipb\lastskip - \advance \@tempskipb - \ifdim\prevdepth>\maxdepth\maxdepth\else +% \end{macrocode} +% \changes{v1.1l}{2005/11/10}{Add the correct \cs{vskip}} +% We have to make sure the final \cs{vskip} seen by \TeX\ is the +% correct one, namely \cs{@tempskipb}. However we may have to +% adjust for \cs{prevdepth} when placing the penalty but that +% should not affect the skip we pass on to \TeX. +% \begin{macrocode} + \begingroup + \advance \@tempskipb + \ifdim\prevdepth>\maxdepth\maxdepth\else % \end{macrocode} % If |\prevdepth| is -1000pt due to |\nointerlineskip| we better % not add it! @@ -1099,9 +1252,12 @@ % \begin{macrocode} \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi \fi + \vskip -\@tempskipb + \penalty#1% + \vskip\@tempskipb + \endgroup \vskip -\@tempskipb - \penalty#1% - \vskip\@tempskipb + \vskip \@tempskipb \fi \fi \fi @@ -1115,25 +1271,86 @@ % % \subsection{\texttt{\textbackslash fnsymbol} should use text symbols % if possible (pr/3400)} -% +% \begin{macro}{\@fnsymbol} +% +% This macro is another example of an ever recurring problem in +% \TeX: Determining if something is text-mode or math-mode. It is +% imperative for the decision between text and math to be delayed +% until the actual typesetting is done as the code in question may +% go through an |\edef| or |\write| where an |\ifmmode| test would +% be executed prematurely. Hence in the implementation below, +% |\@fnsymbol| is not robust in itself but the parts doing the +% actual typesetting are. +% +% In the case of |\@fnsymbol| we make use of the robust command +% |\TextOrMath| which takes two arguments and typesets the first if +% in text-mode and the second if in math-mode. Note that in order +% for this command to make the correct decision, it must insert a +% |\relax| token if run under regular \TeX, which ruins any kerning +% between the preceding characters and whatever awaits +% typesetting. If you use e\TeX\ as engine for \LaTeX\ (as +% recommended) this unfortunate side effect is not present. +% \begin{macrocode} +\def\@fnsymbol#1{% + \ifcase#1\or \TextOrMath\textasteriskcentered *\or + \TextOrMath \textdagger \dagger\or + \TextOrMath \textdaggerdbl \ddagger \or + \TextOrMath \textsection \mathsection\or + \TextOrMath \textparagraph \mathparagraph\or + \TextOrMath \textbardbl \|\or + \TextOrMath {\textasteriskcentered\textasteriskcentered}{**}\or + \TextOrMath {\textdagger\textdagger}{\dagger\dagger}\or + \TextOrMath {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}\else + \@ctrerr \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\TextOrMath} +% \changes{v1.1m}{2006/01/08}{Add command to solve robustness +% issues (pr/3752)} +% When using regular \TeX, we make this command robust so that it +% always selects the correct branch in an |\ifmmode| switch with +% the usual disadvantage of ruining kerning. For the application we +% use it for here that shouldn't matter. The alternative would be +% to mimic |\IeC| from \textsf{inputenc} but then it wil have the +% disadvantage of choosing the wrong branch if appearing at the +% beginning of an alignment cell. However, users of e\TeX\ will be +% pleasantly surprised to get the best of both worlds and no bad +% side effects. +% +% First some code for checking if we are running e\TeX\ but making +% sure not to permanently turn |\eTeXversion| into |\relax|. % \begin{macrocode} -\DeclareRobustCommand{\@fnsymbol}[1]{% - \ifmmode - \ifcase#1\or *\or\dagger\or \ddagger\or - \mathsection\or \mathparagraph\or \|\or **\or - \dagger\dagger - \or \ddagger\ddagger \else\@ctrerr\fi - \else - \ifcase#1\or \textasteriskcentered\or \textdagger\or - \textdaggerdbl\or \textsection\or \textparagraph\or - \textbardbl\or \textasteriskcentered\textasteriskcentered\or - \textdagger\textdagger\or \textdaggerdbl\textdaggerdbl - \else\@ctrerr\fi - \fi} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname eTeXversion\endcsname\relax % \end{macrocode} +% In case of ordinary \TeX\ we define |\TextOrMath| as a robust +% command but make sure it always grabs its arguments. If we didn't do +% this it might very well gobble spaces in the input stream. +% \begin{macrocode} +\DeclareRobustCommand\TextOrMath{% + \ifmmode \expandafter\@secondoftwo + \else \expandafter\@firstoftwo \fi} +\protected@edef\TextOrMath#1#2{\TextOrMath{#1}{#2}} +\else +% \end{macrocode} +% For e\TeX\ the situation is similar. The robust macro is a hidden +% one so that we again avoid problems of gobbling spaces in the input. +% \begin{macrocode} +\protected\expandafter\def\csname TextOrMath\space\endcsname{% + \ifmmode \expandafter\@secondoftwo + \else \expandafter\@firstoftwo \fi} +\edef\TextOrMath#1#2{% + \expandafter\noexpand\csname TextOrMath\space\endcsname + {#1}{#2}} +\fi +% \end{macrocode} +% \end{macro} % % \subsection{No hyphenation in first word after float environment(pr/3498)} % +% \begin{macro}{\@esphack} +% \begin{macro}{\@Esphack} % Fix suggested by Donald Arseneau. % \changes{v1.1g}{2003/09/19}{Fix for \cs{@esphack} (pr/3498)} % \changes{v1.1h}{2004/02/13}{Fix for \cs{@Esphack} (pr/3498)} @@ -1161,11 +1378,13 @@ \fi \fi} % \end{macrocode} -% +% \end{macro} +% \end{macro} % % \subsection{Allowing \texttt{\textbackslash emph} to produce small % caps, etc} -% +% \begin{macro}{\em} +% \begin{macro}{\eminnershape} % \changes{v1.1g}{2003/09/19}{Allow \cs{emph} to produce small caps} % \begin{macrocode} \DeclareRobustCommand\em @@ -1173,6 +1392,108 @@ \eminnershape \else \itshape \fi} \def\eminnershape{\upshape} % \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{\texttt{\textbackslash textsubscript} not defined in +% latex.ltx (pr/3492)} +% +% \begin{macro}{\textsubscript} +% \changes{v1.1j}{2005/07/13}{Add \cs{textsubscript}} +% \changes{v1.1k}{2005/09/29}{Fixed blank lines} +% This macro is almost identical to \cs{textsuperscript} from the +% kernel. +% \begin{macrocode} +\DeclareRobustCommand*\textsubscript[1]{% + \@textsubscript{\selectfont#1}} +\def\@textsubscript#1{% + {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} +% \end{macrocode} +% \end{macro} +% +% \subsection{\texttt{\textbackslash DeclareMathSizes} only take pts. +% (pr/3693)} +% +% \begin{macro}{\@DeclareMathSizes} +% \changes{v1.1k}{2005/09/29}{Fixed blank lines} +% This fix given by Michael J. Downes on comp.text.tex on 2002/10/17 +% allows the user to have settings such as +% \verb=\DeclareMathSizes{9.5dd}{9.5dd}{7.4dd}{6.6dd}=. +% \begin{macrocode} +\def\@DeclareMathSizes #1#2#3#4#5{% + \@defaultunits\dimen@ #2pt\relax\@nnil + \if $#3$% + \expandafter\let\csname S@\strip@pt\dimen@\endcsname\math@fontsfalse + \else + \@defaultunits\dimen@ii #3pt\relax\@nnil + \@defaultunits\@tempdima #4pt\relax\@nnil + \@defaultunits\@tempdimb #5pt\relax\@nnil + \toks@{#1}% + \expandafter\xdef\csname S@\strip@pt\dimen@\endcsname{% + \gdef\noexpand\tf@size{\strip@pt\dimen@ii}% + \gdef\noexpand\sf@size{\strip@pt\@tempdima}% + \gdef\noexpand\ssf@size{\strip@pt\@tempdimb}% + \the\toks@ + }% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Fewer fragile macros} +% +% \begin{macro}{\MakeRobust} +% \changes{v1.1n}{2006/03/24}{Added macro} +% +% The macro firstly checks if the controls sequence in question exists +% at all. +% \begin{macrocode} +\providecommand*\MakeRobust[1]{% + \@ifundefined{\expandafter\@gobble\string#1}{% + \@latex@error{The control sequence `\string#1' is undefined!% + \MessageBreak There is nothing here to make robust}% + \@eha + }% +% \end{macrocode} +% Then we check if the macro is already robust. We do this by testing +% if the internal name for a robust macro is defined, namely +% \verb*=\foo =. If it is already defined do nothing, otherwise set +% \verb*=\foo = equal to \verb*=\foo= and redefine \verb*=\foo= so +% that it acts like a macro defined with \verb=\DeclareRobustCommand=. +% \begin{macrocode} + {% + \@ifundefined{\expandafter\@gobble\string#1\space}% + {% + \expandafter\let\csname + \expandafter\@gobble\string#1\space\endcsname=#1% + \edef\reserved@a{\string#1}% + \def\reserved@b{#1}% + \edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}% + \edef#1{% + \ifx\reserved@a\reserved@b + \noexpand\x@protect\noexpand#1% + \fi + \noexpand\protect\expandafter\noexpand + \csname\expandafter\@gobble\string#1\space\endcsname}% + }% + {\@latex@info{The control sequence `\string#1' is already robust}}% + }% +} +% \end{macrocode} +% \end{macro} +% Here we make some kernel macros robust. +% \begin{macrocode} +\MakeRobust\( +\MakeRobust\) +\MakeRobust\[ +\MakeRobust\] +\MakeRobust\makebox +\MakeRobust\savebox +\MakeRobust\framebox +\MakeRobust\parbox +\MakeRobust\rule +\MakeRobust\raisebox +% \end{macrocode} % % \begin{macrocode} %</fixltx2e> diff --git a/Master/texmf-dist/source/latex/base/fixltx2e.ins b/Master/texmf-dist/source/latex/base/fixltx2e.ins index 5249b421a9b..f14de28fc7b 100644 --- a/Master/texmf-dist/source/latex/base/fixltx2e.ins +++ b/Master/texmf-dist/source/latex/base/fixltx2e.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/fntguide.tex b/Master/texmf-dist/source/latex/base/fntguide.tex new file mode 100644 index 00000000000..df4c3346114 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/fntguide.tex @@ -0,0 +1,1830 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: fntguide.tex + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\documentclass{ltxguide}[1995/11/28] + +\title{\LaTeXe{} font selection} + +\author{\copyright~Copyright 1995--2005, \LaTeX3 Project Team.\\ + All rights reserved.} + +\date{27 November 2005} + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +This document describes the new font selection features of the \LaTeX{} +Document Preparation System. It is intended for package writers who +want to write font-loading packages similar to |times| or |latexsym|. + +This document is only a brief introduction to the new facilities and +is intended for package writers who are familiar with \TeX{} fonts and +\LaTeX{} packages. It is \emph{neither} a user-guide \emph{nor} a +reference manual for fonts in \LaTeXe. + +\subsection{\LaTeXe~fonts} + +The most important difference between \LaTeX~2.09 and \LaTeXe{} is the +way that fonts are selected. In \LaTeX~2.09, the Computer Modern fonts +were built into the \LaTeX~format, and so customizing \LaTeX{} to use +other fonts was a major effort. + +In \LaTeXe, very few fonts are built into the format, and there are +commands to load new text and math fonts. Packages such as |times| or +|latexsym| allow authors to access these fonts. +This document describes how to write similar font-loading packages. + +The \LaTeXe{} font selection system was first released as the `New Font +Selection Scheme' (NFSS) in 1989, and then in release~2 in 1993. +\LaTeXe{} includes NFSS release~2 as standard. + +\subsection{Overview} + +This document contains an overview of the new font commands +of \LaTeX. + +\begin{description} + +\item[Section~\ref{Sec:text}] describes the commands for selecting fonts + in classes and packages. It lists the five \LaTeX{} font + attributes, and lists the commands for selecting fonts. It also + describes how to customize the author commands such as |\textrm| and + |\textit| to suit your document design. + +\item[Section~\ref{Sec:math}] explains the commands for controlling + \LaTeX{} math fonts. It describes how to specify new math fonts and + new math symbols. + +\item[Section~\ref{Sec:install}] explains how to install new fonts into + \LaTeX. It shows how \LaTeX{} font attributes are turned into \TeX{} + font names, and how to specify your own fonts using font definition + files. + +\item[Section~\ref{Sec:encode}] discusses text font encodings. + It describes how to declare a new encoding and how to define + commands, such as |\AE| or |\"|, which have different definitions in + different encodings, depending on whether ligatures, etc.\ are + available in the encoding. + +\item[Section~\ref{Sec:misc}] covers font miscellanea. It describes how + \LaTeX{} performs font substitution, how to customize fonts that are + preloaded in the \LaTeX{} format, and the naming conventions used in + \LaTeX{} font selection. + +\end{description} + +\subsection{Further information} + +For a general introduction to \LaTeX, including the new features of +\LaTeXe, you should read \emph{\LaTeXbook}, +Leslie Lamport, Addison Wesley, 2nd~ed, 1994. + +A more detailed description of the \LaTeX{} font selection scheme is to +be found in \emph{\LaTeXcomp}, 2nd~ed, by Mittelbach and Goossens, Addison +Wesley, 2004. + +The \LaTeX{} font selection scheme is based on \TeX, which is described +by its developer in \emph{The \TeX book}, Donald E.~Knuth, Addison +Wesley, 1986, revised in 1991 to include the features of \TeX~3. + +Sebastian Rahtz's |psnfss| software contains the software for using a +large number of Type~1 fonts (including the Adobe Laser Writer 35 and +the Monotype CD-ROM fonts) in \LaTeX. It should be available from the +same source as your copy of \LaTeX. + +The |psnfss| software uses fonts generated by Alan Jeffrey's +|fontinst| software. This can convert fonts from Adobe Font Metric +format into a format readable by \LaTeX, including the generation of +the font definition files described in Section~\ref{Sec:install}. The +|fontinst| software should be available from the same source as your +copy of \LaTeX. + +Whenever practical, \LaTeX{} uses the font naming scheme called +`fontname'; this was described in \emph{Filenames for fonts},% +\footnote{An up-to-date electronic version +of this document can be found on any CTAN server, in the directory +\texttt{info/fontname}.} +\emph{TUGboat}~11(4),~1990. + +The class-writer's guide \emph{\clsguide} describes +the new \LaTeX{} features for writers of document classes and packages +and is kept in |clsguide.tex|. Configuring +\LaTeX{} is covered by the guide \emph{\cfgguide} in +\texttt{cfgguide.tex} whilst the philosophy behind our policy on +modifying \LaTeX{} is described in \emph{\modguide} in +\texttt{modguide.tex}. + +The documented source code (from the files used to produce +the kernel format via |latex.ltx|) is now available as +\emph{The \LaTeXe\ Sources}. +This very large document also includes an index of \LaTeX{} +commands. It can be typeset from the \LaTeX{} file |source2e.tex| +in the |base| directory; this uses the class file |ltxdoc.cls|. + +For more information about \TeX{} and \LaTeX{}, please contact your +local \TeX{} Users Group, or the international \TeX{} Users Group. +Addresses and other details can be found at: +\begin{quote}\small\label{addrs} + \texttt{http://www.tug.org/lugs.html} +\end{quote} + + +\section{Text fonts} +\label{Sec:text} + +This section describes the commands available to class and package +writers for specifying and selecting fonts. + +\subsection{Text font attributes} + +Every text font in \LaTeX{} has five \emph{attributes}: +\begin{description} + +\item[encoding] This specifies the order that characters appear in the + font. The two most common text encodings used in \LaTeX{} are + Knuth's `\TeX{} text' encoding, and the `\TeX{} text extended' + encoding developed by the \TeX{} Users Group members during a \TeX{} + Conference at Cork in~1990 (hence its informal name `Cork encoding'). + +\item[family] The name for a collection of fonts, usually grouped under + a common name by the font foundry. For example, `Adobe Times', `ITC + Garamond', and Knuth's `Computer Modern Roman' are all font families. + +\item[series] How heavy or expanded a font is. For example, `medium + weight', `narrow' and `bold extended' are all series. + +\item[shape] The form of the letters within a font family. For + example, `italic', `oblique' and `upright' (sometimes called + `roman') are all font shapes. + +\item[size] The design size of the font, for example `10pt'. If no + dimension is specified, `pt' is assumed. + +\end{description} +The possible values for these attributes are given short acronyms by +\LaTeX. The most common values for the font encoding are: +\begin{center} +\begin{minipage}{.7\linewidth} + \begin{tabular}{rl} + |OT1| & \TeX{} text \\ + |T1| & \TeX{} extended text \\ + |OML| & \TeX{} math italic \\ + |OMS| & \TeX{} math symbols \\ + |OMX| & \TeX{} math large symbols \\ + |U| & Unknown \\ + |L<xx>| & A local encoding + \end{tabular} +\end{minipage} +\end{center} +The `local' encodings are intended for font encodings which are only +locally available, for example a font containing an organisation's +logo in various sizes. + +There are far too many font families to list them all, but some common +ones are: +\begin{center} +\begin{minipage}{.7\linewidth} + \begin{tabular}{rl} + |cmr| & Computer Modern Roman \\ + |cmss| & Computer Modern Sans \\ + |cmtt| & Computer Modern Typewriter \\ + |cmm| & Computer Modern Math Italic \\ + |cmsy| & Computer Modern Math Symbols \\ + |cmex| & Computer Modern Math Extensions \\ + |ptm| & Adobe Times \\ + |phv| & Adobe Helvetica \\ + |pcr| & Adobe Courier + \end{tabular} +\end{minipage} +\end{center} +The most common values for the font series are: +\begin{center} +\begin{minipage}{.7\linewidth} + \begin{tabular}{rl} + |m| & Medium \\ + |b| & Bold \\ + |bx| & Bold extended \\ + |sb| & Semi-bold \\ + |c| & Condensed + \end{tabular} +\end{minipage} +\end{center} +The most common values for the font shape are: +\begin{center} +\begin{minipage}{.7\linewidth} + \begin{tabular}{rl} + |n| & Normal (that is `upright' or `roman') \\ + |it| & Italic \\ + |sl| & Slanted (or `oblique') \\ + |sc| & Caps and small caps + \end{tabular} +\end{minipage} +\end{center} +The font size is specified as a dimension, for example |10pt| or +|1.5in| or |3mm|; if no unit is specified, |pt| is assumed. These five +parameters specify every \LaTeX{} font, for example: +\begin{center} + \begin{tabular}{@{}r@{\,}l@{\,}c@{\,}c@{\,}cc@{}r@{}} + \multicolumn{5}{@{}c}{\emph{\LaTeX{} specification}} & + \emph{Font} & + \emph{\TeX{} font name} \\ + |OT1| & |cmr| & |m| & |n| & |10| & + Computer Modern Roman 10 point & + |cmr10| \\ + |OT1| & |cmss| & |m| & |sl| & |1pc| & + Computer Modern Sans Oblique 1 pica & + |cmssi12| \\ + |OML| & |cmm| & |m| & |it| & |10pt| & + Computer Modern Math Italic 10 point & + |cmmi10| \\ + |T1| & |ptm| & |b| & |it| & |1in| & + Adobe Times Bold Italic 1 inch & + |ptmb8t at 1in| + \end{tabular} +\end{center} +These five parameters are displayed whenever \LaTeX{} gives an overfull +box warning, for example: +\begin{verbatim} + Overfull \hbox (3.80855pt too wide) in paragraph at lines 314--318 + []\OT1/cmr/m/n/10 Normally [] and [] will be iden-ti-cal, +\end{verbatim} +The author commands for fonts set the five attributes: +\begin{center} + \begin{tabular}{rcl} + \emph{Author command} & + \emph{Attribute} & + \emph{Value in} |article| \emph{class} \\ + |\textrm{..}| or |\rmfamily| & family & |cmr| \\ + |\textsf{..}| or |\sffamily| & family & |cmss| \\ + |\texttt{..}| or |\ttfamily| & family & |cmtt| \\ + |\textmd{..}| or |\mdseries| & series & |m| \\ + |\textbf{..}| or |\bfseries| & series & |bx| \\ + |\textup{..}| or |\upshape| & shape & |n| \\ + |\textit{..}| or |\itshape| & shape & |it| \\ + |\textsl{..}| or |\slshape| & shape & |sl| \\ + |\textsc{..}| or |\scshape| & shape & |sc| \\ + |\tiny| & size & |5pt| \\ + |\scriptsize| & size & |7pt| \\ + |\footnotesize| & size & |8pt| \\ + |\small| & size & |9pt| \\ + |\normalsize| & size & |10pt| \\ + |\large| & size & |12pt| \\ + |\Large| & size & |14.4pt| \\ + |\LARGE| & size & |17.28pt| \\ + |\huge| & size & |20.74pt| \\ + |\Huge| & size & |24.88pt| + \end{tabular} +\end{center} +The values used by these commands are determined by the document class, +using the parameters defined in Section~\ref{Sec:text.param}. + +Note that there are no author commands for selecting new encodings. +These should be provided by packages, such as the |fontenc| package. + +This section does not explain how \LaTeX{} font specifications are +turned into \TeX{} font names. This is described in +Section~\ref{Sec:install}. + +\subsection{Selection commands} + +The low-level commands used to select a text font are as follows. + +\begin{decl} +|\fontencoding| \arg{encoding} \\ +|\fontfamily| \arg{family}\\ +|\fontseries| \arg{series}\\ +|\fontshape| \arg{shape}\\ +|\fontsize| \arg{size} \arg{baselineskip}\\ +|\linespread| \arg{factor} +\end{decl} + +\NEWdescription{1998/12/01} +Each of the commands starting with |\font...| sets one of the font +attributes; |\fontsize| also sets |\baselineskip|. The |\linespread| +command prepares to multiply the current (or newly defined) +|\baselineskip| with \m{factor} (e.g., spreads the lines apart for +values greater one). + +The actual font in use is not altered by these commands, but the +current attributes are used to determine which font and baseline skip +to use after the next |\selectfont| command. + + +\begin{decl} +|\selectfont| +\end{decl} +Selects a text font, based on the current values of the font attributes. + +\emph{Warning}: There \emph{must} be a |\selectfont| command +immediately after any settings of the font parameters by (some of) +the six commands above, before any following text. +For example, it is legal to say: +\begin{verbatim} + \fontfamily{ptm}\fontseries{b}\selectfont Some text. +\end{verbatim} +but it is \emph{not} legal to say: +\begin{verbatim} + \fontfamily{ptm} Some \fontseries{b}\selectfont text. +\end{verbatim} +You may get unexpected results if you put text between a +|\font<parameter>| command (or |\linespread|) and a |\selectfont|. + +\begin{decl} +|\usefont| \arg{encoding} \arg{family} \arg{series} \arg{shape} +\end{decl} +A short hand for the equivalent |\font...| commands followed by a +call to |\selectfont|. + + +\subsection{Internals} + +The current values of the font attributes are held in internal macros. + +\begin{decl} + |\f@encoding| \\ + |\f@family| \\ + |\f@series| \\ + |\f@shape| \\ + |\f@size| \\ + |\f@baselineskip| \\ + |\tf@size| \\ + |\sf@size| \\ + |\ssf@size| +\end{decl} + +These hold the current values of the encoding, the family, the series, +the shape, the size, the baseline skip, the main math size, the +`script' math size and the `scriptscript' math size. The last three +are accessible only within a formula; outside of math they may contain +arbitrary values. + +For example, to set the size to 12 without +changing the baseline skip: +\begin{verbatim} + \fontsize{12}{\f@baselineskip} +\end{verbatim} +However, you should \emph{never} alter the values of the internal +commands directly; they must only be modified using the low-level +commands like |\fontfamily|, |\fontseries|, etc. If you disobey this +warning you might produce code that loops. + +\subsection{Parameters for author commands} +\label{Sec:text.param} + +The parameter values set by author commands such as |\textrm| and +|\rmfamily|, etc.\ are not hard-wired into \LaTeX; instead these +commands use the values of a number of parameters set by the document +class and packages. For example, |\rmdefault| is the name of the +default family selected by |\textrm| and |\rmfamily|. Thus to set a +document in Adobe Times, Helvetica and Courier, the document designer +specifies: +\begin{verbatim} + \renewcommand{\rmdefault}{ptm} + \renewcommand{\sfdefault}{phv} + \renewcommand{\ttdefault}{pcr} +\end{verbatim} + +\begin{decl} + |\encodingdefault| \\ + |\familydefault| \\ + |\seriesdefault| \\ + |\shapedefault| +\end{decl} +The encoding, family, series and shape of the main body font. By +default these are |OT1|, |\rmdefault|, |m| and |n|. Note that since +the default family is |\rmdefault|, this means that changing +|\rmdefault| will change the main body font of the document. + +\begin{decl} + |\rmdefault| \\ + |\sfdefault| \\ + |\ttdefault| +\end{decl} +The families selected by |\textrm|, |\rmfamily|, |\textsf|, +|\sffamily|, |\texttt| and |\ttfamily|. By default these are |cmr|, +|cmss| and |cmtt|. + +\begin{decl} + |\bfdefault| \\ + |\mddefault| +\end{decl} +The series selected by |\textbf|, |\bfseries|, |\textmd| and +|\mdseries|. By default these are |bx| and |m|. +These values are suitable for the default families used. If other +fonts are used as standard document fonts (for example, certain +PostScript fonts) it might be necessary to adjust the value of +|\bfdefault| to |b| since only a few such families have a `bold +extended' series. An alternative (taken for the fonts provided by +|psnfss|) is to define silent substitutions from |bx| series to |b| +series with special |\DeclareFontShape| declarations and the |ssub| +size function, see Section~\ref{sec:sizefunct}. + + +\begin{decl} + |\itdefault| \\ + |\sldefault| \\ + |\scdefault| \\ + |\updefault| +\end{decl} +The shapes selected by |\textit|, |\itshape|, |\textsl|, |\slshape|, +|\textsc|, |\scshape|, |\textup| and |\upshape|. By default these are +|it|, |sl|, |sc| and |n|. + +Note that there are no parameters for the size commands. These should +be defined directly in class files, for example: +\begin{verbatim} + \renewcommand{\normalsize}{\fontsize{10}{12}\selectfont} +\end{verbatim} +More elaborate examples (setting additional parameters when the text +size is changed) can be found in |classes.dtx| the source +documentation for the classes |article|, |report|, and |book|. + + +\subsection{Special font declaration commands} + +\begin{decl} +|\DeclareFixedFont| \arg{cmd} \arg{encoding} \arg{family} \arg{series} + \arg{shape} \arg{size} +\end{decl} + +Declares command \m{cmd} to be a font switch which selects the font +that is specified by the attributes \m{encoding}, \m{family}, +\m{series}, \m{shape}, and \m{size}. + +The font is selected without any adjustments to baselineskip and other +surrounding conditions. + +This example makes |{\picturechar .}| select a small dot very quickly: +\begin{verbatim} + \DeclareFixedFont{\picturechar}{OT1}{cmr}{m}{n}{5} +\end{verbatim} + + +\begin{decl} +|\DeclareTextFontCommand| \arg{cmd} \arg{font-switches} +\end{decl} + +Declares command \m{cmd} to be a font command with one argument. +The current font attributes are locally modified by \m{font-switches} +and then the argument of \m{cmd} is typeset in the resulting new font. + +Commands defined by |\DeclareTextFontCommand| automatically take care +of any necessary italic correction (on either side). + +The following example shows how |\textrm| is defined by the kernel. +\begin{verbatim} + \DeclareTextFontCommand{\textrm}{\rmfamily} +\end{verbatim} + +To define a command that always typeset its argument in the italic +shape of the main document font you could declare: +\begin{verbatim} + \DeclareTextFontCommand{\normalit}{\normalfont\itshape} +\end{verbatim} + +This declaration can be used to change the meaning of a command; if +\m{cmd} is already defined, a log that it has been redefined +is put in the transcript file. + +\begin{decl} +|\DeclareOldFontCommand| \arg{cmd} \arg{text-switch} + \arg{math-switch} +\end{decl} + +Declares command \m{cmd} to be a font switch (i.e.~used with the +syntax |{<cmd>...}|) having the definition \m{text-switch} +when used in text and the definition \m{math-switch} when used in a +formula. +Math alphabet commands, like |\mathit|, when used within \m{math-switch} +should not have an argument. Their use in this argument causes their +semantics to change so that they here act as a font switch, as +required by the usage of the \m{cmd}. + +This declaration is useful for setting up commands like |\rm| to behave +as they did in \LaTeX~2.09. We strongly urge you \emph{not} to misuse +this declaration to invent new font commands. + +The following example defines |\it| to produce the italic shape of the +main document font if used in text and to switch to the font that would +normally be produced by the math alphabet |\mathit| if used in a +formula. +\begin{verbatim} + \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\end{verbatim} + +This declaration can be used to change the meaning of a command; if +\m{cmd} is already defined, a log that it has been redefined +is put in the transcript file. + + +\section{Math fonts} +\label{Sec:math} + +This section describes the commands available to class and package +writers for specifying math fonts and math commands. + +\subsection{Math font attributes} + +The selection of fonts within math mode is quite different to that of +text fonts. + +Some math fonts are selected explicitly by one-argument commands such +as |\mathsf{max}| or |\mathbf{vec}|; such fonts are called \emph{math +alphabets}. These math alphabet commands affect only the font used +for letters and symbols of type |\mathalpha| (see +Section~\ref{Sec:math.commands}); other symbols within the argument +will be left unchanged. The predefined math alphabets are: +\begin{center} + \begin{tabular}{ccc} + \emph{Alphabet} & \emph{Description} & \emph{Example} \\ + |\mathnormal| & default & $abcXYZ$ \\ + |\mathrm| & roman & $\mathrm{abcXYZ}$ \\ + |\mathbf| & bold roman & $\mathbf{abcXYZ}$ \\ + |\mathsf| & sans serif & $\mathsf{abcXYZ}$ \\ + |\mathit| & text italic & $\mathit{abcXYZ}$ \\ + |\mathtt| & typewriter & $\mathtt{abcXYZ}$ \\ + |\mathcal| & calligraphic & $\mathcal{XYZ}$ + \end{tabular} +\end{center} +Other math fonts are selected implicitly by \TeX{} for symbols, with +commands such as |\oplus| (producing $\oplus$) or with straight +characters like |>>| or |+|. Fonts containing such math symbols are +called \emph{math symbol fonts}. The predefined math symbol fonts +are: +\begin{center} + \begin{tabular}{ccc} + \emph{Symbol font} & \emph{Description} & \emph{Example} \\ + |operators| & symbols from |\mathrm| & $[\;+\;]$ \\ + |letters| & symbols from |\mathnormal| & $<<\star>>$ \\ + |symbols| & most \LaTeX{} symbols & $\leq*\geq$ \\ + |largesymbols| & large symbols & $\sum\prod\int$ + \end{tabular} +\end{center} +Some math fonts are both \emph{math alphabets} and \emph{math symbol +fonts}, for example |\mathrm| and |operators| are the same font, and +|\mathnormal| and |letters| are the same font. + +Math fonts in \LaTeX{} have the same five attributes as text fonts: +encoding, family, series, shape and size. However, there are no +commands that allow the attributes to be individually changed. +Instead, the conversion from math fonts to these five attributes is +controlled by the \emph{math version}. For example, the |normal| math +version maps: +\begin{center} + \begin{tabular}{rlc@{ }c@{ }c@{ }c} + \multicolumn{2}{c}{\emph{Math font}} & + \multicolumn{4}{c}{\emph{External font}} \\ + \emph{Alphabets} & \emph{Symbol fonts} & + \multicolumn{4}{c}{\emph{Attributes}} \\ + |\mathnormal| & |letters| & |OML| & |cmm| & |m| & |it| \\ + |\mathrm| & |operators| & |OT1| & |cmr| & |m| & |n| \\ + |\mathcal| & |symbols| & |OMS| & |cmsy| & |m| & |n| \\ + & |largesymbols| & |OMX| & |cmex| & |m| & |n| \\ + |\mathbf| & & |OT1| & |cmr| & |bx| & |n| \\ + |\mathsf| & & |OT1| & |cmss| & |m| & |n| \\ + |\mathit| & & |OT1| & |cmr| & |m| & |it| \\ + |\mathtt| & & |OT1| & |cmtt| & |m| & |n| + \end{tabular} +\end{center} +The |bold| math version is similar except that it contains bold fonts. +The command |\boldmath| selects the |bold| math version. + +Math versions can only be changed outside of math mode. + +The two predefined math versions are: +\begin{center} + \begin{tabular}{rl} + |normal| & the default math version \\ + |bold| & the bold math version + \end{tabular} +\end{center} +Packages may define new math alphabets, math symbol fonts, and math +versions. This section describes the commands for writing such +packages. + +\subsection{Selection commands} + +There are no commands for selecting symbol fonts. Instead, these are +selected indirectly through symbol commands like |\oplus|. +Section~\ref{Sec:math.commands} explains how to define symbol commands. + +\begin{decl} + |\mathnormal{<math>}|\\ + |\mathcal{<math>}|\\ + |\mathrm{<math>}|\\ + |\mathbf{<math>}|\\ + |\mathsf{<math>}|\\ + |\mathit{<math>}|\\ + |\mathtt{<math>}| +\end{decl} +Each math alphabet is a command which can only be used inside math +mode. For example, |$x + \mathsf{y} + \mathcal{Z}$| produces $x + +\mathsf{y} + \mathcal{Z}$. + +\begin{decl} +|\mathversion{<version>}| +\end{decl} +This command selects a math version; it can only be used outside math +mode. For example, |\boldmath| is defined to be |\mathversion{bold}|. + +\subsection{Declaring math versions} + +\begin{decl} +|\DeclareMathVersion| \arg{version} +\end{decl} + +Defines \m{version} to be a math version. + +The newly declared version is initialised with the defaults for all +symbol fonts and math alphabets declared so far (see the commands +|\DeclareSymbolFont| and |\DeclareMathAlphabet|). + +If used on an already existing version, an information message is +written to the transcript file and all previous |\SetSymbolFont| or +|\SetMathAlphabet| declarations for this version are overwritten by +the math alphabet and symbol font defaults, i.e.~one ends up with a +virgin math version. + +Example: +\begin{verbatim} + \DeclareMathVersion{normal} +\end{verbatim} + + +\subsection{Declaring math alphabets} + +\begin{decl} +|\DeclareMathAlphabet| \arg{math-alph} \arg{encoding} \arg{family} + \arg{series} \arg{shape} +\end{decl} + +\NEWdescription{1997/12/01} +If this is the first declaration for \m{math-alph} then a new math +alphabet with this as its command name is created. + +The arguments \m{encoding} \m{family} \m{series} \m{shape} are used to +set, or reset, the default values for this math alphabet in all math +versions; if required, these must be further reset later for a +particular math version by a |\SetMathAlphabet| command. + +If \m{shape} is empty then this \m{math-alph} is declared to be invalid +in all versions, unless it is set by a later |\SetMathAlphabet| +command for a particular math version. + +Checks that the command \m{math-alph} is either already a math +alphabet command or is undefined; and that \m{encoding} is a known +encoding scheme, i.e., has been previously declared. + + +In these examples, |\foo| is defined for all math versions but |\baz|, +by default, is defined nowhere. +\begin{verbatim} + \DeclareMathAlphabet{\foo}{OT1}{cmtt}{m}{n} + \DeclareMathAlphabet{\baz}{OT1}{}{}{} +\end{verbatim} + + +\begin{decl} +|\SetMathAlphabet| \arg{math-alph} \arg{version}\\ + \null\hfill\arg{encoding} \arg{family} \arg{series} \arg{shape} +\end{decl} + +Changes, or sets, the font for the math alphabet \m{math-alph} in math +version \m{version} to \m{encoding}\m{family}\m{series}\m{shape}. + +Checks that \m{math-alph} has been declared as a math alphabet, +\m{version} is a known math version and \m{encoding} is a known +encoding scheme. + + +This example defines |\baz| for the `normal' math version only: +\begin{verbatim} + \SetMathAlphabet{\baz}{normal}{OT1}{cmss}{m}{n} +\end{verbatim} + +Note that this declaration is not used for all math alphabets: +Section~\ref{sec:symalph} describes |\DeclareSymbolFontAlphabet|, +which is used to set up math alphabets contained in fonts which have +been declared as symbol fonts. + + +\subsection{Declaring symbol fonts} +\label{sec:symalph} + +\begin{decl} +|\DeclareSymbolFont| \arg{sym-font} \arg{encoding} \arg{family} + \arg{series} \arg{shape} +\end{decl} + +\NEWdescription{1997/12/01} +If this is the first declaration for \m{sym-font} then a new +symbol font with this name is created (i.e.~this identifier is assigned +to a new \TeX{} math group). + +The arguments \m{encoding} \m{family} \m{series} \m{shape} are used to +set, or reset. the default values for this symbol font in \emph{all} +math versions; if required, these must be further reset later for +a particular math version by a |\SetSymbolFont| command. + +Checks that \m{encoding} is a declared encoding scheme. + + +For example, the following sets up the first four standard math symbol +fonts: +\begin{verbatim} + \DeclareSymbolFont{operators}{OT1}{cmr}{m}{n} + \DeclareSymbolFont{letters}{OML}{cmm}{m}{it} + \DeclareSymbolFont{symbols}{OMS}{cmsy}{m}{n} + \DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n} +\end{verbatim} + + +\begin{decl} +|\SetSymbolFont| \arg{sym-font} \arg{version}\\ + \null\hfill \arg{encoding} \arg{family} \arg{series} \arg{shape} +\end{decl} + +Changes the symbol font \m{sym-font} for math version \m{version} +to \m{encoding} \m{family} \m{series} \m{shape}. + +Checks that \m{sym-font} has been declared as a symbol font, +\m{version} is a known math version and \m{encoding} is a +declared encoding scheme. + + +For example, the following come from the set up of the `bold' +math version: +\begin{verbatim} + \SetSymbolFont{operators}{bold}{OT1}{cmr}{bx}{n} + \SetSymbolFont{letters}{bold}{OML}{cmm}{b}{it} +\end{verbatim} + + +\begin{decl} +|\DeclareSymbolFontAlphabet| \arg{math-alph} \arg{sym-font} +\end{decl} + +\NEWdescription{1997/12/01} +Allows the previously declared symbol font \m{sym-font} to be the +math alphabet with command \m{math-alph} in \emph{all} math versions. + +Checks that the command \m{math-alph} is either already a math alphabet +command or is undefined; and that \m{sym-font} is a symbol font. + + +Example: +\begin{verbatim} + \DeclareSymbolFontAlphabet{\mathrm}{operators} + \DeclareSymbolFontAlphabet{\mathcal}{symbols} +\end{verbatim} + +This declaration should be used in preference to +|\DeclareMathAlphabet| and |\SetMathAlphabet| when a math alphabet is +the same as a symbol font; this is because it makes better use of the +limited number (only 16) of \TeX's math groups. + +\NEWdescription{1997/12/01} +Note that, whereas a \TeX{} math group is allocated to each symbol font +when it is first declared, a math alphabet uses a \TeX{} math group +only when its command is used within a math formula. + + +\subsection{Declaring math symbols} +\label{Sec:math.commands} + +\begin{decl} +|\DeclareMathSymbol| \arg{symbol} \arg{type} \arg{sym-font} + \arg{slot} +\end{decl} + +The \m{symbol} can be either a single character such as `|>>|', or a +macro name, such as |\sum|. + +Defines the \m{symbol} to be a math symbol of type +\m{type} in slot \m{slot} of symbol font \m{sym-font}. The +\m{type} can be given as a number or as a command: +\begin{center} + \begin{tabular}{ccc} + \emph{Type} & \emph{Meaning} & \emph{Example} \\ + |0| or |\mathord | & Ordinary & $\alpha$ \\ + |1| or |\mathop | & Large operator & $\sum$ \\ + |2| or |\mathbin | & Binary operation & $\times$ \\ + |3| or |\mathrel | & Relation & $\leq$ \\ + |4| or |\mathopen | & Opening & $\langle$ \\ + |5| or |\mathclose| & Closing & $\rangle$ \\ + |6| or |\mathpunct| & Punctuation & $;$ \\ + |7| or |\mathalpha| & Alphabet character & $A$ + \end{tabular} +\end{center} +Only symbols of type |\mathalpha| will be affected by math alphabet +commands: within the argument of a math alphabet command they will +produce the character in slot \m{slot} of that math alphabet's font. +Symbols of other types will always produce the same symbol +(within one math version). + +|\DeclareMathSymbol| allows a macro \m{symbol} to be redefined only if +it was previously defined to be a math symbol. It also checks that +the \m{sym-font} is a declared symbol font. + +Example: +\begin{verbatim} + \DeclareMathSymbol{\alpha}{0}{letters}{"0B} + \DeclareMathSymbol{\lessdot}{\mathbin}{AMSb}{"0C} + \DeclareMathSymbol{\alphld}{\mathalpha}{AMSb}{"0C} +\end{verbatim} + +\begin{decl} + |\DeclareMathDelimiter| \arg{cmd} \arg{type} + \arg{sym-font-1} \arg{slot-1}\\ + \null\hfill \arg{sym-font-2} \arg{slot-2} +\end{decl} +Defines \m{cmd} to be a math delimiter where the small variant is in +slot \m{slot-1} of symbol font \m{sym-font-1} and the large +variant is in slot \m{slot-2} of symbol font \m{sym-font-2}. +Both symbol fonts must have been declared previously. + +Checks that \m{sym-font-i} are both declared symbol fonts. + +If \TeX{} is not looking for a delimiter, \m{cmd} is treated just as +if it had been defined with |\DeclareMathSymbol| using +\m{type}, \m{sym-font-1} and \m{slot-1}. In other words, if a +command is defined as a delimiter then this automatically defines it +as a math symbol. + +\NEWdescription{1998/06/01} +In case \m{cmd} is a single character such as `|[|', the same syntax is +used. Previously the \arg{type} argument was not present (and thus the +corresponding math symbol declaration had to be provided seperately). + +Example: +\begin{verbatim} + \DeclareMathDelimiter{\langle}{\mathopen}{symbols}{"68} + {largesymbols}{"0A} + \DeclareMathDelimiter{(} {\mathopen}{operators}{"28} + {largesymbols}{"00} +\end{verbatim} + + +\begin{decl} +|\DeclareMathAccent| \arg{cmd} \arg{type} \arg{sym-font} \arg{slot} +\end{decl} + +Defines \m{cmd} to act as a math accent. + +The accent character comes from slot \m{slot} in +\m{sym-font}. The \m{type} can be either +|\mathord| or |\mathalpha|; in the latter case the accent character +changes font when used in a math alphabet. + +Example: +\begin{verbatim} + \DeclareMathAccent{\acute}{\mathalpha}{operators}{"13} + \DeclareMathAccent{\vec}{\mathord}{letters}{"7E} +\end{verbatim} + + +\begin{decl} +|\DeclareMathRadical| \arg{cmd} + \arg{sym-font-1} \arg{slot-1}\\ + \null\hfill \arg{sym-font-2} \arg{slot-2} +\end{decl} + +Defines \m{cmd} to be a radical where the small variant is in +slot \m{slot-1} of symbol font \m{sym-font-1} and the +large variant is in slot \m{slot-2} of symbol font +\m{sym-font-2}. Both symbol fonts must have been declared +previously. + +Example (probably the only use for it!): +\begin{verbatim} + \DeclareMathRadical{\sqrt}{symbols}{"70}{largesymbols}{"70} +\end{verbatim} + +\subsection{Declaring math sizes} + +\begin{decl} +|\DeclareMathSizes| \arg{t-size} \arg{mt-size} \arg{s-size} + \arg{ss-size} +\end{decl} + +Declares that \m{mt-size} is the (main) math text size, \m{s-size} is +the `script' size and \m{ss-size} the `scriptscript' size to be used +in math, when \m{t-size} is the current text size. For text sizes for +which no such declaration is given the `script' and `scriptscript' +size will be calculated and then fonts are loaded for the calculated +sizes or the best approximation (this may result in a warning +message). + +Normally, \m{t-size} and \m{mt-size} will be identical; however, if, +for example, PostScript text fonts are mixed with bit-map math fonts +then you may not have available a \m{mt-size} for every \m{t-size}. + +Example: +\begin{verbatim} + \DeclareMathSizes{13.82}{14.4}{10}{7} +\end{verbatim} + +\section{Font installation} +\label{Sec:install} + +This section explains how \LaTeX's font attributes are turned into +\TeX{} font specifications. + +\subsection{Font definition files} + +\NEWdescription{1997/12/01} +The description of how \LaTeX{} font attributes are turned into \TeX{} +fonts is usually kept in a \emph{font definition file} (|.fd|). The +file for family \m{family} in encoding \m{ENC} must be +called |<enc><family>.fd|: for example, |ot1cmr.fd| for Computer +Modern Roman with encoding |OT1| or |t1ptm.fd| for Adobe Times with +encoding |T1|. Note that encoding names are converted to lowercase +when used as part of file names. + +Whenever \LaTeX{} encounters an encoding/family combination that it +does not know (e.g.~if the document designer says +|\fontfamily{ptm}\selectfont|) then \LaTeX{} attempts to load the +appropriate |.fd| file. ``Not known'' means: there was no +|\DeclareFontFamily| declaration issued for this encoding/family +combination. If the |.fd| file could not be found, a warning is +issued and font substitutions are made. + +The declarations in the font definition file are responsible for +telling \LaTeX{} how to load fonts for that encoding/family +combination. + +\subsection{Font definition file commands} + +\emph{Note}: A font definition file should contain only commands +from this subsection. + +Note that these commands can also be used outside a font definition +file: they can be put in package or class files, or even in the +preamble of a document. + +\begin{decl} + |\ProvidesFile{<file-name>}[<release-info>]| +\end{decl} +The file should announce itself with a |\ProvidesFile| command, +as described in \emph{\clsguide}. For example: +\begin{verbatim} + \ProvidesFile{t1ptm.fd}[1994/06/01 Adobe Times font definitions] +\end{verbatim} + +Spaces within the arguments specific to font definition files are +ignored to avoid surplus spaces in the document. If a real space is +necessary use |\space|. +\NEWdescription{2004/02/10}However, note that this is only true if the +declaration is made at top level! If used within the definition of +another command, within |\AtBeginDocument|, option code or in similar +places, then spaces within the argument will remain and may result in +incorrect table entries. + +\begin{decl} +|\DeclareFontFamily| \arg{encoding} \arg{family} \arg{loading-settings} +\end{decl} + +Declares a font family \m{family} to be available in encoding scheme +\m{encoding}. + +The \m{loading-settings} are executed immediately after loading any +font with this encoding and family. + +Checks that \m{encoding} was previously declared. + +This example refers to the Computer Modern Typewriter font family in +the Cork encoding: +\begin{verbatim} + \DeclareFontFamily{T1}{cmtt}{\hyphenchar\font=-1} +\end{verbatim} + +Each |.fd| file should contain exactly one |\DeclareFontFamily| +command, and it should be for the appropriate encoding/family +combination. + +\begin{decl} +|\DeclareFontShape| \arg{encoding} \arg{family} \arg{series} + \arg{shape}\\ + \null\hfill \arg{loading-info} \arg{loading-settings} +\end{decl} + +Declares a font shape combination; here \m{loading-info} contains the +information that combines sizes with external fonts. The syntax is +complex and is described in Section~\ref{sec:loadinfo} below. + +The \m{loading-settings} are executed after loading any font with this +font shape. They are executed immediately after the +`loading-settings' which were declared by |\DeclareFontFamily| and so +they can be used to overwrite the settings made at the family level. + +Checks that the combination \m{encoding}\m{family} was previously +declared via |\DeclareFontFamily|. + +Example: +\begin{verbatim} + \DeclareFontShape{OT1}{cmr}{m}{sl}{% + <<5-8>> sub * cmr/m/n + <<8>> cmsl8 + <<9>> cmsl9 + <<10>> <<10.95>> cmsl10 + <<12>> <<14.4>> <<17.28>> <<20.74>> <<24.88>> cmsl12 + }{} +\end{verbatim} +The file can contain any number of |\DeclareFontShape| commands, +which should be for the appropriate \m{encoding} and \m{family}. + +\NEWfeature{1996/06/01} +The font family declarations for the |OT1|-encoded fonts now all +contain: +\begin{verbatim} + \hyphenchar\font=`\- +\end{verbatim} +This enables the use of an alternative |\hyphenchar| in other encodings +whilst maintaining the correct value for all fonts. + +\subsection{Font file loading information} +\label{sec:loadinfo} + +The information which tells \LaTeX{} exactly which font ({\tt .tfm}) +files to load is contained in the \m{loading-info} part of a +|\DeclareFontShape| declaration. This part consists of one or more +\m{fontshape-decl}s, each of which has the following form: + +\begin{center} +\begin{tabular}{r@{ $::=$ }l} + \m{fontshape-decl} & \m{size-infos} \m{font-info} \\ + \m{size-infos} & \m{size-infos} \m{size-info} $\mid$ + \m{size-info} \\ + \m{size-info} & ``|<<|'' \m{number-or-range} ``|>>|'' \\ + \m{font-info} & $[$ \m{size-function} ``|*|'' $]$ + $[$ ``|[|'' \m{optarg} ``|]|'' $]$ \m{fontarg} \\ +\end{tabular} +\end{center} +The \m{number-or-range} denotes the size or size-range +for which this entry applies. + +If it contains a hyphen it is a +range: lower bound on the left (if missing, zero implied), upper bound +on the right (if missing, $\infty$ implied). For ranges, the +upper bound is \emph{not} included in the range and the lower bound is. + +Examples: +\begin{center} +\begin{tabular}{lll} + |<<10>>| & simple size& 10pt only\\ + |<<-8>>| & range& all sizes less than 8pt\\ + |<<8-14.4>>| & range& all sizes greater than or equal to 8pt\\ + & & \ but less than 14.4pt\\ + |<<14.4->>| & range& all sizes greater than or equal 14.4pt +\end{tabular} +\end{center} +If more than one \m{size-info} entry follows without any +intervening \m{font-info}, they all share the next \m{font-info}. + +The \m{size-function}, if present, handles the use of \m{font-info}. +If not present, the `empty' \m{size-function} is assumed. + +All the \m{size-info}s are inspected in the order in which they appear +in the font shape declaration. If a \m{size-info} matches the +requested size, its \m{size-function} is executed. If |\external@font| +is non-empty afterwards this process stops, otherwise the next +\m{size-info} is inspected. (See also |\DeclareSizeFunction|.) + +If this process does not lead to a non-empty |\external@font|, +\LaTeX{} tries the nearest simple size. If the entry contains only +ranges an error is returned. + + +\subsection{Size functions} +\label{sec:sizefunct} + + +\LaTeX{} provides the following size functions, whose `inputs' are +\m{fontarg} and \m{optarg} (when present). + +\begin{description} +\item[`' (empty)] +Load the external font \m{fontarg} at the user-requested size. If +\m{optarg} is present, it is used as the scale-factor. + +\item[s] +Like the empty function but without terminal warnings, only +loggings. + +\item[gen] +Generates the external font from \m{fontarg} followed by +the user-requested size, e.g.~|<<8>> <<9>> <<10>> gen * cmtt| + +\item[sgen] +Like the `gen' function but without terminal warnings, only loggings. + +\item[genb] +\NEWfeature{1995/12/01} +Generates the external font from \m{fontarg} followed by +the user-requested size, using the conventions of the `ec' fonts. +e.g.~|<<10.98>> genb * dctt| produces |dctt1098|. + +\item[sgenb] +\NEWfeature{1995/12/01} +Like the `genb' function but without terminal warnings, only loggings. + +\item[sub] +Tries to load a font from a different font shape declaration given by +\m{fontarg} in the form \m{family}|/|\m{series}|/|\m{shape}. + +\item[ssub] +Silent variant of `sub', only loggings. + +\item[subf] +Like the empty function but issues a warning that it has to substitute +the external font \m{fontarg} because the desired font shape was not +available in the requested size. + +\item[ssubf] +Silent variant of `subf', only loggings. + +\item[fixed] +Load font \m{fontarg} as is, disregarding the user-requested size. +If present, \m{optarg} gives the ``at \ldots pt'' size to be used. + +\item[sfixed] +Silent variant of `fixed', only loggings. + +\end{description} + +Examples for the use of most of the above size functions can be found +in the file |cmfonts.fdd|---the source for the standard |.fd| files +describing the Computer Modern fonts by Donald Knuth. + + +\begin{decl} +|\DeclareSizeFunction| \arg{name} \arg{code} +\end{decl} + +Declares a size-function \m{name} for use in |\DeclareFontShape| +commands. The interface is still under development but there should be +no real need to a define new size functions. + +The \m{code} is executed when the size or size-range in +|\DeclareFontShape| matches the user-requested size. + +The arguments of the size-function are automatically parsed and placed +into |\mandatory@arg| and |\optional@arg| for use in \m{code}. Also +available, of course, is |\f@size|, which is the user-requested size. + +To signal success \m{code} must define the command |\external@font| +to contain the external name and any scaling options (if present) for +the font to be loaded. + +This example sets up the `empty' size function (simplified): +\begin{verbatim} + \DeclareSizeFunction{} + {\edef\external@font{\mandatory@arg\space at\f@size} +\end{verbatim} + + +\section{Encodings} +\label{Sec:encode} + +This section explains how to declare and use new font encodings and +how to declare commands for use with particular encodings. + +\subsection{The \textsf{fontenc} package} + +Users can select new font encodings using the |fontenc| package. The +|fontenc| package has options for encodings; the last option becomes +the default encoding. For example, to use the |OT2| (Washington +University Cyrillic encoding) and |T1| encodings, with |T1| as the +default, an author types: +\begin{verbatim} + \usepackage[OT2,T1]{fontenc} +\end{verbatim} + +\NEWdescription{1997/12/01} +For each font encoding \m{ENC} given as an option, this package loads +the \emph{encoding definition} (|<enc>enc.def|, with an all +lower-case name) file; it also sets |\encodingdefault| to be the last +encoding in the option list. + +The declarations in the encoding definition file |<enc>enc.def| for +encoding \m{ENC} are responsible for declaring this encoding and +telling \LaTeX{} how to produce characters in this encoding; this file +should contain nothing else (see Section~\ref{Sec:encode.def}. + +The standard \LaTeX{} format declares the |OT1| and |T1| text +encodings by inputting the files |ot1enc.def| and |t1enc.def|; it also +sets up various defaults which require that |OT1|-encoded fonts are +available. +Other encoding set-ups might be added to the distribution at a +later stage. + +Thus the example above loads the files |ot2enc.def| and |t1enc.def| +and sets |\encodingdefault| to |T1|. + +\emph{Warning}: If you wish to use |T1|-encoded fonts other than the `cmr' +family then you may need to load the package (e.g.~\texttt{times}) +that selects the fonts \emph{before} loading \texttt{fontenc} (this +prevents the system from attempting to load any |T1|-encoded fonts from +the `cmr' family). + +\subsection{Encoding definition file commands} +\label{Sec:encode.def} + +\emph{Note}: An encoding definition file should contain only commands +from this subsection. + +\NEWdescription{1997/12/01} +As with the font definition file commands, it is also possible +(although normally not necessary) to use these declarations directly +within a class or package file. + +\emph{Warning}: Some aspects of the contents of font definition files +are still under development. Therefore, the current versions of the +files |ot1enc.def| and |t1enc.def| are temporary versions and should +not be used as models for producing further such files. For further +information you should read the documentation in |ltoutenc.dtx|. + +\begin{decl} + |\ProvidesFile{<file-name>}[<release-info>]| +\end{decl} +The file should announce itself with a |\ProvidesFile| +command, described in \emph{\clsguide}. For example: +\begin{verbatim} + \ProvidesFile{ot2enc.def} + [1994/06/01 Washington University Cyrillic encoding] +\end{verbatim} + + +\begin{decl} +|\DeclareFontEncoding| \arg{encoding} \arg{text-settings} + \arg{math-settings} +\end{decl} + +Declares a new encoding scheme \m{encoding}. + +The \m{text-settings} are +declarations which are executed every time |\selectfont| changes the +encoding to be \m{encoding}. + +The \m{math-settings} are similar but are for math alphabets. They +are executed whenever a math alphabet with this encoding is +called. + +\NEWfeature{1998/12/01} +It also saves the value of \m{encoding} in the macro +|\LastDeclaredEncoding|. + +Example: +\begin{verbatim} + \DeclareFontEncoding{OT1}{}{} +\end{verbatim} + +Some author commands need to change their definition depending on +which encoding is currently in use. For example, in the |OT1| +encoding, the letter `\AE' is in slot |"1D|, whereas in the |T1| +encoding it is in slot |"C6|. So the definition of |\AE| has to +change depending on whether the current encoding is |OT1| or |T1|. +The following commands allow this to happen. + +\begin{decl} + |\DeclareTextCommand| \arg{cmd} \arg{encoding} + \oarg{num} \oarg{default} \arg{definition} +\end{decl} +This command is like |\newcommand|, except that it defines a +command which is specific to one encoding. For example, the +definition of |\k| in the |T1| encoding is: +\begin{verbatim} + \DeclareTextCommand{\k}{T1}[1] + {\oalign{\null#1\crcr\hidewidth\char12}} +\end{verbatim} +|\DeclareTextCommand| takes the same optional arguments as +|\newcommand|. + +The resulting command is +robust, even if the code in \m{definition} is fragile. + +It does not produce an error if the command has already +been defined but logs the redefinition in the transcript file. + +\begin{decl}[1994/12/01] + |\ProvideTextCommand| \arg{cmd} \arg{encoding} + \oarg{num} \oarg{default} \arg{definition} +\end{decl} +This command is the same as |\DeclareTextCommand|, except that +if \m{cmd} is already defined in encoding \m{encoding}, then the +definition is ignored. + +\begin{decl} + |\DeclareTextSymbol| \arg{cmd} \arg{encoding} \arg{slot} +\end{decl} +This command defines a text symbol with slot \m{slot} in the +encoding. For example, the definition of |\ss| in the |OT1| encoding +is: +\begin{verbatim} + \DeclareTextSymbol{\ss}{OT1}{25} +\end{verbatim} +It does not produce an error if the command has already +been defined but logs the redefinition in the transcript file. + +\begin{decl} + |\DeclareTextAccent| \arg{cmd} \arg{encoding} \arg{slot} +\end{decl} +This command declares a text accent, with the accent taken from slot +\m{slot} in the encoding. For example, the definition of |\"| in +the |OT1| encoding is: +\begin{verbatim} + \DeclareTextAccent{\"}{OT1}{127} +\end{verbatim} +It does not produce an error if the command has already +been defined but logs the redefinition in the transcript file. + +\begin{decl} + |\DeclareTextComposite| \arg{cmd} \arg{encoding} \arg{letter} + \arg{slot} +\end{decl} +This command declares that the composite letter formed from applying +\m{cmd} to \m{letter} is defined to be simply slot \m{slot} in the +encoding. The \m{letter} should be a single letter (such as |a|) or +a single command (such as |\i|). + + +For example, the definition of |\'{a}| +in the |T1| encoding could be declared like this: +\begin{verbatim} + \DeclareTextComposite{\'}{T1}{a}{225} +\end{verbatim} + +The \m{cmd} will normally have been previously declared +for this encoding, either by using +|\DeclareTextAccent|, or as a one-argument |\DeclareTextCommand|. + +\begin{decl}[1994/12/01] + |\DeclareTextCompositeCommand| \arg{cmd} \arg{encoding} \arg{letter} + \arg{definition} +\end{decl} +This is a more general form of |\DeclareTextComposite|, which allows +for an arbitrary \m{definition}, not just a \m{slot}. The main use +for this is to allow accents on |i| to act like accents on |\i|, for +example: +\begin{verbatim} + \DeclareTextCompositeCommand{\'}{OT1}{i}{\'\i} +\end{verbatim} +It has the same restrictions as |\DeclareTextComposite|. + + +\begin{decl}[1998/12/01] + |\LastDeclaredEncoding| +\end{decl} +This holds the name of the last encoding declared via +|\DeclareFontEncoding| (this should also be the currently most +efficient encoding). It can be used in the \m{encoding} argument +of the above declarations in place of explicitly mentioning the +encoding, e.g. +\begin{verbatim} + \DeclareFontEncoding{T1}{}{} + \DeclareTextAccent{\`}{\LastDeclaredEncoding}{0} + \DeclareTextAccent{\'}{\LastDeclaredEncoding}{1} +\end{verbatim} +This can be useful in cases where encoding files sharing common code +are generated from one source. + + +\subsection{Default definitions} + +\NEWdescription{1997/12/01} +The declarations used in encoding definition files define +encoding-specific commands but they do not allow those commands to be +used without explicitly changing the encoding. For some commands, +such as symbols, this is not enough. For example, the~|OMS| encoding +contains the symbol~`\S', but we need to be able to use the +command~|\S| whatever the current encoding may be, without explicitly +selecting the encoding~|OMS|. + +\NEWdescription{1997/12/01} +To allow this, \LaTeX{} has commands that declare default definitions +for commands; these defaults are used when the command is not defined +in the current encoding. For example, the default encoding for~|\S| +is~|OMS|, and so in an encoding (such as |OT1|) which does not +contain~|\S|, the~|OMS| encoding is selected in order to access this +glyph. But in an encoding (such as~|T1|) which does contain~|\S|, the +glyph in that encoding is used. The standard \LaTeXe{} format sets +up several such defaults using the following encodings: |OT1|,~|OMS| +and~|OML|. + +\emph{Warning}: These commands should \emph{not} occur in encoding +definition files, since those files should declare only commands for use +when that encoding has been selected. They should instead be placed +in packages; they must, of course, always refer to encodings that are +known to be available. + +\begin{decl}[1994/12/01] + |\DeclareTextCommandDefault| \arg{cmd} \arg{definition} +\end{decl} +This command allows an encoding-specific command to be given a default +definition. For example, the default definition for |\copyright| is +defined be be a circled `c' with: +\begin{verbatim} + \DeclareTextCommandDefault{\copyright}{\textcircled{c}} +\end{verbatim} +\begin{decl}[1994/12/01] + |\DeclareTextAccentDefault| \arg{cmd} \arg{encoding} \\ + |\DeclareTextSymbolDefault| \arg{cmd} \arg{encoding} +\end{decl} +These commands allow an encoding-specific command to be given a +default encoding. For example, the default encoding for |\"| and +|\ae| is set to be |OT1| by: +\begin{verbatim} + \DeclareTextAccentDefault{\"}{OT1} + \DeclareTextSymbolDefault{\ae}{OT1} +\end{verbatim} +Note that |\DeclareTextAccentDefault| can be used on any one-argument +encoding-specific command, not just those defined with +|\DeclareTextAccent|. Similarly, |\DeclareTextSymbolDefault| can be +used on any encoding-specific command with no arguments, not just +those defined with |\DeclareTextSymbol|. + +For more examples of these definitions, see |ltoutenc.dtx|. + +\begin{decl}[1994/12/01] + |\ProvideTextCommandDefault| \arg{cmd} \arg{definition} +\end{decl} +This command is the same as |\DeclareTextCommandDefault|, except that +if the command already has a default definition, then the definition +is ignored. This is useful to give `faked' definitions of symbols +which may be given `real' definitions by other packages. For example, +a package might give a fake definition of |\textonequarter| by saying: +\begin{verbatim} + \ProvideTextCommandDefault{\textonequarter}{$\m@th\frac14$} +\end{verbatim} + + \subsection{Encoding defaults} + +\begin{decl} +|\DeclareFontEncodingDefaults| \arg{text-settings} \arg{math-settings} +\end{decl} + +Declares \m{text-settings} and \m{math-settings} for all encoding +schemes. These are executed before the encoding scheme dependent ones +are executed so that one can use the defaults for the major cases and +overwrite them if necessary using |\DeclareFontEncoding|. + +If |\relax| is used as an argument, the current setting of this default +is left unchanged. + +This example is used by amsfonts.sty for accent positioning; it changes +only the math settings: +\begin{verbatim} + \DeclareFontEncodingDefaults{\relax}{\def\accentclass@{7}} +\end{verbatim} + + +\begin{decl} +|\DeclareFontSubstitution| \arg{encoding} \arg{family} \arg{series} + \arg{shape} +\end{decl} + +Declares the default values for font substitution which will be used +when a font with encoding \m{encoding} +should be loaded but no font can be found with the current +attributes. + +These substitutions are local to the encoding scheme because the +encoding scheme is never substituted! They are tried in the order +\m{shape} then \m{series} and finally \m{family}. + +If no defaults are set up for an encoding, the values given by +|\DeclareErrorFont| are used. + +The font specification for +\m{encoding}\m{family}\m{series}\m{shape} +must have been defined by |\DeclareFontShape| +before the |\begin{document}| is reached. + +Example: +\begin{verbatim} + \DeclareFontSubstitution{T1}{cmr}{m}{n} +\end{verbatim} + +\subsection{Case changing} +\label{sec:case} + +\begin{decl} + |\MakeUppercase| \arg{text} \\ + |\MakeLowercase| \arg{text} +\end{decl} + +\NEWfeature{1995/06/01} +\TeX{} provides the two primitives |\uppercase| and |\lowercase| for +changing the case of text. Unfortunately, these \TeX{} primitives do +not change the case of characters accessed by commands like |\ae| or +|\aa|. To overcome this problem, \LaTeX{} provides these two commands. + +In the long run, we would like to use all-caps fonts rather than any +command like |\MakeUppercase| but this is not possible at the moment +because such fonts do not exist. + +For further details, see \texttt{clsguide.tex}. + +\NEWdescription{1999/04/23} +In order that upper/lower-casing will work reasonably well, and in +order to provide any correct hyphenation, \LaTeXe{} \emph{must} use, +throughout a document, the same fixed table for changing case. The +table used is designed for the font encoding |T1|; this works well +with the standard \TeX{} fonts for all Latin alphabets but will cause +problems when using other alphabets. As an experiment, it has now +been extended for use with some Cyrillic encodings. + + +\section{Miscellanea} +\label{Sec:misc} + +This section covers the remaining font commands in \LaTeX{} and some +other issues. + +\subsection{Font substitution} + +\begin{decl} +|\DeclareErrorFont| \arg{encoding} \arg{family} \arg{series} + \arg{shape} \arg{size} +\end{decl} + +Declares \m{encoding}\m{family}\m{series}\m{shape} to be the font shape +used in cases where the standard substitution mechanism fails +(i.e.~would loop). For the standard mechanism see the command +|\DeclareFontSubstitution| above. + +The font specification for +\m{encoding}\m{family}\m{series}\m{shape} +must have been defined by |\DeclareFontShape| +before the |\begin{document}| is reached. + +Example: +\begin{verbatim} + \DeclareErrorFont{OT1}{cmr}{m}{n}{10} +\end{verbatim} + + +\begin{decl} +|\fontsubfuzz| +\end{decl} + +This parameter is used to decide whether or not to produce a terminal +warning if a font size substitution takes place. If the difference +between the requested and the chosen size is less than |\fontsubfuzz| +the warning is only written to the transcript file. The default value +is |0.4pt|. This can be redefined with |\renewcommand|, for example: +\begin{verbatim} + \renewcommand{\fontsubfuzz}{0pt} % always warn +\end{verbatim} + +\subsection{Preloading} + +\begin{decl} +|\DeclarePreloadSizes| \arg{encoding} \arg{family} \arg{series} + \arg{shape} +\arg{size-list} +\end{decl} + + +Specifies the fonts that should be preloaded by the format. These +commands should be put in a |preload.cfg| file, which is read in when +the \LaTeX{} format is being built. +Read |preload.dtx| for more information on how to built such a +configuration file. + +Example: +\begin{verbatim} + \DeclarePreloadSizes{OT1}{cmr}{m}{sl}{10,10.95,12} +\end{verbatim} + + +\subsection{Accented characters} + +\NEWdescription{1996/06/01} +Accented characters in \LaTeX{} can be produced using commands such as +|\"a| etc. The precise effect of such commands depends on the font +encoding being used. When using a font encoding that contains the +accented characters as individual glyphs (such as the |T1| encoding, +in the case of |\"a|) words that contain such accented characters can +be automatically hyphenated. For font encodings that do not contain +the requested individual glyph (such as the |OT1| encoding) such a +command invokes typesetting instructions that produce the accented +character as a combination of character glyphs and diacritical marks +in the font. In most cases this involves a call to the \TeX{} +primitive |\accent|. Glyphs constructed as composites in this way +inhibit hyphenation of the current word; this is one reason why the +|T1| encoding is preferable to the original \TeX{} font encoding +|OT1|. + +It is important to understand that commands like |\"a| in \LaTeXe{} +represent just a name for a single glyph (in this case `umlaut a') and +contain no information about how to typeset that glyph---thus it does +\emph{not} mean `put two dots on top of the character a'. The +decision as to what typesetting routine to use will depend on the +encoding of the current font and so this decision is taken at the last +minute. Indeed, it is possible that the same input will be typeset in +more than one way in the same document; for example, text in section +headings may also appear in table of contents and in running heads; and +each of these may use a font with a different encoding. + +For this reason the notation |\"a| is \emph{not} equivalent to: +\begin{verbatim} + \newcommand \chara {a} \"\chara +\end{verbatim} +In the latter case, \LaTeX{} does not expand the macro |\chara| but +simply compares the notation (the string |\"\chara|) to its list of +known composite notations in the current encoding; when it fails to +find |\"\chara| it does the best it can and invokes the typesetting +instructions that put the umlaut accent on top of the expansion of +|\chara|. Thus, even if the font actually contains `\"a' as an +individual glyph, it will not be used. + +The low-level accent commands in \LaTeX{} are defined in such a way +that it is possible to combine a diacritical mark from one font with a +glyph from another font; for example, |\"\textparagraph| will produce +\"\textparagraph. The umlaut here +is taken from the |OT1| encoded font |cmr10| whilst the paragraph sign +is from the |OMS| encoded font |cmsy10|. (This example may be +typographically silly but better ones would involve font encodings +like |OT2| (Cyrillic) that might not be available at every +site.) + +There are, however, restrictions on the font-changing commands that +will work within the argument to such an accent command. These are +\TeX{}nical in the sense that they follow from the way that \TeX{}'s +|\accent| primitive works, allowing only a special class of commands +between the accent and the accented character. + +The following are examples of commands that will not work correctly as +the accent will appear above a space: the font commands with text +arguments (|\textbf{...}| and friends); all the font size declarations +(|\fontsize| and |\Large|, etc.); |\usefont| and declarations that +depend on it, such as |\normalfont|; box commands (e.g.~|\mbox{...}|). + +The lower-level font declarations that set the attributes family, +series and shape (such as |\fontshape{sl}\selectfont|) will produce +correct typesetting, as will the default declarations such as +|\bfseries|. + + +\subsection{Naming conventions} + +\begin{itemize} +\item +Math alphabet commands all start with |\math...|: examples are +|\mathbf|, |\mathcal|, etc. + +\item +The text font changing commands with arguments all start with +|\text...|: e.g.~|\textbf| and |\textrm|. The exception to this is +|\emph|, since it occurs very commonly in author documents and so +deserves a shorter name. + +\item +Names for encoding schemes are strings of up to three letters (all +upper case) plus digits. + +The \LaTeX3 project reserves the use of encodings starting with the +following letters: |T| (standard 256-long text encodings), |TS| +(symbols that are designed to extend a corresponding |T| encoding), +|X| (text encodings that do not conform to the strict requirements for +|T| encodings), |M| (standard 256-long math encodings), |S| (other +symbol encodings), |A| (other special applications), |OT| (standard +128-long text encodings) and |OM| (standard 128-long math encodings). + +Please do not use the above starting letters for non-portable +encodings. If new standard encodings emerge then we shall add them in +a later release of \LaTeX. + +Encoding schemes which are local to a site or a system should start +with |L|, experimental encodings intended for wide distribution will +start with |E|, whilst |U| is for Unknown or Unclassified encodings. + +\item +Font family names should contain up to five lower case letters. +Where possible, these should conform to the \emph{Filenames for fonts} +font naming scheme. + +\item +Font series names should contain up to four lower case letters. + +\item +Font shapes should contain up to two letters lower case. + +\item +Names for symbol fonts are built from lower and upper case letters +with no restriction. +\end{itemize} + +Whenever possible, you should use the series and shape names suggested +in \emph{\LaTeXcomp} since this will make it easier to combine new +fonts with existing fonts. + +\NEWdescription{1994/12/01} + Where possible, text symbols should be named as |\text| followed by + the Adobe glyph name: for example |\textonequarter| or + |\textsterling|. Similarly, math symbols should be named as + |\math| followed by the glyph name, for example |\mathonequarter| + or |\mathsterling|. Commands which can be used in text or math can + then be defined using |\ifmmode|, for example: +\begin{verbatim} + \DeclareRobustCommand{\pounds}{% + \ifmmode \mathsterling \else \textsterling \fi + } +\end{verbatim} + Note that commands defined in this way must be robust, in case they + get put into a section title or other moving argument. + +\section{If you need to know more \ldots} + +\NEWdescription{1996/06/01} +The |tracefnt| package provides for tracing the actions concerned with +loading, substituting and using fonts. +The package accepts the following options: +\begin{description} +\item[errorshow] Write all information about font changes, etc.\ but + only to the transcript file unless an error occurs. This means that + information about font substitution will not be shown on the + terminal. + +\item[warningshow] Show all font warnings on the terminal. This + setting corresponds to the default behaviour when this + \texttt{tracefnt} package is \emph{not} used! + +\item[infoshow] Show all font warnings and all font info messages + (that are normally only written to the transcript file) also on the + terminal. This is the default when this \texttt{tracefnt} package is + loaded. + +\item[debugshow] In addition to what is shown by \texttt{infoshow}, + show also changes of math fonts (as far as possible): beware, this + option can produce a large amount of output. + +\item[loading] Show the names of external font files when they are + loaded. This option shows only `newly loaded' fonts, not those + already preloaded in the format or the class file before this + \texttt{tracefnt} package becomes active. + +\item[pausing] + Turn all font warnings into errors so that \LaTeX{} will stop. +\end{description} + +\emph{Warning}: The actions of this package can change the layout of a +document and even, in rare cases, produce clearly wrong output, so +it should not be used in the final formatting of `real documents'. + +\begin{thebibliography}{1} + +\bibitem{A-W:MG2004} +Frank Mittelbach and Michel Goossens. +\newblock {\em The {\LaTeX} Companion second edition}. +\newblock With Johannes Braams, David Carlisle, and Chris Rowley. +\newblock Addison-Wesley, Reading, Massachusetts, 2004. + +\bibitem{tub:DKn89} +Donald~E. Knuth. +\newblock Typesetting concrete mathematics. +\newblock {\em {TUG}boat}, 10(1):31--36, April 1989. + +\bibitem{A-W:LLa94} +Leslie Lamport. +\newblock {\em {\LaTeX:} A Document Preparation System}. +\newblock Addison-Wesley, Reading, Massachusetts, second edition, 1994. + +\end{thebibliography} + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/fontdef.dtx b/Master/texmf-dist/source/latex/base/fontdef.dtx index 4d9f5b35cd5..df87680f7ab 100644 --- a/Master/texmf-dist/source/latex/base/fontdef.dtx +++ b/Master/texmf-dist/source/latex/base/fontdef.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/format.ins b/Master/texmf-dist/source/latex/base/format.ins index 8d05e13d3af..a5485a3a0be 100644 --- a/Master/texmf-dist/source/latex/base/format.ins +++ b/Master/texmf-dist/source/latex/base/format.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". @@ -74,7 +74,7 @@ extension .ins) which are part of the distribution. This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -82,12 +82,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without diff --git a/Master/texmf-dist/source/latex/base/graphpap.dtx b/Master/texmf-dist/source/latex/base/graphpap.dtx index e16442017dc..4c34aaaa2aa 100644 --- a/Master/texmf-dist/source/latex/base/graphpap.dtx +++ b/Master/texmf-dist/source/latex/base/graphpap.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/graphpap.ins b/Master/texmf-dist/source/latex/base/graphpap.ins index 93a347633e8..b48b9cf576b 100644 --- a/Master/texmf-dist/source/latex/base/graphpap.ins +++ b/Master/texmf-dist/source/latex/base/graphpap.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/ifthen.dtx b/Master/texmf-dist/source/latex/base/ifthen.dtx index 18c24bd6631..4569babc8fb 100644 --- a/Master/texmf-dist/source/latex/base/ifthen.dtx +++ b/Master/texmf-dist/source/latex/base/ifthen.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ifthen.ins b/Master/texmf-dist/source/latex/base/ifthen.ins index 22d40efbb6c..dc0eca54690 100644 --- a/Master/texmf-dist/source/latex/base/ifthen.ins +++ b/Master/texmf-dist/source/latex/base/ifthen.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/inputenc.dtx b/Master/texmf-dist/source/latex/base/inputenc.dtx index 2ebd81f6288..3fc18039b06 100644 --- a/Master/texmf-dist/source/latex/base/inputenc.dtx +++ b/Master/texmf-dist/source/latex/base/inputenc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -46,7 +46,7 @@ %</driver> % \fi % -% \CheckSum{3415} +% \CheckSum{3463} % %% \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 @@ -138,6 +138,8 @@ % THIS MAY CHANGE} % \changes{v0.95}{1997/12/20}{Updated documentation} % \changes{v0.97}{1998/03/05}{Spanish ords changed to text chars, pr/2579} +% \changes{v1.1b}{2006/03/04}{Number of normalisations in the LICR +% representation (pr/3849)} % % % \section{Introduction} @@ -187,6 +189,9 @@ % \texttt{cp1252,ansinew} the latter only used for the provides % file line.} for |cp1252|). % \end{itemize} +% See also the file \texttt{utf8ienc.dtx} that provides UTF8 support using the +% \textsf{inputenc} package interface. +% % Each encoding has an associated |.def| file, for example % |latin1.def| which defines the behaviour of each input character, % using the commands: @@ -223,6 +228,31 @@ % See the documentation in |fntguide.tex| and |ltoutenc.dtx| for % details of how to declare text commands. % +% \subsection{Programmers interface} +% +% To better support packages that manage their own character mappings and +% therefore have to react to input encoding changes, the following three +% commands have been added in version 1.1a: +% +% \DescribeMacro\inputencodingname This command stores the name of the current +% input encoding. +% +% \DescribeMacro\inpenc@prehook +% \DescribeMacro\inpenc@posthook These two are token registers that are +% executed whenever an |\inputencoding| change happens. The first is executed at +% the very beginning, i.e., with |\inputencodingname| still pointing to the +% encoding name currently in place while the second one is executed at the very +% end, i.e., when |\inputencoding| has build a new mapping. +% +% Packages making use of this new features should consider including the +% following line +%\begin{verbatim} +% \NeedsTeXFormat{LaTeX2e}[2005/12/01] +%\end{verbatim} +% as these commands haven't been available in \textsf{inputenc} distributed +% with older releases of \LaTeX{}. +% + % \StopEventually{} % % \section{Announcing the files} @@ -252,7 +282,7 @@ %<ansinew> \ProvidesFile{ansinew.def} %<cp1252&!ansinew> \ProvidesFile{cp1252.def} %<cp1250> \ProvidesFile{cp1250.def} - [2004/02/05 v1.0d Input encoding file] + [2006/05/05 v1.1b Input encoding file] %<cp850>%% %<cp850>%% If you need a euro symbol, try cp858 instead. %<cp850>%% @@ -390,6 +420,12 @@ % % \begin{macrocode} \def\inputencoding#1{% +% \end{macrocode} +% We start with a hook to be executed before the encoding change +% happens. +% \changes{v1.1a}{2006/02/22}{Added \cs{inpenc@prehook}} +% \begin{macrocode} + \the\inpenc@prehook \gdef\@inpenc@test{\global\let\@inpenc@test\relax}% % \end{macrocode} % Keyboard characters which don't get a definition will be mapped to @@ -407,6 +443,13 @@ % |\CurrentOption| in which case a later use would return incorrect % information (at best nothing). % +% For external lookup by other packages we also store the new encoding name +% in a user accessible macro. +% \changes{v1.1a}{2006/02/22}{Added \cs{inputencodingname}} +% \begin{macrocode} + \edef\inputencodingname{#1}% +% \end{macrocode} +% % Now we make all potential input characters active. % \changes{v0.994}{2000/01/27}{Allow change also in horizontal mode % (pr/2888)} @@ -421,11 +464,13 @@ % we need to ensure that we don't get any stray spaces into the % horizontal mode or else we end up with extra space in the % paragraph. -% \changes{v0.998}{2001/05/25}{suppress all spaces for horizontal mode +% \changes{v0.998}{2001/05/25}{Suppress all spaces for horizontal mode % (pr/3273)} +% \changes{v1.0f}{2004/05/06}{Really do (pr/3273)} % \begin{macrocode} \advance\endlinechar\@M \xdef\saved@space@catcode{\the\catcode`\ }% + \catcode`\ 9\relax \input{#1.def}% \advance\endlinechar-\@M \catcode`\ \saved@space@catcode\relax @@ -439,11 +484,30 @@ {No characters defined\MessageBreak by input encoding change to `#1'\MessageBreak}% \fi +% \end{macrocode} +% We finish with a hook to be executed after the encoding change +% happens. +% \changes{v1.1a}{2006/02/22}{Added \cs{inpenc@posthook}} +% \begin{macrocode} + \the\inpenc@posthook } % \end{macrocode} % \end{macro} % % +% \begin{macro}{\inpenc@prehook} +% \changes{v1.1a}{2006/02/22}{Hook added} +% \begin{macro}{\inpenc@posthook} +% \changes{v1.1a}{2006/02/22}{Hook added} +% Two hooks to be executed before and after an encoding changes happened. +% \begin{macrocode} +\newtoks\inpenc@prehook +\newtoks\inpenc@posthook +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% % \begin{macro}{\@inpenc@undefined@} % This command will assigned to any active character unless it % get a proper definition by the encoding. The argument is the @@ -542,15 +606,15 @@ %<*cp850|cp858|cp852|cp865|cp437|cp437de|applemac|cp1252|cp1250|cp1257|next> \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}} %</cp850|cp858|cp852|cp865|cp437|cp437de|applemac|cp1252|cp1250|cp1257|next> -%<*latin1|decmulti|latin3|latin5|cp850|cp858|cp852|cp1252|next> +%<*latin1|decmulti|latin3|latin5|cp850|cp858|cp852|cp1252|cp1257|next> \ProvideTextCommandDefault{\textonehalf}{\ensuremath{\frac12}} -%</latin1|decmulti|latin3|latin5|cp850|cp858|cp852|cp1252|next> -%<*latin1|decmulti|latin5|cp850|cp858|cp852|cp1252|next> +%</latin1|decmulti|latin3|latin5|cp850|cp858|cp852|cp1252|cp1257|next> +%<*latin1|decmulti|latin5|cp850|cp858|cp852|cp1252|cp1257|next> \ProvideTextCommandDefault{\textonequarter}{\ensuremath{\frac14}} -%</latin1|decmulti|latin5|cp850|cp858|cp852|cp1252|next> -%<*latin1|latin5|cp850|cp858|cp852|cp1252|next> +%</latin1|decmulti|latin5|cp850|cp858|cp852|cp1252|cp1257|next> +%<*latin1|latin5|cp850|cp858|cp852|cp1252|cp1257|next> \ProvideTextCommandDefault{\textthreequarters}{\ensuremath{\frac34}} -%</latin1|latin5|cp850|cp858|cp852|cp1252|next> +%</latin1|latin5|cp850|cp858|cp852|cp1252|cp1257|next> %<*applemac|cp850|cp858|cp865|cp437|cp437de|cp1252|next> \ProvideTextCommandDefault{\textflorin}{\textit{f}} %</applemac|cp850|cp858|cp865|cp437|cp437de|cp1252|next> @@ -581,10 +645,14 @@ \ProvideTextCommandDefault{\textyen} {\TextSymbolUnavailable\textyen} %</applemac|cp1252|next> -%<*latin9|cp1252|latin10> +%<*cp1257> +\ProvideTextCommandDefault{\textcent} + {\TextSymbolUnavailable\textcent} +%</cp1257> +%<*latin9|cp1252|cp1257|latin10> \ProvideTextCommandDefault{\texteuro} {\TextSymbolUnavailable\texteuro} -%</latin9|cp1252|latin10> +%</latin9|cp1252|cp1257|latin10> %<*latin1|decmulti|latin2|latin3|latin4|latin5|cp850|cp858|cp852|cp865> \ProvideTextCommandDefault{\textcurrency} {\TextSymbolUnavailable\textcurrency} @@ -593,10 +661,10 @@ \ProvideTextCommandDefault{\textcurrency} {\TextSymbolUnavailable\textcurrency} %</applemac|cp1252|cp1250|cp1257|next> -%<*latin1|latin5|cp850|cp858|cp852|cp1252|cp1250> +%<*latin1|latin5|cp850|cp858|cp852|cp1252|cp1250|cp1257> \ProvideTextCommandDefault{\textbrokenbar} {\TextSymbolUnavailable\textbrokenbar} -%</latin1|latin5|cp850|cp858|cp852|cp1252|cp1250> +%</latin1|latin5|cp850|cp858|cp852|cp1252|cp1250|cp1257> %<*latin3> \ProvideTextCommandDefault{\textmalteseH} {\TextSymbolUnavailable\textmalteseH} @@ -611,16 +679,10 @@ \ProvideTextCommandDefault{\texttstroke} {\TextSymbolUnavailable\texttstroke} %</latin4> -%<*next> -\ProvideTextCommandDefault{\textquotesingle} - {\TextSymbolUnavailable\textquotesingle} -\ProvideTextCommandDefault{\capitalogonek} - {\TextSymbolUnavailable\capitalogonek} -%</next> -%<*cp1250|cp1252|applemac|next> +%<*cp1250|cp1252|cp1257|applemac|next> \ProvideTextCommandDefault{\textperthousand} {\TextSymbolUnavailable\textperthousand} -%</cp1250|cp1252|applemac|next> +%</cp1250|cp1252|cp1257|applemac|next> %<*applemacce> \ProvideTextCommandDefault{\textdiv} {\TextSymbolUnavailable\textdiv} @@ -637,18 +699,18 @@ % encoding for math fonts is static. % % \begin{macrocode} -%<*latin1|decmulti|latin5|latin9|cp850|cp858|cp1252|next> +%<*latin1|decmulti|latin5|latin9|cp850|cp858|cp1252|cp1257|next> \providecommand{\mathonesuperior}{{^1}} -%</latin1|decmulti|latin5|latin9|cp850|cp858|cp1252|next> -%<*latin1|decmulti|latin3|latin5|latin9|cp850|cp858|cp1252|next> +%</latin1|decmulti|latin5|latin9|cp850|cp858|cp1252|cp1257|next> +%<*latin1|decmulti|latin3|latin5|latin9|cp850|cp858|cp1252|cp1257|next> \providecommand{\maththreesuperior}{{^3}} -%</latin1|decmulti|latin3|latin5|latin9|cp850|cp858|cp1252|next> +%</latin1|decmulti|latin3|latin5|latin9|cp850|cp858|cp1252|cp1257|next> %<*latin1|decmulti|latin3|latin5|latin9|cp850|cp858|cp865|cp437|cp437de> \providecommand{\mathtwosuperior}{{^2}} %</latin1|decmulti|latin3|latin5|latin9|cp850|cp858|cp865|cp437|cp437de> -%<*cp1252|next> +%<*cp1252|cp1257|next> \providecommand{\mathtwosuperior}{{^2}} -%</cp1252|next> +%</cp1252|cp1257|next> %<*cp865|cp437|cp437de> \providecommand{\mathnsuperior}{{^n}} %</cp865|cp437|cp437de> @@ -657,7 +719,14 @@ % \section{The ASCII encoding} % % The ASCII encoding only allows characters in the range 32--127, so -% we only need to provide an empty |.def| file. +% we only need to provide a more or less empty |.def| file. +% But we supress the warning that would normally appear if there are no +% encoding definitions. +% +% \changes{v1.1b}{2006/03/03}{Suppress unnecessary warning (pr/3849)} +% \begin{macrocode} +%<ascii>\@inpenc@test +% \end{macrocode} % % \changes{v0.94}{1997/12/17}{Merged latin1 with ansinew/cp1252} % @@ -927,7 +996,7 @@ \DeclareInputText{165}{\~I} \DeclareInputText{166}{\c L} \DeclareInputText{167}{\S} -\DeclareInputText{168}{\"\ } +\DeclareInputText{168}{\"{}} \DeclareInputText{169}{\v S} \DeclareInputText{170}{\@tabacckludge=E} \DeclareInputText{171}{\c G} @@ -942,7 +1011,7 @@ \DeclareInputText{180}{\@tabacckludge'{}} \DeclareInputText{181}{\~\i} \DeclareInputText{182}{\c l} -\DeclareInputText{183}{\v\ } +\DeclareInputText{183}{\v{}} \DeclareInputText{184}{\c\ } \DeclareInputText{185}{\v s} \DeclareInputText{186}{\@tabacckludge=e} @@ -1020,7 +1089,7 @@ \DeclareInputText{252}{\"u} \DeclareInputText{253}{\~u} \DeclareInputText{254}{\@tabacckludge=u} -\DeclareInputText{255}{\.\ } +\DeclareInputText{255}{\.{}} %</latin4> % \end{macrocode} % @@ -1131,7 +1200,7 @@ \DeclareInputText{236}{\@tabacckludge`\i} \DeclareInputText{252}{\"u} \DeclareInputText{237}{\@tabacckludge'\i} -\DeclareInputText{253}{\i } +\DeclareInputText{253}{\i} \DeclareInputText{238}{\^\i} \DeclareInputText{254}{\c s} \DeclareInputText{239}{\"\i} @@ -1350,7 +1419,7 @@ % % \begin{macrocode} \DeclareInputText{224}{\@tabacckludge'O} -\DeclareInputText{240}{\textendash} +\DeclareInputText{240}{\-} \DeclareInputText{225}{\ss} \DeclareInputMath{241}{\pm} \DeclareInputText{226}{\^O} @@ -1442,7 +1511,7 @@ \DeclareInputText{167}{\v z} \DeclareInputText{168}{\k E} \DeclareInputText{169}{\k e} -\DeclareInputText{170}{\nobreakspace} % or empty?? +\DeclareInputMath{170}{\lnot} \DeclareInputText{171}{\@tabacckludge'z} \DeclareInputText{172}{\v C} \DeclareInputText{173}{\c s} @@ -1475,7 +1544,7 @@ % % \begin{macrocode} \DeclareInputText{224}{\@tabacckludge'O} -\DeclareInputText{240}{\textendash} +\DeclareInputText{240}{\-} \DeclareInputText{225}{\ss} \DeclareInputText{241}{\H{}} \DeclareInputText{226}{\^O} @@ -1541,14 +1610,14 @@ % % \begin{macrocode} %<*cp437|cp437de|cp865> -\DeclareInputText{128}{{\c C}} +\DeclareInputText{128}{\c C} \DeclareInputText{129}{\"u} \DeclareInputText{130}{\@tabacckludge'e} \DeclareInputText{131}{\^a} \DeclareInputText{132}{\"a} \DeclareInputText{133}{\@tabacckludge`a} \DeclareInputText{134}{\r a} -\DeclareInputText{135}{{\c c}} +\DeclareInputText{135}{\c c} \DeclareInputText{136}{\^e} \DeclareInputText{137}{\"e} \DeclareInputText{138}{\@tabacckludge`e} @@ -1677,8 +1746,8 @@ \DeclareInputMath{239}{\cap} \DeclareInputMath{240}{\equiv} \DeclareInputMath{241}{\pm} -\DeclareInputMath{242}{\ge} -\DeclareInputMath{243}{\le} +\DeclareInputMath{242}{\geq} +\DeclareInputMath{243}{\leq} %\DeclareInputMath{244}{} % upper part of integral sign %\DeclareInputMath{245}{} % lower part of integral sign \DeclareInputMath{246}{\div} @@ -1851,6 +1920,16 @@ % % \changes{v0.99b}{2002/06/16}{Added macce encoding (pr/3433)} % \changes{v1.0d}{2004/02/05}{Reordered code} +% \changes{v1.0g}{2004/05/22}{Changed \cs{textellipsis} to \cs{dots} +% for consistency.} +% \changes{v1.0g}{2004/05/22}{Changed \cs{textdagger} to \cs{dag} +% for consistency.} +% \changes{v1.0g}{2004/05/22}{Changed \cs{textparagraph} to \cs{P} +% for consistency.} +% \changes{v1.0g}{2004/05/22}{Changed \cs{textsection} to \cs{S} +% for consistency.} +% \changes{v1.0g}{2004/05/22}{Changed \cs{textcopyright} to \cs{copyright} +% for consistency.} % \begin{macrocode} %<*applemacce> \DeclareInputText{128}{\"A} @@ -1860,7 +1939,7 @@ \DeclareInputText{134}{\"U} \DeclareInputText{136}{\k a} \DeclareInputText{137}{\v C} -\DeclareInputText{138}{\" a} +\DeclareInputText{138}{\"a} \DeclareInputText{139}{\v c} \DeclareInputText{140}{\@tabacckludge'C} \DeclareInputText{141}{\@tabacckludge'c} @@ -1875,27 +1954,31 @@ % \end{macrocode} % % \begin{macrocode} -\DeclareInputText{160}{\textdagger} +\DeclareInputText{160}{\dag} \DeclareInputText{161}{\textdegree} \DeclareInputText{162}{\k E} \DeclareInputText{163}{\pounds} -\DeclareInputText{164}{\textsection} +\DeclareInputText{164}{\S} \DeclareInputText{165}{\textbullet} -\DeclareInputText{166}{\textparagraph} -\DeclareInputText{167}{\SS} +\DeclareInputText{166}{\P} +\DeclareInputText{167}{\ss} \DeclareInputText{168}{\textregistered} \DeclareInputText{171}{\k e} \DeclareInputText{193}{\@tabacckludge'N} -\DeclareInputText{169}{\textcopyright} +\DeclareInputText{169}{\copyright} \DeclareInputText{184}{\l} \DeclareInputText{196}{\@tabacckludge'n} \DeclareInputText{199}{\guillemotleft} \DeclareInputText{200}{\guillemotright} -\DeclareInputText{201}{\textellipsis} +\DeclareInputText{201}{\dots} \DeclareInputText{202}{\nobreakspace} \DeclareInputText{208}{\textendash} \DeclareInputText{209}{\textemdash} -\DeclareInputText{210}{\textquotedbleft} +% \end{macrocode} +% +% \changes{v1.0e}{2004/05/03}{Typo in \cs{textquotedblleft} (pr/3673)} +% \begin{macrocode} +\DeclareInputText{210}{\textquotedblleft} \DeclareInputText{211}{\textquotedblright} \DeclareInputText{212}{\textquoteleft} \DeclareInputText{213}{\textquoteright} @@ -1987,7 +2070,7 @@ \DeclareInputText{166}{\textflorin} \DeclareInputText{167}{\S} \DeclareInputText{168}{\textcurrency} -\DeclareInputText{169}{\textquotesingle} +\DeclareInputText{169}{\textquoteright} \DeclareInputText{170}{\textquotedblleft} \DeclareInputText{171}{\guillemotleft} \DeclareInputText{172}{\guilsinglleft} @@ -1999,7 +2082,7 @@ \DeclareInputText{178}{\dag} \DeclareInputText{179}{\ddag} \DeclareInputText{180}{\textperiodcentered} -\DeclareInputText{181}{\textbar} +\DeclareInputText{181}{\textbrokenbar} \DeclareInputText{182}{\P} \DeclareInputText{183}{\textbullet} \DeclareInputText{184}{\quotesinglbase} @@ -2023,11 +2106,11 @@ \DeclareInputText{199}{\.{}} \DeclareInputText{200}{\"{}} \DeclareInputMath{201}{\mathtwosuperior} -\DeclareInputText{202}{\textdegree} +\DeclareInputText{202}{\r{}} \DeclareInputText{203}{\c\ } \DeclareInputMath{204}{\maththreesuperior} \DeclareInputText{205}{\H{}} -\DeclareInputText{206}{\capitalogonek{}} +\DeclareInputText{206}{\k\ } \DeclareInputText{207}{\v{}} \DeclareInputText{208}{\textemdash} \DeclareInputMath{209}{\pm} @@ -2054,7 +2137,7 @@ \DeclareInputText{227}{\textordfeminine} \DeclareInputText{228}{\^\i} \DeclareInputText{229}{\"\i} -\DeclareInputMath{230}{\eth} +\DeclareInputText{230}{\dh} \DeclareInputText{231}{\~n} \DeclareInputText{232}{\L} \DeclareInputText{233}{\O} @@ -2078,8 +2161,6 @@ \DeclareInputText{251}{\ss} \DeclareInputText{252}{\th} \DeclareInputText{253}{\"y} -\DeclareInputText{254}{} -\DeclareInputText{255}{} %</next> % \end{macrocode} % @@ -2335,6 +2416,9 @@ % Data for the \LaTeX{} support was mainly provided by Ionel Ciob\^{i}c\u{a} % with additions and corrections taken from\\ % \texttt{http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT}. +% +% \changes{v1.1b}{2006/03/03}{Corrections (pr/3849)} +% % \begin{macrocode} %<*latin10> % \end{macrocode} @@ -2354,7 +2438,11 @@ % \begin{macrocode} \ProvideTextCommandDefault\textpm{\ensuremath\pm} % \end{macrocode} -% +% But why only for this one encoding? (Answer: because it is a new encoding: +% it contains only LICR objects --- Frank) +% \changes{v1.0g}{2004/05/22}{Changed \cs{textpm} to \cs{pm}} +% \changes{v1.1b}{2006/03/03}{Reverted back to \cs{textpm} +% for consistency.} % \begin{macrocode} \DeclareInputText{160}{\nobreakspace} \DeclareInputText{161}{\k A} @@ -2472,8 +2560,6 @@ % for consistency.} % \changes{v0.94}{1997/12/17}{Changed \cs{textdagger} to \cs{dag} % for consistency.} -% \changes{v0.94}{1997/12/17}{Changed \cs{textdagger} to \cs{dag} -% for consistency.} % \changes{v0.94}{1997/12/17}{Changed \cs{textparagraph} to \cs{P} % for consistency.} % \changes{v0.94}{1997/12/17}{Changed \cs{textsection} to \cs{S} @@ -2547,7 +2633,7 @@ \DeclareInputText{188}{\v L}% L caron (L') ? \DeclareInputText{189}{\H{}} \DeclareInputText{190}{\v l}% l caron (l') ? -\DeclareInputText{191}{\. z} +\DeclareInputText{191}{\.z} % \end{macrocode} % % \begin{macrocode} @@ -2579,7 +2665,7 @@ \DeclareInputText{217}{\r U} \DeclareInputText{218}{\@tabacckludge'U} \DeclareInputText{219}{\H U} -\DeclareInputText{220}{\" U} +\DeclareInputText{220}{\"U} \DeclareInputText{221}{\@tabacckludge'Y} \DeclareInputText{222}{\c T} \DeclareInputText{223}{\ss} @@ -2590,7 +2676,7 @@ \DeclareInputText{225}{\@tabacckludge'a} \DeclareInputText{226}{\^a} \DeclareInputText{227}{\u a} -\DeclareInputText{228}{\" a} +\DeclareInputText{228}{\"a} \DeclareInputText{229}{\@tabacckludge'l} \DeclareInputText{230}{\@tabacckludge'c} \DeclareInputText{231}{\c c} @@ -2625,111 +2711,140 @@ %\section{The MS Windows encoding cp1257} % % This is an MS Windows encoding for Baltic languages, -% known as Code Page 1257; it was provided on the web at -% \texttt{http://nad.datapro.lv/LaTeX} and edited by Frank -% to make it consistent with other files. +% known as Code Page 1257; provided by Heiko Oberdiek +% using the mappings to Unicode in +% \texttt{http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT} +% and +% \texttt{http://www.microsoft.com/globaldev/reference/sbcs/1257.mspx}. % +% \changes{v1.1b}{2006/03/03}{Large number of corrections (pr/3849)} % \begin{macrocode} %<*cp1257> +\DeclareInputText{128}{\texteuro} +\DeclareInputText{130}{\quotesinglbase} +\DeclareInputText{132}{\quotedblbase} +\DeclareInputText{133}{\dots} +\DeclareInputText{134}{\dag} +\DeclareInputText{135}{\ddag} +\DeclareInputText{137}{\textperthousand} +\DeclareInputText{139}{\guilsinglleft} +\DeclareInputText{141}{\"{}} +\DeclareInputText{142}{\v{}} +\DeclareInputText{143}{\c\ } +\DeclareInputText{145}{\textquoteleft} +\DeclareInputText{146}{\textquoteright} +\DeclareInputText{147}{\textquotedblleft} +\DeclareInputText{148}{\textquotedblright} +\DeclareInputText{149}{\textbullet} +\DeclareInputText{150}{\textendash} +\DeclareInputText{151}{\textemdash} +\DeclareInputText{153}{\texttrademark} +\DeclareInputText{155}{\guilsinglright} +\DeclareInputText{157}{\@tabacckludge={}} +\DeclareInputText{158}{\k\ } +% \end{macrocode} +% +% \begin{macrocode} \DeclareInputText{160}{\nobreakspace} -\DeclareInputText{161}{\k A} -\DeclareInputText{163}{\c R} +\DeclareInputText{162}{\textcent} +\DeclareInputText{163}{\pounds} \DeclareInputText{164}{\textcurrency} -\DeclareInputText{165}{\~I} -\DeclareInputText{166}{\c L} +\DeclareInputText{166}{\textbrokenbar} \DeclareInputText{167}{\S} -\DeclareInputText{168}{\"\ } -\DeclareInputText{169}{\v S} -\DeclareInputText{170}{\@tabacckludge=E} -\DeclareInputText{171}{\c G} +\DeclareInputText{168}{\O} +\DeclareInputText{169}{\copyright} +\DeclareInputText{170}{\c R} +\DeclareInputText{171}{\guillemotleft} +\DeclareInputMath{172}{\lnot} \DeclareInputText{173}{\-} -\DeclareInputText{174}{\v Z} -\DeclareInputText{175}{\@tabacckludge={}} +\DeclareInputText{174}{\textregistered} +\DeclareInputText{175}{\AE} \DeclareInputText{176}{\textdegree} -\DeclareInputText{177}{\k a} -\DeclareInputText{178}{\k\ } -\DeclareInputText{179}{\c r} +\DeclareInputMath{177}{\pm} +\DeclareInputMath{178}{\mathtwosuperior} +\DeclareInputMath{179}{\maththreesuperior} \DeclareInputText{180}{\@tabacckludge'{}} -\DeclareInputText{181}{\~\i} -\DeclareInputText{182}{\c l} -\DeclareInputText{183}{\v\ } -\DeclareInputText{184}{\c\ } -\DeclareInputText{185}{\v s} -\DeclareInputText{186}{\@tabacckludge=e} -\DeclareInputText{187}{\c g} -\DeclareInputText{189}{\NG} -\DeclareInputText{190}{\v z} -\DeclareInputText{191}{\ng} +\DeclareInputMath{181}{\mu} +\DeclareInputText{182}{\P} +\DeclareInputText{183}{\textperiodcentered} +\DeclareInputText{184}{\o} +\DeclareInputMath{185}{\mathonesuperior} +\DeclareInputText{186}{\c r} +\DeclareInputText{187}{\guillemotright} +\DeclareInputText{188}{\textonequarter} +\DeclareInputText{189}{\textonehalf} +\DeclareInputText{190}{\textthreequarters} +\DeclareInputText{191}{\ae} % \end{macrocode} % % \begin{macrocode} -\DeclareInputText{192}{\@tabacckludge=A} -\DeclareInputText{193}{\@tabacckludge'A} -\DeclareInputText{194}{\=A} -\DeclareInputText{195}{\~A} +\DeclareInputText{192}{\k A} +\DeclareInputText{193}{\k I} +\DeclareInputText{194}{\@tabacckludge=A} +\DeclareInputText{195}{\@tabacckludge'C} \DeclareInputText{196}{\"A} \DeclareInputText{197}{\r A} -\DeclareInputText{198}{\AE} -\DeclareInputText{199}{\=E} +\DeclareInputText{198}{\k E} +\DeclareInputText{199}{\@tabacckludge=E} \DeclareInputText{200}{\v C} \DeclareInputText{201}{\@tabacckludge'E} -\DeclareInputText{202}{\k E} -\DeclareInputText{203}{\"E} +\DeclareInputText{202}{\@tabacckludge'Z} +\DeclareInputText{203}{\.{E}} \DeclareInputText{204}{\c G} \DeclareInputText{205}{\c K} \DeclareInputText{206}{\@tabacckludge=I} \DeclareInputText{207}{\c L} \DeclareInputText{208}{\v S} -\DeclareInputText{209}{\c N} +\DeclareInputText{209}{\@tabacckludge'N} \DeclareInputText{210}{\c N} -\DeclareInputText{211}{\c N} -\DeclareInputText{212}{\^O} +\DeclareInputText{211}{\@tabacckludge'O} +\DeclareInputText{212}{\@tabacckludge=O} \DeclareInputText{213}{\~O} \DeclareInputText{214}{\"O} \DeclareInputMath{215}{\times} -\DeclareInputText{216}{\O} -\DeclareInputText{217}{\k U} -\DeclareInputText{218}{\@tabacckludge'U} +\DeclareInputText{216}{\k U} +\DeclareInputText{217}{\L} +\DeclareInputText{218}{\@tabacckludge'S} \DeclareInputText{219}{\@tabacckludge=U} \DeclareInputText{220}{\"U} -\DeclareInputText{221}{\~U} +\DeclareInputText{221}{\.Z} \DeclareInputText{222}{\v Z} \DeclareInputText{223}{\ss} % \end{macrocode} % % \begin{macrocode} -\DeclareInputText{224}{\@tabacckludge=a} -\DeclareInputText{225}{\@tabacckludge'a} +\DeclareInputText{224}{\k a} +\DeclareInputText{225}{\k i} \DeclareInputText{226}{\@tabacckludge=a} -\DeclareInputText{227}{\~a} +\DeclareInputText{227}{\@tabacckludge'c} \DeclareInputText{228}{\"a} \DeclareInputText{229}{\r a} -\DeclareInputText{230}{\ae} +\DeclareInputText{230}{\k e} \DeclareInputText{231}{\@tabacckludge=e} \DeclareInputText{232}{\v c} \DeclareInputText{233}{\@tabacckludge'e} -\DeclareInputText{234}{\k e} -\DeclareInputText{235}{\"e} -\DeclareInputText{236}{\k g} +\DeclareInputText{234}{\@tabacckludge'z} +\DeclareInputText{235}{\.{e}} +\DeclareInputText{236}{\c g} \DeclareInputText{237}{\c k} \DeclareInputText{238}{\@tabacckludge=\i} -\DeclareInputText{239}{\k l} +\DeclareInputText{239}{\c l} \DeclareInputText{240}{\v s} -\DeclareInputText{241}{\c n} -\DeclareInputText{242}{\k n} -\DeclareInputText{243}{\c k} -\DeclareInputText{244}{\^o} +\DeclareInputText{241}{\@tabacckludge'n} +\DeclareInputText{242}{\c n} +\DeclareInputText{243}{\@tabacckludge'o} +\DeclareInputText{244}{\@tabacckludge=o} \DeclareInputText{245}{\~o} \DeclareInputText{246}{\"o} \DeclareInputMath{247}{\div} -\DeclareInputText{248}{\o} -\DeclareInputText{249}{\k u} -\DeclareInputText{250}{\@tabacckludge'u} +\DeclareInputText{248}{\k u} +\DeclareInputText{249}{\l} +\DeclareInputText{250}{\@tabacckludge's} \DeclareInputText{251}{\@tabacckludge=u} \DeclareInputText{252}{\"u} -\DeclareInputText{253}{\~u} +\DeclareInputText{253}{\.z} \DeclareInputText{254}{\v z} -\DeclareInputText{255}{\.\ } +\DeclareInputText{255}{\.{}} %</cp1257> % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/base/inputenc.ins b/Master/texmf-dist/source/latex/base/inputenc.ins index 245b96995f4..b0cd8420d2a 100644 --- a/Master/texmf-dist/source/latex/base/inputenc.ins +++ b/Master/texmf-dist/source/latex/base/inputenc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". @@ -71,6 +71,8 @@ extension .ins) which are part of the distribution. \endpreamble \keepsilent +\askonceonly + \usedir{tex/latex/base} \Msg{*** Generating input encoding files ***} @@ -142,7 +144,8 @@ extension .ins) which are part of the distribution. \file{ot1enc.dfu}{\from{utf8ienc.dtx}{ot1}} \file{ot2enc.dfu}{\from{utf8ienc.dtx}{ot2}} \file{t1enc.dfu}{\from{utf8ienc.dtx}{t1}} - \file{t2aenc.dfu}{\from{utf8ienc.dtx}{t2a}} + } +\generate{\file{t2aenc.dfu}{\from{utf8ienc.dtx}{t2a}} \file{t2benc.dfu}{\from{utf8ienc.dtx}{t2b}} \file{t2cenc.dfu}{\from{utf8ienc.dtx}{t2c}} \file{ts1enc.dfu}{\from{utf8ienc.dtx}{ts1}} diff --git a/Master/texmf-dist/source/latex/base/latex209.dtx b/Master/texmf-dist/source/latex/base/latex209.dtx index 323a275dfa3..b17c4b3963e 100644 --- a/Master/texmf-dist/source/latex/base/latex209.dtx +++ b/Master/texmf-dist/source/latex/base/latex209.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/latex209.ins b/Master/texmf-dist/source/latex/base/latex209.ins index 74801ea7029..bcf143ebfac 100644 --- a/Master/texmf-dist/source/latex/base/latex209.ins +++ b/Master/texmf-dist/source/latex/base/latex209.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/latexsym.dtx b/Master/texmf-dist/source/latex/base/latexsym.dtx index 4072447c3b4..eced4645a64 100644 --- a/Master/texmf-dist/source/latex/base/latexsym.dtx +++ b/Master/texmf-dist/source/latex/base/latexsym.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/latexsym.ins b/Master/texmf-dist/source/latex/base/latexsym.ins index 671202d7a7e..9fc48fd12fe 100644 --- a/Master/texmf-dist/source/latex/base/latexsym.ins +++ b/Master/texmf-dist/source/latex/base/latexsym.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". @@ -74,7 +74,7 @@ extension .ins) which are part of the distribution. This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -82,12 +82,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without diff --git a/Master/texmf-dist/source/latex/base/letter.dtx b/Master/texmf-dist/source/latex/base/letter.dtx index 89e8579ecb3..3b5654c7bc7 100644 --- a/Master/texmf-dist/source/latex/base/letter.dtx +++ b/Master/texmf-dist/source/latex/base/letter.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/letter.ins b/Master/texmf-dist/source/latex/base/letter.ins index c85d5ebdf77..a4ad041483d 100644 --- a/Master/texmf-dist/source/latex/base/letter.ins +++ b/Master/texmf-dist/source/latex/base/letter.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/ltalloc.dtx b/Master/texmf-dist/source/latex/base/ltalloc.dtx index 62082152aa8..1e0f9aba293 100644 --- a/Master/texmf-dist/source/latex/base/ltalloc.dtx +++ b/Master/texmf-dist/source/latex/base/ltalloc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltbibl.dtx b/Master/texmf-dist/source/latex/base/ltbibl.dtx index d4957026a72..c0b6f07c8c3 100644 --- a/Master/texmf-dist/source/latex/base/ltbibl.dtx +++ b/Master/texmf-dist/source/latex/base/ltbibl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -114,7 +114,7 @@ % \changes{v1.1a}{1994/05/19}{Initial version of ltbibl.dtx, % split from ltidxbib.dtx} % \changes{v1.1b}{1994/05/21}{Use new warning commands} -% \changes{v1.1c}{1994/11/10}{Fix \cs{nocite\{*\}}} +% \changes{v1.1c}{1994/11/10}{Fix \cs{nocite}\texttt{\char`\{*\char`\}}} % % \begin{macrocode} %<*2ekernel> @@ -231,7 +231,7 @@ % \changes{v1.1g}{1995/05/08}{Use \cs{@firstofone}} % \changes{v1.1k}{1995/10/20}{Removed refundefined flag} % \changes{v1.1l}{1995/12/07}{Restored name of \cs{G@refundefinedtrue}} -% \changes{v1.1m}{1997/04/24}{\cs{\@empty} to avoid primitive +% \changes{v1.1m}{1997/04/24}{\cs{@empty} to avoid primitive % error on empty cite keys. latex/2432} % \changes{v1.1n}{2002/12/13}{Added \cs{leavevmode} in case citation % is at start of paragraph (pr/3486)} @@ -309,7 +309,7 @@ % % \begin{macro}{\nocite} % (Added 14 Jun 85) -% \changes{v1.1c}{1994/11/10}{Fix \cs{nocite\{*\}}} +% \changes{v1.1c}{1994/11/10}{Fix \cs{nocite}\texttt{\char`\{*\char`\}}} % % This puts information on the |.aux| file that causes % \BibTeX{} to include the citation list in the bibliography, diff --git a/Master/texmf-dist/source/latex/base/ltboxes.dtx b/Master/texmf-dist/source/latex/base/ltboxes.dtx index b838ef47684..d19e5e19a30 100644 --- a/Master/texmf-dist/source/latex/base/ltboxes.dtx +++ b/Master/texmf-dist/source/latex/base/ltboxes.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltboxes.dtx} - [1999/04/27 v1.1f LaTeX Kernel (Box Commands)] + [2006/05/18 v1.1g LaTeX Kernel (Box Commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltboxes.dtx} @@ -50,7 +50,7 @@ %</driver> % \fi % -% \CheckSum{757} +% \CheckSum{758} % % \changes{v1.1e}{1998/08/17}{(RmS) Minor Documentation fixes.} % \section{\LaTeX\ Box commands} @@ -754,6 +754,9 @@ % \changes{v1.1f}{1999/04/27} % {(CAR) Changed \cs{@empty} to \cs{relax} as flag for natural % width: pr/2975} +% \changes{v1.1g}{2006/05/18} +% {Ensure \cs{@parboxto} holds the value of \cs{@tempdimb} not the +% register itself (pr/3867)} % The internal version of |\parbox|. % \begin{macrocode} \let\@parboxto\@empty @@ -764,7 +767,7 @@ \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}% \ifx\relax#2\else \setlength\@tempdimb{#2}% - \def\@parboxto{to\@tempdimb}% + \edef\@parboxto{to\the\@tempdimb}% \fi \if#1b\vbox \else\if #1t\vtop diff --git a/Master/texmf-dist/source/latex/base/ltclass.dtx b/Master/texmf-dist/source/latex/base/ltclass.dtx index 6b4c5a20626..bfa8b3cf4e2 100644 --- a/Master/texmf-dist/source/latex/base/ltclass.dtx +++ b/Master/texmf-dist/source/latex/base/ltclass.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltcntrl.dtx b/Master/texmf-dist/source/latex/base/ltcntrl.dtx index 304609d4523..49be70713b4 100644 --- a/Master/texmf-dist/source/latex/base/ltcntrl.dtx +++ b/Master/texmf-dist/source/latex/base/ltcntrl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltcounts.dtx b/Master/texmf-dist/source/latex/base/ltcounts.dtx index 23acbc10dee..5be005aec83 100644 --- a/Master/texmf-dist/source/latex/base/ltcounts.dtx +++ b/Master/texmf-dist/source/latex/base/ltcounts.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltdefns.dtx b/Master/texmf-dist/source/latex/base/ltdefns.dtx index f3ef0b05149..736d15df9fd 100644 --- a/Master/texmf-dist/source/latex/base/ltdefns.dtx +++ b/Master/texmf-dist/source/latex/base/ltdefns.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltdefns.dtx} - [2004/02/20 v1.3g LaTeX Kernel (definition commands)] + [2004/09/18 v1.3g LaTeX Kernel (definition commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltdefns.dtx} @@ -466,8 +466,8 @@ % Define |#1| if it is definable. % % Both here and in |\@xargdef| the replacement text is absorbed as -% an argument because this removes any space-token that may appear -% after the optional argument(s). +% an argument because if we are not allowed to make the definition +% we have to get rid of it completely. % \begin{macrocode} \long\def\@argdef#1[#2]#3{% \@ifdefinable #1{\@yargdef#1\@ne{#2}{#3}}} diff --git a/Master/texmf-dist/source/latex/base/ltdirchk.dtx b/Master/texmf-dist/source/latex/base/ltdirchk.dtx index ce899b0d361..925c2506a0f 100644 --- a/Master/texmf-dist/source/latex/base/ltdirchk.dtx +++ b/Master/texmf-dist/source/latex/base/ltdirchk.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/lterror.dtx b/Master/texmf-dist/source/latex/base/lterror.dtx index 98d3304df45..1fddd397d61 100644 --- a/Master/texmf-dist/source/latex/base/lterror.dtx +++ b/Master/texmf-dist/source/latex/base/lterror.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltfiles.dtx b/Master/texmf-dist/source/latex/base/ltfiles.dtx index 4df0e8dc266..6e484dcccaf 100644 --- a/Master/texmf-dist/source/latex/base/ltfiles.dtx +++ b/Master/texmf-dist/source/latex/base/ltfiles.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltfinal.dtx b/Master/texmf-dist/source/latex/base/ltfinal.dtx index 3512b42a309..9b844cb81a2 100644 --- a/Master/texmf-dist/source/latex/base/ltfinal.dtx +++ b/Master/texmf-dist/source/latex/base/ltfinal.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltfloat.dtx b/Master/texmf-dist/source/latex/base/ltfloat.dtx index d10264e56fd..274fb1c61e1 100644 --- a/Master/texmf-dist/source/latex/base/ltfloat.dtx +++ b/Master/texmf-dist/source/latex/base/ltfloat.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltfntcmd.dtx b/Master/texmf-dist/source/latex/base/ltfntcmd.dtx index f6850793662..da0c9b8e166 100644 --- a/Master/texmf-dist/source/latex/base/ltfntcmd.dtx +++ b/Master/texmf-dist/source/latex/base/ltfntcmd.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -92,7 +92,7 @@ % \changes{v3.2a}{1994/03/15}{Removed \cs{@renewfontswitch}} % \changes{v3.2a}{1994/03/15}{Changed \cs{/} to \cs{@@italiccorr}} % \changes{v3.2b}{1994/04/14}{Macros renamed to non-private forms, JB} -% \changes{v3.3a}{1994/04/20}{New implementation of \cs{\nocorr}} +% \changes{v3.3a}{1994/04/20}{New implementation of \cs{nocorr}} % \changes{v3.3a}{1994/04/20}{Documentation up-dated} % \changes{v3.3b}{1994/04/30}{Documentation up-dated and tidied} % \changes{v3.3b}{1994/04/30}{Title changed} diff --git a/Master/texmf-dist/source/latex/base/ltfssbas.dtx b/Master/texmf-dist/source/latex/base/ltfssbas.dtx index 4adafd0cea4..bee32130ae5 100644 --- a/Master/texmf-dist/source/latex/base/ltfssbas.dtx +++ b/Master/texmf-dist/source/latex/base/ltfssbas.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltfsscmp.dtx b/Master/texmf-dist/source/latex/base/ltfsscmp.dtx index b4441aa4120..5e65eb2a766 100644 --- a/Master/texmf-dist/source/latex/base/ltfsscmp.dtx +++ b/Master/texmf-dist/source/latex/base/ltfsscmp.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltfssdcl.dtx b/Master/texmf-dist/source/latex/base/ltfssdcl.dtx index f2aee76bdab..da024b1f1e6 100644 --- a/Master/texmf-dist/source/latex/base/ltfssdcl.dtx +++ b/Master/texmf-dist/source/latex/base/ltfssdcl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -36,7 +36,7 @@ % % \ProvidesFile{ltfssdcl.dtx} - [1998/08/17 v3.0i LaTeX Kernel (NFSS Declarative Interface)] + [2005/09/27 v3.0k LaTeX Kernel (NFSS Declarative Interface)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -52,7 +52,7 @@ %<+checkmem>\CHECKMEM % \fi % -% \CheckSum{1871} +% \CheckSum{1879} % % % \GetFileInfo{ltfssdcl.dtx} @@ -365,17 +365,17 @@ % \begin{macro}{\non@alpherr} % \changes{v3.0c}{1995/10/10} % {(DPC) autoload error message} +% \changes{v3.0j}{2005/07/27} +% {(MH) Change because command is now properly robust} % \begin{macrocode} %</2ekernel|autoload> %<*2ekernel|autoerr> \gdef\non@alpherr#1{\@latex@error{% % \end{macrocode} -% Since the argument is the internal alphabet name, we have to get -% rid of the |@| in its name. The trick here is to use |\@firstoftwo| -% which is a \LaTeX{} macro which discards the second of two -% arguments. +% The command here will have a space at the end of its name, so we make +% sure not to insert an extra one. % \begin{macrocode} - \expandafter\@firstoftwo\string#1 allowed only in math mode}\@ehd} + \string#1allowed only in math mode}\@ehd} %</2ekernel|autoerr> %<autoload>\def\non@alpherr{\@autoerr\non@alpherr} %<*2ekernel|autoload> @@ -751,6 +751,8 @@ % \end{macro} % % \begin{macro}{\DeclareMathAlphabet} +% \changes{v3.0j}{2005/07/27} +% {(MH) Make document commands robust} % \begin{macrocode} \def\DeclareMathAlphabet#1#2#3#4#5{% \@tempswafalse @@ -768,8 +770,8 @@ % Check if it is already a math alphabet. % \begin{macrocode} \edef\reserved@a{\noexpand\in@{\string\select@group}% - {\expandafter\meaning\csname @\expandafter - \@gobble\string#1\endcsname}}% + {\expandafter\meaning\csname \expandafter + \@gobble\string#1\space\endcsname}}% \reserved@a \ifin@ \@font@info{Redeclaring math alphabet \string#1}% @@ -780,7 +782,7 @@ % \changes{???}{1994/04/18}{Pass correct arg (2 not 3)} % \begin{macrocode} \csname M@#2\expandafter\endcsname - \csname @\expandafter\@gobble\string#1\endcsname#1}% + \csname \expandafter\@gobble\string#1\space\endcsname#1}% \version@list \else % \end{macrocode} @@ -788,8 +790,8 @@ % |\DeclareSymbolFontAlphabet|. % \begin{macrocode} \edef\reserved@a{\noexpand\in@{\string\use@mathgroup}% - {\expandafter\meaning\csname @\expandafter - \@gobble\string#1\endcsname}}% + {\expandafter\meaning\csname \expandafter + \@gobble\string#1\space\endcsname}}% \reserved@a \ifin@ % \end{macrocode} @@ -815,11 +817,13 @@ % \end{macro} % % \begin{macro}{\new@mathalphabet} +% \changes{v3.0j}{2005/07/27} +% {(MH) Make document commands robust} % \begin{macrocode} \def\new@mathalphabet#1#2#3#4#5{% \toks@\expandafter{\alpha@list}% - \edef#1{\expandafter\noexpand\csname @\expandafter - \@gobble\string#1\endcsname + \edef#1{\expandafter\noexpand\csname \expandafter + \@gobble\string#1\space\endcsname \if/#5/% \noexpand\no@alphabet@error \noexpand\no@alphabet@error @@ -833,8 +837,8 @@ \def\version@elt##1{\toks@\expandafter{##1}% \edef##1{\the\toks@\install@mathalphabet \expandafter\noexpand - \csname @\expandafter\@gobble - \string#1\endcsname + \csname \expandafter\@gobble + \string#1\space\endcsname {\if/#5/% \noexpand\no@alphabet@error \noexpand#1% @@ -843,22 +847,24 @@ \fi}}% }% \version@list - \expandafter\edef\csname @\expandafter\@gobble - \string#1\endcsname{\if/#5/% + \expandafter\edef\csname \expandafter\@gobble + \string#1\space\endcsname{\if/#5/% \noexpand\no@alphabet@error \noexpand#1% \else \noexpand\select@group\the\toks2 \fi}% \edef#1{\noexpand\protect - \expandafter\noexpand\csname @\expandafter - \@gobble\string#1\endcsname}% + \expandafter\noexpand\csname \expandafter + \@gobble\string#1\space\endcsname}% } \@onlypreamble\new@mathalphabet % \end{macrocode} % \end{macro} % % \begin{macro}{\SetMathAlphabet} +% \changes{v3.0j}{2005/07/27} +% {(MH) Make document commands robust} % \begin{macrocode} \def\SetMathAlphabet#1#2#3#4#5#6{% \@tempswafalse @@ -870,7 +876,7 @@ \expandafter\SetMathAlphabet@ \csname mv@#2\expandafter\endcsname\csname#3/#4/#5/#6\expandafter \endcsname \csname M@#3\expandafter\endcsname - \csname @\expandafter\@gobble\string#1\endcsname#1% + \csname \expandafter\@gobble\string#1\space\endcsname#1% \else \@latex@error{Encoding scheme `#3' unknown}\@eha \fi @@ -1391,10 +1397,12 @@ % \end{macro} % % \begin{macro}{\DeclareSymbolFontAlphabet} +% \changes{v3.0j}{2005/07/27} +% {(MH) Make document commands robust} % \begin{macrocode} \def\DeclareSymbolFontAlphabet#1#2{% \expandafter\DeclareSymbolFontAlphabet@ - \csname @\expandafter\@gobble\string#1\endcsname{#2}#1} + \csname \expandafter\@gobble\string#1\space\endcsname{#2}#1} \@onlypreamble\DeclareSymbolFontAlphabet % \end{macrocode} % \end{macro} @@ -1452,7 +1460,7 @@ % at all: % \begin{macrocode} \expandafter\ifx - \csname\expandafter\@gobble\string#1\endcsname + \csname\expandafter\@gobble\string#1\space\endcsname \relax % \end{macrocode} % If it is undefined, fine otherwise check if it is a math alphabet diff --git a/Master/texmf-dist/source/latex/base/ltfssini.dtx b/Master/texmf-dist/source/latex/base/ltfssini.dtx index c815906b882..6b12c49d226 100644 --- a/Master/texmf-dist/source/latex/base/ltfssini.dtx +++ b/Master/texmf-dist/source/latex/base/ltfssini.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltfsstrc.dtx b/Master/texmf-dist/source/latex/base/ltfsstrc.dtx index 3b77cfcf22c..890d179f7ce 100644 --- a/Master/texmf-dist/source/latex/base/ltfsstrc.dtx +++ b/Master/texmf-dist/source/latex/base/ltfsstrc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/lthyphen.dtx b/Master/texmf-dist/source/latex/base/lthyphen.dtx index 03849a56131..f1b2d003667 100644 --- a/Master/texmf-dist/source/latex/base/lthyphen.dtx +++ b/Master/texmf-dist/source/latex/base/lthyphen.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltidxglo.dtx b/Master/texmf-dist/source/latex/base/ltidxglo.dtx index 7a630b77e97..3ca80d4d23c 100644 --- a/Master/texmf-dist/source/latex/base/ltidxglo.dtx +++ b/Master/texmf-dist/source/latex/base/ltidxglo.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltlength.dtx b/Master/texmf-dist/source/latex/base/ltlength.dtx index e48ebfeedd6..db59b964797 100644 --- a/Master/texmf-dist/source/latex/base/ltlength.dtx +++ b/Master/texmf-dist/source/latex/base/ltlength.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltlists.dtx b/Master/texmf-dist/source/latex/base/ltlists.dtx index 6a4a91d7271..94d94f69027 100644 --- a/Master/texmf-dist/source/latex/base/ltlists.dtx +++ b/Master/texmf-dist/source/latex/base/ltlists.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -161,7 +161,7 @@ % an |\item| is encountered and the time that \TeX{} % actually enters horizontal mode. Should be tested by commands % that can be messed up by the list environment's use of |\everypar|. -% \item[\cs{box\@labels}] When |@inlabel = true|, it holds the labels +% \item[\cs{box}\cs{@labels}] When |@inlabel = true|, it holds the labels % to be put out by |\everypar|. % \item[\texttt{@noparitem}] A switch set by |\list| when % |@inlabel = true|. diff --git a/Master/texmf-dist/source/latex/base/ltlogos.dtx b/Master/texmf-dist/source/latex/base/ltlogos.dtx index 61173b17e2d..75a7efda37b 100644 --- a/Master/texmf-dist/source/latex/base/ltlogos.dtx +++ b/Master/texmf-dist/source/latex/base/ltlogos.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltmath.dtx b/Master/texmf-dist/source/latex/base/ltmath.dtx index f50778c5826..e16f0d5b097 100644 --- a/Master/texmf-dist/source/latex/base/ltmath.dtx +++ b/Master/texmf-dist/source/latex/base/ltmath.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -38,7 +38,7 @@ %<*driver> % \fi \ProvidesFile{ltmath.dtx} - [1999/10/09 v1.1f LaTeX Kernel (Math Setup)] + [2005/11/10 v1.1g LaTeX Kernel (Math Setup)] % \iffalse %</driver> % @@ -67,7 +67,8 @@ % \changes{v1.1b}{1996/07/26}{Removed \cs{global} before % \cs{@ignoretrue} in various places.} % \changes{v1.1c}{1998/08/17}{(RmS) Minor documentation fixes.} -% +% \changes{v1.1g}{2005/11/10}{(MH) Minor documentation fixes.} +% % \section{Math setup} % % This file contains a lot of the original plain \TeX{} code, as well @@ -210,7 +211,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\atopwithdelims} +% \begin{macro}{\brack} % \begin{macrocode} \def\brack{\atopwithdelims[]} % \end{macrocode} @@ -223,8 +224,6 @@ % \end{macro} % % \begin{macro}{\mathpalette} -% \changes{v1.0r}{1995/05/21}{Use \cs{sqrtsign} instead of -% \cs{sqrt}} % \begin{macrocode} \def\mathpalette#1#2{% \mathchoice @@ -241,6 +240,8 @@ % plain \TeX\ definition /2359} % \begin{macro}{\rootbox} % \begin{macro}{\r@@t} +% \changes{v1.0r}{1995/05/21}{Use \cs{sqrtsign} instead of +% \cs{sqrt}} % \begin{macrocode} \newbox\rootbox % \end{macrocode} @@ -546,6 +547,8 @@ % \end{macro} % % \begin{macro}{\[} +% \changes{v1.1g}{2005/11/10} +% {(MH) Fixed potential problem in \cs{[} (pr/3399).} % \begin{macro}{\]} % Produces |$$...$$| with checks that |\[| isn't used in math mode, % and that |\]| is only used in math mode begun with |\]|. @@ -556,7 +559,7 @@ \else \ifvmode \nointerlineskip - \makebox[.6\linewidth]% + \makebox[.6\linewidth]{}% \fi $$%%$$ BRACE MATCH HACK \fi diff --git a/Master/texmf-dist/source/latex/base/ltmiscen.dtx b/Master/texmf-dist/source/latex/base/ltmiscen.dtx index e6eb56416ed..8b8c986c160 100644 --- a/Master/texmf-dist/source/latex/base/ltmiscen.dtx +++ b/Master/texmf-dist/source/latex/base/ltmiscen.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -254,13 +254,13 @@ % The macro |\@defaultsubs| is initially |\relax| but gets redefined % to produce % a warning if there have been some default font substitutions. -% \changes{v1.0z}{1995/07/13}{Use \cs{\@defaultsubs} instead of switch} +% \changes{v1.0z}{1995/07/13}{Use \cs{@defaultsubs} instead of switch} % \begin{macrocode} \@defaultsubs % \end{macrocode} % The macro |\@refundefined| is initially |\relax| but gets redefined % to produce a warning if there are undefined refs. -% \changes{v1.1b}{1995/10/24}{Use \cs{\@refundefined} instead of switch} +% \changes{v1.1b}{1995/10/24}{Use \cs{@refundefined} instead of switch} % \begin{macrocode} \@refundefined % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/base/ltnews01.tex b/Master/texmf-dist/source/latex/base/ltnews01.tex new file mode 100644 index 00000000000..e326e70bbbf --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews01.tex @@ -0,0 +1,152 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews01.tex + +% This is issue 1 of LaTeX News. + +\documentclass +% [type1fonts] + {ltnews} + +\publicationmonth{June} +\publicationyear{1994} +\publicationissue{1} + +\begin{document} + +\maketitle + +\section{Welcome to \LaTeXNews} + +An issue of \emph{\LaTeXNews} will accompany every future release of +\LaTeX. It will tell you about important events, such as major bug +fixes, newly available packages, or any other \LaTeX{} news. + +\section{\LaTeXe---the new \LaTeX{} release} + +The most important news is the release of \LaTeXe, the new version of +the \LaTeX{} software. This version has better support for fonts, +graphics and colour, and will be actively maintained by the \LaTeX3 +project team. Upgrades will be issued every six months, in June and +December. + +\section{Why a new \LaTeX?} + +Over the years many extensions have been developed for \LaTeX. This +is, of course, a sure sign of its continuing popularity but it has had +one unfortunate result: incompatible \LaTeX{} formats came into use at +different sites. Thus, to process documents from various places, a +site maintainer was forced to keep \LaTeX{} (with and without \NFSS), +\SLiTeX, \AmSLaTeX, and so on. In addition, when looking at a source +file it was not always clear for which format the document was written. + +To put an end to this unsatisfactory +situation a new release of \LaTeX{} was produced. +It brings all such extensions back under a single format and thus +prevents the proliferation of mutually incompatible dialects of +\LaTeX~2.09. The new release was available for several months as a +test version, and the final release of 1~June officially +replaces the old version. + +\section{Processing documents with \LaTeXe} + +Documents written for \LaTeX~2.09 will +still be read by \LaTeXe. Any such document is run in +\emph{\LaTeX~2.09 compatibility mode}. + +Unfortunately, compatibility mode comes with a price: it can run +up to 50\% slower than \LaTeX~2.09 did. If you want to run your document +in the faster \emph{native mode}, you should try replacing the line: +\begin{verbatim} + \documentstyle[<options>,<packages>]{<class>} +\end{verbatim} +with: +\begin{verbatim} + \documentclass[<options>]{<class>} + \usepackage{latexsym,<packages>} +\end{verbatim} +Unfortunately, this will not always work, because some \LaTeX~2.09 +packages will only work in \LaTeXe{} compatibility mode. You should find +out if there is a \LaTeXe{} version of the package available. + +\LaTeXe{} native mode also gives access to the new features of \LaTeXe, +described in \emph{\LaTeXe{} for authors}. + +\section{New packages} + +\LaTeXe{} has much better support for graphics, colour, fonts, and +multi-lingual typesetting. The following software should be available +from the distributor who brought you \LaTeXe: + +\begin{citations} +\item[babel] for typesetting in many languages. +\item[color] for colour support. +\item[graphics] for including images. +\item[mfnfss] for using bitmap fonts. +\item[psnfss] for using Type~1 fonts. +\item[tools] other packages by the \LaTeX3 team. +\end{citations} +The packages come with full documentation, and are also described in +\emph{\LaTeX: A Document Processing System} or +\emph{The \LaTeX{} Companion}. + +\section{Further information} + +More information about \LaTeXe{} is to be found in: + +\begin{citations} +\item[\LaTeX: A Document Preparation System] + Leslie Lamport, \AW, 2nd ed, 1994. +\item[The \LaTeX{} Companion] + Goossens, Mittelbach and Samarin, \AW, 1994. +\end{citations} +The \LaTeX{} distribution comes with documentation on the new features of +\LaTeX: + +\begin{citations} +\item[\LaTeXe{} for authors] + describes the new features of \LaTeX{} documents, + in the file \verb|usrguide.tex|. +\item[\LaTeXe{} for class and package writers] + describes the new features of \LaTeX{} classes and packages, + in the file \verb|clsguide.tex|. +\item[\LaTeXe{} font selection] + describes the new features of \LaTeX{} fonts for + class and package writers, + in the file \verb|fntguide.tex|. +\end{citations} +For more information on \TeX{} and \LaTeX, get in touch with your local +\TeX{} Users Group, or the international \TeX{} Users Group, +P.~O.~Box~869, Santa~Barbara, CA~93102-0869, USA, Fax:~+1~805~963~8358, +EMail:~tug@tug.org. + +\end{document} + + + diff --git a/Master/texmf-dist/source/latex/base/ltnews02.tex b/Master/texmf-dist/source/latex/base/ltnews02.tex new file mode 100644 index 00000000000..06ce2fa9ae5 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews02.tex @@ -0,0 +1,154 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews02.tex + +% This is issue 2 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews} + +\publicationmonth{December} +\publicationyear{1994} +\publicationissue{2} + +\begin{document} + +\maketitle + +\section{Welcome to \LaTeXNews~2} + +An issue of \emph{\LaTeXNews} will accompany every future release of +\LaTeX. It will tell you about important events, such as major bug +fixes, newly available packages, or any other \LaTeX{} news. + +\section{December 1994 release of \LaTeX} + +December 1994 sees the second release of \LaTeXe. We are on schedule +to deliver a release of \LaTeX{} every six months, in December and +June. + +This release has seen quite a lot of activity, which is not too +surprising as it's only been a year since the first test release of +\LaTeXe. We don't expect so much activity in the next six months. + +Many of the changes are minor improvements and bug-fixes---see +\emph{\LaTeXe{} for authors} (\verb|usrguide.tex|), \emph{\LaTeXe{} +font selection} (\verb|fntguide.tex|) and our change log +(\verb|changes.txt|) for more details. + +However, there are two important new packages available for \LaTeX: +\texttt{inputenc} and AMS-\LaTeX. + +\section{Accented input} + +One of the problems with writing non-English documents in \LaTeX{} is +the accent commands. Reading documents containing text like +\verb|na\"\i ve| is frustrating, especially if your keyboard allows +you to type \texttt{na\"\i ve}. + +In the past, \LaTeX{} has not supported input containing accented +characters such as \texttt{\"\i}, because Windows, Macintosh and Unix +all have different ways of dealing with accented input, called +\emph{input encodings}. + +However, the \verb|inputenc| package allows you to specify which input +encoding your document is written with, for example to use the ISO +Latin-1 encoding, you type: +\begin{verbatim} + \usepackage[latin1]{inputenc} +\end{verbatim} +At the moment, \verb|inputenc| supports the \verb|ascii| and +\verb|latin1| input encodings, but more will be added with future +releases. + +The \verb|inputenc| package is +currently a test release. The user interface for the full release will +be upwardly compatible with the test version. + +\section{AMS-\LaTeX{}} + + AMS-\LaTeX{} is a set of miscellaneous extensions for \LaTeX{} + distributed by the American Mathematical Society. They provide superior + information structure and superior printed output for mathematical + documents. + + There are far too many features of AMS-\LaTeX{} to list here. + AMS-\LaTeX{} is described in the accompanying documentation, + and in \emph{The \LaTeX{} Companion}. + + Version 1.2beta of AMS-\LaTeX{} was released for testing by intrepid + users in October 1994. The full release of AMS-\LaTeX{}~1.2 is expected + in early January 1995. + + It will be divided into two bundles: + \begin{itemize} + + \item the \verb|amsfonts| packages, which give access to + hundreds of new mathematical symbols, and new math fonts + such as blackboard bold and fraktur. + + \item the \verb|amsmath| packages, which provide finer control over + mathematical typesetting, such as multi-line subscripts, + enhanced theorem and proof environments, + and improved displayed equations, + + \end{itemize} + For compatibility with older documents, an \verb|amstex| package will be + provided. + +\section{\LaTeX{} on the internet} + +\LaTeX{} has its own home page on the World Wide Web, with the URL: +\begin{verbatim} + http://www.tex.ac.uk/CTAN/latex/ +\end{verbatim} +This page describes \LaTeX{} and the \LaTeX3 project, and contains +pointers to other \LaTeX{} resources, such as the user guides, the +\TeX{} Frequently Asked Questions, and the \LaTeX{} bugs database. + +The electronic home of anything \TeX-related is the Comprehensive +\TeX{} Archive Network (CTAN). This is a network of cooperating ftp +sites, with over a gigabyte of \TeX{} material: +\begin{verbatim} + ftp://ftp.tex.ac.uk/tex-archive/ + ftp://ftp.shsu.edu/tex-archive/ + ftp://ftp.dante.de/tex-archive/ +\end{verbatim} +For more information, see the \LaTeX{} home page. + +\section{Further information} + +For more information on \TeX{} and \LaTeX, get in touch with your local +\TeX{} Users Group, or the international \TeX{} Users Group, +P.~O.~Box~869, Santa~Barbara, CA~93102-0869, USA, Fax:~+1~805~963~8358, +EMail:~tug@tug.org. + + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews03.tex b/Master/texmf-dist/source/latex/base/ltnews03.tex new file mode 100644 index 00000000000..64e83f87b1c --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews03.tex @@ -0,0 +1,145 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews03.tex + +% This is issue 3 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews} + +\publicationmonth{June} +\publicationyear{1995} +\publicationissue{3} + +\begin{document} + +\maketitle + +\section{Welcome to \LaTeXNews~3} + +An issue of \emph{\LaTeXNews} will accompany every future release of +\LaTeX. It will tell you about important events, such as major bug +fixes, newly available packages, or any other \LaTeX{} news. + +\section{June 1995 release of \LaTeX} + +June 1995 sees the third release of \LaTeXe. We are on schedule +to deliver a release of \LaTeX{} every six months, in December and +June. + +In the last \emph{\LaTeXNews}, we said ``we don't expect so much +activity in the next six months,'' which has turned out not to be +true! + +\section{Additional input encodings} + +In the last release of \LaTeX{} we distributed a test version of the +\texttt{inputenc} package which allows the use of input characters +other than just a--z and A--Z. The package has proved to be robust, +so we are now distributing an expanded version. +The new release comes with a number of input encodings: + +\begin{itemize} +\item \texttt{ascii} the standard encoding, +\item \texttt{latin1} the ISO Western European alphabet, +\item \texttt{latin2} the ISO Eastern European alphabet, +\item \texttt{cp437} the IBM codepage 437, +\item \texttt{cp850} the IBM codepage 850, and +\item \texttt{applemac} the Apple Macintosh encoding. +\end{itemize} +These can be used by specifying an option to the \texttt{inputenc} +package, for example: +\begin{verbatim} + \usepackage[latin1]{inputenc} +\end{verbatim} +The new input encodings are currently being tested, but we don't +expect any major changes. + +\section{\LaTeX\ getting smaller} + +In the past releases of \LaTeXe, the amount of memory \LaTeX{} +requires has increased, but we are pleased to say that this trend has +been reversed. We hope that future releases of \LaTeX{} will continue +to get smaller. + +For example, on this document, the December 1994 release used 52,622 +words of memory, and the June 1995 release uses 51,216 words of +memory, which is a 2.7\% reduction. + +We are currently experimenting with other ways of reducing the size of +\LaTeX. For example, we are experimenting with an option to remove +the \texttt{picture} and \texttt{tabbing} environments from the +\LaTeX{} kernel, and to load them from a file the first time they are +used. This should help \LaTeX{} to run on machines with limited +memory. See \texttt{autoload.txt} for details. + +\section{Distribution and modification} + +One topic of discussion that has kept us busy is the distribution and +modification conditions of \LaTeX. We are committed to keeping +\LaTeX{} as free reliable software, and ensuring that (as far as +possible) \LaTeX{} documents will produce the same results on all +systems. + +The modification conditions are currently under discussion, and we +would like to hear from anyone interested. Please read +\texttt{modguide.tex} for more information. + +\section{AMS-\LaTeX\ full release} + +The AMS-\LaTeX\ packages were still in beta test in the December 1994 +release of \LaTeX, and the full release came out in January 1995. + +AMS-\LaTeX\ is described in the \emph{User's Guide} +(\texttt{amsldoc.tex}) and in \emph{The \LaTeX{} Companion}. + +\section{PostScript fonts} + +There is a new test release of the PSNFSS packages for accessing +PostScript fonts in \LaTeXe. This includes an update to all of the +fonts, to remove many of the underfull and overfull \verb|\hbox| +warnings, and improve the setting of non-English languages. + +The new release of \LaTeX{} removes all of the `hidden' uses of +Computer Modern mathematics. For example, the footnote markers used +to use math mode, so always used Computer Modern digits rather than +ones from the current text font. This has now been fixed. + +\section{Further information} + +For more information on \TeX{} and \LaTeX, get in touch with your local +\TeX{} Users Group, or the international \TeX{} Users Group, +P.~O.~Box~869, Santa~Barbara, CA~93102-0869, USA, Fax:~+1~805~963~8358, +EMail:~tug@tug.org. + +The \LaTeX{} home page is \verb|http://www.tex.ac.uk/ctan/latex/| +and contains links to other WWW resources for \LaTeX. + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews04.tex b/Master/texmf-dist/source/latex/base/ltnews04.tex new file mode 100644 index 00000000000..6b8c6db034c --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews04.tex @@ -0,0 +1,143 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews04.tex + +% This is issue 4 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews} + + +\publicationmonth{December} +\publicationyear{1995} +\publicationissue{4} + +\begin{document} + +\maketitle + +\section{Welcome to \LaTeXNews~4} + +An issue of \emph{\LaTeXNews} will accompany every future release of +\LaTeX. It will tell you about important events, such as major bug +fixes, newly available packages, or any other \LaTeX{} news. +This issue accompanies the fourth release of \LaTeXe. + + +\section{\LaTeX\ getting smaller} + +The last release in June started a trend of \LaTeX\ becoming +smaller, we are pleased to announce that this has continued with this +release. In particular the experimental `autoload' version described in +\texttt{autoload.txt} is much smaller as more parts of \LaTeX\ are +autoloaded. + +\section{New `concurrent' docstrip} + +The time taken to `unpack' this release from the documented sources +should be much reduced (roughly half the time, depending on +installation conditions). This is due to an improved version of the +docstrip program that has been contributed by Marcin Woli\'nski. +This can write up to 16 files at once. The +previous version could only write one file at a time which meant that +it was very slow when producing many small files from the same source +file as the source needed to be re-read for each file written. + +\section{New T1 encoded fonts} + +This year J\"org Knappen has completed a new release of the `Cork' +(T1) encoded Computer Modern fonts: the dc fonts release 1.2. + +This release of the dc fonts fixes many bugs (including the missing +\verb|?`| (?`) and \verb|!`| (!`) ligatures) and improves the fonts in +many other ways. It is strongly recommended that you upgrade as soon as +possible if currently you are using the old dc fonts, release 1.1 or +earlier. The new fonts are available from the CTAN archives, in +\texttt{tex-archive/fonts/dc}. + +The names of the font files are \emph{different}. This does not affect +\LaTeX\ documents but \emph{does} affect the installation procedure as +it assumes that you have the \emph{new} fonts, and will write suitable +`fd' files for those fonts. If you have not yet upgraded your dc fonts +then, after unpacking the distribution, you \emph{must} +\verb|latex olddc.ins| to produce `fd' files for the old dc fonts. +This must be done \emph{before} the format is made. Running the test +document at \texttt{ltxcheck.tex} the end of the installation will +inform you if the wrong set of `fd' files has been installed. + +Note that this change does not affect the standard `OT1' Computer +Modern fonts that \LaTeX\ uses by default. + +\section{More robust commands} + +The commands \verb|\cite| and \verb|\sqrt| are now robust. + +Although most commands with optional arguments are fragile, as +documented, such commands defined using the second optional argument +of \verb|\newcommand| and its derivatives are now \emph{robust}. + +\section{New Interface to building `extension' classes} + +The mechanism provided by \verb|\DeclareOption|, \verb|\ProcessOptions| +and \verb|\LoadClass| has proved to be a powerful and expressive means +of defining one class in terms of another `base' class. However there +have been some requests to simplify the declaration of the common case +where you want the `base' class to be called with \emph{all} the +options that were specified to the extension class. This is now +provided by the new command \verb|\LoadClassWithOptions|. A similar +command \verb|\RequirePackageWithOptions| is provided for package use. +More details of this feature are provided in \texttt{clsguide.tex} and +\texttt{ltclass.dtx}. + +\section{More Input Encodings} + +The experimental \texttt{inputenc} package allows a more natural style +of input of accented and other characters. + +Three new input encodings are now supported. +\begin{itemize} +\item \texttt{ansinew} the Windows ansi encoding, + as used in Microsoft Windows 3.x. +\item \texttt{cp437de} a variant of \texttt{cp437}, which uses \ss\ + rather than $\beta$ in the appropriate slot. +\item \texttt{next} the encoding used on Next computers. +\end{itemize} + +\section{Further information} + +For more information on \TeX{} and \LaTeX, get in touch with your local +\TeX{} Users Group, or the international \TeX{} Users Group, +1850 Union Street, \#1637, San Francisco, CA~94123, USA, +Fax:~+1~415~982~8559, +EMail:~tug@tug.org. +The \LaTeX{} home page is \verb|http://www.tex.ac.uk/ctan/latex/| +and contains links to other WWW resources for \LaTeX. + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews05.tex b/Master/texmf-dist/source/latex/base/ltnews05.tex new file mode 100644 index 00000000000..f5e1ff37c4f --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews05.tex @@ -0,0 +1,158 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews05.tex + +% This is issue 5 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews} + +% \usepackage[T1]{fontenc} + +\publicationmonth{June} +\publicationyear{1996} +\publicationissue{5} + +\begin{document} + +\maketitle + +\section{Welcome to \LaTeXNews~5} +This issue of \emph{\LaTeXNews} accompanies the fifth release of the +new standard \LaTeX{}, \LaTeXe. + +\section{Extra possibilities for section headings} +Most \LaTeX\ sectioning commands are defined using +\verb|\@startsection|. +For example, the \textsf{article} class defines: +\begin{small} +\begin{verbatim} +\newcommand\section{\@startsection + {section}{1}{0pt}{-3.5ex plus-1ex minus-.2ex}% + {2.3ex plus.2ex}{\normalfont\Large\bfseries}} +\end{verbatim} +\end{small} +The last argument specifies the style in which the section heading is +to be typeset. + +The new feature added at this release is that at the \emph{end} of +this argument you may specify a command that \emph{takes an argument}. +This command will be applied to the section number and heading. +For example, one could use the \verb|\MakeUppercase| command to +produce uppercase headings. A package or class file could contain: +\begin{small} +\begin{verbatim} +\renewcommand\section{\@startsection + {section}{1}{0pt}{-3.5ex plus-1ex minus-.2ex}% + {2.3ex plus.2ex}{\normalfont\Large\MakeUppercase}} +\end{verbatim} +\end{small} +to produce section headings using uppercase medium weight text, rather +than the bold text used by \textsf{article}. Note that, like the font +choice, the uppercasing applies only to the actual heading (including +any automatically generated section number), not to the text as it may +appear in the running head or table of contents. + +\section{The `openany' option in the `book' class} +The \textsf{openany} option allows chapter and similar openings to +occur on left hand pages. Previously this option only affected +\verb|\chapter| and \verb|\backmatter|. It now also affects +\verb|\part|, \verb|\frontmatter| and \verb|\mainmatter|. + +\section{More font (output) encodings} +The font encoding name \texttt{T3} has been allocated to the encoding +used in the new 256-character \textsc{IPA} fonts (for the phonetic +alphabet) produced by Rei Fukui. His package, \textsf{tipa}, +gives access to these fonts and should soon be available. (The +encoding named \texttt{OT3} is the 128-character encoding used in the +\textsc{IPA} fonts produced by Washington State University.) + + + +\section{More input encodings supported} +The \textsf{inputenc} package now supports the IBM codepage~852 used +in Eastern Europe, with the option~\texttt{[cp852]} contributed by +Petr~Sojka. + +Also, the \textsf{inputenc} package now activates most `control codes' +with \textsc{ascii} values below 32. +Currently none of the encodings in the standard distribution makes use +of these positions. + +\section{Fixes and improvements} +The \LaTeX\ kernel has only had minor changes, apart from +\verb|\@startsection| mentioned above. +However, some small fixes have been incorporated removing the +following problems: + +\begin{itemize} +\item + In tabular and array, previous versions of \LaTeX\ `lost' the + inter-column space from an `\texttt{l}'-column, when that column + was completely empty. + +\item + Previously, the use of the \verb|\nofiles| command could change + the \emph{vertical spacing} in a document.\\ A side effect of fixing + this is that when \verb|\nofiles| is used, \verb|\label| puts a + blank line in the log file. + +\item + \LaTeX~often loads fonts `on demand'. Previously, this could + happen inside the argument of an accent command and this would + cause the accent to appear in the wrong place. + +\end{itemize} + +\section{Changes to the `tools' packages} + +\begin{itemize} +\item + The \textsf{longtable} package now uses a modified algorithm, + contributed by David Kastrup, to align the `chunks' of a table. + It is now unnecessary to edit the document to add + \verb|\setlongtables| before the final run of \LaTeX. + In certain cases of overlapping \verb|\multicolumn| entries, the new + algorithm will produce better column widths than the old (at the + price of extra passes through \LaTeX). + +\item + The \textsf{dcolumn} package now has the extra possibility of + specifying the number of digits both \emph{before} and after the + `decimal point'. This makes it easy to centre the column of numbers + under a wide heading. +\end{itemize} + +\section{New copy of the \LaTeX\ bug database} +\verb|http://www.tex.ac.uk/ctan/latex/bugs.html| will soon have links +to a copy of the searchable \LaTeX\ bugs database at Mainz (Germany) +as well as the original copy at Sussex (England). + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews06.tex b/Master/texmf-dist/source/latex/base/ltnews06.tex new file mode 100644 index 00000000000..3c49f4e469f --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews06.tex @@ -0,0 +1,149 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews06.tex + +% This is issue 6 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews} + +% \usepackage[T1]{fontenc} + +\publicationmonth{December} +\publicationyear{1996} +\publicationissue{6} + +\begin{document} + +\maketitle + +\section{Welcome to \LaTeXNews~6} +This issue of \emph{\LaTeXNews} accompanies the sixth release of the +new standard \LaTeX{}, \LaTeXe. + +\section{Mono-case file names} +Previously \LaTeX\ has used some files with `mixed-case' file names +such as \texttt{T1cmr.fd} and \texttt{T1enc.def}. + +These file names cause problems on some systems (in particular they +are illegal on the ISO 9660 CDROM format) and so in this release +all file names have been made lowercase (for example +\texttt{t1cmr.fd} and \texttt{t1enc.def}). + +This change should \emph{not} affect any document. Within \LaTeX, +encodings still have the usual uppercase names in uses such as +\verb|\usepackage[T1]{fontenc}| and \verb|\fontencoding{T1}|. +\LaTeX\ will automatically convert to the lowercase form while +constructing the file name. +\LaTeX\ will input the `fd' file under the old name if it fails to +find the file with the new name, so existing collections of fd files +should still work with this new release. + +The change \emph{does} affect the configuration files that may be used +to make the \LaTeX\ format with initex. For example, the file +\texttt{fonttext.ltx} previously specified \verb|\input{T1cmr.fd}|. +It now has \verb|\input{t1cmr.fd}|. +If you use a local file \texttt{fonttext.cfg} +you will need to make similar changes, as \verb|\input{T1cmr.fd}| +will not work as \texttt{T1cmr.fd} is no longer in the distribution. + +The files affected by this change all have names of the form +\verb|*.fd| or \verb|*enc.def|. + +\section{Another input encoding} +Thanks to work by S\o ren Sandmann, the \textsf{inputenc} package now +supports the IBM codepage~865 used in Scandinavia. + +\section{Better user-defined math display environments} +Suppose that you want to define an environment for displaying text +that is numbered as an equation. A straightforward way to do this is +as follows: +\begin{verbatim} + \newenvironment{texteqn} + {\begin{equation} + \begin{minipage}{0.9\linewidth}} + {\end{minipage} + \end{equation}} +\end{verbatim} +However, if you have tried this then you will probably have noticed +that it does not work perfectly when used in the middle of a paragraph +because an inter-word space appears at the beginning of the first +line after the environment. + +There is now an extra command (with a very long name) available that +you can use to avoid this problem; it should be inserted as shown here: +\begin{verbatim} + \newenvironment{texteqn} + {\begin{equation} + \begin{minipage}{0.9\linewidth}} + {\end{minipage} + \end{equation} + \ignorespacesafterend} +\end{verbatim} + +\section{Docstrip improvements} +The \textsf{docstrip} program that is used to unpack the \LaTeX\ +sources has undergone further development. The new version should be +able to process all old `batchfiles' but it allows a simpler syntax in +new `batchfiles' (no need to define \verb|\def\batchfile{|\ldots). + +It also allows `target' directories to be specified when writing +files. This directory support is disabled by default unless activated +in a local \texttt{docstrip.cfg} configuration file. +See \texttt{docstrip.dtx} for details. + +\section{AMS \LaTeX\ update} +Since the last \LaTeX\ release in June, the American Mathematical +Society have re-issued the `AMS\LaTeX' classes and packages, fixing +several reported problems. + +\section{Graphics package update} +The \LaTeX\ color and graphics packages have been updated slightly, +principally to support more dvi drivers, see the readme file in the +\textsf{graphics} distribution. + +\section{EC Fonts released} +The first release of the Extended Computer Modern fonts has just been +made. (In January 1997.) + +This release of \LaTeX\ does \emph{not} default to these `ec' fonts +as its T1 encoded fonts. By default it will +use the `dc' fonts if the T1 encoding is requested. + +As noted in \texttt{install.txt} you may run \TeX\ on the install file +\texttt{ec.ins} \emph{after} unpacking the base distribution but +\emph{before} making the \LaTeX\ format. This will produce +suitable `fd' files making \LaTeX\ (including, for the first time, the +\textsf{slides} class) use the `ec' fonts as the default T1 encoded +font set. + + +\end{document} + diff --git a/Master/texmf-dist/source/latex/base/ltnews07.tex b/Master/texmf-dist/source/latex/base/ltnews07.tex new file mode 100644 index 00000000000..f1965dadaa8 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews07.tex @@ -0,0 +1,146 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews07.tex + +% This is issue 7 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews} + +% \usepackage[T1]{fontenc} + +\publicationmonth{June} +\publicationyear{1997} +\publicationissue{7} + +\begin{document} + +\maketitle + +\section{T1 encoded Computer Modern fonts} +As in the last release the base \LaTeX\ distribution contains +three different sets of `fd' files for T1 encoded fonts. + +In this release the default installation uses \texttt{ec.ins} +and so installs files suitable for the current `EC fonts' +distribution. If you have still not updated to the EC fonts and +are using the earlier test versions, known as DC then you should +unpack \texttt{newdc.ins} (for DC release 1.2 or later) or +\texttt{olddc.ins} (for the original releases of the DC fonts). +This should be done after unpacking \texttt{unpack.ins} but +before making the format by running ini\TeX{} on \texttt{latex.ltx}. +There are further details in \texttt{install.txt}. + + +\section{T1 encoded Concrete fonts} +The Metafont sources for T1 encoded `Concrete' fonts have been +removed from the \textsf{mfnss} distribution as they were based +on the now obsolete DC fonts release 1.1. Similarly the +\textsf{cmextra.ins} install file in the \textsf{base} distribution no +longer generates fd files for the `Concrete' fonts. +To use these fonts in either T1 or OT1 encoding it is +recommended that you obtain Walter Schmidt's \textsf{ccfonts} package +and fonts from CTAN \texttt{macros/latex/contrib/supported/ccfonts}. + + +\section{Further input encodings} +Two more \textsf{inputenc} packages have been added: for latin5, +thanks to H. Turgut Uyar; and for latin3, thanks to J\"org Knappen. + + +\section{Normalising spacing after punctuation} +The command \verb|\normalsfcodes| was introduced at the last patch +release. This is normally given the correct definition automatically +and so need not be explicitly set. It is used to correct a problem, +reported by Donald Arseneau, that punctuation in page headers has +always (in all known \TeX\ formats) been potentially incorrect if the +page break happens while a local setting of the space codes (for +instance by the command \verb|\frenchspacing|) is in effect. A common +example of this happening in \LaTeX\ is in the \textsf{verbatim} +environment. + + +\section{Accessing Bold Math Symbols} +The \textsf{tools} distribution contains a new package, \textsf{bm}, +which defines a command \verb|\bm| that allows individual bold symbols +to be accessed within a math expression (in contrast to +\verb|\boldmath| which makes whole math expressions default to bold +fonts). It is more general than the existing \textsf{amsbsy} package; +however, to ease the translation of documents between these two +packages, \textsf{bm} makes \verb|\boldsymbol| an alias for +\verb|\bm|. + +This package was previously made available from the `contrib' area of +the CTAN archives, and as part of Y\&Y's \LaTeX\ support for the +MathTime fonts. + + +\section{Policy on standard classes} + +Many of the problem reports we receive concerning the standard classes +are not concerned with bugs but are suggesting, more or less politely, +that the design decisions embodied in them are `not optimal' and +asking us to modify them. + +There are several reasons why we have decided not to make such changes +to these files. +\begin{itemize} +\item + However misguided, the current behaviour is clearly what was + intended when these classes were designed. +\item + It is not good practice to change such aspects of `standard classes' + because many people will be relying on them. +\end{itemize} + +We have therefore decided not to even consider making such +modifications, nor to spend time justifying that decision. This does +not mean that we do not agree that there are many deficiencies in the +design of these classes, but we have many tasks with higher priority +than continually explaining why the standard classes for \LaTeX{} +cannot be changed. + +We would, of course, welcome the production of better classes, or of +packages that can be used to enhance these classes. + + +\section{New addresses for TUG} +For information about joining the \TeX{} Users Group, and about lots +of other \LaTeX-related matters, please contact +them at their new address: +\begin{quote}\small + \TeX{} Users Group, P.O. Box 1239,\\ + Three Rivers, CA~93271-1239, USA\\ + Fax:~+1~209~561~4584\\ + E-mail: \texttt{tug@mail.tug.org}\\ + URL: \texttt{http://www.tug.org/} +\end{quote} + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews08.tex b/Master/texmf-dist/source/latex/base/ltnews08.tex new file mode 100644 index 00000000000..8da220035b9 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews08.tex @@ -0,0 +1,154 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews08.tex + +% This is issue 8 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews} + +% \usepackage[T1]{fontenc} + +\publicationmonth{December} +\publicationyear{1997} +\publicationissue{8} + +\begin{document} + +\maketitle + +\section{New supported font encodings} + +Two new font encodings are supported as options to the \textsf{fontenc} +package: +\begin{description} +\item [OT4] +This is a seven-bit encoding designed for Polish. The \LaTeX\ support +was developed by Mariusz Olko. +\item [TS1] This is the `Text Companion Encoding'; it contains symbols +designed to be used in text, as opposed to mathematical formulas, and +some accents designed for uppercase letters. It is currently +supported by the `tc' fonts, which match the T1 encoded `ec' text +fonts. A subset of the glyphs in this encoding is supported by +virtual fonts distributed with the PostScript font metrics on the +\textsc{ctan} archives. (This is the `8c' encoding in Karl Berry's +fontname scheme.) The \textsf{textcomp} package provides access to +this encoding but here is a warning to current users of that package: +some of the internal names for the characters have changed. +\end{description} + + +\section{New input encodings} + +These additions to the \textsf{inputenc} package are +\texttt{decmulti} (the DEC Multinational +Character Set, contributed by M.~Y.~Chartoire) +and \texttt{cp1250} (an MS-Windows encoding for Central and Eastern +Europe, contributed by Marcin Woli\'nski). There is also a +\texttt{cp1252} encoding that is identical to \texttt{ansinew}. + + +\section{Tools} + +The \textsf{calc} package (used in many examples in \emph{The \LaTeX\ +Companion}) has been contributed to this distribution by Kresten Krab +Thorup and Frank Jensen. This is essentially the same as the version +that has been available from the \textsc{ctan} archives for some time, +with one minor change: to use \LaTeX-style error messages. It enables +the use of arithmetic expressions within arguments to standard +\LaTeX{} commands where a length or a counter value is required. For +example: +\begin{verbatim} + \setcounter {page} { \value{page} * 2 + 1 } + \parbox { 3in - ( 2mm + \textwidth / 9 ) } +\end{verbatim} + +There have also been some improvements to several other packages in +this collection. In particular, \textsf{bm} now works correctly with +constructions such as \verb|\bm{f'}| involving \texttt{'} or other +characters which use \TeX's special ``\verb|\mathcode"8000|'' +feature. Also, \textsf{multicol} sets the length \verb|\columnwidth| +to an appropriate value; this enables it to work with classes that +support two-column setting, e.g.,~the AMS classes. + + +\section{Graphics} + +The special \verb|oztex.def| driver file has been removed, and Oz\TeX\ +support has been merged with dvips, following advice from +Andrew Trevorrow about Oz\TeX~3.x. + +The \textsf{keyval} package has had some internal improvements: to +use \LaTeX\ format error messages; and to avoid `\verb|#| doubling'. +This latter change means that the \verb|command| key for the +\textsf{graphicx} version of \verb|\includegraphics| should now be used +with one \verb|#| rather than two. For example, \verb|command = `gunzip #1|. +Fortunately this key is almost never used in practice, so few if any +documents should be affected by this change. + + +\section{\LaTeX3 experimental programming conventions} + +As announced at the \TeX\ Users Group meeting (Summer 1997), a group of +highly experimental packages will soon be released to allow experienced\\ +\TeX\ programmers to experiment with, and comment on, a proposed set +of syntax conventions and basic data-types that might form +the basis for programming large scale projects in \TeX. +They will be located in\\ +this CTAN directory: +\begin{verbatim} + CTAN:macros/latex/packages/expl3 +\end{verbatim} +The documentation of this material is as follows: individual package +files provide outline, draft documentation; there is an article that +gives an overview of the syntax and related concepts; there is a +\texttt{readme.txt} file containing a brief description of the +collection. + +All aspects of these packages are liable, indeed likely, to change. +They should not be used at this stage for anything +that requires a stable system. However, we do encourage people to +experiment with these packages, and to send comments on them to the +\texttt{LaTeX-L} mailing list. +To subscribe to this list, mail to: +\begin{verbatim} + listserv@urz.uni-heidelberg.de +\end{verbatim} +the following one line message: +\begin{verbatim} + subscribe LATEX-L <<first-name>> <<second-name>> +\end{verbatim} + +% Revert to this if gets too full. +% See \texttt{modguide.tex} for +% information on how to subscribe to \texttt{LaTeX-L}. + +\end{document} + diff --git a/Master/texmf-dist/source/latex/base/ltnews09.tex b/Master/texmf-dist/source/latex/base/ltnews09.tex new file mode 100644 index 00000000000..aebae8c9353 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews09.tex @@ -0,0 +1,142 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews09.tex + +% This is issue 9 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews}[1999/02/23] + +%\usepackage[T1]{fontenc} + +\publicationmonth{June} +\publicationyear{1998} +\publicationissue{9} + +\begin{document} + +\maketitle + + +\section{New math font encodings} + +A joint working group of the \TeX{} Users Group and the \LaTeX3 +Project is developing a new 8-bit math font encoding for \TeX{}. +It is designed to overcome several limitations and implementation +problems of the old math font encodings and to simplify switching +between different sets of math fonts, much as the \LaTeX{} font +selection interface has simplified switching between text fonts. + +Since the work on this project relies entirely on volunteer work, we +cannot give a specific release date yet. However, a prototype +implementation already exists. This contains several sets of virtual +fonts, some \LaTeX{} packages and a kernel module; we hope to +integrate it into the main \LaTeX{} distribution for the next +release. + +Documents using only standard \LaTeX{} commands for math symbols +should not be affected by switching to the new math font encodings +However, documents, classes or packages making specific assumptions +about the encoding of math symbol fonts are likely to break. + +Further information about the Math Font Group may be found on +the World Wide Web at \texttt{http://www.tug.org/twg/mfg/}. + + +\section{A new math accent} + +A new math accent, \verb|\mathring|, has been added. This is a math mode +version of the ring accent (\r{}) which is available in text +mode with the command \verb|\r|. + +\section{Extended \cs{DeclareMathDelimiter}} + +The command \verb|\DeclareMathDelimiter| has been extended. +Normally this command takes six arguments. Previously, when being used +to declare a character (such as \texttt{[}) as a delimiter, a variant +form was used with only five arguments. The argument specifying the +default `math class' was omitted. Now the full six-argument form may be +used in this case. The extra information is used to implicitly declare +the character via \verb|\DeclareMathSymbol| for use when the symbol is +not used with \verb|\left| or \verb|\right|. + +The old five-argument form is detected and will work as before. + +\newpage + +\section{Tools distribution} + +The \texttt{multicol} package now supports the production of multiple +columns without balancing the last page. To get this effect use the +\texttt{multicols*} environment. + +The \texttt{layout} package was partly recoded by Hideo Umeki to +display page layout effects in a better way. + +As suggested by Donald Arseneau, the \texttt{calc} package was extended +to support the new commands \verb|\widthof{<text>}|, +\verb|\heightof{<text>}|, and \verb|\depthof{<text>}| within a +\texttt{calc}-expression. At the same time we modified a few kernel +commands so that \texttt{calc}-expressions can now be used in various +useful places such as the dimension arguments to the \texttt{tabular} +environment and the \verb|\rule| command. For many other standard +\LaTeX{} commands this was already possible. + + +\section{Support for Cyrillic encodings} + +We are very pleased that, after a lengthy period of development, a set +of fonts, encodings and support files for using \LaTeX\ with Cyrillic +characters will soon be available. + +Test versions of the `LH' fonts for these Cyrillic encodings, based on +the Computer Modern design, are available from CTAN archives in the +directory \texttt{fonts/cyrillic/lh-test}. The \LaTeX\ support files +(by Werner Lemberg and Vladimir Volovich) are also available from CTAN +archives in\\ + \texttt{macros/latex/contrib/supported/t2} + + +\section{Default docstrip header} + +Many \LaTeX\ users now distribute packages in documented source form +using the \textsf{docstrip} system. Docstrip allows a header to be +placed on generated package files, suitable for giving copyright +information, or distribution conditions. + +We have changed the default version of this header so that it allows +stripped files to be distributed in ready-to-run installations such as +the \TeX{}Live CD\@. If you use the default header for distributing +your files you should check that the new copyright text is acceptable +to you. The file \texttt{docstrip.dtx} explains how to produce your own +header if you wish to do so. + + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews10.tex b/Master/texmf-dist/source/latex/base/ltnews10.tex new file mode 100644 index 00000000000..07f53aa53a9 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews10.tex @@ -0,0 +1,153 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews10.tex 12/01/1998 + +% This is issue 10 of LaTeX News. + +\documentclass +% [lw35fonts] + {ltnews}[1999/02/23] + +% \usepackage[T1]{fontenc} + +\publicationmonth{December} +\publicationyear{1998} +\publicationissue{10} + +\begin{document} + +\maketitle + + +\section{Five years of \LaTeXe} + +Since this is the 10th edition of \LaTeX{} News, the (no longer) New +Standard \LaTeX{} must have hit the streets almost this long ago. In +fact it was only the beta-version that some people got just in time for +Christmas~1993, and since then there has been a lot of tidying-up and +smoothing of rough edges (not to mention a few bug fixes!). + +Maybe it is time for something more radically different to emerge and +be hungrily adopted by the world; but don't panic, we shall be +maintaining what you have now for a long time yet. Amongst the more +polite things that have been written about our efforts, we found that this +quote (somewhat censored to protect the guilty) well reflects some of +our feelings about working on \LaTeX{} over the years: \textit{the mere +existence of \LaTeXe{} is a great miracle}. + + + \section{Restructuring the \LaTeX{} distribution} + + Since the (once) `new' standard \LaTeX{} has reached such a venerable + age, we are reviewing the way in which the system is presented to the + world. + + An early intention is to define, given the wide variety of good + packages now available, what now constitutes a useful installation of + \LaTeX{}. We also hope that such a definition will help document + portability if it leads to a future in which a \LaTeX{} class + designer can reasonably assume that a known list of + facilities will be there for all users (so that each class + need not supply them). + + As a first small step towards this definition, we shall replace the + \texttt{latex/packages} subdirectory on \ctan{}. + This directory was a curious mixture of the important, such as the + \LaTeX{} \texttt{tools}, that any self-respecting \LaTeX{} + installation ought to have, and the esoteric or experimental. + + The esoterica from \texttt{packages} will be moved to + new locations, as follows: + \begin{quote} + \texttt{expl3} to \texttt{latex/exptl/project}\\ + \texttt{mfnfss} to \texttt{latex/contrib/supported/mfnfss} + \end{quote} + + The subdirectory that replaces \texttt{packages} will be called + \texttt{latex/required}; all the other sub-directories of + \texttt{packages} will be moved there. + +\vspace{17pt} +\pagebreak + + \section{\LaTeX\ Project on the Internet} +A new \texttt{latex-project.org} domain has been registered. +The web site is not yet fully functional but the old \LaTeX\ pages from +\ctan\ are available at \texttt{http://www.latex-project.org/} and the +\LaTeX\ bug reporting address has been changed to +\texttt{latex-bugs@latex-project.org}. + + \section{Restructuring the \LaTeX{} package licenses} + +Several people have requested an easy mechanism for the distribution +of \LaTeX\ packages and other software ``under the same conditions as +\LaTeX''. The old \texttt{legal.txt} file was unsuitable as a general +licence as it referred to specific \LaTeX\ authors, and to specific +files. + +Therefore, in this release \texttt{legal.txt} contains just the +copyright notice and a reference to the new \emph{\LaTeX\ Project +Public License} (LPPL) for the distribution and modification +conditions. The \texttt{tools}, \texttt{graphics}, and \texttt{mfnfss} +packages also now refer to this license in their distribution notices. + + \section{Support for Cyrillic encodings} + +Basic Cyrillic support, as announced in \LaTeX{} News~9, is now +finally an official part of \LaTeX{}. It includes support for the +following standard Cyrillic font encodings (this list may +grow):~\mbox{\texttt{T2A T2B T2C X2}}. + +It also includes various Cyrillic input encodings (20~in total, +including commonly used variants and Mongolian Cyrillic +encodings). This provides platform independent and +sophisticated basic support for high-quality typesetting in various +Cyrillic-based languages. + +For further information see the file \texttt{cyrguide.tex}. + +\section{Tools distribution} + +The \texttt{varioref} package has been extended to support textual +page references to a range of objects: e.g.,~if \texttt{eq-first} +and \texttt{eq-last} are the label names for the first and last +equation in a sequence, then you can now write +\begin{verbatim} + see~\vrefrange{eq-first}{eq-last} +\end{verbatim} +This results in different text depending on whether both +labels fall on the same page. + +Some additional user commands, as well as building-blocks for writing +private extensions, are described in the accompanying documentation. + + + +\end{document} + diff --git a/Master/texmf-dist/source/latex/base/ltnews11.tex b/Master/texmf-dist/source/latex/base/ltnews11.tex new file mode 100644 index 00000000000..67af304c8ee --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews11.tex @@ -0,0 +1,141 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews11.tex 01/06/1999 +% This is issue 11 of LaTeX News. + +\documentclass +% [lw35fonts] % uncomment this line to get Times + {ltnews} + +% \usepackage[T1]{fontenc} + +\publicationmonth{June} +\publicationyear{1999} +\publicationissue{11} + +\begin{document} + +\maketitle + +\section{Back in sync} + +The last release of \LaTeX{} was delayed even longer than you have +come to expect. We hope that it proved worth waiting for. It +required a major integration of the code from several people and, +independently, the introduction of the LPPL (see \LaTeX{} News~10) plus +several related changes to our internal systems. It therefore seemed +sensible to wait until everything was complete rather than do things +in too much hurry. + +This seem to have been a successful strategy as +the recent patch release was related to an isolated change that was +done many months previously. If this release does not appear a lot +closer to its nominal date then \ldots~well, you will not be reading +this sentence! + +\section{Yearly release cycles} + +With the year 2000 rapidly approaching, we intend to switch to a +release frequency of just one per year (with patches if necessary) for +the core of \LaTeXe{}. These days the system is sufficiently stable +that the original update policy is costing everybody more time than is +now warranted. + +\section{LPPL update} + +Thanks to extensive and valuable input from Matt Swift +(\email{swift@alum.mit.edu}) we now have a clearer and more detailed +form of the \LaTeX{} Project Public Licence. This release contains +both the original version (in \file{lppl-1-0.txt}) and the updated +version, LPPL~1.1. + +\section{The future of Sli\TeX{}} + +We still get a very small trickle of reports about this part of the +system (if you are no longer able to recall \LaTeX~2.09 then you will +know it as the \class{slides} class). We have not classified them (in +our minds at least) as bugs since we have always known that there are +many problems with this class. It is clear to us that the only +sensible action would be to redesign the system completely; in +particular, to remove much of its complexity whose purpose is to +support 10-year-old overlay technology. However, this would take a +lot too much time and would be completely out of proportion to its +current usage. + +We are therefore planning to make the \class{slides} class +unsupported in the sense that any problem related to the use of +invisible fonts is considered to be a feature (The \LaTeXe{} manual by +Leslie Lamport doesn't even describe this part of the class any more). +Of course, if it still has its enthusiasts then we are happy to cede +it to their loving care (somewhat like a preserved steam locomotive, +in some parts of the world). + +\section{Fontenc package peculiarities} + +The \verb=\usepackage= interface normally ensures that a package is +loaded only once. The \pkg{fontenc} package has become an +exception to this rule: it can be loaded several times using different +options, e.g., allowing the user to add a font encoding in the +preamble. This comes at a price for package writers: the low-level +commands (see \file{ltclass.dtx}) used to check if a package was +loaded, and with which options, do not work for the \pkg{fontenc} +package. + +\section{New math font encodings} + +As we announced in \LaTeX{} News~9, a joint working group of the +\TeX{} Users Group and the \LaTeX3 Project has developed a new +\mbox{8-bit} math font encoding for \TeX{}. +The reason why this work is not yet released is because of other +exciting developments in the world of math fonts and math characters. +It is obviously wise to ensure that the encoding work is fully +integrated with the available fonts. + +Those interested are reminded that further information about the Math +Font Group may be found on the World Wide Web at:\\ +\url{http://www.tug.org/twg/mfg/}. + +\section{Tools distribution} + +The \pkg{multicol} package has now got a small but useful extension +which allows you to force a column break where this is really +necessary. This is done with the command \verb=\columnbreak=, which +can be used like \verb=\pagebreak= (e.g.,~within paragraphs) except +that it cannot have an optional argument and thus it always forces a +new column. + +\section{Coming soon} + +Major work on a new class file structure to support flexible +designs is well under way; some of this work will be presented at the +TUG'99 conference in Vancouver, Canada. With a bit of luck much of +this work could be ready for integration into the next release---so +watch this space! + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews12.tex b/Master/texmf-dist/source/latex/base/ltnews12.tex new file mode 100644 index 00000000000..8b99d48f467 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews12.tex @@ -0,0 +1,154 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews12.tex +% +% This is issue 12 of LaTeX News. + +\documentclass +% [lw35fonts] % uncomment this line to get Times + {ltnews}[1999/12/01] + +% \usepackage[T1]{fontenc} + +\publicationmonth{December} +\publicationyear{1999} +\publicationissue{12} + +% Should go to .cls: +\newcommand{\acro}[1]{\textsc{\MakeLowercase{#1}}} + +\begin{document} + +\maketitle + +\section{LPPL update} + +Since the release of the \LaTeX{} Project Public Licence version~1.1, +we have received a small number of queries which resulted in some +minor changes to improve the wording or explain the intentions better. +As a consequence this release now contains LPPL~1.2 in the file +\file{lppl.txt} and the previous versions as \file{lppl-1-0.txt} and +\file{lppl-1-1.txt}. + +\section{fixltx2e package} + + This package provides fixes to \LaTeXe{} which are desirable but + cannot be integrated into the \LaTeXe{} kernel directly as they + would produce a version incompatible to earlier releases (either + in formatting or functionality). + + By having these fixes in the form of a package, users can benefit + from them without the danger that their documents will fail, or + produce unexpected results, at other sites; this works because a + document will contain a clear indication (the \verb=\usepackage= + line, preferably with a required date) that at least some of these + fixes are required to format it. + +\section{Outcome of TUG '99 (Vancouver)} + +The slides from the \acro{TUG}'99 presentation we gave on \emph{a +new interface for \LaTeX\ class designers} are available from the +\LaTeX\ Project website; look for the file \verb|tug99.pdf| at: +\begin{quote} + \url{http://www.latex-project.org/talks/} +\end{quote} + +Please note that this document was intended only to be informal +``speaker's notes'' for our own use. We decided to make them available (the +speaker's notes as well as the slides that were presented) because several +people requested copies after the talk. However, they are \emph{not} in +a polished copy-edited form and are not intended for publication. + +Prototype implementations of parts of this interface are now available from: +\begin{quote} + \url{http://www.latex-project.org/code/experimental/} +\end{quote} + +We are continuing to add new material at this location so as to +stimulate further discussion of the underlying concepts. As of +December 1, 1999 +the following parts can be downloaded. +\begin{description} + + \item[xparse] Prototype implementation of the interface for declaring + document command syntax. See the \texttt{.dtx} files for + documentation. + + \item[template] Prototype implementation of the template interface + (needs parts of \texttt{xparse}). + + The file \texttt{template.dtx} in that directory has a large section + of documentation at the front describing the commands in the + interface and giving a `worked example' building up some templates + for caption formatting. + + \item[xcontents] Interface description for table of contents data (no + code yet). Coding examples have been thoroughly discussed on the + \texttt{latex-l} list. + + \item[xfootnote] Working examples for generating footnotes, + etc. Needs \texttt{xparse} and \texttt{template}. + + \end{description} +All examples are organised in subdirectories and additionally + available as \texttt{gzip} \texttt{tar} files. + + Please remember +that this material is intended only for experimentation and comments; +thus any aspect of it, e.g., the user interface or the functionality, +may change and, in fact, is very likely to change. +For this reason it is explicitly forbidden to place this material on +\acro{CD-ROM} distributions or public servers. + +These concepts, as well as their implementation, are under discussion +on the list \texttt{LATEX-L}. You can join this list, which is +intended solely for discussing ideas and concepts for future versions +of \LaTeX, by sending mail to +%\begin{quote} + \email{listserv@URZ.UNI-HEIDELBERG.DE} +%\end{quote} +containing the line + \begin{quote} + \texttt{SUBSCRIBE LATEX-L} \textit{Your Name} + \end{quote} + +This list is archived and, after subscription, you can retrieve older +posts to it by sending mail to the above address, containing a command +such as: +\begin{quote} +\texttt{GET LATEX-L LOGyymm} +\end{quote} +where \texttt{yy}=Year and \texttt{mm}=Month, e.g. +\begin{quote} +\texttt{GET LATEX-L LOG9910} +\end{quote} +for all messages sent in October 1999. + + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews13.tex b/Master/texmf-dist/source/latex/base/ltnews13.tex new file mode 100644 index 00000000000..dcab9b3f454 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews13.tex @@ -0,0 +1,201 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews13.tex +% +% This is issue 13 of LaTeX News. + +\documentclass +% [lw35fonts] % uncomment this line to get Palatino + {ltnews}[2000/07/21] + +% \usepackage[T1]{fontenc} + +\publicationmonth{June} +\publicationyear{2000} +\publicationissue{13} + + +\begin{document} + +\maketitle + +\raisefirstsection +\section{Yearly release cycle} + +We announced in \textit{\LaTeX{} News~11} that we intended to switch +to a 12-monthly release schedule. With the present (June~2000) +release, this switch is being made: thus the next release of \LaTeX{} +will be dated June~2001. We shall of course continue, as in the past, +to release patches as needed to fix significant bugs. + + +\section{PSNFSS: \small Quote of the Month} + +\begin{quote} + You should say in the \LaTeX{} News that Walter Schmidt has taken over + \PSNFSS{} from me. It gives me a certain pleasure to be able to draw a + line under that part of my life\ldots + + \begin{latexonly} + \vspace{-\baselineskip} + \end{latexonly} + + \begin{flushright} + Sebastian Rahtz + \end{flushright} +\end{quote} + +\begin{latexonly} + \vspace{-\baselineskip} +\end{latexonly} + +\noindent +The \PSNFSS{} material, which supports the use\latex{\\} +of common PostScript fonts with \LaTeX{}, has been thoroughly updated. +Most noticeably, the \package{mathpple} package, which used to be +distributed separately, is now part of the basic \PSNFSS{} bundle; +this package provides mathematical typesetting with the Palatino +typeface family. In addition, numerous bugs and flaws have been fixed +and the distribution has been `cleaned up'. The file +\file{changes.txt} contains a detailed list of these changes. +\latex{\looseness=-1} %%!!!!! It worked! + +The documentation (in \file{psnfss2e.pdf}) has been completely +rewritten to provide a comprehensive introduction to the use +of PostScript fonts. + +Notice that the new \PSNFSS{} needs updated files for font metrics, +virtual fonts and font definitions. If you received the new +version~(8.1) as part of a complete \TeX{} system then these new font +files should also have been installed. However, if you intend to +install or update \PSNFSS{} yourself, please read the instructions in +the file \file{00readme.txt} of the new \PSNFSS{} distribution. + +Support for commercial PostScript fonts, such as +Lucida~Bright, has been removed from the basic distribution; +it is now available from \ctan{}: +\begin{latexonly} + \file{\ctanhttp macros/latex/\\ + contrib/supported/psnfssx}. +\end{latexonly} +\begin{htmlonly} + \url{http://www.tex.ac.uk/tex-archive/macros/latex/contrib/supported/psnfssx}. +\end{htmlonly} + +\section{New AMS-\LaTeX{}} + +Version 2.0 of AMS-\LaTeX{} was released on December 1, 1999. It can +be obtained via \url{ftp://ftp.ams.org/pub/tex/} or +\url{http://www.ams.org/tex/amslatex.html}, as well from \ctan{}: +\begin{latexonly} + \file{\ctanhttp macros/latex/\\ + required/amslatex}. +\end{latexonly} +\begin{htmlonly} + \url{http://www.tex.ac.uk/tex-archive/macros/latex/required/amslatex}. +\end{htmlonly} + +This release consists chiefly of bug fixes and consolidation of the +existing features. The division of AMS-\LaTeX{} into two main parts +(the math packages;\latex{\\} +the AMS document classes) has been made more pronounced. +The files \file{diffs-m.txt}, \file{diffs-c.txt}, +\file{amsmath.faq}, and \file{amsclass.faq} describe the\latex{\\} +changes and address some common questions. + +The primary documentation files remain \file{amsldoc.tex}, for the +\package{amsmath} package, and \file{instr-l.tex}, for the AMS +document classes.\latex{\\} +The documentation for the \package{amsthm} package,\latex{\\} +however, has been moved from \file{amsldoc.tex}\latex{\\} +to a separate document \file{amsthdoc.tex}. + +\begin{latexonly} + \vfill +\end{latexonly} + +\section{New input encoding \package{latin4}} + +The package \package{inputenc} has, thanks to Hana Skoumalov\'a, +been extended to cover the \package{latin4} input encoding; this +covers Baltic and Scandinavian languages as well as Greenland +Inuit and Lappish. + +\begin{latexonly} + \vfill +\end{latexonly} + +\section{New experimental code} + +In \textit{\LaTeX{} News~12} we announced some ongoing work towards a +`Designer Interface for \LaTeX' and we presented some early results +thereof. Since then, at Gutenberg\,2000 in Toulouse and TUG\,2000 in +Oxford, we described a new output routine and an improved method of +handling vertical mode material between paragraphs. In combination +these support higher quality \emph{automated}\footnote + {The stress here is on automated!} +page-breaking and page make-up\latex{\\} +for complex pages---the best yet achieved with \TeX{}! + +A paper describing the new output routine is +\begin{latexonly} + at\\ + \file{http://www.latex-project.org/papers/xo-pfloat.pdf% + \hspace*{-16pt}}\\ +\end{latexonly} +\begin{htmlonly} + at \url{http://www.latex-project.org/papers/xo-pfloat.pdf}. +\end{htmlonly} +All code examples and documentation are available +\begin{latexonly} + at\\ + \file{http://www.latex-project.org/code/experimental/% + \latex{\hspace*{-5pt}}}.\\[3pt] +\end{latexonly} +\begin{htmlonly} + at \url{http://www.latex-project.org/code/experimental/}. + +\end{htmlonly} +This directory has been extended to contain +\begin{description} + \item[galley] Prototype implementation of the interface\latex{\\} + for manipulating vertical material in galleys. + \item[xinitials] Prototype implementation of the interface\latex{\\} + for paragraph initials (needs the \texttt{galley} package. + \item[xtheorem] Contributed example using the \texttt{template} + package to provide a designer interface for theorem environments. + \item[xoutput] A prototype implementation of the new output routine + as described in the \texttt{xo-pfloat.pdf} paper. Expected + availability: at or shortly after\latex{\\} + the TUG\,2000 conference. +\end{description} + +\end{document} + + diff --git a/Master/texmf-dist/source/latex/base/ltnews14.tex b/Master/texmf-dist/source/latex/base/ltnews14.tex new file mode 100644 index 00000000000..f9466c0275b --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews14.tex @@ -0,0 +1,169 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews14.tex +% +% This is issue 14 of LaTeX News. + +\documentclass +% [lw35fonts] % uncomment this line to get Palatino + {ltnews}[2001/07/12] + +% \usepackage[T1]{fontenc} + +\publicationmonth{June} +\publicationyear{2001} +\publicationissue{14} + + +\begin{document} + +\maketitle + +\raisefirstsection +\section{Future releases} + +We are currently exploring how to best support the very large +community of individuals, organisations and enterprises that depend on +the robustness and availability of the current standard \LaTeX{} +distribution. The results of this may lead to some changes in the +regular release schedule and the handling of bug reports during the +next year. + +\section{New release of \textsf{Babel} (required)} + +Earlier this year a new release of \textsf{Babel} (3.7) became +available. You can read about its new features in +\begin{latexonly} + \file{http://www.ctan.org/tex-archive/macros/}\\ + \hspace*{4em}\file{latex/required/babel/announce.txt} +\end{latexonly} +\begin{htmlonly} + \url{http://www.ctan.org/tex-archive/macros/latex/required/babel/announce.txt} +\end{htmlonly} + +One of the bugs that got fixed in this release deals with how labels +are handled by \LaTeX{}. Because this part of the kernel is modified +by \textsf{babel}, the relevant changes need to be coordinated. +Therefore to use \textsf{Babel} with this release of \LaTeX{} you will +need to update your version of \textsf{babel} to at least 3.7. + +\section{New input encoding \package{latin9}} + +The package \package{inputenc} has, thanks to Karsten Tinnefeld, been +extended to cover the \package{latin9} input encoding. The +ISO-Latin~9 encoding is a useful modern replacement for ISO-Latin~1 +that contains a few characters needed for French and Finnish. Of wider +interest, it also contains the euro currency sign; this could be the +killer argument for many 8-bit texts to use Latin-9 in the future. + +According to a Linux manpage, ISO~Latin-9 supports Albanian, Basque, +Breton, Catalan, Danish, Dutch, English, Estonian, Faroese, Finnish, +French, Frisian, Galician, German, Greenlandic, Icelandic, Irish +Gaelic, Italian, Latin, Luxemburgish, Norwegian, Portuguese, +Rhaeto-Romanic, Scottish Gaelic, Spanish and Swedish.\\ +The characters added in \package{latin9} are (in \LaTeX{} notation):\\ +\begin{small} +\verb| \texteuro \v S \v s \v Z \v z \OE \oe \" Y | +\end{small}\\ +They displace the following characters from \package{latin1}:\\ +\begin{small} +\verb| \textcurrency \textbrokenbar \"{} \'{} \c{} |\\ +\verb| \textonequarter \textonehalf \textthreequarters | +\end{small} + + +\section{New tools} + +The new package \package{trace} provides many commands to control +\LaTeX{}'s tracing and debugging output, including the excellent new +information available with \eTeX{} such as the extremely useful +tracing of local assignments. You will find it in the tools +distribution. + +It offers the command \verb|\traceon|, which is similar to +\verb|\tracingall| but suppresses uninteresting stuff such as font +loading by NFSS (which can go on for pages if you are unlucky). It +also offers \verb|\traceoff| to \ldots\ guess what! Full details are +in the documented source file, \file{trace.dtx}. + +In the base \package{ifthen} package we have added +the uppercase synonyms \verb|\NOT| \verb|\AND| and \verb|\OR|. + +\section{New experimental code} + +In \textit{\LaTeX{} News~12} we announced some ongoing work towards a +`Designer Interface for \LaTeX' and we presented some early results +thereof. Since then, at Gutenberg\,2000 in Toulouse and TUG\,2000 in +Oxford, we described a new output routine and an improved method of +handling vertical mode material between paragraphs. In combination +these support higher quality \emph{automated}\footnote + {The stress here is on automated!} +page-breaking and page make-up\latex{\\} +for complex pages---the best yet achieved with \TeX{}! + +More recently we have added material to handle the complex front +matter requirements of journal articles; this was presented at +Gutenberg\,2001 in Metz. + +A paper describing the new output routine is +\begin{latexonly} + at\\ +\begin{small} + \file{http://www.latex-project.org/papers/xo-pfloat.pdf}\\ +\end{small} +\end{latexonly} +\begin{htmlonly} + at \url{http://www.latex-project.org/papers/xo-pfloat.pdf}. +\end{htmlonly} +All code examples and documentation are available +\begin{latexonly} + at\\ +\begin{small} + \file{http://www.latex-project.org/code/experimental} +\end{small} +\end{latexonly} +\begin{htmlonly} + at \url{http://www.latex-project.org/code/experimental/}. +\end{htmlonly} + +This directory has been extended to contain the following. +\begin{description} + \item[galley] Prototype implementation of the interface\latex{\\} + for manipulating vertical material in galleys. + \item[xinitials] Prototype implementation of the interface\latex{\\} + for paragraph initials (needs the \texttt{galley} package). + \item[xtheorem] Contributed example using the \texttt{template} + package to provide a designer interface for theorem environments. + \item[xor] A prototype implementation of the new output routine + as described in the \texttt{xo-pfloat.pdf} paper. + \item[xfrontm] A prototype version of + the new font matter interface. +\end{description} + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews15.tex b/Master/texmf-dist/source/latex/base/ltnews15.tex new file mode 100644 index 00000000000..cfde1a4e6d3 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews15.tex @@ -0,0 +1,169 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews15.tex +% +% This is issue 15 of LaTeX News. + +\documentclass +% [lw35fonts] % uncomment this line to get Palatino + {ltnews}[2004/02/28] + +% \usepackage[T1]{fontenc} + +\publicationmonth{December} +\publicationyear{2003} +\publicationissue{15} + +\begin{document} + +\maketitle + +%\raisefirstsection + +\section{Anniversary release} + +Yes, it's now 10~years since the first release in this series and, for +Knuthists, this release also contains \textit{Issue 16}\,! + +Meanwhile this \textit{Issue~15} describes the major new features in +the current release whilst \textit{Issue~16} looks\newline +a little way into the future of \LaTeX{}. + + +\section{LPPL -- new version} + +Most importantly, there is now a new version, 1.3, of the \LaTeX{} +Project Public Licence. Many of you will\newline +be thrilled to know that, following the exchange of over 1600 e-mail +messages dissecting various aspects of its philosophy such as `how +many angels can appear in the name of a file before it becomes +non-free', this version\newline +is now officially a DFSG (Debian Free Software Guidelines) approved license. +The discussions start at +\url{http://lists.debian.org/debian-legal/2002/debian-legal-200207/threads.html} +with high traffic throughout August to October~2002 and further +heated discussions starting in April~2003 and concluding +around June at +\url{http://lists.debian.org/debian-legal/2003/debian-legal-200306/msg00206.html}. + +The important features of the new version are useful clarifications in +the wording, and revised procedures\newline +for making a change to the Current Maintainer of a package. Special +thanks to all those people from\newline Debian Legal who worked +constructively with us\newline +on this onerous task, especially but not exclusively\newline +Jeff Licquia and Branden Robinson. + + +\section{Small updates to varioref} + +The English has been corrected in \verb|\reftextbefore| +(an incompatible change). There are other extensions +such as \verb|\labelformat|, \verb|\Ref|, \verb|\Vref| and \verb|\vpagerefnum|. +Some Dutch text has also been changed and two\newline +new options added: \package{slovak} and \package{slovene}. + + +\section{New and more robust commands} + +Many of the math mode commands for compound symbols have been made +robust and a new robust command has been added: \verb|\nobreakdashes|. +This last is a low-level command, borrowed from the \package{amsmath} +package, for use only before hyphens or dashes. It prevents the line +break that is normally allowed\newline +after the following sequence of dashes. + + +\section{Fixing font sizes} + +The new \package{fix-cm} package, by Walter Schmidt, changes the CM font +definition (\texttt{.fd}) files so that similar design sizes are used +in both the \texttt{OT1} and \texttt{T1} encodings. + + +\section{Font encodings} + +A number of options have been added to the \package{textcomp} package, +enabling only available glyphs to be used. +Also, the `NFSS font families' are now divided into five different groups +according to the subset of glyphs each provides from the full +collection of symbols in the TS1 encoding. +Given sufficient information about a font family +\package{textcomp} will use this in order to limit the\newline +typesetting to those glyphs that are available. + +Use of this mechanism has also enhanced \verb|\oldstylenums| +to use the current font if possible. + + +\section{Displaying font tables} + +With the \package{nfssfont} package you can now +specify the font to display by giving its `NFSS classification', +rather than needing to know its external font file's name. +It is also now possible to generate large collections of font +tables in batch mode by providing a suitable input file. + + +\section{New input encodings} + +The \package{inputenc} package has been extended as follows: +\package{macce} input encoding +(Apple Central European), +thanks to Radek Tryc and Marcin Wolinski; \package{cp1257}\newline +for Baltic languages; \package{latin10}, +thanks to Ionel Ciob\^{i}c\u{a}.\newline +The euro symbol has by +now been added to several encodings: +\package{ansinew}, \package{cp1250} +and \package{cp1252} (which also\newline +has another addition), whilst \package{cp858} +adds it to \package{cp850}. + + +\section{Unicode input} + +Partial, experimental support for text files that use the Unicode +encoding form UTF-8 is now provided by the option \package{utf8} for +the \package{inputenc} package. + +The only Unicode text file characters supported by the current version +are those based on the most common inputs for glyphs from the small +collection\newline +of standard \LaTeX{} Latin encodings. + + +\section{And finally \ldots\ pict2e} + +The old, non-functional version of this package has been removed + as there is now a fully working version from Hubert G\"a{\ss}lein + and Rolf Niepraschk. It is described + in \textit{The \LaTeX{} Manual}. + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews16.tex b/Master/texmf-dist/source/latex/base/ltnews16.tex new file mode 100644 index 00000000000..1f1ee5f63e2 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews16.tex @@ -0,0 +1,161 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews16.tex +% +% This is issue 16 of LaTeX News. + +\documentclass +% [lw35fonts] % uncomment this line to get Palatino + {ltnews}[2004/02/28] + +% \usepackage[T1]{fontenc} + +\publicationmonth{December} +\publicationyear{2003} +\publicationissue{16} + +\begin{document} + +\maketitle + +%\raisefirstsection + +\section{Anniversary news} + +This anniversary \textit{Issue~16} takes a brief look into the future work of +the \LaTeX3 Project Team, both short and and longer range. Please let +us know if you want %\newline +to get involved with us in any of this work (see below). + +An overview of the 10th Anniversary Release, dated 2003/12/01, is +can be found in \textit{Issue~15}. + + +\section{TLC2: The \LaTeX{} Companion -- 2nd edition!} + +Since you are reading this newsletter, there is a good chance that +you, or a friend, has already bought this encyclopedic volume: the +incomparable Second\newline +Edition of this work that is every \LaTeX{}ie's\newline +ultimate lucky charm. + +If by some chance you have not yet purchased your own copy then get +into training, get shopping, and get flexing your muscles (both +physical---it's $1100+$~pages,\newline +and intellectual) by using it to discover +masses of invaluable `insider information' about: +\begin{itemize} +\item the latest release of Standard \LaTeX{}; +\item over~200~extension packages; +\item plus related software and systems. +\end{itemize} +For more information on this all new (??\ldots OK,\newline +not \emph{all}, but over 90\%!!), +all accurate (we hope!)\newline +10th~Anniversary Edition, check out\newline + \mbox{\url{http://www.awprofessional.com/titles/0201362996}}. + + +\section{Future maintenance} + +We are currently exploring how best to support the very large and +rapidly growing community of individuals, organisations and +enterprises that depend on the robustness and availability of the +current standard \LaTeX{} distribution. Although we remain firmly\newline +resolved not to make changes in the base distribution (the kernel) of +Standard \LaTeX{}, there is still much that needs doing to maintain +its reliability and utility and to keep up the necessary level of +communication with users and supporters. Also, as with all advanced +software systems, bugs are still turning up occasionally so %\newline +some fixes are still essential. + +One major impediment to providing adequate service levels in this area +is, of course, the difficulties inherent in obtaining the time and +commitment of skilled minds---hence the appeal above to anyone +interested %\newline +in getting involved. + + +\section{LPPL certification} + +There are still some outstanding diplomatic tasks around the +\LaTeX{} Project Public Licence: these include +e.g.,~getting it `OSF certified' and ensuring that it gains +more support and wider use, even in the FSF world\newline +where it has long been tolerated. + + +\section{Use of \eTeX/pdf\TeX} + +We expect that within the next two years, releases of \LaTeX{} will +change modestly in order to run best under an extended \TeX{} engine +that contains the \eTeX{} primitives, e.g., \eTeX{} or pdf\TeX{}. +The details of this possible upgrade need further work so we are not +making a definite announcement yet. + +Although the current release does not \emph{require} \eTeX{} features, +we certainly recommend using an extended \TeX{}, especially if you +need to debug macros. + + +\section{End of `autoload' support} + +As computer systems generally grow in capacity, requirements change +and so we believe that the \package{autoload} variant of \LaTeX{} is +no longer required. Thus, although the code remains it is no longer +supported. We hope this does not cause any problems. + + +\section{New models, new code} + +In the period 1999--2001 we published many results of our work over +the previous decade on the development of new concepts and models +for automated typesetting based on \TeX{} as the underlying platform. +These can be found at \url{http://www.latex-project.org/papers/} +and +\mbox{\url{http://www.latex-project.org/code/experimental/}}. + +Since then a very large proportion of the The Team's efforts have been +diverted to provide the core author team for TLC2, which provides +over 1000 pages of carefully researched and tested documentation of +many aspects of the vast world of \LaTeX{} related software that +was developed over that same time period and that continues +to grow and improve prodigiously. + +Completion of that task \ldots\ until TLC3!! \ldots\ presents the +possibility of getting back to this more exciting development work, +or even to more radical work on non-\TeX{}-based models and +implementations. + +Of course, any such ideas are predicated on our ability to organise +(with you, we hope) an efficient\newline +but responsive maintenance and support system\newline +for Standard \LaTeX{}. + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/ltnews17.tex b/Master/texmf-dist/source/latex/base/ltnews17.tex new file mode 100644 index 00000000000..1cbefe39fc8 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews17.tex @@ -0,0 +1,230 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews17.tex +% +% This is issue 17 of LaTeX News. + +\documentclass + [lw35fonts] % uncomment this line to get Palatino + {ltnews}[2004/02/28] + +% \usepackage[T1]{fontenc} + + +\publicationmonth{December} +\publicationyear{2005} +\publicationissue{17} + +\begin{document} + +\maketitle + +% \raisefirstsection + +\section{Project licence news} + +The \LaTeX{} Project Public License has been updated slightly so that +it is now version 1.3c. In the warranty section the +phrase ``unless required by applicable law'' has been reinstated, +having got lost at some point. Also, +it now contains three clarifications: of the difference between +``maintained'' and ``author-maintained''; of the +term ``Base Interpreter''; and when clause 6b and 6d shall not apply. + +Following requests, we now also provide the text of the licence as a +\LaTeX{} document (in the file \texttt{lppl.tex}). This file can be +processed either as a stand-alone document or it can be included +(without any modification) into another \LaTeX{} document, e.g., as an +appendix, using \verb|\input| or \verb|\include|. + + +\section{New guide on font encodings} + +Way back in 1995 work was started on a guide to document the +officially allocated \LaTeX{} font encoding names. However, for one +reason or another this guide (named \textit{\LaTeX{} font encodings}) +was, until now, not added to the distribution. It describes the major +7-bit and 8-bit font encodings used in the \LaTeX{} world and explains +the restrictions required of conforming text font encodings. It also +lists all the `encoding specific commands' (the LICR or \LaTeX{} +Internal Character Representation) for characters supported by the +encodings \texttt{OT1} and \texttt{T1}. + +When the file \texttt{encguide.tex} is processed by \LaTeX{}, it will +attempt to typeset an encoding table for each encoding it describes. +For this to be possible, \LaTeX{} must be able to find \texttt{.tfm} +files for a representative example font for each encoding. If +\LaTeX{} cannot find such a file then a warning is issued and the +corresponding table is omitted. + + +\section{Robust commands in math} + +The font changing commands in text-mode have been robust commands for years, +but the same has not been true for the math versions such as +\verb|\mathbf|. While the math-mode commands worked correctly in +section heads, they could cause problems in other places such as index +entries. With this release, these math-mode commands are now robust in +the same way as their text-mode counterparts. + +%% +\pagebreak +%% + + +\section{Updates of required packages} + +Several of the packages in the \package{tools} bundle have been updated +for this release. + +The \package{xspace} package has some new features. One is an +interface for adding and removing the exceptions it knows about and +another is that it works with active characters. These remove problems +of incompatibility with the \package{babel} system. + +In \textit{\LaTeX\ News~16} we announced that some packages might +begin to take advantage of \eTeX{} extensions on systems where these +are available: and the latest version of \package{xspace} does just +that. Note also that \package{fixltx2e} will make use of the +facilities in \eTeX{} whenever these are present (see below). + +The \package{calc} package has also been given an update with a few +extra commands. +The commands \verb|\maxof| and \verb|\minof|, each with two +brace-delimited arguments, provide the usual numeric $\max$ and $\min$ +operations. The commands \verb|\settototalheight| and +\verb|\totalheightof| work like \verb|\settoheight| and +\verb|\heightof|. There are also some internal improvements to make +\package{calc} work with some more primitive \TeX\ constructs, such as +\verb|\ifcase|. + +The \package{varioref} package has acquired a few more default +strings but there are still a number of languages for +which good strings are still missing. + +The \package{showkeys} package has also been updated slightly to work +with more recent developments in \package{varioref}. Also, it now +provides an easy way to define the look of the printed labels with +the command \verb|\showkeyslabelformat|. + +\section{Work on \LaTeX{} fixes} + +The package known as \package{fixltx2e} has three new additions. A new +command \verb|\textsubscript| has been added as a complement to the +command \verb|\textsuperscript| in the kernel. Secondly, a new form of +\verb|\DeclareMathSizes| that allows all of its arguments to have a +dimension suffix. This means you can now use expressions such as +\verb|\DeclareMathSizes{9.5dd}{9.5dd}{7.4dd}{6.6dd}|. + +The third new +addition is the robust command \verb|\TextOrMath| which takes two +arguments and executes one of them when typesetting in text or math +mode respectively. This command also takes advantage of \eTeX{} +extensions if available; more specifically, +%% +%%\pagebreak +%% +when the \eTeX{} extensions are available, it does not +destroy kerning between previous letters and the text to be typeset. +The command is also used +internally in \package{fixltx2e} to resolve a problem with +\verb|\fnsymbol|. + +Also, further work has been done on reimplementing +the command \verb|\addpenalty|, which is used internally in several +places: we hope it is an improvement! + +\section{The graphics bundle} + +The \package{graphics} bundle now supports the +\package{dvipdfmx} post-processor and Jonathan Kew's XE\TeX\ +program. By support we mean that the graphics packages recognize the +new options \texttt{xetex} and \texttt{dvipdfmx} but we do not +distribute the respective driver files. + +This leads elegantly to a description of the +new policy concerning such driver files in the \package{graphics} bundle. +Most driver files for our graphics packages are maintained by the +developers of the associated post-processor or \TeX\ programs. +The teams developing these packages are working very hard: their rapid +development offers a stark contrast to the current schedule of \LaTeX\ +releases. It is therefore no longer practical +for the \LaTeX\ Team to be responsible for distributing the +latest versions of these driver files. + +Therefore the installation files for \package{graphics} have been +split: there is now \file{graphics.ins} to install the package files and +\file{graphics-drivers.ins} for the driver files (located in +\file{drivers.dtx}). +There is no need +to install all those provided in the file \file{drivers.dtx}. + +Please also note that, as requested by the maintainers of +\package{PStricks}, we have removed the package \package{pstcol} as +current versions of \package{PSTricks} make it obsolete. + +%% +\newpage +%% + + +\section{Future development} + +The title of this section is a little misleading as it actually +describes \emph{current} development. In 1998 the \package{expl3} +bundle of packages was put on \ctan\ to demonstrate a possible \LaTeX3 +programming environment. These packages have been lying dormant for some +time while the \LaTeX\ Project Team were preoccupied by other things +such as developing the experimental packages \package{xor}, +\package{template}, etc., (and also writing that indispensable +and encyclopaedic volume,\\ +The \LaTeX{} Companion -- 2nd edition). + +In October 2004 work on this code base was resumed with the goal of +some day turning it into a kernel for \LaTeX3. This work can now +also make full use of the widely accepted \eTeX\ extensions. Currently +two areas are central to this work. + +\begin{itemize} +\item Extending the + kernel code of \LaTeX3. +\item Converting the experimental packages + such as \package{xor}, \package{template} to use the new + syntax internally. +\end{itemize} + +Beware! Development of +\package{expl3} is happening so fast that the descriptions above might +be out of date when you read this! If you wish to see what's going on +then go to +\url{http://www.latex-project.org/code.html} where you can download + fully working code (we hope!). + +\end{document} + diff --git a/Master/texmf-dist/source/latex/base/ltoutenc.dtx b/Master/texmf-dist/source/latex/base/ltoutenc.dtx index f31394f32d2..89f32c7b4d3 100644 --- a/Master/texmf-dist/source/latex/base/ltoutenc.dtx +++ b/Master/texmf-dist/source/latex/base/ltoutenc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -37,14 +37,14 @@ %<TS1>\ProvidesFile{ts1enc.def}[2001/06/05 v3.0e (jk/car/fm) %<package>\ProvidesPackage{fontenc} %<TS1sty>\ProvidesPackage{textcomp} -%<OT1|T1|OMS|OML|OT4|package|TS1sty> [2004/02/22 v1.99f +%<OT1|T1|OMS|OML|OT4|package|TS1sty> [2005/09/27 v1.99g %<OT1|T1|OMS|OML|OT4|TS1> Standard LaTeX file] %<package|TS1sty> Standard LaTeX package] % %<*driver> % \fi \ProvidesFile{ltoutenc.dtx} - [2004/02/22 v1.99f LaTeX Kernel (font encodings)] + [2005/11/08 v1.99h LaTeX Kernel (font encodings)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltoutenc.dtx} @@ -65,7 +65,7 @@ %</driver> % \fi % -% \CheckSum{2762} +% \CheckSum{2788} % % \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 @@ -345,7 +345,7 @@ % \meta{command}|}| % \end{quote} % -% \task{Document the problems of these commands, see pr/3160} +% \task{?}{Document the problems of these commands, see pr/3160} % \changes{v1.9e}{1997/08/05}{Corrected order of arguments in % \cs{UseTextSymbol} example.} % For example, |\UseTextSymbol{OT1}{\ss}| has the same effect as: @@ -833,7 +833,7 @@ % (pr/3160)} % For a detailed discussion of this reimplementation and its % deficiencies, see pr/3160. -% \task{Improve this and document its problems, see pr/3160} +% \task{?}{Improve this and document its problems, see pr/3160} % \changes{v1.9z}{2000/01/30}{Macro reimplemented (pr/3160)} % \begin{macrocode} \def\add@accent#1#2{\hmode@bgroup @@ -1031,7 +1031,7 @@ % % For a detailed discussion of this reimplementation and its % deficiencies, see pr/3160. -% \task{Improve this and document its problems, see pr/3160} +% \task{?}{Improve this and document its problems, see pr/3160} % \changes{v1.9z}{2000/01/30}{Macro reimplemented (pr/3160)} % \begin{macrocode} \def\UseTextAccent#1#2#3{% @@ -1302,6 +1302,14 @@ \DeclareTextSymbolDefault{\ae}{OT1} \DeclareTextSymbolDefault{\i}{OT1} \DeclareTextSymbolDefault{\j}{OT1} +% \end{macrocode} +% \changes{v1.99h}{2005/11/08} +% {Added \cs{ij} and \cs{IJ} from babel. (pr/3771)} +% \begin{macrocode} +\DeclareTextSymbolDefault{\ij}{OT1} +\DeclareTextSymbolDefault{\IJ}{OT1} +% \end{macrocode} +% \begin{macrocode} \DeclareTextSymbolDefault{\l}{OT1} \DeclareTextSymbolDefault{\oe}{OT1} \DeclareTextSymbolDefault{\o}{OT1} @@ -1538,16 +1546,19 @@ % macro.} % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable % (pr/3160)} +% \changes{v1.99g}{2005/09/27}{Replace \cs{sh@ft} by \cs{ltx@sh@ft}} +% In these definitions we no longer use the helper function |\sh@ft| +% from plain.tex since that now has two incompatible definitions. % \begin{macrocode} \DeclareTextCommand{\b}{OT1}[1] - {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-3ex}% \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}\egroup} \DeclareTextCommand{\c}{OT1}[1] {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} \DeclareTextCommand{\d}{OT1}[1] {\hmode@bgroup - \o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}\egroup} + \o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup} % \end{macrocode} % Declare the text symbols. % \begin{macrocode} @@ -1612,6 +1623,17 @@ {\leavevmode\setbox\z@\hbox{!}\dimen@\ht\z@\advance\dimen@-1ex% \rlap{\raise.67\dimen@\hbox{\char23}}A} % \end{macrocode} +% \changes{v1.99h}{2005/11/08} +% {Added \cs{ij} and \cs{IJ} from babel. (pr/3771)} +% The dutch language uses the letter `ij'. It is available in +% \texttt{T1} encoded fonts, but not in the \texttt{OT1} encoded +% fonts. Therefor we fake it for the \texttt{OT1} encoding. +% \begin{macrocode} +\DeclareTextCommand{\ij}{OT1}{% + \nobreak\hskip\z@skip i\kern-0.02em j\nobreak\hskip\z@skip} +\DeclareTextCommand{\IJ}{OT1}{% + \nobreak\hskip\z@skip I\kern-0.02em J\nobreak\hskip\z@skip} +% \end{macrocode} % In the OT1 encoding, \pounds~and \$ share a slot. % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable % (pr/3160)} @@ -1735,9 +1757,12 @@ % \changes{v1.99b}{2004/01/03}{Use \cs{ooalign} for \cs{k} (pr/3532)} % \changes{v1.99b}{2004/01/03}{Added \cs{textogonekcentered} (pr/3532)} % \changes{v1.99c}{2004/01/04}{More adjustments for ogonek (pr/3532)} +% \changes{v1.99g}{2005/09/27}{Replace \cs{sh@ft} by \cs{ltx@sh@ft}} +% In these definitions we no longer use the helper function |\sh@ft| +% from plain.tex since that now has two incompatible definitions. % \begin{macrocode} \DeclareTextCommand{\b}{T1}[1] - {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-3ex}% \vbox to.2ex{\hbox{\char9}\vss}\hidewidth}\egroup} \DeclareTextCommand{\c}{T1}[1] {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent11 #1% @@ -1745,7 +1770,7 @@ \hidewidth\char11\hidewidth}}\fi} \DeclareTextCommand{\d}{T1}[1] {\hmode@bgroup - \o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}\egroup} + \o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup} \DeclareTextCommand{\k}{T1}[1] {\hmode@bgroup\ooalign{\null#1\crcr\hidewidth\char12}\egroup} \DeclareTextCommand{\textogonekcentered}{T1}[1] @@ -1772,6 +1797,8 @@ % \cs{textgreater} and \cs{textless}.} % \changes{v1.8c}{1996/10/27} % {Removed \cs{aa} and \cs{AA}} +% \changes{v1.99h}{2005/11/08} +% {Added \cs{ij} and \cs{IJ} from babel. (pr/3771)} % % \begin{macrocode} %\DeclareTextSymbol{\AA}{T1}{197} @@ -1794,6 +1821,8 @@ \DeclareTextSymbol{\guilsinglright}{T1}{15} \DeclareTextSymbol{\i}{T1}{25} \DeclareTextSymbol{\j}{T1}{26} +\DeclareTextSymbol{\ij}{T1}{188} +\DeclareTextSymbol{\IJ}{T1}{156} \DeclareTextSymbol{\l}{T1}{170} \DeclareTextSymbol{\ng}{T1}{173} \DeclareTextSymbol{\oe}{T1}{247} @@ -1830,7 +1859,7 @@ % \end{macrocode} % Declare the composites. % \changes{v1.93}{2001/05/28}{Changed the effect of -% \cs{\.}\cs{\i}, pr/3295} +% \cs{.}\cs{i}, pr/3295} % \begin{macrocode} \DeclareTextComposite{\.}{T1}{i}{`\i} \DeclareTextComposite{\.}{T1}{\i}{`\i} @@ -2128,15 +2157,20 @@ % \begin{macrocode} \DeclareTextCommand{\k}{OT4}[1]{% \TextSymbolUnavailable{\k{#1}}#1} +% \end{macrocode} +% In these definitions we no longer use the helper function |\sh@ft| +% from plain.tex since that now has two incompatible definitions. +% \changes{v1.99g}{2005/09/27}{Replace \cs{sh@ft} by \cs{ltx@sh@ft}} +% \begin{macrocode} \DeclareTextCommand{\b}{OT4}[1] - {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-3ex}% \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}\egroup} \DeclareTextCommand{\c}{OT4}[1] {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} \DeclareTextCommand{\d}{OT4}[1] {\hmode@bgroup - \o@lign{\relax#1\crcr\hidewidth\sh@ft{10}.\hidewidth}\egroup} + \o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup} % \end{macrocode} % Declare the text symbols. % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/base/ltoutenc.ins b/Master/texmf-dist/source/latex/base/ltoutenc.ins index 8212686c492..d4acd08d2d2 100644 --- a/Master/texmf-dist/source/latex/base/ltoutenc.ins +++ b/Master/texmf-dist/source/latex/base/ltoutenc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/ltoutput.dtx b/Master/texmf-dist/source/latex/base/ltoutput.dtx index d7eee068854..ac0a2819366 100644 --- a/Master/texmf-dist/source/latex/base/ltoutput.dtx +++ b/Master/texmf-dist/source/latex/base/ltoutput.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -37,7 +37,7 @@ %<*driver> % \fi \ProvidesFile{ltoutput.dtx} - [2004/02/07 v1.2l LaTeX Kernel (Output Routine)] + [2004/10/20 v1.2m LaTeX Kernel (Output Routine)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltoutput.dtx} @@ -1503,10 +1503,11 @@ % outputbox below: suggested by Fred Bartlett pr/2892} % \changes{1.2i}{2000/07/12}{Removed negative vskip, as it gives % unacceptable results when the depth is large: pr/3189} +% \changes{v1.2m}{2004/10/20}{Removed dead code} % \task{CAR}{As can be seen from the above two changes, getting a good % layout here is difficult: fix!} % \begin{macrocode} - \@tempdima\dp\@cclv +% \@tempdima\dp\@cclv \unvbox \@cclv % \vskip-\@tempdima \vskip \skip\footins diff --git a/Master/texmf-dist/source/latex/base/ltpage.dtx b/Master/texmf-dist/source/latex/base/ltpage.dtx index e7ded9e0e48..ae90b5babf7 100644 --- a/Master/texmf-dist/source/latex/base/ltpage.dtx +++ b/Master/texmf-dist/source/latex/base/ltpage.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltpageno.dtx b/Master/texmf-dist/source/latex/base/ltpageno.dtx index 3deb9820936..20b48269e46 100644 --- a/Master/texmf-dist/source/latex/base/ltpageno.dtx +++ b/Master/texmf-dist/source/latex/base/ltpageno.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltpar.dtx b/Master/texmf-dist/source/latex/base/ltpar.dtx index 417d45226b2..ded5ffa84ff 100644 --- a/Master/texmf-dist/source/latex/base/ltpar.dtx +++ b/Master/texmf-dist/source/latex/base/ltpar.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltpictur.dtx b/Master/texmf-dist/source/latex/base/ltpictur.dtx index a93f3f4cd67..ffd4dee9958 100644 --- a/Master/texmf-dist/source/latex/base/ltpictur.dtx +++ b/Master/texmf-dist/source/latex/base/ltpictur.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltplain.dtx b/Master/texmf-dist/source/latex/base/ltplain.dtx index 0b172df540b..08eaeb2579a 100644 --- a/Master/texmf-dist/source/latex/base/ltplain.dtx +++ b/Master/texmf-dist/source/latex/base/ltplain.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltplain.dtx} - [2004/02/24 v1.1x LaTeX Kernel (Plain TeX)] + [2005/09/27 v1.1y LaTeX Kernel (Plain TeX)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltplain.dtx} @@ -49,7 +49,7 @@ %</driver> % \fi % -% \CheckSum{756} +% \CheckSum{764} % % \changes{v1.0a}{1994/03/08} % {Remove need for a driver file.} @@ -982,14 +982,43 @@ % \begin{macro}{\sh@ft} % \changes{v1.1t}{1996/07/26}{replace \cs{dimen}\cs{z@} by % \cs{dimen@}} +% \changes{v1.1y}{2005/09/27}{Macro no longer used but +% left for compatibility} +% The definition of this macro in plain.tex was improved in +% about 1997; but as a result its usage was changed and its new +% definition is not appropriate for \LaTeX{}. +% +% Since the version given here has been in use by +% \LaTeX{} for many years it does not seem prudent to remove it now. +% As far as we can tell it has only been used to define~|\b| and~|\d| +% but this cannot be certain. % \begin{macrocode} \def\sh@ft#1{\dimen@.00#1ex\multiply\dimen@\fontdimen1\font \kern-.0156\dimen@} % compensate for slant in lowered accents % \end{macrocode} % \end{macro} % -% \LaTeX\ change: |\d|, |\b|, |\c|, |\copyright|, |\TeX| -% defined elsewhere. +% \begin{macro}{\ltx@sh@ft} +% \changes{v1.1y}{2005/09/27}{New macro} +% This is the \LaTeX{} version of the second incarnation of the plain +% macro |\sh@ft|, which takes a dimension as its argument. It shifts +% a pseudo-accent horizontally by an amount proportional to the product +% of its argument and the slant-per-point (fontdimen 1). +% +% \begin{macrocode} +\def\ltx@sh@ft #1{% + \dimen@ #1% + \kern \strip@pt + \fontdimen1\font \dimen@ + } % kern by #1 times the current slant +% \end{macrocode} +% \end{macro} +% +% +% +% \LaTeX{} change: the text commands such as +% |\d|, |\b|, |\c|, |\copyright|,~|\TeX| +% are now defined elsewhere. % % \changes{LaTeX2e} % {1993/11/29}{All accents in decimals; suggested by Paul Taylor} diff --git a/Master/texmf-dist/source/latex/base/ltsect.dtx b/Master/texmf-dist/source/latex/base/ltsect.dtx index 6f66a92755b..45e5a20ed16 100644 --- a/Master/texmf-dist/source/latex/base/ltsect.dtx +++ b/Master/texmf-dist/source/latex/base/ltsect.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltspace.dtx b/Master/texmf-dist/source/latex/base/ltspace.dtx index e455958dc24..bae44ca5cb8 100644 --- a/Master/texmf-dist/source/latex/base/ltspace.dtx +++ b/Master/texmf-dist/source/latex/base/ltspace.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/lttab.dtx b/Master/texmf-dist/source/latex/base/lttab.dtx index 501e9455faa..ab2400f3362 100644 --- a/Master/texmf-dist/source/latex/base/lttab.dtx +++ b/Master/texmf-dist/source/latex/base/lttab.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltthm.dtx b/Master/texmf-dist/source/latex/base/ltthm.dtx index 5290fea8bd5..d2a25ebc0a9 100644 --- a/Master/texmf-dist/source/latex/base/ltthm.dtx +++ b/Master/texmf-dist/source/latex/base/ltthm.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltvers.dtx b/Master/texmf-dist/source/latex/base/ltvers.dtx index d4ad7af5f8b..e5dabaef897 100644 --- a/Master/texmf-dist/source/latex/base/ltvers.dtx +++ b/Master/texmf-dist/source/latex/base/ltvers.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% conditions of the LaTeX Project Public License, either version 1.3b % 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3b or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -84,7 +84,7 @@ % \begin{macrocode} %<*2ekernel> \def\fmtname{LaTeX2e} -\edef\fmtversion{2003/12/01} +\edef\fmtversion{2005/12/01} % \end{macrocode} % \end{macro} % \end{macro} diff --git a/Master/texmf-dist/source/latex/base/ltx3info.tex b/Master/texmf-dist/source/latex/base/ltx3info.tex new file mode 100644 index 00000000000..3b2aa12a1cf --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltx3info.tex @@ -0,0 +1,474 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +\documentclass[a4paper]{article} + +% Commands and environments: + +\newcommand{\eg}{e.g.~} +\newcommand{\ie}{i.e.~} + + +\newenvironment{citations}{% + \list{}{% + \renewcommand{\makelabel}[1]{\normalfont\itshape ##1}% + }% +}{% + \endlist +} + +% Some logos: + +\newcommand{\NFSS}{NFSS} + +\newcommand{\LaTeXNews}{\LaTeX~News} + +\newcommand{\AW}{Addison Wesley} + +\newcommand{\SGML}{{\sc SGML}} +\newcommand{\DSSSL}{{\sc DSSSL}} +\newcommand{\HTML}{{\sc HTML}} +\newcommand{\XML}{{\sc XML}} +\newcommand{\PDF}{{\sc PDF}} + +\newcommand{\PS}{{\sc Post\-Script}} + +\newcommand{\AmSTeX}{$\mathcal A$\lower.4ex\hbox{$\!\mathcal + M\!$}$\mathcal S$-\TeX} +\newcommand{\AmSLaTeX}{$\mathcal A$\lower.4ex\hbox{$\!\mathcal + M\!$}$\mathcal S$-\LaTeX} +\newcommand{\MF}{{\sc Meta\-font}} + +% sections + +\setcounter{secnumdepth}{-2} + +% Front matter: + +\title{\Large The \LaTeX3 Project} + +\author{\copyright 1995--1999 \ +Frank Mittelbach and +Chris Rowley} + +\date{12 January 1999} + +\begin{document} + +\thispagestyle{empty} + +\maketitle + +\begin{abstract} + This article describes the motivation, achievements and future of + the \LaTeX3 Project, which was established to produce a new version + of \LaTeX{}, the widely-used and highly-acclaimed document + preparation system. It also describes how you can help us to + achieve our aims.\\[2pt] + \textbf{For Archive maintainers, Authors, Publishers and + Distributors:}\\ + The project team request that, whenever possible, you include this + article in any of the following: + \begin{itemize} + \item Books about \TeX{} and \LaTeX{}. + \item Instructions for authors on using \LaTeX{}. + \item The printed documentation of CD-ROM collections that contain + \LaTeX. + \item On-line collections that include a significant proportion of + documents encoded in \LaTeX. +\end{itemize} +\end{abstract} + +\section{Outline} + +The purposes of the \LaTeX3 system can be summarized thus: it will +greatly increase the range of documents which can be processed; and it +will provide a flexible interface for typographic designers to easily +specify the formatting of a class of documents. + +The \LaTeX3 Project Team is a small group of volunteers whose aim is +to produce this major new document processing system based on the +principles pioneered by Leslie Lamport in the current \LaTeX. + +The major visible work of the team before 1997 was the development of +the current \emph{standard} version of \LaTeX{}. This was first +released in 1994 and has since then been actively maintained and +enhanced by extensions to that core system. They will continue to +develop and maintain this system, releasing updated versions every six +months and recording these activities in the \LaTeX{} bugs database +(see below). + +Although \LaTeX{} may be distributed freely, the production and +maintenance of the system does require expenditure of reasonably large +sums of money. The \LaTeX3 Project Fund has therefore been set up to +channel money into this work. We know that some users are +aware of this fund as they have already contributed to it---many +thanks to all of them! If you want to know more about how you can +help the project, see Page \pageref{fund}---and thanks in advance for +your generosity in the future. + + +\section{Background} + +With \TeX{}, Knuth designed a formatting system that is able to +produce a large range of documents typeset to extremely high quality +standards. For various reasons (\eg quality, portability, stability +and availability) \TeX{} spread very rapidly and can nowadays be best +described as a world-wide de facto standard for high quality +typesetting. Its use is particularly common in specialized areas, such +as technical documents of various kinds, and for multi-lingual +requirements. + +The \TeX{} system is fully programmable. This allows the development +of high-level user interfaces whose input is processed by \TeX{}'s +interpreter to produce low-level typesetting instructions; these are +input to \TeX{}'s typesetting engine which outputs the format of each +page in a device-independent page-description language. The \LaTeX{} +system is such an interface; it was designed to support the needs of +long documents such as textbooks and manuals. It separates content and +form as much as possible by providing the user with a generic (\ie +logical rather than visual) mark-up interface; this is combined with +style sheets which specify the formatting. + +Recent years have shown that the concepts and approach of \LaTeX{} are +now widely accepted. Indeed, \LaTeX{} has become the standard method +of communicating and publishing documents in many academic +disciplines. This has led to many publishers accepting \LaTeX{} +source for articles and books; and the American Mathematical Society +now provides a \LaTeX{} package making the features of \AmSTeX{} +available to all users of \LaTeX{}. Its use has also spread into many +other commercial and industrial environments, where the technical +qualities of \TeX{} together with the concepts of \LaTeX{} are +considered a powerful combination of great importance to such areas as +corporate documentation and publishing. This has also extended to +on-line publishing using, for example, \PDF{} output incorporating +hypertext and other active areas. + +With the spreading use of \SGML{}-compliant systems (\eg Web-based +publishing using \HTML{} or \XML{}) \TeX{} again is a common choice as +the formatting engine for high quality typeset output: a widely used +such system is {\em The Publisher\/} from ArborText, whilst a more +recent development is the object-oriented document editor Grif. The +latter is used for document processing in a wide range of industrial +applications; it has also been adopted by the Euromath consortium as +the basis of their mathematician's workbench, one of the most advanced +of the emerging project-oriented user environments. Typeset output +from \SGML{}-coded documents in these systems is obtained by +translation into \LaTeX{}, which will therefore soon also be a natural +choice for the output of \DSSSL-compliant systems. + +Because a typical \SGML{} Document Type Definition (DTD) uses concepts +similar to those of \LaTeX{}, the formatting is often implemented by +simply mapping document elements to \LaTeX{} constructs rather than +directly to `raw \TeX'. +This enables the +sophisticated analytical techniques built into the \LaTeX{} +software to be exploited; and it avoids the need to program in \TeX{}. + +\section{Motivation} + +This increase in the range of applications of \LaTeX{} has highlighted +certain limitations of the current system, both for authors of +documents and for designers of formatting styles. + +In addition to the need to extend the variety of classes of document +which can be processed by \LaTeX{}, substantial enhancements are +necessary in, at least, the following areas: + \begin{itemize} + \item + the command syntax (attributes, short references, etc); + \item + the layout specification interface (style design); + \item + the level of robustness (error recovery, omitted tags); + \item + the extendibility (package interface); + \item + the layout specification of tabular material; + \item + the specification and inclusion of graphical material; + \item + the positioning of floating material, and other aspects of page + layout; + \item + the requirements of hypertext systems. + \end{itemize} + + Further analysis of these deficiencies has shown that some of the + problems are to be found in \LaTeX{}'s internal concepts and design. + This project to produce a new version therefore involves thorough + research into the challenges posed by new applications and by the use + of \LaTeX{} as a formatter for a wide range of documents, \eg \SGML{} + documents; on-line \PDF{} documents with hypertext links. + + This will result in a major re-implementation of large parts of the + system. Some of the results of such rethinking of the fundamentals + are already available in Standard \LaTeX{}, notably in the following + areas: + +\begin{itemize} +\item Font declaration and selection; +\item Font and glyph handling within mathematical formulas; +\item Handling multiple font glyph encodings within a document; +\item Allowing multiple input character encodings within a document; +\item A uniform interface for graphics inclusion; +\item Support for coloured text; +\item Building and interfacing new classes and extension packages. +\end{itemize} + + +\section{Description} + +The strengths of the present version of \LaTeX{} are +as follows: + \begin{itemize} + \item excellent standard of typesetting for text, technical +formulas\\ +and tabular material; + \item separation of generic mark-up from visual formatting; + \item ease of use for authors; + \item portability of documents over a wide range of platforms; + \item adaptability to many languages; + \item widespread and free availability; + \item reliable support and maintenance by the \LaTeX3 project team. + \end{itemize} + These will be preserved and in many cases greatly enhanced by the new + version which is being developed to fulfill the following requirements. + \begin{itemize} + \item + It will provide a syntax that allows highly automated translation + from popular \SGML{} DTDs into \LaTeX{} document classes (these + will be provided as standard with the new version). + + The syntax of the new \LaTeX{} user-interface will, for example, + support the \SGML{} concepts of `entity', `attribute' and `short + reference' in such a way that these can be directly linked to the + corresponding \SGML{} features. + + \item + It will support hypertext links and other features required for + on-line structured documents using, for example, \HTML{} and \XML{}. + +\item + It will provide a straightforward style-designer interface to support + both the specification of a wide variety of typographic requirements + and the linking of entities in the generic mark-up of a document to + the desired formatting. These two parts of the design process will + be clearly separated so that it is possible to specify different + layouts for the same DTD. + + The language and syntax of this interface will be as natural as + possible for a typographic designer. As a result, this language + could easily be interfaced to a visually-oriented, menu-driven + specification system. + + This interface will also support \DSSSL{} specifications and + style-sheet concepts such as those used with \HTML{} and \XML{}. + + \item + It will provide an enhanced user-interface that allows expression of + the typesetting requirements from a large range of subject areas. Some + examples are listed here. + + \begin{itemize} + \item The requirements of technical documentation (\eg offset layout,\\ + change bars, etc). + \item The requirements of academic publishing in the humanities\\ + (critical text editions, etc). + \item The requirements of structural formulas in chemistry. + \item Advanced use of the mathematical-typesetting features of \TeX{}. + \item The integration of graphical features, such as shading, + within text. + \item the integration of hypertext and other links in on-line + documents using systems such as \HTML{}, \XML{} and \PDF{}. + + \end{itemize} + + Special care will be taken to ensure that this interface is + extensible: this will be achieved by use of modular designs. + + + \item + It will provide a more robust author-interface. For example, + artificial restrictions on the nesting of commands will be removed. + Error handling will be improved by adding + a more effective, interactive help system. + + \item + It will provide access to arbitrary fonts from any family (such as + the \PS{} and TrueType fonts) including a wide range of fonts for + multi-lingual documents and the specialist glyphs required by + documents in various technical and academic areas. + + \item + The new interfaces will be documented in detail and the + system will provide extensive catalogues of examples, carefully + designed to make the learning time for new users (both designers and + authors) as short as possible. + + \item + The code itself will be thoroughly documented and it will be + designed on modular principles. Thus the system will be easy to + maintain and to enhance. +\end{itemize} + +The resulting new \LaTeX{} will, like the present version, be usable +with any standard \TeX{} system (or whatever replaces it) and so will +be freely available on a wide range of platforms. + + +\section{\LaTeX{} documentation} + +\begingroup +\setlength{\parindent}{0pt} + +A complete description of Standard \LaTeX{} can be found in: +\begin{citations} +\item[\LaTeX: A Document Preparation System] + Leslie Lamport,\\ \AW, 2nd ed, 1994. +\item[The \LaTeX{} Companion] + Mittelbach, Goossens with Braams, Carlisle and Rowley,\\ \AW, 2nd ed, 2004. +\end{citations} + +A recent addition to the publications closely associated with the +project is: +\begin{citations} +\item[The \LaTeX{} Graphics Companion] + Goossens, Mittelbach and Rahtz,\\ \AW, 1997. +\end{citations} + +This \LaTeX{} distribution comes with documentation on several aspects +of of the system. The newer features of the system are described in +the following documents: +\begin{citations} +\item[\LaTeXe{} for authors] + describes the new features of \LaTeX{} documents, + in the file \texttt{usrguide.tex}; +\item[\LaTeXe{} for class and package writers] + describes how to produce \LaTeX{} classes and packages, + in the file \texttt{clsguide.tex}; +\item[\LaTeXe{} font selection] + describes the new features of \LaTeX{} fonts for + class and package writers, + in the file \texttt{fntguide.tex}. +\end{citations} + +For further contacts and sources of information on \TeX{} and +\LaTeX{}, see the addresses on Page~\pageref{contacts}. + +\endgroup +\pagebreak + + +\section{The \LaTeX3 Project Fund} +\label{fund} + +Although \LaTeX{} may be distributed freely, the production and +maintenance of the system does require expenditure of reasonably large +sums of money. There are many necessities that need substantial +financing: examples are new or enhanced computing equipment and travel +to team meetings (the volunteers come from many different countries, +so getting together occasionally is a non-trivial exercise). + +This is why we are appealing to you for contributions to the fund. +Any sum will be much appreciated; the amount need not be large as +small contributions add up to very useful amounts. Contributions of +suitable equipment and software will also be of great value. This +appeal is both to you as an individual author and to you as a member +of a group or as an employee: please encourage your department or your +employer to contribute towards sustaining our work. + +We should like to see funded projects that make considerable use of +\LaTeX{} (\eg conferences and research teams who use it to publish +their work, and electronic research archives using it) include +contributions to this fund in their budgets. %% e-print systems + +We are also asking commercial organisations to assess the benefits +they gain from using, or distributing, a well-supported \LaTeX{} and +to make appropriate contributions to the fund in order that we can +continue to maintain and improve the product. If you work for, or do +business with, such an organisation, please bring to the attention of +the relevant people the existence and needs of the project. + +In particular, we ask that all the large number of organisations and +businesses that distribute \LaTeX{}, within other software or as part +of a CD-ROM collection, should consider pricing all products containing +\LaTeX{} at a level that enables them to make regular donations to the +fund from the profit on these items. We also ask all authors and +publishers of books about \LaTeX{} to consider donating part of the +royalties to the fund. + +Contributions should be sent to one of the following addresses: +\begin{quote}\small\label{addrs} + \TeX{} Users Group, P.O. Box 2311, Portland, OR~97208-2311 USA\\ + Fax:~+1~503~223~3960 \ Email: \texttt{tug@tug.org} + + \noindent + UK TUG, 1 Eymore Close, Selly Oak, Birmingham B29~4LB UK\\ + Fax: +44 121 476 2159 \ Email: \texttt{uktug-enquiries@tex.ac.uk} +\end{quote} + +Cheques should be payable to the user group (TUG or UKTUG) and be +clearly marked as contributions to the \LaTeX3 fund. +Many thanks to all of you who have contributed in the past and thanks +in advance for your generosity in the future. + +\section{Contacts and information} +\label{contacts} + +In addition to the sources mentioned above, \LaTeX{} has its home page +on the World Wide Web at: +\begin{verbatim} + http://www.latex-project.org/ +\end{verbatim} +This page describes \LaTeX{} and the \LaTeX3 project, and contains +pointers to other \LaTeX{} resources, such as the user guides, the +\TeX{} Frequently Asked Questions, and the \LaTeX{} bugs database. + +More general information, including contacts for local User Groups, +can be accessed via: +\begin{verbatim} + http://www.tug.org/ +\end{verbatim} + +The electronic home of anything \TeX-related is the Comprehensive +\TeX{} Archive Network (CTAN). This is a network of cooperating ftp +sites, with over a gigabyte of \TeX{} material: +\begin{verbatim} + ftp://cam.ctan.org/tex-archive/ + ftp://dante.ctan.org/tex-archive/ + ftp://tug.ctan.org/tex-archive/ +\end{verbatim} + +For more information, see the \LaTeX{} home page. + + +\end{document} + + + diff --git a/Master/texmf-dist/source/latex/base/ltxdoc.dtx b/Master/texmf-dist/source/latex/base/ltxdoc.dtx index 80390a76fcf..ec92e49697c 100644 --- a/Master/texmf-dist/source/latex/base/ltxdoc.dtx +++ b/Master/texmf-dist/source/latex/base/ltxdoc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/ltxref.dtx b/Master/texmf-dist/source/latex/base/ltxref.dtx index f0435c49261..f0fc582a018 100644 --- a/Master/texmf-dist/source/latex/base/ltxref.dtx +++ b/Master/texmf-dist/source/latex/base/ltxref.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/makeindx.dtx b/Master/texmf-dist/source/latex/base/makeindx.dtx index 563058817f2..74e93e5a439 100644 --- a/Master/texmf-dist/source/latex/base/makeindx.dtx +++ b/Master/texmf-dist/source/latex/base/makeindx.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/makeindx.ins b/Master/texmf-dist/source/latex/base/makeindx.ins index 73e45c3f7c4..c9e1d54d56b 100644 --- a/Master/texmf-dist/source/latex/base/makeindx.ins +++ b/Master/texmf-dist/source/latex/base/makeindx.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/modguide.tex b/Master/texmf-dist/source/latex/base/modguide.tex new file mode 100644 index 00000000000..c5585ffb32b --- /dev/null +++ b/Master/texmf-dist/source/latex/base/modguide.tex @@ -0,0 +1,412 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: modguide.tex + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\documentclass{ltxguide}[1995/11/28] + +\newcommand{\reasonsection}[1]{\subsubsection*{\it #1}} + +\newcommand{\nstex}{\textsf{NS-TeX}} + +\setcounter{secnumdepth}{-1} + +\title{Modifying \LaTeX} + +\author{\copyright~Copyright 1995, \LaTeX3 Project Team.\\ + All rights reserved.} + +\date{12 December 1995} + +\begin{document} + +\maketitle + +\tableofcontents + +\begin{abstract} + This document was produced in response to suggestions that the + modification and distribution conditions for the files constituting + the New Standard \LaTeX{} system should be similar to those implied + by Version~2 of the \textsc{GNU} General Public Licence, as + published by the Free Software Foundation. +\end{abstract} + +\section{Introduction} +\label{sec:intro} + +This article describes the principles underlying our policy on +distribution and modification of the files comprising the \LaTeX{} +system. It has been produced as a result of detailed discussions of +the issues involved in the support and maintenance of a widely +distributed document processing system used by diverse people for many +applications. These discussions have involved users, maintainers of +installations that support \LaTeX{} and various types of organisations +that distribute it. The discussions are continuing and we hope that +the ideas in this article will make a useful contribution to the +debate. + +Our aim is that \LaTeX{} should be a system which can be trusted by +users of all types to fulfill their needs. Such a system must be +stable and well-maintained. This implies that it must be reasonably +easy to maintain (otherwise it will simply not get maintained at +all). So here is a summary of our basic philosophy: +\begin{quote} + We believe that the freedom to rely on a widely-used standard for + document interchange and formatting is as important as the freedom to + experiment with the contents of files. + + We are therefore adopting a policy similar to that which Donald + Knuth applies to modifications of the underlying \TeX{} system: that + certain files, together with their names, are part of the system and + therefore the contents of these files should not be changed unless + the following conditions are met: + \begin{itemize} + \item they are clearly marked as being no longer part of the + standard system; + \item the name of the file is changed. + \end{itemize} +\end{quote} + + +\section{The system} +\label{sec:sys} + +In developing this philosophy, and the consequent limitations on how +modifications of the system should be carried out, we were heavily +influenced by the following facts concerning the current widespread +and wide-ranging uses of the \LaTeX{} system. +\begin{enumerate} +\item \LaTeX{} is not just a document processing system; + it also defines a language for document exchange. + +\item The standard document class files, and some other files, also + define a particular formatting of a document. + +\item The packages that we maintain define a particular document + interface and, in some cases, particular formatting of parts of a + document. + +\item The interfaces between different parts of the \LaTeX{} system + are very complex and it is therefore very difficult to check that a + change to one file does not affect the functionality of both that + file and also other parts of the system not obviously connected to + the file that has been changed. +\end{enumerate} + +This leads us to the general principle that: +\begin{quote} + with certain special exceptions, if you change the contents of a + file then the changed version should have a different file name. +\end{quote} + +We certainly do not wish to prevent people from experimenting with the +code in different ways and adapting it to their purposes. However, we +are concerned that any distribution of modifications to the code +should be very clearly identified as not being a part of the standard +distribution. The exact wording and form of the distribution +conditions is thus something that is flexible, but only within the +constraint of keeping \LaTeX{} as a standardised, reliable product for +the purposes described above: the exchange and formatting of +documents. + + +\section{Some examples} +\label{sec:expl} + +Here we elaborate the arguments that have led us to the above +conclusion. + + +\reasonsection{Separate development considered harmful!} +\label{sec:ja} + +In many fields, the use of \LaTeX{} as a language for communication +is just as important as its capacity for fine typesetting; this is a +very important consideration for a large population of authors, +journal editors, archivists, etc. + +Related to this issue of portability is the fact that the file names +are part of the end-user syntax. + +As a real example, the \LaTeX{} `tools' collection contains the +package `array.sty'. A new user-level feature was added to this file +at the end of 1994 and a document using this feature can contain the +line: +\begin{verbatim} + \usepackage{array}[1994/10/16] +\end{verbatim} + +By supplying the optional argument, the document author is indicating +that a version of the file \texttt{array.sty} dated no earlier than +that date is required to run this document without error. + +This feature would be totally worthless if we were to allow an +alternative version of the array package to be distributed under the +same name since it would mean that there would be in circulation files +of a later date, but without the new feature. If the document +were processed using this `alternative array' then it would certainly +produce `undefined command' errors and would probably not be +processable at all. + + +\reasonsection{What's in a file-name?} +\label{sec:jb} + +In a pure markup language, such as SGML, it is reasonably clear that +control over the final presentation lies with the receiver of a +document and not with the author. + +However, the way that \LaTeX{} is often used in practice means that +most people (at least when using the standard classes and packages) +expect the formatting to be preserved when they send the document to +another site. + +For example, suppose, as is still the most common use of \LaTeX{} in +publishing, you produce a document for `camera-ready-copy' using the +class `article' and that you carefully tune the formatting by, for +example, adding some explicit line breaks etc, to ensure that it fits +the 8 page limit set by the editor a journal or proceedings. + +It then gets sent to the editor or a referee who, without anyone +knowing, has a non-standard version of the class file `article' and so +it then runs to 9 pages. The consequence of this will, at the least, +be a lot of wasted time whilst everyone involved works out what has +gone wrong; it will probably also lead to everyone blaming each other +for something which was in fact caused by a misguided distribution +policy. + +It should also be noted that, for most people, the version of the +class file `article' that gets used is decided by a site maintainer +or the compilers of a CD-ROM distribution. To most users, +the symbols \texttt{a\,r\,t\,i\,c\,l\,e} in: +\begin{verbatim} + \documentclass{article} +\end{verbatim} +are just as much part of \LaTeX{}'s syntax as are the symbols +\texttt{1\,2\,p\,t} in: +\begin{verbatim} + \hspace{12pt} +\end{verbatim} +Thus they should both define a standard formatting rather than +sometimes producing 1 more page or a 5pt larger space. + +Users rely on the fact that the command (or menu item) `LaTeX' +produces a completely standard \LaTeX, including the fact that +`article' is the `standard article'. They would not be at all happy +if the person who installed and maintains \LaTeX{} for them were +allowed to customise `article' every second day so as (in her or his +opinion) to improve the layout; or because another user wanted to write +a document in a different language or typeset one with different fonts. + +\reasonsection{\TeX{} itself} +\label{sec:tex} + +We have modelled our policies on those of the \TeX{} system since this +has for some time now been widely acknowledged as a very stable and +high quality typesetting system. + +The distribution policy set up by Donald Knuth for \TeX{} has the +following features: +\begin{itemize} +\item There is a clearly specified method for changing parts of the + software by the use of `change files'. +\item Although arbitrary changes are allowed, the resulting program + can be called \TeX{} only if its functionality is precisely the same + as that of \TeX{} (i.e.~neither less nor more) in all important + areas. +\item There are many files in the system that cannot be changed at all + (without changing the name): examples are the file + \texttt{plain.tex} and the files associated with fonts, including + the Metafont source files. +\end{itemize} + + +\reasonsection{Maintaining complexity} +\label{sec:compl} + +Our experience of maintaining \LaTeX{} has shown us just how complex +are the interactions between different parts of the system. + +We have therefore, with lots of help from the bug reports you send in, +developed a large suite of test files which we run to check the +effects of every change we make. A non-negligible percentage of these +test runs give unexpected results and hence show up some unexpected +dependency in the system. + + +\section{Some assurances} +\label{sec:conc} + +We are certainly not attempting to stop people reformatting \LaTeX{} +documents in any way they wish. There are many ways of customising +incoming documents to your personal style that do not involve changing +the contents of \LaTeX{}'s standard files; indeed, this freedom is one +of the system's many advantages. +The simplest way to achieve this is to replace +\begin{quote} +\verb|\documentclass{article}|\quad by\quad +\verb|\documentclass{myart}| +\end{quote} + +Nor do we wish to discourage the production of new packages improving +on the functionality or implementation of those we distribute. All we +ask is that, in the best interests of all \LaTeX{} users, you give +your superbly improved class or package file some other name. + +\section{Configuration possibilities} +\label{sec:conposs} + +The standard \LaTeX{} system format can be configured in several ways +to suit the needs and resources of an installation. For example, the +loading of fonts and font tables can be customised to match the font +shapes, families and encodings normally used in text mode. Also, by +producing the appropriate font definition files, the font tables +themselves can be set up to take advantage of the available fonts and +sizes. The loading of hyphenation patterns can be adjusted to cover +the languages used; this has to be done as part of making the format +since this is the only stage at which patterns can be loaded. + +A complete list of these configuration possibilities can be found in +the distributed guide \emph{Configuration options for} \LaTeXe{} +(\texttt{cfgguide.tex}). However, as it says there, the number of +configuration possibilities is strictly limited; we hope that having +read this far you will appreciate the reasons for this decision. One +consequence of this is that there is no provision for a general +purpose configuration file, or for adding extra code just before the +|\dump| of the format file. + +This was a deliberate decision and we hope that everyone (yes, that +includes you!) will support its intent. Otherwise there will be a +rapid return to the very situation, of several incompatible versions +of \LaTeX~2.09, that originally prompted us to produce \LaTeXe{}: the +new, and \emph{only}, `Standard \LaTeX'. This will make \LaTeX{} +unmaintainable and, hence, unmaintained (by us, at least). + +\begin{quote} + Therefore you should not misuse the configuration files or other + parts of the distribution to produce non-standard versions of + \LaTeX{}. +\end{quote} + +Some of the allowed configurations can result in a system that can produce +documents that are no longer `formatting compatible'; for example, the +use of different default fonts will most likely produce different line +and page breaks. If you do produce a system that is configured in +such a way that it is not `formatting compatible' then you should +consider carefully the needs of users who need to create portable +documents. A good way to provide for their needs is to make +available, in addition, a standard form of \LaTeX{} without any +`formatting incompatible' customisations. + + +\section{Modification conditions} +\label{sec:modcon} + +It is possible that you need to produce a document processing system +based on standard \LaTeX{} but with functionality that cannot be +implemented by using the approved configuration files and complying +with the restriction on the code that is allowed in them. In other +words, you may need a system which is sufficiently distinct from +Standard \LaTeX{} that it is not feasible to do this simply by using +the configuration options we provide or by producing new classes and +packages. + +If you do produce such a system then, for the reasons described +above, you should ensure that your system is clearly distinguished +from Standard \LaTeX{} in every possible way, including the following. + + +\begin{enumerate} +\item + Give your system a distinguished name, such as \nstex, which clearly + distinguishes it from \LaTeX{}. + +\item + Ensure that it contains no file with a name the same as that of + a file in the standard distribution but with different contents. + (If this is not possible then you must: + \begin{itemize} + \item + ensure that files from the non-\LaTeX{} system cannot be + accidentally accessed whilst using a standard \LaTeX{}; + \item ensure that each file from the non-\LaTeX{} system clearly + identifies itself as a non-\LaTeX{} file on the terminal and in the + log file.) + \end{itemize} + +\item + Ensure that the method used to run your system is clearly +\label{mcon:command} + distinct from that used to run Standard \LaTeX; e.g.~by using a + command name or menu entry that is clearly not \texttt{latex} + (or \texttt{LaTeX} etc). + +\item + Ensure that, when a file is being processed by your system, the + use of non-standard \LaTeX{} is clearly proclaimed to the user by + whatever means is appropriate. + +\item Ensure that what is written at the beginning of the log file + clearly shows that your system has been used, and that it is + not Standard \LaTeX{}. + See the file \texttt{cfgguide.tex} for how to achieve this. + +\item + Clearly explain to users that bug reports concerning your + system should not be sent to the maintainers of Standard + \LaTeX{}. +\end{enumerate} + +\subsection*{Note to system administrators} + +If you install a non-standard (modified) version of \LaTeX{} on a +multi-user site then please, in addition, install Standard \LaTeX{} +and observe the conditions enumerated above, particularly +\ref{mcon:command}. + + +\section{What do you think?} +\label{sec:you} + +We are interested in your views on the issues raised in this document. +The best way to let us know what you think, and to discuss your ideas +with others, is to join the \texttt{LaTeX-L} mailing list and send your +comments there. +To subscribe to this list, mail to: +\begin{verbatim} + listserv@urz.uni-heidelberg.de +\end{verbatim} +the following one line message: +\begin{verbatim} + subscribe LATEX-L <your-first-name> <your-second-name> +\end{verbatim} + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/newdc.ins b/Master/texmf-dist/source/latex/base/newdc.ins index 1e02efda6f7..9fda3c5e4b5 100644 --- a/Master/texmf-dist/source/latex/base/newdc.ins +++ b/Master/texmf-dist/source/latex/base/newdc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without diff --git a/Master/texmf-dist/source/latex/base/newlfont.dtx b/Master/texmf-dist/source/latex/base/newlfont.dtx index e400850f680..f4e0c1b35ec 100644 --- a/Master/texmf-dist/source/latex/base/newlfont.dtx +++ b/Master/texmf-dist/source/latex/base/newlfont.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/nfssfont.dtx b/Master/texmf-dist/source/latex/base/nfssfont.dtx index 02da5a8db9d..85cf29fca2d 100644 --- a/Master/texmf-dist/source/latex/base/nfssfont.dtx +++ b/Master/texmf-dist/source/latex/base/nfssfont.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -26,10 +26,10 @@ % extension .ins) which are part of the distribution. % % \fi -\def\nfssfontfileversion{v2.1a} -\def\nfssfontfiledate{2003/01/12} +\def\nfssfontfileversion{v2.2b} +\def\nfssfontfiledate{2006/01/08} -% \CheckSum{1182} +% \CheckSum{1226} %% \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 @@ -48,7 +48,7 @@ % % \iffalse % Copyright (C) 1994 Donald E. Knuth -% Copyright (C) 1994-94,2003 Frank Mittelbach, +% Copyright (C) 1994-94, 2003, 2006 Frank Mittelbach, % all rights reserved. % \fi % @@ -124,12 +124,14 @@ % code documentation. Any volunteers? % \begin{macrocode} %<*code> -\documentclass{article} %FMi -\nofiles %FMi -\textwidth=470pt %FMi -\oddsidemargin=0pt %FMi -\textheight=1000pt %FMi -\def\sevenrm{\fontsize{7}{9pt}\rmfamily} %FMi +\documentclass{article} +\nofiles +\setlength\textwidth{470pt} +\setlength\oddsidemargin{0pt} +\addtolength\textheight{7\baselineskip} +\addtolength\topmargin{-3\baselineskip} + +\def\sevenrm{\fontencoding{OT1}\fontsize{7}{9pt}\rmfamily} \typeout{**********************************************} \typeout{* NFSS font test program version <\nfssfontfileversion>} @@ -168,23 +170,65 @@ {Input external font name, e.g., cmr10^^J% (or <enter> for NFSS classification of font):}% % \end{macrocode} +% If the answer is a real font name (like ``cmr10'') then we have no idea +% what the encoding of this font is, so in this case we record the word +% ``unknown'' and internally assume |T1| encoding. Commands other than +% |\table| are then most likely going to fail, unless that assumption was +% correct. +% \begin{macrocode} + \def\encoding{unkown}% + \fontencoding{T1}\selectfont +% \end{macrocode} % If the user answers with ``return'' we ask for the \NFSS{} % classification of the font in form of encoding, family, series, % shape, and size offering a default each time. % \begin{macrocode} \ifx\currfontname\empty - \begingroup \typein[\encoding]{^^J^^J*** NFSS classification ***^^J^^JFont encoding [T1]:}% \ifx\encoding\empty \fontencoding{T1}% + \def\encoding{T1}% \else % \end{macrocode} -% The requested encoding might not be loaded, so we pretend that it -% was loaded here to avoid an error, after all we only need it to -% find out the external font name. +% Depending on the chosen encoding we have the problem, that the encoding +% support information may not be available (only for |T1| and |OT1| this is +% preloaded in the kernel, all other encodings normally need a declaration in +% the preamble). So here we attempt to load this support file even though +% it is actually already too late for this. +% \begin{macrocode} + \edef\next{% + \lowercase{\def\noexpand\next{\encoding enc.def}}}% + \next + \makeatletter + \InputIfFileExists\next + {}% +% \end{macrocode} +% If the encoding support file is not found this may indicate an error, eg +% something misspelled. However, it may equally mean that we dealing +% with a math font encoding for which no encoding support is +% available. +% \begin{macrocode} + {\PackageWarningNoLine{nfssfont}% + {Encoding file `\next' not found.% + \MessageBreak + You might have misspelt the name of the encoding + \MessageBreak + or perhaps this encoding is not a text encoding, + \MessageBreak + in which case you will probably only be able to + \MessageBreak + run the \noexpand\table command successfully}% +% \end{macrocode} +% But actually the situation is even worse, as some math +% encodings do have such support files. So for them we need to make the encoding +% known to NFSS in some other way, otherwise we could not even find the +% external font name, let alone typesetting a |\table|. % \begin{macrocode} - \expandafter\let\csname T@\encoding\endcsname\empty + \expandafter\let\csname T@\encoding\endcsname\empty + }% + \makeatother + \let\next\relax \fontencoding\encoding \fi \typein[\family]{Font family [cmr]:}% @@ -213,10 +257,9 @@ \fontsize\size\size \fi % \end{macrocode} -% Finally select the font and globally assign it to |\currfontname|. +% Finally select the font and assign it to |\currfontname|. % \begin{macrocode} - \selectfont\xdef\currfontname{\fontname\font}% - \endgroup + \selectfont\edef\currfontname{\fontname\font}% \fi \startfont \message{Now type a test command (\string\help\space for help):}} @@ -224,7 +267,8 @@ % % \begin{macrocode} \def\startfont{\font\testfont=\currfontname - \leftline{\sevenrm Test of \currfontname\unskip\ on \today\ at \hours} + \leftline{\sevenrm Test of font \currfontname\unskip\ (encoding + \encoding\unskip) on \today\ at \hours} \medskip \testfont \setbaselineskip \ifdim\fontdimen6\testfont<10pt \rightskip=0pt plus 20pt @@ -344,11 +388,14 @@ and you can use ordinary TeX commands (e.g., to \input a file).}}} \\M \\N \\O \\P \\Q \\R \\S \\T \\U \\V \\W \\X \\Y \\Z$\par} \math\endgroup} % \end{macrocode} -% +% Here we have to ensure that we use a suitable encoding otherwise our +% octal and hexadecimal constants will appear in whatever encoding the +% current font is. % \begin{macrocode} -\def\oct#1{\hbox{\rmfamily\'{}\kern-.2em\itshape - #1\/\kern.05em}} % octal constant -\def\hex#1{\hbox{\rmfamily\H{}\ttfamily#1}} % hexadecimal constant +\def\oct#1{\hbox{\fontencoding{OT1}\rmfamily\'{}\kern-.2em\itshape + #1\/\kern.05em}}% octal constant +\def\hex#1{\hbox{\fontencoding{OT1}\rmfamily + \H{}\ttfamily#1}}% hexadecimal constant \def\setdigs#1"#2{\gdef\h{#2}% \h=hex prefix; \0\1=corresponding octal \m=\n \divide\m by 64 \xdef\0{\the\m}% \multiply\m by-64 \advance\m by\n \divide\m by 8 \xdef\1{\the\m}} @@ -413,8 +460,8 @@ inculcating love and reverence for the great principles of government as derived from the inalienable rights of man to life, liberty, and the pursuit of happiness.'' \moretext (!`THE DAZED BROWN FOX QUICKLY GAVE 12345--67890 JUMPS!)\par}} -\def\moretext{?`But aren't Kafka's Schlo{\ss} and {\AE}sop's -{\OE}uvres often na{\"\i}ve vis-\`a-vis the d{\ae}monic ph{\oe}nix's +\def\moretext{?`But aren't Kafka's Schlo\ss{} and \AE sop's +\OE uvres often na\"\i ve vis-\`a-vis the d\ae monic ph\oe nix's official r\^ole in fluffy souffl\'es? } \def\omitaccents{\let\moretext=\relax} @@ -422,17 +469,25 @@ official r\^ole in fluffy souffl\'es? } % \end{macrocode} % % \begin{macrocode} -\def\bye{\end{document}} %FMi +\def\bye{\end{document}} % \end{macrocode} % % The redefinition of |\typeout| around the |\begin{document}| % prevents \LaTeX{} from reporting that there is no |.aux| file. % This is a bad hack, I agree :-) % \begin{macrocode} -\let\oldtypeout\typeout %FMi -\def\typeout#1{} %FMi -\begin{document} %FMi -\let\typeout\oldtypeout %FMi +\let\oldtypeout\typeout +\def\typeout#1{} +% \end{macrocode} +% And another bad hack: to be able to load an encoding definition file +% after |\begin{document}| I disable the preamble only setting. +% \begin{macrocode} +\makeatletter +\let\@preamblecmds\@empty +\makeatother + +\begin{document} +\let\typeout\oldtypeout \ifx\noinit!\else\init\fi %</code> diff --git a/Master/texmf-dist/source/latex/base/nfssfont.ins b/Master/texmf-dist/source/latex/base/nfssfont.ins index 1c08e06029b..756ef1e3713 100644 --- a/Master/texmf-dist/source/latex/base/nfssfont.ins +++ b/Master/texmf-dist/source/latex/base/nfssfont.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/olddc.ins b/Master/texmf-dist/source/latex/base/olddc.ins index fb79a18f460..47ad1661c7f 100644 --- a/Master/texmf-dist/source/latex/base/olddc.ins +++ b/Master/texmf-dist/source/latex/base/olddc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without diff --git a/Master/texmf-dist/source/latex/base/oldlfont.dtx b/Master/texmf-dist/source/latex/base/oldlfont.dtx index 08856eac7f7..64e5fa44bfb 100644 --- a/Master/texmf-dist/source/latex/base/oldlfont.dtx +++ b/Master/texmf-dist/source/latex/base/oldlfont.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/preload.dtx b/Master/texmf-dist/source/latex/base/preload.dtx index 20415b73b4d..e2b3171c0f1 100644 --- a/Master/texmf-dist/source/latex/base/preload.dtx +++ b/Master/texmf-dist/source/latex/base/preload.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/proc.dtx b/Master/texmf-dist/source/latex/base/proc.dtx index 9ecc070aa7b..49f7d70ff22 100644 --- a/Master/texmf-dist/source/latex/base/proc.dtx +++ b/Master/texmf-dist/source/latex/base/proc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/proc.ins b/Master/texmf-dist/source/latex/base/proc.ins index 38d5985202c..911090c1668 100644 --- a/Master/texmf-dist/source/latex/base/proc.ins +++ b/Master/texmf-dist/source/latex/base/proc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/slides.dtx b/Master/texmf-dist/source/latex/base/slides.dtx index 2582a414d83..aba13762f69 100644 --- a/Master/texmf-dist/source/latex/base/slides.dtx +++ b/Master/texmf-dist/source/latex/base/slides.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/slides.ins b/Master/texmf-dist/source/latex/base/slides.ins index 753528f9f29..052baf9a21b 100644 --- a/Master/texmf-dist/source/latex/base/slides.ins +++ b/Master/texmf-dist/source/latex/base/slides.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". @@ -88,7 +88,7 @@ extension .ins) which are part of the distribution. This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -96,12 +96,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without @@ -125,7 +125,7 @@ the system are in the document `cfgguide.tex'. This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -133,12 +133,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file may only be distributed together with a copy of the LaTeX base system. You may however distribute the LaTeX base system without diff --git a/Master/texmf-dist/source/latex/base/slifonts.fdd b/Master/texmf-dist/source/latex/base/slifonts.fdd index a3e3f3f1971..09c2536cdeb 100644 --- a/Master/texmf-dist/source/latex/base/slifonts.fdd +++ b/Master/texmf-dist/source/latex/base/slifonts.fdd @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/source2e.tex b/Master/texmf-dist/source/latex/base/source2e.tex index facf8547381..98fef6b5331 100644 --- a/Master/texmf-dist/source/latex/base/source2e.tex +++ b/Master/texmf-dist/source/latex/base/source2e.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,17 +8,23 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.2 +% 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.2 or later is part of all distributions of LaTeX -% version 1999/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This file has the LPPL maintenance status "maintained". % % The list of all files belonging to the LaTeX base distribution is % given in the file `manifest.txt'. See also `legal.txt' for additional % information. % +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% % \fi % This document will typeset the LaTeX sources as a single document. @@ -301,7 +307,7 @@ page_precedence "rnaA" \hfuzz=\maxdimen \typeout{% - Produce change log with^^J% + \string # Produce change log with^^J% makeindex -s gglo.ist -o source2e.gls source2e.glo} @@ -312,7 +318,7 @@ page_precedence "rnaA" % makeindex needs a symbol between the parts of composite page numbers % but we dont want one, so: \typeout{% - Produce index with^^J% + \string # Produce index with^^J% makeindex -s source2e.ist source2e.idx} \begingroup diff --git a/Master/texmf-dist/source/latex/base/syntonly.dtx b/Master/texmf-dist/source/latex/base/syntonly.dtx index 3f549590488..869a0f7e609 100644 --- a/Master/texmf-dist/source/latex/base/syntonly.dtx +++ b/Master/texmf-dist/source/latex/base/syntonly.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % diff --git a/Master/texmf-dist/source/latex/base/syntonly.ins b/Master/texmf-dist/source/latex/base/syntonly.ins index b4aaa71c761..5f5113145e7 100644 --- a/Master/texmf-dist/source/latex/base/syntonly.ins +++ b/Master/texmf-dist/source/latex/base/syntonly.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -40,7 +40,7 @@ This is a generated file. -Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -48,12 +48,12 @@ This file was generated from file(s) of the LaTeX base system. -------------------------------------------------------------- It may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either version 1.3 +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.3 or later is part of all distributions of LaTeX -version 2003/12/01 or later. +and version 1.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. This file has the LPPL maintenance status "maintained". diff --git a/Master/texmf-dist/source/latex/base/unpack.ins b/Master/texmf-dist/source/latex/base/unpack.ins index e2e47214875..c2a0d1bf74f 100644 --- a/Master/texmf-dist/source/latex/base/unpack.ins +++ b/Master/texmf-dist/source/latex/base/unpack.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -11,12 +11,12 @@ %% ------------------------------------------- %% %% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 +%% conditions of the LaTeX Project Public License, either version 1.3b %% 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.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. +%% and version 1.3b or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. %% %% This file has the LPPL maintenance status "maintained". %% diff --git a/Master/texmf-dist/source/latex/base/usrguide.tex b/Master/texmf-dist/source/latex/base/usrguide.tex new file mode 100644 index 00000000000..aa6d9415789 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/usrguide.tex @@ -0,0 +1,1815 @@ +% \iffalse meta-comment +% +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It 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. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: usrguide.tex + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\documentclass{ltxguide}[2001/05/28] + +\title{\LaTeXe~for authors} + +\author{\copyright~Copyright 1995--2005, \LaTeX3 Project Team.\\ + All rights reserved.} + +\date{27 November 2005} + + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +Welcome to \LaTeXe, the new standard version of the \LaTeX{} Document +Preparation System. + +This document describes how to take advantage of the new features of +\LaTeX, and how to process your old \LaTeX{} documents with +\LaTeXe. However, this document is only a brief introduction to the +new facilities and is intended for authors who are already familiar +with the old version of \LaTeX{}. It is \emph{not} a reference manual +for \LaTeXe{} nor is it a complete introduction to \LaTeX. + +It is somewhat of an historical document now, since \LaTeXe{} came into +existence in 1994. + +\subsection[\LaTeXe---The new \LaTeX~release] + {\LaTeXe---The new \LaTeX~release\\ (well, for more than 10 years now)} + +The previous version of \LaTeX{} was known as \LaTeX~2.09. Over the +years many extensions have been developed for \LaTeX. This is, of +course, a sure sign of its continuing popularity but it has had one +unfortunate result: incompatible \LaTeX{} formats came into use at +different sites. This included `standard \LaTeX~2.09', \LaTeX{} built +with the \emph{New Font Selection Scheme}~(\NFSS), \SLiTeX, \AmSLaTeX, +and so on. Thus, to process documents from various places, a site +maintainer was forced to keep multiple versions of the \LaTeX{} +program. In addition, when looking at a source file it was not always +clear for which format the document was written. + +To put an end to this unsatisfactory situation, \LaTeXe{} has been +produced; it brings all such extensions back under a single format and +thus prevents the proliferation of mutually incompatible dialects of +\LaTeX~2.09. With \LaTeXe{} the `new font selection scheme' is +standard and, for example, \textsf{amsmath} (formerly the \AmSLaTeX{} +format) or \textsf{slides} (formerly the \SLiTeX{} format) are simply +extensions, which may be loaded by documents using the same base format. + +The introduction of a new release also made it possible to add a small +number of often-requested features and to make the task of writing +packages and classes simpler. + +\subsection{\LaTeX3---The long-term future of \LaTeX} +\label{Sec:ltx3} + +\LaTeXe{} is the consolidation step in a comprehensive +reimplementation of the \LaTeX{} system. The next major release of +\LaTeX{} will be \LaTeX3, which will include a radical overhaul of the +document designers' and package writers' interface to \LaTeX. + +\LaTeX3 is a long-term research project but, until it is completed, +the project team are committed to the active maintenance of \LaTeXe{}. +Thus the experience gained from the production and maintenance of +\LaTeXe{} will be a major influence on the design of \LaTeX3. +A brief description of the project can be found in the document +|ltx3info.tex|. + +If you would like to support the project then you are welcome to send +donations to the \LaTeX3 Project Fund; this has been set up to help +the research team by financing various expenses associated with this +voluntary work of maintaining the current \LaTeX{} and developing +\LaTeX3. + +The fund is administered by The \TeX{} Users Group and by various +local user groups. Information about making donations and joining +these groups is available from: +\begin{quote}\small\label{addrs} + \texttt{http://www.tug.org/lugs.html} +\end{quote} + +The \LaTeX3{} project has its home page +on the World Wide Web at: +\begin{verbatim} + http://www.latex-project.org/ +\end{verbatim} +This page describes \LaTeX{} and the \LaTeX3 project, and contains +pointers to other \LaTeX{} resources, such as the user guides, the +\TeX{} Frequently Asked Questions, and the \LaTeX{} bugs database. + +Older articles covering aspects of the \LaTeX3 project are also +available for anonymous ftp from the Comprehensive \TeX{} Archive, in +the directory: +\begin{verbatim} + tex-archive/info/ltx3pub +\end{verbatim} +The file |ltx3pub.bib| in that directory contains an abstract of each +of the files. + +\subsection{Overview} + +This document contains an overview of the new structure and features +of \LaTeX. It is \emph{not} a self-contained document, as it contains +only the features of \LaTeX{} which have changed since version 2.09. +You should read this document in conjunction with an introduction to +\LaTeX{}. + +\begin{description} + +\item[Section~\ref{Sec:class+packages}] + contains an overview of the new structure of + \LaTeX{} documents. It describes how classes and packages work and + how class and package options can be used. It lists the standard + packages and classes which come with \LaTeX. + +\item[Section~\ref{Sec:commands}] describes the new commands available + to authors in \LaTeXe. + +\item[Section~\ref{Sec:209}] shows how to process old \LaTeX{} + documents with \LaTeXe. + +\item[Section~\ref{Sec:problems}] contains advice on dealing with + problems you may encounter in running \LaTeXe. + It lists some error messages which are new in \LaTeXe{} and + it describes some of the more common problems and how to cure them, + or where to find further information. + +\end{description} + +\subsection{Further information} + +For a general introduction to \LaTeX, including the new features of +\LaTeXe, you should read \emph{\LaTeXbook} +by Leslie Lamport~\cite{A-W:LLa94}. + +A more detailed description of the new features of \LaTeX, including an +overview of more than 200 packages and nearly 1000 ready to run examples, is +to be found in \emph{\LaTeXcomp second edition} by Frank Mittelbach and +Michel Goossens~\cite{A-W:MG2004}. + +Packages and programs for producing and manipulating graphics are +discussed at length in \emph{\LaTeXGcomp} by Michel Goossens, +Sebastian Rahtz and Frank Mittelbach~\cite{A-W:GRM97}. + +Solutions for publishing with \LaTeX{} on the World Wide Web are given +in \emph{\LaTeXWcomp} by Michel Goossens and Sebastian +Rahtz~\cite{A-W:GR99}. + +For more information about the many new \LaTeX{} packages you should +read the package documentation, which should be available from the +same source as your copy of \LaTeX. + +There are a number of documentation files which accompany every copy +of \LaTeX. A copy of \emph{\LaTeX{} News} will come out with each +six-monthly release of \LaTeX; it will be found in the files +|ltnews*.tex|. The class- and package-writer's guide \emph{\clsguide} +describes the new \LaTeX{} features for writers of document classes +and packages; it is in |clsguide.tex|. The guide \emph{\fntguide} +describes the \LaTeX{} font selection scheme for class- and +package-writers; it is in |fntguide.tex|. Support for Cyrillic languages +in \LaTeX{} is described in \emph{\cyrguide}. + +The documented source code (from the files used to produce the kernel +format via |latex.ltx|) is now available as +\emph{The \LaTeXe\ Sources}. ] +This very large document also includes an index of +\LaTeX{} commands. It can be typeset from the \LaTeX{} file +|source2e.tex| in the |base| directory, using the source files and +the class file |ltxdoc.cls| from this directory. + +For more information about \TeX{} and \LaTeX{}, please contact your +local \TeX{} Users Group, or the international \TeX{} Users Group (see +page \pageref{addrs}). + + +\section{Classes and packages} +\label{Sec:class+packages} + +This section describes the new structure of \LaTeX{} documents and the +new types of file: \emph{classes} and \emph{packages}. + +\subsection{What are classes and packages?} + +The main difference between \LaTeX~2.09 and \LaTeXe{} is in the +commands before |\begin{document}|. + +In \LaTeX~2.09, documents had \emph{styles}, +such as \textsf{article} or \textsf{book}, and \emph{options}, +such as \textsf{twoside} or \textsf{epsfig}. +These were indicated by the |\documentstyle| command: +\begin{quote} + |\documentstyle|\oarg{options}\arg{style} +\end{quote} +For example, to specify a two-sided article with encapsulated +PostScript figures, you said: +\begin{verbatim} + \documentstyle[twoside,epsfig]{article} +\end{verbatim} +However, there were two different types of document style option: +\emph{built-in options} such as |twoside|; and \emph{packages} such as +|epsfig.sty|. These were very different, since any \LaTeX{} document +style could use the \textsf{epsfig} package but only document styles +which declared the \textsf{twoside} option could use that option. + +To avoid this confusion, \LaTeXe{} differentiates between built-in +options and packages. These are given by the new |\documentclass| and +|\usepackage| commands: +\begin{quote} + |\documentclass|\oarg{options}\arg{class} \\ + |\usepackage|\oarg{options}\arg{packages} +\end{quote} +For example, to specify a two-sided article with encapsulated +PostScript figures, you now write: +\begin{verbatim} + \documentclass[twoside]{article} + \usepackage{epsfig} +\end{verbatim} +You can load more than one package with a single |\usepackage| +command; for example, rather than writing: +\begin{verbatim} + \usepackage{epsfig} + \usepackage{multicol} +\end{verbatim} +you can specify: +\begin{verbatim} + \usepackage{epsfig,multicol} +\end{verbatim} +Note that \LaTeXe{} still understands the \LaTeX~2.09 |\documentstyle| +command. This command causes \LaTeXe{} to enter \emph{\LaTeX~2.09 +compatibility mode}, which is described in Section~\ref{Sec:209}. + +You should not, however, use the |\documentstyle| command for new +documents because this compatibility mode is very slow and the new +features of \LaTeXe{} are not available in this mode. + +To help differentiate between classes and packages, document classes +now end with |.cls| rather than |.sty|. Packages still end with +|.sty|, since most \LaTeX~2.09 packages work well with \LaTeXe. + +\subsection{Class and package options} + +In \LaTeX~2.09, only document styles could have options such as +|twoside| or |draft|. In \LaTeXe{}, both classes and packages are +allowed to have options. For example, to specify a two-sided article +with graphics using the |dvips| driver, you write: + +\begin{verbatim} + \documentclass[twoside]{article} + \usepackage[dvips]{graphics} +\end{verbatim} +It is possible for packages to share common options. For example, +you could, in addition, load the \textsf{color} package by specifying: +\begin{verbatim} + \documentclass[twoside]{article} + \usepackage[dvips]{graphics} + \usepackage[dvips]{color} +\end{verbatim} +But because |\usepackage| allows more than one package to be listed, +this can be shortened to: +\begin{verbatim} + \documentclass[twoside]{article} + \usepackage[dvips]{graphics,color} +\end{verbatim} +In addition, packages will also use each option given to +the |\documentclass| command (if they know what to do with it), so you +could also write: +\begin{verbatim} + \documentclass[twoside,dvips]{article} + \usepackage{graphics,color} +\end{verbatim} +Class and package options are covered in more detail in +\emph{\LaTeXcomp} and in \emph{\clsguide}. + +\subsection{Standard classes} + +The following classes are distributed with \LaTeX: +\begin{description} + +\item[article] The |article| class described in \emph{\LaTeXbook}. +\item[book] The |book| class described in \emph{\LaTeXbook}. +\item[report] The |report| class described in \emph{\LaTeXbook}. +\item[letter] The |letter| class described in \emph{\LaTeXbook}. +\item[slides] The |slides| class described in \emph{\LaTeXbook}, + formerly \SLiTeX. +\item[proc] A document class for proceedings, based on |article|. + Formerly the |proc| package. +\item[ltxdoc] The document class for documenting the \LaTeX{} + program, based on |article|. +\item[ltxguide] The document class for \emph{\usrguide} and + \emph{\clsguide}, based on |article|. The document you are reading + now uses the |ltxguide| class. The layout for this class is likely + to change in future releases of \LaTeX. +\item[ltnews] The document class for the \emph{\LaTeX{} News} + information sheet, based on |article|. The layout for this class + is likely to change in future releases of \LaTeX. +\item[minimal] +\NEWfeature{1995/12/01} + This class is the bare minimum (3 lines) that is needed in a + \LaTeX\ class file. It just sets the text width and height, and + defines |\normalsize|. It is principally intended for debugging + and testing \LaTeX\ code in situations where you do not need to + load a `full' class such as |article|. If, however, you are + designing a completely new class that is aimed for documents with + structure radically different from the structure supplied by the + article class, then it may make sense to use this as a base and add + to it code implementing the required structure, rather than + starting from |article| and modifying the code there. +\end{description} + +\subsection{Standard packages} +\label{Sec:st-pack} + +The following packages are distributed with \LaTeX: +\begin{description} +\item[alltt] +\NEWfeature{1994/12/01} + This package provides the |alltt| environment, which is like + the |verbatim| environment except that |\|, |{|, and |}| + have their usual meanings. It is described in |alltt.dtx| and + \emph{\LaTeXbook}. +\item[doc] This is the basic package for typesetting the documentation + of \LaTeX{} programs. It is described in |doc.dtx| and in + \emph{\LaTeXcomp}. +\item[exscale] This provides scaled versions of the math extension + font. It is described in |exscale.dtx| and \emph{\LaTeXcomp}. + \item[fontenc] This is used to specify which font encoding \LaTeX{} + should use. It is described in |ltoutenc.dtx|. +\item[graphpap] +\NEWfeature{1994/12/01} + This package defines the |\graphpaper| command; this + can be used in a |picture| environment. +\item[ifthen] Provides commands of the form `if\dots then do\dots + otherwise do\dots'. + It is described in |ifthen.dtx| and \emph{\LaTeXcomp}. +\item[inputenc] +\NEWfeature{1994/12/01} + This is used to specify which input encoding \LaTeX{} should use. + It is described in |inputenc.dtx|. +\item[latexsym] \LaTeXe{} no longer loads the \LaTeX{} symbol font by + default. To access it, you should use the |latexsym| package. It + is described in |latexsym.dtx| and in \emph{\LaTeXcomp}; see also + Section~\ref{Sec:problems}. + \item[makeidx] This provides commands for producing indexes. It is + described in \emph{\LaTeXbook} and in \emph{\LaTeXcomp}. + \item[newlfont] This is used to emulate the font commands of + \LaTeX~2.09 with the New Font Selection Scheme. It is described in + \emph{\LaTeXcomp}. + \item[oldlfont] This is used to emulate the font commands of + \LaTeX~2.09. It is described in \emph{\LaTeXcomp}. + \item[showidx] + This causes the argument of each |\index| command to + be printed on the page where it occurs. + It is described in \emph{\LaTeXbook}. + \item[syntonly] This is used to process a document without + typesetting it. It is described in |syntonly.dtx| and in + \emph{\LaTeXcomp}. + \item[tracefnt] This allows you to control how much information about + \LaTeX's font loading is displayed. It is described in + \emph{\LaTeXcomp}. +\end{description} + +\subsection{Related software} + +\NEWdescription{1998/12/01} +The following software should be available from the same distributor +as your copy of \LaTeXe. You should obtain at least the +\textsf{graphics} and \textsf{tools} collections in order to have all +the files described in \emph{\LaTeXbook}. The |amsmath| package (part +of \textsf{amslatex} and formerly known as |amstex|) +and \textsf{babel} are also mentioned in the list +of `standard packages' in section C.5.2 of that book. +\begin{description} +\item[amslatex] Advanced mathematical typesetting from the American + Mathematical Society. This includes the |amsmath| package; it + provides many commands for typesetting mathematical formulas of + higher complexity. It is produced and supported by the American + Mathematical Society and it is described in \emph{\LaTeXcomp}. +\item[babel] This package and related files support typesetting in + many languages. It is described in \emph{\LaTeXcomp}. +\item[cyrillic] +\NEWfeature{1998/12/01} + Everything you need (except the fonts themselves) for + typesetting with Cyrillic fonts. +\item[graphics] This includes the |graphics| package which + provides support for the inclusion and transformation of graphics, + including files produced by other software. Also included, is the + |color| package which provides support for typesetting in colour. + Both these packages are described in \emph{\LaTeXbook}. +\item[psnfss] Everything you need (except the fonts themselves) for + typesetting with a large range of Type~1 (PostScript) fonts. +\item[tools] Miscellaneous packages written by the \LaTeX3 + project team. +\end{description} +These packages come with documentation and each of them is also +described in at least one of the books \emph{\LaTeXcomp} and +\emph{\LaTeXbook}. + +\subsubsection{Tools} + +This collection of packages includes, at least, the following (some +files may have slightly different names on certain systems): + +\begin{description} +\item[array] + Extended versions of the environments |array|, |tabular| + and |tabular*|, with many extra features. +\item[calc] +\NEWfeature{1996/12/01} + Enables the use of certain algebraic notation when specifying + values for lengths and counters. +\item[dcolumn] + Alignment on `decimal points' in tabular entries. Requires the + |array| package. +\item[delarray] + Adds `large delimiters' around arrays. Requires |array|. +\item[hhline] + Finer control over horizontal rules in tables. Requires |array|. +\item[longtable] + Multi-page tables. (Does not require |array|, but it uses the + extended features if both are loaded.) +\item[tabularx] + Defines a |tabularx| environment that is similar to |tabular*| + but it modifies the column widths, rather than the inter-column + space, to achieve the desired table width. +\item[afterpage] + Place text after the current page. +\item[bm] + Access bold math symbols. +\item[enumerate] + Extended version of the |enumerate| environment. +\item[fontsmpl] + Package and test file for producing `font samples'. +\item[ftnright] + Place all footnotes in the right-hand column in two-column mode. +\item[indentfirst] + Indent the first paragraph of sections, etc. +\item[layout] + Show the page layout defined by the current document class. +\item[multicol] + Typeset text in columns, with the length of the columns + `balanced'. +\item[rawfonts] + Preload fonts using the old internal font names of \LaTeX~2.09. + See Section~\ref{Sec:oldinternals}. +\item[somedefs] + Selective handling of package options. (Used by the rawfonts + package.) +\item[showkeys] + Prints the `keys' used by |\label|, |\ref|, |\cite| etc.; useful + whilst drafting. +\item[theorem] + Flexible declaration of `theorem-like' environments. +\item[varioref] + `Smart' handling of page references. +\item[verbatim] + Flexible extension of the verbatim environment. +\item[xr] + Cross reference other `external' documents. +\item[xspace] + `Smart space' command that helps you to avoid the common mistake + of missing spaces after command names. +\end{description} + + +\section{Commands} +\label{Sec:commands} + +This section describes the new commands available in \LaTeXe. +They are covered in more detail in \emph{\LaTeXbook} and in +\emph{\LaTeXcomp}. + +\subsection{Initial commands} + +Initial commands can appear only before the |\documentclass| +line. + +\begin{decl} +|\begin{filecontents}| \arg{file-name} \\ + \m{file-contents} \\ +|\end{filecontents}| +\end{decl} + +The |filecontents| environment is intended for bundling within a +single document file the contents of packages, options, or other +files. When the document file is run through \LaTeXe{} the body of +this environment is written verbatim (preceded by a comment line) to a +file whose name is given as the environment's only argument. However, +if that file already exists then nothing happens except for an +information message. + +Only normal ASCII text characters (7-bit visible text) should be +included in a |filecontents| environment. Anything else, such as tab +characters, form-feeds or 8-bit characters, should not be included in a +|filecontents| environment. + +Tabs and form feeds produce a warning, explaining that they are turned +into spaces or blank lines, respectively. +What happens to 8-bit characters depends on the \TeX{} installation and +is in general unpredictable. + +The |filecontents| environment is used for including \LaTeX{} files. +For other plain text files (such as Encapsulated PostScript files), +you should use the |filecontents*| environment which does not add a +comment line. + +These environments are allowed only before |\documentclass|. This +ensures that any packages that have been bundled in the document are +present when needed. + +\subsection{Preamble commands} +\label{Sec:pre} + +The changes to the preamble commands are intentionally designed to make +\LaTeXe{} documents look clearly different from old documents. The +commands should be used only before |\begin{document}|. + +\begin{decl} +|\documentclass| \oarg{option-list} \arg{class-name} + \oarg{release-date} +\end{decl} + +This command replaces the +\LaTeX~2.09 command |\documentstyle|. + +There must be exactly one |\documentclass| command in a document; and +it must come after the |filecontents| environments, if any, but before +any other commands. + +The \m{option-list} is a list of options, each of which may modify the +formatting of elements which are defined in the \m{class-name} file, +as well as those in all following |\usepackage| commands (see +below). + +The optional argument \m{release-date} can be used to specify the +earliest desired release date of the class file; it should contain a +date in the format \textsc{yyyy/mm/dd}. If a version of the class +older than this date is found, a warning is issued. + +For example, to specify a two-column article, using a version of +|article.cls| released after June 1994, you specify: +\begin{verbatim} + \documentclass[twocolumn]{article}[1994/06/01] +\end{verbatim} + +\begin{decl} +|\documentstyle| \oarg{option-list} \arg{class-name} +\end{decl} + +This command is still supported for compatibility with old files. It +is essentially the same as |\documentclass| except that it invokes +\emph{\LaTeX~2.09 compatibility mode}. It also causes any options in +the \m{option-list} that are not processed by the class file to be +loaded as packages after the class has been loaded. See +Section~\ref{Sec:209} for more details on \LaTeX~2.09 compatibility +mode. + +\begin{decl} +|\usepackage| \oarg{option-list} \arg{package-name} \oarg{release-date} +\end{decl} + +Any number of |\usepackage| commands is allowed. Each package file +(as denoted by \m{package-name}) defines new elements (or modifies +those defined in the class file loaded by the \m{class-name} argument +of the |\documentclass| command). A package file thus extends the +range of documents which can be processed. + +The \m{option-list} argument can contain a list of options, each of +which can modify the formatting of elements which are defined in this +\m{package-name} file. + +As above, \m{release-date} can contain the earliest desired release +date of the package file in the format \textsc{yyyy/mm/dd}; if an +older version of the package is found, a warning is issued. + +For example, to load the |graphics| package for the |dvips| driver, +using a version of |graphics.sty| released after June 1994, you write: +\begin{verbatim} + \usepackage[dvips]{graphics}[1994/06/01] +\end{verbatim} +Each package is loaded only once. If the same package is requested +more than once, nothing happens in the second or following attempt +unless the package has been requested with options that were not given +in the original |\usepackage|. If such extra options are specified +then an error message is produced. See Section~\ref{Sec:problems} how +to resolve this problem. + +As well as processing the options given in the \m{option-list} of the +|\usepackage| command, each package processes the +\m{option-list} of the |\documentclass| command as well. This +means that any option which should be processed by every package (to +be precise, by every package that specifies an action for it) can be +specified just once, in the |\documentclass| command, rather than +being repeated for each package that needs it. + +\begin{decl} +|\listfiles| +\end{decl} + +If this command is placed in the preamble then a list of the files +read in (as a result of processing the document) will be displayed +on the terminal (and in the log file) at the end of the run. Where +possible, a short description will also be produced. + +\NEWdescription{1995/12/01} +\emph{Warning}: this command will list only files which were read +using \LaTeX{} commands such as |\input|\arg{file} or +|\include|\arg{file}. If the file was read using the primitive \TeX{} +syntax |\input |\emph{file} (without |{ }| braces around the file name) +then it will not be listed; failure to use the \LaTeX{} form with the +braces can cause more severe problems, possibly leading to overwriting +important files, so \textbf{always put in the braces}. + + +\begin{decl} +|\setcounter{errorcontextlines}| \arg{num} +\end{decl} + +\TeX~3 introduced a new primitive |\errorcontextlines| which controls +the format of error messages. \LaTeXe\ provides an interface to this +through the standard |\setcounter| command. As most \LaTeX\ users do +not want to see the internal definitions of \LaTeX\ commands each time +they make an error, \LaTeXe{} sets this to $-1$ by default. + +\subsection{Document structure} + +The |book| document class introduces new commands to indicate +document structure. +\begin{decl} +|\frontmatter| \\ |\mainmatter| \\ |\backmatter| +\end{decl} +These commands indicate the beginning of the front matter (title page, +table of contents and prefaces), main matter (main text) and back +matter (bibliography, indexes and colophon). + +\subsection{Definitions} + +In \LaTeX, commands can have both mandatory and optional arguments, +for example in: +\begin{verbatim} + \documentclass[11pt]{article} +\end{verbatim} +the |11pt| argument is optional, whereas the |article| class name is +mandatory. + +In \LaTeX~2.09 users could define commands with arguments, but these +had to be mandatory arguments. With \LaTeXe, users can now define +commands and environments which also have one optional argument. + +\begin{decl} +|\newcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\ +|\newcommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\ +|\renewcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\ +|\renewcommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} +\end{decl} + +These commands have a new, second, optional argument; this is used for +defining commands which themselves take one optional argument. This +new argument is best introduced by means of a simple (and hence not +very practical) example: +\begin{verbatim} + \newcommand{\example}[2][YYY]{Mandatory arg: #2; + Optional arg: #1.} +\end{verbatim} +This defines |\example| to be a command with two arguments, referred +to as |#1| and |#2| in the \arg{definition}---nothing new so far. But +by adding a second optional argument to this |\newcommand| (the +|[YYY]|) the first argument (|#1|) of the newly defined command +|\example| is made optional with its default value being |YYY|. + +Thus the usage of |\example| is either: +\begin{verbatim} + \example{BBB} +\end{verbatim} +which prints: +\begin{quote} + Mandatory arg: BBB; + Optional arg: YYY. +\end{quote} +or: +\begin{verbatim} + \example[XXX]{AAA} +\end{verbatim} +which prints: +\begin{quote} + Mandatory arg: AAA; + Optional arg: XXX. +\end{quote} + +The default value of the optional argument is \texttt{YYY}. +This value is specified as the \oarg{default} argument of the +|\newcommand| that created |\example|. + +As another more useful example, the definition: +\begin{verbatim} + \newcommand{\seq}[2][n]{\lbrace #2_{0},\ldots,\,#2_{#1} \rbrace} +\end{verbatim} +means that the input |$\seq{a}$| produces +the formula $\lbrace a_{0},\ldots,\,a_{n} \rbrace$, +whereas the input |$\seq[k]{x}$| produces the formula +$\lbrace x_{0},\ldots,\,x_{k} \rbrace$. + +In summary, the command: +\begin{quote} + |\newcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} +\end{quote} +defines \m{cmd} to be a command with \m{num} arguments, the first of +which is optional and has default value \m{default}. + +Note that there can only be one optional argument but, as before, +there can be up to nine arguments in total. + +\begin{decl} +|\newenvironment| + \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\ +|\newenvironment*| + \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\ +|\renewenvironment| + \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\ +|\renewenvironment*| + \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} +\end{decl} + +\LaTeXe\ also supports the creation of environments that have one +optional argument. Thus the syntax of these two commands has +been extended in the same way as that of |\newcommand|. + +\begin{decl} +|\providecommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\ +|\providecommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} +\end{decl} + +This takes the same arguments as |\newcommand|. If \m{cmd} is already +defined then the existing definition is kept; but if it is currently +undefined then the effect of |\providecommand| is to define \m{cmd} +just as if |\newcommand| had been used. + +\NEWfeature{1994/12/01} + All the above five `defining commands' now have \texttt{*}-forms that + are usually the better form to use when defining commands with + arguments, unless any of these arguments is intended to contain + whole paragraphs of text. Moreover, if you ever do find yourself + needing to use the non-star form then you should ask whether + that argument would not better be treated as the contents of a + suitably defined environment. + +\NEWfeature{1995/12/01} + The commands produced by the above five `defining commands' are + now robust. + +\subsection{Boxes} + +These next three commands for making LR-boxes all existed in +\LaTeX~2.09. They have been enhanced in two ways. + +\begin{decl} +|\makebox| \oarg{width} \oarg{pos} \arg{text} \\ +|\framebox| \oarg{width} \oarg{pos} \arg{text} \\ +|\savebox| \arg{cmd} \oarg{width} \oarg{pos} \arg{text} +\end{decl} + +One small but far-reaching change for \LaTeXe\ is that, within the +\m{width} argument only, four special lengths can be used. These are +all dimensions of the box that would be produced by using simply +|\mbox|\arg{text}: +\begin{itemize} +\item [] |\height|\quad its height above the baseline; +\item [] |\depth|\quad its depth below the baseline; +\item [] |\totalheight|\quad the sum of |\height| and |\depth|; +\item [] |\width|\quad its width. +\end{itemize} +Thus, to put `hello' in the centre of a box of twice its natural +width, you would use: +\begin{verbatim} + \makebox[2\width]{hello} +\end{verbatim} +Or you could put \textit{f} into a square box, like +this: + \framebox{\makebox[\totalheight]{\itshape f\/}} +\begin{verbatim} + \framebox{\makebox[\totalheight]{\itshape f\/}} +\end{verbatim} +Note that it is the total width of the framed box, including the +frame, which is set to |\totalheight|. + +The other change is a new possibility for \m{pos}: |s| has been added +to |l| and |r|. If \m{pos} is |s| then the text is stretched the full +length of the box, making use of any `rubber lengths' (including any +inter-word spaces) in the contents of the box. If no such `rubber +length' is present, an `underfull box' will probably be produced. + +\begin{decl} +|\parbox| \oarg{pos} \oarg{height} \oarg{inner-pos} \arg{width} + \arg{text} \\ +|\begin{minipage}| + \oarg{pos} \oarg{height} \oarg{inner-pos} \arg{width}\\ +\m{text}\\ +|\end{minipage}| +\end{decl} + +As for the box commands above, |\height|, |\width|, etc.~may be used +in the \oarg{height} argument to denote the natural dimensions of the +box. + +The \m{inner-pos} argument is new in \LaTeXe. It is the vertical +equivalent to the \m{pos} argument for |\makebox|, etc, determining +the position of \m{text} within the box. The \m{inner-pos} may be any +one of |t|, |b|, |c|, or |s|, denoting top, bottom, centered, or +`stretched' alignment respectively. When the \m{inner-pos} argument +is not specified, \LaTeX\ gives it same value as \m{pos} (this could be +the latter's default value). + + +\begin{decl} +|\begin{lrbox}| \arg{cmd}\\ +\m{text}\\ +|\end{lrbox}| +\end{decl} + +This is an environment which does not directly print anything. +Its effect is to save the typeset \m{text} in the bin \m{cmd}. Thus +it is like |\sbox| \arg{cmd} \arg{text}, except that any white space +before or after the contents \m{text} is ignored. + +This is very useful as it enables both the |\verb| command and the +\texttt{verbatim} environment to be used within \m{text}. + +It also makes it possible to define, for example, a `framed box' +environment. This is done by first using this environment to save +some text in a bin \m{cmd} and then calling +|\fbox{\usebox{|\m{cmd}|}}|. + +The following example defines an environment, called |fmpage|, that is +a framed version of |minipage|. +\begin{verbatim} + \newsavebox{\fmbox} + \newenvironment{fmpage}[1] + {\begin{lrbox}{\fmbox}\begin{minipage}{#1}} + {\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}} +\end{verbatim} + + +\subsection{Measuring things} + +The first of these next commands was in \LaTeX~2.09. The two new +commands are the obvious analogues. + +\begin{decl} +|\settowidth| \arg{length-cmd} \arg{lr text} \\ +|\settoheight| \arg{length-cmd} \arg{lr text} \\ +|\settodepth| \arg{length-cmd} \arg{lr text} +\end{decl} + +\subsection{Line endings} + +\NEWdescription{1994/12/01} +The command |\\|, which is used to indicate a line-end in various +places, is now a robust command when used within arguments such as +section titles. + +Also, because it is often necessary to distinguish which type of line +is to be ended, we have introduced the following new command; it +has the same argument syntax as that of |\\|. +\begin{decl}[1994/12/01] +|\tabularnewline| \oarg{vertical-space} +\end{decl} +One example of its use is when the text in the last +column of a |tabular| environment is set with |\raggedright|; then +|\tabularnewline| can be used to indicate the end of a row of the +|tabular|, whilst |\\| will indicate the end of a line of text in a +paragraph within the column. This command can be used in the |array| +environment as well as |tabular|, and also the extended versions of +these environments offered by the \textsf{array} and \textsf{longtable} +packages in the tools collection. + +\subsection{Controlling page breaks} + +Sometimes it is necessary, for a final version of a document, to +`help' \LaTeX\ break the pages in the best way. \LaTeX~2.09 had a +variety of commands for this situation: |\clearpage|, |\pagebreak| +etc. \LaTeXe\ provides, in addition, commands which can produce +longer pages as well as shorter ones. + + +\begin{decl} +|\enlargethispage| \arg{size} \\ +|\enlargethispage*| \arg{size} +\end{decl} + +These commands increase the height of a page (from its normal value of +|\textheight|) by the specified amount \m{size}, a rigid length. This +change affects \emph{only} the current page. + +This can be used, for example, to allow an extra line to be fitted +onto the page or, with a negative length, to produce a page +shorter than normal. + +The star form also shrinks any vertical white space on the page as +much as possible, so as to fit the maximum amount of text on the +page. + +\NEWdescription{1995/12/01} +These commands do not change the position of the footer text; thus, if +a page is lengthened too far, the main text may overprint the footer. + +\subsection{Floats} + +There is a new command, |\suppressfloats|, and a new `float +specifier'. These will enable people to gain better +control of \LaTeX's float placement algorithm. + +\begin{decl} +|\suppressfloats| \oarg{placement} +\end{decl} + +This command stops any further floating environments from being placed +on the current page. With an optional argument, which should be either +|t| or |b| (not both), this restriction applies only to putting +further floats at the top or at the bottom. Any floats which would +normally be placed on this page are placed on the next page instead. + +\begin{decl} +The extra float location specifier: \ \texttt{!} +\end{decl} + +This can be used, along with at least one of \texttt{h}, \texttt{t}, +\texttt{b} and \texttt{p}, in the location optional argument of a +float. + +If a \texttt{!} is present then, just for this particular float, +whenever it is processed by the float mechanism the following are +ignored: +\begin{itemize} +\item all restrictions on the number of floats which can appear; +\item all explicit restrictions on the amount of space on a text page +which may be occupied by floats or must be occupied by text. +\end{itemize} +The mechanism will, however, still attempt to ensure that pages are +not overfull and that floats of the same type are printed in the +correct order. + +Note that its presence has no effect on the production of float pages. + +A \texttt{!} specifier overrides the effect of any |\suppressfloats| +command for this particular float. + +\subsection{Font changing: text} + +The font selection scheme used in \LaTeXe{} differs a lot from that +used in \LaTeX~2.09. In this section, we give a brief description of +the new commands. A more detailed description with examples is given +in \emph{\LaTeXcomp}, and the interface for class- and package-writers +is described in \emph{\fntguide}. + +\begin{decl} +|\rmfamily|\\ +|\sffamily|\\ +|\ttfamily|\\ +|\mdseries|\\ +|\bfseries|\\ +|\upshape|\\ +|\itshape|\\ +|\slshape|\\ +|\scshape| +\end{decl} + +These are font commands whose use is the same as the commands |\rm|, +|\bf|, etc. The difference is that each command changes just one +attribute of the font (the attribute changed is part of the name). +One result of this is that, for example, |\bfseries\itshape| produces +both a change of series and a change of shape, to give a bold italic +font. + +\begin{decl} +|\textrm|\arg{text}\\ +|\textsf|\arg{text}\\ +|\texttt|\arg{text}\\ +|\textmd|\arg{text}\\ +|\textbf|\arg{text}\\ +|\textup|\arg{text}\\ +|\textit|\arg{text}\\ +|\textsl|\arg{text}\\ +|\textsc|\arg{text}\\ +|\emph|\arg{text} +\end{decl} + +These are one-argument commands; they take as an argument the +text which is to be typeset in the particular font. They also +automatically insert italic corrections where appropriate; if you do +not like the result, you can add an italic correction with |\/| or +remove it with |\nocorr|. The |\nocorr| should always be the first or +last thing within the \arg{text} argument. + +\subsection{Font changing: math} + +Most of the fonts used within math mode do not need to be explicitly +invoked; but to use letters from a range of fonts, the following +class of commands is provided. + +\begin{decl} +|\mathrm| \arg{letters}\\ +|\mathnormal| \arg{letters}\\ +|\mathcal| \arg{letters}\\ +|\mathbf| \arg{letters}\\ +|\mathsf| \arg{letters}\\ +|\mathtt| \arg{letters}\\ +|\mathit| \arg{letters} +\end{decl} + +These are also one-argument commands which take as an argument the +letters which are to be typeset in the particular font. The argument +is processed in math mode so spaces within it will be ignored. Only +letters, digits and accents have their font changed, for example +|$\mathbf{\tilde A \times 1}$| produces $\mathbf{\tilde A \times 1}$. + +\subsection{Ensuring math mode} + +\begin{decl} +|\ensuremath| \arg{math commands} +\end{decl} + +In \LaTeX~2.09, if you wanted a command to work both in math mode and +in text mode, the suggested method was to define something like: +\begin{verbatim} + \newcommand{\Gp}{\mbox{$G_p$}} +\end{verbatim} +Unfortunately, the |\mbox| stops |\Gp| changing size correctly in (for +instance) subscripts or a fraction. + +In \LaTeXe{} you can define it thus: +\begin{verbatim} + \newcommand{\Gp}{\ensuremath{G_p}} +\end{verbatim} +Now |\Gp| will work correctly in all contexts. + +This is because the |\ensuremath| does nothing, producing simply +|G_p|, when |\Gp| is used within math mode; but it ensures that math +mode is entered (and exited) as required when |\Gp| is used in text +mode. + + +\subsection{Setting text superscripts} + +\begin{decl} +|\textsuperscript| \arg{text} +\end{decl} + +\NEWfeature{1995/06/01} In \LaTeX~2.09 textual superscripts such as +footnote markers were produced by internally entering math mode and +typesetting the number as a math superscript. This normally looked +fine since the digits in math fonts are the same as those in text +fonts when Computer Modern fonts are used. But when a different +document font (such as Times) is selected, the results look rather +strange. For this reason the command |\textsuperscript| has been +introduced which typesets its argument in the current text font, in a +superscript position and in the correct size. + +\subsection{Text commands: all encodings} + +\NEWdescription{1994/12/01} + One of the main differences between \LaTeXe{} and \LaTeX~2.09 is + that \LaTeXe{} can deal with fonts in arbitrary \emph{encodings}. + (A font encoding is the sequence of characters in the font---for + example a Cyrillic font would have a different encoding from a Greek + font.) + + The two major font encodings that are used for Latin languages such + as English or German are |OT1| (Donald Knuth's 7-bit encoding, which + has been used during most of \TeX's lifetime) and |T1| (the new + 8-bit `Cork' encoding). + + \LaTeX~2.09 only supported the |OT1| encoding, whereas \LaTeXe{} has + support for both |OT1| and |T1| built-in. The next section will + cover the new commands which are available if you have |T1|-encoded + fonts. This section describes new commands which are available in + all encodings. + + Most of these commands provide characters which were available in + \LaTeX~2.09 already. For example |\textemdash| gives an `em dash', + which was available in \LaTeX~2.09 by typing |---|. However, some + fonts (for example a Greek font) may not have the |---| ligature, + but you will still be able to access an em dash by typing + |\textemdash|. + +\begin{decl}[1994/12/01] + |\r{<text>}| +\end{decl} + This command gives a `ring' accent, for example `\r{o}' can be typed + |\r{o}|. + +\begin{decl}[1994/12/01] + |\SS| +\end{decl} + This command produces a German `SS', that is a capital `\ss'. This + letter can hyphenate differently from `SS', so is needed for entering + all-caps German. + +\begin{decl}[1994/12/01] + |\textcircled{<text>}| +\end{decl} + This command is used to build `circled characters' such as + |\copyright|. For example |\textcircled{a}| produces + \textcircled{a}. + +\begin{decl}[1994/12/01] + |\textcompwordmark| +\end{decl} + This command is used to separate letters which would normally + ligature. For example `f\textcompwordmark i' is produced with + |f\textcompwordmark i|. Note that the `f' and `i' have not + ligatured to produce `fi'. This is rarely useful in English + (`shelf\textcompwordmark ful' is a rare example of where it might be + used) but is used in languages such as German. + +\begin{decl}[1994/12/01] + |\textvisiblespace| +\end{decl} + This command produces a `visible space' character + `\textvisiblespace'. This is sometimes used in computer listings, + for example `type \textsf{hello\textvisiblespace world}'. + +\begin{decl}[1994/12/01] + |\textemdash| + |\textendash| + |\textexclamdown| + |\textquestiondown| \\ + |\textquotedblleft| + |\textquotedblright| + |\textquoteleft| + |\textquoteright| +\end{decl} + These commands produce characters which would otherwise be + accessed via ligatures: + \begin{center} + \begin{tabular}{ccl} + \emph{ligature} & \emph{character} & \emph{command} \\ + |---| & --- & |\textemdash| \\ + |--| & -- & |\textendash| \\ + |!`| & !` & |\textexclamdown| \\ + |?`| & ?` & |\textquestiondown| \\ + |``| & `` & |\textquotedblleft| \\ + |''| & '' & |\textquotedblright| \\ + |`| & ` & |\textquoteleft| \\ + |'| & ' & |\textquoteright| + \end{tabular} + \end{center} + The reason for making these characters directly accessible is so + that they will work in encodings which do not have these characters. + +\begin{decl}[1994/12/01] + |\textbullet| + |\textperiodcentered| +\end{decl} + These commands allow access to characters which were previously only + available in math mode: + \begin{center} + \begin{tabular}{lcl} + \emph{math command} & \emph{character} & \emph{text command} \\ + |\bullet| & $\bullet$ & |\textbullet| \\ + |\cdot| & $\cdot$ & |\textperiodcentered| + \end{tabular} + \end{center} + +\begin{decl}[1995/12/01] + |\textbackslash| + |\textbar| + |\textless| + |\textgreater| +\end{decl} + These commands allow access to ASCII characters which were + only available in verbatim or math mode: + \begin{center} + \begin{tabular}{lcl} + \emph{math command} & \emph{character} & \emph{text command} \\ + |\backslash| & $\backslash$ & |\textbackslash| \\ + |\mid| & $\mid$ & |\textbar| \\ + |<<| & $<$ & |\textless| \\ + |>>| & $>$ & |\textgreater| + \end{tabular} + \end{center} + +\begin{decl}[1995/12/01] + |\textasciicircum| + |\textasciitilde| +\end{decl} + These commands allow access to ASCII characters which were + previously only available in verbatim: + \begin{center} + \begin{tabular}{cl} + \emph{verbatim} & \emph{text command} \\ + |^| & |\textasciicircum| \\ + |~| & |\textasciitilde| + \end{tabular} + \end{center} + +\begin{decl}[1995/12/01] + |\textregistered| + |\texttrademark| +\end{decl} + These commands provide the `registered trademark' (R) and + `trademark' (TM) symbols. + +\subsection{Text commands: the T1 encoding} + +\NEWdescription{1994/12/01} + The |OT1| font encoding is fine for typesetting in English, but has + problems when typesetting other languages. The |T1| encoding solves + some of these problems, by providing extra characters (such as `eth' + and `thorn'), and it allows words containing accented letters to be + hyphenated (as long as you have a package like |babel| which allows + for non-American hyphenation). + + This section describes the commands you can use if you have the |T1| + fonts. To use them, you need to get the `ec fonts', or the + |T1|-encoded PostScript fonts, as used by \textsf{psnfss}. + All these fonts are + available by anonymous ftp in the Comprehensive \TeX{} Archive, and + are also available on the CD-ROMs \emph{4all \TeX} and + \emph{\TeX{} Live} (both available from the \TeX{} Users Group). + + You can then select the |T1| fonts by saying: +\begin{verbatim} + \usepackage[T1]{fontenc} +\end{verbatim} + This will allow you to use the commands in this section. + + \emph{Note:} Since this document must be processable on any site + running an up-to-date \LaTeX, it does not contain any characters + that are present only in |T1|-encoded fonts. This means that this + document cannot show you what these glyphs look like! If you want + to see them then run \LaTeX{} on the document |fontsmpl| and + respond `|cmr|' when it prompts you for a family name. + +\begin{decl}[1994/12/01] + |\k{<text>}| +\end{decl} + This command produces an `ogonek' accent. + +\begin{decl}[1994/12/01] + |\DH| + |\DJ| + |\NG| + |\TH| + |\dh| + |\dj| + |\ng| + |\th| +\end{decl} + These commands produce characters `eth', `dbar', `eng', and `thorn'. + +\begin{decl}[1994/12/01] + |\guillemotleft| + |\guillemotright| + |\guilsinglleft| + |\guilsinglright| \\ + |\quotedblbase| + |\quotesinglbase| + |\textquotedbl| +\end{decl} + % A local hack (could be improved): + \newcommand{\fauxguillemet}[1]{$\vcenter{\hbox{$\scriptscriptstyle#1$}}$} + These commands produce various sorts of quotation mark. + Rough representations of them are: + \fauxguillemet\ll a\fauxguillemet\gg{} + \fauxguillemet<a\fauxguillemet> + ,\kern -0.1em,\kern 0.05em a\kern -0.05em`` + ,\kern 0.05em a\kern -0.05em` and |"|a|"|. + +\NEWdescription{2001/06/01} + There are therefore some extra short-form ligatures available for + use in documents that will only be used with |T1|-encoded fonts. + + The guillemets |\guillemotleft| and |\guillemotright|% + \footnote{We apologise once again for maintaining Adobe's + enormous solipsism~(sic) of confusing a diving bird with + punctuation marks!} + can be obtained by typing |<<<<| and |>>>>| and |\quotedblbase| + by typing |,,|\,. + + Also, unlike the unexpected results with + |OT1|-encoded fonts, |<<| and |>>| will produce \textless{} and + \textgreater{}. + + Note also that the single character |"| will no longer produce '' + but rather |\textquotedbl|. + +\subsection{Logos} + +\begin{decl} +|\LaTeX|\\ +|\LaTeXe| +\end{decl} + +|\LaTeX| (producing `\LaTeX') is still the `main' logo command, +but if you need to refer to the new features, you can write +|\LaTeXe| (producing `\LaTeXe'). + +\subsection{Picture commands} + +\begin{decl} + |\qbezier[<N>](<AX>,<AY>)(<BX>,<BY>)(<CX>,<CY>)| \\ + | \bezier{<N>}(<AX>,<AY>)(<BX>,<BY>)(<CX>,<CY>)| +\end{decl} +The |\qbezier| command can be used in |picture| mode to draw a +quadratic Bezier curve from position |(<AX>,<AY>)| to |(<CX>,<CY>)| with +control point |(<BX>,<BY>)|. The optional argument \m{N} gives the +number of points on the curve. + +For example, the diagram: +\begin{center} + \begin{picture}(50,50) + \thicklines + \qbezier(0,0)(0,50)(50,50) + \qbezier[20](0,0)(50,0)(50,50) + \thinlines + \put(0,0){\line(1,1){50}} + \end{picture} +\end{center} +is drawn with: +\begin{verbatim} + \begin{picture}(50,50) + \thicklines + \qbezier(0,0)(0,50)(50,50) + \qbezier[20](0,0)(50,0)(50,50) + \thinlines + \put(0,0){\line(1,1){50}} + \end{picture} +\end{verbatim} +The |\bezier| command is the same, except that the argument \m{N} is not +optional. It is provided for compatibility with the \LaTeX~2.09 +|bezier| document style option. + +\subsection{Old commands} + +\begin{decl} +|\samepage| +\end{decl} + +The |\samepage| command still exists but is no longer being +maintained. +This is because it only ever worked erratically; it does not +guarantee that there will be no page-breaks within its scope; and +it can cause footnotes and marginals to be wrongly placed. + +We recommend using |\enlargethispage| in conjunction with page-break +commands such as |\newpage| and |\pagebreak| to help control page +breaks. + +\begin{decl} + |\SLiTeX| +\end{decl} +Since \SLiTeX{} no longer exists, the logo is no longer defined in the +\LaTeX{} kernel. A suitable replacement is |\textsc{Sli\TeX}|. The +\SLiTeX{} logo is defined in \LaTeX~2.09 compatibility mode. + +\begin{decl} +|\mho| |\Join| |\Box| |\Diamond| |\leadsto| \\ +|\sqsubset| |\sqsupset| |\lhd| |\unlhd| |\rhd| |\unrhd| +\end{decl} + +These symbols are contained in the \LaTeX{} symbol font, which was +automatically loaded by \LaTeX~2.09. However, \TeX{} has room for +only sixteen math font families; thus many users discovered that they +ran out. Because of this, \LaTeX{} does not load the \LaTeX{} symbol +font unless you use the \textsf{latexsym} package. + +These symbols are also made available, using different fonts, by the +\textsf{amsfonts} package, which also defines a large number of other +symbols. It is supplied by the American Mathematical Society. + +The \textsf{latexsym} package is loaded automatically in \LaTeX~2.09 +compatibility mode. + +\section{\LaTeX~2.09 documents} +\label{Sec:209} + +\LaTeXe{} can process (almost) any \LaTeX~2.09 document, by entering +\emph{\LaTeX~2.09 compatibility mode}. Nothing has changed, you run +\LaTeX{} in the same way you always did, and you will get much the +same results. + +The reason for the `almost' is that some \LaTeX~2.09 packages made use +of low-level unsupported features of \LaTeX. If you discover such a +package, you should find out if it has been updated to work with +\LaTeXe. Most packages will still work with \LaTeXe---the easiest way +to find out whether a package still works is to try it! + +\LaTeX~2.09 compatibility mode is a comprehensive emulation of +\LaTeX~2.09, but at the cost of time. Documents can run up to 50\% +slower in compatibility mode than they did under \LaTeX~2.09. +In addition, many of the new features of \LaTeXe{} are not available in +\LaTeX~2.09 compatibility mode. + +\subsection{Warning} + +\NEWdescription{1995/12/01} +This \emph{\LaTeX~2.09 compatibility mode} is provided solely to allow +you to process 2.09 documents, i.e.~documents that were written (we +hope, a long time ago) for a very old system and therefore could be +processed by using a genuine antique \LaTeX~2.09 system. + +This mode is therefore \emph{not} intended to provide access to the +enhanced features of \LaTeXe{}. Thus it must not be used to process +new documents which masquerade as 2.09 documents (i.e.~they begin with +|\documentstyle|) but which could not be processed using that genuine +antique \LaTeX~2.09 system because they contain some new, +\LaTeXe{}-only, commands or environments. + +To prevent such misuse of the system, and the consequent trouble it +causes when such misleadingly encoded documents are distributed, the +\emph{\LaTeX~2.09 compatibility mode} turns off most of these new +features and commands. Any attempt to use them will give you an error +message and, moreover, many of them simply will not work, whilst +others will produce unpredictable results. +So don't bother sending us any bug reports about such occurences since +they are intentional. + + +\subsection{Font selection problems} +\label{Sec:fsprob} + +When using compatibility mode, it is possible that you will find +problems with font-changing commands in some old documents. These +problems are of two types: + +\begin{itemize} +\item producing error messages; +\item not producing the font changes you expected. +\end{itemize} + +In case of error messages it is possible that the document (or an old +style file used therein) contains references to old internal commands +which are no longer defined, see Section~\ref{Sec:oldinternals} for +more information if this is the case. + +\NEWdescription{1995/12/01} +One example of the unexpected is if you use one of the new style of +math-mode font changing command as follows: +\begin{verbatim} +$ \mathbf{xy} A $ +\end{verbatim} +You may well find that this behaves as if you had put: +\begin{verbatim} +$ \bf {xy} A $ +\end{verbatim} +everything including the $A$ coming out bold. + +\LaTeX~2.09 allowed sites to customize their \LaTeX{} installation, +which resulted in documents producing different results on different +\LaTeX{} installations. \LaTeXe{} no longer allows so much +customization but, for compatibility with old documents, the local +configuration file |latex209.cfg| is loaded every time \LaTeXe{} +enters \LaTeX~2.09 compatibility mode. + +For example, if your site was customized to use the New Font +Selection Scheme (\NFSS) with the |oldlfont| option, then you can +make \LaTeXe{} emulate this by creating a |latex209.cfg| file +containing the commands: +\begin{verbatim} +\ExecuteOptions{oldlfont}\RequirePackage{oldlfont} +\end{verbatim} +Similarly, to emulate \NFSS{} with the |newlfont| option, you can +create a |latex209.cfg| file containing: +\begin{verbatim} +\ExecuteOptions{newlfont}\RequirePackage{newlfont} +\end{verbatim} + + +\subsection{Native mode} +\label{Sec:native} + +To run an old document faster, and use the new features of +\LaTeXe, you should try using \emph{\LaTeXe{} native mode}. +This is done by replacing the command: +\begin{quote} + |\documentstyle[|\m{options}|,|\m{packages}|]|\arg{class} +\end{quote} +with: +\begin{quote} + |\documentclass|\oarg{options}\arg{class} \\ + |\usepackage{latexsym,|\m{packages}|}| +\end{quote} +However, some documents which can be processed in \LaTeX~2.09 +compatibility mode may not work in native mode. Some \LaTeX~2.09 +packages will only work with \LaTeXe{} in 2.09 compatibility mode. +Some documents will cause errors because of \LaTeXe's improved error +detection abilities. + +But most \LaTeX~2.09 documents can be processed by \LaTeXe{}'s native +mode with the above change. Again, the easiest way to find out +whether your documents can be processed in native mode is to try it! + + +\section{Local modifications} +\label{sec:loc} + +\NEWdescription{1995/12/01} +There are two common types of local modifications that can be done +very simply. Do not forget that documents produced using such +modifications will not be usable at other places (such documents are +called `non-portable'). + +One type of modification is the use of personal commands for commonly +used symbols or constructions. These should be put into a package +file (for example, one called \texttt{mymacros.sty}) and loaded by +putting |\usepackage{mymacros}| in the document preamble. + +Another type is a local document class that is very similar to one of +the standard classes but contains some straightforward modifications +such as extra environments, different values for some parameters, etc. +These should be put into a class file; here we shall describe a simple +method of constructing such a file using, as an example, a class +called \textsf{larticle} that is very similar to the \textsf{article} +class. + +\NEWfeature{1995/12/01} +The class file called \texttt{larticle.cls} should (after the +preliminary identification commands) start as follows: +\begin{verbatim} + \LoadClassWithOptions{article} +\end{verbatim} +This command should be followed by whatever additions and changes you +wish to make to the results of reading in the file +\texttt{article.sty}. + +The effect of using the above |\LoadClassWithOptions| command is to +load the standard class file \textsf{article} with whatever options +are asked for by the document. Thus a document using your +\textsf{larticle} class can specify any option that could be specified +when using the standard \textsf{article} class; for example: +\begin{verbatim} + \documentclass[a4paper,twocolumn,dvips]{larticle} +\end{verbatim} + + +\section{Problems} +\label{Sec:problems} + +This section describes some of the things which may go wrong when +using \LaTeXe, and what you can do about it. + +\subsection{New error messages} + +\LaTeXe{} has a number of new error messages. +Please also note that many error messages now produce further helpful +information if you press |h| in response to the error prompt. + +\begin{decl} +|Option clash for package |\m{package}|.| +\end{decl} +The named package has been loaded twice with different options. If +you enter |h| you will be told what the options were, for example, if +your document contained: +\begin{verbatim} + \usepackage[foo]{fred} + \usepackage[baz]{fred} +\end{verbatim} +then you will get the error message: +\begin{verbatim} + Option clash for package fred. +\end{verbatim} +and typing |h| at the |?| prompt will give you: +\begin{verbatim} + The package fred has already been loaded with options: + [foo] + There has now been an attempt to load it with options: + [baz] + Adding the line: + \usepackage[foo,baz]{fred} + to your document may fix this. + Try typing <<return>> to proceed. +\end{verbatim} +The cure is, as suggested, to load the package with both sets of +options. Note that since \LaTeX{} packages can call other packages, +it is possible to get a package option clash without explicitly +requesting the same package twice. + +\begin{decl} + |Command |\m{command}| not provided in base NFSS.| +\end{decl} +The \m{command} is not provided by default in \LaTeXe. This error is +generated by using one of the commands: +\begin{verbatim} + \mho \Join \Box \Diamond \leadsto + \sqsubset \sqsupset \lhd \unlhd \rhd \unrhd +\end{verbatim} +which are now part of the \textsf{latexsym} package. +The cure is to add: +\begin{verbatim} + \usepackage{latexsym} +\end{verbatim} +in the preamble of your document. + +\begin{decl} + |LaTeX2e command <command> in LaTeX 2.09 document.| +\end{decl} +The \m{command} is a \LaTeXe{} command but this is a \LaTeX~2.09 +document. The cure is to replace the command by a \LaTeX~2.09 +command, or to run document in native mode, as described in +Section~\ref{Sec:native}. + +\begin{decl} + |NFSS release 1 command \newmathalphabet found.| +\end{decl} +The command |\newmathalphabet| was used by the New Font Selection +Scheme Release 1 but it has now been replaced by +|\DeclareMathAlphabet|, the use of which is described in +\emph{\fntguide}. + +The best cure is to update the package which contained the +|\newmathalphabet| command. Find out if there is a new release of +the package, or (if you wrote the package yourself) consult +\emph{\fntguide} for the new syntax of font commands. + +If there is no updated version of the package then you can cure this +error by using the \textsf{newlfont} or \textsf{oldlfont} package, +which tells \LaTeX{} which version of |\newmathalphabet| should be +emulated. + +You should use \textsf{oldlfont} if the document selects math fonts with +syntax such as this: +\begin{quote} + |{\cal A}|, etc. +\end{quote} +Use \textsf{newlfont} if the document's syntax is like this: +\begin{quote} + |\cal{A}|, etc. +\end{quote} + + +\begin{decl} + |Text for \verb command ended by end of line.| +\end{decl} +The |\verb| command has been begun but not ended on that line. This +usually means that you have forgotten to put in the end-character of +the |\verb| command. + +\begin{decl} + |Illegal use of \verb command.| +\end{decl} +The |\verb| command has been used inside the argument of another +command. This has never been allowed in \LaTeX{}---often producing +incorrect output without any warning---and so \LaTeXe{} produces +an error message. + +\subsection{Old internal commands} +\label{Sec:oldinternals} + +A number of \LaTeX~2.09 internal commands have been removed, since +their functionality is now provided in a different way. See +\emph{\clsguide} for more details of the new, supported interface for +class and package writers. + +\begin{decl} + |\tenrm| |\elvrm| |\twlrm| \dots\\ + |\tenbf| |\elvbf| |\twlbf| \dots\\ + |\tensf| |\elvsf| |\twlsf| \dots\\ + $\vdots$ +\end{decl} +These commands provided access to the seventy fonts preloaded by +\LaTeX~2.09. In contrast, \LaTeXe{} normally preloads at most +fourteen fonts, which saves a lot of font memory; but a consequence is +that any \LaTeX{} file which used the above commands to directly +access fonts will no longer work. + +Their use will usually produce an error message such as: +\begin{verbatim} + ! Undefined control sequence. + l.5 \tenrm +\end{verbatim} +The cure for this is to update the document to use the new +font-changing commands provided by \LaTeXe; these are described in +\emph{\fntguide}. + +If this is not possible then, as a last resort, you can +use the \textsf{rawfonts} package, which loads the +seventy \LaTeX~2.09 fonts and provides direct access to them using the +old commands. This takes both time and memory. If you do not +wish to load all seventy fonts, you can select some of them by using the +|only| option to \textsf{rawfonts}. For example, to load only |tenrm| +and |tenbf| you write: +\begin{verbatim} + \usepackage[only,tenrm,tenbf]{rawfonts} +\end{verbatim} + +The \textsf{rawfonts} package is distributed as part of the \LaTeX{} +tools software, see Section~\ref{Sec:st-pack}. + +\subsection{Old files} + +One of the more common mistakes in running \LaTeX{} is to read in old +versions of packages instead of the new versions. If you get an +incomprehensible error message from a standard package, make sure you +are loading the most recent version of the package. You can find out +which version of the package has been loaded by looking in the log +file for a line like: +\begin{verbatim} + Package: fred 1994/06/01 v0.01 Fred's package. +\end{verbatim} +You can use the \m{release-date} options to |\documentclass| and +|\usepackage| to make sure that you are getting a suitably recent copy +of the document class or package. This is useful when sending a +document to another site, which may have out-of-date software. + +\subsection{Where to go for more help} + +If you can't find the answer for your problem here, try looking in +\emph{\LaTeXbook} or \emph{\LaTeXcomp}. If you have a problem with +installing \LaTeX, look in the installation guide files which come with +the distribution. + +If this doesn't help, contact your local \LaTeX{} guru or local +\LaTeX{} mailing list. + +If you think you've discovered a bug then please report it! First, +you should find out if the problem is with a third-party package or +class. If the problem is caused by a package or class other than +those listed in Section~\ref{Sec:class+packages} then please report +the problem to the author of the package or class, not to the \LaTeX3 +project team. + +If the bug really is with core \LaTeX{} then you should create a +\emph{short}, \emph{self-contained} document which exhibits the +problem. You should run a \emph{recent} (less than a year old) +version of \LaTeX{} on the file and then run \LaTeX{} on +|latexbug.tex|. This will create an error report which you should +send, together with the sample document and log file, to the +\LaTeX{} bugs address which can be found in the file +|latexbug.tex| or |bugs.txt|. + + +\section{Enjoy!} +\label{Sec:enjoy} + +We certainly hope you will enjoy using the new standard \LaTeX{} but, +if this is not possible, we hope that you will enjoy success and +fulfillment as a result of the documents which it will help you to +create. + +If you find that the contribution of \LaTeX{} to your life is such +that you would like to support the work of the project team, then +please read Section~\ref{Sec:ltx3} and discover practical ways to do +this. + +\begin{thebibliography}{1} + +\bibitem{A-W:GRM97} +Michel Goossens, Sebastian Rahtz and Frank Mittelbach. +\newblock {\em The {\LaTeX} Graphics Companion}. +\newblock Addison-Wesley, Reading, Massachusetts, 1997. + + +\bibitem{A-W:GR99} +Michel Goossens and Sebastian Rahtz. +\newblock {\em The {\LaTeX} Web Companion}. +\newblock Addison-Wesley, Reading, Massachusetts, 1999. + + +\bibitem{A-W:DEK91} +Donald~E. Knuth. +\newblock {\em The \TeX book}. +\newblock Addison-Wesley, Reading, Massachusetts, 1986. +\newblock Revised to cover \TeX3, 1991. + + +\bibitem{A-W:LLa94} +Leslie Lamport. +\newblock {\em {\LaTeX:} A Document Preparation System}. +\newblock Addison-Wesley, Reading, Massachusetts, second edition, 1994. + +\bibitem{A-W:MG2004} +Frank Mittelbach and Michel Goossens. +\newblock {\em The {\LaTeX} Companion second edition}. +\newblock With Johannes Braams, David Carlisle, and Chris Rowley. +\newblock Addison-Wesley, Reading, Massachusetts, 2004. + + +\end{thebibliography} + +\end{document} diff --git a/Master/texmf-dist/source/latex/base/utf8ienc.dtx b/Master/texmf-dist/source/latex/base/utf8ienc.dtx index f0c3e434ccb..5b9fe574c4a 100644 --- a/Master/texmf-dist/source/latex/base/utf8ienc.dtx +++ b/Master/texmf-dist/source/latex/base/utf8ienc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 +% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -8,12 +8,12 @@ % ------------------------------------------- % % It may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX -% version 2003/12/01 or later. +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. % % This file has the LPPL maintenance status "maintained". % @@ -30,7 +30,6 @@ % \iffalse %<*driver> \documentclass{ltxdoc} -%% \usepackage[utf8]{inputenc} %% That looked wrong to Chris. \GetFileInfo{utf8.def} \title{Providing some UTF-8 support via \texttt{inputenc}} \date{\fileversion\space\filedate{} printed \today} @@ -46,7 +45,7 @@ %</driver> % \fi % -% \CheckSum{1068} +% \CheckSum{1090} % % \newpage % @@ -207,7 +206,7 @@ %<utf8>\ProvidesFile{utf8.def} %<test>\ProvidesFile{utf8-test.tex} %<+lcy> \ProvidesFile{lcyenc.dfu} -%<+ly1> \ProvidesFile{lcyenc.dfu} +%<+ly1> \ProvidesFile{ly1enc.dfu} %<+oms> \ProvidesFile{omsenc.dfu} %<+ot1> \ProvidesFile{ot1enc.dfu} %<+ot2> \ProvidesFile{ot2enc.dfu} @@ -218,13 +217,21 @@ %<+ts1> \ProvidesFile{ts1enc.dfu} %<+x2> \ProvidesFile{x2enc.dfu} %<+all> \ProvidesFile{utf8enc.dfu} - [2004/02/09 v1.1b UTF-8 support for inputenc] + [2006/03/30 v1.1i UTF-8 support for inputenc] % \end{macrocode} % % \begin{macrocode} %<*utf8> \makeatletter % \end{macrocode} +% We restore the |\catcode| of space (which is set to ignore in +% \texttt{inputenc}) while reading \texttt{.def} files. Otherwise +% we would need to explicitly use |\space| all over the place in +% error and log messages. +% \changes{v1.1d}{2004/05/08}{Explicitly set catcode of space} +% \begin{macrocode} +\catcode`\ \saved@space@catcode +% \end{macrocode} % % % @@ -284,10 +291,12 @@ % The endline character has a special definition within the % inputenc package (it is gobbling spaces). For this reason we % can't produce multiline strings without some precaution. -% \changes{v1.1b}{2004/02/09}{no newlines in error messages allowed} +% \changes{v1.1b}{2004/02/09}{No newlines allowed in error messages} +% \changes{v1.1g}{2005/09/27}{Real spaces do not show up so use \cs{space}} % \begin{macrocode} - \PackageError{inputenc}{Unicode char \string#1 not set up\space - for use with LaTeX}\@eha + \PackageError{inputenc}{Unicode\space char\space \string#1\space + not\space set\space up\space + for\space use\space with\space LaTeX}\@eha \else\expandafter #1% \fi @@ -486,9 +495,11 @@ % \end{macrocode} % As |\count@| already contains the right value we make % |\parse@XML@charref| work without arguments. +% \changes{v1.1g}{2005/09/27}{Real spaces do not show up so use \cs{space}} % \begin{macrocode} \ifnum\count@<"A0\relax - \PackageError{inputenc}{Cannot define Unicode char value < 00A0}\@eha + \PackageError{inputenc}{Cannot\space define\space Unicode\space + char\space value\space <\space 00A0}\@eha % \end{macrocode} % Do not ask us to provide an explanation for the code below, it is % borrowed straight from \texttt{xmltex} by David and we trust him @@ -519,7 +530,7 @@ % % \begin{macro}{\parse@UTFviii@a} % \ldots so somebody else can document this part :-) \ldots~David?:-))))! -% \changes{v1.1b}{2004/02/09}{space in the wrong place \cs{count @64}} +% \changes{v1.1b}{2004/02/09}{Space in the wrong place \cs{count @64}} % \begin{macrocode} \gdef\parse@UTFviii@a#1{% \@tempcnta\count@ @@ -577,8 +588,17 @@ \def\cdp@elt#1#2#3#4{% \wlog{Now handling font encoding #1 ...}% \lowercase{% - \InputIfFileExists{#1enc.dfu}} - {\wlog{... processing UTF-8 mapping file for font encoding #1}}% + \InputIfFileExists{#1enc.dfu}}% + {\wlog{... processing UTF-8 mapping file for font encoding + #1}% +% \end{macrocode} +% From this point on we ignore spaces again, i.e., while we are +% reading the \texttt{.dfu} file. The |\endgroup| below will +% restore it again. +% \changes{v1.1d}{2004/05/08}{Explicitly set catcode of space} +% \changes{v1.1g}{2005/09/27}{We lost the ``false'' case} +% \begin{macrocode} + \catcode`\ 9\relax}% {\wlog{... no UTF-8 mapping file for font encoding #1}}% } \cdp@list @@ -684,7 +704,9 @@ % \subsection{The mapping table} % % Note that the first argument must be a 4-hex-digit number greater -% than \texttt{00BF}. +% than \texttt{00BF}. +% +% There are few notes about inconsistencies etc at the end of the table. % % \begin{macrocode} %<all,t1,ot1,ly1>\DeclareUnicodeCharacter{00A1}{\textexclamdown} @@ -708,7 +730,7 @@ %<all,ts1>\DeclareUnicodeCharacter{00B4}{\textasciiacute} %<all,ts1,ly1>\DeclareUnicodeCharacter{00B5}{\textmu} % micro sign %<all,ts1,oms,ly1>\DeclareUnicodeCharacter{00B6}{\textparagraph} -%<all,ts1,ly1>\DeclareUnicodeCharacter{00B7}{\textperiodcentered} +%<all,oms,ts1,ly1>\DeclareUnicodeCharacter{00B7}{\textperiodcentered} %<all,ot1>\DeclareUnicodeCharacter{00B8}{\c\ } %<all,ts1>\DeclareUnicodeCharacter{00B9}{\textonesuperior} %<all,ts1,ly1,utf8>\DeclareUnicodeCharacter{00BA}{\textordmasculine} @@ -801,6 +823,8 @@ %<all,t1>\DeclareUnicodeCharacter{011F}{\u g} %<all,t1>\DeclareUnicodeCharacter{0130}{\.I} %<all,t2c,t2b,t2a,t1,ot2,ot1,ly1,lcy>\DeclareUnicodeCharacter{0131}{\i} +%<all,t1>\DeclareUnicodeCharacter{0132}{\IJ} +%<all,t1>\DeclareUnicodeCharacter{0133}{\ij} %<all,t1>\DeclareUnicodeCharacter{0139}{\@tabacckludge'L} %<all,t1>\DeclareUnicodeCharacter{013A}{\@tabacckludge'l} %<all,t1>\DeclareUnicodeCharacter{013D}{\v L} @@ -845,9 +869,8 @@ %<all,ts1,ly1>\DeclareUnicodeCharacter{0192}{\textflorin} %<all,ly1,utf8>\DeclareUnicodeCharacter{02C6}{\textasciicircum} %<all,ts1>\DeclareUnicodeCharacter{02C7}{\textasciicaron} -%<all,ly1,utf8>\DeclareUnicodeCharacter{02CA}{\textasciitilde} +%<all,ly1,utf8>\DeclareUnicodeCharacter{02DC}{\textasciitilde} %<all,ts1>\DeclareUnicodeCharacter{02D8}{\textasciibreve} -%<all,oms>\DeclareUnicodeCharacter{02D9}{\textperiodcentered} %<all,ts1>\DeclareUnicodeCharacter{02DD}{\textacutedbl} %<all,x2,t2c,t2b,t2a,ot2,lcy>\DeclareUnicodeCharacter{0401}{\CYRYO} %<all,x2,t2a,ot2>\DeclareUnicodeCharacter{0402}{\CYRDJE} @@ -1016,7 +1039,7 @@ %<all,x2,t2c,t2b>\DeclareUnicodeCharacter{04E1}{\cyrabhdze} %<all,x2,t2c,t2b,t2a>\DeclareUnicodeCharacter{04E8}{\CYROTLD} %<all,x2,t2c,t2b,t2a>\DeclareUnicodeCharacter{04E9}{\cyrotld} -%<all,ts1>\DeclareUnicodeCharacter{0E37}{\textbaht} +%<all,ts1>\DeclareUnicodeCharacter{0E3F}{\textbaht} %<all,x2,t2c,t2b,t2a,t1,utf8>\DeclareUnicodeCharacter{200C}{\textcompwordmark} %<all,x2,t2c,t2b,t2a,t1,ot2,ot1,ly1,lcy>\DeclareUnicodeCharacter{2013}{\textendash} %<all,x2,t2c,t2b,t2a,t1,ot2,ot1,ly1,lcy>\DeclareUnicodeCharacter{2014}{\textemdash} @@ -1068,8 +1091,26 @@ %<all,ts1>\DeclareUnicodeCharacter{25EF}{\textbigcircle} %<all,ts1>\DeclareUnicodeCharacter{266A}{\textmusicalnote} % \end{macrocode} -% The following definitions are in the encoding file but have no -% direct equivalent in Unicode or simply do not make sense in that +% +% \subsection{Notes} +% +% \changes{v1.1e}{2004/05/22}{Added notes on inconsistency with `8-bit files'.} +% The following inputs are inconsistent with the 8-bit inputenc files +% since they will always only produce the `text character'. This is an +% area where inputenc is notoriously confused. +% \begin{verbatim} +% %<all,ts1,t1,ot1,ly1>\DeclareUnicodeCharacter{00A3}{\textsterling} +% %<all,x2,ts1,t2c,t2b,t2a,oms,ly1>\DeclareUnicodeCharacter{00A7}{\textsection} +% %<all,ts1,utf8>\DeclareUnicodeCharacter{00A9}{\textcopyright} +% %<all,ts1>\DeclareUnicodeCharacter{00B1}{\textpm} +% %<all,ts1,oms,ly1>\DeclareUnicodeCharacter{00B6}{\textparagraph} +% %<all,ts1,oms,ly1>\DeclareUnicodeCharacter{2020}{\textdagger} +% %<all,ts1,oms,ly1>\DeclareUnicodeCharacter{2021}{\textdaggerdbl} +% %<all,ly1,utf8>\DeclareUnicodeCharacter{2026}{\textellipsis} +% \end{verbatim} +% +% The following definitions are in an encoding file but have no +% direct equivalent in Unicode, or they simply do not make sense in that % context (or we have not yet found anything or \ldots :-). For % example, the non-combining accent charcaters are certainly % available somehwere but these are not equivalent to a \TeX{} @@ -1168,7 +1209,7 @@ % % Also there are a number of |\providecommand|s in the various input % encoding files which may or may not go into this part. -% \changes{v1.1b}{2004/02/09}{added commands already defined in the kernel} +% \changes{v1.1b}{2004/02/09}{Added commands already defined in the kernel} % \begin{macrocode} %<*utf8> % This space is intentionally empty ... |