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 属性を使ってマークアップすることを強く推奨」となっています。

2017-12-31

The 電話 Simply

ご存知のように,社会人にとってスマホは必須のアイテムになっています。

などと、煽られる今日このごろ。

ご存知でも、社会人でもない、はみ出し者は、いまだにフィーチャーフォン(ガラケー)をメインに使っている。

1年くらい前から、そのガラケーの調子が悪くなってきて、買い換えたいのに適当な端末がない状況に陥っていた。世の中、猫も杓子もスマホ、スマホで、ガラケー購入の選択肢など無きに等しいところに加えて、折り畳み型の端末が嫌いなので、ストレート型にしたいという変態的嗜好が災いして、新しいケータイを買いたくても買えない。

探しあぐねていた(少し期待していたFREETELのSIMロックフリーガラケー第2弾はついに発売されないまま、会社自体が潰れてしまった)ところに、ようやく、理想的にみえる端末が登場。

2017-12-19

Raspbian Stretch でタイムサーバー

Raspbian stretch の新しいイメージファイル (2017-11-29-raspbian-stretch-lite.zip) が出ていたので、これを使って久しぶりに Raspberry Pi でハードウェアクロック(RTC)付きタイムサーバーを作ってみた。備忘録を残しておく。

以前(wheezyで試したとき)とは、いろいろ、やり方が変わっているようだ。stretchのほうが簡単に思える。

RasPiに接続したRTCを認識させるには device tree overlay 機能を使う。おなじみのconfig.txtファイルに次のような設定を追加してRasPiを再起動すれば /dev/rtc0 と /dev/rtc が生えてくる。

$ sudo -e /boot/config.txt
dtoverlay=i2c-rtc,pcf2127

この設定例はリアルタイムクロックICとしてPCF2127を接続した場合を想定している(I2C接続なのでraspi-configでI2Cを有効にしておくのも忘れずに)。 他にどのようなチップに対応しているか調べるには次のようにする。

$ dtc -I dtb -O dts -@ /boot/overlays/i2c-rtc.dtbo

wheezyではNTPクライアント/サーバーに ntpd を使っていたが、最近は、NTPクライアント機能だけでよければ systemd-timesyncd を、サーバー機能も必要なら Chrony を使うのが一般的らしい(ntpdも使える)。

fake-hwclock をアンインストール(あるいは無効化)して chrony をインストールする。

2017-11-01

いまさら Boot Camp

業務連絡です。

このたび、Kindle本『いまさら Boot Camp』を自己出版しました。 Amazon Kindleストアにて販売中です。

拙著『プログラマのための超手抜きKindle本作法』の手法で制作された電子書籍の第二弾です。

この本は、当ブログの各所に散らばっている、古いMacにWindowsをインストールする際の落とし穴を避けるノウハウを集大成し、再検証、加筆、電子書籍化したものです。 Boot Camp を使わない(Boot Camp アシスタントに頼らない)で、Windowsをインストールしたい人にとって役立つヒントがつまっています。

2017-10-13

トラックパッドが見つかりません

手持ちのMacを徐々に macOS High Sierra 10.13 にアップグレードしている今日この頃。 今日は MacBook Pro (15-inch, Late 2011) にHigh Sierraをクリーンインストールしてみた。

すると、早速、怪現象が発生。システム環境設定からトラックパッドを設定しようとすると、なぜか、

トラックパッドが見つかりません

と表示される。