Re: 生物の学名を表現するマクロ

名前: ZR
日時: 2007-03-19 09:49:31
IPアドレス: 221.187.36.*

>>47467 LaTeX の内部マクロ \@ifnextchar を使うといいでしょう。 \def\test#1 {\@ifnextchar a{\@test@a}{\@test@not@a}} で、\test 以降の最初の空白までを #1 として、その直後が a ならば \@test@a に、そうでなければ \@test@not@a に展開されます。 # このままでは #1 が捨てられるので、\@test@a 等の引数にもう一度渡す # 必要があります。 # 自分で全部作るなら、\futurelet と \if を使うことになるでしょう。 ただ今の仕様だと Quercus mongolica var. grosseserrata ... Quercus mongolica varies. Thus ... のようなものを区別するためにかなり先まで先読みする必要があり、処理が かなり面倒かつ危険になります。 \sname{...} の形で用いて、それを特別な終端記号を付加した形に展開させる のがいいと思います。 \def\sname#1{\@sname#1 _} %末尾に " _" を追加 # ここで _ にしているのは、非数式では _ を使わないので。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)