質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

font

近年は、コンピュータ上、紙面上で利用できる書体データのことをfontといいます。数える時の単位は「書体」で、データとしてのフォントは、デジタルフォントと呼ばれる場合があります。 HTML/CSSでは要素を指定し、フォント情報を調整することができます。

Q&A

解決済

1回答

242閲覧

Linuxのfontconfigを上書きしてIPAmj明朝の太字を使いたい

kyrieCo

総合スコア11

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

font

近年は、コンピュータ上、紙面上で利用できる書体データのことをfontといいます。数える時の単位は「書体」で、データとしてのフォントは、デジタルフォントと呼ばれる場合があります。 HTML/CSSでは要素を指定し、フォント情報を調整することができます。

0グッド

0クリップ

投稿2023/02/22 10:16

編集2023/02/22 10:26

実現したいこと

  • PDF変換時に使用されるフォントを全てIPAmj明朝にしたい

前提

  • Apachi POIで作成されたExcelをPDF変換するためにlibreOfficeを使用しています
  • ローカル環境(windows)ではIPAmj明朝を使用して問題なくPDFが作成されますが、検証環境(Linux)では太字を反映してくれません。全てRegulerフォントで記述されてしまいます(IPAmjは使用できている)

現状のソースコード

以下fonts.confの記述です

xml

1<?xml version="1.0"?> 2<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> 3<fontconfig> 4 <edit name="family" mode="assign" binding="strong"> 5 <string>IPAmj明朝</string> 6 </edit> 7 </match> 8</fontconfig>

→「binding="strong"」によってIPAmj明朝を最優先で使用されるように設定を上書きしています。おそらくこちらの記述ではRegulerフォントしか指定できていないために、太字部分もRegulerフォントが使用されてしまっていると思料しています。

試したこと

①太字の場合の記述を追記

xml

1<edit name="weight" mode="assign" binding="strong"> 2 <int>1</int> 3</edit>

→こちらの場合だと、太字自体の適用はうまくいったのですが、代わりに半角英数字が全て謎のフォントに置き換わってしまうという事象が発生しました。

②IPAmj以外のフォントを使用させない

xml

1 <selectfont> 2 <rejectfont> 3 <pattern> 4 <patelt name="scalable"><bool>true</bool></patelt> 5 <patelt name="scalable"><bool>false</bool></patelt> 6 </pattern> 7 </rejectfont> 8 <acceptfont> 9 <pattern> 10 <patelt name="family" > 11 <string>IPAmj明朝</string> 12 </patelt> 13 </pattern> 14 </acceptfont> 15 </selectfont>

→特に変化ありませんでした。書き方を間違えているのでしょうか。。

主にこちらのサイトを参考にして見様見真似でfontconfigを書いているのですが、正直わからないことが多いです。原因解決以外にも、fontconfig全般について詳しく知っている方がいらっしゃいましたらご教示いただきたいです
https://wiki.archlinux.jp/index.php/%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E8%A8%AD%E5%AE%9A
https://alpha3166.github.io/blog/resources/fontconfig-user_ja.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ujimushi_sradjp

2023/02/22 12:37

ただのコメントなので,スルーして下さい。 IPAmj明朝フォントは`ttf`ファイルで,`ttc`ではなく太字が別ファイルで用意されているというのではないので,フォント自体には太字が含まれていません。 Windowsの場合は,OS側の機能だったかでBold体が無いフォントでも疑似的(少しずらして重ね打ち?)にBold体を表示する機能があった気がします。 ですので,Linuxの場合IPAmj明朝では太字は表示されないはずなのですが,日本語では明朝のBold体の代わりにゴシックを表示させる(というか本来こちらが本筋?)ことがあります。 ですので,太字と思ったら実はIPAGothicで,太字が表示されても本当かどうかはやぶの中ということもありそうです。
kyrieCo

2023/03/16 05:28

ご回答ありがとうございます。ご指摘の通り、IPAmj明朝フォントに太字ありませんでした!
guest

回答1

0

自己解決

IPAmj明朝フォントには太字がなかったため、太字の場合は源ノ明朝で代替させることによって解決できました。
fontconfigで記述した上書きする設定は以下の記述で上手くいきました。

xml

1<?xml version="1.0"?> 2<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> 3<fontconfig> 4 <match target="pattern"> 5 <edit name="family" mode="assign" binding="strong"> 6 <string>IPAmj明朝</string> 7 </edit> 8 </match> 9 <match target="pattern"> 10 <test name="weight" compare="more_eq"> 11 <const>bold</const> 12 </test> 13 <edit mode="prepend" name="family" binding="strong"> 14 <string>SourceHanSerifJP</string> 15 </edit> 16 </match> 17</fontconfig>

投稿2023/03/16 05:30

kyrieCo

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問