化学反応式とceo.sty

化学反応式とceo.sty

- takamasa 23 の投稿
返信数: 6
\documentclass[dvipdfmx]{jlreq}
\usepackage[version=3]{mhchem}
\usepackage{chemfig}
\usepackage{ceo}
\begin{document}
  \ce{H2O + Br2 <=> HBr + HBrO}

  \ce{2H2O + 2e- -> H2 + 2OH-}
\end{document}

ceo.styを利用した状態で, 上のようにして化学反応式を出力すると, 両側矢印の表示がおかしいことに加え, 電子の「\( e^{-} \)」のマイナスが2つに分かれてしまうのですが, ceo.styを宣言した状態で正常な表示をすることはできないのでしょうか?

※コンパイラー:upLaTeX

添付 IMG_1154.jpeg
takamasa 23 への返信

Re: 化学反応式とceo.sty

- 和田 勇 の投稿
誰も応答しないので、以前、高橋さんも、途中からサポートに
参加していたので覚えていらっしゃると思いますが
ceo の記号を使いたいと言う方のリクエストに対して、
kigou (含む事前定義)を読み込んだらという提案に準じて
力任せに ceo が構成するサブスタイルファイルを読み込んでみました。

結果は、構成するものを全部読み込んでも、申告された問題は生じませんでした。
添付のテストファイルを参考にしてください。

フルに使用してと言う場合は、 申告された問題は
ceo.sty 本体中の記述に起因すると思いますのでまだ追跡していませんが、
まず高橋さんが ceo をどう利用されているかお尋ねしたいと思います。


和田 勇 への返信

Re: 化学反応式とceo.sty

- takamasa 23 の投稿

返信ありがとうございます。

こちらではceo.styを全面的に使っており, 私の希望は表示がおかしくなるフォントのみ入れ替えたい,というものです。そこでLuaLaTeXを利用しようとここ数日の間で思いました。矢印に関しては少し強引ですがtikzの方を利用して以下のようになりました。残りは電子につく「-」(マイナス)を都合のいいフォントと入れ替えたいのですが…

\documentclass{jlreq}
\usepackage[version=3]{mhchem}
\usepackage{chemfig}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{myceo}
\pdfextension mapfile {+ceo.map}
\usepackage{luatexja-otf}
\usepackage{luatexja-fontspec}
\setmainfont[
    BoldFont           = ceorb, 
    ItalicFont         = ceoi, 
    BoldItalicFont     = ceoib, 
]{ceor}
\newcommand{\denshi}[1]{e^{#1{\notoserif -}}}
\begin{document}
\ce{H2O + Br2 -> HBr + HBrO}

\ce{H2O + Br2} \begin{tikzpicture}
   \draw[arrows={-Stealth[scale=0.75]}](0,0.05)--(0.6,0.05);
   \draw[arrows={-Stealth[scale=0.75]}](0.6,-0.05)--(0,-0.05);
\end{tikzpicture}\, \ce{HBr + HBrO}

\end{document}
添付 IMG_1158.jpeg
takamasa 23 への返信

Re: 化学反応式とceo.sty

- 和田 勇 の投稿
ceo の機能全部ですか、とすると私の知識では太刀打ちできないようです。
和田 勇 への返信

Re: 化学反応式とceo.sty

- takamasa 23 の投稿

時間をおいて考え直してみると, ceo.styの数式環境でのマイナスで代用できるのではないか, と思い実際にやってみると意図した表示に今のところはなっています。不具合等あればまたここでお力を借りたいと思います。ありがとうございました。

\documentclass{jlreq}
\usepackage[version=3]{mhchem}
\usepackage{chemfig}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{myceo}
\pdfextension mapfile {+ceo.map}
\usepackage{luatexja-otf}
\usepackage{luatexja-fontspec}
\setmainfont[
    BoldFont           = ceorb, 
    ItalicFont         = ceoi, 
    BoldItalicFont     = ceoib, 
]{ceor}
\begin{document}
\ce{H2O + Br2 -> HBr + HBrO}

\ce{H2O + Br2} \begin{tikzpicture}
   \draw[arrows={-Stealth[scale=0.75]}](0,0.05)--(0.6,0.05);
   \draw[arrows={-Stealth[scale=0.75]}](0.6,-0.05)--(0,-0.05);
\end{tikzpicture}\, \ce{HBr + HBrO}

\ce{H2 -> 2H+ + 2e^{$-$}}
\end{document}
添付 Screenshot_2024-08-04-12-38-44-25_f541918c7893c52dbd1ee5d319333948.jpg
takamasa 23 への返信

Re: 化学反応式とceo.sty

- 和田 勇 の投稿
蒸し返すようですが気になった点をお知らせします。

数式もどちらかというと外野のその外だし
まして化学式はルールさへわからないのですが...

「ceo.styの数式環境でのマイナスで代用」とのことでしたら
ceo の $\Longleftrightarrow$  $\longleftrightarrow$ で済むのにな ...
と思って、 \ce{<-->} と tikz での実装でもレンダリングの結果が非常に
類似しているのに気がつきました。

老婆心ながら、今後の記述に「<-->」が現れる前に対処をされてはいかが
と思う次第です。

なお添付のソースは、 mhchem.sty で定義されている、「<=>」などに関連
する部分のものを抜き出して、それぞれ同レンダリングされかテスト用です。

スクリーンショットは、上記ソースを ceo.sty を読み込まない、読み込む
で処理したものを並べて表示しコメントを付したものです。

参考になればと思います。

なお lualatex ではなく uplatex で検証はしていますが ...

添付 スクリーンショット 2024-08-04 23.44.35.png