Re: Chromium bug: Japanese default font for the fixed font is not fixed font actually


> CSSにはmonospaceの用途としてcomputer codeがあがっているので、
…
> 添付画像の例でも、0(ゼロ)とO(大文字のo)、1(数字の1)とI(大文字のi)とl(小文字のL)がclear
> distinctionになるよう工夫されてると思います。

プログラミングに対してモノスペース書体がなぜ重要なのか、例えばなぜより読みやすいHelveticaを使わないのか、つらつら考えていたのですが、山口さんの挙げられたように次の二点に突き詰められるかと思います。まずはモノスペースであることで空白文字を使って縦方向にカラムを揃えられること、そして一文字一文字誤認識がないこと。

前者は、構造を示すインデントは空白文字やタブのみで達成されますので、この部分に関しては特に全文字が等幅である必要性はないのですが、例えば構造体の配列などをハードコードする場合には、要素を縦方向に揃えるために等幅であるとやりやすい、まあ、タブストップでも良いですし、もっと賢い表組み的な表現もできるでしょうから、前者に比べると副次的かもしれません。

後者がより本質的に思えます。一文字一文字誤認識がないこと。文として意味を捉えることよりも、文字単位の認識が間違いなく行えることにフォーカスしているのがモノスペース書体。とすると、モノスペース書体は日本で言うところのUD書体なんですね。

なるほど、私が今まで思っていたよりも、モノスペースは息が長くなりそうです。


ところで、OpenType 日本語フォントにおいて、hwidを適用すると、モノスペースフォントになりますかね? まあ、英字部分は元々の英字のモノスペースを使って、それにその倍幅の和文を合わせるのがより素敵な表示になりそうではありますが。

木田

> 2023/12/24 12:23、Taku Yamaguchi <study.yamahige@gmail.com>のメール:
> 
>> 人間が気がつくようにモノスペースが重要か
> CSSにはmonospaceの用途としてcomputer codeがあがっているので、重要視すべきと思うのです。
>> 2.1.3. Generic font families
>> ...
>> monospace
>> ... This is often used to render samples of computer code.
> https://www.w3.org/TR/css-fonts-4/#monospace-def

> 
> 「programming font」で検索すると、コーディング用のフォントを紹介するページが結構あります。
> コーディング用に向いたフォントの要件でよくあがるのは、こんなところです:
> * A monospaced font. In monospace programming fonts, each character
> uses the same width, so columns line up as expected, which makes code
> easier to read.
> * A programming font with a clear distinction between similar symbols,
> such as 0 (zero) and O (uppercase o); 1 (one), I (uppercase i) and l
> (lowercase L); bracket types, symbol positioning, letter spacing, and
> so on.
> https://www.sitepoint.com/top-10-programming-fonts/

> 
> 添付画像の例でも、0(ゼロ)とO(大文字のo)、1(数字の1)とI(大文字のi)とl(小文字のL)がclear
> distinctionになるよう工夫されてると思います。
> 
> 山口
> 
> 
> 2023年12月22日(金) 9:39 木田泰夫 <kida@mac.com>:
>> 
>> どうでしょう。これは失敗ではなくて、通るコードなら別にどっちでもいいと私は思います。教育の現場で、どちらも通る正しいコードなのにスペース一つでペケとされる、あの漢字の書取りでどちらでも良い細かい違いをペケにするような場面が再現されないかちょっと心配になります。
>> 
>> もちろん、美しく整形することも重要で、会社や部署単位でプログラムの書法を統一する場合もありますが、そんなの整形ソフトで一発です。もちろん出題する前にスペルミス含めてちゃんと通るコードなのかチェックするでしょうから、人間が気がつくようにモノスペースが重要かというと、、どうなんでしょう。
>> 
>> 木田
>> 
>>> 2023/12/21 22:14、Taku Yamaguchi <study.yamahige@gmail.com>のメール:
>>> 
>>> 山口です。
>>> 
>>> Shinyu MURAKAMI wrote:
>>>>> せっかくCSS Fonts仕様でgeneric font-familyをもっと充実させようということになっているのに、monospaceという基本的なgeneric font-familyが機能しない現状はとても問題だと思います。
>>> 
>>> そうですね。日本の教育分野でホットな話題の1つが「情報」教科、情報入試、プログラミング教育です。その点でも、デジタル教科書、デジタル教材のmonospace対応は重要だと思います。
>>> 例えば、添付のプログラミング演習問題は、"="前後の空白の数が不統一です。作問者が意図的にそうしてるのでなければ、monospaceが保証される環境で作業することで、このような失敗が減ると期待できます。
>>> 
>>> 
>>> 2023年12月21日(木) 22:06 Taku Yamaguchi <study.yamahige@gmail.com>:
>>>> 
>>>> 村上さま、みなさま、
>>>> 山口です。
>>>> 
>>>> このissueに載ってるexampleのページでは再現しなくなってるようです。
>>>> http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-06

