%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Example of MCF   Typeset with LuaLaTeX(luamplib)   by A.Yamaji   2025.10.05
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ** typeset by LuaLaTeX(luamplib)
% ** mcf2graph must be version 5.29
% ** mcf2graph.mp and main_lib.mcf must be in the same directory to typeset
%-------------------------------------------------------------------------
\documentclass{article}
\usepackage{luamplib}
\mplibcodeinherit{enable}
\mplibnumbersystem{double}
\mpliblegacybehavior{disabled}
%-------------------------------------------------------------------------
\topmargin=-27mm%
\oddsidemargin=-12mm%
\textwidth=190mm%
\textheight=280mm%
\parindent=0mm%
\newcount\headeroff%
\headeroff=0%
\makeatletter%
%-------------------------------------------------------------------------
\begin{document}
\begin{center}
 {\Huge\sf Molecular Coding Format examples} \vspace{4mm} \\
 Author : Akira Yamaji \quad Date : \today \quad
 Located at : http://www.ctan.org/pkg/mcf2graph \\
\end{center}
%-------------------------------------------------------------------------
\newbox \fig@box%
\newcount \fig@num%
\newcount \col@num%
\font\labelM=cmtt8 at 6pt\relax%
%-------------------------------------------------------------------------
\fig@num=0%
\col@num=0%
\unitlength=0.01mm%
%-------------------------------------------------------------------------
\newif\ifCONT@%
\CONT@true%
%-------------------------------------------------------------------------
\begin{mplibcode}
  input mcf2graph;
  def make_frame=
    draw (0,0)--(185mm,0)--(185mm,h)--(0,h)--cycle wpcs thickness_frame;
    draw (w,h-header_h)--(185mm,h-header_h) wpcs thickness_frame;
    draw (w,h)--(w,0) wpcs thickness_frame;
    for col_w=85mm,110mm,130mm,150mm:
      draw (col_w,h)--(col_w,h-header_h) wpcs thickness_frame;
    endfor
  enddef;
%-------------------------------------------------------------------------
  beginfigm
    fsize:=(50mm,8mm);
    fmargin:=(6mm,2mm);
    mposition:=(1,0.5);
    max_blength:=3.5mm;
    row_h:=3.8mm;
    header_h:=3.8mm;
    loadm("EN=Benzene")
    getm(1) putm
    **(
      defaultfont:="uhvr8r"; defaultscale:=0.5;
      label.lrt("[No]",(0,h));
      defaultscale:=0.6;
      label.lrt("Name",(w,h));
      label.rt("Molecular structure",(0mm,0.5h));
      label.lrt("Category",(85mm,h));
      label.lrt("Molecular Weight",(110mm,h));
      label.lrt("MW calculated",(130mm,h));
      label.lrt("Composition Formula calculated",(150mm,h));
      label.lrt("Molecular Coding Format",(50mm,h-11.5));
      make_frame;
    )
  endfigm
%------------------------------------------------------------------------------
  loadm("LV>=1","LV<=2")
  fig_num:=0;
  fsize:=(50mm,15.2mm); fmargin:=(8mm,0.5mm);
  max_blength:=3.3mm; row_h:=3.8mm; header_h:=3.8mm;
\end{mplibcode}
%------------------------------------------------------------------------------
\CONT@true%
\fig@num=0%
\noindent%
\loop%
\advance\fig@num\@ne\relax%
\ifnum\fig@num=575 \CONT@false%
\else%
\begin{mplibcode}%
  beginfigm
    getm(fig_num) putm
    **(
      defaultfont:="uhvr8r"; defaultscale:=0.8;
      label.lrt("["&decimal(fig_num)&"]",(0,2h)) scaled 0.5;
      if length(EN)>20: defaultscale:=20/length(EN)*0.8; label.lrt(EN,(w,h)); defaultscale:=0.8;
      else:             label.lrt(EN,(w,h));
      fi
      label.lrt(CAT,(85mm,h)); label.lrt(MW,(110mm,h)); 
      label.lrt(mw,(130mm,h)); label.lrt(fm,(150mm,h));
      make_frame;
      defaultfont:="cmtt9"; defaultscale:=1; row_h:=10;
      for i=1 upto mc_row: label.lrt(mc[i],(w+mc_indent[i]*4.25,h-(i-1)*row_h-11.5)); endfor
    )
    VerbatimTeX("\gdef\EN{"&EN&"}");
  endfigm
\end{mplibcode}\vspace{-1.2pt}\\
%------------------------------------------------------------------------------
\fi%
\message{[\the\fig@num:\EN]}%
\ifCONT@ \repeat%
%------------------------------------------------------------------------------
\newpage%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{mplibcode}
  loadm("LV=9")
  fig_num:=0;
  fsize:=(50mm,34mm); fmargin:=(2mm,2mm);
  max_blength:=4mm; row_h:=3.8mm; header_h:=3.8mm;
\end{mplibcode}
%------------------------------------------------------------------------------
\noindent%
\CONT@true%
\fig@num=0%
\loop%
\advance\fig@num\@ne\relax%
\ifnum\fig@num=25 \CONT@false%
\else%
\begin{mplibcode}%
  beginfigm
    getm(fig_num) putm
    **(
      defaultfont:="uhvr8r"; defaultscale:=0.8;
      label.lrt("["&decimal(fig_num)&"]",(0,2h)) scaled 0.5;
      if length(EN)>20: defaultscale:=20/length(EN); label.lrt(EN,(w,h)); defaultscale:=1;
      else:             label.lrt(EN,(w,h));
      fi
      label.lrt(CAT,(85mm,h)); label.lrt(MW,(110mm,h));
      label.lrt(mw,(130mm,h)); label.lrt(fm,(150mm,h));
      make_frame;
      defaultfont:="cmtt9"; defaultscale:=1;
      if mc_row>12: defaultscale:=0.6; row_h:=5.8;
      ef mc_row>7:  defaultscale:=0.8; row_h:=6.5;
      ef mc_row>6:  row_h:=10;
      ef mc_row>5:  row_h:=11;
      else: row_h:=12;
      fi
      for i=1 upto mc_row: label.lrt(mc[i],(w+mc_indent[i]*4.25,h-(i-1)*row_h-12)); endfor
    )
    VerbatimTeX("\gdef\EN{"&EN&"}");
  endfigm
\end{mplibcode}\vspace{-1.2pt}\\
%------------------------------------------------------------------------
\fi%
\message{[\the\fig@num:\EN]}%
\ifCONT@ \repeat%
%------------------------------------------------------------------------------
\end{document}

.
