%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Molecular Coding Format manual                by  Akira Yamaji 2024.11.10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ** mcf2graph.mf must be version 5.13
% ** use main_lib.mcf
% ** typeset by LuaLaTeX(luamplib)
%----------------------------------------------------------------------------
\documentclass[a4paper]{article}
\usepackage{textcomp,verbatim}%
\usepackage[luatex]{graphicx}
\usepackage[luatex]{hyperref}
\usepackage{makeidx}
\usepackage{luamplib}
\mplibnumbersystem{double}
\makeindex
\hypersetup{colorlinks=true,linkcolor=blue}
%----------------------------------------------------------------------------
\mplibcodeinherit{enable}%
\mplibverbatim{enable}%
\mpliblegacybehavior{disabled}%
\begin{mplibcode}
  input mcf2graph;
\end{mplibcode}
%----------------------------------------------------------------------------
\makeatletter%
\edef\fext{mps}%
\topmargin=-18mm
\textheight=254mm
\textwidth=168mm
\oddsidemargin=0mm
%%%%\oddsidemargin=7mm
%%%%\evensidemargin=-7mm
\unitlength=1mm%
%----------------------------------------------------------------------------
\begin{document}
\title{\Huge\sf Molecular Coding Format manual}
\author{Akira Yamaji}
\date{\today}
\maketitle
\begin{center} mcf2graph version 5.13 \end{center}
\begin{center} Located at http://www.ctan.org/pkg/mcf2graph \end{center}
\begin{center} Suggestion or request mail to: mcf2graph@gmail.com \end{center}
%-----------------------------------------------------------------------------
\thispagestyle{empty}
\vspace{5mm}%
\quad
\begin{mplibcode}
sw_output:=Fig+Calc;
max_blength:=10mm;
ratio_thickness_bond:=0.015;
ratio_atom_bond:=0.36;
fmargin:=(2mm,1mm);
fsize:=(40mm,24mm);
blength:=5mm;
sw_frame:=0;
% Glycine
beginfigm \(<30,NH2,!2,COOH) endfigm
% L-Alanine
beginfigm \(<30,NH2,!~wb,/_,!,COOH) endfigm
% L-Valine
beginfigm \(<30,NH2,!~wb,/?!,!,COOH) endfigm
% L-Leucine
beginfigm \(<30,NH2,!~wb,/''(!,?!),!,COOH) endfigm
\end{mplibcode}
\\
\begin{mplibcode}
% L-Isoleucine
beginfigm \(<30,NH2,!~wb,/''(/*_,!2),!,COOH) endfigm
% L-Serine
beginfigm \(<30,NH2,!~wb,/!OH,!,COOH) endfigm
% L-Threonine
beginfigm \(<30,NH2,!~wb,/''(/_,!~wf,OH),!,COOH) endfigm
% L-Cysteine
beginfigm \(<30,NH2,!~wb,/!SH,!,COOH) endfigm
\end{mplibcode}
\\
\begin{mplibcode}
% L-Methionine
beginfigm \(<30,NH2,!~wb,/!2'S!,!,COOH) endfigm
% L-Phenylalanine
beginfigm \(<30,NH2,!~wb,/!Ph,!,COOH) endfigm
% L-Tyrosine
beginfigm \(<30,NH2,!~wb,/!Ph'(-3:/OH),!,COOH) endfigm
% L-Triptophan
beginfigm \(<30,NH2,!~wb,!,COOH,@2,\,!,<24,|,?5,-4=Ph,2=dr,5=dl,4:NH) endfigm
\end{mplibcode}
\\
\begin{mplibcode}
% L-Prorine
beginfigm \(<18,?5,3:NH,4:*/COOH) endfigm
% L-Glutamine
beginfigm \(<30,NH2,!~wb,!,COOH,@2,\`1,!`1,!,//O,!,NH2) endfigm
% L-Asparagine
beginfigm \(<30,NH2,!~wb,/!'?O'!NH2,!,COOH) endfigm
% L-Aspartic acid
beginfigm \(<30,NH2,!~wb,/!COOH,!,COOH) endfigm
\end{mplibcode}
\\
\begin{mplibcode}
% L-Glutamic acid
%%%%%%%beginfigm \(<30,NH2,!~wb,/''(!2,COOH),!,COOH) endfigm
beginfigm \(<30,NH2,!~wb,/!2'COOH,!,COOH) endfigm
% L-Lysine
beginfigm \(<30,NH2,!~wb,/!4'NH2,!,COOH) endfigm
% L-Arginine
beginfigm \(<30,NH2,!~wb,!,COOH,@2,\`1,!`1,!2,NH,!,//NH,!,NH2) endfigm
% L-Hystidine
beginfigm \(<30,NH2,!~wb,!,COOH,@2,\,!,|,?5,1'3=dl,3:N,5:NH) endfigm
\end{mplibcode}
\\
\begin{mplibcode}
% L-DOPA
beginfigm \(<30,NH2,!~wb,!,COOH,@2,\,!,Ph,-3'-4:/OH) endfigm
% Ornithine
beginfigm \(<30,NH2,!~wb,/''(!3,NH2),!,COOH) endfigm
% Citrulline
beginfigm \(<30,NH2,!~wb,/''(!3,NH,!,//O,!,NH2),!,COOH) endfigm
% GABA
beginfigm \(<30,NH2,!4,COOH) endfigm
\end{mplibcode}
\\
\begin{mplibcode}
% amino Levulinic acid
beginfigm \(<30,NH2,!2,//O,!3,COOH) endfigm
% 4-amino benzoic acid
beginfigm \(<30,Ph,1:/NH2,4:/COOH) endfigm
% L-Carboxyl glutamic acid
beginfigm \(<30,NH2,!~wb,/''(!,/COOH,!,COOH),!,COOH) endfigm
% L-Hydroxy Prorine
beginfigm \(<18,?5,1:/OH,3:NH,4:*/COOH) endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\twocolumn
\thispagestyle{empty}
\tableofcontents
\linethickness{0.08mm}%
%----------------------------------------------------------------------------
\newpage
\twocolumn
\section{Introduction}
Molecular Coding Format(MCF) is new linear notation
represent chemical structure diagrams.
This Coding is named from programing technique
such as operator, array, scope, macro, adressing, etc.
mcf2graph convert from MCF to PNG, SVG, EPS, MOL file.
It is also able to calculate molecular weight,
exact mass, molecular formula.
%-----------------------------------------------------------------------------
\section{MCF syntax}
\subsection{Make bond}
\subsubsection{Chain}
\begin{verbatim}
real number plus (+): counterclockwize 
real number minus(-): clockwize
$n (0<=n<360): absolute angle

<10,-30,45,-45,60,$300,$0
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
sw_frame:=Outside;
blength:=0;
beginfigm
  #(60mm,17mm);
  sw_numbering:=Bond;
  numbering_end:=6;
  ratio_chain_ring:=1;
%----------------------------------------------------------------------
  \(<15,-30,45,-45,60,$300,$0,
       {1^$15,2^$345,3^$30,4^$345}:/_~dt,{5,6}=vf
     )
  ++(
    defaultscale:=0.5;
    labeloffset:=2bp;
    drawarrow B7/*.7{B7right}..{B1right}B1/*.7;   label.ulft("-30",B7/*.7);
    drawarrow B8/*.7{B8left}..{B2left}B2/*.7;     label.llft("45",B8/*.7);
    drawarrow B9/*.7{B9right}..{B3right}B3/*.7;   label.ulft("-45",B9/*.7);
    drawarrow B10/*.7{B10left}..{B4left}B4/*.7;   label.llft("60",B10/*.7);
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Chain with !,!n}
\index{"!}%
\begin{verbatim}
!  : take value 60 or -60 depend on
     current angle and environment
!6 : !,!,!,!,!,!

<-30,!6
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,17mm);
  sw_numbering:=Bond;
  numbering_end:=6;
  ratio_chain_ring:=1;
%----------------------------------------------------------------------
  \(<-30,!6,
       {1^-120,2^60,3^-60,4^60,5^-60,6^60}:/_~dt
     )
  ++(
    defaultscale:=0.5;
    labeloffset:=2bp;
    drawarrow B7/*.7{B7right}..{B1right}B1/*.7;   label.ulft("-60",B7/*.7);
    drawarrow B8/*.7{B8left}..{B2left}B2/*.7;     label.llft("60",B8/*.7);
    drawarrow B9/*.7{B7right}..{B3right}B3/*.7;   label.ulft("-60",B9/*.7);
    drawarrow B10/*.7{B10left}..{B4left}B4/*.7;   label.llft("60",B10/*.7);
    drawarrow B11/*.7{B11right}..{B5right}B5/*.7; label.ulft("-60",B11/*.7);
    drawarrow B12/*.7{B12left}..{B6left}B6/*.7;   label.llft("60",B12/*.7);
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Jump to atom}
\index{"@}%
\begin{verbatim}
@n : Jump to An
** An: atom number(-999<=n<=4095)

<-30,!6,@3,0,!,@5,-30
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,16mm) #@(2mm,2mm)
  sw_trimming:=1;
  sw_numbering:=Atom;
  ratio_chain_ring:=1;
  \(<-30,!6,@3,0,!,@5,-30)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Branch bond}
\index{\textbackslash}%
\begin{verbatim}
\ : 0

<-30,!6,@3,\,!
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,16mm) #@(2mm,2mm)
  sw_numbering:=Atom;
  sw_trimming:=1;
  ratio_chain_ring:=1;
  \(<-30,!6,@3,\,!)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Branch modified bond}
\index{*\textbackslash}%
\index{\textbackslash*}%
\index{\textbackslash\textbackslash}%
\index{*\textbackslash*}%
\begin{verbatim}
\   : 0
*\  : 0~wf
\*  : 0~zf
\\  : 0~dm
*\* : 0~wv

<30,!8,
@2,\,!,@4,*\,!,@6,\*,!,@8,\\,!,@10,*\*,!
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,16mm) #@(2mm,2mm)
  sw_numbering:=Atom;
  sw_trimming:=1;
  numbering_end:=10;
  ratio_chain_ring:=1;
  \(<30,!10,@2,\,!,@4,*\,!,@6,\*,!,@8,\\,!,@10,*\*,!)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\index{\textasciicircum}% ^
\index{\textasciitilde}% ~
\index{`}%
\begin{verbatim}
<30,!6,
\~dr,!,   : 0~dr,!
\`1.5,-90 : 0`1.5,-90
\^15,-60  : 0^15,-60
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm) #@(2mm,2mm)
  sw_trimming:=1;
  sw_numbering:=Atom;
  numbering_end:=7;
  ratio_chain_ring:=1;
  %-------------------------
  \(<30,!6,@2,\~dr,!,@4,\`1.5,-90,@6,15,-60)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Connect atom}
\index{\&}%
\begin{verbatim}
&n : Connect to An

<-30,!6,@3,\,!3,&6~bd,@9,&4~bz
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm) #@(2mm,2mm)
  sw_trimming:=1;
  sw_numbering:=Atom;
  ratio_chain_ring:=1;
  %----------------------------------
  \(<-30,!6,@3,\,!3,&6~bd,@9,&4~bz)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Ring}
\index{?}%
\begin{verbatim}
?n : n membered ring(3<=n<=20)
?6 : <-120,60,60,60,60,60,&1
?6
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm) #@(2mm,3mm)
  sw_trimming:=1;
  sw_numbering:=Bond;
  %---------------------------
  \(?6)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Rotate current angle}
\index{\textgreater}%
\begin{verbatim}
<angle : rotate current angle

0,0,<90,0,<-90,0,<$315,0,<$90,0,<$0,0 
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm) #@(2mm,3mm)
  sw_trimming:=1;
  sw_numbering:=Bond;
  ratio_chain_ring:=1;
  numbering_end:=7;
    defaultscale:=0.5;
    labeloffset:=2bp;
  \(#1,0,0,<90,0,<-90,0,<$315,0,<$90,0,<$0,0,{1:7}=vf,
      {3,4^180}:/_~dt)
  ++(
    drawarrow B8/*.7{B8left}..{B3left}B3/*.7;   label.urt("90",B8/*.7);
    drawarrow B9/*.7{B9right}..{B4right}B4/*.7; label.urt("-90",B9/*.7);
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{Change bond type}
\subsubsection{Double,triple,wedge,vector}
\index{\textasciitilde}%
\index{\textasciitilde\textasciitilde}%
\index{"!"!}%
\index{"!"!"!}%
\index{dm}%
\index{dl}%
\index{dr}%
\index{db}%
\index{tm}%
\index{"!db}%
\index{"!tm}%
\index{"!d}%
\index{"!t}%
\index{"!dm}%
\index{"!dl}%
\index{"!dr}%
\begin{verbatim}
(Double,triple)
a~type : ~~type,a
dm  : double middle
dl  : double left side
dr  : double right side
db  : double left or right side
tm  : triple
!db,!d  : !~db  / !tm,!t : !~tm

<-30,!~dm,!,!~dl,!,!~dr,!~db,!~db,!,!~tm
<-30,!dm ,!,!dl ,!,!dr ,!d  ,!d  ,!,!t
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,10mm) #@(2mm,2mm)
  sw_trimming:=0;
  ratio_chain_ring:=1;
  \(<-30,!~dm,!,!~dl,!,!~dr,!~db,!~db,!,!~tm)
  ++(defaultscale:=0.6; labeloffset:=0;
      label.rt("(dm)",A1+(0,-0.7l));
      label.rt("(dl)",A3+(0,-0.7l));
      label.rt("(dr)",A5+(0,-0.7l));
      label.rt("(db)",A6+(0,-0.2l));
      label.rt("(db)",A7+(0,-0.7l));
      label.rt("(tm)",A9+(0,-0.7l));
  )
endfigm
\end{mplibcode}
\vspace{-3mm}%
%-----------------------------------------------------------------------------
%%\subsubsection{Wedge}
\index{wf}%
\index{wb}%
\index{zf}%
\index{zb}%
\index{vf}%
\index{vb}%
\begin{verbatim}

(Wedge,Vector)
wf: wedge forward
wb: wedge backward
zf: hashed(zebra stripe) wedge foward
zb: hashed(zebra stripe) wedge backward
vf:vector forward
vb:vector backward

<-30,
 !~wf,!,!~wb,!,!~zf,!,!~zb,!,!~vf,!~vb
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,10mm) #@(2mm,2mm)
  sw_trimming:=0;
  ratio_chain_ring:=1;
  \(<-30,!~wf,!,!~wb,!,!~zf,!,!~zb,!,!~vf,!,!~vb)
  ++(defaultscale:=0.6; labeloffset:=0;
      label.rt("(wf)",A1+(0,-0.7l));
      label.rt("(wb)",A3+(0,-0.7l));
      label.rt("(zf)",A5+(0,-0.7l));
      label.rt("(zb)",A7+(0,-0.7l));
      label.rt("(vf)",A9+(0,-0.7l));
      label.rt("(vb)",A11+(0,-0.7l));
  )
endfigm
\end{mplibcode}
\vspace{-3mm}%
%-----------------------------------------------------------------------------
%%\subsubsection{Dotted,wave}
\index{dt}%
\index{wv}%
\index{bd}%
\index{bz}%
\begin{verbatim}

(Dotted,wave)
Bn=bond type : change bond type at Bn
dt : dotted   /  wv : wave
bd : broad    /  bz : broad dotted 

<-30,!7,1=dt,3=wv,5=bd,7=bz
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,10mm) #@(2mm,2mm) |=(9mm)
  sw_trimming:=1;
  ratio_chain_ring:=1;
  \(<-30,!7,1=dt,3=wv,5=bd,7=bz)
  ++(defaultscale:=0.6; labeloffset:=0;
      label.rt("(dt)",A1+(0,-0.6l));
      label.rt("(wv)",A3+(0,-0.6l));
      label.rt("(bd)",A5+(0,-0.6l));
      label.rt("(bz)",A7+(0,-0.6l));
  )
endfigm
\end{mplibcode}
\vspace{-3mm}%
%-----------------------------------------------------------------------------
\subsubsection{Over line}
\index{si\_}%
\index{wf\_}%
\index{wb\_}%
\index{zf\_}%
\index{zb\_}%
\index{bd\_}%
\index{dl\_}%
\index{dr\_}%
\index{dm\_}%
\begin{verbatim}
si_ : single over line 
wf_ : wedge forward over line 
wb_ : wedge backward over line 
zf_ : hashed wedge forward over line 
zb_ : hashed wedge backward over line 
bd_ : broad over line 
dl_ : duble left over line 
dr_ : duble right over line 
dm_ : duble over line 

<30,!8,!,60,90`18,
{2~si_,4~wf_,6~wb_,8~zf_,10~zb_,
  12~bd_,14~dl_,16~dr_,18~dm_}:/_`2
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  sw_trimming:=1;
  #(75mm,20mm);
  ratio_chain_ring:=1;
  \(<30,!18,$90`1.5,90`15.5,
     {2~si_,4~wf_,6~wb_,8~zf_,10~zb_,
      12~bd_,14~dl_,16~dr_,18~dm_}:/_`2)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Steric ring}
\index{wf\_r}%
\index{wb\_r}%
\index{bd\_r}%
\begin{verbatim}
wf_r : wedge foward (half width)
bd_r : broad (half width, rounded)
wb_r : wedge backward (half width)

#1.25,-30~wf_r,30~bd_r`1,30~wb_r,
 120,O,30,&1,##,#.5,6^$90:/!OH,
 {1^$-90,2^$90,3^$-90,4^$90}:/OH,
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(75mm,16mm);
  @(0.05,0.5)\(#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##,
     #.5,{1^$-90,2^$90,3^$-90,4^$90}:/OH,6^$90:/!OH)
  defaultscale:=0.6;
  @(0.5,0.7)\(0~wf_r)  ++(label.lft("wf_r:",A1);)
  @(0.5,0.2)\(0~wf)    ++(label.lft("wf:",A1);)
  @(0.75,0.7)\(0~bd_r) ++(label.lft("bd_r:",A1);)
  @(0.75,0.2)\(0~bd)   ++(label.lft("bd:",A1);)
  @(1,0.7)\(0~wb_r)    ++(label.lft("wb_r:",A1);)
  @(1,0.2)\(0~wb)      ++(label.lft("wb:",A1);)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Change multiple bond type}
\index{vf}%
\begin{verbatim}
{2,4,6}=dl or 2'4'6=dl : 2=dl,4=dl,6=dl

<30,!7,{2,4,6}=dl or <30,!7,2'4'6=dl 
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,8mm) #@(2mm,3mm)
  ratio_chain_ring:=1;
  \(<30,!7,2'4'6=dl)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{Change bond length}
\subsubsection{Chain length}
\index{`}%
\begin{verbatim}
(!,!n)`length : change length of !,!n

<-30,!2,!4`1.2,!2
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(55mm,8mm);
  sw_numbering:=Bond;
  \(<-30,!2,!4`1.2,!2)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\index{\#}%
\index{\#\#}%
\begin{verbatim}
#n : bond length=n
## : reset bond length

<-30,!2,#1.2,!4,##,!2
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(55mm,8mm);
  sw_numbering:=Bond;
  \(<-30,!2,#1.2,!4,##,!2)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Ring length}
\begin{verbatim}
?n`length : change ring length

?6,@4,\,?6`1.2
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,16mm) #@(2mm,2mm)
  sw_trimming:=1;
  sw_numbering:=Bond;
  \(?6,@4,\,?6`1.2)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{Change atom}
\subsubsection{Insert atom}
\begin{verbatim}
Insert hetero atom

<-30,!2,O,!2,N,!2
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  sw_trimming:=1;
  #(50mm,7mm);
  \(<-30,!2,O,!2,N,!2)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Addressed atom}
\index{:}%
\begin{verbatim}
2:O : change A2 C to O
{3,4}:N or 3'4:N : change A3,A4 C to N

<30,!4,2:O,{3,4}:N or <30,!4,2:O,3'4:N
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,10mm) ##(0.48,1)
  @(0,0.5)\(<30,!5,2:O,3'4:N)
  sw_numbering:=Atom;
  @(1,0.5)\(<30,!5,2:O,3'4:N)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Brock address}
\index{\textbar}%
\begin{verbatim}
| : divide brock

?6,@4,\,|,?6,2:O
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,14mm) #@(3mm,1.5mm)
  @(0,.5)\(?6,@4,\,|,?6,2:O)
  sw_numbering:=Atom;
  ##(1,.88)
  @(1,.5)\(?6,@4,\,|,?6,2:O)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Reset brock address}
\index{\textbar\textbar}%
\begin{verbatim}
|| : reset brock adress

?6,@4,\,|,?6,||,2:N
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,14mm) #@(3mm,1.5mm)
  @(0,.5)\(?6,@4,\,|,?6,||,2:N)
  sw_numbering:=Atom;
  ##(1,.88)
  @(1,.5)\(?6,@4,\,|,?6,||,2:N)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Absolute address}
\index{\$}% $
\begin{verbatim}
$2:N : change A$2 C to N  **1<=n<=3095

?6,@4,\,|,?6,$2:N
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,14mm) #@(3mm,1.5mm)
  @(0,.5)\(?6,@4,\,?6,$2:N)
  sw_numbering:=Atom;
  ##(1,.88) 
  @(1,.5)\(?6,@4,\,?6,$2:N)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Relative address}
\begin{verbatim}
-2:N : change A(-2) C to N **-999<=n<=-1

?6,@4,\,?6,-2:N
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,14mm) #@(3mm,1.5mm)
  @(0,.5)\(?6,@4,\,?6,-2:N)
  sw_numbering:=Atom;
  ##(1,.88)
  @(1,.5)\(?6,@4,\,?6,-2:N)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Charged atom}
\begin{verbatim}
p_ : positive / n_ : negative

<-30,!2,N,??,p_,!2,S,n_^180,
!6,7:N,7:??,9:S,7:n_,9:n_^180
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  sw_trimming:=1;
  #(60mm,12mm);
  \(<-30,!2,N,??,p_,!2,S,n_^180,!6,7:N,7:??,9:S,7:p_,9:n_^180)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\newpage
%-----------------------------------------------------------------------------
\subsection{Fuse ring}
%%%\subsubsection{Attached 1 bond}
\begin{verbatim}
(Attached 1 bond)

?6,3=?6 : fuse ?6 at B3
** Bn(n:-999<=n<=4095): bond number

?6,3=?6
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,18mm) #@(2mm,1.5mm)
  sw_trimming:=1;
  sw_numbering:=Bond;
  \(<30,?6,3=?6,3=dt,7'11=bd_r)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\begin{verbatim}
** fused ring size depend on 
attached bond length

?6,@4,\,?6`1.2,5=?6,11=?6
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,25mm) #@(2mm,2mm)
  sw_trimming:=1;
  sw_numbering:=Bond;
  \(?6,@4,\,?6`1.2,5=?6,11=?6,
      {14:23}=bd_r,5'11=dt)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\begin{verbatim}
?6,3=?6[13] : fuse ?6[13] at B3
?6[13]: 6 membered ring scaled 13/10
** ?m[n] (5<=m<=8,11<=n<=15)

?6,3=?6[13]
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,18mm) #@(2mm,1.5mm)
  margin_top_bottom:=1.5mm;
  sw_numbering:=Bond;
  sw_trimming:=1;
  \(<30,?6,3=?6[13],3=dt,7'11=bd_r)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\begin{verbatim}
?6,{-3,-4,-4,-2,-2,-4,-4}=?6
?6,{4,8,13,20,25,28,33}=?6
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,20mm) #@(2mm,2mm)
  sw_numbering:=Bond;
  sw_trimming:=1;
  \(<30,?6,{-3,-4,-4,-2,-2,-4,-4}=?6,{4,8,13,20,25,28,33}=dt)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\index{--}%
\begin{verbatim}
(Attached 2 bond)

4--11=?6 : fuse 4/6 ring to B11..B4
4--11=?5 : fuse 3/5 ring to B11..B4
4--11=?4 : fuse 2/4 ring to B11..B4

1:<30,?6,3=?6,11--4=?6
2:<30,?6,3=?6,11--4=?5
3:<30,?6,3=?6,11--4=?4
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(75mm,20mm) #@(2mm,2mm)
  sw_numbering:=Bond;
  ##(1,.9)
  @( 0,.5)\(<30,?6,{3,11--4}=?6,11'4=dt,12'15=bd_r)
  ++(defaultscale:=0.4; label("(1)",p0);)
  ##(1,.9)
  @(.5,.5)\(<30,?6,3=?6,{11--4}=?5,11'4=dt,{12:14}=bd_r)
  ++(defaultscale:=0.4; label("(2)",p0);)
  ##(1,.9)
  @( 1,.5)\(<30,?6,3=?6,{11--4}=?4,11'4=dt,12'13=bd_r)
  ++(defaultscale:=0.4; label("(3)",p0);)
endfigm
\end{mplibcode}
%%%%%%%\vspace{-3mm}%
%-----------------------------------------------------------------------------
\index{---}%
\begin{verbatim}
(Attached 3 bond)

16---4=?6 : fuse 3/6 ring to B16..B4
16---4=?5 : fuse 2/5 ring to B16..B4

1:?6,{3,10,16---4}=?6
2:?6,3'10=?6,16---4=?5

\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm) #@(2mm,2mm)
  sw_numbering:=Bond;
  @(0,1)\(?6,3'10=?6,16---4=?6,16'4=dt,17'19=bd_r)
  ++(defaultscale:=0.4; label("(1)",p0);)
  @(1,0)\(?6,3'10=?6,16---4=?5,16'4=dt,17'18=bd_r)
  ++(defaultscale:=0.4; label("(2)",p0);)
endfigm
\end{mplibcode}
%%%%%%%%\vspace{-3mm}%
%-----------------------------------------------------------------------------
\index{----}%
\begin{verbatim}
(Attached 4 bond)

21----4=?6 : fuse 2/6 ring to B21..B4

<-30,?6,{3,10,15,21----4}=?6

\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm) #@(2mm,2mm)
  sw_numbering:=Bond;
  \(<-30,?6,3'10'15=?6,21----4=?6,21'4=dt,22'23=bd_r)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{Spiro ring}
\begin{verbatim}
@4,?5 : add ?5 at A4

<30,!6,@4,?5
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(40mm,15mm);
  sw_numbering:=Atom;
  numbering_end:=7;
  ratio_chain_ring:=1;
  \(<30,!6,@4,?5)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{Group}
\subsubsection{Insert group}
\index{/}%
\index{Ph}%
\begin{verbatim}
/ : group start single bond

/_   : methyl
/!   : ethyl
/!2  : propyl
/?!  : isopropyl
/??! : tert-butyl
/Ph  : phenyl

<30,!,/_,!2,/!,!2,/!2,!4,/?!,
 !4,/??!,!2,/Ph^-60,!
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(75mm,18mm);
  \(<30,!,/_,!2,/!,!2,/!,!4,/?!,!4,/??!,!2,/''(Ph`0.8)^-60,!)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Insert modified group}
\index{//}%
\index{*/}%
\index{/*}%
\index{*/*}%
\index{**}%
\begin{verbatim}
//  : double (double middle)
*/  : wedge forward
/*  : hashed wedge forward
*/* : wave
**  : direct

<30,!,//O,!2,*/H,!2,/*H,!2,*/*H,!2,**?3,!
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,14mm);
  \(<30,!`1,//O,!2`1,*/H,!2`1,/*H,!2`1,*/*H,!2`1,**?3,!`1)
  ++(defaultscale:=0.75;
      label("//",A2-(0,0.45l));
      label("*/",A4-(0,0.45l));
      label("/*",A6-(0,0.45l));
      label("*/*",A8-(0,0.45l));
      label("**",A10-(0,0.45l));
     )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\index{\textasciicircum}% ^
\index{\textasciitilde}% ~
\index{`}%
\index{\textless}%
\begin{verbatim}
~ : change type
^ : change angle
` : change length
> : change environment

<-30,``1,!,
  /_`2^30,!2,/!2>lr,!2,/!2>rl,!)
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,16mm);
  sw_trimming:=1;
  \(<-30,#1,!2,/_`2^30,!2,/!2>lr,!2,/!2>rl,!)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Add group}
\begin{verbatim}
<30,!17,2:/_,3:/!,4:/!2,7:/iPr,
 8:/tBu,10:/''(Ph`0.6)^-15,
 {11,12,13'}:*/_,{15,16,17'}:/*_
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(75mm,25mm) #@(2mm,2mm)
  sw_numbering:=Atom;
  numbering_end:=17;
  \(<30,!17,2:/_,3:/!,4:/!2,7:/iPr,8:/tBu,10:/''(Ph`0.6)^-15,
     {11,12,13'}:*/_,{15,16,17'}:/*_)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Add modified group}
\begin{verbatim}
~,^,` : change type,angle,length

<30,!6,{2~wf,4~zf,6^-30,8^$120}:/_
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,18mm) #@(2mm,2mm)
  sw_trimming:=1;
  sw_numbering:=Atom; numbering_end:=9;
  \(<30,!8`1,{2~wf,4~zf,6^-30,8^$120}:/_)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\begin{verbatim}

^,`,> : change angle,length,environment

<-30,!7`1,3:/_`2^30,5:/!2>lr,7:/!2>rl
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,16mm);
  sw_trimming:=1;
  sw_numbering:=Atom;
  numbering_end:=8;
  \(<-30,!7`1,3:/_`2^30,5:/!2>lr,7:/!2>rl)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\newpage
%-----------------------------------------------------------------------------
\subsection{Chain environment}
\subsubsection{Horizontal,vertical}
\index{hz}%
\index{vt}%
\index{"'}%
\begin{verbatim}
>hz : horizontal environment (default)
>vt : vertical environment

?4,
{3^-90,3^-30,3^90}:/!3>hz,
{1^-60,1,1^60}:/!3>vt
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(50mm,25mm);
  sw_trimming:=1;
  ratio_chain_ring:=1;
  \(?4,{3^-90,3^-30,3^90}:/!3>hz,
        {1^-60,1,1^60}:/!3>vt
  )
  ++(defaultscale:=0.5; labeloffset:=2bp;
      label.rt(">hz",A8);
      label.top(">hz",A12);
      label.top(">hz",A16);
      label.rt(">vt",A20);
      label.top(">vt",A24);
      label.rt(">vt",A28);
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Left-right,right-left}
\index{lr}%
\index{rl}%
\begin{verbatim}
>lr : left-right environment
>rl : right-left environment

<-30,!6,
{3^-30,3,3^30}:/!3>lr,
{5^-30,5,5^30}:/!3>rl
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
%%%%%  EN:Left-right_right-left
  #(40mm,18mm);
  sw_trimming:=0;
  \(<-30,!6,
  {3^-30,3,3^30}:/!3>lr,
  {5^-30,5,5^30}:/!3>rl)
  ++(defaultscale:=0.5; labeloffset:=2bp;
      label.lft(">lr",A11);
      label.lft(">lr",A15);
      label.lft(">lr",A19);
      label.rt(">rl",A23);
      label.rt(">rl",A27);
      label.rt(">rl",A31);
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Rotate fixed angle}
\index{\textgreater}%
\begin{verbatim}
>n : rotate n

<30,!4,
2:/!6>30,  % 2:\,30,30,30,30,30,30
4:/!4>-45  % 4:\,-45,-45,-45,-45

\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(40mm,20mm);
  sw_trimming:=1;
  \(<30,!4,2:/!6>30,4:/!4>-45)
  ++(defaultscale:=0.5; labeloffset:=2bp;
      label.bot(">30",A12);
      label.bot(">45",A17);
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Rotate multiple angle}
\begin{verbatim}
>{90,-90,...} : rotate 90,-90,...

<30,!6,6>{90,-90,90,-90,90}:/!5
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm);
  \(<30,!6,6>{90,-90,90,-90,90}:/!5)
  ++(defaultscale:=0.5; labeloffset:=2bp;
      label.lft(">{90,-90,90,-90,90}",A13);
      label.rt(">90",A12);
      label.lft(">-90",A11);
      label.rt(">90",A10);
      label.lft(">-90",A9);
      label.rt(">90",A8);
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\newpage
\subsection{Miscellaneous}
%-----------------------------------------------------------------------------
\subsubsection{Abbreviated parts}
\index{NH}%
\index{N"!}%
\index{N"!2}%
\index{S?O}%
\index{S?O?O}%
\begin{verbatim}
NH : N,/H~nl   N? : N,/_ 
N?2 : N,/!     S?O : S,//O
S?O?O : S,//O^35,//^-35

<-30,!2,NH,!2,N?,!2,N?2,S?O,!2,S?O?O,!
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
#(60mm,10mm);
sw_trimming:=1;
\(<-30,!2`1.2,NH,!2`1.2,N?,!2`1.2,N?2,!2`1.2,S?O,!2`1.2,S?O?O,!`1.2)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\index{?"!}%
\index{??}%
\index{??"!}%
\index{N?"!}%
\begin{verbatim}
??   : /_^35,/_-35  /?!  : isopropyl
/??! : tert-butyl   /N?! : dimethylamino

<30,!11`1,2:??,4:/!,6:/?!,8:/??!,10:/N?!
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
#(60mm,10mm);
sw_trimming:=1;
\(<30,!11`1.2,2:??,4:/!,6:/?!,8:/??!,10:/N?!)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Define group,parts}
\index{'}%
\index{`}%
\index{``}%
\begin{verbatim}
`(..) : define group
``(..)(..) : define group with atoms
''(..) : define parts

CF3:=`("{CF3}"); % ** group weight =0
CF3:=``("{CF3}")(C,F,F,F);
  ** group weight =12(C)+19(F)*3=69
iBuOH:=''(!?!,OH);
\(<30,?6,4'6:/iBuOH,3:/CF3)
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,10mm);
  sw_trimming:=1;
  iBuOH:=''(!?!,OH);
  CF3:=``("{CF3}")(C,F,F,F);
  \(<30,?6,4'6:/iBuOH,3:/CF3)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Concatenate group,parts}
\index{'}%
\begin{verbatim}
a'b : {a,b} or ''(a,b)
/!?!'OH : /''(!?!,OH)

 <30,!8,2'6:/!?!'OH
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm) #@(2mm,1mm)
  sw_trimming:=1;
  \(<30,!8,2'6:/!?!'OH)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Move position [ @{ }]}
\index{@}%
\begin{verbatim}
@(x,y) : Move l*(x,y) from current position
@$(x,y): Move l*(x,y) from origin(@1)
          ** l=bond length of ring

<30,?6,@3,!4,//O,!,O,n_^60,@$(6,1),H,p_^15
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,13mm) #@(2mm,1mm)
  sw_trimming:=1;
  \(<30,?6,@3,\,!3,//O,!,O,n_^60,@$(6,1),H,p_^15)
  ++(drawdot A1 withpen pencircle scaled 3bp;
     drawdot A12 withpen pencircle scaled 3bp;
      pickup pencircle scaled 0.1bp;
      for i=0 upto 6:
        draw (A1+(l*i,l-4bp))--(l*i,l+4bp);
      endfor
      draw A1--(A1+(0,1l))--A1+(6l,1l);
      draw (A1+(-4bp,1l))--(A1+(4bp,1l));
      draw (A1+(-4bp,0))--(A1+(4bp,0));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Serial number}
\index{\-\-}%
\begin{verbatim}
6:10 : 6,7,8,9,10
<30,!14,{2,6:10,14}:/_~bd_r`0.5
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(75mm,12mm) |<(8mm)
  sw_numbering:=Atom; numbering_end:=15;
  \(<30,!14,{2,6:10,14}:/_~bd_r`0.5)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Change color}
\index{red}%
\index{blue}%
\index{green}%
\begin{verbatim}
beginfigm
  \(<30,Ph,2'5:N,3:/NH2,4:/COOH,
     2:red, 5:blue, 3=green)
endfigm
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(50mm,18mm) |<(8mm)
  \(<30,Ph,2'5:N,3:/NH2,4:/COOH,
    2:red,5:blue,3=green)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Change font}
\index{atomfont}%
\begin{verbatim}
beginfigm
  %----------------
  atomfont:="cmr8";
  %----------------
  \(<30,Ph,2'5:N,3:/NH2,4:/COOH)
endfigm
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
beginfigm
  #(50mm,18mm) |<(8mm)
  atomfont:="cmr8";
  \(<30,Ph,2'5:N,3:/NH2,4:/COOH)
endfigm
\end{mplibcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Option parameter}
%------------------------------------------------------------------------------
\subsection{Angle parameter}
\index{mangle}%
\begin{verbatim}
mangle=0   ** default

@(0.2,0.5)\(Ph)
mangle:=30;
@(0.8,0.5)\(Ph)
\end{verbatim}
%-----------------------------------------
%% mangle
\begin{mplibcode}
beginfigm
  #(50mm,15mm) |=(6mm)
  mangle:=0;
  @(0.2,0.5)\(Ph)
  ++(drawarrow((A1 shifted (aw,0)) rotated A1ang..A1);)
  mangle:=30;
  @(0.8,0.5)\(Ph)
  ++(drawarrow((A1 shifted (aw,0)) rotated A1ang..A1);)
endfigm
\end{mplibcode}
%------------------------------------------------------------------------------
\subsection{Size/Ratio parameter}
%-----------------------------------------------------------------------------
\subsubsection{Bond length [ \textbar={ }]}
\index{blength}%
\index{\textbar=()}%
\begin{verbatim}
|=(n) : abbreviated form of blength:=n;

(fit to figure size)
blength=0   ** default
\end{verbatim}
%-----------------------------------------
\begin{mplibcode}
%%% blength=0
beginfigm
  sw_frame:=Bothside;
  #(40mm,15mm);
  \(<30,Ph)
  **(pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
  )
endfigm
\end{mplibcode}
%-----------------------------------------
\begin{verbatim}
(ratio bond/figure width)
blength=0.1  ** (0<blength<=1)
blength=60mm(width)*0.1=6mm
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
%% 0<blength=<1
beginfigm
  sw_frame:=Bothside;
  #(40mm,15mm) |=(0.1)
  \(<30,Ph)
  **(pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
  )
endfigm
\end{mplibcode}
%-----------------------------------------
\begin{verbatim}
(bond length)
blength=9mm
** (blength>1) ignore msize(w,h)
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
%%%% blength>1
beginfigm
  sw_frame:=Bothside;
  #(40mm,15mm) |=(8mm)
  \(<30,Ph)
  **(pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
  )
endfigm
\end{mplibcode}
%------------------------------------------------------------------------------
\subsubsection{Molecular size}
\index{msize}%
\index{\#\#}%
\begin{verbatim}
##(1,1) : msize=(1,1)  ** default
## p : abbreviated form of msize:=p;
\end{verbatim}
%---------------------------------------------
%% msize=(1)
\begin{mplibcode}
beginfigm
  sw_frame:=Bothside+Mol;
  #(40mm,15mm) ##(1,1)
  \(<30,Ph)
  **(pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------
\begin{verbatim}
##(0.25,1) : msize=(0.25,1)
** msize=(40mm-4mm)*0.25=9mm
\end{verbatim}
%---------------------------------------------
%% msize=(0.25,1)
\begin{mplibcode}
beginfigm
  sw_frame:=Bothside+Mol;
  #(40mm,15mm) ##(0.25,1)
  \(<30,Ph)
  **(pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------
\begin{verbatim}
##(11mm,11mm) : msize=(11mm,11mm)
\end{verbatim}
%---------------------------------------------
%% msize=(11mm,11mm)
\begin{mplibcode}
beginfigm
  sw_frame:=Bothside+Mol;
  #(40mm,15mm) ##(11mm,11mm)
  \(<30,Ph)
  **(pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
  )
endfigm
\end{mplibcode}
%------------------------------------------------------------------------------
\subsubsection{Molecular position}
\index{mposition}%
\begin{verbatim}
@(0.5,0.5) : mposition=(0.5,0.5)  **default
\end{verbatim}
%---------------------------------------------
%% mposition
\begin{mplibcode}
beginfigm
  sw_frame:=Bothside+Mol;
  #(40mm,15mm) ##(1,0.8)
  @(0.5,0.5);
  \(<30,Ph)
endfigm
\end{mplibcode}
%--------------------------------------------------------------
\begin{verbatim}
@(1,0) : mposition=(1,0)
\end{verbatim}
%---------------------------------------------
%% mposition
\begin{mplibcode}
beginfigm
  sw_frame:=Bothside+Mol;
  #(40mm,15mm) ##(1,0.8)
  @(1,0);
  \(<30,Ph)
endfigm
\end{mplibcode}
%--------------------------------------------------------------
\begin{verbatim}
@(10mm,4mm) : mposition=(10mm,4mm)
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  sw_frame:=sw_frame+Mol;
  #(40mm,15mm) ##(1,0.8) @(10mm,4mm)
  \(<30,Ph)
  **(drawdot p1 withpen pencircle scaled 3pt;
      pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
  )
endfigm
\end{mplibcode}
%------------------------------------------------------------------------------
\subsection{Size parameter}
%-----------------------------------------------------------------------------
\subsubsection{Figure size [ \#{ }]}
\index{fsize}%
\index{\#()}%
\begin{verbatim}
fsize=(figure width,figure height)
** default: (30mm,20mm)
# p : abbreviated form of fsize:=p;

#(40mm,15mm) : fsize=(40mm,15mm)
\end{verbatim}
%---------------------------------------------
%% Figure size
\begin{mplibcode}
beginfigm
  sw_frame:=Outside;
  #(40mm,12mm);
  \(<30,Ph)
  **(pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Figure margin [ \#@{ }]}
\index{fmargin}%
\index{\#"@()}%
\begin{verbatim}
fmargin=(margin left rigth,top bottom)
** default: (0.4mm,0.4mm)
#@ p : abbreviated form of fmargin:=p;

#@(10mm,2mm) : fmargin=(10mm,2mm)
\end{verbatim}
%---------------------------------------------
%% fmargin
\begin{mplibcode}
beginfigm
  sw_frame:=Bothside+Mol;
  #(40mm,12mm) #@(10mm,2mm)
  \(<30,Ph)
  **(pickup pencircle scaled 0.2pt; 
      for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
      for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
      for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
      for i=0 upto h/cm: draw (0,i*cm)--(-.8mm,i*cm); endfor
      drawdot p0 withpen pencircle scaled 3pt;
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Offset thickness of bond}
\index{offset\_thickness}%
\begin{verbatim}
default: offset_thickness=0.2pt
\end{verbatim}
%---------------------------------------------
%%offset_thickness 
\begin{mplibcode}
beginfigm
  #(60mm,12mm);
  offset_thickness:=0.0pt; @(0.1,0.5)\(<30,Ph)
  offset_thickness:=0.2pt; @(0.55,0.5)\(<30,Ph)
  offset_thickness:=0.5pt; @(1,0.5)\(<30,Ph)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.0pt",(0,1bp));
    label.urt("0.2pt",(0.36w,1bp));
    label.urt("0.5pt",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Offset of double bond gap}
\index{offset\_bond\_gap}%
\begin{verbatim}
default: offset_bond_gap=0.3pt
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm);
  offset_bond_gap:=0.0pt; @(0.1, 0.5)\(<30,Ph)
  offset_bond_gap:=0.3pt; @(0.55,0.5)\(<30,Ph)  %<<== default
  offset_bond_gap:=1.0pt; @(1,   0.5)\(<30,Ph)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.0pt",(0,1bp));
    label.urt("0.3pt",(0.36w,1bp));
    label.urt("1.0pt",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Offset of atom width}
\index{offset\_atom}%
\begin{verbatim}
default: offset_atom=0.8pt
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm);
  offset_atom:=0.0pt; @(0.1, .5)\(<30,?6,3:O)
  offset_atom:=0.8pt; @(.55, .5)\(<30,?6,3:O)   %<<== default
  offset_atom:=2.0pt; @(1,   .5)\(<30,?6,3:O)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.0pt",(0,1bp));
    label.urt("0.8pt",(0.36w,1bp));
    label.urt("2.0pt",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Offset of wedge width}
\index{offset\_wedge}%
\begin{verbatim}
default:  offset_wedge=0.4pt
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm);
  offset_wedge:=0.0pt; @(0.1,0.5)\(<30,?6,5:*/_)
  offset_wedge:=0.4pt; @(0.55,0.5)\(<30,?6,5:*/_)  %<<== default
  offset_wedge:=1.0pt; @(1, 0.5)\(<30,?6,5:*/_)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.0pt",(0,1bp));
    label.urt("0.4pt",(0.36w,1bp));
    label.urt("1.0pt",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Max bond length [ \textbar\textless{ }]}
\index{max\_blength}%
\index{\textbar\textless()}%
\begin{verbatim}
|<(n): abbreviated form of max_blength:=n;
default:  max_blength=10mm
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm)
  sw_frame:=sw_frame+Mol;
  |<(5mm)  @(0, .5)\(<45,?4)
  |<(8mm)  @(.4,.5)\(<45,?4)
  |<(10mm) @(1, .5)\(<45,?4)   %<<== default
  **(defaultscale:=0.6; labeloffset:=1bp;
    label("5mm", (0.075w,0.5h));
    label("8mm", (0.42w,0.5h));
    label("10mm",(0.88w,0.5h));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{Ratio parameter}
%-----------------------------------------------------------------------------
\subsubsection{Thickness/bond length}
\index{ratio\_thickness\_bond}%
\begin{verbatim}
default:  ratio_thickness_bond=0.015
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm);
  ratio_thickness_bond:=0.005;  @(0.1,0.5)\(<30,Ph)
  ratio_thickness_bond:=0.015;  @(.55,0.5)\(<30,Ph)  %<<== default
  ratio_thickness_bond:=0.03;   @(1,  0.5)\(<30,Ph)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.005",(0,1bp));
    label.urt("0.015",(0.36w,1bp));
    label.urt("0.030",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Char/bond thickness}
\index{ratio\_char\_bond}%
\begin{verbatim}
default:  ratio_char_bond=1.5
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm)
  ratio_char_bond:=1.0;  @(0, 0.5)\(<30,?6,6:O,3:NH)
  ratio_char_bond:=1.5;  @(.5,0.5)\(<30,?6,6:O,3:NH)   %<<== default
  ratio_char_bond:=2.0;  @( 1,0.5)\(<30,?6,6:O,3:NH)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("1.0",(0,1bp));
    label.urt("1.5",(0.36w,1bp));
    label.urt("2.0",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Bond gap/bond length}
\index{ratio\_bondgap\_bond}%
\begin{verbatim}
default:  ratio_bondgap_bond= 0.15
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm);
  ratio_bondgap_bond:=0.10; @(0.1,0.5)\(<30,Ph)
  ratio_bondgap_bond:=0.15; @(.55,0.5)\(<30,Ph)    %<<== default
  ratio_bondgap_bond:=0.20; @(1  ,0.5)\(<30,Ph)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.10",(0,1bp));
    label.urt("0.15",(0.36w,1bp));
    label.urt("0.20",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Atom/bond length}
\index{ratio\_atom\_bond}%
\begin{verbatim}
default:  ratio_atom_bond= 0.36
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,12mm);
  ratio_atom_bond:=0.25;  @(0.1,0.5)\(<30,?6,3:O)
  ratio_atom_bond:=0.33;  @(.55,0.5)\(<30,?6,3:O)   %<<== default
  ratio_atom_bond:=0.45;  @(1,  0.5)\(<30,?6,3:O)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.25",(0,1bp));
    label.urt("0.33",(0.36w,1bp));
    label.urt("0.45",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Wedge/bond length}
\index{ratio\_wedge\_bond}%
\begin{verbatim}
default:  ratio_wedge_bond=0.12
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,12mm);
  ratio_wedge_bond:=0.1;  @(0.05,.5)\(?6,4:*/_)
  ratio_wedge_bond:=0.12; @(.55, .5)\(?6,4:*/_)   %<<== default
  ratio_wedge_bond:=0.2;  @(1  , .5)\(?6,4:*/_)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.10",(0,1bp));
    label.urt("0.12",(0.36w,1bp));
    label.urt("0.20",(0.7w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Figure atom gap/atom length}
\index{ratio\_atomgap\_atom}%
\index{readm}%
\begin{verbatim}
default:  ratio_atomgap_atom= 0.050
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  '`("<30,!2`0.5,2:O")
  #(70mm,12mm)
  sw_frame:=sw_frame+Atom;
  ratio_atomgap_atom:=0.00;  @(0, .5)\(scantokens(mc))
  ratio_atomgap_atom:=0.050; @(.5,.5)\(scantokens(mc))  %<<== default
  ratio_atomgap_atom:=0.12;  @(1, .5)\(scantokens(mc))
  **(defaultscale:=0.75; labeloffset:=1bp;
    label.urt("0.00",(0.05w,1bp));
    label.urt("0.05",(0.45w,1bp));
    label.urt("0.12",(0.85w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Chain/ring length}
\index{ratio\_chain\_ring}%
\begin{verbatim}
default:  ratio_chain_ring= 0.66
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,12mm);
  ratio_chain_ring:= 0.4;  @(0.05,.5)\(<30,?6,4:/!)
  ratio_chain_ring:= 0.66; @(.45, .5)\(<30,?6,4:/!)   %<<== default
  ratio_chain_ring:= 1;    @(1,   .5)\(<30,?6,4:/!)
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.40",(0,1bp));
    label.urt("0.66",(0.3w,1bp));
    label.urt("1.0" ,(0.62w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Hash gap/bond length}
\index{ratio\_hashgap\_bond}%
\begin{verbatim}
default:  ratio_hashgap_bond=0.12
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  '`("<30,!2,2:/*_`1.5")
  #(70mm,15mm)
  ratio_hashgap_bond:=0.06; @(0.08,.5)\(scantokens(mc))
  ratio_hashgap_bond:=0.12; @( .55,.5)\(scantokens(mc)) %<<== default
  ratio_hashgap_bond:=0.20; @(1,   .5)\(scantokens(mc))
  **(defaultscale:=0.6; labeloffset:=1bp;
    label.urt("0.06",(0,1bp));
    label.urt("0.12",(0.4w,1bp));
    label.urt("0.20",(0.77w,1bp));
  )
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
%%%%\newpage
%-----------------------------------------------------------------------------
\subsection{Drawing mode}
%-----------------------------------------------------------------------------
\subsubsection{Numbering atom}
\index{sw\_numbering}%
\index{Atom}%
\index{numbering\_start}%
\index{numbering\_end}%
\begin{verbatim}
sw_numbering=Atom
numbering_start:=3;
numbering_end:=8;
default: sw_numbering=0

sw_numbering:=Atom;
\(<-30,!9)
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,10mm);
  ratio_chain_ring:=1;
  numbering_start:=3; numbering_end:=8;
  sw_numbering:=Atom; \(<-30,!9)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Numbering bond}
\index{numbering\_start}%
\index{numbering\_end}%
\index{Bond}%
\begin{verbatim}
sw_numbering=Bond
numbering_start:=3;
numbering_end:=8;
default: sw_numbering=0

sw_numbering:=Bond;
\(<-30,!9)
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,10mm);
  ratio_chain_ring:=1;
  numbering_start:=3; numbering_end:=8;
  sw_numbering:=Bond; \(<-30,!9)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Trimming mode}
\index{sw\_trimming}%
\begin{verbatim}
sw_trimming:=0;  ** default
##(1,0.7)
@(0.2,0.3)\(Ph) @(0.8,0.7)\(Ph)
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm) ##(1,.7)
  sw_frame:=Bothside+Mol;
  @(.2,.3)\(Ph)
  @(.8,.7)\(Ph)
