From 235f83d470866decff55a50c0ea380ab174457d8 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sat, 21 Sep 2013 00:12:01 -0400 Subject: v4 v5: i18n CJK: zh ja ko, add languages Chinese, Japanese, Korean * texpdf, has large texlive xetex dependencies (Korean untested) --- lib/sisu/v4/texpdf_format.rb | 48 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) (limited to 'lib/sisu/v4/texpdf_format.rb') diff --git a/lib/sisu/v4/texpdf_format.rb b/lib/sisu/v4/texpdf_format.rb index b010bb08..d87a457e 100644 --- a/lib/sisu/v4/texpdf_format.rb +++ b/lib/sisu/v4/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 -- cgit v1.2.3