diff options
author | Karl Berry <karl@freefriends.org> | 2020-01-26 22:19:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-01-26 22:19:38 +0000 |
commit | 9fc6341d273edf6d5788c3a0a404a0fed4bdc058 (patch) | |
tree | bec6c80d04ba62be6ec1c65cc6c411496f04f4e3 | |
parent | bfd3a742581519a88ea734f6981249de3acbc69f (diff) |
mcf2graph (26jan20)
git-svn-id: svn://tug.org/texlive/trunk@53550 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/README | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf | 23 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf | bin | 282839 -> 265490 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps | 423 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf | bin | 594238 -> 579921 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex | 5 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf | bin | 172055 -> 139840 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex | 4 | ||||
-rw-r--r-- | Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf | 333 |
11 files changed, 190 insertions, 612 deletions
diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG index 0f6ac19e3d6..8b1de56bb8e 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG +++ b/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG @@ -1,6 +1,10 @@ ******************************************************************************* - Changelog of mcf2graph software package by Akira Yamaji 2019-12-15 + Changelog of mcf2graph software package by Akira Yamaji 2020-01-26 ******************************************************************************* +[ver. 4.48 / 2020-01-26] + -add command a@#b : a:@,b:# + -update MCF manual + [ver. 4.47 / 2019-12-15] -fix bug in fused ring -change option parameter name diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/README b/Master/texmf-dist/doc/metapost/mcf2graph/README index 5f7bef71224..ad8fb31e05f 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.47 2019-12-15 + version : 4.48 2020-01-26 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 c3ff7cce03c..6cf6e32e8b5 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf @@ -1,16 +1,16 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2019.12.15 +% Molecular Coding Format for mcf_example.tex by Akira Yamaji 2020.01.26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %%% it must be version 4.47 or later +input mcf2graph.mf; %%% it must be version 4.48 or later %------------------------------------------------------------------------- fsize:=(33mm,24mm); max_blength:=4.5mm; %------------------------------------------------------------------------- -%%%%sw_aux_out:=1; % or 2 +%%%%sw_aux_out:=1; %%%%sw_fframe:=1; %%%%sw_aframe:=1; %%%%sw_mframe:=1; -%%%% sw_expand:=1; +%%%%sw_expand:=1; var3:="cal_FM"; tag3:="cFM"; var4:="cal_MW"; tag4:="cMW"; %%%% outputtemplate:="%3c-%j.png"; @@ -33,7 +33,7 @@ var4:="cal_MW"; tag4:="cMW"; %%%% for i=nA step nA until w: draw(i,0)--(i,h); endfor %%%% for i=nA step nA until h: draw(0,i)--(w,i); endfor ); %*************************************************************************** -beginfont("EN:Acetamiprid","MW:222.676","FM:C10H11ClN4") +beginfont("EN:Acetamiprid","MW:222.676") MC(<30,Ph,2:N,1:/Cl,4:\,!,N,/_,!,/_,!!,N,!,CN) endfont %*************************************************************************** @@ -203,7 +203,7 @@ beginfont("EN:Ampicillin","MW:349.405") endfont %*************************************************************************** beginfont("EN:Validamycin","MW:497.494") - MC(<30,?6,{5,6}:/OH,3:\,-60,OH, + MC(<30,?6,{5,6}:/OH,3:/!OH>vt, $4:\,O,-60,|,?6,2:O,{3,4,5}:/OH,6:/!OH, $1:\,NH,!,|,?6,2=dl,{4,5,6}:/OH,3:/!OH) endfont @@ -398,14 +398,3 @@ beginfont("EN:Atoropin","MW:289.375") endfont %*************************************************************************** bye -***** -bye -********************************* -beginfont("EN:Atoropin","MW:289.375") - MC(<-30,O,!,//O,!,!,Ph, - $1:\~zb^-120,|,?7`1.1,6:*\^190`1.25,N,/_,3~wb:#,$3:/!OH~wv) -endfont -%*************************************************************************** -bye -***** -bye diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf Binary files differindex 495e5707ec5..51804c4cdc2 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf 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 ff262231486..0820fc253f6 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,14 @@ %%BoundingBox: -1 -1 213 57 %%HiResBoundingBox: -0.1 -0.1 212.69804 56.79282 %%Creator: MetaPost 2.00 -%%CreationDate: 2019.06.19:0623 +%%CreationDate: 2020.01.25:0956 %%Pages: 1 %%DocumentResources: procset mpost-minimal -%%+ font JIZCCV-NimbusSanL-Regu IXTKJB-CMR8 +%%+ font uhvr8r cmr8 %%DocumentSuppliedResources: procset mpost-minimal -%%+ font JIZCCV-NimbusSanL-Regu IXTKJB-CMR8 +%%DocumentNeededResources: font uhvr8r cmr8 +%%IncludeResource: font uhvr8r +%%IncludeResource: font cmr8 %%EndComments %%BeginProlog %%BeginResource: procset mpost-minimal @@ -18,421 +20,10 @@ /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 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/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 /JXDTPR-NimbusSanL-Regu def -/FontBBox [-174 -285 1001 953 ]readonly def -/UniqueID 5020902 def -/PaintType 0 def -/FontInfo 9 dict dup begin -/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 false def -/UnderlinePosition -151 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 40 /parenleft put -dup 41 /parenright put -dup 56 /eight put -dup 97 /a put -dup 99 /c put -dup 100 /d put -dup 109 /m put -dup 114 /r put -dup 119 /w put -readonly def -currentdict end -currentfile eexec -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 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndResource -%%BeginResource: font IXTKJB-CMR8 -%!PS-AdobeFont-1.0: CMR8 003.002 -%%Title: CMR8 -%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 CMR8. -% 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. -%%EndComments -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 -/FontType 1 def -/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def -/FontName /GMTUEE-CMR8 def -/FontBBox {-36 -250 1070 750 }readonly def -/UniqueID 5000791 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 CMR8.) readonly def -/FullName (CMR8) readonly def -/FamilyName (Computer Modern) readonly def -/Weight (Medium) readonly def -/ItalicAngle 0 def -/isFixedPitch false def -/UnderlinePosition -100 def -/UnderlineThickness 50 def -end readonly def -/Encoding 256 array -0 1 255 {1 index exch /.notdef put} for -dup 50 /two put -dup 72 /H put -dup 78 /N put -readonly def -currentdict end -currentfile eexec -D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA -0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 -51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 -7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 -E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 -0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 -C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9928A7C95D3A6E9B -8E92F84CA0AA44461D2F4FA0F8B81C6F5B7BE98C9712BE166610465CF689DFAF -27C875C029C0116DE61C21DA0092D029E7DBEDFDDEE3D67E6936623AB53FA2AF -18BEDDD7AC19A19CADB6ED6CA7A26E6044BE414FFF59C0B98D5819A6B881F9AB -7AD0D03BDD5CD309C67811D5CF0B93F6FDC9AE64F74ED4E81F2E18D880BD842A -DAFD0BDF06300201C6946087FC0B999447BC370200BFB8CA420B668B32EBC242 -6DB1546A7164CF55B332FE9D239B65F532B69EF9F4F93828A44C8F5C526126F8 -B7A369114CA68D4F98638121F4E17F351723D9F1A902FCF087F94AFD23876517 -2D15B482AF2D68C3F31FFA864E031596E597882578AC7FB0DAE2A713B065B374 -3E2E72519ED6D50CBCA40A7275A7109A4F3ED8A4566AD8832890D3D1F4899850 -9B757442B7EA355175CD5D6D8B4152ED2D7EEB4CE30F174FF672140354046A45 -7098EC45B9DF3DF5CF7B417E201DA88308CEF4CED8E8903AF24FB8DD0187352D -25738519ECBC70304F8F620CC45D2586619205DA3955696FAFFE2082402B3502 -CB682F410DE5FFE80A4DA3D3BCF02E35BD577D0DE55E7B8A33B7A2FD5136B5DD -A0BCB61F8E7F4363C21F890CF287304DDB8FCE7FE207C0D160B81E7EA662BED2 -DFF8C444E19C91E72254257CD87240A70F1A964FA54ED9ECF27E27A57DACC3DE -EABB92C085030870C6CF5C40B6E47F5C0AEB30E84A73ECDABB2D754EF6EA28BB -16EBD6636BC288E62F4A38BFB55F5F4DD20FDD77D767F6CB52F9513E8EB75413 -07F1877B2C01278675177499E4E8EB09F2657821613F5C7643FC064293EC6E9E -B519FFAEEA36B19C9D1302CF91FCBF87FCB57C5F995CB6712BB3D8681EB6F05B -B2A4195A3C73CB4ABCCFB958EAC533BD89560D2790CDE1444C0F2E4EF27A529C -F01052964E56F6D76A190E5FF45934BB711A3406284AF130D4DC0D8112BB3752 -762CA0200CA262359D4F54C0CCFA9A50DE18C7DB14419E2990ADDC4A54B94978 -D9174CA39434022FA77FB30179EF805E2189C35919F5EBE215EE2A00B4407826 -CE56329C5586D8B414770BA5D45513C3AF1931D632FCE69B4CA504944E03362C -74A1177C6398A61A12DAA0F156543E2A8E9969C4308B7ACC21A5ECAC8F172541 -1B1316A88C0C163E574FFD3CD22FF08488662FCF2F9344BC25D02146F36CA6F9 -E2D0130C654B7485EEA9A110A33AA0C769121F81821E9A2BD062FAC158359D44 -3F9D9947200EF1EDDD5860F10438B162A69683957300C75AF7546C70C97AB2EE -37EAAF0089E2623F787F252569B06C665FDB45EC9681C0774ACFBA76B98C4E89 -7EB12AA5F8798FFC110B49C25E3A483ABE83B0BCC6DF0578403ADC369E013762 -C9D08FC94D949BAE636ACA9F36F4E3F02296775A062077B011A705B6F1784D36 -A926622CB3847533D7ACB24A4EBABB14593B5D8E1DAE2BFEF8A51835C8D4E76D -7543C126A4271C59A5881A5AF89331694F84489CA66725995DC3070F306EA447 -CF30F63CD476A46D528EC1FFBFB8EACFA2BEEDCF54C92CE2BD26DEA5827186BD -3A4D1709415CEE7D51D671357B4A5D11E835F63521B9824EE5282E58F05A8ACC -FD249461181A38C2F47BAC4E79BE368D64F886AA493C61CBCB2ED401C8AFBA61 -59CA6F6216D941A92AC52ACB3D7ECC28D6A58EF4CC70BA6DE23E80937AB38E89 -6F05FDD15B954C0826636267EDAF9F2BB466BF79D2E10EED9B04297E6BC93069 -79581ADD1A9D9FAE9306F46AC95B98C60A2E53D60CF1AA4069BE301E17E25070 -F98DD67BD8642B1D07571A32766072E48BF27E1576FFEED300D7313A358A823B -49C8F135961B7E259095C9BB67F996CE0B90E95344F203922F47E11753F70D38 -2ECB615403490310CEE6C03AFA97DA2F47ED47125D110FA69725BA0018F6A40B -29A307FDB3E52322A77A0102E6F57654CF1E96A134D13860D83AFA0A41112D3F -2247A09ACF7D06713BE443FA27C7E7220E875965D53030FE7D2D62EFD2F1DB87 -5FB091FEAF599BA8C5167525899E578AB341BFE2BC4E53A047093168AE189237 -EA55F055514EFA939DAE9E859CB5FBCF37D99484F44FE5AA5FA386B28BB642F5 -5DBAF059A50FE96C7C6D834531D64F1F2E99AB2E96EE74D149178B1C0618495E -293973D9A03E1790654B67C0882376ABEC17D74785B3737D81644F28B3BC6FFF -F92FE29126995A07E0BC5EF3A4B93789A103C428943E045B8D1A5063AE71E806 -568D48072E53DEA85253B01DF0BB7367A6BE4DD7BE514AD74E3F77C825ABA405 -64DAFA25EAFF8F63344B5F6B523629776CEB090B546469F6A6008DE43072DD3C -DEF51F62731037D1FBD0C038A1E9B669849EB3BEBA281624F13D20B61917A109 -A0A7871A73F7BAA18077360B38A4625C5DB9AB9E43BDEEB856FD0E2D3AA2E075 -267B978B9EB47F2369302E87DBD5D5B422830BEC32411FE75D584C58650EFB1D -136FEB92B94BF8939FD63AFB7349C7511E5E46AA7324F8B1FFCA9C2A9E9720C0 -A720918E8E860F137567D386AC29870FD990BD69465B3A3D2A0ECF2753578AD7 -80DC87EBB319EB5AFE0B6F6FF8616EA30C51425FE3ECBC5F8D0B0BEFDEF32FA7 -D168B4E85C804B7326A0942CFDE732B1171C643452B7099B31649CA2C38B62FB -46EBDF7180004C549B53F88021D029452C2B37D8C565BCDB0B11541039A13C0A -E45D4B68C7907B8BF08C6F41F564B62BB554235D50330E78DD02795516D969C9 -66119D718798120442CB7EB9877FF84EC69DAE25F8559DCE3BD8042959F695F8 -2F99845B1B5680DDCF181D806CC4903E077D1FF5E60918EB34C0B1E028422B71 -CA63EFBF3F4F3CD813CE831EB54265A555BDD35AD7D723F9CFBDAB29C54F8AFF -2D35C6A3299E0A2DB470C7B141B1E3E10DABB7873AE302926BA8743278FAA8C0 -DC6174501D6A289CF980A3F55F2DD5C3A514E7E7F13133C35D2697D64C25130C -DB78FC997968D6B3BC929E8A31B6D212C5128E4412632BC52B3A1049F7F2F61B -C74AE9A6AD19B9E2E240617E2882F7D29ED3A4279439107AF9AEBEE47CE85DE5 -CE9595A96A118ACF1EB1F5929930321AF7732E351E18C6AD378508E37B4C327B -0E06AAE21278AFA9255AFE5C022034DA2968D260879B4B38E7EE2E11A593DC3F -CE71ABA050C004473324CAB6F3C50E85DEDA3E9A27388D8FD3A8F6E42A79670E -F7549CFAD4CCB337A6E0BAA4846ABCA059F1E1933CF11DC0FFBFF550CC4A1B47 -CF7BCE0875FA747AA854534960F757884505A5AEE0330179A9547A4AE3E68479 -7A457DE83326DC30B67F27CFD4AB697601CEE352F72F0966B3CEE3EA24683BEF -6D23AD51B8432C3F0DD0D0F80791E1091F38988B7A54E466A9AC7810DE8B7893 -6B0AA6356597891D56190A7660BC7F657BC559E0525D41EC228078F2FBF89C6C -72D666DAD838CBF0861FBF0A1D4ECC069AA49DFBAE5C56B781A1D5D79DAAC256 -13E3F9B928A2394FC71691E4355642764459714412D6F8EF803FC5F7353822DE -6CCBB8FBE5AA1F2C7F4D384039D85E7728527DF9FE0239E2CF8BCB7411C000B7 -1FE660AE6A2A19229E5E8776CC83EFF3C27403935756463EB4721C51FE0B1197 -86C2F17842A0FB639F28083DFD4F1E86D7D3BEFA922514ABF489C5CCE93D6F72 -D2EAAE14F6CBA2BE4BBE7D7EA8EA19DB3A87350D4A52064137C3D15A5B05B03B -70B1DA7328D10713B83974C390C3270AF5A9A47C0BFBFABB9F31063B0CCFBB10 -0F236C74446688198EFF039110F6FF42FA9F82D463AD3958B5FD205BDF85DE20 -FE3F0C7AEEF350AEE6DBC1DE2E2DA4F4599956F59D6F121F7086DC120416E180 -52DBBC4E56C09746938698860F30007091E1CC0351B43990E47208ED495310F5 -7BA9C6AB3CA10A3F1B318FD47C1CE3B9FF1304321F9623E32D315AA9CE64B35B -F841E6C62B5B2488A311C94937879E5E0E170FA77AF0AC75C5E6E9F3E8F825AA -09C1702682E14FDFA72D27901C5BDE009B1E52E8C4511C6F6336251BD45261F7 -401CA3DAE7C4B0CAEB91B9954BF4A97C48ECE7FAD401351D59DDAE9DA94E2335 -74A2B880E4749D3D7026CB5299F16C204B6E00A20A6619C34922C7D3FB50F127 -3157CFC08DCC5164C8023CD1B6C3556C73CB8E4ADA845339CA9BABA1457ECEE6 -ECB9849DF1F0FEBC89E5F97C92978A500196520839CEBA6C0FD2E3D27BB4B4F0 -93CB2BB565F4627C6DB62DD0E084E627D69B5DEF42EF094381B62C0D67EFD197 -301B132420F51A41561E6106870147E0D597078435BE3819ACF0DE28AD779847 -F3D2CF667DA06955D53E0204CEA2935E9E984E76963D3079EC092031E2A10E61 -1227E5EE6770DD4D745A52655369EBA06A19BD7D95BBA271E488241199D1008E -36EA99F8DFD2A9F87B06B070158B466AA4C6EA3BA77DB0F853F0BF9A304EA291 -34069714368E0B94DFCBA3BE5EDB6C8204DFA7EAF5C3406F60A7056407D1BF6C -CB85C1F432F97D821F5518BBA79AF8453A568FB2C2D025A70CEC75F46C545011 -ACE3A99B2582793BA1DC655230AE2EFD24DE20A01D4A441AFFAB7771F223FA6B -9169849E727E494247F67D6E1EA9DCA06A082FE2094BD548AD7F08B565145634 -E7ED832FEC1378306DDC796303392ADB0CBA130B63B38ED57B7828B47732853A -893E8836FE19CCF27002AE92C2B2CACFDF8A42F1B8066E033B965D2E9157FDF8 -E1264B40813C1A4CE424274AA3528A4F09B3B53DD4D23789A68B3D17BC1398AE -0ADA2C2168427A49846DE0216908C2FFFEF4F13C1ECA12AD341E238EE46E6DC2 -B71B54C52659632911F901660261E493AE2483D64E119D9924489779B62BC9FB -A052E822FD8D83178E09ADC825DF0DA07FCE7AD68EEB29FAA275A13691B4A5A5 -B0BC0499CD6307610CD6209583C1152C559A2760823F8DC0B9B990BFFE7B7E9F -3969B968AFEAADB9FC0F1410EBBAA0DB979CF153F0B8C978405F8E6F2B6406D7 -AAFBF4A655A15DD6D1E9A7EAE10EF89264659B09283F50B734236885FC09FBE5 -98D780012FA77FCB19F15BDC522CC7312546C0730EF5225DEA8C22A3BC6554EF -4FE73B9AEB5C2F7DBD474221760E5F539A064AC450591BCF3499E3968F2CBD6B -F15BA2B37080A4129B66D4C2188524F025414F14DB3F96049A8B0E5EB2BBE7A1 -AD64A988FE875FE4FE5186BB4F5DDA16983CB052D474B7D72F3E8965663EB50E -015C72407C3437142D3D7DBC055FA627139488DBC5A0F98D805C2143D99F491A -167E07AF60EC9F17C36289368D740B632CB919A0E74C412B76CE7A5906D5200F -9E79CEB9C65ADA3A0F23E8947E834AE7A329A9F0AA7A6BF545B1D7B4666C6522 -CFF268634EA06DB3A82D91A4C0A9B227E79961212881A54A6762C335DE7E0831 -130C45D94394D21C049B9D189ED955438C2151514F17BFC67E431DD9A8349202 -2F616AEC1C7B19F63D5000EB4771370924BD4B9053FE78B5E4A244B9A149D66D -A8BF3B398396D2233E92E4A5FDC70FAADEADAFD255193D688842DBA865CF6154 -C9348D590F3FEB135D4B7BD4D76A52CB140888247CAFAB25ED51F4D187041CA0 -ABD956F83A5661CEC171B52AF92F9ADE27973B560C802E1E0FF51C4003D1289A -CDD09F8EDA8AFDFF666D35418CEADF3B0BE298F0D1E5C8E024D6A2017A7E71F3 -3A9FEC9930F1118101E040339F9D41379170928DDF5B5875212B271DC843F612 -E0C21C67263186E3D6929160464D4D5C8928E14D0845762C36FFBDE548188E20 -3B6BAFE5EECA0385142F01216FB8A90C43A472C1D4447FE5C7C78CC088FC72E7 -3FAFA062C338BDE8A430FDF1951B107D8D73FF9376FACDE5900BA362C66F8C1D -947F9545C5C13A53E4479B1C1A50472C05E8F8C266C6D4F4EB08E97B3B1BA972 -26973B844545089C5732322BCC9A5A8FC972FA0D7DB8BD85D2F515ADE65DA479 -0224F7EA2276CFED0B75B2C23AE7377F86F1F6F205D6FE19377D87E782143697 -984E731F83CA888199CEB425643C259D4FB8B58DD69A96085198306494BB497E -FE7C9954EF35B679BBE3847A9C73507874F71FC97665E2A58BA41407A1745247 -44A79B588D969D11CE4B863CDA655DAA53CEA5C3C263B345E782006CE9831D49 -603D2D95DE9E370D617F5928BA416C362BB2B4DEF16A5D44BD24B34257765F3B -6223B3F9B54DAED69A90C7050AB97B06693D253C6894CBD7B497DA449F1D9B7C -D91B421891EC0724F59C82B9CB288DC42F2D2D7A7F22EE3D910E15953D7766AE -276DABED3820390BAF2700C4653E1C77FE63DB71A66D93ED293E25B8412A1EFF -809554BF04ED0DE83F7F190883ED793803CAD2C34A66524D3A580ACDF3C13B22 -08F18905E7A4A16DA9ED2A112462FB9FFE481EC2069E484E8BBFC19D594153B7 -3DED4C11762223B7586483B06BC164D824D1A6FCAE80A35DE0DB8B33396771DF -76DC5C05578EF1BE00A70BAF3D951A01C87328DB2B0DAD6E1B4C21F37D1BC0C5 -A929BDE5EADF20DA60C4DE2E3C151005814F24824D33B95F700E09A0207EB602 -3EF60DEB1622B91DB99A855A8F1DA96358F05CFCEDBDDDFC8446AE3391BEEC41 -966E594E28D052DD5ADA49DFF65E79540EBE5329DFD86C23CC800F95221B9C18 -CBBF941D2FA47EF1EF59A89DB5DD188E75EE94AD2A79E2221107E5992C00D531 -2E00B544895A9204656867E3DE9D4CDB64B920B5CCA9A73E6514B36CABAE01BF -94C15603B86780190595560F792E5EF01650074EA4A9BBC6ED284B9AC2020641 -DCBCEE0ED27FE58171DFE104EEE4202759E594159DF45113C00236127A46FB35 -9EC705F21C0E456C1F0F924594C09AC64D4377C5FEEF764BA4A09ABA8D09DEB1 -FC13B0CD202B2F04CF5D73DEAB65C36C2FA7C0DC236BEEF6D23BFFC9C493DC8E -1831F19EEF81EEDD976E43BAC6B5CED13F901DE59835FC75490EA528A72CEB77 -24C38B258EC38B9E6B97F85CA8C10D8809BBE55A6FAA12456FCAC786942E123C -06D1E55F7ED04400088BEC968BC5081DC7A1B1B65166E7821679F76694F235FC -6854C8776AF855B83445D9FF919B1D80E98DE0741D06D6C5EEDB3E3EA6392530 -F1BA817737D8162F7B3A36AC2A03190CDEC654383E31934C3E0A012B639532C6 -26FEBE9B412F1C92D1943B7C18CEF510729D501349644C97F087F2F840074AE6 -D8CD0FB2E620FFC908BFCD938B675A0A4A687F7FBE8F3DD06A62D7B6DE7DF3E2 -49D367D60B10061EA86CD512F5A1BE8950D83C62695E130128E0037B62552D17 -064319BBB9B1FAB9D79705E5D68AAE9B36EA14BF1A59A863BDB8DAD9AB5D7B8A -E30E2B499F952D65877C8E38EDD7DB29F9579D09E629AC188DB6A6403AB4BA3A -D358B3770D727A2B77D84B6C9EC17E29D88E3421F9B7D2D822EB78BB8BB50692 -8C46DD6F9BBEF2E848A2B5669B200019802AD19661537A84D3514AEC5AA47445 -2C791E01DCEDF18D9506367241255FFADEEA6183F51A9F42448A7DE413C08359 -52DAD2A60FD606AFE14702BD3B0EC448720FE63438D020DEDFCDE3582FC31DF1 -17B25FC152789D2F17FD60B8209D292D2152DCF8D28B5ADC04F6659BBB746CDF -145163361823CA343763AA951C640B5D4A99B7787105A1609EDD6A596EFC3F6F -2FC33D0D499DBE56C6668E137715D435D6B683E0113647B2765AB0F3D98AC717 -5B33C3EDDE18506E73B4E392B022F30480BD30F59B2E3A59D93017296C3156B4 -B5722E1955777716388AA987B2665669716F866FE6BDAD5E74A523CC03915F26 -9B7B231F5D9B1F61DF7CB01ED3F27070E36547B263855DF5B2E3ABD2ACC440B9 -0826E1D9B057F51ACE6BBADF67DC4C0A0F1AE1F8606EE140FB1B2D8843522362 -8762E804EDDD847E3201FE5EE8F0F34C2C187B58D5AC8F5D150CB3584CB2DD0E -C16B9625A9F795211DB4FF82FF02AC437D4E47E6DCDC1159D24520249DFF1C41 -2A623E442ACEB6BC69133B99DC80ADA307ED5D47ABD348FDF349085C2CDCFD4E -43F9656FE59EDACF3C11361D8DBE56162631049333E66F494B254381414CFE91 -8D91E50414A004EE730B80A588C792E8AE3CE5019FA34C43654B8B293AD57519 -ABB8F34817296D47D49BB98035C973E5CAD59EF76A44ABA084649110CBEFAE57 -A7B3CE611D9065828AE89DA68BB86B423B8A2EB3CC9A9302692555D4127D754F -BC6730C6BA23F13C6A8BD9FAE1E8D13A3967607FDB42D5729F1EDC4D11601C0C -FF97705B5DE9E3E78C8D3252A6710B6BC1B2599C68076E7AC67EE55ED3DEA9CE -97B691CEA9D9D5987DA181DF71433965C58C2BB5117F5257FEE5E0F50C88AEE2 -25EEFAD0E4D1FCAD6D4871F7F62683D81C6622374700176A94DF43D46BE2F2D6 -2459FB8DAA2FCF9F2F54CAAE768D5D0C6AAA34DE207A87CA574EF2465C216D66 -C448F5AF51FAB37EB7F78D1EC92E59D90CBD15626B7F1A535046E3399AC08010 -4B9978A76DE005ACF7C89F3456CDD267A164E499DB2FA99A547041B2402EC067 -8169E334136BD1C5007FADD425DDB95CB268697B07581B7B4E9E5429A53DBCCD -EA58B7FE38208A97A64C7EDC850C1A6D50E9C37516D192CBA3F77577A7B8E581 -570C84FEFBCB6AFCBDD1B2D2BB1CB1E211E02C3502CEA050CDE090BC0F101C27 -3643951846FD3CBB3454A9A6EAF0F81450F0E6474148EFFC6BDA692F9116228D -366587DE955F4A0568DC07974613F01240566DC7C821CDD6E80B760C563126CE -33BF6B0808B86AD9D8AC4B2CEF41BE8163BF8084336C9E705F5D7BD6C8B6F162 -7F3A224703F4CB287E90017469C4584FD71B2438619BF3E942CAB9BDB481DF52 -926FF3481E9A0D4D696B8E0F17F91637114A96CA2EBF5589AD650022FB95FCE3 -63145735C8F15578E9828046C710525509E381FA400DB658C7E568CB7C56B3C9 -61B48B71F4020440969424D3062ED74A64FF9C6B74E14D460862D239B5812461 -A2506B3074897F1FB5B8C5EFAA5BCE70CA1274F0 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000000000000000000 -cleartomark -{restore}if -%%EndResource %%EndProlog %%BeginSetup - /uhvr8r /JXDTPR-NimbusSanL-Regu def - /cmr8 /GMTUEE-CMR8 def + /uhvr8r /uhvr8r def + /cmr8 /cmr8 def %%EndSetup %%Page: 1 1 1 0 0 setrgbcolor 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 10be0a74c88..a28d1df0afe 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.12.13 +% Molecular Coding Format file for mcf_manual.tex by Akira.Yamaji 2020.01.26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -input mcf2graph.mf; %% it must be version 4.47 or later +input mcf2graph.mf; %% it must be version 4.48 or later %------------------------------------------------------------------------ sw_mframe:=0; sw_expand:=0; @@ -192,7 +192,7 @@ beginfont("EN:Connect atom") sw_numberA:=1; ratio_chain_ring:=1; %---------------------------------------------------------------------- - MC(<30,!6,3:\,!,5~bd:#) + MC(<30,!6,3:\,!3,6:#~bd,9@#4~bz) endfont %*********************************************************************** beginfont("EN:ring") diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf Binary files differindex fa55769249c..b04218e18f6 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex index 6758b3cddb5..8ae6c125366 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.12.15 +% Molecular Coding Format manual by Akira Yamaji 2020.01.26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[a4paper]{article} %%%%\documentclass[a4paper,twoside]{article} @@ -192,8 +192,9 @@ pk font,PNG,SVG,EPS or MDL MOL file. \subsubsection{Connect atom} \begin{verbatim} n:# : Connect to An + n1@#n2 : n1:@,n2:# - <30,!6,3:\,!,5~bd:# + <30,!6,3:\,!3,6:#~bd,9@#4~bz \end{verbatim} \MCFgraph %----------------------------------------------------------------------------- diff --git a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf Binary files differindex c284c2d563c..26fbaf0fcf4 100644 --- a/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf +++ b/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf 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 580d18b45fb..c458dadf7e2 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.12.15 +% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2020.01.26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% mcf2graph.mf it must be version 4.47 or later +%%% mcf2graph.mf it must be version 4.48 or later \documentclass{article} %------------------------------------------------------------------------------ \usepackage{luamplib}% diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf index 5ad3d1c752d..15aeb765196 100644 --- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf +++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 4.47 Copyright (c) 2013-2019 Akira Yamaji +% mcf2graph ver 4.48 Copyright (c) 2013-2020 Akira Yamaji % % Permission is hereby granted, free of charge, to any person obtaining a copy of this software % and associated documentation files (the "Software"), to deal in the Software without restriction, @@ -39,12 +39,12 @@ tracingstats:=1; %------------------------------------------------------------------------------------------------- newinternal com,par,nA,nB,nC,nD,nE,nF,nP; -numeric save_num[],comD[][],parD[][],cntD[],tbl_atom[],tbl_group[][],f_char[], +numeric save_num[],comD[][],parD[][],adrD[][],cntD[],tbl_atom[],tbl_group[][],f_char[], tbl_atom_wt[],tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],andA[],and_rot[],chargeA[], com_group[][],par_group[][],cnt_group[],colorA[],colorB[]; -string save_str[],tbl_atom_str[],strD[],var[],tag[],out_file_name,out_file_aux, - out_file_rep,out_file_mcl,aux_delimiter,atomfont,save_atomfont,save_defaultfont; -pair save_pair[],msize,mposition,fsize,fmargin,save_mposition; +string save_str[],tbl_atom_str[],strD[],var[],tag[],mpc_name[],out_file_name,out_file_aux, + out_file_rep,out_file_mpc,aux_delimiter,atomfont,save_atomfont,save_defaultfont; +pair save_pair[],msize,mposition,fsize,fmargin,save_mposition,posBs,posBe; picture mol_stru[],save_picture,temp_picture; path arrow_path,arrow_head; %------------------------------------------------------------------------------------------------- @@ -64,7 +64,7 @@ if (known green)and(known ahlength): %----------------------------------------------------------------------------------------- atomfont:=defaultfont:=""; out_file_aux:=jobname&"-info.aux"; - out_file_mcl:=jobname&"-mcl.txt"; + out_file_mpc:=jobname&"-mpc.txt"; out_file_rep:=jobname&"-report.txt"; def out_file_mol= jobname&"-"&fit_zero(char_num)&"-"&inf_EN&".mol" enddef; %--default ahangle=45--------------------------------------------------------------------- @@ -125,7 +125,7 @@ fi clearit; %-------------------------------------------------------------------------------------------------- message "---------------------------------------------"; -message "This is mcf2graph ver 4.47 2019.12"; +message "This is mcf2graph ver 4.48 2020.01"; if f_MP=1: if bboxmargin=0: message "output no image file"; elseif bboxmargin=1: message "output first font only"; @@ -136,7 +136,6 @@ if f_MP=1: if ahlength=1: message "output aux file"; message "out_file_aux="&out_file_aux; message "aux_delimiter="&aux_delimiter; - message "aux_delimiter="&aux_delimiter; elseif ahlength=2: message "output report file"; message "out_file_rep="&out_file_rep; elseif ahlength=5: message "output MOL file(V2000)"; @@ -185,24 +184,23 @@ parts_usr_start:=2500; % 2500 => 2999 for user parts (max 500) parts_int_start:=3000; % 3000 => 4000 for internal parts (max 1000) %-------------------------------------------------------------------------------------------------- def def_com(expr n)(text tx)= nA:=n; forsuffixes list=tx:: list:=nA; nA:=nA+1; endfor enddef; -def_com(-4090)(_com,_jp_atom,_jp_A_abs,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_dl,_tmp_line, +def_com(-4090)(_com,_jp_atom,_jp_absA,_jp_bond,_cyc,_cyc_sB,_cyc_eB,_set_line,_dl,_tmp_line, _chg_len,_get_len,_ring_len,_tmp_len,_rot_ang,_adj_ang,_chg_env,_tmp_env,_set_colorA,_set_colorB, - _group,_groupA,_groupB,_groupC,_groupD,_groupE,_groupF,_groupG,_groupH, - _set_clr,_set_adr,_mk_bond,_set_atom,_arg_ang,_chg_atom,_tmp_rot,_fuse, - _size_atom,_numeric,_jump_at,_connect_at,_set_and,_chg_charge,_nop, - si,dl,dr,db,dm,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,si_,wf_,wb_,bd_); + _group_si,_set_adr,_mk_bond,_set_atom,_arg_ang,_chg_atom,_tmp_rot,_fuse,_size_atom,_numeric, + _jump_at,_connect_at,_set_and,_chg_charge,_nop,_mark,_moff,_term,_len_s,_len_e,_len_ss,_len_ee, + _group_s,_group_e,si,dl,dr,db,dm,tm,wf,wb,bd,bz,zf,zb,dt,wv,nl,vf,vb,nb,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_calc,sw_single, sw_ext_all,sw_aframe,sw_fframe,sw_group_off,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,ratio_wedge_bond,ratio_atomgap_atom, - lonepairdiam,lonepairspace,blength,offset_atom,offset_wedge,max_blength,offset_zebra_gap, + lonepairdiam,lonepairspace,blength,offset_atom,offset_wedge,max_blength,offset_zebra_gap, offset_bond_gap,thickness_fframe,thickness_mframe,thickness_aframe,offset_thickness, numberA_start,numberA_end,numberB_start,numberB_end,defaultsize,defaultscale,labeloffset,mangle, fsize,fmargin,msize,mposition,defaultfont,atomfont, - Me,Et,Pr,Bu,iPr,tBu,CH3,CF3,CCl3,CBr3,NH,NH2,NO2,OH,CHO,COOH,CN,SH,OMe,OEt,SMe,SEt, - !CH3,!NH2,!OH,!CHO,!COOH,!CN,!SH,!NO2 + Me,Et,Pr,Bu,iPr,tBu,CF3,CCl3,CBr3,CH3,NH,NH2,NO2,OH,CHO,COOH,CN,SH,OMe,OEt,SMe,SEt, + !CH3,!NH2,!NO2,!OH,!CHO,!COOH,!CN,!SH,!2CH3,!2NH2,!2NO2,!2OH,!2CHO,!2COOH,!2CN,!2SH enddef; %-------------------------------------------------------------------------------------------------- def ]]]=] ] ] enddef; @@ -313,42 +311,37 @@ def endfont= enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def set_def_MC= - save /,//,/*,*/,**,*/*,~,^,`,<,>,>>,&,:,=,\,\\,*\,\*,*\*,@,$,{,},#,|,||,|||,|=,=|,|<,>|,|:,:|, - _,d,w,z,inside_def_MC; + save /,//,/*,*/,**,*/*,~,^,`,``,<,>,&,:,=,\,\\,*\,\*,*\*,@,#,@#,$,{,}, + |,||,|||,|=,=|,|<,>|,|:,:|,_,d,w,z,inside_def_MC; inside_def_MC:=1; _:=Me; d:=db; w:=wf; z:=zf; tertiarydef a=b == if (known a)and(known b):: change_bond(a,b) else:: _nop fi enddef; tertiarydef a:b == if (known a)and(known b):: change_atom(a,b) else:: _nop fi enddef; - def { == read_number( enddef; - let } == ); + def { == read_number( enddef; let } == ); def &primary s == (_set_and,ASCII(s)) enddef; vardef $primary a == a-4095 enddef; - def ``primary n == (_chg_len,n) enddef; def <primary n == (_rot_ang,n) enddef; - def >>primary n == (_chg_env,n) enddef; + def ``primary n == (_chg_len,n) enddef; tertiarydef a^b == if known b:: (_tmp_rot,b),a else:: _nop,a fi enddef; tertiarydef a`b == if known b:: (_tmp_len,b),a else:: _nop,a fi enddef; tertiarydef a~b == if known b:: (_tmp_line,b),a else:: _nop,a fi enddef; tertiarydef a>b == if known b:: (_tmp_env,b),a else:: _nop,a fi enddef; - def # == _connect_at enddef; def @ == _jump_at enddef; - def \ == @,0 enddef; def \\ == \~dm enddef; - def *\ == \~wf enddef; def \* == \~zf enddef; - def *\* == \~wv enddef; - def | == (_com,1) enddef; def || == (_com,2) enddef; def ||| == (_com,3) enddef; - def |< == (_com,5) enddef; def >| == (_com,6) enddef; - def |: == (_com,7) enddef; def :| == (_com,8) enddef; + def # == _connect_at enddef; def @ == _jump_at enddef; primarydef a@#b == a:@,b:# enddef; + def \ == @,0 enddef; def \\ == \~dm enddef; + def *\ == \~wf enddef; def \* == \~zf enddef; def *\* == \~wv enddef; + def | == (_com,_mark) enddef; def || == (_com,_moff) enddef; def ||| == (_com,_term) enddef; + def |< == (_com,_len_s) enddef; def >| == (_com,_len_e) enddef; + def |: == (_com,_len_ss) enddef; def :| == (_com,_len_ee) enddef; def |=primary n == |<,(_chg_len,n) enddef; def =| == >| enddef; - def /secondary n == if known n:: (_groupA,n) else:: _nop fi enddef; - def //secondary n == if known n:: (_groupB,n) else:: _nop fi enddef; - def */secondary n == if known n:: (_groupC,n) else:: _nop fi enddef; - def /*secondary n == if known n:: (_groupD,n) else:: _nop fi enddef; - def **secondary n == if known n:: (_groupF,n) else:: _nop fi enddef; - def */*secondary n == if known n:: (_groupG,n) else:: _nop fi enddef; + def /secondary n == if known n:: (_group_si,n) else:: _nop fi enddef; + def //secondary n == /n~dm enddef; def */secondary n == /n~wf enddef; + def /*secondary n == /n~zf enddef; def */*secondary n == /n~wv enddef; + def **secondary n == /n~nb enddef; enddef; %================================================================================================= -vardef '(text TXT)= read_command(incr parts_usr)(TXT); parts_usr enddef; +vardef '(text TXT)= read_mcf(incr parts_usr)(TXT); parts_usr enddef; %------------------------------------------------------------------------------------------------- -def read_command(expr n)(text TXT)= +def read_mcf(expr n)(text TXT)= begingroup save list_cnt,nCP; if unknown inside_def_MC:: set_def_MC fi @@ -397,28 +390,28 @@ vardef read_number(text TXT)= enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def fuse_ring(expr a,b) = - CP(_jp_bond,a) CP(_rot_ang,180) CP(_get_len,a) CP(_com,5) + CP(_jp_bond,a) CP(_rot_ang,180) CP(_get_len,a) CP(_com,_len_s) CP(_chg_len,_ring_len) for i==1 upto b-2:: CP(_mk_bond,360 DIV b) endfor - CP(_com,6) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi + CP(_com,_len_e) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi enddef; %------------------------------------------------------------------------------------------------- def fuse_ring_bonds(expr a,b,c) = - CP(_jp_bond,xpart(a)) CP(_rot_ang,180) CP(_com,5) + CP(_jp_bond,xpart(a)) CP(_rot_ang,180) CP(_com,_len_s) if b==6:: CP(_chg_len,_ring_len) for i==1 upto c-1:: CP(_mk_bond,60) endfor elseif b==5:: if c==2:: CP(_chg_len,1.25) CP(_mk_bond,80) elseif c==3:: CP(_chg_len,1.1) CP(_mk_bond,78) CP(_mk_bond,72) fi elseif b==4:: CP(_chg_len,1.225) CP(_mk_bond,105) fi - CP(_com,6) if ypart(a)<=0:: CP(_cyc_eB,ypart(a)-c+1) else:: CP(_cyc_eB,ypart(a)) fi + CP(_com,_len_e) if ypart(a)<=0:: CP(_cyc_eB,ypart(a)-c+1) else:: CP(_cyc_eB,ypart(a)) fi enddef; %------------------------------------------------------------------------------------------------- -def fuse_ring_rate(expr a,b,c) = - CP(_jp_bond,a) CP(_rot_ang,180) CP(_com,5) CP(_chg_len,c DIV 10) +def fuse_ring_size(expr a,b,c) = + CP(_jp_bond,a) CP(_rot_ang,180) CP(_com,_len_s) CP(_chg_len,c DIV 10) if b==5:: CP(_mk_bond,72-((c-9) MUL 1.5)) CP(_mk_bond,72+(c-9)) CP(_mk_bond,72+(c-9)) elseif b==6:: CP(_mk_bond,60-(c-8)) for i==1 upto 3:: CP(_mk_bond,60+((c-8) DIV 2)) endfor elseif b==7:: CP(_mk_bond,360 DIV 7-(c-8)) for i==1 upto 4:: CP(_mk_bond,360 DIV 7+((c-8) DIV 2.5)) endfor elseif b==8:: CP(_mk_bond,45-(c-8)) for i==1 upto 5:: CP(_mk_bond,45+((c-8) DIV 3)) endfor fi - CP(_com,6) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi + CP(_com,_len_e) if a<=0:: CP(_cyc_eB,a-b+2) else:: CP(_cyc_eB,a) fi enddef; %================================================================================================== vardef change_bond(expr a,b) = @@ -438,7 +431,7 @@ vardef change_bond(expr a,b) = elseif b==_connect_at:: CP(_cyc_sB,a) elseif 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_rate(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 elseif color b:: color_list[incr cntC]:=b; CPe(a)(_set_colorB,cntC) @@ -455,13 +448,14 @@ vardef change_atom(expr a,b)= nCP:=0; if numeric b:: if (b>=H)and(b<=U):: CPe(a)(_chg_atom,b) - ef b==NH:: CPe(a)(_chg_atom,N) CP(_set_clr,1) CPx(a)(_groupH,H) CP(_set_clr,0) + ef b==NH:: CPe(a)(_chg_atom,N) CP(_tmp_line,nl) + CP(_com,_group_s) CPx(a)(_group_si,H) CP(_com,_group_e) ef b==_jump_at:: CP(_jp_atom,a) ef b==_connect_at:: CP(_cyc,a) fi ef pair b:: if xpart(b)==_set_and:: CP(_set_and,ypart(b)) CP(_chg_charge,a) - else:: CP(_set_clr,1) CPx(a)(xpart(b),ypart(b)) CP(_set_clr,0) + else:: CP(_com,_group_s) CPx(a)(xpart(b),ypart(b)) CP(_com,_group_e) fi ef color b:: color_list[incr cntC]:=b; CPe(a)(_set_colorA,cntC) fi @@ -753,25 +747,20 @@ def MC(text TXT)= margin_lr:=xpart(fmargin); margin_tb:=ypart(fmargin); %=============================================================================================== - read_command(0)(TXT,|||); - %----------------------------------------------------------------------------------------------- - proc_bond_atom(1); - %----------------------------------------------------------------------------------------------- - if (cnt_group>0)and(sw_group_off=0): read_group(1); fi - %----------------------------------------------------------------------------------------------- + read_mcf(0)(TXT,|||); + proc_bond_atom(0)(1); + if (cnt_group>0)and(sw_group_off=0): read_group(0)(1); fi char_use_check; %-scaling--------------------------------------------------------------------------------------- - if blength>1: blen:=blength; proc_size_setup; proc_skeleton; proc_scaling; - elseif blength>0: - blen:=font_wd*blength; - proc_size_setup; proc_skeleton; proc_scaling; + if blength>1: blen:=blength; proc_size_setup; proc_skeleton(0); proc_scaling; + elseif blength>0: blen:=font_wd*blength; proc_size_setup; proc_skeleton(0); proc_scaling; else: blen:=3mm; proc_size_setup; if xpart(msize)<1: m_wd:=font_wd*xpart(msize); else: m_wd:=font_wd; fi if ypart(msize)<1: m_ht:=font_ht*ypart(msize); else: m_ht:=font_ht; fi for i=1 upto 6: - proc_skeleton; proc_scaling; + proc_skeleton(0); proc_scaling; if (mol_ht/mol_wd)>(m_ht/m_wd): if ypart(msize)>1: factor:=ypart(msize)/mol_ht; else: factor:=((font_ht-2margin_tb)*ypart(msize))/mol_ht; @@ -786,7 +775,7 @@ def MC(text TXT)= proc_size_setup; endfor if blen>max_blength: - blen:=max_blength; proc_size_setup; proc_skeleton; proc_scaling; + blen:=max_blength; proc_size_setup; proc_skeleton(0); proc_scaling; fi fi %-draw atom-------------------------------------------------------------------------------------- @@ -858,23 +847,23 @@ def MC(text TXT)= endgroup; 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(parts_usr) &" "& decimal(parts_usr-parts_usr_start); -%%%% message "count of int ="& decimal(parts_int) &" "& decimal(parts_int-parts_int_start); +%%% message "parts_usr ="& decimal(parts_usr) &" "& decimal(parts_usr-parts_usr_start); +%%% message "parts_int ="& decimal(parts_int) &" "& decimal(parts_int-parts_int_start); %----------------------------------------------------------------------------------------------- enddef; %------------------------------------------------------------------------------------------------- def add_group= if f_at=1: nE:=getA(adrT); check_adrA(nE); else: nE:=cntA+1; fi cnt_group:=cnt_group+1; cnt_group[cnt_group]:=0; - store_group(_jp_A_abs,nE) store_group(_com,5) - if lineT<>0: store_group(_tmp_line,lineT) fi + store_group(_jp_absA,nE) store_group(_com,_len_s) + if lineT<>nb: store_group(_tmp_line,lineT) fi if rotT<>0: store_group(_rot_ang,rotT) fi if lenT<>crR: store_group(_chg_len,lenT) fi if envT<>hz: store_group(_chg_env,envT) fi if lineT=nl: store_group(_chg_len,_size_atom) store_group(_adj_ang,0) fi - if lineT<>0: store_group(_mk_bond,0) fi + if lineT<>nb: store_group(_mk_bond,0) fi for i=1 upto cntD[par]: store_group(comD[par][i],parD[par][i]) endfor - store_group(_com,6) store_group(_com,3) + store_group(_com,_len_e) store_group(_com,_term) if f_lineT=0: lineT:=si; fi if f_lenT=0: lenT:=crR; fi if f_rotT=0: rotT:=0; fi @@ -886,16 +875,16 @@ def store_group(expr a,b)= com_group[cnt_group][cnt_group[cnt_group]]:=a; par_group[cnt_group][cnt_group[cnt_group]]:=b; enddef; %================================================================================================= -def read_group(expr n)= +def read_group(expr a)(expr n)= save_cnt_group:=cnt_group; - save_cntD:=cntD[0]; + save_cntD:=cntD[a]; for i=n upto cnt_group: for j=1 upto cnt_group[i]: - cntD[0]:=cntD[0]+1; comD[0][cntD[0]]:=com_group[i][j]; parD[0][cntD[0]]:=par_group[i][j]; + cntD[a]:=cntD[a]+1; comD[a][cntD[a]]:=com_group[i][j]; parD[a][cntD[a]]:=par_group[i][j]; endfor endfor - proc_bond_atom(save_cntD+1); - if cnt_group>save_cnt_group: read_group(save_cnt_group+1); fi + proc_bond_atom(a)(save_cntD+1); + if cnt_group>save_cnt_group: read_group(a)(save_cnt_group+1); fi enddef; %================================================================================================= def draw_frame(expr PS,LX,LY,PN)= @@ -955,36 +944,29 @@ def char_use_check= fi enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -def proc_bond_atom(expr n)= +def proc_bond_atom(expr a)(expr n)= f_bra:=f_end:=f_term:=rotT:=f_lineT:=f_rotT:=f_lenT:=f_envT:=envT:=envB:=strAT:=f_at:=0; bondL:=crR; lenT:=crR; sB[0]:=0; eB[0]:=1; lineT:=si; andAT:=markA:=markB:=0; %----------------------------------------------------------------------------------------------- - for i=n upto cntD[0]: - com:=comD[0][i]; par:=parD[0][i]; - if com=_mk_bond: if (par=0)and(rotT<>0): rotT:=0; fi add_atom; - ef com=_set_adr: adrT:=par; - ef com=_com: if par=1: markA:=cntA; markB:=cntB; elseif par=2: markA:=markB:=0; - elseif par=3: termA; - elseif par=5: temp_lenE:=bondL; elseif par=6: bondL:=temp_lenE; - elseif par=7: temp_lenF:=bondL; elseif par=8: bondL:=temp_lenF; fi - ef com=_set_clr: - f_at:=par; - if par=1: if lineT<>si: f_lineT:=1; fi if rotT<>0: f_rotT:=1; fi - if lenT<>crR: f_lenT:=1; fi if envT<>hz: f_envT:=1; fi - ef par=0: f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0; lineT:=si; lenT:=crR; fi + for i=n upto cntD[a]: com:=comD[a][i]; par:=parD[a][i]; + if com=_mk_bond: if (par=0)and(rotT<>0): rotT:=0; fi add_atom; + ef com=_set_adr: adrT:=par; + ef com=_com: if par=_mark: markA:=cntA; markB:=cntB; + ef par=_moff: markA:=markB:=0; + ef par=_term: termA; + ef par=_len_s: temp_lenE:=bondL; ef par=_len_e: bondL:=temp_lenE; + ef par=_len_ss: temp_lenF:=bondL; ef par=_len_ee: bondL:=temp_lenF; + ef par=_group_s: f_at:=1; if lineT<>si: f_lineT:=1; fi if rotT<>0: f_rotT:=1; fi + if lenT<>crR: f_lenT:=1; fi if envT<>hz: f_envT:=1; fi + ef par=_group_e: f_at:=0; f_lineT:=f_rotT:=f_lenT:=f_envT:=rotT:=envT:=0; + lineT:=si; lenT:=crR; + fi ef com=_set_atom: strAT:=par; - ef com=_groupA: add_group; - ef com=_groupB: lineT:=dm; add_group; - ef com=_groupC: lineT:=wf; add_group; - ef com=_groupD: lineT:=zf; add_group; - ef com=_groupE: lineT:=nl; add_group; - ef com=_groupF: lineT:=0; add_group; - ef com=_groupG: lineT:=wv; add_group; - ef com=_groupH: lineT:=nl; lenT:=_size_atom; add_group; - ef com=_jp_bond: termA; nA:=getB(par); check_adrB(nA); sB[cntB+1]:=sB[nA]; f_bra:=1; - ef com=_jp_atom: termA; nA:=getA(par); check_adrA(nA); sB[cntB+1]:=nA; f_bra:=1; - ef com=_jp_A_abs: sB[cntB+1]:=par; f_bra:=1; temp_cntB:=cntB; + ef com=_group_si: add_group; + ef com=_jp_bond: termA; nA:=getB(par); check_adrB(nA); sB[cntB+1]:=sB[nA]; f_bra:=1; + ef com=_jp_atom: termA; nA:=getA(par); check_adrA(nA); sB[cntB+1]:=nA; f_bra:=1; + ef com=_jp_absA: sB[cntB+1]:=par; f_bra:=1; temp_cntB:=cntB; ef com=_chg_atom: numS[getA(adrT)]:=parD[par][1]; ef com=_chg_len: if par=_ring_len: bondL:=ringL; else: bondL:=par; fi ef com=_get_len: if par=_tmp_len: if bondL=crR: bondL:=lenT; fi @@ -1024,38 +1006,33 @@ def check_adrA(expr n)= enddef; def check_adrB(expr n)= if (n>cntB)or(n<=0): errmessage("cntB=[ "&decimal(n)&" ]"); fi enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -def proc_skeleton= - begingroup - save posBs,posBe; - pair posBs,posBe; - markA:=markB:=cntA:=cntB:=f_end:=f_bra:=rotT:=f_term:=f_at:=0; +def proc_skeleton(expr a)= + markA:=markB:=cntA:=cntB:=f_end:=f_bra:=rotT:=f_term:=0; envT:=envB:=f_lineT:=f_rotT:=f_lenT:=f_envT:=0; lineT:=si; angT:=mangle; angA[0]:=angB[0]:=angX[0]:=0; posA[0]:=posBs:=posBe:=(0,0); %----------------------------------------------------------------------------------------------- - for i=1 upto cntD[0]: - com:=comD[0][i]; par:=parD[0][i]; - if com=_mk_bond: if (par=0)and(rotT<>0):par:=rotT; rotT:=0; fi add_bond(par); - ef com=_com: if par=1: markA:=cntA; markB:=cntB; elseif par=2: markA:=markB:=0; - elseif par=3: termB; fi + for i=1 upto cntD[a]: com:=comD[a][i]; par:=parD[a][i]; + if com=_mk_bond: if (par=0)and(rotT<>0):par:=rotT; rotT:=0; fi add_bond(par); + ef com=_com: if par=_mark: markA:=cntA; markB:=cntB; + ef par=_moff: markA:=markB:=0; ef par=_term: termB; + ef par=_group_e: lineT:=si; lenT:=crR; rotT:=envT:=0; fi ef com=_jp_bond: termB; nA:=getB(par); posBs:=posA[sB[nA]]; angT:=angB[nA]; f_bra:=1; rotT:=0; ef com=_jp_atom: termB; adrT:=getA(par); posBs:=posA[adrT]; angT:=angX[adrT]; f_bra:=1; rotT:=0; - ef com=_jp_A_abs: adrT:=par; posBs:=posA[adrT]; - angT:=angX[adrT]; f_bra:=1; rotT:=0; temp_cntB:=cntB; + ef com=_jp_absA: adrT:=par; posBs:=posA[adrT]; + angT:=angX[adrT]; f_bra:=1; rotT:=0; temp_cntB:=cntB; ef com=_adj_ang: if (angT<40)or(angT>320): angT:=0; - ef angT<140: angT:=90; ef angT<220: angT:=180; else: angT:=270; fi + ef angT<140: angT:=90; ef angT<220: angT:=180; else: angT:=270; fi ef com=_rot_ang: angT:=(angT+par) mod 360; ef com=_tmp_rot: rotT:=par; - ef (com>=_groupA)and(com<=_groupH): rotT:=0; + ef com=_group_si: rotT:=0; ef com=_chg_env: envB:=par; ef com=_tmp_env: envT:=par; - ef com=_set_clr: f_at:=par; if par=0: lineT:=si; lenT:=crR; rotT:=envT:=0; fi ef com=_cyc: f_end:=1; proc_cyc(getA(par)); ef com=_cyc_sB: f_end:=1; proc_cyc(sB[getB(par)]); ef com=_cyc_eB: f_end:=1; proc_cyc(eB[getB(par)]); else: fi endfor - endgroup enddef; %------------------------------------------------------------------------------------------------- def add_bond(expr ROT)= @@ -1070,9 +1047,7 @@ def add_bond(expr ROT)= if lenB[cntB+1]=_size_atom: posBe:=sfB(posBs,atom_wd,angT); else: nA:=lenB[cntB+1]; - if nA<0: nB:=glu_atom(adrT)+glu_atom(cntA+1); nA:=abs(nA); - else: nB:=0; - fi + if nA<0: nB:=glu_atom(adrT)+glu_atom(cntA+1); nA:=abs(nA); else: nB:=0; fi posBe:=sfB(posBs,nA*blen+nB,angT); fi posA[cntA+1]:=posBe; f_term:=0; @@ -1098,19 +1073,13 @@ def termA= enddef; %-------------------------------------------------------------------------------------------------- def termB= - if f_term=0: - if f_bra=0: cntA:=cntA+1; angX[cntA]:=angT mod 360; else:f_bra:=0; fi - f_term:=1; - fi + if f_term=0: if f_bra=0: cntA:=cntA+1; angX[cntA]:=angT mod 360; else:f_bra:=0; fi f_term:=1; fi enddef; %-------------------------------------------------------------------------------------------------- def proc_cyc(expr n)= add_bond(angle(posA[n]-posBs)-angT); enddef; %-------------------------------------------------------------------------------------------------- vardef glu_atom(expr NUM)= - if numS[NUM]<>0: - nE:=angT mod 90; nF:=0.5atom_wd; (iif(nE<45,sind(nE),cosd(nE))*nF)++nF - else: 0 - fi + if numS[NUM]<>0: nE:=angT mod 90; nF:=0.5atom_wd;(iif(nE<45,sind(nE),cosd(nE))*nF)++nF else: 0 fi enddef; %-------------------------------------------------------------------------------------------------- vardef proc_env(expr ANG,ENV)= @@ -1220,6 +1189,7 @@ def draw_bond(expr NUM)= fill sfB(Ls,ww,am)--Le--sfB(Ls,ww,ap)--cycle Cp(col); ef nL=bd_: erase draw subpath(0.15,0.85) of zA wpcs 1.6bondgap; draw zA withpen penrazor rotated ap scaled bondgap Cp(col); + ef nL=nb: fi endgroup enddef; @@ -1252,48 +1222,71 @@ lr:='(60 for i==1 upto 10:: ,-60,60 endfor); rl:='(-60,lr); for i=3 upto 20: ?[i]:='(|:,(_get_len,_ring_len),<((-180 DIV i)-90) for j==2 upto i:: ,(360 DIV i) endfor,(_cyc_sB,1-i),:|); endfor Ph:=Ph1:='(?6,(_dl,-2),(_dl,-4),(_dl,-6)); Ph2:='(?6,(_dl,-1),(_dl,-3),(_dl,-5)); -!:=!1:='((_mk_bond,_arg_ang)); !!:='(!,(_set_adr,-1),(_set_line,db)); -!!!:='(!,,(_set_adr,-1),(_set_line,tm)); !0:='(<180,180); +!:=!1:='((_mk_bond,_arg_ang)); !!:='(!~db); !!!:='(!~tm); !0:='(<180,180); for i=2 upto 20: ![i]:='(|:,(_get_len,_tmp_len),! for j==2 upto i::,! endfor ,:|); endfor -Me:='(); Et:='(!); Pr:=!x2:='(!,!); Bu:=!x3:='(!,!,!); +Me:='(); Et:='(!); Pr:='(!,!); Bu:='(!,!,!); for i=4,5,6: for j=2 upto i-2: ?[i][j]:='((_fuse,i),(j,0)); endfor endfor for i=5,6,7,8: for j=11 upto 15: ?[i][j]:='((_fuse,i),(j,0)); endfor endfor %================================================================================================= -H :='("H");C:='("C");N:='("N");O:='("O");S:='("S");P:='("P");F:='("F");I:='("I"); -Si:='("{Si}");Al:='("{Al}");Mg:='("{Mg}");Zn:='("{Zn}");As:='("{As}");Cu:='("{Cu}"); -Ag:='("{Ag}");Au:='("{Au}");Sn:='("{Sn}");Cl:='("{Cl}");Br:='("{Br}");Li:='("{Li}"); +H :='("H");C:='("C");N:='("N");O:='("O");S:='("S");P:='("P");F:='("F");I:='("I");K:='("K"); +Si:='("{Si}");Al:='("{Al}");Mg:='("{Mg}");Zn:='("{Zn}");As:='("{As}");Co:='("{Co}");Cu:='("{Cu}"); +Ag:='("{Ag}");Au:='("{Au}");Sn:='("{Sn}");Cl:='("{Cl}");Br:='("{Br}");Li:='("{Li}");Cr:='("{Cr}"); Na:='("{Na}");Ca:='("{Ca}");Hg:='("{Hg}");Ni:='("{Ni}");Ti:='("{Ti}");U:='("U"); -H[1]:='("{H^+^}");H[-1]:='("{H^-^}");C[1]:='("{C^+^}");C[-1]:='("{C^-^}"); -O[1]:='("{O^+^}");O[-1]:='("{O^-^}");N[1]:='("{N^+^}");N[-1]:='("{N^-^}"); -S[1]:='("{S^+^}");S[-1]:='("{S^-^}");P[1]:='("{P^+^}");P[-1]:='("{P^-^}"); +B:='("B");D:='("D");Fe:='("{Fe}");Mn:='("{Mn}");Se:='("{Se}"); +H[1]:= '("{H^+^}"); H[-1]:='("{H^-^}"); C[1]:='("{C^+^}"); C[-1]:='("{C^-^}"); +O[1]:= '("{O^+^}"); O[-1]:='("{O^-^}"); N[1]:='("{N^+^}"); N[-1]:='("{N^-^}"); +S[1]:= '("{S^+^}"); S[-1]:='("{S^-^}"); P[1]:='("{P^+^}"); P[-1]:='("{P^-^}"); Li[1]:='("{Li^+^}"); Na[1]:='("{Na^+^}"); Cl[-1]:='("{Cl^-^}"); Br[-1]:='("{Br^-^}"); %------------------------------------------------------------------------------------------------- -R:='("R"); R1:='("{R^1^}"); R2:='("{R^2^}"); R3:='("{R^3^}"); R4:='("R^4^"); R5:='("{R^5^}"); +R:='("R"); R1:='("{R^1^}"); R2:='("{R^2^}"); R3:='("{R^3^}"); R4:='("R^4^"); R5:='("{R^5^}"); +R6:='("R6"); R7:='("{R^7^}"); R8:='("{R^8^}"); R9:='("{R^9^}"); R10:='("R^10^"); R11:='("{R^11^}"); %------------------------------------------------------------------------------------------------- CHO:='("CHO"); OH:='("OH"); COOH:='("COOH"); CH2:='("C{H_2_}"); CH3:='("C{H_3_}"); CN:='("CN"); -NH2:='("N{H_2_}"); NO2:='("N{O_2_}"); SH:='("SH"); SO3:='("S{O_3_}"); NH:='(N,(_groupE,H)); -NMe:=N!:='(N,/Me); iPr:=Me!:='(/Me,60); tBu:='(/Me,/Me^60,60); -SO:='(S,//O); SOO :='(S,//O^-35,//O^35); -OMe:=O!:='(O,!); OEt:=O!2:='(O,!x2); OPr:=O!3:='(O,!x3); OiPr:=OMe!:='(O,!,iPr); -SMe:=S!:='(S,!); SEt:=S!2:='(S,!x2); SPr:=S!3:='(S,!x3); SiPr:=SMe!:='(S,!,iPr); -COO:='(//O,!,O); COOMe:=COO!:='(COO,!); COOEt:=COO!2:='(COO,!x2); COOiPr:=COOMe!:='(COO,!,iPr); -COOPr:=COO!3:='(COO,!x3); COOtBu:='(COO,!,tBu); COMe:=CO!:='(//O,!); COEt:=CO!2:='(//O,!x2); -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); !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); +NH2:='("N{H_2_}"); NO2:='("N{O_2_}"); SH:='("SH"); SO3:='("S{O_3_}"); NH:='(N,/H~nl); +%------------------------------------------------------------------------------------------------- +NMe:=N!:='(N,/_); iPr:=Me!:='(/_,60); tBu:='(/_,/_^60,60); SO:='(S,//O); SOO :='(S,//O^-35,//O^35); +OMe:=O!:='(O,!); OEt:=O!2:='(O,!,!); OPr:=O!3:='(O,!,!,!); OiPr:=OMe!:='(O,!,iPr); +SMe:=S!:='(S,!); SEt:=S!2:='(S,!,!); SPr:=S!3:='(S,!,!,!); SiPr:=SMe!:='(S,!,iPr); +%------------------------------------------------------------------------------------------------- +COO:='(//O,!,O); COOMe:=COO!:='(COO,!); COOEt:=COO!2:='(COO,!,!); COOiPr:=COOMe!:='(COO,!,iPr); +COOPr:=COO!3:='(COO,!,!,!); COOtBu:='(COO,!,tBu); +COMe:=CO!:='(//O,!); COEt:=CO!2:='(//O,!,!); COPr:=CO!3:='(//O,!,!,!); +OCOMe:=OCO!:='(O,!,//O,!); NMeMe:=NMe!:='(N!,!); NMeEt:=NMe!2:='(N!,!,!); NMePr:=NMe!3:='(N!,!,!,!); +NHCOMe:=NHCO!:='(NH,!,//O,!); NHiPr:=NHMe!:='(NH,!,iPr); NHtBu:='(NH,!,tBu); NHMe:=NH!:='(NH,!); +NHEt:=NH!2:='(NH,!,!); NHPr:=NH!3:='(NH,!,!,!); +%-------------------------------------------------------------------------------------------------- +!OH:='(!,OH); !SH:='(!,SH); !NH2:='(!,NH2); +!COMe:=!CO!:='(!,//O,!); !COEt:=!CO!2:='(!,CO!2); !COPr:=!CO!3:='(!,CO!3); +!OMe:=!O!:='(!,O!); !OEt:=!O!2:='(!,O!2); !OPr:=!O!3:='(!,O!3); !OiPr:=!OMe!:='(!,OMe!); +!SMe:=!S!:='(!,S!); !SEt:=!S!2:='(!,S!2); !SPr:=!S!3:='(!,S!3); !SiPr:=!SMe!:='(!,SMe!); +!NHMe:=!NH!:='(!,NH!); !NHEt:=!NH!2:='(!,NH!2); !NHPr:=!NH!3:='(!,NH!3); !NHiPr:=!NHMe!:='(!,NHMe!); +!COOH:='(!,COOH); !COOMe:=!COO!:='(!,COO!); !COOEt:=!COO!2:='(!,COO!2); !COOPr:=!COO!3:='(!,COO!3); +!COOtBu:='(!,COOtBu); !OCOMe:=!OCO!:='(!,OCO!); !NMeMe:=!NMe!:='(!,NMe!); +!NMeEt:=!NMe!2:='(!,NMe!2); !NMePr:=!NMe!3:='(!,NMe!3); +!CH3:='(!,CH3); !CN:='(!,CN); !iPr:=!Me!:='(!,iPr); !tBu:='(!,tBu); +!CHO:='(!,CHO); !NO2:='(!,NO2); !Cl:='(!,Cl); !Br:='(!,Br); !F:='(!,F); +!?3:='(!,?3); !?4:='(!,?4); !?5:='(!,?5); !?6:='(!,?6); !?7:='(!,?7); !?8:='(!,?8); !Ph:='(!,Ph); +%-------------------------------------------------------------------------------------------------- +!2OH:='(!,!,OH); !2COOH:='(!,!,COOH); !2NH2:='(!,!,NH2); !2CN:='(!,!,CN); !2NO2:='(!,!,NO2); +!2CH3:='(!,!,CH3); !2CHO:='(!,!,CHO); !2SH:='(!,!SH); !2tBu:='(!,!,tBu); !2Cl:='(!,!,Cl); +!2?5:='(!,!,?5); !2?6:='(!,!,?6); !2Ph:='(!,!,Ph); +%-------------------------------------------------------------------------------------------------- +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); +%-------------------------------------------------------------------------------------------------- +xCH3:='(/H,/H^60,60,H); xNH:='(N,/H); xNH2:='(N,/H,60,H); xNO2:='(N,//O,60~dm,O); xOH:='(O,!,H); +xCHO:='(//O,!,H); xCOOH:='(//O,!,O,!,H); xCN:='(!~tm,N); xSH:='(S,!,H); %================================================================================================== init_par(parameter_list); %-------------------------------------------------------------------------------------------------- -%%%%%%message "count of parts_usr =" & decimal(parts_usr); +parts_emb_end:=parts_usr; +%%%%% message "parts_emb =" & decimal(parts_emb_start) &" => " & decimal(parts_emb_end); %-------------------------------------------------------------------------------------------------- def expand_set= - CH3:='(/H,/H^60,60,H); NH:='(N,/H); NH2:='(N,/H,60,H); NO2:='(N,//O,60~dm,O); OH:='(O,!,H); - CHO:='(//O,!,H); COOH:='(//O,!,O,!,H); CN:='(!~tm,N); SH:='(S,!,H); !CH3:='(!,CH3); !OH:='(!,OH); - !NH2:='(!,NH2); !CHO:='(!,CHO); !COOH:='(!,COOH); !CN:='(!,CN); !SH:='(!,SH); !NO2:='(!,NO2); + CH3:=xCH3; NH:=xNH; NH2:=xNH2; NO2:=xNO2; OH:=xOH; CHO:=xCHO; COOH:=xCOOH; CN:=xCN; SH:=xSH; + !CH3:='(!,CH3); !OH:='(!,OH); !NH2:='(!,NH2); !CHO:='(!,CHO); !COOH:='(!,COOH); !CN:='(!,CN); + !SH:='(!,SH); !NO2:='(!,NO2); !2CH3:='(!,!CH3); !2OH:='(!,!OH); !2NH2:='(!,!NH2); + !2CHO:='(!,!CHO); !2COOH:='(!,!COOH); !2CN:='(!,!CN); !2SH:='(!,!SH); !2NO2:='(!,!NO2); enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def char_size_set(expr WD)(expr HT)(expr STR)= @@ -1454,7 +1447,7 @@ fi endgroup enddef; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -def blank_str:= " " enddef; +def blank_str:= " " enddef; vardef fixed_r(expr n)(expr s)= (substring(0,n-length(s)) of blank_str)&s enddef; vardef fixed_l(expr n)(expr s)= s&(substring(0,n-length(s)) of blank_str) enddef; vardef fdr(expr n)(expr s)=fixed_r(n)(decimal(s)) enddef; @@ -1496,25 +1489,25 @@ def STb(expr ATOM)(text TXT)= enddef; %================================================================================================== tbl_cnt:=0; -STa("C" ,12.0107, 12.0000000); STa("H" , 1.00794, 1.00782503223); -STa("{Al}",26.9815, 26.98153853); STa("{As}",74.9216, 74.92159457); -STa("B" ,10.811, 11.00930536); STa("{Br}",79.904, 78.9183376); -STa("{Ca}",40.078, 39.962590863); STa("{Cl}",35.453, 34.968852); -STa("{Co}",58.933194, 58.93319429); STa("{Cr}",51.9961, 51.94050623); -STa("{Cu}",63.546, 62.92959772); STa("D" ,2.012, 2.01410177812); -STa("F" ,18.9984, 18.99840316273); STa("{Fe}",55.845, 55.93493633); -STa("{Hg}",200.59, 201.97064340); STa("I" ,126.90447,126.9044719); -STa("K" ,39.0983, 38.9637064864); STa("{Li}",6.941, 7.0160034366); -STa("{Mg}",24.305, 23.985041697); STa("{Mn}",54.938044, 54.93804391); -STa("N" ,14.0067, 14.00307400443); STa("{N^+^}",14.0067, 14.00307400443); +STa("C" ,12.0107, 12.0000000); STa("H" , 1.00794, 1.00782503223); +STa("{Al}",26.9815, 26.98153853); STa("{As}",74.9216, 74.92159457); +STa("B" ,10.811, 11.00930536); STa("{Br}",79.904, 78.9183376); +STa("{Ca}",40.078, 39.962590863); STa("{Cl}",35.453, 34.968852); +STa("{Co}",58.933194, 58.93319429); STa("{Cr}",51.9961, 51.94050623); +STa("{Cu}",63.546, 62.92959772); STa("D" ,2.012, 2.01410177812); +STa("F" ,18.9984, 18.99840316273); STa("{Fe}",55.845, 55.93493633); +STa("{Hg}",200.59, 201.97064340); STa("I" ,126.90447,126.9044719); +STa("K" ,39.0983, 38.9637064864); STa("{Li}",6.941, 7.0160034366); +STa("{Mg}",24.305, 23.985041697); STa("{Mn}",54.938044, 54.93804391); +STa("N" ,14.0067, 14.00307400443); STa("{N^+^}",14.0067, 14.00307400443); STa("{N^-^}",14.0067, 14.00307400443); -STa("{Na}",22.98977, 22.9897692820); STa("{Ni}",58.693, 57.93534241); -STa("O" ,15.9994, 15.99491461957); STa("{O^-^}",15.9994, 15.99491461957); -STa("{O^p^}",15.9994, 15.99491461957); STa("P" ,30.973762, 30.97376199842); -STa("S" ,32.065, 31.9720711744); STa("{S^p^}",32.065, 31.9720711744); +STa("{Na}",22.98977, 22.9897692820); STa("{Ni}",58.693, 57.93534241); +STa("O" ,15.9994, 15.99491461957); STa("{O^-^}",15.9994, 15.99491461957); +STa("{O^p^}",15.9994, 15.99491461957); STa("P" ,30.973762, 30.97376199842); +STa("S" ,32.065, 31.9720711744); STa("{S^p^}",32.065, 31.9720711744); STa("{S^m^}",32.065, 31.9720711744); -STa("{Se}",78.971, 79.9165218); STa("{Si}",28.0855, 27.97692653465); -STa("{Sn}",118.71, 119.90220163); STa("{Ti}",47.867, 47.94794198); +STa("{Se}",78.971, 79.9165218); STa("{Si}",28.0855, 27.97692653465); +STa("{Sn}",118.71, 119.90220163); STa("{Ti}",47.867, 47.94794198); STa("{Zn}",65.409, 63.92914201); %-------------------------------------------------------------------------------------------------- STb("{H_2_}")("H","H"); STb("OH")("O","H"); STb("O{Na}")("O","{Na}"); STb("CN")("C","N"); @@ -1612,7 +1605,7 @@ def proc_report_out= out_file_name:=out_file_rep; printf "------------------------------------------------------------------"; printf " Molecular name = "& inf_EN; - printf " Warnings = "&fdr(3)(warning_cnt)&" / Expanded command = "&decimal(cntD[0]); + printf " Warnings = "&fdr(3)(warning_cnt)&" / Expanded command = "&decimal(cntD[1]); printf " Width * Height = " & fdr(10)(mol_wd)&" * "&fdr(10)(mol_ht); printf " Shift width * height = "& fdr(10)(minX)&" * "&fdr(10)(minY); printf " Bond length = "&fdr(3)(blen)&" Atom size = "&fdr(3)(atom_wd); @@ -1736,4 +1729,4 @@ def proc_bond_class(expr n)= else: nA:=1; nB:=0; fi enddef; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%-------------------------------------------------------------------------------------------------- |