diff options
author | Norbert Preining <norbert@preining.info> | 2021-06-11 03:00:56 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-06-11 03:00:56 +0000 |
commit | d6b2eaba6fe47c24603040934903c73535ff09ba (patch) | |
tree | e608eb7c4afe8e8f2dd739dda2dd79d375f32da0 /macros/luatex/generic/luatexko/luatexko-doc.tex | |
parent | 2bd77f5a4d02b0d1649589aa7a548e79b198f6af (diff) |
CTAN sync 202106110300
Diffstat (limited to 'macros/luatex/generic/luatexko/luatexko-doc.tex')
-rw-r--r-- | macros/luatex/generic/luatexko/luatexko-doc.tex | 179 |
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{추가적인} 이동 길이를 나타낸다.} |