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옵션이 제거되었습니다.

관련 정보