QMAIL3にはフォントグループという機能があって、メッセージを表示するときにメッセージに応じてフォントを切り替えることができます。例えば、Content-Typeがus-asciiやiso-8859-xだったら英語フォントに、それ以外だったら日本語フォントに、というようなことができます。fonts.xmlを直接書かなくてはいけないので、ほとんど使っている人はいない気がしますけど…ちなみに、詳細は、フォントに書かれています。
さて、普段はプロポーショナルフォントでメールを読んでいるのですが、時々コードが中にある場合などに固定幅にしたいことがあります。そこで、フォントグループを切り替えるためのViewFontGroupアクションを追加して簡単に切り替えられるようにしてみました。
例えば、以下のようなfonts.xmlを用意します。
<?xml version="1.0" encoding="utf-8"?>
<fonts>
<group name="Proportional">
<fontSet match="
@Progn(@Set('charset', @BodyCharset()),
@Or(@BeginWith($charset, 'iso-8859-'),
@Equal($charset, 'us-ascii')))
" lineSpacing="2">
<font face="Lucida Sans Unicode" size="12"/>
</fontSet>
<fontSet lineSpacing="0">
<font face="メイリオ" size="11.3"/>
</fontSet>
</group>
<group name="Fixed">
<fontSet match="
@Progn(@Set('charset', @BodyCharset()),
@Or(@BeginWith($charset, 'iso-8859-'),
@Equal($charset, 'us-ascii')))
" lineSpacing="2">
<font face="Lucida Console" size="12"/>
</fontSet>
<fontSet lineSpacing="0">
<font face="MS ゴシック" size="12"/>
</fontSet>
</group>
</fonts>
ProportionalとFixedという名前の二つのフォントグループを作成し、それぞれラテン系で使うフォントと日本語で使うフォントを指定しています。
そして、menus.xmlに以下のようなエントリを追加します。
<popupmenu text="フォントグループ(&G)"> <menuitem text="なし(&N)" action="ViewFontGroup"/> <separator/> <menuitem dynamic="ViewFontGroup"/> </popupmenu>
追加する場所はどこでも良いですが、[表示]メニューの下あたりに入れると良いでしょう。すると、メニューのその場所に作成したフォントグループの名前がリストされますので、指定したいフォントグループを選べば切り替えることができます。[なし]を選ぶとフォントグループの指定が解除され、オプションで指定したフォントが有効になります。