OSDN Git Service

Support slanted/extended shapes in non-embedding fonts.
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Tue, 27 Sep 2011 21:55:03 +0000 (06:55 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Tue, 27 Sep 2011 21:55:03 +0000 (06:55 +0900)
src/luatexja/jfont.lua
src/luatexja/rmlgbm.lua
test/test02-latex.pdf
test/test02-latex.tex

index 323114b..cfb071e 100644 (file)
@@ -136,8 +136,8 @@ local function load_jfont_metric()
    if jfm_file_name=='' then 
       ltjb.package_error('luatexja',
                         'no JFM specified',
-                        {'To load and define a Japanese font, a JFM must be specified.',
-                         "The JFM 'ujis' will be  used for now."})
+                        'To load and define a Japanese font, a JFM must be specified.'..
+                         "The JFM 'ujis' will be  used for now.")
       jfm_file_name='ujis'
    end
    for j,v in ipairs(metrics) do 
index cbf7a2b..42fe6e3 100644 (file)
@@ -73,10 +73,22 @@ local function mk_rml(name, size, id)
    cachedata.size = size
 
    -- no embedding
-   fontdata.name = specification.name .. size
+   local var = ''
+   if features.slant then 
+      fontdata.slant = features.slant*1000
+      cachedata.slant = fontdata.slant
+      var = var .. 's' .. tostring(features.slant)
+   end
+   if features.extend then 
+      fontdata.extend = features.extend*1000
+      cachedata.extend = fontdata.extend
+       var = var .. 'x' .. tostring(features.extend)
+  end
+   fontdata.name = specification.name .. size .. var
    cachedata.name = fontdata.name
-   fontdata.fullname = specification.name
+   fontdata.fullname = specification.name .. var
    cachedata.fullname = fontdata.fullname
+
    fontdata.psname = specification.name
    cachedata.psname = fontdata.psname
 
index 429d2e3..6b9bcbf 100644 (file)
Binary files a/test/test02-latex.pdf and b/test/test02-latex.pdf differ
index 1b6c164..136ca60 100644 (file)
@@ -19,6 +19,9 @@
     \ltjsetparameter{xkanjiskip={0.25em plus 0.15em minus 0.06em}}%
   \fi}
 
+% for test
+\DeclareTextFontCommand{\textix}{\fontshape{ix}\selectfont}
+
 \makeatother
 \begin{document}
 \section{NFSS2 のテスト}
 \noindent{\LARGE ◆あいうえおabcかきく{\gt かきくa{\bf uyあ}いう}}
 %\end{document}
 
+\section{slanted, extended}
+\DeclareFontShape{JY3}{mc}{m}{sl}{<-> s*[0.960444] 
+  psft:Ryumin-Light:slant=0.25;jfm=ujiso25}{}
+\DeclareFontShape{JY3}{mc}{x}{n}{<-> s*[0.960444] 
+  psft:Ryumin-Light:extend=1.5;jfm=ujisx50}{}
+\DeclareFontShape{JY3}{gt}{m}{sl}{<-> s*[0.960444] 
+  file:ipag.ttf:slant=0.25;jfm=ujiso25}{}
+\DeclareFontShape{JY3}{gt}{x}{n}{<-> s*[0.960444] 
+  file:ipag.ttf:extend=1.5;jfm=ujisx50}{}
+
+% for test
+\DeclareFontShape{JY3}{gt}{m}{ix}{<-> s*[0.960444] 
+  file:ipag.ttf:slant=0.25;jfm=ujiso25}{}
+
+\paragraph{psft prefix でもOK?}\ 
+
+\textsl{日本語の機械的な斜体}直立,
+\textsl{あいう■\textup{■え■■}■おかき}
+
+{\fontfamily{mc}\fontseries{x}\selectfont あいう}
+
+\paragraph{TTF, OTFではOK}\ 
+
+\textgt{\textsl{日本語の機械的な斜体}直立,
+\textsl{あいう■\textup{■え■■}■おかき}}
+
+{\fontfamily{gt}\fontseries{x}\selectfont あいう}
+
+\paragraph{italic correction inserted by {\tt\char92text...}}\
+
+font series `ix': 欧文は未定義,和文は機械的斜体.
+
+{\gt■\textix{■あabcい■\textup{■うxyzえ■■}■おpqrか■}■}
+
+{\gt■f\textix{f■あい■f\textup{f■うえ■■f}f■おか■f}f■}
+
+イタリック補正なし:{\gt {\slshape ■}■}
+イタリック補正あり:{\gt {\slshape ■\/}■}
+
+\newpage{\obeylines\tt
+\setbox0=\hbox{\gt\textsl{あいう■\textup{■え■}■おかき}}
+\directlua{ltj.ext_show_node_list(tex.box[0].head, '', tex.print)}\par}
+
+\bigskip
+
+正しい補正量:$0.960444\times 10 \times 0.88\times 0.25 \simeq
+\directlua{tex.print(0.960444*10*0.88*0.25)}\,\textrm{pt}$
 
 \end{document}