Now I have gotten the basic catcode 13 approach to work. Included is a
patch to texinfo.tex, and an ISO-8859-1.def file. I use the same
definitions as latex/misc/isolatin1.sty, except that I stripped some extra
trickery with symbols like @acute@A@acute@ which I didn't understand.
Regards,
/Niels
--- texinfo.tex-original Fri Jun 30 20:28:15 2000
+++ texinfo.tex Tue Aug 8 22:03:24 2000
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{1999-09-25.10}
+\def\texinfoversion{2000-08-08.22}
%
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
% Free Software Foundation, Inc.
@@ -5676,9 +5676,43 @@
should work if nowhere else does.}
-% @documentencoding should change something in TeX eventually, most
-% likely, but for now just recognize it.
-\let\documentencoding = \comment
+% @documentencoding
+%
+% Support for charactersets that are supersets of ascii.
+%
+% The included .def files contain \global\catcode and \gdef commands
+% making all non-ascii characters special, analogous to
+% latex/misc/isolatin1.sty. This won't quite make the right thing
+% for hyphenation, but I haven't been able to figure out how to do it
+% right.
+%
+% It would also be preferable to have the .def files use some special
+% macro, defined here, instead of using \catcode etc directly. That
+% way, the mechanism could be changed by editing a single macro
+% definition here, without touching the .def files.
+%
+% [EMAIL PROTECTED], August 2000
+
+\def\documentencoding{\parsearg\dodocumentencoding}
+
+\def\dodocumentencoding#1{%
+ \tex % read *.def file in plain TeX.
+ % Read the file if it exists.
+ \openin 1 #1.def
+ \ifeof1
+ \errhelp = \noencodinghelp
+ \errmessage{Cannot read charset definition file #1.def}%
+ \let\temp = \relax
+ \else
+ \def\temp{\input #1.def }%
+ \fi
+ \temp
+ \endgroup
+}
+\newhelp\noencodinghelp{The given encoding definition file cannot be found or
+is empty. Maybe you need to install it? In the current directory
+should work if nowhere else does.}
+
% Page size parameters.
----- ISO-8859-1.def -----8<------
% Based on latex/misc/isolatin1.sty, in turn based on iso1ibm.tex
\global\catcode160=13 \gdef^^a0{{\bf?}} % 160 '240, "a0
\global\catcode161=13 \gdef^^a1{!`} % 161 '241, "a1
\global\catcode162=13 \gdef^^a2{{\bf?}} % 162 '242, "a2
\global\catcode163=13 \gdef^^a3{\pounds{}} % 163 '243, "a3
\global\catcode164=13 \gdef^^a4{{\bf?}} % 164 '244, "a4
\global\catcode165=13 \gdef^^a5{{\bf?}} % 165 '245, "a5
\global\catcode166=13 \gdef^^a6{$\vert$} % 166 '246, "a6
\global\catcode167=13 \gdef^^a7{\S{}} % 167 '247, "a7 \S{} ISO-1,
\global\catcode168=13 \gdef^^a8{\"{ }} % 168 '250, "a8
\global\catcode169=13 \gdef^^a9{\copyright{}}% 169, '251, "a9
\global\catcode170=13 \gdef^^aa{{\bf?}} % 170 '252, "aa
% \global\catcode171=13 % 171 '253, "ab
\global\catcode172=13 \gdef^^ac{{\bf?}} % 172 '254, "ac
\global\catcode173=13 \gdef^^ad{{\bf?}} % 173 '255 "ad
\global\catcode174=13 \gdef^^ae{{\bf?}} % 174 '256, "ae
\global\catcode175=13 \gdef^^af{{\bf?}} % 175 '257, "af
\global\catcode176=13 \gdef^^b0{{\bf?}} % 176 '260, "b0 ?? \No
\global\catcode177=13 \gdef^^b1{$\pm$} % 177 '261, "b1 ISO-1 plus-minus
\global\catcode178=13 \gdef^^b2{${}^2$} % 178, '262, "b2
\global\catcode179=13 \gdef^^b3{${}^3$} % 179, '263, "b3
\global\catcode180=13 \gdef^^b4{\'{ }} % 180, '264, "b4
\global\catcode181=13 \gdef^^b5{{\bf?}} % 181, '265, "b5
\global\catcode182=13 \gdef^^b6{\P{}} % 182, '266, "b6
\global\catcode183=13 \gdef^^b7{$\cdot$} % 183, '267, "b7
\global\catcode184=13 \gdef^^b8{\c{ }} % 184, '270, "b8
\global\catcode185=13 \gdef^^b9{${}^1$} % 185, '271, "b9
\global\catcode186=13 \gdef^^ba{{\bf?}} % 186, '272, "ba
% \global\catcode187=13 % 187, '273, "bb
\global\catcode188=13 \gdef^^bc{$\frac 1 4$} % 188, '274, "bc
\global\catcode189=13 \gdef^^bd{$\frac 1 2$} % 189, '275, "bd
\global\catcode190=13 \gdef^^be{$\frac 3 4$} % 190, '276, "be
\global\catcode191=13 \gdef^^bf{?`} % 191, '277, "bf
\global\catcode192=13 \gdef^^c0{\`A} % 192, '300, "c0
\global\catcode193=13 \gdef^^c1{\'A} % 193, '301, "c1
\global\catcode194=13 \gdef^^c2{\^A} % 194, '302, "c2
\global\catcode195=13 \gdef^^c3{\~A} % 195, '303, "c3
\global\catcode196=13 \gdef^^c4{\"A} % 196, '304, "c4
\global\catcode197=13 \gdef^^c5{\AA{}} % 197, '305, "c5
\global\catcode198=13 \gdef^^c6{\AE{}} % 198, '306, "c6
\global\catcode199=13 \gdef^^c7{\c{C}} % 199, '307, "c7
\global\catcode200=13 \gdef^^c8{\`E} % 200, '310, "c8
\global\catcode201=13 \gdef^^c9{\'E} % 201, '311, "c9
\global\catcode202=13 \gdef^^ca{\^E} % 202, '312, "ca
\global\catcode203=13 \gdef^^cb{{\"E}} % 203, '313, "cb
\global\catcode204=13 \gdef^^cc{\`I} % 204, '314, "cc
\global\catcode205=13 \gdef^^cd{\'I} % 205, '315, "cd
\global\catcode206=13 \gdef^^ce{\^I} % 206, '316, "ce
\global\catcode207=13 \gdef^^cf{{\"I}} % 207, '317, "cf
\global\catcode208=13 \gdef^^d0{\rlap{\raise0.3ex\hbox{--}}D} % 208, '320, "d0
% \global\catcode209=13 \gdef^^d1{�} % 209, '321, "d1
\global\catcode210=13 \gdef^^d2{\`O} % 210, '322, "d2
\global\catcode211=13 \gdef^^d3{\'O} % 211, '323, "d3
\global\catcode212=13 \gdef^^d4{\^O} % 212, '324, "d4
\global\catcode213=13 \gdef^^d5{\~O} % 213, '325, "d5
\global\catcode214=13 \gdef^^d6{\"O} % 214, '326, "d6
\global\catcode215=13 \gdef^^d7{$\times$}% 215, '327, "d7
\global\catcode216=13 \gdef^^d8{\O{}} % 216, '330, "d8
\global\catcode217=13 \gdef^^d9{\`U} % 217, '331, "d9
\global\catcode218=13 \gdef^^da{\'U} % 218, '332, "da
\global\catcode219=13 \gdef^^db{\^U} % 219, '333, "db
\global\catcode220=13 \gdef^^dc{\"U} % 220, '334, "dc
\global\catcode221=13 \gdef^^dd{{\'Y}} % 221, '335, "dd
\global\catcode222=13 \gdef^^de{\lower 0.7ex \hbox{l}\hskip-1ex\relax b} % 222, '336,
"de
\global\catcode223=13 \gdef^^df{\ss{}} % 223, '337, "df
\global\catcode224=13 \gdef^^e0{\`a} % 224, '340, "e0
\global\catcode225=13 \gdef^^e1{\'a} % 225, '341, "e1
\global\catcode226=13 \gdef^^e2{\^a} % 226, '342, "e2
\global\catcode227=13 \gdef^^e3{\~a} % 227, '343, "e3
\global\catcode228=13 \gdef^^e4{\"a} % 228, '344, "e4
\global\catcode229=13 \gdef^^e5{\aa{}} % 229, '345, "e5
\global\catcode230=13 \gdef^^e6{\ae{}} % 230, '346, "e6
\global\catcode231=13 \gdef^^e7{\c{c}} % 231, '347, "e7
\global\catcode232=13 \gdef^^e8{\`e} % 232, '350, "e8
\global\catcode233=13 \gdef^^e9{\'e} % 233, '351, "e9
\global\catcode234=13 \gdef^^ea{\^e} % 234, '352, "ea
\global\catcode235=13 \gdef^^eb{\"e} % 235, '353, "eb
\global\catcode236=13 \gdef^^ec{\`{\i}} % 236, '354, "ec
\global\catcode237=13 \gdef^^ed{\'{\i}} % 237, '355, "ed
\global\catcode238=13 \gdef^^ee{\^{\i}} % 238, '356, "ee
\global\catcode239=13 \gdef^^ef{\"{\i}} % 239, '357, "ef
\global\catcode240=13 \gdef^^f0{$\partial$} % 240, '360, "f0
\global\catcode241=13 \gdef^^f1{\~n} % 241, '361, "f1
\global\catcode242=13 \gdef^^f2{\`o} % 242, '362, "f2
\global\catcode243=13 \gdef^^f3{\'o} % 243, '363, "f3
\global\catcode244=13 \gdef^^f4{\^o} % 244, '364, "f4
\global\catcode245=13 \gdef^^f5{\~o} % 245, '365, "f5
\global\catcode246=13 \gdef^^f6{\"o} % 246, '366, "f6
\global\catcode247=13 \gdef^^f7{$\div$} % 247, '367, "f7
\global\catcode248=13 \gdef^^f8{\o{}} % 248, '370, "f8
\global\catcode249=13 \gdef^^f9{\`u} % 249, '371, "f9
\global\catcode250=13 \gdef^^fa{\'u} % 250, '372, "fa
\global\catcode251=13 \gdef^^fb{\^u} % 251, '373, "fb
\global\catcode252=13 \gdef^^fc{\"u} % 252, '374, "fc
\global\catcode253=13 \gdef^^fd{\'y} % 253, '375, "fd
\global\catcode254=13 \gdef^^fe{\lower 0.8ex\hbox{l}\hskip-1ex\relax b} % 254, '376,
"fe
\global\catcode255=13 \gdef^^ff{\"y} % 255, '377, "ff