texlive[68059] Master/texmf-dist: evangelion-jfm (26aug23)

commits+karl at tug.org commits+karl at tug.org
Sat Aug 26 00:44:09 CEST 2023


Revision: 68059
          http://tug.org/svn/texlive?view=revision&revision=68059
Author:   karl
Date:     2023-08-26 00:44:09 +0200 (Sat, 26 Aug 2023)
Log Message:
-----------
evangelion-jfm (26aug23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-en.tex
    trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-jp.tex
    trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-sc.pdf
    trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-sc.tex
    trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/README.md
    trunk/Master/texmf-dist/source/luatex/evangelion-jfm/Evangelion-JFM.dtx
    trunk/Master/texmf-dist/tex/luatex/evangelion-jfm/jfm-eva.lua

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/makefile

Modified: trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-en.tex	2023-08-25 22:43:52 UTC (rev 68058)
+++ trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-en.tex	2023-08-25 22:44:09 UTC (rev 68059)
@@ -45,7 +45,7 @@
 \maketitle
 
 \begin{abstract}
-    This documentation is going to introduce Evangelion Japanese Font Metric (hereinafter referred to as ``\textsf{Eva-JFM}''), a Japanese Font Metric for typesetting high quality Chinese and Japanese documents. It can be used with Traditional Chinese, Simplified Chinese and Japanese fonts for both vertically and horizontally typesetted texts. It aims to provide a font metric which makes full use of the \texttt{priority} feature (provided by \textsf{\LuaTeX-ja}), bases on the standard~\cite{jlreq}, and supports some advanced (a.k.a., rarely-used) features. The documentation is now written in both Chinese and English.\par
+    This documentation is going to introduce Evangelion Japanese Font Metric (hereinafter referred to as ``\textsf{Eva-JFM}''), a Japanese Font Metric for typesetting high quality Chinese and Japanese documents. It can be used with Traditional Chinese, Simplified Chinese and Japanese fonts for both vertically and horizontally typesetted texts. It aims to provide a font metric which makes full use of the \texttt{priority} feature (provided by \textsf{\LuaTeX-ja}), bases on the standard~\cite{jlreq}, and supports some advanced (a.k.a., rarely-used) features. The documentation is now written in Chinese, Japanese and English.\par
     This documentation is far from complete. It may have many grammatical (and contextual) errors.
 \end{abstract}
 

Modified: trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-jp.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-jp.tex	2023-08-25 22:43:52 UTC (rev 68058)
+++ trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-jp.tex	2023-08-25 22:44:09 UTC (rev 68059)
@@ -4,7 +4,7 @@
 \makeatother
 \documentclass[twoside]{ltjsarticle}
 \usepackage{graphicx}
-\usepackage[hiragino-pron, match,deluxe]{luatexja-preset}
+\usepackage[hiragino-pron, match, deluxe]{luatexja-preset}
 \setmainfont{Linux Libertine O}
 \setsansfont{Linux Biolinum O}
 \setmonofont[Scale = MatchLowercase, FakeStretch = 1.137121]{Iosevka Slab}

Modified: trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-sc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-sc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-sc.tex	2023-08-25 22:43:52 UTC (rev 68058)
+++ trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/Eva-JFM_doc-sc.tex	2023-08-25 22:44:09 UTC (rev 68059)
@@ -49,7 +49,7 @@
 \maketitle
 
 \begin{abstract}
-    本文档将介绍名为Evangelion Japanese Font Metric(下简称为``\textsf{Eva-JFM}'')的JFM文件。其适用于简体中文(以下简称为「简中」)、繁体中文(以下简称为「繁中」)及日文字体的横直排。旨在提供一个充分利用\LuaTeX-ja的\texttt{priority}特性,基于标准\cite{jlreq}的同时,支持一些罕用特性的JFM文件。文档暂使用中文及西文撰写。
+    本文档将介绍名为Evangelion Japanese Font Metric(下简称为``\textsf{Eva-JFM}'')的JFM文件。其适用于简体中文(以下简称为「简中」)、繁体中文(以下简称为「繁中」)及日文字体的横直排。旨在提供一个充分利用\LuaTeX-ja的\texttt{priority}特性,基于标准\cite{jlreq}的同时,支持一些罕用特性的JFM文件。文档使用中文、日文及西文撰写。
 \end{abstract}
 
 \tableofcontents

Modified: trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/README.md	2023-08-25 22:43:52 UTC (rev 68058)
+++ trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/README.md	2023-08-25 22:44:09 UTC (rev 68059)
@@ -42,12 +42,22 @@
 
 - 原始 調整なし Plain
 
+- 原始比例宽度 プロポーショナル(調整なし) Proportional (with no aki adjust for punct)
+
+- 比例宽度 プロポーショナル Proportional
+
 ## 状态・現在のバージョン・Current Version
 
-`Ver 1.0.4 (e)`
+`Ver 1.0.5 (b)`
 
 ## 历史・変更ログ・Changelog
 
+- 2023.8.25 Ver 1.0.5 (b): add feature `prop` and `propw` for japanese typesetting.
+
+- 2023.8.23 Ver 1.0.5 (a): add character `U+2E3A` and `U+2E3B` to be compatible with Source Han Fonts' ligatures.
+
+- 2023.8.3 Ver 1.0.4 (f): ''optimized'' the behaviour of TC punct at line end.
+
 - 2023.5.19 Ver 1.0.4 (e): update japanese documentation and README.
 
 - 2023.5.17 Ver 1.0.4 (c): sync the documentation (en&sc) for the new feature.

Added: trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/makefile
===================================================================
--- trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/makefile	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/makefile	2023-08-25 22:44:09 UTC (rev 68059)
@@ -0,0 +1,15 @@
+doc-manu = Eva-JFM_doc-sc.tex Eva-JFM_doc-en.tex Eva-JFM_doc-jp.tex
+
+.PHONY : release
+release : Evangelion-JFM.dtx jfm-eva.lua
+	luatex Evangelion-JFM.dtx
+	lualatex Eva-JFM_doc-sc.tex
+	lualatex Eva-JFM_doc-sc.tex
+	latexmk -c Eva-JFM_doc-sc.tex
+	lualatex Eva-JFM_doc-jp.tex
+	lualatex Eva-JFM_doc-jp.tex
+	latexmk -c Eva-JFM_doc-jp.tex
+	lualatex Eva-JFM_doc-en.tex
+	lualatex Eva-JFM_doc-en.tex
+	latexmk -c Eva-JFM_doc-en.tex
+	rm $(doc-manu)


Property changes on: trunk/Master/texmf-dist/doc/luatex/evangelion-jfm/makefile
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/luatex/evangelion-jfm/Evangelion-JFM.dtx
===================================================================
--- trunk/Master/texmf-dist/source/luatex/evangelion-jfm/Evangelion-JFM.dtx	2023-08-25 22:43:52 UTC (rev 68058)
+++ trunk/Master/texmf-dist/source/luatex/evangelion-jfm/Evangelion-JFM.dtx	2023-08-25 22:44:09 UTC (rev 68059)
@@ -1,7 +1,7 @@
 % \iffalse meta-comment
 % Copyright © 2023, RadioNoiseE (Jing Huang)
 % Evangelion Japanese Font Metric for LuaTeX
-% Current Version: 1.0.3 (c)
+% Current Version: 1.0.5 (b)
 % Dev URL: https://github.com/RadioNoiseE/Evangelion-JFM
 % \fi
 %<*batchfile>
@@ -39,7 +39,7 @@
 %<en>\usepackage[margin=1.2in]{geometry}
 \usepackage{graphicx}
 %<sc>\usepackage[match]{luatexja-fontspec}
-%<ja>\usepackage[hiragino-pron, match,deluxe]{luatexja-preset}
+%<ja>\usepackage[hiragino-pron, match, deluxe]{luatexja-preset}
 %<en>\usepackage{fontspec, luatexja}
 %<*en>
 \newfontfeature{microtype}{protrusion=default;expansion=default}
@@ -97,10 +97,10 @@
 \maketitle
 
 \begin{abstract}
-%<sc>    本文档将介绍名为Evangelion Japanese Font Metric(下简称为``\textsf{Eva-JFM}'')的JFM文件。其适用于简体中文(以下简称为「简中」)、繁体中文(以下简称为「繁中」)及日文字体的横直排。旨在提供一个充分利用\LuaTeX-ja的\texttt{priority}特性,基于标准\cite{jlreq}的同时,支持一些罕用特性的JFM文件。文档暂使用中文及西文撰写。
+%<sc>    本文档将介绍名为Evangelion Japanese Font Metric(下简称为``\textsf{Eva-JFM}'')的JFM文件。其适用于简体中文(以下简称为「简中」)、繁体中文(以下简称为「繁中」)及日文字体的横直排。旨在提供一个充分利用\LuaTeX-ja的\texttt{priority}特性,基于标准\cite{jlreq}的同时,支持一些罕用特性的JFM文件。文档使用中文、日文及西文撰写。
 %<ja>    本ドキュメントは、高品質な中国語および日本語のドキュメントを組版するための日本語フォントメトリック「Evangelion Japanese Font Metric(以下「\textsf{Eva-JFM}」とする)」を紹介するものです。このメトリックは、縦書きと横書きの両方のテキストに対して、従来の中国語、簡体字中国語、および日本語のフォントとともに使用できます。これは、\LuaTeX-ja で提供される優先機能を最大限に活用するフォントメトリックを提供し、標準\cite{jlreq}に基づき、一部の高度な(すなわち、めったに使用されない)機能をサポートすることを目的としています。\段
 %<ja>    本ドキュメントは、完全なものではありません。文法的な(および文脈的な)エラーが多数含まれている可能性があります。
-%<en>    This documentation is going to introduce Evangelion Japanese Font Metric (hereinafter referred to as ``\textsf{Eva-JFM}''), a Japanese Font Metric for typesetting high quality Chinese and Japanese documents. It can be used with Traditional Chinese, Simplified Chinese and Japanese fonts for both vertically and horizontally typesetted texts. It aims to provide a font metric which makes full use of the \texttt{priority} feature (provided by \textsf{\LuaTeX-ja}), bases on the standard~\cite{jlreq}, and supports some advanced (a.k.a., rarely-used) features. The documentation is now written in both Chinese and English.\par
+%<en>    This documentation is going to introduce Evangelion Japanese Font Metric (hereinafter referred to as ``\textsf{Eva-JFM}''), a Japanese Font Metric for typesetting high quality Chinese and Japanese documents. It can be used with Traditional Chinese, Simplified Chinese and Japanese fonts for both vertically and horizontally typesetted texts. It aims to provide a font metric which makes full use of the \texttt{priority} feature (provided by \textsf{\LuaTeX-ja}), bases on the standard~\cite{jlreq}, and supports some advanced (a.k.a., rarely-used) features. The documentation is now written in Chinese, Japanese and English.\par
 %<en>    This documentation is far from complete. It may have many grammatical (and contextual) errors.
 \end{abstract}
 

Modified: trunk/Master/texmf-dist/tex/luatex/evangelion-jfm/jfm-eva.lua
===================================================================
--- trunk/Master/texmf-dist/tex/luatex/evangelion-jfm/jfm-eva.lua	2023-08-25 22:43:52 UTC (rev 68058)
+++ trunk/Master/texmf-dist/tex/luatex/evangelion-jfm/jfm-eva.lua	2023-08-25 22:44:09 UTC (rev 68059)
@@ -1,11 +1,11 @@
 ---- Evangelion Japanese Font Metric for LuaTeX
----- Current Version: 1.0.4 (e)
+---- Current Version: 1.0.5 (b)
 ---- Dev URL: https://github.com/RadioNoiseE/Evangelion-JFM
 ---- Copyright 2023, RadioNoiseE ©
 
 
 -- 初始化
-local lang_jp, lang_tc, lang_sc, dir_vt, font_extd, punc_lg, punc_hg, std_nil, al_hw, al_fw, as_nil
+local lang_jp, lang_tc, lang_sc, dir_vt, font_extd, punc_lg, punc_hg, std_nil, al_hw, al_fw, as_nil, fw_prop, fw_xprop
 
 if luatexja.jfont.jfm_feature then 
     lang_jp = luatexja.jfont.jfm_feature.jp
@@ -19,6 +19,8 @@
     al_hw = luatexja.jfont.jfm_feature.hwid
     al_fw = luatexja.jfont.jfm_feature.fwid
     as_nil = luatexja.jfont.jfm_feature.plain
+    fw_prop = luatexja.jfont.jfm_feature.prop
+    fw_xprop = luatexja.jfont.jfm_feature.propw
 end
 
 -- 預處理及容錯
@@ -35,11 +37,19 @@
 end
 
 if al_hw == true and al_fw == true then
-    tex.error('JFM feature "hwid" cannot be used with "fwid".')
+    tex.error('JFM feature "hwid" cannot be used with "fwid".\n' ..
+              'For now I\'ll ignore both.')
     luatexja.jfont.jfm_feature["hwid"] = nil
     luatexja.jfont.jfm_feature["fwid"] = nil
 end
 
+if fw_prop == true and fw_xprop == true then
+    tex.error('JFM feature "prop" cannot be used with "propw".\n' ..
+              'For now I\'ll ignore both.')
+    luatexja.jfont.jfm_feature["prop"] = nil
+    luatexja.jfont.jfm_feature["propw"] = nil
+end
+
 if not ((lang_jp and not (lang_tc or lang_sc)) or
         (lang_tc and not (lang_jp or lang_sc)) or
         (lang_sc and not (lang_jp or lang_tc))) then
@@ -47,7 +57,7 @@
               '"jp", "trad" or "smpl"\n' ..
               'is required.\n' ..
               'For now I\'ll use "lang_jp" for japanese by default.')
