TransWikia.com

Catchfile and complex chemfig symbols

TeX - LaTeX Asked on October 10, 2020

An excellent suggestion for a way to call chemfig symbols stored in individual files from a common library was put forth here. I have tested the solution with a variety of relatively simple compounds / chemfig symbols. This issue shows a case where the proposed solution produces an error.

The issue is suspected to reside somewhere in the file writing and cat code handling.

Any suggestions on tweaks enabling the code to handle more complex compounds are greatly appreciated.

I have included the mwe here:

documentclass[english,border=1mm]{standalone}
usepackage[T1]{fontenc}
usepackage{chemfig}
usepackage{tikz}
usepackage{catchfile}
usepackage{mol2chemfig}%


tikzset{
  % #1 = left, #2 = lower, #3 = right, #4 = upper
  enlarge bounding box by/.style n args={4}{
    execute at end picture={
      path ([shift={(-#1, -#2)}]current bounding box.south west) --
            ([shift={(#3, #4)}]current bounding box.north east);
    }
  }
}

% chemfigdo
newcommand{chemfigdo}[2]{chemfig[#2]{#1}}%

% chemfiginput
newcommand{chemfiginput}[2][]{%
  CatchFileDef{chemfiginputtemp}{#2}{csname CF_sanitizecatcodeendcsname}%
  expandafterchemfigdoexpandafter{chemfiginputtemp}{#1}%
}%

% create new command for tikzpicture call
newcommandcallchemfigsymbol[1]{%
  chemfiginput[
      atom style={scale=chemfigscale},
      atom sep=chemfigatomsep,
      chemfig style={
        enlarge bounding box by={chemfigborder}{chemfigborder}{chemfigborder}{chemfigborder},
        baseline=(current bounding box.center),
        color=chemfigcolor,
        line width=chemfiglinewidth
      }
    ]{#1}%
}


begin{filecontents}{s_adenosyl_l_methionine.tex}
                   O% 6
           =[:95.9]% 26
                      (
               -[:35.9]O% 5
         -[:335.9,0.62]H% 50
                      )
          -[:155.9]% 24
                      (
              <:[:95.9]N% 10
                          (
             -[:155.9,0.62]H% 46
                          )
          -[:35.9,0.62]H% 45
                      )
                      (
         -[:155.9,0.62]H% 44
                      )
          -[:215.9]% 21
                      (
         -[:235.9,0.62]H% 39
                      )
                      (
         -[:315.9,0.62]H% 40
                      )
          -[:155.9]% 18
                      (
          -[:55.9,0.62]H% 34
                      )
                      (
         -[:135.9,0.62]H% 35
                      )
          -[:215.9]mcfabove{S}{_{mcfplus}}% 1
                      (
              -[:275.9]% 22
                          (
             -[:275.9,0.62]H% 42
                          )
                          (
               -[:5.9,0.62]H% 43
                          )
         -[:185.9,0.62]H% 41
                      )
          -[:155.9]% 17
                      (
          -[:55.9,0.62]H% 32
                      )
                      (
         -[:135.9,0.62]H% 33
                      )
          >[:215.9]% 13
                      (
         -[:332.9,0.62]H% 28
                      )
          -[:269.9]O% 2
          -[:197.9]% 16
                      (
              -[:125.9]% 15
                          (
                   -[:53.9]% 14
                              (
                      -[:341.9]% -> 13
                              )
                              (
                  -[:44.9,0.62]H% 29
                              )
                 <:[:107.9]O% 3
              -[:47.9,0.62]H% 36
                          )
                          (
             -[:116.9,0.62]H% 30
                          )
             <:[:179.9]O% 4
         -[:119.9,0.62]H% 37
                      )
                      (
         -[:314.9,0.62]H% 31
                      )
          <[:251.9]N% 7
    -[:197.8,0.994]% 19
           =^[:150]N% 9
            -[:210]% 27
                      (
           -[:150,0.62]H% 47
                      )
           =^[:270]N% 11
            -[:330]% 25
                      (
                -[:270]N% 12
                          (
               -[:330,0.62]H% 49
                          )
           -[:210,0.62]H% 48
                      )
            =^[:30]% 23
                      (
                 -[:90]% -> 19
                      )
    -[:342.2,0.994]N% 8
      =^[:54,0.994]% 20
                      (
          -[:126,0.994]phantom{N}% -> 7
                      )
           -[,0.62]H% 38
end{filecontents}


begin{filecontents}{methane_pseudo_3D_stereo.tex}
           H% 2
     -[:270]C% 1
              (
        -[:200]H% 4
              )
              (
         <[:310]H% 5
              )
    <:[:350]H% 3
end{filecontents}


% define the atom sep
newlength{chemfigatomsep}%
setlength{chemfigatomsep}{2.75em}%

% define the line width
newlength{chemfiglinewidth}%
setlength{chemfiglinewidth}{0.75pt}%

% define the scale
defchemfigscale{1}

% define the color
defchemfigcolor{blue!40!black}

% define separation length
newlength{chemfigborder}
setlength{chemfigborder}{1mm}



begin{document}

%callchemfigsymbol{s_adenosyl_l_methionine.tex}% when I uncomment this, I observe error
callchemfigsymbol{methane_pseudo_3D_stereo.tex}% this works fine

end{document}

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP