diff options
author | Karl Berry <karl@freefriends.org> | 2009-09-12 18:12:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-09-12 18:12:23 +0000 |
commit | 0aafe02d2a36f050c7902e7d47a2d1cb99147f17 (patch) | |
tree | 777bca8e934eb139a1c9953cfed5cfdec4f7236d /Master/texmf-dist/tex/generic | |
parent | f3f5f724bfb1c2f181b5ddab7c34248e64a075d8 (diff) |
add new enctex file utf8warn.tex, by hand
git-svn-id: svn://tug.org/texlive/trunk@15238 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r-- | Master/texmf-dist/tex/generic/enctex/utf8warn.tex | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/enctex/utf8warn.tex b/Master/texmf-dist/tex/generic/enctex/utf8warn.tex new file mode 100644 index 00000000000..7a4680d4ea3 --- /dev/null +++ b/Master/texmf-dist/tex/generic/enctex/utf8warn.tex @@ -0,0 +1,165 @@ +% Warnings for all undeclared UTF-8 codes +% ======================================= +% Petr+Mirek Olsak Sep. 2009 +% +% Suppose, you are using encTeX for reading UTF-8 codes in input. +% Possibly, not all UTF-8 codes are declared by \mubyte..\endmubyte +% in your macros. You can do +% +% \input utf8warn +% +% in order to print warning messages for all undeclared UTF-8 codes +% scanned in input. The \mubytein have to be positive, of course. +% +% If undeclared UTF-8 code occures in input, the message +% +% WARNING: UTF-8 code <native-code> (^^hexa-code) is undeclared. +% +% will be printed on terminal and into log file. The \failedchar +% (implicitly defined as black box) will be printed into document. +% +% Example: WARNING: UTF-8 code “ (^^e2^^80^^9c) is undeclared +% means that double quote is not declared in your \mubyte table. +% You can correct it by adding (for example): +% +% \mubyte \leftqquote ^^e2^^80^^9c\endmubyte +% \def\leftqquote{``} + +\ifx\mubyte\undefined + \message{SORRY: the encTeX have to be active to use this macro} +\endinput\fi + +% \warntwobytes, \warnthreebytes etc. will be inserted by encTeX before +% all undeclared UTF-8 codes: + +\mubyte \warntwobytes #2^^c0\endmubyte +\mubyte \warntwobytes #2^^c1\endmubyte +\mubyte \warntwobytes #2^^c2\endmubyte +\mubyte \warntwobytes #2^^c3\endmubyte +\mubyte \warntwobytes #2^^c4\endmubyte +\mubyte \warntwobytes #2^^c5\endmubyte +\mubyte \warntwobytes #2^^c6\endmubyte +\mubyte \warntwobytes #2^^c7\endmubyte +\mubyte \warntwobytes #2^^c8\endmubyte +\mubyte \warntwobytes #2^^c9\endmubyte +\mubyte \warntwobytes #2^^ca\endmubyte +\mubyte \warntwobytes #2^^cb\endmubyte +\mubyte \warntwobytes #2^^cc\endmubyte +\mubyte \warntwobytes #2^^cd\endmubyte +\mubyte \warntwobytes #2^^ce\endmubyte +\mubyte \warntwobytes #2^^cf\endmubyte +\mubyte \warntwobytes #2^^d0\endmubyte +\mubyte \warntwobytes #2^^d1\endmubyte +\mubyte \warntwobytes #2^^d2\endmubyte +\mubyte \warntwobytes #2^^d3\endmubyte +\mubyte \warntwobytes #2^^d4\endmubyte +\mubyte \warntwobytes #2^^d5\endmubyte +\mubyte \warntwobytes #2^^d6\endmubyte +\mubyte \warntwobytes #2^^d7\endmubyte +\mubyte \warntwobytes #2^^d8\endmubyte +\mubyte \warntwobytes #2^^d9\endmubyte +\mubyte \warntwobytes #2^^da\endmubyte +\mubyte \warntwobytes #2^^db\endmubyte +\mubyte \warntwobytes #2^^dc\endmubyte +\mubyte \warntwobytes #2^^dd\endmubyte +\mubyte \warntwobytes #2^^de\endmubyte +\mubyte \warntwobytes #2^^df\endmubyte + +\mubyte \warnthreebytes #3^^e0\endmubyte +\mubyte \warnthreebytes #3^^e1\endmubyte +\mubyte \warnthreebytes #3^^e2\endmubyte +\mubyte \warnthreebytes #3^^e3\endmubyte +\mubyte \warnthreebytes #3^^e4\endmubyte +\mubyte \warnthreebytes #3^^e5\endmubyte +\mubyte \warnthreebytes #3^^e6\endmubyte +\mubyte \warnthreebytes #3^^e7\endmubyte +\mubyte \warnthreebytes #3^^e8\endmubyte +\mubyte \warnthreebytes #3^^e9\endmubyte +\mubyte \warnthreebytes #3^^ea\endmubyte +\mubyte \warnthreebytes #3^^eb\endmubyte +\mubyte \warnthreebytes #3^^ec\endmubyte +\mubyte \warnthreebytes #3^^ed\endmubyte +\mubyte \warnthreebytes #3^^ee\endmubyte +\mubyte \warnthreebytes #3^^ef\endmubyte + +\mubyte \warnfourbytes #4^^f0\endmubyte +\mubyte \warnfourbytes #4^^f1\endmubyte +\mubyte \warnfourbytes #4^^f2\endmubyte +\mubyte \warnfourbytes #4^^f3\endmubyte +\mubyte \warnfourbytes #4^^f4\endmubyte +\mubyte \warnfourbytes #4^^f5\endmubyte +\mubyte \warnfourbytes #4^^f6\endmubyte +\mubyte \warnfourbytes #4^^f7\endmubyte + +\mubyte \warnfivebytes #5^^f8\endmubyte +\mubyte \warnfivebytes #5^^f9\endmubyte +\mubyte \warnfivebytes #5^^fa\endmubyte +\mubyte \warnfivebytes #5^^fb\endmubyte + +\mubyte \warnsixbytes #6^^fc\endmubyte +\mubyte \warnsixbytes #6^^fd\endmubyte + +% \failedchar will be inserted to document instead the real character. +% It is defined as black box. You can re-define it, of course + +\def\failedchar{\leavevmode + \kern.05em\vrule height.7em depth.1em width.4em\kern.05em } + +% defs: + +\def\warntwobytes #1#2{\utfwarnmessage{#1#2}} +\def\warnthreebytes #1#2#3{\utfwarnmessage{#1#2#3}} +\def\warnfourbytes #1#2#3#4{\utfwarnmessage{#1#2#3#4}} +\def\warnfivebytes #1#2#3#4#5{\utfwarnmessage{#1#2#3#4#5}} +\def\warnsixbytes #1#2#3#4#5#6{\utfwarnmessage{#1#2#3#4#5#6}} + +\def\utfwarnmessage#1{\message{WARNING: UTF-8 code \printutfcode#1\end\space + (\printhexcode#1\end) is undefined.}\failedchar} + +\def\printutfcode#1{\ifx#1\end\else \noconvert#1\expandafter\printutfcode\fi} + +\def\printhexcode#1{\ifx#1\end\else^\empty^\hexx#1\expandafter\printhexcode\fi} + +\def\hexx#1{\ifcase`#1 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or + 08\or 09\or 0a\or 0b\or 0c\or 0d\or 0e\or 0f\or + 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or + 18\or 19\or 1a\or 1b\or 1c\or 1d\or 1e\or 1f\or + 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or + 28\or 29\or 2a\or 2b\or 2c\or 2d\or 2e\or 2f\or + 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or + 38\or 39\or 3a\or 3b\or 3c\or 3d\or 3e\or 3f\or + 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or + 48\or 49\or 4a\or 4b\or 4c\or 4d\or 4e\or 4f\or + 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or + 58\or 59\or 5a\or 5b\or 5c\or 5d\or 5e\or 5f\or + 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or + 68\or 69\or 6a\or 6b\or 6c\or 6d\or 6e\or 6f\or + 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or + 78\or 79\or 7a\or 7b\or 7c\or 7d\or 7e\or 7f\or + 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or + 88\or 89\or 8a\or 8b\or 8c\or 8d\or 8e\or 8f\or + 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or + 98\or 99\or 9a\or 9b\or 9c\or 9d\or 9e\or 9f\or + a0\or a1\or a2\or a3\or a4\or a5\or a6\or a7\or + a8\or a9\or aa\or ab\or ac\or ad\or ae\or af\or + b0\or b1\or b2\or b3\or b4\or b5\or b6\or b7\or + b8\or b9\or ba\or bb\or bc\or bd\or be\or bf\or + c0\or c1\or c2\or c3\or c4\or c5\or c6\or c7\or + c8\or c9\or ca\or cb\or cc\or cd\or ce\or cf\or + d0\or d1\or d2\or d3\or d4\or d5\or d6\or d7\or + d8\or d9\or da\or db\or dc\or dd\or de\or df\or + e0\or e1\or e2\or e3\or e4\or e5\or e6\or e7\or + e8\or e9\or ea\or eb\or ec\or ed\or ee\or ef\or + f0\or f1\or f2\or f3\or f4\or f5\or f6\or f7\or + f8\or f9\or fa\or fb\or fc\or fd\or fe\or ff\fi} + +% You can use macro \relaxutfwarn if you are \edefing scanned text, +% because the scanned text may include the \warntwobytes +% etc. sequences inserted by encTeX. Example: +% \def\scansometext#1\par{{\relaxutfwarn\xdef\scanned{#1\scanned}...}...} + +\def\relaxutfwarn{\let\warntwobytes=\relax \let\warnthreebytes=\relax + \let\warnfourbytes=\relax \let\warnfivebytes=\relax \let\warnsixbytes=\relax} + +\endinput + |