summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-11-24 03:01:53 +0000
committerNorbert Preining <norbert@preining.info>2021-11-24 03:01:53 +0000
commitc7fc5283ac51bef06ce935c59e2c247fd5a4c1ba (patch)
tree712c7924d8d98c996c72aeb9dcb575631f19a747 /graphics
parent0b34c573a443a0ea2ce617f1466aef7ea2c38a98 (diff)
CTAN sync 202111240301
Diffstat (limited to 'graphics')
-rw-r--r--graphics/mcf2graph/CHANGELOG10
-rw-r--r--graphics/mcf2graph/README14
-rw-r--r--graphics/mcf2graph/mcf2graph.mf121
-rw-r--r--graphics/mcf2graph/mcf_data_base.mcf60
-rw-r--r--graphics/mcf2graph/mcf_exa_soc.mf22
-rw-r--r--graphics/mcf2graph/mcf_example.pdfbin312868 -> 318151 bytes
-rw-r--r--graphics/mcf2graph/mcf_example.tex10
-rw-r--r--graphics/mcf2graph/mcf_man_soc.mf30
-rw-r--r--graphics/mcf2graph/mcf_manual.pdfbin382758 -> 383617 bytes
-rw-r--r--graphics/mcf2graph/mcf_manual.tex60
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.pdfbin184025 -> 184407 bytes
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.tex4
-rw-r--r--graphics/pgf/contrib/xistercian/README.md2
-rw-r--r--graphics/pgf/contrib/xistercian/xistercian.dtx107
-rw-r--r--graphics/pgf/contrib/xistercian/xistercian.pdfbin316107 -> 315178 bytes
15 files changed, 245 insertions, 195 deletions
diff --git a/graphics/mcf2graph/CHANGELOG b/graphics/mcf2graph/CHANGELOG
index 79b7e2d68c..12b0f95163 100644
--- a/graphics/mcf2graph/CHANGELOG
+++ b/graphics/mcf2graph/CHANGELOG
@@ -1,6 +1,14 @@
*******************************************************************************
- Changelog of mcf2graph software package by Akira Yamaji 2021-10-10
+ Changelog of mcf2graph software package by Akira Yamaji 2021-11-23
*******************************************************************************
+[ver. 4.74 / 2021-11-23]
+ -change syntax of fused ring
+ (a,b)=?6[4] => (a,b)=?6
+ (a,b)=?5[3] => (a,b)=?5
+ (a,b)=?4[2] => (a,b)=?4
+ -update mcf_data_base.mcf
+ -update MCF manual,example
+
[ver. 4.73 / 2021-10-10]
-update mcf_data_base.mcf
-update MCF manual,example
diff --git a/graphics/mcf2graph/README b/graphics/mcf2graph/README
index bf39e90947..73f14b5ee4 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.73 2021-10-10
+ version : 4.74 2021-11-23
E-mail : mcf2graph@gmail.com
Located at : http://www.ctan.org/pkg/mcf2graph
********************************************************************************
@@ -16,23 +16,21 @@
2. The distribution of software
( 1) README This file
- ( 2) CHANGELOG Changelog file of mcf2graph
+ ( 2) CHANGELOG Changelog file of mcf2graph
( 3) mcf2graph.mf Main macro of Metafont / Metapost
( 4) mcf_data_base.mcf Molecular data base file
( 5) mcf_setup.sty Style file for aux file input
( 6) mcf_manual.tex MCF syntax manual(LaTeX file)
- use pk font for proof print
- use mps file for final print
- make file 'mcf_man_soc-***.mps' before typeset
- >mpost mcf_man_soc.mf
+ make files 'mcf_man_soc-***.mps' before typeset
+ >mpost mcf_man_soc.mf
( 7) mcf_man_soc.mf Molecular definition file for mcf_manual.tex
( 8) mcf_manual.pdf PDF of (6) (used pdftex(LaTeX),makeindex)
( 9) mcf_example.tex LaTeX example
make file 'mcf_exa_soc-info.aux' before typeset
>mpost -s ahlength=1 mcf_exa_soc.mf
- make file 'mcf_exa_soc-***.mps' before typeset
+ make files 'mcf_exa_soc-***.mps' before typeset
>mpost mcf_exa_soc.mf
- (for metafont)
+ (for metafont)
make file 'mcf_exa_soc-mf.aux' before typeset
>mpost -s ahlength=7 mcf_exa_soc.mf
(10) mcf_exa_soc.mf Metafont/Metapost souce file for mcf_example.tex
diff --git a/graphics/mcf2graph/mcf2graph.mf b/graphics/mcf2graph/mcf2graph.mf
index c6cedf1637..d4d60da3c4 100644
--- a/graphics/mcf2graph/mcf2graph.mf
+++ b/graphics/mcf2graph/mcf2graph.mf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.72 Copyright (c) 2013-2021 Akira Yamaji
+% mcf2graph ver 4.74 Copyright (c) 2013-2021 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,
@@ -38,7 +38,7 @@
% Set to use plain.mp (label,arrow,atom) : mpost -s labeloffset=2 FILENAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tracingstats:=1;
-message "* This is mcf2graph ver 4.73 2021.10.10";
+message "* This is mcf2graph ver 4.74 2021.11.23";
%-------------------------------------------------------------------------------------------------
newinternal cntA,cntB,cntM,minX,minY,maxX,maxY,sftX,sftY,com,par,envT,envB,lenT,lineT,angT,rotT,
crR,nA,nB,nC,nD,nE,nF,nS,nL,nR,nU,nP,xpos,ypos,markA,markB,saveA,saveB,bondL;
@@ -65,9 +65,9 @@ Outside:=1; Inside:=2; Bothside:=Outside+Inside;
%-------------------------------------------------------------------------------------------------
a_prn_s:=ASCII("("); a_prn_e:=ASCII(")"); a_brc_s:=ASCII("{"); a_brc_e:=ASCII("}");
a_brk_s:=ASCII("["); a_brk_e:=ASCII("]"); a_cmm:=ASCII(","); a_equ:=ASCII("=");
-a_ast:=ASCII("*"); a_sls:=ASCII("/"); a_gtn:=ASCII("<"); a_ltn:=ASCII(">"); a_and:=ASCII("&");
-a_dol:=ASCII("$"); a_hsh:=ASCII("#"); a_hat:=ASCII("^"); a_tld:=ASCII("~"); a_bqt:=ASCII("`");
-a_cln:=ASCII(":"); a_amk:=ASCII("@"); a_zero:=ASCII("0"); a_nine:=ASCII("9"); a_qut:=ASCII("'");
+a_ast:=ASCII("*"); a_sls:=ASCII("/"); a_gtn:=ASCII("<"); a_ltn:=ASCII(">"); a_and:=ASCII("&");
+a_dol:=ASCII("$"); a_hsh:=ASCII("#"); a_hat:=ASCII("^"); a_tld:=ASCII("~"); a_bqt:=ASCII("`");
+a_cln:=ASCII(":"); a_amk:=ASCII("@"); a_zero:=ASCII("0"); a_nine:=ASCII("9"); a_qut:=ASCII("'");
a_bar:=ASCII("|"); a_plus:=ASCII("+"); a_minus:=ASCII("-");
%--------------------------------------------------------------------------------------------------
let DIV= /; let MUL= *; let LT= <; let GT= >; let AND= &; let :: = : ; let == = =; let ef=elseif;
@@ -101,25 +101,30 @@ if (known green)and(known ahlength):
mpfont:="uhvr8r";
atomfont:=defaultfont:="";
%--default ahangle=45---------------------------------------------------------------------
- if ahangle=0: outputformat:="eps"; % eps format(.mps)
- elseif ahangle=1: outputformat:="png"; hppp:=vppp:=0.12; % png format(600dpi)
- elseif ahangle=11: outputformat:="png"; hppp:=vppp:=0.06; % png format(1200dpi)
- elseif ahangle=2: outputformat:="svg"; % svg format
- elseif ahangle=3: outputformat:="eps"; % eps format(.eps)
- elseif ahangle=45: outputformat:="eps"; % eps format(.mps) *default
+ if ahangle=0: outputformat:="eps"; % eps format(.mps)
+ ef ahangle=1: outputformat:="png"; hppp:=vppp:=0.12; % png format(600dpi)
+ ef ahangle=11: outputformat:="png"; hppp:=vppp:=0.06; % png format(1200dpi)
+ ef ahangle=2: outputformat:="svg"; % svg format
+ ef ahangle=3: outputformat:="eps"; % eps format(.eps)
+ ef ahangle=45: outputformat:="eps"; % eps format(.mps) *default
fi
%--default ahlength=4---------------------------------------------------------------------
- if ahlength=1: sw_output:=Info; % output aux file
- elseif ahlength=2: sw_output:=Info+Table; % output aux file(Table mode)
- elseif ahlength=3: sw_output:=Report; % output report
- elseif ahlength=4: sw_output:=Font; % *default
- elseif ahlength=5: sw_output:=MOL2k; % output MOL(V2000)
- elseif ahlength=6: sw_output:=MOL3k; % output MOL(V3000)
- elseif ahlength=7: sw_output:=Mfont; % output aux mf
- elseif ahlength=8: sw_output:=Mcode+Info; % output aux data-base
+ if ahlength=1: sw_output:=Info; % output aux file
+ ef ahlength=2: sw_output:=Info+Table; % output aux file(Table mode)
+ ef ahlength=3: sw_output:=Report; % output report
+ ef ahlength=4: sw_output:=Font; % *default
+ ef ahlength=5: sw_output:=MOL2k; % output MOL(V2000)
+ ef ahlength=6: sw_output:=MOL3k; % output MOL(V3000)
+ ef ahlength=7: sw_output:=Mfont; % output aux mf
+ ef ahlength=8: sw_output:=Mcode+Info; % output aux data-base
fi
%-- default bboxmargin=2------------------------------------------------------------------
- if bboxmargin=1: proc_end:=1; fi % output first font only
+ if bboxmargin=1: proc_end:=1; % output first font only
+ ef bboxmargin=3: ext(defaultfont:="uhvr8r"; defaultscale:=.3; label.rt(inf_EN,(0,0));)
+ ef bboxmargin=4: sw_output:=Font+Info;
+ ext(defaultfont:="uhvr8r"; defaultscale:=.3;
+ label.rt(inf_EN&" / "&cal_MW&" / "&decimal(num_MW-scantokens(inf_MW)),(0,0));)
+ fi
%--default labeloffset=3------------------------------------------------------------------
if labeloffset=1: defaultfont:=mpfont; % mpost label
elseif labeloffset=2: defaultfont:=atomfont:=mpfont; % mpost label,atom
@@ -192,9 +197,9 @@ max_blength:=10mm; blength:=mangle:=0; max_labelsize:=20mm; dottedline_gap:=1.5b
%--------------------------------------------------------------------------------------------------
fsize:=(30mm,20mm); fmargin:=(0.4mm,0.4mm); msize:=(1,1); mposition:=(0.5,0.5);
%==================================================================================================
+bboxmargin:=0; % 2bp => 0
ahangle:=45;
ahlength:=4bp;
-bboxmargin:=2bp;
defaultsize:=8bp;
defaultscale:=1;
labeloffset:=3bp;
@@ -586,16 +591,52 @@ vardef change_bond(expr a,b) =
nCP:=0;
if numeric b::
if (b>=si)and(b<=bd_):: CPe(a)(_set_line,b)
- elseif (b>=?3)and(b<=?20)::
- if a>=parts_int_start:: for i==1 upto cntD[a]:: fuse_ring(parD[a][i],b-?3+3) endfor
- else:: fuse_ring(a,b-?3+3)
+ elseif ((b>=?3)and(b<=?20))or(b==Ph1)or(b==Ph2)::
+ if numeric a::
+ if a>=parts_int_start::
+ for i==1 upto cntD[a]::
+ if comD[a][i]==_numeric::
+ if b==Ph1::
+ fuse_ring(parD[a][i],6)
+ CP(_set_adr,-2) CP(_set_line,dl) CP(_set_adr,-4) CP(_set_line,dl)
+ ef b==Ph2::
+ fuse_ring(parD[a][i],6)
+ CP(_set_adr,-1) CP(_set_line,dl) CP(_set_adr,-3) CP(_set_line,dl)
+ CP(_set_adr,-5) CP(_set_line,dl)
+ else::
+ fuse_ring(parD[a][i],b-?3+3)
+ fi
+ else::
+ if b==?6:: fuse_ring_bonds((comD[a][i],parD[a][i]),parD[?6[4]][1],comD[?6[4]][2])
+ ef b==?5:: fuse_ring_bonds((comD[a][i],parD[a][i]),parD[?5[3]][1],comD[?5[3]][2])
+ ef b==?4:: fuse_ring_bonds((comD[a][i],parD[a][i]),parD[?4[2]][1],comD[?4[2]][2])
+ fi
+ fi
+ endfor
+ else::
+ if b==Ph1::
+ fuse_ring(a,6) CP(_set_adr,-2) CP(_set_line,dl) CP(_set_adr,-4) CP(_set_line,dl)
+ ef b==Ph2::
+ fuse_ring(a,6) CP(_set_adr,-1) CP(_set_line,dl) CP(_set_adr,-3) CP(_set_line,dl)
+ CP(_set_adr,-5) CP(_set_line,dl)
+ else::
+ fuse_ring(a,b-?3+3)
+ fi
+ fi
+ ef pair a::
+ if b==?6:: fuse_ring_bonds(a,parD[?6[4]][1],comD[?6[4]][2])
+ ef b==?5:: fuse_ring_bonds(a,parD[?5[3]][1],comD[?5[3]][2])
+ ef b==?4:: fuse_ring_bonds(a,parD[?4[2]][1],comD[?4[2]][2])
+ ef b==Ph1::
+ fuse_ring_bonds(a,parD[?6[4]][1],comD[?6[4]][2])
+ CP(_set_adr,-1) CP(_set_line,dl) CP(_set_adr,-3) CP(_set_line,dl)
+ ef b==Ph2::
+ fuse_ring_bonds(a,parD[?6[4]][1],comD[?6[4]][2])
+ CP(_set_adr,-2) CP(_set_line,dl) CP(_set_adr,-4) CP(_set_line,dl)
+ fi
fi
- elseif b==Ph1:: fuse_ring(a,6) CP(_set_adr,-2) CP(_set_line,dl)
- CP(_set_adr,-4) CP(_set_line,dl)
- elseif b==Ph2:: fuse_ring(a,6) CP(_set_adr,-1) CP(_set_line,dl)
- CP(_set_adr,-3) CP(_set_line,dl) CP(_set_adr,-5) CP(_set_line,dl)
- elseif comD[b][1]==_fuse::
- if comD[b][2]<=6:: fuse_ring_bonds(a,parD[b][1],comD[b][2])
+ ef comD[b][1]==_fuse::
+ if comD[b][2]<=6:: fuse_ring_bonds(a,parD[b][1],comD[b][2])
elseif (comD[b][2]>=11)and(comD[b][2]<=15):: fuse_ring_size(a,parD[b][1],comD[b][2])
fi
fi
@@ -945,16 +986,18 @@ def MC(text TXT)=
%-draw atom-----------------------------------------------------------------------------------
if sw_numbering=0: for i=1 upto cntA: draw_atom(i); endfor fi
%-draw add to atom----------------------------------------------------------------------------
- for i=1 upto cntA:
- if addA[i]<>0:
- nA:=angX[i]+add_rot[i]; nC:=nA mod 90;
- if numS[i]=0: nB:=.5atom_wd;
- else: nB:=.85wdA[i]+iif(nC<45,sind(nC),cosd(nC))*.5wdA[i];
+ if (not scan_bit(sw_numbering,Atom))and(not scan_bit(sw_numbering,Bond)):
+ for i=1 upto cntA:
+ if addA[i]<>0:
+ nA:=angX[i]+add_rot[i]; nC:=nA mod 90;
+ if numS[i]=0: nB:=.5atom_wd;
+ else: nB:=.85wdA[i]+iif(nC<45,sind(nC),cosd(nC))*.5wdA[i];
+ fi
+ temp_p:=sfrt(posA[i]-(.35atom_wd,.35atom_wd),nB,nA);
+ draw_char(temp_c,temp_p,atom_wd,bond_pen_wd*ratio_char_bond,0);
fi
- temp_p:=sfrt(posA[i]-(.35atom_wd,.35atom_wd),nB,nA);
- draw_char(temp_c,temp_p,atom_wd,bond_pen_wd*ratio_char_bond,0);
- fi
- endfor
+ endfor
+ fi
%-draw bond-----------------------------------------------------------------------------------
for i=1 upto cntB: if lineB[i]<si_ : draw_bond(i); fi endfor
for i=1 upto cntB: if lineB[i]>=si_: draw_bond(i); fi endfor
diff --git a/graphics/mcf2graph/mcf_data_base.mcf b/graphics/mcf2graph/mcf_data_base.mcf
index 7e088381ab..cdcc642523 100644
--- a/graphics/mcf2graph/mcf_data_base.mcf
+++ b/graphics/mcf2graph/mcf_data_base.mcf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular data base file mcf_data_base.mcf by Akira Yamaji 2021.10.10
+% molecular data base file mcf_data_base.mcf by Akira Yamaji 2021.11.23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tag1:var1;tag2:var2;tag3:var3 .....
% first character of line "%" comment out
@@ -52,7 +52,7 @@ Cat:biological;EN:L-Leucine;MW:131.16;EXA:1
+
<30,NH2,!~wb,/!?!,!,COOH
+------------------------------------------------------------------------------
-Cat:biological;EN:L-Isoleucine;MW:131.16;EXA:9
+Cat:biological;EN:L-Isoleucine;MW:131.16;EXA:-
+
<30,NH2,!~wb,/'(/*_,!2),!,COOH
+------------------------------------------------------------------------------
@@ -358,7 +358,7 @@ Cat:biological;EN:Cholesterol;MW:386.664;EXA:1
+------------------------------------------------------------------------------
Cat:biological;EN:Riboflavin;MW:376.37;EXA:1
+
-<30,Ph,3=?6,9=?6,{8,16}=dl,{7,10,14}:N,12:NH,{11,13}://O,{1,6}:/_,
+<30,Ph,{3,9}=?6,{8,16}=dl,{7,10,14}:N,12:NH,{11,13}://O,{1,6}:/_,
@10,\`1.2,!,*/OH,!,/*OH,!,*/OH,!2,OH
+------------------------------------------------------------------------------
Cat:biological;EN:Resveratrol;MW:228.24;EXA:1
@@ -434,9 +434,23 @@ Cat:biological;EN:Piperine;MW:285.343;EXA:1
+
<30,Ph,|,-1=?5,{1,3}:O,@$4,\,!!,!,!!,!,//O,!,|,?6,1:N
+------------------------------------------------------------------------------
-Cat:biological;EN:Febrifugine;MW:301.346;EXA:1
+Cat:biological;EN:Febrifugine;MW:301.34;EXA:1
+
-<30,Ph,|,-4=?6,2=dl,{1,3}:N,4://O,@$9,\,!,//O,!,!~zf,|,?6,2:NH,-1:*/OH
+<30,Ph,3=?6,@9,8=dl,\,!2,!~zb,?6,{7,9}:N,-5:NH,{10,12}://O,-1:*/OH
++------------------------------------------------------------------------------
+Cat:biological;EN:Hypericin;MW:504.44;EXA:1
++
+<30,Ph,{-4,(11,4),(10,12),(9,-4),(19,13),(27,14),(18,24)}=?6,
+ {12,20,22,29,31,33,35}=dl,{16,18,27}=dr,
+ {7,21}://O,{2,6,17,23,25,28}:/OH,{19,26}:/_
++------------------------------------------------------------------------------
+Cat:biological;EN:Camphor;MW:152.23;EXA:1
++
+#1,15,-30,90,90,30,##,&1,@2,0~si_`1.6,&5,{-1^45,-1^-65}:/_,4://O,5:/_^-45
++------------------------------------------------------------------------------
+Cat:biological;EN:Sparteine;MW:234.3803;EXA:1
++
+<30,?6,3=?6,9=wf,10=wb,@8,#1,60,60,N,60,##,&10,-3=?6,3:N,4^60:*/H,11^-60:/*H
+------------------------------------------------------------------------------
Cat:biological;EN:Mitomycine C;MW:334.332;EXA:1
+
@@ -462,7 +476,7 @@ Cat:biological;EN:Baicalein;MW:270.24;EXA:1
+------------------------------------------------------------------------------
Cat:biological;EN:Reserpine;MW:608.688;EXA:1
+
-<54,Ph,-4=?5,-2=?6,-4=?6,-3=?6,9=dl,11:N,7:NH,10:*/H^-60,{15^-60,16^60}:/*H,
+<54,Ph,-4=?5,{-2,-4,-3}=?6,9=dl,11:N,7:NH,10:*/H^-60,{15^-60,16^60}:/*H,
@20,*\,O,!,//O,!,Ph,{-2,-3,-4}:/O!,{1,19~zf>rl}:/O!,18:*/COO!>lr
+------------------------------------------------------------------------------
Cat:biological;EN:Rotenone;MW:394.423;EXA:1
@@ -497,7 +511,7 @@ Cat:biological;EN:Sesamine;MW:354.35;EXA:1
+------------------------------------------------------------------------------
Cat:biological;EN:Morphine;MW:285.343;EXA:1
+
-<30,Ph,2=?6,-4=?6,(1,12)=?5[2],-1:O,-1=zb,
+<30,Ph,{2,-4}=?6,(1,12)=?5[2],-1:O,-1=zb,
@7,60~wf`0.75,70~si_`1.3,45,N!,&9~wb,15=dl,6:/OH,8^180:*/H,12:/*OH
+------------------------------------------------------------------------------
Cat:biological;EN:Quinine;MW:324.424;EXA:1
@@ -515,7 +529,7 @@ Cat:biological;EN:Colchicine;MW:399.443;EXA:1
+------------------------------------------------------------------------------
Cat:biological;EN:Lycorine;MW:287.315;EXA:1
+
-<30,Ph,-4=?6,-2=?6,6=?5,(9,12)=?5[3],13=dl,8:N,{15,17}:O,
+<30,Ph,{-4,-2}=?6,{6,(9,12)}=?5,13=dl,8:N,{15,17}:O,
9:/*H^180,10:*/H^60,13:*/OH,14:/*OH
+------------------------------------------------------------------------------
Cat:biological;EN:Ibotenic acid;MW:158.113;EXA:1
@@ -569,27 +583,27 @@ Cat:synthetic;EN:Hexaphenylbenzene;MW:534.6876;EXA:1
+------------------------------------------------------------------------------
Cat:synthetic;EN:Naphthalene;MW:128.17;EXA:-
+
-<30,Ph,3=Ph1
+<30,Ph,3=Ph
+------------------------------------------------------------------------------
Cat:synthetic;EN:Anthracene;MW:178.23;EXA:-
+
-<30,Ph,3=Ph1,6=Ph1
+<30,Ph,{3,6}=Ph
+------------------------------------------------------------------------------
Cat:synthetic;EN:Phenanthrene;MW:178.23;EXA:-
+
-<30,Ph,4=Ph1,6=Ph1
+<30,Ph,{4,6}=Ph
+------------------------------------------------------------------------------
Cat:synthetic;EN:Naphthacene;MW:228.3;EXA:-
+
-<30,Ph,6=Ph1,3=Ph1,-3=Ph1
+<30,Ph,{6,3,-3}=Ph
+------------------------------------------------------------------------------
Cat:synthetic;EN:Chrysene;MW:228.3;EXA:-
+
-<30,Ph2,6=Ph1,4=Ph1,-4=Ph1
+<30,Ph2,{6,4,-4}=Ph
+------------------------------------------------------------------------------
Cat:synthetic;EN:Pyrene;MW:202.25;EXA:-
+
-<30,Ph2,6=Ph1,4=Ph1,(16,7)=?6[3],-2=dl
+<30,Ph2,{6,4}=Ph,(16,7)=?6[3],-2=dl
+------------------------------------------------------------------------------
Cat:synthetic;EN:Kekulene;MW:600.7;EXA:1
+
@@ -779,7 +793,7 @@ Cat:antibiotics;EN:Emamectine;MW:886.133;EXA:1
+
<24,?6,6=?5,3=dl,9:O,2:*/OH,3:/_,6:/*OH^-60,
@5,#1.04,6,//O,-60,O,60~wb,60,-60,60~wf,60,-60,60,60,60,-60,60,##,&7,
- {-1,-3,-7}=dl,(-11,-10)=?6[4],@-2,?6,-6=wf,-1=zb,-5=dl,
+ {-1,-3,-7}=dl,(-11,-10)=?6,@-2,?6,-6=wf,-1=zb,-5=dl,
{-1,-6}:O,-3:*/_,@-2,\,*/_,!2,
17:/_,19:/*_,@18,\,O,!,?6`.7,-1:O,-2:*/_`.5,-4:*/O!`-.5,
@-3,\,O,60,?6`.7,-5:O,-4:*/_`.5,-3:/*NH!`-.5,-2:*/O!`-.5
@@ -804,7 +818,7 @@ Cat:antibiotics;EN:Spiramycin;MW:843.1;EXA:1
Cat:antibiotics;EN:Natamycin;MW:665.733;EXA:1
+
<-90,#1,60,60,-60,60,-60,60,-60,60,-60,60,60,60,O,-60,
- 60,60,-60,60,-60,60,-60,60,60,-60,&1,(12,13)=?6[4],##,
+ 60,60,-60,60,-60,60,-60,60,60,-60,&1,(12,13)=?6,##,
{2,4,6,8,20}=dl,11=zb,23:O,-2:/*OH,-3:*/COOH,
18=?3,-1=wb,-2=wf,-1:O,22://O,24:*/_,{14^60,16}:*/OH,
@10,*\,O,90,?6`.7,-3:*/OH`-.5,-5:/*OH`-.5,-4:/*NH2`-.5,-1:O,-2:/*_`.5
@@ -1353,7 +1367,7 @@ Cat:pesticide;EN:Pyrimethanil;MW:199.257;EXA:-
+------------------------------------------------------------------------------
Cat:pesticide;EN:Pyroquilon;MW:173.2;EXA:-
+
-<30,Ph,3=?6,10:N,9://O,(11,4)=?5[3]
+<30,Ph,3=?6,10:N,9://O,(11,4)=?5
+------------------------------------------------------------------------------
Cat:pesticide;EN:Vinclozolin;MW:286.108;EXA:-
+
@@ -1970,7 +1984,7 @@ Cat:antibacterial;EN:Sulfapyrizine;MW:249.288;EXA:1
+------------------------------------------------------------------------------
Cat:antibacterial;EN:Marbofloxacin;MW:362.361;EXA:1
+
-<30,Ph,3=?6,-3=dl,(2,7)=?6[4],6:/F,{7,13}:N,11:O,9:/COOH,10://O,13:/_,
+<30,Ph,{3,(2,7)}=?6,9=dl,6:/F,{7,13}:N,11:O,9:/COOH,10://O,13:/_,
@1,\,|,?6,{1,4}:N,4:/_
+------------------------------------------------------------------------------
Cat:antibacterial;EN:Sulfamerazine;MW:264.303;EXA:1
@@ -1983,7 +1997,7 @@ Cat:antibacterial;EN:Trimethoprim;MW:290.323;EXA:1
+------------------------------------------------------------------------------
Cat:antibacterial;EN:Ofloxacin;MW:361.373;EXA:1
+
-<30,Ph,3=?6,(2,7)=?6[4],9=dl,7:N,11:O,
+<30,Ph,{3,(2,7)}=?6,9=dl,7:N,11:O,
6:/F,9:/COOH,10://O,13:/_,@1,\,|,?6,{1,4}:N,4:/_
+------------------------------------------------------------------------------
Cat:antibacterial;EN:Ciprofloxacin;MW:331.347;EXA:1
@@ -2029,7 +2043,7 @@ Cat:antibacterial;EN:Sulfamonomethoxine;MW:280.302;EXA:1
+
<30,Ph,1:/NH2,@4,\,SOO,!,NH,!,|,Ph,{2,4}:N,3:/O!
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Sulfachlorpyridazine;MW:284.723;EXA:1
+Cat:antibacterial;EN:Sulfachlorpyridazine;MW:284.723;EXA:-
+
<30,Ph,1:/NH2,@4,\,SOO,!,NH,!,|,Ph,{5,6}:N,4:/Cl
+------------------------------------------------------------------------------
@@ -2037,11 +2051,11 @@ Cat:antibacterial;EN:Sulfadoxine;MW:310.328;EXA:-
+
<30,Ph,1:/NH2,@4,\,SOO,!,NH,!,|,Ph,{4,6}:N,{2,3}:/O!
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Sulfamethoxazole;MW:253.276;EXA:1
+Cat:antibacterial;EN:Sulfamethoxazole;MW:253.276;EXA:-
+
<30,Ph,1:/NH2,@4,\,SOO,!,NH,!,|,?5,{2,5}=dl,4:O,5:N,3:/_
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Pirimethamin;MW:248.714;EXA:1
+Cat:antibacterial;EN:Pirimethamin;MW:248.714;EXA:-
+
<30,Ph,6:/Cl,@3,\,Ph,{-2,-4}:N,-1:/!,{-3,-5}:/NH2
+------------------------------------------------------------------------------
@@ -2079,7 +2093,7 @@ Cat:antibacterial;EN:Flubendazole;MW:313.288;EXA:-
+------------------------------------------------------------------------------
Cat:antibacterial;EN:Flumequine;MW:261.225;EXA:-
+
-<30,Ph,3=?6,(2,7)=?6[4],9=dl,7:N,6:/F,9:/COOH,10://O,13:/_
+<30,Ph,{3,(2,7)}=?6,9=dl,7:N,6:/F,9:/COOH,10://O,13:/_
+------------------------------------------------------------------------------
34;Cat:antibacterial;EN:Sulfanitran;MW:335.334;EXA:-
+
diff --git a/graphics/mcf2graph/mcf_exa_soc.mf b/graphics/mcf2graph/mcf_exa_soc.mf
index 65fc98818c..ae52c16ef5 100644
--- a/graphics/mcf2graph/mcf_exa_soc.mf
+++ b/graphics/mcf2graph/mcf_exa_soc.mf
@@ -1,8 +1,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2021.10.10
+% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2021.11.23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf; %%% it must be version 4.73
-message "* mcf_exa_soc 2021.10.10";
+input mcf2graph.mf; %%% it must be version 4.74
+message "* mcf_exa_soc 2021.11.23";
message "";
%------------------------------------------------------------------------------
fsize:=(35mm,24mm);
@@ -10,13 +10,13 @@ max_blength:=4mm;
%%%%sw_frame:=Outside;
tag1:="J"; tag2:="C"; tag3:="fm"; tag4:="mw"; tag5:="EN"; tag6:="MW";
%------------------------------------------------------------------------------
-%%%% outputformat:="png"; hppp:=vppp:=0.1; outputtemplate:="%j-%3c.png";
-%ext(defaultfont:="uhvr8r"; defaultscale:=.6; label.lrt(inf_EN,(-2bp,1.5bp));)
-%sw_output:=Font;
-%ext(defaultfont:="uhvr8r"; defaultscale:=.6;
-%label.lrt(inf_EN&" MW="&cal_MW
-% &"("&decimal(num_MW-scantokens(inf_MW))&")",(-2bp,1.5bp));
-%)
+%% outputformat:="png"; hppp:=vppp:=0.1; outputtemplate:="%j-%3c.png";
+%------------------------------------------------------------------------------
+%ext(defaultfont:="uhvr8r"; defaultscale:=.3; label.rt(inf_EN,(0,0));)
+%------------------------------------------------------------------------------
+%sw_output:=Font+Info;
+%ext(defaultfont:="uhvr8r"; defaultscale:=.3;
+%label.rt(inf_EN&" / "&cal_MW&" / "&decimal(num_MW-scantokens(inf_MW)),(0,0));)
%------------------------------------------------------------------------------
if f_MP=0: input mcf_exa_soc-mf.aux; % (metafont) make aux file before typeset
else: % mpost -s ahlength=7 mcf_exa_soc.mf
@@ -33,7 +33,7 @@ forever:
beginfont("t:EXA","v+:1") % 'v+:1': select EXA=1
if f_EOF=0: if check(mc)=0: MC(scantokens(mc)) fi fi
endfont
- exitif f_EOF=1; % exit if file end
+ exitif f_EOF=1; % exit if file end
endfor
%******************************************************************************
fi
diff --git a/graphics/mcf2graph/mcf_example.pdf b/graphics/mcf2graph/mcf_example.pdf
index 1cadd2296b..3b8a2197f1 100644
--- a/graphics/mcf2graph/mcf_example.pdf
+++ b/graphics/mcf2graph/mcf_example.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_example.tex b/graphics/mcf2graph/mcf_example.tex
index bf10feb5b3..784cc68916 100644
--- a/graphics/mcf2graph/mcf_example.tex
+++ b/graphics/mcf2graph/mcf_example.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2021.09.20
+% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2021.11.23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
\usepackage{graphicx}
@@ -39,7 +39,9 @@
Author : Akira Yamaji \quad Date : \today \\
Located at : http://www.ctan.org/pkg/mcf2graph \vspace{3mm} \\
\end{center}
-{\small ** use molecular data base file 'mcf\_data\_base.mcf'
+{\small * use molecular data base file 'mcf\_data\_base.mcf' \\
+ ** FM(fm):molecular formula (calculated)
+ * MW(mw):molecular weight (calculated)
\vspace{3mm} \\
%------------------------------------------------------------------------
\noindent%
@@ -51,8 +53,8 @@
\infotovar{\info}%
\begin{picture}(3750,3350)%
\put(20,3000){\footnotesize\bf \EN}%
- \put(20,2750){\labelM MW:\mw { / }FM:\fm}%
- \put(20,2530){\labelM MW:\MW(data){ / }[\the\f@num]}%
+ \put(20,2750){\labelM mw:\mw { / }fm:\fm}%
+ \put(20,2530){\labelM MW:\MW { / }[\the\f@num]}%
\put( 0,0){%
\makebox(3750,2530){%
\ifx\f@ext\@pk{\font\@font=\jobname\@font\char\f@num}%
diff --git a/graphics/mcf2graph/mcf_man_soc.mf b/graphics/mcf2graph/mcf_man_soc.mf
index e585c60853..a4aff9747a 100644
--- a/graphics/mcf2graph/mcf_man_soc.mf
+++ b/graphics/mcf2graph/mcf_man_soc.mf
@@ -1,13 +1,13 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2021.10.10
+% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2021.11.23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf; %% it must be version 4.73
+input mcf2graph.mf; %% it must be version 4.74
% ** use data base file 'mcf_data_base.mcf'
-message "mcf_man_soc 2021.10.10"; message "";
+message "mcf_man_soc 2021.11.23"; message "";
%------------------------------------------------------------------------
sw_mframe:=0;
sw_expand:=0;
-%%%%ext(defaultscale:=.5; label.bot(decimal(char_num)&":"&inf_EN,(.5w,0));)
+%%ext(defaultscale:=.5; label.bot(decimal(char_num)&":"&inf_EN,(.5w,0));)
%***********************************************************************
fsize:=(40mm,25mm);
blength:=6mm;
@@ -447,13 +447,13 @@ beginfont("EN:fused ring 2")
fmargin:=(2mm,2mm);
sw_numbering:=Bond;
msize:=(1,.9);
- MCat( 0,.5)(<30,?6,3=?6,(11,4)=?6[4],{11,4}=dt,{12--15}=bd_r)
+ MCat( 0,.5)(<30,?6,{3,(11,4)}=?6,{11,4}=dt,{12--15}=bd_r)
add(defaultscale:=0.4; label("(1)",p0);)
msize:=(1,.9);
- MCat(.5,.5)(<30,?6,3=?6,(11,4)=?5[3],{11,4}=dt,{12--14}=bd_r)
+ MCat(.5,.5)(<30,?6,3=?6,(11,4)=?5,{11,4}=dt,{12--14}=bd_r)
add(defaultscale:=0.4; label("(2)",p0);)
msize:=(1,.9);
- MCat( 1,.5)(<30,?6,3=?6,(11,4)=?4[2],{11,4}=dt,{12,13}=bd_r)
+ MCat( 1,.5)(<30,?6,3=?6,(11,4)=?4,{11,4}=dt,{12,13}=bd_r)
add(defaultscale:=0.4; label("(3)",p0);)
endfont
%***********************************************************************
@@ -828,18 +828,18 @@ beginfont("EN:offset_wedge")
endfont
%***********************************************************************
beginfont("EN:max_blength")
- fsize:=(60mm,25mm);
+ fsize:=(60mm,20mm);
sw_frame:=sw_frame+Mol;
- max_blength:=6mm;
+ max_blength:=5mm;
MCat(0, .5)(<30,Ph)
max_blength:=8mm;
MCat(.4,.5)(<30,Ph)
- max_blength:=20mm; %<<== default
- MCat(1, .5)(<30,Ph)
+ max_blength:=10mm;
+ MCat(1, .5)(<30,Ph) %<<== default
ext(defaultscale:=0.6; labeloffset:=1bp;
- label.urt("6mm", (0.08w,2bp));
- label.urt("8mm", (0.40w,2bp));
- label.urt("20mm",(0.75w,0.45h));
+ label("5mm", (0.1w,0.5h));
+ label("8mm", (0.42w,0.5h));
+ label("10mm",(0.82w,0.5h));
)
endfont
%***********************************************************************
@@ -1247,7 +1247,7 @@ endfont
%***************************************************************************
beginfont("EN:Colchicine","MW:385.41",
%---------------------------------------
- ": <30,Ph,{1,2,6}:/O!,-4=?7,-5=?7, ",
+ ": <30,Ph,{1,2,6}:/O!,{-4,-5}=?7, ",
": {-1,-4,-6}=dl,-2://O,-3:/O!, ",
": @9,\,NH,!,//O,! ")
%---------------------------------------
diff --git a/graphics/mcf2graph/mcf_manual.pdf b/graphics/mcf2graph/mcf_manual.pdf
index d5b5234c71..84b200b252 100644
--- a/graphics/mcf2graph/mcf_manual.pdf
+++ b/graphics/mcf2graph/mcf_manual.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_manual.tex b/graphics/mcf2graph/mcf_manual.tex
index c83840b2a3..da90e22f98 100644
--- a/graphics/mcf2graph/mcf_manual.tex
+++ b/graphics/mcf2graph/mcf_manual.tex
@@ -1,24 +1,18 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format manual by Akira Yamaji 2021.10.10
+% Molecular Coding Format manual by Akira Yamaji 2021.11.23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{hyperref}
+%%%\usepackage[dvipdfmx]{graphicx}
+%%%\usepackage[dvipdfmx]{hyperref}
\usepackage{makeidx}
\makeindex
\hypersetup{colorlinks=true,linkcolor=blue}
\usepackage{mcf_setup}
\edef\MCFjobname{mcf_man_soc}%
%----------------------------------------------------------------------------
-%%%%\pdfpkresolution=1200
-%----------------------------------------------------------------------------
-%%%%\edef\fext{pk}% **** for proof print (fast, not complete output)
-\edef\fext{mps}% **** for final print (it takes long time)
-%----------------------------------------------------------------------------
-%%%%\edef\fext{png}%
-%%%%\edef\fext{svg}%
-%%%%\edef\fext{eps}%
-%----------------------------------------------------------------------------
+\edef\fext{mps}%
\topmargin=-18mm
\textheight=254mm
\textwidth=168mm
@@ -40,16 +34,9 @@
%----------------------------------------------------------------------------
\makeatletter
%----------------------------------------------------------------------------
-\font\@strufont=\MCFjobname\relax%
-%----------------------------------------------------------------------------
\def\MCFgraph{%
-\ifx\fext\@pk{\@strufont\char\fnum}%
-\else%
\edef\file@name{\MCFjobname-\z@num\fnum.\fext}%
-\setbox\fbox=\hbox{\@strufont\char\fnum}%
-\includegraphics[width=\wd\fbox,height=\ht\fbox]{\file@name}%
-%%%%%%\includegraphics{\file@name}%
-\fi%
+\includegraphics{\file@name}%
\global\advance\fnum\@ne\relax%
}%
%----------------------------------------------------------------------------
@@ -207,7 +194,6 @@ $n (0<=n<360): absolute angle
\index{db}%
\index{tm}%
\begin{verbatim}
-
(Double,triple)
a~type : ~~type,a
dm : double middle
@@ -446,14 +432,14 @@ attached bond length
\begin{verbatim}
(Attached 2 bond)
-(4,11)=?6[4] : fuse 4/6 ring to B11..B4
-(4,11)=?5[3] : fuse 3/5 ring to B11..B4
-(4,11)=?4[2] : fuse 2/4 ring to B11..B4
+(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
** ?m[n] (4<=m<=6,n=m-2)
-1:<30,?6,3=?6,(11,4)=?6[4]
-2:<30,?6,3=?6,(11,4)=?5[3]
-3:<30,?6,3=?6,(11,4)=?4[2]
+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}
\MCFgraph
\vspace{-3mm}%
@@ -676,7 +662,7 @@ MC(<30,?6,{4,6}:/iBuOH)
\MCFgraph
%-----------------------------------------------------------------------------
\subsubsection{Serial number}
-\index{--}%
+\index{\-\-}%
\begin{verbatim}
6--10 : 6,7,8,9,10
<30,!14,{2,6--10,14}:/_~bd_r`0.5
@@ -1420,7 +1406,7 @@ endfont
\begin{verbatim}
beginfont("EN:Colchicine","MW:385.41",
%-------------------------------------
- ": <30,Ph,{1,2,6}:/O!,-4=?7,-5=?7, ",
+ ": <30,Ph,{1,2,6}:/O!,{-4,-5}=?7, ",
": {-1,-4,-6}=dl,-2://O,-3:/O!, ",
": @9,\,NH,!,//O,! ")
%-------------------------------------
@@ -1574,11 +1560,15 @@ bye
\subsection{Molecular data base file}
\begin{verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular data base file mcf_data_base.mcf by Akira Yamaji 2021.04.18
+% molecular data base file mcf_data_base.mcf by Akira Yamaji 2021.11.14
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% tag1:var1;tag2:var2;tag3:var3 .....
+% first character of line "%" comment out
+% first character of line "+" begin MCF
+% first string of line "+-" end MCF
+% first string of line "%-" end header
+% Cat = Category
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% tag1:var1;tag2:var2;tag3:var3 ....
-% first character of line '%' comment out
-% first character of line '+' begin MCF , end MCF
%------------------------------------------------------------------------------
Cat:biological;EN:Adenine;MW:135.13
+
@@ -1624,10 +1614,6 @@ Cat:biological;EN:Stearic acid;MW:284.48
+
<30,!17,COOH
+------------------------------------------------------------------------------
-Cat:biological;EN:Linoleic acid;MW:280.45
-+
-<30,!5,-30,-30,!,-30,-30,!7,COOH,{6,9}=dr
-+------------------------------------------------------------------------------
\end{verbatim}
%------------------------------------------------------------------------------
\noindent%
@@ -1674,12 +1660,12 @@ Cat:biological;EN:Cianidanol;MW:290.27;EXA:1
+------------------------------------------------------------------------------
Cat:biological;EN:Lycorine;MW:287.315;EXA:1
+
-<30,Ph,-4=?6,-2=?6,6=?5,(9,12)=?5[3],13=dl,8:N,{15,17}:O,
+<30,Ph,{-4,-2}=?6,{6,(9,12)}=?5,13=dl,8:N,{15,17}:O,
9:/*H^180,10:*/H^60,13:*/OH,14:/*OH
+------------------------------------------------------------------------------
Cat:biological;EN:Morphine;MW:285.343;EXA:1
+
-<30,Ph,2=?6,-4=?6,(1,12)=?5[2],-1:O,-1=zb,
+<30,Ph,{2,-4}=?6,(1,12)=?5[2],-1:O,-1=zb,
@7,60~wf`0.75,70~si_`1.3,45,N!,&9~wb,15=dl,6:/OH,8^180:*/H,12:/*OH
+------------------------------------------------------------------------------
Cat:biological;EN:Piperine;MW:285.343;EXA:1
diff --git a/graphics/mcf2graph/mcf_mplib_exa.pdf b/graphics/mcf2graph/mcf_mplib_exa.pdf
index 2b4318347e..9c6692579e 100644
--- a/graphics/mcf2graph/mcf_mplib_exa.pdf
+++ b/graphics/mcf2graph/mcf_mplib_exa.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_mplib_exa.tex b/graphics/mcf2graph/mcf_mplib_exa.tex
index b19328888b..872571ec98 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 2021.10.10
+% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2021.11.23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 4.73
+% ** mcf2graph.mf must be version 4.74
% ** use mcf_data_base.mcf
\documentclass{article}
%------------------------------------------------------------------------------
diff --git a/graphics/pgf/contrib/xistercian/README.md b/graphics/pgf/contrib/xistercian/README.md
index d9d17f16d7..27ad48ed64 100644
--- a/graphics/pgf/contrib/xistercian/README.md
+++ b/graphics/pgf/contrib/xistercian/README.md
@@ -1,7 +1,7 @@
-------------------------------------------------------------------------------
# xistercian -- Cistercian numerals in LaTeX
-Version 2021-07-17 v1.0
+Version 2021-11-23 v1.1
Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
diff --git a/graphics/pgf/contrib/xistercian/xistercian.dtx b/graphics/pgf/contrib/xistercian/xistercian.dtx
index 934b4fe044..2398ac4dbe 100644
--- a/graphics/pgf/contrib/xistercian/xistercian.dtx
+++ b/graphics/pgf/contrib/xistercian/xistercian.dtx
@@ -55,7 +55,7 @@ and the derived files xistercian.pdf
\fi
%
\IfFileExists{xistercian.sty}{\RequirePackage[debug]{xistercian}}{}
-\ProvidesFile{xistercian.dtx}[2021-07-17 v1.0.0 Cistercian numerals in LaTeX]
+\ProvidesFile{xistercian.dtx}[2021-11-23 v1.1 Cistercian numerals in LaTeX]
\PassOptionsToPackage{full}{textcomp}
\documentclass{l3doc}
\RequirePackage[fulloldstyle,nott]{kpfonts}
@@ -131,14 +131,14 @@ and the derived files xistercian.pdf
\noalign{\vskip1ex}
}
\AddToHook{bfseries}
- {\cisterciansetup{sv=.27ex,sdd=.27ex,sh=.12ex,sdu=.12ex,wd=.5em}}
+ {\cisterciansetup{sv=.27ex,sdd=.27ex,sh=.12ex,sdu=.12ex,wd=.625em}}
\AddToHook{mdseries}{\myrestoredefaults}
\cisterciansetup{redraw+=series}
\ExplSyntaxOff
\begin{document}
\title{The \pkg{xistercian} package}
\author{Jonathan P. Spratte\thanks{\protect\randomize{jspratte@yahoo.de}}}
- \date{2021-07-17 v1.0}
+ \date{2021-11-23 v1.1}
\DocInput{xistercian.dtx}
\end{document}
%</driver>^^A=<<
@@ -245,9 +245,8 @@ and the derived files xistercian.pdf
% \end{syntax}
% Prints the \meta{integer} as a Cistercian numeral. The \meta{integer} has to
% be provided as a string containing only digits and optionally a single
-% leading~|-| (spaces are ignored). This can handle integers of almost
-% arbitrary size (well, an integer with more than $2147483647$ places will be
-% an issue).
+% leading~|-| (spaces are ignored). This can handle integers of arbitrary
+% size.
% \end{function}
%
% \begin{function}{\cisterciannumE}
@@ -290,7 +289,7 @@ and the derived files xistercian.pdf
% \end{function}
% For example, the key |horizontal| is equivalently defined to
% \begin{verbatim}
-% \cistercianstyle{horizontal}{o=h,wd=0.62em,ht=1ex}
+% \cistercianstyle{horizontal}{o=h,wd=0.775em,ht=1.13ex}
% \end{verbatim}
%
%
@@ -483,14 +482,15 @@ and the derived files xistercian.pdf
% \begin{syntax}
% horizontal
% \end{syntax}
-% Same as setting |orientation = horizontal, width = 0.62em, height = 1ex|.
+% Same as setting
+% |orientation = horizontal, width = 0.775em, height = 1.13ex|.
% \end{function}
%
% \begin{function}{vertical}
% \begin{syntax}
% vertical
% \end{syntax}
-% Same as setting |orientation = vertical, width = 0.4em, height = 1.55ex|.
+% Same as setting |orientation = vertical, width = 0.5em, height = 1.55ex|.
% \end{function}
%
% \begin{function}{alternate-5,5}
@@ -612,12 +612,12 @@ and the derived files xistercian.pdf
% \begin{verbatim}
% \AddToHook{bfseries}
% {%
-% \cisterciansetup{sv=.27ex,sdd=.27ex,sh=.15ex,sdu=.15ex,wd=.5em}%
+% \cisterciansetup{sv=.27ex,sdd=.27ex,sh=.15ex,sdu=.15ex,wd=.625em}%
% \cistercianredrawlazy
% }
% \AddToHook{mdseries}
% {%
-% \cisterciansetup{sv=.18ex,sdd=.18ex,sh=.1ex,sdu=.1ex,wd=.4em}%
+% \cisterciansetup{sv=.18ex,sdd=.18ex,sh=.1ex,sdu=.1ex,wd=.5em}%
% \cistercianredrawlazy
% }
% This results in \cisterciannum{2} different \enquote{series}.\par
@@ -636,9 +636,9 @@ and the derived files xistercian.pdf
% determine when to redraw:
% \begin{verbatim}
% \AddToHook{bfseries}
-% {\cisterciansetup{sv=.27ex,sdd=.27ex,sh=.15ex,sdu=.15ex,wd=.5em}}
+% {\cisterciansetup{sv=.27ex,sdd=.27ex,sh=.15ex,sdu=.15ex,wd=.625em}}
% \AddToHook{mdseries}
-% {\cisterciansetup{sv=.18ex,sdd=.18ex,sh=.1ex,sdu=.1ex,wd=.4em}}
+% {\cisterciansetup{sv=.18ex,sdd=.18ex,sh=.1ex,sdu=.1ex,wd=.5em}}
% \cisterciansetup{redraw+=series}
% \end{verbatim}
%
@@ -663,7 +663,7 @@ and the derived files xistercian.pdf
\newcommand*\xister@tv{.18ex}
\newcommand*\xister@tdu{.1ex}
\newcommand*\xister@tdd{.18ex}
-\newcommand*\xister@x{.4em}
+\newcommand*\xister@x{.5em}
\newcommand*\xister@y{1.55ex}
\newcommand*\xister@bx{1.2}
\newcommand*\xister@by{}
@@ -746,7 +746,7 @@ and the derived files xistercian.pdf
% \xister@build@h,\xister@build@horizontal,
% \xister@build@v,\xister@build@vertical
% }
-% First we set the length registers to the correct size, than we draw the
+% First we set the length registers to the correct size, then we draw the
% glyphs batch wise. We have to flip the $x$-direction for the tenths and
% thousands, and the $y$-direction for the hundreds and thousands. The macro
% |\xister@sgn| is used to set the baseline in the correct direction. We
@@ -866,7 +866,7 @@ and the derived files xistercian.pdf
}%
}%
}
-\expandafter\xister@tmp\csname\string\color@.\endcsname{color}
+\expandafter\xister@tmp\csname\@backslashchar color@.\endcsname{color}
\xister@tmp\f@encoding{encoding}
\xister@tmp\f@family {family}
\xister@tmp\f@series {series}
@@ -961,13 +961,13 @@ and the derived files xistercian.pdf
\protected\ekvdefNoVal{xister}{horizontal}
{%
\let\xister@build\xister@build@horizontal
- \def\xister@x{.62em}%
- \def\xister@y{1ex}%
+ \def\xister@x{.775em}%
+ \def\xister@y{1.13ex}%
}
\protected\ekvdefNoVal{xister}{vertical}
{%
\let\xister@build\xister@build@vertical
- \def\xister@x{.4em}%
+ \def\xister@x{.5em}%
\def\xister@y{1.55ex}%
}
% \end{macrocode}
@@ -1108,32 +1108,23 @@ and the derived files xistercian.pdf
\def\xister@gobbletoat#1@{}
\def\xister@gobbletozero#10{}
\def\xister@gobblecopy0\rlap#1{}
-\def\xister@done#1\xister@symbols@{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[internal]{\xister@count,\xister@count@done}
-% A simple loop to count tokens. The loop delimiter is a single |@|. Should be
-% used after |\numexpr|.
-% \begin{macrocode}
-\def\xister@count#1{\xister@gobbletoat#1\xister@count@done @+1\xister@count}
-\def\xister@count@done @+1\xister@count{\relax @}
+\def\xister@done#1\xister@symbols{}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[internal]{\xister@texorpdf}
% \begin{macrocode}
\let\xister@texorpdf\@firstoftwo
-\AddToHook{package/after/hyperref}
+\AddToHook{package/hyperref/after}
{%
\ifdefined\texorpdfstring
- \let\xister@texorpdf\texorpdfstring
+ \def\xister@texorpdf{\texorpdfstring}%
\fi
}
\AddToHook{begindocument/before}
{%
\ifdefined\texorpdfstring
- \let\xister@texorpdf\texorpdfstring
+ \def\xister@texorpdf{\texorpdfstring}%
\fi
}
% \end{macrocode}
@@ -1142,7 +1133,7 @@ and the derived files xistercian.pdf
%
% \subsubsection{Input Parsing}
%
-% \begin{macro}[internal]{\xister@a,\xister@b,\xister@c}
+% \begin{macro}[internal]{\xister@a,\xister@b,\xister@c,\xister@d}
% First we have to make sure that we're in horizontal mode, else the |\rlap|s
% used to insert the glyphs will create havoc. We also need to ensure that the
% boxes contain the correct glyphs according to the current size and colour.
@@ -1157,29 +1148,44 @@ and the derived files xistercian.pdf
\else\expandafter\xister@b\expandafter#1\fi
}
% \end{macrocode}
-% Next we count the number of decimal digits in the number we want to print,
-% take that modulo $4$ (that's what's |4*((#1-2)/4)| is doing, thanks to Heiko
-% Oberdiek and the code in \pkg{expl3}), and use the correct symbol creating
-% macro. The |@@@@| serves as the end marker since each step (except the
-% first) will grab four digits.
+% Next we check whether the remaining number is empty. If that is the case we
+% use |\the\numexpr\relax| to throw a missing number error and produce just a
+% zero stem. Else we do a dry run over the input number to see how many
+% leading zeros we must pad to get blocks of four. The two blocks of |@@@@|
+% serve as end markers since each step of both \cs{xister@c} and
+% \cs{xister@symbols} will grab four digits.
% \begin{macrocode}
\def\xister@b#1@%
- {\expandafter\xister@c\the\numexpr\xister@count#1@#1@@@@}
-\def\xister@c#1@%
- {\csname xister@symbols@\romannumeral\numexpr#1-4*((#1-2)/4)\relax\endcsname}
+ {%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\xister@gobbletozero\the\numexpr\relax
+ \xister@symbols0000@@@@%
+ \expandafter\@gobbletwo
+ \fi
+ \@firstofone{\xister@c#1@@@@\relax#1@@@@}%
+ }
+\def\xister@c#1#2#3#4%
+ {%
+ \xister@gobbletoat
+ #1\xister@d{}%
+ #2\xister@d{000}%
+ #3\xister@d{00}%
+ #4\xister@d0%
+ @\xister@c
+ }
+\def\xister@d#1#2@\xister@c#3\relax{\xister@symbols#1}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[internal]
-% {\xister@symbols@,\xister@symbols@i,\xister@symbols@ii,\xister@symbols@iii}
+% \begin{macro}[internal]{\xister@symbols}
% When this loop is done all arguments will be |@|, but we only check the
% first here. We generate the symbols by overlaying up to five boxes, one for
% each decade plus the zero stem. Each digit might be skipped if it is $0$.
% Next grab the next four digits.
% \begin{macrocode}
-\def\xister@symbols@#1%
+\def\xister@symbols#1%
{%
- \protected\def\xister@symbols@##1##2##3##4%
+ \protected\def\xister@symbols##1##2##3##4%
{%
\xister@gobbletoat##1\xister@done @%
\xister@gobbletozero##1\xister@gobblecopy0%
@@ -1191,17 +1197,10 @@ and the derived files xistercian.pdf
\xister@gobbletozero##4\xister@gobblecopy0%
\rlap{\copy\csname xister@digitbox@##4\endcsname}%
\copy#1%
- \xister@symbols@
+ \xister@symbols
}%
}
-\expandafter\xister@symbols@\csname xister@digitbox@0\endcsname
-% \end{macrocode}
-% If there are less than four decimal digits inside the first Cistercian
-% numeral we provide enough zeros to fill up the remainder.
-% \begin{macrocode}
-\def\xister@symbols@i{\xister@symbols@000}
-\def\xister@symbols@ii{\xister@symbols@00}
-\def\xister@symbols@iii{\xister@symbols@0}
+\expandafter\xister@symbols\csname xister@digitbox@0\endcsname
% \end{macrocode}
% \end{macro}
%
diff --git a/graphics/pgf/contrib/xistercian/xistercian.pdf b/graphics/pgf/contrib/xistercian/xistercian.pdf
index a55d95f708..ee878c51f9 100644
--- a/graphics/pgf/contrib/xistercian/xistercian.pdf
+++ b/graphics/pgf/contrib/xistercian/xistercian.pdf
Binary files differ