Re: Sans serif体のギリシャ文字

名前: misc
日時: 2004-06-08 20:14:08
IPアドレス: 219.108.35.*

>>29535 >Sans serif体のギリシャ文字($$内でのSans serif体) amsmath パッケージを用いない状態では,数式中の大文字のギリシャ文字は \mathsf などの数式用書体変更マクロに追随するはずですが,小文字に関しては \mathsf などは無視されるはずです. また,サンセリフ体の(数式中の)ギリシャ小文字用のマクロも デフォルトでは用意されていません. そこで,必要があれば,然るべき設定を自力で行うことになるでしょう. # 例のごとく,私は“既製品”については存じません. # また,下記の説明では,数式用フォントの取り扱いの範囲で説明します. # つまり,ギリシャ語環境を(充分に多くの書体が扱えるような状態で) # 整備した後,数式中で \textsf{<出力したい文字に対応する記述>} のようにする, # という方法については扱わないものとします. まず,\alpha などに対応する文字コードに“アルファ”の字形が割り当てられている フォントは限られているので,\alpha のような小文字のギリシャ文字のための (数式用)コマンドは(数式用)書体変更マクロの影響を受けないように 定義されています. # もし,\alpha などを単純に数式用書体変更マクロに追随するように # 定義してしまうと,次の例に見られるような不都合が生じます. # \documentclass{jarticle} # \DeclareMathSymbol{\alpha}{\mathalpha}{letters}{"0B} # % オリジナルの定義では \mathord となっているところを \mathalpha に変更 # \begin{document} # $\alpha$ and $\mathrm{\alpha}$ # \end{document} そのため,\alpha などを数式用書体変更マクロに連動させるのは 単純な方法ではできませんが,“サンセリフ体のギリシャ小文字”に対応する コマンドを用意して構わなければ次のようにすることができます. # amsmath パッケージを用いた場合のギリシャ大文字に関しても,下記の例と同様に # サンセリフ体のギリシャ大文字用のコマンドを導入すればよいわけです. ### NFSS 関係のユーザコマンドについては(『LaTeX コンパニオン』などの) ### 然るべき解説を参照してください. # なお,この例では,サンセリフ体のギリシャ小文字としてフォント ccmi10 の # ものを用いましたが,もちろん,これはあまり適切な選択とはいえません #(そもそも,“サンセリフ体”ではないようですし…). # 然るべきデザインのフォントが利用可能であれば, # 適宜,他のフォントを用いてください. \documentclass{jarticle} % フォント ccmi10 を使用するための設定 % フォント名および“属性”の名称は必要に応じて変更してください. \DeclareFontFamily{OML}{ccm}{} \DeclareFontShape{OML}{ccm}{m}{it}{<-> ccmi10}{} % 属性 OML/ccm/m/it のフォントを使用する数式グループの導入 \DeclareSymbolFont{sfgreeks}{OML}{ccm}{m}{it} % “数式グループ sfgreeks を用いるギリシャ小文字”用コマンドの定義 % この例で用いている記述は,ファイル fontmatk.ltx にある \alpha などの % 定義を書き換えただけですが,使用するフォントによっては % \DeclareMathSymbol の最後の引数(文字コード)の値を変更する必要があります. \DeclareMathSymbol{\sfalpha}{\mathord}{sfgreeks}{"0B} \DeclareMathSymbol{\sfbeta}{\mathord}{sfgreeks}{"0C} \DeclareMathSymbol{\sfgamma}{\mathord}{sfgreeks}{"0D} \DeclareMathSymbol{\sfdelta}{\mathord}{sfgreeks}{"0E} \DeclareMathSymbol{\sfepsilon}{\mathord}{sfgreeks}{"0F} \DeclareMathSymbol{\sfzeta}{\mathord}{sfgreeks}{"10} \DeclareMathSymbol{\sfeta}{\mathord}{sfgreeks}{"11} \DeclareMathSymbol{\sftheta}{\mathord}{sfgreeks}{"12} \DeclareMathSymbol{\sfiota}{\mathord}{sfgreeks}{"13} \DeclareMathSymbol{\sfkappa}{\mathord}{sfgreeks}{"14} \DeclareMathSymbol{\sflambda}{\mathord}{sfgreeks}{"15} \DeclareMathSymbol{\sfmu}{\mathord}{sfgreeks}{"16} \DeclareMathSymbol{\sfnu}{\mathord}{sfgreeks}{"17} \DeclareMathSymbol{\sfxi}{\mathord}{sfgreeks}{"18} \DeclareMathSymbol{\sfpi}{\mathord}{sfgreeks}{"19} \DeclareMathSymbol{\sfrho}{\mathord}{sfgreeks}{"1A} \DeclareMathSymbol{\sfsigma}{\mathord}{sfgreeks}{"1B} \DeclareMathSymbol{\sftau}{\mathord}{sfgreeks}{"1C} \DeclareMathSymbol{\sfupsilon}{\mathord}{sfgreeks}{"1D} \DeclareMathSymbol{\sfphi}{\mathord}{sfgreeks}{"1E} \DeclareMathSymbol{\sfchi}{\mathord}{sfgreeks}{"1F} \DeclareMathSymbol{\sfpsi}{\mathord}{sfgreeks}{"20} \DeclareMathSymbol{\sfomega}{\mathord}{sfgreeks}{"21} \DeclareMathSymbol{\sfvarepsilon}{\mathord}{sfgreeks}{"22} \DeclareMathSymbol{\sfvartheta}{\mathord}{sfgreeks}{"23} \DeclareMathSymbol{\sfvarpi}{\mathord}{sfgreeks}{"24} \DeclareMathSymbol{\sfvarrho}{\mathord}{sfgreeks}{"25} \DeclareMathSymbol{\sfvarsigma}{\mathord}{sfgreeks}{"26} \DeclareMathSymbol{\sfvarphi}{\mathord}{sfgreeks}{"27} \begin{document} $\alpha$ and $\mathsf{\alpha}$ and $\sfalpha$ \end{document} [追記] 今の例に加え,次の記述を(\begin{document} の直前にでも)追加すれば, とりあえず \alpha なども \mathsf に追随するようになりますが, いくぶん大掛かりになります. また,これだけでは \mathsf *だけ* にしか対応せず,\mathbf などは 効かないままです(\mathbf などにも対応させるように拡張するのは 容易でしょうけれども). \makeatletter % オリジナルの \alpha などの別名を用意 \DeclareMathSymbol{\defaultalpha}{\mathord}{letters}{"0B} \DeclareMathSymbol{\defaultbeta}{\mathord}{letters}{"0C} \DeclareMathSymbol{\defaultgamma}{\mathord}{letters}{"0D} \DeclareMathSymbol{\defaultdelta}{\mathord}{letters}{"0E} \DeclareMathSymbol{\defaultepsilon}{\mathord}{letters}{"0F} \DeclareMathSymbol{\defaultzeta}{\mathord}{letters}{"10} \DeclareMathSymbol{\defaulteta}{\mathord}{letters}{"11} \DeclareMathSymbol{\defaulttheta}{\mathord}{letters}{"12} \DeclareMathSymbol{\defaultiota}{\mathord}{letters}{"13} \DeclareMathSymbol{\defaultkappa}{\mathord}{letters}{"14} \DeclareMathSymbol{\defaultlambda}{\mathord}{letters}{"15} \DeclareMathSymbol{\defaultmu}{\mathord}{letters}{"16} \DeclareMathSymbol{\defaultnu}{\mathord}{letters}{"17} \DeclareMathSymbol{\defaultxi}{\mathord}{letters}{"18} \DeclareMathSymbol{\defaultpi}{\mathord}{letters}{"19} \DeclareMathSymbol{\defaultrho}{\mathord}{letters}{"1A} \DeclareMathSymbol{\defaultsigma}{\mathord}{letters}{"1B} \DeclareMathSymbol{\defaulttau}{\mathord}{letters}{"1C} \DeclareMathSymbol{\defaultupsilon}{\mathord}{letters}{"1D} \DeclareMathSymbol{\defaultphi}{\mathord}{letters}{"1E} \DeclareMathSymbol{\defaultchi}{\mathord}{letters}{"1F} \DeclareMathSymbol{\defaultpsi}{\mathord}{letters}{"20} \DeclareMathSymbol{\defaultomega}{\mathord}{letters}{"21} \DeclareMathSymbol{\defaultvarepsilon}{\mathord}{letters}{"22} \DeclareMathSymbol{\defaultvartheta}{\mathord}{letters}{"23} \DeclareMathSymbol{\defaultvarpi}{\mathord}{letters}{"24} \DeclareMathSymbol{\defaultvarrho}{\mathord}{letters}{"25} \DeclareMathSymbol{\defaultvarsigma}{\mathord}{letters}{"26} \DeclareMathSymbol{\defaultvarphi}{\mathord}{letters}{"27} % \alpha などを数式用書体変更マクロにある程度追随するように再定義 \@for\@tempa:=% alpha,beta,gamma,delta,epsilon,zeta,eta,theta,% iota,kappa,lambda,mu,nu,xi,pi,rho,sigma,tau,upsilon,phi,% chi,psi,omega,varepsilon,vartheta,varpi,varrho,varsigma,varphi% \do{% \expandafter\edef\csname\@tempa\endcsname{% {\noexpand\@ifundefined{\noexpand\@curr@math@shape\@tempa}% \expandafter\noexpand\csname default\@tempa\endcsname {\noexpand\@nameuse{\noexpand\@curr@math@shape\@tempa}}}}} % \mathsf に対し,上記の再定義に合うように細工を施します \let\savedmathsf\mathsf \DeclareRobustCommand*\mathsf[1]{% {\def\@curr@math@shape{sf}\savedmathsf{#1}}} \def\@curr@math@shape{default} \makeatother

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)