リビジョン | a9a7df1e41a1ff1b4dfbc66a469df1f8e936c415 (tree) |
---|---|
日時 | 2019-07-25 17:44:55 |
作者 | Hironori Kitagawa <h_kitagawa2001@yaho...> |
コミッター | Hironori Kitagawa |
\ltj@vert@ori: orientation of a character in \tate
@@ -58,6 +58,7 @@ local dir_tate = luatexja.dir_table.dir_tate | ||
58 | 58 | local attr_ykblshift = luatexbase.attributes['ltj@ykblshift'] |
59 | 59 | local attr_tkblshift = luatexbase.attributes['ltj@tkblshift'] |
60 | 60 | local attr_icflag = luatexbase.attributes['ltj@icflag'] |
61 | +local attr_vert_ori = luatexbase.attributes['ltj@vert@ori'] | |
61 | 62 | |
62 | 63 | local ltjf_font_extra_info = ltjf.font_extra_info |
63 | 64 |
@@ -180,7 +181,7 @@ local function capsule_glyph_tate(p, met, char_data, head, dir) | ||
180 | 181 | local pf, pc = getfont(p), getchar(p) |
181 | 182 | local feir = ltjf_font_extra_info[pf] |
182 | 183 | if feir and feir.rotation and met.vert_activated then |
183 | - if feir.rotation[pc] then | |
184 | + if feir.rotation[pc] and (has_attr(p, attr_vert_ori) or 0)<=0 then | |
184 | 185 | return capsule_glyph_tate_rot(p, met, char_data, head, dir, 0.5*(ascent-descent)) |
185 | 186 | end |
186 | 187 | end |
@@ -147,6 +147,7 @@ | ||
147 | 147 | \newattribute\ltj@tablshift % attribute for talbaselineshift |
148 | 148 | \newattribute\ltj@tkblshift % attribute for tjabaselineshift |
149 | 149 | \newattribute\jfam % index for current jfam |
150 | +\newattribute\ltj@vert@ori % <=0: UAX#50, >0: always upright | |
150 | 151 | |
151 | 152 | \newattribute\ltj@dir |
152 | 153 | \newlanguage\ltj@@japanese |
@@ -2,46 +2,40 @@ | ||
2 | 2 | \usepackage[margin=15mm,centering]{geometry} |
3 | 3 | \usepackage{lltjext,xcolor} |
4 | 4 | %\usepackage{lua-visual-debug} |
5 | +\makeatletter | |
6 | +\protected\def\ltjuprightchar{\afterassignment\ltj@@uprightcharchar\ltj@tempcnta} | |
7 | +\def\ltj@@uprightchar{{\directlua{tex.globaldefs=0}\ltj@alljachar | |
8 | + \ltj@vert@ori\@ne\ltj@@origchar\ltj@tempcnta}} | |
9 | +\def\ltjvertupright{\ltj@vert@ori\@ne} | |
5 | 10 | \begin{document} |
11 | +\sffamily | |
6 | 12 | \def\V#1{% |
7 | 13 | \setbox0=\hbox to0pt{\yoko\hss\smash{#1} \kern-\zw\hss}% |
8 | 14 | \box0\relax |
9 | 15 | } |
10 | -\def\YL{\rlap{\textcolor{magenta}{\vrule height 0.0625mm depth 0.0625mm width 500pt}}} | |
16 | +\def\YL{\rlap{\textcolor{cyan!50!white}{\vrule height 0.05mm depth 0.05mm width 500pt}}} | |
11 | 17 | \def\TEST#1{\smash{\hbox to 0pt{\tate% |
12 | 18 | \kern120pt\YL% |
13 | 19 | \tfont\A=#1:jfm=ujisv at 10pt\A |
14 | 20 | \jfont\B=#1:jfm=ujis at 10pt\B |
15 | - 国\V T\V y\V p\V o\V g\V r\V a\V p\V h\V y国\V Q国 | |
16 | - \V J国\V{\ltjjachar`Å}国 | |
21 | + 国\V T\V y\V p\V o\V g\V r\V a\V p\V h\V Y国\V Q国 | |
22 | + \V J国\V{\ltjjachar`Å}国\V{\ltjjachar`β}国 | |
17 | 23 | \hss}}% |
18 | - \smash{\hbox to 0pt{\tate% | |
24 | + \smash{\hbox to 0pt{\tate\ltjvertupright% | |
19 | 25 | \hbox to 120pt{\ttfamily #1\hss}\YL% |
20 | - \tfont\A=#1:jfm=ujisv at 10pt\A | |
21 | - 国Typography国Q国J国\ltjjachar`Å国\ltjjachar"3031国 | |
26 | + \tfont\A=#1:jfm=ujisv;notdef=false at 10pt\A | |
27 | + 国TypographY国Q国J国\ltjjachar`Å国\ltjjachar`β国\ltjjachar"3031国 | |
28 | + \ltjjachar"41国 | |
22 | 29 | \hss}}\quad} |
23 | 30 | |
31 | +% AJ1-6 には Å の pre-rotated glyph あり→こいつは回転してはいけない | |
32 | +% TODO: notdef があると乱れる | |
33 | + | |
24 | 34 | \def\TL{\smash{\rlap{\hbox to 0pt{\tate% |
25 | - \kern120pt\color{cyan}\kern-0.0625mm% | |
26 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
27 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
28 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
29 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
30 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
31 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
32 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
33 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
34 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
35 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
36 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
37 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
38 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
39 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
40 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
41 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
42 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
43 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
44 | - \vrule height 400pt depth 0pt width 0.125mm\kern\dimexpr10pt-0.125mm% | |
35 | + \kern120pt\color{cyan}\kern-0.05mm% | |
36 | + \count2=0 \loop\ifnum\count2<50 | |
37 | + \vrule height 400pt depth 0pt width 0.1mm\kern\dimexpr10pt-0.1mm% | |
38 | + \advance\count2 by 1\relax\repeat | |
45 | 39 | }}}} |
46 | 40 | |
47 | 41 | \leavevmode |