[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [cjk] Fwd: HELP with emacs 25.1 and cjk-enc.el
From: |
Hin-Tak Leung |
Subject: |
Re: [cjk] Fwd: HELP with emacs 25.1 and cjk-enc.el |
Date: |
Sat, 17 Dec 2016 17:34:57 +0000 (UTC) |
> I am aware of
bg5latex/bg5pdflatex, and just went back to check if it
works with the test input I gave. It does not work insofar
as all the chinese input (in big5) become numbers.
Becoming mostly numbers is the correct behaviour. Try running the output
through (pdf)latex and see.
> I checked the Big5.tex example
file and it seems like you have to manually add all the
\begin{CJK}{Bg5}{bsmi} .... \end{CJK} pairs, what
bg5latex does (as I remembered from long time ago) is
preventing Big5 text being mangled inside the
\begin{CJK} ... \end{CJK}. I guess the point of
cjk-enc.el is precluding the need for such manual
addition.
I don't think it is necessary to add all the \begin{CJK}\end{CJK}. But emacs
has become a lot more locale-aware (or locale-sensitive...)
from 23.x onwards, and getting more so for every release since. The message()
breakage with emacs 25 is certainly one of these.
What would really help recent emacs is declaring encoding at the end with a
command block like the example.
%%% Local Variables:
%%% coding: ...
%%% End:
So I am concentrating on Big5.tex from the cjk distribution for testing at the
moment.
> I also tried your patch
adding (let ((coding-system-for-write
locale-coding-system))
which in fact gets rid of
the running percentage reports, but still somehow gets
large numbers of
% \ifx\CJKpreproc\undefined\def\CJKpreproc{cjk-enc}\RequirePackage{MULEenc}\fi
I am aware of that. The message() fix fixes Thai and mule encoding only;
Strangely enough, I cannot currently process big5 input with cjk-enc.el from
emacs 23 onwards. When I updated cjk-enc.el for emacs 23 a few years ago, I may
or may not have tested it against big 5 input, as I always used
bg5latex/latexb5 and don't use cjk-enc.el for that purpose. But I remember at
least getting the big5 /traditional Chinese portion of mule input to work
correctly with emacs 23 was rather difficult, as emacs 23+ really want to
(mis-)process things as utf-8.
Can I get your full LANG/LC_* environment? i.e. the whole of
export | grep LANG
export | grep LC_
That you can with emacs 24 and I cannot, may be a useful piece of information.
At the moment I am suspecting that pre-write-conversion/cjk-encode in
cjk-enc.el needs to finish differently (an additional nil, etc) as inserting
"\ifx\CJKpreproc\undefined\def\CJKpreproc{cjk-enc}\RequirePackage{MULEenc}\fi"
at the beginning of the output is the LAST THING it should do. Somehow it is
not stopping at that point, and keep recursing a few more times.
Earlier emacs seems to be more tolerant of pre-write-conversion/cjk-encode not
starting/finishing the right way (saving/restoring buffer before and after);
There is a emacs 25 incompatible change about
'save-excursion' does not save&restore the mark any more.
Use 'save-mark-and-excursion' if you want the old behavior.
There is a save-excursion just before a write-region, which calls
pre-write-conversion.