diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2010-12-31 14:37:08 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2010-12-31 14:37:08 +0000 |
commit | ebf527ad32c5a33dcccfe55346f68148e6329b11 (patch) | |
tree | e95bab19eb1c72a866c8a4b30176beff57034b84 /Build/source | |
parent | efbe465c598656bef3f00c889d4372af5f5f6154 (diff) |
Bug fix and accent Kanji by Hironori Kitagawa.
git-svn-id: svn://tug.org/texlive/trunk@20899 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
-rw-r--r-- | Build/source/texk/web2c/ptexdir/ChangeLog | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/ptexdir/ptex-base.ch | 49 |
2 files changed, 48 insertions, 5 deletions
diff --git a/Build/source/texk/web2c/ptexdir/ChangeLog b/Build/source/texk/web2c/ptexdir/ChangeLog index 2153ec12490..17226a1871a 100644 --- a/Build/source/texk/web2c/ptexdir/ChangeLog +++ b/Build/source/texk/web2c/ptexdir/ChangeLog @@ -1,3 +1,7 @@ +2010-12-31 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> + + * ptex-base.ch: Bug fix and accent Kanji. + 2010-12-14 Peter Breitenlohner <peb@mppmu.mpg.de> * pbibtex.ch: Adapt to latest bibtex.web. diff --git a/Build/source/texk/web2c/ptexdir/ptex-base.ch b/Build/source/texk/web2c/ptexdir/ptex-base.ch index 96497a75e50..b325c119b5c 100644 --- a/Build/source/texk/web2c/ptexdir/ptex-base.ch +++ b/Build/source/texk/web2c/ptexdir/ptex-base.ch @@ -43,6 +43,7 @@ % (07/18/2006) ST pTeX p3.1.10 % (08/17/2009) ST pTeX p3.1.11 % (05/23/2010) AK Bug fix by Hironori Kitagawa. +% (31/12/2010) AK Bug fix and accent Kanji by Hironori Kitagawa. % @x [1.2] l.195 - pTeX: @d TeX_banner_k=='This is TeXk, Version 3.1415926' {printed when \TeX\ starts} @@ -5458,10 +5459,10 @@ else if cur_cmd=char_given then end else if cur_cmd=char_num then begin scan_char_num; - if is_char_ascii(cur_chr) then q:=new_character(f,cur_val) + if is_char_ascii(cur_val) then q:=new_character(f,cur_val) else begin if direction=dir_tate then f:=cur_tfont else f:=cur_jfont; - KANJI(cx):=cur_chr + KANJI(cx):=cur_val end end else back_input; @@ -5477,7 +5478,7 @@ else begin if font_dir[f]=dir_yoko then disp:=0 @<Append |disp_node| at begin of displace area@>; if KANJI(cx)<>empty then begin q:=new_character(f,get_jfm_pos(KANJI(cx),f)); - link(q):=get_avail; info(link(q)):=KANJI(cx); + link(q):=get_avail; info(link(q)):=KANJI(cx); last_jchr:=q; end; @z @@ -5494,6 +5495,18 @@ if h<>x then {the accent must be shifted up or down} end; @z +@x [47.1125] pTeX: make accent Kanji +tail:=new_kern(-a-delta); subtype(tail):=acc_kern; link(p):=tail; p:=q; +@y +tail:=new_kern(-a-delta); subtype(tail):=acc_kern; +if h=x then begin + if font_dir[font(p)]<>dir_default then link(link(p)):=tail + else link(p):=tail; end +else link(p):=tail; +{ bugfix: if |p| is KANJI char, |link(p)|:=|tail| collapses |p| and kern after accent. } +p:=q; +@z + @x l.22334 - pTeX procedure cs_error; begin @@ -7175,6 +7188,7 @@ procedure adjust_hlist(p:pointer;pf:boolean); label exit; var q,s,t,u,v,x,z:pointer; i,k:halfword; + a: pointer; { temporary pointer for accent } insert_skip:no_skip..after_wchar; cx:KANJI_code; {temporaly register for KANJI character} ax:ASCII_code; {temporaly register for ASCII character} @@ -7212,8 +7226,33 @@ while p<>null do hlist_node: @<Insert hbox surround spacing@>; ligature_node: @<Insert ligature surround spacing@>; penalty_node,disp_node: @<Insert penalty or displace surround spacing@>; - kern_node: if (insert_skip=after_schar)and(subtype(p)<>explicit) then - do_nothing else insert_skip:=no_skip; + kern_node: if (subtype(p)=explicit) then insert_skip:=no_skip + else if (subtype(p)=acc_kern) then begin + { When we insert \.{\\xkanjiskip}, we first ignore accent (and kerns) and + insert \.{\\xkanjiskip}, then we recover the accent. } + if q=p then begin t:=link(p); + { if p is beginning on the list, we have only to ignore nodes. } + if is_char_node(t) then + if font_dir[font(t)]<>dir_default then t:=link(t); + p:=link(link(t)); + if font_dir[font(p)]<>dir_default then + begin p:=link(p); insert_skip:=after_wchar; end + else insert_skip:=after_schar; + end + else begin + a:=p; t:=link(p); + if is_char_node(t) then + if font_dir[font(t)]<>dir_default then t:=link(t); + t:=link(link(t)); link(q):=t; p:=t; + @<Insert a space around the character |p|@>; incr(i); + if (i>5)and(pf) then + begin if is_char_node(v) then + if font_dir[font(v)]<>dir_default then v:=link(v); + v:=link(v); + end; + if link(q)<>t then link(link(q)):=a else link(q):=a; + end; + end; math_node: @<Insert math surround spacing@>; mark_node,adjust_node,ins_node,whatsit_node: {These nodes are vanished when typeset is done} |