%% %% Q and A on yahtml %% %% C-u C-x $ とすると質問項目だけ表示されます。C-x $ で元に戻ります。 %% (新項目: ・font-lockって使えますか?) ■インストール関連 ・LaTeX使わないんだけど野鳥も入れなきゃダメですか? や、別にええっす。 http://www.yatex.org/ のソースアーカイブリンク のなかに、"yahtml" で始まるファイルがあるので次からはそれを持っ て来ればよござんす。 ■カスタマイズ関連 ・font-lockって使えますか? はい。yahtml-1.69から使えます。あらかじめ font-lock をロードしてお きましょう。以前、yahtml が font-lock に対応する前に (put 'yahtml-mode 'font-lock-defaults 'another-html-mode) などを ~/.emacs に書いた人は、その設定を削除して下さい。 ・いつもは EUC にしてたまに JIS コードのファイルを作りたいんだけど。 ~/.emacs で (setq yahtml-kanji-code 3) ;3はEUC しておけば普段のhtmlコードはEUCになります。で局所的に変える方法。 サーバーはApacheですね? ならそのディレクトリに .htaccess という ファイルを用意して、 AddType "text/html; charset=iso-2020-jp" .html という行を書きましょう。するとApache君はそのディレクトリのhtmlファ イルを「iso-2022-jp(いわゆるJIS)だよー」とお客さんにあらかじめ伝 えるようになります。yahtmlもこれに従い、そのディレクトリ以下のファ イルは漢字コードをJISに設定します。 なに、apacheではないとな。なら明示的にhtmlソースのお尻に、 と書いておけばそのファイルだけJISになります。 ただし、Emacs-20 や XEmacs の場合、漢字コードのシンボルの両端の* は付きません。 ・を 認識して漢字コードを設定して欲しいなー。 文書の中にファイルのエンコード法を書いてもそもそもそのMETAなんちゃ らを読めない可能性があるので charset をMETAで指定するのは本当に 期待した通りには機能しません。たとえば、多国語文書を書く必要が出 たとします。すると今のところUTF-7でエンコードするのが一番無難で しょう。NetscapeでもIEでもUTF-7はちゃんと読むことができます。と ういことで、ファイルを開いてブラウザがちゃんとUTF-7と認識するよ うに、HTML文書の先頭に次のように書きました。 このように書いたものが http://www.yatex.org/charset/hello-meta.file にあります。 NetscapeとIEならUTF-7は読めるはずなので、どちらかでアクセスして みましょう。読めますか? 読めませんね。IEの場合はUTF-7の部分を自 動判別するので、一見読めてるように見えますがtext/html とは解釈さ れておらず、結局METAが判別できなかったことが分かります。つまり、 違うエンコード法を利用する場合、 の部分さえもサーバに解 釈不能な状態になり得るので、文書の中にcharset指定を埋め込むのは 賢い方法ではありません。 かわりに、上記で説明した .htaccess を利用しましょう。*.utf7 とい う拡張子を持つファイルは、UTF-7 でエンコードしたHTML文書である、 という定義は、以下のように書けます。 AddType "text/html; charset=utf-7" .utf7 .htaccess ファイルにこのように定義しておけば、無駄ななど綴らなくてもしっかりとサーバがエンコーディングを理 解できます。このようにして書かれた UTF-7 のHTML文書が http://www.yatex.org/charset/hello.utf7 にありますので、同じくNetscapeかIEで読んでみましょう。 AddTypeは~/public_html などに置けばそれ以下の *.utf7 という拡張 子全てに適用できます。一個だけAddTypeを書くだけでいいのです。 HTML屋では、気休め程度にしかならないMETAによるcharset指定を推奨 しない事を選びました。かわりに、もっと確実で簡単な .htaccess に よるエンコーディング指定を推奨するために、そちらをサポートします。 関係ありませんが今(2000年現在)では x-sjisじゃなくて、Shift_JIS と綴ることになってます:-p ・
  • の直後に空白入るとhtmllintに怒られるから空白なしにしたいんだけど… それ、htmllintがやりすぎなんです。タグ直後の空白に対して文句いう のは http://www.cre.canon.co.uk/%7Eneilb/weblint/www5-paper.html によると、空白があることで変なレイアウトになってしまうへぼブラウ ザへの配慮によるものなのでHTML的にはまるで問題ないんです。とかく htmllintを使うとhtmllintに怒られないこと自体が目的となりがちです が、わたしはそれは本末転倒であると思います。 ・の途中で auto-fill されちゃうと悲しい 使っているのがMule2(Emacs-19)以降なら auto-fill-inhibit-regexp という変数でコントロールできます。 yahtml-mode-hook を使って以下 のように設定しましょう。 (add-hook 'yahtml-mode-hook '(lambda () (setq auto-fill-inhibit-regexp "^[ ]*\\(