From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/3470 Path: main.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: unicode in bookmarks Date: Mon, 27 Nov 2000 16:28:56 +0100 Sender: owner-ntg-context@let.uu.nl Message-ID: <3.0.6.32.20001127162856.008e5300@pop.wxs.nl> References: NNTP-Posting-Host: coloc-standby.netfonds.no Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_975335336==_" X-Trace: main.gmane.org 1035394199 17367 80.91.224.250 (23 Oct 2002 17:29:59 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 23 Oct 2002 17:29:59 +0000 (UTC) Cc: ntg-context@ntg.nl Original-To: Petr Ferdus In-Reply-To: Xref: main.gmane.org gmane.comp.tex.context:3470 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:3470 --=====================_975335336==_ Content-Type: text/plain; charset="us-ascii" At 04:07 AM 11/27/00 +0100, Petr Ferdus wrote: >Hi >does someone know, if it is possible to put unicode characters to >bookmarks geterated by Context? Or more generally if the output of >routines producing bookmark strins could be made unicode encoded. I would >like to introduce some accented (czech) characters there. It seems >to be possible only while they are entered in unicode. You can have unicode indeed, see attached file. But, the bad news is that if you want this kind of support right now, you and/or others will have to collect the data that should go in the pdu endocing vector, since i don't have complete unicode tables. And, it should be decimal [more efficient in tex] or octal [slightly faster but ugly]. Then of course some testing has to be done, In the attached file, conversion to unicode is kind of implemented [some dirty code tricks, so don't ask me to explain it] and i'm still not sure if teh more efficient \000a kind of normal ascii is really valid. [rather minimal, the pdf documentation]. Hans --=====================_975335336==_ Content-Type: application/pdf; name="unicode.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="unicode.pdf" JVBERi0xLjMKNCAwIG9iaiA8PAovTGVuZ3RoIDY3NyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNv ZGUKPj4Kc3RyZWFtCnjadVRJr9MwEL6/X5GjLb2ELE2XKxIcOFfiABxcZ5JYdTyRF0r59dix3cdD RVGUWb7ZZ9IUtX+aoj3W1e7QF4d9W53aXcGXl4/nlw+fu6ZomurU98V53KDn4Rtp6I/zl6Js61O1 r49Fua+rfrdpvtJjTYCWXd0QO2tB2x35SZs+y4TK3xH1wmjpYQJVSZumI6WdBb8GQEtutKkJajmY aHABzpyBqMQxCtHpKFiYjlEkumTA1BB1QNs+5aDvA7tHNWcr48Let0rqomz6qt53Ww0WadkeamJA ArevgfG2g4jknhihJgkRgy4DjNWOW6ch8bOYZunfrJ80ujXRKxOa7mqSHC6gaXMk08OU6QWV+J15 c1d2BrMJ/k43tnxE7oxHdt3JN2xzRHtffrTvuiPhqAZQBhJIw+B4Zi4opKfahgwYGnVT2WhGfJhw ZiF0cEKd3W5CJnHKeMmMEeOd7nuSAFIY+/qkwezim8W21na+C4YzlUiJGObftn5BLCahGIDJFDaw BqVPJ3GDMFyLRah3IutH5ISZHxE0QI6xiglQzSifdnONG9j60YaC096kYYU6DWqbSJ9j7IpOwb3s IkENG33werPGDQqa73Wzk/adL+mWNbu9ige5INo5+eCzU9ekYNSnlTJiU47I1vJJj1eNv8QS82oP YTzOvAVvDyfCpknH9MO6PIB+o6VQkEDGLf628ir6ki0smQubtN2W2D63NPkAG8QaiC6PMch8/X0W +18Duml+NoCLjnto8vZPkimezu3hricS2BiFD2fxWK5iSXelIfRcZUegnL+0XGlwDNvipRPD1byd 3E0oFfPIMeBJk28zMOsBfU1GjUukAnQj+Owz9C7GyG4/pEAYWFlI4x+4mQHW/zqbkFlThRxePp1f /gAvQZMiZW5kc3RyZWFtCmVuZG9iagozIDAgb2JqIDw8Ci9UeXBlIC9QYWdlCi9Db250ZW50cyA0 IDAgUgovUmVzb3VyY2VzIDIgMCBSCi9NZWRpYUJveCBbMCAwIDU5NS4yNzYgODQxLjg5XQovUGFy ZW50IDcgMCBSCi9Bbm5vdHMgWyAxIDAgUiBdCj4+IGVuZG9iagoxIDAgb2JqIDw8Ci9UeXBlIC9B bm5vdAovU3VidHlwZSAvVGV4dCAvQ29udGVudHMgKFwzNzZcMzc3XDAwMFwzMDFcMDAwXDA0MFww MDBcMzAyXDAwMFwwNDBcMDAwXDMwM1wwMDBcMDQwXDAwMFwzMDRcMDAwXDA0MFwwMDBcMTQyXDAw MFwwNDBcMDAwXDE0M1wwMDBcMDQwXDAwMFwxNDRcMDAwXDA0MFwwMDBcMTQ1XDAwMFwwNDBcMDAw XDE2NFwwMDBcMTQ1XDAwMFwxNzBcMDAwXDAxNVwwMDBcMzAxXDAwMFwwNDBcMDAwXDMwMlwwMDBc MDQwXDAwMFwzMDNcMDAwXDA0MFwwMDBcMzA0XDAwMFwwNDBcMDAwXDE0MlwwMDBcMDQwXDAwMFwx NDNcMDAwXDA0MFwwMDBcMTQ0XDAwMFwwNDBcMDAwXDE0NVwwMDBcMDQwXDAwMFwxNjRcMDAwXDE0 NVwwMDBcMTcwXDAwMFwwMTVcMDAwXDMwMVwwMDBcMDQwXDAwMFwzMDJcMDAwXDA0MFwwMDBcMzAz XDAwMFwwNDBcMDAwXDMwNFwwMDBcMDQwXDAwMFwxNDJcMDAwXDA0MFwwMDBcMTQzXDAwMFwwNDBc MDAwXDE0NFwwMDBcMDQwXDAwMFwxNDVcMDAwXDA0MFwwMDBcMTY0XDAwMFwxNDVcMDAwXDE3MFww MDBcMDE1KSAvQyBbMCAuNiAwXQovUmVjdCBbMjkuMDI2IDU5NC4xNzYgMTU2LjU4NSA3MTMuMjNd Cj4+IGVuZG9iagoyIDAgb2JqIDw8Ci9Gb250IDw8IC9GMzEgNiAwIFIgPj4KL1Byb2NTZXQgWyAv UERGIC9UZXh0IF0KPj4gZW5kb2JqCjggMCBvYmogPDwKL1R5cGUgL0VuY29kaW5nCi9EaWZmZXJl bmNlcyBbIDAgLy5ub3RkZWYgNS9kb3RhY2NlbnQvaHVuZ2FydW1sYXV0L29nb25layA4Ly5ub3Rk ZWYgOS9mcmFjdGlvbiAxMC8ubm90ZGVmIDExL2ZmL2ZpL2ZsL2ZmaS9mZmwvZG90bGVzc2kvZG90 bGVzc2ovZ3JhdmUvYWN1dGUvY2Fyb24vYnJldmUvbWFjcm9uL3JpbmcvY2VkaWxsYS9nZXJtYW5k YmxzL2FlL29lL29zbGFzaC9BRS9PRS9Pc2xhc2gvc3BhY2UvZXhjbGFtL3F1b3RlZGJsL251bWJl cnNpZ24vZG9sbGFyL3BlcmNlbnQvYW1wZXJzYW5kL3F1b3RlcmlnaHQvcGFyZW5sZWZ0L3BhcmVu cmlnaHQvYXN0ZXJpc2svcGx1cy9jb21tYS9oeXBoZW4vcGVyaW9kL3NsYXNoL3plcm8vb25lL3R3 by90aHJlZS9mb3VyL2ZpdmUvc2l4L3NldmVuL2VpZ2h0L25pbmUvY29sb24vc2VtaWNvbG9uL2xl c3MvZXF1YWwvZ3JlYXRlci9xdWVzdGlvbi9hdC9BL0IvQy9EL0UvRi9HL0gvSS9KL0svTC9NL04v Ty9QL1EvUi9TL1QvVS9WL1cvWC9ZL1ovYnJhY2tldGxlZnQvYmFja3NsYXNoL2JyYWNrZXRyaWdo dC9jaXJjdW1mbGV4L3VuZGVyc2NvcmUvcXVvdGVsZWZ0L2EvYi9jL2QvZS9mL2cvaC9pL2ovay9s L20vbi9vL3AvcS9yL3MvdC91L3Yvdy94L3kvei9icmFjZWxlZnQvYmFyL2JyYWNlcmlnaHQvdGls ZGUvZGllcmVzaXMvTHNsYXNoL3F1b3Rlc2luZ2xlL3F1b3Rlc2luZ2xiYXNlL2Zsb3Jpbi9xdW90 ZWRibGJhc2UvZWxsaXBzaXMvZGFnZ2VyL2RhZ2dlcmRibC9jaXJjdW1mbGV4L3BlcnRob3VzYW5k L1NjYXJvbi9ndWlsc2luZ2xsZWZ0L09FL1pjYXJvbi9hc2NpaWNpcmN1bS9taW51cy9sc2xhc2gv cXVvdGVsZWZ0L3F1b3RlcmlnaHQvcXVvdGVkYmxsZWZ0L3F1b3RlZGJscmlnaHQvYnVsbGV0L2Vu ZGFzaC9lbWRhc2gvdGlsZGUvdHJhZGVtYXJrL3NjYXJvbi9ndWlsc2luZ2xyaWdodC9vZS96Y2Fy b24vYXNjaWl0aWxkZS9ZZGllcmVzaXMvc3BhY2UvZXhjbGFtZG93bi9jZW50L3N0ZXJsaW5nL2N1 cnJlbmN5L3llbi9icm9rZW5iYXIvc2VjdGlvbi9kaWVyZXNpcy9jb3B5cmlnaHQvb3JkZmVtaW5p bmUvZ3VpbGxlbW90bGVmdC9sb2dpY2Fsbm90L2h5cGhlbi9yZWdpc3RlcmVkL21hY3Jvbi9kZWdy ZWUvcGx1c21pbnVzL3R3b3N1cGVyaW9yL3RocmVlc3VwZXJpb3IvYWN1dGUvbXUvcGFyYWdyYXBo L3BlcmlvZGNlbnRlcmVkL2NlZGlsbGEvb25lc3VwZXJpb3Ivb3JkbWFzY3VsaW5lL2d1aWxsZW1v dHJpZ2h0L29uZXF1YXJ0ZXIvb25laGFsZi90aHJlZXF1YXJ0ZXJzL3F1ZXN0aW9uZG93bi9BZ3Jh dmUvQWFjdXRlL0FjaXJjdW1mbGV4L0F0aWxkZS9BZGllcmVzaXMvQXJpbmcvQUUvQ2NlZGlsbGEv RWdyYXZlL0VhY3V0ZS9FY2lyY3VtZmxleC9FZGllcmVzaXMvSWdyYXZlL0lhY3V0ZS9JY2lyY3Vt ZmxleC9JZGllcmVzaXMvRXRoL050aWxkZS9PZ3JhdmUvT2FjdXRlL09jaXJjdW1mbGV4L090aWxk ZS9PZGllcmVzaXMvbXVsdGlwbHkvT3NsYXNoL1VncmF2ZS9VYWN1dGUvVWNpcmN1bWZsZXgvVWRp ZXJlc2lzL1lhY3V0ZS9UaG9ybi9nZXJtYW5kYmxzL2FncmF2ZS9hYWN1dGUvYWNpcmN1bWZsZXgv YXRpbGRlL2FkaWVyZXNpcy9hcmluZy9hZS9jY2VkaWxsYS9lZ3JhdmUvZWFjdXRlL2VjaXJjdW1m bGV4L2VkaWVyZXNpcy9pZ3JhdmUvaWFjdXRlL2ljaXJjdW1mbGV4L2lkaWVyZXNpcy9ldGgvbnRp bGRlL29ncmF2ZS9vYWN1dGUvb2NpcmN1bWZsZXgvb3RpbGRlL29kaWVyZXNpcy9kaXZpZGUvb3Ns YXNoL3VncmF2ZS91YWN1dGUvdWNpcmN1bWZsZXgvdWRpZXJlc2lzL3lhY3V0ZS90aG9ybi95ZGll cmVzaXNdCj4+IGVuZG9iago2IDAgb2JqIDw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQov RW5jb2RpbmcgOCAwIFIKL0Jhc2VGb250IC9UaW1lcy1Sb21hbgo+PiBlbmRvYmoKNyAwIG9iaiA8 PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWzMgMCBSXQo+PiBlbmRvYmoKOSAwIG9iaiA8 PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgNyAwIFIKL09wZW5BY3Rpb24gPDwvUyAvUmVzZXRGb3Jt ID4+Cj4+IGVuZG9iagoxMCAwIG9iaiA8PAovUHJvZHVjZXIgKHBkZlRlWC0wLjE0ZykKL1RpdGxl ICgpIC9TdWJqZWN0ICgpIC9BdXRob3IgKFBSQUdNQSBBREU6IEhhbnMgSGFnZW4vVG9uIE90dGVu KSAvQ3JlYXRvciAoQ29uVGVYdC93d3cucHJhZ21hLWFkZS5ubC91bmljb2RlLnRleCkKL0NyZWF0 b3IgKFRlWCkKL0NyZWF0aW9uRGF0ZSAoRDoyMDAwMTEyNzE2MjgwMCkKPj4gZW5kb2JqCnhyZWYK MCAxMQowMDAwMDAwMDA1IDY1NTM1IGYgCjAwMDAwMDA4OTMgMDAwMDAgbiAKMDAwMDAwMTQ5MyAw MDAwMCBuIAowMDAwMDAwNzY0IDAwMDAwIG4gCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDAw MCAwMDAwMCBmIAowMDAwMDAzMzgwIDAwMDAwIG4gCjAwMDAwMDM0NjggMDAwMDAgbiAKMDAwMDAw MTU2MSAwMDAwMCBuIAowMDAwMDAzNTI1IDAwMDAwIG4gCjAwMDAwMDM2MDUgMDAwMDAgbiAKdHJh aWxlcgo8PAovU2l6ZSAxMQovUm9vdCA5IDAgUgovSW5mbyAxMCAwIFIKPj4Kc3RhcnR4cmVmCjM4 MTQKJSVFT0YK --=====================_975335336==_ Content-Type: text/plain; charset="us-ascii" Content-Disposition: attachment; filename="Unicode.tex" % output=pdftex \def\octnumber#1% {\ifcase#1 000\or 001\or 002\or 003\or 004\or 005\or 006\or 007\or 010\or 011\or 012\or 013\or 014\or 015\or 016\or 017\or 020\or 021\or 022\or 023\or 024\or 025\or 026\or 027\or 030\or 031\or 032\or 033\or 034\or 035\or 036\or 037\or 040\or 041\or 042\or 043\or 044\or 045\or 046\or 047\or 050\or 051\or 052\or 053\or 054\or 055\or 056\or 057\or 060\or 061\or 062\or 063\or 064\or 065\or 066\or 067\or 070\or 071\or 072\or 073\or 074\or 075\or 076\or 077\or 100\or 101\or 102\or 103\or 104\or 105\or 106\or 107\or 110\or 111\or 112\or 113\or 114\or 115\or 116\or 117\or 120\or 121\or 122\or 123\or 124\or 125\or 126\or 127\or 130\or 131\or 132\or 133\or 134\or 135\or 136\or 137\or 140\or 141\or 142\or 143\or 144\or 145\or 146\or 147\or 150\or 151\or 152\or 153\or 154\or 155\or 156\or 157\or 160\or 161\or 162\or 163\or 164\or 165\or 166\or 167\or 170\or 171\or 172\or 173\or 174\or 175\or 176\or 177\or 200\or 201\or 202\or 203\or 204\or 205\or 206\or 207\or 210\or 211\or 212\or 213\or 214\or 215\or 216\or 217\or 220\or 221\or 222\or 223\or 224\or 225\or 226\or 227\or 230\or 231\or 232\or 233\or 234\or 235\or 236\or 237\or 240\or 241\or 242\or 243\or 244\or 245\or 246\or 247\or 250\or 251\or 252\or 253\or 254\or 255\or 256\or 257\or 260\or 261\or 262\or 263\or 264\or 265\or 266\or 267\or 270\or 271\or 272\or 273\or 274\or 275\or 276\or 277\or 300\or 301\or 302\or 303\or 304\or 305\or 306\or 307\or 310\or 311\or 312\or 313\or 314\or 315\or 316\or 317\or 320\or 321\or 322\or 323\or 324\or 325\or 326\or 327\or 330\or 331\or 332\or 333\or 334\or 335\or 336\or 337\or 340\or 341\or 342\or 343\or 344\or 345\or 346\or 347\or 350\or 351\or 352\or 353\or 354\or 355\or 356\or 357\or 360\or 361\or 362\or 363\or 364\or 365\or 366\or 367\or 370\or 371\or 372\or 373\or 374\or 375\or 376\or 377\fi} \startencoding[pdu] \defineaccent ' A {\uchar{0}{193}} % or {\octuchar{000}{301}} \defineaccent ` A {\uchar{0}{194}} \defineaccent ^ A {\uchar{0}{195}} \defineaccent ~ A {\uchar{0}{196}} \stopencoding \unprotect \edef\PDFoctuchar#1#2% {\expandafter\firstoftwoarguments\string\\#1% \expandafter\firstoftwoarguments\string\\#2} \def\PDFdecuchar#1#2% {\PDFoctuchar{\octnumber{#1}}{\octnumber{#2}}} %def\PDFunicodetrigger{\PDFoctuchar{376}{377}} % fe ff signals unicode \def\PDFunicodetrigger{\PDFdecuchar{254}{255}} % fe ff signals unicode \bgroup \catcode`!=\@@escape \catcode92=\@@other !gdef!dodopdfuni#1#2!fi!fi!fi{!fi!fi!fi!dopdfuni#1} !gdef!dopdfuni#1#2#3#4#5% {!ifx#1!empty % done !else!ifx#2!empty %!string!000#1% more efficient, but ok? !string!000\!octnumber{!ifnum`#1=1 32!else`#1!fi}% !else!ifx#1\% #1#2#3#4% !dodopdfuni{#5}% !else %!string!000#1% more efficient, but ok? !string!000\!octnumber{!ifnum`#1=1 32!else`#1!fi}% !dodopdfuni{#2#3#4#5}% !fi!fi!fi} !egroup \bgroup \catcode`\^^M=\@@active \gdef\enablePDFunicrlf% {\def\\{\PDFdecuchar{0}{13}}% \def\par{\\\\}% \catcode`\^^M=\@@active% \let^^M=\\} \egroup \def\enablePDFuniencoding% {\reducetocoding[pdu]\simplifycommands} \long\def\sanitizePDFuniencoding#1\to#2% {\let\octuchar\PDFoctuchar \let\decuchar\PDFdecuchar \let\uchar \PDFdecuchar \enablePDFunicrlf \enablePDFuniencoding \edef#2{\PDFunicodetrigger#1}% \lccode` =1 \lowercasestring#2\to#2% freeze spaces %\show#2% \edef#2{\expandafter\dopdfuni#2\empty\empty\empty\empty\empty\empty\empty}% %\lccode1=32 %\lowercasestring#2\to#2% %\show#2% } \protect \let\sanitizePDFdocencoding\sanitizePDFuniencoding % \useencoding[pdu] \setupbodyfont[pos] \setupinteraction[state=start] \starttext \startcomment \'A \`A \^A \~A B C D E \TeX \'A \`A \^A \~A B C D E \TeX \'A \`A \^A \~A B C D E \TeX \stopcomment \input tufte \stoptext  --=====================_975335336==_ Content-Type: text/plain; charset="us-ascii" ------------------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com ------------------------------------------------------------------------- --=====================_975335336==_--