%% !TEX program = lualatex
%% !TEX encoding = UTF-8
%%
%% luatexko-doc.tex
%%
%% written by Dohyun Kim <nomos at ktug org>
%%            Soojin Nam <jsunam at gmail com>
%%
%% public domain

%\RequirePackage{luatex85}
\documentclass[a4paper]{article}
\usepackage[hmargin=3.8cm]{geometry}
\usepackage[hangul]{luatexko}
\usepackage{luamplib}
\setmainhangulfont{KoPubBatang_Pro}[
  AutoFakeSlant,
  UprightFont=* Light,
  BoldFont=* Bold,
  InterLatinCJK=.125em,
  Expansion, Protrusion,
]
\setsanshangulfont{Noto Sans CJK KR}[
  CharRaise=-0.1ex,
  Script=Hangul,
  Language=Korean,
  UprightFont=* DemiLight,
  BoldFont=* Bold,
  InterLatinCJK=.125em,
]
\setmonofont{Inconsolatazi4}[
  Color=191970, % MidnightBlue
]
\setmonohangulfont{Noto Sans CJK KR}[
  UprightFont=* DemiLight,
  BoldFont=* Bold,
  CharRaise=-.25ex,
  Color=191970, % MidnightBlue
]
\usepackage{hologo}
\def\luatex{\hologo{LuaTeX}}
\def\MP{\hologo{METAPOST}}
\def\XeTeX{\hologo{XeTeX}}
\usepackage[pdfencoding=auto,bookmarksnumbered,hidelinks]{hyperref}

