diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2010-10-22 13:56:41 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2010-10-22 13:56:41 +0000 |
commit | 2c078412ccd9dab1d59b28b73b5b9eee8b72eb7d (patch) | |
tree | c0aa791fc3df4a847581ea55b11de8f8a1cc4389 /Build/source/texk/dvipsk/output.c | |
parent | b46211a1d0f00cb5ab42d2510ddd0d656aa52989 (diff) |
output.c: recover the old code in hvpos() for japanese typesetting because the changed code leads to incorrect result in some cases. other cases than japanese are not affected.
git-svn-id: svn://tug.org/texlive/trunk@20155 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipsk/output.c')
-rw-r--r-- | Build/source/texk/dvipsk/output.c | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/Build/source/texk/dvipsk/output.c b/Build/source/texk/dvipsk/output.c index 6e64bd7e020..915335a1387 100644 --- a/Build/source/texk/dvipsk/output.c +++ b/Build/source/texk/dvipsk/output.c @@ -914,13 +914,19 @@ hvpos(void) numout(hh); numout(vv); chrcmd('y'); - } else if (rhh != hh) { - numout(hh); - numout(vv); - chrcmd('a'); - } else { /* hard to get this case, but it's there when you need it! */ - numout(vv - rvv); - chrcmd('x'); + } else if (jflag) { + numout(hh) ; + numout(vv) ; + chrcmd('a') ; + } else { + if (rhh != hh) { + numout(hh); + numout(vv); + chrcmd('a'); + } else { /* hard to get this case, but it's there when you need it! */ + numout(vv - rvv); + chrcmd('x'); + } } rvv = vv; } else if (rhh != hh || jflag) { @@ -957,13 +963,19 @@ hvpos(void) numout(vv); numout(-hh); chrcmd('y'); - } else if (rvv != vv) { - numout(vv); - numout(-hh); - chrcmd('a'); - } else { /* hard to get this case, but it's there when you need it! */ - numout(rhh - hh); - chrcmd('x'); + } else if (jflag) { + numout(vv) ; + numout(-hh) ; + chrcmd('a') ; + } else { + if (rvv != vv) { + numout(vv); + numout(-hh); + chrcmd('a'); + } else { /* hard to get this case, but it's there when you need it! */ + numout(rhh - hh); + chrcmd('x'); + } } rhh = hh; } else if (rvv != vv || jflag) { @@ -1654,7 +1666,10 @@ drawchar(chardesctype *c, int cc) } if (curfnt->iswide == 0 && curfnt->codewidth == 2) { + Boolean savejflag = jflag; + jflag = 1; hvpos(); + jflag = savejflag; if (lastfont != curfnt->psname) fontout(curfnt->psname); scout2(cc); |