[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
어떤 경우에는 인쇄된 매뉴얼과 그에 대응되는 Info 파일에 대해 각각 다른 텍스트를 쓰는 편이 좋다. 이러한 경우에 조건 명령(conditional command)를 써서 어떤 텍스트가 인쇄된 매뉴얼에 들어가고, 어떤 텍스트가 Info 파일에 들어갈 지 지정한다.
• Conditional Commands | Specifying text for HTML, Info, or TeX. | |
17.1 Conditional Not Commands | Specifying text for not HTML, Info, or TeX. | |
17.2 Raw Formatter Commands | Using raw TeX or HTML commands. | |
17.3 @set , @clear , and @value | Designating which text to format (for all output formats); and how to set a flag to a string that you can insert. |
@ifinfo
는 TeX이 인쇄된 매뉴얼을 typeset할 때 무시해야
하는 부분을 시작한다. 이 부분은 Info 파일에만 나타난다.
@ifinfo
명령은 한 줄에 단독으로 나와야 한다; Info만의 텍스트는
@end ifinfo
가 단독으로 쓰여진 줄로 끝난다. Texinfo 파일이
시작할 때 Info의 permmission은 @ifinfo
와 @end ifinfo
로
표시된 부분 안에 들어 있다. (See section Summary and Copying Permissions for Info.)
@iftex
과 @end iftex
명령은 @ifinfo
와 @end
ifinfo
명령과 비슷하다. 단 지정된 텍스트는 인쇄된 매뉴얼에만 나타나고,
Info 파일에는 나타나지 않는다. @ifhtml
과 @end ifhtml
도
마찬가지로 HTML 출력에만 나타날 텍스트를 지정한다.
예를 들어,
@iftex 이 텍스트는 인쇄된 매뉴얼에만 나타난다. @end iftex @ifinfo 하지만, 이 텍스트는 Info에만 나타난다. @end ifinfo |
앞의 예는 다음 줄을 만든다:
이 매뉴얼을 Info 버전을 읽느냐 인쇄된 버전을 읽느냐에 따라 이 두 줄 중에 한줄만 보인 다는 것에 유의하라.
@titlepage
명령은 인쇄된 매뉴얼의 표지와 저작권 표시 페이지를
표시하는 데 쓰이는 @iftex
의 특별한 변형이다.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@ifnot…
명령으로 어떤 주어진 한개 이외의 출력
포맷에서만 포함될 텍스트를 지정할 수도 있다:
@ifnothtml … @end ifnothtml @ifnotinfo … @end ifnotinfo @ifnottex … @end ifnottex |
(@ifnot…
명령과 @end
명령은 한 줄에 단독으로
나와야 한다.)
출력 파일이 주어진 포맷으로 만들어 지지 않을 경우, 지정된 부분은 포함되고, 그렇지 않으면 무시된다.
이러한 명령으로 구분된 부분은 @iftex
의 경우에도 보통의 Texinfo
소스이다. @tex
을 사용하는 로우 포맷터(raw formatter) 소스가
아니다.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@iftex
과 @end iftex
으로 구분된 부분 내에서, 직접 TeX
명령을 포함시킬 수 있다. 이 부분은 TeX만 보는 부분이기 때문에 Info는
이 명령을 무시할 것이다. 보통 TeX 파일에서 쓰는 것처럼 TeX 명령을
쓸 수 있지만, TeX에서 쓰는 ‘\’를 ‘@’로 바꿔야 한다. 예를
들어, Texinfo의 @titlepage
부분에서 copyright 페이지를 포맷하는
데 TeX 명령인 @vskip
명령을 썼다. (@titlepage
명령은
@iftex
명령처럼 Info가 이 부분을 자동으로 무시하도록 한다.)
하지만, plain TeX의 많은 기능들은 Texinfo의 기능들에 의해서 변경되었기 때문에 동작하지 않을 것이다.
어떤 부분에 @tex
과 @end tex
명령을 써서 완전히 plain
TeX을 쓸 수도 있고, TeX 명령에 ‘\’를 쓴다. (@tex
명령은 @iftex
명령처럼 Info가 그 부분을 무시하도록 한다.)
유일한 예외는 @
문자는 여전히 명령어를 시작하는 문자라는 점이다.
이렇게 해야 @end tex
명령을 제대로 인식할 수 있다.
예를 들어, 다음은 plain TeX에 쓰여진 수학 표현이다:
@tex $$ \chi^2 = \sum_{i=1}^N \left (y_i - (a + b x_i) \over \sigma_i\right)^2 $$ @end tex |
이 예의 출력은 인쇄된 매뉴얼에만 보일 것이다. 이 매뉴얼을 Info 에서 읽고 있다면 인쇄된 매뉴얼에 나타나는 방정식을 볼 수 없다.
마찬가지로, @ifhtml … @end ifhtml
을 HTML 출력에만 포함될
부분을 감싸는 데 쓸 수 있다. 그리고 @html … @end
ifhtml
을 직접 HTML 명령을 쓰는 부분으로 지정할 수 있다 (마찬가지로,
@
는 여전히 이스케이프 문자라는 예외가 있어서, @end
명령이 동작한다.)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@set
, @clear
, and @value
@set
, @clear
, @ifset
, 그리고 @ifclear
명령을 사용해서 Texinfo 포맷팅 명령이 Texinfo 파일의 어떤 부분을
포맷팅하거나 무시하도록 조정할 수 있다.
또, @set flag
명령을 써서 flag의 값을 문자열로 할 수
있다; 그리고 @value{flag}
로 그 문자열을 삽입할 수 있다.
예를 들어, @set
을 써서 날짜를 지정하고, @value
를 써서
Texinfo 파일의 여러 군데에 날짜를 넣을 수 있다.
17.3.1 @ifset and @ifclear | Format a region if a flag is set. | |
17.3.2 @value | Replace a flag with a string. | |
17.3.3 @value Example | Replace a flag with a string. |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@ifset
and @ifclear
flag가 set되면, Texinfo 포매팅 명령은 @ifset flag
와
@end ifset
명령 사이의 텍스트를 포맷한다. flag가
clear되면, Texinfo 포매팅 명령은 그 텍스트를 포맷하지 않는다.
@set flag
명령을 써서 flag를 set한다; flag는
한개의 단어라면 무엇이든 올 수 있다. 이 명령의 포맷은 다음과 같다:
@set flag |
조건부로 포맷되는 텍스트는 다음과 같이 @ifset flag
와
@end ifset
명령 사이에 쓴다.
@ifset flag conditional-text @end ifset |
예를 들어, ‘큰’ 것과 ‘작은’ 매뉴얼의 두가지 변형이 있는 한개의 문서를 만들 수 있다.
You can use this machine to dig up shrubs without hurting them. @set large @ifset large It can also dig up fully grown trees. @end ifset Remember to replant promptly … |
이 예에서, large
flag가 set되었기 때문에 포맷팅 명령은
@ifset large
와 @end ifset
사이의 텍스트를 포맷할 것이다.
@clear flag
명령을 써서 flag를 clear한다. flag를
clear하는 것은 set하는 것의 반대이다. 이 명령은 다음과 같이 쓴다:
@clear flag |
이 명령은 한 줄에 단독으로 쓴다.
flag가 clear되면 Texinfo 포맷팅 명령은 @ifset flag
와
@end ifset
명령 사이의 텍스트를 포맷하지 않을 것이다; 그
텍스트는 인쇄된 매뉴얼이나 Info 출력이나 모두 무시되어 나타나지 않을
것이다.
예를 들어, 앞의 예에서 @clear large
명령을 @set large
명령 다음에 쓰면 (하지만, 조건부 텍스트 앞에), Texinfo 포맷팅 명령은
@ifset large
와 @end ifset
명령 사이의 텍스트를
무시한다. 포맷된 출력물에서 그 텍스트는 나타나지 않는다; 인쇄물이건
Info 출력이건 나타나지 않는다. 오직 “You can use this machine to dig
up shrubs without hurting them. Remember to replant promptly
…”만을 볼 수 있다.
flag가 @clear flag
명령으로 clear되면, 포맷팅 명령은
@ifclear
와 @end ifclear
명령 사이의 텍스트를 포맷할
것이다. 하지만, flag가 @set flag
로 set되면, 포맷팅 명령은
@ifclear
와 @end ifclear
명령 사이의 텍스트를 포맷하지
않을 것이다; 그 텍스트를 무시한다. @ifclear
명령은
다음과 같이 쓴다:
@ifclear flag |
간단히 말해서, 명령어는 다음과 같다:
@set flag
Texinfo 포맷팅 명령에 flag가 set되었음을 알린다.
@clear flag
Texinfo 포맷팅 명령에 flag가 clear되었음을 알린다.
@ifset flag
flag가 set되면 Texinfo 포맷팅 명령에게 @end ifset
명령이
나올 때까지의 텍스트를 포맷하도록 한다.
flag가 clear되었으면 Texinfo 포맷팅 명령에게 @end ifset
명령이
나올 때까지의 텍스트를 무시하도록 한다.
@ifset flag
flag가 set되면 Texinfo 포맷팅 명령에게 @end ifset
명령이
나올 때까지의 텍스트를 무시하도록 한다.
flag가 clear되었으면 Texinfo 포맷팅 명령에게 @end ifset
명령이
나올 때까지의 텍스트를 포맷하도록 한다.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@value
@set
명령으로 flag의 값을 지정할 수 있다. 이 값은
@value
명령으로 얻을 수 있다. 이 값은 문자열이다.
@set
명령은 다음과 같이 쓴다:
@set foo This is a string. |
이것은 foo
의 값을 “This is a string.”이라는 값으로 지정한다.
Texinfo 포맷터는 @value{flag}
명령을 flag의 값인
문자열로 대체한다.
즉, foo
가 위와 같이 지정되었을 때, Texinfo 포맷터는 다음과 같이
변환한다.
@value{foo}
to
This is a string.
|
@value
명령은 문단 안에 쓴다; 하지만, @set
명령은 한줄에
단독으로 써야 한다.
@set
명령을 다믐과 같이 문자열을 지정하지 않고 쓴다면:
@set foo |
foo
의 값은 빈 문자열이다.
만약 앞에서 set된 flag를 @clear flag
명령으로 clear하면
뒤에 나오는 @value{flag}
명령은 잘못된 것이고, 문자열은
‘{No value for "flag"}’라는 애러 메세지로 대체된다.
예를 들어, foo
를 다음과 같이 set하면:
@set how-much very, very, very |
그러면 포맷터는 다음과 같이 변환할 것이다.
It is a @value{how-much} wet day.
into
It is a very, very, very wet day.
|
만약 다음과 같이 쓰면
@clear how-much |
포맷터는 다음과 같이 변환한다.
It is a @value{how-much} wet day.
into
It is a {No value for "how-much"} wet day.
|
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
@value
Example@value
명령은 매뉴얼을 변경한 것을 기록할 때 바꿀 부분을 줄이는
데 쓸 수 있다. 다음은 The GNU Make Manual에서의 예이다.
Set the flags:
@set EDITION 0.35 Beta @set VERSION 3.63 Beta @set UPDATED 14 August 1992 @set UPDATE-MONTH August 1992 |
Texinfo 파일을 읽는 사람을 위해 첫번째 @ifinfo
부분에서 다음과
같은 텍스트를 쓰고 있다:
This is Edition @value{EDITION}, last updated @value{UPDATED}, of @cite{The GNU Make Manual}, for @code{make}, Version @value{VERSION}. |
인쇄된 매뉴얼을 읽는 사람을 위한 표지는 다음과 같이 쓰고 있다:
@title GNU Make @subtitle A Program for Directing Recompilation @subtitle Edition @value{EDITION}, … @subtitle @value{UPDATE-MONTH} |
(표지에서는, 달과 년을 나열하는 것이 날을 같이 나열하는 것보다 덜 이상해 보인다.)
Info 파일을 읽는 사람을 위해 Top 노드에서는 다음과 같은 텍스트를 쓰고 있다:
This is Edition @value{EDITION} of the @cite{GNU Make Manual}, last updated @value{UPDATED} for @code{make} Version @value{VERSION}. |
매뉴얼을 포맷한 다음, 첫번째 @ifinfo
부분은 다음과 같이 보인다:
This is Edition 0.35 Beta, last updated 14 August 1992, of `The GNU Make Manual', for `make', Version 3.63 Beta. |
매뉴얼을 변경할 때, flag의 값만을 바꾼다. 이 세가지 부분을 모두 다시 쓸 필요가 없다.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Autobuild on September 28, 2013 using texi2html 1.82.