[Cjk] other strange bibtex related errors (Big 5)

Markus GMX mmuell25 at gmx.de
Sun Jun 11 17:40:37 CEST 2006


Dear Werner, dear CJK-friends!
Thanks a lot again for your help and especially for your updated script!!!

 And also thanks a lot for your hints about the uncovered characters.
Sorry for this stupid question, but I don't know how to regenerate the
necessary type 1 subfonts, I've never done anything like this. So far I
was just a LaTeX user... I've found and downloaded bsmi001p.ttf on the
web. Any hints what to do or what documentation to read are warmly welcomed.

best wishes
Markus

P.S.: I will forward your attached file to the Miktex maintainer.

Werner LEMBERG schrieb:
>> 1. After calling latex and bibtex without any errors, the second
>> latex-call produces the following error, which seems to come from
>> the .bbl file:
>>
>> ! Improper alphabetic constant.
>> <to be read again>
>>                    \nobreakspace
>> l.26   Xukun 王續琨}}{}{}{}{}} {}
>>                                   \bibAnnoteFile {LiuYongzhen:2002}
>>
>> What's wrong?
> 
> This is caused by the Big 5 character `年' which has `~' as the second
> byte in Big 5 encoding.  Since this is already used by LaTeX as a
> shorthand for \nobreakspace, CJK can get the expansion of `~' instead
> of `~' itself.  Such characters should be written with \CJKchar in
> bibliographies too.  I forgot that :-) Below is an updated script.
> 
>> 2. After entering batchmode of miktex the file finishes compiling. But
>> when I look at the result (dvi or pdf, it doesn't matter), the
>> third-last Chinese character of the title 恒 (heng) is not
>> displayed.
> 
> You are using a character of the so-called ETen extension of Big5.
> Among various symbols, the following CJK characters are located there:
> 
>   碁 銹 裏 墻 恒 粧 嫺
> 
> Using them is a source of trouble because not all fonts (in Big5
> encoding) support them.  Attached is a special UBig5-Arphic.sfd file
> which covers them.  Use this to regenerate the Type 1 subfonts of
> bsmi00lp.ttf -- you might also forward this file to the MikTeX package
> maintainer of the CJK package.
> 
> 
>     Werner
> 
> ======================================================================
> 
> while (<>) {
>   s/([\xA1-\xFE])([\x40-\x7E]|[\xA1-\xFE])/
>     if ($2 eq "\\" || $2 eq "{" || $2 eq "}" || $2 eq "~") {
>       sprintf("\\CJKchar{%d}{%d}", ord($1), ord($2));
>     }
>     else {
>       sprintf("$1$2");
>     }
>    /eg;
>   print;
> }



More information about the Cjk mailing list