2012/12/12

古いハードディスクの不調とゼロフィル

ハードディスクが壊れた様子だったので Ubuntu 12.04 の LiveUSB を作りパソコンを起動して、そこからスマート情報を確認すると、次のようになっていました。



このディスクの場合は、15項目ありました。

SMART情報の読み方はよく分からないのですが、正規化値(比較用に加工した値のようです)を見ると良くない(と思われる)ものが4点ありました。
  1. 001:Read Error Rate:57
  2. 007:Seek Error Rate:76
  3. 009:Power-On Hours:70(3.0年)
  4. 195:Hardware ECC Recovered:57
また、「197:Current Pending Sector Count」の値(生値:加工前のデータ)は「39」セクタとなっていて、全体が「赤字」で強調されていました。評価は「警告」となっていますので、「この値が問題なんだろな」ということが私にもわかります。

そして、あまり目立たないんですが、「198:Uncorrectable Sector Count」の値も「39」セクタとなっています。説明には「セクタの読み書きの際に発生した回復不可能なエラーの総数。この値が上昇した場合、ディスクの表面や機械的な部分、もしくはその両方に不具合が発生していることを表しています。」とあります。

「回復不可能なエラー」とあったんですが、次の方法で回復出来ました。

$ sudo dd if=/dev/zero of=/dev/sda bs=4096

「回復不可能なエラー」の主語は、「ハードディスクのコントローラーが」ということのようです。ddコマンドを使ったディスク全体(と言ってもユーザに解放された領域に限るわけですが・・・)をゼロで埋める作業(ゼロフィルというらしいです)で回復したので「不可能」とは限定的な意味だったようです。


「198:Uncorrectable Sector Count」、「197:Current Pending Sector Count」、それぞれの値は「0」となりました。「005:Reallocated Sector Count」の値は「0」のままなので、代替処理されずに回復することができたようです。

セルフテストも失敗することはなくなりました。

この後、OSのインストールを行い、数日経過しましたが、不都合なく使えています。

振り返ると、今回の不具合はディスク表面の問題だったようです。割と古いディスク(7年もの)なので、経年劣化で Seek Error や Read Error の評価が低めなんだと思います。ただ、このディスクのSMART情報を確認したのは今回が初めてだったので、初期状態も経過も不明です。

今回のケースでは、SMART情報が役立ちました。私は有益な情報だと思いましたけど、普段から確認する習慣があれば状況を把握しやすかったのではないか、という反省もあります。

無駄に終わった作業:

パソコンが起動しないと結構あわててしまうようです。

LiveCD で起動できることを確認できたので、ハードディスクに問題があることはすぐに分かったのですが、いきなりOSの再インストールをはじめてしまいました。

古いパソコンなので、インストール中にエラーメッセージが表示されたことから CD-ROM Drive にも不具合があるかもしれないと思い、別のパソコンで LiveUSB を作ってインストールを何度か繰り返しもしました。

fsckコマンドで、「ファイルシステムの検査と修復」も試しましたけど、不良セクタの数字が変わるだけで状況は変わりませんでした。

そして、ゼロフィルで復旧出来たわけですが、ここでも試行錯誤がありました。

最初に、

$ sudo dd if=/dev/zero of=/dev/sda

としてddコマンドを実行したのですが、「書き込めません」とメッセージがでて途中で停止します。

何度が繰り返しましたが、初回を除き毎回同じセクタ位置で停止します。

ところが、

$ sudo dd if=/dev/zero of=/dev/sda bs=4096

とオプションでブロックサイズを変更したところ、1度でパスしました。

最初のddコマンドで不良セクタが1つ回復した感触があったので、いろいろと試す気持ちになったのですが、512バイトを4Kバイトに変えただけですんなりとパスできたことが不思議でしかたありません。

この後、ブロックサイズを512バイトに戻してゼロフィルを試してみると、今度はパスしました。すっかり不良セクタは回復しているようでした。

オプションの変更が効果的だったのか、たまたまなのか、私にはわからないですが、このディスクの不調には「ゼロフィルが効果的」だったことはわかりました。

SMART情報を正しく読み取れれば、余計なことをせずに復旧できたのではないかと思います。

2012/11/22

コンパクトなラテンフォント:Courier 10 Pitch

Unicode に登録されているラテン文字のグリフ一覧をまとめた時に「字形の多さに驚いた」のですが、常に全部の字形が必要ということはないと思います。

