docbook defguide 를 pdf 로 변환해보려고 하는데 안되네요...

닥북 활용에 대한 모든 질문과 답변

docbook defguide 를 pdf 로 변환해보려고 하는데 안되네요...

전체글글쓴이: 어느 손님 » 2005-08-21 4:02 pm

docbook defguide 를 이곳의 docbook 패키지를 이용해서 pdf 로 변환해보려고
하는데 에러메시지가 나며 안됩니다.(주로 entity 가 없다는 에러가 나는군요.)
defguide 는 sf.net 의 cvs 에서 defguide/en 아래에 있는것을 다운 받아서
사용했습니다.
혹시 뭔가 더 설정해야 하는 것이 있나요???
어느 손님
 

전체글글쓴이: 류광 » 2005-08-21 10:28 pm

README에 있듯이 DTD를 조정해 주어야 합니다. book.xml은 "schema/tdg.dtd"를 참조하는데, tdg.dtd가 참조하는 엔티티 파일들 중에 schema 디렉터리에 없는 것들이 있는 것 같습니다.

일단
<!DOCTYPE book SYSTEM "schema/tdg.dtd" [

를 표준적인

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [

로 바꾸어야 합니다.

이제 오류는 &bookinfo;가 없다는 것 하나로 줄어들 것입니다. entities/contents.ent를보면 &bookinfo;는 bookinfo.xml를 가리키는데요. CVS에도 없는 파일입니다. 뭔가 이상하죠... 뭐 <book> 요소 안의 &bookinfo;를 제거하는 걸로 넘어갈 수 밖에요.

코드: 모두 선택
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [

<!-- Build the expanded version by default -->
<!ENTITY % unexpanded "IGNORE">

<!-- source in the book content and other entities -->
<!ENTITY % content SYSTEM "entities/content.ent">
%content;
]>

<book id="docbook">
<?dbhtml filename="docbook.html"?>
<!-- &bookinfo; -->
&bookbody;
</book>


이렇게 하니 제 경우 오류는 안나왔습니다만 시간이 너무 오래 걸려서 중간에 포기했습니다.

&bookbody가 가리키는 bookbody.xml을 보면 다른 여러 파일들을 포함하는데, 첫 번째 <part>만 남겨두고 나머지는 제외시킨 상태에서 먼저 시험을 해 보시면 좋을 것 같습니다... 즉 다음과 같이 주석으로 감싸서...

코드: 모두 선택
<!-- $Id: bookbody.xml,v 1.2 2003/01/01 21:37:32 nwalsh Exp $ -->
&ch00;

<part id="docbook-intro">
<?dbhtml filename="part1.html"?>
<?ORApage height="4.93352"?>
<?ORApage height="7.5625"?>
<?ORA last-page-blank?>
<title>Introduction</title>
&ch01;
&ch02;
&ch03;
&ch04;
&ch05;
</part>

<!---
&references;

<part id="docbook-apps">
...
생략
...
</part>

&glossary;

&index;
&colophon;
-->

제 경우는 115p짜리 PDF를 얻었습니다. 일상적인 PDF 생성 오류들 외에 이미지 경로 관련 오류들이 나오는데 fop나 xsltproc 옵션들을 조정할 필요가 있을 것입니다.
류광
사용자
 
전체글: 434
가입일: 2003-12-27 12:02 am

전체글글쓴이: 류광 » 2005-08-21 10:40 pm

류광 작성:이제 오류는 &bookinfo;가 없다는 것 하나로 줄어들 것입니다. entities/contents.ent를보면 &bookinfo;는 bookinfo.xml를 가리키는데요. CVS에도 없는 파일입니다. 뭔가 이상하죠... 뭐 <book> 요소 안의 &bookinfo;를 제거하는 걸로 넘어갈 수 밖에요.


앗.. Makefile을 보니 bookinfo.xml은 VERSION.xml을 가지고 자동으로 생성을 하나 봅니다. VERSION.xml 안에 있는 <bookinfo> 요소만 뽑아서 bookinfo.xml로 저장하거나 아니면 그냥 book.xml의 해당 위치에 삽입하면 될 것 같네요.

그나저나 Makefile과 기타 빌드 스크립트들을 이용해서 문서를 빌드하는 것은 현재의 닥북 모음집으로는 불가능합니다. (영문 문서이니 cygwin과 cygwin의 공식 닥북 패키지를 이용하면 되지 않을까요...)
류광
사용자
 
전체글: 434
가입일: 2003-12-27 12:02 am

전체글글쓴이: 어느 손님 » 2005-08-22 4:20 pm

답변감사합니다. 말씀하신데로 해보니 잘 됩니다.
그런데 몇가지 문제가 있는데요, 문서에서 코드부분의 줄이 길어지면 자동으로
줄바꿈이 되는게 아니라 그냥 페이지 범위를 넘어가 버리네요.
그리고 저만 그런지는 모르겠는데 글자가 좀 뿌옇게 보입니다....
좀더 삽질을 해봐야 할 듯...........
어느 손님
 


다시 돌아감: 질문과 답변

접속 중인 사용자

이 포럼에 접속 중인 사용자: 접속한 회원이 없음 그리고 손님들 9 명

cron