\edef\verbatim{\unexpanded\expandafter{\verbatim\linespread{1.1}\selectfont}}
\edef\itemize{\unexpanded\expandafter{\itemize\small}}
\catcode`|=13 \def|{\verb|\let\\=\textbackslash} %|
\def\logoko{\textsf{k}\kern-.0625em\textit{o}}
\def\luatexko{\luatex-\logoko}
\def\texlive{\TeX\ Live}
\def\kotex{\logoko\kern-.1ex .\kern-.1667em \TeX}
\edef\section#1{\unexpanded\expandafter{\section{\empty}\vskip-5pt\hrule\nobreak\vskip5pt}}
\def\hemph#1{\textsf{\bfseries #1}}
\def\cs#1{\texttt{\textbackslash\detokenize{#1}}}
\def\ldots{$\dots$}
\widowpenalty10000 \clubpenalty10000

\begin{document}
\title{\luatexko\ 간단 매뉴얼}
\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 1.16\quad 2017/02/06}
\maketitle

\begin{quote}\small
  For a summary introduction in English, please see |README| file.

\begin{itemize}\linespread{1.1}\selectfont
    \item[v1.0] ------
    \item \hyperref[sec:loading]{플레인텍에서도 luatexko.sty을 불러야 한다.}
    \item \hyperref[sec:fontoption]{글꼴 옵션값을 |<dimen>|으로 지시한다.}
    \item \hyperref[sec:metapost]{\MP\ 코드를 넣으려면 luamplib 패키지를
      불러야 한다.}
    \item[v1.3] ------
    \item \hyperref[sec:fontcmds]{fallbackfont 계열의 명령이 추가되었다.}
    \item \hyperref[sec:fontswitch]{\cs{hangulpunctuations} 선언이 추가되고,
      |[QuoteRaise]| 옵션이 없어졌다.}
    \item \hyperref[sec:autojosa]{\cs{josaignoreparens=1}이 선언되면
      자동조사 결정시 괄호 부분을 무시한다.}
    \item[v1.5] ------
    \item \hyperref[sec:verttype]{세로쓰기를 지원하기 위한 실험적 코드가
      들어갔다.}
    \item \hyperref[sec:actualtext]{\cs{actualtext} 명령이 추가되었다.}
    \item \hyperref[sec:fontswitch]{한글·한자 글꼴의 지정이 없으면
      나눔 Type1을 이용한다.}
    \item \hyperref[sec:packageopt]{패키지 옵션 |[nofontspec]|이 추가되었다.}
    \item[v1.6] ------
    \item \hyperref[sec:fontoption]{글꼴 옵션 |[NoEmbedding]|이 추가되었다.}
    \item \hyperref[sec:fontcmds]{main/sans hangul/hanja/fallback 폰트의
      디폴트 옵션으로 |[Ligatures=TeX]|이 주어진다.}
    \item[v1.7] ------
    \item 패키지 옵션 |[unfonts]|를 더는 지원하지 않는다. 이 옵션을 사용한
      기존 문서는 기본 글꼴인 나눔 Type1으로 식자될 것이다.
    \item[v1.8] ------
    \item \hyperref[sec:ruby]{\cs{xxruby} 명령이 추가되었다.}
    \item[v1.9] ------
    \item \hyperref[sec:verttype]{|horizontal| 환경이 추가되었다.}
  \end{itemize}
\end{quote}

\smallskip

\section{}
\hemph{\texlive\ 2016 이상}{\small (\luatex\ v0.95 이상)}을 사용해야 한다.
아직 \luatex은 베타 상태로 개발 중에 있으므로 안정적인 동작을 보장하지 않는다.

\section{}\label{sec:loading}
\luatexko\ 로드하기: \cs{usepackage{luatexko}} 혹은 \cs{usepackage{kotex}}.
플레인텍에서는 \cs{input luatexko.sty} 혹은 \cs{input kotex.sty}.
입력은 원칙적으로 UTF-8으로 한다.
BOM (Byte Order Mark)은 있어도 좋고 없어도 좋다.
CP949 인코딩에 관해서는 제\ref{sec:uhcencoding}절 참조.

\section{}\label{sec:packageopt}
패키지 옵션으로 |[hangul]|과 |[hanja]|가 제공된다.  행간격 조정이 행해지며
장 제목이나 표·그림 캡션 따위가 한글 또는 한자 방식으로 표시된다.  다만
장(chapter) 제목과 편(part) 제목에만 ``제(第)''가 붙어 ``제~1 편''
``제~3 장''과 같은 방식으로 표시되며 절 제목 이하에는 붙지 않는다.

|[nofontspec]| 옵션을 주면 fontspec을 부르지 않는다.
따라서 아래 \ref{sec:fontcmds}, \ref{sec:fontswitch}, \ref{sec:fontoption},
\ref{sec:verttype}, \ref{sec:mathhangul}절의 유니코드 한국어 글꼴 설정
명령들도 사용할 수 없다.

\section{}\label{sec:fontcmds}
\luatexko를 로드하면 fontspec 패키지를 자동으로 불러온다.  글꼴 설정에
대해서는 fontspec 문서를 참조하라.

한국어 글꼴을 위해 새로 마련한 명령은 다음과 같다.
\begin{verbatim}
  \setmainhangulfont     \setmainhanjafont    \setmainfallbackfont
  \setsanshangulfont     \setsanshanjafont    \setsansfallbackfont
  \setmonohangulfont     \setmonohanjafont    \setmonofallbackfont
  \newhangulfontfamily   \newhanjafontfamily  \newfallbackfontfamily
  \addhangulfontfeature  \addhanjafontfeature \addfallbackfontfeature
  \hangulfontspec        \hanjafontspec       \fallbackfontspec
\end{verbatim}
\cs{adhochangulfont} \cs{adhochanjafont} \cs{addhocfallbackfont}는
마지막 줄 명령들의 다른 이름들이다.
첫 두 줄의 명령들, 즉 main/sans hangul/hanja/fallback 글꼴에는
|Ligatures=TeX| 옵션이 자동으로 주어진다.
\begin{itemize}\item[]
플레인텍에서 한글 글꼴 설정은 영문 글꼴 지정하는 방식과 거의 같다.
\begin{verbatim}
  \hangulfont=UnDotum\relax
  \hanjafont=UnDotum at 14pt
  \fallbackfont=HanaMinB at 12pt
  \hangulfont=UnDotum scaled 2000
  \hanjafont="HCR Batang LVT"\relax
  \hangulfont={HCR Batang LVT:script=hang;+dlig} at 12pt
\end{verbatim}
\end{itemize}

\section{}\label{sec:fontswitch}
원칙적으로 \luatexko는 지시된 글자가 영문폰트에 없으면 한글폰트에서,
한글폰트에도 없으면 한자폰트에서, 한자폰트에도 없으면 fallback
폰트에서 글자를 찾아 찍는다. 세 가지 \hemph{모두 지정되지 않았다면 나눔 Type1
폰트를} 이용한다. 기존 \kotex과는 글꼴 대체 방식이 다르므로 주의해야 한다.

하지만 \cs{hanjabyhanjafont=1}을 선언하면 한자는 우선 한자글꼴로
식자한다.  |0|을 선언하면 원래 방식으로 되돌아간다. 이 명령은 문단
중간에서 사용하지 않도록 주의해야 한다. 문단 중에 사용되었다면
그 문단의 처음부터 효력이 발생한다.

\cs{hangulpunctuations=1}을 선언하면 영문 \hemph{문장부호들을 한글 폰트로}
식자한다. |0|을 지시하면 원래 상태로 되돌린다.
|[hangul]| 옵션을 주면 \cs{hangulpunctuations=1}이 자동으로
선언된다.\footnote{나눔 Type1 상태면 그러하지 아니하다.}
이 선언에 의해 영향 받는 문장부호들을 다음처럼 지정할 수 있다.
인자는 콤마로 분리된 숫자 형식으로서 유니코드 코드포인트를 뜻한다.
\begin{verbatim}
  \registerpunctuations{45, "2D, `-}
  \unregisterpunctuations{"2D, "2015}