漢字の字形はラテン文字と比較すると桁違いに多いですが、日本で常用する漢字は全体の一割にも満たないはずです。同様にラテン文字でも常用されるものは限られるのではないか、と疑問を持ちました。

Courier 10 Pitch というラテンフォントが Ubuntu 10.04 に搭載されていました。

登録されているグリフは次の通りです。

記号類を含めても227グリフしかありませんけど、一定水準の需要は満たしているようです。

wikipedia の「ISO 8859-1」の解説(カバー範囲)には、
  • オランダ語(IJ, ijが足りないがこれらは電子形式では常にIJやijとして表現されるべきである)
  • フランス語(Œ, œおよびきわめてまれなŸが足りない; これらは一般に通常は必要なリガチャなしで'OE'や'oeに置き換えられ、トレマなしで'Y'に置き換えられる)
  • フィンランド語(外来語で使われるŠ, š, Ž, žが足りない)
という指摘がありました。

「基本ラテン文字」と「ラテン1補助」の範囲には使用頻度の高いグリフが(8bitの制限の中で)集約されているけれど、少し足りないものがある、という指摘のようです。

その「足りない部分」を補っているので「実用的なラテン文字フォント」として利用されているんでしょう。ただし、ギリシャ文字やキリル文字をセットにしたフォントに比べると不十分なので、用途は制限されるようです。

Ubuntu 10.04 搭載フォントとしては、一般的なフォントとは異なるフォルダに登録されていました。

パソコンなどのリソースを浪費したくない場面で役立つよう、敢えて256グリフ以下にしてシステム専用フォルダに登録していると思いましたけど、どうなんでしょう。

2012/10/31

Ubuntu 10.04 ラテン文字フォントのグリフ一覧

ラテン語(イタリア発祥)は死語に近い状態なのに、ラテン文字はドイツ語やフランス語、英語など多数の言語を記述するために広く利用されているようです。元は対の言語と文字だったと思いますが、この違いはなんなんでしょう。文字は言語の媒体に過ぎないということの証明でしょうか。

さて、ユニコードに収録されているラテン文字のグリフ一覧です。Ubuntu 10.04 搭載フォントにあるグリフだけ表示できるという制限がありますが、字形を確認するために作りました。表示されたグリフは搭載フォントからの寄せ集めですが、表示順序はユニコードラージフォントの DeJave Sans が最優先なので、大部分はその収録グリフだろうと思われます。(表示順序は FontConfig システムで指定されています)

↓「NUL(U+0000)」から始まる制御文字にグリフはありませんが、略語のグリフ(U+2400から)が Arial Unicode フォント(Ubuntu 非搭載)に収録されていたので参考のため位置を変えて表示しました。小さくて見づらいですが、横幅を保てる点で便利です。(U+0080以降の略語グリフは見当たりませんでした。)

グリフの範囲(七つ)は、使用頻度の高い順に並んでいるようです。
範囲 使用頻度 バージョン Note
基本ラテン文字 必須(機器の制御・OSの設定など) Unicode 1.0 ASCII互換(7bit長)
ラテン1補助 非常に高い Unicode 1.0 制御文字含む
ラテン文字拡張A 高い(大抵の欧文を記述できる) Unicode 1.0 - 1.1
ラテン文字拡張B ↓低い Unicode 1.0 - 3.0 カナの「ヱ」レベル?
ラテン文字拡張追加 Unicode 1.1 - 5.1
ラテン文字拡張C Unicode 5.0 - 5.1
ラテン文字拡張D Unicode 5.1 - 6.1 未使用領域あり
ASCII互換の「基本ラテン文字」と「ラテン1補助」の範囲は、「制御文字(字形なし)」「記号」などを含んでいます。制御文字はコンピュータなどの操作に欠かせないですし、アラビア数字も世界中で使われていると思います。記号も然り。よって、ラテン文字以外のフォントでも収録される機会が多いのだと思いました。

「ラテン文字拡張B(〜U+024F)」までのグリフは連続で収録されていますけど、これは同時期にユニコードに割り当てられたためのようです。携帯電話の「人口カバー率」のような考え方では、「ラテン文字拡張A(〜U+017F)」までで大抵の需要は満たせるようでしたので、「ラテン文字拡張B」以降はあまり使われることのないグリフとみてよさそうでした。これを100%にするために、時間を掛けて更に拡張しているようです。(ユ:「収集家として当たり前のことをやっているだけです」)

「ラテン文字拡張D」の範囲には「空白」が目立ちます。コード化されていないグリフは登録できないので時期的な理由が大きいですが、フォントに収録する段階でグリフの取捨選択は製作者の判断で「不要」と判断されたものも空白なんだと思います。それなりのフォントを追加すれば全部の字形を確認できるかもしれませんけど、私の場合はまったく必要ないのでこのままで問題なしです。

ユニコードは「世界規模の文字集合」です。古代文字や利用されていない文字、麻雀牌などの図形や特殊な記号までも収録していました。博物館的なので、字形の全てを確認してみたい気持ちを少し持ったんですが、Ubuntu のフォントを増やすほどに面倒になる部分のことを思い出したので「収集は止めとこう」と思います。

2012/09/30

Ubuntu 10.04 搭載フォントリスト

Ubuntu 10.04 に搭載されているフォントを整理したいのですが、私には要不要の区別ができません。それぞれのフォントの内容を知らないので当然なのですが、区別できるようリストにして整理したいと思います。

Fontconfig TM システム:

搭載フォントリストを得るために fc-list コマンドを実行することから始めました。このコマンドは Fontconfig システムの一部なんだそうです。Ubuntu 10.04 では /etc/fonts フォルダに設定ファイルが格納されていて、その中の fonts.conf に管理対象のフォント用フォルダが記述されています。

詳しく知るには英語の解説を読むことから始める必要がありますけど、後々の作業も面倒に思えました。個人的には「あまり係わりたくない管理システム」という印象です。

ユニコード:

ユニコードは最大で1,112,064文字を収録でき、そのコード長は21bitで、U+0000〜U+10FFFFまでのコードポイント範囲があるそうです。範囲は1,114,112文字分に相当しますが、サロゲートペアのための2,048文字分は使えないので冒頭の数字になるようです。

符号化(エンコード)方式は次のようなものがあるそうです。
  • UTF-7:(運用上の問題が多いので)非推奨
  • UTF-8:1〜4バイトの可変長コードを使う方式(Webでは一般的に使われている)
  • UTF-16:サロゲートペアを使った4バイトまたは2バイトのコードを使う方式
  • UTF-32:4バイトの固定長方式(ファイルサイズが大きくなるのであまり使われない)

このページも「UTF-8」を符号化方式として指定していますけど、日常的に使う文字は2バイトで表現できる「基本多言語面(BMP):U+0000〜U+FFFF」にそのほとんどが収録されているようなので、実際に格納されている文字データは1バイトか2バイトのいずれかになっているんだ、と思ったら違いました。

範囲 データ長 バイト数 文字数 Note
U+0000〜U+007F 7bit 1 128 ASCII互換部分
U+0080〜U+07FF 11bit 2 1919
U+0800〜U+FFFF 16bit 3 63487 CJK統合漢字含む(BMP境界まで)
U+10000〜U+1FFFFF 21bit 4 2031615 U+10FFFFまでが対象
U+200000〜U+3FFFFFF 26bit 5 - エンコードの対象外
U+4000000〜U+7FFFFFFF 31bit 6 - エンコードの対象外
という6階建てのエンコード体系になっているそうです。「UTF-8」を使ってエンコードするデータファイルでは、日本語は3バイト/文字を消費するようです。「EUC-JP」や「Shift_JIS」だと2バイト/文字で済むようですが、それと比べるとファイルサイズが(だいたい)5割増しというのはムダと感じることもありそうです。

「UTF-16」ならファイルサイズを節約できそうですけど、Webでは普及していないようです。なぜなんでしょう。

ASCII互換の基本ラテン文字:

範囲 開始ポイント 終了ポイント 文字数 Note
基本ラテン文字 U+0000 U+007F 128 Unicode 1.0 (1991年策定、ASCII互換)
ラテン1補助 U+0080 U+00FF 128 Unicode 1.0(↓2バイトデータ/UTF-8)
ラテン文字拡張A U+0100 U+017F 128 Unicode 1.0
ラテン文字拡張B U+0180 U+024F 208 Unicode 1.0
ラテン文字拡張追加 U+1E00 U+1EFF 256 Unicode 1.1(↓3バイトデータ/UTF-8)
ラテン文字拡張C U+2C60 U+2C7F 32 Unicode 5.0
ラテン文字拡張D U+A720 U+A7FF 224 Unicode 5.1(2008年策定)
合計 - - 1104 -
ユニコードは世界中の文字が収録される予定だそうです。最初に収録されているのはラテン文字ですが、複数の範囲に分かれています。随分後から追加された拡張部分もありますが、この辺りには未使用コードポイントが残っていました。それにしても、ラテン文字がこれほどあるとは想像以上です。

さて、「基本ラテン文字」ですけど、次のようなグリフ(字形)が登録されています。ラテン文字以外のフォントでも大抵はこの範囲を含んでいます。日本語キーボードからも直接入力できる利用頻度の高い文字です。

ASCII ( American standard code for information interchange ) は1963年にアメリカで制定されたコンピュータや通信機器のためのコードだそうです。当時のコンピュータの性能と関係ありそうですが、7ビット(128文字)で表現できるよう制限されていて、タイプライターで使っていたような文字や記号と機械を操作するための制御文字がセットになっています。

ユニコードにはたくさんの範囲がありました。通常、ひとつの範囲には「文字」か「記号」だけが収録されているようでしたけど、この範囲では、「数字」、句読点などの「記号」、機械のための「制御文字」が混在しています。同様に「ラテン1補助」でも制御文字などが混在してして、この二つの範囲はユニコード全体から見ると「特殊」ですけど、「合理的」な理由があるはずです。

「UTF-8」では可変長コードを扱いますが、ASCII互換の「基本ラテン文字」だけが1バイトデータとして扱われます。使用頻度の特に高い文字や記号の集まりだと思いますので、ファイルサイズをコンパクトにするのに(英語圏の人は特に)都合のよい配置なのは(漢字圏の私でも)当然なんだと理解できます。

大部分の文字や記号は3〜4バイトのデータとして扱われます。日本語の文字は3バイトです。「EUC-JP」などのローカルなエンコード方式が使われ続ける理由のひとつは、ファイルサイズの効率の良さだと思います。他の国でも同様で、表音文字なら1バイトで扱うことも容易だと思うんですが、これがUTF-8では3バイト必要になります。非効率が嫌われることは少なくないので、UTF-8方式がどれほど普及してもローカル方式が消えて無くなるとは思えませんでした。

ユニコードには「古代文字」や「記号」、「図形」など「現代文字以外」のグリフが収録される予定です。内容が充実するのは将来の話だろうと思うので今のところメリットは未知数ですけど、コンパクトなコードにはないこの利点に「将来性あり」と思いたいです。(携帯電話の絵文字は2010年に追加されたそうです)

周辺の事情が少し分かったところで、本題のリスト整理に移りたいと思います。

フォントリスト:

リストでは、「グリフ(字形)サンプル」及び「フォントファミリーのファイル数」、「登録グリフ数」、「登録文字種類」を比較できるようにしました。

  • グリフ数と収録文字種類は、(Ubuntuソフトウェアセンターにあった) FontForge で調べました。
  • 文字種類が多いので「アラビア文字」以降は「他」としか記載していないものもあります。
  • 各フォントのラテン文字の収録範囲は、「基本ラテンだけ」や「ラテン1補助まで」など様々でした。

【文字凡例:】「 ラ:ラテン」「Φ:ギリシャ」「キ:キリル」「ル:アルメニア」「へ:ヘブライ」「ア:アラビア」
分類 フォントファミリー名 スタイル・ウェイト グリフ数 文字 Note
コアフォント Andale Mono (01IOl) 661 ラΦキ Lucida Console
Arial 標伊 太伊  1378 ラΦキ へア 主要sans-serif
Arial Black 671 ラΦキ
Comic Sans MS 標   579 ラΦキ
Courier New 標伊  1378 ラΦキ へア 主要monospace
Georgia (0123456789) 標伊  590 ラΦキ
Impact 663 ラΦキ
Times New Roman 標伊  1378 ラΦキ へア 主要serif
Trebuchet MS 標伊  577 ラΦキ
Verdana 標伊  701 ラΦキ
Webdings 255 非文字
代替フォント Liberation Mono 標伊  666 ラΦキ Courier New
Liberation Sans 標伊  674 ラΦキ Arial
Liberation Serif 標伊 太 667 ラΦキ Times New Roman
GNU FreeFont FreeMono 標 斜太 斜 3331 ラΦキルへア他
FreeSans 標 斜太 斜 4000 ラΦキルへア他
FreeSerif 標伊  7972 ラΦキ へア他 文字種最多フォント
Unicode Large font DejaVu Sans 標 斜太 斜 5465 ラΦキルへア他
DejaVu Sans Condensed 標 斜太 斜 5465 ラΦキルへア他
DejaVu Sans Light 1799 ラΦキル
DejaVu Sans Mono 標 斜太 斜 3168 ラΦキ  ア他
DejaVu Serif 標伊  3063 ラΦキ   他
DejaVu Serif Condensed 標伊  3063 ラΦキ   他
一般名 monospace フォント不定
serif フォント不定
sans-serif フォント不定
ポストスクリプト Century Schoolbook L 標伊  561 ラ キ
Dingbats 201 Type1,非文字
Nimbus Mono L 標 斜太 斜 561 ラ キ
Nimbus Roman No9 L 標伊  561 ラ キ
Nimbus Sans L 標伊  668 ラ キ
Standard Symbols L 188  Φ Type1
URW Bookman L 標伊  543 ラ キ
URW Chancery L  伊 501 ラ キ 標準スタイルなし
URW Gothic L 標 斜太 斜 561 ラ キ
URW Palladio L 標伊  523 ラ キ
Symbol 188  Φ Type1
Bitstream Charter 標伊  227 Type1
Courier 10 Pitch 標伊  227 Type1
その他 OpenSymbol 909 記号
アラビア文字 KacstOne 443      ア
インド系文字 gargi 449 ラ(A-Z) デーバナーガリー文字
Lohit Hindi 352 デーバナーガリー文字
Mukti Narrow 標   601 ラ(A-Z) ベンガル文字
Lohit Bengali 484 ベンガル文字
Lohit Punjabi 155 グルムキー文字
Saab 197 グルムキー文字
Rekha 406 ラ(A-Z) グジャラーティー文字
Lohit Gujarati 344 グジャラーティー文字
ori1Uni 289 オリヤー文字
Lohit Tamil 245 タミル文字
Pothana2000 635 テルグ文字
Vemana2000 635 テルグ文字
Kedage 標   387 カンナダ文字
Mallige 標   387 カンナダ文字
Meera 1153 ラ(A-Z) マラヤーラム文字
Rachana 1095 ラ(A-Z) マラヤーラム文字
タイ文字 Garuda 標 斜太 斜 355
Kinnari 標伊斜太伊斜 239 ラ(A-Z) ファイル多過ぎ
Loma 標 斜太 斜 279 ラ(A-Z)
Norasi 標伊斜太伊斜 399 ファイル多過ぎ
Purisa 標 斜太 斜 405
Sawasdee 標 斜太 斜 359
Tlwg Typist 標 斜太 斜 331
Tlwg Typo 標 斜太 斜 326
TlwgTypewriter 標 斜太 斜 331
TlwgMono 標 斜太 斜 319
Umpush 標 斜太 斜 280 ラ(A-Z) 細いフォントあり
Waree 標 斜太 斜 408
ラオ文字 Phetsarath OT 290
クメール文字 Khmer OS 730
Khmer OS System 730
CJK統合漢字 文泉驛等寬微米黑 48640 ラΦキ   漢かカハ 中国語
文泉驛微米黑 48638 ラΦキ   漢かカハ 中国語
Takao Pゴシック 12738 ラΦキ   漢かカ 日本語
Takao P明朝 12738 ラΦキ   漢かカ 日本語
TakaoExゴシック 12505 ラΦキ   漢かカ 日本語
TakaoEx明朝 12505 ラΦキ   漢かカ 日本語
Takaoゴシック 12739 ラΦキ   漢かカ 日本語
Takao明朝 12739 ラΦキ   漢かカ 日本語
UnBatang 標   19458 ラΦキ   漢かカハ ハングル
UnDotum 標   19448 ラΦキ   漢かカハ ハングル

まとめ:

搭載フォントをひと通り調べて、文書作成で不要なフォントは区別できるようになりました。私が使えるのは日本語とローマ字や記号としてのラテン文字の一部なので、それ以外は不要です。Web閲覧時の「文字欠け」が気になるので全部削除するわけにもいきませんけど、時間を掛ければ「いい塩梅」にできそうな気がしました。

今のところ、残すべきフォントの優先順位は次のようになっています。

  1. Web の閲覧では、"Takao Pゴシック"、"Takao P明朝"、Takaoゴシック の3フォントは最低限必要ということが分かりました。一般名として sans-serif, serif, monospace を何にするか、ブラウザに指示する必要があるためです。
  2. Fontconfig システムの初期値では、 suns-serif として "Dejave Sans", "Takao Pゴシック" 、 serif として "Dejave Serif", "Takao P明朝" 、 monospace として Takaoゴシック が割り当てられていました。この2つのフォントグループはお薦めの組み合わせと思われるのでそのまま使うことにします。
  3. コアフォントは普及しているフォント集なので Webページ で指定されていることが多いようです。搭載しておくと読み易さを期待できると思います。
  4. ユニコードラージフォント(の類)は「重宝するかもしれない」と思います。
  5. ポストスクリプトフォントはシステムやPDFの閲覧に必要なものかもしれません。詳しいことが分からないので保留しておきます。
  6. 中国語フォントはユニコードのカバーに必要ですが、なくても困らないかもしれません。

削除しても(Ubuntuソフトウェアセンターから)再インストールできるものが多いので確認しながらぼちぼち試してみたいと思います。

その他に、
  • italic は「傾いた飾り付きの手書き風」スタイルで、 oblique は「傾いているだけ」のスタイルという違いがある。
  • ブラウザにはフォントスタイルを加工する機能があるので、「標準スタイル」だけのフォントだけでもそれほど困らない。
  • 中国語フォントには「ひらがな」「カタカナ」のグリフが収録されているので日本語フォントの代用になる。

ということも分かりました。

フォントのグループごとに分かったこともあるのですが、それは別の機会にまとめたいと思います。

2012/08/14

いくつかのブラウザのフォント設定(初期値)を比較しました。

ブラウザやOSが異なると、意図したフォントで表示されないことがあります。理由を知っておきたいのですが、「送り手」と「受け手」の事情があると思いますので、まずは、いくつかのブラウザでの設定方法の違いを整理しておきたいと思います。(設定は全て初期値です)

Firefox 14.0.1:(初期設定)

ubuntu10.04(Linux)版のFirefoxです。「Webページが指定したフォントを優先する」にチェックが入っています。

Windows(7)版のFirefoxの初期設定値です。Linux版と項目は同じですが「フォント」の指定が具体的な点で異なります。


Google Chrome 21.0.1180.57:(初期設定)

Linux版のGoogle Chrome です。すべて「Andale Mono」が選択されていますが、これは「何も選択していない」のと同様です。実際に閲覧すると「Webページが指定したフォントを優先する」という設定が有効であるような表示になっていましたが、無指定のWebページに備えて指定する必要がありそうです。


Internet Explorer 9:(初期設定)

「プロポーショナルフォント」と「等幅フォント」の二つだけを指定できるようです。それぞれ「適切な候補以外は選択できない」ように制限されているようです。

「ここで選択するフォントは、フォントが指定されていないWebページやドキュメントで表示されます」とあるので「Webページが指定したフォントを優先する」ようです。


まとめ:

ブラウザ プロポーショナル 明朝体 ゴシック体 等幅 Note
Firefox(Linux) ゴシック体 serif sans-serif monospace Webページ優先
Firefox(Windows) ゴシック体 MS P明朝 MS Pゴシック MS ゴシック Webページ優先
Chrome(Linux) - - - - Webページ優先
Internet Explorer MS Pゴシック なし なし MS ゴシック Webページ優先
調べた範囲では、どのブラウザも「(初期設定では)Webページ優先」でした。「設定を変える人は少ない」という前提ではWebページの指定フォントで表示される機会は多いわけですから、ブログなどを制作する側は「フォントの指定に注意をはらうこと」が大事なことに思えました。「このページは読みづらい」とならないよう、フォントの指定に注意したいと思います。

詳細は未確認ですが、OS毎に「搭載しているフォント」が異なるようです。全部のOSを調べるわけにもいきませんが、「適切なフォントの指定」のためには、ある程度調査する必要がありそうです。

ブラウザから見るフォントの種類には「プロポーショナル/等幅」と「明朝体/ゴシック体」の二つの軸があることが分かりました。Webページでフォントの指定がない場合、Windowsでは「MS P明朝」や「MS ゴシック」のように特定のフォントが使われるようですが、Linuxの場合は「特定のフォント」ではないようです。最終的には「何かが」選択される仕組みになっていると思いますが、その仕組みはわかりませんでした。これも調べる必要があると思います。

ubuntu(Linux)でブラウザの利用者がフォントを指定するのは面倒です。例えば、ubuntu(Linux)版のFirefoxで「等幅フォント」を変更しようとすると、候補に(同じ書体で)70以上の搭載フォント名が提示されます。「Internet Explorer」のように「等幅フォント」だけが表示されると楽な作業ですが、「プロポーショナルフォント」も混ざっているので「多少の負担」を強いられます。フォントの区別が怪しい状況では困難さが増すので、名前と姿を把握する努力は必要なようです。