Top > ホームページ

2007年04月26日

Windowsプリンストールの和文フォントは意外に少ない

Windowsパソコンのフォントの話です。
今現在、Windowsで使われている一番多いバージョンはXPですので、WindowsXPを中心に話を進めます。

Windowsに初期インストールされている和文フォント(漢字フォント)は、何種類あるかご存じでしょうか。

実はたったの5種類しかないのです。
WindowsXPの標準和文フォント MSPゴシック、MSP明朝、MS UIゴシック、MSゴシック、MS明朝です。
最初の3つは、プロポーショナルフォントと呼ばれているもので、字の形によって字幅が変化します。
後者の2つは、等幅フォントと呼ばれるもので、字体が変わっても字幅は変化しません。ただし、1バイト文字(俗称:半角文字)は、2バイト文字(俗称全角文字)の半分の幅です。

Office2003をインストールした場合の和文フォント WindowsXPにOffice2003をインストールすると26書体の和文フォントが追加されます。

行書体、楷書体、教科書体、ポップ体などです。このくらいあると、ワープロなどでもある程度文字種を選んで見栄えを良くしたりできますね。
しかし、ホームページの世界では、あまりこのような書体を使いません。なぜなら、すべての人のパソコンが、このような書体をインストールしているとは限らないからです。
ですので、明朝体とゴシック体を使い分ける程度で、我慢します。

 

IT工房にんにく庵関連ページ

 

IT工房にんにく庵のホームページ作成

2007年06月22日

限定可変幅ページの作り方

可変幅のホームページは、いろいろなディスプレイ環境の人がホームページを見るのには、大変いいと思います。
でも、作る側からしてみると、デザインが難しいので、プロが作るホームページは、大抵固定幅です。
このところのディスプレイ事情は、XVGA(1024px×768px)以上ですので、ブラウザーを最大幅にして、左側にお気に入りなどを表示させると、コンテンツを表示できる幅は、800px以下ということになります。(推奨は750pxだそうです。)
幅800pxとして、その中の左サイドにナビゲーションなどを入れると、有効幅600pxくらいとなります。

一昔前のノートパソコンは、SVGA(800px×600px)でしたので、左サイドにお気に入りなんかを出しておくと、コンテンツの右側がはみ出してしまいます。

逆に最近はやりのワイドタイプSXGA+(1400px×1050px)などでは、左右に余白が多すぎて、もったいないです。まぁこのサイズクラスになってくると、最大表示でブラウザーを使うとダサイといわれますが・・・。

そこで本題です。画面サイズの小さいディスプレイには、できるだけ幅を縮めて表示してあげて、画面サイズの大きなディスプレイには、幅をある程度大きく表示させるような可変幅のホームページを見たことがある人はいると思います。IT工房にんにく庵のホームページもこのような作りになってます。このページを限定可変幅ページと勝手に名づけてしまいます。

最近のトレンドは、tableタグを使わず、divタグでレイアウトしますが、限定可変幅ページをdivタグで作ろうとすると、レイアウトの乱れに苦労させられて、挫折してしまいます。そこで、昔ながらのtableタグのお世話になります。

ウィンドウの幅が狭い場合 単純な可変幅ページは、tableタグのwidth属性に、80%とかのパーセンテージ指定をすれば、画面の大きさによって、勝手に幅が変わります。ただし、幅の小さい画面は、がんばって幅を小さくしてくれるために、右側にレイアウトしてたものが改行されて左に行ってしまったりして、デザインもへったくれもありません。逆に幅が大きくなると、右にデザインしたものだけが遙か彼方へ行ってしまい、間の抜けたものになってしまいます。

ウィンドウの幅が広い場合


この単純な可変幅ページを限定可変幅ページに改良します。HTMLのタグやCSS(スタイルシート)だけでは、実現できません。JavaScriptを使用します。
まず、bodyタグのイベント発生時にJavaScriptを実行する定義をします。

<body class="style1">

<body class="style1" onLoad="resize_waku('waku');" onResize="resize_waku('waku');">

つぎに、tableタグにidを定義します。idのwakuという名前は、bodyタグのイベント発生時に実行するJavaScriptの引数と同じものにします。

<table width="90%" height="500" border="0" align="center" cellpadding="5" cellspacing="0" class="style2">

<table width="90%" height="500" border="0" align="center" cellpadding="5" cellspacing="0" class="style2" id="waku">

JavaScriptをheadタグの中に記述します。

<script language="javascript">
<!--
function resize_waku(obj){
// ブラウザーの幅が大きい場合、あまり横に広げない
clientSize=getWindowClientSize(obj);
var obj1=document.getElementById(obj);
if(obj1){
//alert(obj1.tagName);
if(clientSize.width > 800){
//alert("800px以上");
obj1.style.width = "790px";
}else if(clientSize.width < 801 && clientSize.width > 630){
// 800px以下630px以上の場合は、最大幅で表示
//alert("630~800px");
obj1.style.width = "100%";
}else{
// 630px以下の場合は、620px固定表示
//alert("630px以下");
obj1.style.width = "620px";
}
}
}
function getWindowClientSize(){
// ブラウザーのサイズを取得
var result={"width":0,"height":0};
if(window.self&&self.innerWidth){
result.width=self.innerWidth;
result.height=self.innerHeight;
}else if(document.documentElement && document.documentElement.clientHeight){
result.width=document.documentElement.clientWidth;
result.height=document.documentElement.clientHe
ight;
}else{
result.width=document.body.clientWidth;
result.height=document.body.clientHeight;
}
return result;
}
//-->
</script>

限定可変幅ページの結果がこんな感じになります。
getWindowClientSize()関数の返値は、ウィンドウの外側のサイズですので、内側のサイズは、マイナス10pxくらいです。JavaScriptの詳細は割愛しますが、幅の指定にスタイルシートのwidth属性を変更しています。
JavaScriptのDOMという機能を使用したDynamic HTML使用例です。ブラウザーに依存しますので、古いブラウザーですと、うまく動作しません。また、JavaScriptを無効にしていると、通常の可変幅になります。

限定可変幅ページ狭くした例 限定可変幅ページ広くした例

 

IT工房にんにく庵関連ページ

 

IT工房にんにく庵のホームページ作成

2007年08月08日

UTF-8で作成されたHTMLを表示させると、文字の字体がおかしい

まだ、原因を追及中ですが、インターネットで検索しても、それらしいものが引っかからないので、お知らせしておきます。『MS ゴシック & MS 明朝 JIS2004 対応フォント(KB927489)をインストールするとUTF-8のホームページで字体がおかしくなる現象』をご覧下さい。

先日お客様のところにNEC社ノートパソコンVersa Pro(PC-VY16AEDJMFL1、WindowsXP SP2)を2台ほど納品しました。その後、インターネットエクスプローラ(IE6 SP1)にて、あるページを表示すると、文字の字体が他のパソコンと違い、おかしいとの報告が来ました。

原因を調査し、どういった環境でこの現象が起こるかまで突き止めましたが、機種に依存する問題なのか、追加で導入したアプリケーションのせいなのかまでは、絞り込めていません。
PCをHDDリカバリーすれば、切り分けできるのですが、すでに納品したものですので、そこまで思い切ったこともできません。

ちなみに追加で導入したアプリケーションは、以下のものです。

  • ノートPCに付属のWinDVD
  • 富士通ScanSnapドライバー、付属ソフト
  • Adobe Acrobat8スタンダード
  • ウィルスバスター2007
  • Microsoft Office 2003 パーソナル(プリインストール版)
  • 画像ソフト ViX
  • 圧縮解凍ソフト lhaplus
  • Visual Basic 6 SP6 ランタイム
  • googleツールバー
  • flashプレイヤー
  • Shockwaveプレイヤー
  • プリンタ用ドライバー

2007年11月5日追記
Windows XP professional x64 SP2 OEM版をインストールしたHP社 ML115でも同様な現象が発生しました。
Mozilla Firefoxで表示すると正常です。IEのレンダリングエンジンを使用しているSleipnirなどでは、UTF-8の字体がおかしくなりました。IE6の固有問題ということまで特定できました。

では、具体的にどんな状況にておかしな字体が表示されるかを説明します。

まず、HTMLドキュメントを文字コードUTF-8にて作成します。適当な文章を入力して、スタイルシートにて、フォントの字体を「MS P明朝」にします。
そのHTMLドキュメントをIE6にて表示すると、通常ですと明朝体で表示されるのですが、見たこともない変な字体になるのです。
下2枚のうち左が、Shift_JISで作成して表示したものです。これは正常な字体です。右がUTF-8で作成したものです。

