\chemname とは
レンダリング結果


TeXソース
TeXソース
入力コード
\documentclass[b4j,landscape,twocolumn,10pt,twoside,noaux]{tetsujsarticle}
\usepackage{tetsuchem}
\makeatletter
\begin{document}
\小見出し{\mtt{\\chemname} とは}
構造式(でなくても何でもよいですが)の下に化合物名を表記するためのコマンドです。
\begin{jquotation}(2zw)[5pt]\ttfamily
\verb|\chemname{構造式描画命令}{化合物名}|
\end{jquotation}
\noindent の形で使います。
\br1
\小見出し{\mtt{\\chemname} の特徴}
「過去に使った最も深い位置」を記憶しており,その深さに応じた位置に出力されます。これにより,化合物名の縦位置が揃うようになります。
\begin{枠囲み}{例}
\begin{align*}
\chemname{\cfig{CH3 - CH(-[6]OH) - CH3}}{$2-$\!\,プロパノール} \hspace{1zw}+\hspace{1zw} \chemname{\cfig{CH3 - C(=[2]O) - OH}}{酢酸} \hspace{1zw}\ce{->}\hspace{1zw} \chemname{\cfig{CH3 - CH(-[2]CH3) - O - C(=[2]O) - CH3}}{酢酸イソプロピル} \hspace{1zw}+\hspace{1zw} \ce{H2O}
\end{align*}
\end{枠囲み}
「$2-$\!\,プロパノール」の深さに揃っていることが分かります。
\br1
\小見出し{重要:\mtt{\\chemnameinit\{\}}}
\verb|\chemname| は「過去に使った最も低い位置」を記憶していますが,その記憶はリセットしない限り「次の反応式」以降にも持ち越されてしまいます。その記憶をリセットするのが \verb|\chemnameinit{}| です。
よって,\gt{一つの反応式が終わったら毎回 \mtt{\\chemnameinit\{\}} でリセットする}ようにするとよいでしょう。\gt{反応式のはじめに毎回 \mtt{\\chemnameinit\{\}} でリセットする}のもよいでしょう。
\begin{枠囲み}[リセット忘れ]{悪い例}
\begin{align*}
&\chemname{\cfig{CH3 - CH(-[6]OH) - CH3}}{$2-$\!\,プロパノール} \hspace{1zw}+\hspace{1zw} \chemname{\cfig{CH3 - C(=[2]O) - OH}}{酢酸} \hspace{1zw}\ce{->}\hspace{1zw} \chemname{\cfig{CH3 - CH(-[2]CH3) - O - C(=[2]O) - CH3}}{酢酸イソプロピル} \hspace{1zw}+\hspace{1zw} \ce{H2O}\\[12pt]
&\chemname{\cfig{CH3 - CH2 - OH }}{エタノール} \hspace{1zw}+\hspace{1zw} \chemname{\cfig{CH3 - C(=[2]O) - OH}}{酢酸} \hspace{1zw}\ce{->}\hspace{1zw} \chemname{\cfig{CH3 - CH2 - O - C(=[2]O) - CH3}}{酢酸エチル} \hspace{1zw}+\hspace{1zw} \ce{H2O}
\end{align*}
\end{枠囲み}
この例では,1本目の反応式が終わった後にリセットせずに2本目の反応式を始めたため,2本目の反応式の化合物名が深い位置に来てしまっています。
\begin{枠囲み}[毎回リセット]{良い例}
\begin{align*}
&\chemnameinit{}\chemname{\cfig{CH3 - CH(-[6]OH) - CH3}}{$2-$\!\,プロパノール} \hspace{1zw}+\hspace{1zw} \chemname{\cfig{CH3 - C(=[2]O) - OH}}{酢酸} \hspace{1zw}\ce{->}\hspace{1zw} \chemname{\cfig{CH3 - CH(-[2]CH3) - O - C(=[2]O) - CH3}}{酢酸イソプロピル} \hspace{1zw}+\hspace{1zw} \ce{H2O}\chemnameinit{}\\[12pt]
&\chemnameinit{}\chemname{\cfig{CH3 - CH2 - OH }}{エタノール} \hspace{1zw}+\hspace{1zw} \chemname{\cfig{CH3 - C(=[2]O) - OH}}{酢酸} \hspace{1zw}\ce{->}\hspace{1zw} \chemname{\cfig{CH3 - CH2 - O - C(=[2]O) - CH3}}{酢酸エチル} \hspace{1zw}+\hspace{1zw} \ce{H2O}\chemnameinit{}
\end{align*}
\end{枠囲み}
\verb|\chemnameinit{}| によるリセットを行ったため,2本目の反応式の化合物名の位置が適切になっています。この例では,念のため,反応式の「はじめ」と「おわり」の両方でリセットをかけています。
\br1
\小見出し{\mtt{\\chemnameinit\{\}} の引数の意味 ~2つめ以降に最深の化合物名位置が来る場合~}
反応式の第2項以降に最も深い化合物名が来る場合,\verb|\chemnameinit{}| の引数にそれを事前に入れておくことにより,その位置に揃えさせることができます。
\begin{枠囲み}{例}
\begin{align*}
\chemnameinit{\cfig{CH3 - CH(-[6]OH) - CH3}}\chemname{\cfig{CH3 - C(=[2]O) - OH}}{酢酸} \hspace{1zw}+\hspace{1zw} \chemname{\cfig{CH3 - CH(-[6]OH) - CH3}}{$2-$\!\,プロパノール} \hspace{1zw}\ce{->}\hspace{1zw} \chemname{\cfig{CH3 - CH(-[2]CH3) - O - C(=[2]O) - CH3}}{酢酸イソプロピル} \hspace{1zw}+\hspace{1zw} \ce{H2O}\chemnameinit{}
\end{align*}
\end{枠囲み}
この例では,第2項の「$2-$\!\,プロパノール」の位置に第1項の「酢酸」の位置を揃えさせるために,先にダミーの$2-$\!\,プロパノールの構造式を \mtt{\\chemnameinit\{\}} の引数に入れています。
なお,\mtt{\\chemnameinit\{...\}} は \mtt{...} の深さに「固定する」わけではありませんので,その後より深い位置に化合物名が来た場合は,それ以降はその深さに揃えられます。
\br1
\小見出し{\mtt{\\chemname*}:記憶を考慮せずその項にとって自然な位置に出力}
\mtt{\\chemname*} を使えば,現在記憶されている化合物名の深さを考慮せず,その項にとって自然な位置に出力されます。
\begin{枠囲み}{例}
\begin{align*}
\chemnameinit{} \chemname{\raisebox{6pt}{\cfig{C(-[3]H)(-[1]C(=[2]O)-[0]OH)=[6]C(-[5]H)(-[7]C(=[6]O)-[0]OH)}}}{マレイン酸}\hspace{1zw}+\hspace{1zw} \chemname{\cfig{CH3 - CH(-[6]OH) - CH3}}{$2-$\!\,プロパノール} \hspace{1zw}\ce{->}\hspace{1zw} \chemname*{\ce{H2O}}{水} \hspace{1zw}+\hspace{1zw} \chemname{\niju{H}{HOOC}{H}{COOCH(CH3)2}}{マレイン酸イソプロピル} \chemnameinit{}
\end{align*}
\end{枠囲み}
この例では,「$2-$\!\,プロパノール」の位置は「マレイン酸」の位置に揃っているが,「水」の位置はその記憶を考慮せず,その項にとって自然な位置に出力されている点に注目してください。一方,「マレイン酸イソプロピル」の位置は再び「マレイン酸」の深さに戻っています。
\br1
\小見出し{複数行にわたる化合物名}
化合物名の中で \mtt{\\\\} を使えば強制改行でき,複数行にわたる化合物名が出力できます。自動的に中央揃えになります。
\begin{枠囲み}{例}
\begin{align*}
\chemnameinit{} \chemname{\phenyl \ce{SO3H}}{ベンゼンスルホン酸} \hspace{1zw}+\hspace{1zw} \ce{NaOH} \hspace{1zw}\ce{->}\hspace{1zw} \chemname{\phenyl \ce{SO3Na}}{ベンゼンスルホン酸\\ナトリウム} \hspace{1zw}+\hspace{1zw} \chemname{\ce{H2O}}{水} \chemnameinit{}
\end{align*}
\end{枠囲み}
化合物名を改行したときの行間隔をもっと詰めたいときは,次のように \verb|\chemname...| 全体を \verb|{\baselineskip10pt\lineskiplimit-\maxdimen...}| のようにして囲めば任意の行ピッチに調整できます。
\begin{枠囲み}{例}
\begin{align*}
\chemnameinit{} \chemname{\phenyl \ce{SO3H}}{ベンゼンスルホン酸} \hspace{1zw}+\hspace{1zw} \ce{NaOH} \hspace{1zw}\ce{->}\hspace{1zw} {\baselineskip10pt\lineskiplimit-\maxdimen\chemname{\phenyl \ce{SO3Na}}{ベンゼンスルホン酸\\ナトリウム}} \hspace{1zw}+\hspace{1zw} \chemname{\ce{H2O}}{水} \chemnameinit{}
\end{align*}
\end{枠囲み}
\br1
\小見出し{化合物名の縦位置の微調整}
\mtt{[]} オプションによって,縦位置を微調整できます。正の長さを入れると下に,負の長さを入れると上にずれます。\tt{デフォルトの深さに相当する値が0ptではなく1.5exである点に注意してください}。
(exとは,x-heightという高さで,「xという文字の高さ」を指します。)つまり,デフォルト位置よりももう少し下げようと思えば,1.5exよりも大きな数値を指定する必要があります。\mtt{1.5ex+5pt}といった演算式も指定できます。
\begin{枠囲み}{例}
\begin{align*}
\chemnameinit{}
\chemname{\phenyl \ce{SO3Na}}{ベンゼンスルホン酸\\ナトリウム}
\hspace{5zw}
\chemname[1.5ex+5pt]{\phenyl \ce{SO3Na}}{ベンゼンスルホン酸\\ナトリウム}
\hspace{5zw}
{\baselineskip9pt\lineskiplimit-\maxdimen\chemname[0pt]{\phenyl \ce{SO3Na}}{ベンゼンスルホン酸\\ナトリウム}}
\chemnameinit{}
\end{align*}
\end{枠囲み}
\end{document}