endfigm
\end{mplibcode}
%------------------------------------------------------
\begin{verbatim}
sw_trimming:=1;
@(0.2,0.3)\(Ph) @(0.8,0.7)\(Ph)
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,20mm) ##(1,.7)
  sw_frame:=Bothside+Mol;
  sw_trimming:=1;
  @(.2,.3)\(Ph)
  @(.8,.7)\(Ph)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Expand mode}
\index{sw\_expand}%
\begin{verbatim}
** put before input mcf2graph
sw_expand:=1;
input mcf2graph.mp;

(sw_expand=0) ** default
@(0, .5)\(<30,Ph,4:/COOH,3:/NH2)
(sw_expand=1)
@(1, .5)\(<30,Ph,4:/COOH,3:/NH2)
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,15mm)
  @(0, .5)\(<30,Ph,1:/COOH,3:/NH2)
  sw_expand:=1;
  @(1, .5)\(<30,Ph,1:/''(//O^-60,/OH^60),3:/''(N,/H^60,/H^-60))
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Abbreviate group}
\index{Group}%
\index{sw\_abbreviate}%
\begin{verbatim}
** default: sw_abbreviate=Group
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  '`("<30,Ph,4:/Cl,3:/F")
  #(60mm,12mm)
  @(.15, .5)\(scantokens(mc))
  sw_abbreviate:=Group;
  @(.85, .5)\(scantokens(mc))
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Abbreviate bond type}
\index{Bond}%
\index{sw\_abbreviate}%
\begin{verbatim}
** default: sw_abbreviate=Bond
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  '`("<30,Ph,4:/Cl,3:/F")
  #(60mm,12mm)
  @(.15, .5)\(scantokens(mc))
  sw_abbreviate:=Bond;
  @(.85, .5)\(scantokens(mc))
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{Frame}
%-----------------------------------------------------------------------------
\subsubsection{Figure frame}
\index{sw\_frame}%
\index{Bothside}%
\index{Inside}%
\index{Outside}%
\begin{verbatim}
** default:sw_frame=0
(Draw figure frame)
fmargin:=(5mm,2mm);
sw_frame=Outside
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(30mm,10mm) #@(5mm,1.5mm)
  sw_frame:=Outside;
  \(<30,Ph)
