summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/xelatex/xecjk/make-tbl-file/utf2gbk.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/xelatex/xecjk/make-tbl-file/utf2gbk.tex')
-rw-r--r--Master/texmf-dist/source/xelatex/xecjk/make-tbl-file/utf2gbk.tex139
1 files changed, 139 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/xelatex/xecjk/make-tbl-file/utf2gbk.tex b/Master/texmf-dist/source/xelatex/xecjk/make-tbl-file/utf2gbk.tex
new file mode 100644
index 00000000000..aef2d51d909
--- /dev/null
+++ b/Master/texmf-dist/source/xelatex/xecjk/make-tbl-file/utf2gbk.tex
@@ -0,0 +1,139 @@
+%
+% convert tbl files:
+%
+% UTF --> gbk
+
+\documentclass[12pt]{article}
+\begin{document}
+\makeatletter
+
+\@tempcnta "080\relax
+ \loop
+ \catcode\@tempcnta \active
+ \ifnum\@tempcnta < "0FE\relax
+ \advance\@tempcnta \@ne
+ \repeat
+
+\newwrite\fdout
+
+\def\punctnumber#1#2#3#4#5{
+\expandafter\def\csname punct@#1#2#3\endcsname{\string#4\string#5}}
+
+\input{gbklist.tex}
+
+\def\UTFpunct#1#2#3#4\relax{
+\immediate\write\fdout{\string\GBKpunct\space\csname
+ punct@\number `#1\number`#2\number`#3\endcsname#4\relax}}
+
+\def\UTFpunctbreak#1#2#3#4\relax{
+\immediate\write\fdout{\string\GBKpunctbreak\space\csname
+ punct@\number `#1\number`#2\number`#3\endcsname#4\relax}}
+
+\def\UTFkern#1#2#3#4#5#6#7\relax{
+\immediate\write\fdout{\string\GBKkern\space\csname
+ punct@\number `#1\number`#2\number`#3\endcsname
+ \csname
+ punct@\number `#4\number`#5\number`#6\endcsname
+ #7\relax}}
+
+\def\xeCJK@defkern{\immediate\write\fdout{\string\xeCJK@defkern}}
+
+
+\def\tblversion{2008/06/20}
+
+\bgroup
+\catcode`\%=11
+\catcode`\{=11
+\catcode`\}=11
+\catcode`\(=1
+\catcode`\)=2
+\global\def\percent(%)
+\global\def\lbrace({)
+\global\def\rbrace(})
+\egroup
+
+
+
+\def\outputtblfileheader{
+ \immediate\write\fdout{\percent\space }
+ \immediate\write\fdout{\percent\space This is the file \gbktblfilename.tbl\space version
+ \tblversion}
+ \bgroup
+ \count@\time
+ \divide\count@ 60
+ \count2=-\count@
+ \multiply\count2 60
+ \advance\count2 \time
+ \edef\today{%
+ \the\year/\two@digits{\the\month}/\two@digits{\the\day}%
+ \space\space at\space
+ \two@digits{\the\count@}:\two@digits{\the\count2}}
+ \immediate\write\fdout{\percent\space This is a generated file [\today].}
+ \egroup
+ \immediate\write\fdout{\percent\space Do not modify it!}
+ \immediate\write\fdout{\percent\space }
+ \immediate\write\fdout{\percent\space }
+ \immediate\write\fdout{\percent\space Note:}
+ \immediate\write\fdout{\percent\space\space\space 1) 'rule' is the width of the \string\vrule\space prepended/appended to the char.}
+ \immediate\write\fdout{\percent\space\space\space 2) 'flag,sp,st,sh' means 'flag,space,stretch,shrink', the glue is}
+ \immediate\write\fdout{\percent\space\space\space defined by: 'space'em plus 'stretch'em minus 'shrink'em}
+ \immediate\write\fdout{\percent\space\space\space (it is ignored when flag is not 1).}
+ \immediate\write\fdout{\percent\space\space\space 3) 'nbflag' means 'nobreak flag'.}
+ \immediate\write\fdout{\percent\space\space\space 4) For more information on the tbl file, we refer to the CCT package.}
+ \immediate\write\fdout{\percent\space\space\space set rule to '0', pre glue to '0,0,0,0', post glue to '0,-0.2,0,0.2'.}
+ \immediate\write\fdout{\percent\space\space\space}
+ \immediate\write\fdout{\percent\space\space\space pre \space\space\space\space\space\space\space post}
+ \immediate\write\fdout{\percent\space\space\space ------------------------------ ------------------------------}
+ \immediate\write\fdout{\percent\space\space\space glue \space\space\space\space\space\space glue}
+ \immediate\write\fdout{\percent\space\space\space char nbflag rule (flag,sp,st,sh) nbflag rule (flag,sp,st,sh)}
+ \immediate\write\fdout{\percent\space\space\space ---- ------------------------------ ------------------------------}
+}
+
+
+\def\punctstyle#1{
+ \ifcsname xeCJK@ps@#1\endcsname
+ \edef\xeCJK@pstyle{\csname xeCJK@ps@#1\endcsname}
+ \else
+ \typeout{Warning: Punctstyle #1\space is not defined.}
+ \fi}
+
+\def\xeCJK@ps@kaiming{k}
+\def\xeCJK@ps@banjiao{b}
+\def\xeCJK@ps@quanjiao{q}
+\def\xeCJK@ps@CCT{c}
+
+\def\makegbktbl#1#2#3{
+\punctstyle{#1}
+\edef\gbktblfilename{gbk\xeCJK@pstyle#3}
+\immediate\openout\fdout=\gbktblfilename.tbl
+\outputtblfileheader
+\immediate\write\fdout{\percent}
+\immediate\write\fdout{\percent\space \space \string\punctstyle{#1}}
+\immediate\write\fdout{\percent}
+\immediate\write\fdout{\string\expandafter\string\gdef\string\csname\space
+ xeCJK@\gbktblfilename\string\endcsname\lbrace\percent}
+\input{chs\xeCJK@pstyle#2.tbl}
+
+\csname xeCJK@chs\xeCJK@pstyle#2\endcsname
+
+\immediate\write\fdout{\rbrace\percent}
+\immediate\write\fdout{\string\endinput}
+\immediate\closeout\fdout}
+
+\def\makegbktbls#1#2{
+\makegbktbl{CCT}{#1}{#2}
+\makegbktbl{banjiao}{#1}{#2}
+\makegbktbl{quanjiao}{#1}{#2}
+\makegbktbl{kaiming}{#1}{#2}}
+
+
+\makegbktbls{simsun}{song}
+\makegbktbls{simhei}{hei}
+\makegbktbls{lisu}{li}
+\makegbktbls{youyuan}{you}
+\makegbktbls{kaiti}{kai}
+\makegbktbls{fangsong}{fs}
+\makegbktbls{def}{def}
+
+
+\end{document}