%$ clxelatex -synctex $texname
\documentclass[a4paper]{oblivoir}

\usepackage[a4]{fapapersize}

\usepackage{libertine}
\setmonofont{Inconsolata LGC Nerd Font}
\setkomainfont(Noto Serif CJK KR)[Scale=MatchUppercase]
\setkomonofont(D2Coding)[Scale=.88]

\usepackage{kslinematters}
\usepackage[normalem]{ulem}

\begin{document}

\title{kslinematters}
\author{Nova de Hi}

\maketitle

\section{ksobeys}

space, carriage return, tab 문자의 catcode를 조작하여 ``보이는 대로'' 출력하도록 하는 명령과 환경을 제공한다.
\begin{boxedverbatim}
\obeythem, \disobeythem
\vobeyspaces, \vobeytabs, \vobeylines
\begin{ksobeys} ... \end{ksobeys}
\end{boxedverbatim}

다음은 예시이다.
\begin{verbatim}
\obeythem
  가 나다
  가

  가나다 	라
\disobeythem
\end{verbatim}
\begin{framed}
\obeythem
  가 나다
  가

  가나다 	라
\disobeythem
\end{framed}

\verb|\obeythem...\disobeythem|을 \verb|ksobeys| 환경으로 쓸 수 있다.
다만 이 명령/환경은 평문단에서 정상 동작한다.
% 예컨대 sectioning commands와 같이 vertical space를 스스로 조절하는 명령과는 오동작할 수 있다.

다음 패키지 옵션은 ksobeys의 동작을 제어한다.

\begin{description}
 \item [\texttt{noblankline}] 여러 개의 빈 줄을 하나의 빈 줄로 처리하게 한다.
 \item [\texttt{tabtosp}] tab 문자를 tabstop 위치까지 이동하는 것이 아니라 4개의 스페이스 문자로 치환한다.
 \item [\texttt{extcmd}] \verb|\section| 명령과 \verb|\subsection| 명령이 ksobeys 환경 안에서 동작하게 한다. 단 이 명령들은 오직 하나의 인자만을 가지는 것으로 간주한다.
\end{description}

\section{linecommands}

\begin{boxedverbatim}
\newlinecommand, \renewlinecommand
\end{boxedverbatim}

line의 끝까지를 인자로 받는 명령을 정의한다. 인자는 \verb|#1|.
\begin{verbatim}
\newlinecommand\testline{\uline{#1}}
이 명령은 현재 위치에서 \testline 줄 끝까지를 인자로 받는다.
여기서 줄이 바뀌었다.
\end{verbatim}
\newlinecommand\testline{\uline{#1}}
이 명령은 현재 위치에서 \testline 줄 끝까지를 인자로 받는다.
여기서 줄이 바뀌었다.



\end{document}
