summaryrefslogtreecommitdiff
path: root/language
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-09-08 03:02:02 +0000
committerNorbert Preining <norbert@preining.info>2022-09-08 03:02:02 +0000
commit13fcaca376a969f57a6a787cf479949ee2f2fc5f (patch)
tree16f7aad6ca17d3031f8c4520c30ae49635773124 /language
parent1a08e963ba518058881d4dc03b8293919de43c97 (diff)
CTAN sync 202209080301
Diffstat (limited to 'language')
-rw-r--r--language/korean/pmhanguljamo/README.md4
-rw-r--r--language/korean/pmhanguljamo/doc/pmhanguljamo-doc.pdfbin161714 -> 162730 bytes
-rw-r--r--language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex15
-rw-r--r--language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdfbin577714 -> 592583 bytes
-rw-r--r--language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex146
-rw-r--r--language/korean/pmhanguljamo/tex/pmhanguljamo-rrk.sty3
-rw-r--r--language/korean/pmhanguljamo/tex/pmhanguljamo.sty64
7 files changed, 193 insertions, 39 deletions
diff --git a/language/korean/pmhanguljamo/README.md b/language/korean/pmhanguljamo/README.md
index 87a8c21017..4a5044759c 100644
--- a/language/korean/pmhanguljamo/README.md
+++ b/language/korean/pmhanguljamo/README.md
@@ -1,4 +1,4 @@
-# pmhanguljamo
+# pmhanguljamo
## About
@@ -10,7 +10,7 @@ XeLaTeX or LuaLaTeX is recommended. And the legacy pdfTeX is not supported.
In version 0.3, it provides two kinds of transliteration rules. The default way is this package's unique method. The alternative one is a more familiar *Korean Romanization Rule*. With the latter only Modern Hangul can be typeset.
-In version 0.5, it is possible to specify proper font for typesetting Jamo Hangul.
+In version 0.5, it is possible to specify proper font for typesetting Jamo Hangul. And in version 0.5.1, a few bugs were fixed and providing font feature to the very font was enabled.
## Copyright and License
diff --git a/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.pdf b/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.pdf
index fbd6184a61..400de5971e 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 cdd1e67962..87ab1ed882 100644
--- a/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex
+++ b/language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex
@@ -40,7 +40,7 @@
\author{Kangsoo Kim}
%\date{10 Mar 2021\quad version 0.3.5}
%\date{20 Sep 2021\quad version 0.3.6}
-\date{2 Sep 2022\quad version 0.5}
+\date{6 Sep 2022\quad version 0.5.1}
\maketitle
@@ -83,6 +83,9 @@ not allowed.
\item \texttt{pmfont=<fontname>}. The font that is used to typeset Hangul
characters in the scope of \verb|\jamoword| or \texttt{jamotext}. If this option missing, the Jamo-Hangul font is to be same as the \textit{main font} of
the document.
+
+\item \texttt{pmfontfeature=<fontfeature>}. It is possible to provide \emph{font features} to
+the font selected as \texttt{pmfont}.
\end{enumerate}
\subsection{Commands and Environment Provided}
@@ -91,8 +94,8 @@ The main command to typeset Hangul is \verb|\jamoword|.
\begin{quote}
Input:
-\verb|\jamoword{myec dan/e/ga or su iss/svb/ni/da/.}|\\
-Result: \textkorean{\jamoword{myec dan/e/ga or su iss/svb/ni/da/.}}
+\verb|\jamoword{han/gvr/vi yeis i/rvm/vn hun/min/jex/vm/i/da/.}|\\
+Result: \textkorean{\jamoword{han/gvr/vi yeis i/rvm/vn hun/min/jex/vm/i/da/.}}
\end{quote}
The argument of the command consists of roman alphabets
@@ -164,7 +167,7 @@ pi/ta/go/ra/sv/vi jex/ri/ !{\unskip :} !{$a^2+b^2=c^2$}.
The \verb|!{| mark must be located in the head of a word.
To remove the preceding space of a word, \verb|\unskip| is
used in the example. This trick will be useful when using
-math equations, \LaTeX\ macros, or English words with long Jamo Hangul
+math equations, \LaTeX\ macros, or English words along with long Jamo Hangul
texts.
@@ -176,6 +179,7 @@ proper fonts should be declared for Hangul, utilizing \pkg{fontspec}.
\begin{externalDocument}[
compiler=xelatex,
code,
+ lstOptions={basicstyle=\ttfamily},
cleanup]{testa}
\documentclass{standalone}
%StartVisiblePreamble
@@ -193,6 +197,7 @@ declare the proper font for Jamo Hangul with \texttt{Script=Hangul} option.\foot
\begin{externalDocument}[
compiler=xelatex,
code,
+ lstOptions={basicstyle=\ttfamily},
cleanup]{testa}
\documentclass{standalone}
%StartVisiblePreamble
@@ -219,6 +224,7 @@ can be used with it. The following is an example.
\begin{externalDocument}[
compiler=xelatex,
code,
+ lstOptions={basicstyle=\ttfamily},
cleanup]{testa}
\documentclass{standalone}
%StartVisiblePreamble
@@ -245,6 +251,7 @@ Or the ko.\TeX\ package bundle can be used together.
\begin{externalDocument}[
compiler=xelatex,
code,
+ lstOptions={basicstyle=\ttfamily},
cleanup]{testa}
\documentclass{standalone}
%StartVisiblePreamble
diff --git a/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdf b/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdf
index dd9ece32fe..61f266d344 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 f152aa5b5a..7faa9e3822 100644
--- a/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex
+++ b/language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex
@@ -16,12 +16,15 @@
\usepackage{kotex-logo}
\usepackage{amssymb}
-\usepackage{pmhanguljamo}
+\usepackage[pmfont={Noto Serif KR}]{pmhanguljamo}
\usepackage{boxedminipage}
\usepackage{tabularray}
+\usepackage{oblivoir-misc}
+
\ifXeTeX
\def\fontfeatureoption{Script=Hangul}
+\usepackage[normalem]{ulem}
\else\ifLuaTeX
\def\fontfeatureoption{Script=Hangul,RawFeature={mode=harf}}
\fi\fi
@@ -30,16 +33,16 @@
\setmainfont{Noto Serif}
\setsansfont{Noto Sans}
\setmonofont{Noto 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 KR}%[\fontfeatureoption]
+\setkomainfont(Noto Serif KR)(* Bold)(Noto Sans KR Light)%[\fontfeatureoption]
+\setkosansfont(Noto Sans KR)(* Bold)%[\fontfeatureoption]
\setkomonofont(Noto Sans Mono CJK KR)
\usepackage{tcolorbox}
\tcbuselibrary{listings,breakable}
\tcbset{listing engine=listings,colframe=gray,colback=white,size=normal}
\NewDocumentEnvironment {exampleside} {}
- { \tcblisting{listing side text,righthand width=.38\textwidth} }
+ { \tcblisting{listing side text,righthand width=.37\textwidth} }
{ \endtcblisting }
\newcommand\pkg[1]{%
@@ -71,19 +74,22 @@
%\date{2020/03/10\quad v0.3.5}
%\date{2021/09/20\quad v0.3.6}
%\date{2021/11/28\quad v0.4}
-\date{2022/09/02\quad v0.5}
+%\date{2022/09/02\quad v0.5}
+\date{2022/09/06\quad v0.5.1}
\maketitle
\begin{exampleside}
\begin{jamotext}
-g@/r@/mi p@/r@/ni sai de/ug h@i/o/,\\
-moy/hi pe/re/h@/ni gos bi/ci bvr bvd/n@n d@s/do/da/.\\
-ors bo/mi bon/d@in sdo di/na/ga/n@/ni \\
-e/nv na/ri i do/ra/gar h@i/o/.
+g@/r@;mi p@/r@:ni sai; de/ug; h@i;o/,\\
+moy:hi pe/re/h@/ni; gos/bi;ci bvr; bvd/n@n d@s;do/da/.\\
+ors/bo;mi bon:d@in sdo; di:na/ga;n@/ni;\\
+e/nv; na;ri i; do;ra/gar h@i;o;.
\end{jamotext}
\end{exampleside}
+\vspace{-.5\baselineskip}
+
\tableofcontents*
\section{목적}
@@ -127,15 +133,16 @@ gyeg/bun/si/ki/nvn man/haix/vr co/rai/ha/yess/v/mye/,
preamble에 위의 문장을 둔다.
-옵션은 다음 두 가지가 있다.
+옵션은 다음과 같다.
\begin{enumerate}[1.]
\item \verb|rrk| 또는 \verb|RRK|.
입력 방식이 ``표준 전자법''으로 현대 한글을 입력하는 방식으로 바뀐다. 이에 대해서는
\ref{sec:rrk}절을 보라. 옵션을 주지 않으면 \ref{sec:pmrule}절에서 설명하는 pm 입력 방식을 따른다.
\item \verb|pmfont={<fontname>}|.
식자할 폰트를 지정한다. 이 옵션이 주어지지 않으면 문서의 mainfont (\koTeX\ 패키지의
-경우는 mainhangulfont)를 따른다. 지정할 수 있는 폰트에 대해서는 \ref{sec:font} \titleref{sec:font}\를
-보라.
+경우는 mainhangulfont)를 따른다. 지정할 수 있는 폰트에 대해서는 \ref{sec:font} \titleref{sec:font}\를, 이 옵션에 대한 설명은 \ref{font:set}\를 보라.
+\item \verb|pmfontfeagure=<fontfeature>|.
+pmfont 옵션으로 지정하는 폰트에 추가 속성을 부여하려 할 때. \ref{font:set}\을 보라.
\end{enumerate}
\subsection{명령과 환경}
@@ -252,6 +259,50 @@ vr yu/do/ha/ye bo/ja/.
\jmcc{BSG} \jmcc{@} \jmcc{UEY} \jmcc{@@}
\end{exampleside}
+\subsection{밑줄 긋기}
+
+\leavevmode\marginpar{\fbox{\footnotesize v0.5.1}}%
+밑줄을 긋는 명령 \cmda{\underline}의 인자로 \cs{jamoword}가 오는 것은 문제가 없다.
+
+\begin{exampleside}
+\underline{\jamoword{mit/jur/gvs/gi}}
+\end{exampleside}
+
+그러나 이 명령은 행자르기가 이루어지지 않는다. \textsf{ulem} 패키지의 \cs{uline}을
+쓰면 이 문제를 해결할 수 있으나,
+이 패키지의 현재 버전(0.5.1)은 \textsf{ulem} 패키지와 충돌이 있다. \XeLaTeX 으로
+\koTeX 패키지를 활용하는 상황에서 \textsf{ulem}은 오류를 보이거나 의도하지 않은 결과를
+산출할 것이다. (RRK 입력 방법에서도 동일하다.)
+
+Lua\LaTeX, 즉 \textsf{luatexko}를 이용하는 경우에는 \textsf{ulem} 없이도 ulem 명령들,
+\verb|\uline| 등을 사용할 수 있으며 이 경우에는 에러 없이 잘 동작한다. 그러므로
+\cs{uline}과 같은 ulem 명령을 사용하여야 한다면 Lua\LaTeX 으로 컴파일하는 것이 좋다.
+
+그러나 부득이하여 \XeLaTeX 으로 컴파일하여야 하는 경우이고 밑줄 등을 구현하여야 하는 때라면
+\cmda{\jamoul} 명령을 이용할 수 있다. 물론 \textsf{ulem} 패키지 등은 preamble에서
+선언되어 있어야 한다.\footnote{Lua\LaTeX 과 \koTeX 을 쓸 때는 \textsf{ulem} 패키지를
+별도로 로드하지 않는다.}
+
+\begin{boxedverbatim}
+ \jamoul{<ulem command name>}{jamo text}
+\end{boxedverbatim}
+
+\texttt{<ulem command name>}은 ulem 명령의 이름을 백슬래시 없이 지정한다는 뜻이다.
+다음 예를 보라.
+
+\begin{exampleside}
+\jamoul{uline}{ye/hvi/ye/syu/mvr svr/ho/ni sai}
+\jamoul{uwave}{m@/@/m@r}
+\jamoword{nor/rai/no/ra}
+\end{exampleside}
+
+%\textsf{oblivoir-misc}의 \cmda{\texthl}도 같은 방법으로 할 수 있다:
+%\verb|\jamoul{texthl}{nuns/mvr/r@r sbv/ri/gey/ko}|
+%\jamoul{texthl}{nuns/mvr/r@r sbv/ri/gey/ko}
+
+\cs{jamoul}을 이용하여 밑줄을 긋는 기능은 RRK 입력방법에서는 구현되지 않았다.
+이 때에는 \textsf{luatexko}의 ulem 명령을 사용하여야 할 것이다.
+
\section{轉字 규칙} \label{sec:pmrule}
이 패키지는 아래에서 설명하는 바 독특한 입력 문자 대응 규칙을 정의하여 쓴다. 이 방법을
@@ -284,8 +335,8 @@ vr yu/do/ha/ye bo/ja/.
\medskip
\begin{exampleside}
-\jamoword{naix:jyuq/ G/ so/ri;n@n;}\\
-\jamoword{naix:jyuq G so/ri;n@n;}
+\jamoword{moi/koa/ g@/r@m/sbun/ is/go/}\\
+\jamoword{moi/koa g@/r@m/sbun is/go}
\end{exampleside}
스페이스 앞에서 \verb|/|를 생략할 수 있음과 관련하여 스페이스가 아니라면 생략할 수 없음에 주의하라. 예컨대 마침표와 같은 문장부호가 올 때는 그 문장부호 앞에서 \verb|/|를 생략할 수 없다.
@@ -447,6 +498,7 @@ $\Rightarrow$ na/ras/mar/ss@/mi}
자모 조합 한글을 구현할 수 있는 몇몇 글꼴을 테스트해보겠다.
+\unusepmfont
\begin{boxedverbatim}
sa:r@m/ma:da; h@i:xxye; su:bxi; ni/gye;
\end{boxedverbatim}
@@ -466,7 +518,7 @@ sa:r@m/ma:da; h@i:xxye; su:bxi; ni/gye;
은 바탕 \testfont{UnBatang}
-본명조 또는 Noto Serif \testfont{Noto Serif KR}
+본명조 또는 Noto Korean \testfont{Noto Serif KR}
나눔명조옛한글 \testfont{NanumMyeongjo-YetHangul.ttf}
@@ -543,7 +595,9 @@ Adobe 명조 \testfont{AdobeMyungjoStd-Medium.otf}
\fi
-\subsection{폰트의 지정}
+\usepmfont
+
+\subsection{폰트의 지정}\label{font:set}
\paragraph{Script Hangul Option}
@@ -590,7 +644,44 @@ mainfont로 식자할 것인지, 또는 별도의 폰트를 \cmda{\newfontfamily
옵션 \verb|pmfont={HCR Batang LVT}|는 이 두 매크로를 문서의 맨처음부터
설정하는 것과 동일하다.
-\subsection{활용 방법}
+거의 쓸 일이 있을 것으로 생각하지 않지만 자모 한글을 식자할 때 pmfont에 의하지
+않고 본문 기본 한글 글꼴(이 때 한글 글꼴에는 반드시 \texttt{Script=Hangul}이
+주어져 있어야 한다)로 식자하도록 되돌리려 할 때
+\begin{verbatim}
+ \unusepmfont
+\end{verbatim}
+를 선언할 수 있다. 본문 글꼴에 \texttt{Script=Hangul} 옵션이
+주어져 있지 않으면 다음과 같은 결과를 얻게 될 것이다.
+\unusepmfont
+\jamoword{na/ras;mar:ss@/mi;}
+\usepmfont
+
+\paragraph{패키지 옵션 pmfontfeature} \marginpar{\fbox{\footnotesize{v0.5.1}}}
+자모 한글을 식자하는 폰트(pmfont)에 추가적인 fontfeature를 부여하려면 이 옵션을
+쓸 수 있다. 다음은 \koTeX\ 한글 폰트 속성 FakeStretch를 부여한 예이다.
+
+\begin{verbatim}
+ \usepackage[pmfont={HCR Batang LVT},pmfontfeature={FakeStretch=0.9}]
+ {pmhanguljamo}
+\end{verbatim}
+
+\cmda{\setpmhangulfont} 명령의 옵션으로 fontfeature를 부여할 수도 있다.
+
+\begin{verbatim}
+ \setpmhangulfont{Noto Serif KR}[FakeStretch=0.9]
+\end{verbatim}
+
+이미 부여한 속성을 기본값으로 되돌리려면 \cmda{\setpmhangulfont}를 옵션 없이
+선언하여야 한다.
+
+\begin{exampleside}
+\setpmhangulfont{HCR Batang LVT}[Color=blue,FakeStretch=0.8]
+\jamoword{moi/koa g@/r@m/sbun is/go}\\
+\setpmhangulfont{Noto Serif KR}
+\jamoword{moi/koa g@/r@m/sbun is/go}
+\end{exampleside}
+
+\subsection{활용}
특정 언어 패키지나 입력기의 제약 없이 한글 글꼴을 지정하는 것만으로
현대 한글과 옛한글을 모두 표현할 수 있다는 것이 \pkg{pmhanguljamo}의 장점이다.
@@ -737,7 +828,6 @@ na/ras/mar/ss@/mi
\end{jamotext}
\end{quote}
-
\section{표준 로마자 표기법 전자법 입력}\label{sec:rrk}
\let\Ajamoword\jamoword
@@ -834,7 +924,7 @@ RRK는 이 문서의 영어 명칭인 \emph{Revised Romanization of Korean}의
\begin{boxedverbatim}
\begin{verse}
\begin{jamotext}
-nae saranghali siwol-ui gangmul-eul \\
+nae salanghali siwol-ui gangmul-eul \\
seog-yang-i jit-eoganeun puleun molaetob \\
jinan nal gajyeossdeon seulpeun yeojeongdeul-eul, adeughan gidaeleul \\
ijeneun hollo nam-a ttatteus-i gidalili.
@@ -844,7 +934,7 @@ ijeneun hollo nam-a ttatteus-i gidalili.
\begin{verse}
\begin{jamotext}
-nae saranghali siwol-ui gangmul-eul \\
+nae salanghali siwol-ui gangmul-eul \\
seog-yang-i jit-eoganeun puleun molaetob \\
jinan nal gajyeossdeon seulpeun yeojeongdeul-eul, adeughan gidaeleul \\
ijeneun hollo nam-a ttatteus-i gidalili.
@@ -959,10 +1049,12 @@ Kubuntu 리눅스에서 옛한글이 사용되는 문서를 작성할 일이 있
QT에서 뭔가 이상하게 동작하거나 아예 한글 입력이 안 되거나\ldots\ldots.
\LaTeX\ 문서인데 굳이 입력기가 필요한가 생각이 들어 간단히 로마자 대응 입력(transliteration)으로 한글과 옛한글을
입력하도록 하면 이 문제로 시간낭비하지 않아도 되지 않을까 싶어 시작하게 된 일이었다.
-(그리고 입력기 설치보다 더 많은 시간과 \jamotextcmd{ke}\jamotextcmd{xpi}--\footnote{이 표기를
-이태준 (1940), \ccnm{文章講話} (경성 종로, 文章社), p.~23에서 보았다. `\jamotextcmd{pxi}'가
-아니라 `\jamotextcmd{xpi}'이다. 부록의 \fref{fig:mun} 참조.
-인쇄 상태로 미루어보면 `\jamotextcmd{xpi}'자 활자가 있었던 것 같지는 않고 `피'를 식자한 후에 왼편에
+(그리고 입력기 설치보다 더 많은 시간과 {\hangulfontspec{Noto Serif KR}[Script=Hangul]\jamotextcmd{ke}\jamotextcmd{xpi}}--\footnote{이 표기를
+이태준 (1940), \ccnm{文章講話} (경성 종로, 文章社), p.~23에서 보았다. `{\hangulfontspec{Noto Serif KR}[Script=Hangul]\jamotextcmd{pxi}}'가
+아니라
+`{\hangulfontspec{Noto Serif KR}[Script=Hangul]\jamotextcmd{xpi}}'이다. 부록의 \fref{fig:mun} 참조.
+인쇄 상태로 미루어보면
+`{\hangulfontspec{Noto Serif KR}[Script=Hangul]\jamotextcmd{xpi}}'자 활자가 있었던 것 같지는 않고 `피'를 식자한 후에 왼편에
조그마한 고리를 달아 인쇄한 것으로 보인다.
한편, 정약용의 원본에 지석영이 영어 단어와 음을 붙여 발행했다고 하는 \ccnm{아학편} (1909)에서도 이와 같은 표기법이 쓰이고 있다.}%
를 소비하였다.)
@@ -1030,6 +1122,8 @@ Expl3는 내가 원하는 일을 너무나 간단하게 구현할 수 있게 해
\textbullet\ v0.5 (2022/09/02): 패키지 옵션 \texttt{pmfont} 추가. jamotext 환경
내에서 아스키 에스케이핑.
+
+\textbullet\ v0.5.1 (2022/09/06): 버그 수정 및 ulem. 패키지 옵션 \texttt{pmfontfeature}.
%%% APPENDICES
\ExplSyntaxOn
\int_new:N \l_appsec_int
@@ -1046,7 +1140,7 @@ Expl3는 내가 원하는 일을 너무나 간단하게 구현할 수 있게 해
\newpage
\section*{부록 \appsec. 이 문서 컴파일에 필요한 폰트}
-\addcontentsline{toc}{section}{\string\hspace{1.8em}부록}
+\addcontentsline{toc}{section}{\protect\numberline{}부록}
이 문서의 한글과 한자 부분에 다음과 같은 폰트를 사용하였다.
모두 설치되어 있어야 컴파일할 수 있다.
diff --git a/language/korean/pmhanguljamo/tex/pmhanguljamo-rrk.sty b/language/korean/pmhanguljamo/tex/pmhanguljamo-rrk.sty
index 40df178d30..1f96ecd417 100644
--- a/language/korean/pmhanguljamo/tex/pmhanguljamo-rrk.sty
+++ b/language/korean/pmhanguljamo/tex/pmhanguljamo-rrk.sty
@@ -5,6 +5,7 @@
% v0.3.4 (2020/03/15)
% v0.4 (2021/11/28)
% v0.5 (2022/09/02)
+% v0.5.1 (2022/09/06)
%
\seq_new:N \l_textjm_seq
@@ -64,7 +65,7 @@
{
\group_begin:
\bool_if:NT \opt_usepmfont_bool
- { \pm_hangulfontspec[Script=Hangul,Renderer=OpenType] {\opt_pmfont_tl } }
+ { \pm_hangulfontspec [\opt_pmfontfeature_tl] {\opt_pmfont_tl } }
\seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
\seq_map_indexed_inline:Nn \l_tmpa_seq
diff --git a/language/korean/pmhanguljamo/tex/pmhanguljamo.sty b/language/korean/pmhanguljamo/tex/pmhanguljamo.sty
index 59853b9dd0..c282b3c6ad 100644
--- a/language/korean/pmhanguljamo/tex/pmhanguljamo.sty
+++ b/language/korean/pmhanguljamo/tex/pmhanguljamo.sty
@@ -22,14 +22,15 @@
\RequirePackage{xparse}
\ProvidesExplPackage
{pmhanguljamo}
- {2022/09/02}
- {v0.5}
+ {2022/09/06}
+ {v0.5.1}
{Poorman's Hangul Jamo Input Method}
\RequirePackage{l3keys2e}
\bool_new:N \opt_usepmfont_bool
\tl_new:N \opt_pmfont_tl
+\tl_new:N \opt_pmfontfeature_tl
\keys_define:nn { pmhanguljamo }
{
@@ -38,7 +39,8 @@
pmfont .code:n = {
\bool_gset_true:N \opt_usepmfont_bool
\tl_gset:Nn \opt_pmfont_tl { #1 }
- }
+ },
+ pmfontfeature .tl_set:N = \opt_pmfontfeature_tl
}
\ProcessKeysOptions { pmhanguljamo }
@@ -179,9 +181,29 @@
\bool_gset_true:N \opt_usepmfont_bool
}
-\NewDocumentCommand \setpmhangulfont { m }
+\NewDocumentCommand \unusepmfont { }
{
- \tl_gset:Nn \opt_pmfont_tl { #1 }
+ \bool_gset_false:N \opt_usepmfont_bool
+}
+
+\NewDocumentCommand \setpmhangulfont { o m o }
+{
+ \tl_gset:Nn \opt_pmfont_tl { #2 }
+ \IfValueTF { #3 } { \tl_gset:Nn \opt_pmfontfeature_tl { #3, Script=Hangul, Renderer=OpenType } }
+ {
+ \IfValueTF { #1 } { \tl_gset:Nn \opt_pmfontfeature_tl { #1, Script=Hangul, Renderer=OpenType } }
+ { \tl_gset:Nn \opt_pmfontfeature_tl { Script=Hangul, Renderer=OpenType } }
+ }
+}
+
+\AtBeginDocument{
+ \tl_if_empty:NTF \opt_pmfontfeature_tl
+ {
+ \tl_gset:Nn \opt_pmfontfeature_tl { Script=Hangul, Renderer=OpenType }
+ }
+ {
+ \tl_gput_right:Nn \opt_pmfontfeature_tl { , Script=Hangul, Renderer=OpenType }
+ }
}
%%%% if RRK is given, then input pmhanguljamo-rrk.sty
@@ -270,7 +292,12 @@
\seq_map_indexed_inline:Nn \l_inputword_seq
{
\bool_if:NTF \opt_usepmfont_bool
- { {\pm_hangulfontspec[Script=Hangul,Renderer=OpenType]{\opt_pmfont_tl} \jamotextcmd{ ##2 } } }
+ {
+ {
+ \pm_hangulfontspec [\opt_pmfontfeature_tl] {\opt_pmfont_tl}
+ \jamotextcmd{ ##2 }
+ }
+ }
{ \jamotextcmd { ##2 } }
\int_compare:nT { ##1 < \seq_count:N \l_inputword_seq }
{ \space }
@@ -374,6 +401,7 @@
\NewDocumentCommand \ColonMark {} { : }
\NewDocumentCommand \SemiColonMark {} { ; }
\NewDocumentCommand \SlashMark {} { / }
+\NewDocumentCommand \CntrdotMark {} { · }
%%%%%%%%% DICTIONARIES
\prop_const_from_keyval:Nn \c_cho_prop
@@ -794,5 +822,29 @@
| = {}
}
+%%%% underline
+\NewDocumentCommand \jamoul { m m }
+{
+ \tl_set:Nn \l_pmulcmdnm_tl { #1 }
+ \seq_set_split:Nnn \l_pmlli_seq { ~ } { #2 }
+ \seq_map_indexed_function:NN \l_pmlli_seq \_tr_ulfn:nn
+}
+
+\cs_new:Npn \_tr_ulfn:nn #1 #2
+{
+ \tl_set:Nn \l_tmpz_tl { #2 }
+ \regex_replace_all:nnN { \: } { \:\/ } \l_tmpz_tl
+ \regex_replace_all:nnN { \; } { \;\/ } \l_tmpz_tl
+ \seq_set_split:NnV \l_pmnni_seq { / } \l_tmpz_tl
+ \seq_map_inline:Nn \l_pmnni_seq
+ {
+ \exp_args:No \use:c { \l_pmulcmdnm_tl } { \jamoword { ##1 } }
+ }
+ \int_compare:nT { #1 < \seq_count:N \l_pmlli_seq }
+ {
+ \exp_args:No \use:c { \l_pmulcmdnm_tl } {\space}
+ }
+}
+
\endinput