Chemfig Polymer의 여러 브래킷-오류 제거 불가

Aug 17 2020

chemfig오른쪽을 사용하여 중합 공정을 보여주는 Reaktion을 얻기 위해 고군분투하고 있습니다.

이것은 내가 사용하는 코드입니다.

\begin{figure}[htb!]
\centering
\schemestart
\chemfig{R-C(-[2])(-[6])-C(-[2])(-[6])-C(-[2])(-[6])-\lewis{0.,C}(-[2])(-[6])}
\+
\chemfig{[@{left,0.5}]C(-[2])(-[6])=C(-[2])(-[6])[@{right,0.5}]}
%\polymerdelim[delimiters ={[]}, height = 40pt, indice = n]{left}{right}
\arrow
\chemfig{R-C(-[2])(-[6])-C(-[2])(-[6])-[@{left,0.5}]C(-[2])(-[6])-C(-[2])(-[6])-[@{right,0.5}]C(-[2])(-[6])-\lewis{0.,C}(-[2])(-[6])}
\polymerdelim[delimiters ={[]}, height = 40pt, indice = n]{left}{right}
\schemestop
\caption{}
\label{}
\end{figure}

이것은 현재 결과입니다.

어떤 이유로 두 번째 브래킷은 내가 원하는 방식이지만 첫 번째 브래킷은 그렇지 않습니다. 에서 만든 사양을 얻지 못하는 것 같아서 위 \polymerdelim의 라인도 추가해야 할 것 같습니다 \chemfig.

라인을 활성화하면

%\polymerdelim[delimiters ={[]}, height = 40pt, indice = n]{left}{right}

이 오류 메시지가 나타납니다.

! Package pgf Error: No shape named left is known.See the pgf package documentation for explanation.Type H <return> for immediate help.... \chemfig

누군가 나를 도울 수 있습니까?

감사합니다!

답변

2 muzimuzhiZ Aug 17 2020 at 10:43

chemfig섹션 13 의 문서 에서 구문 @{<name>, <coeff>}은 결합의 선택적 인수 시작 부분에서만 사용할 수 있습니다. 두 번째 \chemfig예에서

\chemfig{[@{left,0.5}]C(-[2])(-[6])=C(-[2])(-[6])[@{right,0.5}]}

선택적 인수 [@{left,0.5}]와는 [@{right,0.5}]아무런 채권, 따라서 노드를 해당하지 않았다 leftright생성되지 않습니다.

옵션 1

채권의 시작과 끝이 괜찮다면

\chemfig{C(-[2])(-[6])(-[@{left,0.5}4])=C(-[2])(-[6])-[@{right,0.5}]}
\polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n]{left}{right}

옵션 2

본드없는 스타일을 유지하려면를 사용 @{<name>}<atom>하여 원자에 노드를 추가하고 \polymerdelim옵션을 사용 open xshift하고 close xshift구분 기호의 위치를 ​​조정할 수 있습니다 . 이 경우 왼쪽 및 오른쪽 공간은 자동으로 조정되지 않습니다.

\chemfig{@{left}C(-[2])(-[6])=@{right}C(-[2])(-[6])}
\polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n, 
  open xshift=-8pt, close xshift=]{left}{right}

옵션 3

이것은 옵션 1의 변형으로, 시작 및 종료 채권이 지정되지만 그려지지는 않습니다 (채권 옵션에 의해 [,,,draw=none]). 더 나은 수평 간격을 얻기 위해이 두 결합도 단축됩니다 (결합 옵션 [,0.5,,,]) and the position of nodes are adjusted (from @ {left, 0.5} to@ {left, 1}`).

\chemfig{C(-[2])(-[6])(-[@{left,1}4,.5,,,draw=none])=C(-[2])(-[6])-[@{right,1},.5,,,draw=none]}
\polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n]{left}{right}

전체 예 :

\documentclass[margin=20pt]{standalone}
\usepackage{chemfig}

\begin{document}

\schemestart
  \chemfig{R-C(-[2])(-[6])-C(-[2])(-[6])-C(-[2])(-[6])-\lewis{0.,C}(-[2])(-[6])}
  \+
  %% option 1
  % \chemfig{C(-[2])(-[6])(-[@{left,0.5}4])=C(-[2])(-[6])-[@{right,0.5}]}
  % \polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n]{left}{right}
  %
  %% option 2
  % \chemfig{@{left}C(-[2])(-[6])=@{right}C(-[2])(-[6])}
  % \polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n, 
  %   open xshift=-8pt, close xshift=]{left}{right}
  %% option 3
  \chemfig{C(-[2])(-[6])(-[@{left,1}4,.5,,,draw=none])=C(-[2])(-[6])-[@{right,1},.5,,,draw=none]}
  \polymerdelim[delimiters={[]}, height=40pt, depth=, indice=n]{left}{right}
  \arrow
  \chemfig{R-C(-[2])(-[6])-C(-[2])(-[6])-[@{left,0.5}]C(-[2])(-[6])-C(-[2])(-[6])-[@{right,0.5}]C(-[2])(-[6])-\lewis{0.,C}(-[2])(-[6])}
  \polymerdelim[delimiters ={[]}, height=40pt, depth=, indice=n]{left}{right}
\schemestop

\end{document}