. . . .
사용자 정의 : 새 명령
이주용
jlee@formal.korea.ac.kr
고려대학교
2011년 10월 31일
새 명령어 만들기 새 패키지 만들기 참고문헌
\newcommand 기본
\newcommand{\⟨명령어이름⟩}{⟨명령정의⟩}
⟨명령어이름⟩은 기존에 정의된 이름과 겹치지 않아야 한다.
⟨명령정의⟩는 기존에 정의된 명령들로 구성된다.
새 명령어는 일반적으로 preamble 부분에서 선언한다.
(반드시는 아님)
. . . .
\newcommand 기본의 예
\newcommand{\ u n i o n }{\ ensuremath {\ cup }}
\newcommand{\ i n t e r s e c }{\ ensuremath {\ cap }}
$ (A \ i n t e r s e c B) \ u n i o n C
\ e q u i v
(A \ u n i o n C) \ i n t e r s e c (B \ u n i o n C) $
(A∩ B) ∪ C ≡ (A ∪ C) ∩ (B ∪ C)
새 명령어 만들기 새 패키지 만들기 참고문헌
\ensuremath
현재 모드에 상관없이 인자 문자열이 수학모드에서 해석되도록 강제
Hypertext Help with LaTeX 참조
. . . .
인자를 받아들이는 명령 만들기
\newcommand{\⟨명령어이름⟩ } [ ⟨인자개수⟩ ] { ⟨명령정의⟩}
⟨인자개수⟩는 0이상의 정수이다.
기본형의 경우 ([⟨인자개수⟩]가 생략되었을 때) ⟨인자개수⟩
가 0인 것으로 해석한다.
⟨명령정의⟩에서 각 인자의 값(문자열)은 #⟨인자순번⟩으로 얻을 수 있다.
새 명령어 만들기 새 패키지 만들기 참고문헌
인자를 받아들이는 명령의 예 ( \set )
\newcommand{\ s e t }[1]{\{#1\}}
$\ s e t { 1 , 3 , 5 , \ l d o t s }$
{1, 3, 5, . . .}
. . . .
인자를 받아들이는 명령의 예 ( \setcomp )
\newcommand{\ setcomp } [ 2 ]
{\ ensuremath{\{#1 \mid #2\}}}
$\ setcomp {n}
{n = 2 k + 1 , k \ i n \ s e t { 0 , 1 , 2 , \ l d o t s }}$
{n | n = 2k + 1, k ∈ {0, 1, 2, . . .}}
새 명령어 만들기 새 패키지 만들기 참고문헌
인자를 받아들이는 명령의 예 ( \cmd , \tslot )
\newcommand{\cmd } [ 1 ] { \ ensuremath {\ b a c k s l a s h }#1}
\newcommand{\ t s l o t } [ 1 ]
{\ ensuremath {\ l a n g l e \ t e x t {#1}\ r a n g l e }}
\cmd{newcommand}
\ s e t {\ t s l o t {명령어이름}}\ s e t {\ t s l o t {명령}}
\newcommand {⟨명령어이름⟩}{⟨명령정의⟩}
. . . .
가변 개수의 인자를 받아들이는 명령 만들기
\ usepackage { x a r g s }
\newcommandx{\⟨명령어이름⟩ } [ ⟨인자개수⟩ ] [⟨기본값목록⟩ ] { ⟨명령정의⟩}
⟨기본값목록⟩에 선택적 인자의 기본값을 정의할 수 있다.
⟨기본값목록⟩에 기본값이 정의되지 않으면 필수 인자로 간주한다.
사용법 : {필수인자}, [선택인자]
선택인자는 생략할 수 있다.
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 [PG08]
\newcommandx\ c o o r d [ 3 ] [ 1 = 1 , 3=n ] {(#2_{#1},\ l d o t s ,#2_{#3})}
$\ c o o r d { x }$
(x1, . . . , x
n
). . . .
가변 개수의 인자를 받아들이는 명령의 예 [PG08]
\newcommandx\ c o o r d [ 3 ] [ 1 = 1 , 3=n ] {(#2_{#1},\ l d o t s ,#2_{#3})}
$\ c o o r d { x }$
(x1, . . . , x
n
)새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 [PG08]
\newcommandx\ c o o r d [ 3 ] [ 1 = 1 , 3=n ] {(#2_{#1},\ l d o t s ,#2_{#3})}
$\ c o o r d [ 0 ] { y }$
(y0, . . . , y
n
). . . .
가변 개수의 인자를 받아들이는 명령의 예 [PG08]
\newcommandx\ c o o r d [ 3 ] [ 1 = 1 , 3=n ] {(#2_{#1},\ l d o t s ,#2_{#3})}
$\ c o o r d [ 0 ] { y }$
(y0, . . . , y
n
)새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 [PG08]
\newcommandx\ c o o r d [ 3 ] [ 1 = 1 , 3=n ] {(#2_{#1},\ l d o t s ,#2_{#3})}
$\ c o o r d { z } [m] $
(z1, . . . , z
m
). . . .
가변 개수의 인자를 받아들이는 명령의 예 [PG08]
\newcommandx\ c o o r d [ 3 ] [ 1 = 1 , 3=n ] {(#2_{#1},\ l d o t s ,#2_{#3})}
$\ c o o r d { z } [m] $
(z1, . . . , z
m
)새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 [PG08]
\newcommandx\ c o o r d [ 3 ] [ 1 = 1 , 3=n ] {(#2_{#1},\ l d o t s ,#2_{#3})}
$\ c o o r d [ 0 ] { t } [m] $
(t0, . . . , t
m
). . . .
가변 개수의 인자를 받아들이는 명령의 예 [PG08]
\newcommandx\ c o o r d [ 3 ] [ 1 = 1 , 3=n ] {(#2_{#1},\ l d o t s ,#2_{#3})}
$\ c o o r d [ 0 ] { t } [m] $
(t0, . . . , t
m
)새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \set )
\newcommandx{\ s e t } [ 2 ] [ 2 = ] {
\ ensuremath {
\{#1
\ i f x #2\empty
\ e l s e \mid #2
\ f i
\}
} }
. . . .
가변 개수의 인자를 받아들이는 명령의 예 ( \set )
\newcommandx{\ s e t } [ 2 ] [ 2 = ] { . . . }
\ s e t {n } [ n = 2 k + 1 , k \ i n \ s e t { 0 , 1 , 2 , \ l d o t s } ]
{n | n = 2k + 1, k ∈ {0, 1, 2, . . .}}
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] {
\ ensuremath {
\ i n t _{#1}^{#2} #3 \ , d{#4}
} }
. . . .
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] { . . . }
$\ I n t { f ( x ) } $
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] { . . . }
$\ I n t { f ( x ) } $
∫ f(x) dx
. . . .
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] { . . . }
$\ I n t [ a ] [ b ] { f ( x ) } $
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] { . . . }
$\ I n t [ a ] [ b ] { f ( x ) } $
∫
b
a
f(x) dx. . . .
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] { . . . }
$\ I n t { f ( y ) } [ y ] $
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] { . . . }
$\ I n t { f ( y ) } [ y ] $
∫ f(y) dy
. . . .
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] { . . . }
$\ I n t [ a ] [ b ] { f ( y ) } [ y ] $
새 명령어 만들기 새 패키지 만들기 참고문헌
가변 개수의 인자를 받아들이는 명령의 예 ( \Int )
\newcommandx{\ I n t }[4][1= ,2= ,4= x ] { . . . }
$\ I n t [ a ] [ b ] { f ( y ) } [ y ] $
∫
b
a
f(y) dy. . . .
가변 개수의 인자를 받아들이는 명령의 예 ( \cmd )
\newcommandx{\cmd } [ 2 ] [ 2 = ] {
\ ensuremath {\ b a c k s l a s h }#1
\ i f x #2\empty \ e l s e \!\!\{#2\} \ f i }
\cmd{ u s e p a c k a g e } [ x a r g s ]
\usepackage{xargs}
새 명령어 만들기 새 패키지 만들기 참고문헌
새 패키지 만들기
\ ProvidesPackage {⟨패키지이름⟩}
\ usepackage {⟨필요 패키지들⟩}
⟨새 명령어 목록⟩
패키지는 ⟨패키지이름⟩.sty로 저장해야 한다.
새 패키지의 명령어들은 \usepackage 패키지이름를 통해
사용가능하다.
이 때, ⟨패키지이름⟩.sty는 작업 tex 파일과 같은 폴더에 위치해야 한다.
. . . .
새 패키지 만들기 예 (setnotation)
setnotation.sty
\ ProvidesPackage { s e t n o t a t i o n }
\ usepackage { x a r g s }
\newcommand{\ u n i o n }{\ ensuremath {\ cup }}
\newcommand{\ i n t e r s e c }{\ ensuremath {\ cap }}
\newcommandx {\ s e t } [ 2 ] [ 2 = ] { . . . }
새 명령어 만들기 새 패키지 만들기 참고문헌
참고문헌
Manuel Pégourié-Gonnard.
The xargs package, March 2008.