summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2010-05-29 09:35:02 +0000
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2010-05-29 09:35:02 +0000
commitbad9348a29610a5030b0ff1da29174f9fe2dbc98 (patch)
tree1a27079839d052f5b5760ec698e7d708a779a2c5 /Master/texmf-dist/source
parente62580242146a93f7836af785779cfd1a79e0ce1 (diff)
luaotfload update (2010/05/28 v1.08a)
git-svn-id: svn://tug.org/texlive/trunk@18578 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/luatex/luaotfload/Makefile7
-rw-r--r--Master/texmf-dist/source/luatex/luaotfload/luaotfload.dtx699
2 files changed, 598 insertions, 108 deletions
diff --git a/Master/texmf-dist/source/luatex/luaotfload/Makefile b/Master/texmf-dist/source/luatex/luaotfload/Makefile
index 6a1363073dc..488537445c3 100644
--- a/Master/texmf-dist/source/luatex/luaotfload/Makefile
+++ b/Master/texmf-dist/source/luatex/luaotfload/Makefile
@@ -4,15 +4,16 @@ NAME = luaotfload
DOC = $(NAME).pdf
DTX = $(NAME).dtx
OTFL = $(wildcard otfl-*.lua)
+SCRIPT = mkluatexfontdb.lua
# Files grouped by generation mode
COMPILED = $(DOC)
UNPACKED = luaotfload.sty luaotfload.lua
GENERATED = $(COMPILED) $(UNPACKED)
-SOURCE = $(DTX) $(OTFL) README Makefile NEWS mkluatexfontdb.lua
+SOURCE = $(DTX) $(OTFL) README Makefile NEWS $(SCRIPT)
# Files grouped by installation location
-SCRIPTFILES = mkluatexfontdb.lua
+SCRIPTFILES = $(SCRIPT)
RUNFILES = $(UNPACKED) $(OTFL)
DOCFILES = $(DOC) README NEWS
SRCFILES = $(DTX) Makefile
@@ -23,7 +24,7 @@ ALL_FILES = $(GENERATED) $(SOURCE)
# Installation locations
FORMAT = luatex
-SCRIPTDIR = $(TEXMFROOT)/scripts/mkluatexfontdb
+SCRIPTDIR = $(TEXMFROOT)/scripts/$(NAME)
RUNDIR = $(TEXMFROOT)/tex/$(FORMAT)/$(NAME)
DOCDIR = $(TEXMFROOT)/doc/$(FORMAT)/$(NAME)
SRCDIR = $(TEXMFROOT)/source/$(FORMAT)/$(NAME)
diff --git a/Master/texmf-dist/source/luatex/luaotfload/luaotfload.dtx b/Master/texmf-dist/source/luatex/luaotfload/luaotfload.dtx
index 8c2de488978..bb2bd3eab1d 100644
--- a/Master/texmf-dist/source/luatex/luaotfload/luaotfload.dtx
+++ b/Master/texmf-dist/source/luatex/luaotfload/luaotfload.dtx
@@ -1,6 +1,7 @@
% \iffalse meta-comment
%
-% Copyright (C) 2009 by Elie Roux <elie.roux@telecom-bretagne.eu>
+% Copyright (C) 2009-2010 by Elie Roux <elie.roux@telecom-bretagne.eu>
+% and Khaled Hosny <khaledhosny@eglug.org>
%
% This work is under the CC0 license.
%
@@ -34,7 +35,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: luaotfload 2010/05/10 v1.07 ConTeXt font loading system}
+\Msg{* Package: luaotfload 2010/05/28 v1.08a ConTeXt font loading system}
\Msg{************************************************************************}
\keepsilent
@@ -45,7 +46,8 @@
\preamble
This is a generated file.
-Copyright (C) 2009 by Elie Roux <elie.roux@telecom-bretagne.eu>
+Copyright (C) 2009-2010 by by Elie Roux <elie.roux@telecom-bretagne.eu>
+ and Khaled Hosny <khaledhosny@eglug.org>
This work is under the CC0 license.
@@ -100,7 +102,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{luaotfload.drv}%
- [2010/05/10 v1.07 ConTeXt font loading system]%
+ [2010/05/28 v1.08a ConTeXt font loading system]%
\documentclass{ltxdoc}
\usepackage{metalogo,multicol,mdwlist,fancyvrb}
\usepackage[colorlinks=true]{hyperref}
@@ -138,100 +140,118 @@ and the derived files
% \GetFileInfo{luaotfload.drv}
%
% \title{The \textsf{luaotfload} package}
-% \date{2010/05/10 v1.07}
-% \author{ Elie Roux \footnote{\texttt{elie.roux@telecom-bretagne.eu}}
-% \and Khaled hosny \footnote{\texttt{khaledhosny@eglug.org}}}
+% \date{2010/05/28 v1.08a}
+% \author{ Elie Roux\footnote{\texttt{elie.roux@telecom-bretagne.eu}}
+% \and Khaled Hosny\footnote{\texttt{khaledhosny@eglug.org}}}
%
% \maketitle
%
% \begin{abstract}
-% Adaptation of \ConTeXt\ font loading system, providing the ability to load
-% \textsf{OpenType} fonts with a lot of features, and extended font loading
-% syntax.
+% This package is an adaptation of the \ConTeXt\ font loading system,
+% providing the ability to load \textsf{OpenType} fonts with extended font
+% loading syntax supporting a large selection of OpenType font features.
% \end{abstract}
%
% \tableofcontents
%
-% \section{Documentation}
+% \section{Introduction}
%
-% \subsection{Introduction}
+% Font management and installation has always been painful with \TeX.
+% A lot of files are needed for one font (tfm, pfb, map, fd, vf), and as
+% \TeX\ is 8-bit each font is limited to 256 characters.
+% But the font world has evolved since \TeX, and new font technologies have
+% appeared, most notably the so called \emph{smart font} technologies like
+% \textsf{OpenType} fonts. These fonts can contain a lot of characters, and
+% additional functionalities like ligatures, old-style numbers, small capitals,
+% etc., and support more complex writing systems like Arabic and Indic scripts.
+% They are widely deployed and available for all modern operating systems and
+% are becoming the de facto standard fonts for advanced text layout.
+% Until now the only way to use them directly in the \TeX\ world was by using
+% them with \XeTeX.
%
-% Font management and installation has always been painful with \TeX\ (and
-% even more with \LaTeX). A lot of files are needed for one font (tfm, pfb,
-% map, fd, vf), and they are limited to 256 characters. But the font world has
-% evolved since, and new standard types of fonts have appeared, like
-% \textsf{TrueType} and \textsf{OpenType} fonts. These fonts can contain a lot
-% of characters, and have some functionalities (ligatures, old-style numbers,
-% small capitals, etc.). They are everywhere, as the system fonts and most
-% modern text softwares fonts are of this type. Until now the (almost) only
-% way to use them with \TeX\ was to use them with \XeTeX .
+% Unlike \XeTeX, \LuaTeX\ does not provide direct support for using these fonts
+% by default, but it provides a way to hook Lua code in some points of the
+% \TeX\ processing; for instance, we can improve the font loading system, and
+% text procession, which what this package is about.
%
-% Unlike \XeTeX , \LuaTeX\ does not provide facilities for these fonts by
-% default, but it provides a way to hook lua code in some points of the \TeX\
-% algorithm, for instance we can improve the font loading system; this is what
-% we do in this package.
+% \section{Loading fonts}
%
-% This package is quite low-level, and should be loaded directly in the macro
-% package, like it is in \ConTeXt. Sadly, Plain and \LaTeX\ are frozen and
-% it's even impossible to adapt them to the new engines.
-%
-% \subsection{Loading fonts}
-%
-% \textsf{luaotfload} supports an extended font loading syntax which looks like:
+% \textsf{luaotfload} supports an extended font loading syntax which looks
+% like:
%
% \begin{center}
% |\font\foo={|\meta{prefix}|:|\meta{font name}|:|\meta{font features}|}| \meta{\TeX\ font features}
% \end{center}
%
-% The curly brackets are optional and are used for escaping spaces in font names
-% (\XeTeX-like double quotes can also used for the same purpose).
+% \noindent
+% The curly brackets are optional and are used for escaping spaces in font
+% names (double quotes can also used for the same purpose).
%
% \paragraph{Prefix}
%
-% Can be either \texttt{file:} or \texttt{name:} and are used to select between
-% filename based or font name based search mechanisms.
-% Loading fonts based on filename is restricted to files found by
-% \textsf{kpathsea} (typically in the \textsc{texmf} tree). Surrounding font
-% name with square brackets is synonym to using \texttt{file:} prefix (for
-% compatibility with \XeTeX).
-% This is usually used for loading old \textsc{tfm} fonts.
-% Accessing fonts by fontname allows loading system installed fonts as well as
-% \textsc{texmf} ones, and requires a font names database that can be generated
-% using the bundled |mkluatexfontdb.lua| script.
-% \footnote{run |mkluatexfontdb.lua --help| for help and usage information}
+% The \meta{prefix} be either \texttt{file:} or \texttt{name:}, which specify
+% whether to use a select the font from its filename or font name,
+% respectively. If no prefix is specified, then \texttt{file:} is assumed.
%
-% If no prefix is specified, then \texttt{file:} is assumed.
+% For compatibility with \XeTeX, surrounding the \meta{font name}
+% with square brackets is synonymous to using the \texttt{file:} prefix.
+%
+% Accessing fonts by fontname allows loading system installed fonts as well as
+% \textsc{texmf} ones, and requires a font names database that must be
+% pre-generated; see Section~\ref{sec:fontdb} for more information.
%
% \paragraph{Font name}
%
-% Font name can be either a font filename or actual font name; based on the
-% prefix specified.
+% The \meta{font name} can be either a font filename or actual font name
+% based on the \meta{prefix} as mentioned above.
+%
+% Fonts loaded by filename may either include their absolute path in the
+% filesystem or consist of just the filename with a path.
+% If no path is specified then \textsf{kpathsea} is used to locate the font
+% (which will typically be in the \textsc{texmf} tree or the current
+% directory).
+%
+% For example,
+% \begin{quote}
+% \begin{verbatim}
+% \font\1={file:ec-lmr10} at 10pt
+% \font\2={/Users/Shared/Fonts/aldus.otf} at 11pt
+% \font\3={name:TeX Gyre Pagella} at 9pt
+% \end{verbatim}
+% \end{quote}
+%
%
% \paragraph{Font features}
%
-% Font features are a semicolon separated list of items, which are either
+% \meta{font features} are a list of items separated by semi-colons,
+% which are either
% |key=value| font parameters, or switches to enable/disable certain font
-% features, in the form of |+feat|/|-feat|.
+% features in the form of |+feat|/|-feat|.
% The supported keys are:
% \begin{description}
% \item [mode] \hfill \\
-% \textsf{luaotfload} has two OpenType processing modes; \texttt{base} mode
-% which supports only a subset of OpenType features and works by mapping those
-% features to traditional \TeX\ ligaturing and kerning mechanisms and is a bit
-% faster, and \texttt{node} mode which, hopefully, supports OpenType fully and
-% works by direct processing of node list at lua end and is a bit slower.
-% Note that \texttt{node} mode doesn't work inside math.
-%
-% By default, \texttt{base} mode is used, however it is advisable to always
+% \textsf{luaotfload} has two OpenType processing modes;
+% \texttt{base} or \texttt{node}.
+% Using \texttt{mode=base}
+% only supports a subset of OpenType features and works by mapping those
+% features to traditional \TeX\ ligature and kerning mechanisms and is a bit
+% faster
+% Using \texttt{mode=node} hopefully supports OpenType fully and
+% works by direct processing of the node list with Lua; it is slower and
+% is not designed to work in math mode.
+%
+% By default \texttt{mode=base} is used, but it is advisable to always
% enable \texttt{node} made, except for math fonts, otherwise many OpenType
% features will not function properly or even not work at all, especially for
% advanced scripts like Arabic.
%
% \item [script] \hfill \\
% OpenType script string, default value is |dflt|. Some fonts don't assign
-% features to |dflt| script, in this case script need to be set explicitly.
+% features to the |dflt| script, in which case the script need to be set
+% explicitly.
%
-% \item [language] \hfill \\ OpenType language string, default value is |latn|.
+% \item [language] \hfill \\
+% OpenType language string, default value is |latn|.
%
% \item [featurefile] \hfill \\
% feature files are textual representation of OpenType tables and can be used to
@@ -246,9 +266,9 @@ and the derived files
% |\font\lmr=Latin Modern Roman:featurefile=mykern.fea;+tkrn|
%
% \item [color] \hfill \\
-% font color, defined as a triplet of two-digit Hex RGB values, with optionally
-% another value for the transparency (where |00| is completely transparent and
-% |FF| is opaque.)
+% font color, defined as a triplet of two-digit hexadecimal RGB values, with
+% optionally another value for the transparency
+% (where |00| is completely transparent and |FF| is opaque.)
%
% For example, to set text in semitransparent red:
%
@@ -257,7 +277,7 @@ and the derived files
% \item [protrusion \& expansion] \hfill \\
% Both keys control microtypographic features of the font, namely glyph
% protrusion and expansion. The value of the key is the name of predefined
-% lua tables of protrusion and expansion values, see the bottom of
+% Lua tables of protrusion and expansion values; see the end of
% \texttt{otfl-font-dum.lua} file for an example of such tables. The only
% predefined value is |default|.
%
@@ -280,7 +300,42 @@ and the derived files
% \item \texttt{trep}: applies legacy \TeX\ replacements (|`'"|).
% \end{itemize*}
%
-% \subsection{\ConTeXt\ files needed}
+% (For \XeTeX\ users: these last two are the equivalent of writing
+% \texttt{mapping=text-tex} using \XeTeX's input remapping feature.)
+%
+%
+% \section{Maintaining the font database}
+% \label{sec:fontdb}
+%
+% As introduced in the previous section, \textsf{luaotfload} uses a database
+% to keep track of fonts available to \LuaTeX. Using this database, fonts can
+% be loaded by font name as well as filename.
+%
+% This font database must be maintained as you add (and remove) fonts to your
+% system. To update the database, run the script |mkluatexfontdb.lua| that is
+% included with this package. If you have not run it before, it may take quite
+% some time to process every font on your computer. Subsequent runs to update
+% the database will be quite fast, however.
+%
+% In \TeX~Live~2010, there will be a button in the \TeX~Live package manager
+% to run |mkluatexfontdb.lua|.
+%
+% The script will parse standard places for fonts in your system to build the
+% font database. On Windows and Linus, it will use |fc-list| to find the
+% fonts; on Mac~OS~X, it will search in the standard font locations
+% |~/Library/Fonts|, |/Library/Fonts|, |/System/Library/Fonts|, and
+% |/Network/Library/Fonts|,
+%
+% If you do not wish the script to locate fonts automatically but would rather
+% specify the exact locations in which to find your fonts, set the |OSFONTDIR|
+% environment variable instead. When this variable is set, the script will
+% only search in those directories.
+%
+% |mkluatexfontdb.lua --help| provides a brief summary of the functionality of
+% the script and includes some advanced options that we have not mentioned
+% here.
+%
+% \section{Required \ConTeXt\ files}
%
% This package is a wrapper for several files taken from the \ConTeXt\ macro
% package. The philosophy is to let \ConTeXt\ do all the implementation and
@@ -319,7 +374,16 @@ and the derived files
% \end{itemize*}
% \end{multicols}
%
-% \subsection{Troubleshooting}
+% The following files have been written for this package:
+% \begin{multicols}{3}
+% \begin{itemize*}
+% \item \texttt{font-clr.lua}
+% \item \texttt{font-nms.lua}
+% \item \texttt{luat-ovr.lua}
+% \end{itemize*}
+% \end{multicols}
+%
+% \section{Troubleshooting}
%
% If you encounter problems with some fonts, please first update to the latest
% version of this package before reporting a bug, as this package is under
@@ -333,10 +397,10 @@ and the derived files
%
% |\font\myfont = MyFont.otf:script=latn;+liga;|
%
-% Also, some feature like contextual substitution, |calt|, will only work with
-% |node| mode.
+% Also remember to set |mode=node| as most OpenType features
+% (such as contextual substitution, |calt|), will not work without it.
%
-% \section{\texttt{luaotfload.lua}}
+% \part{\texttt{luaotfload.lua}}
%
% \iffalse
%<*lua>
@@ -349,8 +413,8 @@ module('luaotfload', package.seeall)
luaotfload.module = {
name = "luaotfload",
- version = 1.07,
- date = "2010/05/10",
+ version = 1.08a,
+ date = "2010/05/28",
description = "ConTeXt font loading system.",
author = "Elie Roux & Hans Hagen",
copyright = "Elie Roux",
@@ -434,38 +498,39 @@ luaotfload.loadmodule('node-ini.lua')
% \end{macrocode}
%
-% By default \ConTeXt\ takes some private attributes for internal use. With
-% Plain and \LaTeX\ we can't do so, we use |\newluaattribute|. This
-% functions overrides a function defined in the previous module that
-% returns the number of a private attribute. We allocate new attributes in
-% the \texttt{.sty} file, and this function returns their number. Like this
-% we don't need any private attribute, and this package is compatible with
-% the others. We use the |otfl@| prefix for attributes.
+% By default \ConTeXt\ takes some private attributes for internal use. To
+% avoide attribute clashes with other packages, we override the function
+% that allocates new attributes, making it a wraper around
+% |luatexbase.new_attribute()|. We also prefix attributes with |otfl@| to
+% avoid possiple name clashes.
%
% \begin{macrocode}
function attributes.private(name)
- local number = luatexbase.attributes['otfl@'..name]
+ local attr = 'otfl@' .. name
+ local number = luatexbase.attributes[attr]
if not number then
- error('asking for attribute %s, but not declared. '
- ..'Please report to the maintainer of luaotfload.',
- name)
+ number = luatexbase.new_attribute(attr)
end
return number
end
% \end{macrocode}
%
-% Some more modules. We don't load neither \texttt{font-enc.lua} nor
-% \texttt{font-afm.lua} as it will never be used here.
-%
-% We also remove a warning from \texttt{node-fnt.lua} as it is \ConTeXt\
+% A hack to remove a warning from \texttt{node-fnt.lua} as it is \ConTeXt\
% specific.
%
% \begin{macrocode}
tex.attribute[0] = 0
+% \end{macrocode}
+%
+% Some more modules. We don't load neither \texttt{font-enc.lua} nor
+% \texttt{font-afm.lua} as it will never be used here.
+%
+% \begin{macrocode}
+
luaotfload.loadmodule('node-res.lua')
luaotfload.loadmodule('node-inj.lua')
luaotfload.loadmodule('node-fnt.lua')
@@ -491,6 +556,14 @@ luaotfload.loadmodule('font-clr.lua')
% \end{macrocode}
%
+% Here we override some defaults set in \ConTeXt\ code.
+%
+% \begin{macrocode}
+
+fonts.mode = "node"
+
+% \end{macrocode}
+%
% Finally two functions
%
% \begin{macrocode}
@@ -526,7 +599,7 @@ end
%</lua>
% \fi
%
-% \section{\texttt{luaotfload.sty}}
+% \part{\texttt{luaotfload.sty}}
%
% \iffalse
%<*package>
@@ -543,7 +616,7 @@ end
\else
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{luaotfload}%
- [2010/05/10 v1.07 ConTeXt font loading system]
+ [2010/05/28 v1.08a ConTeXt font loading system]
\RequirePackage{luatextra}
\fi
@@ -555,23 +628,6 @@ end
% \end{macrocode}
%
-% The attributes are allocated here. The |otfl@| prefix is added to prevent
-% name collision.
-%
-% \begin{macrocode}
-
-\newluatexattribute\otfl@state
-\newluatexattribute\otfl@markbase
-\newluatexattribute\otfl@markdone
-\newluatexattribute\otfl@markmark
-\newluatexattribute\otfl@cursbase
-\newluatexattribute\otfl@curscurs
-\newluatexattribute\otfl@cursdone
-\newluatexattribute\otfl@kernpair
-\newluatexattribute\otfl@color
-
-% \end{macrocode}
-%
% Two small macros to register or unregister the callbacks. Without the
% callbacks this package is totally turned off.
%
@@ -600,5 +656,438 @@ end
% \iffalse
%</package>
% \fi
+%
+% \clearpage
+% \section{The GNU GPL License v2}
+%
+% The GPL requires the complete license text to be distributed along
+% with the code. I recommend the canonical source, instead:
+% \url{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html}.
+% But if you insist on an included copy, here it is.
+% You might want to zoom in.
+%
+% \newsavebox{\gpl}
+% \begin{lrbox}{\gpl}
+% \begin{minipage}{3\textwidth}
+% \columnsep=3\columnsep
+% \begin{multicols}{3}
+% \begin{center}
+% {\Large GNU GENERAL PUBLIC LICENSE\par}
+% \bigskip
+% {Version 2, June 1991}
+% \end{center}
+%
+% \begin{center}
+% {\parindent 0in
+%
+% Copyright \textcopyright\ 1989, 1991 Free Software Foundation, Inc.
+%
+% \bigskip
+%
+% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+%
+% \bigskip
+%
+% Everyone is permitted to copy and distribute verbatim copies
+% of this license document, but changing it is not allowed.
+% }
+% \end{center}
+%
+% \begin{center}
+% {\bf\large Preamble}
+% \end{center}
+%
+%
+% The licenses for most software are designed to take away your freedom to
+% share and change it. By contrast, the GNU General Public License is
+% intended to guarantee your freedom to share and change free software---to
+% make sure the software is free for all its users. This General Public
+% License applies to most of the Free Software Foundation's software and to
+% any other program whose authors commit to using it. (Some other Free
+% Software Foundation software is covered by the GNU Library General Public
+% License instead.) You can apply it to your programs, too.
+%
+% When we speak of free software, we are referring to freedom, not price.
+% Our General Public Licenses are designed to make sure that you have the
+% freedom to distribute copies of free software (and charge for this service
+% if you wish), that you receive source code or can get it if you want it,
+% that you can change the software or use pieces of it in new free programs;
+% and that you know you can do these things.
+%
+% To protect your rights, we need to make restrictions that forbid anyone to
+% deny you these rights or to ask you to surrender the rights. These
+% restrictions translate to certain responsibilities for you if you
+% distribute copies of the software, or if you modify it.
+%
+% For example, if you distribute copies of such a program, whether gratis or
+% for a fee, you must give the recipients all the rights that you have. You
+% must make sure that they, too, receive or can get the source code. And
+% you must show them these terms so they know their rights.
+%
+% We protect your rights with two steps: (1) copyright the software, and (2)
+% offer you this license which gives you legal permission to copy,
+% distribute and/or modify the software.
+%
+% Also, for each author's protection and ours, we want to make certain that
+% everyone understands that there is no warranty for this free software. If
+% the software is modified by someone else and passed on, we want its
+% recipients to know that what they have is not the original, so that any
+% problems introduced by others will not reflect on the original authors'
+% reputations.
+%
+% Finally, any free program is threatened constantly by software patents.
+% We wish to avoid the danger that redistributors of a free program will
+% individually obtain patent licenses, in effect making the program
+% proprietary. To prevent this, we have made it clear that any patent must
+% be licensed for everyone's free use or not licensed at all.
+%
+% The precise terms and conditions for copying, distribution and
+% modification follow.
+%
+% \begin{center}
+% {\Large \sc Terms and Conditions For Copying, Distribution and
+% Modification}
+% \end{center}
+%
+% \begin{enumerate}
+% \item
+% This License applies to any program or other work which contains a notice
+% placed by the copyright holder saying it may be distributed under the
+% terms of this General Public License. The ``Program'', below, refers to
+% any such program or work, and a ``work based on the Program'' means either
+% the Program or any derivative work under copyright law: that is to say, a
+% work containing the Program or a portion of it, either verbatim or with
+% modifications and/or translated into another language. (Hereinafter,
+% translation is included without limitation in the term ``modification''.)
+% Each licensee is addressed as ``you''.
+%
+% Activities other than copying, distribution and modification are not
+% covered by this License; they are outside its scope. The act of
+% running the Program is not restricted, and the output from the Program
+% is covered only if its contents constitute a work based on the
+% Program (independent of having been made by running the Program).
+% Whether that is true depends on what the Program does.
+%
+% \item You may copy and distribute verbatim copies of the Program's source
+% code as you receive it, in any medium, provided that you conspicuously
+% and appropriately publish on each copy an appropriate copyright notice
+% and disclaimer of warranty; keep intact all the notices that refer to
+% this License and to the absence of any warranty; and give any other
+% recipients of the Program a copy of this License along with the Program.
+%
+% You may charge a fee for the physical act of transferring a copy, and you
+% may at your option offer warranty protection in exchange for a fee.
+%
+% \item
+% You may modify your copy or copies of the Program or any portion
+% of it, thus forming a work based on the Program, and copy and
+% distribute such modifications or work under the terms of Section 1
+% above, provided that you also meet all of these conditions:
+%
+% \begin{enumerate}
+%
+% \item
+% You must cause the modified files to carry prominent notices stating that
+% you changed the files and the date of any change.
+%
+% \item
+% You must cause any work that you distribute or publish, that in
+% whole or in part contains or is derived from the Program or any
+% part thereof, to be licensed as a whole at no charge to all third
+% parties under the terms of this License.
+%
+% \item
+% If the modified program normally reads commands interactively
+% when run, you must cause it, when started running for such
+% interactive use in the most ordinary way, to print or display an
+% announcement including an appropriate copyright notice and a
+% notice that there is no warranty (or else, saying that you provide
+% a warranty) and that users may redistribute the program under
+% these conditions, and telling the user how to view a copy of this
+% License. (Exception: if the Program itself is interactive but
+% does not normally print such an announcement, your work based on
+% the Program is not required to print an announcement.)
+%
+% \end{enumerate}
+%
+%
+% These requirements apply to the modified work as a whole. If
+% identifiable sections of that work are not derived from the Program,
+% and can be reasonably considered independent and separate works in
+% themselves, then this License, and its terms, do not apply to those
+% sections when you distribute them as separate works. But when you
+% distribute the same sections as part of a whole which is a work based
+% on the Program, the distribution of the whole must be on the terms of
+% this License, whose permissions for other licensees extend to the
+% entire whole, and thus to each and every part regardless of who wrote it.
+%
+% Thus, it is not the intent of this section to claim rights or contest
+% your rights to work written entirely by you; rather, the intent is to
+% exercise the right to control the distribution of derivative or
+% collective works based on the Program.
+%
+% In addition, mere aggregation of another work not based on the Program
+% with the Program (or with a work based on the Program) on a volume of
+% a storage or distribution medium does not bring the other work under
+% the scope of this License.
+%
+% \item
+% You may copy and distribute the Program (or a work based on it,
+% under Section 2) in object code or executable form under the terms of
+% Sections 1 and 2 above provided that you also do one of the following:
+%
+% \begin{enumerate}
+%
+% \item
+%
+% Accompany it with the complete corresponding machine-readable
+% source code, which must be distributed under the terms of Sections
+% 1 and 2 above on a medium customarily used for software interchange; or,
+%
+% \item
+%
+% Accompany it with a written offer, valid for at least three
+% years, to give any third party, for a charge no more than your
+% cost of physically performing source distribution, a complete
+% machine-readable copy of the corresponding source code, to be
+% distributed under the terms of Sections 1 and 2 above on a medium
+% customarily used for software interchange; or,
+%
+% \item
+%
+% Accompany it with the information you received as to the offer
+% to distribute corresponding source code. (This alternative is
+% allowed only for noncommercial distribution and only if you
+% received the program in object code or executable form with such
+% an offer, in accord with Subsection b above.)
+%
+% \end{enumerate}
+%
+%
+% The source code for a work means the preferred form of the work for
+% making modifications to it. For an executable work, complete source
+% code means all the source code for all modules it contains, plus any
+% associated interface definition files, plus the scripts used to
+% control compilation and installation of the executable. However, as a
+% special exception, the source code distributed need not include
+% anything that is normally distributed (in either source or binary
+% form) with the major components (compiler, kernel, and so on) of the
+% operating system on which the executable runs, unless that component
+% itself accompanies the executable.
+%
+% If distribution of executable or object code is made by offering
+% access to copy from a designated place, then offering equivalent
+% access to copy the source code from the same place counts as
+% distribution of the source code, even though third parties are not
+% compelled to copy the source along with the object code.
+%
+% \item
+% You may not copy, modify, sublicense, or distribute the Program
+% except as expressly provided under this License. Any attempt
+% otherwise to copy, modify, sublicense or distribute the Program is
+% void, and will automatically terminate your rights under this License.
+% However, parties who have received copies, or rights, from you under
+% this License will not have their licenses terminated so long as such
+% parties remain in full compliance.
+%
+% \item
+% You are not required to accept this License, since you have not
+% signed it. However, nothing else grants you permission to modify or
+% distribute the Program or its derivative works. These actions are
+% prohibited by law if you do not accept this License. Therefore, by
+% modifying or distributing the Program (or any work based on the
+% Program), you indicate your acceptance of this License to do so, and
+% all its terms and conditions for copying, distributing or modifying
+% the Program or works based on it.
+%
+% \item
+% Each time you redistribute the Program (or any work based on the
+% Program), the recipient automatically receives a license from the
+% original licensor to copy, distribute or modify the Program subject to
+% these terms and conditions. You may not impose any further
+% restrictions on the recipients' exercise of the rights granted herein.
+% You are not responsible for enforcing compliance by third parties to
+% this License.
+%
+% \item
+% If, as a consequence of a court judgment or allegation of patent
+% infringement or for any other reason (not limited to patent issues),
+% conditions are imposed on you (whether by court order, agreement or
+% otherwise) that contradict the conditions of this License, they do not
+% excuse you from the conditions of this License. If you cannot
+% distribute so as to satisfy simultaneously your obligations under this
+% License and any other pertinent obligations, then as a consequence you
+% may not distribute the Program at all. For example, if a patent
+% license would not permit royalty-free redistribution of the Program by
+% all those who receive copies directly or indirectly through you, then
+% the only way you could satisfy both it and this License would be to
+% refrain entirely from distribution of the Program.
+%
+% If any portion of this section is held invalid or unenforceable under
+% any particular circumstance, the balance of the section is intended to
+% apply and the section as a whole is intended to apply in other
+% circumstances.
+%
+% It is not the purpose of this section to induce you to infringe any
+% patents or other property right claims or to contest validity of any
+% such claims; this section has the sole purpose of protecting the
+% integrity of the free software distribution system, which is
+% implemented by public license practices. Many people have made
+% generous contributions to the wide range of software distributed
+% through that system in reliance on consistent application of that
+% system; it is up to the author/donor to decide if he or she is willing
+% to distribute software through any other system and a licensee cannot
+% impose that choice.
+%
+% This section is intended to make thoroughly clear what is believed to
+% be a consequence of the rest of this License.
+%
+% \item
+% If the distribution and/or use of the Program is restricted in
+% certain countries either by patents or by copyrighted interfaces, the
+% original copyright holder who places the Program under this License
+% may add an explicit geographical distribution limitation excluding
+% those countries, so that distribution is permitted only in or among
+% countries not thus excluded. In such case, this License incorporates
+% the limitation as if written in the body of this License.
+%
+% \item
+% The Free Software Foundation may publish revised and/or new versions
+% of the General Public License from time to time. Such new versions will
+% be similar in spirit to the present version, but may differ in detail to
+% address new problems or concerns.
+%
+% Each version is given a distinguishing version number. If the Program
+% specifies a version number of this License which applies to it and ``any
+% later version'', you have the option of following the terms and conditions
+% either of that version or of any later version published by the Free
+% Software Foundation. If the Program does not specify a version number of
+% this License, you may choose any version ever published by the Free Software
+% Foundation.
+%
+% \item
+% If you wish to incorporate parts of the Program into other free
+% programs whose distribution conditions are different, write to the author
+% to ask for permission. For software which is copyrighted by the Free
+% Software Foundation, write to the Free Software Foundation; we sometimes
+% make exceptions for this. Our decision will be guided by the two goals
+% of preserving the free status of all derivatives of our free software and
+% of promoting the sharing and reuse of software generally.
+%
+% \begin{center}
+% {\Large\sc
+% No Warranty
+% }
+% \end{center}
+%
+% \item
+% {\sc Because the program is licensed free of charge, there is no warranty
+% for the program, to the extent permitted by applicable law. Except when
+% otherwise stated in writing the copyright holders and/or other parties
+% provide the program ``as is'' without warranty of any kind, either expressed
+% or implied, including, but not limited to, the implied warranties of
+% merchantability and fitness for a particular purpose. The entire risk as
+% to the quality and performance of the program is with you. Should the
+% program prove defective, you assume the cost of all necessary servicing,
+% repair or correction.}
+%
+% \item
+% {\sc In no event unless required by applicable law or agreed to in writing
+% will any copyright holder, or any other party who may modify and/or
+% redistribute the program as permitted above, be liable to you for damages,
+% including any general, special, incidental or consequential damages arising
+% out of the use or inability to use the program (including but not limited
+% to loss of data or data being rendered inaccurate or losses sustained by
+% you or third parties or a failure of the program to operate with any other
+% programs), even if such holder or other party has been advised of the
+% possibility of such damages.}
+%
+% \end{enumerate}
+%
+%
+% \begin{center}
+% {\Large\sc End of Terms and Conditions}
+% \end{center}
+%
+%
+% \pagebreak[2]
+%
+% \section*{Appendix: How to Apply These Terms to Your New Programs}
+%
+% If you develop a new program, and you want it to be of the greatest
+% possible use to the public, the best way to achieve this is to make it
+% free software which everyone can redistribute and change under these
+% terms.
+%
+% To do so, attach the following notices to the program. It is safest to
+% attach them to the start of each source file to most effectively convey
+% the exclusion of warranty; and each file should have at least the
+% ``copyright'' line and a pointer to where the full notice is found.
+%
+% \begin{quote}
+% one line to give the program's name and a brief idea of what it does. \\
+% Copyright (C) yyyy name of author \\
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+% \end{quote}
+%
+% Also add information on how to contact you by electronic and paper mail.
+%
+% If the program is interactive, make it output a short notice like this
+% when it starts in an interactive mode:
+%
+% \begin{quote}
+% Gnomovision version 69, Copyright (C) yyyy name of author \\
+% Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. \\
+% This is free software, and you are welcome to redistribute it
+% under certain conditions; type `show c' for details.
+% \end{quote}
+%
+%
+% The hypothetical commands {\tt show w} and {\tt show c} should show the
+% appropriate parts of the General Public License. Of course, the commands
+% you use may be called something other than {\tt show w} and {\tt show c};
+% they could even be mouse-clicks or menu items---whatever suits your
+% program.
+%
+% You should also get your employer (if you work as a programmer) or your
+% school, if any, to sign a ``copyright disclaimer'' for the program, if
+% necessary. Here is a sample; alter the names:
+%
+% \begin{quote}
+% Yoyodyne, Inc., hereby disclaims all copyright interest in the program \\
+% `Gnomovision' (which makes passes at compilers) written by James Hacker. \\
+%
+% signature of Ty Coon, 1 April 1989 \\
+% Ty Coon, President of Vice
+% \end{quote}
+%
+%
+% This General Public License does not permit incorporating your program
+% into proprietary programs. If your program is a subroutine library, you
+% may consider it more useful to permit linking proprietary applications
+% with the library. If this is what you want to do, use the GNU Library
+% General Public License instead of this License.
+%
+% \end{multicols}
+% \end{minipage}
+% \end{lrbox}
+%
+% \begin{center}
+% \scalebox{0.33}{\usebox{\gpl}}
+% \end{center}
+%
% \Finale
\endinput