2018-02-25

shift+spaceが半角スペースにならない

macOS High Sierra 10.13にアップグレード後、しばらくたって自分の入力した日本語文書の中に、空白の幅がおかしくなっている部分をたびたび目にするようになった。

半角スペースを入れたつもりが、全角スペースになっているのだ。 shift + spaceキーを押したつもりがシフトするのを忘れていたんじゃろう。 歳をとるとタイプミスが増えて困るのぉ。ヨボヨボ。

と、思っていたのだが、どうもそうではない。

しばらく観察していると気が付いた。 High Sierraの日本語入力における shift + space のコンビネーションでは、どうやら、カーソル直前の文字が全角なら半角スペースが、カーソル直前の文字が半角なら全角スペースが入力されるらしい。

空白記号を表示できるテキストエディターで、shift + spaceキーを連打した場合と、全角文字と半角文字の間にshift + spaceで空白を入力した場合にどうなるか試してみると、

2018-02-01

KDP HTML原稿の脚注

この記事は拙著『プログラマのための超手抜きKindle本作法』の補足情報です。

本書で推進するKDP向け超手抜きHTML原稿の、脚注のマークアップについて、気がついた問題点と、その後の環境変化について読者の皆さんにお知らせします。

『プログラマのための超手抜きKindle本作法』で紹介したPandocによるHTML出力では、脚注(p要素)の内容の末尾に参照元へ戻るリンク(a要素)が配置されます。

<p>脚注の内容テキスト<a href="参照元へのリンク">↩</a></p>

これに対して『Amazon Kindle パブリッシング・ガイドライン』の脚注サンプルコードでは次のようにa要素がp要素の内容の先頭に配置されています。

<p><a href="参照元へのリンク">↩</a>脚注の内容テキスト</p>

PandocのHTML出力そのままでも、Kindleアプリで閲覧するぶんには問題ありません。

ところが、Kindle端末において脚注のポップアップを正常に機能させるためには、Amazonのサンプルコード通りに記述されていなくてはならないらしいのです(a要素の位置がポイント)。

a要素がテキストの後ろにあると、ポップアップで、該当項目の他に余分な脚注も表示されてしまいます。 コンバーターではエラーも警告も出ないし、そういうもの(仕様)なのだろうと思い込んでしまいました。執筆時に参照した『Amazon Kindle パブリッシング・ガイドライン バージョン 2017.3』の、脚注のガイドラインには「双方向ハイパーリンクを設定する必要があります」としか書かれていなかったので、そんな罠があるとは思いもよらず。

さらに執筆時点とは、Pandocデフォルト設定でのマークアップ形式が変わっています。 本書出版時点の検証では、脚注のHTML出力は、

<div class="footnotes"> 〜

だったのですが、現在は、

<section class="footnotes"> 〜

となっています。このままだと本書の解説にある脚注部分のCSSが反映されません。

pandocコマンドの呼び出しにオプション -t html4 を付けることで本書出版時点と同様の出力が得られます(CSS側のセレクタを書き換えて対応する手もあります)。

また、『プログラマのための超手抜きKindle本作法』の原稿を書き上げた後、『Amazon Kindle パブリッシング・ガイドライン』の改定で、「HTML5 aside 要素と epub:type 属性を使ってマークアップすることを強く推奨」となっています。