白屋書房Blog

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

引っ越しました

恐ろしいことに最後の投稿から1年が経ってしまいましたが、また更新できそうなのでブログの方にも戻ってきました。
うかうかしてる間にTeX Liveの2017年版が出ちゃったりして愕然としています。

これまでサイトはTumblrで作っていたんですが、いろいろ無理があったのでGitHubの方にお引っ越ししました。
やっぱりソースコードを書いて表示するにはそれに合った適切な環境が必要だと痛感しました。単にMarkdown対応してるだけじゃやっぱりきついです。 そもそもこういう解説的なものを書いていくには、書いた順に記事が並んでいくブログというメディアは本質的に合わない。

https://hakuoku.github.io/agakuTeX/

構成を大幅に見直し、最初に基礎となるこちゃこちゃした文字と記号の制御をやってしまってからルビや文書構造などの大技に移行するようにしました。今のところまだアクセントつきアルファベットのあたりで、つまりはかなり最初の方です。
そもそもTumblrに上げてた情報が検証しなおしたら内容・文章ともにガタガタの間違いだらけで、大した需要もないサイトですが消え入りたくなりましたorz

サイトの構築には静的サイトジェネレーターの「Hugo」を使っています。とにかく速い!多少の知識(と英語力)は要るけど、シンプルでスピーディーでエレガントで大変おすすめです。
どちらかというとブログ的なテンプレートが多くて固定サイト用のテーマが見つからず、結局かなりの部分を自分で書くことになりました。今はつぎはぎクオリティだけど、いつか汎用化して誰でも使えるような固定サイトorドキュメンテーション用テンプレートに仕上げたいという遠大な夢があります。
コマンドラインからじゃなくてGUIでもっと手軽に使えるようになれば、ブログじゃなくて静的サイトが作りたい人の需要を満たせると思うんだけどどうだろう。シェルスクリプトにHTMLベースのガワをかぶせることは割りと簡単にできるみたいなので、そのへんも研究してみたいところです。

亀の歩みですが、少しでもお役に立てれば嬉しいです。

改行問題解決しました!

今まで小説における改行を「見たまま出力」するために、プリアンブルで \obeylines を宣言してたんですが、これだと空行そのもの、原稿中の1行とか2行アキは結局無視されるという問題がありました。
仕方ないから入れたい空行の数だけ \vspace{baselineskip} をソースに書くという手に頼っていましたが、WYSIWYG的には見づらいわセマンティック的には間違ってるわでもうどうしようもなかった。
早くなんとかしたかったものの私の知識が足りなすぎて五里霧中だったのが、先日∃x(x=a)さんがアドバイスを下さり、改行問題はここに見事に解決されました!

具体的には以下のマクロをプリアンブルに入れてやります。もちろん外部のパッケージにしても。

{\catcode`\^^M=\active%
\gdef\xobeylines{\catcode`\^^M\active \def^^M{\par\leavevmode}}%
\global\def^^M{\par\leavevmode}}

んでbegin{document}の直後で、 \xobeylines を宣言するだけ!
これで晴れて本文を、ガチで見たまま改行できるようになりました。


そもそも元の\obeylinesは、以下のように定義されてるそうです。

{\catcode`\^^M=\active % these lines must end with %
\gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
\global\let^^M\par} % this is in case ^^M appears in a \write

^^Mが改行文字を表すので(ASCIIの13番)、それを全部\parに変えちゃうことでオール改行を実現しているようです。

ただこの方法だと、一つの行(=段落)を組み終わって次の行に移るためにvertical modeに遷移した時、「中身が何もない\parだけの行は無視する」というTeX本来の動作が勝ってしまいます。
そこで^^M\par\leavevmodeにしてやることで、空の行でも立ち止まって出力することが可能になった、という寸法らしいです。

TeXレベルの命令を書き換えてしまうのはちょっと怖かったので、新しい命令として定義してみました。命名は適当です。もっとちゃんとしたコマンド名があればそっちの方がいいです。
あと本家obeylinesに揃えてプリアンブルで宣言したかったんだけど、それだと機能しなかったのでdocumentの内側に書くことにしてます。(トンチンカンなこと言ってたらすみません)

これでいわば「空行含め全ての論理行をことごとくパラグラフとして扱う」ことになったので、TeX流の意味論的にはもう完全に間違ってることになりましたが、もともと正しい文法なんぞ目指しちゃいないのでよしとします。
「可能な限り生原稿に寄せた形のTeXソースにする」という(無駄な)原則に一歩近づけました。嬉しい。∃xさん本当にありがとうございました。

サイトの方の記事はこれから編集します。早くレイアウト編まで作らないと……。

参考

TEX in Practice: Volume III: Tokens, Macros - Stephan v. Bechtolsheim - Google ブックス

Introduction

まだコンテンツもろくにない状態ですが、年の瀬だし来年の抱負なども兼ねてまえがき的なものを書いておこうと思います。サイトの記事とかぶってるところもあるんで、読む意味はあんまりないです。

前提:当サイトは文庫本作成エンジン「威沙」を応援しています。

えー時々なんか技術っぽいことを呟いたりもしますが、基本的に筆者はプログラミングができません。一応勉強はしましたが商業的・学術的に使用したことは一切ありません。多分これからもないと思います。
その上で(ド素人という立場の上で)、現時点で最速で縦組みの小説本を作ろうと思ったら、とにかく威沙がおすすめです。「無料における最強の組版ソフトウェア」というキャッチフレーズの通り、ほんとに綺麗に柔軟に組めます。というわけでいくらステマの謗りを受けようとも、筆者は威沙と作者の風野旅人氏、サークル「Sylphid Software Systems」を全力で推していく所存です。

あとはやっぱデファクトスタンダードとしてのWordの地位は揺るがないと思います。プロプライエタリ(企業占有)とはいえMicrosoftが潰れるって事態はちょっと考えづらい。このサイトは徹底的にフリーソフトウェアを推していきますが、それでもLibreOfficeとかあるんだし。
だからWordその他ワープロソフトで頑張って理想に近く出力できたら、少なくともアマチュアレベルでは十分なんだと思います。

さてそういったスタンスに立った上で、以下組版をめぐる展望です。

続きを読む

ブログ作成

日誌としてのブログはTumblrだと使いづらいかと思ったので、はてなブログで作ってみました。ダイアリーの方と迷ったけどスマホ対応優先で。

目下サイトのほうはTeXの「強調」まで。縦書きまとめは作ってみた程度。今年いっぱいは多分まだあばら屋。