数式記号に日本語フォントを使うには

数式記号に日本語フォントを使うには

- 土屋 勝 の投稿
返信数: 10
続けて質問すみません

本文をリュウミンRとCentury Old Style、囲み記事を新ゴMで組んでいるのですが、本文の数式では
数字、=、+、-、×、±、μ、εなどの記号はリュウミンR
アルファベットはCentury Old Style
囲み記事は数式もすべて新ゴM
という指示が入ってきました。

texファイルにおいてアルファベット、数字、=、+、-は1バイトにしており、×は\times、±は\pm、μは\mu、εは\varepsilonと書いてあります。連分数やルート、下付き添え字、上付き添え字、別行建て数式は多用されています。

プリアンブル部かマクロを書いて一発で指定する方法はあるでしょうか。

土屋 勝 への返信

Re: 数式記号に日本語フォントを使うには

- Akira Kakuto の投稿
> プリアンブル部かマクロを書いて一発で指定する方法はあるでしょうか。
おそらく無いと思います。
ご存じと思いますが、数式については、それ自身に対してちゃんとした
パッケージを作成する必要があると思います。
この作業は、テキストだけのパッケージに比べてもかなり大変ではないかと
思います。フォントの調査と、各数学記号のわりあて等々。
参考になるものを探し、研究して完成したら公開して戴くと有難いと思います。
気難しいクライアントをお持ちで、大変だと思います。

土屋 勝 への返信

Re: 数式記号に日本語フォントを使うには

- 安田 亨 の投稿
数式にCentury Old Styleを使うパッケージceo.styというスタイルを作って,公開している者です.新ゴMをフォントエディターで開いて,欧文のすべての文字,数字を吸い出し,貼り付けて,数式用欧文フォントを作ります.いま,実際に開いてみました.フォントの作成自体は単に貼り付けるだけであれば数分で,できます.ただし,tfmファイルの作成,実際に組んでみて位置の微調整など必要です.細かな手順を書くのは大変です.
しかし,新ゴMって,フォントがローマンですよね.イタリックがあるのですか?数式はイタリックが基本なので違和感を感じます.
もし,新ゴMのフォントをイタリックにしろということなら,単純にフォントエディターでイタリックを掛けるか,イラストレータで1文字ずつ描いていくかで,作業量が大きく違います.
土屋 勝 への返信

Re: 数式記号に日本語フォントを使うには

- 本田 知亮 の投稿
いやはや・・・大変ですね。。。
さすがにそこまでの要求をされたことは
ありません

mathcodeを8000にして
実質的にactiveにして
中身を切り替えて
地道に一個一個書き換える
くらいしか思いつきません.

クイックハックで不都合があるかどうか
まるでわかりませんが,
こんな感じです.

\documentclass{jarticle}
\makeatletter

%% 文字の細工
%\DeclareFunnyMath#1#2#3
%%#1: 分類
%%#2: 文字
%%#3: 数式モード内での出力
%%#2と#3に実質的に同じ文字があるとNG
%%ex. NG \DeclareFunnyMathLetter{\mathalpha}{y}{\mbox{$y$}}%

