summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/luatexko/luatexko-doc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/generic/luatexko/luatexko-doc.tex')
-rw-r--r--macros/luatex/generic/luatexko/luatexko-doc.tex179
1 files changed, 125 insertions, 54 deletions
diff --git a/macros/luatex/generic/luatexko/luatexko-doc.tex b/macros/luatex/generic/luatexko/luatexko-doc.tex
index d23b010e8f..9153b572ed 100644
--- a/macros/luatex/generic/luatexko/luatexko-doc.tex
+++ b/macros/luatex/generic/luatexko/luatexko-doc.tex
@@ -41,7 +41,6 @@
}
}
\defaultfontfeatures+{Renderer=HarfBuzz}
-\setmainfont{Latin Modern Roman}[Expansion] % for hb tlig
\setmainhangulfont{Noto Serif CJK KR}[
Scale=0.98,
AutoFakeSlant,
@@ -50,9 +49,9 @@
UprightFont=* Light,
BoldFont=* Bold,
InterLatinCJK=.125em,
+ CompressPunctuations,
Expansion, Protrusion=notoserifcjk,
]
-\setsansfont{Latin Modern Sans}
\setsanshangulfont{Noto Sans CJK KR}[
Scale=0.98,
Script=Hangul,
@@ -74,7 +73,8 @@
CharRaise=-.125ex,
Color=MidnightBlue,
]
-\setmathhangulfont{Noto Sans CJK KR}[
+\setmathhangulfont{Noto Sans CJK KR}
+[
Script=Hangul,
Language=Korean,
SizeFeatures={
@@ -110,7 +110,7 @@
\AddToHook{env/itemize/begin}{\small}
\AddToHook{env/verbatim/begin}{\linespread{1.1}}
-\catcode`|=13 \protected\def|{\verb|\let\\=\textbackslash}
+\catcode`|=13 \protected\def|{\verb|\let\\=\textbackslash} %|
\def\nohyphen{\language\csname l@nohyphenation\endcsname}
\protected\def\cs#1{\texttt{\nohyphen \textbackslash\detokenize{#1}}}
\protected\def\pkgkwd#1#{\leavevmode
@@ -125,6 +125,14 @@
\def\kotex{\logoko\kern-.1ex .\kern-.1667em \TeX}
\def\hemph#1{\textsf{\bfseries #1}}
\def\ldots{$\dots$}
+\newenvironment{plaintex}{%
+ \par\bigskip
+ \begin{narrower}\small\parindent=0pt
+ \leavevmode\llap{\color{gray}plain \TeX\quad}\ignorespaces
+}{
+ \par
+ \end{narrower}%
+}
\widowpenalty5000
\clubpenalty5000
@@ -134,7 +142,7 @@
\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 3.1\quad 2021/04/20}
+\date{Version 3.2\quad 2021/06/10}
\maketitle
\begin{quote}
@@ -181,13 +189,7 @@ fontspec 문서 참조.
첫 두 줄, 즉 main/sans 글꼴들에는 |Ligatures=TeX| 옵션이 자동으로 주어진다.%
\footnote{%
\cs{adhochangulfont} \cs{adhochanjafont} \cs{addhocfallbackfont}는
- 마지막 줄 명령들의 다른 이름들이다. }\,%
-\footnote{%
- 플레인텍에서 한글 글꼴 설정은 다음과 같이 한다:\par
- \leftskip=3em\noindent
- \cs{hangulfont=UnDotum\relax}\\
- \cs{hanjafont=UnDotum at 14pt}\\
- \cs{fallbackfont=HanaMinB at 12pt} }
+ 마지막 줄 명령들의 다른 이름들이다. }
\begin{verbatim}
\setmainhangulfont \setmainhanjafont \setmainfallbackfont
\setsanshangulfont \setsanshanjafont \setsansfallbackfont
@@ -198,6 +200,27 @@ fontspec 문서 참조.
\hangulfontspec \hanjafontspec \fallbackfontspec
\end{verbatim}
+\begin{plaintex}
+ 플레인텍에서 한글 글꼴 설정은 다음과 같이 할 수 있다:
+\begin{verbatim}
+ \hangulfont=UnDotum\relax
+ \hanjafont="Noto Sans CJK KR" at 10pt
+ \fallbackfont=HanaMinA at 10pt
+\end{verbatim}
+
+ v3.2부터는 한글폰트의 기본값으로 \hemph{은바탕}을 로드한다.
+ 또한 다음 명령들도 제공한다:
+\begin{verbatim}
+ \sethangulfont\taza=UnTaza at 12pt
+ \sethanjafont\dotum=UnDotum at 12pt
+ \setfallbackfont\noto={Noto Sans CJK KR} at 12pt
+\end{verbatim}
+ 그리하여 다음처럼 지시할 수 있게 된다:
+\begin{verbatim}
+ \expandafter\def\expandafter\tt\expandafter{\tt\taza\dotum\noto}
+\end{verbatim}
+\end{plaintex}
+
\section{글꼴 대체}\label{sec:fontswitch}
원칙적으로 \luatexko는 지시된 글자가 영문폰트에 없으면 한글폰트에서,
@@ -219,15 +242,15 @@ fontspec 문서 참조.
|0|을 지시해야 이 기능이 비로소 꺼진다.
verbatim 코드를 식자할 때는 이 기능이 작동하지 않으며,%
\footnote{%
- 정확히 말하자면 |\\language=\\l@nohyphenation|, 즉 하이프네이션이
- 허용 안 되는 상황에서는 작동하지 않는다.
+ 정확히 말하자면 |\\language=\\l@nohyphenation| (플레인텍에서는 |\\language=-1|인 경우),
+ 즉 하이프네이션이 허용 안 되는 상황에서는 작동하지 않는다.
부연하건대, |\\language=\\l@nohyphenation| 상황에서 작동하지 않는
그밖의 기능은 다음과 같다: 줄바꿈 허용, InterCharacter, InterHangul,
InterLatinCJK, CompressPunctuations, RemoveClassicSpaces,
한글^^b7한자 폰트 문자 다음의 공백 크기 조정 등. 마지막의
한글^^b7한자 다음의 공백 크기 조정은 영문자가 고정폭 글꼴일 때에도
작동하지 않는다. }
-문장부호가 고정폭 글꼴일 때에도 작동하지 않는다.
+문장부호가 고정폭 글꼴이거나 tfm 폰트일 때에도 작동하지 않는다.
영향 받는 문장부호들의 기본값은 다음과 같다:
\begin{verbatim}
[0x21] ! [0x27] ' [0x28] ( [0x29] )
@@ -374,7 +397,9 @@ fontspec의 글꼴 옵션 외에 \luatexko가 따로 제공하는 것들이 있
|Vertical=HalfMetrics|와 거의 같은 기능을 한다.%
\footnote{%
플레인텍에서는 각각 |+halt| 및 |+vhal|이다. 이들과 완전 동일하진
- 않다. 가령 U+3002 (\char"3002) 처리의 경우.}
+ 않다. 가령 U+00B7\;(^^b7)의 경우 및 고문헌조판 모드에서
+ U+2018\;(^^^^2018) U+2019\;(^^^^2019) U+201C\;(^^^^201c) U+201D\;(^^^^201d)
+ 처리의 경우.}
\item[Protrusion] \pkgkwd*{Protrusion}%
특정 글자가 행 끝에 왔을 때 판면 바깥으로 끌어내는
@@ -417,12 +442,16 @@ fontspec의 글꼴 옵션 외에 \luatexko가 따로 제공하는 것들이 있
}\label{fig:gomun}
\end{figure}
-고문헌 조판을 위해 \pkgkwd{typesetclassic} 환경을 제공한다.%
+고문헌 조판을 위해 \pkgkwd{typesetclassic} 환경을 제공한다.
+전처리부에 \cs{typesetclassic}을 선언할 수도 있다.%
\footnote{%
플레인텍에서는 (문서 전체에 적용하지 않는다면 그룹 안에서)
- \cs{typesetclassic}을 사용한다.
+ \cs{typesetclassic}을 사용한다. }\,%
+\footnote{%
|japanese|, |chinese|, |Schinese|, |Tchinese|, |korean| 따위의 환경은
- 지난 버전과의 호환성을 위해 당분간 제공되고 있을 뿐이다. }
+ 지난 버전과의 호환성을 위해 제공되고 있을 뿐이다.
+ 그렇더라도 중국어나 일본어 폰트를 사용한다면 이들 환경을 사용하는 것이 좋다.
+ |chinese|는 |Schinese|와 동의어이다. }
그림~\ref{fig:gomun} 참조.
v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나오더라도 자동으로
@@ -464,6 +493,13 @@ v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나
세로쓰기에서 |CharRaise| 옵션의 효과에 대해서는 제\ref{sec:fontoption}절을
참조.
+문서의 일부를 세로쓰기하려면
+|\begin{|\pkgkwd{vertical}|}{<dimen>}| \ldots\ |\end{vertical}|
+환경을 이용한다. 인자 |<dimen>|으로 세로쓰기 박스의 높이를 지시한다.
+그림~\ref{fig:vertical},~\ref{fig:vertical3} 및 \ref{fig:vertical2} 참조.
+만약 인자가 비어있거나 \cs{empty}이면 본문을 한 줄짜리 박스로 식자하며,
+이때 높이는 natural height가 된다.
+
\begin{figure}
\fboxsep=5pt
\framebox[\linewidth]{
@@ -472,7 +508,9 @@ v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나
\hunmintxt
\end{vertical}
}
- \caption{세로쓰기의 예. 박스 높이 |20em|을 지시했다.}\label{fig:vertical}
+ \caption{세로쓰기의 예. 박스 높이 |20em|을 지시했다.
+ 아직 HarfBuzz 모드를 쓸 수 없으므로 폰트에 |Renderer=Node| 옵션을 명시했다.
+ }\label{fig:vertical}
\end{figure}
\begin{figure}
@@ -494,24 +532,6 @@ v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나
}\label{fig:vertical3}
\end{figure}
-문서의 일부를 세로쓰기하려면
-|\begin{|\pkgkwd{vertical}|}{<dimen>}| \ldots\ |\end{vertical}|
-환경을 이용한다. |<dimen>|으로 세로쓰기 박스의 높이를 지시한다.%
-\footnote{%
- 플레인텍에서는 \cs{vertical{<dimen>}} \ldots\ \cs{endvertical}. }
-그림~\ref{fig:vertical},~\ref{fig:vertical3} 및 \ref{fig:vertical2} 참조.
-
-문서 전체를 세로쓰기한다면 이 환경을 쓰는 대신
-\pkgkwd{\verticaltypesetting} 명령을 전처리부에 선언한다.
-이때 면주는 가로로 식자되며 면주 폰트의 설정은 사용자의 몫이다.
-
-세로쓰기 도중에 문서의 일부를 가로쓰기하려면
-|\begin{|\pkgkwd{horizontal}|}{<dimen>}| \ldots\ |\end{horizontal}|
-환경을 이용한다. |<dimen>|은 가로쓰기 박스의 너비를 지시한다.%
-\footnote{%
- 플레인텍에서는 \cs{horizontal{<dimen>}} \ldots\ \cs{endhorizontal}. }
-가로쓰기 영역의 폰트 설정은 사용자의 몫이다.
-
\begin{figure}
\fboxsep=5pt
\framebox[\linewidth]{
@@ -541,6 +561,33 @@ v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나
}\label{fig:vertical2}
\end{figure}
+문서 전체를 세로쓰기한다면 이 환경을 쓰는 대신
+\pkgkwd{\verticaltypesetting} 명령을 전처리부에 선언한다.
+이때 면주는 가로로 식자되며 면주 폰트의 설정은 사용자의 몫이다.
+
+몇몇 페이지를 세로쓰기로 식자하려면 본문 중에
+|\begin{|\pkgkwd{verticaltypesetting}|}| \ldots\ |\end{verticaltypesetting}|
+환경을 이용한다.
+이때도 면주는 가로로 식자되며, 환경의 시작과 끝에서 쪽나눔이 행해진다.
+
+세로쓰기 도중에 문서의 일부를 가로쓰기하려면
+|\begin{|\pkgkwd{horizontal}|}{<dimen>}| \ldots\ |\end{horizontal}|
+환경을 이용한다. |<dimen>|은 가로쓰기 박스의 너비를 지시한다.
+만약 인자가 비어있거나 \cs{empty}이면 본문을 한 줄짜리 박스로 식자하며,
+이때 너비는 당연히 natural width가 된다.
+
+\begin{plaintex}
+ 문서의 일부를 세로쓰기하려면 |\vertical{<dimen>}| \ldots\ |\endvertical|.
+ 인자는 비워둘 수 있다.
+
+ 문서 전체를 세로쓰기하려면 문서 첫머리에 \cs{verticaltypesetting}.
+
+ 몇몇 페이지를 세로쓰기하려면 \cs{beginverticaltypesetting} \ldots\ \cs{endverticaltypesetting}.
+
+ 세로쓰기 도중에 가로쓰기를 넣으려면 |\horizontal{<dimen>}| \ldots\ |\endhorizontal|.
+ 인자는 비워둘 수 있다.
+\end{plaintex}
+
\section{드러냄표}\label{sec:dotemph}
\pkgkwd{\dotemph} 명령으로 \dotemph{드러냄표}%
@@ -575,9 +622,7 @@ v2.0부터는 고문헌 조판에서 한글^^b7한자와 영문자가 붙어 나
\footnote{%
플레인텍에서는 루비의 글꼴크기를 따로 조정해주지 않는다.
사용자가 \cs{rubyfont}를 설정할 때 크기도 함께 지시하도록 한다.
- 가령:\par
- \leftskip=3em\noindent
- |\\font\\rubyfont=UnBatang at \\rubysize em| }
+ 가령: |\\font\\rubyfont=UnBatang at \\rubysize em| }
③~|\def|\pkgkwd{\rubysep}|{0.1ex}|: 루비와 본문 글자 사이의 간격을 지정
@@ -635,12 +680,12 @@ ulem 패키지가 \luatexko와 궁합이 맞지 않아{\small (줄바꿈에 문
\begin{verbatim}
\def\ymarker{%
\markoverwith{%
- \hbox{{\color{yellow!50}\vrule width 1pt height 9pt depth 2pt}}%
+ \hbox{\color{yellow!50}\vrule width 1pt height 9pt depth 2pt}%
}}
\end{verbatim}
\def\ymarker{\markoverwith{%
- \hbox{{\color{yellow!50}\vrule width 1pt height 9pt depth 2pt}}}}
+ \hbox{\color{yellow!50}\vrule width 1pt height 9pt depth 2pt}}}
\cs{ymarker{노란색을 칠해서 강조한다}}\quad$\Rightarrow$\quad
\ymarker{노란색을 칠해서 강조한다}.
@@ -679,23 +724,26 @@ ulem 패키지가 \luatexko와 궁합이 맞지 않아{\small (줄바꿈에 문
수식 한글 폰트를 설정하면 수식 모드에서도 한글을 {\small(hbox로 감싸지 않고)}
직접 입력할 수 있다.%
\footnote{%
- 플레인텍에서는 \cs{mathhangulfont=UnBatang}과 같이 설정한다.
- 또는 좀 더 그럴듯하게 하려면:\par
- \leftskip=3em\noindent
- |\\font\\texthangul="Noto Sans CJK KR DemiLight" at 10pt|\\
- |\\font\\scripthangul="Noto Sans CJK KR Regular" at 7pt|\\
- |\\font\\scriptscripthangul="Noto Sans CJK KR Medium" at 5pt|\\
- |\\setmathhangulfonts\\texthangul\\scripthangul\\scriptscripthangul| }
+ |\\hbox|를 쓰지 않고 직접 입력하는 수식 한글이
+ \uline{디스플레이 수식} 안에 사용된 경우,
+ 앞서 기술한 드러냄표 강조, 밑줄 강조, 한글 글꼴 옵션 등의 기능이 현재로는
+ 전혀 작동하지 않는다. 구현은 비교적 간단하지만, 과연 수식에서
+ 저러한 기능을 써야 할 경우가 있을까 의문이기 때문이다.
+ 사용자의 요청이 있으면 즉시 반영하겠다.
+}
v2.0부터는 자동으로 수식 한글을 잡아주지 않는다.%
\pkgkwd*{\setmathhangulfont}
\begin{verbatim}
- \setmathhangulfont{Noto Sans CJK KR}[
+ \setmathhangulfont{Noto Sans CJK KR}
+ [
SizeFeatures={
{Size=-6, Font=* Medium},
{Size=6-9, Font=* Regular},
{Size=9-, Font=* DemiLight},
- } ]
+ }
+ ]
\end{verbatim}
+
현재 한글만 쓸 수 있게 설정되어 있다. 한자도 수식에 직접 입력하려면 사용자는
다음 명령으로 유니코드 블럭을 추가 지정해야 한다.%
\pkgkwd*{\setmathhangulblock}
@@ -703,6 +751,18 @@ v2.0부터는 자동으로 수식 한글을 잡아주지 않는다.%
\setmathhangulblock{4E00}{9FC3}
\end{verbatim}
+\begin{plaintex}
+ 플레인텍에서는 \cs{mathhangulfont=UnBatang}과 같이 설정한다.
+
+ 또는 좀 더 그럴듯하게 하려면:
+\begin{verbatim}
+ \font\texthangul="Noto Sans CJK KR DemiLight" at 10pt
+ \font\scripthangul="Noto Sans CJK KR Regular" at 7pt
+ \font\scriptscripthangul="Noto Sans CJK KR Medium" at 5pt
+ \setmathhangulfonts\texthangul\scripthangul\scriptscripthangul
+\end{verbatim}
+\end{plaintex}
+
\section{한국어 항목 번호}\label{sec:hangulnums}
\kotex과 동일하게 항목 번호를 한국어 기호로 붙일 수 있다.%
@@ -719,7 +779,9 @@ v2.0부터는 자동으로 수식 한글을 잡아주지 않는다.%
유사하다.%
\footnote{%
변환기능은 |lua-uni-algos| 패키지를 이용하므로
- 이 패키지를 설치해두어야 한다. 또한 HarfBuzz 모드에서는
+ 이 패키지를 설치해두어야 한다. }\,%
+\footnote{%
+ HarfBuzz 모드에서는
첫가끝 자모로의 입력변환이 효과를 못볼 수도 있으니 유의할 것.
}
@@ -732,7 +794,8 @@ v2.0부터는 자동으로 수식 한글을 잡아주지 않는다.%
|0|을 할당하면 다시 UTF-8 입력으로 간주한다. \XeTeX의 \cs{XeTeXinputencoding}
명령과 유사하나, 오직 한국어 문자만 처리할 수 있다.%
\footnote{%
- 윈도 운영체제에서의 한글 파일이름 불러오기 기능은 v2.0부터는 제공하지 않는다.
+ CP949 인코딩 파일시스템을 사용하는 윈도 운영체제에서의
+ 한글 파일이름 불러오기 기능은 v2.0부터는 제공하지 않는다.
대신 |luatex -cmdx ...|, |lualatex -cmdx ...|와 같이 컴파일시 명령행에
|-cmdx| 옵션을 주면 된다고 하니 테스트해 보시기 바란다. }
@@ -743,6 +806,14 @@ v2.0부터는 자동으로 수식 한글을 잡아주지 않는다.%
\section*{주요 변경 이력}
\begin{itemize}\linespread{1.1}\selectfont
+ \item[v3.2] ------
+ \item 한자 뒤에서도 자동조사 기능이 대체로 동작하게끔 하였다.
+ \XeTeX-\logoko{} 패키지가 설치돼 있을 것을 요구한다.
+ \item \hyperref[sec:verttype]{|vertical| 및 |horizontal| 환경의 인자를 비워둘 수 있다}.
+ \item \hyperref[sec:verttype]{|verticaltypesetting|을 환경으로도 쓸 수 있다.
+ 플레인텍에서는 \cs{beginverticaltypesetting} \cs{endverticaltypesetting}}.
+ \item \hyperref[sec:fontcmds]{플레인텍 명령
+ \cs{sethangulfont} \cs{sethanjafont} \cs{setfallbackfont} 추가}
\item[v3.0] ------
\item \hyperref[sec:fontoption]{세로쓰기에서 |CharRaise| 옵션은
이제 글자들의 \dotemph{추가적인} 이동 길이를 나타낸다.}