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

名前: ZR
日時: 2007-03-21 12:48:47
IPアドレス: 221.187.36.*

>>47494 >>47478 で紹介されてた biocon パッケージが「それ」に近いことを実現しています。 >>47491 こういう場合に私ならどうするかを述べておこうかなと思います。 命名者等まで含めた複雑な書式に対応するためには、>>47467 のようにベタ書き テキストを変換するというアプローチは無理があるので、>>47477 のように \Var や \Subsp で「マークアップ」するというアプローチにします。 例えば次のような仕様にします。 - 「学名」の全体を \sName{...} で表す。 - 亜種名(subsp.)を \Subsp{...} で表す。\Var 等、同類のものを用意する。 - その他の「地の書体で書くべきもの」(命名者等)を全部ひっくるめて \snN{...} で表す。 さらに、書体の選択の部分を下請けにして必要ならば変更できるようにします。 - \snTax で学名用の書体に変える - \snNoTax で地の書体に戻す 実用的にはこれは \emph(イタリック/直立が交換) で十分だと思います。(本当に元の 書体に戻すのは面倒なので)。 実装は非常に単純で下のようになります。 # 動物学の流儀での亜種と亜属を \Sgen と \Ssp としました。 \fi \documentclass[a4paper]{article} \def\sName#1{{\frenchspacing\snTax{#1}}} \def\snN#1{\snNoTax{#1}} \def\Var#1{\snNoTax{var.}~#1} \def\Subsp#1{\snNoTax{subsp.}~#1} % subspecies in botany \def\Ssp#1{#1} % subspecies in zoology \def\Sgen#1{\snNoTax{(\snTax{#1})}} \def\snTax{\emph} \def\snNoTax{\emph} \begin{document} \begin{itemize} \item \sName{Canis lupus} \item \sName{Canis lupus \snN{Linnaeus}} \item \sName{Canis lupus \snN{Linnaeus, 1758}} \item \sName{Lycopodium clavatum \snN{L. (1753)}} \item \sName{Vibrio cholerae \snN{Pacini 1854}} \item \sName{Panthera pardus \snN{(Linnaeus, 1758) Oken, 1816}} \item \sName{Pinus nigra \snN{J.F.Arnold} \Subsp{salzmannii} \snN{(Dunal) Franco}} \item \sName{Acanthocalycium klimpelianum \Var{macranthum}} \item \sName{Phalacrocorax carbo \Ssp{novaehollandiae} \snN{Stephens, 1826}} \item \sName{Cypraea \Sgen{Cypraea} tigris \snN{Linnaeus}} \end{itemize} \end{document}

この書き込みへの返事:

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