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 的文檔,但找不到任何東西。問候莫里茨

答案1

編輯:問題中描述的問題可以用1.31chemfig 的版本重現(從箭頭的「原始定義」中<->取得)。使用該版本後,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選項。

相關內容