Files
Terrarum/assets/mods/basegame/books/btex_ko.xml
2024-05-20 22:09:44 +09:00

294 lines
23 KiB
XML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE btexdoc SYSTEM "btexdoc.dtd">
<btexdoc cover="hardcover" inner="standard" papersize="standard">
<macrodef>
<pair key="thepart" value="제%1$s부"/>
<pair key="parttype" value="1"/>
<pair key="thechapter" value="%1$s장"/>
</macrodef>
<cover>
<title>문자를 모아 책을 찍어내어 엮는 머나먼 여정으로의 소개</title>
<subtitle>책 쓰고 찍어내는 법</subtitle>
<author>Terran Publishing</author>
<edition>시험판</edition>
</cover>
<tocpage title="목차"><tableofcontents/></tocpage>
<manuscript>
<part></part>
<chapter>책이란 무엇인가</chapter>
<p>본 견본은 책 조판 언어의 예시를 위해 제작되었다.</p>
<section hide="1">책이란 정말 무엇인가</section>
<p><index id="책"/>책 조판 시스템에서 책이란 페이지 번호와 그림과 <a href="하이퍼링크">하이퍼링크</a>와 같은 요소를 포함하여 가독성 좋게 편집된 글의 뭉치를 말한다.</p>
<p>책은 ‘엮인’ 글로 취급되어 두 페이지가 한번에 보여진다.</p>
<chapter>타자기를 사용한 집필</chapter>
<p><index id="타자기"/>타자기는 글 쓰기의 시작을 빠르고 편리하게 해 준다. 타자기를 클릭하면 바로 작성이 가능하다.</p>
<p>하지만 타자기를 사용할 때는 여러 문자 사용 불가, 사진 첨부 불가, 하이퍼링크 사용 불가, 너덜너덜해 못생긴 문단과 같은 크나큰 단점이 따라온다.</p>
<p>타자기로 찍은 문서는 ‘엮이지 않은’ 글로 취급되어 한번에 한 페이지만 보여진다.</p>
<p>위와 같은 이유로 타자기로는 책다운 책을 만들 수 없다.</p>
<chapter>출판사와 인쇄소를 이용한 집필</chapter>
<p>출판사를 통하면 진짜배기 책의 모든 장점을 담은 책다운 책을 고작 한 권도 아닌 여러 권을 원하는 만큼 찍어낼 수 있다.</p>
<p>책을 인쇄하려면 원고를 출판사로 보내야 한다. 책을 찍어내기 위한 원고는 <btex/>이라는 특수한 언어로 작성되어야 한다.</p>
<p><btex/>을 통하며 책 전체의 생김새를 간단히 기술할 수 있다. 사용할 수 있는 스타일은 조판 시스템이 지원하는 범위 안에서 제약이 없다. 타자기로 찍어낸 듯한 글도 원한다면 얼마든지 인쇄되도록 할 수 있다.</p>
<part><btex/></part>
<chapter>소개</chapter>
<p><index id="btex 언어"/><btex/>(발음: [비ː텍])은 <latex/>과 유사하게 설계된 XML 기반의 마크업 언어이다.
<btex/>은 세세한 스타일 정의문과 조판 설정을 추상화하여, 글을 쓰면서 <latex/> 매크로를 디버깅하는 등의 일 없이 글쓰기에 집중할 수 있도록 설계되었다. 다만 이러한 이유로 미리 정의된 스타일을 뜯어고치는 것은 어렵다.</p>
<p><btex/> 문서는 다음의 다섯 부분으로 나뉘어진다: <!--
--><a href="btexdoc">스타일 정의문</a>·<!--
--><a href="표지 정의문">표지 정의문</a>·<!--
--><a href="목차 정의문">목차 정의문</a>·<!--
--><a href="원고">원고</a>·<!--
--><a href="색인 페이지">색인 페이지</a>.
이 중 스타일 정의문과 원고는 필수로 존재하여야 하는 부분이다.</p>
<chapter>스타일 정의문</chapter>
<p><index id="btexdoc"/>스타일 정의문은 <btex/> 문서의 가장 첫 부분이다. 스타일 정의문의 구조는 다음과 같다.</p>
<callout align="left" class="code"><index id="btexdoc (태그)"/><!--
-->&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br/><!--
-->&lt;!DOCTYPE btexdoc SYSTEM "btexdoc.dtd"&gt;<br/><!--
-->&lt;btexdoc cover="hardcover" inner="standard" papersize="standard"&gt;
</callout>
<p><code>btexdoc</code> 태그는 다음의 속성을 지원한다.</p>
<ul>
<li><code>cover</code> — 표지의 스타일을 지정함. 지원하는 값: <code>hardcover</code>, <code>none</code></li>
<li><code>inner</code> — 내용의 스타일을 지정함. 지원하는 값: <code>standard</code>, <code>typewriter</code></li>
<li><code>papersize</code> — 판형을 지정함. 지원하는 값: <code>standard</code></li>
</ul>
<chapter>표지 정의문</chapter>
<p><index id="표지 정의문"/><code>cover</code> 태그는 책의 표지를 지정한다. 표지가 없는 책이라면 이 부분은 생략 가능하다. 표지 정의문의 구조는 다음과 같다.</p>
<callout align="left" class="code"><index id="cover (태그)"/><index id="title (태그)"/><index id="subtitle (태그)"/><index id="author (태그)"/><index id="edition (태그)"/>&lt;cover hue="358"&gt;<br/>
&lt;title&gt;책 제목&zwsp;&lt;/title&gt;<br/>
&lt;subtitle&gt;필요한 경우 부제목&zwsp;&lt;/subtitle&gt;<br/>
&lt;author&gt;누가 이 책을 집필하였는가&zwsp;&lt;/author&gt;<br/>
&lt;edition&gt;필요한 경우 판본 정보&zwsp;&lt;/edition&gt;<br/>
&lt;/cover&gt;
</callout>
<p>이 중 <code>title</code> 태그만이 필수 태그이다. 표지의 문구는 글자간 간격이 넓게 인쇄된다. 책 제목은 두배 큰 크기로 인쇄된다.</p>
<p>표지의 색깔은 <code>hue</code> 속성을 사용하여 바꿀 수 있다. 0에서 360 사이의 숫자를 사용할 수 있다.</p>
<chapter>목차 정의문</chapter>
<p><index id="목차 정의문"/>목차 페이지의 내용은 원고를 읽어 자동으로 채워진다. 목차 정의문의 구조는 다음과 같다.</p>
<callout align="left" class="code"><index id="tocpage (태그)"/>&lt;tocpage title="목차 혹은 필요한 다른 제목"&gt;&zwsp;&lt;tableofcontents/&gt;&zwsp;&lt;/tocpage&gt;
</callout>
<p><code>title</code> 속성은 목차 페이지의 장제목을 지정한다. 지정하지 않았으면 “Table of Contents”가 인자된다.</p>
<p><code>&lt;tableofcontents/&gt;</code> 태그는 조판 시스템이 내부적으로 사용하는 태그이다.</p>
<chapter>원고</chapter>
<p><index id="원고"/><index id="태그 목록"/>원고는 책의 진짜 본문이 담긴 부분을 말한다. 본문에는 다음의 태그를 사용할 수 있다.</p>
<ul>
<li><index id="part (태그)"/><code>part</code> — 원고에 새 부(part)를 추가함</li>
<li><index id="chapter (태그)"/><index id="section (태그)"/><code>chapter</code>, <code>section</code> — 원고에 새 장(chapter)·절(section)을 추가함. 목차 페이지에는 다른 이름을 표시하고 싶다면 <code>alt</code> 속성을 사용할 수 있음. 목차 페이지에서 숨기고 싶다면 <code>hide="1"</code> 속성을 추가할 것. 장이 새 페이지에서 시작되게 하려면 <a href="매크로 정의문">매크로 정의문</a>을 볼 것</li>
<li><index id="p (태그)"/><code>p</code> — 새 문단을 삽입함. 본문의 글은 반드시 이 태그 내부에 작성되어야 함. 모든 문단는 16픽셀의 들여쓰기로 조판되나, 다음의 경우 들여쓰기가 적용되지 않음: 부·장·절의 첫 문단, <code>br</code>, <code>newpage</code>, <code>callout</code>, <code>ul</code>, <code>ol</code>, <code>anonbreak</code> 태그 직후의 문단</li>
<li><index id="span (태그)"/><code>span</code> — 문구의 색상이나 스타일을 변경함. 색상은 <code>colour</code> 속성에 작성되어야 함. 6자리 헥스코드, 3자리 헥스코드, CSS Colours Level 4에 정의된 색상명을 사용할 수 있음. 모든 색상은 내부적으로 가장 가까운 3자리 헥스코드로 변경됨에 유의할 것</li>
<li><index id="emph (태그)"/><code>emph</code><code>span</code>의 특수한 경우로, 문구를 <emph>빨간색으로</emph> 인자함</li>
<li><index id="itemname (태그)"/><code>itemname</code><code>span</code>의 특수한 경우로, 게임 내 아이템의 이름을 강조 표시할 때 사용함. 문구는 <itemname>파란색으로</itemname> 인자됨</li>
<li><index id="targetname (태그)"/><code>targetname</code><code>span</code>의 특수한 경우로, 임의의 목표를 강조 표시할 때 사용함. 문구는 <targetname>초록색으로</targetname> 인자됨</li>
<li><index id="code (태그)"/><code>code</code><code>span</code>의 특수한 경우로, 코드를 강조 표시할 때 사용함. 문구는 <code>암적색의 고정폭으로</code> 인자됨</li>
<li><index id="br (태그)"/><code>br</code> — 스스로 닫는 태그. 임의의 줄바꿈을 삽입함</li>
<li><index id="newpage (태그)"/><code>newpage</code> — 스스로 닫는 태그. 임의의 새 페이지를 삽입함</li>
<li><index id="anonbreak (태그)"/><code>anonbreak</code> — 스스로 닫는 태그. 임의의 문단 분할을 적용함. 분할 표시는 한 줄을 비우고 가운데에 긴 줄을 삽입하여 이루어짐. 주로 소설을 조판하는 데에 사용됨</li>
<li><index id="callout (태그)"/><code>callout</code> — 문단 태그로서, 문단을 회색 상자에 넣어 돋보이게 조판함</li>
<li><index id="ul (태그)"/><index id="li (태그)"/><code>ul</code> — 순서 없는 목록을 조판함. 목록의 항목은 <code>li</code> 태그를 사용하여 기술됨</li>
<li><index id="ol (태그)"/><code>ol</code> — 순서 있는 목록을 조판함. 목록의 항목은 <code>li</code> 태그를 사용하여 기술됨</li>
<li><index id="fullpagebox (태그)"/><code>fullpagebox</code> — 문구를 한 페이지를 비우고, 그 페이지의 중앙에 조판함. 반드시 <code>newpage</code> 태그가 직전에 쓰여야 함</li>
<li><index id="btex (태그)"/><code>btex</code> — 스스로 닫는 태그. <btex/> 로고를 삽입함</li>
</ul>
<p>스스로 닫는 태그는 하위 내용을 담을 수 없다. 스스로 닫는 태그는, 예를 들어 tagname이라는 태그가 있으면, 다음과 같이 쓴다: <code>&lt;tagname/&gt;</code>.</p>
<section>장·절 제목 스타일</section>
<p>부와 장·절은 <code>type</code> 속성을 사용하여 번호가 찍히는 스타일을 지정할 수 있다. 지원하는 스타일은 다음과 같다.</p>
<ul>
<li><code>a</code> — 번호로 알파벳을 사용함 (a, b, c, …)</li>
<li><code>A</code> — 번호로 알파벳 대문자를 사용함 (A, B, C, …)</li>
<li><code>i</code> — 번호로 로마 숫자를 사용함 (i, ii, iii, …)</li>
<li><code>I</code> — 번호로 로마 숫자 대문자를 사용함 (I, II, III, …)</li>
<li><code>1</code> — 번호로 아라비아 숫자를 사용함 (1, 2, 3)</li>
</ul>
<p>기본값은, 부는 로마 숫자 대문자, 장·절은 아라비아 숫자를 사용한다. 부의 경우 영어로 “Part I”과 같이 찍히고, 이를 “제1절”로 변경하는 등의 심화된 스타일은 <a href="매크로 정의문">매크로 정의문</a>에서 정의할 수 있다.</p>
<section>문단 스타일</section>
<p><code>p</code><code>callout</code> 태그는 <code>align</code> 속성을 지원한다. 지원하는 스타일은 다음과 같다.</p>
<ul>
<li><code>left</code> — 문단을 좌측정렬함</li>
<li><code>right</code> — 문단을 우측정렬함</li>
<li><code>center</code> — 문단을 중앙정렬함</li>
<li><code>justify</code> — 문단을 양쪽정렬함. 기본값</li>
</ul>
<p><code>p</code>, <code>span</code>, <code>callout</code> 태그는 추가로 <code>class="code"</code> 속성을 지원한다. 이 속성이 적용된 문구는 <span class="code">코드꼴(code font)</span>을 사용하여 인자된다.</p>
<section>하이퍼링크</section>
<p><index id="하이퍼링크"/>하이퍼링크는 <code>index</code><code>a</code> 태그를 사용하여 적용할 수 있다.</p>
<ul>
<li><index id="index (태그)"/><code>index</code> — 링크의 목적지를 정의함. 링크의 이름은 문서 전체에서 유일하여야 하며, <code>id</code> 속성에 작성함</li>
<li><index id="a (태그)"/><code>a</code> — 태그 내부의 문구를 클릭 가능하게 함. 링크의 목적지는 (index 태그의 id) <code>href</code> 속성에 작성함</li>
</ul>
<section>그림</section>
<p><index id="img (태그)"/>외부 이미지는 스스로 닫는 <code>img</code> 태그를 사용해 넣을 수 있다. 그림은 세로로는 현재 줄에서부터, 가로로는 페이지의 중앙에 인쇄된다. 페이지에 남아 있는 줄보다 이미지의 높이가 더 크다면, 이미지는 새로운 페이지에 인쇄된다. <code>img</code> 태그의 구조는 다음과 같다.</p>
<callout align="left" class="code"><!--
-->&lt;img src="http(s)나 file URL" height="8"/&gt;<br/><!--
-->&lt;img fromgame="basegame:gui/small.png" height="4"/&gt;
</callout>
<p><code>height</code> 속성은 이미지의 높이를 <emph>픽셀 단위가 아닌 줄의 개수</emph>로 지정하어야 한다. 이미지의 너비는 자동으로 계산되며, 텍스트의 너비보다 넓다면 오류가 발생한다. 이미지 하단에 문구를 출력하려면 <code>caption</code> 속성을 사용할 수 있다.</p>
<p>지원하는 이미지 포맷: JPEG·PNG·BMP·TGA</p>
<chapter>색인 페이지</chapter>
<p><index id="색인 페이지"/>색인 페이지의 내용은 원고를 읽어 자동으로 채워진다.
문서에 사용된 모든 <code>index</code> 태그가 이 페이지에 인쇄된다. 색인 페이지의 구조는 다음과 같다.</p>
<callout align="left" class="code"><index id="indexpage (태그)"/>&lt;indexpage title="색인 혹은 필요한 다른 제목"&gt;&zwsp;&lt;tableofindices/&gt;&zwsp;&lt;/indexpage&gt;
</callout>
<p><code>title</code> 속성은 색인 페이지의 장제목을 지정한다. 지정하지 않았으면 “Index”가 인자된다.</p>
<p><code>&lt;tableofindices/&gt;</code> 태그는 조판 시스템이 내부적으로 사용하는 태그이다.</p>
<chapter>문서 끝맺기</chapter>
<p><btex/> 문서는 <code>btexdoc</code> 태그로 시작되었으니, 반드시 같은 태그로 끝나야 한다. <code>&lt;/btexdoc&gt;</code>을 써 넣어 문서를 마무리하자.</p>
<chapter>마무리</chapter>
<p><btex/>으로 작성된 최종 원고는 출판사에 도착한 후 인쇄가 시작된다. 원고에 오류가 없다면 주문한 부수대로 책이 인쇄되어 합리적인 영업일 내에 우편으로 배송된다. 즐거운 글쓰기가 되길!</p>
<part type="1">고급 매크로</part>
<chapter>매크로 정의문</chapter>
<p><index id="매크로 정의문"/>여기서는 조판 시스템이 사용하는 태그를 설명하고, 이 태그를 조작하여 조금이나마 미리 정의된 스타일을 변경하는 법을 기술한다.</p>
<p><index id="macrodef (태그)"/>매크로는 <code>cover</code> 앞에 <code>macrodef</code>태그를 두어 정의할 수 있다. 매크로 정의문의 구조는 다음과 같다.</p>
<callout align="left" class="code">&lt;macrodef&gt;<br/><!--
-->  &lt;pair key="매크로 이름" value="매크로 값"/&gt;<br/><!--
-->  &lt;pair key="또다른 매크로" value="또다른 값"/&gt;<br/><!--
-->&lt;/macrodef&gt;</callout>
<section>매크로 키</section>
<p>내부적으로 부와 장 제목은 매크로를 사용하여 인자된다. 매크로의 값을 바꾸면 번호가 인자되는 스타일을 변경할 수 있다. 매크로의 이름과 기본값은 다음과 같다.</p>
<ul>
<li><index id="thepart (매크로)"/><code>thepart</code> — 부 제목 번호. 기본값: <code>Part %1$s</code></li>
<li><index id="parttype (매크로)"/><code>parttype</code><code>part</code> 태그의 기본 스타일. 기본값: <code>I</code></li>
<li><index id="thechapter (매크로)"/><code>thechapter</code> — 장 제목 번호. 기본값: <code>%1$s</code></li>
<li><index id="chaptertype (매크로)"/><code>chaptertype</code><code>chapter</code> 태그의 기본 스타일. 기본값: <code>1</code></li>
<li><index id="chapteronnewpage (매크로)"/><code>chapteronnewpage</code> — 새 페이지에서 장이 시작되게 하기. 활성화하려면 0이 아닌 임의의 값을 넣을 것. 기본값: <code>0</code></li>
<li><index id="resetchapterafterpart (매크로)"/><code>resetchapterafterpart</code> — 부(part) 뒤에 오는 장번호가 1에서 시작되게 하기. 활성화하려면 0이 아닌 임의의 값을 넣을 것. 기본값: <code>0</code></li>
<li><index id="parindent (매크로)"/><code>parindent</code> — 문단의 들여쓰기 크기를 조절함. 기본값: <code>16</code></li>
</ul>
<p>매개변수인 <code>%1$s</code>는 각 제목의 <code>type</code> 속성에 따라 적절한 숫자로 치환된다.</p>
<p>이 매크로는 장제목을 원하는 언어의 스타일로 변경하는 데에 사용될 수 있다. 예를 들면 한국어 환경에서는 다음과 같은 정의가 바람직할 것이다.</p>
<callout align="left" class="code">&lt;macrodef&gt;<br/><!--
-->  &lt;pair key="thepart" value="제%1$s부"/&gt;<br/><!--
-->  &lt;pair key="parttype" value="1"/&gt;<br/><!--
-->  &lt;pair key="thechapter" value="%1$s장"/&gt;<br/><!--
-->&lt;/macrodef&gt;</callout>
<chapter>외부 변수 인자하기</chapter>
<p><index id="v (태그)"/>편지의 보내는 사람과 받는 사람과 같이 인자될 문구를 조판 시스템 외부에서 정의하는 것이 바람직한 경우가 있다. 이러한 문구는 스스로 닫는 <code>v</code> 태그를 사용하여 추가할 수 있다. 이 태그는 또한 게임 내에 정의된 문자열을 가져오는 데에 사용될 수도 있다.</p>
<p>외부 변수를 인자하려면 <code>id</code> 속성을 사용하여야 한다. 게임 내 문자열을 가져오려면 <code>fromgame</code> 속성을 사용하라. 두 속성은 서로 상충되므로 하나의 속성만을 사용하여야 한다.</p>
<section>게임 내 화폐 단위 인자하기</section>
<p><index id="bucks (태그)"/>“총액: <bucks>1234</bucks>”와 같은 문구를 인쇄하려면 <code>bucks</code> 태그 내부에 <code>v</code> 태그를 넣어서 사용할 수 있다. 예시 코드는 다음과 같다.</p>
<callout align="left" class="code">&lt;p&gt;총액: &lt;bucks&gt;&lt;v id="invoice_total_amount"/&gt;&lt;/bucks&gt;&lt;/p&gt;</callout>
<p>외부변수 <code>invoice_total_amount</code><code>너무많음</code>이라는 문자열이 선언되어 있다면, 위 코드는 “총액: <bucks>너무많음</bucks>”을 인쇄할 것이다.</p>
<section>한국어 전용 태그</section>
<p><index id="조사 처리"/><code>v</code> 태그의 조사 처리를 위해서는 아래의 태그를 사용할 수 있다. 조사 처리 태그는 <code>v</code> 태그처럼 변수를 인자하는데, 치환된 단어에 적절한 조사를 같이 붙여 인자한다.</p>
<ul>
<li><index id="veun (태그)"/><index id="vneun (태그)"/><code>veun</code> <code>vneun</code> — 은/는</li>
<li><index id="vi (태그)"/><index id="vga (태그)"/><code>vi</code> <code>vga</code> — 이/가</li>
<li><index id="veul (태그)"/><index id="vreul (태그)"/><code>veul</code> <code>vreul</code> — 을/를</li>
<li><index id="vwa (태그)"/><index id="vgwa (태그)"/><code>vwa</code> <code>vgwa</code> — 와/과</li>
<li><index id="vro (태그)"/><index id="veuro (태그)"/><code>vro</code> <code>veuro</code> — 로/으로</li>
</ul>
<p>태그 쌍 중에서는 아무거나 사용해도 무방하다. 어느 쪽이든 알맞는 조사를 추가할 것이다. 달리 말하면, <code>veun</code><code>vneun</code>은 완전히 동일한 태그이다.</p>
<p>이 태그들은 다음과 같은 상황에 쓰일 수 있다. 아래와 같은 <btex/> 문서가 있다면,</p>
<callout align="left" class="code">[en] Send your &lt;v fromgame="GAME_ITEM_HOLOTAPE"/&gt; that contains the manuscript to the publisher via mail to have your books printed.<br/><!--
-->[koKR] 원고가 담긴 &lt;veul fromgame="GAME_ITEM_HOLOTAPE"/&gt; 출판사로 우편을 통해 보내야 책이 인쇄됩니다.</callout>
<p>변수는 현재 게임 언어에 따라 대입되고, 그 다음 조사처리가 진행된다. 조판이 완료된 문구는 다음과 같다. (파란색은 해당 단어가 태그에 의해 대입되었음을 뜻한다)</p>
<callout>[en] Send your <itemname>Holotape</itemname> that contains the manuscript to the publisher via mail to have your books printed.<br/><!--
-->[koKR] 원고가 담긴 <itemname>홀로테이프를</itemname> 출판사로 우편을 통해 보내야 책이 인쇄됩니다.</callout>
<part>일반인 출입금지</part>
<chapter alt="대기 프로세스">왜 책이 인쇄될 때까지 기다려야 하나요? 인쇄기를 직접 사용할 수는 없나요?</chapter>
<p><btex/> 엔진은 빠른 물건이 아니다. 책을 하나 조판하려면 최소 몇 초가 필요하다. “대기 시스템”은 별도의 스레드 풀에서 (멀티스레딩으로 작동함) 책이 인쇄되도록 하여 게임플레이를 방해하지 않도록 도입되었다. 이것이 없다면 책이 한번 인쇄될 때마다 게임이 ‘응답 없음’ 상태가 될 것이고, 이는 인게임 경험에 매우 부정적으로 작용한다.</p>
<p>인쇄 프로세스가 오류 없이 종료되었다면, 우편 시스템을 통해 플레이어에게 완성된 책을 배송한다. 오류가 있다면 오류 정보를 담은 우편이 대신 배송된다.</p>
<p>상기와 같은 이유로 “인쇄기”는 플레이어에게 직접적으로 제공되지 않고, “출판사”와 우편을 통해 간접적으로 이용하는 형태로 제공된다.</p>
<newpage/>
<fullpagebox>
<p><span colour="#666">이 페이지는 의도적으로 비워 두었습니다</span></p>
</fullpagebox>
</manuscript>
<indexpage title="색인"><tableofindices/></indexpage>
</btexdoc>