다음 이전 차례

4. sgml을 이용하여 본격적으로 문서 작성하기

이 장은 본론이며 여기에 있는 내용들은 충분히 숙지하기 바란다.

4.1 장,절의 구분

역시 예를 보며 설명하도록 한다.


<sect>sgml의 기초
<p>
이제부터 sgml이라 하면 linuxdoc DTD에 해당하는 sgml만 말한다. 

<sect1>태그란?
<p>
태그란 html 문서에서 보는 것과 같은 < >로 묶인 사이에 문서의 형식을

장 절의 구분은 닫기 태그가 필요없는 <sect> 태그로 이루어 진다. 쉽게 이해하겠지만 <sect>는 큰 제목, <sect1> 작은 제목, <sect2>는 더 작은 제목, <sect4>는 더더 작은 제목이다. 문서를 자세한 장, 절, 소제목으로 나눈는 것은 나쁘지 않은 일이나 일반적으로 <sect2> 정도면 충분하며 더 이상 문서가 깊이 있어지면 읽는데에 불편하며 브라우징 하기에도 불편하다.

<sect> 태그는 뒤에 제목을 쓰는 것으로 끝난다. 장,절에 맞추어 각각 다른 형식으로 변환 될 때 적당한 폰트와 들여쓰기 장,절 구분 숫자등을 자동으로 써 주게 된다. 이는 새로운 절이 추가 될 경우 숫자나 순서에 신경쓸 필요가 없다는 것이다. 단순히 추가만 하면 나머지는 자동으로 해 준다. 단 <sect> 밑에는 <p>를 써 줌으로써 새로운 문단이 시작된다는 것을 알려줘야 한다. 초보시절에 가장 틀리기 쉬운 버그이다. 그밖의 문서 곳곳에서도 <p>나 한줄 띄워줌으로서 새로운 문단이 시작되는 것을 알릴 수 있다. 이것에 대해서는 추후 이야기 하도록 한다. 하여간 이렇게 새로운 문단을 알리거나 아래 나올 항목 나열등의 새로운 태그가 나오지 않는 이상 모든 글은 위에 가서 붙게 된다. 중간에 한줄을 띄어놓거나 <p>를 사용하지 않는 이상 모두 한줄로 붙어 한 문단임을 나타내 준다는 말이다. 이 역시 sgml로 처음 만들때 쉽게 틀리기 쉬운 부분이다. 아래에 설명할 인용 태그를 쓰지 않고 인용한다고 그냥 무덤덤하게 copy-paste를 하면 아래처럼 끔찍한 결과를 나타낸다.

[linux  ]$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 5 model : 2 model name : Pentium 75 - 200

위의 예에는 어떤 인용 태그도 사용하지 않았다. 이것에 대한 올바른 인용 결과는 인용 태그를 보며 추후 예를 들도록 하겠다.

4.2 문자의 꾸밈

사실 우리가 쓰는 linuxdoc DTD의 경우 문자 꾸미는 것에 인색하다 할 수 있다. 다음과 같은 세가지의 태그를 이용한다.

<tt> </tt> 문자를 타이프라이터체로 나타낸다.

영문일 경우 대부분 courier체를 사용하며 한글은 설정에 따라 다르다.

이 문자는 타이프라이터체 입니다. Hello, World.

<em> </em> 문자를 강조한다. 대부분 이탤릭체로 나타낸다.

이 문자는 강조된 문자입니다. Hello, World.

<bf> </bf> Bold Face, 볼드체로 나타낸다.

이 문자는 볼드체입니다. Hello, World.

위와 같은 태그를 쓸 때 길지 않은 내용이라면 열어주고 닫아주는 것이 불편할 수도 있다. 이럴 때는 간이 태그를 이용할 수 있다. 즉

<tt/ Hello, World/
와 같이 / 를 사용하여 열고 닫을 수 있다. 이런 방식의 간이 태그는 긴 문장에라도 가능하지만 이럴경우 문서의 내용에 / 가 있다면 혼동을 일으킬 염려가 있으며 중복하여 쓰면 간이 태그 안에는 / 가 겹치기 때문에 중복하여 간이태그를 쓸 수 없다.

4.3 항목의 나열

항목을 나열하는 것은 세가지 종류가 있다.

<itemize> </itemize> 간단한 블렛(동그라미나 점등)을 이용하여 나열한다.

<enum> </enum> 순서대로 표시한다..

  1. 애프터 스텝
  2. FVWM
  3. 윈도 메이커

이 두가지 <itemize><enum>는 각 항목을 나타낼 때 닫는 태그 없는 <item> 이라는 태그를 사용한다. 즉 위의 예의 소스를 본다면


<enum>
<item>애프터 스텝
<item>FVWM
<item>윈도 메이커
</enum>

처럼 쓴다.

마지막 항목 나열 태그는 각 항목을 굵은 글자체로 나타내고 그 아래에 추가글을 들여 쓰는 형식으로 바로 이 절이 그 형식으로 되어있다.

<descrip> </descrip>굵은 글자체로 항목을 표시한다.

애프터 스텝

좋다. 아주 좋다.

FVWM

PAKKUM이는 이걸 쓴다.

윈도 메이커

선근이는 이걸쓴다.

이 방법은 <item> 대신에 굵은 글자로 표현해야할 부분을 <tag>라는 태그로 대체한다. 위의 소스를 보면


<descrip>
<tag>애프터 스텝</tag> 좋다. 아주 좋다.<p>
<tag>FVWM</tag> PAKKUM이는 이걸 쓴다.<p>
<tag>윈도 메이커</tag> 선근이는 이걸쓴다.<p>
</descrip>

처럼 되어 있다.

4.4 인용하기

위에 말한 것처럼 적절한 인용 태그를 사용하지 않으면 sgml-tools에서는 한 문단으로 보고 모든 문장을 붙여버린다. 인용 태그를 쓸 경우 인용문이라는 표시를 하기 위해 적절한 폰트 변환을 해 주며 여러 방법으로 인용문이라는 느낌이 들게 해 준다. 인용하는 방법에는 세가지 정도가 있다. <verb> 태그는 자동으로 문자를 타이프라이터체로 나타낸다. 즉 인용문의 태그는 자동으로 <tt> 가 붙는 것으로 이해해도 좋다.

<verb> </verb> 단순한 인용

이렇게

<code> </code> 위에 두줄이 나타난다.


요렇게

<quote> </quote> 이것은 <verb>와 같으나 <tt>형식이 아니며 들여쓰기가 된다.

이렇게

<code>를 너무 많이 쓰면 위 아래 두줄로 인해 정신이 사나울 정도니까 정말 필요하다고 생각하는 것에만 쓰길 바란다. 바라는 결과대로 <verb> 태그와 <code> 태그는 쓰여진 모습 그대로 대로 인용을 한다. 그러나 <quote> 태그는 일반 문단과 같이 또 앞줄에 주루륵 붙여 버리니까 주의 하기 바란다. 즉 <verb>를 쓸 경우

[linux ~]$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 5
model           : 2
model name      : Pentium 75 - 200
stepping        : 12

이렇게 나오는 것이(사실 이 예는 위에 나왔던 그! 예제이다.) <quote> 태그를 쓰면

[linux  ]$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 5 model : 2 model name : Pentium 75 - 200 stepping : 12

이렇게 되어 버린다. 이 태그는 들여쓰기 정도로 이해하는 것이 좋을 것이며 사람 말의 인용등에 사용가능하다.


다음 이전 차례