Author Archives: AKIYAMA

2017-09-29 ,

日本その日その日

最近「日本その日その日」というのを読んでいます。長いしなんだか読みづらいのでまだまだ途中までしか読んでいないのですが。

日本その日その日(JAPAN DAY BY DAY)/エドワード・シルヴェスター・モース(Edward Sylvester Morse),石川欣一訳

書かれていることは、明治初頭にアメリカからやってきた動物学者から見た当時の日本です。当時の人々の暮らし方、文化、風習などが見られます。

私は戦国武将なんかに代表されるような歴史にはあまり興味が湧かないのですが、昔の普通の人々がどう暮らしていたのかというのには少し興味があります。 現代に住んでいる我々はとても豊かで便利なくらしをしていると思うんですよ。 でもその便利さを司る物はここ数十年で急速に発展したものが多く、それが無かった時代にはどうしていたのか私には分からないわけです。

郷土資料館に行くと昔の人々のくらしの一部を垣間見ることが出来て面白いことがあります。 例えば、近所のこの辺りは将軍様の鷹狩りの場所に指定されていて住民たちは次のようなことが禁止されていた……。 なんて書かれていると、「ああ、身分制度の無い平等な世の中に生まれて良かったな~」と思うわけです。 (機械だけでなく制度などもここ数十年で大きく発展したものに含まれますね)

そういえば去年末に立川シネマシティで「この世界の片隅に」というアニメ映画を見に行きました。 私が好きそうな日常物(日々の暮らしの中にあるちょっとした個人的な喜びや悲しみを扱った作品)でとてもよい作品でしたが、そこで目に付いたのも昔の人々のくらしでした。 舞台は80~70年くらい前の広島県ですが、真っ先に目に付くのは服装ですよね。 ご婦人や子供が着物を着てる!! 私など生まれてこの方まともに和服を着たことがないんじゃないでしょうか(七五三? 温泉旅館の簡易浴衣?)。 でも当時はそれが普段着だったんですよね。 思えば母方の曾祖母はいつも着物を着ていた気がします。 いつから日本人は着物を着なくなったんですかね。 明治維新以降、男性の比較的近代的な職業から洋装化が進み、最終的に終戦後一気に洋装化が進んだようですが。 井戸で水をくんでかまどで料理するんですよ。全自動洗濯機も掃除機もないんですよ。どれだけ便利になったのかと。 一方で引き継がれているもの、形を少し変えて残っている物もありますが。

私は昔の日本が(全体的に見て)良かったとか戻りたいとか全く思いませんし、もっともっと発展させようぜと思いますが、それでも失った物はあるよなぁとも思います。

そんな今よりちょっと昔を知ることが出来る作品。

ちなみに、この本を見つけたのは比島投降記 ある新聞記者の見た敗戦/石川欣一を読んで同じ作者の本を探してのことでした。

2017-09-26 ,

ごみ出しのプロセス

ごみ箱の価値はごみを入れられるところにあるのであって、ごみを入れられないごみ箱に価値なんかないんだよ。

これを捨てたいな、と思ったときにごみ箱が一杯だとついつい机の上に放置しがち。後でごちゃごちゃになった机から物を分別して捨てるのは面倒くさい。手に持っていて捨てたいなと思ったときにごみ箱に入れられるようになっていないといけない。

なので、ごみを入れづらくなりそうだなと感じたらすぐに袋を部屋の外へ移して新しい袋へ交換する。詰めればまだ入りそうだなんて思ってはいけない。それは後でも出来る。適切に分類されたごみ袋なら後から一つにまとめるのは簡単だ。ごみの日までにその辺りに余っているごみを詰めて閉じておけばよい。

仕分け→袋の交換→まとめて閉じて出せるようにする→出す

各手順は自然な流れの中になければならない。それぞれの手順にきっかけ(条件、動機、必要性、欲求)と作業を阻害しない工夫が必要だ。

2017-09-26

Emacs 25.2以降でASCIIと日本語のフォントを別々に設定する(一部の記号のフォントが変更できない場合)

最近Emacs 25.3へ変えたら一部の記号(○や※等)が正しく表示されなくなったのですが、結論から言うと use-default-font-for-symbols を使えということでした。

以前次のような設定で解決したと思ったのですが、最近Emacs 25.3へ変えたら一部の記号だけASCII用のフォントで表示されてしまいました。

