diff options
Diffstat (limited to 'Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty')
-rw-r--r-- | Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty | 60 |
1 files changed, 39 insertions, 21 deletions
diff --git a/Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty b/Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty index e679182321e..07481b4c578 100644 --- a/Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty +++ b/Master/texmf-dist/tex/xetex/xetexko/xetexko-space.sty @@ -1,6 +1,6 @@ % xetexko-space.sty % -% Copyright (c) 2013-2015 Dohyun Kim <nomos at ktug org> +% Copyright (c) 2013-2016 Dohyun Kim <nomos at ktug org> % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -13,7 +13,7 @@ \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname ProvidesPackage\endcsname\relax\else \ProvidesPackage{xetexko-space} - [2015/06/16 v2.13 Spacings and fonts for XeTeX-ko] + [2016/02/01 v2.14 Spacings and fonts for XeTeX-ko] \fi %%% we need XeTeX > 0.997 @@ -44,14 +44,28 @@ \repeat } -%%% default assignments (see unicode-letters.tex) -% CJK hanja = class 1 -% CJK openings = class 2 -% CJK closings and small kana = class 3 -% others = class 0 -\chardef \XKhanja \@ne -\chardef \XKcjkopening \tw@ -\chardef \XKsmallkana \thr@@ +% from JW +\ifdefined\XeTeXcharclassID\else + \ifdefined\xtxHanGlue + \let\XeTeXcharclassID\@ne + \let\XeTeXcharclassOP\tw@ + \let\XeTeXcharclassCL\thr@@ + \else + \newXeTeXintercharclass\XeTeXcharclassID + \newXeTeXintercharclass\XeTeXcharclassOP + \newXeTeXintercharclass\XeTeXcharclassCL + \let\XeTeXcharclassEX\XeTeXcharclassCL + \let\XeTeXcharclassIS\XeTeXcharclassCL + \let\XeTeXcharclassNS\XeTeXcharclassCL + \chardef\XeTeXcharclassCM=256 % + \input load-unicode-xetex-classes % + \fi +\fi + +\let \XKhanja \XeTeXcharclassID +\let \XKcjkopening \XeTeXcharclassOP +\let \XKsmallkana \XeTeXcharclassCL + \chardef \XKlatinchar \z@ \chardef \XKboundary \@cclv @@ -90,6 +104,7 @@ %%% \XeTeXcharclass "2018 = \XKcjkopening % ‘ \XeTeXcharclass "201C = \XKcjkopening % “ +\XeTeXcharclass "FF62 = \XKcjkopening % 「 %%% cjk closing parentheses \newXeTeXintercharclass \XKcjkclosing @@ -119,6 +134,7 @@ \XeTeXcharclass "FE44 = \XKcjkclosing % 』 vert \XeTeXcharclass "3011 = \XKcjkclosing % 】 \XeTeXcharclass "FE3C = \XKcjkclosing % 】 vert +\XeTeXcharclass "FF63 = \XKcjkclosing % 」 %%% cjk colons \newXeTeXintercharclass \XKcjkcolon @@ -1254,12 +1270,17 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% cjk openings and closings %%% considering bounding box +\def\XK@side@bearing#1#2{% 1: char index; 2: left=1 or right=3 -> dimen@ + \ifdim\XeTeXglyphbounds#2\XeTeXcharglyph#1>.5em + \dimen@.5em + \else + \dimen@\fontcharwd\font\count@ + \fi +} \def\precjkopenparen{\futurelet\@let@token\precjkopenparen@} \def\precjkopenparen@{% \@josa@char@to@number\@let@token\count@ - \dimen@\XeTeXglyphbounds\@ne\XeTeXcharglyph\count@ - \dimen@\dimexpr\fontcharwd\font\count@-\dimen@\relax - \ifdim\dimen@<.5em \dimen@.5em \else\advance\dimen@.1em \fi + \XK@side@bearing\count@\@ne \leavevmode \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi \hbox @@ -1274,9 +1295,7 @@ \def\precjkcloseparen{\futurelet\@let@token\precjkcloseparen@} \def\precjkcloseparen@{% \@josa@char@to@number\@let@token\count@ - \dimen@\XeTeXglyphbounds\thr@@\XeTeXcharglyph\count@ - \dimen@\dimexpr\fontcharwd\font\count@-\dimen@\relax - \ifdim\dimen@<.5em \dimen@.5em \else\advance\dimen@.1em \fi + \XK@side@bearing\count@\thr@@ \leavevmode \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi \hbox @@ -1294,9 +1313,7 @@ \def\precjkfullstop{\futurelet\@let@token\precjkfullstop@} \def\precjkfullstop@{% \@josa@char@to@number\@let@token\count@ - \dimen@\XeTeXglyphbounds\thr@@\XeTeXcharglyph\count@ - \dimen@\dimexpr\fontcharwd\font\count@-\dimen@\relax - \ifdim\dimen@<.5em \dimen@.5em \else\advance\dimen@.1em \fi + \XK@side@bearing\count@\thr@@ \leavevmode \ifx\empty\xetexkocharraise\else\raise\xetexkocharraise\fi \hbox @@ -1340,11 +1357,12 @@ \def\XKquaterskip {\hskip0.25em minus 0.25em } \def\XKhalfminusquaterskip {\hskip0.5em minus 0.25em } \def\XKthreequaterskip {\hskip0.75em minus 0.25em } +\def\XKinterhangulpenalty {\penalty50 } \def\XKinterhangulbreak - {\ifcjtypeset\else\penalty50 \fi + {\ifcjtypeset\else\XKinterhangulpenalty\fi \hskip\dimexpr\xetexkointerhchar + \z@\relax \XKskipstretchshrink} -\def\XKinterhanjabreak {\ifcjtypeset\else\penalty50 \fi \XKzeroskip} +\def\XKinterhanjabreak {\ifcjtypeset\else\XKinterhangulpenalty\fi \XKzeroskip} \def\XKcjklatinbreak {\ifcjtypeset\XKxkanjiskip\else\XKsmallskip\fi} \def\XKcjklatinsmallbreak {\ifcjtypeset\XKxkanjiskip\else\XKsmallsmallskip\fi} \def\XKhalfsmallbreak {\ifcjtypeset\XKhalfskip\else\XKsmallsmallskip\fi} |