Received: by nummer-3.proteosys id <01C19443.4ABABD8C@nummer-3.proteosys>; Thu, 3 Jan 2002 11:42:08 +0100 MIME-Version: 1.0 x-vm-v5-data: ([nil nil nil nil nil nil t t nil][nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil]) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C19443.4ABABD8C" X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message Subject: Hyphenation pattern loading... Date: Sun, 27 Oct 1991 11:43:07 +0100 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: From: Sender: "LaTeX-L Mailing list" To: "Multiple recipients of" Reply-To: "LaTeX-L Mailing list" Status: R X-Status: X-Keywords: X-UID: 420 This is a multi-part message in MIME format. ------_=_NextPart_001_01C19443.4ABABD8C Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I just received yesterday the new latex 2.09. It is a major change from European countries to have captions easily adapted to french, german, etc. Thank you to every people having working on that (this was not difficult to have such features and Marc Shapiro did the work some years ago, but it was difficult to have it in lplain and accepted by the LaTeX community). So now, no more ILaTeX, or arfrench (refrench, bofrench), this is great! There are also good new features (NFSS). Incidentally, we will have probably to make the last beta test version more general: in french we don't say ``Partie I'' but ``Premi\`ere Partie'', so instead of \def\partname{Part} we must have \def\thepartname{Part \thepart}} so that in french, we will have: \def\thepartname{{\ifcase\value{part}\or Premi\`ere\or Deuxi\`eme\or Troisi\`eme\or Quatri\`eme\or Cinqui\`eme\or Sixi\`eme\or Septi\`eme\or Huiti\`eme\or Neuvi\`eme\or Dixi\`eme\or Onzi\`eme\or Douzi\`eme\or Treizi\`eme\or Quatorzi\`eme\or = Quinzi\`eme\or Seizi\`eme\or Dix-septi\`eme\or Dix-huiti\`eme\or Dix-neuvi\`eme\or Vingti\`eme\fi} partie}} Sorry, french language has a very small hyphenation pattern file, but rather complex rules in captions. I did'nt create french language! It is the same in italian and spanish as far as I know. I am not a specialist, but Bernard Gaulle with his good french.sty has probably much more minor remarks. I will focus now on hyphenation patterns loading. As LaTeX 2.09 will be european, and will allow language specific styles, I think that the mechanism of hyphenation patterns loading HAS TO BE INCORPORATED. It has to be compatible with TeX 2.0, but will offer the facility of reading 8 bits patterns if TeX 3 is available. Some comments on French and TeX. The story of French and TeX has been long enough, so we have to finish it and the sooner the better. The inertia to have a TeX 3 and European LaTeX is very important. I asked personally DK to have a new 8 bits TeX when he got a price at the University of Orsay in 1983 or 1984 (at that time his answer was that the TeX project was finished...). In between, we have had MLTeX (widely used but not standard for TeX 2). The new \charsubdef (to be included in TeX 3) has not been accepted, but is widely used. Try \charsublist (just before \charsubdef) on american PCTeX 3.0 versions and it will be accepted without mention of MLTeX!!! For us in France MLTeX, SBTeX, emTeX, PCTeX, muTeX, etc are all the same, they pass trip.tex. There is no differences when using english languages. Names are significant when using other languages with diacritical signs like french. In France we ask for a Coca, not for a Pepsi nor a classical or light, but the distinctions between wines are not limited to white and red wines. These cultural differences have not to be discussed by scientifics, so please let us build a more general LaTeX which can be used widely with other languages than english. During the week, there was an important meeting in Paris in my field, ``The European Population Conference''. Two languages were official, english and french. We were surprised by the fact that the majority of speakers from Eastern Europe spoke in french and real good french (not like my english), Romanians (sure), but also Yugoslavians, Czechoslovakians and Russians. Scientific texts (very exciting as most of the demographic data were secrete up to now) were written mostly with Word (copies of original versions) and mathematics were avoided or bad. So there is an urgent need for a multilingual LaTeX where english is a normal language. On PCs, english patterns will not be loaded when using french and german. And it will be the same for romanian (language 0) and french as I mentioned it before. After these comments, I will proposed to change lplain and instead of ``\input hyphen'' to have the mechanism of pattern loading proposed by Johannes with his language.dat. Here is the code, not deeply tested. I am not in Paris next week and is in an hurry, but you will found also a file named language.dat and corklcc.tex (not finished) to be able to read 8 bits patterns (it can be superseded by other active definitions after the loading; it is another discussion). Yannis Haralambous has one for the official Textures (Macintosh) version and I will ask him. I also defined a token \patternlist which will be used by styles and echoed by everyjob in lplain just before Input local modifications here: " \def\fmtname{lplain}\def\fmtversion{2.09-October 25, 1991} \everyjob=3D\expandafter{\the\everyjob \typeout{patterns for \the\patternlist loaded}} \typeout{Input any local modifications here.} \endinput " Nicolas Brouard =3D=3D=3D=3D=3D=3D=3D=3D=3D change in lplain = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D % hyconfig.tex V0.0 october, 26 1991 % \message{to define dynamically languages v0.0, october, 26, 1991,} % % This file has to be inserted in lplain or plain instead of the old % ``\input hyphen'' % which concerns only english hyphenation patterns. % % It should work for TeX 3.0 lplain or plain. % For TeX 2.0 (lplain and plain) it is working as long as you don't % read 8 bits patterns, and if you add the following macros for % compatibility as it is done in new lplain 2.09 of october 1991 (with = %--): %--\message{compatibility for TeX 2, } %-- %--% If this file is used in an old TeX we define the new features %--% of TeX 3.0 as simple macros or counters so that files that uses %--% these features can be processed in such an environment %--% (They will however produce some other results). %--% (\newcount should not be defined as \outer so that we can \if... %--% \def\newcount{\alloc@0\count\countdef\insc@unt}) %--\ifx\undefined\inputlineno %-- \newcount\inputlineno %-- \inputlineno-1 % this could be used to detect that %-- % an old TeX is in force %-- \newcount\language %-- \newcount\lefthyphenmin %-- \newcount\righthyphenmin %-- \newcount\errorcontextlines %-- \newcount\holdinginserts %-- \newdimen\emergencystretch %-- \newcount\badness %-- \let\noboundary\relax %-- \newcount\setlanguage %--\fi % %=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D % This file is based on Babel hyphen.doc % by Johannes Braams, PTT Research Neher Laboratories % also based on % masthyph.tex for TeX V3 (Aug. 1990) Micka=1Al Ferguson % and Oct. 91 by Bernard Gaulle % and Nicolas Brouard (INED, Paris) 26 october 1991 % % % \subsubsection{Multiple languages} % % With \TeX\ version 3.0 it has become possible to load % hyphenation patterns for more than one language. This means % that some extra administration has to be taken care of. % The user has to know for which languages patterns have been loaded, % and what values of \verb=3D\language=3D have been used. % % Some discussion has been going on in the \TeX\ world about how to use % \verb=3D\language=3D. Some have suggested to set a fixed standard, = i.e. patterns % for each language should {\em always} be loaded in the same location. = Thet % suggested to use the {\sc iso} list for this pupose. % Others have pointed out that the {\sc iso} list contains more than 256 % languages, which have {\em not} been numbered consecutively. % % I think (J. Braams) the best way to use \verb=3D\language=3D, is to = use % it dynamically. % This code implements an algorithm to do so. It uses an external file = in % which the person who maintains a \TeX\ environment has to record for = which % languages he has hyphenation patterns {\em and} in which files these = are % stored\footnote{This is because different operating systems sometimes % use {\em very} different filenaming conventions.}. This = ``configuration % file'' can contain empty lines and comments, as can be seen from this % example: % \begin{verbatim} % % File : language.dat % % Purpose : tell iniTeX what files with patterns to load. % english english.hyphenations % % dutch hyphen.dutch % Nederlands % french frhyph.tex % French with 8 bits pattern % %french fr7hyph.tex % Patterns without accented char for TeX2. % german hyphen.ger % \end{verbatim} % % \begin{macro}{\language} % % A counter is used to store the last language defined. % Plain \TeX\ version 3.0 uses {\tt count 19} for this purpose, %\countdef\last@language 19 % an extra counter has to be allocated. % \newcount\last@language % % To add languages to \TeX's memory plain \TeX\ version 3.0 supplies % \verb=3D\newlanguage=3D, in TeX 2.0 environment a similar macro has % to be provided. % For both cases a new macro is defined here, because the original % \verb=3D\newlanguage=3D was defined to be \verb=3D\outer=3D. % % First, for formats based on plain version 3.0 the definition of % \verb=3D\newlanguage=3D can be simply copied, removing = \verb=3D\outer=3D %\def\addlanguage{\alloc@9\language\chardef\@cclvi} % % For a format based on plain version 2.x, the definition of % \verb=3D\newlanguage=3D can not be copied because {\tt count 19} is % used for other purposes in these formats. Therefore % \verb=3D\addlanguage=3D is defined using a definition based on % the macro's used to define \verb=3D\newlanguage=3D in plain \TeX\ = version 3.0. % % \def\addlanguage#1{% % \global\advance\last@language by \@ne % \ifnum\last@language < \@cclvi % \else % \errmessage{No room for a new \string\language!} % \fi % \global\chardef#1\last@language % \wlog{\string#1 =3D \string\language\the\last@language}} % % % The macro \verb=3D\adddialect=3D can be used to add the name of = dialect % or variant language, for which an already defined hyphenation table % can be used. % \def\adddialect#1#2{% % \global\chardef#1#2 % \wlog{\string#1 =3D a dialect from \string\language#2}} % % Users might want to test (in a private style option for instance) % which language is currently active. For this we provide % a test macro, \verb=3D\iflanguage=3D, that has three arguments. % It checks whether the first argument is a known language. If so, % it compares the first argument % with the value of \verb=3D\language=3D. Then, % depending on the result of the comparison, it executes either the % second or the third argument. % \def\iflanguage#1#2#3{% % \ifx\undefined\csname l@#1\endcsname % {\@nolanerr{#1}} % {\ifnum\language=3D\expandafter\csname l@#1\endcsname\relax #2 % \else#3\fi} % \fi} % % The macro \verb=3D\selectlanguage=3D checks whether the language is = already % defined before it performs its actual task, which is to update % \verb=3D\language=3D and activate language-specific % definitions. % % First, check if the user asks for a known language. If so % update the value of \verb=3D\language=3D and call = \verb=3D\originalTeX=3D % to bring \TeX\ in a certain pre-defined state. % One must do \selectlanguage{french}or \selectlanguage{german} % Macros like \french or \german are also defined. They affect only % \language, not caption, etc and used by some external macros. %\long\def\originalTeX{} % To be initialized %\def\selectlanguage#1{\@ifundefined{l@#1}{\@nolanerr{#1}} % { \language=3D\expandafter\csname l@#1\endcsname\relax % \expandafter\def\csname#1\endcsname{% % \language=3D\expandafter\csname l@#1\endcsname\relax} % \originalTeX % Then activate the language-specific definitions. This is done by % constructing the names of three macros by concatenating three % words with the argument of \verb=3D\selectlanguage=3D, and calling % these macros. % \expandafter\csname captions#1\endcsname % \expandafter\csname date#1\endcsname % \expandafter\csname extras#1\endcsname % Now we have to {\em re\/}define \verb=3D\originalTeX=3D to = compensate for % the things that have been activated. % \gdef\originalTeX{\expandafter\csname noextras#1\endcsname} % }}% % The following code defines an error message to be displayed if the % user wants to switch to a language he hasn't defined yet. % % \def\@nolanerr#1{\errhelp{Your command will be ignored,^^J % type to proceed} % \errmessage{You haven't defined the language #1 yet}} % % % The following code is meant to be read by ini\TeX\ because it should % instruct \TeX\ to read hyphenation patterns. %% %%=3D=3D=3D=3D=3D=3D=3D catcodes and lccodes of 8 bits characters for 8 = bits patterns=3D=3D=3D %% %% The next line concerns catcode & lccode to be defined so that = hyphenation %% patterns with 8 bits codes will be accepted by TeX 3.0 %% Here it concerns the new Cork standard. All accented characters %% are in the upper part of the Cork standard. %% It works only with TeX 3.O. %\ifnum\inputlineno>\m@ne % \input corklcc %\fi % % \patternlist is a token where all loaded patterns are list % it will then be output with everyjob to indicates which % patterns are loaded. This token can be used by language specific % styles. %\newtoks \patternlist % %\message{ lists languages specific hyphenation patterns} %\def\process@language#1 #2 {% % \expandafter\addlanguage\csname l@#1\endcsname % \expandafter\language\csname l@#1\endcsname % \input #2% % \expandafter\def\csname #1hyph\endcsname{\language\csname = l@#1\endcsname} % \patternlist=3D\expandafter{\the\patternlist `#1', }} %% %% A switch is needed to check if there is more to read from the = file. %\newif\if@more\@moretrue %% Open the file for reading %% %\openin1 =3D language.dat %% %% See if the file exists, if not use the default hyphenation file %% {\tt hyphen.tex}. The user will be informed about this. %% %\ifeof1\message{I couldn't find the file language.dat, ^^J %I will try the file hyphen.tex} % \input hyphen.tex\relax %\else %% %% Pattern registers are allocated using count register 19. It's = initial %% value is 0. The definition of the macro \verb=3D\newlanguage=3D is = such %% that it first increments the count register and then defines the %% language. In order to have the first patterns loaded in pattern = register %% number 0 we initialize \verb=3D\last@language=3D with the value = $-1$. %% %\last@language=3D-1 %% %% Read lines from the file until the end is found %% %\loop %% %% While reading from the input it is useful to switch off = recognition %% of the end-of-line character. This saves us stripping of spaces = from %% the contents of the controlsequence. %% % \endlinechar=3D-1 % \read1 to \@line % \endlinechar`\^^M %% %% Empty lines are skipped. %% % \ifx\@line\empty % \else %% %% All the \verb=3D\expandafters=3D are needed because we need the = replacement %% text for the control sequence \verb=3D\@line=3D to define a new = control %% sequence. %% % \edef\@line{\@line\space} % \expandafter\process@language\@line % \fi %% %% Check for the end of the file % \ifeof1 \@morefalse \fi % \if@more\repeat %% %% Reactivate the default patterns %% % \language=3D0 %\fi %% %% close the file %% %\closein1 \message{compatibility for TeX 2, } % If this file is used in an old TeX we define the new features % of TeX 3.0 as simple macros or counters so that files that uses % these features can be processed in such an environment % (They will however produce some other results). %\ifx\undefined\inputlineno % \newcount\inputlineno % \inputlineno-1 % this could be used to detect that % % an old TeX is in force % \newcount\language % \newcount\lefthyphenmin % \newcount\righthyphenmin % \newcount\errorcontextlines % \newcount\holdinginserts % \newdimen\emergencystretch % \newcount\badness % \let\noboundary\relax % \newcount\setlanguage %% %% Next lines for plain, but I know it changes plain, if you know = better... \def\newcount{\alloc@0\count\countdef\insc@unt} \long\def\@ifundefined#1#2#3{\expandafter\ifx\csname #1\endcsname\relax#2\else#3\fi} % \ifnum\inputlineno=3D\m@ne \newcount\last@language \def\addlanguage#1{% \global\advance\last@language by \@ne \ifnum\last@language < \@cclvi \else \errmessage{No room for a new \string\language!} \fi \global\chardef#1\last@language \wlog{\string#1 =3D \string\language\the\last@language}} \else \countdef\last@language 19 \def\addlanguage{\alloc@9\language\chardef\@cclvi} % catcode lccode of the 8 bits Cork standard (accented characters). \input corklcc \fi \def\adddialect#1#2{% \global\chardef#1#2 \wlog{\string#1 =3D a dialect from \string\language#2}} \def\iflanguage#1#2#3{% \@ifundefined{l@#1} {\@nolanerr{#1}} {\ifnum\language=3D\expandafter\csname l@#1\endcsname\relax #2 \else#3\fi} \fi} \long\def\originalTeX{} % To be initialized \def\selectlanguage#1{\@ifundefined{l@#1}{\@nolanerr{#1}} { \language=3D\expandafter\csname l@#1\endcsname\relax % \expandafter\def\csname#1\endcsname{% % \language=3D\expandafter\csname l@#1\endcsname\relax} \originalTeX \expandafter\csname captions#1\endcsname \expandafter\csname date#1\endcsname \expandafter\csname extras#1\endcsname \gdef\originalTeX{\expandafter\csname noextras#1\endcsname} }}% \def\@nolanerr#1{\errhelp{Your command will be ignored,^^J type to proceed} \errmessage{You haven't defined the language #1 yet}} \newtoks \patternlist \message{ lists languages specific hyphenation patterns} \def\process@language#1 #2 {% \expandafter\addlanguage\csname l@#1\endcsname \expandafter\language\csname l@#1\endcsname \input #2% \expandafter\def\csname #1hyph\endcsname{\language\csname = l@#1\endcsname} \patternlist=3D\expandafter{\the\patternlist `#1', }} \newif\if@more\@moretrue \openin1 =3D language.dat \ifeof1\message{I couldn't find the file language.dat, ^^J I will try the file hyphen.tex} \input hyphen.tex\relax \else \last@language=3D-1 \loop \endlinechar=3D-1 \read1 to \@line \endlinechar`\^^M \ifx\@line\empty \else \edef\@line{\@line\space} \expandafter\process@language\@line \fi \ifeof1 \@morefalse \fi \if@more\repeat \language=3D0 \fi \closein1 % % This line will be superseded by the everyjob of lplain, so it will be % useful only for plain. In lplain we will have another everyjob at % the end \everyjob=3D\expandafter{\the\everyjob \message{patterns for \the\patternlist loaded}} =3D=3D=3D=3D=3D=3D=3Dend of change in lplain = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D language.dat = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D % This is language.dat as of October 22, 1991 at (your site) % % This file tells which are the usable hyphenation files. % % This file is also used by language LaTeX style options such as = french.sty % to define new commands having the language name given here: english enhyph.tex % Original english hyphenation file and = exceptions french frhyph.tex % French patterns and 8 bits definitions. %dutch hyphen.dutch %german hyphen.german %dumylang dumyhyph.tex % for testing a new language without hyphen = files % INITeX hyconfig.tex % master hyphenation file used at my site = (MLTeX) =3D=3D=3D=3D=3D=3D=3Dend of language.dat = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D corklcc = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D % This file contains 8 bits characters but can be mailed as 8 bits %% characters are after a comment. % % File corklcc.tex Version 1.02 of September, 29 1991 % History % Version 1.02 of September, 29 1991 % error with \`a mapped to ^^e1 instead of ^^e0 % Version 1.01 of June, 6 1990 % Version 1.0 of May, 9 1990 \message{ (lccode) v1.02 29/09/1991.} % % This files defines all 8 bits characters as inactive (11), it also % defines the lccodes so that pattern with eight bits codes can be % loaded by TeX 3.0 % This file is not complete. It concerns only accented characters of % the ISO8859/1 standard i.e > 192. Some signs are empty and other % are active and mapped to TeX command. The utility of this file % is only to allow hyphenation patterns to be loaded. They can be % redefined later. It will be completed in a near future. % % N.Brouard, October 26 1991. \catcode `\^^bf=3D13 \def^^bf{?`} %2191 ?`, '277, "bf \catcode `\^^c0=3D11 \lccode '300=3D'340 %| \def|{\`A}%192 \`A, '300, = "c0 \catcode `\^^c1=3D11 \lccode '301=3D'341 %V \defV{\'A}%193 \'A, '301, = "c1 \catcode `\^^c2=3D11 \lccode '302=3D'342 %{ \def{{\^A}%194 \^A, '302, = "c2 \catcode `\^^c3=3D11 \lccode '303=3D'343 %x \defx{\~A}%195 \~A, '303, = "c3 \catcode `\^^c4=3D11 \lccode '304=3D'344 %=16 \def=16{{\"A}}%196 {\"A}, = '304, "c4 \catcode `\^^c5=3D11 \lccode '305=3D'345 %{ \def${=1A}%197 {\AA}, '305, = "c5 \catcode `\^^c6=3D11 \lccode '306=3D'346 %s \defs{=1A}%198 \AE{}, '306, = "c6 \catcode `\^^c7=3D11 \lccode '307=3D'347 %/ \def/{=1A}%199 \c{C}, '307, = "c7 \catcode `\^^c8=3D11 \lccode '310=3D'350 %. \def.{\`E}%200 \`E, '310, = "c8 \catcode `\^^c9=3D11 \lccode '311=3D'351 %E \defE{=1A}%201 \'E, '311, = "c9 \catcode `\^^ca=3D11 \lccode '312=3D'352 %=0C \def=0C{\^E}%202 \^E, = '312, "ca \catcode `\^^cb=3D11 \lccode '313=3D'353 %=17 \def=17{{\"E}}%203 {\"E}, = '313, "cb \catcode `\^^cc=3D11 \lccode '314=3D'354 %} \def}{\`I}%204 \`I, '314, = "cc \catcode `\^^cd=3D11 \lccode '315=3D'355 %N \defN{\'I}%205 \'I, '315, = "cd \catcode `\^^ce=3D11 \lccode '316=3D'356 %=13 \def=13{\^I}%206 \^I, = '316, "ce \catcode `\^^cf=3D11 \lccode '317=3D'357 %q \defq{{\"I}}%207 {\"I}, = '317, "cf %~208, '320, "d0 \catcode `\^^d1=3D11 \lccode '321=3D'361 %H \defH{=1F}%209 \~N, '321, = "d1 \catcode `\^^d2=3D11 \lccode '322=3D'362 %o \defo{\`O}%210 \`O, '322, = "d2 \catcode `\^^d3=3D11 \lccode '323=3D'363 %@ \def@{\'O}%211 \'O, '323, = "d3 \catcode `\^^d4=3D11 \lccode '324=3D'364 %Z \defZ{\^O}%212 \^O, '324, = "d4 \catcode `\^^d5=3D11 \lccode '325=3D'365 %[ \def[{\~O}%213 \~O, '325, = "d5 \catcode `\^^d6=3D11 \lccode '326=3D'366 %r \defr{=1A} 214%{\"O}, '326, = "d6 \catcode `\^^d7=3D11 \lccode '327=3D'367 %y \defy{\OE{}}%215 \OE{}, = '327, "d7 \catcode `\^^d8=3D11 \lccode '330=3D'370 %5 \def5{\O{}}%216 \O{}, '330, = "d8 \catcode `\^^d9=3D11 \lccode '331=3D'371 %6 \def6{\`U}%217 \`U, '331, = "d9 \catcode `\^^da=3D11 \lccode '332=3D'372 %} \def}{\'U}%218 \'U, '332, = "da \catcode `\^^db=3D11 \lccode '333=3D'373 %7 \def7{\^U}%219 \^U, '333, = "db \catcode `\^^dc=3D11 \lccode '334=3D'374 %8 \def8{=1A}%220 {\"U}, '334, = "dc \catcode `\^^dd=3D11 \lccode '335=3D'335 %9 \def9{{\"Y}}%221 {\"Y}, = '335, "dd % f222, '336, "de \catcode `\^^df=3D11 %; \def;{\ss{}} 223 \ss{}, '337, "df \catcode `\^^e0=3D11 \lccode '340=3D'340 %< \def<{ }%224 \`a, '340, "e0 % [IBM \ss instead of ISO a acute ] \catcode `\^^e1=3D13 \def^^e1{\ss{}} %=3D 225 \ss{} , '341, "e1 \catcode `\^^e2=3D11 \lccode '342=3D'342 % \def {=1A} 226 \^a, '342, "e2 \catcode `\^^e3=3D11 \lccode '343=3D'343 %Y \defY{\~a} 227 \~a, '343, = "e3 \catcode `\^^e4=3D11 \lccode '344=3D'344 %? \def?{=1A} 228 {\"a}, '344, = "e4 \catcode `\^^e5=3D11 \lccode '345=3D'345 %] \def]{=1A} 229 {\aa}, '345, = "e5 \catcode `\^^e6=3D11 \lccode '346=3D'346 %X \defX{=1A} 230 {\ae}, '346, = "e6 \catcode `\^^e7=3D11 \lccode '347=3D'347 %D \defD{=1A} 231 \c{c}, '347, = "e7 \catcode `\^^e8=3D11 \lccode '350=3D'350 %K \defK{=1A} 232 \`e, '350, = "e8 \catcode `\^^e9=3D11 \lccode '351=3D'351 %J \defJ{=1C} 233 \'e, '351, = "e9 \catcode `\^^ea=3D11 \lccode '352=3D'352 %> \def>{=1A} 234 \^e, '352, = "ea \catcode `\^^eb=3D11 \lccode '353=3D'353 %h \defh{=1A} 235 {\"e}, '353, = "eb \catcode `\^^ec=3D11 \lccode '354=3D'354 %l \defl{=1A} 236 \`{\i}, = '354, "ec \catcode `\^^ed=3D11 \lccode '355=3D'355 %m \defm{\'{\i}} 237 \'{\i}, = '355, "ed \catcode `\^^ee=3D11 \lccode '356=3D'356 %! \def!{=1A} 238 \^{\i}, = '356, "ee \catcode `\^^ef=3D11 \lccode '357=3D'357 %- \def-{=1A} 239 {\"{\i}}, = '357, "ef %u240, '360, "f0 \catcode `\^^f1=3D11 \lccode '361=3D'361 %t \deft{=10} 241 \~n, '361, = "f1 \catcode `\^^f2=3D11 \lccode '362=3D'362 %# \def#{=1E} 242 \`o, '362, = "f2 \catcode `\^^f3=3D11 \lccode '363=3D'363 %=0F \def=0F{ \catcode `\^^f4=3D11 \lccode '364=3D'364 % \def {=1A} 244 \^o, '364, = "f4 \catcode `\^^f5=3D11 \lccode '365=3D'365 %=05 \def=05{\~o} 245 \~o, = '365, "f5 \catcode `\^^f6=3D11 \lccode '366=3D'366 %=0E \def=0E{=1A}246 {\"o}, = '366, "f6 \catcode `\^^f7=3D11 \lccode '367=3D'367 %i \defi{\oe{}} 247 \oe{}, = '367, "f7 \catcode `\^^f8=3D13 \defd{\No{}} %d248 \No{} [IBM Not ISO \o{} ], = '370, "f8 \catcode `\^^f9=3D11 \lccode '371=3D'371 %Q \defQ{=1A} 249 \`u, '371, = "f9 \catcode `\^^fa=3D11 \lccode '372=3D'372 %3 \def3{k} 250 \'u, '372, "fa \catcode `\^^fb=3D11 \lccode '373=3D'373 %w \defw{=1A} 251 \^u, '373, = "fb \catcode `\^^fc=3D11 \lccode '374=3D'374 %p \defp{=1A} 252 {\"u}, '374, = "fc \catcode `\^^fd=3D11 \lccode '375=3D'375 %z \defz{=1A} 253 {\"y}, '375, = "fd %'254, '376, "fe %=7F, '377, "ff %end of corklcc.tex =3D=3D=3D=3D=3D=3D=3Dend of corklcc = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D ------_=_NextPart_001_01C19443.4ABABD8C Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hyphenation pattern loading...

I just received yesterday the new latex 2.09. It is a = major
change from European countries to have captions = easily adapted
to french, german, etc. Thank you to every people = having working
on that (this was not difficult to have such features = and Marc
Shapiro did the work some years ago, but it was = difficult to
have it in lplain and accepted by the LaTeX = community). So now, no more
ILaTeX, or arfrench (refrench, bofrench), this is = great!
There are also good new features (NFSS).

Incidentally, we will have probably to make the last = beta test
version more general: in french we don't say ``Partie = I'' but
``Premi\`ere Partie'', so instead of = \def\partname{Part}
we must have     = \def\thepartname{Part \thepart}}
so that in french, we will have:
    = \def\thepartname{{\ifcase\value{part}\or
Premi\`ere\or Deuxi\`eme\or Troisi\`eme\or = Quatri\`eme\or Cinqui\`eme\or
Sixi\`eme\or Septi\`eme\or Huiti\`eme\or = Neuvi\`eme\or Dixi\`eme\or
Onzi\`eme\or Douzi\`eme\or Treizi\`eme\or = Quatorzi\`eme\or Quinzi\`eme\or
Seizi\`eme\or Dix-septi\`eme\or Dix-huiti\`eme\or = Dix-neuvi\`eme\or
Vingti\`eme\fi} partie}}
Sorry, french language has a very small hyphenation = pattern file,
but rather complex rules in captions. I did'nt create = french language!
It is the same in italian and spanish as far as I = know.

I am not a specialist, but Bernard Gaulle with his = good french.sty
has probably much more minor remarks.

I will focus now on hyphenation patterns = loading.

As LaTeX 2.09 will be european, and will allow = language specific
styles, I think that the mechanism of hyphenation = patterns loading
HAS TO BE INCORPORATED. It has to be compatible with = TeX 2.0, but
will offer the facility of reading 8 bits patterns if = TeX 3 is
available.

Some comments on French and TeX.  The story of = French and TeX has
been long enough, so we have to finish it and the = sooner the better.
The inertia to have a TeX 3 and European LaTeX is = very important. I
asked personally DK to have a new 8 bits TeX when he = got a price at
the University of Orsay in 1983 or 1984 (at that time = his answer was
that the TeX project was finished...). In between, we = have had MLTeX
(widely used but not standard for TeX 2). The new = \charsubdef (to be
included in TeX 3) has not been accepted, but is = widely used. Try
\charsublist (just before \charsubdef) on american = PCTeX 3.0 versions
and it will be accepted without mention of = MLTeX!!!  For us in France
MLTeX, SBTeX, emTeX, PCTeX, muTeX, etc are all the = same, they pass
trip.tex. There is no differences when using english = languages. Names
are significant when using other languages with = diacritical signs
like french. In France we ask for a Coca, not for a = Pepsi nor a
classical or light, but the distinctions between = wines are not
limited to white and red wines. These cultural = differences have not
to be discussed by scientifics, so please let us = build a more general
LaTeX which can be used widely with other languages = than english.
During the week, there was an important meeting in = Paris in my field,
``The European Population Conference''. Two languages = were official,
english and french. We were surprised by the fact = that the majority
of speakers from Eastern Europe spoke in french and = real good french
(not like my english), Romanians (sure), but also = Yugoslavians,
Czechoslovakians and Russians. Scientific texts (very = exciting as
most of the demographic data were secrete up to now) = were written
mostly with Word (copies of original versions) and = mathematics were
avoided or bad. So there is an urgent need for a = multilingual LaTeX
where english is a normal language. On PCs, english = patterns will not
be loaded when using french and german. And it will = be the same for
romanian (language 0) and french as I mentioned it = before.

After these comments, I will proposed to change lplain = and instead of
``\input hyphen'' to have the mechanism of pattern = loading proposed
by Johannes with his language.dat.

Here is the code, not deeply tested. I am not in Paris = next week and
is in an hurry, but you will found also a file named = language.dat and
corklcc.tex (not finished) to be able to read 8 bits = patterns (it can
be superseded by other active definitions after the = loading; it is
another discussion). Yannis Haralambous has one for = the official
Textures (Macintosh) version and I will ask = him.

I also defined a token \patternlist which will
be used by styles and echoed by everyjob in lplain = just before
Input local modifications here:
"
\def\fmtname{lplain}\def\fmtversion{2.09-October 25, = 1991}
\everyjob=3D\expandafter{\the\everyjob
        = \typeout{patterns for \the\patternlist loaded}}

\typeout{Input any local modifications here.}

\endinput
"

Nicolas Brouard
<brouard@frined51>

=3D=3D=3D=3D=3D=3D=3D=3D=3D change in lplain = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
% hyconfig.tex V0.0 october, 26 1991
%
\message{to define dynamically languages v0.0, = october, 26, 1991,}
%
% This file has to be inserted in lplain or plain = instead of the old
% ``\input hyphen''
% which concerns only english hyphenation = patterns.
%
% It should work for TeX 3.0 lplain or plain.
% For TeX 2.0 (lplain and plain) it is working as = long as you don't
% read 8 bits patterns, and if you add the following = macros for
% compatibility as it is done in new lplain 2.09 of = october 1991 (with %--):
%--\message{compatibility for TeX 2, }
%--
%--% If this file is used in an old TeX we define the = new features
%--% of TeX 3.0 as simple macros or counters so that = files that uses
%--% these features can be processed in such an = environment
%--% (They will however produce some other = results).
%--% (\newcount should not be defined as \outer so = that we can \if...
%--%  = \def\newcount{\alloc@0\count\countdef\insc@unt})

%--\ifx\undefined\inputlineno
%--  \newcount\inputlineno
%--  = \inputlineno-1          = ;     % this could be used to detect that
%--          &= nbsp;           &n= bsp;        % an old TeX is in = force
%--  \newcount\language
%--  \newcount\lefthyphenmin
%--  \newcount\righthyphenmin
%--  \newcount\errorcontextlines
%--  \newcount\holdinginserts
%--  \newdimen\emergencystretch
%--  \newcount\badness
%--  \let\noboundary\relax
%--  \newcount\setlanguage
%--\fi
%
%=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
% This file is based on Babel hyphen.doc
% by Johannes Braams, PTT Research Neher = Laboratories
% also based on
% masthyph.tex for TeX V3 (Aug. 1990) Micka=1Al = Ferguson
% and Oct. 91 by Bernard Gaulle
% and Nicolas Brouard (INED, Paris) 26 october = 1991
%
%
% \subsubsection{Multiple languages}
%
% With \TeX\ version 3.0 it has become possible to = load
% hyphenation patterns for more than one language. = This means
% that some extra administration has to be taken care = of.
% The user has to know for which languages patterns = have been loaded,
% and what values of \verb=3D\language=3D have = been  used.
%
% Some discussion has been going on in the \TeX\ = world about how to use
% \verb=3D\language=3D. Some have suggested to set a = fixed standard, i.e. patterns
% for each language should {\em always} be loaded in = the same location. Thet
% suggested to use the {\sc iso} list for this = pupose.
% Others have pointed out that the {\sc iso} list = contains more than 256
% languages, which have {\em not} been numbered = consecutively.
%
% I think (J. Braams) the best way to use = \verb=3D\language=3D, is to use
% it  dynamically.
% This code implements an algorithm to do so. It uses = an external file in
% which the person who maintains a \TeX\ environment = has to record for which
% languages he has hyphenation patterns {\em and} in = which files these are
% stored\footnote{This is because different operating = systems sometimes
% use {\em very} different filenaming conventions.}. = This ``configuration
% file'' can contain empty lines and comments, as can = be seen from this
% example:
% \begin{verbatim}
%    % File    : = language.dat
%    % Purpose : tell iniTeX what = files with patterns to load.
%    english    = english.hyphenations
%
%    = dutch      hyphen.dutch % Nederlands
%    french     = frhyph.tex   % French with 8 bits pattern
%   %french     = fr7hyph.tex  % Patterns without accented char for TeX2.
%    german hyphen.ger
% \end{verbatim}
%
% \begin{macro}{\language}
%
% A counter is used to store the last language = defined.
% Plain \TeX\ version 3.0 uses {\tt count 19} for = this purpose,
%<TeX 3>\countdef\last@language 19
%<TeX 2> an extra counter has to be = allocated.
%  \newcount\last@language
%
% To add languages to \TeX's memory plain \TeX\ = version 3.0 supplies
% \verb=3D\newlanguage=3D, in TeX 2.0 environment a = similar macro has
% to be provided.
% For both cases a new macro is defined here, because = the original
% \verb=3D\newlanguage=3D was defined to be = \verb=3D\outer=3D.
%
% First, for formats based on plain version 3.0 the = definition of
% \verb=3D\newlanguage=3D can be simply copied, = removing \verb=3D\outer=3D
%<TeX = 3>\def\addlanguage{\alloc@9\language\chardef\@cclvi}
%
%  For a format based on plain version 2.x, the = definition of
%  \verb=3D\newlanguage=3D can not be copied = because {\tt count 19} is
%  used for other purposes in these formats. = Therefore
%  \verb=3D\addlanguage=3D is defined using a = definition based on
%  the macro's used to define = \verb=3D\newlanguage=3D in plain \TeX\ version 3.0.
%<TeX 2>
%   \def\addlanguage#1{%
%     = \global\advance\last@language by \@ne
%     \ifnum\last@language < = \@cclvi
%     \else
%        = \errmessage{No room for a new \string\language!}
%     \fi
%     = \global\chardef#1\last@language
%     \wlog{\string#1 =3D = \string\language\the\last@language}}
%<end TeX 2>
%
%    The macro \verb=3D\adddialect=3D = can be used to add the name of dialect
%    or variant language, for which an = already defined hyphenation table
%    can be used.
% \def\adddialect#1#2{%
%    \global\chardef#1#2
%    \wlog{\string#1 =3D a dialect = from \string\language#2}}
%
%    Users might want to test (in a = private style option for instance)
%    which language is currently = active. For this we provide
%    a test macro, = \verb=3D\iflanguage=3D, that has three arguments.
%    It checks whether the first = argument is a known language. If so,
%    it compares the first = argument
%    with the value of = \verb=3D\language=3D. Then,
%    depending on the result of the = comparison, it executes either the
%    second or the third = argument.
% \def\iflanguage#1#2#3{%
%   \ifx\undefined\csname = l@#1\endcsname
%    {\@nolanerr{#1}}
%    = {\ifnum\language=3D\expandafter\csname l@#1\endcsname\relax #2
%     \else#3\fi}
%  \fi}
%
%    The macro = \verb=3D\selectlanguage=3D checks whether the language is already
%    defined before it performs its = actual task, which is to update
%    \verb=3D\language=3D and activate = language-specific
%    definitions.
%
%    First, check if the user asks for = a known language. If so
%    update the value of = \verb=3D\language=3D and call \verb=3D\originalTeX=3D
%    to bring \TeX\ in a certain = pre-defined state.
%    One must do = \selectlanguage{french}or \selectlanguage{german}
%    Macros like \french or \german = are also defined. They affect only
%    \language, not caption, etc and = used by some external macros.
%\long\def\originalTeX{} % To be initialized
%\def\selectlanguage#1{\@ifundefined{l@#1}{\@nolanerr{#1}}
%    { \language=3D\expandafter\csname = l@#1\endcsname\relax
%       = \expandafter\def\csname#1\endcsname{%
%       = \language=3D\expandafter\csname l@#1\endcsname\relax}
%     \originalTeX
%    Then activate the = language-specific definitions. This is done by
%    constructing the names of three = macros by concatenating three
%    words with the argument of = \verb=3D\selectlanguage=3D, and calling
%    these macros.
%     \expandafter\csname = captions#1\endcsname
%     \expandafter\csname = date#1\endcsname
%     \expandafter\csname = extras#1\endcsname
%    Now we have to {\em re\/}define = \verb=3D\originalTeX=3D to compensate for
%    the things that have been = activated.
%     = \gdef\originalTeX{\expandafter\csname noextras#1\endcsname}
%    }}%
%    The following code defines an = error message to be displayed if the
%    user wants to switch to a = language he hasn't defined yet.
%
% \def\@nolanerr#1{\errhelp{Your command will be = ignored,^^J
% type <return> to proceed}
% \errmessage{You haven't defined the language #1 = yet}}
%
%
% The following code is meant to be read by ini\TeX\ = because it should
% instruct \TeX\ to read hyphenation patterns.
%%
%%=3D=3D=3D=3D=3D=3D=3D catcodes and lccodes of 8 = bits characters for 8 bits patterns=3D=3D=3D
%%
%%  The next line concerns catcode & lccode = to be defined so that hyphenation
%%  patterns with 8 bits codes will be accepted = by TeX 3.0
%%  Here it concerns the new Cork standard. All = accented characters
%%  are in the upper part of the Cork = standard.
%%  It works only with TeX 3.O.
%\ifnum\inputlineno>\m@ne
% \input corklcc
%\fi
%
% \patternlist is a token where all loaded patterns = are list
% it will then be output with everyjob to indicates = which
% patterns are loaded. This token can be used by = language specific
% styles.
%\newtoks \patternlist
%
%\message{<language.dat> lists languages = specific hyphenation patterns}
%\def\process@language#1 #2 {%
%    \expandafter\addlanguage\csname = l@#1\endcsname
%    \expandafter\language\csname = l@#1\endcsname
%    \input #2%
%    \expandafter\def\csname = #1hyph\endcsname{\language\csname l@#1\endcsname}
%    = \patternlist=3D\expandafter{\the\patternlist `#1', }}
%%
%%    A switch is needed to check if = there is more to read from the file.
%\newif\if@more\@moretrue
%%    Open the file for reading
%%
%\openin1 =3D language.dat
%%
%%    See if the file exists, if not = use the default hyphenation file
%%    {\tt hyphen.tex}. The user will = be informed about this.
%%
%\ifeof1\message{I couldn't find the file = language.dat, ^^J
%I will try the file hyphen.tex}
%    \input hyphen.tex\relax
%\else
%%
%%    Pattern registers are allocated = using count register 19. It's initial
%%    value is 0. The definition of = the macro \verb=3D\newlanguage=3D is such
%%    that it first increments the = count register and then defines the
%%    language. In order to have the = first patterns loaded in pattern register
%%    number 0 we initialize = \verb=3D\last@language=3D with the value $-1$.
%%
%\last@language=3D-1
%%
%%    Read lines from the file until = the end is found
%%
%\loop
%%
%%    While reading from the input it = is useful to switch off recognition
%%    of the end-of-line character. = This saves us stripping of spaces from
%%    the contents of the = controlsequence.
%%
%  \endlinechar=3D-1
%  \read1 to \@line
%  \endlinechar`\^^M
%%
%%    Empty lines are skipped.
%%
%  \ifx\@line\empty
%  \else
%%
%%    All the \verb=3D\expandafters=3D = are needed because we need the replacement
%%    text for the control sequence = \verb=3D\@line=3D to define a new control
%%    sequence.
%%
%    \edef\@line{\@line\space}
%    = \expandafter\process@language\@line
%  \fi
%%
%%    Check for the end of the = file
%  \ifeof1 \@morefalse \fi
%  \if@more\repeat
%%
%%    Reactivate the default = patterns
%%
%  \language=3D0
%\fi
%%
%%    close the file
%%
%\closein1

\message{compatibility for TeX 2, }

% If this file is used in an old TeX we define the new = features
% of TeX 3.0 as simple macros or counters so that = files that uses
% these features can be processed in such an = environment
% (They will however produce some other = results).

%\ifx\undefined\inputlineno
%  \newcount\inputlineno
%  = \inputlineno-1          = ;     % this could be used to detect that
%          &nb= sp;           &nbs= p;        % an old TeX is in = force
%  \newcount\language
%  \newcount\lefthyphenmin
%  \newcount\righthyphenmin
%  \newcount\errorcontextlines
%  \newcount\holdinginserts
%  \newdimen\emergencystretch
%  \newcount\badness
%  \let\noboundary\relax
%  \newcount\setlanguage
%%
%% Next lines for plain, but I know it changes plain, = if you know better...
\def\newcount{\alloc@0\count\countdef\insc@unt}
\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
  #1\endcsname\relax#2\else#3\fi}
%
\ifnum\inputlineno=3D\m@ne
   \newcount\last@language
   \def\addlanguage#1{%
     = \global\advance\last@language by \@ne
     \ifnum\last@language < = \@cclvi
     \else
        = \errmessage{No room for a new \string\language!}
     \fi
     = \global\chardef#1\last@language
     \wlog{\string#1 =3D = \string\language\the\last@language}}
  \else
     \countdef\last@language = 19
     = \def\addlanguage{\alloc@9\language\chardef\@cclvi}
     % catcode lccode of the 8 = bits Cork standard (accented characters).
     \input corklcc
\fi
\def\adddialect#1#2{%
    \global\chardef#1#2
    \wlog{\string#1 =3D a dialect from = \string\language#2}}
\def\iflanguage#1#2#3{%
  \@ifundefined{l@#1}
    {\@nolanerr{#1}}
    = {\ifnum\language=3D\expandafter\csname l@#1\endcsname\relax #2
     \else#3\fi}
  \fi}
\long\def\originalTeX{} % To be initialized
\def\selectlanguage#1{\@ifundefined{l@#1}{\@nolanerr{#1}}=
    { \language=3D\expandafter\csname = l@#1\endcsname\relax
%       = \expandafter\def\csname#1\endcsname{%
%       = \language=3D\expandafter\csname l@#1\endcsname\relax}
     \originalTeX
     \expandafter\csname = captions#1\endcsname
     \expandafter\csname = date#1\endcsname
     \expandafter\csname = extras#1\endcsname
     = \gdef\originalTeX{\expandafter\csname noextras#1\endcsname}
    }}%
\def\@nolanerr#1{\errhelp{Your command will be = ignored,^^J
type <return> to proceed}
\errmessage{You haven't defined the language #1 = yet}}
\newtoks \patternlist
\message{<language.dat> lists languages = specific hyphenation patterns}
\def\process@language#1 #2 {%
    \expandafter\addlanguage\csname = l@#1\endcsname
    \expandafter\language\csname = l@#1\endcsname
    \input #2%
    \expandafter\def\csname = #1hyph\endcsname{\language\csname l@#1\endcsname}
    = \patternlist=3D\expandafter{\the\patternlist `#1', }}
\newif\if@more\@moretrue
\openin1 =3D language.dat
\ifeof1\message{I couldn't find the file = language.dat, ^^J
I will try the file hyphen.tex}
    \input hyphen.tex\relax
\else
\last@language=3D-1
\loop
  \endlinechar=3D-1
  \read1 to \@line
  \endlinechar`\^^M
  \ifx\@line\empty
  \else
    \edef\@line{\@line\space}
    = \expandafter\process@language\@line
  \fi
  \ifeof1 \@morefalse \fi
  \if@more\repeat
  \language=3D0
\fi
\closein1
%
% This line will be superseded by the everyjob of = lplain, so it will be
% useful only for plain. In lplain we will have = another everyjob at
% the end
\everyjob=3D\expandafter{\the\everyjob
        = \message{patterns for \the\patternlist loaded}}
=3D=3D=3D=3D=3D=3D=3Dend of change in lplain = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
=3D=3D=3D=3D=3D=3D=3D language.dat = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
% This is language.dat as of October 22, 1991 at = (your site)
%
% This file tells which are the usable hyphenation = files.
%
% This file is also used by language LaTeX style = options such as french.sty
% to define new commands having the language name = given here:

english   = enhyph.tex      % Original english hyphenation = file and exceptions
french    = frhyph.tex      % French patterns and 8 bits = definitions.
%dutch   hyphen.dutch
%german  hyphen.german
%dumylang  dumyhyph.tex    % for = testing a new language without hyphen files
% INITeX    = hyconfig.tex    % master hyphenation file used at my site = (MLTeX)
=3D=3D=3D=3D=3D=3D=3Dend of language.dat = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D=3D=3D=3D=3D=3D corklcc = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
% This file contains 8 bits characters but can be = mailed as 8 bits
%% characters are after a comment.
%
% File  corklcc.tex  Version 1.02 of = September, 29 1991
% History
%          &nb= sp;    Version 1.02 of September, 29 1991
%          &nb= sp;    error with \`a mapped to ^^e1 instead of = ^^e0
%          &nb= sp;    Version 1.01 of June, 6 1990
%          &nb= sp; Version 1.0 of May, 9 1990
\message{<corklcc.tex>  (lccode) = v1.02  29/09/1991.}
%
% This files defines all 8 bits characters as = inactive (11), it also
% defines the lccodes so that pattern with eight bits = codes can be
% loaded  by TeX 3.0
% This file is not complete. It concerns only = accented characters of
% the ISO8859/1 standard i.e > 192. Some signs are = empty and other
% are active and mapped to TeX command. The utility = of this file
% is only to allow hyphenation patterns to be loaded. = They can be
% redefined later. It will be completed in a near = future.
%
% N.Brouard, October 26 1991.

\catcode `\^^bf=3D13   \def^^bf{?`} %2191 = ?`, '277, "bf
\catcode `\^^c0=3D11  \lccode '300=3D'340 %| = \def|{\`A}%192 \`A, '300, "c0
\catcode `\^^c1=3D11  \lccode '301=3D'341 %V = \defV{\'A}%193 \'A, '301, "c1
\catcode `\^^c2=3D11  \lccode '302=3D'342 %{ = \def{{\^A}%194 \^A, '302, "c2
\catcode `\^^c3=3D11  \lccode '303=3D'343 %x = \defx{\~A}%195 \~A, '303, "c3
\catcode `\^^c4=3D11  \lccode '304=3D'344 %=16 = \def=16{{\"A}}%196 {\"A}, '304, "c4
\catcode `\^^c5=3D11  \lccode '305=3D'345 %{ = \def${=1A}%197 {\AA}, '305, "c5
\catcode `\^^c6=3D11  \lccode '306=3D'346 %s = \defs{=1A}%198 \AE{}, '306, "c6
\catcode `\^^c7=3D11  \lccode '307=3D'347 %/ = \def/{=1A}%199 \c{C}, '307, "c7
\catcode `\^^c8=3D11  \lccode '310=3D'350 %. = \def.{\`E}%200 \`E, '310, "c8
\catcode `\^^c9=3D11  \lccode '311=3D'351 %E = \defE{=1A}%201 \'E, '311, "c9
\catcode `\^^ca=3D11  \lccode '312=3D'352 %=0C = \def=0C{\^E}%202 \^E, '312, "ca
\catcode `\^^cb=3D11  \lccode '313=3D'353 %=17 = \def=17{{\"E}}%203 {\"E}, '313, "cb
\catcode `\^^cc=3D11  \lccode '314=3D'354 %} = \def}{\`I}%204 \`I, '314, "cc
\catcode `\^^cd=3D11  \lccode '315=3D'355 %N = \defN{\'I}%205 \'I, '315, "cd
\catcode `\^^ce=3D11  \lccode '316=3D'356 %=13 = \def=13{\^I}%206 \^I, '316, "ce
\catcode `\^^cf=3D11  \lccode '317=3D'357 %q = \defq{{\"I}}%207 {\"I}, '317, "cf
%~208, '320, "d0
\catcode `\^^d1=3D11  \lccode '321=3D'361 %H = \defH{=1F}%209 \~N, '321, "d1
\catcode `\^^d2=3D11  \lccode '322=3D'362 %o = \defo{\`O}%210 \`O, '322, "d2
\catcode `\^^d3=3D11  \lccode '323=3D'363 %@ = \def@{\'O}%211 \'O, '323, "d3
\catcode `\^^d4=3D11  \lccode '324=3D'364 %Z = \defZ{\^O}%212 \^O, '324, "d4
\catcode `\^^d5=3D11  \lccode '325=3D'365 %[ = \def[{\~O}%213 \~O, '325, "d5
\catcode `\^^d6=3D11  \lccode '326=3D'366 %r = \defr{=1A} 214%{\"O}, '326, "d6
\catcode `\^^d7=3D11  \lccode '327=3D'367 %y = \defy{\OE{}}%215 \OE{}, '327, "d7
\catcode `\^^d8=3D11  \lccode '330=3D'370 %5 = \def5{\O{}}%216 \O{}, '330, "d8
\catcode `\^^d9=3D11  \lccode '331=3D'371 %6 = \def6{\`U}%217 \`U, '331, "d9
\catcode `\^^da=3D11  \lccode '332=3D'372 %} = \def}{\'U}%218 \'U, '332, "da
\catcode `\^^db=3D11  \lccode '333=3D'373 %7 = \def7{\^U}%219 \^U, '333, "db
\catcode `\^^dc=3D11  \lccode '334=3D'374 %8 = \def8{=1A}%220 {\"U}, '334, "dc
\catcode `\^^dd=3D11  \lccode '335=3D'335 %9 = \def9{{\"Y}}%221 {\"Y}, '335, "dd
% f222, '336, "de
\catcode `\^^df=3D11  %; \def;{\ss{}} 223 \ss{}, = '337, "df
\catcode `\^^e0=3D11  \lccode '340=3D'340 %< = \def<{
}%224 \`a, '340, "e0
% [IBM \ss instead of ISO a acute ]
\catcode `\^^e1=3D13   \def^^e1{\ss{}} %=3D = 225 \ss{} , '341, "e1
\catcode `\^^e2=3D11  \lccode '342=3D'342 = %
 \def
{=1A} 226 \^a, '342, "e2
\catcode `\^^e3=3D11  \lccode '343=3D'343 %Y = \defY{\~a} 227 \~a, '343, "e3
\catcode `\^^e4=3D11  \lccode '344=3D'344 %? = \def?{=1A} 228 {\"a}, '344, "e4
\catcode `\^^e5=3D11  \lccode '345=3D'345 %] = \def]{=1A} 229 {\aa}, '345, "e5
\catcode `\^^e6=3D11  \lccode '346=3D'346 %X = \defX{=1A} 230 {\ae}, '346, "e6
\catcode `\^^e7=3D11  \lccode '347=3D'347 %D = \defD{=1A} 231 \c{c}, '347, "e7
\catcode `\^^e8=3D11  \lccode '350=3D'350 %K = \defK{=1A} 232 \`e, '350, "e8
\catcode `\^^e9=3D11  \lccode '351=3D'351 %J = \defJ{=1C} 233 \'e, '351, "e9
\catcode `\^^ea=3D11  \lccode '352=3D'352 %> = \def>{=1A} 234 \^e, '352, "ea
\catcode `\^^eb=3D11  \lccode '353=3D'353 %h = \defh{=1A} 235 {\"e}, '353, "eb
\catcode `\^^ec=3D11  \lccode '354=3D'354 %l = \defl{=1A} 236 \`{\i}, '354, "ec
\catcode `\^^ed=3D11  \lccode '355=3D'355 %m = \defm{\'{\i}} 237 \'{\i}, '355, "ed
\catcode `\^^ee=3D11  \lccode '356=3D'356 %! = \def!{=1A} 238 \^{\i}, '356, "ee
\catcode `\^^ef=3D11  \lccode '357=3D'357 %- = \def-{=1A} 239 {\"{\i}}, '357, "ef
%u240, '360, "f0
\catcode `\^^f1=3D11  \lccode '361=3D'361 %t = \deft{=10} 241 \~n, '361, "f1
\catcode `\^^f2=3D11  \lccode '362=3D'362 %# = \def#{=1E} 242 \`o, '362, "f2
\catcode `\^^f3=3D11  \lccode '363=3D'363 %=0F = \def=0F{
\catcode `\^^f4=3D11  \lccode '364=3D'364 = %  \def {=1A} 244 \^o, '364, "f4
\catcode `\^^f5=3D11  \lccode '365=3D'365 %=05 = \def=05{\~o} 245 \~o, '365, "f5
\catcode `\^^f6=3D11  \lccode '366=3D'366 %=0E = \def=0E{=1A}246 {\"o}, '366, "f6
\catcode `\^^f7=3D11  \lccode '367=3D'367 %i = \defi{\oe{}} 247 \oe{}, '367, "f7
\catcode `\^^f8=3D13   \defd{\No{}} %d248 = \No{}  [IBM Not ISO \o{} ], '370, "f8
\catcode `\^^f9=3D11  \lccode '371=3D'371 %Q = \defQ{=1A} 249 \`u, '371, "f9
\catcode `\^^fa=3D11  \lccode '372=3D'372 %3 = \def3{k} 250 \'u, '372, "fa
\catcode `\^^fb=3D11  \lccode '373=3D'373 %w = \defw{=1A} 251 \^u, '373, "fb
\catcode `\^^fc=3D11  \lccode '374=3D'374 %p = \defp{=1A} 252 {\"u}, '374, "fc
\catcode `\^^fd=3D11  \lccode '375=3D'375 %z = \defz{=1A} 253 {\"y}, '375, "fd
%'254, '376, "fe
%=7F, '377, "ff
%end of corklcc.tex
=3D=3D=3D=3D=3D=3D=3Dend of corklcc = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

------_=_NextPart_001_01C19443.4ABABD8C--