<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% utf8cs.tex 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Petr Olsak                                   SLT2002, 9. 11. 2002

% Usage:
% \input utf8cs  \activeUTF

% See the Czech documentation at the end of this file.

% The input text may be in ISO8859-2 OR in UTF8.
% The result after expansion of three active characters 
% is in ISO-8859-2. 
% The consequence: you can re-read the toc/aux etc. \write files.

% Warning: use only the one-to-one tcx/tcp table (il2-cs.tcx for example)

% Only the Czech and Slovak alphabet is supported here.

\ifx \activeUTFcs\undefined \else \endinput \fi

{\catcode`\^^c3=13 \expandafter}\expandafter \def \noexpand^^c3#1{%
  \ifx ^^81#1^^c1\else % \'A
  \ifx ^^a1#1^^e1\else % \'a
  \ifx ^^89#1^^c9\else % \'E
  \ifx ^^a9#1^^e9\else % \'e
  \ifx ^^8d#1^^cd\else % \'I
  \ifx ^^ad#1^^ed\else % \'i
  \ifx ^^93#1^^d3\else % \'O
  \ifx ^^b3#1^^f3\else % \'o
  \ifx ^^9a#1^^da\else % \'U
  \ifx ^^ba#1^^fa\else % \'u
  \ifx ^^9d#1^^dd\else % \'Y
  \ifx ^^bd#1^^fd\else % \'y
  \ifx ^^94#1^^d4\else % \^O
  \ifx ^^b4#1^^f4\else % \^o
  \ifx ^^84#1^^c4\else % \"A
  \ifx ^^a4#1^^e4\else % \"a
  \ifx ^^96#1^^d6\else % \"O
  \ifx ^^b6#1^^f6\else % \"o
  \ifx ^^9c#1^^dc\else % \"U
  \ifx ^^bc#1^^fc\else % \"u
  ^^c3#1\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
{\catcode`\^^c4=13 \expandafter}\expandafter \def \noexpand^^c4#1{%
  \ifx ^^8c#1^^c8\else % \v C
  \ifx ^^8d#1^^e8\else % \v c
  \ifx ^^8e#1^^cf\else % \v D
  \ifx ^^8f#1^^ef\else % \v d
  \ifx ^^9a#1^^cc\else % \v E
  \ifx ^^9b#1^^ec\else % \v e
  \ifx ^^b9#1^^c5\else % \' L
  \ifx ^^ba#1^^e5\else % \' l
  \ifx ^^bd#1^^a5\else % \v L
  \ifx ^^be#1^^b5\else % \v l  
  ^^c4#1\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
{\catcode`\^^c5=13 \expandafter}\expandafter \def \noexpand^^c5#1{%
  \ifx ^^87#1^^d2\else % \v N
  \ifx ^^88#1^^f2\else % \v n
  \ifx ^^98#1^^d8\else % \v R
  \ifx ^^99#1^^f8\else % \v r
  \ifx ^^a0#1^^a9\else % \v S
  \ifx ^^a1#1^^b9\else % \v s
  \ifx ^^a4#1^^ab\else % \v T
  \ifx ^^a5#1^^bb\else % \v t
  \ifx ^^ae#1^^d9\else % \r U
  \ifx ^^af#1^^f9\else % \r u
  \ifx ^^bd#1^^ae\else % \r Z
  \ifx ^^be#1^^be\else % \v z
  \ifx ^^94#1^^c0\else % \' R
  \ifx ^^95#1^^e0\else % \' r  
  ^^c5#1\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
\def\activeUTFcs{\catcode`\^^c3=13\catcode`\^^c4=13\catcode`\^^c5=13 
  \message{The UTF-8 encoding for Czech and Slovak alphabet activated.}%
  \message{The ISO-8859-2 input and internal encodings are still accepted.}%
}
\let\activeUTF=\activeUTFcs

\endinput

-----------------------------------------------------

Ceska dokumentace nize je kodovana v UTF-8, protoze predpokladam,
ze bude nejvice zajimat uzivatele "postizene" timto kodovanim.

Po provedenÃ­

\input utf8cs \activeUTF

se stanou tÅ™i znaky aktivnÃ­: 0xc3, 0xc4 a 0xc5

