%!TEX program = SpiX
%$ xelatex -shell-escape -synctex=1 $texname
% arara: xelatex: { shell: yes }
\documentclass[a4paper,11pt]{article}

\usepackage[hmargin=1in,vmargin=1in]{geometry}
\usepackage{setspace}

\usepackage{amssymb}
\usepackage{kotex}
\usepackage{hologo}
\def\XeTeX{\hologo{XeTeX}}
\def\LuaTeX{\hologo{LuaTeX}}
\def\pdfTeX{\hologo{pdfTeX}}
\setmainhangulfont{Noto Serif CJK KR}

\usepackage[hcr,all,units,useonly={wavedash,asterism,ksmark,degree,diamondblack}]{kstextks}

\usepackage{hologo,url}
\usepackage{xcolor}

\linespread{1.35}

\usepackage{multicol}

\usepackage[most]{tcolorbox}
\tcbuselibrary{minted}

\newtcblisting{mycode}{%
	colback=red!5!white,
	colframe=red!75!black,
	listing engine=minted,
	minted language=latex,
	minted style=colorful,
	minted options={fontsize=\small,linenos,numbersep=3mm},
	colback=blue!5!white,colframe=blue!75!black,listing only,
	left=5mm,enhanced,
	overlay={\begin{tcbclipinterior}\fill[red!20!blue!20!white] (frame.south west)
            rectangle ([xshift=5mm]frame.north west);\end{tcbclipinterior}}
}

\newtcblisting{mycoderesult}{%
	colback=red!5!white,
	colframe=red!75!black,
	listing engine=minted,
	minted language=latex,
	minted style=colorful,
	minted options={fontsize=\small,linenos,numbersep=3mm},
	colback=blue!5!white,colframe=blue!75!black,%listing only,
	left=5mm,enhanced,
	overlay={\begin{tcbclipinterior}\fill[red!20!blue!20!white] (frame.south west)
            rectangle ([xshift=5mm]frame.north west);\end{tcbclipinterior}}
}

\ExplSyntaxOn

\NewDocumentCommand \DispSyms { m }
{
	\ior_open:Nn \g_tmpa_ior { kstextks_data_#1.txt }
	\ior_map_inline:Nn \g_tmpa_ior 
	{
		\tl_set:Nn \l_tmpa_tl { ##1 }
		\disp_tmp_symname:nn ##1
		\par
	}
	\ior_close:N \g_tmpa_ior
}

\cs_new:Npn \disp_tmp_symname:nn #1 #2 
{
	\makebox[1.8em][l]{\fbox{
	\fontspec{HANBatang-LVT.ttf}
	\hangulfontspec{HANBatang-LVT.ttf}
	#2\raise-2pt\hbox{\rule{0pt}{1em}}
	}}\space
	{\ttfamily\textbackslash textks \uline{#1}}
}

\ExplSyntaxOff

\def\opt#1{\texttt{[#1]}}
\def\optvar#1#2{\texttt{[#1=#2]}}
\usepackage{iftex}
\ifxetex
\usepackage[normalem]{ulem}
\fi

\begin{document}

\title{kstextks, KS X 1001의 기호문자}
\author{nanim}
\date{2025/04/08\quad version0.4}

\maketitle 

\begin{abstract}
 KS X 1001:2004(cf. \url{https://ko.wikipedia.org/wiki/KS_X_1001})에서 정하는 기호문자와 특수문자의 매크로를 제공하고
 이 기호문자를 식자할 폰트를 지정할 수 있게 한다.
\end{abstract}


\section{사용법}

\XeTeX{} 또는 \LuaTeX 에서만 동작한다. \pdfTeX 은 지원하지 않는다.
KS X 1001에 정의되어 있는 수학 기호는 모두 제외했다.

\begin{mycode}
 \usepackage[<options>]{kstextks}
\end{mycode}

\paragraph{폰트}
기호문자 식자에 사용할 폰트를 지정할 수 있다. 이 패키지가 정의하는 부호들이 폰트에 들어 있지 않을 경우가
있다. 대체로 함초롬 폰트는 모든 부호를 다 찍을 수 있으므로 \opt{hcr} 옵션을 권장한다.
\begin{description}
\item [\opt{hcr}] 모든 기호문자를 함초롬 바탕 LVT 폰트로 식자한다.
\item [\optvar{symfont}{<fontname>}] 기호문자 식자에 사용할 폰트를 지정한다.
\end{description}

\paragraph{종류}
정의하는 기호문자 매크로의 범위를 지정할 수 있다. 어떤 문자가 이 범위에 포함되는지는
다음 절의 예시를 참고한다.
패키지를 옵션 없이 로드하면 디폴트는 문장부호(puncts)와 상징부호(symbols) 매크로를 활성화하는 것이다.
\begin{description}
\item [\opt{puncts}] 문장부호 관련 매크로
\item [\opt{symbols}] 특수문자(상징부호) 관련 매크로
\item [\opt{units}] 단위 관련 매크로
\item [\opt{none}] 아무 것도 로드하지 않는다. \verb|\kssim|만을 정의한다.
\end{description}

\paragraph{일부 기호}
[v0.2] 만약 이 기호들 가운데 일부만을 사용하려 한다면 \texttt{useonly=}
다음에 그 기호의 이름을 중괄호로 묶어 열거하여 해당 명령만을 로드할 수 있다. 너무 많은 기호를
정의하려다 보니 \texttt{TeX capacity}가 걱정되는 경우에 이 방법을 사용하라.
여기에 주는 이름은 \verb|\textks<name>|에서 \verb|textks|를 제외한 부분의
명칭이다. 

이 옵션은 해당 기호가 어느 범위에 들어 있는지 확인하고 옵션을 함께 부여하여야 한다. 예를 들어 
\verb|\textksdiamondblack| (\textksdiamondblack), \verb|\textksksmark| (\textksksmark),
\verb|\textkswavedash|(\textkswavedash)만을 정의하려 한다면 \texttt{diamondblack}과 \texttt{ksmark}는 symbols에, wavedash는 puncts에 포함되므로
\begin{verbatim}
\usepackage[symbols,puncts,useonly={diamondblack,ksmark,wavedash}]{kstextks}
\end{verbatim}
와 같이 한다.

\parindent=0pt

\section{기호문자 명령}

\subsection{문장부호 (puncts)}

\begin{multicols}{2}
 \DispSyms{puncts}
\end{multicols}

\subsection{상징부호 (symbols)}

\begin{multicols}{2}
 \DispSyms{symbols}
\end{multicols}

\subsection{단위계 (units)}

\begin{multicols}{2}
 \DispSyms{units}
\end{multicols}

%\subsection{다른 이름}
%
%\begin{multicols}{2}
% \DispSyms{altern}
%\end{multicols}

\section{닮음기호}

\verb|\kssim|

\begin{mycoderesult}
 $\triangle \mathrm{ABC} \kssim \triangle \mathrm{A'B'C'}$
\end{mycoderesult}

\section{변경이력}

\noindent 2025/04/03, version 0.3. 

\noindent 2025/01/30, fix typo in \textksasterism

\end{document}