endfigm
\end{mplibcode}
%------------------------------------------------------
\begin{verbatim}
(Frame inside margin)
sw_frame=Inside
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(30mm,10mm) #@(5mm,1.5mm)
  sw_frame:=Inside;
  \(<30,Ph)
endfigm
\end{mplibcode}
%------------------------------------------------------
\begin{verbatim}
(Draw both frame)
sw_frame=Bothside=Inside+Outside
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(30mm,10mm) #@(5mm,1.5mm)
  sw_frame:=Bothside;
  \(<30,Ph)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Molecular frame}
\index{Mol}%
\begin{verbatim}
sw_frame=Mol
** default:sw_frame=0
\end{verbatim}
%------------------------------------------------------
\begin{mplibcode}
beginfigm
  sw_frame:=Outside;
  #(40mm,11mm) ##(1,1)
  sw_frame:=sw_frame+Mol;
  \(<30,Ph)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Atom frame}
\index{Atom}%
\begin{verbatim}
sw_frame=Atom
** default: sw_frame=0

\(<30,COOH,!,COOH)
\end{verbatim}
%---------------------------------------------
\begin{mplibcode}
beginfigm
  #(60mm,10mm);
  sw_frame:=sw_frame+Atom;
  \(<30,COOH,!,COOH)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{Parameter setting}