\end{verbatim}
이들 두 명령은 항상 전역적 효과를 가진다.


\section{}\label{sec:fontoption}
fontspec의 글꼴 옵션 외에 \luatexko가 따로 제공하는 것들이
있다.\footnote{ 옛한글 식자를 위해서는
  |[Script=Hangul]| 옵션을 사용하는 것으로 충분하다.
  플레인텍이라면 |script=hang|.}

\begin{figure}
  \fboxsep=1em
  \fbox{\parbox{\dimexpr\linewidth-2.1em\relax}{%
      \sffamily \leftskip2.5cm
뎨 가ᄂᆞᆫ 뎌 각시 본 듯도 ᄒᆞᆫ뎌이고.\\
天텬上상白ᄇᆡᆨ玉옥京경을 엇디ᄒᆞ야 離니別별ᄒᆞ고\\
ᄒᆡ 다 져믄 날의 눌을 보라 가시ᄂᆞᆫ고

\medskip

어와 네여이고 내 ᄉᆞ셜 드러보오.\\
내 얼굴 이 거동이 님 괴얌즉 ᄒᆞᆫ가마ᄂᆞᆫ\\
엇딘디 날 보시고 네로다 녀기실ᄉᆡ\\
나도 님을 미더 군 ᄠᅥ디 전혀 업서\\
이ᄅᆡ야 교ᄐᆡ야 어ᄌᆞ러이 구돗ᄯᅥᆫ디\\
반기시ᄂᆞᆫ ᄂᆞᆺ비치 녜와 엇디 다ᄅᆞ신고.%\\
%누어 ᄉᆡᆼ각ᄒᆞ고 니러 안자 혜여ᄒᆞ니\\
%내 몸의 지은 죄 뫼ᄀᆞ티 ᄡᅡ혀시니\\
%하ᄂᆞᆯ히라 원망ᄒᆞ고 사ᄅᆞᆷ이라 허믈ᄒᆞ랴\\
%셜워 플텨 혜니 造조物믈의 타시로다.
}}
\caption{옛한글 조판 보기}\label{fig:yethangul}
\end{figure}

그러나 \cs{defaulthangulfontfeatures} 따위 명령은 따로 구현돼 있지 않으며,
설혹 사용하더라도 fontspec의 \cs{defaultfontfeatures}와 같은 효과를 가진다.
다시 말해 한글 폰트 옵션과 라틴 폰트 옵션에 차이는 없다.

\begin{description}
  \item[InterHangul] {\addhangulfontfeature{InterHangul=.5ex}한글 글자
    사이의 자간}.  아래는 $-0.04$em 만큼 한글
  자간을 지시한다. 플레인텍에서는 |interhangul|.
\begin{verbatim}
  [InterHangul=-0.04em]
\end{verbatim}

\item[InterLatinCJK] 한글 또는 한자와 라틴 문자 사이의 자간을
  설정한다. 플레인텍에서는 |interlatincjk|.
\begin{verbatim}
  [InterLatinCJK=0.125em]
\end{verbatim}

