aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v5/texpdf_format.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v5/texpdf_format.rb')
-rw-r--r--lib/sisu/v5/texpdf_format.rb48
1 files changed, 45 insertions, 3 deletions
diff --git a/lib/sisu/v5/texpdf_format.rb b/lib/sisu/v5/texpdf_format.rb
index 172dfa56..5ed6ca75 100644
--- a/lib/sisu/v5/texpdf_format.rb
+++ b/lib/sisu/v5/texpdf_format.rb
@@ -794,11 +794,52 @@ module SiSU_TeX_Pdf
@md.make.texpdf_font.mono
else @env.font.texpdf.mono
end
- # you may wish to check selected font against avaiable fonts:
+ texpdf_font_cjk=if @md.opt.lng =~/zh/ \
+ and defined? @md.make.texpdf_font.cjk_zh \
+ and not @md.make.texpdf_font.cjk_zh.nil? \
+ and @md.make.texpdf_font.cjk_zh=~/\S{3,}/
+ @md.make.texpdf_font.cjk_zh
+ elsif @md.opt.lng =~/ja/ \
+ and defined? @md.make.texpdf_font.cjk_ja \
+ and not @md.make.texpdf_font.cjk_ja.nil? \
+ and @md.make.texpdf_font.cjk_ja=~/\S{3,}/
+ @md.make.texpdf_font.cjk_ja
+ elsif @md.opt.lng =~/ko/ \
+ and defined? @md.make.texpdf_font.cjk_ko \
+ and not @md.make.texpdf_font.cjk_ko.nil? \
+ and @md.make.texpdf_font.cjk_ko=~/\S{3,}/
+ @md.make.texpdf_font.cjk_ko
+ elsif @md.opt.lng =~/(?:zh|ja|ko)/ \
+ and defined? @md.make.texpdf_font.cjk \
+ and not @md.make.texpdf_font.cjk.nil? \
+ and @md.make.texpdf_font.cjk=~/\S{3,}/
+ @md.make.texpdf_font.cjk
+ else
+ case @md.opt.lng
+ when /zh/; @env.font.texpdf.cjk_zh
+ when /ja/; @env.font.texpdf.cjk_ja
+ when /ko/; @env.font.texpdf.cjk_ko
+ else @env.font.texpdf.cjk
+ end
+ end
+ # you may wish to check selected font against available fonts:
# fc-list :outline -f "%{family}\n"
+ # fc-list :lang=ja
case @tex2pdf
when /xe/
- <<-WOK
+ if @md.opt.lng =~/(?:zh|ja|ko)/
+ <<-WOK
+\\usepackage{ucs, fontspec, xltxtra, xunicode, xeCJK}
+\\setmainCJKlanguage{#{tex_head_lang[:mainlang]}}
+\\setCJKmainfont{#{texpdf_font_cjk}}
+\\XeTeXlinebreaklocale "#{tex_head_lang[:mainlang]}"
+\\XeTeXlinebreakskip = 0pt plus 1pt
+\\setotherlanguage{#{tex_head_lang[:otherlang]}}
+\\setmainfont{#{texpdf_font}}
+\\setmonofont[Scale=0.85]{#{texpdf_font_mono}}
+ WOK
+ else
+ <<-WOK
\\usepackage{polyglossia, ucs, fontspec, xltxtra, xunicode}
\\setmainlanguage{#{tex_head_lang[:mainlang]}}
\\setotherlanguage{#{tex_head_lang[:otherlang]}}
@@ -806,7 +847,8 @@ module SiSU_TeX_Pdf
\\setmonofont[Scale=0.85]{#{texpdf_font_mono}}
% \\setsansfont{#{texpdf_font_sans}}
% \\setromanfont{#{texpdf_font_serif}}
- WOK
+ WOK
+ end
when /pdf/
if @md.file_encoding =~ /iso-?8859/i #% iso8859
<<-WOK