どうも思うような動きになっていなくて、これが正しい動作なのかもよくわからないのですが、とりあえず自分のやりたい事ができる方法がわかりました。
やりたいことは Osaka bold が指定された場合の表示が汚くなるので使用するフォントを変えてしまう事です。 次のように記述した独自のスタイルシートを用意して Safari の環境設定で指定して使用しています。
@font-face {
font-family: "Osaka";
src: local("Osaka");
}
@font-face {
font-family: "Osaka";
font-weight: bold;
src: local("Lucida Grande");
}
body {
font-family: "Lucida Grande","Hiragino Kaku Gothic Pro";
}
2つ目の @font-face で "Lucida Grande" を指定していますが、これで半角英数は "Lucida Grande" で日本語は "Hiragino Kaku Gothic Pro" にフォールバックされて表示されるようになります。 本当は unicode-range を使用して明示的に指定した方が良いのかもしれませんが面倒なのでやっていません。
bold の時だけ変えたいのですが、最初の @font-face が無いと normal の時もフォントが変わってしまいます。
2つ目の指定では、bold の場合は "Hiragino Kaku Gothic Pro W6" などと指定できた方が思い通りになりそうなのですが、そうすると "Hiragino Kaku Gothic Pro W6" をさらに太らせた表示になってしまいます。
どうなるのが本当なのだかよくわからないですし、思い通りにならないなという感じです。