Chemfigの矢印に隙間がある

Chemfigの矢印に隙間がある

次のような問題が発生しました。chemfig で <-> 矢印を描くと、真ん中に隙間ができてしまいます。面白いのは、矢印が右から左に向いている場合にのみ隙間ができることです。垂直の矢印は適切に描画されます。例を作成しましたが、例では逆になっています。左から右への矢印は完全に描画されませんが、右から左への矢印は完全に描画されます。

\documentclass{scrartcl}
\usepackage{chemfig}
\begin{document}    
\schemestart
    \chemfig{*6(------)}
    \arrow{<->}
    \chemfig{*6(------)}
    \arrow{<->}[90]
    \chemfig{*6(------)}
    \arrow{<->}[180]
    \chemfig{*6(------)}
\schemestop
\end{document}

例

誰かアイデアはありますか?chemfigのドキュメントをすでに調べましたが、何も見つかりませんでした。こんにちは、Moritz

答え1

編集: 質問に記載されている問題は、1.31chemfig のバージョン (矢印の「元の定義」<->が取得されるバージョン) で再現可能です。バージョン 1.0 では、1.34問題は発生しなくなり、目的の出力が得られます。


<->次の例では、180°回転してもギャップが表示されない矢印タイプの修正バージョンが含まれています。

\documentclass{scrartcl}
\usepackage{chemfig}

\makeatletter
\definearrow3{<->}{%
    \CF@arrow@shift@nodes{#3}%
    \path(\CF@arrow@start@node)--(\CF@arrow@end@node)%
            node[pos=0.5,sloped](\CF@arrow@start@node1){}node[pos=0.5,sloped](\CF@arrow@end@node1){};%
    \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@start@node1)--(\CF@arrow@end@node);%
    \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@end@node1)--(\CF@arrow@start@node);%
    \CF@arrow@display@label{#1}{0.5}+\CF@arrow@start@node{#2}{0.5}-\CF@arrow@end@node
}
\makeatother

\begin{document}    
\schemestart
    \chemfig{*6(------)}
    \arrow{<->}[0]
    \chemfig{*6(------)}
    \arrow{<->}[-90]
    \chemfig{*6(------)}
    \arrow{<->}[180]
    \chemfig{*6(------)}
\schemestop
\end{document}

ここに画像の説明を入力してください

これを元の定義と比較するとchemfig.tex

\definearrow3{<->}{%
    \CF@arrow@shift@nodes{#3}%
    \path(\CF@arrow@start@node)--(\CF@arrow@end@node)%
            node[pos=0.5,sloped,xshift=-1pt](\CF@arrow@start@node1){}node[pos=0.5,sloped,xshift=1pt](\CF@arrow@end@node1){};%
    \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@start@node1)--(\CF@arrow@end@node);%
    \expandafter\draw\expandafter[\CF@arrow@current@style](\CF@arrow@end@node1)--(\CF@arrow@start@node);%
    \CF@arrow@display@label{#1}{0.5}+\CF@arrow@start@node{#2}{0.5}-\CF@arrow@end@node
}

オプションを削除したことがわかりますxshift

関連情報