\item[CharRaise] 글자의 세로 위치를
  {\addhangulfontfeature{CharRaise=.3em} 조절}할 수 있는 기능이다.
  이로써 주변에 식자되는 다른 글꼴과 조화를 이루게 한다.
  플레인텍에서는 |charraise|.
\begin{verbatim}
  [CharRaise=0.1em]
\end{verbatim}

\item[PunctRaise] 한글 또는 한자 다음에 라틴 구두점---마침표에
  한한다---이 왔을 때 그 세로 위치를 조절할 수 있다.
  \cs{hangulpunctuations}로 인해 거의 쓸 일이 없게 되었다.
  플레인텍에서는 |punctraise|.
\begin{verbatim}
  [PunctRaise=-0.125em]
\end{verbatim}

\item[NoEmbedding] |NoEmbed|와 동의어.
  폰트를 내장하지 않으므로 결과물의 크기가 대폭 줄어든다.
  하지만 대외적 배포에 적합하지 않음에 유의.\footnote{%
    Adobe Reader에 번들된 폰트를 쓴다면 대외적 배포도 대체로 무난하다.}
  플레인텍에서는 |embedding=no|.
\begin{verbatim}
  [NoEmbedding]
\end{verbatim}

\item[Protrusion] 특정 글자가 행 끌에 왔을 때 판면 바깥으로 끌어내는
  기능이다.  Lua\LaTeX의 기본값은 구두점들만 완전히 글자내밀기 한다. 즉
  hanging punctuation이 작동한다.
\begin{verbatim}
  [Protrusion]
\end{verbatim}
  이는 |Protrusion=default|와 같은 뜻이다.
  플레인텍에서는 |protrusion=default|.
  마이크로타입에 관심 있으면 자신만의 설정을 만들어 지정할 수 있다.\footnote{%
    default 설정을 고치는 방법은 이를테면 다음과 같다:\par
    \cs{directlua{ fonts.protrusions.setups.default[0x201C] = { 1, 0 } }}
  }

\item[Expansion] 판면의 균일한 조판을 위해 글자들을 미세하게 늘이거나
  줄이는 기능이다.
\begin{verbatim}
  [Expansion]
\end{verbatim}
  이는 |Expansion=default|와 마찬가지 뜻이다.
  플레인텍에서는 |expansion=default|.

\end{description}

\section{}
고문헌·일본어·중국어 조판을 위해 japanese, Schinese, Tchinese 환경을
제공한다.  chinese는 Schinese의 다른 이름이다.  korean 환경도
마련했는데 이들 환경 안에서 잠깐 한국어를 조판하는 데 사용한다.
일반적으로 우리 고문헌 조판에는 japanese 환경을 이용하면 무난하다.
그림~\ref{fig:ancientdoc} 참조.
플레인텍에서는 {\small(문서 전체에 적용하지 않는다면 그룹을 열고)}
\cs{chinese} \cs{japanese} 따위를 사용한다.

\begin{figure}
  \centering
  \fbox{\parbox{37em}{\japanese\sffamily
子曰：「學而時習之，不亦說乎？有朋自遠方來，不亦樂乎？人不知而不慍，
不亦君子乎？」\par
有子曰：「其爲人也孝弟，而好犯上者，鮮矣！不好犯上，而好作亂者，未之有也！
君子務本，本立而道生；孝弟也者，其爲仁之本與？」\par
子曰：「巧言令色，鮮矣仁！」\par
曾子曰：「吾日三省吾身：爲人謀，而不忠乎？與朋友交，而不信乎？傳，
不習乎？」\par
子曰：「道千乘之國，敬事而信，節用而愛人，使民以時。」\par
子曰：「弟子入則孝，出則弟；謹而信，汎愛衆；而親仁，行有餘力，則以學文。」
  }}
\caption{고문헌 조판 보기. japanese 환경을 이용했다.}\label{fig:ancientdoc}
\end{figure}

일본어·중국어라도 글꼴 설정은 \cs{newhangulfontfamily}
\cs{newhanjafontfamily} 따위를 이용한다.

\luatexko가 글자 사이에 삽입하는 미세간격을 사용자가 영(zero)으로
강제하기 위해선 \cs{inhibitglue} 명령을 이용한다.
대체로 일본어·중국어 환경에서만 문제된다.

