Стрелка 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

EDIT: Проблема, описанная в вопросе, воспроизводится с версией 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опции.

Связанный контент