चेम्फिग पॉलीमर में मल्टीपल ब्रैकेट्स - त्रुटियों से छुटकारा नहीं पा सकते हैं

Aug 17 2020

मैं chemfigअधिकार का उपयोग करके पॉलिमराइजेशन प्रक्रिया दिखाते हुए एक रिसाव प्राप्त करने के लिए संघर्ष कर रहा हूं ।

यह वह कोड है जिसका मैं उपयोग कर रहा हूं:

\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}]कोई संबंधित बांड नहीं है, इसलिए नोड्स leftऔर rightकभी नहीं बनाए जाते हैं।

विकल्प 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 @ {लेफ्ट, 0.5} to@ {लेफ्ट, 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}