xalan 은 한글환경에서 사용하면 appendix 등 A,B,C, ... 로 번호를 붙여야 하는 곳에 ㄱ,ㄴ,ㄷ ... 으로 번호를 붙입니다. 이는 xalan이 xslt 표준을 충실하게 지켜서 생기는 문제(?)입니다.
아래의 해결방법이 너무 번거롭게 느껴진다면 간단한 임시방편이 있습니다. 닥북 XML 문서의 appendix 요소에 label 특성으로 원하는 번호를 직접 지정하면 됩니다.
<appendix label="A"> ... </appendix>
먼저 DOCBOOK_HOME/stylesheet/docbook-xsl 안의 모든 xsl 파일에 대해 <xsl:number 를 <xsl:number lang="${numbering.lang}" 으로 바꿉니다. 디렉토리에서 찾아 바꾸기 기능이 있는 에디터를 쓰면 쉽게 할 수 있습니다.
dbk-common.xsl 파일을 열어 아래 내용을 추가합니다.
<xsl:param name="numbering.default.lang" select="'ko'" />
<xsl:param name="numbering.lang">
<xsl:choose>
<xsl:when test="//processing-instruction('label.numbering')">
<xsl:value-of select="//processing-instruction('label.numbering')/@lang" />
</xsl:when>
<xsl:when test="//@lang">
<xsl:value-of select="//@lang" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$numbering.default.lang" />
</xsl:otherwise>
</xsl:choose>
</xsl:param>
아래 방법으로 번호를 붙일 때 사용할 언어를 지정할 수 있습니다. 먼저 나온게 우선순위가 더 높습니다.
docbook 문서의 루트엘리먼트의 바로 아래에 다음처럼 설정합니다.
<article>
<?label.numbering lang="en" ?>
<!-- 기타 내용 -->
</article>
<article lang="en"> <!-- 기타 내용 --> </article>
<xsl:param name="numbering.default.lang" select="'ko'" />
이 값은 개별 docbook 문서에 별도의 설정이 없을 경우 사용되는 기본값입니다.
카탈로그가 제대로 설정되지 않아 수정한 스타일시트 대신에 docbook 홈의 스타일시트가 적용되면 제대로 동작하지 않습니다.