組版結果の自動分析
白鯨（ Moby-Dick ）初版を再現
Tony Graham
XML Division
Antenna House, Inc.
tgraham@antenna.co.jp
tony@antennahouse.com@tgraham_antennaMoby-Dick; or, The Whale（白鯨）組版結果の自動分析• 何を、そしてなぜ• 白鯨初版• XMLソース• 組版• 組版結果何を、そしてなぜ？
• 自動分析機能のテスト環境– 自動分析は手作業より速い• 白鯨のアメリカ初版：– EPUBとCSSのサンプルに頻繁に使われる– 著作権が切れている– テキストはXMLとして利用可能– スキャンされたオリジナルのページが利用可能

人の手か、それとも機械？
妥当かどうかの判断が電子的に行われる場合、人間の想像力や判断力があれば回避できた不規則性が発生する可能性が高いです。鈍感な読者でもイライラするでしょう。したがって、機械による分析項目は人間による選択肢よりも制限されるべきでしょう。

Methods of Book Design
Hugh Williamson, 1983

Antenna House Formatter による自動分析• 巻末の空白ページ• ハイフンで終わる連続する行• 同じ単語が行頭や行末で連続する行• ブロックの前後の行数• ページウィドウ• 段落ウィドウ
• リバー（川）• 不均衡な見開きページ• 空白

白鯨の用途は…
• 「ラテン文字のレイアウトとページ付けの要件」のサンプル• EPUB のサンプル• Lorem Ipsum の代替• コーディング演習と課題

再現性を求めて• Project Gutenberg– 多くの EPUB ソースがある– 詳細が不十分• Melville Electronic Library– カラー ページ画像だが、TEI XML は公開されていない• Wright American Fictionプロジェクト– TEI XML であり白黒のページ画像

Wright American Fiction• 2000年に発案• Indiana University（と関連する大学）• 750,000ページ以上をスキャン• OCR• 約 3,000冊、1,200冊は完全にエンコード済み• TEI Lite P3 SGML TEI P4 XML  TEI P5 XML

Moby-Dick（白鯨） TEI• 斜体テキストに空の <hi rend="i"/>– Folio のような外来語の単語は除く• スモールキャピタルには大文字を使った• ヘッダーに <fw> がない• ページ末尾がハイフンで終わるページが複数• 句読点が不正確。£ ではなく ¥ が使用された

Pastiche n.（パスティーシュ 名詞. )他の作品、芸術家、または時代のスタイルを模倣した芸術作品。
Pastiche v. （パスティーシュ 動詞）
芸術家または作品を模倣する。

どのくらい模倣できたか？
• 異なるフォントとフォントサイズ• 異なる空白の規則• 一行のオーファンどのくらい模倣できたか？
• ページ末尾のハイフン• ページが足りない段階的に近似• 初稿：大まかな近似• 変更を加えて確認する– 満足のいくまで繰り返す– いくつかは差し戻し– 設計でカバーできない文脈もある背景としてのページ画像
ページ画像をまっすぐにする

背景として設定する<fo:simple-page-mastermaster-name="PageMaster"
page-height="7.375in"
page-width="4.875in"background-image="page-images/MD_Amer_0038.jpg"
axf:background-size="5.21in"background-position="-0.12in -0.15in"
axf:bleed="0.5in"
axf:crop-offset="0.5in">前付• タイトル
• 著作権
• 献辞
• 目次
• フライタイ
トル
• 語源
• 抜粋

タイトルとフライタイトル<docTitle><titlePart>MOBY-DICK;</titlePart><titlePart type="sub">OR, THE
WHALE.</titlePart></docTitle><div type="fly_title"><head>MOBY-DICK; OR, THE WHALE.</head></div>• マークアップを無視する• xsl:analyze-string を使用して FO を生成する目次<div type="contents“><pb n="v (Table of Contents) " xml:id="VAC7237-0003"/><head>CONTENTS.</head><list><item>I.—Loomings. <ref target="VAC7237-0013"
rend="right">1</ref></item><item>II.—The Carpet Bag. <ref target="VAC7237-0017"
rend="right">7</ref></item>• <pb> への参照が一部不正確• 相互参照が可能な目次

引用

<cit>
<q>
<p>"Very like a whale."</p></q><bibl><title>Hamlet</title>.</bibl></cit>

<p>を使用して<bibl>の子を処理<xsl:template match="q/p"><fo:block><xsl:apply-templates /><xsl:if test="position() = last() andexists(../following-sibling::*[1][self::bibl])"><fo:leader leader-pattern="space"/><fo:leader leader-pattern="space" leader-length.optimum="100%"/><fo:inline-container padding-left="2em" padding-right="0.125in"max-width="80%" text-indent="0"><fo:block text-align="right"><xsl:apply-templates
select="../following-sibling::*[1]/node()" /></fo:block></fo:inline-container><xsl:template</xsl:if>match="bibl[exists(preceding-sibling::*[1][self::q[p]])]"</fo:block>priority="5" /></xsl:template>本文• 135 の章• 画像がひとつ• 碑銘• 曲• スピーチと舞台演出

章区切り

