4.4. 프로그램 코드 보여주기와 해설 목록 넣기

프로그램 코드를 보여주기 위해서는 <programlisting>을 사용합니다. 또한 컴퓨터 스크린에 뿌려지는 내용을 보여주기 위해서는 <screen>을 사용하면 됩니다. 이 두 기초요소 안에서는 verbatim 환경이 적용되므로 소스상에서 띄어쓰기나 줄바꿈한 상태가 출력물에서도 그대로 나타나게 됩니다.

본격적인 컴퓨터 관련 문서를 작성하기 위해서는 프로그램의 코드에 해설을 효과적으로 덧붙여 줄 수 있는 기능이 필요합니다. DocBook은 프로그램의 코드를 문서에 삽입해주고, 그것을 코드의 특정 라인에 대한 해설 목록과 연계시켜주는 기능을 갖고 있습니다. 이 글의 B.1절에서 사용된 것이 바로 이 기능입니다.

사용된 코드는 다음과 같습니다. 만일 코드와 해설 목록을 연계해주는 기능이 필요없다면 <areaspec> 부분과 <calloutlist> 부분은 생략해도 됩니다.

       <example id="sample-catalog">
         <title>카탈로그의 한 예</title>
         <programlistingco>
           <areaspec>
             <area coords="1" id="ex.catalogue.comment">
             <area coords="5" id="ex.catalogue.definition">
             <area coords="11" id="ex.catalogue.eof">
           </areaspec>
               <programlisting>
       -- Catalogues for the Conectiva S.A. Style --

       OVERRIDE YES
 
       PUBLIC "-//Conectiva SA//DTD books V1.0//EN" "/home/ldp/estilos/livros.dtd" 

       DELEGATE "-//OASIS" "/home/ldp/SGML/dtds/catalog.dtd"

       DOCTYPE BOOK /home/ldp/SGML/dtds/docbook/db31/docbook.dtd
 
       -- EOF -- 
               </programlisting>
           <calloutlist>
             <callout arearefs="ex.catalogue.comment">
               <para> 주석. 주석은 <quote>--</quote>로 시작과 
               끝을 맺습니다. </para> 
             </callout>
             <callout arearefs="ex.catalogue.definition">
               <para> 공식 식별이름 
                  <parameter class="option">"-//Conectiva SA//DTD books V1.0//EN"</parameter>은 
                  시스템 식별이름 
                  <filename class="directory">/home/ldp/styles/books.dtd</filename>에 해당된다는 뜻입니다. </para> 
             </callout>
             <callout arearefs="ex.catalogue.eof">
               <para> 파일의 끝을 나타내는 주석입니다. </para>
             </callout>
           </calloutlist>
         </programlistingco>
       </example>

목록(list)들은 <example><para> 없이도 문서에 그대로 삽입될 수 있습니다. 이것은 4.1.3절에 설명된 기초요소들도 마찬가지입니다.

<calloutlist>에 나열된 해설들은 <areaspec>에 지정된 위치에 따라 본문과 연계됩니다.