summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/luatex/luatexko/ChangeLog6
-rw-r--r--Master/texmf-dist/doc/luatex/luatexko/README2
-rw-r--r--Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdfbin277717 -> 277917 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.tex53
-rw-r--r--Master/texmf-dist/tex/luatex/luatexko/luatexko-normalize.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luatexko/luatexko-uhc2utf8.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luatexko/luatexko.lua49
-rw-r--r--Master/texmf-dist/tex/luatex/luatexko/luatexko.sty4
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
index dacd6f386ef..96079dfcc4d 100644
--- a/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf
+++ b/Master/texmf-dist/doc/luatex/luatexko/luatexko-doc.pdf
Binary files differ
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