diff options
Diffstat (limited to 'graphics/mcf2graph')
-rw-r--r-- | graphics/mcf2graph/CHANGELOG | 7 | ||||
-rw-r--r-- | graphics/mcf2graph/README | 19 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf2graph.mf | 57 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_exa_soc.mf | 18 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_example.pdf | bin | 289530 -> 306240 bytes | |||
-rw-r--r-- | graphics/mcf2graph/mcf_example.tex | 91 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_man_soc.mf | 8 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_manual.pdf | bin | 569071 -> 576529 bytes | |||
-rw-r--r-- | graphics/mcf2graph/mcf_manual.tex | 193 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_mplib_exa.pdf | bin | 153581 -> 201822 bytes | |||
-rw-r--r-- | graphics/mcf2graph/mcf_mplib_exa.tex | 4 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_setup.sty | 75 |
12 files changed, 256 insertions, 216 deletions
diff --git a/graphics/mcf2graph/CHANGELOG b/graphics/mcf2graph/CHANGELOG index 0bc2c7e8dd..e314506053 100644 --- a/graphics/mcf2graph/CHANGELOG +++ b/graphics/mcf2graph/CHANGELOG @@ -1,6 +1,11 @@ ******************************************************************************* - Changelog of mcf2graph software package by Akira Yamaji 2020-07-26 + Changelog of mcf2graph software package by Akira Yamaji 2020-08-10 ******************************************************************************* +[ver. 4.51 / 2020-08-10] + -improve aux file output,input + -add style file mcf_setup.sty + -update MCF manual,example + [ver. 4.50 / 2020-07-26] -fix bug in function add() -delete file mcf_man_soc-064.mps diff --git a/graphics/mcf2graph/README b/graphics/mcf2graph/README index 1ade6632aa..016dcd6c04 100644 --- a/graphics/mcf2graph/README +++ b/graphics/mcf2graph/README @@ -1,7 +1,7 @@ ******************************************************************************** mcf2graph : Convert Molecular Coding Format to graphics with METAFONT/METAPOST Author : Akira Yamaji - version : 4.50 2020-07-26 + version : 4.51 2020-08-10 E-mail : mcf2graph@gmail.com Located at : http://www.ctan.org/pkg/mcf2graph ******************************************************************************** @@ -18,16 +18,17 @@ ( 1) README This file ( 2) CHANGELOG Changelog file of mcf2graph ( 3) mcf2graph.mf Macro of Metafont / Metapost - ( 4) mcf_manual.tex MCF syntax manual(LaTeX file) - ( 5) mcf_man_soc.mf Molecular difinition file for mcf_manual.tex - ( 6) mcf_manual.pdf PDF of (4) (used pdftex(LaTeX)) - ( 7) mcf_example.tex LaTeX example, + ( 4) mcf_setup.sty Style file for aux file input + ( 5) mcf_manual.tex MCF syntax manual(LaTeX file) + ( 6) mcf_man_soc.mf Molecular difinition file for mcf_manual.tex + ( 7) mcf_manual.pdf PDF of (4) (used pdftex(LaTeX)) + ( 8) mcf_example.tex LaTeX example, Make file 'mcf_exa_soc-info.aux' before typeset >mpost -s ahlength=1 mcf_exa_soc.mf - ( 8) mcf_exa_soc.mf Molecular difinition file for mcf_example.tex - ( 9) mcf_example.pdf PDF of (8) (used pdftex(LaTeX)) - (10) mcf_mplib_exa.tex luamplib(LuaLaTeX) example - (11) mcf_example.pdf PDF of (11) typeset with LuaTeX(LuaLaTeX) + ( 9) mcf_exa_soc.mf Molecular difinition file for mcf_example.tex + (10) mcf_example.pdf PDF of (8) (used pdftex(LaTeX)) + (11) mcf_mplib_exa.tex luamplib(LuaLaTeX) example + (12) mcf_example.pdf PDF of (11) typeset with LuaTeX(LuaLaTeX) 3. How to use mcf2graph with Metapost Minimum requirement to run mcf2graph : mpost.exe,mpost.dll,mpost.mp,plain.mp diff --git a/graphics/mcf2graph/mcf2graph.mf b/graphics/mcf2graph/mcf2graph.mf index 5a4802cb48..6011d247e6 100644 --- a/graphics/mcf2graph/mcf2graph.mf +++ b/graphics/mcf2graph/mcf2graph.mf @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 4.50 Copyright (c) 2013-2020 Akira Yamaji +% mcf2graph ver 4.51 Copyright (c) 2013-2020 Akira Yamaji % % Permission is hereby granted, free of charge, to any person obtaining a copy of this software % and associated documentation files (the "Software"), to deal in the Software without restriction, @@ -51,9 +51,11 @@ path arrow_path,dottedline_path,line_path,arrow_head; char_num:=str_cnt:=proc_end:=mangle:=sw_label_emu:=sw_calc:=sw_ext_all:=0; sw_numberA:=sw_numberB:=sw_aux_out:=sw_expand:=sw_fframe:=sw_mframe:=sw_aframe:=sw_trimming:=0; sw_rep_out:=sw_mol_out:=sw_group_off:=sw_single:=sw_arrow:=0; -numberA_start:=numberB_start:=1; numberA_end:=numberB_end:=4095; aux_max:=max_inf_num:=20; -aux_delimiter:=";"; var1:="jobname"; tag1:="F"; var2:="char_num"; tag2:="C"; -for i=3 upto aux_max: var[i]:=tag[i]:=""; endfor +numberA_start:=numberB_start:=1; numberA_end:=numberB_end:=4095; +%------------------------------------------------------------------------------------------------- +aux_max:=max_inf_num:=20; +aux_delimiter:=";"; +for i=1 upto aux_max: var[i]:=tag[i]:=""; endfor %================================================================================================= if (known green)and(known ahlength): f_MP:=1; @@ -124,7 +126,7 @@ fi clearit; %-------------------------------------------------------------------------------------------------- message "---------------------------------------------"; -message "This is mcf2graph ver 4.50 2020.07"; +message "This is mcf2graph ver 4.51 2020.08"; if f_MP=1: if bboxmargin=0: message "output no image file"; elseif bboxmargin=1: message "output first font only"; @@ -242,7 +244,7 @@ def beginfont(text s)= begingroup save cntA,cntB,cntM,minX,minY,f_beginchar,numS,sftX,sftY,f_ext,blen,ext,add, cal_FM,cal_MW,cal_MW_str,cal_MI,cal_MI_str,wdM,htM, - inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_MW, + inf_NO,inf_EN,inf_JN,inf_MW,inf_MI,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB, posA,posM,lineB,sB,eB,angB,angA,wdA,dxA,lenB,ang_br,info; numeric lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],numS[],wdM[],htM[],wdA[],dxA[]; pair posA[],posM[][]; @@ -252,8 +254,8 @@ def beginfont(text s)= def ext=ext_to_font enddef; def add=add_to_molecule enddef; %------------------------------------------------------------------------------------------------ - inf_NO:=inf_EN:=inf_JN:=inf_FM:=inf_CAS:=inf_USE:=inf_EXA:=inf_EXB:=inf_MW:=""; - cal_MW:=cal_MW_str:=cal_FM:=""; + inf_NO:=inf_EN:=inf_JN:=inf_MW:=inf_FM:=inf_CAS:=inf_USE:=inf_EXA:=inf_EXB:=""; + cal_MW:=cal_MW_str:=cal_MI:=cal_MI_str:=cal_FM:=""; %------------------------------------------------------------------------------------------------ char_num:=char_num+1; store_par(parameter_list); @@ -531,9 +533,9 @@ enddef; %-------------------------------------------------------------------------------------------------- def add_to_molecule(text TXT)= begingroup - save w,h,n,l,p,am,aw,A,B,plus,minus,lonepair,**,<<,/*; + save w,h,n,l,p,am,aw,A,B,plus,minus,lonepair,__,**,=>,<<,/*; numeric A[]dir,B[]up,A[]ang,B[]ang; - pair p[],A[],B[]s,B[]e,B[]m,A[]up,A[]left,A[]right,A[]down,B[]up,B[]left,B[]right,B[]down; + pair __,p[],A[],B[]s,B[]e,B[]m,A[]up,A[]left,A[]right,A[]down,B[]up,B[]left,B[]right,B[]down; path B[]; ext_setup; def plus = circled_plus_add enddef; @@ -541,7 +543,10 @@ def add_to_molecule(text TXT)= def lonepair = lone_pair_add enddef; let ** = scaled; let << = rotated; + let => = shifted; + __ = (1,0); primarydef a /* b = point b of a enddef; + %---------------------------------------------- w:=mol_wd; h:=mol_ht; l:=blen; aw:=atom_wd; p0:=(minX,minY); An:=cntA; Bn:=cntB; @@ -565,8 +570,14 @@ enddef; %-------------------------------------------------------------------------------------------------- def ext_to_font(text TXT)= begingroup - save w,h,wd,ht,n,p,am,aw; - pair p[]; + save w,h,wd,ht,n,p,am,aw,__,**,<<,=>,/*; + pair __,p[]; + let ** = scaled; + let << = rotated; + let => = shifted; + primarydef a /* b = point b of a enddef; + __ = (1,0); + %---------------------------------------------------------------------- ext_setup; w:=xpart(fsize); h:=ypart(fsize); @@ -1595,17 +1606,29 @@ enddef; def proc_auxfile_out= message "["&decimal(char_num)&"]:"&inf_EN; out_file_name:=out_file_aux; + %-------------------------------------------------------------------------------------- if (char_num=1)and(sw_aux_out=2): - printf tag[1] for i=2 upto aux_max: exitif tag[i]=""; &";"&tag[i] endfor ; + printf tag[1] for i=2 upto aux_max: exitif tag[i]=""; &aux_delimiter&tag[i] endfor ; fi + %-------------------------------------------------------------------------------------- for i=1 upto aux_max: exitif tag[i]=""; if i=1: printf "" else: &aux_delimiter fi - if sw_aux_out=1: &tag[i]&":" fi & - if string scantokens(var[i]): scantokens(var[i]) - elseif numeric scantokens(var[i]): decimal(scantokens(var[i])) + if sw_aux_out=1: &tag[i]&":" fi + if tag[i]="F": & jobname + elseif tag[i]="C": & decimal(char_num) + elseif tag[i]="mw": & cal_MW + elseif tag[i]="fm": & cal_FM + elseif tag[i]="mi": & cal_MI + elseif tag[i]="w": & decimal(xpart(fsize)) + elseif tag[i]="h": & decimal(ypart(fsize)) + elseif tag[i]="w1": & decimal(mol_wd) + elseif tag[i]="h1": & decimal(mol_ht) + elseif tag[i]="An": & decimal(cntA) + elseif tag[i]="Bn": & decimal(cntB) + else: fi endfor - if sw_aux_out=1: for i=1 upto inf_num: &aux_delimiter&info[i] endfor; fi + if (sw_aux_out=1)or(sw_aux_out=3): for i=1 upto inf_num: &aux_delimiter&info[i] endfor; fi enddef; %================================================================================================== vardef round_auto(expr n)= diff --git a/graphics/mcf2graph/mcf_exa_soc.mf b/graphics/mcf2graph/mcf_exa_soc.mf index 9c4a023839..f2a973c7cf 100644 --- a/graphics/mcf2graph/mcf_exa_soc.mf +++ b/graphics/mcf2graph/mcf_exa_soc.mf @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2020.07.26 +% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2020.08.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %%% it must be version 4.50 or later +input mcf2graph.mf; %%% it must be version 4.51 or later %------------------------------------------------------------------------- fsize:=(33mm,24mm); max_blength:=4.5mm; @@ -11,16 +11,10 @@ max_blength:=4.5mm; %%%%sw_aframe:=1; %%%%sw_mframe:=1; %%%%sw_expand:=1; -var3:="cal_FM"; tag3:="cFM"; -var4:="cal_MW"; tag4:="cMW"; -%%%% outputtemplate:="%3c-%j.png"; -%%%% var3:="mol_wd"; tag3:="mWD"; -%%%% var4:="mol_ht"; tag4:="mHT"; -%%%% var5:="cal_MW"; tag5:="cMW"; -%%%% var6:="cal_MI"; tag6:="cMI"; -%%%% var7:="cal_FM"; tag7:="cFM"; -%%%% var8:="inf_USE"; tag8:="USE"; -%%%% var9:="inf_EXA"; tag9:="EXA"; +tag1:="F"; tag2:="C"; tag3:="fm"; tag4:="mw"; +%%%%tag5:="mi"; +%%%%tag6:="w1"; +%%%%tag7:="h1"; %%%% sw_rep_out:=1; %%%% sw_mol_out:=1; %%%% atomfont:="uhvb8r"; diff --git a/graphics/mcf2graph/mcf_example.pdf b/graphics/mcf2graph/mcf_example.pdf Binary files differindex 3dc4e44d11..709aff0809 100644 --- a/graphics/mcf2graph/mcf_example.pdf +++ b/graphics/mcf2graph/mcf_example.pdf diff --git a/graphics/mcf2graph/mcf_example.tex b/graphics/mcf2graph/mcf_example.tex index 871b00e1b5..fcbacc1ec8 100644 --- a/graphics/mcf2graph/mcf_example.tex +++ b/graphics/mcf2graph/mcf_example.tex @@ -1,8 +1,11 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2019.12.13 +% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2020.08.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[a4paper]{article} \usepackage{graphicx} +%--------------------- +\usepackage{mcf_setup} +%--------------------- \pagestyle{empty} \topmargin=-20mm \oddsidemargin=-12mm @@ -15,61 +18,14 @@ \newbox \@stringbox% \newcount \fontnum% \newcount \tnum% +\tnum=0% +\font\labelM=cmtt8 at 6pt\relax% +%------------------------------------------------------------------------------- \newif\ifCONT@% \newread\@auxf% -%------------------------------------------------------------------------------- -\def\mol@sel#1{% -\if#1\empty\relax\else% - \edef\@tag{\expandafter\@fst@param#1;}% - \edef\@var{\expandafter\@sec@param#1;}% - \ifx\@tag\@F\edef\MOLfile{\@var}\fi \ifx\@tag\@C\edef\MOLchar{\@var}\fi% - \ifx\@tag\@Lx\edef\MOLlenx{\@var}\fi \ifx\@tag\@Ly\edef\MOLleny{\@var}\fi% - \ifx\@tag\@EN\edef\MOLnameE{\@var}\fi \ifx\@tag\@JN\edef\MOLnameJ{\@var}\fi% - \ifx\@tag\@CAS\edef\MOLcas{\@var}\fi \ifx\@tag\@USE\edef\MOLuse{\@var}\fi% - \ifx\@tag\@FM\edef\MOLfm{\@var}\fi \ifx\@tag\@cFM\edef\CALfm{\@var}\fi% - \ifx\@tag\@MW\edef\MOLmw{\@var}\fi \ifx\@tag\@cMW\edef\CALmw{\@var}\fi% - \ifx\@tag\@logP\edef\MOLlogP{\@var}\fi \ifx\@tag\@EXA\edef\MOLextA{\@var}\fi% - \ifx\@tag\@EXB\edef\MOLextB{\@var}\fi \ifx\@tag\@NO\edef\MOLnum{\@var}\fi\fi}% -%------------------------------------------------------------------------------- -\def\@F{F}\def\@C{C}\def\@EN{EN}\def\@JN{JN}\def\@CAS{CAS}% -\def\@MW{MW}\def\@cMW{cMW}\def\@FM{FM}\def\@cFM{cFM}\def\@Lx{Lx}\def\@Ly{Ly}% -\def\@NO{NO}\def\@USE{USE}\def\@logP{logP}\def\@EXA{EXA}\def\@EXB{EXB}% -%------------------------------------------------------------------------------- -\def\@fst@param#1:#2;{#1}\def\@sec@param#1:#2;{#2}% -\def\@stru#1[#2]{\font\@strufont=#1\relax\hbox{\@strufont\char#2}}% -%------------------------------------------------------------------------------- -\font\labelM=cmtt8 at 6pt% -\def\put@char{% - \unitlength=0.01mm\relax \@tempcnta=3300\relax \@tempcntb=3750\relax% - \begin{picture}(\@tempcntb,\@tempcnta)% - \advance\@tempcnta -300\relax% - \put(20,\@tempcnta){\footnotesize\bf [\the\fontnum] \MOLnameE}% - \advance\@tempcnta -250\relax% - \put(20,\@tempcnta){\labelM MW:\CALmw { / }FM:\CALfm}% - \advance\@tempcnta -220\relax% - \put(20,\@tempcnta){\labelM MW:\MOLmw(data)}% - \put( 0,0){\makebox(\@tempcntb,\@tempcnta){\@stru{\MOLfile}[\MOLchar]}}% - \end{picture}% -} -%------------------------------------------------------------------------------- -% modified latex2e kernel program control (@for delimiter ','=>';') -\def\@sfor#1#2{\expandafter\def\expandafter\@tmp\expandafter{#1}% - \ifx\@tmp\@empty\else\expandafter\@rep#1;\@nil;\@@\@list{#2}\fi}% -\def\@rep#1;#2\@@#3#4{\def#3{#1}\ifx#3\@nnil% - \expandafter\@fornoop\else#4\relax\expandafter\@rep\fi#2\@@#3{#4}}% -%------------------------------------------------------------------------------- -\def\inputINFOS#1{\openin\@auxf=#1\CONT@true% -\loop -\read\@auxf to \@info% -\ifeof\@auxf\CONT@false\else\@sfor\@info{\mol@sel\@list}% - \put@char% - \advance\fontnum\@ne\relax\advance\tnum\@ne\relax% - \ifnum\tnum=5 \\ \tnum=0\relax \fi% -\fi% -\ifCONT@ \repeat -\closein\@auxf}% -%------------------------------------------------------------------------------- -\makeatother +%------------------------------------------------------------------------ +\fontnum=1% +\unitlength=0.01mm% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \begin{center} @@ -79,10 +35,31 @@ \end{center} {\small ** FM:Molecular formula calculated by mcf2graph \quad ** MW:Molecular weight calculated by mcf2graph}\vspace{3mm}\\ -\fontnum=1% -\noindent% %------------------------------------------------------------------------ -\inputINFOS{mcf_exa_soc-info.aux}% +\noindent% +\openin\@auxf=mcf_exa_soc-info.aux% +\CONT@true% +\loop% +\read\@auxf to \@info% +\ifeof\@auxf\CONT@false\else\@sfor\@info{\tag@var\@list}% + %------------------------------------------------------------ + \begin{picture}(3750,3300)% + \put(20,3000){\footnotesize\bf \the\fontnum:\EN}% + \put(20,2750){\labelM MW:\mw { / }FM:\fm}% + \put(20,2530){\labelM MW:\MW(data)}% + \put( 0,0){% + \makebox(3750,2530){% + \font\@strufont=\File\relax\hbox{\@strufont\char\Char}% + }% + }% + \end{picture}% + %------------------------------------------------------------ + \advance\fontnum1\relax% + \advance\tnum1\relax% + \ifnum\tnum=5 \\ \tnum=0 \fi% +\fi% +\ifCONT@ \repeat% +\closein\@auxf% %------------------------------------------------------------------------ \end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/graphics/mcf2graph/mcf_man_soc.mf b/graphics/mcf2graph/mcf_man_soc.mf index dfc1cdc1a7..e2ff60943e 100644 --- a/graphics/mcf2graph/mcf_man_soc.mf +++ b/graphics/mcf2graph/mcf_man_soc.mf @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2020.07.26 +% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2020.08.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %% it must be version 4.50 or later +input mcf2graph.mf; %% it must be version 4.51 or later %------------------------------------------------------------------------ sw_mframe:=0; sw_expand:=0; @@ -984,10 +984,10 @@ beginfont("EN:add() 1") dotlabel.lft("p0",p0); dotlabel.rt( "p0+(w,h)",p0+(w,h)); dotlabel.ulft("A1",A1); - drawarrow A1..A1+(l,0)<<A1ang; + drawarrow A1..A1+__*l<<A1ang; dotlabel.lrt( "B3s",B3s); dotlabel.rt("B3m",B3m); - drawarrow B3m..B3m+(l,0)<<(B3ang+90); + drawarrow B3m..B3m+__*l<<(B3ang+90); dotlabel.ulft("A6",A6); drawarrow A1{A1down}..A6; dotlabel.urt( "B3e",B3e); diff --git a/graphics/mcf2graph/mcf_manual.pdf b/graphics/mcf2graph/mcf_manual.pdf Binary files differindex 04e3d8108e..19f2435a1b 100644 --- a/graphics/mcf2graph/mcf_manual.pdf +++ b/graphics/mcf2graph/mcf_manual.pdf diff --git a/graphics/mcf2graph/mcf_manual.tex b/graphics/mcf2graph/mcf_manual.tex index 4c15bbafc1..9f33673c13 100644 --- a/graphics/mcf2graph/mcf_manual.tex +++ b/graphics/mcf2graph/mcf_manual.tex @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format manual by Akira Yamaji 2020.07.26 +% Molecular Coding Format manual by Akira Yamaji 2020.08.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[a4paper]{article} %%%%\documentclass[a4paper,twoside]{article} @@ -9,6 +9,9 @@ %%%%\usepackage[dvipdfmx]{graphicx} \usepackage[pdftex]{hyperref} %%%%\usepackage[dvipdfmx]{hyperref} +%--------------------- +\usepackage{mcf_setup} +%--------------------- \hypersetup{colorlinks=true,linkcolor=blue} \topmargin=-18mm \textheight=254mm @@ -19,81 +22,51 @@ \unitlength=1mm% \makeatletter %---------------------------------------------------------------------------- -\newcount \fontnum% -\newcount \tempnum% +\newcount \fnum% \newdimen \htman% \newdimen \wdman% \newdimen \htmans% +\newbox \fbox% %---------------------------------------------------------------------------- -\newcount \MCFformat% -\newbox \box@strufont% \htman=45mm% \wdman=94mm% \htmans=42mm% -\fontnum=29% -\tempnum=1% +\fnum=29% %---------------------------------------------------------------------------- \edef\MCFjobname{mcf_man_soc}% +\edef\@pk{pk}% %---------------------------------------------------------------------------- -\MCFformat=-1% use pkfont -%%\MCFformat=0% \includegraphics{jobname-nnn.mps} -%%\MCFformat=1% \includegraphics[width=wd{jobname-nnn.png}} -%%\MCFformat=2% \includegraphics{jobname-nnn.svg} -%%\MCFformat=3% \includegraphics{jobname-nnn.eps} +\edef\fext{pk}% +%%\edef\fext{mps}% +%%\edef\fext{png}% +%%\edef\fext{svg}% +%%\edef\fext{eps}% %---------------------------------------------------------------------------- \font\@strufont=\MCFjobname\relax% %---------------------------------------------------------------------------- \def\MCFgraph{% -\ifnum\MCFformat<0{\hspace{5mm}\@strufont\char\fontnum}% +\ifx\fext\@pk{\hspace{5mm}\@strufont\char\fnum}% \else% -\ifnum\MCFformat=0\edef\stru@ext{mps}\fi -\ifnum\MCFformat=1\edef\stru@ext{png}\fi -\ifnum\MCFformat=2\edef\stru@ext{svg}\fi -\ifnum\MCFformat=3\edef\stru@ext{eps}\fi -% -\ifnum\fontnum<100% -\ifnum\fontnum<10\edef\zero@cnt{00}% jobname-00n.ext -\else\edef\zero@cnt{0}\fi% jobname-0nn.ext -\else\edef\zero@cnt{}% jobname-nnn.ext +\ifnum\fnum<10\edef\pre@zero{00}% +\else\ifnum\fnum<100\edef\pre@zero{0}% +\else\edef\pre@zero{}\fi\fi% +\edef\file@name{\MCFjobname-\pre@zero\the\fnum.\fext}% +\setbox\fbox=\hbox{\@strufont\char\fnum}% +\hspace{5mm}\includegraphics[width=\wd\fbox,height=\ht\fbox]{\file@name}% \fi% -% -\edef\file@name{\MCFjobname-\zero@cnt\the\fontnum.\stru@ext}% -% -\ifnum\MCFformat=1% -\setbox\box@strufont=\hbox{\@strufont\char\fontnum}% -\hspace{5mm}\includegraphics[width=\wd\box@strufont]{\file@name}% -\else% -\hspace{5mm}\includegraphics\file@name% -\fi% -% -\fi% -% -\global\advance\fontnum\@ne\relax% +\global\advance\fnum\@ne\relax% }% %--------------------------------------------------------------------------- -\def\@F{F}\def\@C{C}\def\@EN{EN}\def\@NO{NO}\def\@cMW{cMW}\def\@cFM{cFM}% -\def\@fst#1:#2;{#1}\def\@sec#1:#2;{#2}% -\def\mol@sel#1{% -\if#1\empty\relax\else% - \edef\@tag{\expandafter\@fst#1;}% - \edef\@var{\expandafter\@sec#1;}% - \ifx\@tag\@F\edef\MOLfile{\@var}\fi% - \ifx\@tag\@C\edef\MOLchar{\@var}\fi% - \ifx\@tag\@EN\edef\MOLnameE{\@var}\fi% - \ifx\@tag\@NO\edef\MOLnum{\@var}\fi - \ifx\@tag\@cMW\edef\CALmw{\@var}\fi - \ifx\@tag\@cFM\edef\CALfm{\@var}\fi -\fi}% \def\put@char{% - \begin{picture}(84,28)% - \put(0,23){\bf [\MOLnum]\MOLnameE}% - \put(5,18){\small\tt FM:\CALfm{ }MW:\CALmw}% - \put(5,0){\font\@strufont=\MOLfile\relax% - \hbox{\@strufont\char\MOLchar}}% + \begin{picture}(75,28)% + \put(0,23){\bf [\NO]\EN}% + \put(5,18){\small\tt FM:\fm{ }MW:\mw}% + \put(5,0){\font\@strufont=\File\relax% + \hbox{\@strufont\char\Char}}% \end{picture}% -} +}% %---------------------------------------------------------------------------- -\def\INFO#1{\@for\@temp:=#1\do{\mol@sel\@temp}\put@char}% +\def\INFO#1{\@for\@temp:=#1\do{\tag@var\@temp}\put@char}% %---------------------------------------------------------------------------- \begin{document} \title{\Huge\sf Molecular Coding Format manual} @@ -1353,28 +1326,30 @@ input mcf2graph.mf; % input macro %------------------------------------------------------------------------- sw_aux_out:=1; % aux(information) file output on > Global setting fsize:=(60mm,40mm); % (font width,font height) > -var3:="cal_MW"; tag3:="cMW"; > AUX file table -var4:="cal_FM"; tag4:="cFM"; > +tag1:="F"; > AUX file table +tag2:="C"; > +tag3:="mw"; > +tag4:="fm"; > %%%% sw_rep_out:=1; > Report output %%%% sw_mol_out:=1; > MOL file output outputformat:="png"; hppp:=vppp:=0.1; > PNG output outputtemplate:="%j-%3c.png"; > %------------------------------------------------------------------------- -beginfont("NO:1","EN:Ampicillin") > begin font(information) +beginfont("N:1","EN:Ampicillin") > begin font(information) MC(<45,?4,2:N,2=?5,-1:S, > begin MCF (1) {3^45,4^-45}:/*H,1://O^15,5:/*COOH^-18, > {6^35,6^-35}:/_, > 4:@,75,NH,!,//O,!,/*NH,!,Ph) > end MCF endfont > end font %------------------------------------------------------------------------ -beginfont("NO:2","EN:Cholesterol") > begin font(information) +beginfont("N:2","EN:Cholesterol") > begin font(information) MC(<30,?6,{-4,-2}=?6,-4=?5,7=dl, > begin MCF (2) 1:*/OH,{4,12}:*/_^60,9:*/H^60, > 10:/*H^180,{11,-1}:/*H^-60, > -1:@,17,/*_,!4,/_,!) > end MCF endfont > end font %------------------------------------------------------------------------ -beginfont("NO:3","EN:Limonin") > begin font(information) +beginfont("N:3","EN:Limonin") > begin font(information) MC(<30,?6,{-3,-4}=?6, > begin MCF (3) -5=?3,-2=wf,-1=wb,6=?5,-4=?6,-5=wf, > {13,15,17,20}:O,{3,12,21}://O, > @@ -1383,7 +1358,7 @@ beginfont("NO:3","EN:Limonin") > begin font(information) 14:\*,|,?5,{1,4}=dl,3:O) > end MCF endfont > end font %------------------------------------------------------------------------ -beginfont("NO:4","EN:beta-carotene) > begin font(information) +beginfont("N:4","EN:beta-carotene) > begin font(information) MC(<30,?6,3=dl,{3,5^35,5^-35}:/_, > begin MCF (4) 4:\,|,!18,{1,3,5,7,9,11,13,15,17}=dr, > {3,7,12,16}:/_, > @@ -1409,42 +1384,39 @@ bye \end{verbatim} \paragraph{(Sourse)} \begin{verbatim} -beginfont("EN:Ampicillin")(....) -beginfont("EN:Cholesterol")(....) -beginfont("EN:Limonin")(....) -beginfont("EN:beta-Carotene")(....) +beginfont("EN:Ampicillin") .... endfont +beginfont("EN:Cholesterol") .... endfont +beginfont("EN:Limonin") .... endfont +beginfont("EN:beta-Carotene") .... endfont \end{verbatim} \paragraph{(Setting)} \begin{verbatim} -tag1:="F"; var1:="jobname"; * default output -tag2:="C"; var2:="char_num"; * default output -tag3:="cMW"; var3:="calc_weight"; -tag4:="cFM"; var4:="calc_formula"; +tag1:="F"; tag2:="C"; tag3:="mw"; tag4:="fm"; \end{verbatim} \paragraph{(Output)} \begin{verbatim} (sw_aux_out=1) -F:mcf_man_soc;C:1;cMW:349.40462;cFM:C16H19N3O4S;EN:Ampicillin -F:mcf_man_soc;C:2;cMW:386.6532;cFM:C27H46O;EN:Cholesterol -F:mcf_exa_soc;C:3;cMW:470.5113;cFM:C26H30O8;EN:Limonin -F:mcf_exa_soc;C:4;cMW:536.8722;cFM:C40H56;EN:beta-Carotene - -(sw_aux_out=2) -F;C;cMW;cFM;EN -mcf_man_soc;1;349.40462;C16H19N3O4S;Ampicillin -mcf_man_soc;2;386.6532;C27H46O;Cholesterol -mcf_exa_soc;3;470.5113;C26H30O8;Limonin -mcf_exa_soc;4;536.8722;C40H56;beta-Carotene - -(aux_delimiter:="/";) -F:mcf_man_soc/C:1/cMW:349.40462/cFM:C16H19N3O4S/EN:Ampicillin -F:mcf_man_soc/C:2/cMW:386.6532/cFM:C27H46O/EN:Cholesterol -F:mcf_exa_soc/C:3/cMW:470.5113/cFM:C26H30O8/EN:Limonin -F:mcf_exa_soc/C:4/cMW:536.8722/cFM:C40H56/EN:beta-Carotene +F:mcf_man_soc;C:1;mw:349.40462;fm:C16H19N3O4S;EN:Ampicillin +F:mcf_man_soc;C:2;mw:386.6532;fm:C27H46O;EN:Cholesterol +F:mcf_exa_soc;C:3;mw:470.5113;fm:C26H30O8;EN:Limonin +F:mcf_exa_soc;C:4;mw:536.8722;fm:C40H56;EN:beta-Carotene + +(sw_aux_out=2 (3)) +F;C;mw;fm(;EN) +mcf_man_soc;1;349.40462;C16H19N3O4S(;Ampicillin) +mcf_man_soc;2;386.6532;C27H46O(;Cholesterol) +mcf_exa_soc;3;470.5113;C26H30O8(;Limonin) +mcf_exa_soc;4;536.8722;C40H56(;beta-Carotene) + +(aux_delimiter="/") +F:mcf_man_soc/C:1/mw:349.40462/fm:C16H19N3O4S/EN:Ampicillin +F:mcf_man_soc/C:2/mw:386.6532/fm:C27H46O/EN:Cholesterol +F:mcf_exa_soc/C:3/mw:470.5113/fm:C26H30O8/EN:Limonin +F:mcf_exa_soc/C:4/mw:536.8722/fm:C40H56/EN:beta-Carotene \end{verbatim} \paragraph{(Tag)} \begin{verbatim} -F : filename +F : filename C : char number NO : serial number EN : english name @@ -1452,9 +1424,11 @@ JN : japanese name FM : formula from literature data MW : molecular weight from literature data USE : the use -cMW : molecular weight calculated -cMI : monoisotopic mass calculated -cFM : molecular formula calculated +mw : molecular weight calculated +mi : monoisotopic mass calculated +fm : molecular formula calculated +w : font width +h : font height \end{verbatim} %------------------------------------------------------------------------ \newpage @@ -1592,7 +1566,7 @@ M END %-------------------------------------------------------------------- \begin{mplibcode} fsize:=(50mm,50mm); - beginfont("NO:2","EN:Limonin","MW:470.51") + beginfont("NO:1","EN:Limonin","MW:470.51") MC(<30, ?6,{-3,-4}=?6, -5=?3,-2=wf,-1=wb,6=?5,-4=?6,-5=wf, @@ -1606,7 +1580,7 @@ M END %-------------------------------------------------------------------- \begin{mplibcode} fsize:=(80mm,50mm); - beginfont("NO:3","EN:beta-carotene","MW:536.87") + beginfont("NO:2","EN:beta-carotene","MW:536.87") MC(<30, ?6,3=dl,{3,5^35,5^-35}:/_, 4:\,|,!18,{1,3,5,7,9,11,13,15,17}=dr, @@ -1618,7 +1592,7 @@ M END %-------------------------------------------------------------------- \begin{mplibcode} fsize:=(50mm,50mm); - beginfont("NO:4","EN:Gibberellin A3","MW:346.37"); + beginfont("NO:3","EN:Gibberellin A3","MW:346.37"); MC(<18,?5,3=?7,5=?6[12], 8:@,160`1.3,3:#,13=dl,6=wf,8=wb, 5:@,40~zf`1,O,60,//O^180,14~zb:#, @@ -1640,41 +1614,32 @@ endfont; %-------------------------------------------------------------------- \documentclass[a4paper]{article} \usepackage{graphicx} +%--------------------- +\usepackage{mcf_setup} +%--------------------- \pagestyle{empty} \makeatletter% %-------------------------------------------------------------------- -\def\@F{F}\def\@C{C}\def\@EN{EN}\def\@NO{NO}\def\@MW{MW}\def\@FMc{FMc}% -\def\@fst@param#1:#2;{#1}\def\@sec@param#1:#2;{#2}% -\def\mol@sel#1{% -\if#1\empty\relax\else% - \edef\@tag{\expandafter\@fst@param#1;}% - \edef\@var{\expandafter\@sec@param#1;}% - \ifx\@tag\@F\edef\MOLfile{\@var}\fi% - \ifx\@tag\@C\edef\MOLchar{\@var}\fi% - \ifx\@tag\@EN\edef\MOLnameE{\@var}\fi% - \ifx\@tag\@NO\edef\MOLnum{\@var}\fi - \ifx\@tag\@MW\edef\CALmw{\@var}\fi - \ifx\@tag\@FMc\edef\CALfm{\@var}\fi -\fi}% \def\put@char{% \begin{picture}(84,42)% - \put(0,38){\bf [\MOLnum]\MOLnameE{ }\small\tt/FM:\CALfm/MW:\CALmw}% - \put(10,0){\font\@strufont=\MOLfile\relax% - \hbox{\@strufont\char\MOLchar}}% + \put(0,38){\bf [\MOLnum]\EN{ }\small\tt/FM:\fm/MW:\mw}% + \put(10,0){\font\@strufont=\File\relax% + \hbox{\@strufont\char\Char}}% \end{picture}% -\def\INFO#1{\@for\@temp:=#1\do{\mol@sel\@temp}\put@char}% +}% +\def\INFO#1{\@for\@temp:=#1\do{\tag@var\@temp}\put@char}% \makeatother %-------------------------------------------------------------------- \begin{document} \unitlength=1mm% -\INFO{F:mcf_man_soc,C:138,NO:1,cMW:349.40462,cFM:C16H19N3O4S,EN:Ampicillin}% -\INFO{F:mcf_man_soc,C:139,NO:2,cMW:386.6532,cFM:C27H46O,EN:Cholesterol}% +\INFO{F:mcf_man_soc,C:138,NO:1,mw:349.40462,fm:C16H19N3O4S,EN:Ampicillin}% +\INFO{F:mcf_man_soc,C:139,NO:2,mw:386.6532,fm:C27H46O,EN:Cholesterol}% \end{document} %-------------------------------------------------------------------- \end{verbatim}% %############################################################################ %------------------------------------------------------------------------ -\INFO{F:mcf_man_soc,C:138,NO:1,cMW:349.40462,cFM:C16H19N3O4S,EN:Ampicillin}% -\INFO{F:mcf_man_soc,C:139,NO:2,cMW:386.6532,cFM:C27H46O,EN:Cholesterol}% +\INFO{F:mcf_man_soc,C:138,NO:1,mw:349.40462,fm:C16H19N3O4S,EN:Ampicillin}% +\INFO{F:mcf_man_soc,C:139,NO:2,mw:386.6532,fm:C27H46O,EN:Cholesterol}% %------------------------------------------------------------------------ \end{document} diff --git a/graphics/mcf2graph/mcf_mplib_exa.pdf b/graphics/mcf2graph/mcf_mplib_exa.pdf Binary files differindex 00a5684ce2..3275834c6b 100644 --- a/graphics/mcf2graph/mcf_mplib_exa.pdf +++ b/graphics/mcf2graph/mcf_mplib_exa.pdf diff --git a/graphics/mcf2graph/mcf_mplib_exa.tex b/graphics/mcf2graph/mcf_mplib_exa.tex index 8de170b935..e6fc0eb02d 100644 --- a/graphics/mcf2graph/mcf_mplib_exa.tex +++ b/graphics/mcf2graph/mcf_mplib_exa.tex @@ -1,7 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2020.07.26 +% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2020.08.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% mcf2graph.mf it must be version 4.50 or later +%%% mcf2graph.mf it must be version 4.51 or later \documentclass{article} %------------------------------------------------------------------------------ \usepackage{luamplib}% diff --git a/graphics/mcf2graph/mcf_setup.sty b/graphics/mcf2graph/mcf_setup.sty new file mode 100644 index 0000000000..37945f1662 --- /dev/null +++ b/graphics/mcf2graph/mcf_setup.sty @@ -0,0 +1,75 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% mcf_setup.sty for input aux file by Akira Yamaji 2020.08.10 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\edef\@F{F} \edef\File{}% 1 +\edef\@C{C} \edef\Char{}% 2 +%------------------------------------ +\edef\@NO{NO} \edef\NO{}% 3 +\edef\@EN{EN} \edef\EN{}% 4 +\edef\@JN{JN} \edef\JN{}% 5 +\edef\@CAS{CAS} \edef\CAS{}% 6 +%------------------------------------ +\edef\@MW{MW} \edef\MW{}% 7 +\edef\@mw{mw} \edef\mw{}% 8 +\edef\@MI{MI} \edef\MI{}% 9 +\edef\@mi{mi} \edef\mi{}% 10 +\edef\@FM{FM} \edef\FM{}% 11 +\edef\@fm{fm} \edef\fm{}% 12 +%------------------------------------ +\edef\@Wd{w} \edef\Wd{}% 13 +\edef\@Ht{h} \edef\Ht{}% 14 +\edef\@Wone{w1} \edef\Wone{}% 15 +\edef\@Hone{h1} \edef\Hone{}% 16 +%------------------------------------ +\edef\@Use{Use} \edef\Use{}% 17 +\edef\@LogP{LogP} \edef\LogP{}% 18 +%------------------------------------ +\edef\@EXA{EXA} \edef\EXA{}% 19 +\edef\@EXB{EXB} \edef\EXB{}% 20 +%--------------------------------------------------------------------------- +\def\@tag@param#1:#2;{#1}% +\def\@var@param#1:#2;{#2}% +%---------------------------------------- +\def\tag@var#1{% +\if#1\empty\relax\else% + \edef\@tag{\expandafter\@tag@param#1;}% + \edef\@var{\expandafter\@var@param#1;}% + %---------------------------------------- + \ifx\@tag\@F\edef\File{\@var}\fi% 1 + \ifx\@tag\@C\edef\Char{\@var}\fi% 2 + %---------------------------------------- + \ifx\@tag\@NO\edef\NO{\@var}\fi% 3 + \ifx\@tag\@EN\edef\EN{\@var}\fi% 4 + \ifx\@tag\@JN\edef\JN{\@var}\fi% 5 + \ifx\@tag\@CAS\edef\CAS{\@var}\fi% 6 + %---------------------------------------- + \ifx\@tag\@MW\edef\MW{\@var}\fi% 7 + \ifx\@tag\@mw\edef\mw{\@var}\fi% 8 + \ifx\@tag\@MI\edef\MI{\@var}\fi% 9 + \ifx\@tag\@mi\edef\mi{\@var}\fi% 10 + \ifx\@tag\@FM\edef\FM{\@var}\fi% 11 + \ifx\@tag\@fm\edef\fm{\@var}\fi% 12 + %---------------------------------------- + \ifx\@tag\@Wd\edef\Wd{\@var}\fi% 13 + \ifx\@tag\@Ht\edef\Ht{\@var}\fi% 14 + \ifx\@tag\@Wone\edef\Wone{\@var}\fi% 15 + \ifx\@tag\@Hone\edef\Hone{\@var}\fi% 16 + %---------------------------------------- + \ifx\@tag\@Use\edef\Use{\@var}\fi% 17 + \ifx\@tag\@LogP\edef\LogP{\@var}\fi% 18 + %---------------------------------------- + \ifx\@tag\@EXA\edef\EXA{\@var}\fi% 19 + \ifx\@tag\@EXB\edef\EXB{\@var}\fi% 20 + %---------------------------------------- +\fi% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sfor : modified latex2e kernel program control +% @for => @sfor delimiter ',' => ';' +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\@sfor#1#2{\expandafter\def\expandafter\@tmp\expandafter{#1}% + \ifx\@tmp\@empty\else\expandafter\@rep#1;\@nil;\@@\@list{#2}\fi}% +%------------------------------------------------------------------ +\def\@rep#1;#2\@@#3#4{\def#3{#1}\ifx#3\@nnil% + \expandafter\@fornoop\else#4\relax\expandafter\@rep\fi#2\@@#3{#4}}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |