diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/typingtex/Active8MacProse.dir |
Initial commit
Diffstat (limited to 'language/typingtex/Active8MacProse.dir')
6 files changed, 2178 insertions, 0 deletions
diff --git a/language/typingtex/Active8MacProse.dir/Active8Mac-SP.tex b/language/typingtex/Active8MacProse.dir/Active8Mac-SP.tex new file mode 100644 index 0000000000..c7786d7640 --- /dev/null +++ b/language/typingtex/Active8MacProse.dir/Active8Mac-SP.tex @@ -0,0 +1,105 @@ + %%%% Active8Mac-SP.sty, april 1993 + %%%% by Laurent Siebenmann <lcs@matups.matups.fr> + %%%% Posting for updates ftp matups.matups.fr + %%%% This file is ASCII with 8-bit characters in ^^xy form. + + %%% Purpose: Allow direct typing of all Spanish accents for TeX + %% using any standard Macintosh prose font having them, AND + %% (a) Permit good Spanish hyphenation in words with + %% accents in case 7-bit Spanish hyphenation patterns are loaded + %% together with the 7bit accent administration package + %% HyAcc-CM.tex posted on ftp matups.matups.fr. + %% (b) Permit perfect Spanish hyphenation in words with + %% accents in case 8-bit Spanish hyphenation patterns are loaded + %% and any known 8bit accent administration package is present. + %% (CaesarCM.tex and CaesarCK.tex on ftp matups.matups.fr + %% are candidates for (extended) computer modern fonts and + %% and cork norm fonts respectively. + %% (c) Maintain the expected behavior of \uppercase and \lowercase. + + %%% Warnings: + %% Eight bit typing based on a file option.keys distributed + %% at one time with Textures and containing basically just some + %% active character definitions satisfies NONE of the conditions + %% (a) (b) (c) because the uccodes and lccodes are wrong. + %% Further it has been verified that there exists no + %% language-independent way to assign these codes for the Macintosh + %% unless the TeX implementation has so-called I/O filters to + %% harmonise Macintosh and Cork norm (TeX) character encodings. + %% In 1993 OzTeX and Textures do not have such filters. + %% When, some time in the future, you notice that your TeX does + %% have such I/O filters look for a simple language-independant + %% replacement for this file on ftp matups.matups.fr. + + %%% Compatibility: If option.keys is loaded BEFORE this file, + %% you do get the features (a) (b) (c) PLUS the active character + %% definitions in option.keys that are not revised by this file. + +\begingroup +\catcode`@=11 + + %%% Globally set high ASCII to 13 + %% + \count@="80 + \loop + \global\catcode\the\count@=\active + \ifnum\count@<"FF + \relax\advance\count@ by 1 + \repeat + + %%% Globally set their Cork default lc-uc codes + \newcount\Ct@ + \newcount\Ct@@ + \newcount\Ct@@@ + \toks0={% + \loop + \Ct@=\count@\advance\Ct@ by 32 + %% \count@ is Plain scratch counter \count255 + \global\uccode\the\count@=\the\count@ + \global\lccode\the\count@=\the\Ct@ + \global\uccode\the\Ct@=\the\count@ + \global\lccode\the\Ct@=\the\Ct@ + \ifnum\count@<\Ct@@ + \relax\advance\count@ by 1 + \repeat + } + + \count@="80 \Ct@@="9F \the\toks0 %% segment "80 to "BF + \count@="C0 \Ct@@="DF \the\toks0 %% segment "C0 to "FF + + + \def\Forbid@ #1{% + \global\catcode`#1=15 } + + \def\CheckPeriod#1{\if#1.\else + \errmessage{ !!! Error in character data}\fi} + + + \def\lc@uc@ADef#1#2#3#4#5{% + \CheckPeriod{#5}% + \global\def#1{#3}\global\def#2{#4}% + \global\lccode`#1=`#2\global\uccode`#1=`#1% + \global\lccode`#2=`#2\global\uccode`#2=`#1% + } + + \catcode`/=13 \let/\lc@uc@ADef + + %\catcode`*=13 \let*=\Forbid@ + \catcode`^=7 %% superscript + + %/^^a0^^87{\'A}{\'a}. *^^a0 %%cf Activ8MonacoCM.tex + /^^e7^^87{\'A}{\'a}. + /^^83^^8e{\'E}{\'e}. + %/^^b1^^92{\'I}{\'\i}.*^^b1 + /^^ea^^92{\'I}{\'\i}. + %/^^b8^^97{\'O}{\'o}.*^^b8 + /^^ee^^97{\'O}{\'o}. + %/^^b9^^9c{\'U}{\'u}.*^^b9 + /^^f2^^9c{\'U}{\'u}. + /^^84^^96{\~N}{\~n}. + + %^^e7^^87^^83^^8e^^ea^^92^^ee^^97^^f2^^9c^^84^^96 + + \endgroup + \endinput + diff --git a/language/typingtex/Active8MacProse.dir/Active8MacCM.tex b/language/typingtex/Active8MacProse.dir/Active8MacCM.tex new file mode 100644 index 0000000000..0fda92a4c8 --- /dev/null +++ b/language/typingtex/Active8MacProse.dir/Active8MacCM.tex @@ -0,0 +1,565 @@ + %%%%% Active8MacCM.tex + %%% November 1992, Mar 1994 + + %%%% NB: 7bit ascii file + + %%% Author: + %% Laurent Siebenmann, Orsay, France + %% lcs@matups.matups.fr <= bug reports here please! + + %%% Master Posting: + %% ftp matups.matups.fr in directory TypingTeX.dir + + %%% AIM: + %% Exploit TeX's active character mechanism + %% in conjunction with CaesarCM + %% to allow direct typing of prose for TeX + %% using all accented characters of Times or other + %% Macintosh fonts (Helvetica, Palatino etc.) + %% A fortiori, one can use the less rich but more readable + %% bitmapped fonts Monaco, Geneva etc. + + %%% INSTRUCTIONS: + %% You have merely to \input + %% this file on top of any format in which the + %% 7-bit typing system for accented characters + %% CaesarCM has been incorporated. + %% format-dumper-CM is a tool to create such + %% formats. Then direct typing + %% of accented characters is acceptable to TeX. + %% TeX will use a ready-made accented character + %% if these are available in the current font + %% and create a composite character otherwise. + %% LaTeX users must \input the file + %% --- AFTER LaTeX.tex and + %% --- BEFORE \documentstyle + + %%% CASE CHANGE RESTORED! + %% Such macros as these necessarily fail to + %% extend the action of the primitives + %% \uppercase and \lowercase + %% to directly typed accented characters. + %% To replace (or indeed redefine) these, consider + %% using \Uppercase and \Lowercase + %% Or \eUppercase and \eLowercase from caesarcm.tex. + %% See documentation following \endinput + + %%%% \Uppercase and \Lowercase to extend action of + %%% \uppercase and \lowercase to 128-255. Robust. + %%% Misbehave on \ss, \ae, \oe, \o and caps (leave them fixed) + %%% \eUppercase and \eLowercase of caesarcm.tex + %%% have perfect behavior --- but are fragile. + + \begingroup + \catcode`\@=11 + \catcode`\/=13 + + \global\let\primuppercase\uppercase + \global\let\primlowercase\lowercase + + %%\count@ is Plain scratch counter \count255 + %%% These counts exist globally global despite appearances + \ifx\undefined\Ct@\csname newcount\endcsname\Ct@\fi + \ifx\undefined\Ct@@\csname newcount\endcsname\Ct@@\fi + \ifx\undefined\Ct@@@\csname newcount\endcsname\Ct@@@\fi + + \count@=12\Ct@=128\Ct@@=255 + \loop + \catcode\Ct@=\count@ + \ifnum\Ct@<\Ct@@\relax + \advance\Ct@ by \@ne + \repeat + + %%%%% Casing alphabetic Mac Characters + %% + \def\Alphaholder@{% + /^^e7^^87./^^83^^8e./^^ea^^92./^^ee^^97./^^f2^^9c.% + /^^cb^^88./^^e9^^8f./^^ed^^93./^^f1^^98./^^f4^^9d.% + /^^e5^^89./^^e6^^90./^^eb^^94./^^ef^^99./^^f3^^9e.% + /^^80^^8a./^^e8^^91./^^ec^^95./^^85^^9a./^^86^^9f.% + /^^d9^^d8./^^cc^^8b./^^84^^96./^^cd^^9b./^^81^^8c.% + /^^82^^8d./^^ae^^be./^^ce^^cf./^^af^^bf.% + } + %\def\CheckPeriod#1{\if#1.\else % + % \errmessage{ !!! Error in character data}\fi} + \def\space{ } + +\def/#1#2.{\lccode\number`#1=\number`#2\lccode\number`#2=\number`#2} + + \xdef\LAlphaPrep@{\Alphaholder@}% + %\show\LAlphaPrep@ + + +\def/#1#2.{\uccode\number`#1=\number`#1\uccode\number`#2=\number`#1} + \xdef\UAlphaPrep@{\Alphaholder@}% + %\show\UAlphaPrep@ + + %%%%% Casing nonalphabetic Mac Characters + \def\Otherholder@{% + /^^a0./^^a1./^^a2./^^a3./^^a4./^^a5./^^a6./^^a7.% + /^^a8./^^a9./^^aa./^^ab./^^ac./^^ad.% + /^^b0./^^b1./^^b2./^^b3./^^b4./^^b5./^^b6./^^b7.% + /^^b8./^^b9./^^ba./^^bb./^^bc./^^bd.% + /^^c0./^^c1./^^c2./^^c3./^^c4./^^c5./^^c6./^^c7.% + /^^c8./^^c9./^^ca./^^d0./^^d1./^^d2./^^d3./^^d4.% + /^^d5./^^d6./^^d7./^^da./^^db./^^dc./^^dd./^^de.% + /^^df./^^e0./^^e1./^^e2./^^e3./^^e4./^^f0./^^f5.% + /^^f6./^^f7./^^f8./^^f9./^^fa./^^fb./^^fc./^^fd.% + /^^fe./^^ff.} + + \def/#1.{\uccode\number`#1\z@} + \xdef\UOtherPrep@{\Otherholder@} + %\show\UOtherPrep@ + + \def/#1.{\lccode\number`#1\z@} + \xdef\LOtherPrep@{\Otherholder@} + %\show\LOtherPrep@ + + \gdef\SetCorkULCodeSeg{% + \loop + \Ct@=\count@\advance\Ct@ by 32 + \uccode\count@=\count@ + \lccode\count@=\Ct@ + \uccode\Ct@=\count@ + \lccode\Ct@=\Ct@ + \ifnum\count@<\Ct@@ + \relax\advance\count@ by 1 + \repeat + } + + \gdef\SetCorkULCodes{% + %%% Impose Cork lc uc and sf codes + \count@=128 \Ct@@=158 \SetCorkULCodeSeg %% segment "80 to "BF + %%% Cork "9F is \S and "BF is pound sign lc/uc codes 0 + \count@=192 \Ct@@=223 \SetCorkULCodeSeg %% segment "C0 to "FF + } + + \gdef\Uppercase#1{\UAlphaPrep@\UOtherPrep@ + \primuppercase{#1}% + \SetCorkULCodes + } + + \gdef\Lowercase#1{\LAlphaPrep@\LOtherPrep@ + \primlowercase{#1}% + \SetCorkULCodes + } + + \endgroup + + \begingroup + \catcode`\@=11 + \global\let\EX@\expandafter + + %\show\CaesarCMLoaded + {\catcode`!=12 + \ifx\CaesarCMLoaded\undefined + \immediate\write16{}% + \immediate\write16{ !!! CaesarCM not loaded} + \gdef\temp{}\else \gdef\temp{} + \fi} + \temp %\endgroup\end + + { \catcode`!=11 + \ifx\ActiveEight\undefined + \gdef\temp{} + \else + \W@{}% + \W@{ !!! Stop! An Active8MacCM typing setup has already been +loaded. + \gdef\temp{\endgroup\end}\else \gdef\temp{} + \global\let\ActiveEight\relax + \fi} + \temp + + %%% Globally set high ASCII to 13 + %% + \count@="80\Ct@@="FF + \loop + \global\catcode\count@=\active + \ifnum\count@<\Ct@@\relax + \advance\count@ by \@ne + \repeat + + \def\CheckPeriod#1{\if#1.\else + \errmessage{ !!! Error in character data}\fi} + + %%% \lcucActAccDef ^^83^^8eEe\'. %%is example! + %% Presumably uc and lc codes already set +\def\lcucActAccDef#1#2#3#4#5#6{% + \CheckPeriod{#6}% + \global\catcode`#1=\active + \global\catcode`#2=\active + \gdef#1{#5#3}%% #3 and #4 ascii catcode 11; #5 is \' say + \gdef#2{#5#4}% + } + + %%% \CharAct@ ^^d4^^60. %% is example! + %% leaves uc lc unresolved + \def\CharAct@#1#2#3{% + \global\catcode`#1=\active + \CheckPeriod{#3}% + \global\let#1#2% + } + + %%% \QuoteAct@ ^^d4^^60. %% is example! + %% + \def\QuoteAct@#1.#2#3{% + \CheckPeriod{#3}% + \global\catcode`#1=\active + \xdef#1{\string#2}% + \global\uccode`#2=0\global\lccode`#2=0 + } + + %%% \Forbid@ + %% + \def\Forbid@ #1{% + \global\catcode`#1=15 } + + \catcode`/=13 + \let/\lcucActAccDef + + \catcode`\*=13 + \let*=\QuoteAct@ + + \catcode`\|=13 + \let|=\CharAct@ + + %%% / is \lcucActAccDef + /^^e7^^87Aa\'. + /^^83^^8eEe\'. + /^^ea^^92Ii\'. + /^^ee^^97Oo\'. + /^^f2^^9cUu\'. + /^^cb^^88Aa\`. + /^^e9^^8fEe\`. + /^^ed^^93Ii\`. + /^^f1^^98Oo\`. + /^^f4^^9dUu\`. + /^^e5^^89Aa\^. + /^^e6^^90Ee\^. + /^^eb^^94Ii\^. + /^^ef^^99Oo\^. + /^^f3^^9eUu\^. + /^^80^^8aAa\". + /^^e8^^91Ee\". + /^^ec^^95Ii\". + /^^85^^9aOo\". + /^^86^^9fUu\". + /^^d9^^d8Yy\". + /^^cc^^8bAa\~. + /^^84^^96Nn\~. + /^^cd^^9bOo\~. + /^^81^^8cAa\*.%\show^^81 + /^^82^^8dCc\c. + + %%% | is \CharAct@ + |^^ae\AE. + |^^be\ae. + |^^ce\OE. + |^^cf\oe. + |^^af\O. + |^^bf\o. + |^^a7\ss. + + %%% * is \QuoteAct@ + {\catcode"5C=12 *^^d2.^^5c.}%% backslash code!! + *^^d3.^^22.%% '' + *^^d4.^^60.%% ` + *^^d5.^^27.%% ' + + \gdef\Symb@@#1{% + \EX@ \ifx \csname #1@\endcsname\relax + ^^58%% Print X if nothing better + \else + \csname #1@\endcsname + \fi} + + \xdef\questiondown@{\string^^3e}% + \xdef\exclamdown@{\string^^3c}% + %\def\guillemotleft@{\DLG}%% in gllmts.tex + %\def\guillemotright@{\DRG}%% in gllmts.tex + \def\dagger@{$\m@th\dag$}% + \gdef\daggerdbl@{$\m@th\ddag$}% + \gdef\section@{$\m@th\S$} + \gdef\paragraph@{$\m@th\P$} + \gdef\pound@{{\ifdim\fontdimen\@ne\font >\z@ + \it\else \font\ft=cmu10\ft\fi\char`\$}}%% cheat + %\gdef\paragraph@{X}%% unavailable + + \gdef^^c0{\questiondown} + \gdef^^c1{\exclamdown} + \gdef^^c7{\guillemotleft} + \gdef^^c8{\guillemotright} + \gdef^^a4{\section} + \gdef^^a3{\pound} + \gdef^^a0{\dagger} + \gdef^^e0{\daggerdbl} + \gdef^^a6{\paragraph} + \gdef^^e4{\perthousand} + + %%% If Caesar not present \Symb@@=\Symb@ + \gdef\questiondown{\Symb@@{questiondown}} + \gdef\exclamdown{\Symb@@{exclamdown}} + \gdef\guillemotleft{\Symb@@{guillemotleft}} + \gdef\guillemotright{\Symb@@{guillemotright}} + \gdef\section{\Symb@@{section}} + \gdef\pound{\Symb@@{pound}} + \gdef\dagger{\Symb@@{dagger}} + \gdef\daggerdbl{\Symb@@{daggerdbl}} + \gdef\paragraph{\Symb@@{paragraph}} + \gdef\perthousand{\Symb@@{perthousand}} + + \ifx\CaesarCMLoaded\relax + \global\let\Symb@@=\Symb@ %% of Caesar + \fi + + \endgroup + + %%%%%% LaTeX material + + { \catcode`!=11 \catcode`\@=11 + \ifx\undefined\@@line %% \@@line unique to LPlain + \gdef\temp{\endinput} + \else + \gdef\temp{} + \fi} + \temp %% \endinput unless LaTeX + + { \catcode`!=11\catcode`\@=11 + \ifx\@@end\undefined %% \@@end unique to LaTeX + \W@{}% + \W@{ !!! LaTeX must be fully loaded }% + \W@{ !!! before Active8MacCM.tex}% + \gdef\temp{\end}% + \else + \gdef\temp{} + \fi} + \temp + + { \catcode`!=11\catcode`\@=11 + \ifx\subsubsection\undefined %% yes before \documentstyle + \gdef\temp{} + \else + \W@{}% + \W@{ !!! Active8MacCM.tex must be input}% + \W@{ !!! before \noexpand\documentstyle occurs.}% + \gdef\temp{\end{document}}% + \fi} + \temp + + %%%%%% end of LaTeX material + + \endinput + + %%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%% + Active8MacCM.doc + + + Documentation for Active8MacCM.tex + + Alpha version, November 1992 + Beta version, Mar 1994 + + ******************************************************** + NOTA BENE In this documentation please read CM for CX and cm for +cx. (The following serves also for the CK (Cork) font encoding +--- reading CK for CX etc.) + ******************************************************** + + Although Active8MacCX.tex can be used with most TeX formats, +it complements the accent administration package caesarcx.tex in a +well-planned way. When the two are to be used together, be sure +to obtain versions of Active8MacCX.tex and caesarcx.tex that are +in step. The master postings are currently on ftp +matups.matups.fr. Then on typing a given eight bit Macintosh +character, you will get the best rendition of that character that +is available in the current font. + + There is alarming misbehavior of + + --- \uppercase, \lowercase + +for characters in the range 128-255. Not only does +\uppercase{<eacute>} give <eacute> rather than <Eacute>, but +\uppercase{<Ugrave>} gives <Udieresis>. Good hyphenation with all +languages served by the Cork norm more or less dictates Cork +standard uc and lc code assignments. And the misbehavior just +noted is consequence of using them. The one reasonable way to +systematically eliminate the misbehavior is to use "I/O filters" +for TeX to align the code of characters typed to the Cork code. +But few TeX implementations have this desirable flexibility; on +the Macintosh only Direct TeX has it. + + A rather straightforeward remedy is provided by the substitute +macros \Uppercase and \Lowercase defined here. They coincide with +\uppercase and \lowercase on 7-bit (ascii) TeX input, but are +designed to behave correctly on directly typed Macintosh +characters in the range: 128-255. + + \Uppercase and \Lowercase are robust in the sense that they +are unlikely to cause their argument to blow up no matter how +complex it may be. In particular no \edef-type expansion is used. +Additionally they themselves can hopefully be subjected to +\edef-type expansion. These macros work by temporarily adjusting +many catcodes for the application of \uppercase and \lowercase. +Hence, like, \verbtim macros, they are somewhat slow. Further in +spite of their robustness, these macros may misbehave where +\edef-type expansion is used indescriminately (notably in LaTeX) +the reason is that after expansion the Cork uc and lc codes are +more appropriate, whereas these macros insist on using Macintosh +uc and lc codes. + + A second solution and more ambitions solution is provided +by macros + + \eUppercase, \eLowercase + +defined already in the accent administration package caesarcx.tex; +the performance edge is double: + + (i) these macros deal correctly with \ae,\oe,\o,\ss,\i and +capitalized versions, whereas all competeting macros leave them +invariant. + (ii) inlike \Uppercase, \Lowercase often give correct results +when applied to characters in the 128-255 range that have been +subjected to \edef-type expansion. + +These macros work by expanding (via the \edef mechanism) until +\uppercase and \lowercase produce the right effect; hence they are +fragile. The "e" in \eUppercase should recall "expansion" or +"\edef". No massive use uc and lc code changes is involved; these +macros are fairly fast. + + \eUppercase, \eLowercase should not be applied to any +material that is not known to be *safe* under \edef-type +expansion; all category 11 and 12 characters are safe; beginners +should regard *all* other material with suspicion, notably font +changes. + + It is tempting to hide the misbehavior of \lowercase and +\uppercase from the eye of the user by \let'ing the primitive +commands \lowercase and \uppercase equal to \relax. But this is +in fact dangerous, especially if macros are loaded thereafter, +because programmers use \lowercase and \uppercase as low level +tools for macro loading. THOU SHALT NOT GLOBALLY REDEFINE TEX +PRIMITIVES is a commandment deserving respect. + + It is tempting and often very effective to sort out all +case change problems at a blow by redefining via + + \let \uppercase\Uppercase \let \lowercase\Lowercase + +or + + \let \uppercase\eUppercase \let \lowercase\eLowercase + +although (as explained above) this is antisocial. Use it privately +so long as it gives good results, but never pass on such a +dangerous system to an unsuspecting third party. Everything within +a TeX group of moderate size can legitimately be considered +private! So this efficient device has reasonable scope in +practice. Incidentally, caesarcx.tex Active8MacCX.tex and +preserve intact versions \primuppercase, \primlowercase for +convenience and security. + + + ***** Occasional problems and their current remedies ***** + + If TeX issues mysterious complaints in response to the +(local!) redefinition above, try to pacify it by using standard +7-bit ascii typing there. Consider also using \ufcr +(=\UpdateFontClassRegister) command of Caesar before the +troublesome part, and selectively replacing the complex \uppercase +by the simple \primuppercase. As a last resort use \noCaesar to +locally to revert to composite characters. + + ----------------------------- + + Some special problems occur for LaTeX. By default a command + + \CaesarProtectLaTeX + +is in effect to avoid them. This makes Caesar use composite +accented characters in its headings. It does so by (re)defining +parameters \LHdShield, \RHdShield. Other remedies for other +problems are included. + + To undo this at a later point (to perfect the LaTeX +typography) use + + \CaesarDeprotectLaTeX + +Then LaTeX may get stuck or lose accented characters in headings +--- especially those involving special font changes and accented +characters. In this case try 7-bit ascii typing for the +troublesome headings. If that does not work or is too much +bother, revert locally to \CaesarProtectLaTeX. + + Beware that \uppercase is used by LaTeX behind the user's back +and mixed with \edef type expansions. + +NB. These difficulties with LaTeX are due to unnecessary use by +LaTeX of expansion of the sort done by \edef, (and \write, \mark, +etc.). Hopefully they will all dissappear without trace in +version 3 of LaTeX. Present versions af LaTeX are fragile, hence +provisional. + + + ***** Related tools ***** + + (A) Bernd Raichle <raichle@azu.informatik.uni-stuttgart.de>, has +a patch for the TeX program offering improved versions of +\uppercase, \lowercase that do not incur any problems, since they +operate after macro expansion, at the horizontal list level. It +is not yet available. Raichle's patch and Active8MacCX.tex both +solve case change problems by *delaying* the case changes, but of +course to different degrees and in different ways. + + (B) I/O filters available in DirectTeX of W. Ricken let one adopt +the easy solution that uses the Cork code only within TeX. To +enjoy the flexibility of Caesar (use of ready-made accented +characters if they happen to be present), input characters do have +to be active. + + (C) The same is accomplished for any TeX on the Macintosh through +use of Cork-encoded screen fonts allied with a special Macintosh +KCHR resource. These have been provided by N. Jungers and are +available on ftp matups.matups.fr. + + + ***** Thanks and programmer notes ***** + + Comments of Daniel Taupin and Bernd Raichle in the GUT +TeX forum October 1992 brought into focus the multiple case change +problems stirred up by use of active characters. Taupin noticed +that automatically capitalised headlines in the LaTeX book style +caused difficulties for all then existing 8-bit typing systems +which used active characters to align input to norms for output +(see my Prague proceedings article 1992, where the case change +problem is mentioned). This stirred me to introduce the two +replacement pairs \Uppercase,\Lowercase and \eUppercase, +\eLowercase for \uppercase, \lowercase. From the programmer's +viewpoint these replacements are the net contribution of these +macros. + + The author's sincere thanks go to them. + + + ***** References ***** + + --- L. Siebenmann, *La mise en application d\'efinitive de +la norme de Cork*, pages 107 to 118 in EuroTeX92, Proceedings of +the 7th European TeX Conference, Prague, Sept 1992, Ed. J. Zlatu\v +ska <zlatuska@cspuni12.bitnet>, ISBN 80-210-0480-0, Published in +book form, by Czechoslovak TeX Users Group, Matematick\'y \'ustav +UK, Sokolovsk\'a 83, CS 18600, Praha, Mailorders: 30 DM hardcover +and 25 DM soft cover, preprint possibly also posted on ftp +matups.matups.fr. + + --- B. Jackowski and M. Ry\'cko, *Polishing \TeX*, ibid. pages +119-134. + + + diff --git a/language/typingtex/Active8MacProse.dir/Test8LaTeXCsCM.tex b/language/typingtex/Active8MacProse.dir/Test8LaTeXCsCM.tex new file mode 100644 index 0000000000..3814ca1485 --- /dev/null +++ b/language/typingtex/Active8MacProse.dir/Test8LaTeXCsCM.tex @@ -0,0 +1,117 @@ + + %%%%% + %%%%% Test8LaTeXCsCM.tex + + %%% Les Problemes \uppercase de Daniel Taupin, Octobre 1992. + %% Test pour CaesarCM avec Active8TimesCsCM + %% disponibles par ftp sur matups.matups.fr + %% Laurent S 11-92 + %% + %%% Fichier ascii avec plusieurs charact`eres + %% ^^xy de code hexadecimal "XY suivant la norme de Cork 1991. + %% + %% Daniel Taupin (forum GUT octobre 1992) a demande un bon + %% comportement de\uppercase et \lowercase + %% quand on saisit en 8bits. + %% + %% Ce test presente une solutions pour CaesarCM. + %% Il y a des solutions analogues pour EuroOzTeX. + %% En plus, il exist des solutions tres differentes + %% (voir documentation pour Active8MacTimesCM.tex). + +\input Active8MacCM.tex %% BEFORE \documentstyle + + \documentstyle{book} + + \font\tenrm=dmr10\tenrm + \font\tensl=dmsl10 + + %\CaesarProtectLaTeX %% par default + \CaesarDeprotectLaTeX %% pour une typographie parfaite + + %% trois lignes pour supprimer un pepin dans mon LateX + %% --- pas necessaire pour le votre? + \catcode`\@=11 + \let\reset@font\relax + \catcode`\@=12 + + \begin{document} + + \ShowCaesar %% signale lettres > 127 sous CaesarCM + %\HideCaesar %% default + + %\ufcr %% aplanit certaines difficult'es + + \chapter*{Poincar\'e et Painlev^^8e} + %%\bf : inserrer avant Poincar\'e ? + + \section{Painlev^^8e sans Poincar\'e } + %%\bf : inserrer? + + + \newpage\null + \raggedright + \parindent=0pt\parskip=10pt + \newpage\null + \newpage\null + +{\noindent \bf Hyacc-CM et \verb|\uppercase|, + \protect\verb|\lowercase|.} +\addcontentsline{toc}{subsection}{HyAcc-CM} + + Pour HyAcc-CM, (disponible sur ftp matups.matups.fr) les +primitifs \verb|\uppercase|, \verb|\lowercase| se comportent +correctement, m^^90me pour une saisie en huit bits ^^88 +caract^^8fres actifs. Il va de m^^90me pour les macros +``fragilisantes'' de sectionnement de \LaTeX: +\verb|\chapter{...}| et ses confr^^8fres (pages 23 et 157 du +manuel \LaTeX). + +\newpage + +{\noindent \bf CaesarCM et \verb|\uppercase|, + \verb|\lowercase|.} +\addcontentsline{toc}{subsection}{CaesarCM} + + En revanche, pour CaesarCM certaines +irregularit^^8es ont du ^^90tre +aplanies en octobre 1992, ^^88 la suite +d'avertissements de Daniel Taupin. Surtout, il faut +remplacer \verb|\uppercase|, \verb|\lowercase| par +\verb|\Uppercase|, \verb|\Lowercase|. Pour faire cela +au mieux, une lecture de la documentation dans +Acive8TimesCsCM.tex est vivement recommand^^8ee. + + D'ailleurs, les constructions fragiles de \LaTeX\ +comme \verb|\chapter| (qui utilisent l'expansion +``formelle'' ^^88 la \verb|\edef| peuvent se bloquer sur des +caracteres accentu^^8es. Des dispositifs particuliers ^^88 +\LaTeX, log^^8es dor^^8enavant dans CaesarCM.tex, r^^8fglent +provisoirement ces probl^^8fmes dans l'attente de la +nouvelle version de \LaTeX\ qui devrait les r^^8esoudre +d^^8efinitivement. + +\verb|\Uppercase{Poincar\'e}| donne POINCAR\'E (avec Eaccute) +et \verb|\Lowercase| marche en sens inverse. Attention, ces +deux nouvelles commandes de CaesarCM sont fragiles, car elles +sont bas^^8es sur \verb|\edef|; donc leurs arguments +n'ont pas le droit de contenir des macros compliqu^^8es. +Ainsi \verb|\let\uppercase\Uppercase| serait dangereux +car \verb|\uppercase| est utilis\'e aveugl\'ement par \LaTeX. + + +\verb|\uppercase {\uppercase{Poincar\'e et Painlev^^8e}|\hfill\break +donne: \uppercase{Poincar\'e et Painlev^^8e}. + +\verb|\Uppercase{Poincar\'e et Painlev^^8e}|\hfill\break +donne: \Uppercase{Poincar\'e et Painlev^^8e}. + +\verb|\Lowercase{\Uppercase{P}OINCAR\'E ET \Uppercase{P}AINLEV^^83}|\hfill\break +donne: \Lowercase{\Uppercase{P}OINCAR\'E ET \Uppercase{P}AINLEV^^83}. + + +\tableofcontents + + \end{document}. + + diff --git a/language/typingtex/Active8MacProse.dir/Test8MacCM.tex b/language/typingtex/Active8MacProse.dir/Test8MacCM.tex new file mode 100644 index 0000000000..d740dad8cc --- /dev/null +++ b/language/typingtex/Active8MacProse.dir/Test8MacCM.tex @@ -0,0 +1,115 @@ +%%% Test8.tex + %% for 8-bit typing + \input caesarcm.tex %% if not previously loaded + \input gllmts.tex + %%%%%\input ULcase.tex + \input gllmts_a.sty + \input Active8MacCM.tex + +%% MAKE YOUR FONT CHOICE HERE! + %%% xTimes, tmr10, dmr10, cmr10 + %%% dc not allowed as not CM compatible + \font\ft=dmr10 + \ft%\ufcr + \catcode`\@=11 + %\showthe\FontCls@ + + %\skewchar\font=\CaesarClassTM \ufcr + % would force font class of CaesarCM used + + %\let\uppercase\relax + %\let\lowercase\relax +%%% Select meaning of \my... + %\let\myUppercase\Uppercase %%% + %\let\myLowercase\Lowercase %%% + \let\myUppercase\eUppercase %%% + \let\myLowercase\eLowercase %%% + + %\HideCaesar %% the default + %\ShowCaesar + + \def\HR{\medskip\hrule\medskip} + % + %% Various hyphenation tests + %\hyphenation{^^9fmagn^^e9tiq^^9fuemagn^^e9tique} + %\showhyphens{\ft ^^9fmagn^^e9tiq^^9fuemagn^^e9tique} + %\showhyphens{\ft ^^a4magn^^8etiquemagn^^8etique} + %\showhyphens{\ft ^^a4 magn^^8etiquemagn^^8etique} + %\showhyphens{\ft MAGN\'ETIQUE} + %\showhyphens{\ft ^^a4magn^^8etique} + + +The extended ascii:\medskip + + ^^cb^^cc^^cd^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^^8d^^8e%^^81 + + \myLowercase{^^cb^^cc^^cd^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^ +^8d^^8e} + + \myUppercase{^^cb^^cc^^cd^^80^^81^^82^^83^^84^^85^^86^^87^^88^^89^^8a^^8b^^8c^ +^8d^^8e} + + \HR + + ^^8f^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^^9f + + \myLowercase{^^8f^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^ +^9f} + + \myUppercase{^^8f^^90^^91^^92^^93^^94^^95^^96^^97^^98^^99^^9a^^9b^^9c^^9d^^9e^ +^9f} + + \HR + + ^^ce^^cf^^ae^^af^^be^^bf^^a7 + + \myLowercase{^^ce^^cf^^ae^^af^^be^^bf^^a7} + + \myUppercase{^^ce^^cf^^ae^^af^^be^^bf^^a7} + + \HR + + ^^d8^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef^^f1^^f2^^f3^^f4 + + \myLowercase{^^d8^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef^^f1^^f2^^f3^^f4} + + \myUppercase{^^d8^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef^^f1^^f2^^f3^^f4} + +\HR + + ^^d2^^d3^^d4^^d5^^a3^^a4^^c0^^c1^^c7^^c8^^a0^^e0^^e4^^a6 + + \myLowercase{^^d2^^d3^^d4^^d5^^a3^^a4^^c0^^c1^^c7^^c8^^a0^^e0^^e4^^a6} + + \myUppercase{^^d2^^d3^^d4^^d5^^a3^^a4^^c0^^c1^^c7^^c8^^a0^^e0^^e4^^a6} + +\bye + + +^^d2^^d3^^d4^^d5^^a3^^a4^^c0^^c1% +^^c7^^c8% +^^a0^^e0% +^^e4 +^^a6 + + \myLowercase{% +^^d2^^d3^^d4^^d5^^a3^^a4^^c0^^c1% +^^c7^^c8% +^^a0^^e0% +^^e4 +^^a6} + + \myUppercase{% +^^d2^^d3^^d4^^d5^^a3^^a4^^c0^^c1% +^^c7^^c8% +^^a0^^e0% +^^e4 +^^a6} + %\section@^^a4 +\end + +^^a7\myLowercase{^^a7} +\myUppercase{^^a7} +\myUppercase{\myLowercase{^^a7}} +\myLowercase{\myUppercase{^^a7}} +\end diff --git a/language/typingtex/Active8MacProse.dir/Textures16xMacEncoding.dir/fr8hyph.mac b/language/typingtex/Active8MacProse.dir/Textures16xMacEncoding.dir/fr8hyph.mac new file mode 100644 index 0000000000..9fd531387c --- /dev/null +++ b/language/typingtex/Active8MacProse.dir/Textures16xMacEncoding.dir/fr8hyph.mac @@ -0,0 +1,162 @@ + + %%% fr8hyph.mac + %% + %% Laurent Siebenmann, December 1993 + %% Master posting 1993-4: + %% ftp matups.matups.fr, directory TeX/TypingTeX.dir + %% This file is 7bit ascii. + %% This file is NOT autonomous, since it uses the + %% coding-independant hyphenation file + %% fr8hyph.src as source of the patterns. + %% + %% Sets up the universal 8bit French hyphenation patterns + %% of fr8hyph.src for use with (output) font systems + %% using the Mac font encoding in the range 128-255 + %% and the CM encoding in the range 0-127. + %% The only examples available in 1993 are the Textures + %% Adobe font series of Textures version 1.6x. + %% Characters of Mac the 128-255 range that appear in the + %% CM 0-127 range are omitted. + + %% HEALTH WARNING: This encoding is a curious new mixture. + %% There are alternatives offering + %% more fonts and more support, notably + %% the Cork-extended CM encoding (Cork encoding rather + %% than Mac in the range 128-255). And the full + %% Cork encoding. See "format-dumper" in versions -CM and -CK + %% The main advantage of this encoding over the alternatives + %% is its inclusion of various glyphs such as + %% daggerdbl paragraph cent Yen ... + + %% SIMPLEST USE (with Plain TeX). Put copies of plain.tex, + %% fr8hyph.mac and fr8hyph.src together in a Mac + %% directory. Rename fr8hyph.mac as hyphen.tex. + %% Compile plain.tex using the Textures virtex (initex) + %% and, when asked, type the command \dump. Save the + %% resulting format file in the directory "TeX formats". + %% If you quit and restart Textures (or use the "add format" + %% command) the new format will be available. + %% Under this format, the default hyphenation system will + %% be French and you can directly type eight-bit characters + %% (without inputing the file option.keys) --- provided you use + %% only the fonts of the Adobe series of Textures >=1.62. + + %% The grouping around the the body of the file + %% to follow assures that the net change induced + %% is to the hyphenation trie only. + %% (Neglecting a dozen or so abandoned hash table entries.) + + \begingroup + + \catcode`\<=0 + \catcode`\>=12 + \lccode`\'=`\' % + \def\set#1>#2{\edef\temp{\def\noexpand#1>{\string #2} + \catcode`#2=12\lccode`#2=`#2}\temp} + + + %%% Table setting up the Mac + %% encoding for French patterns + + %% <ag> for <a-grave> + \set<ag>^^88 %%^^e0 comment gives Cork encoding + %% <eg> is <e-grave> + \set<eg>^^8f %%^^e8 + + %% <ea> is <e-acute> + \set<ea>^^8e %%^^e9 + + %% <ax> is <a-circumflex> + \set<ax>^^89 %%^^e2 + %% <ex> is <e-circumflex> + \set<ex>^^90 %%^^ea + %% <ix> is <i-circumflex> + \set<ix>^^94 %%^^ee + %% <ox> is <o-circumflex> + \set<ox>^^99 %%^^f4 + %% <ux> is <u-circumflex> + \set<ux>^^9e %%^^fb + + %% <id> is <i-dieresis> + \set<id>^^95 %%^^ef + %% <od> is <o-dieresis> + \set<od>^^9a %%^^f6 + + %% <cc> is <u-cedilla> + \set<cc>^^8d %%^^e7 + + %% <oe> is <oe-ligature> + \set<oe>^^1b %%^^f7 NB. ^^1b is CM encoding + +%%% end of table + + + + \input fr8hyph.src + + \endgroup + + +\def\.#1#2.{\edef\temp{% + \global\lccode`#1=`#2 \global\uccode`#1=`#1 + \global\lccode`#2=`#2 \global\uccode`#2=`#1} + \temp} + + + %% Now the Mac uc and lc codes +\.^^e7^^87. +\.^^83^^8e. +\.^^ea^^92. +\.^^ee^^97. +\.^^f2^^9c. +\.^^cb^^88. +\.^^e9^^8f. +\.^^ed^^93. +\.^^f1^^98. +\.^^f4^^9d. +\.^^e5^^89. +\.^^e6^^90. +\.^^eb^^94. +\.^^ef^^99. +\.^^f3^^9e. +\.^^80^^8a. +\.^^e8^^91. +\.^^ec^^95. +\.^^85^^9a. +\.^^86^^9f. +\.^^d9^^d8. +\.^^cc^^8b. +\.^^84^^96. +\.^^cd^^9b. +\.^^81^^8c. +\.^^82^^8d. +\.^^ce^^cf. +\.^^1d^^1a.%%\AE\ae +\.^^1e^^1b.%%\OE\oe +\.^^1f^^1c.%%\O\o + + %\endinput %% comment out to enable test + +%%% Test for Textures 1.62 + + \font\ft=Times + \ft + + \showhyphens{\ft hberlu h\'eberlu\'e} + +\long\def\tst{\vskip5pt Test of French lc and uc pairs: +\par + Λ ε ι ζ θ + λ μ ο
σ \par + \OE\oe \AE\ae \O\o\ (These last refuse case change.) + \vskip5pt + } + + \let\e\expandafter + + \tst + \e\uppercase\e{\tst} + \e\lowercase\e{\tst } + +\end + diff --git a/language/typingtex/Active8MacProse.dir/Textures16xMacEncoding.dir/fr8hyph.src b/language/typingtex/Active8MacProse.dir/Textures16xMacEncoding.dir/fr8hyph.src new file mode 100644 index 0000000000..bbbc25306f --- /dev/null +++ b/language/typingtex/Active8MacProse.dir/Textures16xMacEncoding.dir/fr8hyph.src @@ -0,0 +1,1114 @@ + +% fr8hyph.src +% version june 2nd, 1992. (Daniel Flipo) +% Coding-independant version LS 6-92 +% NOT TO BE INPUT DIRECTLY +% SEE fr8hyph.ck or fr8hyph.mac for use. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% This is *NOT* an official GUTenberg distribution %% +%% but my personal updated version of the 8bits %% +%% french hyphenation patterns. (Daniel Flipo) %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Hyphenation patterns for French +% from Jacques D'esarm'enien: how to run TeX in a French environment: +% hyphenation, fonts, typography. Tugboat, 5 (1984) 91-102. +% Modifications by Michael Ferguson (Tugboat, 10, 1989) (mjf), +% Norman Buckle (nb) and Justin Bur (jbb). +% Following modifications by Daniel Flipo (df): +% March 20, 92: addition of some missing uppercase codes +% June 1, 92 : add missing JD patterns (see TSI vol 5 No 4 1986) +% and check consistency with FRHYPH.TEX for MLTeX (Gould, Rennes) +% Patterns present in FRHYPH.TEX and not in original JD file are +% marked as `JD+'. + % + % Coding independant version LS 6-92 + % as requested by Michael Ferguson in his presentation + % of the Cork norm Tugboat 11 (Nov. 1990) pages 514--6. + % <ag> is <a-grave> + % <ax> is <a-circumflex> + % <eg> is <e-grave> + % <ea> is <e-acute> + % <ex> is <e-circumflex> + % <ix> is <i-circumflex> + % <id> is <i-dieresis> + % <ox> is <o-circumflex> + % <od> is <o-dieresis> + % <ux> is <u-circumflex> + % <cc> is <u-cedilla> + % <oe> is <oe-ligature> + % for example by + % + %% Here are the substitutions that were used + %% to derive this table from Flipo's Cork norm table + % Change "^^e0" to "<ag>" "a" + % Change "^^e8" to "<eg>" "a" + % + % Change "^^e9" to "<ea>" "a" + % + % Change "^^e2" to "<ax>" "a" + % Change "^^ea" to "<ex>" "a" + % Change "^^ee" to "<ix>" "a" + % Change "^^f4" to "<ox>" "a" + % Change "^^fb" to "<ux>" "a" + % + % Change "^^ef" to "<id>" "a" + % Change "^^f6" to "<od>" "a" + % + % Change "^^e7" to "<cc>" "a" + % + % Change "^^f7" to "<oe>" "a" + % + + \message{fr8hyph.tex french hyphenation patterns + of jun 2nd, 1992} + + +\patterns{ +%front mjf patterns deleted and replaced by orininal JD patterns, +%see at the end of phonetic patterns (df jun92). +% Phonetic patterns +1ba +1b<ax> +1be +1b<ea> +1b<eg> +1b<ex> +1bi +1b<ix> % mjf jun88 +1bo +1b<ox> +1bu +1b<ux> +1by +4be. % JD+ (df jun92) +4bes. +1b2l +4ble. +4bles. +1b2r +4bre. +4bres. +1ca +1<cc>a % df jun92 (c-cedilla) +1c<ax> +1ce +1c<ea> +1c<eg> +1c<ex> +1ci +1c<ix> % mjf jun88 +1co +1<cc>o % df jun92 (c-cedilla) +1c<ox> % df jun92 +%1ct % df jan92 +1cu +1<cc>u % df jun92 (c-cedilla) +1c<ux> +1cy +1c<oe> % mjf jun88 +4ce. % JD+ (df jun92) +4ces. +1c2h +4che. +4ches. +2chb +2chg +2chm +2chn +2chp +2chs +2cht +2chw % (instead of 2chv) df jun92 +.ch4 +4ch. % JD+ (df jun92) +ch2l +4chle. +4chles. +ch2r +4chre. +4chres. +% ck patterns missing (df jun92) +1c2k % JD+ +4cke. % JD+ +4ckes. % JD+ +4ck. % JD+ +2ckb % JD+ +2ckf % JD+ +2ckg % JD+ +2ck3h % JD+ c2k3h in JD's file +2ckp % JD+ +2cks % JD+ +2ckt % JD+ +1c2l +4cle. +4cles. +1c2r +4cre. +4cres. +1<cc> +1da +1d<ax> +1de +1d<ea> +1d<eg> +1d<ex> +1di +1d<ix> % mjf jun88 +1do +1d<ox> +1du +1d<ux> +1dy +4de. % JD+ (df jun92) +4des. +d1d2h +1d2r +4dre. +4dres. +1fa +1f<ax> +1fe +1f<ea> +1f<eg> +1f<ex> +1fi +1f<ix> % mjf jun88 +1fo +1f<ox> +1fu +1f<ux> +1fy +4fe. % JD+ (df jun92) +4fes. +1f2l +4fle. +4fles. +1f2r +4fre. +4fres. +1ga +1g<ax> +1ge +1g<ea> +1g<eg> +1g<ex> +1gi +1g<ix> % mjf jun88 +1go +1g<ox> +1gu +1g<ux> +1gy +4ge. % JD+ (df jun92) +4ges. +4gue. +4gues. +1g2ha +1g2he +1g2hi +1g2ho +1g2hy +1g2l +4gle. +4gles. +1g2n +.sta2g3n % df jun92 +wa2g3n % df jun92 +4gne. +4gnes. +1g2r +4gre. +4gres. +1ha +1h<ax> +1he +1h<ea> +1h<eg> +1h<ex> +1hi +1h<ix> % mjf jun88 +1ho +1h<ox> +1hu +1h<ux> +1hy +4he. % JD+ (df jun92) +4hes. +1j +2jk +4je. % JD+ (df jun92) +4jes. +1ka +1k<ax> +1ke +1k<ea> +1k<eg> +1k<ex> +1ki +1k<ix> % mjf jun88 +1ko +1k<ox> +1ku +1k<ux> +1ky +4ke. % JD+ (df jun92) +4kes. +1k2h +%c2k3h % (df jun92) replaced by 2ck3h as on Gould +4kh. % JD+ (df jun92) +.kh4 +1k2r +1la +1l<ax> +1l<ag> % (instead of 1l<O">) df jun92 +1le +.seu2le % jbb (df jun92) +1l<ea> +1l<eg> +1l<ex> +1li +1l<ix> % mjf jun88 +1lo +1l<ox> +1lu +1l<ux> +1ly +4le. % JD+ (df jun92) +4les. +% following patterns missing (df jun92) +il2l +l3lion +cil3l +ucil4l +rcil4l +vacil4l +gil3l +hil3l +lil3l +mil3l +<ea>mil4l +rmil4l +armil5l +mil4let +semil4l +vanil3lin +vanil3lis +capil3l +papil3la +papil3le +papil3li +papil3lom +pupil3l +cyril3l +ibril3l +piril3l +thril3l +pusil3l +boutil3l +distil3l +fritil3l +instil3l +.stil3l +vil3l +avil4l +uvil4l +uevil4l +chevil4l +xil3l +% end of missing +1ma +1m<ax> +1me +1m<ea> +1m<eg> +1m<ex> +1mi +1m<ix> % mjf jun88 +1mo +1m<ox> +1mu +1m<ux> +1my +1m<oe> % mjf jun88 +4me. % JD+ (df jun92) +4mes. +1na +1n<ax> +1ne +1n<ea> +1n<eg> +1n<ex> +1ni +1n<ix> % mjf jun88 +1no +1n<ox> +1nu +1n<ux> +1ny +n1x % JD+ (df jun92) +1n<oe> % mjf jun88 % JD+ (df jun92) +4ne. % JD+ (df jun92) +4nes. +1pa +1p<ax> +1pe +1p<ea> +1p<eg> +1p<ex> +1pi +1p<ix> % mjf jun88 +1po +1p<ox> +1pu +1p<ux> +1py +4pe. % JD+ (df jun92) +4pes. +4ph. % JD+ (df jun92) +1p2h +4phe. +4phes. +ph2l % JD+ (df jun92) +4phle. % JD+ (df jun92) +4phles. % JD+ (df jun92) +2phn +ph2r +4phre. +4phres. +2phs +2pht +.ph4 +1p2l +4ple. +4ples. +1p2r +4pre. +4pres. +1q +4que. +4ques. +1ra +1r<ax> +1re +1r<ea> +1r<eg> +1r<ex> +1ri +1r<ix> % mjf jun88 +1ro +1r<ox> +1ru +1r<ux> +1ry +4re. % JD+ (df jun92) +4res. +1r2h +4rhe. +4rhes. +1sa +1s<ax> +1se +1s<ea> +1s<eg> +1s<ex> +1si +1s<ix> % mjf jun88 +1so +1s<ox> +1su +1s<ux> +1sy +1s<oe> % mjf jun88 +4se. % JD+ (df jun92) +4ses. +1s2ch +4sch. +2schs +4sche. +4sches. +.sch4 +.sh4 +4sh. % JD+ (df jun92) +1s2h +2shm +2shr +2shs +4she. +4shes. +1ta +1t<ax> +1t<ag> % (instead of 1tO") df jun92 +1te +1t<ea> +1t<eg> +1t<ex> +1ti +1t<ix> % mjf jun88 +1to +1t<ox> +1tu +1t<ux> +1ty +4te. % JD+ (df jun92) +4tes. +1t2h +4th. +.th4 +4the. +4thes. +th2l % (2thl in JD'original file) (df june92) +2thm +2thn +th2r +4thre. % JD+ (df jun92) +4thres. % JD+ (df jun92) +2ths +1t2r +4tre. +4tres. +1va +1v<ax> +1ve +1v<ea> +1v<eg> +1v<ex> +1vi +1v<ix> % mjf jun88 +1vo +1v<ox> +1vu +1v<ux> +1vy +4ve. % JD+ (df jun92) +4ves. +1v2r +4vre. +4vres. +1wa +1we +1wi +1wo +1wu +4we. % JD+ (df jun92) +4wes. +1w2r +1za +1ze +1z<ea> +1z<eg> +1zi +1zo +1zu +1zy +4ze. % JD+ (df jun92) +4zes. +% following patterns missing (df jun92) +'a4 +'<ax>4 +'e4 +'<ea>4 +'<eg>4 +'<ex>4 +'i4 +'<ix>4 +'o4 +'<ox>4 +%'\"o2 % mjf what for??? df jun92 +'u4 +'<ux>4 +'y4 +2'2 +id' +% end of missing patterns +% Note: in FRHYPH following patterns are added, why? (\lefthyphenmin=2) +% .a4 .<ax>4 .e4 .<ea>4 .<eg>4 .<ex>4 .i4 .<ix>4 .o4 .<ox>4 .u4 .<ux>4 .y4 +d1s2 +f1s2 +g1s2 +tung2s3 % JD+ (df jun92) +l1s2t +m1s2 +e2s3ch +i2s3ch<ea> +i2s3chia +i2s3chio +% Etymological patterns +1alcool +i1algi +a2l1algi % JD+ (df jun92) +y1algi % JD+ (df jun92) +1a2nesth<ea>si +i1arthr +y1asth % JD+ (df jun92) +a1<eg>2dre +i1<eg>2dre +o1<eg>2dre % JD+ (df jun92) +1<ea>2drie % JD+ (df jun92) +1<ea>2drique +1<ea>2lectr +1<ea>2l<ea>ment +1<ea>2nerg +o1d2l % JD+ (df jun92) +2t3heur +2r3heur +3d2hal % JD+ (df jun92) +3d2houd +2s3hom +2r3hydr +1informat % df jun92 +o1ioni +1m2n<eg>s % JD+ (df jun92) +1m2n<ea>si +1m2n<ea>mo +mon2t3r<ea>al % df jun92 +1octet % df jun92 +i1oxy +io1a2ct % JD+ (df jun92) +3ph2tal<ea> +3ph2tis +1p2neu +1p2n<ea> +1p2sych +1p2t<eg>r +1p2t<ea>r +1s2caph +1s2cl<ea>r +1s2cop +e2s3cop +<ea>pi2s3cop +<ea>pi3s4cope +di2s3co % instead of di2s3cop (dis-convenance, dis-courir...) (df jun92) +1s2lav +1s2lov +1s2patia +1s2perm +1s2por +1s2ph<eg>r +1s2ph<ea>r +1s2piel +1s2piros +1s2tandard +o1s2tas +eu1s2tat % JD+ (df jun92) +o1s2tat +pro2s3tat +i1s2tat +1s2tein +o1s2t<ea>ro +1s2tigm +o1s2tim +1s2tock +1s2tomos +o1s2tom +y1s2tom % JD+ (df jun92) +o1s2trad +o1s2tratu +o1s2triction +1s2troph +a2s3tro +apo2s3tr +u2s3tr +1s2tructu +1s2tyle +t1t2l % JD+ (df jun92) +.ab3r<ea>a % JD+ (df jun92) +.ae3s4ch % JD+ (df jun92) +.amino1a2c % JD+ (df jun92) +.ana3s4tr % JD+ (df jun92) +.anti1a2 +.anti1e2 +.anti2enne +.anti1<ea>2 +.anti1s2 +.apo2s3ta % JD+ (df jun92) +.as2ta % JD+ (df jun92) +% following patterns missing (df jun92) +'ab3r<ea>a +'ae3s4ch +'amino1a2c +'ana3s4tr +'anti1a2 +'anti1e2 +'anti2enne +'anti1<ea>2 +'anti1s2 +'apo2s3ta +'as2ta +% end of missing patterns +.bi1a2c +.bi1au +.bio1a2 +.bi1u2 +.bi2s1a2 +chlo2r3a2c % JD+ (df jun92) +chlo2r3<ea>2t % JD+ (df jun92) +.ci2s1alp +co1acc +co1acq +co1a2d +co1ap +co1ar +co1assoc +co1assur +co1au +co1ax +co1ef % JD+ (df jun92) +co1en +co1ex +co1<ea>2 +.con4 % df mar92 +.cons4 % df mar92 +.contre1s2c % JD+ (df jun92) +co2nurb % (instead of co2n1urb) df jun92 +.co1o2 % (instead of colo2) df mai92 +.co2o3lie +.cul4 % df jan92 +.dacryo1a2 % JD+ (df jun92) +.d<ea>1a2 +.d<ea>1io +.d<ea>1o2 +% Following patterns are not original JD's, who changed them? why? +.d<ea>2s1a2 +.d<ea>3s2a3cr +.d<ea>3s2astr +.d<ea>3s2a3tell +.d<ea>2s1<ea>2 +.d<ea>3s2<ea>3gr +.d<ea>2s1e2 +.d<ea>3s2ensib +.d<ea>3s2ert +.d<ea>3s2exu +.d<ea>2s3h +.d<ea>2s1i2 +.d<ea>3s2i3d +.d<ea>3s2i3gn +.d<ea>3s2i3li +.d<ea>3s2i3nen% instead of .d<ea>3s2i3non (df jun92) +.d<ea>3s2invo +.d<ea>3s2i3r +.d<ea>3s2ist +.d<ea>2s1o2 +.d<ea>3s2o3d<ea> +.d<ea>3s2o3l +.d<ea>3s2o3pil +.d<ea>3s2orm +.d<ea>3s2orp +.d<ea>3s2oufr +.d<ea>2s1<oe> % mjf jun88 +.d<ea>1s2c +.d<ea>1s2p +.d<ea>1s2t +.d<ea>2s1u2n +% end of modifications +.di1a2c<ea> +.di1a2cid +dia2g3n +.di1ald +.di1a2mi +.di1a2tom % .di1a2tomi in JD's file df jun92 +.di1e2n +.di2s3h +.dy2s1a2 +.dy2s1i2 +.dy2s1o2 % df jun92 +.dy2s1u2 +.dy2s3 +.en1a2 +'en1a2 % df jun92 +en1i2vr +.en1o2 +'en1o2 % df jun92 +.eu2r1a2 +'eu2r1a2 % df jun92 +extra1 +extra2c % JD+ (df jun92) +extra2i % JD+ (df jun92) +h<ea>mi1<ea> +h<ea>mo1p2t +hypera2 +hyper<ea>2 +hypere2 % df june 92 +hyper<oe>2 % JD+ (df jun92) +hyperi2 +hypero2 +hypers2 +hyperu2 +hype4r1 +hypo1a2 +hypo1<ea>2 +hypo1e2 % df jun92 +hypo1i2 +hypo1o2 +hypo1u2 +hypo1s2 +.in1a2 +.in2a3nit +.in2augur +.in1<ea>2 +.in2<ea>3lucta % e -> <ea> df jun92 +.in2<ea>3narra +.in1e2 +.in2effab % df jun92 +.in2ept +.in2er +.in2exora % df jun92 +.in1i2 +.in2i3miti +.in2i3q +.in2i3t +.in1o2 +.in2o3cul +.in2ond +.in1s2tab +.in1u2 +.in2uit +.in2u3l +% same patterns with ' missing (df jun92) +'in1a2 +'in2a3nit +'in2augur +'in1<ea>2 +'in2<ea>3lucta +'in2<ea>3narra +'in1e2 +'in2effab +'in2ept +'in2er +'in2exora +'in1i2 +'in2i3miti +'in2i3q +'in2i3t +'in1o2 +'in2o3cul +'in2ond +'in1s2tab +'in1u2 +'in2uit +'in2u3l +.intera2 +.inter<ea>2 +.intere2 +.interi2 +.intero2 +.interu2 +.inters2 +.inte4r3 +% same patterns with ' missing (df jun92) +'intera2 +'inter<ea>2 +'intere2 +'interi2 +'intero2 +'interu2 +'inters2 +'inte4r3 +la2w3re % df jun92 +.ma2c3k % JD+ (df jun92) +.macro1s2c % JD+ (df jun92) +.ma2l1a2dres +.ma2l1a2dro +.ma2l1ais<ea> +.ma2l1ap +.ma2l1a2v +.ma2l1en +.ma2l1int +.ma2l1oc +.ma2l1o2d +.ma2r1x % JD+ (df jun92) +.m<ea>2g1oh +.m<ea>2sa % df jun92 +.m<ea>3san % df jun92 +.m<ea>2s1es % .m<ea>2ses in JD's file (df jun92) +.m<ea>2s1i % .m<ea>2si in JD's file (df jun92) +.m<ea>2s1u2s % .m<ea>2sus in JD's file (df jun92) +.m<ea>ta1s2ta +.milli1am % JD+ (df jun92) +.mono1a2 +.mono1<ea>2 +.mono1e2 +.mono1i2 +.mono1<id>2d<ea> % JD+ (df jun92) +.mono1o2 % momo -> mono df jun92 +.mono1u2 +.mono1s2 +.no2n1obs +n3s2at. % JD+ (df jun92) +n3s2ats. % JD+ (df jun92) +o2b3long % JD+ (df jun92) +ombud2s3 % JD+ (df jun92) +omni1s2 +.oua1ou % JD+ (df jun92) +'oua1ou % df jun92 +.ovi1s2c % JD+ (df jun92) +'ovi1s2c % df jun92 +oxy1a2 +pal<ea>o1<ea>2 +.pa2n1a2f +.pa2n1a2m<ea> +.pa2n1a2ra +.pa2n1is +.pa2n1o2ph +.pa2n1opt +.para1s2 +.pa2r1a2che +.pa2r1a2ch<eg> +.pa2r3h<ea> +.per1a2 +.per1<ea>2 +.per1e2 +.per1i2 +.per1o2 +.per1u2 +per3h +.pe4r +p<ea>2n1ul +p<ea>2r1<ea>2q % JD+ (df jun92) +.p<ea>ri1os +.p<ea>ri1s2 +.p<ea>ri2s3s +.p<ea>ri2s3ta +.p<ea>ri1u2 +.phalan3s2t % JD+ (df jun92) +photo1s2 +.phyto3ph2 % JD+ (df jun92) +.pluri1a % JD+ (df jun92) +poly1a2 +poly1<ea>2 +poly1<eg>2 +poly1e2 +poly1i2 +poly1o2 +poly1u2 +poly1s2 +.pos2t3h % instead of .pos2t3hy (df jun92) +.pos2t1in % JD+ (df jun92) +.pos2t1o2 +.pos2t3r +.post1s2 +.pr<ea>1a2 +.pr<ea>2a3la % df jun92 +.pr<ea>2au +.pr<ea>1<ea>2 +.pr<ea>1e2 +.pr<ea>1i2 +.pr<ea>1o2 +.pr<ea>1u2 +.pr<ea>1s2 +.pro1<ea>2 +.prou3d2h % JD+ (df jun92) +.pro1s2c<ea> +.psycho1a2n % JD+ (df jun92) +.pud1d2l % JD+ (df jun92) +radio1a2 % df jun92 +.re1s2 +.re2s3cap +.re2s3cisi % df jun92 +.re2s3ciso % df jun92 +.re2s3cou +.re2s3cri +.re2s3pect +.re2s3pir +.re2s3plend +.re2s3pons +.re2s3quil +.re2s3s +.re2s3t +.re3s4tab +.re3s4tag +.re3s4tand +.re3s4tat +.re3s4t<ea>n +.re3s4t<ea>r +.re3s4tim +.re3s4tip +.re3s4toc +.re3s4top +.re3s4tr +.re4s5trein +.re4s5trict +.re4s5trin +.re3s4tu +.re3s4ty +.r<ea>1a2 +.r<ea>2a3le +.r<ea>2a3lis +.r<ea>2a3lit +.r<ea>2aux +.r<ea>1<ea>2 +.r<ea>1e2 +.r<ea>2el +.r<ea>2er % JD+ (df jun92) +.r<ea>2<eg>r +.r<ea>1i2 +.r<ea>2i3fi +.r<ea>1o2 +.r<ea>1u2 +.r<ea>2uss +.r<ea>tro1a2 +sesqui1a2 +st<ea>r<ea>o1s2 +.su2b1a2 +.su3b2alt +.su2b1<ea>2 +.su3b2<ea>3r +.su2b1in % JD+ (df jun92) +.su2b3limin +.su2b3lin +.su2b3lu +sub1s2 +.su2b1ur +supero2 +supers2 +supe4r1 +.su2r1a2 +su3r2ah +.su3r2a3t +.su2r1e2 +.su3r2eau +.su3r2ell % instead of .su3r2e1l (df jun92) +.su3r2et +.su2r1<ea>2 +.su2r3h +.su2r1i2m +.su2r1inf +.su2r1int +.su2r1of +.su2r1ox +tachy1a2 % JD+ (df jun92) +tchin3t2 % JD+ (df jun92) +t<ea>l<ea>1e2 +t<ea>l<ea>1i2 +t<ea>l<ea>1o2b +t<ea>l<ea>1o2p +t<ea>l<ea>1s2 +thermo1s2 +tran2s1a2 +tran3s2act % should be tran2s3act ? (trans-action) +tran3s2ats +tran2s3h +tran2s1o2 +tran2s3p +tran2s1u2 +.tri1a2c +.tri1a2n +.tri1a2t +.tri1o2n % JD+ (df jun92) +archi1<ea>2pis +moye2n1<ax>2g +po1astre +uni1o2v % JD+ (df jun92) +uni1a2x % JD+ (df jun92) +v<ea>lo1s2ki +vol2t1amp +% last patterns put back in alphabetical order (df jun92) +} + +\endinput + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Chers coll\`egues, + + J'ai compar\'e les 3 fichiers suivants : + - FRHYPHEN pour MLTeX du Gould de Rennes, (GR) + - La liste de motifs de J. D\'esarm\'enien parue dans TSI, (JD) + - le fichier FR8HYPHEN de Yannis, (YH) +et je voudrais vous faire part des diff\'erences que j'ai observ\'ees et +des questions que je me pose. + + D'apr\`es Bernard, la r\'ef\'erence \`a prendre est le Gould, je comparerai +donc les 2 autres \`a cette r\'ef\'erence. + + 1) Le motif `th2l' figure \`a Rennes contre `2thl' chez JD, lequel est le +bon ? Pour ma part je ne sais pas comment il faut couper athl\'etisme, +triathlon ou biathl\`ete. Avec le motif `th2l' (Rennes) j'obtiens : +pen-ta-thlon mais tri-athlon, est-ce correct ? + + 2) M\^eme probl\`eme avec `2ck3h' \`a Rennes contre `c2k3h' chez JD... + + 3) Que vient faire le motif '\"o2 ajout\'e par mjf (ligne 471 du fichier GR) ? +Existe-t-il des mots fran\c cais commen\c cant par `o-tr\'ema' ? Ce motif est +absent des 2 autres fichiers. + + 4) Quelle est l'utilit\'e des motifs (lignes 448--460) +.a4 .\^a4 .e4 .\^e4 .\'e4 .\`e4 .i4 .\^\i4 .o4 .\^o4 .u4 .\^u4 .y4 ? +En fran\c cais \lefthyphenmin=2, il me semble donc inutile d'interdire +les c\'esures ci-dessus, en revanche les m\^emes motifs avec apostrophe +s'imposent ('a4 '\^a4 ... 'y4). + + 5) Dans le m\^eme ordre d'id\'ee, `on' a rajout\'e \`a Rennes un tas de motifs +de 2 lettres en fin de mot qui ne figuraient pas chez JD : +4be. 4ce. 4ch. 4ck. 4de. 4fe. 4ge. 4he. etc. +Ils ne servent \`a rien tant qu'on impose \righthyphenmin=3. +Faut-il les maintenir quand m\^eme ? + + 6) Les motifs suivants pr\'esents chez JD sont absents \`a Rennes : + - .re2s3cisi + - .re2s3ciso +(ils sont pr\'ec\'ed\'es d'un %) ne faut-il pas les remettre ? + + 7) Les motifs de JD concernant les d\'ebuts de mots en .d\'es (lignes 617--647) +ont \'et\'e assez profond\'ement retouch\'es sur la version de Rennes. +Est-ce par Norman Buckle ? Ces modifications ont-elles \'et\'e test\'ees ? + +Une chose me trouble : JD affirme dans TSI que ses motifs donnent +d\'esami-don-ner, or dans cet exemple s'appliquent les motifs `.d\'e2s' +et `1mi', je ne vois pas pourquoi la coupure entre le `a' et le `m' +serait emp\^ech\'ee... En revanche on a sur le Gould le motif `.d\'e2s1a2' +qui emp\^eche la coupure entre le `a' et le `m' mais pourquoi avoir mis +un `1' entre le `s' et le `a' alors qu'on ne veut s\^urement pas d\'es-ami ? + +Autre question : le Larousse des difficult\'es de la langue fran\c caise donne +pour bonne la division `d\'esa-bu-ser', pourquoi alors faut-il refuser +`d\'esa-mi-don-ner' ? + + 8) Pb de dis-convenance, dis-continuit\'e, dis-cours (cf. question de Bernard) : +je propose de changer `di2s3cop' (ligne 532) en `di2s3co', je ne connais +'ailleurs pas de mot en 'discop'. J'ai test\'e, \c ca marche \`a mon avis : j'obtiens +dis-con-ve-nance dis-con-ti-nuit\'e dis-co-bole dis-co-gra-phie +dis-con-ve-nir dis-co-phile dis-cor-dant dis-cou-rir dis-cour-tois. +Y a-t-il des objections ? + + 9) Ne faudrait-il pas ajouter des motifs pour le c-cedille ? +Je propose : `1\c ca' `1\c co' `1\c cu' si \c ca passe en MLTeX (?), +et en version 8-bits (fontes EC) : `1<cc>a' `1<cc>o' `1<cc>u' +(ex. : commen\c cant commer\c cant fa\c con ma\c connerie ger\c cure). + + 10) En essayant les mots dont la division est donn\'ee dans le Lexique +des r\`egles typographiques ou le Larousse des difficult\'es, +j'ai obtenu trois coupures apparemment incorrectes : + + ** tran-sac-tion au lieu de trans-ac-tion (selon le Lexique) +le motif `tran3s2act' pr\'esent \`a Rennes et chez JD est responsable, +`tran2s3act' me semble plus conforme \`a l'\'ethymologie. + + ** caout-chouc au lieu de caou-tchouc (selon le Lexique) +faut-il ajouter `caou3t2chou' ? + + ** post-hume au lieu de pos-thume (selon le Larousse) +l\`a c'est le motif `.pos2t3h' pr\'esent \`a Rennes et chez JD qui est responsable, +faut-il le changer ? Le Larousse affirme que dans ce cas c'est la coupure +phon\'etique qui s'impose, \c ca peut se discuter... +Qu'en pensent les sp\'ecialistes ? Question finale (fondamentale) : +existe-t-il un ouvrage de r\'ef\'erence qui tranche tous ces cas litigieux ? + +================================================================= + Je signale pour terminer qq lacunes (graves) du fichier 8-bits +de Yannis (outre les doubles points...) : + - il manque tous les motifs phon\'etiques concernant les mots en `ill' +(lignes 222--260 dans le fichier de Rennes) ; +Il n'est pas le seul \`a faire cet oubli puisque le fichier FEhyphen.tex +diffus\'e avec le format FEPlain par le labo de typographie de Strasbourg +(proche de JD ?) fait la m\^eme chose ! + - il manque tous les motifs concernant les mots en `ck' (lignes 75--85 sur +le Gould) ; + - il manque de tr\`es nombreux motifs commen\c cant par une apostrophe ; + - plus qq fautes de frappes et omissions diverses... + + J'ai compl\'et\'e et corrig\'e le fichier 8-bits de Yannis en prenant pour +mod\`ele celui de Rennes. Il s'agit pour l'instant d'une version d'essai +annot\'ee en ce qui concerne les ajouts, corrections et pbs en suspens. Si \c +ca int\'eresse quelqu'un il suffit de me la demander. + +Bien cordialement, +Daniel Flipo. |