\subsubsection{Local parameter setting}
\index{beginfigm}%
\index{endfigm}%
\begin{verbatim}
beginfigm
  \(Ph)
endfigm
beginfigm
  %--------------------------
  ratio_thickness_bond:=0.05;
  %--------------------------
  \(Ph)
endfigm
beginfigm
  \(Ph)
endfigm
\end{verbatim}
%------------------------------------------------------
\quad
\begin{mplibcode}
fsize:=(15mm,12mm);
beginfigm
  \(Ph)
endfigm
beginfigm
  ratio_thickness_bond:=0.05;
  \(Ph)
endfigm
beginfigm
  \(Ph)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Global parameter setting}
\begin{verbatim}
beginfigm
  \(Ph)
endfigm
%--------------------------
ratio_thickness_bond:=0.05;
%--------------------------
beginfigm
  \(Ph)
endfigm
beginfigm
  \(Ph)
endfigm
\end{verbatim}
%----------------------------------------------------
\quad
\begin{mplibcode}
save_ratio:=ratio_thickness_bond;
fsize:=(15mm,12mm);
beginfigm
  \(Ph)
endfigm
ratio_thickness_bond:=0.05;
beginfigm
  \(Ph)
endfigm
beginfigm
  \(Ph)
endfigm
ratio_thickness_bond:=save_ratio;
\end{mplibcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Command}
%-----------------------------------------------------------------------------
\subsection{drawm [ \textbackslash{ }]}
\index{drawm}%
\index{\textbackslash}%
\begin{verbatim}
(Draw molecule)

