From bad9348a29610a5030b0ff1da29174f9fe2dbc98 Mon Sep 17 00:00:00 2001 From: Manuel Pégourié-Gonnard Date: Sat, 29 May 2010 09:35:02 +0000 Subject: luaotfload update (2010/05/28 v1.08a) git-svn-id: svn://tug.org/texlive/trunk@18578 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/luatex/luaotfload/Makefile | 7 +- .../source/luatex/luaotfload/luaotfload.dtx | 699 +++++++++++++++++---- 2 files changed, 598 insertions(+), 108 deletions(-) (limited to 'Master/texmf-dist/source') 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 +% Copyright (C) 2009-2010 by Elie Roux +% and Khaled Hosny % % 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 +Copyright (C) 2009-2010 by by Elie Roux + and Khaled Hosny 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') @@ -489,6 +554,14 @@ luaotfload.loadmodule('font-dum.lua') luaotfload.loadmodule('font-nms.lua') 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 @@ -526,7 +599,7 @@ end % % \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 @@ -553,23 +626,6 @@ end \catcode64 11 -% \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 @@ -600,5 +656,438 @@ end % \iffalse % % \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 -- cgit v1.2.3