Libreoffice 5.1.6.2。
Writerにて、たとえば
+①
と入力すると、「①」が小さく表示されてしまいます。
カーソルを「①」のところにポイントすると、なぜかフォントが西洋諸言語用のものになっています。
他の記号でも試したところ、小さくなるものとそのまま表示されるものと色々あるようです。
対策はあるでしょうか。
Libreoffice 5.1.6.2。
Writerにて、たとえば
+①
と入力すると、「①」が小さく表示されてしまいます。
カーソルを「①」のところにポイントすると、なぜかフォントが西洋諸言語用のものになっています。
他の記号でも試したところ、小さくなるものとそのまま表示されるものと色々あるようです。
対策はあるでしょうか。
OSが書いていないのでLinux上の5.2.6.2と5.3.1.2で試しましたが、そのような状態にはなりませんでした。
ひとまず対策を考えると、西洋諸言語のフォントとアジア諸言語のフォントはそれぞれ別のフォントが割り当てられていると思いますが、オプションの「規定のフォント」か標準スタイルから、西洋諸言語とアジア諸言語の両方に同じフォント、同じサイズを設定するとどうなるでしょうか。
5.1系は昨年11月末でサポート終了になっているので、5.2系にアップデートするとどうでしょうか。
また、試せる環境があるなら5.3からはレンダリングエンジンが変わっているので試してみるといかがでしょうか?
nogajunさんのAnswerのとおりなのですが、補足として。
メニューから「書式」「文字」と辿って文字ダイアログを表示し、「フォント」タブを選択してみて下さい。「西洋諸言語用フォント」と「アジア諸言語用フォント」が別々に設定できるようになっているのが見て取れると思います。今しがたLibO 5.3.2.2 on Win8.1で標準で新規作成されるファイルを見てみたところ、西洋諸言語用が「Liberation Serif」の12pt、アジア諸言語用が「MS 明朝」の10.5ptとなっていました。つまり日本語の方が小さいサイズが指定されています。5.1.6.2で同じかどうかは分かりませんが、同様の状況ではないかと推察されます。
この違いの原因がnogajunさん指摘のオプション設定で、同じくメニューから「ツール」「オプション」と辿ってオプションダイアログを表示し、左側のリストから「LibreOffice Writer」「規定のフォント(西欧諸言語orアジア諸言語)」(「西欧」の訳がブレてますね…汗)を選択比較すると、一部のサイズが両者で違っていたりするのではないかと思います。私の環境では標準のみ、アジア諸言語の方で10.5ptとなっていました。
標準設定がこのようになっているのは、ちょっとどうなのかな…という気はしますね…。見出しやキャプションなど標準以外のものは揃っているので、なんとなくバグ(というか設定不備)っぽいなぁ…とい気はしますが…。
私の設定の例です。
個別のフォント設定以外の、フォントの基本設定ですが、、「ツール」-「オプション」でオプションダイアログを表示します。
LibreOffice Wreiterのツリーを開き、既定のフォント(西欧諸言語)、規定のフォント(アジア諸言語)の設定をチェックします。
私の場合は、西欧もアジアも全て、IPAexゴシックに統一しています。フォントの大きさも見出し以外は12ポイントで統一しています。
見出しのみ14ポイントにしています。
こうすることで、フォントの西欧(半角?)ーアジア(全角?)によるフォントの大きさのブレや配置のブレを防止しています。
IPAフォントは無料で入手可能です。TTF4書体などをダウンロードしてインストールします。
おそらく仕様。現状対策はなし。 スタイルじゃなくて個別の文字の書式でフォントを西洋系と東洋系で同じもの
を当てる、とかいう面倒くさい手順くらい?
再現手順
一般的にひらがなは東洋で用いられ、アルファベットは西洋で用いられる。もちろん実装上そういうデータがちゃんとコード上にある。じゃあ’①’は西洋?東洋?悩むと思う。答えを言うと、それらの情報が割り当てられていないので、周りの情報からどちらであるか決定することになる。東洋系の文字列の直後にあるときはその一部として扱われるため東洋系のフォントが適用され、西洋系の文字列の直後にあるときもその一部として扱われるので、西洋系のフォントが採用される。
http://opengrok.libreoffice.org/xref/core/editeng/source/editeng/impedit2.cxx?r=666787c4bcee7fc9a5de459eb18a1dcc1a4e350c#1653
////
ここから補足
http://opengrok.libreoffice.org/xref/core/i18npool/source/breakiterator/breakiteratorImpl.cxx#455
平仮名と片仮名はUBLOCK_CJK_RADICALS_SUPPLEMENTとUBLOCK_HANGUL_SYLLABLESの間にあるから東洋系
これらに含まれない①は
http://icu-project.org/apiref/icu4c/uchar_8h.html#a19f1662c9c33c31593612d05777ea901
http://icu-project.org/apiref/icu4c471/uscript_8h.html#a5036ff9ca2a7f1d2bde07875bb235df0
http://www.unicode.org/Public/5.0.0/ucd/Scripts.txt
2460…249B ; Common # No [60] CIRCLED DIGIT ONE…NUMBER TWENTY FULL STOP ⇒ COMMONだから0で
http://opengrok.libreoffice.org/xref/core/i18nutil/source/utility/unicode.cxx#132 ⇒ WEAK
ここまで ////
ただし、最初の地点でそのような状態に陥ったとき、後続があるときはそれに従い、それすらないときはデフォルト設定されている言語に従う。…ようにみえるんだけど、何故か後続があるときの挙動が再現できないんだよなあ
俺の環境で。
こういう実装だから
"あa①"を入力しておいて"a"を消すと"①"のフォントサイズが変わります。
ところで、思いつきを一つ実験したら、中々面白い結果が得られたので追記。
オプション上で、ロケールが英語になっており、
Default Styleで西洋系と東洋系のフォントサイズをそれぞれ設定してあるとします。
で、最初の段落に"①"を入力しておきます。
このファイルを適当なファイル名で保存し、ロケールを日本語に切り替えてWriterを再起動。
すると、ファイルが再度開かれるわけですが、割り当てられるのが西洋から東洋に変化するので、この部分、文字のサイズが変わります。
例えば複数の国の研究者がLibreOfficeを用いて論文を書こうとファイルを共有したとすると…とか脳裏に浮かんだりします。まぁ単なる思考実験ですが。
検証環境:
Version: 5.3.3.1 (x64)
Build ID: 46360c72c4823cefeaa85af537fba22bd568da7e
CPU Threads: 4; OS Version: Windows 6.19; UI Render: default; Layout Engine: new;
Locale: en-US (ja_JP); Calc: group
むぅ。本当は積みゲー消費後に投稿予定だったのだが、クリアの見通しが全然立たないので見切り発車orz
2019-07-14追記:
関連するものとして
Bug 126387 - Unsymmetrical fonts for quotation marks in mixed western and Asian text