KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문과 답을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
  • TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 최근 스팸글의 등록 빈도가 높아 졌습니다. 이를 막기위하여 짧은 시간내에 다시 글이 등록되는 IP를 막거나, 광고글을 막기위하여 금지어로 .com, .net등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
  • 사용하는 편집기를 스마트에디터에서 CKeditor로 변경하였습니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.

정보글 \unexpanded 와 etoolbox 패키지

2011.07.05 16:45

DohyunKim 조회 수:2186 추천:1

\unexpanded{\a\b\c} : 인자를 전혀 전개하지 말도록 지시하는 eTeX 프리미티브다.

\unexpanded\expandafter{\a\b\c} : \a를 한번만 전개하고 나머지는 전개하지 않는다. 따라서

\def\a{\z}
\edef\a{\unexpanded\expandafter{\a\b\c}}

라고 하면 원래 "\z" 였던 \a 가 이제 "\z\b\c"로 재정의된다. 레이텍 매크로 \g@addto@macro 와 동일한 기능을 하는 것이다. 그런데 이 레이텍 매크로는 기존 명령 뒤에다 새로운 항목을 덧붙일 수 있을 따름이지만 \unexpanded\expandafter 를 잘 활용하면 기존 명령 앞에도 뭔가를 첨가할 수 있다.


etoolbox 패키지는 eTeX 프리미티브를 이용해 여러 가지 유용한 명령들을 제공한다. 그 가운데 \appto 는 기존 매크로 뒤에다, \preto 기존 매크로 앞에다 새로운 항목을 첨가한다. 이제 verbatim 환경을 재정의해서 본문을 전혀 손대지 않은 채 배경색을 칠해보자.

\usepackage{xcolor}
\usepackage{etoolbox}
\preto\verbatim{\medbreak\setbox0\vbox\bgroup\hsize=\linewidth}
\appto\endverbatim{\egroup\noindent\colorbox{gray!30}{\box0}\medbreak}

프리앰블에 이와 같은 코드를 삽입하면 모든 verbatim 환경에 배경색이 칠해진다. 원리는 간단하다. verbatim 환경을 box에 집어넣은 뒤 이 박스를 colorbox의 인자로 이용하는 것이다. verbatim 환경을 직접 colorbox의 인자로 쓸 수는 없지만 박스로 만들면 가능하다. vbox는 수직방향으로 항목들이 첨가되는 박스로서 레이텍의 minipage에 해당한다. 박스 시작과 끝을 "{", "}" 대신에 \bgroup, \egroup 으로 쓴 이유는 괄호 쌍을 맞춰주기 위해서다.


문서를 이런 식으로 작성하면 재사용 하기 쉬운 매우 탄탄한 코드가 된다.

번호 제목 글쓴이 날짜 조회 수
공지 2019 한국텍학회 제12차 정기총회 및 학술대회 [2] yihoze 2019.01.04 37418
공지 KTUG 사설저장소 브라우저 베이드프즈 2017.07.16 40823
공지 장애 복구 안내 [9] 관리자 2017.05.04 43341
공지 TeX Live 2016 설치 안내 [7] 관리자 2016.06.05 77108
266 noweb, dot, 그리고 LaTeX을 위한 dot2tex 양사장 2011.07.28 24732
265 상용로그표 : 루아텍 버전 DohyunKim 2011.07.14 3179
264 상용로그표 file karnes 2011.07.13 3090
263 Right to Left DohyunKim 2011.07.12 2055
262 windows에서 jbig2을 이용한 pdf만들기 file 샘처럼 2011.07.09 39575
261 XeLaTeX 한글 문서에서 한자와의 베이스라인 맞추기 karnes 2011.07.06 3371
» \unexpanded 와 etoolbox 패키지 DohyunKim 2011.07.05 2186
259 hcrnumbers를 oblivoir enumerate에서 쓰기 file karnes 2011.06.29 2444
258 함초롬의 nalt 속성을 이용해보자 file DohyunKim 2011.06.29 2313
257 \XeTeXinputnormalization DohyunKim 2011.06.27 2166
256 jbig2 사용법 file DohyunKim 2011.06.22 2878
255 graphicx 패키지 안 쓰고 이미지 삽입하기 DohyunKim 2011.06.22 2862
254 $$ 를 쓸까? \[ 를 쓸까? file DohyunKim 2011.06.21 2154
253 파이 구하기: 시각화 버전 file karnes 2011.06.18 2584
252 난수로 괘를 뽑아보았다 file karnes 2011.06.15 2310
251 몬테카를로 기법으로 파이 구하기: 정수 연산 버전 DohyunKim 2011.06.15 2696
250 "a unit of 65536" karnes 2011.06.14 2190
249 \pdfuniformdeviate file DohyunKim 2011.06.13 2304
248 문자의 숫자 코드, 숫자의 문자 코드 DohyunKim 2011.04.21 3932
247 하단 면주에 쪽번호 위치 설정하기 에드 2011.06.10 3444



XE Login