白屋書房Blog

組版・縦書きサイト「白屋書房」のブログです

pixiv&青空文庫向けユーザースクリプト書きました

突然ですが、こんなユーザースクリプトを書きました。

pixiv小説表示制御

青空文庫表示制御

最近はpixivの小説や青空文庫スマホで読むという人が多いでしょう。筆者もその一人です。ですがPCで読む局面が絶無になったわけではありません。
特に筆者は基本的に電子書籍が頭に入らないんですが、なぜかアプリではなくブラウザのそれも横書きなら読めるという謎の特性の持ち主です。青空文庫公式サイトにお世話になりっぱなしです。 その時に気になるのがフォントです。WIndowsにおけるpixivの規定はメイリオですが、筆者はこのフォント、どうもシリアスな小説を読むには向かないんじゃないかと思っています。どうしても笑いたくなる……ギャグやほのぼのならいいんですけどね。
また青空文庫公式サイトではフォント指定がなされていないのでブラウザの規定に習います。筆者は昔ながらのMS Pゴシックにしていて、これはこれで慣れてるから余計な雑音がなくていいんですが、たまにはヒラギノとか游明朝とか綺麗な書体で読みたい時もあります。

というわけでフォントを変更したい。ユーザースタイルシート使えばすぐだけど、動的に変更できないので小説ごとに合わせて変えたいという要望には向きません。
なのでスクリプトでドロップダウンを表示させ、そこから反映させることにしました。おまけに背景色変更機能もつけた。(青空文庫には文字サイズと行間も)
色変更にはJavaScriptライブラリの「Huebee」を使いました。背景色を選ぶと自動的に文字色も変更してくれるという大変ありがたいライブラリです。導入も簡単でした。デザインもキュート!

とりあえずv0.1は完成しましたが、機能は本当に最低限です。目下の問題は前回の選択を覚えていられないこと……localstorage勉強してから機能追加します……

自分の技術力が低いのでこんな簡単なスクリプトでも完成させるまでにはけっこう苦労しました。もしまとまればユーザースクリプトを書く時の注意とか知見とかを記事にしてみたいです。

スマホブラウザでも拡張機能とかユーザースクリプトとか使えるようにならないかなあ……。

改行にまつわる緊急修正

 前回の更新で\xobeylinesの陥穽が分かり、にもかかわらず特に訂正なども行わず我が道を突き進もうとしていたところ、関係各所からそれはいかんと制止を頂きました。パッケージの挙動が初心者にとって予測不能になるのは仕方ないけれど、その予測不能になること自体を説明しないのは不適切だというわけです。

 私もこれはいかんと思ったので、取り急ぎ「note:改行マクロの副作用」という項を設け、この件に関する説明を行うことにしました。
 問題は構成です。今んとこまだ「改行・段落」の項が頭の方にあって、noteはかなり後の方になっちゃったので解説にずいぶん開きがあることになります(前者にももちろん解説は追加しましたが)。チュートリアルがかなり進んじゃってから「改行マクロ危険!」とか言われても……みたいな構成になってるのでそれがどうなのかなと。でも具体的な予測不能性が出てくるのがendnoteパッケージ以降からだし、それにいい感じに読者の知識がついてきたタイミングで解説した方が分かりやすいんじゃないかなとも思うと悩みます。

 とりあえず\xobeylinesは予期せぬ挙動を生むことがありますよ、ということを記憶に刻みつけて頂ければ狙いは成功です。よろしくお願いします。

