diff options
author | Norbert Preining <norbert@preining.info> | 2021-11-24 03:01:53 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-11-24 03:01:53 +0000 |
commit | c7fc5283ac51bef06ce935c59e2c247fd5a4c1ba (patch) | |
tree | 712c7924d8d98c996c72aeb9dcb575631f19a747 /graphics | |
parent | 0b34c573a443a0ea2ce617f1466aef7ea2c38a98 (diff) |
CTAN sync 202111240301
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/mcf2graph/CHANGELOG | 10 | ||||
-rw-r--r-- | graphics/mcf2graph/README | 14 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf2graph.mf | 121 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_data_base.mcf | 60 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_exa_soc.mf | 22 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_example.pdf | bin | 312868 -> 318151 bytes | |||
-rw-r--r-- | graphics/mcf2graph/mcf_example.tex | 10 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_man_soc.mf | 30 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_manual.pdf | bin | 382758 -> 383617 bytes | |||
-rw-r--r-- | graphics/mcf2graph/mcf_manual.tex | 60 | ||||
-rw-r--r-- | graphics/mcf2graph/mcf_mplib_exa.pdf | bin | 184025 -> 184407 bytes | |||
-rw-r--r-- | graphics/mcf2graph/mcf_mplib_exa.tex | 4 | ||||
-rw-r--r-- | graphics/pgf/contrib/xistercian/README.md | 2 | ||||
-rw-r--r-- | graphics/pgf/contrib/xistercian/xistercian.dtx | 107 | ||||
-rw-r--r-- | graphics/pgf/contrib/xistercian/xistercian.pdf | bin | 316107 -> 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 Binary files differindex 1cadd2296b..3b8a2197f1 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 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 Binary files differindex d5b5234c71..84b200b252 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 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 Binary files differindex 2b4318347e..9c6692579e 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 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 Binary files differindex a55d95f708..ee878c51f9 100644 --- a/graphics/pgf/contrib/xistercian/xistercian.pdf +++ b/graphics/pgf/contrib/xistercian/xistercian.pdf |