msize=(a,b)        **default (1,1)
mposition=(c,d)    **default (0.5,0.5)

a: ratio molecular width/figure width
b: ratio molecular hight/figure hight
c: x axis position
d: y axis position
\(): abbreviated form of drawm()

  drawm(<30,Ph,3:/F,4:/Cl)
  \(<30,Ph,3:/F,4:/Cl)
\end{verbatim}
%------------------------------------------------
\begin{mplibcode}
beginfigm
  #(40mm,15mm) #@(0.5mm,0.5mm)
  sw_frame:=Outside+Mol;
  \(<30,Ph,4:/Cl,3:/F)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{readm [ ' ` ]}
\index{readm()}%
\index{'`}%
\begin{verbatim}
readm(string1,string2, ...);
** string = mcf code
'`(): abbreviated form of readm()

(example)
'`("<30,Ph,1'2'6:/O!,-4'-5=?7,    ",
   " -1'-4'-6=dl,-2://O,-3:/O!,   ",
   " @9,\,NH,!,//O,!              ")
\end{verbatim}
%-----------------------------------------------------------------------------
\subsection{checkm [ \textbackslash*{ }]}
\index{checkm()}%
\index{\textbackslash*()}%
\begin{verbatim}
\*(): abbreviated form of checkm()
(immediately compile)
beginfigm \(<30,Ph,2:N) endfigm

(check mcf and compile)
beginfigm
  '`("<30,Ph,2:") % ** '2:' missing arg
  if \*(mc)=0: \(scantokens(mc)) fi
endfigm
** \*(mc) : error count
\end{verbatim}
%-----------------------------------------------------
\quad
\begin{mplibcode}
beginfigm
  '`("<30,Ph,2:N")
  sw_trimming:=0;
  #(12mm,12mm);
  if \*(mc)=0: \(scantokens(mc)) fi
endfigm
beginfigm
  '`("<30,Ph,2:")
  sw_trimming:=0;
  #(12mm,12mm);
  if \*(mc)=0: \(scantokens(mc)) fi
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{getm [ \$ ]}
\index{getm}%
\index{ucount}%
\index{\$}%
\begin{verbatim}
getm(number)
** number = numeric
** ucount = molecular data unit count
$() : abbreviated form of getm()

for i=1 upto ucount:
  beginfigm
    $(i)         % get data unit no=i
    \\           % put figure
  endfigm
endfor

getm("name"): "name"=string

beginfigm
  $("Adenine")   % get data EN="Adenine"
  \\             % put figure
endfigm
\end{verbatim}
%-------------------------------------------------------------------------------
\subsection{putm [ \textbackslash\textbackslash{ }]}
\index{putm}%
\index{\textbackslash\textbackslash}%
\begin{verbatim}
putm: put figure
\\ : abbreviated form of putm

  if op_row>=1: scantokens(op) fi
  if mc_row>=1:
    if checkm(mc)=0: drawm(scantokens(mc))
    fi
  fi
  if ad_row>=1: add(scantokens(ad)) fi
  if ex_row>=1: ext(scantokens(ex)) fi
\end{verbatim}
%===============================================================================
\newpage
\subsection{add [ ++ ]}
\index{add}%
\index{++}%
\index{plus}%
\index{minus}%
\index{lonepair}%
\index{lonepairdiam}%
\index{lonepairspace}%
\index{circlediam}%
\index{circlepen}%
\index{w}%
\index{h}%
\index{aw}%
\index{em}%
\index{p0}%
\index{l}%
\index{/*}%
\index{**}%
\index{\textgreater\textgreater}%
\index{An}%
\index{A[]}%
\index{A[]ang}%
\index{A[]up}%
\index{A[]left}%
\index{A[]right}%
\index{A[]down}%
\index{Bn}%
\index{B[]}%
\index{B[]s}%
\index{B[]m}%
\index{B[]e}%
\index{B[]ang}%
\index{B[]up}%
\index{B[]left}%
\index{B[]right}%
\index{B[]down}%
\index{defaultscale}%
\index{labeloffset}%
\begin{verbatim}
(Add label to molecule)

++(): add()
w:       molecular width
h:       molecular height
aw:      atom font size
em:      label font size
p0:      origin of molecular structure
l:       bond length

An:      atom number
A[m]:    atom position
A[m]ang: branch angle of A[m]
A[m]up:    dir A[m]ang
A[m]left:  dir A[m]ang+90
A[m]right: dir A[m]ang-90
A[m]down:  dir A[m]ang+180

Bn:      bond number
B[m]:    bond(path)
B[m]s:   bond start position
B[m]m:   bond middle position
B[m]e:   bond end position
B[m]ang: bond angle
B[m]up:    dir B[m]ang
B[m]left:  dir B[m]ang+90
B[m]right: dir B[m]ang-90
B[m]down:  dir B[m]ang+180

plus  : '+' circled
minus : '-' circled
  circlediam = 0.6aw (default)
  circlepen =  0.2bp (default)

lonepair r: ':' rotated r
  lonepairdiam  = 0.3aw (default)
  lonepairspace = 0.7aw (default)

# : scaled
<< : rotated
a /* b : point b of a

beginfigm
 #(70mm,40mm) ##(.91,.9) |<(10mm)
 sw_frame:=sw_frame+Atom+Mol;
 @(.5,.85)\(<30,?6,{2,5}:O)
 ++(
  defaultscale:=.8;
  labeloffset:=.3aw;
  dotlabel.lft("p0",p0);
  dotlabel.rt( "p0+(w,h)",p0+(w,h));
  dotlabel.ulft("A1",A1);
  drawarrow A1..A1+__*l<<A1ang;
  dotlabel.lrt( "B3s",B3s);
  dotlabel.rt("B3m",B3m);
  drawarrow B3m..B3m+__*l<<(B3ang+90);
  dotlabel.ulft("A6",A6);
  drawarrow A1{A1down}..A6;
  dotlabel.urt( "B3e",B3e);
  label.rt(  "An="&decimal(An)&
           "  Bn="&decimal(Bn)&
           "  aw="&decimal(aw)&
           "  em="&decimal(em),
           p0+(-9em,-1.5em));
  label.rt(  "w="&decimal(w)&
    "  h="&substring (0,6)of decimal(h)&
    "  l="&substring (0,6)of decimal(l),
           p0+(-9em,-3em));
 )
endfigm
\end{verbatim}
%------------------------------------------------------------------------------
\begin{mplibcode}
beginfigm
 #(70mm,40mm) ##(.91,.9) |<(10mm)
 sw_frame:=sw_frame+Atom+Mol;
 @(.5,.85)\(<30,?6,{2,5}:O)
 ++(
  defaultscale:=.8;
  labeloffset:=.3aw;
  dotlabel.lft("p0",p0);
  dotlabel.rt( "p0+(w,h)",p0+(w,h));
  dotlabel.ulft("A1",A1);
  drawarrow A1..A1+__*l<<A1ang;
  dotlabel.lrt( "B3s",B3s);
  dotlabel.rt("B3m",B3m);
  drawarrow B3m..B3m+__*l<<(B3ang+90);
  dotlabel.ulft("A6",A6);
  drawarrow A1{A1down}..A6;
  dotlabel.urt( "B3e",B3e);
  label.rt(  "An="&decimal(An)&
           "  Bn="&decimal(Bn)&
           "  aw="&decimal(aw)&
           "  em="&decimal(em),
           p0+(-9em,-1.5em));
  label.rt(  "w="&substring (0,6)of decimal(w)&
           "  h="&substring (0,6)of decimal(h)&
           "  l="&substring (0,6)of decimal(l),
           p0+(-9em,-3em));
 )
endfigm
\end{mplibcode}
%------------------------------------------------------------------------------
\begin{verbatim}
beginfigm
 #(60mm,20mm) ##(1,0.85)
 %---------------------------------------
 @(0,0)\(<30,Ph,3=dl,4:/NH2)
 %---------------------------------------
 ++(
  labeloffset:=.7aw;
  label.top(lone_pair 90,A7);
  drawarrow 
    (A7+up#1.2aw){A7left}
     ..{B7right}B7/*0.3;
  drawarrow
    B3m..A3+B2up#1.5aw..{A3down}A3;
 )
 %---------------------------------------
 @(1,0)\(<30,?6,{1,5}=dl,4://NH2)
 %---------------------------------------
 ++(
  labeloffset:=.7aw;
  label.top(plus,A7);
  label.urt(minus,A3);
  label(lonepair A3ang,A3+A3up#.7aw);
 )
 %---------------------------------------
 **(drawdblarrow (.4w,.4h)..(.55w,.4h);)
 %---------------------------------------
endfigm
\end{verbatim}
%-------------------------------------------------------
\begin{mplibcode}
beginfigm
  #(70mm,20mm) ##(1,0.85)
  %-------------------------------------------
  @(0,0)\(<30,Ph,3=dl,4:/NH2)
  %-------------------------------------------
  ++(labeloffset:=.7aw;
      label.top(lonepair 90,A7);
      drawarrow (A7+up#1.2aw){A7left}..{B7right}B7/*0.3;
      drawarrow B3m..A3+B2up#1.5aw..{A3down}A3;
  )
  %-------------------------------------------
  @(1,0)\(<30,?6,{1,5}=dl,4://NH2)
  %-------------------------------------------
  ++(labeloffset:=.7aw;
      label.top(plus,A7);
      label.urt(minus,A3);
      label(lonepair A3ang,A3+A3up#.7aw);
  )
  **(drawdblarrow (0.4w,0.4h)..(0.55w,0.4h);)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\newpage
\subsection{ext [ ** ]}
\index{ext}%
\index{**}%
\index{w0}%
\index{h0}%
\index{aw}%
\index{em}%
\index{n}%
\index{ratio\_thickness\_char}%
\index{defaultscale}%
\begin{verbatim}
(Extra label to figure)
 
**(): ext()
w:    figure width
h:    figure height
w0:   figure width-2xpart(fmargin)
h0:   figure height-2ypart(fmargin)
aw:   atom font size
em:   label font size
p0:   fmargin

n:    molecular number
p[m]: molecular origin position
w[m]: molecular width
h[m]: molecular height

ratio_thickness_char:
pen thickness / char width
%----------------------------------------
beginfigm
 #(70mm,30mm)
 |=(0.065)
 %---------------------------------------
 @(0.1,0.5)
 \(<-210,60`1,60`1,60`1,{1,3}=dl)
 ++(
   defaultscale:=0.6;
   label.bot("Diene",p0+(0.5w,0));
   )
 @(0.4,0.5)
 \(<-30,-60`1,1=dm)
 ++(
   defaultscale:=0.6;
   label.bot("Dienophile",p0+(.5w,0));
   )
 @(0.9,0.5)\(<30,?6,6=dl)
 %---------------------------------------
 **(
  drawarrow (.52w,.5h)..(.6w,.5h);
  defaultscale:=0.7;
  label("+",(0.25w,0.5h));
  ratio_thickness_char:=0.125;
  label.bot("Diels-Alder Reaction",
            (.5w,h)
           );
 )
 %---------------------------------------
endfigm
\end{verbatim}
%------------------------------------------------------------------------------
\begin{mplibcode}
beginfigm
 #(70mm,30mm)
 |=(0.065)
 %---------------------------------------
 @(0.1,0.5)\(
   <-210,60`1,60`1,60`1,1'3=dl)
 ++(
   defaultscale:=0.6;
   label.bot("Diene",p0+(0.5w,0));
 )
 @(0.4,0.5)\(<-30,-60`1,1=dm)
   ++(defaultscale:=0.6;
   label.bot("Dienophile",p0+(.5w,0));
 )
 @(0.9,0.5)\(<30,?6,6=dl)
 %---------------------------------------
 **(
  drawarrow (.52w,.5h)..(.6w,.5h);
  defaultscale:=0.7;
  label("+",(0.25w,0.5h));
  ratio_thickness_char:=0.125;
  label.bot("Diels-Alder Reaction",
            (.5w,h));
 )
 %---------------------------------------
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Local ext setting}
\index{\_}%
\begin{verbatim}
_s : abbreviated form of EN:=s;

beginfigm
  _"?3"@(0.5,1)\(<30,?3)
endfigm
beginfigm
  _"?4"@(0.5,1)\(?4)
  %-------------------------------
  **(label.top(EN,(0.5w,0));)
  %-------------------------------
endfigm
beginfigm
  _"?5"@(0.5,1)\(?5)
endfigm
beginfigm
  _"?6"@(0.5,1)\(?6)
endfigm
\end{verbatim}
%----------------------------------------------------
\quad
\begin{mplibcode}
beginfigm
  _"?3"#(12mm,15mm)@(0.5,1)\(<30,?3)
endfigm
beginfigm
  _"?4"#(12mm,15mm)@(0.5,1)\(?4)
  %-------------------------------
  **(label.top(EN,(0.5w,0));)
  %-------------------------------
endfigm
beginfigm
  _"?5"#(12mm,15mm)@(0.5,1)\(?5)
endfigm
beginfigm
  _"?6"#(12mm,15mm)@(0.5,1)\(?6)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsubsection{Global ext setting}
\index{ext\_clear}%
\begin{verbatim}
ext_clear: reset global ext()

beginfigm
  _"?3"@(0.5,1)\(<30,?3)
endfigm
%-------------------------------
ext(label.top(EN,(0.5w,0));)
%-------------------------------
beginfigm
  _"?4"@(0.5,1)\(?4)
endfigm
beginfigm
  _"?5"@(0.5,1)\(?5)
endfigm
%---------
ext_clear;
%---------
beginfigm
  _"?6"@(0.5,1)\(?6)
endfigm
\end{verbatim}
%-------------------------------------
\quad
\begin{mplibcode}
beginfigm
  _"?3"#(12mm,15mm)
  @(0.5,1)\(<30,?3)
endfigm
%-------------------------------
ext(label.top(EN,(0.5w,0));)
%-------------------------------
beginfigm
  _"?4"#(12mm,15mm)
  @(0.5,1)\(?4)
endfigm
beginfigm
  _"?5"#(12mm,15mm)
  @(0.5,1)\(?5)
endfigm
%---------
ext_clear;
%---------
beginfigm
  _"?6"#(12mm,15mm)
  @(0.5,1)\(?6)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\newpage
%-----------------------------------------------------------------------------
\onecolumn
\section{Example}
%-----------------------------------------------------------------------------
\subsection{drawm example}
\paragraph{(Luciferin)}
\begin{verbatim}
beginfigm
  #(50mm,15mm)
  \(<30,Ph,3=?5,@8,\,?5,9'16=dl,9'14:N,7'11:S,1:/OH,-2:*/COOH)
endfigm
\end{verbatim}
%-------------------------------------------
\begin{mplibcode}
loadm("EN<>*");
beginfigm
  #(50mm,15mm)
  \(<30,Ph,3=?5,@8,\,?5,9'16=dl,9'14:N,7'11:S,1:/OH,-2:*/COOH)
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\subsection{readm example}
%-----------------------------------------------------------------------------
\paragraph{(Colchicine)}
\begin{verbatim}
beginfigm
  '`(
  "<30,Ph,1'2'6:/O!,-4'-5=?7,     ",
  " -1'-4'-6=dl,-2://O,-3:/O!,    ",
  " 9:/NH!'?O!                    ")
  #(40mm,20mm) \\
endfigm
\end{verbatim}
%---------------------------------------
% Colchicine MW:385.41
\begin{mplibcode}
beginfigm
  '`(
  "<30,Ph,1'2'6:/O!,-4'-5=?7,    ",
  " -1'-4'-6=dl,-2://O,-3:/O!,   ",
  " 9:/NH!'?O!                   ")
  #(40mm,20mm) \\
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\paragraph{(Maltose)}
\index{arc\_lb}
\index{arc\_br}
\begin{verbatim}
(bond type for glycan)
arc_lb : arc left > bottom
arc_br : arc bottom right

beginfigm
  %"EN:Maltose","MW:342.3",
  '`(
  %----------------------------------------------------
  "#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##,   ",
  "#.5,{1^$-90,2^$90,3^$-90}:/OH,6^$90:/!OH,          ",
  "@4,$-50~arc_lb`1,O,$50~arc_br`1,<$0,               ",
  "|,#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ",
  "#.5,{2^$90,3^$-90,4^$-90}:/OH,6^$90:/!OH           ")
  %----------------------------------------------------
  #(50mm,20mm) \\
