summaryrefslogtreecommitdiff
path: root/language
diff options
context:
space:
mode:
Diffstat (limited to 'language')
-rw-r--r--language/japanese/BX/bxjatoucs/LICENSE2
-rw-r--r--language/japanese/BX/bxjatoucs/README.md14
-rw-r--r--language/japanese/BX/bxjatoucs/bxjatoucs-tojis.tfmbin0 -> 94324 bytes
-rw-r--r--language/japanese/BX/bxjatoucs/bxjatoucs.sty80
-rw-r--r--language/japanese/BX/bxjscls/README-ja.md3
-rw-r--r--language/japanese/BX/bxjscls/README.md1
-rw-r--r--language/japanese/BX/bxjscls/bxjscls-manual.pdfbin407611 -> 407675 bytes
-rw-r--r--language/japanese/BX/bxjscls/bxjscls-manual.tex4
-rw-r--r--language/japanese/BX/bxjscls/bxjscls.dtx90
-rw-r--r--language/japanese/BX/bxjscls/bxjscls.pdfbin884432 -> 887244 bytes
-rw-r--r--language/korean/pmhanguljamo/README.md2
-rw-r--r--language/korean/pmhanguljamo/doc/pmhanguljamo-doc.pdfbin220713 -> 221035 bytes
-rw-r--r--language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex5
-rw-r--r--language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdfbin722621 -> 723606 bytes
-rw-r--r--language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex88
-rw-r--r--language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex31
-rw-r--r--language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.sty4
-rw-r--r--language/korean/pmhanguljamo/tex/pmhanguljamo.sty6
18 files changed, 280 insertions, 50 deletions
diff --git a/language/japanese/BX/bxjatoucs/LICENSE b/language/japanese/BX/bxjatoucs/LICENSE
index 534324b756..aff6b30c93 100644
--- a/language/japanese/BX/bxjatoucs/LICENSE
+++ b/language/japanese/BX/bxjatoucs/LICENSE
@@ -1,6 +1,6 @@
The MIT License
-Copyright (c) 2019 Takayuki YATO (aka. "ZR")
+Copyright (c) 2019-2024 Takayuki YATO (aka. "ZR")
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/language/japanese/BX/bxjatoucs/README.md b/language/japanese/BX/bxjatoucs/README.md
index 6e2c9bb7bc..cc3dd0a7a5 100644
--- a/language/japanese/BX/bxjatoucs/README.md
+++ b/language/japanese/BX/bxjatoucs/README.md
@@ -69,6 +69,16 @@ Additional variants:
the argument is assumed to be a valid decimal string.
- `\bxjaFastCidToUcsHex{<value>}`: same for `\bxjaCidToUcsHex`.
+### Conversions from Unicode
+
+Starting from v0.3, macros for some conversions *from* Unicode (rather
+than conversions *to* Unicode) are available. The rule of input/output
+is the same as the existing macros.
+
+ - `\bxjaUcsToJis{<value>}`: converts to a jis scalar value.
+ - `\bxjaUcsToEuc{<value>}`: converts to an euc scalar value.
+ - `\bxjaUcsToSjis{<value>}`: converts to a sjis scalar value.
+
## Example
The following `\message` lines all display `23551:21496`.
@@ -89,6 +99,10 @@ The following `\message` lines all display `5BFF:53F8`.
Revision History
----------------
+ * Version 0.3a ‹2024/07/22›
+ - Renamed TFM 'bxjatoucs-fromjis' to 'bxjatoucs-tojis'.
+ * Version 0.3 ‹2024/07/20›
+ - Added “Unicode to JIS”type conversions.
* Version 0.2 ‹2019/10/20›
- The first public version.
diff --git a/language/japanese/BX/bxjatoucs/bxjatoucs-tojis.tfm b/language/japanese/BX/bxjatoucs/bxjatoucs-tojis.tfm
new file mode 100644
index 0000000000..fc0ede1a9d
--- /dev/null
+++ b/language/japanese/BX/bxjatoucs/bxjatoucs-tojis.tfm
Binary files differ
diff --git a/language/japanese/BX/bxjatoucs/bxjatoucs.sty b/language/japanese/BX/bxjatoucs/bxjatoucs.sty
index b387872640..04fb01765a 100644
--- a/language/japanese/BX/bxjatoucs/bxjatoucs.sty
+++ b/language/japanese/BX/bxjatoucs/bxjatoucs.sty
@@ -1,7 +1,7 @@
%%
%% This is file 'bxjatoucs.sty'.
%%
-%% Copyright (c) 2019 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2019-2024 Takayuki YATO (aka. "ZR")
%% GitHub: https://github.com/zr-tex8r
%% Twitter: @zr_tex8r
%%
@@ -53,7 +53,7 @@
%% package declaration
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{bxjatoucs}[2019/10/20 v0.2]
+\ProvidesPackage{bxjatoucs}[2024/07/22 v0.3a]
\def\bxju@pkgname{bxjatoucs}
%--------------------------------------- "check-avail"
@@ -167,6 +167,22 @@
\bxju@ifdefinable\bxjaFastJscToUcsHex{%
\def\bxjaFastJscToUcsHex{%
\bxju@burst-`>\bxju@in@hex\bxju@fast@jsc@to@ucs}}
+%%<*> \bxjaUcsToJis{<ucs>}
+\bxju@ifdefinable\bxjaUcsToJis{%
+ \def\bxjaUcsToJis{%
+ \bxju@burst-`>\bxju@ucs@to@jis}}
+%%<*> \bxjaUcsToEuc{<ucs>}
+\bxju@ifdefinable\bxjaUcsToEuc{%
+ \def\bxjaUcsToEuc{%
+ \bxju@burst-`>\bxju@ucs@to@euc}}
+%%<*> \bxjaUcsToSjis{<ucs>}
+\bxju@ifdefinable\bxjaUcsToSjis{%
+ \def\bxjaUcsToSjis{%
+ \bxju@burst-`>\bxju@ucs@to@sjis}}
+%%<*> \bxjaFastUcsToJsc{<ucs>}
+\bxju@ifdefinable\bxjaFastUcsToJsc{%
+ \def\bxjaFastUcsToJsc{%
+ \bxju@burst-`>\bxju@fast@ucs@to@jsc}}
%--------------------------------------- auxiliary
@@ -195,6 +211,16 @@
\expandafter\bxju@decomp@b\the\numexpr#2-#1*256:#1:}
\def\bxju@decomp@b#1:#2:#3{#3{#2}{#1}}
+%% \bxju@decomp@int{<number>}\CScont
+% Divides the <number> by 94 and returns the quotient and
+% the remainder as \CScont{<high>}{<low>}.
+\def\bxju@decomp@int#1{%
+ \expandafter\bxju@decomp@int@a
+ \number\numexpr\ifnum#1>\ltx@zero(#1-47)/94\else0\fi:#1:}
+\def\bxju@decomp@int@a#1:#2:{%
+ \expandafter\bxju@decomp@int@b\the\numexpr#2-#1*94:#1:}
+\def\bxju@decomp@int@b#1:#2:#3{#3{#2}{#1}}
+
%% \bxju@in@hex\CSconv{<arg>}
\def\bxju@in@hex#1#2{%
\expandafter\bxju@in@hex@a\bxju@burst-`>#1{#2}:>}
@@ -231,6 +257,7 @@
%% umbralist fontdefs
\font\bxju@ul@cid=bxjatoucs-cid
\font\bxju@ul@jis=bxjatoucs-jis
+\font\bxju@ul@tojis=bxjatoucs-tojis
%% \bxju@cid@to@ucs{<cid>}
\def\bxju@cid@to@ucs#1{%
@@ -284,6 +311,55 @@
\def\bxju@fast@jsc@to@ucs#1{%
\number\fontdimen\numexpr(#1)+8\bxju@ul@jis}
+%% \bxju@conv@ucs@to@jsc{<ucs>}\CScont
+% Converts a UCS value <ucs> to JSC and returns the result.
+% If no corresponding JSC codepoint exists, returns 9999.
+\def\bxju@conv@ucs@to@jsc#1{%
+ \expandafter\bxju@conv@ucs@to@jsc@a\number\numexpr#1\bxju@mk}
+\def\bxju@conv@ucs@to@jsc@a#1\bxju@mk{%
+ \bxju@cond\ifnum#1<"10000 \fi{%
+ \expandafter\bxju@conv@ucs@to@jsc@b
+ \number\fontdimen\numexpr(#1+480)/64\bxju@ul@tojis:#1\bxju@mk
+ }{\bxju@conv@ucs@to@jsc@a0\bxju@mk}}
+\def\bxju@conv@ucs@to@jsc@b#1:#2\bxju@mk{%
+ \expandafter\bxju@conv@ucs@to@jsc@c
+ \number\fontdimen\numexpr#2+1088-#1\bxju@ul@tojis\bxju@mk}
+\def\bxju@conv@ucs@to@jsc@c#1\bxju@mk#2{#2{#1}}
+
+%% \bxju@ucs@to@jis{<ucs>}
+\def\bxju@ucs@to@jis#1{%
+ \bxju@check@number{#1}\bxju@ucs@to@jiseuc{8481}}
+\def\bxju@ucs@to@jiseuc#1{%
+ \bxju@conv@ucs@to@jsc{#1}\bxju@ucs@to@jiseuc@a}
+\def\bxju@ucs@to@jiseuc@a#1{%
+ \bxju@cond\ifnum#1=9999 \fi{\ltx@firstoftwo{0}}{%else
+ \bxju@decomp@int{#1}\bxju@ucs@to@jiseuc@b}}
+\def\bxju@ucs@to@jiseuc@b#1#2#3{%
+ \number\numexpr#1*256+#2+#3\relax}
+
+%% \bxju@ucs@to@euc{<ucs>}
+\def\bxju@ucs@to@euc#1{%
+ \bxju@check@number{#1}\bxju@ucs@to@jiseuc{41377}}
+
+%% \bxju@ucs@to@sjis{<ucs>}
+\def\bxju@ucs@to@sjis#1{%
+ \bxju@check@number{#1}\bxju@ucs@to@sjis@a}
+\def\bxju@ucs@to@sjis@a#1{%
+ \bxju@conv@ucs@to@jsc{#1}\bxju@ucs@to@sjis@b}
+\def\bxju@ucs@to@sjis@b#1{%
+ \bxju@cond\ifnum#1=9999 \fi{0}{%else
+ \bxju@decomp@int{#1}\bxju@ucs@to@sjis@c}}
+\def\bxju@ucs@to@sjis@c#1#2{%
+ \number\numexpr#1*128+#2 %
+ \ifodd#1 -33 \else\ifnum#2>62 +1 \fi\fi
+ \ifnum#1<62 +33088 \else +49472 \fi\relax}
+
+%% \bxju@fast@ucs@to@jsc{<ucs>}
+\def\bxju@fast@ucs@to@jsc#1{%
+ \bxju@conv@ucs@to@jsc{#1}\bxju@fast@ucs@to@jsc@a}
+\def\bxju@fast@ucs@to@jsc@a#1{%
+ \bxju@cond\ifnum#1=9999 \fi{-1}{#1}}
+
%--------------------------------------- all done
\let\bxju@next\@undefined
\let\bxju@ifdefinable\@undefined
diff --git a/language/japanese/BX/bxjscls/README-ja.md b/language/japanese/BX/bxjscls/README-ja.md
index 1b91f19f95..4d7450a19c 100644
--- a/language/japanese/BX/bxjscls/README-ja.md
+++ b/language/japanese/BX/bxjscls/README-ja.md
@@ -111,6 +111,9 @@ XeLaTeX / LuaLaTeX の上でも日本語処理パッケージと連携して使
更新履歴
--------
+ * Version 2.9c 〈2024/07/19〉
+ - bm パッケージとの併用で起こる不具合をほぼ解消した。
+ - hyperref 使用時の不具合を修正した。
* Version 2.9b 〈2024/01/22〉
- bm パッケージとの併用で起こる不具合を回避した。
* Version 2.9a 〈2023/08/02〉
diff --git a/language/japanese/BX/bxjscls/README.md b/language/japanese/BX/bxjscls/README.md
index b42534e38c..1f10ac7ff7 100644
--- a/language/japanese/BX/bxjscls/README.md
+++ b/language/japanese/BX/bxjscls/README.md
@@ -102,6 +102,7 @@ This package is distributed under the BSD 2-Clause License.
Revision History
----------------
+ * Version 2.9c 〈2024/07/19〉
* Version 2.9b 〈2024/01/22〉
* Version 2.9a 〈2023/08/02〉
* Version 2.9 〈2023/07/17〉
diff --git a/language/japanese/BX/bxjscls/bxjscls-manual.pdf b/language/japanese/BX/bxjscls/bxjscls-manual.pdf
index 29812903d4..d1b16869b4 100644
--- a/language/japanese/BX/bxjscls/bxjscls-manual.pdf
+++ b/language/japanese/BX/bxjscls/bxjscls-manual.pdf
Binary files differ
diff --git a/language/japanese/BX/bxjscls/bxjscls-manual.tex b/language/japanese/BX/bxjscls/bxjscls-manual.tex
index aee9ffd06b..2d69227170 100644
--- a/language/japanese/BX/bxjscls/bxjscls-manual.tex
+++ b/language/japanese/BX/bxjscls/bxjscls-manual.tex
@@ -12,8 +12,8 @@
\bxtexlogoimport{*}
\usepackage{shortvrb}
\MakeShortVerb{\|}
-\newcommand{\PkgVersion}{2.9b}
-\newcommand{\PkgDate}{2024/01/22}
+\newcommand{\PkgVersion}{2.9c}
+\newcommand{\PkgDate}{2024/07/19}
\newcommand{\Pkg}[1]{\textsf{#1}}
\newcommand{\Meta}[1]{$\langle$\mbox{}\nobr#1\nobr\mbox{}$\rangle$}
\newcommand{\Note}{\par\noindent ※}
diff --git a/language/japanese/BX/bxjscls/bxjscls.dtx b/language/japanese/BX/bxjscls/bxjscls.dtx
index d8708af2d9..9b4b59c73d 100644
--- a/language/japanese/BX/bxjscls/bxjscls.dtx
+++ b/language/japanese/BX/bxjscls/bxjscls.dtx
@@ -56,7 +56,8 @@
%<*driver>
\ProvidesFile{bxjscls.dtx}
%</driver>
- [2024/01/22 v2.9b BXJS document classes]
+ [2024/07/19 v2.9c BXJS document classes]
+% [2024/01/22 v2.9b BXJS document classes]
% [2023/08/02 v2.9a BXJS document classes]
% [2023/07/17 v2.9 BXJS document classes]
% [2023/07/01 v2.8b BXJS document classes]
@@ -5515,6 +5516,20 @@
%
% \section{文書のマークアップ}
%
+% \begin{ZRnote}
+% \begin{macro}{\bxjs@phantomsection}
+% |hyperref| が読み込まれている場合に |\phantomsection| を実行する。
+% \begin{macrocode}
+\let\bxjs@phantomsection\relax
+\g@addto@macro\bxjs@begin@document@hook{%
+ \@ifpackageloaded{hyperref}{%
+ \let\bxjs@phantomsection\phantomsection
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{ZRnote}
+%
% \subsection{表題}
%
% \begin{macro}{\title}
@@ -8288,8 +8303,15 @@
\fi
\columnseprule.4pt \columnsep 2\jsZw
\ifx\multicols\@undefined
-%<book|report> \twocolumn[\@makeschapterhead{\indexname}%
-%<book|report> \addcontentsline{toc}{chapter}{\indexname}]%
+% \end{macrocode}
+% \begin{ZRnote}
+% |hyperref| 使用時に索引へのリンクが正常に作られるように、
+% |hyperref| の説明書の解説に従って |\phantomsection| を配置した。
+% \end{ZRnote}
+% \begin{macrocode}
+%<book|report> \twocolumn[\bxjs@phantomsection
+%<book|report> \addcontentsline{toc}{chapter}{\indexname}%
+%<book|report> \@makeschapterhead{\indexname}]%
%<!book&!report> \def\presectionname{}\def\postsectionname{}%
%<!book&!report> \twocolumn[\section*{\indexname}]%
\else
@@ -10847,6 +10869,56 @@
% \end{macrocode}
% \end{macro}
%
+% \paragraph{bmパッケージ対策}
+%
+% |\reDeclareMathAlphabet| を適用した数式英字フォント命令は
+% 通常の場合とは定義文の形が異なる。
+% このため |bm| パッケージを利用して |\bm{\mathrm{A}}| を
+% 実行するとエラーが発生する。
+% これを回避するため、
+% 「|\bm| の引数中では数式英字フォントの和文連動を無効にする」
+% ことにする。
+%
+% |\reDeclareMathAlphabet| の適用により例えば |\mathrm| は
+% 以下のように変更される。
+% \begin{itemize}
+% \item 適用前は |\mathrm| の一回展開は %
+% |\protect\|[|mathrm|\verb*| |] である。
+% \item 適用後は |\mathrm| の一回展開が %
+% |\protect\|[|mathrm|\verb*| |] になる。
+% \item |\|[|mathrm|\verb*| |] の一回展開は以下のようになる。\\
+% |\DualLang@mathalph@bet{\RDMAorg@mathrm}{\RDMAorg@mathmc}|
+% \item |\RDMAorg@mathrm| の一回展開は |\|[|mathrm|\verb*| |] になる。
+% \end{itemize}
+%
+% \begin{macro}{\bxjs@patch@RDMA@for@bm}
+% |\reDeclareMathAlphabet| の機能に対して |bm| パッケージ対策の
+% パッチを当てる。
+% \begin{macrocode}
+\@onlypreamble\bxjs@patch@RDMA@for@bm
+\def\bxjs@patch@RDMA@for@bm{%
+% \end{macrocode}
+% 実際に改変するのは |\DualLang@mathalph@bet| である。
+% \begin{macrocode}
+ \let\bxjs@org@DualLang@mathalph@bet\DualLang@mathalph@bet
+ \def\DualLang@mathalph@bet{%
+% \end{macrocode}
+% |\bm| の引数の中
+% (そこでは |\bm| が |\@firstofone| に等置されているので
+% これを判定に利用する)
+% では、|\DualLang@mathalph@bet| を |\@firstoftwo| の動作に変える。
+% これにより、|\mathrm| の
+% (|\protect| を無視する場合の)
+% 先頭完全展開形が、「適用」前のものと一致する。
+% このため |\bm| は「適用」の影響を受けずに正常動作できる。
+% \begin{macrocode}
+ \ifx\bm\@firstofone \expandafter\@firstoftwo
+ \else \expandafter\bxjs@org@DualLang@mathalph@bet
+ \fi}%
+}
+% \end{macrocode}
+% \end{macro}
+%
%^^A----------------
% \subsection{{\pTeX}用設定}
%
@@ -11124,19 +11196,12 @@
\g@addto@macro\bxjs@begin@document@hook{%
\ifx\reDeclareMathAlphabet\@undefined\else
% \end{macrocode}
-% |\reDeclareMathAlphabet| を適用した数式英字フォント命令は{\LaTeX}の
-% 通常の命令とは定義文の形が異なる。
-% このため |bm| パッケージを読み込んで |\bm{\mathrm{A}}| を
-% 実行するとエラーが発生する。
-% これを回避するための暫定対応として、|bm| が読み込まれた場合は
-% 数式英字フォントの和文連動を無効にする。
-% \TODO ユーザが数式英字フォントの和文連動を制御できるようにする。
+% |bm| パッケージが読込済であればパッチを適用する。
% \begin{macrocode}
- \@ifpackageloaded{bm}{}{%else
+ \@ifpackageloaded{bm}{\bxjs@patch@RDMA@for@bm}{}%
\reDeclareMathAlphabet{\mathrm}{\@mathrm}{\@mathmc}%
\reDeclareMathAlphabet{\mathbf}{\@mathbf}{\@mathgt}%
\reDeclareMathAlphabet{\mathsf}{\@mathsf}{\@mathgt}%
- }%
\fi}
\fi
% \end{macrocode}
@@ -11544,6 +11609,7 @@
\@ltj@match@familytrue
\fi
\g@addto@macro\bxjs@begin@document@hook{%
+ \@ifpackageloaded{bm}{\bxjs@patch@RDMA@for@bm}{}%
\reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}%
\reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}%
\reDeclareMathAlphabet{\mathsf}{\mathsf}{\mathgt}}%
diff --git a/language/japanese/BX/bxjscls/bxjscls.pdf b/language/japanese/BX/bxjscls/bxjscls.pdf
index 81899778a2..6b940a52c3 100644
--- a/language/japanese/BX/bxjscls/bxjscls.pdf
+++ b/language/japanese/BX/bxjscls/bxjscls.pdf
Binary files differ
diff --git a/language/korean/pmhanguljamo/README.md b/language/korean/pmhanguljamo/README.md
index 7888ccdbb2..ed0488355d 100644
--- a/language/korean/pmhanguljamo/README.md
+++ b/language/korean/pmhanguljamo/README.md
@@ -12,7 +12,7 @@ In version 0.3, it provides two kinds of transliteration rules. And in version 0
In version 1.0, we introduced a new rule, so-called _frkim_. Now it has three alternative ways of Hangul input methods.
-The current version is 1.0.2
+The current version is 1.1.
## Copyright and License
diff --git a/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.pdf b/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.pdf
index 87c43670fe..d3d517b240 100644
--- a/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.pdf
+++ b/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.pdf
Binary files differ
diff --git a/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex b/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex
index 7b119f0267..a00318b5d2 100644
--- a/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex
+++ b/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex
@@ -45,7 +45,8 @@
%\date{6 Sep 2022\quad version 0.5.1}
%\date{7 Sep 2022\quad version 0.5.2}
%\date{22 Feb 2023\quad version 1.0.1}
-\date{3 Mar 2023\quad version 1.0.2}
+%\date{3 Mar 2023\quad version 1.0.2}
+\date{10 Jun 2024\quad version 1.1}
\maketitle
@@ -861,6 +862,8 @@ and \texttt{jamotext} environment can be used with.
\item We extended the Old-Hangul feature of this input method. The plural consonants in the leading position were not implemented in the \emph{hangulTeX}, which can be done by dispicting the starting position of the plural leading consonants with \verb|-| (dash). Moreover, in the heading position of a word,
this mark can be left out. For example, \verb|\hg{bsumei}| \hg{bsumei}; \verb|\hg{gy-bsgyi'iei}| \hg{gy-bsgyi'iei}.
+
+\item The command \verb|\AddRule| overrides the previous key-letter assignments. Therefore, the user can define his own key-def's for the Hangul Jamos. Read the Korean manual (\texttt{kdoc}) carefully.
\end{enumerate}
\subsection{Examples}
diff --git a/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdf b/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdf
index 5e9748cd6d..6242727f71 100644
--- a/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdf
+++ b/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdf
Binary files differ
diff --git a/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex b/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex
index 1f64941f4e..5aa8178b7f 100644
--- a/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex
+++ b/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex
@@ -16,7 +16,7 @@
\usepackage{kotex-logo}
\usepackage{amssymb}
-\usepackage[pmfont={Noto Serif KR}]{pmhanguljamo}
+\usepackage[pmfont={Noto Serif CJK KR}]{pmhanguljamo}
\usepackage{boxedminipage}
\usepackage{tabularray}
\usepackage{amsmath,amssymb}
@@ -35,9 +35,9 @@
\setsansfont{Noto Sans}
%\setmonofont{Droid Sans Mono}
\setmonofont{DejaVu Sans Mono}
-\setsansfont{Noto Sans KR}%[\fontfeatureoption]
-\setkomainfont(Noto Serif KR)(* Bold)(Noto Sans KR Light)%[\fontfeatureoption]
-\setkosansfont(Noto Sans KR)(* Bold)%[\fontfeatureoption]
+\setsansfont{Noto Sans CJK KR}%[\fontfeatureoption]
+\setkomainfont(Noto Serif CJK KR)(* Bold)(Noto Sans CJK KR Light)%[\fontfeatureoption]
+\setkosansfont(Noto Sans CJK KR)(* Bold)%[\fontfeatureoption]
\setkomonofont(HCR Dotum LVT)[Script=Hangul,Scale=.97]
\usepackage{tcolorbox}
@@ -115,7 +115,8 @@
%\date{2022/09/07\quad v0.5.2}
%\date{2023/02/19\quad v1.0}
%\date{2023/02/26\quad v1.0.1a}
-\date{2023/03/03\quad v1.0.2}
+%\date{2023/03/03\quad v1.0.2}
+\date{2024/06/10\quad v1.1}
\maketitle
@@ -219,7 +220,7 @@ e/nv; na;ri i; do;ra/gar h@i;o;.
\documentclass{article}
\usepackage{fontspec}
-\usepackage[pmfont={Noto Serif KR}]{pmhanguljamo}
+\usepackage[pmfont={Noto Serif CJK KR}]{pmhanguljamo}
\begin{document}
Jikji (\jamoword{jig/ji/sim/cei/yo/jer}) is the world's oldest
@@ -237,7 +238,7 @@ extant book printed with movable metal type.
\setmainlanguage{english}
\setotherlanguage{korean}
\newfontfamily\hangulfont{HCR Batang LVT}[Script=Hangul]
-\usepackage[pmfont={Noto Serif KR}]{pmhanguljamo}
+\usepackage[pmfont={Noto Serif CJK KR}]{pmhanguljamo}
\begin{document}
\begin{korean}
@@ -264,7 +265,7 @@ gyeg/bun/si/ki/nvn man/haiq/vr co/rai/ha/yess/v/mye/,}
\begin{exampleonly}
\documentclass{article}
\usepackage{kotex}
-\usepackage[pmfont={Noto Serif KR}]{pmhanguljamo}
+\usepackage[pmfont={Noto Serif CJK KR}]{pmhanguljamo}
\begin{document}
\jamoword{mo/dvn in/ryu gu/seq/uen/vi cen/bu/vi jon/em/seq/goa
@@ -413,7 +414,7 @@ sa:r@m/ma:da; h@i:qqye; su:bqi; ni/gye;
은 바탕 \testfont{UnBatang}
-본명조 또는 Noto Korean \testfont{Noto Serif KR}
+본명조 또는 Noto Korean \testfont{Noto Serif CJK KR}
나눔명조옛한글 \testfont{NanumMyeongjo-YetHangul.ttf}
@@ -421,7 +422,7 @@ KoPubWorld 바탕 \testfont{KoPubWorldBatangMedium}
함초롬 돋움 \testfont{HCR Dotum LVT}
-본고딕 또는 Noto Sans \testfont{Noto Sans KR}
+본고딕 또는 Noto Sans \testfont{Noto Sans CJK KR}
나눔바른고딕옛한글 \testfont{NanumBarunGothic-YetHangul.ttf}
@@ -437,7 +438,7 @@ KoPubWorld 돋움 \testfont{KoPubWorldDotumMedium}
옛한글을 무리없이 표현하는 것은 현재 이 정도인 것 같다.
각 폰트는 특정한 문자에 대해서 약간의 차이를 보이기도 한다. 참고로 이 문서에서는
-본문과 옛한글에 Noto Serif KR을 사용하였다.
+본문과 옛한글에 Noto Serif CJK KR을 사용하였다.
\hologo{LuaTeX}으로 컴파일하는 경우에는 위에 든 폰트들, 즉 \texttt{Script Hangul} 속성을
가진 폰트만 사용 가능하다. \hologo{LuaTeX}과 이 패키지의 관계에 대해서
@@ -527,7 +528,7 @@ mainfont로 식자할 것인지, 또는 별도의 폰트를 \cmda{\newfontfamily
만약 \verb|pmfont=| 옵션이 예컨대 다음과 같이 주어졌다고 가정하자.
\begin{verbatim}
- \usepackage[pmfont={Noto Serif KR}]{pmhanguljamo}
+ \usepackage[pmfont={Noto Serif CJK KR}]{pmhanguljamo}
\end{verbatim}
이 때에는 \cmda{\jamoword}와 \env{jamotext}의 인자 범위에서 pm 자모 입력된
한글 문자에 대해서 지정된 폰트가 (필요한 속성(feature)이 자동으로 주어져서)
@@ -571,7 +572,7 @@ mainfont로 식자할 것인지, 또는 별도의 폰트를 \cmda{\newfontfamily
\cmda{\setpmhangulfont} 명령의 옵션으로 fontfeature를 부여할 수도 있다.
\begin{verbatim}
- \setpmhangulfont{Noto Serif KR}[FakeStretch=0.9]
+ \setpmhangulfont{Noto Serif CJK KR}[FakeStretch=0.9]
\end{verbatim}
이미 부여한 속성을 기본값으로 되돌리려면 \cmda{\setpmhangulfont}를 옵션 없이
@@ -580,7 +581,7 @@ mainfont로 식자할 것인지, 또는 별도의 폰트를 \cmda{\newfontfamily
\begin{exampleside}
\setpmhangulfont{HCR Batang LVT}[Color=blue,FakeStretch=0.8]
\jamoword{moi/koa g@/r@m/sbun is/go}\\
-\setpmhangulfont{Noto Serif KR}
+\setpmhangulfont{Noto Serif CJK KR}
\jamoword{moi/koa g@/r@m/sbun is/go}
\end{exampleside}
@@ -1399,7 +1400,7 @@ nog-eumbangcho ugeojyeo geumjandi jwaleuleug sgal-in jye
\item [\cs{rq}] right quote를 인쇄하는 명령이다. \cs{hg} 인자 내부에 닫는 따옴표를 쓸 필요가 있으면 이 매크로를 사용한다.
\item [\cs{zeroisx}, \cs{zeroisrq}] 초성의 zero 자음을 어떤 부호로 식자할 것인지를 나타낸다. \cs{zeroisrq} 상태가 디폴트이다.
\item [\cs{frdash}, \cs{frendash}, \cs{fremdash}] \verb|-|(dash) 부호를 특별하게 처리하기 때문에 이를 대용하기 위하여 마련한 명령이다.
-\item [\cs{frkhangulfont}] 자모 한글을 식자하는 폰트이다. Noto Serif KR 폰트가 디폴트이다.
+\item [\cs{frkhangulfont}] 자모 한글을 식자하는 폰트이다. Noto Serif CJK KR 폰트가 디폴트이다.
\item [\cs{frkhangulfontfeature}] \cs{hg} 명령의 인자로 주어지는 한글을 식자하기 위한 \cs{frkhangulfont}에 부여되는 font feature이다. ``{\ttfamily Script=Hangul,Renderer=OpenType,Ligatures=TeX}''이 디폴트로 선언되어 있다.
\end{description}
@@ -1481,7 +1482,7 @@ zero 자음 \texttt{ㅇ}을 넣는 규칙 때문이다.
\marginpar{\fbox{\footnotesize 1.0.1}}%
\texttt{[method=pm]}의 경우와 달리 \texttt{frkim}에서는 유니코드 한글 자모 전부를 부호화해두지 않았다. 패키지가 너무 무거워지는 것을 방지하고자 함이었는데 그 결과 일부 옛한글이 나타나지 않는 경우가 생길 것이다.
-사용자는 자신에게 꼭 필요하지만 \texttt{frkim} 규칙에 정의되지 않은 유니코드 한글 자모의 정의를 추가할 수 있다. 다음과 같은 방식으로 사용한다.
+사용자는 자신에게 꼭 필요하지만 \texttt{frkim} 규칙에 정의되지 않은 유니코드 한글 자모의 정의를 추가할 수 있다. 다음과 같은 방식으로 사용한다. \cs{AddRule}에 의한 입력 키의 할당은 \emph{local}이다.
\begin{verbatim}
\AddRule{<cho|jung|jong>}{<key=value>,<key=value>,...}
@@ -1505,6 +1506,59 @@ zero 자음 \texttt{ㅇ}을 넣는 규칙 때문이다.
\jamoword{bstoiairmh}
\end{exampleside}
+\subsection{사용자 입력 규칙}
+
+frkim 방식이 제공하는 \cs{AddRule}을 이용하여,
+만약 필요하다면 사용자 자신이 입력 규칙을 새로 설계할 수 있다. 왜냐하면
+\cs{AddRule}이 기존 키 정의를 덮어쓰기 때문이다.
+
+예를 들어서, 초성과 종성의 ㄱ을 현재의 \texttt{g} 대신 \texttt{q}로 하고,
+그 대신 초성과 종성의 ㅇ을 \texttt{g}로 입력하고 싶다고 하자.\footnote{이런
+제안을 해주신 분이 계시다. 창의적인 제안에 감사드린다.}
+
+\begin{exampleonly}
+\AddRule{cho}{g=110B,G=114C,q=1100,Q=1101}
+\AddRule{jong}{g=11BC,G=11F0,q=11A8,Q=11A9}
+\end{exampleonly}
+
+이제 이후로 ㄱ과 ㅇ이 서로 바뀌어서 출력될 것이다.
+
+이 방식을 사용할 때, 모음의 입력 키를 사용자가 설정하려 한다면 어떤 문자를 모음에 할당하는지
+알려주어야 한다. 이를 위한 명령으로 \cs{RenewVowels} 명령을 정의하였다. \verb|@|를 제외한 중성의 시작 문자를 \dotemph{모두} 인자로 전달해주어야 한다. 두 문자 이상으로 표현하는 모음은 그 시작 문자를 알려주면 된다.
+이전에 쓰던 것과 같은 키를 쓰더라도 이 명령에 다시 열거해주어야 한다는 점을 주의하자. (그리고 \verb|@|은 바꿀 수 없다.)
+
+예를 들어, ㅡ 모음을 입력하는 데 \verb|y|가 너무 불편하니, \verb|v|로 바꾸려 한다고 하자.
+(\verb|v|에 할당되어 있던 부호는 무시한다.)
+
+\begin{exampleonly}
+\RenewVowels{a,e,i,o,u,y,v}
+\AddRule{jung}{v=1173,vi=1174}
+\end{exampleonly}
+
+이와 같은 두 줄이 필요하다. 다음 예를 보라. (\cs{begingroup}과 \cs{endgroup}은
+이 변경의 효과가 국지적으로만 나타나게 하기 위하여 부가한 것이다.)
+
+\begin{examplebelow}
+\begingroup
+\RenewVowels{a,e,i,o,u,y,v}
+\AddRule{cho}{g=110B,G=114C,q=1100,Q=1101}
+\AddRule{jung}{v=1173,vi=1174}
+\AddRule{jong}{g=11BC,G=11F0,q=11A8,Q=11A9}
+\hg{maqcanvn jomcerem oji anh'aSda.}
+\hg{daihabsir baQ'einvn bamsai sog'inun'i Sah'iqo}
+\endgroup
+\end{examplebelow}
+
+만약 초성 ㅇ의 할당 값을 바꾸는 경우라면, \cs{AddRule}에 의한 것 이외에 다음 한 줄을
+더 추가하여야 한다. 소리나지 않는 초성 ㅇ을 특별히 취급하고 있기 때문이다.
+\begin{exampleonly}
+\RenewLeadingZero{L}
+\end{exampleonly}
+위의 예는 초성 ㅇ을 \verb|L|로 식자하려 하는 경우이다.
+
+이 방법을 잘 이용하면 (상당히 극단적인 예가 되겠지만) 예컨대 한글 두벌식 입력의
+입력열을 한글로 출력하도록 할 수도 있을 것이다.
+
\section{용례}
\paragraph{현대 한글} 현대 한글의 입출력 예를 보인다.
@@ -2071,4 +2125,4 @@ GSUB/GPOS라는 트루타입 오픈의 속성을 이용하여
%\printindex
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex b/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex
index cd005323bf..ede63f2136 100644
--- a/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex
+++ b/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex
@@ -1,11 +1,13 @@
%% code part of frkim
+%% v1.1 (\AddRule extended, \RenewVowels added)
%% v1.0.2 (\frkhangulfont, \bf)
%% v1.0.1 (\AddRule)
-%% v1.1 (\jamoul)
+%% v1.1 (\jamoul)
%%
\char_set_catcode_other:N \@
\clist_const:Nn \c_hgvow_clist { a, e, o, u, y, i, @, * }
+\tl_set:Nn \zero_const { x }
\tl_new:N \g_cho_tl
\tl_new:N \g_jun_tl
@@ -175,7 +177,7 @@
{ 0 } {%%% 직전이 0이면 초성 확정
\tl_if_empty:NT \l_currtk_tl %%% 어두에 모음 => 초성을 'ㅇ'으로
{
- \tl_set:Nn \l_currtk_tl { x }
+ \tl_set:No \l_currtk_tl { \zero_const }
}
\tl_gset:NV \g_cho_tl \l_currtk_tl
@@ -390,32 +392,33 @@
{
\bool_if:NF \opt_zeroisx_bool
{
- \regex_replace_all:nnN { ' } { x } \g_cho_tl
+ \exp_args:Nno
+ \regex_replace_all:nnN { ' } { \zero_const } \g_cho_tl
}
\tl_if_empty:NF \g_cho_tl
{
- \prop_get:NVNTF \c_frkcho_prop \g_cho_tl \l_tmpone_tl
+ \prop_get:NVNTF \l_usercho_prop \g_cho_tl \l_tmpone_tl
{ \tl_use:N \l_tmpone_tl }
{
- \prop_get:NVNT \l_usercho_prop \g_cho_tl \l_tmpone_tl
+ \prop_get:NVNT \c_frkcho_prop \g_cho_tl \l_tmpone_tl
{ \tl_use:N \l_tmpone_tl }
}
}
\tl_if_empty:NF \g_jun_tl
{
- \prop_get:NVNTF \c_frkjung_prop \g_jun_tl \l_tmptwo_tl
+ \prop_get:NVNTF \l_userjung_prop \g_jun_tl \l_tmptwo_tl
{ \tl_use:N \l_tmptwo_tl }
{
- \prop_get:NVNT \l_userjung_prop \g_jun_tl \l_tmptwo_tl
+ \prop_get:NVNT \c_frkjung_prop \g_jun_tl \l_tmptwo_tl
{ \tl_use:N \l_tmptwo_tl }
}
}
\tl_if_empty:NF \g_jon_tl
{
- \prop_get:NVNTF \c_frkjong_prop \g_jon_tl \l_tmpthr_tl
+ \prop_get:NVNTF \l_userjong_prop \g_jon_tl \l_tmpthr_tl
{ \tl_use:N \l_tmpthr_tl }
{
- \prop_get:NVNT \l_userjong_prop \g_jon_tl \l_tmpthr_tl
+ \prop_get:NVNT \c_frkjong_prop \g_jon_tl \l_tmpthr_tl
{ \tl_use:N \l_tmpthr_tl }
}
}
@@ -594,4 +597,14 @@
{ \par }
}
+\NewDocumentCommand \RenewVowels { m }
+{
+ \clist_set:Nn \c_hgvow_clist { @, *, #1 }
+}
+
+\NewDocumentCommand \RenewLeadingZero { m }
+{
+ \tl_set:Nn \zero_const { #1 }
+}
+
\endinput
diff --git a/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.sty b/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.sty
index 527577d42f..eb0e3207ea 100644
--- a/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.sty
+++ b/language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.sty
@@ -7,8 +7,8 @@
%%
\ProvidesExplPackage
{pmhanguljamo-frkim}
- {2023/03/01}
- {v0.6.1}
+ {2024/06/10}
+ {v0.7}
{Korean ROMAJI Input Method: Fukui Rei's HangulTeX}
\RequirePackage{l3keys2e}
diff --git a/language/korean/pmhanguljamo/tex/pmhanguljamo.sty b/language/korean/pmhanguljamo/tex/pmhanguljamo.sty
index 2fb9addc25..1ba19fb85d 100644
--- a/language/korean/pmhanguljamo/tex/pmhanguljamo.sty
+++ b/language/korean/pmhanguljamo/tex/pmhanguljamo.sty
@@ -2,7 +2,7 @@
%%
%% Poorman's Hangul Jamo Input Method.
%%
-%% (C) 2020-2023 Kangsoo Kim
+%% (C) 2020-2024 Kangsoo Kim
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -23,8 +23,8 @@
\RequirePackage{xparse}
\ProvidesExplPackage
{pmhanguljamo}
- {2023/03/03}
- {v1.0.2}
+ {2024/06/10}
+ {v1.1}
{Poorman's Hangul Jamo Input Method}
\RequirePackage{l3keys2e}