>>>> そこで、こちらのページで再現できます。"Try
>>>> it"のCSSタブでfont-familyからcourierを外すと再現します。HTMLタブでpush()をpush(0123ijlIO)などとすると分かりやすいと思います。
>>>>> <code>: The Inline Code element - mdn
>>>> https://developer.mozilla.org/en-US/docs/Web/HTML/Element/code

>>>> 
>>>> MacのEdgeでも再現します。
>>>> また、わたしのところでは、macOSのPreferred LanguagesでEnglish (US)をPrimaryにしても起きます。
>>>> 
>>>> 元のissueに載ってるexampleのページは、monospaceの他に具体的にfont-familyを指定して解決してるようです。
>>>> 
>>>> 
>>>> 2023年12月19日(火) 17:27 Shinyu MURAKAMI <murakami@vivliostyle.org>:
>>>> 
>>>>> 
>>>>> 村上です。
>>>>> 今日のミーティングで提起されたブラウザで font-family: monospace と指定しても等幅フォントにならない問題(Macの日本語環境でのChromeで発生)は、Chromiumのバグとして登録されてます:
>>>>> 
>>>>> Issue 75585: Japanese default font for the fixed font is not fixed font actually
>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=75585

>>>>> 
>>>>> これを見ると、このissueが登録されたのが2011年で、そのすぐあと修正のパッチが作られている https://codereview.chromium.org/7248065/ のにそれをレビューする人がいないらしくて放置されてました(そのパッチを見てくれた頼まれた人の最後のコメントが「no, I have zero familiarity with objective c.」で終わってて、残念な感じです。自分ができないならできる人にまわしてくれたらいいのに…)。それから1年前にissueへのコメント
>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=75585#c39

>>>>> 
>>>>>> This is a serious problem that's why my Japanese friends forced to use other browsers for coding (especially Jupyter notebook).
>>>>>> The patch in comment#29 looks reasonable and just lacking ObjC professional to review.
>>>>> 
>>>>> があって、この修正をしようという流れになりそうかと思ったら、またそこで止まって今にいたっているようです。
>>>>> 
>>>>> 何とかしてこの修正を進めることはできないのでしょうか?>Googleの石井さん
>>>>> 
>>>>> 同様に長い間修正されないでいたChromeの日本語等での問題で、ルビなど小さなフォントサイズが指定されたテキストが、最小フォントサイズの制限がデフォルトで効いてしまい期待通りに表示されないというのがありました。これについては最近修正されてよかったです(石井さんに感謝):
>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=36429

>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1195041

>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1469490

>>>>> 
>>>>> monospace問題も修正されるのを期待してます。
>>>>> 
>>>>> せっかくCSS Fonts仕様でgeneric font-familyをもっと充実させようということになっているのに、monospaceという基本的なgeneric font-familyが機能しない現状はとても問題だと思います。
>>>>> 
>>>>> 
>>>>> Vivliostyle 村上
>>>>> 
>>> <jigsaw-code-monospace.png>
>> 
> <code-monospace.jpg>

Received on Tuesday, 26 December 2023 16:05:09 UTC