名前: 本田 日時: 2007-02-24 12:19:07 IPアドレス: 220.147.90.*
>>47075 遅レスですが. 根本的にはフォント定義の部分から書き直すのが筋だと思いますが, フォント変更コマンドのほうを書き直してみます. >HTML は,<em class="caution" のようにクラスやIDを指定できるので, >マークアップしやすいですね. これはそういう風にマクロを準備すればいいだけの話ですよ. 試みに\em/\emphにオプションを導入してみます {\em[class=XXXX] 強調対象} \emph[class=XXXX]{強調対象ABCD} という書式を許します.XXXXにはあらかじめ定義された属性を記述します とりあえず「caution」「default」を定義してみます cautionでは和文ゴシック・欧文サンセリフ, defaultではpLaTeX2eの\em/\emphのデフォルト, これら以外の場合は何も変化しません. また,「動く引数」に入っても大丈夫なようにRobustにしておきます. \documentclass{jarticle} \usepackage{keyval} \makeatletter \def\font@class@caution{\gtfamily\sffamily} \def\font@class@default{\@nomath\em \ifdim \fontdimen\@ne\font >\z@ \mcfamily \upshape \else \gtfamily \itshape \fi} \define@key{em}{class}[default]{\def\changed@em@font{\csname font@class@#1\endcsname}} \DeclareRobustCommand\em{\kernel@ifnextchar[{\@em}{\@em[class=default]}} \def\@em[#1]{\setkeys{em}{#1}\@@em} \def\@@em{\@nomath\em\changed@em@font} \DeclareRobustCommand\emph[1][class=default]{\@emph{#1}} \def\@emph#1{\setkeys{em}{#1}\@@emph} \def\@@emph#1{% \ifmmode \nfss@text{\changed@em@font#1}% \else \hmode@bgroup \text@command{#1}% \changed@em@font\check@icl #1\check@icr \expandafter \egroup \fi } \makeatother \begin{document} {\em AAAAAAaあああああああああ} {\em[class=caution] AAAAAAaあああああああああ} {\em[class=undefined] AAAAAAaあああああああああ} \section{\emph{AAAAAAaあああああああああ}} \emph[class=caution]{AAAAAAaあああああああああ} \end{document} ============ \DeclareRobustCommandを勘違いしてて 無限ループを起こしてはまりました(^^;; \DeclareRobustCommand\HOGE{....} を \let\orgHOGE\HOGE \DeclareRobustCommand\HOGE{....\orgHOGEを使った処理...} とするとはまるのでご注意を.
この書き込みへの返事: