diff options
author | Karl Berry <karl@freefriends.org> | 2019-06-07 21:07:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-06-07 21:07:38 +0000 |
commit | 1d19d9c3f48cefb4553d0f598ea407d12e6614d7 (patch) | |
tree | 8aa74357977fd1fcf1cb1fd40e776f39171b8bb6 /Master/texmf-dist | |
parent | 01c5863069156c826b8b5c15312db454a51c2264 (diff) |
luatexko (7jun19)
git-svn-id: svn://tug.org/texlive/trunk@51342 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/luatex/luatexko/ChangeLog | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/luatex/luatexko/README | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf | bin | 277717 -> 277917 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex | 53 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luatexko/luatexko.lua | 49 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luatexko/luatexko.sty | 4 |
8 files changed, 77 insertions, 45 deletions
diff --git a/Master/texmf-dist/doc/luatex/luatexko/ChangeLog b/Master/texmf-dist/doc/luatex/luatexko/ChangeLog index 68122fd00b6..09a7df505cb 100644 --- a/Master/texmf-dist/doc/luatex/luatexko/ChangeLog +++ b/Master/texmf-dist/doc/luatex/luatexko/ChangeLog @@ -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 diff --git a/Master/texmf-dist/doc/luatex/luatexko/README b/Master/texmf-dist/doc/luatex/luatexko/README index e5f821aa96b..bdb97987b2c 100644 --- a/Master/texmf-dist/doc/luatex/luatexko/README +++ b/Master/texmf-dist/doc/luatex/luatexko/README @@ -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 diff --git a/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf b/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf Binary files differindex dacd6f386ef..96079dfcc4d 100644 --- a/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf +++ b/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf diff --git a/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex b/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex index 12ee2ac8786..b7cb9f6e8b5 100644 --- a/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex +++ b/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex @@ -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 @@ fontspec의 글꼴 옵션 외에 \luatexko가 따로 제공하는 것들이 있 [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 @@ fontspec의 글꼴 옵션 외에 \luatexko가 따로 제공하는 것들이 있 크기가 다른 폰트들간에 중앙정렬이 이루어진다. 세로쓰기에서 이 옵션을 주지 않으면 |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 @@ fontspec의 글꼴 옵션 외에 \luatexko가 따로 제공하는 것들이 있 \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 @@ v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나 \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 @@ v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나 \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 @@ v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나 \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) diff --git a/Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua b/Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua index 0690a685c4d..d1429026fbe 100644 --- a/Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua +++ b/Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua @@ -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+", diff --git a/Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua b/Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua index af346161b8b..1757d5b7017 100644 --- a/Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua +++ b/Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua @@ -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+", diff --git a/Master/texmf-dist/tex/luatex/luatexko/luatexko.lua b/Master/texmf-dist/tex/luatex/luatexko/luatexko.lua index 87478153ada..17b43d5628a 100644 --- a/Master/texmf-dist/tex/luatex/luatexko/luatexko.lua +++ b/Master/texmf-dist/tex/luatex/luatexko/luatexko.lua @@ -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 fontfonts = font.fonts 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 @@ local function is_hangul_jamo (c) 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 @@ luatexko.updateforcehangul = update_force_hangul 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 @@ local function get_font_opt_dimen (fontid, optionname) 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 @@ local function insert_glue_before (head, curr, par, br, brb, classic, ict, dim) 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 function maybe_linebreak (head, curr, pc, pcl, cc, old, fid, par) 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 @@ local function do_interhangul_option (head, curr, pc, c, fontid, par) 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 function do_interlatincjk_option (head, curr, pc, pf, c, cf, par) 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 @@ end 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 diff --git a/Master/texmf-dist/tex/luatex/luatexko/luatexko.sty b/Master/texmf-dist/tex/luatex/luatexko/luatexko.sty index bf151279768..8660fe8de54 100644 --- a/Master/texmf-dist/tex/luatex/luatexko/luatexko.sty +++ b/Master/texmf-dist/tex/luatex/luatexko/luatexko.sty @@ -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@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@overlap \dimen@\dimexpr\wd\tw@-\wd\z@-\dimen@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 |