\section{}\label{sec:verttype}
세로쓰기는 폰트의 고급 오픈타입 속성을 이용하므로 폰트가 이를 지원해야
가능한 일이다. 폰트에 |Vertical=RotatedGlyphs| 옵션을 준다.  이는
플레인텍에서 |vertical;+vrt2| 옵션을 주는 것과 같다.\footnote{|vmtx| 정보를
  가지고 있지 않은 글꼴은 세로쓰기에 적합치 않은 글꼴이다.
  |otfinfo -t <파일>| 명령으로 글꼴에 들어있는 테이블 정보를 알 수 있다.}

문서의 일부를 세로쓰기하려면 \cs{begin{vertical}{<dimen>}} \ldots\ \cs{end{vertical}}
환경을 이용하라. |<dimen>|으로 세로쓰기 박스의 높이를 지시한다.
그림~\ref{fig:vertical} 참조.
플레인텍에서는 \cs{vertical{<dimen>}} \ldots\ \cs{endvertical}.

\begin{figure}
\framebox[\linewidth]{\begin{vertical}{17em}
    \sffamily
    \addhangulfontfeature{Vertical=RotatedGlyphs,
      RawFeature=vertical,
      CharacterWidth=Full, CharRaise=0.1ex, }
\parindent-1em\leftskip1em \linespread{1.5}\selectfont
\noindent 님의 침묵(The Silent Beloved)
\smallbreak
\hfil\hfil 한 용 운\hfil
\bigbreak
님은 갓슴니다 아아 사랑하는나의님은 갓슴니다\par
푸른산빗을깨치고 단풍나무숩을향하야난 적은길을 거러서 참어떨치고
갓슴니다\par
黃金의꽃가티 굿고빗나든 옛盟誓는 차듸찬띠끌이되야서 한숨의 微風에
나러갓슴니다\par
날카로은 첫〈키쓰〉의追憶은 나의運命의指針을 돌너노코 뒷거름처서 사러젓슴니다\par
\hellipsis\par
아아 님은갓지마는 나는 님을보내지 아니하얏슴니다\par
제곡조를못이기는 사랑의노래는 님의沈默을 휩싸고돔니다\par
\end{vertical}}
\caption{세로쓰기의 예. 박스 높이 \texttt{17em}을 지시했다.}\label{fig:vertical}
\end{figure}

문서 전체를 세로쓰기한다면 이 환경을 쓰는 대신
\cs{verticaltypesetting} 명령을 전처리부에 선언한다.
이때 면주는 가로로 식자되며 면주 폰트의 설정은 사용자의 몫이다.

세로쓰기 도중에 문서의 일부를 가로쓰기하려면
\cs{begin{horizontal}{<dimen>}} \ldots\ \cs{end{horizontal}}
환경을 이용하라. |<dimen>|은 가로쓰기 박스의 너비를 지시한다.
플레인텍에서는 \cs{horizontal{<dimen>}} \ldots\ \cs{endhorizontal}.
가로쓰기 영역의 폰트 설정은 사용자의 몫이다.

\section{}\label{sec:metapost}
전처리부에서 \cs{usepackage{luamplib}}을 선언하면 \MP\ 코드를 문서 중간에
삽입할 수 있다.  한글이나 수식은 |btex| \ldots\ |etex| 안에 넣어야 한다.
그림~\ref{fig:mplib} 참조. 상세한 것은 luamplib 패키지 문서를 참조하라.

\begin{figure}
\setbox0\vbox{\kern10pt
\begin{verbatim}
  \usepackage{luamplib}
  ...
  \begin{mplibcode}
    beginfig(1);
      draw fullcircle scaled 2cm;
      dotlabel.bot(btex \TeX etex, origin);
      dotlabel.rt(btex 루아 etex, dir45*1cm);
    endfig;
  \end{mplibcode}
\end{verbatim}}
\begin{mplibcode}
beginfig(1);
  draw btex \copy0 etex shifted (-\mpdim{\textwidth-3cm},-\mpdim{.5\ht0});
  draw fullcircle scaled 2cm;
  dotlabel.bot(btex\TeX etex, origin);
  dotlabel.rt(btex 루아 etex, dir 45*1cm);
  bboxmargin:=0; draw bbox currentpicture;
