[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Texinfo 매크로(macro)를 사용하면 새로운 Texinfo 명령어를 글이나
이미 있는 명령어(다른 매크로까지 포함해서)를 붙여서 정의할 수 있다.
매크로는 파라미터(parameter)—매크로를 쓸 때마다 매크로에
제공하는 글—를 몇개라도 가질 수 있다. (이 매크로는 @defmac
명령어와는 아무런 관계가 없다. @defmac
는 매뉴얼의 내용상의
매크로를 문서화하는 것이다; see section The Template for a Definition.)
18.1 Defining Macros | ||
18.2 Invoking Macros |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
매크로를 정의하는 데는 @macro
Texinfo 명령어를 쓴다. 예를 들어:
@macro macro-name{param1, param2, …} text … \param1\ … @end macro |
파라미터(parameter) param1, param2, …는 매크로가 문서에서 앞으로 사용될때 제공해야 할 인자이다. (다음 절을 보라).
매크로에 파라미터(parameter)가 필요없으면, 텅 빈 리스트로 쓰거나 (‘@macro foo {}’) 아예 중괄호를 쓰지 않으면 된다 (‘@macro foo’).
매크로의 본체(body)에는 앞에서 정의한 매크로까지 포함해서 어떤 Texinfo 명령이든 들어갈 수 있다. (상호 재귀적인(mutually recursive) Texinfo 매크로를 쓰는 것은 불가능하다.) 본체(body)에서, 파라미터(parameter)의 값을 사용하려면 위의 예에서 ‘\param1\’와 같이 백슬래쉬(backslash)로 둘러싼다. 이것은 매크로를 부를때 대응되는 인자로 바꿔진다.
foo라는 매크로는 @unmacro foo
로 정의를 취소할 수
있다. 이미 정의된 매크로를 취소하는 것은 애러가 아니다. 예를 들어:
@unmacro foo |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
매크로를 정의한 후에 (앞의 절을 보라), 다음과 같이 문서 내에서 그 매크로를 사용할(invoke) 수 있다.
@macro-name {arg1, arg2, …} |
그리고 결과는 그 자리에 macro-name의 본체(body)를 타이프한 것과 같다. 예를 들어:
@macro foo {p, q} Together: \p\ & \q\. @end macro @foo{a, b} |
가 매크로였다면 결과는 다음을 만들어 내게 된다:
Together: a & b. |
즉, 인자(argument)와 파라미터(parameter)는 쉼표로 나눠지고, 중괄호로 ㄱㅜ분된다; 쉼표 뒤의 (앞에는 아니다) 공백은 무시된다. 인자(argument)에 쉼표, 중괄호, 또는 백슬래쉬(backslash)를 넣으려면, 다음과 같이 앞에 백슬래쉬(backslash)를 붙인다.
@macro-name {\\\{\}\,} |
이렇게 하면 macro-name 매크로에 ‘\{},’의 인자를 (하지만 거의 분명히 애러를 발생한다) 보내주게 된다.
매크로가 한개의 인자를 받도록 정의되어 있고, 중괄호가 없이 사용된다면, 매크로 이름 뒤의 나머지 줄은 인자로 사용된다. 예를 들어:
@macro bar {p} Twice: \p\, \p\. @end macro @bar aah |
는 다음을 만들어 낸다.
Twice: aah, aah. |
와 같이 된다.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Autobuild on June 15, 2016 using texi2html 1.82.