Q&A 마당은 텍 관련 질문/답변과 토론을 위해 만들었습니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • 질문 전에 Minimal working example를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
    • 질문에 맞는 제목을 붙이세요. 예를 들어 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답변이 잘 붙지 않습니다.
    • 질문을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
  • 화일을 첨부하실 때에는 가능한 압축하여 화일크기를 줄여서 올려주시길 바랍니다.
  • 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
  • 최근 스팸글의 등록 빈도가 높아 졌습니다. 이를 막기위하여 짧은 시간내에 다시 글이 등록되는 IP를 막거나, 광고글을 막기위하여 금지어로 .com, .net등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 사용하는 편집기를 스마트에디터에서 CKeditor로 변경하였습니다. 좋아진 점은 아래와 같습니다.
    • flash를 사용하지 않습니다.
    • 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.

Zeta

약간은 늦었지만.. expl3에는 기본적으로 clist (comma separated list)라는 자료형이 있습니다.
이를 사용하면 다음과 같이 한 방에 작성할 수 있습니다:

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand \split { m }
  {
    \begin{itemize}
      \clist_set:Nn \l_tmpa_clist { #1 }
      \clist_map_inline:Nn \l_tmpa_clist { \item ##1 }
    \end{itemize}
  }
\ExplSyntaxOff

\begin{document}
\split{abc,def,ghi}
\end{document}

\l_tmpa_clist라는 임시변수에 들어있는 값들에 대해서 각각 \item을 앞에 붙여주도록 하는 map을 걸어줘서 작동되는 코드입니다.
비슷하게 seq라는 자료형을 쓰면 ,가 아니라 다른 delimeter로 구분된 경우에도 작업할 수 있습니다.

혹은 recursion으로 구현해도 되고요. expl3로는:

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn

\cs_new:Npn \split_fn_rec:n #1
  {
    \quark_if_recursion_tail_stop:n { #1 }
    \tl_if_eq:nnTF { #1 } { , } { \item } { #1 }
    \split_fn_rec:n
  }

\NewDocumentCommand \splitrec { m }
  {
    \begin{itemize}
      \item
      \split_fn_rec:n #1 \q_recursion_tail \q_recursion_stop
    \end{itemize}
  }
\ExplSyntaxOff

\begin{document}
\splitrec{abc,def,ghi}
\end{document}

plainTeX으로는:

\documentclass{article}

\def\split#1{\item\expandafter\splita#1\end}
\def\splita#1{\ifx#1\end\let\next\relax
  \else\ifx#1,\item\let\next\splita
  \else#1\let\next\splita\fi\fi\next}

\begin{document}
\begin{itemize}
  \split{abc,def,ghi}
\end{itemize}
\end{document}



XE Login