[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8 Cross References

상호 참조는 독자가 동일한 혹은 다른 Texinfo 파일의 다른 부분을 참조하는 데 쓰인다. Texinfo에서, node는 상호 참조가 참조할 수 있는 위치이다.

언제나 그런 것은 아니지만, 대부분 인쇄된 문서는 처음부터 죽 읽도록 설계된다. 사람들은 필요한 곳에 있어야 할 정보를 찾느라고 앞뒤로 넘기는 것에 지친다.

하지만, 어떤 문서에든, 어떤 정보는 현재 글보다 지나치게 자세하거나, 부수적인 정보이다; 이러한 정보에 접근하도록 하려면 상호 참조를 사용한다. 또, on-line help system이나 reference manual은 소설과는 다르다; 이런 문서를 처음부터 끝까지 죽 읽는 사람은 별로 없다. 대신에, 사람들은 필요한 정보만을 찾아낸다. 이러한 이유로, 이러한 문서는 많은 상호 참조가 있어서 독자들이 읽지 않을 수도 있는 다른 정보를 찾도록 도와준다.

인쇄된 매뉴얼에서, 상호 참조는 다른 매뉴얼을 참조하지 않는다면, page 참조를 만든다. 다른 매뉴얼을 참조하는 경우에 상호 참조는 manual의 이름을 알려준다.

Info에서, 상호 참조는 Info의 ‘f’ 명령으로 따라갈 수 있는 entry를 만든다. (See (info)Some advanced Info commands.)

많은 상호 참조 명령은 상호 참조 위치를 정의하는데 node를 사용한다. node를 사용하는 것은 상호 참조로 지정된 node로 가는 Info에서는 분명하다. TeX도 상호 참조 위치를 정의하는데 node를 사용하지만, 그에 따른 행동은 이보다는 Info보다 덜 명확하다. TeX이 DVI 파이릉ㄹ 만들때, TeX은 node의 페이지 번호를 기록하고, 참조를 만들때 그 페이지 번호를 사용한다. 즉, 인쇄되기만 하고, 온라인으로 쓰이지 않을 매뉴얼을 작성한다고 해도, 상호 참조를 만들 위치에 이름을 붙이기 위해 @node 줄을 써야 한다.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.1 Different Cross Reference Commands

4가지의 다른 상호 참조 명령이 있다.

@xref

인쇄된 매뉴얼에서 ‘See …’로 시작하는 문장을 시작하거나, Info에서 ‘*Note name: node.’라고 된 상호 참조를 시작할 때 쓰인다.

@ref

문장사이, 혹은 더 대부분의 경우 문장의 끝에 쓰인다; Info에서는 @xref와 같다; 이 명령은 인쇄된 매뉴얼에서 앞에 나오는 ‘See’가 없는 상호 참조를 만들어 낸다.

@pxref

괄호 사이에 Info 파일과 인쇄된 책에 모두 알맞는 참조를 만들어 내는 데 쓰인다. 인쇄된 매뉴얼에서는 소문자로 시작하는 ‘see’로 시작한다. (‘p’는 ‘괄호(parenthesis)’를 위한 것이다.)

@inforef

인쇄된 매뉴얼이 없는 Info 파일에 대한 참조를 만들때 쓰인다.

(@cite 명령은 해당되는 Info 파일이 없는—즉, 가리킬 node가 없는— 책이나 매뉴얼에 대한 참조를 만드려고 할때 쓰인다


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.2 Parts of a Cross Reference

상호 참조 명령은 한개의 인수가 필요하다. 이 인수는 참조하려는 node의 이름이다. 하지만 상호 참조 명령은 4개까지의 추가 인수를 가질 수 있다. 이 인수를 사용해서, Info의 상호 참조 이름, 인쇄물의 주제 설명이나 절의 제목, 또다른 Info 파일의 이름, 또다른 인쇄된 매뉴얼의 이름을 제공해 줄 수 있다.

여기에 간단한 상호 참조의 예가 있다:

@xref{Node name}.

위 예는 다음을 만들어 낸다.

*Note Node name::.

See Section nnn [Node name], page ppp.

다음은 완전한 5개 부분으로 구성된 상호 참조의 예이다:

@xref{Node name, Cross Reference Name, Particular Topic,
info-file-name, A Printed Manual}, for details.

이것은 다음을 만들어 낸다. Info에서는

*Note Cross Reference Name: (info-file-name)Node name,
for details.

그리고 인쇄된 책에서는

See section “Particular Topic” in A Printed Manual, for details.

상호 참조에서 이 5개의 가능한 인수는:

  1. node의 이름 (반드시 필요). 이것은 상호 참조가 데려다 줄 node이다. 인쇄된 문서에서는, 같은 문서내의 참조에 대해서는 페이지로 node의 위치를 알려준다.
  2. Info에 대한 참조를 위한 상호 참조 이름, 단 이 이름이 node의 이름과 다른 경우이다. 이 인수를 포함하면, 이것이 상호 참조의 첫번째 부분이 된다. 이 인수는 보통 생략된다.
  3. 주제 설명이나 절의 이름. 보통, 이것은 그 절의 이름이다. 이 인수는 인쇄된 매뉴얼에서 참조의 이름으로 쓰인다. 생략될때는 node의 이름이 사용된다.
  4. 참조가 위치한 Info 파일의 이름, 단 이 Info 파일이 현재 파일과 다른 경우이다. 파일 이름의 ‘.info’ 접미어는 Info reader가 자동으로 붙이기 때문에 포함시킬 필요가 없다.
  5. 또 다른 Texinfo 파일에서 인쇄된 매뉴얼의 이름.

완전한 5개의 인수를 가진 상호 참조의 templete은 다음과 같다:

@xref{node-name, cross-reference-name, title-or-topic,
info-file-name, printed-manual-title}.

한개, 두개, 세개, 네개, 그리고 다섯개의 인수가 있는 상호 참조는 @ref의 설명에 따라 별개로 기술된다.

대소문자 구별도 똑같이 함은 물론, @node 줄에서 쓴 것과 완전히 똑같게 상호 참조 안의 node 이름을 쓴다; 그렇지 않으면 formatter가 그 참조를 찾지 못할 수 있다.

문단 중간에 상호 참조를 쓸 수도 있지만, Info와 TeX이 여러가지 명령들 각각의 출력을 어떻게 format하는지 주의하라; @pxref는 오직 괄호 안에서만 써야하는 것 등등.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3 @xref

@xref 명령은 문장이 시작할때 쓰는 상호 참조를 만든다. Info formatting 명령은 이 명령을 Info 상호 참조로 바꿀 것이고, Info의 ‘f’ 명령으로 또다른 node로 데려갈 수 있도록 이 참조를 사용할 것이다.

대부분의 경우, Info 상호 참조는 다음과 같다:

*Note node-name::.

또는 다음과 같다.

*Note cross-reference-name: node-name.

TeX에서는, 상호 참조는 다음과 같이 보인다:

See Section section-number [node-name], page page.

또는 다음과 같다.

See Section section-number [title-or-topic], page page.

@xref 명령은 Info 파일이든 인쇄물이건 간에 상호 참조의 끝에 마침표나 쉼표를 붙이지 않는다. 그 마침표나 쉽표는 직접 써야 한ㄷ; 그렇지 않으면, Info는 상호 참조의 끝을 알지 못할 것이다. (@pxref 명령은 다르다. See section @pxref.)

반드시 주의하라: 마침표나 쉼표는 반드시 @xref의 끝나는 중괄호 다음에 와야 한다. 상호 참조를 끝낼때 이것은 반드시 필요하다. 이 마침표나 쉽표는 Info 파일이나 인쇄된 매뉴얼에서 출력으로 나타날 것이다.

@xref는 이르으로 Info node를 참조해야 한다. @node를 사용하여 node를 정의한다 (see section How to Write an @node Line).

@xref는 중괄호 안에 몇개의 인수가 쉼표로 구분되어 따라온다. 이 콤파 앞뒤의 공백은 무시된다.

상호 참조는 node의 이름만이 필요하다; 그러나 상호 참조는 4개의 인수까지 가질 수도 있다. 이런 변화는 약간씩 다르게 보이는 상호 참조를 만들어 낸다.

반드시 주의하라: 상호 참조에서 쉼표가 인수를 구분한다; 제목과 같은 부분에 쉽표를 포함하면 formatter는 그 쉽표를 인수를 구분하는 것으로 실수한다.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3.1 @xref with One Argument

@xref의 가장 단순한 모양은 한개의 인수만을 가진다. 그 인수는 같은 Info 파일의 또다른 node의 이름이다. Info formatter는 Info reader가 그 참조부분으로 점프하는 데 쓰는 출력물을 만든다; TeX은 페이지와 절의 번호를 표시한 출력물을 만들어 준다.

예를 들어,

@xref{Tropical Storms}.

*Note Tropical Storms::.

See Section 3.1 [Tropical Storms], page 24.

를 만든다. (앞의 예에서 중괄호를 닫은 다음 마침표가 따라왔다는 것에 주목하라.)

다음과 같이 상호 참조 다음에 글을 더 쓸 수도 있다.

@xref{Tropical Storms}, for more info.

이것은

*Note Tropical Storms::, for more info.

See Section 3.1 [Tropical Storms], page 24, for more info.

를 만든다. (앞의 예에서 중괄호를 닫은 다음 쉼표가 오고, 그 다음에 뒤의 글이 쓰여지는 것에 주목하라. 앞에서는 중괄호를 닫은 다음 마침표가 왔다.)


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3.2 @xref with Two Arguments

두개의 인수에서는, 두번째 인수는 Info 상호 참조의 이름으로 쓰인다. 첫번째 인수는 계속 상호 참조 지점의 node의 이름이다.

그 template은 다음과 같다:

@xref{node-name, cross-reference-name}.

예를 들어,

@xref{Electrical Effects, Lightning}.

는 다음을 만든다:

*Note Lightning: Electrical Effects.

See Section 5.2 [Electrical Effects], page 57.

(앞의 예에서 중고라호를 닫은 다음 마침표가 왔음에 주목하라; 그리고 상호 참조의 이름이 아니라, node의 이름이 출력된다는 것에 주목하라.)

다음과 같이 상호 참조 다음에 글을 더 쓸 수 있다:

@xref{Electrical Effects, Lightning}, for more info.

이것은 다음을 만든다.

*Note Lightning: Electrical Effects, for more info.

See Section 5.2 [Electrical Effects], page 57, for more info.

(앞의 예에서 중괄호를 닫은 다음 쉼표가 오고, 그 다음에 뒤의 글이 왔음에 유의하라. 이전의 예에서 중괄호 다음에 마침표가 왔다.)


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3.3 @xref with Three Arguments

세번째 인수는 TeX 출력에서 node의 이름을 대체한다. 세번째 인수는 인쇄된 매뉴얼의 그 절의 이름이거나, 그 절에서 다룬 주제에 관한 설명이어야 한다. 대부분, 첫자를 대문자로 써서 그 참조가 인쇄되었을 때 읽기 쉽도록 할 것이다. syntax나 의미때문에 node의 이름이 부적합할 때 세번째 인수를 쓴다.

상호 참조의 제목이나 topic section, 혹은 다른 어떤 section이든지, 안에 쉼표를 넣는 것을 피하는 걸 기억하기 바란다. formatter는 쉼표에 따라서 상호 참조의 인수를 구분한다; 제목이나 그 외 절이름에 쉼표를 넣으면 두개의 인수로 나눠질 것이다. “Cluds, Mist, and Fog’와 같은 제목을 쓸때 쉼표를 없애야 한다.

또, 상호 참조를 끝낼때 @xref에서 중괄호를 닫은 다음 쉼표나 마침표를 쓰는 것을 기억하라. 다음 예에서 상호 참조를 끝내는 쉼표 다음에 글이 쓰여 있다.

그 template은 다음과 같다:

@xref{node-name, cross-reference-name, title-or-topic}.

예를 들어,

@xref{Electrical Effects, Lightning, Thunder and Lightning},
for details.

는 다음과 같이 만든다.

*Note Lightning: Electrical Effects, for details.

그리고

See Section 5.2 [Thunder and Lightning], page 57, for details.

마약 세번째 인수가 주어졌고, 두번째가 없다면, 세번째 인수가 두번째와 세번재 인수의 역할을 동시에 할 것이다. (두번째 인수가 없다는 것을 표시할때 두개의 쉼표를 연달아 쓴다는 것에 유의한다.)

@xref{Electrical Effects, , Thunder and Lightning},
for details.

는 다음을 만든다.

*Note Thunder and Lightning: Electrical Effects, for details.

그리고

See Section 5.2 [Thunder and Lightning], page 57, for details.

실제적인 문제로, node의 이름과 절의 제목이 같다면 첫번째 인수만을 사용해서 상호 참조를 쓰는 것이 가장 좋다. 그리고 node의 이름과 제목이 다르다면 첫번째와 세번째 인수만으로 상호 참조를 쓴다.

여기 The GNU Awk User’s Guide에서 따온 예가 몇가지 있다:

@xref{Sample Program}.
@xref{Glossary}.
@xref{Case-sensitivity, ,Case-sensitivity in Matching}.
@xref{Close Output, , Closing Output Files and Pipes},
   for more information.
@xref{Regexp, , Regular Expressions as Patterns}.

[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3.4 @xref with Four and Five Arguments

상호 참조에서, 네번째 인수는 상호 참조를 쓰는 파일과는 다른 Info 파일의 이름을 지정할 때 쓰인다. 그리고 다섯번째 인수는 인쇄된 매뉴얼에서 그 제목을 지정할 때 쓰인다.

상호 참조를 끝낼 때 @xref 명령에서 중괄호를 닫은 다음 쉼표나 마침표가 와야 한다는 것을 기억하자. 다음 예어서 쉼표로 끝난 상호 참조 다음에 글이 쓰여 있다.

그 template는:

@xref{node-name, cross-reference-name, title-or-topic,
info-file-name, printed-manual-title}.

예를 들어,

@xref{Electrical Effects, Lightning, Thunder and Lightning,
weather, An Introduction to Meteorology}, for details.

는 다음을 만들어 낸다.

*Note Lightning: (weather)Electrical Effects, for details.

Info 파일의 이름은 괄호 안에 들어 있고, node의 이름 앞에 있다.

인쇄된 매뉴얼에서 이 참조는 다음과 같이 보이게 된다:

See section “Thunder and Lightning” in An Introduction to Meteorology, for details.

인쇄된 매뉴얼의 제목은 이탤릭체로 typeset된다; 그리고 이 참조는 페이지 번호가 없다. 그 참조가 다른 매뉴얼을 가리킨다면 참조하는 부분이 어느 페이지인지 TeX이 알수 없기 때문이다.

대부분의 경우, @xref를 길게 쓸 경우, 두번째 인수를 비워둔다. 이 경우 세번째 인수, 즉 topic description이 Info의 상호 참조 이름으로 쓰인다.

그 template는 다음과 같다.

@xref{node-name, , title-or-topic, info-file-name,
printed-manual-title}, for details.

이것은 다음을 만든다.

*Note title-or-topic: (info-file-name)node-name, for details.

그리고

See section title-or-topic in printed-manual-title, for details.

예를 들어,

@xref{Electrical Effects, , Thunder and Lightning,
weather, An Introduction to Meteorology}, for details.

는 다음을 만든다.

*Note Thunder and Lightning: (weather)Electrical Effects,
for details.

그리고

See section “Thunder and Lightning” in An Introduction to Meteorology, for details.

드문 경우에, 한개의 인쇄됨 매뉴얼 안에 있는 또다른 Info 파일을 참조하려 할때가 있다—여러개의 Texinfo 파일이 한개의 TeX 출력으로 합쳐지지만 별도의 Info 파일을 만드는 경우이다. 이 경우에, 네번째 인수만을 쓰고, 다섯번째는 쓰지 말아야 한다.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.4 Naming a ‘Top’ Node

상호 참조에서, 언제나 node의 이름을 지어야 한다. 그러면, 전체 매뉴얼을 참조할 수 있으려면, @xref 명령의 첫번째 인수로 ‘Top’ node를 지정해야 한다. (이것은 menu entry를 작성하는 법과는 다르다; see section Referring to Other Info Files.) 그와 동시에, 인쇄된 상호 참조에서 의미있는 절의 주제나 제목이 나오게 하려면 (‘Top’ 단어 대신에), @xref 명령의 세번재 인수로 적절한 항목을 써야 한다.

즉, The GNU Make Manual에 대한 상호 참조를 만드려면, 이렇게 쓴다:

@xref{Top, , Overview, make, The GNU Make Manual}.

이것은 다음을 만든다.

*Note Overview: (make)Top.

그리고

See section “Overview” in The GNU Make Manual.

이 예에서, ‘Top’은 첫번째 node의 이름이고, ‘Overview’는 그 매뉴얼의 첫번째 절의 이름이다.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.5 @ref

@ref는 인쇄된 매뉴얼에서 ‘See’를 표시하지 않고, 참조 그 자체만을 표시한다는 것을 제외하고는 @xref와 거의 같다. 이런 특징때문에 문장의 마지막 부분에 쓰기 좋다.

예를 들어,

For more information, see @ref{Hurricanes}.

는 다음을 만든다.

For more information, see *Note Hurricanes.

그리고

For more information, see Section 8.2 [Hurricanes], page 123.

@ref 명령은 가끔 인쇄된 매뉴얼에서는 적합하지만, Info 형식에서는 이상한 모양으로 출력된다. 당신의 청중들은 인쇄된 형식과 Info 형식을 모두 사용한다는 것을 명심하라.

예를 들어,

Sea surges are described in @ref{Hurricanes}.

는 다음을 만든다.

Sea surges are described in Section 6.7 [Hurricanes], page 72.

인쇄된 매뉴얼에서는 위와 같고, 다음은 Info의 경우이다:

Sea surges are described in *Note Hurricanes::.

주의: 반드시 @ref 명령을 두개 이상의 인수와 함께 쓸 때는 @ref 명령 다음에 마침표나 쉼표를 쓴다. 그렇지 않으면, Info는 상호 참조의 끝을 찾을 수 없고, 이 상호 참조는 실패할 것이다. 일반적인 규칙상으로는, 모든 @ref 명령 다음에 마침표나 쉼표를 써야 한다. 이것이 인쇄물이나 Info 출력에서 모두 가장 잘 보이는 방법이다.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.6 @pxref

괄호 내에서 사용하는 참조 명령인 @pxref@xref와 거의 같지만, 괄호 내에서만 사용하고, 이 명령에서 중괄호를 닫은 다음 쉼표나 마침표를 찍지 않는다. 이 명령은 두가지 면에서 @xref와 다르다.

  1. TeX은 인쇄된 매뉴얼에서 대문자로 시작하는 ‘See’가 아닌 ‘see’로 typeset한다.
  2. Info formatting 명령은 자동으로 콜론이나 마침표로 참조를 끝낸다.

한 가지 형태의 formatting이 자동으로 끝내는 구두점을 삽입하고, 다른 한 가지는 안 그렇기 때문에, @pxref 명령은 오로지 괄호 안에서 다른 문장의 일부로 써야 한다. 또, @xref와는 달리, 참조가 끝날 때 구두점을 넣지 않는다.

@pxref는 인쇄물이건 Info 파일이건 간에 괄호 사이에서만 제대로 보이고, 동작하도록 만들어져 있다. 인쇄된 매뉴얼에서, 참조를 끝내는 쉼표나 마침표는 괄호 사이의 상호 참조 다음에는 오지 않는다; 이런 구두점은 잘못된 것이다. 하지만, Info 파일에서, 제대로 쓰인 참조를 끝내는 구두점은 상호 참조 다음에 와야 Info가 그 끝을 알아 볼 수 있다. @pxref는 한가지 형태의 출력물에만 terminator를 넣고, 다른 한가지에는 넣지 않는 복잡한 방법을 사용하지 않도록 해 준다.

한개의 인수가 있는, 괄호에 쓰는 상호 참조는 다음과 같다;

… storms cause flooding (@pxref{Hurricanes}) …

이것은 다음을 만든다.

… storms cause flooding (*Note Hurricanes::) …

그리고

… storms cause flooding (see Section 6.7 [Hurricanes], page 72) …

두개의 인수가 있는, 괄호에 사용하는 상호 참조는 다음과 같은 template대로 사용한다.

… (@pxref{node-name, cross-reference-name}) …

이것은 다음을 만들어 낸다.

… (*Note cross-reference-name: node-name.) …

그리고

… (see Section nnn [node-name], page ppp) …

@pxref@xref와 마찬가지로 다섯개까지의 인수를 사용할 수 있다 (see section @xref).

반드시 주의하라: @pxref를 괄호안의 참조에만 사용하라. @pxref를 문장 중에 사용하려고 하지 말라. 그렇게 하면 Info 파일이나, 인쇄물, 혹은 두쪽 모두 모양이 좋지 않을 것이다.

또, 괄호안의 상호 참조는 문자의 끝에 쓰일때 가장 좋게 보인다. 문장 중간에 쓸 수도 있지만, 이런 위치는 글의 흐름을 끊는다.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.7 @inforef

이 명령은 다음 순서로 두개나 세개의 인수를 받는다:

  1. node의 이름.
  2. 상호 참조 이름 (생략 가능).
  3. Info 파일의 이름.

이 인수들은 @xref와 마찬가지로 쉼표로 구분한다. 또, @xref와 마찬가지로 ‘}’ 다음에 쉼표나 마침표로 참조 명령을 끝내야 한다.

template은 다음과 같다:

@inforef{node-name, cross-reference-name, info-file-name},

즉,

@inforef{Expert, Advanced Info commands, info},
for more information.

은 다음을 만든다.

*Note Advanced Info commands: (info)Expert,
for more information.

그리고

See Info file ‘info’, node ‘Expert’, for more information.

비슷하게,

@inforef{Expert, , info}, for more information.

는 다음을 만든다.

*Note (info)Expert::, for more information.

그리고

See Info file ‘info’, node ‘Expert’, for more information.

@inforef의 반대는 @cite이다. 이 명령은 Info 형식이 없는 인쇄물에 대한 참조를 만들때 쓰인다. See section @cite.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.8 @uref{url[, displayed-text]}

@uref는 uniform resource locator (URL)에 대한 참조를 만든다. 이 명령은 한개의 필수적인 인수, 즉 URL을 인수로 받고, 또 한개의 생략 가능한 인수를 받는다. 이 생략 가능한 인수는 표시할 글이다 (default는 URL 자체이다). HTML 출력에서 @uref는 따라갈 수 있는 링크를 만들 것이다. 예를 들어:

The official GNU ftp site is
@uref{ftp://ftp.gnu.ai.mit.edu/pub/gnu}

는 다음을 만든다 (text에서).

The official GNU ftp site is
ftp://ftp.gnu.ai.mit.edu/pub/gnu

반면에

The official
@uref{ftp://ftp.gnu.ai.mit.edu/pub/gnu,
  GNU ftp site} holds programs and texts.

는 다음을 만든다 (text에서):

The official GNU ftp site holds
programs and texts.

그리고 (HTML에서):

The official <A HREF="ftp://ftp.gnu.ai.mit.edu/pub/gnu">GNU ftp
site</A> holds programs and texts.

단지 URL을 가리키고 싶을 때는, @url을 사용하라 (see section @url).


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated on April 12, 2025 using texi2html 5.0.