(progn
  (set-face-attribute 'default nil :family "Inconsolata" :height 120)
  (set-fontset-font nil 'cp932 (font-spec :family "MS Gothic")))

emacs-25ブランチへの最近の変更を見てみましたがそれらしい変更点は見つけられず。元々以前の時も何が原因なのか分からずじまいだったので、たまたまうまく行っていただけだったのかもしれません。

不思議なのは一部の記号(○や※)がASCIIのみに対するフォント設定に影響されてしまうことです。上の設定をした後で各文字でどのフォントが選ばれるか試してみました。

(face-font 'default nil ?○);;=>"-outline-Inconsolata-normal-normal-normal-mono-16-*-*-*-p-*-iso8859-1"
(face-font 'default nil ?×);;=>"-outline-MS ゴシック-normal-normal-normal-mono-16-*-*-*-c-*-iso8859-1"
(face-font 'default nil ?あ);;=>"-outline-MS ゴシック-normal-normal-normal-mono-16-*-*-*-c-*-iso8859-1"

「○△□☆…∵→」あたりの記号でASCII用のフォントが使われてしまいます。describe-charで各文字を確認してみましたが、おかしくなるものに共通するのは「script: Symbol」であることくらいでしょうか。

「○」のフォントを次のようにして強制的に設定してみました。

(set-fontset-font "fontset-default" ?○ (font-spec :family "MS Gothic") nil 'prepend)

describe-fontsetで確認するとちゃんと#x25cbのフォントはMS Gothicになっています。でもなぜかMS Gothicが選ばれません。

仕方ないのでソースコードを追うことに。

  1. face-font 関数はxfaces.cにある。 FACE_FOR_CHAR がcharacterに応じてfaceを割り出している部分っぽい。
  2. FACE_FOR_CHAR はdispextern.hにあって HAVE_WINDOW_SYSTEM ならそのまま face_for_char 関数を呼び出す。
  3. face_for_char 関数はfontset.cにある。んん? 冒頭に use_default_font_for_symbols なんてものがある。同ファイルの上の方で use-default-font-for-symbols という変数を定義している。

use-default-font-for-symbols の説明を読む。

use-default-font-for-symbols is a variable defined in ‘C source code’.

Its value is t

Documentation:

If non-nil, use the default face’s font for symbols and punctuation.

By default, Emacs will try to use the default face’s font for displaying symbol and punctuation characters, disregarding the fontsets, if the default font can display the character. Set this to nil to make Emacs honor the fontsets instead.

「non-nilのとき記号や区切り文字にfaceのデフォルトフォントを使用します」……だって!?

試しに (setq use-default-font-for-symbols nil) にしたら全てが解決しました。なんてこった……。

というわけで最終的に次のようにしたらうまくいきました。

;; デフォルトはASCII用のフォントでなければダメっぽい。
(set-face-attribute 'default nil :family "Inconsolata" :height 120)
;; ASCII以外のUnicodeコードポイント全部を一括で設定する。他国語を使用する人は細かく指定した方が良いかも。
(set-fontset-font nil '(#x80 . #x10ffff) (font-spec :family "MS Gothic"))
;; 記号をデフォルトのフォントにしない。(for Emacs 25.2)
(setq use-default-font-for-symbols nil)

なんでこんなことになってるんでしょうね。一貫性があったfontsetの挙動に対して、一部の文字種を特別扱いする筋の悪いやり方に見えますが。

Emacs25でSymbolをデフォルトフォントで表示するように変更されたみたいなのですが、Emacs 25.2になって従来(Emacs24)と同じ挙動が出来るように use-default-font-for-symbols が追加されたみたいです。

Improve font selection for punctuation and other symbols · emacs-mirror/emacs@e070728
Emacs25でフォントの選択が 改良 されたコミット。
Use another font for some characters
set-fontset-fontが効かなくて困るよという話。
bug#24644: 26.0.50; Emacs 25: set-fontset-font does not take effect with
set-fontset-fontが効かなくて困るよという話。
Allow selection of font for symbols as in Emacs 24.x · emacs-mirror/emacs@4ff4b66
use-default-font-for-symbolsを追加したコミット。
「GNU Emacs 25.2」がリリース | OSDN Magazine
Emacs 25.2の変更点として use-default-font-for-symbols のことに触れている。

大人しく プログラミングのストレス軽減!日本語が使えるコーディングに最適なフォント7選 みたいなプログラム用フォントと日本語フォントを合成したフォントを使った方が良いのかもしれません。

(2021-07-29追記:自分でFontForgeで合成しました)