Der Chemfig-Pfeil hat eine Lücke

Der Chemfig-Pfeil hat eine Lücke

Ich habe folgendes Problem. Wenn ich mit Chemfig einen <->-Pfeil zeichne, hat er in der Mitte eine Lücke. Das Lustige ist, dass die Lücke nur besteht, wenn mein Pfeil von rechts nach links geht. Vertikale Pfeile werden richtig gezeichnet. Ich habe ein Beispiel gemacht, aber in dem Beispiel ist es umgekehrt. Der Pfeil von links nach rechts wird nicht vollständig gezeichnet, während der von rechts nach links gezeichnet wird.

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

Beispiel

Hat jemand eine Idee? Ich habe die Dokumentation von Chemfig bereits durchgesehen, konnte aber nichts finden. Grüße Moritz

Antwort1

BEARBEITEN: Das in der Frage beschriebene Problem ist mit der Version 1.31von Chemfig (von wo die „ursprüngliche Definition“ des <->Pfeils stammt) reproduzierbar. Mit der Version 1.34tritt das Problem nicht mehr auf und die gewünschte Ausgabe wird erhalten.


Das folgende Beispiel enthält eine modifizierte Version des <->Pfeiltyps, bei der die Lücke nicht angezeigt wird, wenn er um 180° gedreht wird

\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}

Bildbeschreibung hier eingeben

Vergleicht man dies mit der ursprünglichen Definition vonchemfig.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
}

xshiftSie können sehen, dass ich die Optionen entfernt habe .

verwandte Informationen