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