endfig;
\end{mplibcode}
\caption{mplib 용례}\label{fig:mplib}
\end{figure}

\section{}\label{sec:mathhangul}
\begin{quote}
  |$가^{나^다}$|\quad$\Rightarrow\quad가^{나^다}$
\end{quote}
수식 모드에서도 한글을 {\small(hbox로 감싸지 않고)} 직접 입력할 수
있다.  문서의 기본 한글 글꼴이 자동으로 수식 한글에도 적용되므로 따로
설정할 것이 없지만 굳이 한다면 다음처럼 지시한다.
\begin{verbatim}
  \setmathhangulfont{HCRBatang}
\end{verbatim}
현재 한글만 쓸 수 있게 설정되어 있다.
한자도 수식에 직접 입력하려면 사용자는
\begin{verbatim}
  \setmathhangulblock{4E00}{9FC3}
\end{verbatim}
명령으로 유니코드 블럭을 추가 지정해야 한다.

\section{}
\cs{dotemph} 명령으로 \dotemph{드러냄표}%
를 이용한 강조를 할 수 있다.  기본은 글자 위에 점을 찍는 형태이나
다음과 같이 명령을 주어 개인적으로 선호하는 기호를 드러냄표로 쓸 수
있다.

①~|\def\dotemphraise{0.4em }|: 드러냄표를 피강조 글자 위로 끌어올리는 길이

②~|\def\dotemphchar{\bfseries ^^^^02d9}|: 드러냄표 기호 자체를 정의.
|^^^^02d9|는 유니코드 코드포인트를 뜻하는 16진수이고 소문자로만 써야 한다.
숫자 대신 직접 문자를 입력해도 된다. 플레인텍에서도 쓸 수 있다.

\section{}\label{sec:ruby}
루비를 달 수 있다. ruby 패키지가 이미 존재하지만 \luatexko와 궁합이 잘
맞지 않아 새로 매크로를 제공한다.  플레인텍도 지원한다.
\begin{quote}
  \cs{ruby{漢字}{한자}}\quad$\Rightarrow$\quad\ruby{漢字}{한자}
\end{quote}
이처럼 글자별로 따로 루비를 달 필요가 없다.  관련 설정은 다음처럼
한다.

①~\cs{rubyfont}: 루비를 식자할 폰트를 지시해 둔다. 기본값은 현재 폰트.

②~|\def\rubysize{0.6}|: 루비 글자 크기를 본문 글자 크기에 대한 비율로
지정

③~|\def\rubysep{0.2ex}|: 루비와 본문 글자 사이의 간격을 지정

④~\cs{rubynooverlap}: 루비의 폭이 본문 글자의 폭보다 클 때 루비가 이웃
글자들 위로 삐져나가지 못하게 한다. 본문 글자의 흐름을 중시하여
\cs{rubyoverlap}을 기본값으로 하였으므로 이는 따로 선언할 필요가 없다.

한편, 연속된 본문 글자들에 각각 한 글자씩 루비를 달고자 한다면
|\xxruby{...}{...}| 명령을 사용하라. 글자들 사이에 줄바꿈이 허용된다.
다만 두 인자의 글자 수가 동일해야 한다.

\section{}
ulem 패키지가 \luatexko와 궁합이 잘 맞지 않아{\small (줄바꿈에 문제가 있음)}
명령을 따로 제공한다. 플레인텍에서도 쓸 수 있다.

\bigskip
\halign{\qquad#\hfil&\quad$\Rightarrow$\quad#\hfil\cr
\cs{uline{밑줄을 그을 수 있다}}&\uline{밑줄을 그을 수 있다}\cr
\cs{sout{취소선을 그을 수 있다}}&\sout{취소선을 그을 수 있다}\cr
\cs{uuline{밑줄을 두 줄 긋는다}}&\uuline{밑줄을 두 줄 긋는다}\cr
\cs{xout{빗금으로 취소할 수 있다}}&\xout{빗금으로 취소할 수 있다}\cr
\cs{uwave{물결표로 밑줄을 삼는다}}&\uwave{물결표로 밑줄을 삼는다}\cr
\cs{dashuline{대시로 밑줄을 삼는다}}&\dashuline{대시로 밑줄을 삼는다}\cr
\cs{dotuline{밑줄을 점선으로 긋는다}}&\dotuline{밑줄을 점선으로 긋는다}\cr
}
\bigskip