\def\DeclareFunnyMath#1#2#3{%
\mathcode`#2="8000%"
\@namedef{sp@#2}{%
\ifmmode#1{#3}\else{#2}\fi}%
\begingroup
\catcode`#2=\active
\lccode`~=`#2%
\lowercase{\def\x{\def~{\csname sp@#2\endcsname}}}%
\expandafter\endgroup\x
}%

\DeclareFunnyMath{\mathrel}{=}{\mbox{\textgt{=}}}%
\DeclareFunnyMath{\mathalpha}{y}{\mbox{\textit{x}}}%
\DeclareFunnyMath{\mathalpha}{x}{\mbox{\textbf{y}}}%

\makeatother
\begin{document}
ふつうの等号 =
\par
xyzfi\textit{xyzfi}普通の英文
\par
数式内$y=x$
\end{document}

安田先生
>新ゴMって,フォントがローマンですよね

一次変換で斜めにするしかないです.
italicはデザインが違うのであきらめて
obliqueで進めます.
dviwareで斜めにさせてもいいのですが
文字が重なると困るのでTeX側で変形させます.
#確か2chで,2次元で
#回転と拡大で生成される群に
#「斜め」が含まれるから云々
#という議論が昔ありました

ありがたいことに,回転・拡大による斜体は
SHIMAさん,しっぽ愛好家さん,ZRさんが
処理を公開してくれています
数式で解説してくれているZRさんのところへの
リンクをつけます.
http://zrbabbler.sp.land.to/lualatexlua.html
の事例2です
本田 知亮 への返信

Re: 数式記号に日本語フォントを使うには

- 安田 亨 の投稿
今,フォントを開いて,ずっと見て見たら,Decimalで,1737番から1762番にイタリック大文字,1769番から1794番にイタリック小文字が入っていますね.aがリーゼント(と,勝手に呼んでいます)で,ヒョイと髪が出ているのが気になりますが.こういうのは,数式では使わないので.髪を切りたい.
本田さんの方法,すごいですね.

本田さんの方法で,1769番から1794番を呼び出して置き換えておけば,できますか?
安田 亨 への返信

Re: 数式記号に日本語フォントを使うには

- 本田 知亮 の投稿
>1737番から1762番にイタリック大文字,1769番から1794番にイタリック小文字が入っていますね

あれ,そんなあたりでしたっけ.
フォントエディタで見えてる番号は
CIDではないのかもしれませんが,
CIDで9477あたりから斜体が始まってますね
ただ,ここらの文字は和文扱いに見えるので
使っても見栄えがいいかはわかりません.

>1769番から1794番を呼び出して置き換えておけば,できますか

数式モードの文字を無理やり置き換えているだけなので
NGのケースを除いて何でも入るとは思います.

基本的にはフォントそのものには触らず
アクセスする方法を制御するのが
基本だと思いますので
マクロならこういうことになるか,
もうちょっとシステムよりになれば
tfm/vf/mapを構築する方法になるのだと思いますが
数式の場合,tfmへ要求される項目が
複雑なのでつらいです.
本田 知亮 への返信

Re: 数式記号に日本語フォントを使うには

- 山本 和義 の投稿
手元にある OpenType フォントは AdobeReader 付属の小塚フォントぐらいなので
それを見てみると CID の 9477 あたりからのグリフ,プロポーショナルですね,使えそう.

OTF パッケージで \CID{9477} とかして無理やり出してみると,文字は出るが
メトリックにやられて組みがダメ(まあ,いろいろに当たり前なのですが).
しかし,ZR さんの PXacid パッケージを使うと,tfm やら vf やらダーッと作って
くれて,イタリックシェープにしてやれば上記の文字がうまく使えているみたいです.

さすがに数式用の tfm までは作ってはくれないのだけど,本田さんのコードを使えば
テキスト用のもののままでOK(数式用の微調整をやれと言われると逆に困ったことに
なるかもしれないけど).PXacid パッケージでは,OT1 のグリフがイタリックまで
含めて一揃い使えるみたいだから,アルファベット・数字・+, -,= 等の基本記号を
置き換えるといった用途なら行けそうですね.ギリシャ文字のプロポーショナルは
Adobe-Japan1 には無いみたいなので,そこはつらいですが.
山本 和義 への返信

Re: 数式記号に日本語フォントを使うには

- 安田 亨 の投稿
新ゴMって,A-OTF-ShinGoPro-Mediumですよね?
Decimalで6313からイタリックのアルファ,ベータなど,ギリシャ文字があります.アットマークに,イタリックの,リーゼントでない小文字aがありますね.形はわかりますので,数式フォントを作ろうと思えばできます.
空集合やら,相似などの記号もあります.丸括弧や,ひげ括弧もちゃんと合成用の部品もあります.
問題は,本田さん方式でやるか,ちゃんと数式用フォントを作るかだけのような気がします.
山本 和義 への返信

Re: 数式記号に日本語フォントを使うには

- 本田 知亮 の投稿
>それを見てみると CID の 9477 あたりからのグリフ,プロポーショナルですね
あ,そうなんですか
見た目でいい加減なこといってしまいました.
すみません,ご指摘感謝します.

>ZR さんの PXacid パッケージを使うと,tfm やら vf やらダーッと作ってくれて,
こんなすごいのがあったのですね
全然知りませんでした.手書き作業も含めて
mapやらvfの対応表作ったりしてました.

>OK(数式用の微調整をやれと言われると逆に困ったことに
なるかもしれないけど)
きっと何かが起こるでしょう(^^;
要は数式でちまちま
\mbox{}で囲むのが面倒だというコンセプトですので
本田 知亮 への返信

Re: 数式記号に日本語フォントを使うには

- 土屋 勝 の投稿
皆様方、コメントありがとうございます。

実例をあげていただいた方法を試してみました。単体だと動くのですが制作中のファイルでは他の設定とあたっているのか、ダメでした。もう時間的にトライしている余裕がなくなりました。

クライアントには「過去、日本語フォントで数式を組んだ人はいません。数式はCentury Old Styleでやらせてください」と返しました。

同時進行している1冊がInDesignで組まれており、そちらのレイアウト指定に合わせようとなった結果です。InDesignは合成フォントの設定で、半角欧文と半角数字で異なるフォントを割り当てられるのですね。最初の打ち合わせ不足が響いてしまいました。
土屋 勝 への返信

Re: 数式記号に日本語フォントを使うには

- 安田 亨 の投稿
よく考えたら,「Century Old Styleで」この設定とフォントの作成は,どうされたのでしょうか?これを自前でされたのであれば,同じようにできると思いますが.