다음과 같은 문제가 발생했습니다. 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.31
chemfig 버전(화살표의 '원래 정의'를 <->
가져온 위치)에서 재현 가능합니다. 버전에서는 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
옵션이 제거되었습니다.