관련하여 다음 설정을 할 수 있다.

①~|\def\ulinedown{0.24em}|: 밑줄을 베이스라인 아래로 끌어내리는 정도

②~|\def\ulinewidth{0.04em}|: 밑줄의 굵기

\section{}\label{sec:autojosa}
자동조사는 \kotex 과 동일하게 \cs{은} \cs{는} \cs{이} \cs{가} \cs{을} \cs{를}
\cs{와} \cs{과} \cs{로} \cs{으로} \cs{라} \cs{이라} 따위를 사용한다.
문장 중에서도 작동할 뿐만 아니라 플레인텍도 지원한다.
버전 1.3부터는 \cs{josaignoreparens=1}이 선언되어 있으면 자동조사는
\hemph{괄호 부분을 건너뛰고} 그 앞 글자에 매칭한다.
|0|이 선언되면 원래 방식으로 돌아간다.
\begin{quote}
  \cs{josaignoreparens=1} \josaignoreparens=1 \\
  |홍길동(1992)\는|\quad$\Rightarrow$\quad 홍길동(1992)\는\\
  |홍길동(2001)\로|\quad$\Rightarrow$\quad 홍길동(2001)\로\par
  \cs{josaignoreparens=0} \josaignoreparens=0 \\
  |홍길동(1992)\는|\quad$\Rightarrow$\quad 홍길동(1992)\는\\
  |홍길동(2001)\로|\quad$\Rightarrow$\quad 홍길동(2001)\로
\end{quote}

\section{}
항목 번호를 한국어 기호로 붙일 수 있다. \kotex과 동일하게 \cs{jaso} \cs{gana}
\cs{ojaso} \cs{ogana} \cs{pjaso} \cs{pgana} \cs{onum} \cs{pnum} \cs{oeng}
\cs{peng} \cs{hnum} \cs{Hnum} \cs{hroman} \cs{hRoman} \cs{hNum} \cs{hanjanum}
따위를 사용한다.

\section{}\label{sec:actualtext}
\cs{actualtext{...}} 명령은 인자를 식자함과 동시에, \hemph{입력한 문자 그대로}
PDF에서 텍스트로 추출할 수 있게 해준다. 인자가 두 페이지에 나눠지지 않도록
유의한다.  모든 PDF 리더가 이를 지원하는 것은 아니다. 예:
$\actualtext{\sqrt 2}$,
{\sffamily \actualtext{ᄆᆞᄎᆞᆷ〮내〯}}.
인자가 글자 없이 그림으로만 돼있다면 \cs{actualtext*{...}} 방식을 이용한다.

\section{}
\cs{luatexhangulnormalize=1}이라 지시하면 첫가끝 자모를 완성형 음절로,
|2|라면 완성형 음절을 첫가끝 자모로 인코딩 변환한다. |0|이 할당되면
인코딩 변환 기능이 꺼진다. \XeTeX의 \cs{XeTeXinputnormalization} 명령과
유사하나 오직 한글과 일부 한자에 대해서만 정규화가 작동하는 점에서
\XeTeX의 그것에 비해 기능이 한참 모자란다.

\section{}\label{sec:uhcencoding}
권장하지 않지만 불가피하게 입력 인코딩이 UHC (Unified Hangul Code)\footnote{%
  CP949라고도 하며 EUC-KR을 포함한다}로 되어 있는 파일을 처리할 때는
\cs{luatexuhcinputencoding=1}을 선언한다.
|0|을 할당하면 다시 UTF-8 입력으로 간주한다.
\XeTeX의 \cs{XeTeXinputencoding} 명령과 유사하나 오직 한국어 문자만 처리할 수
있어 \XeTeX의 그것에 비해 기능이 한참 모자란다.

\section{}
마찬가지로 바람직하지는 않지만 불가피하게 파일 이름이 UHC로 인코딩되어
있다면 \cs{luatexuhcfilenames=1}을 선언한다. |0|을 할당하면 다시 UTF-8
이름으로 간주한다.  윈도 계열 운영체제에서만 문제될 것이다.
\hfill \fboxsep=-\fboxrule \fbox{\vbox to 1em{\hbox to 1em{\hss}\vss}}

\end{document}