-    luatexja.jfont.jfm_feature["hwid"] = nil
+    luatexja.jfont.jfm_feature["jp"] = "eva_langfeat_defl"
 end
 
 -- 壓縮比例設定
@@ -64,11 +74,21 @@
     return rta
 end
 
+local function logic_orif(f1, f2, r1, r2)
+    local rto = (f1 or f2) and r1 or r2
+    return rto
+end
+
 local function logic_if(f1, r1, r2)
     local rti = f1 and r1 or r2
     return rti
 end
 
+local function context_width(regv)
+    local rtw = (fw_prop or fw_xprop) and 'prop' or (regv)
+    return rtw
+end
+
 local function context_height()
     local rth = dir_vt and (font_extd and extd_ratio/2 or 0.5) or 0.88
     return rth
@@ -89,7 +109,7 @@
     xkanjiskip = {0.25, 0.125, 0.125},
 
     [0] = { -- 缺省類
-        width = 1,
+        width = context_width(1),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -108,7 +128,7 @@
 
     [1] = { -- 読点類
         chars = logic_anif(dir_vt, punc_lg, {}, {'、', ','}),
-        width = 0.5,
+        width = context_width(0.5),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -127,7 +147,7 @@
             [8] = logic_if(lang_tc, {0.25, 0, 0.125}, {}),
             [9] = logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.75, 0, 0.25, ratio = 1/3, priority = {0, -1}})
         },