endfigm
\end{verbatim}
%-------------------------------------------------
\begin{mplibcode}
beginfigm
  %"EN:Maltose","MW:342.3",
  '`(
  %-------------------------------------------------------
  "#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##,   ",
  "#.5,{1^$-90,2^$90,3^$-90}:/OH,6^$90:/!OH,          ",
  "@4,$-50~arc_lb`1,O,$50~arc_br`1,<$0,               ",
  "|,#1.25,-30~wf_r,30~bd_r`1,30~wb_r,120,O,30,&1,##, ",
  "#.5,{2^$90,3^$-90,4^$-90}:/OH,6^$90:/!OH           ")
  %-------------------------------------------------------
  #(50mm,20mm) \\
endfigm
\end{mplibcode}
%-----------------------------------------------------------------------------
\newpage
\paragraph{(Erythromycin)}
\begin{verbatim}
beginfigm
  _"Erythromycin" MW:="733.93";
  #(60mm,30mm) @(1,0.5)
  '`(
  %-----------------------------------------------------------------------
    "<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,        ",
    " 14:O,13:/*Et,1'9://O,                                               ",
    " {2',4,6^-35,8,10',12^35}:/*_,                                       ",
    " {6^35,11,12^-35}:*/OH,                                              ",
    " @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf,3^35}:/_,4:/*OH,3^-35:/*O!,##, ",
    " @$5,\*^30`1.7,O,!~zb,|,?6`.7,6:O,#.5,5:/*_,2:*/OH,3:/*N?!           ")
  %-----------------------------------------------------------------------
  \\
  **(defaultscale:=0.8;
      label.lrt("EN: "&EN,(0,h));
      label.lrt("fm: "&fm,(0,h-5mm));
      label.lrt("mw: "&mw,(0,h-9mm));
      label.lrt("MW: "&MW,(0,h-13mm));
  )
endfigm;
\end{verbatim}
%----------------------------------------------------------------------------
%%%% EN:Erythromycin  MW:733.93
\begin{mplibcode}
beginfigm
  _"Erythromycin" MW:="733.93";
  #(60mm,30mm) @(1,0.5)
  '`(
  %-----------------------------------------------------------------------
    "<30,#1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,##,&1,        ",
    " 14:O,13:/*Et,1'9://O,                                               ",
    " {2',4,6^-35,8,10',12^35}:/*_,                                       ",
    " {6^35,11,12^-35}:*/OH,                                              ",
    " @$3,\*,O,30~zb,|,?6`.7,6:O,#.5,{5~wf,3^35}:/_,4:/*OH,3^-35:/*O!,##, ",
    " @$5,\*^30`1.7,O,!~zb,|,?6`.7,6:O,#.5,5:/*_,2:*/OH,3:/*N?!           ")
  %-----------------------------------------------------------------------
  \\
  **(defaultscale:=0.8;
      label.lrt("EN: "&EN,(0,h));
      label.lrt("fm: "&fm,(0,h-5mm));
      label.lrt("mw: "&mw,(0,h-9mm));
      label.lrt("MW: "&MW,(0,h-13mm));)
endfigm;
\end{mplibcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\paragraph{(Paclitaxel)}
\noindent%
\begin{verbatim}
beginfigm
  % "EN:Paclitaxel","MW:853.918",
  '`(
  %------------------------------------------------------------------
  "?6,5=dl,@3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O, ",
  " 4:??,6:/_,{3^-60,15}:*/OH,8:/*H^-60,9:*/_^60,10://O,            ",
  " @1,\,O,!,//O,!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,               ",
  " @7,\*,O,-45,//O,60,Ph,{11>rl,12'^-15>lr}:*/O!'?O!               ")
  %------------------------------------------------------------------
  #(140mm,30mm)
  if \*(mc)=0:
    @(0,0.5)\(scantokens(mc))
    sw_numbering:=Atom;
    @(0.6,0.5)\(scantokens(mc))
    sw_numbering:=Bond;
    @(1,0.5)\(scantokens(mc))
  fi
endfigm
\end{verbatim}
%----------------------------------------------------------------------------
\begin{mplibcode}
beginfigm
  % "EN:Paclitaxel","MW:853.918",
  '`(
  %-------------------------------------------------------------------
  "?6,5=dl,@3,#1,36,45,45,45,45,##,&5,-4=?6,-4=?4,-1=wb,-3=wf,-1:O, ",
  " 4:??,6:/_,{3^-60,15}:*/OH,8:/*H^-60,9:*/_^60,10://O,            ",
  " @1,\,O,!,//O,!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,               ",
  " @7,\*,O,-45,//O,60,Ph,{11>rl,12'^-15>lr}:*/O!'?O!               ")
  %-------------------------------------------------------------------
  #(160mm,40mm)
  if \*(mc)=0:      @(0,  0.5)\(scantokens(mc))
    sw_numbering:=Atom; @(0.5,0.5)\(scantokens(mc))
    sw_numbering:=Bond; @(1,  0.5)\(scantokens(mc))
  fi
endfigm
\end{mplibcode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\noindent%
\newpage
\subsection{loadm example}
\index{sw\_comment}%
\index{loadm()}%
\paragraph{(Example)}
\begin{verbatim}
loadm("CAT=biological","MW>=285","MW<=288","a:EN");
\end{verbatim}
%---------------------------------------------------------------
\paragraph{(output)}
\begin{verbatim}
* jobname=mcf_exa_soc
* numbersystem=double
* output report file
* file name=mcf_exa_soc-report.txt)
* mcf_template 2023.05.07
* Input  : main_lib.mcf [525]
* Output : ucount [4]
* Filter(1): CAT =biological
* Filter(2): MW >= 285
* Filter(3): MW <= 288
* Sort key : EN (ascending)
[1]:Luteolin
[2]:Lycorine
[3]:Morphine
[4]:Piperine )

row[1][1]="CAT:biological;EN:Luteolin;MW:286.24;EXA:-"
row[1][2]=":"
row[1][3]="<30,Ph,3=?6,9=dl,10:O,7://O,@9,\,Ph,2'6'14'15:/OH"
row[1][4]=";"
row[2][1]="CAT:biological;EN:Lycorine;MW:287.315;EXA:1"
row[2][2]=":"
row[2][3]="<30,Ph,-4'-2=?6,{6,9--12}=?5,13=dl,8:N,15'17:O,"
row[2][4]="{9'^180,10^60}:*/H,{13,14'}:*/OH"
row[2][5]=";"
row[3][1]="CAT:biological;EN:Morphine;MW:285.343;EXA:1"
row[3][2]=":"
row[3][3]="<30,Ph,{2,-4}=?6,1---12=?5,-1:O,-1=zb,"
row[3][4]="@7,60~wf`0.75,70~si_`1.3,45,N!,&9~wb,15=dl,6:/OH,8^180:*/H,12:/*OH"
row[3][5]=";"
row[4][1]="CAT:biological;EN:Piperine;MW:285.343;EXA:1"
row[4][2]=":"
row[4][3]="<30,Ph,-1=?5,-1'-3:O,@4,\,!d,!,!d,!,//O,!,?6,-6:N"
row[4][4]=";"
\end{verbatim}
%------------------------------------------------------------------------------
\paragraph{(sw\_comment)}
\begin{verbatim}
sw_comment=1:

row[1][1]="%------------------------------------------------------------------"
row[1][2]="CAT:biological;EN:Luteolin;MW:286.24;EXA:-"
row[1][3]=":"
row[1][4]="<30,Ph,3=?6,9=dl,10:O,7://O,@9,\,Ph,2'6'14'15:/OH"
row[1][5]=";"

** default sw_comment=0
\end{verbatim}
\paragraph{(Tag)}
\begin{verbatim}
J   : jobname                           CAT : category
EN  : english name                      JN  : japanese name
FM  : formula from data                 MW  : molecular weight from data
MI  : monoisotopic mass from data       USE : the use
\end{verbatim}
\newpage
\noindent%
%----------------------------------------------------------------------------
\newpage
\subsection{getm example}
\paragraph{(Chlorophyll a)}
\noindent%
\begin{verbatim}
beginfigm
  $("Chlorophyll a")
  sw_output:=Fig+Calc+Mcode;
  #(80mm,30mm)
  \(scantokens(mc))
  VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
  VerbatimTeX("\gdef\mw{"&mw&"}\gdef\fm{"&fm&"}");
