頻度は減ったものの、相変わらず自作のSpotifyミニプレーヤー(minisp)の改良・デバッグもやっているw 昨夜辺りだったか、ブラウザなどのフォントをいじっていて、ふと、minispの文字の大きさのバランスが気になった。僕としては、タイトルは大き目にし、演奏者とアルバム名などは少しだけ小さ目にしたい。一度気になるとどうしても我慢できないので、文字のサイズを調整してみたのだが、微妙なところでうまい設定ができない。

というのは、Tcl/Tkは作りが古いせいか、フォントサイズを整数(例: 10pt)でしか指定できないため、サイズを変えても同じような大きさに見える場合があるせいだ(例: 13ptと11pt: この時、後者を10ptにすると小さくなり過ぎてしまう)。

が、僕の理解では、今はTrueTypeなどのベクターフォントが使われているので、整数でないサイズ(例: 10.5pt)も使えるはずだ(実際、MS Wordでは10.5ptがデフォルトだった)。しかし、Tcl/Tkにはそのサポートがない。それで、そこを「なんとか」してみた。

検索したら、やり方そのものは見つからなかったが、ヒントがあった。tk scalingコマンドを使うと良さそうな感じだった。つまり、それに適正な値の数倍の値を指定して、文字などを小さ目に描画させる一方、その分、フォントのサイズを大きく指定すればいいと考えた。例えば、10.5ptは2倍なら"21"ptと整数で指定できるから、10.5pt相当の大きさで表示できるはずだ。

やってみたら、(ちょっと手間取ったものの)うまくいった。1/2だと単位(ステップ)が荒そうだったので、1/4で描画する(tk scalingに本来の4倍の値を指定)ようにして、4倍のフォントサイズを指定した。

本当にわずかな差で、ちょっと見ただけでは違いが分からないのだが、タイトル以外(演奏者とアルバム名など)が小さ目になっている。これだと、日本語がまだわずかに大きく見えるのでもう少し小さくしたいのだが、10.25pt相当は効かないようだった(10.5ptと同じ大きさで出た)。内部で丸められるのか、ベクターフォントといってもどんなサイズでも生成できる訳でなく、可能なサイズにステップがあるのだろうか。まあ、これでも充分満足できるから、良しとする。

「これで一件落着」と思って、くつろいで聴いていたら、思わぬことに気付いてしまった。文字数によってバランスが変わるせいか、文字の大きさが違って見えるのだ。以下はどれも同じ文字サイズなのだが、タイトルとその他の文字の大きさが異なって見える。

タイトルの文字数が少ない時は、タイトルが小さく見え、タイトルの文字数が多い時は、逆にタイトルが大きく見える(はじめは、プログラムがおかしくて毎回サイズが変わっているのかと思っていた)。後者を見ると、ちょっと「うっ」という感じ(圧迫感がある)になって、小さくしたくなる。。。 今まで調整がうまく行かなかったのは、これで右往左往していたことがあるのだろう。プロには常識なのかも知れないが、錯覚の一種なのかも知れない。漢字はアルファベットに比べて面積が大きいのも関係してそうだ。

さすがにこれは配置や構成だけの問題ではなく、感覚が関係しているし、仮に文字種(例: 日本語/英語)や文字数でサイズを自動調整するにしても、設定可能な文字サイズに制限があって解決できないだろうから、「適当」なところで諦めるしかないだろう。そういうことを考えると、デザイナーやDTP職人(?)の方たちの苦労が偲ばれる・・・

(8/23 16:27追記) 昨夜の思い付きの「タイトルのサイズを自動調整」を試してみたら、意外にうまく行った。文字種を調べるのは面倒なので、タイトルの長さに応じて3段階にサイズを変えてみたら、意外にも、かなりいい感じになった。

ただ、やっぱりうまく行かない場合はあって、下段の最後の2個のような時がちょっと気に入らない。が、文字種での判定やタイトル以外のサイズ変更処理も必要で面倒なので、保留にした。

 

 

PS. オーディオの「測定できない音の違い」って、こういうものもあるのかも知れないと思った。要は、本当に測定値は同じで、感覚的な問題で違って聞こえる、「錯覚」(??)ではないかと。

PS2. 視覚的なことと言えば、さっき、「Twitterでも気になっている人が多数「Spotify」のロゴの傾き」というニュースを目にしたが、僕は全然気付いてなくて、アイコンを見てようやく分かったw なかなか妙だし、おもしろい。

今、Spotifyのロゴを見て気付いた(気になった)のは、線と枠の間隔が左右で違う(右に寄っている)ように見えることだ。でも、じっと見ると同じようにも見えるし、それよりも、色遣いが良くないせいか、目がおかしくなる・・・

  •  0
  •  0

コメントを書く / Write a comment

名前 / Name    

メール / Mail 

URL