Shift jisで作成すると、意図した字体で表示されます UTF8で作成すると、なぜか字体が変なことに・・・
Shift_JISで作成         UTF-8で作成


HTMLドキュメントは、このような指定になっています。

<style type="text/css">
<!--
.style1 {font-family: "MS Pゴシック"}
.style2 {font-family: "MS UI Gothic"}
.style3 {font-family: "MS ゴシック"}
.style4 {font-family: "MS 明朝"}
.style5 {font-family: "MS P明朝"}
-->
</style>
~省略~
<p>テストあいうえおかきくけこ&nbsp;関数無効可変属性内側横広引数発生実行</p>
<p class="style1">テストあいうえおかきくけこ&nbsp;関数無効可変属性内側横広引数発生実行</p>
<p class="style2">テストあいうえおかきくけこ&nbsp;関数無効可変属性内側横広引数発生実行</p>
<p class="style3">テストあいうえおかきくけこ&nbsp;関数無効可変属性内側横広引数発生実行</p>
<p class="style4">テストあいうえおかきくけこ&nbsp;関数無効可変属性内側横広引数発生実行</p>
<p class="style5">テストあいうえおかきくけこ&nbsp;関数無効可変属性内側横広引数発生実行</p>
<p>テストあいうえおかきくけこ&nbsp;関数無効可変属性内側横広引数発生実行</p>
<p>テストあいうえおかきくけこ&nbsp;関数無効可変属性内側横広引数発生実行</p>

スタイルにfont-familyを指定すると、意図した字体ではなくなることが分かります。たとえば、「MS Pゴシック」にすると、なぜかMS UIゴシックで表示されてしまいます。

EUCコードでどうなるかまでは追求していませんが、どんな結果になるのでしょうか。

EUCコードでは、正常に表示されました。UTF-16コードも文字の字体がおかしくなります。

●サンプル

  1. Shift_JISで作成したHTMLドキュメント
  2. UTF-8で作成したHTMLドキュメント
  3. EUC_JPで作成したHTMLドキュメント
  4. UTF-16で作成したHTMLドキュメント
  5. GB2312(簡字体)で作成したHTMLドキュメント

サンプルをクリックしてみて同じような現象がでる方があれば、ぜひコメントお願いします。

 

IT工房にんにく庵関連ページ

 

トラブル対応

2008年04月02日

MS ゴシック & MS 明朝 JIS2004 対応フォント(KB927489)をインストールするとUTF-8のホームページで字体がおかしくなる現象

Microsoft MS ゴシックおよび MS 明朝 JIS2004 対応フォント (KB927489)

Microsoft MS ゴシックおよび MS 明朝 JIS2004 対応フォント (KB927489)

KB927489適用後の表示

KB927489適用後の表示

プログラムの追加と削除

プログラムの追加と削除

utf-8で作成されたHTMLを表示させると、文字の字体がおかしい』で未解決でしたが、原因が判明しました。

Windows updateの「追加選択(ソフトウェア)」の一覧に、「Microsoft MS ゴシックおよび MS 明朝 JIS2004 対応フォント (KB927489)」というのがあります。WindowsXPまでは、漢字コード体系がJIS90(1990年版)でしたが、vistaからJIS2004(2004年版)に変更になりました。

出版業界や人名を扱う方々にとっては結構迷惑な改訂でして、同じ漢字コードなのに、表示される字体が変わってしまうのです。「檜山」としても「桧山」になるど困ることも多々あります。

本題に戻りますが、KB927489をインストールしますと、utf-8漢字コードで作成されていて、スタイルシート(CSS)のfont-familyにて、「MS ゴシック」、「MS Pゴシック」、「MS 明朝」、「MS P明朝」などを指定し、インターネットエクスプローラ6(Internet Explorer6、IE6)で表示すると意図しない気持ちの悪い字体となります。

解決方法は、コントロールパネルのプログラムの追加と削除から、「MS ゴシック & MS 明朝 JIS2004 対応フォント(KB927489)」を削除することです。

 

IT工房にんにく庵関連ページ

 

パソコンのトラブル、修理、故障などハード・ソフトとも対応しています

検索


Feed

Really Simple Syndication 2.0 The Atom Syndication Format Really Simple Discoverability