-        end_adjust = logic_if(lang_tc, {0.25, 0}, logic_if(punc_hg, {-0.5, 0.5, 0}, {0, 0}))
+        end_adjust = logic_if(lang_tc, {0.25, 0, 0.25}, logic_if(punc_hg, {-0.5, 0.5, 0}, {0, 0}))
     },
 
     [101] = { -- 読点類(行間a)
@@ -160,7 +180,7 @@
 
     [2] = { -- 句點類
         chars = logic_anif(dir_vt, punc_lg, {}, {'.', '。'}),
-        width = 0.5,
+        width = context_width(0.5),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -179,7 +199,7 @@
             [8] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0}, {}),
             [9] = logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.75, 0, 0.25, ratio = 1/3, priority = {0, -1}})
         },
-        end_adjust = logic_if(lang_tc, {0.25, 0}, logic_if(punc_hg, {-0.5, 0.5, 0}, {0, 0}))
+        end_adjust = logic_if(lang_tc, {0.25, 0, 0.25}, logic_if(punc_hg, {-0.5, 0.5, 0}, {0, 0}))
     },
 
     [201] = { -- 句點類(行間a)
@@ -212,7 +232,7 @@
 
     [3] = { -- 兩點類
         chars = logic_if(lang_jp, {}, (logic_anif(dir_vt, punc_lg, {}, {':', ';'}))),
-        width = logic_if(dir_vt, 1, 0.5),
+        width = context_width(logic_if(dir_vt, 1, 0.5)),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -268,7 +288,7 @@
             'ョ', 'ヮ', 'ヵ', 'ヶ', 'ヽ', 'ヾ', 'ㇰ', 'ㇱ', 'ㇲ', 'ㇳ', 'ㇴ',
             'ㇵ', 'ㇶ', 'ㇷ', 'ㇸ', 'ㇹ', 'ㇺ', 'ㇻ', 'ㇼ', 'ㇽ', 'ㇾ', 'ㇿ'
         },
-        width = 1,
+        width = context_width(1),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -286,7 +306,7 @@
 
     [5] = { -- 疑問感嘆類
         chars = {'!', '?', '‼︎', '⁉︎', '⁈', '⁇'},
-        width = logic_if(dir_vt, 1, logic_if(lang_sc, 0.5, 1)),
+        width = context_width(logic_if(dir_vt, 1, logic_if(lang_sc, 0.5, 1))),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -307,7 +327,7 @@
 
     [6] = { -- 分離禁止類
         chars = {'—', '―', '‥', '…', '⋯', '〳', '〴', '〵'},
-        width = 1,
+        width = context_width(1),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -326,9 +346,45 @@
         }
     },
 
+    [601] = { -- 二連字
+        chars = {'⸺'},
+        width = context_width(2),
+        height = context_height(),
+        depth = context_depth(),
+        italic = 0,
+        left = 0,
+        down = 0,
+        align = 'middle',
+        glue = {
+            [1] = logic_if(lang_tc, {0.25, 0, 0,125, ratio = 1}, {}),
+            [2] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1}, {}),
+            [3] = logic_if(dir_vt, {priority = {0, -1}}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = {0, -1}}, {priority = {0, -1}})),
+            [7] = {0.5, 0, 0.25, ratio = 1, priority = {-1, -2}},
+            [9] = {0.25, 0, 0.125, ratio = 1, priority = {0, -1}}
+        }
+    },
+
+    [602] = { -- 三連字
+        chars = {'⸻'},
+        width = context_width(3),
+        height = context_height(),
+        depth = context_depth(),
+        italic = 0,
+        left = 0,
+        down = 0,
+        align = 'middle',
+        glue = {
+            [1] = logic_if(lang_tc, {0.25, 0, 0,125, ratio = 1}, {}),
+            [2] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1}, {}),
+            [3] = logic_if(dir_vt, {priority = {0, -1}}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = {0, -1}}, {priority = {0, -1}})),
+            [7] = {0.5, 0, 0.25, ratio = 1, priority = {-1, -2}},
+            [9] = {0.25, 0, 0.125, ratio = 1, priority = {0, -1}}
+        }
+    },
+
     [7] = { -- 開括號類
         chars = {'(', '〔', '[', '{', '〈', '《', '「', '『', '【', '⦅', '〘', '〖', '〝', '‘', '“'},
-        width = 0.5,
+        width = context_width(0.5),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -346,7 +402,7 @@
 
     [8] = { -- 閉括號類
         chars = {')', '〕', ']', '}', '〉', '》', '」', '』', '】', '⦆', '〙', '〗', '〟', '’', '”'},
-        width = 0.5, 
+        width = context_width(0.5), 
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -369,7 +425,7 @@
 
     [9] = { -- 中點類
         chars = logic_if(lang_jp, {'・', ':', ';'}, {'・', '·'}),
-        width = 0.5,
+        width = context_width(0.5),
         height = context_height(),
         depth = context_depth(),
         italic = 0,
@@ -388,7 +444,7 @@
             [8] = {0.25, 0, 0.125, ratio = 0, priority = {0, -1}},
             [9] = {0.5, 0, 0.25, priority = {0, -1}}
         },
-        end_adjust = {0.25, 0}
+        end_adjust = {0.25, 0, 0.25}
     },
 
     [10] = { -- 西文
@@ -409,7 +465,7 @@
             [7] = {0, 0, 0}
         }
     }
-}    
+}
 
 if al_hw == true or al_fw == true then
     eva[10].chars = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
@@ -428,10 +484,16 @@
     eva[10].width = 0.5
 end
 
-if al_fw == false and al_fw == true then
+if al_fw == false and al_hw == true then
     eva[10].width = 1
 end
 
+if fw_prop == true and fw_xprop == false then
+    for _, catnum in ipairs({0, 1, 101, 102, 2, 201, 202, 3, 301, 302, 4, 5, 6, 7, 8, 9, 10}) do
+      eva[catnum].glue = {}
+    end
+end
+
 if sa_nil == true then
   for _, catnum in ipairs({1, 101, 102, 2, 201, 202, 3, 301, 302, 4, 5, 6, 7, 8, 9, 10, 11}) do
     eva[catnum] = nil



More information about the tex-live-commits mailing list.