summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-05-11 21:31:07 +0000
committerKarl Berry <karl@freefriends.org>2019-05-11 21:31:07 +0000
commit1f17918f6a9af739d984a5ea165dcbbe1c78f0b6 (patch)
tree4baeaba1cf508a57e730777a94a8f0af073187f4 /Master
parent91fbd846a19a9fa95dc49d749ff382dee0610e4a (diff)
mcf2graph (11may19)
git-svn-id: svn://tug.org/texlive/trunk@51090 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG9
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/README2
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf30
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdfbin279915 -> 281005 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex2
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps429
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf80
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdfbin584030 -> 588104 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex122
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdfbin177927 -> 172010 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex74
-rw-r--r--Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf140
12 files changed, 373 insertions, 515 deletions
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
index 8df1b8c52cb..74ba391dbda 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
@@ -1,6 +1,13 @@
*******************************************************************************
- Changelog of mcf2graph software package by Akira Yamaji 2019-03-21
+ Changelog of mcf2graph software package by Akira Yamaji 2019-05-11
*******************************************************************************
+[ver. 4.41 / 2019-05-11]
+ -change syntax
+ |<=,=>| => |=,=|
+ ext() => add()
+ EXT() => ext()
+ -update MCF manual
+
[ver. 4.40 / 2019-03-21]
-add function MC()
-change function name MCa() => MCat()
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/README b/Master/texmf-dist/doc/metapost/mcf2graph/README
index 9297f9ef02b..3cd62eb060f 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/README
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/README
@@ -1,7 +1,7 @@
********************************************************************************
mcf2graph : Convert Molecular Coding Format to graphics with METAFONT/METAPOST
Author : Akira Yamaji
- version : 4.40 2019-03-21
+ version : 4.41 2019-05-11
E-mail : mcf2graph@gmail.com
Located at : http://www.ctan.org/pkg/mcf2graph
********************************************************************************
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
index d18c965ff88..c225b302cc2 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2019.03.10
+% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2019.05.11
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf; %%% it must be version 4.40 or later
+input mcf2graph.mf; %%% it must be version 4.41 or later
%-------------------------------------------------------------------------
fsize:=(33mm,24mm);
max_blength:=4.5mm;
@@ -27,6 +27,8 @@ var4:="cal_MW"; tag4:="cMW";
%%%% sw_rep_out:=1;
%%%% sw_mol_out:=1;
%%%% outputformat:="png"; hppp:=vppp:=0.1; outputtemplate:="%j-%3c.png";
+%---------------------------------------------------------------------------
+%ext(defaultscale:=.5; label.bot(decimal(char_num)&":"&inf_EN,(.5w,0));)
%***************************************************************************
beginfont("EN:Acetamiprid","MW:222.676","FM:C10H11ClN4")
MC(<30,Ph,2:N,1:/Cl,4:\,!,N,/_,!,/_,!!,N,!,CN)
@@ -67,7 +69,8 @@ endfont
%***************************************************************************
beginfont("EN:Isoprothiolane","MW:290.392")
MC(<30,!,/_,!,O,!,//O,|,!2,//O,!,O,!,/_,!,2:\\,|,?5,{2,5}:S)
-endfont%***************************************************************************
+endfont
+%***************************************************************************
beginfont("EN:Etridiazole","MW:247.518")
MC(<18,?5,{1,3}=dl,{2,4}:N,5:S,1:/O!2,3:/CCl3)
endfont
@@ -177,9 +180,9 @@ endfont
beginfont("EN:Rifampicin","MW:822.94")
MC(<30,Ph,6:/_^30,5:/OH,|,-6=?5,1:O,3://O,2:/*_^60,
|,-8=?6,{2,4}=dl,{1,4}:/OH,
- |<=1,-2:\,NH,60,//O,-60,/_,60~dl,60,60~dl,-60,
+ |=1,-2:\,NH,60,//O,-60,/_,60~dl,60,60~dl,-60,
*/_,60,/*OH,-60,/*_,60,/*OH,60,*/_^30,-60,
- 60,/*_^30,-53,66,-53~dl,66`1.2,O,>|,$8:#,
+ 60,/*_^30,-53,66,-53~dl,66`1.2,O,=|,$8:#,
-4:/*O!,-6:@,-30,O,!,//O,!,$11:\,!!,N,!,|,?6,{1,4}:N,4:/_)
endfont
%***************************************************************************
@@ -211,12 +214,13 @@ beginfont("EN:Luciferin","MW:280.33")
endfont
%***************************************************************************
beginfont("EN:Chlorophyll a","MW:893.509")
-MC(<54,|<=1,?5,{2,5}=dl,4:N,3:\,54~dl,|,?5,{2,4}=dl,5:N,
+MC(<54,|=1,?5,{2,5}=dl,4:N,3:\,54~dl,|,?5,{2,4}=dl,5:N,
-2:\,54~dl,|,?5,2=d,5:N,-2:\~dl,54,|,?5,5=d,5:N,-2:\~dl,$5:#,
- -1:@,24,/*COO!^15,72,//O,$1:#,>|,
+ -1:@,24,/*COO!^15,72,//O,$1:#,=|,||,
{2,9,15,20~zf}:/_,8:/!,14:\,!!,
- $4:\`1.45,Mg,17:#,-1:@,11~vb:#,-1:@,23~vb:#,
- $21:@,-6~wf,!2,//O,!,O,!2,!!,|,!13,{1,5,9,13}:/_)
+ 4:\`1.45,Mg,17:#,-1:@,11~vb:#,-1:@,23~vb:#,
+ 21:@,-6~wf,!2,//O,!,O,!2,!!,|,!13,{1,5,9,13}:/_
+ )
endfont
%**************************************************************************
beginfont("EN:Gibberellin A3","MW:346.379");
@@ -237,8 +241,8 @@ beginfont("EN:Lycorine","MW:287.315")
endfont
%**************************************************************************
beginfont("EN:Tetrodotoxine","MW:319.27")
- MC(|<=1,<60,-90,60,-30`1.15,150,60,$1:#,$3:@,-135,60,-30`1.15,150,$4:#,
- $10:\,O,60`1.33,60,$3~si_:#,$8:@,-15~si_,O,$12:#,>|,
+ MC(|=1,<60,-90,60,-30`1.15,150,60,$1:#,$3:@,-135,60,-30`1.15,150,$4:#,
+ $10:\,O,60`1.33,60,$3~si_:#,$8:@,-15~si_,O,$12:#,=|,
$9:@,45,-60,OH,1^120://NH,
{5~zf^-15,7,9^-75,12,13~zf}:/OH,{2,6^180}:NH)
endfont
@@ -346,7 +350,7 @@ beginfont("EN:Pyrethrin I","MW:328.452");
endfont;
%***************************************************************************
beginfont("EN:Erythromycin","MW:733.937");
-MC(<30,|<=1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,>|,1:#,
+MC(<30,|=1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,=|,1:#,
14:O,13:/*!,{1,9}://O,{2,10}:*/_,{4,6^-35,8,12^35}:/*_,
{6^35,11,12^-35}:*/OH,
$3:\*,O,30,|,?6`.7,2:O,{3,5^35}:/_,4:/OH,5^-35:/O!,
@@ -354,7 +358,7 @@ MC(<30,|<=1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,>|,1:#,
endfont;
%**************************************************************************
beginfont("EN:Paclitaxel","MW:853.918")
- MC(?6,5=d,3:@,|<=1,36,45,45,45,45,>|,$5:#,-4=?6,-4=?4,||,-1=wb,-3=wf,-1:O,
+ MC(?6,5=d,3:@,|=1,36,45,45,45,45,=|,$5:#,-4=?6,-4=?4,||,-1=wb,-3=wf,-1:O,
{4^35,4^-35,6}:/_,{3^-60,15}:*/OH,8:/*H^-60,9:*/_^60,10://O,
$1:\,O,!,//O,!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,
$7:\*,O,-45,//O,60,Ph,$11:*\,O,-60,//O,60,$12:\*^-15,O,60,//O,-60)
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
index 0fc7eccc3e7..ddb0920295e 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
index d94488e02ff..8199e247681 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2019.02.24
+% Example of MCF typeset by LaTeX mcf_examples.tex by A.Yamaji 2019.05.11
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
\usepackage{graphicx}
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps
index e5ba95a90bd..70e27e77c68 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps
@@ -2,12 +2,12 @@
%%BoundingBox: -1 -1 213 57
%%HiResBoundingBox: -0.1 -0.1 212.69804 56.79282
%%Creator: MetaPost 2.00
-%%CreationDate: 2019.03.17:0708
+%%CreationDate: 2019.05.11:0740
%%Pages: 1
%%DocumentResources: procset mpost-minimal
-%%+ font ICXWUR-CMTT10 ICXWUR-CMR8
+%%+ font JIZCCV-NimbusSanL-Regu IXTKJB-CMR8
%%DocumentSuppliedResources: procset mpost-minimal
-%%+ font ICXWUR-CMTT10 ICXWUR-CMR8
+%%+ font JIZCCV-NimbusSanL-Regu IXTKJB-CMR8
%%EndComments
%%BeginProlog
%%BeginResource: procset mpost-minimal
@@ -18,37 +18,34 @@
/ScaleFont{dup fmc 0 get Amul 0 exch put dup dup 3 get Amul 3 exch put fmd}bd
/SlantFont{fmc 2 get dup 0 eq{pop 1}if Amul FontMatrix 0 get mul 2 exch put fmd}bd
%%EndResource
-%%BeginResource: font ICXWUR-CMTT10
-%!PS-AdobeFont-1.0: CMTT10 003.002
-%%Title: CMTT10
-%Version: 003.002
-%%CreationDate: Mon Jul 13 16:17:00 2009
-%%Creator: David M. Jones
-%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
-%Copyright: (<http://www.ams.org>), with Reserved Font Name CMTT10.
-% This Font Software is licensed under the SIL Open Font License, Version 1.1.
-% This license is in the accompanying file OFL.txt, and is also
-% available with a FAQ at: http://scripts.sil.org/OFL.
+%%BeginResource: font JIZCCV-NimbusSanL-Regu
+%!PS-AdobeFont-1.0: NimbusSanL-Regu 1.05a
+%%Title: NimbusSanL-Regu
+%%CreationDate: Thu Mar 20 10:08:51 2003
+%%Creator: Primoz Peterlin
+%%DocumentSuppliedResources: font NimbusSanL-Regu
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% Generated by PfaEdit 1.0 (http://pfaedit.sf.net/)
%%EndComments
-FontDirectory/ICXWUR-CMTT10 known{/ICXWUR-CMTT10 findfont dup/UniqueID known{dup
-/UniqueID get 5000832 eq exch/FontType get 1 eq and}{pop false}ifelse
+FontDirectory/JIZCCV-NimbusSanL-Regu known{/JIZCCV-NimbusSanL-Regu findfont dup/UniqueID known{dup
+/UniqueID get 5020902 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
11 dict begin
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
-/FontName /ICXWUR-CMTT10 def
-/FontBBox {-4 -233 537 696 }readonly def
-/UniqueID 5000832 def
+/FontName /JXDTPR-NimbusSanL-Regu def
+/FontBBox [-174 -285 1001 953 ]readonly def
+/UniqueID 5020902 def
/PaintType 0 def
/FontInfo 9 dict dup begin
-/version (003.002) readonly def
-/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMTT10.) readonly def
-/FullName (CMTT10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
+/version (1.05a) readonly def
+/Notice (Copyright \050URW\051++,Copyright 1999 by \050URW\051++ Design & Development) readonly def
+/FullName (Nimbus Sans L Regular) readonly def
+/FamilyName (Nimbus Sans L) readonly def
+/Weight (Regular) readonly def
/ItalicAngle 0 def
-/isFixedPitch true def
-/UnderlinePosition -100 def
+/isFixedPitch false def
+/UnderlinePosition -151 def
/UnderlineThickness 50 def
end readonly def
/Encoding 256 array
@@ -65,272 +62,106 @@ dup 119 /w put
readonly def
currentdict end
currentfile eexec
-D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
-0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
-51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
-7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
-E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
-0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
-C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E5ECEBA191DB82B3
-7A69521B0C4D40495B5D9CE7A3AF33D17EE69979B82B715BAD8A5904C5DE0260
-6C15950CCF6E188A0CDF841EB68E5A2F88253E382140F87C87E55C9EA93B8C89
-14A36CDF630D6BE7CD36DBDCE22B21778E8648B97B7EC6742EB5114BDF0454B0
-0EA7B1FE236C84C0E5308C871F67B973892890557AA12E00B2C20C71F516C397
-3F3BBD14A1D0149CA064391056E45E9470FC7F6F556ABC82653B3C8049AB5CF4
-BA83C8F2158C236B2FFD4208846013BAF4165E8BB8D334C8FF2E8D74AF5DAB2F
-D44788869B08399421AAA900ECC6A2D594641C121660D4B5F512938994C18DD0
-FCD9B008F68F0351D21ED735B2740CB1E0C1CCD25EB548C35B844601D98828DB
-556F71D07E081A593FF12DAF83676492A0FFE16E95717A07082B43A966C1EE8F
-8A59E1255E1705C43A23CF29A5E4A6547C93F1680A870EE7BAD8CF74D838CD5E
-F806911D8FE4262ED8E7F5BC58B92C9C6D74F8AD45FBB021EC7E97393018B9DB
-B1B84E7B243ADB05ADD3F1DB3692ADC5D47FEC7DF93080669E63281F1576B673
-125EDF08016664BE73364F65389F7C3B66623AD1754ECBEF9E5CE6948D933787
-A5674279ACB2EBECD3B4E6361419AB32028A27670C9F3E18B746A10B00AF6D77
-4EC00E3BE521C02A99AE5BAA98F793EB1228952BE67934B91472E01AF7B816BC
-56D7F19F631A1927846D800C107B1E9CBFF9D2DD513B4A8CE2E0DFD77B1ED178
-E43FA7052765E9FAF89989D490D8FEF6C536EC0D4AE27A74F474B98DA9E6B92F
-15E063DB260571979A5DE2423920CE1F59F56EB11E00E3BB9D466A8263E1E385
-2014BEFDA8D1EA3EDA04BE32AEE6CD15C5C010A1DF7F705A2C0C18E87C8DCCE9
-05D9163181CBA56C0FAC8C06A2990554C8E759D076B01BBEADE3B5FB8B551390
-6C8E4A2A1C6E7D9C708614626F3770C0AB7DD2027469C77975C27576065862AD
-04E5E50CEBE907E3E991FA0C627302C0E207B4D5992BEBAB5853AD1C0D271728
-C76F40A79392ACCA7358F948AC65DC823CFDA59E1FF69CEBB6B7EC3CF21669E4
-70D999508F9C49E2D9F8818CA53C977D93E15FBBBAF75B1E84F0BA62BCC4BAFA
-4EEC82D804C8A8C0210F3E5E258BB1F6921AF02BA9861BAD5C3D5FC8CEFABA8A
-A607E547B802096F7AEB09FBA99C83C9A494B94408DD607CA6561A6E6660C473
-62CF8D35F31D052F6C6C8138A8E1430CBA7EA6973D6D510C1A06B3FBD79D9364
-240C1A00272DA44B89A9FE8D5BF36DC1B5EBB4A78ADBE9C5EDB485F093D9517D
-69E1AC9A8E6C9D7C324E3797CFEAD9A18E82E03F69B2CED7D5DDCD1A218BF2E2
-ED2293AE999FE2A4B5213A10083EE0407BCF8007670B8C737EAB30311C868D84
-121149ACB4A27F3ED6C0C181C98AAAF51B105F264B5672D7F745131ABAB5BEA4
-0C9B43C0DD9116D6DC61F90BE72018F290D26D5E9D341055CAF09C9F45333CDB
-D45B7954271767F638EEC499F7B53C2CC5774EA7A7F024C4CABFB93D9CB1856A
-0C671A4ECA7C62EA5242648A84E7F3AFB9547A0AFC29593CFCE6D8B873A78157
-D337CABD291431C0A2CE1F37E0CD7340567AC206FF98E4B5A6410F70F750451C
-550EFB54AA259A1B236CA9CB730D2CEF125EC65D959441F7CC9768F777B44844
-CC9842A307C72B740680ACBBF6AA35FA7A94825069BF7696ED81A371A9E5475A
-9D997F2DFAD339AADF797F7E03E654234455AC3D17702A420EE0A597BA31BDE4
-FEB8DBA7C61D311CC90441A620164DC22DC2D373973EF84CC553453AB1B3337F
-7B39983B8DFFB3A9425F119B45C1CD37A76F905777B3154CA6200792F1759D06
-E017890F4041A385F2238E3C48B6C8EE6F5258463FDBFF7AC762F6C4363926D6
-50F004D473B7B7F73CA686B559C2885F1AA761653C727A77D73431E9D110E76A
-2E55C68CD50F43997C9B2FC4710F8C8540909829E215678E63BB8363C4B8AF05
-9986102BB36580D9CA95CD216B7C321822CB41B2E0422CD077F3B55E0246FDB2
-44D5976F67296B5B0BE4B06F6E43535C21164E6C5089C3E9BA2D6B30888C57DE
-49DC8D9D46C0D5EDC47ACF2C03B72DE3B69512508539019B759280BABEA12BC9
-385308A0395C4CD33182A10A5A229743379C2075D82D8BFCE4A66E1AA087A091
-8F5372684FA5037D1B92D50CD9CB4F50AD4F8EE7D51F1C9E63C721CB5B9BD011
-6F0A8DD4FDCD2B008F223A1036D90F0F3B252487DE7898F9AFBB3A9D9CD49E0C
-EF4ADAD5155A98D2125ED5A3D3907F67301649519419F33CD942E8DDEAC1BDA0
-E90C431B198F646766A8FA9F8D1561B57E126EF604838C0C1966655CF31FB7EB
-C8CCC434FC1C96046D38203E1791EC824A3D7AED85C029288D4608CA7668A2BE
-484C99639F121845B22EEFCE0A3B808261921AA042AE19E641769E91277BEC29
-4594082CCB3058F90FAC4A700A8A827ACA00FCF574ABC8EB7DBCECD97F2B22C0
-0AA19E8739B81AF8C6F621D69B8E6F29BAE233FBA655A0AF5BDFD7F5C6B9167C
-6BC7AB693D45EF2AD999F5DA3CEFA39BA48A17EE6D9F2C4DAB91AE3F0044DC3F
-5D5506CE4675AA928B0092D6F173644F91295216D8BBB14CDDE0AD524A4D545C
-1B5E284A3BF0396664081CFB4F186A84A0D24D61E82F4767C1E55A0642720CF3
-909FA1AB8EAB78030B59BEA067DEDBD2F1D0340E790AB2777DB18248521934A8
-BB38A58B7F633DEA4291B0D5D13E9A882C974697CC6D3B49E030C94EA29B5506
-CC29C44D01B4751B453A46A9F6BF3BF135AE87A4CE232AF57B66578310DE41E0
-2A6AC422117F1963C4D7CC306BD25A6E724E51921779F22F029733122E23E2F0
-CB340008813ABB104380C80A492B3FC6D0BB07CB8D8409E9576891EF6E5C9D08
-EB8320DFA31BAFFBD336D0C2BBC3D3B2D30368B9860768FC080D30569C7F7811
-0EBEDA2962476113625EEB555490B8CE4C5F99D74ED10F738C61854CFF8B41C6
-9402E56BE8856144A1A05D0B05F4CB7EF728B2F4F5A439F18C3B68CEFA41E59A
-D8308ADC92EC1289DC84CF48D2CDEFF509A145BF945E1E00D552D329EBD2A7C4
-21D58082CC8FA790E981F4AC8EAB99950678FD3A7DA3DF13778681B208DD71A0
-7C3CBD0664B37C9EDC6B601D79A2C51FB54DAEE849F93209793849104E722D3F
-52DFAF7047EEEDDFE744787A5801E4AC2C3D58EC5DDC15FCEE03990C53B0C57A
-FC54F125A04C8E4A0ADAA725808C587E7DAFB9F784FA2875689979D316DC22BD
-AA36B306A1ABCF907B63C6476737B746099973CAEA8C1E2C5C41F27E0F7DE8D7
-F0D942E34E92F43FE902653D4D2EBB6F3B9F7928B1550A82AF234D45D028F429
-067652BD3D391BF423AE72B9CB1E8D91E898161BE3A7849D456A861A2046711E
-E934DC59442AE7D81661CE8EF727D8D7DDC0270E937E40F896AEAE6171661431
-C1025C53172F9D366834BA0054FBFD84503FBAE328B6FDEA180F8EA35B1DA937
-5CC3B8F00C206908C2FFFFA6A7AC6915D15EA44BDCF29E2BFCFD4A849535F19B
-0D307C696BE8205C7D84B9C77F02EF27D911056EDBB4080E4D3ED72788666CAD
-CD91B0ECE27A177DB23320A7FA9C31408B4D02D2A4B1CC6DDE1A6CAC3D8EC1EC
-2226EC98E51046D1EC26FA20EE62D24747D83CF4941DCE5CCEEC0DBE387149CD
-E05B19FFCAFC0D117F9A3E60DCD4C815228D98EF95EB559AD0ACC0D50FFDF714
-56C3C812EA5ADBB013BBD956A7C4CC0ED7D3E25D5C9AF5E626F18297F75D4957
-F5B0B33379114B903FE98BCF35C3FF76FEE1D9AEB711F2962276531F7380EE3F
-E368720E0292A170A15C5539B1FC7BB954EE2624B504CB8C805B8D31AC38307F
-0513606F09211AE64DAC447693B2A0AD15E9A64C34F5A911ECD0ABCA90E9791D
-67C6BD202B0858EF96E7722305B8AC02B01AB1706CC6AE875A8DDD15EE349046
-EAA65005E7866B506EDFB7A5A2AFD5C9E9DCC821A79EE9C1EA2C7BBA32A40BC7
-CEC26DB1AC473C8C3960ACEC581B37D6569E8C8C42950BAB7930B65E1570E3F8
-9A7FA719F1DCFDA45A3BF2AAB32C9A93BA3552608A61C623DE59BCB346E87EF5
-9CF025A87803161221C5C1C6F6B3403712C76E9D755C7BD68D7F2DC03C14CDF0
-C1BBED1D648B905B4B17037B7263C1EA7A7F06FAAC4E09E08483A8D714C19861
-327CD9C32DDF850302DD6DDE24912D00C22ECDF3CDFB18FA831A41A7488EC203
-F564CFE30D506F0829A96D35A7E09C3DCD107D589B627A15B55C5D6649126BEC
-60B88C55ECCBB4E680265D9EAB4CE22965D3B1AF759B01ACB0D0E6C92B6B4EFD
-A81E6A648708979487FC591CF09631310D46891423F4EC159A73E30D8DD147A4
-B0EACF6D45D18CD16CEB8176F03ABCB41F2234747B9733C8FAF34AE5D43D3BA5
-0CE0FACFC9B087F84FB6C68678BC6E76022B1526D6E5B3A48EC1A110BD75F45F
-1C4DC6D39F254976453F57DF873B7D635C80C42026DE020E5BAFE0DA0D54D1E1
-DC634D2621BA184347E5252F645A6A1DB7657C48124186F0E4C644077457C24D
-55753C651A9A7B6349867641464B515B821349C795A645420508673B93750D0C
-7A3B33EB1F09782033742AE8F3A23FC02284E6C03818FADD1731361542E3FA3E
-75B8D52B668C3E18A4AE967D0FC3157083D952AFB8144D549E69EAAC51C279C5
-E5D88A0D9D53013DFFB4352A1598FF84DCDE6FA32FC377306B9B92C0F96EE149
-8CD55E7B2445B86CCA7A547FA732D52D59025129FD8C6333AC0DF4F0CFF6287E
-F2036D5DBBB3B91B92F12FEBE0B61A313A4DB5A9CF0BB3DDB781A56FEBFFACCB
-8CB9D1D3DBDBC4CB6AAE6769E470582403CB920630221B68BCB625CD4605FA8F
-D3D5B7A1A28D15E44B38E92E906C138E72C15B86F64C38E23BF0440052A8C914
-54397F49DBED99D0AF7CEA3B0A05FF37C2D7EAE1412567E6776333237C31E3C0
-49949EC8BFD6E0F6446CE2D4DCD2C1524A288818CC5D159BF8463A847AE4A2B9
-CC8C58F822804B81B13BF4F2DEB6229C4F51F093075581791D02C36A13B855A0
-34900AA7CD4F1A797652656FE3A8425A38F421C4CC0ACA1CDD44FA6B31219276
-1CDE1CD63D6A58CE705CB56CCA1260F9B86E989019071563A9B4C274A87558CA
-6EF1660D574EDA276801F0057740E2C3B80D253D697736484D892CE1AB128B8A
-DECD69712F5E70E895FBAA927E8194D792A04AB6CE205E04E38A433BBB793FB4
-E8BBC4279D58A223C6673D909D6AFECD246E66A52F4CB35E5931D24C828489BD
-4ECAF621A220D8ECF702BEB01C4FC7510197D3F6D15321EC87175ADBA6434ECD
-2B5A306E91375CAD22CD94301763E4A8B981472890422C5488FCD523C9CB17DC
-ED22FBF12D5F7525D0D6BCFE8CE85B0DFB1D6F989C267FFBA0A996D309E4A934
-3DB54A9D29C88B9D55D7300DA3D46419256C5A07A2A529A8DE8BD1727281F5FE
-97033D861E0531B14E811378EC1AF1CC7EE9BA2B07D935843D3053F673979F8C
-FAFD59D555B56CE338F606747238B22BD62C42BB7238FEA335678D474A643570
-A9E7B4970E8C541CE9DBC7BF70ED7BA33639D6744A18379455029E934C95E2EF
-639C4848CE9A0879B51649FAB023A71782444B451F92A34CB8A124270CCF86D4
-D18EEF5C1D2B2A29012613851C49F50702D63BACF95EE2AB4D72B375E0A62615
-E0991E130A67ECBA9E05329B740708F1CB148724C3A6E5E3AEC1F88EBCA398D2
-1CA8827C977D72734310233176D1AE26C55CF2CEACA62223315C28FCF6305C7E
-A22414D4739A059F552F1F9372CCCA5FED4F9AC987942848EB498900269511F3
-F408CBEA0659B954F5F1B18AE4FB270213646F9B28AE4439D2BA2D3E0AAAA780
-5E530E4EFC8A060EB979E12191044509DA0C14397AFF949E12DC970658D5EAF5
-4EA963F5BC1407A32F3837CA6A24B7F3D60EB8E6222B702E25ED903F9D21AE50
-664A095009BDEAF4B78DAF94E5A55D48366CABF07791A1684B2F54EA69070844
-4F031AF8DF416C2D3679F8BA038B0DC9DD0400CA6B34667BCBBC07E62C1668A8
-35A8C57C9048A7227E672E89681B54D662079A189A9E96A3CA96D8DD10189B04
-1DA49BA2729F1CA585B1BD5C467295285D52E47CA904235A1A3E48EFAE9EB6F6
-01374125CE89D53C276858668CF45D2F092DDCAA52418E0BB94C2B8266B4D88A
-5D911507BB1DDA3D8F6E7C14A91CA11AE799EC42E993098E18CADA70BD2A1D82
-2C39326C6E3F9E84CD9758B9AE43D79BF99E6A0CD713E95B3D9B7DB90D127DE0
-DAFEBF850CAAACBD860B5DEF2082F1ADA64B44B193C4A1417BE221FDCA36456C
-BE5934C8CE3ED55AE3A11697C2D682B7D0F72D48976451D205783BE25DBD2507
-39C14FFB4BB828DFD187104F38A7F11D5F0698C11E8C1D4F107CACE573FDC4B1
-C56FDAE47024D6FD16A2FEABB434CA320300FC4B6C1B6CA08F76C60B7C08A665
-99F404DBA8A2A1EB18EF6750E4EC186E31561A3F080BA6562967546715859481
-7BA782940F5C5D06626D6F6A412CA7C13820EC7C1DF23E15E5829F698CF617BE
-D940523E4EE4ADECEC48C24297DBAD528BA1DCE7AC335A1D15D55415B108EFC8
-6D45030D27B3EA63B2B4CD771DBE66AE0218ABB1153D4B7482289D1313CEF184
-5C960B1E3C3C953912CC6F4521D1E15636C1545EEE457EFB87B88C9E43CC2F38
-6BC4BC96969F4FF28ABB06F4454C01CEF1B6DC538F1E832FC1666D977E5A881B
-F72F1B4C7DD4BE167A5535F1163A0706F9A0B26400178DF8A128FB5EBE6A7B81
-E478AD183EC06622B591337B9F1872AAEA356F4FC67EE767B34CB5A4D90702D9
-39FB846947F4096FB3DCF16EC81455164783BA0B5D723060DAFF411B68307E81
-7BEA1D9A47A5AA3D648E618C83C60F060029E6EC4D46B045FA7415BAB2AD0AA5
-ED9C729C24136F6AF61E6409C0B5CA760B16225641E268A68CFB8260BBEAFC77
-6626EBD97195E77CAB425CFB0096D805D9EE699E41680D095AE9FA10122A7882
-2F00F495C9EB2102DF0D3E61833BC0A2E468C5CF7AB430FDB7C0BE3DF2C0D230
-1580BAA25D65F599378D873165482A1FBB224AEA89C6BCCFBDBA42AE1C5DCF41
-06969F585CD3B737D1388D6359F5468D88FCD2279BDB270F6A858FB7D2ABDEFE
-5EE8FB79FA437F8F50237B92C307B73B0DCB808D07A9C3255CB9B3B17039CE5A
-288103D05D132863FB522A02CEE3839EF9AF7F07D99732F0B8B384745369FB3E
-7901166478F4A16076A1504C5E98D17408494E270BBF4470ED12B4332422679F
-759F1D93984D7E506D16950DB6C2682FE1379EFFA6F6C95DD71F6E55BE3EF6AF
-E0CB25388EEB436E6527806FC75484133F6E561DEB979D5C1FFEFDAF2A6D964E
-03BAE0BD593C2992AD84569C81050F7A793C5263E50C2F50B98C4CC703EAE17A
-6AEDAACE312DAFAF5278D125B6EFC5587484F61DAFF46B87B7C9B1EEDECA4859
-314A9A9E2248467DE1E54D90DD671660B9040B3E0DD982260822177EFD757266
-74A16C83A7FB168016A320D3DF3BD7726F1F4EC90EE5DFE810C96B099FD4368D
-906AE4699049EFD37E8EF058D4B97BF71106445AADD4FC6E90615A0066823A36
-673B8DE32322BBE861AE251226B4385AB28703B79B4275C536D3E9E687F69756
-1278DEA53837CF42F98ECCCD86A244FDC5C7FBA1C71EC3F45B2E98C37EC1F65C
-B1A112352814FB6FAB1161A7449FB0C82D8E1C74333BD7441E9ECDB576A5BA94
-F0D441D13CD84DE55BC25BBBB53FF5EFE0A67D566EE4E202722ED52BF7181F51
-70D734154C8EB48CEFB85094854B2484A0AC6B9548F67883083D7F28ED96614F
-888EB2B5E2F8CD8F21B4A6E6FCABA356F58CAA577A2E135403EFAD52472E9760
-2424CC86C82455D993744BC84E03D6F2E5A5B2796AE96053CE278AD5875D1EE3
-C93011077799B742B1E842D5A0297BAA8D81C733BA78C0DEB8D1A2C9BF7CFAF3
-F6C87EF5B40B1DE254CF21F2FF33F31B275B5711FD6B227D26011CBF25EBE388
-2B835172084EDA0B96B3F3222DF89E1858BF77AF24754281FE3FAA2E1B52D713
-BF04960F2391FA6B63F2E6A01890368EA8F0D42E7A93B340A743A9FE7D4393C6
-5279014BDE76C22106CA436D6EC043DE844726A222F8E7690F4294AFE8B5E7C4
-91A62C4340F2E793A0ED8D143B9CB5FD8950EF78BB34E90768C4B15D651FA8B7
-20DC21DE0755EEE6F50AB91648C8026F8DC0E546617BDA4097FCB8FCB635C4EB
-B540C214E62974B83A5A5CC369CE9F3DF01FD6055501D9A0E71EFB7075790A3A
-1E11482D57964C8C345D7F3C9969AF06A708F7CEAC99A20BCA3573AEC93796EF
-61A239212F05BA154584A312D0DC1C199035B90E8E56A9BC0120CD61B56115A4
-207DEF9096D27D3D6EF480136F3A2C060587C6798E098A1D4AEEFA5457E58664
-E1A2935F3463195DE95A253AD84C9B7EB6D77032121AF1E13FF8928C4AA20FEA
-739861B2184D9E29DEE5BD0EB4A314D0EBF8F63891D98E4EA24E4EFD17C1FDC5
-9BF0404A36DB4A8CB8B522065C495C5ADDA9BA0D1B54806C5B22BF34AC911826
-F482DCAAD7063D5D20A302B51CBAE24382CB3A07B64835A630580D97CC9E7A0A
-D30AA62480636B595CCD064AAFF7C24E8B871F85CE814DED94B3E01FB060B7E5
-7DAD852450F93030CB5809EF98E9F48BA0752DFDCA4C0E9869CA824B117CD993
-34626049A9AD892D4D31764DBEEA0A5CE7E682B6A859D852D22ADDC8B4AAE9F2
-27E9152087A89E5F2534B32D3AAC58C2BC29E4E3E8844AFF69DD34A0A93BE91F
-9745A63AFEC3516B02EEC71711F1756B58168F9FFB572D787B2FFE01BC07C04F
-227ED4C1346E54223361FA1DBA789C741EFC39C26050F6F56CFB6FDA12DD94D5
-837F8101D3D65F56FC746AB848830E6987404A4ABBB490D44EE8874E54DE3B72
-D75EC25A96919B0623C4B487F73D78D9C5A40096DE5CD9FA03668530FAD2A77A
-5EED85C9303C4F67CDC0D6B20CEC70058D312D3E154FEE43CC06FF89A82EB591
-4643355460BE4E0C5D8735A523D2DF9E740A78ECD97396DA076C632F602D27A8
-8E8BFF0D46BAE1C8254CBFBFA159B07ED5C9B3861637ECFE139E593AEE13D1E7
-593381C907FBAF642694D17BC8EC45F1A3EEFAA3B4E315BC32CF5EC239A9CC1B
-8ACB29E52A697F4A8BD9635311108D162F9B7210012EA3578A81767FF2ACEE14
-8D55098B803C0C8F39C080E5883594001529219B3C6B562A708C0AF94B475108
-BB2822276C3C354877EC108D03DAA3163E48A480D7442CD574FA47CEE86B17E9
-372DD0CC0E22DE174195B3D503982779D7397BF1D887CF316E2573D900D08B9D
-16715CB699C46D137A70B82BC1471F59C8E834698AA060ACD6CBDA8D00D12D8F
-361B497A5239CDA0B3262724F59B94B56DE90283762771725A7E2D8F83BE0585
-2F9C004219582D45949B8C3A7907A725B7F501514017D615ED576CC0A56C98BD
-025F353124DCD08E769AD993D11E519F94F7C26C8BEE32C6A310D4E1F4D442D7
-31E599E32C6B28808CEB9BD6EC5030FD0AE2514FB118396A7A1C1FE3EAB00889
-69AFA6F9B2C6359CE60F3435F0348428B104B110DAA071AD0580BC14CA70AEA9
-7FF4B704F7641BC26077CE00A19A3389B06DB5DF396F0783135AB26A74D7D41E
-364FFBA48BB844B5623950E6053B0068BC64EAF897E7CD6CAD4FFFB69A0110C7
-46315F3F39C77D624A1C307C68ED4CF408AD2EAB826AE3A6815D4EC854F3312B
-72F6947D9A769D9235CF735AF722D8F661B73136F9AF34390399F4D9743F4522
-3EA86C92007E55137F47587C9BB1A5808A161722BBA045E641E096BBADE3CE25
-9BFC749E5726B30F0556961DFF364B1D5BCE4CBFFAD279C1433993CA0E31C511
-A5D81A503AA8244A27ACA501B73034760522F13F2D2DFB25DFE64B5C6AA9857B
-839CC44AADE6DF3DCD517D0E873AEE620EABC2B41E6E0B259A11FACAFDC5D198
-06CA2E0F4483B3D92B8F6F100582FBD3498D4EA5FE86F9488C9EBCB6B44A69E6
-8EE406BB885CE63293F8D35182D3C3FAECDFF2DED8B078757E85C62C821BC30F
-303FF8EAECE8B22958DA1E9529945DC0E604231E3E61D17200EBAF1D62963979
-326A14D4811B342EDDBB3F17C5983322FE315E94EAA9A515BCA7BB12B5F24D83
-30E09F08ED197345AF96C057A12CA13C2351B6D50F2F4314582F2FCCB698D59D
-66F3A8D187BB48439692C7DADBE9D11560437EABB7A04ABD8AD8778428224D4E
-70B69FD185D5660D5E658C88C683A58722933C88D637A1D6B3E4F708F5B1F0D2
-F670D43DF0C5C2D77BEDE0A664E2BC60FFC3BBEA7DAF14CA1C39A5846CCD8003
-32078EE130800B06FCCC0BCA3FC68FF85459CCC65FF394A3C48258513B44E6EF
-215311511AB87EE7594A2E3631DC4A27BAA71C1373B6484B80E93245C561E6C7
-691F3B93E012D57DD5E2D5FE455364030DD9752CE58860C51206C5B11A525AED
-32D77B6396D79082258208C0E020191920BB78CF43F3EC7B181A31C76AF5E518
-85E47848AFC40F2DFE58C9861579856B3721B1A29F3E30430FC503C5BF92FA56
-5EF0C5CA7C7DD1463E810E3D1AC0FEC3086F8B4E1309027ECB5C1AE622D8369E
-5C786F5DA8E51D9B825CA5EF221F6B390EDB85E6C76FEBD149910F3D689D6293
-C3B74AC2DB9EE840ED1A5A247FA60A56D8D3B7E84B6C33CF082A247A897BF63B
-B9E10615DBE2CDD6CD9AD2203F045E772D4CE46C1681ADE55A59B041877A9B52
-078C02A3EC46288B9DB6D21E66D77D424BB080777AE746F76CD4214D860F6A56
-8200764CD41B37B2D292697B0E028978B1ACD6288A804C1C0CCE79D9CC027EE2
-3F3B3B62F33819006A3FBCC84888981C673FFB7BC40FA7552EAA7B2EB13C953E
-B325BD0792304DC6D954FBD18296EFAB63D8B1BC3A80FDE76B8EB79BC03F265C
-9EFD453498A5AC0BB0928ECF69131EB7C15932A84A42B6020D9C58AAFF8E62CA
-BBFE0D2388CE4D014F23144CB8FB17EF9C2A66DD5658CC9DA81E9D366551EC24
-B74B46FA556FF6AD0458467E29B3B0D15332114C6DC7584F61E20C6CEBB79193
-162959B5E9ACA580DEA82F5C88B1547E1A5232E6AE1893D972B92BD920E0B8D7
-45ECAA8F8EBBC36DA99096019E2749AB285862DE8EE52942EFD7C882DFB6750C
-BBBE19B70616DBAFD7BA7E7F4A2DB07EF7F1FACE319325D8C0DBC32019AED67A
-C6E16E2309411C27F133F74695D01E19439042084B94952AA3A010447E8D9190
-9DE781FC54314E01C60DAF29D13A92919C7994B722EE0AA3E23538F468541055
-1EA8F0912EBDA761F00DCA94B027241A9533028D1747241EFE8A2F9588F5376E
-F2197B3522D8E91B5F023758E291744230412153C85EB175D95D8E4CF11794CF
-E8D5A520334EC4270C8CAEB1AC83AE4A9C631C24DD5086FE23492184DADF9545
-0E89EE851566C92BD57CAD4FD168D0C8861746F63B1C1767A866F169C7A7FD60
-247752204A678D5801DC8AE0076F7EB15AC9E7D2E27CE1A6BF195F9FE21BA3B3
-FC5DD7F6869251D11F9B2A5371638F3E466AA9CA763E76705FA80A2771DAB2F5
-7FC8EBEA0C28F3934C334268A59629B46749FC5B70B7F5AC28B5C827538532A6
-66259B2D78384B998AFDDCD32D91536EB4A352C0A60E3C7F9164E22F626AD1A5
-18DE2B0ECE37E72190CD6F6942BE343EFF36424CAB3B45E3880E7CFE7CFEC947
-83C3BC22BE599F4F678BEF21527CB1A1BB9C5BFEB7715A89399970B662A54A7D
-53A9F7DC845CAE8258AE96004D842DD03288442755F71F7C2E53E474F80614AF
-ADA2FC459E03F335D5EFAD31ACE3CC0D4ADFB7A9B2BDA5CAEE324E748B65
+D9D66F633B846AB284BCF8B0411B772DE5CE33C33655F6FF751F340A8D6C01E3
+2E02C24E186BA91B34A1F538959D4450CB683EAE5B034D030186901B458D3777
+6B3942BD2E07121385120248891AEC2EB33C4E3A0CF00828D0F130C31A918C18
+979FE94379C648EF21ABF659253E43CD1253866F157F1DF85AE7E8714F061B1E
+ABA3AD094FE8D6293916FA82EE4F486C7E513A06D4C9BE44306A8287970B4ABF
+B6D1F9274A5A0BB6ECF713ADBD1260D5D6C4420D357FD486470A74B2F0621B59
+A9373ABECDBF32FA68AABB66FAB0C970A3354A335D70DB2CC5A3208BB6D768E7
+B58CD9BC2B6B7E110693C5A88D680B7290DB121996E3B7C8AE3C23147280F8BF
+D8C60B415552700FF0E44C2257B467ADD5D550F61EC34A76143393E0B34D55C0
+8B64B48E5F1FD16E16B967511AE15434B7F755BDF2574191E3C3DC528B69B5BA
+7DDBBD3C7878FA69ADE75011A2C0F02F5707E86FA632D1269281D3C265B31F3B
+F3145052467647AFE18B9D763FAEE4BA72CB9C385568EE5BBF5854C278F1E3CC
+475C6234E83ED33345268BE52F0931B58F302EDA0D5751348E7B7E53D4882FB6
+9343BDAAE87E48F6E82024D8EC1FACBBA36582092CCD76553B0449A5090774EA
+7242123C53B80F2E927B98DF2B36C403D1FA1E9F8439F3964DC9F89A0CAB5AE2
+C907309460F097AA87BD156575D6C73EDB2B40C015E67734397ED14395C43394
+7A0201C6B0F652B035FD7BB82ED236D0F7C20048AFD83A56925C7A2898B46270
+B440913E4714FD89697B3E59F5BDD5A2AACF6630257957ABE1A63502A3081B6E
+307A534A9E238F986D4C866AFBAB7A0B1B5A6E99AA0A56DC1FD7E8A39CC45147
+259AC7033A0C58192CA82FB12E09F309F75690043646193AD92D2368F345771F
+01CFD21236BA52F74E36CF4B94259CDBA2EF1D61AD93A2B942A9896B0819D20C
+59E440851CB99E89C887FC62FD9E7F88F54E5BC157D81A5FBC70699820C51BC6
+27D7755B195C0BAD8225A6F3EAE0A5A674E8AF6B11BCC69DCF5FB89D8BE0E2E5
+FE7E2588F93F583E4E2F6ED5457E90B902B02F51D54B9F0BA54291E687F4A7A2
+08CA5FCE0C9F3B954247312EDA3C532D3DCDFDCB56FFE03B36DB7D549D4203C6
+7DA8772A2F732A15DE675D3212C28DC755E3D0156A777BF514112ABBE4372ACB
+97D7834813E1850F90CEE543B4C09BE1E93742EA98B8CACC09FCC4D2595EECD4
+46C942EEA60211FA7DBC11CE869D55BF0C7EC6AA747EB2AE2CB3CC2DBEC936C9
+540CE2E08291323B36F6549CDB97BBF9F0DA429CA9C863B629410885540DA6C4
+9AAADB30C39051C993CB547BCD573D6448DC09BF7FF2D1B108ABEC2AAEE4060D
+182ABDB3100AC627E5C883E8F42D90D699C8028D4123472F211C8FBB744D7E3D
+C626ED03D8517D69E1ACD26BE4F83FAE31122294816736827D138E4F4CAB1681
+236C1654E01231EA7F08AD0E73BBE1BE19A7AD6DA63AE0C7F5A360A53BB35268
+CC90125C7545D9D59F5127F0AD964AA66DF020F639832FAF9C2CCA82C01120BA
+6469960C350D3AF786666EC14158728E0BA2DD8A639C28E0A7EA8BBF608FD7DF
+79C7B5DDEA05C8C3D6FC70177D1A9EA9AD056F0CE31AB535A22FF7EB33748071
+694BCE70111394D24DCEA030AE4C07AECAC39144621A6B719682FF74DB5C081C
+B538F17221F8D06EAAD43B64DA5CF93030CB93DD54FCC5B44980F2AC6A66C512
+54F71283450DFCA305E0B134FC95E54C2699C18624EBE6A7D0067E306EADCFE5
+2D2A78AA02574548893EE05FFD60CB41E00B2E7761AA55732EFE6EE3C19EEF6B
+179276229BA324E59A81107FFFAE0685C7C24E70ACB8564454277C41C28075AC
+96964C61BD933742996058691C47B09CEBE352FC29A63119C731B3FC8D78A9E3
+69F922CA6454BC1F6CFD1E03B285AFC3D8A7C81B83F0D950DAD2F3E562353B9A
+1D56DABD05371F9479BFA4CAEC5CBAAC37C200F6E27BB35E591601EBFF9580F3
+78E3BF2E599FF22A1434E7D661083C7F8D02F91CCD580EA19FC752DC7DB84DEB
+6DA73092F21F04F718009DBA58BF46AB95BC4B9154DC2390AE0089A9FEEC29F5
+90EE85785CF7E9EC5CC31283CFFE2CBE71C3A2EF82C984D16ADD4BFAE300036D
+4D161A5BD529D9E7C7EBD598A6CF895C2B0A06DBB62EA1E10D52D2D69E373F43
+4024FF3F78725CD06CA3E2F2FF6EC30EC7E3EB389DFC287C5803B56F4058A19F
+EAC02F63B3708C71BBFE34996E87AE9B53C0B8009CCFE62C17E001C96636A66B
+10F2CB000A0D128B232D9A9E24006A4FCB9FDD47C70C954BEAA33A81A5EE27B9
+220C89DF8C7471D82051EC633967352C75105A1222751EDFBB3E8B7294D5DF44
+958A1F7695ECE82296DF0D272C713BA3B612591D25AD1A01EC4C31819D2DC7B3
+5CF2D9F0F492A21E1C0F12BA04D7AAD47D978D9E27B27A5E810DA3288710EE9A
+55270BAEF9025D1ACAB90E7A0010434D7551D9C6ED8854FDAA3736542746ADFA
+E256888F27BD0473AF8CEAE50E72CCFD28AB52B5B5AFE50CA179D56CEC0F66BF
+4E29E49139796AD76F219F2F7E4A093AE79BEBA96AA3C4846BE06F450ABA400D
+1802978E39789984C5BC3E386CED0321AA1103F4C98E7938A0A43221BD62CB3E
+9919166E4C5685DB2251F4B257A56C518348D27E0C312082BB785A7A71D46A55
+84BEB0D0F8488FE1851E4D2218F93467C90464BFEECCD83F382E45211576133D
+BBDA5CC4582CC326879574A5B0C840E7B69617A157AB0CF1881601EF22909D51
+457962C37265CA81F4462979DBC27E2D40FA8A83DA4DC02F8945783A3F7D7E63
+9A2C7FD9A366B87678E42AD75BC9BB94EC921332E60DE90966B9A2828B3983A0
+B4AD97C71BFD312AFF12B19F8BD653A82396A30C8767F169B664A12D1B1D5A2B
+955F8D68D7F589FEC9ADA8B3D621165F366C39D2B6EFA16EE1981A33422DAC4C
+63444836C47FD4CF75E964571BD86643FAB5F8CFB63633A19B36ABA949504A51
+BF3395620F8CBBBA1D06FFC01CBAA4281B1934BC9EADFCE21949101595399607
+3F5CECB8BDB43E672FDF8E4E6472EEDE6CF3C9B0C606643CD25E8EEAA88FB5DA
+337D8E8246D149FF54C613B691679A646D961D98B7BE1C06AF5F69A4FA62DC94
+8A4D4D40D065CBBC229205072021BE4A2085C6209F103909A048836120F9C369
+5BAEBB29EE7C59CA69954B26E3EA58438675DAB14FAB778437E05FB92B7FA3D3
+CFFBF34B0E7526D9564D23650E9B9AE6DF11C2BF0B272327F4FC47A764BD6E09
+46F0561971FDD8B8D0969B50FABF52CFD470EF37327F814E2656C5BDBD061A35
+4684B66BB71DDE9AF914DE7CB8A2A33999008A7D81F24CB629294ED8B96656CC
+5DD1C2AC79FBE594F5DF0ADB51D448AF658613F899B309514EDD2CE48C4AF155
+0CB5983755E12C1F37ABB0CEDE003EFBD0BF18082DFE7842F8C565C82E28BA27
+D956BAA853052BAB3C9A63E1CAAACC3ABF6E62CE8A1DC3954DE1ACD0193F8AA3
+E4195E722AD662CE3E188456AEB1A392E24F02C9EA38B6065E6C9B8233606230
+ADCD832E0D691E7DD709659F7EC3FE02A244E832DF17E6991BB9042E8B98F6FF
+5E6A9AC55AE7F243EC23CB8858306ECFFA2FF8F7C227091154781ABEA3BEC50E
+18F0854E26646F5E73932206F2FFD5EC588B006ABBBD7A6B81F3FABEBACB5523
+7AFCB8AB313AFFD9232DBE7E33C0AE19EEFC32F1B94E9040F1D8CE31A358973F
+79E987BF6F49B4A5C717F8956488A3084EDA5CF510EB618AD0F44AD88E375AD9
+986AA8D585FDD73F172A740BC8E0119336140328BB5C79F8953189313DC1EA99
+B6A47CFBB66A98110B7E71A6D9CE4F3BE94D3507F2A44AFC967C8E254ABABE0D
+919A34A7FBAC0233585CABDB28A3F104B882AD71FABF3D9F41849523D29E95BA
+7840334C52DE6900A9B308E5047D9ECEA8E3308F8BDD81CDDD6E9D81CCDE9A66
+DC9C2E10F4850068D2D321839FB316F4F09FA26664EA51EE86EB2DF3E41186D7
+B73A68C125FEE7826020C77B0632E3D138D002C23F13F44C47014748102FCC29
+9F0458E90084393FCBA5430D2BCF1D585C7428DF54B884807709867C739AFDDA
+7B398E3126978279F50E08F102184641D223CCC9DBF3F4A0FBE3897AE3A87DFB
+E81876C20DF82204D8B35B3EFFABA6D74EDC357432D7D51FD626A1CDB1929A36
+9CE5AF6AED4365628E6B083788384DCC6EF09253B99949D376A6D21CB84EA2D5
+353898E4654D93AF0B5AC8A3D796970576B373D47AD58FD12002718EE0A54139
+80B3A3F2D3108B975F8DC1167B47E9A4673DD434B87055AC26973EFCBFE6D48A
+5A68F099B118ACF08F0E60FD147AFD97952EB2A0E1D869D5408E4F6DBB5BFF81
+4E9CC701141A63DD8264CF4F2EE53CA9C175A06FEF0E9F65C510E7E561C63982
+E797D77238480D13078773317A0E2917CF1B307C315E88340F56B5F957E4A6E3
+2867EC63A3F9ADE503D6ADEF8B236E449889CC6992E3329B8213066EC393A9CA
+CF4485B17BE4F202ABB890D75B0EC6
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -342,7 +173,7 @@ ADA2FC459E03F335D5EFAD31ACE3CC0D4ADFB7A9B2BDA5CAEE324E748B65
cleartomark
{restore}if
%%EndResource
-%%BeginResource: font ICXWUR-CMR8
+%%BeginResource: font IXTKJB-CMR8
%!PS-AdobeFont-1.0: CMR8 003.002
%%Title: CMR8
%Version: 003.002
@@ -354,7 +185,7 @@ cleartomark
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
%%EndComments
-FontDirectory/ICXWUR-CMR8 known{/ICXWUR-CMR8 findfont dup/UniqueID known{dup
+FontDirectory/IXTKJB-CMR8 known{/IXTKJB-CMR8 findfont dup/UniqueID known{dup
/UniqueID get 5000791 eq exch/FontType get 1 eq and}{pop false}ifelse
{save true}{false}ifelse}{false}ifelse
11 dict begin
@@ -600,7 +431,7 @@ cleartomark
%%EndResource
%%EndProlog
%%BeginSetup
- /cmtt10 /ICXWUR-CMTT10 def
+ /uhvr8r /JXDTPR-NimbusSanL-Regu def
/cmr8 /GMTUEE-CMR8 def
%%EndSetup
%%Page: 1 1
@@ -702,8 +533,8 @@ newpath 40.45374 39.80562 moveto
0 0.50114 dtransform truncate idtransform setlinewidth pop
newpath 75.229 19.72816 moveto
86.09601 13.45413 lineto stroke
-6.07166 45.71011 moveto
-(\(draw\)) cmtt10 9.96265 fshow
+9.22984 46.03944 moveto
+(\(draw\)) uhvr8r 9.96265 fshow
150.14568 6.07826 moveto
(N) cmr8 10.56937 fshow
150.14568 46.23317 moveto
@@ -738,8 +569,8 @@ newpath 136.30315 39.80562 moveto
0 0.50114 dtransform truncate idtransform setlinewidth pop
newpath 171.07841 19.72816 moveto
181.94542 13.45413 lineto stroke
-101.92107 45.71011 moveto
-(\(cmr8\)) cmtt10 9.96265 fshow
+104.53125 46.03944 moveto
+(\(cmr8\)) uhvr8r 9.96265 fshow
newpath -0.1 0.1 moveto
-0.1 -0.1 lineto
0.1 -0.1 lineto
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
index d9fd8811323..f0b051ade6b 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2019.03.10
+% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2019.05.11
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph.mf; %% it must be version 4.40 or later
+input mcf2graph.mf; %% it must be version 4.41 or later
%------------------------------------------------------------------------
sw_mframe:=0;
sw_expand:=0;
@@ -11,6 +11,8 @@ sw_expand:=0;
%***********************************************************************
fsize:=(35mm,25mm);
blength:=6mm;
+%-------------------------------------------------------------------------
+%ext(defaultscale:=.5; label.bot(decimal(char_num)&":"&inf_EN,(.5w,0));)
%***********************************************************************
beginfont("EN:Glycine")
MC(<30,NH2,!0,!,COOH)
@@ -109,7 +111,7 @@ beginfont("EN:Chain 1")
MC(<10,-30,45,-45,30,-30,60,
{1^-75,2^67.5,3^-60,4^75,5^-75,6^60}:/_~dt
)
- ext(
+ add(
defaultscale:=0.5;
labeloffset:=2bp;
drawarrow .7[B7s,B7e]{dir(B7dir-90)}..{dir(B1dir-90)}.7[B1s,B1e];
@@ -136,7 +138,7 @@ beginfont("EN:Chain 2")
MC(<30,!6,
{1^-60,2^60,3^-60,4^60,5^-60,6^60}:/_~dt
)
- ext(
+ add(
defaultscale:=0.5;
labeloffset:=2bp;
drawarrow .7[B7s,B7e]{dir(B7dir-90)}..{dir(B1dir-90)}.7[B1s,B1e];
@@ -226,7 +228,7 @@ beginfont("EN:rotate 1")
labeloffset:=2bp;
MC(``1,0,0,<90,0,<-90,0,0,{1,2,3,4,5}=vf,
{3,4^180}:/_~dt)
- ext(
+ add(
drawarrow .7[B6s,B6e]{dir(B6dir+90)}..{dir(B3dir+90)}.7[B3s,B3e];
label.urt("90",.7[B6s,B6e]);
drawarrow .7[B7s,B7e]{dir(B7dir-90)}..{dir(B4dir-90)}.7[B4s,B4e];
@@ -508,10 +510,10 @@ beginfont("EN:Change color,font")
defaultsize:=10bp;
fmargin:=(3mm,1mm);
MCat(0.25,0)(<30,Ph,{2,5}:N,3:/NH2,2:red,5:blue,3=green)
- ext(label.lft("(draw)",p0+(0,.9h));)
+ add(label.lft("(draw)",p0+(0,.9h));)
atomfont:="cmr8";
MCat(1,0)(<30,Ph,{2,5}:N,3:/NH2)
- ext(label.lft("(cmr8)",p0+(0,.9h));)
+ add(label.lft("(cmr8)",p0+(0,.9h));)
endfont
%***********************************************************************
beginfont("EN:Make brock")
@@ -552,17 +554,17 @@ beginfont("EN:mangle")
blength:=6mm;
mangle:=0;
MCat(0.2,0.5)(Ph)
- ext(drawarrow((A1 shifted (aw,0)) rotated A1dir..A1);)
+ add(drawarrow((A1 shifted (aw,0)) rotated A1dir..A1);)
mangle:=30;
MCat(0.8,0.5)(Ph)
- ext(drawarrow((A1 shifted (aw,0)) rotated A1dir..A1);)
+ add(drawarrow((A1 shifted (aw,0)) rotated A1dir..A1);)
endfont
%***********************************************************************
beginfont("EN:blength=0")
sw_fframe:=3;
fsize:=(40mm,15mm);
MC(<30,Ph)
- EXT(pickup pencircle scaled 0.2pt;
+ ext(pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
@@ -575,7 +577,7 @@ beginfont("EN:0<blength=<1")
fsize:=(40mm,15mm);
blength:=0.1;
MC(<30,Ph)
- EXT(pickup pencircle scaled 0.2pt;
+ ext(pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
@@ -588,7 +590,7 @@ beginfont("EN:blength>1")
fsize:=(40mm,15mm);
blength:=8mm;
MC(<30,Ph)
- EXT(pickup pencircle scaled 0.2pt;
+ ext(pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
@@ -602,7 +604,7 @@ beginfont("EN:msize=(1)")
fsize:=(40mm,15mm);
msize:=(1,1);
MC(<30,Ph)
- EXT(pickup pencircle scaled 0.2pt;
+ ext(pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
@@ -616,7 +618,7 @@ beginfont("EN:msize=(0.25,1)")
fsize:=(40mm,15mm);
msize:=(0.25,1);
MC(<30,Ph)
- EXT(pickup pencircle scaled 0.2pt;
+ ext(pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
@@ -630,7 +632,7 @@ beginfont("EN:msize=(11mm,11mm)")
fsize:=(40mm,15mm);
msize:=(11mm,11mm);
MC(<30,Ph)
- EXT(pickup pencircle scaled 0.2pt;
+ ext(pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
@@ -662,7 +664,7 @@ beginfont("EN:mposition")
msize:=(1,0.8);
mposition:=(10mm,4mm);
MC(<30,Ph)
- EXT(drawdot p1 withpen pencircle scaled 3pt;
+ ext(drawdot p1 withpen pencircle scaled 3pt;
pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
@@ -675,7 +677,7 @@ beginfont("EN:Font size")
fsize:=(40mm,15mm);
sw_fframe:=1;
MC(<30,Ph)
- EXT(pickup pencircle scaled 0.2pt;
+ ext(pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
@@ -689,7 +691,7 @@ beginfont("EN:fmargin")
sw_mframe:=1;
fmargin:=(10mm,3mm);
MC(<30,Ph)
- EXT(pickup pencircle scaled 0.2pt;
+ ext(pickup pencircle scaled 0.2pt;
for i=0 upto w/mm: draw (i*mm,0)--(i*mm,-.5mm); endfor
for i=0 upto h/mm: draw (0,i*mm)--(-.5mm,i*mm); endfor
for i=0 upto w/cm: draw (i*cm,0)--(i*cm,-.8mm); endfor
@@ -964,7 +966,7 @@ beginfont("EN:MCat()")
for i=1 step -0.25 until 0:
for j=0 step 0.25 until 1:
MCat(j,i)(Ph,4:N)
- ext(
+ add(
drawarrow((A1 shifted (aw,0)) rotated A1dir..A1);
label(decimal(mangle),p0+(0.5w,0.5h));
)
@@ -973,23 +975,39 @@ beginfont("EN:MCat()")
endfor
endfont
%***********************************************************************
-beginfont("EN:EXT()")
+beginfont("EN:add()")
+ fsize:=(50mm,20mm);
+ msize:=(1,0.7); MCat(0,0.5)(<30,?6,3=dl,4:/CH3)
+ add(
+ label.top("+",A7);
+ drawarrow B3{dir(B3dir-90)}..
+ {dir(B7dir+90)}0.4[B7s,B7e];
+ )
+ msize:=(1,0.7); MCat(1,0.5)(<30,?6,4://CH3)
+ add(
+ labeloffset:=0bp;
+ label.lrt("+",A3);
+ )
+ ext(drawdblarrow (0.4w,0.5h)..(0.55w,0.5h);)
+endfont
+%***********************************************************************
+beginfont("EN:ext()")
fsize:=(70mm,30mm);
blength:=0.065;
sw_label_emu:=1;
%
MCat(0.1,0.5)(<-210,60`1,60`1,60`1,{1,3}=dl,1:/R1,4:/R2^-60)
- ext(
+ add(
defaultscale:=0.6;
label.bot("Diene",p0+(0.5w,0));
)
MCat(0.4,0.5)(<-30,-60`1,1=dl,1:/R3,2:/R4^60)
- ext(
+ add(
defaultscale:=0.6;
label.bot("Dienophile",p0+(0.5w,0));
)
MCat(0.9,0.5)(<30,?6,6=dl,2:/R2,3:/R4,4:/R3,5:/R1)
- EXT(
+ ext(
drawarrow (0.52w,0.5h)..(0.6w,0.5h);
defaultscale:=0.7;
label("+",(0.25w,0.5h));
@@ -997,22 +1015,6 @@ beginfont("EN:EXT()")
label.bot("Diels-Alder Reaction",(0.5w,h));
)
endfont
-%***********************************************************************
-beginfont("EN:ext()")
- fsize:=(50mm,20mm);
- msize:=(1,0.7); MCat(0,0.5)(<30,?6,3=dl,4:/CH3)
- ext(
- label.top("+",A7);
- drawarrow B3{dir(B3dir-90)}..
- {dir(B7dir+90)}0.4[B7s,B7e];
- )
- msize:=(1,0.7); MCat(1,0.5)(<30,?6,4://CH3)
- ext(
- labeloffset:=0bp;
- label.lrt("+",A3);
- )
- EXT(drawdblarrow (0.4w,0.5h)..(0.55w,0.5h);)
-endfont
sw_trimming:=1;
%***************************************************************************
beginfont("EN:Acetamiprid","MW:222.676")
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
index 9fd36cb57f6..33067cd995e 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
index d6d8bab65b7..d4de4fc7810 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format manual by Akira Yamaji 2019.03.03
+% Molecular Coding Format manual by Akira Yamaji 2019.05.11
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
%%%%\documentclass[a4paper,twoside]{article}
@@ -588,10 +588,10 @@ pk font,PNG,SVG,EPS or MDL MOL file.
defaultsize:=8bp;
MCat(0.25,0)(<30,Ph,{2,5}:N,3:/NH2,
2:red,5:blue,3=green)
- ext(label.lft("(draw)",p0+(0,0.9h));)
+ add(label.lft("(draw)",p0+(0,0.9h));)
atomfont:="cmr8"; % default:"draw"
MCat(1,0)(<30,Ph,{2,5}:N,3:/NH2)
- ext(label.lft("(cmr8)",p0+(0,0.9h));)
+ add(label.lft("(cmr8)",p0+(0,0.9h));)
\end{verbatim}
{\MCFformat=0 \MCFgraph}
%-----------------------------------------------------------------------------
@@ -1039,7 +1039,7 @@ MCat(1, .5)(<30,Ph,4:/COOH,3:/NH2)
for i=1 step -0.25 until 0:
for j=0 step 0.25 until 1:
MCat(j,i)(Ph,4:N)
- ext(
+ add(
drawarrow((A1 shifted (aw,0))
rotated A1dir..A1);
label(decimal(mangle),
@@ -1054,61 +1054,9 @@ MCat(1, .5)(<30,Ph,4:/COOH,3:/NH2)
\MCFgraph
%===============================================================================
\newpage
-\subsection{Function EXT()}
+\subsection{Function add()}
\begin{verbatim}
-(Add extra graphic to font)
-
- w: font width
- h: font height
- w0: font width-2xpart(fmargin)
- h0: font height-2ypart(fmargin)
- aw: atom font size
- em: label font size
- p0: fmargin
- n: molecular number
- p[m]: molecular origin position
- w[m]: molecular width
- h[m]: molecular height
- ratio_thickness_char:
- pen thickness / char width
-
-%----------------------------------------
-beginfont()
- fsize:=(70mm,30mm;)
- ratio_bond_width:=0.065;
- sw_solid:=1;
- %---------------------------------------
- MCat(0.1,0.5)
- (<-210,60`1,60`1,60`1,{1,3}=dl,
- 1:/R1,4:/R2^-60)
- ext(defaultscale:=0.6;
- label.bot("Diene",p0+(0.5w,0));)
- %---------------------------------------
- MCat(0.4,0.5)
- (<-30,-60`1,1=dl,1:/R3,2:/R4^60)
- ext(defaultscale:=0.6;
- label.bot("Dienophile",p0+(0.5w,0));)
- %---------------------------------------
- MCat(0.9,0.5)
- (<30,?6,6=dl,2:/R2,3:/R4,4:/R3,5:/R1)
- %---------------------------------------
- EXT(
- drawarrow (0.52w,0.5h)..(0.6w,0.5h);
- defaultscale:=0.7;
- label("+",(0.25w,0.5h));
- ratio_thickness_char:=0.125;
- label.bot("Diels-Alder Reaction",
- (0.5w,h));
- )
- %---------------------------------------
-endfont
-\end{verbatim}
-\MCFgraph
-%-----------------------------------------------------------------------------
-\newpage
-\subsection{Function ext()}
-\begin{verbatim}
-(Add extra graphic to molecule)
+(Add graphic to molecule)
w: molecular width
h: molecular height
@@ -1131,19 +1079,19 @@ beginfont()
%---------------------------------------
msize:=(1,0.7);
MCat(0,0.5)(<30,?6,3=dl,4:/CH3)
- ext(
+ add(
label.top("+",A7);
drawarrow B3{dir(B3dir-90)}..
{dir(B7dir+90)}0.4[B7s,B7e];
)
%---------------------------------------
MCat(1,0.5)(<30,?6,4://CH3)
- ext(
+ add(
labeloffset:=0bp;
label.lrt("+",A3);
)
%---------------------------------------
- EXT(
+ ext(
drawdblarrow (0.4w,0.5h)..(0.55w,0.5h);
)
%---------------------------------------
@@ -1163,6 +1111,58 @@ drawarrow & drawdblarrow:
\end{verbatim}
%-----------------------------------------------------------------------------
\newpage
+\subsection{Function ext()}
+\begin{verbatim}
+(Extra graphic to font)
+
+ w: font width
+ h: font height
+ w0: font width-2xpart(fmargin)
+ h0: font height-2ypart(fmargin)
+ aw: atom font size
+ em: label font size
+ p0: fmargin
+ n: molecular number
+ p[m]: molecular origin position
+ w[m]: molecular width
+ h[m]: molecular height
+ ratio_thickness_char:
+ pen thickness / char width
+
+%========================================
+ext(label(inf_EN,(.5w,0));) => all font
+%========================================
+beginfont()
+ fsize:=(70mm,30mm;); blength:=0.065;
+ %---------------------------------------
+ MCat(0.1,0.5)
+ (<-210,60`1,60`1,60`1,{1,3}=dl,
+ 1:/R1,4:/R2^-60)
+ add(defaultscale:=0.6;
+ label.bot("Diene",p0+(0.5w,0));)
+ %---------------------------------------
+ MCat(0.4,0.5)
+ (<-30,-60`1,1=dl,1:/R3,2:/R4^60)
+ add(defaultscale:=0.6;
+ label.bot("Dienophile",p0+(0.5w,0));)
+ %---------------------------------------
+ MCat(0.9,0.5)
+ (<30,?6,6=dl,2:/R2,3:/R4,4:/R3,5:/R1)
+ %---------------------------------------
+ ext(
+ drawarrow (0.52w,0.5h)..(0.6w,0.5h);
+ defaultscale:=0.7;
+ label("+",(0.25w,0.5h));
+ ratio_thickness_char:=0.125;
+ label.bot("Diels-Alder Reaction",
+ (0.5w,h));
+ )
+ %---------------------------------------
+endfont
+\end{verbatim}
+\MCFgraph
+%-----------------------------------------------------------------------------
+\newpage
\section{MCF example}
%-----------------------------------------------------------------------------
\subsection{Acetamiprid}
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
index 62d1377278c..d7345f5a1ef 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
index 9d40f3fbcac..bf4a8e9797e 100644
--- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
+++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2019.03.17
+% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2019.05.11
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% mcf2graph.mf it must be version 4.40 or later
+%%% mcf2graph.mf it must be version 4.41 or later
\documentclass{article}
%------------------------------------------------------------------------------
\usepackage{luamplib}%
@@ -12,8 +12,7 @@
\mplibnumbersystem{double}%
\everymplib{%
if unknown Ph1: input mcf2graph.mf; fi
- sw_aux_out:=1;
- sw_label_emu:=1;
+ sw_calc:=1;
sw_fframe:=4;
max_blength:=4.5mm;
defaultfont:="uhvr8r";
@@ -44,14 +43,14 @@
beginfont("NO:1","EN:Chlorophyll a","MW:893.49")
msize:=(.9,.9);
MCat(0,0.5)(<54,
- |<=1,?5,{2,5}=dl,4:N,3:\,54~dl,|,?5,{2,4}=dl,5:N,
- -2:\,54~dl,|,?5,2=dl,5:N,-2:\~dl,54,|,?5,5=dl,5:N,-2:\~dl,$5:#,
- -1:@,24,/*COO!^15,72,//O,$1:#,>|,
- 4:\`1.45,Mg,17:#,-1:@,11~vb:#,-1:@,23~vb:#,
+ |=1,?5,{2,5}=dl,4:N,3:\,54~dl,|,?5,{2,4}=dl,5:N,
+ -2:\,54~dl,|,?5,2=d,5:N,-2:\~dl,54,|,?5,5=d,5:N,-2:\~dl,$5:#,
+ -1:@,24,/*COO!^15,72,//O,$1:#,=|,||,
{2,9,15,20~zf}:/_,8:/!,14:\,!!,
- 21:@,-6~wf,!2,//O,!,O,!2,!!,|,!13,{1,5,9,13}:/_,
+ 4:\`1.45,Mg,17:#,-1:@,11~vb:#,-1:@,23~vb:#,
+ 21:@,-6~wf,!2,//O,!,O,!2,!!,|,!13,{1,5,9,13}:/_
)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,h-5mm));
@@ -62,15 +61,16 @@
\end{mplibcode}
\begin{minipage}[b]{85mm}
\begin{verbatim}
-|<=1,?5,{2,5}=dl,4:N,3:\,54~dl,
+|=1,?5,{2,5}=dl,4:N,3:\,54~dl,
|,?5,{2,4}=dl,5:N,
--2:\,54~dl,|,?5,2=dl,5:N,
--2:\~dl,54,|,?5,5=dl,5:N,-2:\~dl,$5:#,
--1:@,24,/*COO!^15,72,//O,$1:#,>|,
-4:\`1.45,Mg,17:#,-1:@,11~vb:#,-1:@,23~vb:#,
-{2,9,15,20~zf}:/_,8:/!,14:\,!!,
-21:@,-6~wf,!2,//O,!,O,!2,!!,
-|,!13,{1,5,9,13}:/_,
+-2:\,54~dl,|,?5,2=d,5:N,-2:\~dl,54,
+|,?5,5=d,5:N,-2:\~dl,$5:#,
+-1:@,24,/*COO!^15,72,//O,$1:#,=|,||,
+ {2,9,15,20~zf}:/_,8:/!,14:\,!!,
+ 4:\`1.45,Mg,17:#,-1:@,11~vb:#,
+ -1:@,23~vb:#,
+ 21:@,-6~wf,!2,//O,!,O,!2,!!,
+|,!13,{1,5,9,13}:/_
\end{verbatim}
\end{minipage}
@@ -85,7 +85,7 @@ beginfont("EN:beta-Carotene","MW:536.888")
4:\,|,!18,{1,3,5,7,9,11,13,15,17}=dr,{3,7,12,16}:/_,
|,?6,6=dl,{6,2^35,2^-35}:/_
)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,h-5mm));
@@ -114,7 +114,7 @@ endfont
{4~wf^60,8~zf^60,18^35,18^-35}:/_,{1^60,5^180,16^60}:/*H,
14:\*,|,?5,{1,4}=dl,3:O
)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,h-5mm));
@@ -143,7 +143,7 @@ beginfont("NO:4","EN:Gibberellin A3","MW:346.37");
<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:#,
2:/COOH,7://_,13:*/OH,8:/*OH,14:*/_,{1,4}:*/H^60)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,h-5mm));
@@ -171,7 +171,7 @@ beginfont("EN:Morphine","MW:285.343")
7:@,60~wf`0.75,70~si_`1.3,45,N,/_,9~wb:#,
15=d,6:/OH,8^180:*/H,12:/*OH
)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,h-5mm));
@@ -196,13 +196,13 @@ endfont
fsize:=(80mm,35mm);
beginfont("NO:5","EN:Erythromycin","MW:733.93");
MCat(0.8,0.5)(
- <30,|<=1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,>|,1:#,
+ <30,|=1,<-120,60,60,60,-60,60,60,-60,60,60,60,-60,60,60,=|,1:#,
14:O,13:/*Et,{1,9}://O,{2,10}:*/_,{4,6^-35,8,12^35}:/*_,
{6^35,11,12^-35}:*/OH,
$3:\*,O,30,|,?6`.7,2:O,{3,5^35}:/_,4:/OH,5^-35:/O!,
$5:\*^30`1.7,O,!,|,?6`.7,6:O,5:/_,2:/OH,3:/NMeMe
)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,h-5mm));
@@ -213,8 +213,8 @@ beginfont("NO:5","EN:Erythromycin","MW:733.93");
\end{mplibcode}
\begin{minipage}[b]{85mm}
\begin{verbatim}
-<30,|<=1,<-120,60,60,60,-60,60,
-60,-60,60,60,60,-60,60,60,>|,1:#,
+<30,|=1,<-120,60,60,60,-60,60,
+60,-60,60,60,60,-60,60,60,=|,1:#,
14:O,13:/*Et,{1,9}://O,{2,10}:*/_,
{4,6^-35,8,12^35}:/*_,
{6^35,11,12^-35}:*/OH,
@@ -230,12 +230,12 @@ $5:\*^30`1.7,O,!,|,?6`.7,6:O,
fsize:=(80mm,35mm);
beginfont("EN:Paclitaxel","MW:853.918")
MCat(0.8,0.5)(
- ?6,5=d,3:@,|<=1,36,45,45,45,45,>|,$5:#,-4=?6,-4=?4,||,-1=wb,-3=wf,-1:O,
+ ?6,5=d,3:@,|=1,36,45,45,45,45,=|,$5:#,-4=?6,-4=?4,||,-1=wb,-3=wf,-1:O,
{4^35,4^-35,6}:/_,{3^-60,15}:*/OH,8:/*H^-60,9:*/_^60,10://O,
$1:\,O,!,//O,!,*/OH,!,/Ph,60~wf,NH,-60,//O,60,Ph,
$7:\*,O,-45,//O,60,Ph,$11:*\,O,-60,//O,60,$12:\*^-15,O,60,//O,-60
)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,h-5mm));
@@ -246,7 +246,7 @@ endfont
\end{mplibcode}
\begin{minipage}[b]{85mm}
\begin{verbatim}
-?6,5=d,3:@,|<=1,36,45,45,45,45,>|,$5:#,
+?6,5=d,3:@,|=1,36,45,45,45,45,=|,$5:#,
-4=?6,-4=?4,||,-1=wb,-3=wf,-1:O,
{4^35,4^-35,6}:/_,{3^-60,15}:*/OH,
8:/*H^-60,9:*/_^60,10://O,
@@ -264,10 +264,10 @@ fsize:=(80mm,70mm);
beginfont("NO:6","EN:Vancomycin","MW:1449.25");
MCat(0.9,0)(
<30,
- |<=1,!12,{1,3,12}=zf,7=wf,/H^-60,60,*/OH,60,
+ |=1,!12,{1,3,12}=zf,7=wf,/H^-60,60,*/OH,60,
Ph,-4:/Cl,-3:\,O,!,Ph,-4:\,O,!,Ph,-1^15:/Cl,-3:\,/*OH,*/H^-60,$1:#,
$7:@,$26:#,$1:@,120,//O,60,NH,60,/*H,*/COOH^180,-60,
- Ph,{-2,-4}:/OH,-1:\,Ph,-5:/OH,-2:@,$4:#,>|,
+ Ph,{-2,-4}:/OH,-1:\,Ph,-5:/OH,-2:@,$4:#,=|,
{3^40,6,9,12}://O,{2,5,8,11}:NH,
{1^180,4^180}:*/H,{7^-60,10^60,14^60}:/*H,
$10:*\^-60,60,//O,!,NH2,
@@ -275,7 +275,7 @@ beginfont("NO:6","EN:Vancomycin","MW:1449.25");
$23:\,O,!,|,?6`.7,2:O,3^10:/!OH,{4,5}:/OH,
-1:\,O,!,|,?6`.7,6:O,{3^35,5}:/_,3^-35:/NH2,4:/OH
)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,h-5mm));
@@ -286,13 +286,13 @@ endfont;
\end{mplibcode}
\begin{minipage}[b]{85mm}
\begin{verbatim}
-<30,|<=1,!12,{1,3,12}=zf,7=wf,
+<30,|=1,!12,{1,3,12}=zf,7=wf,
/H^-60,60,*/OH,60,Ph,-4:/Cl,
-3:\,O,!,Ph,-4:\,O,!,Ph,-1^15:/Cl,
-3:\,/*OH,*/H^-60,$1:#,
$7:@,$26:#,$1:@,120,//O,60,NH,60,
/*H,*/COOH^180,-60,
-Ph,{-2,-4}:/OH,-1:\,Ph,-5:/OH,-2:@,$4:#,>|,
+Ph,{-2,-4}:/OH,-1:\,Ph,-5:/OH,-2:@,$4:#,=|,
{3^40,6,9,12}://O,{2,5,8,11}:NH,
{1^180,4^180}:*/H,
{7^-60,10^60,14^60}:/*H,
@@ -326,7 +326,7 @@ $23:\,O,!,|,?6`.7,2:O,3^10:/!OH,{4,5}:/OH,
$36:@,-45~zf,O,30,SOO,30,"O{Na}",
$150:\,|,!7,{1,2}:/*OH,4:*/_,5:/*_,7=dl
)
- EXT(
+ ext(
label.lrt("("&inf_EN&")",(0,.8h));
defaultscale:=0.8;
label.lrt("FM(C): "&cal_FM,(0,.8h-5mm));
@@ -371,7 +371,7 @@ MCat(0, 0.05)(<30,O[-1],!0,//O,!3,//O,!,O[-1])
MCat(0, 0.55)(<30,O[-1],!0,//O,!,!~dr,!,//O,!,O[-1])
MCat(0, 1)(<30,O[-1],!0,//O,!3,//O,!,O[-1],3:/OH)
%-------------------------------------------------------------------------
-EXT(
+ext(
defaultfont:="uhvr8r";
defaultscale:=0.75;
ext_setup;
@@ -429,7 +429,7 @@ MCat(0.33,0.05)(<30,O[-1],!0,//O,!3,//O,!,"{S-CoA}")
MCat(0, 0.05)(<30,O[-1],!0,//O,!3,//O,!,O[-1])
MCat(0, 0.55)(<30,O[-1],!0,//O,!,!~dr,!,//O,!,O[-1])
MCat(0, 1)(<30,O[-1],!0,//O,!3,//O,!,O[-1],3:/OH)
-EXT(
+ext(
defaultfont:="uhvr8r";
defaultscale:=0.75;
ext_setup;
diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
index 75deb69c4d4..12652c004bf 100644
--- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
+++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.40 Copyright (c) 2013-2019 Akira Yamaji
+% mcf2graph ver 4.41 Copyright (c) 2013-2019 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,
@@ -18,10 +18,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% mcf2graph is METAFONT/METAPOST macro package convert
% Molecular Coding Format(MCF) to font(pk)/eps/sgv/png/mdl molfile
-%----------------------------------------------------------------------------------------------
+%--------------------------------------------------------------------------------------------------
% This package is located at : http://www.ctan.org/pkg/mcf2graph
% Suggestion or request mail to : mcf2graph@gmail.com
-%----------------------------------------------------------------------------------------------
+%--------------------------------------------------------------------------------------------------
% Set output no image file : mpost -s bboxmargin=0 FILENAME
% Set output first font only : mpost -s bboxmargin=1 FILENAME
% Set outputformat to "eps"(.mps) : mpost -s ahangle=0 FILENAME
@@ -36,7 +36,7 @@
% Set to use plain.mp (label,arrow,atom) : mpost -s labeloffset=2 FILENAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tracingstats:=1;
-message " This is mcf2graph ver 4.40 2019.03";
+message " This is mcf2graph ver 4.41 2019.05";
%-------------------------------------------------------------------------------------------------
newinternal char_num,str_cnt,sub_usr,sub_int,tbl_cnt,sharp_char;
numeric save_num[],comD[][],parD[][],cntD[],tbl_atom[],tbl_subst[][],
@@ -47,7 +47,7 @@ pair save_pair[],msize,mposition,fsize,fmargin,save_mposition;
picture mol_stru[];
path arrow_path,arrow_head;
%-------------------------------------------------------------------------------------------------
-char_num:=str_cnt:=proc_end:=mangle:=sw_label_emu:=0;
+char_num:=str_cnt:=proc_end:=mangle:=sw_label_emu:=sw_calc:=sw_extall:=0;
sw_numberA:=sw_numberB:=sw_mframe:=sw_aux_out:=sw_expand:=sw_fframe:=sw_trimming:=0;
sw_aframe:=sw_rep_out:=sw_mol_out:=sw_subst_off:=sw_single:=sw_auxfix:=sw_arrow:=0;
numberA_start:=numberB_start:=1; numberA_end:=numberB_end:=4095; aux_max:=max_inf_num:=20;
@@ -98,6 +98,7 @@ if (known green)and(known ahlength):
def printf expr s= write s to out_file_name enddef;
def # = enddef;
def Cp(expr s) = if known s: if s<>0: withcolor color_list[s] fi fi enddef;
+ def ext(text TXT)= sw_extall:=sw_calc:=1; def EXTALL = TXT enddef; enddef;
if atomfont="": atomfont:="draw"; fi % default atom font
if defaultfont="": defaultfont:="draw"; fi % default label font
%-----------------------------------------------------------------------------------------
@@ -106,6 +107,7 @@ else: f_MP:=0;
dotlabeldiam:=3bp;
def Cp(expr s) = enddef;
def color = transform enddef;
+ def ext(text TXT)= enddef;
sw_arrow:=0;
atomfont:="draw";
defaultfont:="draw";
@@ -125,7 +127,7 @@ ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15; ratio_zebragap_bond:=0.
ratio_zebra_black:=0.4; ratio_wedge_bond:=0.12; ratio_atomgap_atom:=0.050;
offset_thickness:=0.2bp; offset_bond_gap:=0.3bp; offset_zebra_gap:=0.1bp;
offset_atom:=0.8pt; offset_wedge:=0.4bp;
-thickness_fframe:=0.2bp; thickness_mframe:=0.2bp; thickness_aframe:=0.1bp;
+thickness_fframe:=0.2bp; thickness_mframe:=0.2bp; thickness_aframe:=0.1bp;
max_blength:=10mm; blength:=0; mangle:=0;
%--------------------------------------------------------------------------------------------------
fsize:=(30mm,20mm); fmargin:=(0.4mm,0.4mm); msize:=(1,1); mposition:=(0.5,0.5);
@@ -151,7 +153,7 @@ def_com(-4000)(_term,_jp_atom,_jp_atom_abs,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_li
def_com(1)(si,dl,dr,db,dm,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,si_,wf_,wb_,bd_);
%--------------------------------------------------------------------------------------------------
def parameter_list=
- sw_rep_out,sw_numberA,sw_numberB,sw_mframe,sw_aux_out,sw_expand,sw_mol_out,
+ sw_rep_out,sw_numberA,sw_numberB,sw_mframe,sw_aux_out,sw_expand,sw_mol_out,sw_calc,sw_extall,
sw_aframe,sw_fframe,sw_subst_off,sw_single,sw_trimming,sw_arrow,sw_label_emu,
ratio_atom_bond,ratio_thickness_bond,ratio_char_bond,
ratio_chain_ring,ratio_bondgap_bond,ratio_zebra_black,ratio_zebragap_bond,ratio_thickness_char,
@@ -202,24 +204,41 @@ enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def beginfont(text s)=
begingroup
- save cntA,cntB,cntM,minX,minY,f_beginchar,numS,sftX,sftY,f_ext,blen,
+ 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,
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[],dx_A[];
pair posA[],posM[][];
- string info[],cal_FM,cal_MW,cal_MW_str,cal_MI,cal_MI_str,
+ string info[],sumA,s_tag,s_var,cal_FM,cal_MW,cal_MW_str,cal_MI,cal_MI_str,
inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_MW;
%------------------------------------------------------------------------------------------------
+ def ext=ext_font enddef;
+ def add=add_mol 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:="";
+ %------------------------------------------------------------------------------------------------
char_num:=char_num+1;
store_par(parameter_list);
for i:=1 upto max_inf_num: info[i]:=":"; endfor
f_ext:=inf_num:=cntM:=0;
for list=s: inf_num:=inf_num+1; info[inf_num]:=list; endfor
+ %------------------------------------------------------------------------------------------------
+ for j=1 upto inf_num:
+ nA:=0; for i=0 upto length(info[j]): if pic_c(i,info[j])=":": nA:=i; fi exitif nA>0; endfor
+ if nA>0:
+ s_tag:=substring (0,nA) of info[j];
+ s_var:=substring (nA+1,length(info[j])) of info[j];
+ if known scantokens("inf_"&s_tag): scantokens("inf_"&s_tag):=s_var; fi
+ fi
+ endfor
+ %------------------------------------------------------------------------------------------------
mol_stru[0]:=nullpicture;
enddef;
%==================================================================================================
def endfont=
+ if (f_MP=1)and(sw_extall=1): ext_font(EXTALL); fi
if sw_trimming>=1:
nA:=nC:=4095; nB:=nD:=-4095;
for i=1 upto cntM:
@@ -240,12 +259,12 @@ def endfont=
if f_MP=0: beginchar(char_num,font_wd/bp*bp#,font_ht/bp*bp#,0)
else: beginfig(char_num) w:=charwd:=font_wd; h:=charht:=font_ht; chardp:=0;
fi
- if (sw_fframe=1)or(sw_fframe=3): EXT(draw_frame((0,0),w,h,thickness_fframe);) fi
- if (sw_fframe=2)or(sw_fframe=3): EXT(draw_frame(p0,w0,h0,thickness_fframe);) fi
- if sw_fframe=4: EXT(drawdot(0,0); drawdot(w,0); drawdot(w,h); drawdot(0,h);) fi
+ if (sw_fframe=1)or(sw_fframe=3): ext(draw_frame((0,0),w,h,thickness_fframe);) fi
+ if (sw_fframe=2)or(sw_fframe=3): ext(draw_frame(p0,w0,h0,thickness_fframe);) fi
+ if sw_fframe=4: ext(drawdot(0,0); drawdot(w,0); drawdot(w,h); drawdot(0,h);) fi
for i=1 upto cntM:
addto currentpicture also mol_stru[i] shifted posM[0][i]; mol_stru[i]:=nullpicture;
- if sw_mframe=1: EXT(draw_frame(p[i],w[i],h[i],thickness_mframe)) fi
+ if sw_mframe=1: ext(draw_frame(p[i],w[i],h[i],thickness_mframe)) fi
endfor
if f_ext=1: addto currentpicture also mol_stru[0]; mol_stru[0]:=nullpicture; fi
endchar;
@@ -257,7 +276,7 @@ enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def set_def_MC=
save /,//,/*,*/,**,*/*,~,~~,^,^^,`,'`,<,>,>>,:>,&,:,=,\,\\,*\,\*,*\*,@,$,{,},#,
- |,||,|<,>|,|<=,|:,:|,_,d,w,z,inside_def_MC;
+ |,||,|<,>|,|<=,|=,=|,|:,:|,_,d,w,z,inside_def_MC;
inside_def_MC:=1;
_:=Me; d:=db; w:=wf; z:=zf;
tertiarydef a=b == change_bond(a,b) enddef;
@@ -275,7 +294,9 @@ def set_def_MC=
def \\ == \~dm enddef; def *\ == \~wf enddef; def \* == \~zf enddef; def *\* == \~wv enddef;
def |: == (_push,0) enddef; def :| == (_pop,0) enddef;
def |< == (_push,1) enddef; def >| == (_pop,1) enddef;
- def |<=primary n == ``n,(_push,1) enddef;
+ def |<=primary n == ``n,(_push,0) enddef;
+ def |=primary n == (_push,0),``n enddef;
+ def =| == (_pop,0) enddef;
def | == (_push,2) enddef; def || == (_pop,2) enddef;
def /secondary n == (_postA,n) enddef; def //secondary n == (_postB,n) enddef;
def */secondary n == (_postC,n) enddef; def /*secondary n == (_postD,n) enddef;
@@ -333,13 +354,13 @@ vardef '''(text TXT)=
sub_int %------- Retern value -------
enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-def FR(expr a,b) =
+def fuse_ring(expr a,b) =
PA(_jp_bond,a) PA(_rot_ang,180) PA(_get_len,a) PA(_push,0)
PA(_chg_len,_ring_len) for i==1 upto b-2:: PA(_mk_bond,360 DIV b) endfor PA(_pop,0)
if a>=1:: PA(_cyc_eB,0) elseif a>=-999:: PA(_cyc_eB,a-b+2) else:: PA(_cyc_eB,a) fi
enddef;
%-------------------------------------------------------------------------------------------------
-def FFR(expr a,b,c) =
+def fuse_ring_bonds(expr a,b,c) =
PA(_jp_bond,xpart(a)) PA(_rot_ang,180) PA(_push,0)
if b==6:: PA(_chg_len,0) for i==1 upto c-1:: PA(_mk_bond,60) endfor
elseif b==5:: if c==2:: PA(_chg_len,1.25) PA(_mk_bond,80)
@@ -348,7 +369,7 @@ def FFR(expr a,b,c) =
PA(_pop,0) if ypart(a)<=0:: PA(_cyc_eB,ypart(a)-c+1) else:: PA(_cyc_eB,ypart(a)) fi
enddef;
%-------------------------------------------------------------------------------------------------
-def FRR(expr a,b,c) =
+def fuse_ring_rate(expr a,b,c) =
PA(_jp_bond,a) PA(_rot_ang,180) PA(_push,0) PA(_chg_len,c DIV 10)
if b==5:: PA(_mk_bond,72-((c-9) MUL 1.5)) PA(_mk_bond,72+(c-9)) PA(_mk_bond,72+(c-9))
elseif b==6:: PA(_mk_bond,60-(c-8)) for i==1 upto 3:: PA(_mk_bond,60+((c-8) DIV 2)) endfor
@@ -365,16 +386,16 @@ vardef change_bond(expr a,b) =
if known b:: if numeric b::
if (b>=si)and(b<=bd_):: if b==dl:: PP(a,_dl) else:: PX(a)(_set_line,b) fi
elseif (b>=?3)and(b<=?20)::
- if a>=sub_int_start:: for i==1 upto cntD[a]:: FR(parD[a][i],b-?3+3) endfor
- else:: FR(a,b-?3+3)
+ if a>=sub_int_start:: for i==1 upto cntD[a]:: fuse_ring(parD[a][i],b-?3+3) endfor
+ else:: fuse_ring(a,b-?3+3)
fi
- elseif b==Ph1:: FR(a,6) PA(_dl,-2) PA(_dl,-4)
- elseif b==Ph2:: FR(a,6) PA(_dl,-1) PA(_dl,-3) PA(_dl,-5)
+ elseif b==Ph1:: fuse_ring(a,6) PA(_dl,-2) PA(_dl,-4)
+ elseif b==Ph2:: fuse_ring(a,6) PA(_dl,-1) PA(_dl,-3) PA(_dl,-5)
elseif b==_jump_at:: PA(_jp_bond,a)
elseif b==_connect_at:: PA(_cyc_sB,a)
elseif comD[b][1]==_fuse::
- if comD[b][2]<=6:: FFR(a,parD[b][1],comD[b][2])
- elseif (comD[b][2]>=11)and(comD[b][2]<=15):: FRR(a,parD[b][1],comD[b][2])
+ 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_rate(a,parD[b][1],comD[b][2])
fi
fi
elseif color b:: color_list[incr cntC]:=b; PX(a)(_set_colorB,cntC)
@@ -443,10 +464,12 @@ def ext_setup=
labeloffset:=3bp;
save em;
em=defaultscale*defaultsize;
- if (defaultfont="draw")or(f_MP=0)or(sw_label_emu=1):
+ if (f_MP=0)or(sw_label_emu=1):
save label,dotlabel;
- def label = label_emu enddef;
+ def label = label_emu enddef;
def dotlabel = dotlabel_emu enddef;
+ else:
+ defaultfont:="uhvr8r";
fi
if (sw_arrow=0)or(f_MP=0):
save drawarrow,drawdblarrow;
@@ -455,24 +478,7 @@ def ext_setup=
fi
enddef;
%--------------------------------------------------------------------------------------------------
-def EXT(text TXT)=
- begingroup
- save w,h,wd,ht,n,p,am,aw;
- pair p[];
- ext_setup;
- w:=xpart(fsize);
- h:=ypart(fsize);
- w0:=w-2margin_lr;
- h0:=h-2margin_tb;
- p0:=(margin_lr,margin_tb);
- aw:=atom_wd;
- n:=cntM;
- for i=1 upto n: p[i]:=posM[1][i]; w[i]:=wdM[i]; h[i]:=htM[i]; endfor
- TXT addto mol_stru[0] also currentpicture; clearit; f_ext:=1;
- endgroup;
-enddef;
-%--------------------------------------------------------------------------------------------------
-def ext(text TXT)=
+def add_mol(text TXT)=
begingroup
save w,h,n,l,p,am,aw,A,B;
numeric A[]dir,B[]dir;
@@ -489,6 +495,23 @@ def ext(text TXT)=
endgroup;
enddef;
%--------------------------------------------------------------------------------------------------
+def ext_font(text TXT)=
+ begingroup
+ save w,h,wd,ht,n,p,am,aw;
+ pair p[];
+ ext_setup;
+ w:=xpart(fsize);
+ h:=ypart(fsize);
+ w0:=w-2margin_lr;
+ h0:=h-2margin_tb;
+ p0:=(margin_lr,margin_tb);
+ aw:=atom_wd;
+ n:=cntM;
+ for i=1 upto n: p[i]:=posM[1][i]; w[i]:=wdM[i]; h[i]:=htM[i]; endfor
+ TXT addto mol_stru[0] also currentpicture; clearit; f_ext:=1;
+ endgroup;
+enddef;
+%--------------------------------------------------------------------------------------------------
vardef label_emu@#(expr STR,POS) = %% modified 'thelabel@#(expr s,z)' of plain.mp
save oft,fx,fy,wds,sC,bA;
pair oft,oft.lft,oft.rt,oft.top,oft.bot,oft.ulft,oft.llft,oft.urt,oft.lrt;
@@ -706,7 +729,7 @@ def MC(text TXT)=
mol_stru[cntM]:=currentpicture;
clearit;
endgroup;
- if ((sw_aux_out=1)or(sw_rep_out=1)or(sw_mol_out>=1))and(f_MP=1): proc_calc_out; fi
+ if ((sw_aux_out=1)or(sw_rep_out=1)or(sw_mol_out>=1)or(sw_calc=1))and(f_MP=1): proc_calc; fi
%-----------------------------------------------------------------------------------------------
%%%% message "count of usr ="& decimal(sub_usr) &" "& decimal(sub_usr-sub_usr_start);
%%%% message "count of int ="& decimal(sub_int) &" "& decimal(sub_int-sub_int_start);
@@ -1164,7 +1187,7 @@ OCOMe:=OCO!:='(O,!,//O,!); NMeMe:=NMe!:='(N!,!); NHCOMe:=NHCO!:='(NH,!,//O,!);
NHiPr:=NHMe!:='(NH,!,iPr); NHtBu:='(NH,!,tBu); NHMe:=NH!:='(NH,!); NHEt:=NH!2:='(NH,!x2);
!NH!:='(!,NH,!); !CO!:='(!,//O,!); !OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2); !OMe:=!O!:='(!,OMe);
!COOH:='(!,COOH); !CH3:='(!,CH3); !CN:='(!,CN); !iPr:=!Me!:='(!,iPr); !tBu:='(!,tBu); !Ph:='(!,Ph);
-!CHO:='(!,CHO); !NO2:='(!,NO2);
+!CHO:='(!,CHO); !NO2:='(!,NO2); !Cl:='(!,Cl); !F:='(!,F);
!?3:='(!,?3); !?4:='(!,?4); !?5:='(!,?5); !?6:='(!,?6); CF2:='(/F,60,F); CCl2:='(/Cl,60,Cl);
CBr2:='(/Br,60,Br); CF3:='(/F,/F^60,60,F); CCl3:='(/Cl,/Cl^60,60,Cl); CBr3:='(/Br,/Br^60,60,Br);
%==================================================================================================
@@ -1383,22 +1406,13 @@ STb("SH")("S","H"); STb("CHO")("C","H","O"); STb("N{O_2_}")("N","O","O");
STb("N{H_2_}")("N","H","H"); STb("S{O_3_}")("S","O","O","O"); STb("COOH")("C","O","O","H");
STb("C{H_3_}")("C","H","H","H"); STb("C{F_3_}")("C","F","F","F");
%==================================================================================================
-def proc_calc_out=
+def proc_calc=
begingroup
save warning_cnt,MWp,knownA,bondC,tmp_wtp,bond_cnt,cnt_hide_H;
numeric sumA[],bondC[],hideH[];
- string sumA,s_tag,s_var;
- 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:=""; cnt_hide_H:=warning_cnt:=MW_num:=MI_num:=MWp:=0;
+ string sumA;
+ cnt_hide_H:=warning_cnt:=num_MW:=num_MI:=MWp:=0;
%------------------------------------------------------------------------------------------
- for j=1 upto inf_num:
- nA:=0; for i=0 upto length(info[j]): if pic_c(i,info[j])=":": nA:=i; fi exitif nA>0; endfor
- if nA>0:
- s_tag:=substring (0,nA) of info[j];
- s_var:=substring (nA+1,length(info[j])) of info[j];
- if known scantokens("inf_"&s_tag): scantokens("inf_"&s_tag):=s_var; fi
- fi
- endfor
for i=1 upto tbl_cnt: sumA[i]:=0; endfor
for i=1 upto cntA:
knownA:=bond_cnt:=0;
@@ -1442,14 +1456,14 @@ def proc_calc_out=
nA:=tbl_atom_wt[i]/100*sumA[i];
MWp:=MWp+nA;
if (MWp<40)and(nA<40):
- MW_num:= MW_num+tbl_atom_wt[i]*sumA[i];
- MI_num:= MI_num+tbl_atom_mi[i]*sumA[i];
+ num_MW:= num_MW+tbl_atom_wt[i]*sumA[i];
+ num_MI:= num_MI+tbl_atom_mi[i]*sumA[i];
fi
cal_FM:=cal_FM&stripP(tbl_atom_str[i]) if sumA[i]>=2: &decimal(sumA[i]) fi;
fi
endfor
- cal_MI:=substring (0,10) of decimal(MI_num);
- cal_MW:=substring (0,8) of decimal(MW_num);
+ cal_MI:=substring (0,10) of decimal(num_MI);
+ cal_MW:=substring (0,8) of decimal(num_MW);
if sw_aux_out=1: proc_auxfile_out; fi
if sw_rep_out=1: proc_report_out; fi
if sw_mol_out>=1: proc_mol_out; fi
@@ -1529,7 +1543,7 @@ def proc_report_out=
fixed_r(12)(cal_MW_str)&"["&fixed_r(12)(cal_MI_str)&"]";
printf "------------------------------------------------------------------";
printf " Weight Calc: " &cal_MW_str &" / Input: "
- if inf_MW<>"": &inf_MW &" / weight gap= " &decimal(MW_num-scantokens(inf_MW)) fi;
+ if inf_MW<>"": &inf_MW &" / weight gap= " &decimal(num_MW-scantokens(inf_MW)) fi;
printf " Fomula Calc: "&cal_FM&" / Input: "
if inf_FM<>"": &inf_FM&" / "& iif(inf_FM=cal_FM,"MACTCH","NOT MACTCH") fi;
printf "==================================================================";