endfigm
\end{mplibcode}
\verbatiminput{temp-mc.aux}            %%%% input temp-mc.aux %%%%
{\tt ** EN:\EN \quad mw:\MW \quad MW:\mw \quad fm:\fm}%
\end{verbatim}
%------------------------------------------------------------------------------------
\begin{mplibcode}
beginfigm
  $("Chlorophyll a")
  sw_output:=Fig+Calc+Mcode;
  #(80mm,30mm)
  \(scantokens(mc))
  VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
  VerbatimTeX("\gdef\mw{"&mw&"}\gdef\fm{"&fm&"}");
endfigm
\end{mplibcode}
\verbatiminput{temp-mc.aux}            %%%% input temp-mc.aux %%%%
{\tt ** EN:\EN \quad mw:\MW \quad MW:\mw \quad fm:\fm}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\paragraph{(Dinophysistoxin-1)}
\noindent%
\begin{verbatim}
beginfigm
  $("Okadaic acid")
  '`(",38:*/_,65=red")                 %%%% add methyl group (color red) %%%%
  sw_output:=Fig+Calc+Mcode;           %%%% output temp-mc.aux %%%%
  _"Dinophysistoxin-1" #(90mm,20mm)
  MW:="819";
  if \*(mc)=0: \(scantokens(mc))
    VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
    VerbatimTeX("\gdef\mw{"&mw&"}\gdef\fm{"&fm&"}");
  fi
endfigm;
\end{mplibcode}
\verbatiminput{temp-mc.aux}            %%%% input temp-mc.aux %%%%
{\tt ** EN:\EN \quad mw:\MW \quad MW:\mw \quad fm:\fm}%
\end{verbatim}
%----------------------------------------------------------------------------
\begin{mplibcode}
beginfigm
  $("Okadaic acid")
  '`(",38:*/_,65=red")            %%%% add methyl group (color red) %%%%
  sw_output:=Fig+Calc+Mcode;           %%%% output temp-mc.aux %%%%
   MW:="819";
  _"Dinophysistoxin-1" #(90mm,20mm);
  if \*(mc)=0: \(scantokens(mc))
    VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
    VerbatimTeX("\gdef\mw{"&mw&"}\gdef\fm{"&fm&"}");
  fi
endfigm;
\end{mplibcode}
\verbatiminput{temp-mc.aux}            %%%% input temp-mc.aux %%%%
{\tt ** EN:\EN \quad mw:\MW \quad MW:\mw \quad fm:\fm}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
%----------------------------------------------------------------------------
\paragraph{(Maitotoxin)}
\noindent%
%--------------------------------------------------------------------------------
\begin{verbatim}
%--------------------------------------------------------------------------------
\begin{mplibcode}
  beginfigm
    $("Maitotoxin") #(150mm,80mm) #@(3mm,3mm)
    sw_output:=Fig+Calc+Mcode;         %%%% output temp-mc.aux %%%%
    sw_frame:=Outside;
    if \*(mc)=0: \(scantokens(mc))
      VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
      VerbatimTeX("\gdef\mw{"&mw&"}\gdef\fm{"&fm&"}");
    fi
  endfigm
\end{mplibcode}
\verbatiminput{temp-mc.aux}            %%%% input temp-mc.aux %%%%
{\tt ** EN:\EN \quad mw:\MW \quad MW:\mw \quad fm:\fm}%
%--------------------------------------------------------------------------------
\end{verbatim}
%--------------------------------------------------------------------------------
\begin{mplibcode}
  beginfigm
    $("Maitotoxin") #(150mm,80mm) #@(3mm,3mm) 
    sw_output:=Fig+Calc+Mcode;
    sw_frame:=Outside; %% mc_length:=40;
    if \*(mc)=0: \(scantokens(mc))
      VerbatimTeX("\gdef\EN{"&EN&"}\gdef\MW{"&MW&"}");
      VerbatimTeX("\gdef\mw{"&mw&"}\gdef\fm{"&fm&"}");
    fi
  endfigm
