texlive[51342] Master/texmf-dist: luatexko (7jun19)

commits+karl at tug.org commits+karl at tug.org
Fri Jun 7 23:07:38 CEST 2019


Revision: 51342
          http://tug.org/svn/texlive?view=revision&revision=51342
Author:   karl
Date:     2019-06-07 23:07:38 +0200 (Fri, 07 Jun 2019)
Log Message:
-----------
luatexko (7jun19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/luatex/luatexko/ChangeLog
    trunk/Master/texmf-dist/doc/luatex/luatexko/README
    trunk/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf
    trunk/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex
    trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua
    trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua
    trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko.lua
    trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko.sty

Modified: trunk/Master/texmf-dist/doc/luatex/luatexko/ChangeLog
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luatexko/ChangeLog	2019-06-07 21:07:25 UTC (rev 51341)
+++ trunk/Master/texmf-dist/doc/luatex/luatexko/ChangeLog	2019-06-07 21:07:38 UTC (rev 51342)
@@ -1,3 +1,9 @@
+2019-06-07      Dohyun Kim <nomos at ktug org>
+
+	Version 2.2
+
+	* luatexko.sty, luatexko.lua: provide font option `InterCharStretch'
+
 2019-05-25      Dohyun Kim <nomos at ktug org>
 
 	Version 2.1

Modified: trunk/Master/texmf-dist/doc/luatex/luatexko/README
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luatexko/README	2019-06-07 21:07:25 UTC (rev 51341)
+++ trunk/Master/texmf-dist/doc/luatex/luatexko/README	2019-06-07 21:07:38 UTC (rev 51342)
@@ -1,4 +1,4 @@
-LuaTeX-ko Package version 2.1 (2019/05/25)
+LuaTeX-ko Package version 2.2 (2019/06/07)
 ===========================================
 
 This is a Lua(La)TeX macro package that supports typesetting Korean

Modified: trunk/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex	2019-06-07 21:07:25 UTC (rev 51341)
+++ trunk/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex	2019-06-07 21:07:38 UTC (rev 51342)
@@ -72,13 +72,15 @@
 \author{Dohyun Kim \normalsize |<nomos at ktug org>| \and
         Soojin Nam \normalsize |<jsunam at gmail com>| \and
   \normalsize <\url{http://github.com/dohyunkim/luatexko}>}
-\date{Version 2.1\quad 2019/05/25}
+\date{Version 2.2\quad 2019/06/07}
 \maketitle
 
 \begin{quote}\small
   For a summary introduction in English, please see |README| file.
 
-\begin{itemize}\linespread{1.1}\selectfont
+  \begin{itemize}\linespread{1.1}\selectfont
+    \item[v2.2] ------
+    \item \hyperref[sec:fontoption]{글꼴옵션 |InterCharStretch| 제공}
     \item[v2.0] ------
     \item \hyperref[sec:packageopt]{패키지 옵션 |nofontspec| 제거}
     \item \hyperref[sec:fontoption]{글꼴옵션 |PunctRaise|, |NoEmbeding| 제거}
@@ -266,6 +268,14 @@
   [InterCharacter=.125em]
 \end{verbatim}
 
+\item[InterCharStretch] CJK 글자간 가변공백{\small(글루)}의
+  stretch 값을 지시한다.%
+  \footnote{%
+    플레인텍에서는 |intercharstretch=<dimen>|. }
+\begin{verbatim}
+  [InterCharStretch=0.5pt]
+\end{verbatim}
+
 \item[CharRaise] 글자의 세로 위치를
   {\addhangulfontfeature{CharRaise=.3em} 조절}할 수 있는 기능이다.
   이로써 주변에 식자되는 다른 글꼴과 조화를 이루게 한다.%
@@ -279,6 +289,21 @@
   크기가 다른 폰트들간에 중앙정렬이 이루어진다.
   세로쓰기에서 이 옵션을 주지 않으면 |0.5ex|가 기본값으로 동작한다.
 
+\item[RemoveClassicSpaces] 고문헌 조판시에 CJK 글자들 사이의 공백을 없애준다.%
+  \footnote{%
+    플레인텍에서는 |+removeclassicspaces|. }
+
+\item[CompressPunctuations] CJK 구두점 {\small (낫표 따위)}의 글자폭을
+  반각으로 만든다. v2.0부터는 사용자가 지시하지 않는 한 자동으로 글자폭을
+  줄여주지 않는다.%
+  \footnote{%
+    플레인텍에서는 |+compresspunctuations|. }
+  이 옵션은 |CharacterWidth=AlternateHalf| 내지 {\small (세로쓰기의 경우)}
+  |Vertical=HalfMetrics|와 거의 같은 기능을 한다.%
+  \footnote{%
+    플레인텍에서는 각각 |+halt| 및 |+vhal|이다. 이들과 완전 동일하진
+    않다. 가령 U+3002 (\char"3002) 처리의 경우.}
+
 \item[Protrusion] 특정 글자가 행 끌에 왔을 때 판면 바깥으로 끌어내는
   기능이다. Lua\TeX은 기본값으로 온점 반점 등을 완전 글자내밀기 한다.
   |Protrusion|은 |Protrusion=default|와 같은 뜻이다.%
@@ -295,20 +320,6 @@
   \footnote{%
     플레인텍에서는 |expansion=default|. }
 
-\item[RemoveClassicSpaces] 고문헌 조판시에 CJK 글자들 사이의 공백을 없애준다.%
-  \footnote{%
-    플레인텍에서는 |+removeclassicspaces|. }
-
-\item[CompressPunctuations] CJK 구두점 {\small (낫표 따위)}의 글자폭을
-  반각으로 만든다. v2.0부터는 사용자가 지시하지 않는 한 자동으로 글자폭을
-  줄여주지 않는다.%
-  \footnote{%
-    플레인텍에서는 |+compresspunctuations|. }
-  이 옵션은 |CharacterWidth=AlternateHalf| 내지 {\small (세로쓰기의 경우)}
-  |Vertical=HalfMetrics|와 거의 같은 기능을 한다.%
-  \footnote{%
-    플레인텍에서는 각각 |+halt| 및 |+vhal|이다. 이들과 완전 동일하진
-    않다. 가령 U+3002 (\char"3002) 처리의 경우.}
 \end{description}
 
 \section{고문헌}\label{sec:classic}
@@ -353,11 +364,11 @@
 
 \section{세로쓰기}\label{sec:verttype}
 세로쓰기는 폰트의 고급 오픈타입 속성을 이용하므로 폰트가 이를 지원해야
-가능한 일이다. 폰트에 |Vertical=Alternates|와 |RawFeature=+vertical| 옵션을
+가능한 일이다. 폰트에 |Vertical=Alternates|와 |RawFeature=vertical| 옵션을
 준다.%
 \footnote{%
-  이는 플레인텍에서 |+vertical;+vert| 옵션을 주는 것과 같다.
-  사실 |+vertical|을 선언하면 |vert|는 자동으로 켜지도록 해 두었다. }\,%
+  이는 플레인텍에서 |vertical;+vert| 옵션을 주는 것과 같다.
+  사실 |vertical|을 선언하면 |vert|는 자동으로 켜지도록 해 두었다. }\,%
 \footnote{%
   |vmtx| 정보를 가지고 있지 않은 글꼴은 세로쓰기에 적합치 않은 글꼴이다.
   |otfinfo -t <파일>| 명령으로 글꼴에 들어있는 테이블 정보를 알 수 있다. }
@@ -375,7 +386,7 @@
 
 \begin{figure}
 \framebox[\linewidth]{\begin{vertical}{20em}\sffamily
-  \addhangulfontfeature{Vertical=Alternates, RawFeature=+vertical}
+  \addhangulfontfeature{Vertical=Alternates, RawFeature=vertical}
   \linespread{1.5}\selectfont
   \hunmintxt
 \end{vertical}}
@@ -385,7 +396,7 @@
 \begin{figure}
 \framebox[\linewidth]{\begin{vertical}{17em}\sffamily
   \addhangulfontfeature{Vertical=Alternates, CharRaise=3.2pt,
-  CompressPunctuations, CharacterWidth=Full, RawFeature=+vertical}
+  CompressPunctuations, CharacterWidth=Full, RawFeature=vertical}
   \parindent-1em\leftskip1em \linespread{1.5}\selectfont
   \spaceskip=.5em plus.25em minus.125em
   \noindent 님의 침묵(The Silent Beloved)

Modified: trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua	2019-06-07 21:07:25 UTC (rev 51341)
+++ trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua	2019-06-07 21:07:38 UTC (rev 51342)
@@ -13,8 +13,8 @@
 
 luatexbase.provides_module({
   name        = "luatexko-normalize",
-  version     = "2.1",
-  date        = "2019/05/25",
+  version     = "2.2",
+  date        = "2019/06/07",
   author      = "Dohyun Kim, Soojin Nam",
   description = "Hangul normalization",
   license     = "LPPL v1.3+",

Modified: trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua	2019-06-07 21:07:25 UTC (rev 51341)
+++ trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua	2019-06-07 21:07:38 UTC (rev 51342)
@@ -13,8 +13,8 @@
 
 luatexbase.provides_module({
   name        = "luatexko-uhc2utf8",
-  version     = "2.1",
-  date        = "2019/05/25",
+  version     = "2.2",
+  date        = "2019/06/07",
   author      = "Dohyun Kim, Soojin Nam",
   description = "UHC (CP949) input encoding",
   license     = "LPPL v1.3+",

Modified: trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko.lua	2019-06-07 21:07:25 UTC (rev 51341)
+++ trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko.lua	2019-06-07 21:07:38 UTC (rev 51342)
@@ -13,8 +13,8 @@
 
 luatexbase.provides_module {
   name        = 'luatexko',
-  date        = '2019/05/25',
-  version     = '2.1',
+  date        = '2019/06/07',
+  version     = '2.2',
   description = 'typesetting Korean with LuaTeX',
   author      = 'Dohyun Kim, Soojin Nam',
   license     = 'LPPL v1.3+',
@@ -52,10 +52,11 @@
 local fontgetfont   = font.getfont
 local getparameters = font.getparameters
 
-local texcount = tex.count
-local texround = tex.round
-local texset   = tex.set
-local texsp    = tex.sp
+local texcount  = tex.count
+local texround  = tex.round
+local texset    = tex.set
+local texsp     = tex.sp
+local texsprint = tex.sprint
 
 local stringformat = string.format
 
@@ -183,7 +184,7 @@
   or     c >= 0x3131 and c <= 0x318E
 end
 
-local stretch_f, shrink_f = 5/100, 3/100 -- should be consistent for ruby
+local stretch_f = 5/100 -- should be consistent for ruby
 
 local function get_font_data (fontid)
   return fontgetfont(fontid) or fontfonts[fontid] or {}
@@ -275,11 +276,12 @@
 local active_processes = {}
 
 local char_font_options = {
-  interhangul     = {},
-  interlatincjk   = {},
-  intercharacter  = {},
-  hangulspaceskip = {},
-  tonemarkwidth   = {},
+  hangulspaceskip  = {},
+  intercharacter   = {},
+  intercharstretch = {},
+  interhangul      = {},
+  interlatincjk    = {},
+  tonemarkwidth    = {},
 }
 
 local function hangul_space_skip (curr, newfont)
@@ -576,7 +578,7 @@
   return dim
 end
 
-local function insert_glue_before (head, curr, par, br, brb, classic, ict, dim)
+local function insert_glue_before (head, curr, par, br, brb, classic, ict, dim, fid)
   local pn = nodenew(penaltyid)
   if not br then
     pn.penalty = 10000
@@ -590,12 +592,13 @@
 
   dim = dim or 0
   local gl = nodenew(glueid)
-  local en = get_en_size(curr.font)
+  local en = get_en_size(fid)
   if ict then
     en = classic and en or en/4
     setglue(gl, en * ict[1] + dim, nil, en * ict[2])
   else
-    setglue(gl, dim, en * stretch_f, en * shrink_f)
+    local str = get_font_opt_dimen(fid, "intercharstretch") or stretch_f*en
+    setglue(gl, dim, str, str*0.6)
   end
 
   head = insert_before(head, curr, pn)
@@ -610,7 +613,7 @@
     local br  = brb and breakable_after[pc]
     local dim = get_font_opt_dimen(fid, "intercharacter")
     if ict or br or dim and (pcl >= 1 or ccl >= 1) then
-      head = insert_glue_before(head, curr, par, br, brb, old, ict, dim)
+      head = insert_glue_before(head, curr, par, br, brb, old, ict, dim, fid)
     end
   end
   return head, cc, ccl
@@ -713,7 +716,7 @@
   if cc*pc == 1 and curr.lang ~= nohyphen then
     local dim = get_font_opt_dimen(fontid, "interhangul")
     if dim then
-      head = insert_glue_before(head, curr, par, true, true, false, false, dim)
+      head = insert_glue_before(head, curr, par, true, true, false, false, dim, fontid)
     end
   end
 
@@ -763,7 +766,7 @@
     local fontid = cc == 1 and cf or pf
     local dim = get_font_opt_dimen(fontid, "interlatincjk")
     if dim then
-      head = insert_glue_before(head, curr, par, true, brb, false, false, dim)
+      head = insert_glue_before(head, curr, par, true, brb, false, false, dim, fontid)
     end
   end
 
@@ -1134,6 +1137,16 @@
 local rubybox = {}
 luatexko.rubybox = rubybox
 
+local function getrubystretchfactor (box)
+  local _, fid = ruby_char_font(box)
+  local str = get_font_opt_dimen(fid, "intercharstretch")
+  if str then
+    local em = get_en_size(fid) * 2
+    texsprint(stringformat("\\def\\luatexkostretchfactor{%.4f}", str/em/2))
+  end
+end
+luatexko.getrubystretchfactor = getrubystretchfactor
+
 local function process_ruby_pre_linebreak (head)
   local curr = head
   while curr do

Modified: trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko.sty
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko.sty	2019-06-07 21:07:25 UTC (rev 51341)
+++ trunk/Master/texmf-dist/tex/luatex/luatexko/luatexko.sty	2019-06-07 21:07:38 UTC (rev 51342)
@@ -13,7 +13,7 @@
 
 \ifdefined\luatexkohangulfontattr \endinput\fi
 \ifdefined\selectfont
-  \ProvidesPackage{luatexko}[2019/05/25 v2.1 typesetting Korean with LuaTeX]
+  \ProvidesPackage{luatexko}[2019/06/07 v2.2 typesetting Korean with LuaTeX]
   \RequirePackage{luatexbase}
   \RequirePackage{fontspec}
 \else
@@ -190,6 +190,7 @@
     #2}%
   \hbadness\@M % supress underfull warning
   \dimen at ii\dimexpr\rubysize em\relax % ruby font size
+  \directlua{ luatexko.getrubystretchfactor(tex.box[2]) }% for intercharstretch
   \ifdim\wd\z@ < \wd\tw@ % ruby is wider
     \ifruby at overlap
       \dimen@\dimexpr\wd\tw at -\wd\z at -\dimen at ii\relax % overhang .5 rubysize
@@ -662,6 +663,7 @@
 \newfontfeature{Expansion}{expansion=\ifx\empty#1\empty default\else #1\fi }
 \newfontfeature{Protrusion}{protrusion=\ifx\empty#1\empty default\else #1\fi }
 \newfontfeature{InterCharacter}{intercharacter=#1}
+\newfontfeature{InterCharStretch}{intercharstretch=#1}
 % italic correction
 \def\nocorrlist{,.^^^^3001^^^^3002^^^^ff0c^^^^ff0e^^^^ff61^^^^ff64}
 % package options



More information about the tex-live-commits mailing list