texlive[53550] Master/texmf-dist: mcf2graph (26jan20)

commits+karl at tug.org commits+karl at tug.org
Sun Jan 26 23:19:38 CET 2020


Revision: 53550
          http://tug.org/svn/texlive?view=revision&revision=53550
Author:   karl
Date:     2020-01-26 23:19:38 +0100 (Sun, 26 Jan 2020)
Log Message:
-----------
mcf2graph (26jan20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
    trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
    trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2020-01-26 22:19:22 UTC (rev 53549)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/CHANGELOG	2020-01-26 22:19:38 UTC (rev 53550)
@@ -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

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/README
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2020-01-26 22:19:22 UTC (rev 53549)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/README	2020-01-26 22:19:38 UTC (rev 53550)
@@ -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 at gmail.com
  Located at : http://www.ctan.org/pkg/mcf2graph
 ********************************************************************************

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf	2020-01-26 22:19:22 UTC (rev 53549)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_exa_soc.mf	2020-01-26 22:19:38 UTC (rev 53550)
@@ -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 @@
 %%%%     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 @@
 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 @@
 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

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_example.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps	2020-01-26 22:19:22 UTC (rev 53549)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc-064.mps	2020-01-26 22:19:38 UTC (rev 53550)
@@ -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

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf	2020-01-26 22:19:22 UTC (rev 53549)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_man_soc.mf	2020-01-26 22:19:38 UTC (rev 53550)
@@ -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 @@
   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")

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2020-01-26 22:19:22 UTC (rev 53549)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_manual.tex	2020-01-26 22:19:38 UTC (rev 53550)
@@ -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 @@
 \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
 %-----------------------------------------------------------------------------

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex
===================================================================
--- trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex	2020-01-26 22:19:22 UTC (rev 53549)
+++ trunk/Master/texmf-dist/doc/metapost/mcf2graph/mcf_mplib_exa.tex	2020-01-26 22:19:38 UTC (rev 53550)
@@ -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}%

Modified: trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf
===================================================================
--- trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf	2020-01-26 22:19:22 UTC (rev 53549)
+++ trunk/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf	2020-01-26 22:19:38 UTC (rev 53550)
@@ -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 @@
   %-----------------------------------------------------------------------------------------
   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 @@
 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     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,12 +184,11 @@
 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,
@@ -197,12 +195,12 @@
   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 @@
 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  == (_rot_ang,n) enddef;
   def ``primary n == (_chg_len,n) enddef;
-  def <primary n  == (_rot_ang,n) enddef;
-  def >>primary n == (_chg_env,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 @@
 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 @@
     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 @@
   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,18 +747,13 @@
   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;
@@ -771,7 +760,7 @@
     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 @@
       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,8 +847,8 @@
   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;
 %-------------------------------------------------------------------------------------------------
@@ -866,15 +855,15 @@
 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 @@
   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 @@
   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,31 +1006,27 @@
 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)]);
@@ -1055,7 +1033,6 @@
   else:
   fi
   endfor
-  endgroup
 enddef;
 %-------------------------------------------------------------------------------------------------
 def add_bond(expr ROT)=
@@ -1070,9 +1047,7 @@
     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 @@
 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 @@
              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 @@
 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 @@
 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 @@
 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 @@
   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 @@
   else: nA:=1; nB:=0;
   fi
 enddef;
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%--------------------------------------------------------------------------------------------------



More information about the tex-live-commits mailing list