Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[LaTeX] LaTeX에서 Macro 만들기 본문

기타/논문작성 Writing

[LaTeX] LaTeX에서 Macro 만들기

보통의공대생 2023. 12. 18. 17:57

LaTeX에서 매크로를 만드는 가장 쉬운 방법은 \newcommand를 사용하는 것이다. 그 외에도 다른 사람들의 코드를 보다보면 잘 모르겠는 부분들이 있어서 하나씩 찾아보았다.

어떻게 매크로가 작동되는지를 알아야 편하기는 한데 여기서는 바로 가져다쓰기 좋은 코드를 기록하기 위한 글이다.

이 글은 아마 공부하면서 계속 수정할 것 같다.

 

0. def

원래 매크로를 지정할 때는 기본적으로 def를 사용했었는데 지금은 newcommand를 많이 쓴다.

1. newcommand 사용하기

새로운 커맨드를 사용할 때는 newcommand로 정의하고

만약에 이미 패키지에 속해있는 커맨드라면 renewcommand를 사용해야한다.

기본 format은 다음과 같다.

\newcommand{\name}[no_of_parameters]{defn_of_command}

\name은 사용할 명령어의 이름, no_of_parameters는 입력으로 쓸 파라미터 수, defn_of_command는 사용할 방식을 말한다.

이렇게 할 경우에

\newcommand{\enorm}[1]{\| #1 \|_{2}}
\newcommand{\prox}[2]{ \operatorname{prox}_{#1}^{#2}}
\newcommand{\lp}[2]{ \left( #1 \right) } % large parantheses

% example
\enorm{a}
\prox{\eta}{f}
\lp{\frac{a}{b}}

 

위와 같이 \enorm이라는 커맨드를 만들어 입력을 받고 사용할 수 있다.

입력받은 파라미터는 순서에 따라 #1, #2 등으로 표기되며 아래 예시와 같이 brace{} 로 끊어서 넣어준다.

당연히 입력 받을 파라미터를 0으로 두거나 생략하여 아무것도 입력받지 않아도 된다.

또한 입력의 개수는 최대 9개까지라고 한다.

macro에서 받는 파라미터 중에 첫 번째 파라미터는 옵션으로 두고, default값을 지정할 수도 있다.

 

\newcommand{\name}[no_of_parameters][default_1st_variable]{defn_of_command}

 

자주 사용하는 유용한 매크로

 

평소에 사용하는 매크로를 몇 개 가져와봤다.

\newcommand*\subtxt[1]{_{\textnormal{#1}}}
\DeclareRobustCommand\_{\ifmmode\expandafter\subtxt\else\textunderscore\fi}

\newcommand{\colb}{\color{blue}}

위의 명령어는 a\_{text}라고 사용하면 자동으로 text는 수식이 아닌 텍스트 폰트로 적용되어서 일일이 a_{\text{ text subscript }}라고 쓰는 게 아니라 a\_{text subscript} 로 간편하게 쓸 수 있다.

$$a_{\text{text subscript}}$$

아래 명령어의 경우, 특정 문장을 {\colb sentence}로 묶으면 sentence가 특정색 폰트로 바뀜. \color{blue}로 써도 되지만 특정색깔을 지정해놓고 아래와 같이 해놓으면 편하다. blue라고 해놓은 명령어에서 blue를 좀 더 다른색으로 바꾸고 싶을 때 macro만 바꿔주면 다 바뀌기 때문

 


참고자료

 

https://www.math.uh.edu/~torok/math_6298/latex/macros.html

 

LaTeX Macros

LaTeX Macros One can create new "commands" for combinations that are used often. These are called macros. The format is as follows (the brackets are essential): \newcommand{\name}[no_of_parameters]{defn_of_command} One can have a macro whose first argument

www.math.uh.edu

 

Comments