章区切りを自動生成<xsl:templatematch="div[@type = 'chapter'][exists(head[@type = 'sub'] |fw[@type = 'head'])]"><xsl:if
test="exists(preceding-sibling::div[@type = current()/@type])"><fo:block axf:suppress-if-first-on-page="true"
space-after="0.2in"space-after.precedence="force"><fo:external-graphic src="separator.svg" /></fo:block></xsl:if><fo:blockid="{@type}-{count(preceding::div[@type = current()/@type]) + 1}">

<fo:blockid="{@type}-{count(preceding::div[@type = current()/@type]) + 1}">
<fo:block-container
axf:baseline-grid="none"
axf:baseline-block-snap="none"
keep-together.within-page="always"
keep-with-next.within-page="always"
space-before="{if (exists(preceding::div[1][@type = 'chapter']))then '0.5in'
else '0.72in'}"space-before.conditionality="retain"><xsl:apply-templates select="head" /></fo:block-container><xsl:apply-templates select="* except head" /></fo:block></xsl:template>クジラサイズの脚注

同じページに脚注が重複• XML は脚注を繰り返す• XSL 1.1では統合されない• axf:suppress-duplicatefootnote

行グリッド• 「裏写り」により可読性が低下• 行の前後を揃える• 不揃いな行やタイトルなどの後に再開する

axf:baseline-grid• 共通グリッドを設定• ブロックに独自のグリッドを設定することも、全く設定しないこともできる共通または特定のグリッド
fo:page-sequence<xsl:template match="body"><fo:page-sequencemaster-reference="PageMaster"initial-page-number="1"
axf:baseline-grid="root"><xsl:call-template
name="static-content" /><fo:flow
flow-name="xsl-region-body“
hyphenate="true"
text-align="justify"><xsl:apply-templates /></fo:flow></fo:page-sequence></xsl:template>fo:block<xsl:template match="body//q"><fo:blocktext-align="center"text-indent="0"
space-before="0.25lh"
font-size="7pt"line-height="9pt"
axf:baseline-block-snap="before margin-box"
axf:baseline-grid="new"><xsl:apply-templates /></fo:block></xsl:template>引用の扱い<p>"Do you is all sharks, and by natur wery woracious, yet I
zay to you, fellow-critters, dat dat woraciousness—'top
dat dam slappin' ob de tail! How you tink to hear, 'spose you
keep up such a dam slappin' and bitin' dare?"</p>• 一般的でない表現は一般的な表現に合わせる

連続するemダッシュ• 複数の emダッシュ• フォントにスペースが含まれている• 単一の文字に置き換え<xsl:variable
name="text"
select="replace($text, '&mdash;&mdash;&mdash;', '&#x2E3B;')"
as="xs:string" /><xsl:variable
name="text"
select="replace($text, '&mdash;&mdash;', '&#x2E3A;')"
as="xs:string" />ヘッダ<div type="chapter"><head>CHAPTER XXIX.</head><head type="sub">ENTER AHAB; TO HIM, STUBB.</head><fw type="head" place="top-centre">ENTER AHAB.</fw>• <fw> が存在する場合は、その要素を選択する<fo:marker marker-class-name="Chapter-Title"><xsl:apply-templates
select="(fw[@type = 'head'], head)[1]/node()"mode="marker" /></fo:marker>

Forme work
• <fw> は “forme work”のこと• forme: 印刷用に取得した活字本体“Compositor”, Stephen Hampshire (CC BY 2.0)

ヘッダ
• ヘッダは中央に配置• 例外もある• 長いヘッダをページ番号から遠ざけるには
axf:overflow-align="end"Moby-Dick; or, The Whale(白鯨）まとめ• まだ開発中である• Moby-Dick stylesheet
https://github.com/AntennaHouse/moby-dick• Moby-Dick TEI XML
https://github.com/AntennaHouse/moby-dick-tei• 組版結果の自動分析機能は優れものhttps://www.antenna.co.jp/AHF/help/en/ahfanalyzer.html

ご質問はありますか？

Tony Graham
XML Division
Antenna House, Inc.
tgraham@antenna.co.jp
tony@antennahouse.com@tgraham_antenna

参考文献• Moby-Dick stylesheet
https://github.com/AntennaHouse/moby-dick• Moby-Dick TEI XML
https://github.com/AntennaHouse/moby-dick-tei• Antenna House Formatter
https://www.antenna.co.jp/AHF/• Antenna House Formatter Automated Analysis
https://www.antenna.co.jp/AHF/help/ja/ahf-analyzer.html

Resources• IU Digital Library Program. Moby-Dick, or, The Whale. Melville,
Herman, (1819–1891).
http://webapp1.dlib.indiana.edu/TEIgeneral/view?docId=wright/VAC7237&brand=wright• IU Digital Library Program. Moby Dick, or, The Whale.
http://dogwood.dlib.indiana.edu:8080/xubmit/rest/repository/wright/VAC7237.xml• IU Digital Library Program. Wright American Fiction. Indiana
University.
http://webapp1.dlib.indiana.edu/TEIgeneral/welcome.do?brand=wrightResources• “Compositor”, Stephen Hampshirehttps://flickr.com/photos/stephenhampshire/3337704597• CC BY 2.0
https://creativecommons.org/licenses/by/2.0/