
【Asciidoc】書誌情報 ー 再利用してみる ー
以前、「【Asciidoc】書誌情報 ー所謂 Meta 情報ー」で書誌情報について少し解説したけど再利用については余り触れなかったように思う。
「【Asciidoc】EPUBに変換する ー 日本語の「EPUB」を作ってみる ー」で例にしたマニュアルを見てみよう。
:project-name: Asciidoctor EPUB3
:project-handle: asciidoctor-epub3
= {project-name} ドキュメント
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>
// Settings:
:imagesdir: images
:navtitle: Introduction
:experimental:
:lang: ja
:scripts: multilingual
// URIs:
:uri-asciidoctor: https://asciidoctor.org/
:uri-idpf: http://www.idpf.org/
:uri-epub: http://www.idpf.org/epub/31/spec/epub-spec.html
:uri-epubcheck: https://github.com/w3c/epubcheck
・・・(中略)・・・
{project-name} は、AsciiDoc ドキュメントを EPUB3 e-book フォーマットに直接変換するための Asciidoctor 拡張機能セットです。
・・・(後略)・・・
「{project-name}」(プロジェクト名)が色々な所で再利用されている。
「URIs」もかなり再利用されている。
頻繁に利用するものはこの様なカスタム属性として登録しておきたい。特に「URIs」は有効だろう。
もちろん、タイトルや著者名も再利用できる。
構文は
{doctitle}はタイトルです。
{author}は著者です。
{author_1}は二人目の著者です。
{revnumber}はバージョン番号です。
{revdate}はバージョン日付です。
{revremark}はバージョン更新情報です。
この様に暗黙の裡に属性名が定義されているものもある。簡略記法で役目が与えられるものには大抵、属性名が定義されていると思ってよい。
個人的な感覚だとバージョン関連は欧米流なので日本ではかなり使いにくい。
それでは、よく使うであろう例として「奥付」を作ってみる。
青空文庫「吾輩は猫である(夏目漱石)」を例に作成してみる。
= 吾輩は猫である
夏目漱石
:doctype: book
:cjk:
:pdf-theme: default-with-font-fallbacks
:SourceBook: 「夏目漱石全集1」ちくま文庫、筑摩書房
:SourceBookRev: 第1刷:1987(昭和62)年9月29日発行
:ParentSourceBook: 「筑摩全集類聚版 夏目漱石全集 1」筑摩書房
:ParentSourceBookDate: 初版:1971(昭和46)年4月5日
:FirstPublished: 「ホトトギス」
:FirstPublishedRevDate_1: 1905(明治38)年1月、2月、4月、6月、7月、10月
:FirstPublishedRevDate_2: 1906(明治39)年1月、3月、4月、8月
:InputNote: ※誤植を疑った箇所を、底本の親本の表記にそって、あらためました。
:Input: 柴田卓治
:Proofreading: 渡部峰子(一)、おのしげひこ(二、五)、田尻幹二(三)、高橋真也(四、七、八、十、十一)、しず(六)、瀬戸さえ子(九)
:PublishedDate: 1999年9月17日
:RevisedDate: 2018年2月5日
:青空文庫作成ファイル: このファイルは、インターネットの図書館、青空文庫(http://www.aozora.gr.jp/)で作られました。入力、校正、制作にあたったのは、ボランティアの皆さんです。
== 一
(中略)
== あとがき
[colophon]
== 奥付
[horizontal]
書名:: {doctitle}
著者:: {author}
底本:: {SourceBook} +
{SourceBookRev}
底本の親本:: {ParentSourceBook} +
{ParentSourceBookdate}
初出:: {FirstPublished} +
{FirstPublishedRevDate_1} +
{FirstPublishedRevDate_2}
入力:: {Input}
校正:: {Proofreading}
入力校正ノート:: {InputNote}
公開:: {PublishedDate}
修正:: {RevisedDate}
青空文庫作成ファイル:: {青空文庫作成ファイル}
変換すると

実験的に「:青空文庫作成ファイル:」という日本語のカスタム属性を作成した。現状は想定通り機能している。構文は理解しやすくなるがおすすめは出来ない。どのプログラムでも変数名に2バイト文字を利用するとバージョン変更時トラブルのもとになる可能性が高い。
しかし、カスタム属性は利用してみたら理解るのだけれど「奥付」以外余り利用方法を思いつかない。(頻繁に利用する長いURI等があれば別だが・・・)
本文は勢いで書いてしまうので余り文頭で定義したことなど忘れてしまうからだろう。文章を書いてる中でコーディング要素が入ると音声的な思考が止まっていしまうのも其の理由と思われる。一つのテクニックとして1回目の校正時に「sed」等利用して文章の中の定義済み語句を置き換えてしまうのもありだとは思うのですが・・・。
通常は「奥付」等の様にタイプミスや訂正忘れを防ぎたい場所や余り意識が行かない場所で利用したいと思う。
取り敢えず今回はここまで。
…ではまた。
当Noteは下記の「AsciiDoc Language Documentation」の文法に従っています。