Jsou to prÃ¡vÄ› vÅ¡echny znaky, kterÃ© pracujÃ­ jako "prefixy"
pro pÃ­smena ÄeskÃ© a slovenskÃ© abecedy v kÃ³dovÃ¡nÃ­ UTF-8.
Za tÃ­mto "prefixem" nÃ¡sleduje dalÅ¡Ã­ byte a tato dvojice bytÅ¯
urÄuje v UTF-8 jedno pÃ­smeno.

Makra spojenÃ¡ se znaky 0xc3, 0xc4 a 0xc5 sejmou nÃ¡sledujÃ­cÃ­ byte a
tato dvojice expanduje na znak podle ISO-8859-2. ProtoÅ¾e je
koverze provedena na Ãºrovni expand procesoru, nenÃ­ ohroÅ¾eno dÄ›lenÃ­
slov.

AÅ¾ na vÃ½jimky ve slovenskÃ©m jazyce (viz nÃ­Å¾e) je po provedenÃ­
\activeUTF akceptovÃ¡no i kÃ³dovÃ¡nÃ­ ÄeskÃ© a slovenskÃ© abecedy
podle ISO-8859-2. DÅ¯leÅ¾itÃ½ dÅ¯sledek: \write soubory (toc, aux apod.)
jsou po expanzi primitivem \write kÃ³dovÃ¡ny podle ISO-8859-2 a je
moÅ¾nÃ© je pouÅ¾Ã­t pÅ™i opakovanÃ©m ÄtenÃ­ bez problÃ©mÅ¯.

UpozornÄ›nÃ­: pouÅ¾Ã­vejte jen tcx/tcp tabulku, kterÃ¡ nedÄ›lÃ¡ Å¾Ã¡dnÃ© zmÄ›ny 
v kÃ³dovÃ¡nÃ­, napÅ™. csplain a cslatex v UNIXu pouÅ¾Ã­vÃ¡ implicitnÄ›
il2-cs.tcx, kterÃ¡ je vyhovujÃ­cÃ­. S tabulkou, kterÃ¡ dÄ›lÃ¡ konverzi
na Ãºrovni pre-procesoru TeXu to nebude fungovat!

PÅ™i pouÅ¾itÃ­ tabulky il2-t1.tcx je potÅ™eba naÄÃ­st soubor utf8t1.tex
na mÃ­sto tohoto souboru. Soubor uft8t1.tex bude vytvoÅ™en pozdÄ›ji.

ÄŒeskÃ½ jazyk je zcela bez problÃ©mÅ¯ pro vstup jednak v ISO-8859-2 a
jednak v UTF-8. SlovenÅ¡tina mÃ¡ tyto problÃ©my:

Za znakem Ä¹ (\'L) kÃ³dovanÃ©m v ISO-8859-2 nesmÃ­ po \activeUTF
nÃ¡sledovat mezera a svorky { }. OstatnÃ­ znaky za tÃ­mto znakem mohou
bÃ½t pÅ™Ã­tomny bez problÃ©mÅ¯. Za tÃ­mto znakem kÃ³dovanÃ©m v UTF-8 mÅ¯Å¾e bÃ½t
cokoli. TotÃ©Å¾ platÃ­ pro znak Ã„ (\"A). OstatnÃ­ znaky jsou v obou
kÃ³dovÃ¡nÃ­ch bez problÃ©mÅ¯.

Jinak Å™eÄeno: dvojice "Ä¹ ", "Ä¹{", "Ä¹}", "Ã„ ", "Ã„{" a "Ã„}"
nebudou fungovat za pÅ™edpokladu, Å¾e pÃ­smena Ä¹ a Ã„ jsou kÃ³dovÃ¡na
v ISO-8859-2 a souÄasnÄ› ja zapnuto \activeUTF. 

Petr OlÅ¡Ã¡k

==========================================================================

Zari 2005:

Vsechny vyse popsane problemy resi encTeX. Mate-li tuto nadstavbu TeXu
v binarce zahrnutou (zkuste tex -enc), pak doporucuji zapomenout na
aktivni znaky a na tento soubor a generovat formaty csplain a cslatex 
schopne rovnou pracovat s UTF8 kodovanim:

tex -ini -enc '\let\enc=u \input csplain.ini'

Podrobnejsi informace najdete v souboru csplain.ini a csenc-u.tex.

Petr Olsak










</pre></body></html>