「注」セクション追加しました

 更新しました!脚注・後注・割注の「」セクションです。これであなたも文豪に!

 冗談はともかくとして、実は今回、これまでも副作用だらけだった\xobeylinesの決定的な陥穽が露呈してしまいました。他のパッケージと組み合わせた際に挙動が、少なくとも筆者や読者層のような素人には予測がつかなくなる、という問題です。
 そもそも改行の振る舞いを(LaTeXではなく)TeXレベルでいじっている(x)obeylinesを、初学者である我々が原稿全編にわたって使おうというのが邪道と言えます。これを防ぐためにはまず最初に「正しい」TeXの使い方を解説しておいてから裏技としてxobeylines編を紹介するというのが妥当なやり方でしょう(と某氏に教わりました)。

 が、筆者は当面の間は今のままの構成で行くことに決めました。そもそもまだ本一冊組めるところまでサイトができてませんし、その前に構成を組み直すとなるといつまで経ってもゴールにたどり着けなそうだ、という弱気な判断からです。
 もちろん空行を挟まずに改行したいというのは私のものすごく強固な夢でして、それをリーズナブルな方法で実現できたらそれに越したことはありません。しかしそれには技術力が遥かに足りなすぎて、やはり目指すとしたら前述の妥当な構成ということになるでしょう。さらにその前段階として、とにかく一刻も早く完成と言えるラインまでたどり着きたい、という願望があるわけです。
 というわけで、正しくない記述だらけではありますが、これを辿っていけば本一冊が組めるよ、というバージョン1.0の完成版を目指して少しでも更新スピードを上げられたらと思います。今しばらくお付き合いください。

Disqus復旧しました!

 サイトのコメント機能であるDisqusの読み込みが復活しました!

 「あがきながら覚えるTeX」は静的サイトジェネレーターである「Hugo」を使って組んでいるんですが、これは独自のコメントシステムを持ちません(あくまで固定サイトやブログっぽい日記が作れるだけで、“静的”サイトジェネレーターという定義上動的なコメント欄は不可能)。

 それを補うために外部のコメントシステムであるDisqusを読み込んで使っているんですが、これが何故か先日の更新からうまく働いてくれませんでした。
 Disqusを呼び出す部分のコードはまったく変更していなかったので、これはHugoエンジン本体のバグか、それともDisqusの方で何か変更があったのか、後者だったらお手上げだ、と思いつつ恐る恐るエンジンを前のバージョンのものにダウングレードしました。
 ついでにこれまで使ってたlocalhostからのDisqus呼び出しを抑制する方法(これ)ではなく、デフォルトのインターナルテンプレートを使う方法(こっち)に切り替えると、あっさりまた読み込めるようになりました。

 多分Hugoのドキュメンテーションが古くなってるのかな?後者の方法でやってもlocalhostからの時はちゃんと自動で読み込みを抑制してくれたし、前者の方法はもう非推奨なのかも。

 というわけでお騒がせしました。今までのコメントもちゃんと移動済みなのでこれからは普通に使えます。ああよかった。

(よかったらどしどしコメントしてね!!)

「傍点・傍線」~「罫囲み」まで/Tips追加

 更新しました。「傍点・傍線」「太字・斜体」「文字サイズ」「罫囲み(枠をつける)」の4セクションと、新コーナー「TeX Tips」です。

 Tipsには、チュートリアル本編の流れには沿わないけど重要なポイントや、使える小技を投稿していこうと思います。
 とりあえず初回は「ちょっと楽なエスケープ」です。楽ではあるんですがカテゴリーコードの知識が出てくるので、本編の初っ端に出てくるエスケープの項には含めずに、こちらに投稿してみました。
 トップページおよびサイドメニューの目次の一番下から行けます。随時追加しますので覗いてみてください。
(本当はもっと目立たせたいんだけどHugoが言うことを聞かないorz)

 本編はとにかく罫囲みが大変でした……というかまだ未完といえば未完です。一応最低限の枠は引けるようになっているはずですが、最大の問題、「minipageはページをまたいで分割できない」が残っています。次ページや下段に1行でもかかるとminipageが丸ごと次のページに移動してしまいます。
 framedとminipageの挙動を合わせたような解決法は……やはり\hrule\vrule\vboxを駆使するしかないのだろうか……

 とまれ今回も皆様の助言に助けられました。多謝!

https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2393