\end{mplibcode}
\verbatiminput{temp-mc.aux}
{\tt ** EN:\EN \quad mw:\MW \quad MW:\mw \quad fm:\fm}%
%--------------------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\subsection{User define parts example}
\noindent%
\begin{mplibcode}
beginfigm
#(160mm,75mm) |<(5mm)
%--------------------------------------------------------------------------------
COOH:=''(//O,!,OH);
HOCO:=''(OH,!,//O,);
S_CoA:=`("{S-CoA}");
@(0.33,   1)\(<30,HOCO,!,//O,!2,COOH)                    % Oxaloacetate
@(0.66,   1)\(<30,HOCO,!4,COOH,@-4`1,\,COOH,4:/OH^-165)  % Citrate
@(1,      1)\(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH)      % cis-Aconitate
@(1,   0.58)\(<30,HOCO,!4,COOH,@-4,\`1,COOH,5:/OH)       % Isocitrate
@(1,   0.05)\(<30,HOCO,!3,//O,!,COOH,@-4,\`1,COOH)       % Oxalosuccinate
@(0.66,0.05)\(<30,HOCO,!3,//O,!,COOH)                    % alfa-Ketoglutarate
@(0.33,0.05)\(<30,HOCO,!3,//O,!,S_CoA)                   % Succinyl-CoA
@(0,   0.05)\(<30,HOCO,!3,COOH)                          % Succinate
@(0,   0.55)\(<30,HOCO,!,!~dr,!,COOH)                    % Fumarate
@(0,      1)\(<30,HOCO,!3,COOH,3:/OH)                    % L-Malate
%--------------------------------------------------------------------------------
ext(
defaultfont:="uhvr8r"; defaultscale:=0.75;
ext_setup;
def sel_dir(expr rot)=
  save tx; nA:=rot; if nA>=360: nA:=nA-360; fi
  if     (nA<30)or(nA>330):   def tx=top enddef;
  elseif (nA>=30)and(nA<=150):  def tx=lft enddef;
  elseif (nA>150)and(nA<210): def tx=bot enddef;
  elseif (nA>=210)and(nA<=330): def tx=rt enddef;
  fi
enddef;
def reaction_arrow(expr a)(expr r)(expr p)(expr sa,la)(expr sb,lb)(expr sc,lc)(expr sd,ld)=
  drawarrow ((0,0)..(a,0)) rotated r shifted p;
  if sa<>"": draw ((0.5a,0){dir 180}..{dir 90}(0,.5a*la)) rotated r shifted p;
             sel_dir(r); label.tx(sa,p+((0,0.5a*la) rotated r)); fi
  if sb<>"": draw ((0.5a,0){dir 0}..{dir 90}(a,.5a*lb)) rotated r shifted p;
             sel_dir(r); label.tx(sb,p+((a,0.5a*lb) rotated r)); fi
  if sc<>"": draw ((0.5a,0){dir 180}..{dir -90}(0,-.5a*lc)) rotated r shifted p;
             sel_dir(r+180); label.tx(sc,p+((0,-0.5a*lc) rotated r)); fi
  if sd<>"": draw ((0.5a,0){dir 0}..{dir -90}(a,-.5a*ld)) rotated r shifted p;
             sel_dir(r+180); label.tx(sd,p+((a,-0.5a*ld) rotated r)); fi
enddef;
def r_arrow(expr a)(expr r)(expr p)(expr sc,lc)(expr sd,ld)=
   reaction_arrow(a)(r)(p)("",0)("",0)(sc,lc)(sd,ld)
enddef;
%------------------------------------------------------------------------
save dx; pair dx; dx:=(12mm,0);
label.bot("Oxaloacetate",p1+dx);   label.bot("Citrate",p2+dx);
label.bot("cis-Aconitate",p3+dx);  label.bot("Isocitrate",p4+dx);
label.bot("Oxalosuccinate",p5+dx); label.bot("alfa-Ketoglutarate",p6+dx);
label.bot("Succinyl-CoA",p7+dx);   label.bot("Succinate",p8+dx);
label.bot("Fumarate",p9+dx);       label.bot("L-Malate",p10+dx);
sw_label_emu:=1;
ext_setup;
r_arrow(10mm)(  0)(p1+ ( 1.1w1, 0.3h1))("Acetyl-CoA",1.5)(" CoA-SH",1);
r_arrow(10mm)(  0)(p2+ ( 1.1w2, 0.4h2))("",0)("H2O",1);
r_arrow( 8mm)(270)(p3+ ( 0.5w3,-0.4h3))("H2O",1)("",0);
r_arrow( 8mm)(270)(p4+ ( 0.5w4,-0.4h4))("NAD+",1)("NADH2+",1);
r_arrow(10mm)(180)(p5+ (-0.1w5, 0.4h5))("",0)("CO2",1);
r_arrow(10mm)(180)(p6+ (-0.1w6, 0.5h6))("NAD+,CoA-SH",1.7)("NADH2+,CO2",1);
r_arrow(10mm)(180)(p7+ (-0.1w7, 0.5h7))("GDP,Pi",1.7)("GTP,CoA-SH",1);
r_arrow( 8mm)( 90)(p8+ ( 0.4w8, 1.2h8))("FAD",1)("FADH2",1);
r_arrow( 8mm)( 90)(p9+ ( 0.4w9, 1.2h9))("H2O",1)("",0);
r_arrow(10mm)(  0)(p10+( 1.1w10,0.3h10))("NAD+",1)("NADH2+",1.5);
defaultscale:=1.5;
label("TCA-cycle",(0.5w,0.5h));
)
endfigm
\end{mplibcode}
%------------------------------------------------------------------------
\begin{verbatim}
beginfigm
#(160mm,75mm) |<(5mm)
COOH:=''(//O,!,OH);      % define COOH
HOCO:=''(OH,!,//O,);     % define HOCO
S_CoA:=`("{S-CoA}");    % define S_CoA
@(0.33,   1)\(<30,HOCO,!,//O,!2,COOH)                    % Oxaloacetate
@(0.66,   1)\(<30,HOCO,!4,COOH,@-4`1,\,COOH,4:/OH^-165)  % Citrate
@(1,      1)\(<30,HOCO,!2,!~dr,!,COOH,@-4`1,\,COOH)      % cis-Aconitate
@(1,   0.58)\(<30,HOCO,!4,COOH,@-4,\`1,COOH,5:/OH)       % Isocitrate
@(1,   0.05)\(<30,HOCO,!3,//O,!,COOH,@-4,\`1,COOH)       % Oxalosuccinate
@(0.66,0.05)\(<30,HOCO,!3,//O,!,COOH)                    % alfa-Ketoglutarate
@(0.33,0.05)\(<30,HOCO,!3,//O,!,S_CoA)                   % Succinyl-CoA
@(0,   0.05)\(<30,HOCO,!3,COOH)                          % Succinate
@(0,   0.55)\(<30,HOCO,!,!~dr,!,COOH)                    % Fumarate
@(0,      1)\(<30,HOCO,!3,COOH,3:/OH)                    % L-Malate
ext(
  defaultfont:="uhvr8r"; defaultscale:=0.75;
  ext_setup;
  save dx; pair dx; dx:=(12mm,0);
  label.bot("Oxaloacetate",p1+dx);   label.bot("Citrate",p2+dx);
  label.bot("cis-Aconitate",p3+dx);  label.bot("Isocitrate",p4+dx);
  label.bot("Oxalosuccinate",p5+dx); label.bot("alfa-Ketoglutarate",p6+dx);
  label.bot("Succinyl-CoA",p7+dx);   label.bot("Succinate",p8+dx);
  label.bot("Fumarate",p9+dx);       label.bot("L-Malate",p10+dx);
  sw_label_emu:=1;
  ext_setup;
  r_arrow(10mm)(  0)(p1+ ( 1.1w1, 0.3h1))("Acetyl-CoA",1.5)(" CoA-SH",1);
  r_arrow(10mm)(  0)(p2+ ( 1.1w2, 0.4h2))("",0)("H2O",1);
  r_arrow( 8mm)(270)(p3+ ( 0.5w3,-0.4h3))("H2O",1)("",0);
  r_arrow( 8mm)(270)(p4+ ( 0.5w4,-0.4h4))("NAD+",1)("NADH2+",1);
  r_arrow(10mm)(180)(p5+ (-0.1w5, 0.4h5))("",0)("CO_2_",1);
  r_arrow(10mm)(180)(p6+ (-0.1w6, 0.5h6))("NAD+,CoA-SH",1.7)("NADH2+,CO2",1);
  r_arrow(10mm)(180)(p7+ (-0.1w7, 0.5h7))("GDP,Pi",1.7)("GTP,CoA-SH",1);
  r_arrow( 8mm)( 90)(p8+ ( 0.4w8, 1.2h8))("FAD",1)("FADH2",1);
  r_arrow( 8mm)( 90)(p9+ ( 0.4w9, 1.2h9))("H2O",1)("",0);
  r_arrow(10mm)(  0)(p10+( 1.1w10,0.3h10))("NAD+",1)("NADH2+",1.5);
  defaultscale:=1.5;
  label("TCA-cycle",(0.5w,0.5h));
)
endfigm
\end{verbatim}
%------------------------------------------------------------------------------
\section{Example to use mcf2graph}
\subsection{MetaPost souce file}
\index{mcf2graph.mp}%
\index{sw\_output}%
\index{\textbackslash()}%
\index{plus}%
\index{getm()}%
\index{putm}%
\index{ucount}%
\begin{verbatim}
%------------------------------------------------------------------------------
input mcf2graph;                                        > input main macro
%------------------------------------------------------------------------------
sw_output:=Info;   % aux(information) file output on    > global setting
%%%% sw_output:=Report;                                 > report output
%%%% sw_output:=MOL2000;                                > MOL file output
#(60mm,40mm);   %  (figure width,figure height)         >
outputformat:="png"; hppp:=vppp:=0.1;                   > PNG output
outputtemplate:="c%3c-%{EN_}.png";                      >
%------------------------------------------------------------------------------
beginfigm
  % EN:Ampicillin  MW:349.405
  \(<45,?4,-3=?5,2:N,7:S,                               > immediately compile
    3^45:/*H,1://O^15,5:/*COOH^-18,6:??,                >
    @4,*\^15,NH,!,//O,!,/*NH2,!,Ph)                     >
endfigm                                                 >
%------------------------------------------------------------------------------
beginfigm
  % EN:Cholesterol  MW:386.65
  '`(                                                   > read Mcode
  "<30,?6,-4'-2=?6,-4=?5,7=dl,        ",                > mc1
  "10:/*H^180,11:/*H^-60,17:/*H^-54,  ",                > mc2
  "4'12:*/_^60,                       ",                > mc3
  "@-1,18,/*_,-60,!3,?!               ")                > mc4
  \\                                                    > put figure
endfigm                                                 >
%------------------------------------------------------------------------------
loadm("EN<>*);                                          > load all unit
beginfigm
  $("Adenine")                                          > get EN=Adenine
  \\                                                    > ** put figure
endfigm                                                 >
%------------------------------------------------------------------------------
beginfigm
  $(4)                                                  > select No.4
  \\                                                    > put figure
endfigm                                                 >
%------------------------------------------------------------------------------
for i=1 upto ucount:                                    > figure count
  beginfigm
    $(i)                                                > select No.i
    \\                                                  > put figure
  endfigm
endfor
%------------------------------------------------------------------------------
bye
\end{verbatim}
%------------------------------------------------------------------------
\noindent%
\newpage
\subsection{Molecular library file}
\begin{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% molecular library file    main_lib.mcf   by Akira Yamaji   2022.10.10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  tag1:var1;tag2:var2;tag3:var3 .....
%  first character of line "%" comment out
%  first character of line ":"  start MCF
%  first character of line ";"  stop MCF
%  first character of line "="  start parameter setting
%  first character of line "*"  start ext(...)
%  first character of line "+"  start add(...)
%  CAT = Category,EN = Name,MW = Molecular weight
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CAT:-;EN:-;MW:0;EXA:-
=
 sw_frame:=Atom;
:
<30,?6,3=?5,1'3'5'9=dl,2'6'9:N,5:/NH2,7:NH
*
 defaultscale:=.5;
 label.bot(decimal(fig_num)&":"&EN,(.5w,0));
+
 defaultscale:=.3;
 label.bot("A2",A2) withcolor red;
 label.top("A6",A6) withcolor red;
 label.top("A9",A9) withcolor red;
;
%==============================================================================
CAT:biological;EN:Adenine;MW:135.13;EXA:1
:
<30,?6,3=?5,1'3'5'9=dl,2'6'9:N,5:/NH2,7:NH
;
%------------------------------------------------------------------------------
CAT:biological;EN:Guanine;MW:151.13;EXA:1
:
<30,?6,3=?5,1'3'9=dl,2'9:N,6'7:NH,5://O,1:/NH2
;
%------------------------------------------------------------------------------
CAT:biological;EN:Cytosine;MW:111.10;EXA:1
:
<30,?6,4'6=dl,4:N,3://O,2:NH,5:/NH2
;
%------------------------------------------------------------------------------
CAT:biological;EN:Thymine;MW:126.11;EXA:1
:
<30,?6,3=dl,2'6:NH,1'5://O,4:/_
;
%------------------------------------------------------------------------------
CAT:biological;EN:Uracil;MW:112.09;EXA:1
:
<30,?6,6=dl,3'5://O,2'4:NH
;
%== Amino acid ================================================================
CAT:biological;EN:Glycine;MW:75.07;EXA:-
:
<30,NH2,!2,COOH
;
%------------------------------------------------------------------------------
\end{verbatim}
%------------------------------------------------------------------------
\noindent%
\newpage
\subsection{MCF aux file output}
\paragraph{(Option parameter setting)}
\index{Mcode}%
\begin{verbatim}
sw_output:=Mcode;         %% output 'temp-mc.aux'
\end{verbatim}
\paragraph{(Command line)}
\begin{verbatim}
  >mpost -s ahlength=3 FILENAME  (sw_output=Info+Mcode)
\end{verbatim}
\paragraph{(Output mcf file)}
\begin{verbatim}
sw_output=Mcode           %% file name = 'temp-mc.aux'

(result)
<30,?6,3=?5,1'3'5'9=dl,2'6'9:N,5:/NH2,7:NH

\end{verbatim}
\paragraph{(Output library file)}
\begin{verbatim}
sw_output=Info+Mcode      %% file name = 'jobname-lib.aux'

(result)
CAT:biological;EN:Adenine;MW:135.13;EXA:1
:
<30,?6,3=?5,1'3'5'9=dl,2'6'9:N,5:/NH2,7:NH
;

\end{verbatim}
%------------------------------------------------------------------------
\paragraph{(LuaLaTeX example)}
%-----------------------------------------------------------------------
\begin{verbatim}
%-----------------------------------------------------------------------
%%  "EN:Vancomycin
\begin{mplibcode}
  beginfigm
    sw_output:=Mcode;     %%%% output temp-mc.aux %%%%
  endfigm;
\end{mplibcode}
%-----------------------------------------------------------------------
\verbatiminput{temp-mc.aux}
%-----------------------------------------------------------------------
\end{verbatim}
%-----------------------------------------------------------------------
\begin{verbatim}
(result)
file name = 'temp-mc.aux'

<30,?6,@4,?6,@-4,\,!3,<-12,?5,@-3,<-12,?6,-3=?6,@-3,*\,!3,
 ?6,@-4,?6,@6,\,!,/*Me^-40,*/OH^20,!,//O,!1,OH,
 3=wb,11=dl,15=dr,17=wf,19=wf,38=wb,{5,7,16,24,25,33,42}:O,
 32:*/H^60,10:/Me,12'31:*/_,27://_,37:/*_,28:/OH,3'29:/*OH
\end{verbatim}
%------------------------------------------------------------------------
\newpage
\noindent%
\subsection{Report output}
\paragraph{(Option parameter setting)}
\index{sw\_output}%
\index{Report}%
\begin{verbatim}
  sw_output:=Report;        %% file name = 'jobname-report.aux'
\end{verbatim}
\paragraph{(Command line)}
\begin{verbatim}
  >mpost -s ahlength=7 FILENAME
\end{verbatim}
\paragraph{(Output)}
\begin{verbatim}
===========================================================================
 No[5],Name<Cytosine>,Category<biological>,File<main_lib.mcf>
---------------------------------------------------------------------------
<30,?6,4'6=db,4:N,3://O,2:NH,5:/NH2
---------------------------------------------------------------------------
 Row[1],Length[37],Block[7],Code pair[59],Warning[0]
---------------------------------------------------------------------------
 =[1] :[4] ?[1] <[1]
---------------------------------------------------------------------------
 Width[30.92419],Height[42.36527], Shift x[-1.77635],Shift y[-12.9921]
 Bond length[11.33855],Atom size[4.881881]
---------------------------------------------------------------------------
 Atom[9],Bond[9],Ring[1],Hide H[2]
< NO. ><atom(s) >(  x axis   ,   y axis   )<bond><hideH><chg>
 A1     C        (         0 ,          0 )    3     1
 A2     N        (         1 ,         -1 )    3        
 A3     C        (         2 ,          0 )    4        
 A4     N        (         2 ,          1 )    3        
 A5     C        (         1 ,          1 )    4        
 A6     C        (         0 ,          1 )    3     1
 A7     O        (         3 ,          0 )    2        
 A8     H        (         1 ,         -1 )    1        
 A9     NH2      (         1 ,          2 )    1        
---------------------------------------------------------------------------
< NO. ><  bond   (sdt)><angle +(  +-  )><length (   pt   )>
 B1     1 ->   2 (  1)     330 (   -30)       1 (      11)
 B2     2 ->   3 (  1)      30 (    30)       1 (      11)
 B3     3 ->   4 (  1)      90 (    90)       1 (      11)
 B4     4 ->   5 (  2)     150 (   150)       1 (      11)
 B5     5 ->   6 (  1)     210 (  -150)       1 (      11)
 B6     6 ->   1 (  2)     270 (   -90)       1 (      11)
 B7     3 ->   7 (  2)     330 (   -30)0.660000 (       7)
 B8     2 ->   8 (  1)     270 (   -90)0.359999 (       4)
 B9     5 ->   9 (  1)      90 (    90)0.660000 (       7)
---------------------------------------------------------------------------
<atom>( atom wt )[ mi wt   ]  < cnt > < sum wt   >[ sum mi wt  ]
 C    (  12.0107)[       12] *        4    48.0428[          48]
 H    (1.0079400)[1.0078250] *        5    5.03969[5.0391251611]
 N    (  14.0067)[14.003074] *        3    42.0200[42.009222013]
 O    (  15.9994)[15.994914] *        1    15.9994[15.994914619]
 Molecular Weight [Mono Isotopic] =       111.1019[  111.043261]
---------------------------------------------------------------------------
 Weight Calc: 111.1019 - Input: 111.10 = 0.0019999
 Fomula Calc: C4H5N3O
===========================================================================
\end{verbatim}
\newpage
%------------------------------------------------------------------------
\noindent%
\subsection{MOL file output}
\paragraph{(Option parameter setting)}
\index{sw\_output}%
\index{MOL2000}%
\index{MOL3000}%
\begin{verbatim}
  sw_output:=MOL2000;   % MOL(V2000)
  sw_output:=MOL3000;   % MOL(V3000)
\end{verbatim}
\paragraph{(Command line)}
\begin{verbatim}
  >mpost -s ahlength=5  FILENAME     % MOL(V2000)
  >mpost -s ahlength=6  FILENAME     % MOL(V3000)
\end{verbatim}
\paragraph{(Output)}
\begin{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  -MCFtoMOL- EN:Caffeine         

 14 15  0  0  0  0  0  0  0  0999 V2000
         0         0         0 C   0  0  0  0
   0.86603      -0.5         0 N   0  0  0  0
   1.73206         0         0 C   0  0  0  0
   1.73206         1         0 C   0  0  0  0
   0.86603       1.5         0 C   0  0  0  0
         0         1         0 N   0  0  0  0
    2.6831  -0.30902         0 N   0  0  0  0
   3.27089       0.5         0 C   0  0  0  0
    2.6831   1.30902         0 N   0  0  0  0
   0.86603  -1.36383         0 C   0  0  0  0
  -0.76894   1.44394         0 C   0  0  0  0
  -0.76894  -0.44394         0 O   0  0  0  0
   0.86603   2.36383         0 O   0  0  0  0
   2.95299    2.1396         0 C   0  0  0  0
  1  2  1  0     0  0
  2  3  1  0     0  0
  3  4  2  0     0  0
  4  5  1  0     0  0
  5  6  1  0     0  0
  6  1  1  0     0  0
  3  7  1  0     0  0
  7  8  2  0     0  0
  8  9  1  0     0  0
  9  4  1  0     0  0
  2 10  1  0     0  0
  6 11  1  0     0  0
  1 12  2  0     0  0
  5 13  2  0     0  0
  9 14  1  0     0  0
M  END
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{verbatim}
%----------------------------------------------------------------------------
\newpage
\subsection{LuaTeX file example}
\index{Fig}%
%############################################################################
\begin{verbatim}
\documentclass{article}
\usepackage{luamplib}%
\usepackage[T1]{fontenc}%
\usepackage{textcomp}%
\mplibcodeinherit{enable}%
\mplibverbatim{enable}%
\mplibnumbersystem{double}%
\begin{mplibcode}
\end{mplibcode}
\begin{document}
\noindent%
%--------------------------------------------------------------------
\begin{mplibcode}
  input mcf2graph;
  sw_output:=Fig;
  max_blength:=4.5mm;
  defaultfont:="uhvr8r";
  defaultsize:=8bp;
  defaultscale:=1;
  %--------------------------------------------------------
  EN:="Limonin";
  MW="470.51";
  beginfigm
    #(50mm,50mm)
    '`(
    %---------------------------------------
    "<30,?6,-3'-4=?6,                     ",
    " -5=?3,-2=wf,-1=wb,6=?5,-4=?6,-5=wf, ",
    " 13'15'17'20:O,3'12'21://O,          ",
    " {4~wf^60,8~zf^60,18^35,18^-35}:/_,  ",
    " {1^60,5^180,16^60}:/*H,             ",
    " @14,\*,|,?5,1'4=dl,3:O              ")
    %---------------------------------------
    \\
  endfigm
\end{mplibcode}\\
%--------------------------------------------------------------------
\begin{mplibcode}
  EN:="beta-carotene";
  MW:="536.87";
  beginfigm
    #(80mm,50mm)
    '`(
    %-----------------------------------------
    "<30,?6,3=dl,{3,5^35,5^-35}:/_,         ",
    " @4,\,|,!18,{1,3,5,7,9,11,13,15,17}=dr,",
    " 3'7'12'16:/_,                         ",
    " |,?6,6=dl,{6,2^35,2^-35}:/_           ")
    %-----------------------------------------
    \\
  endfigm
\end{mplibcode}\\
%--------------------------------------------------------------------
\end{document}
\end{verbatim}
%############################################################################
%------------------------------------------------------------------------
\texttt{\printindex}
%------------------------------------------------------------------------
\end{document}
