이 장은 본론이며 여기에 있는 내용들은 충분히 숙지하기 바란다.
역시 예를 보며 설명하도록 한다.
<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
위의 예에는 어떤 인용 태그도 사용하지 않았다. 이것에 대한 올바른 인용 결과는 인용 태그를 보며 추후 예를 들도록 하겠다.
사실 우리가 쓰는 linuxdoc DTD의 경우 문자 꾸미는 것에 인색하다 할 수 있다. 다음과 같은 세가지의 태그를 이용한다.
영문일 경우 대부분 courier체를 사용하며 한글은 설정에 따라 다르다.
이 문자는 타이프라이터체 입니다.
Hello, World.
이 문자는 강조된 문자입니다. Hello, World.
이 문자는 볼드체입니다. Hello, World.
위와 같은 태그를 쓸 때 길지 않은 내용이라면 열어주고 닫아주는 것이 불편할 수도 있다. 이럴 때는 간이 태그를 이용할 수 있다. 즉
<tt/ Hello, World/와 같이 / 를 사용하여 열고 닫을 수 있다. 이런 방식의 간이 태그는 긴 문장에라도 가능하지만 이럴경우 문서의 내용에 / 가 있다면 혼동을 일으킬 염려가 있으며 중복하여 쓰면 간이 태그 안에는 / 가 겹치기 때문에 중복하여 간이태그를 쓸 수 없다.
항목을 나열하는 것은 세가지 종류가 있다.
이 두가지 <itemize>
와 <enum>
는 각 항목을 나타낼 때
닫는 태그 없는 <item>
이라는 태그를 사용한다. 즉 위의 예의
소스를 본다면
<enum> <item>애프터 스텝 <item>FVWM <item>윈도 메이커 </enum>
처럼 쓴다.
마지막 항목 나열 태그는 각 항목을 굵은 글자체로 나타내고 그 아래에 추가글을 들여 쓰는 형식으로 바로 이 절이 그 형식으로 되어있다.
좋다. 아주 좋다.
PAKKUM이는 이걸 쓴다.
선근이는 이걸쓴다.
이 방법은 <item>
대신에 굵은 글자로 표현해야할 부분을
<tag>
라는 태그로 대체한다. 위의 소스를 보면
<descrip> <tag>애프터 스텝</tag> 좋다. 아주 좋다.<p> <tag>FVWM</tag> PAKKUM이는 이걸 쓴다.<p> <tag>윈도 메이커</tag> 선근이는 이걸쓴다.<p> </descrip>
처럼 되어 있다.
위에 말한 것처럼 적절한 인용 태그를 사용하지 않으면 sgml-tools에서는
한 문단으로 보고 모든 문장을 붙여버린다. 인용 태그를 쓸 경우
인용문이라는 표시를 하기 위해 적절한 폰트 변환을 해 주며 여러 방법으로
인용문이라는 느낌이 들게 해 준다. 인용하는 방법에는 세가지 정도가
있다. <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
이렇게 되어 버린다. 이 태그는 들여쓰기 정도로 이해하는 것이 좋을 것이며 사람 말의 인용등에 사용가능하다.