diff options
Diffstat (limited to 'Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf')
-rw-r--r-- | Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf | 104 |
1 files changed, 64 insertions, 40 deletions
diff --git a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf index 364e83f1a5f..289739d439b 100644 --- a/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf +++ b/Master/texmf-dist/metapost/mcf2graph/mcf2graph.mf @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mcf2graph ver 4.42 Copyright (c) 2013-2019 Akira Yamaji +% mcf2graph ver 4.43 Copyright (c) 2013-2019 Akira Yamaji % % Permission is hereby granted, free of charge, to any person obtaining a copy of this software % and associated documentation files (the "Software"), to deal in the Software without restriction, @@ -36,7 +36,7 @@ % Set to use plain.mp (label,arrow,atom) : mpost -s labeloffset=2 FILENAME %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% tracingstats:=1; -message " This is mcf2graph ver 4.42 2019.05"; +message " This is mcf2graph ver 4.43 2019.06"; %------------------------------------------------------------------------------------------------- newinternal char_num,str_cnt,sub_usr,sub_int,tbl_cnt,sharp_char; numeric save_num[],comD[][],parD[][],cntD[],tbl_atom[],tbl_subst[][], @@ -131,7 +131,7 @@ def fat(expr a,b)= mposition:=b; a enddef; ratio_chain_ring:= 0.66; ratio_atom_bond:=0.36; ratio_thickness_bond:=0.015; ratio_thickness_char:=0.1; ratio_char_bond:=1.5; ratio_bondgap_bond:=0.15; ratio_zebragap_bond:=0.12; -ratio_zebra_black:=0.4; ratio_wedge_bond:=0.12; ratio_atomgap_atom:=0.050; +ratio_zebra_black:=0.4; ratio_wedge_bond:=0.12; ratio_atomgap_atom:=0.040; offset_thickness:=0.2bp; offset_bond_gap:=0.3bp; offset_zebra_gap:=0.1bp; offset_atom:=0.8pt; offset_wedge:=0.4bp; max_labelsize:=20mm; thickness_fframe:=0.2bp; thickness_mframe:=0.2bp; thickness_aframe:=0.1bp; @@ -488,16 +488,17 @@ enddef; %-------------------------------------------------------------------------------------------------- def add_mole(text TXT)= begingroup - save w,h,n,l,p,am,aw,A,B,plus,minus,lonepair,**,/*; + save w,h,n,l,p,am,aw,A,B,plus,minus,lonepair,**,<<,/*; numeric A[]dir,B[]up,A[]ang,B[]ang; pair p[],A[],B[],B[]s,B[]e,B[]m,A[]up,A[]left,A[]right,A[]down, B[]up,B[]left,B[]right,B[]down; path B[]; ext_setup; - def plus=circled_plus_add enddef; - def minus=circled_minus_add enddef; - def lonepair=lone_pair_add enddef; - let **=scaled; + def plus = circled_plus_add enddef; + def minus = circled_minus_add enddef; + def lonepair = lone_pair_add enddef; + let ** = scaled; + let << = rotated; primarydef a /* b = point b of a enddef; w:=mol_wd; h:=mol_ht; l:=blength; aw:=atom_wd; p0:=(minX,minY); @@ -1320,21 +1321,26 @@ def char_size_set(expr WD)(expr HT)(expr STR)= endfor enddef; %------------------------------------------------------------------------------------------------- -char_size_set( 1)( 1)("CGHMNOQ"); -char_size_set( .9)( 1)("ABDEFIJKLPRSTUVWXYZ/><m"); -char_size_set( .7)( 1)(" ()[]0123456789nhj=_tfgpq"); +char_size_set( 1)( 1)("CGHMNOQW"); +char_size_set( .9)( 1)("ABDFIJKPRSTUVXY/><#\%@"); +char_size_set( .8)( 1)("ELZ&"); +char_size_set( .7)( 1)(" ()[]0123456789nh=tfg?~"); +char_size_set( .7)( .9)("$"); char_size_set( .7)( .7)("-+*"); char_size_set(.45)(.95)("l"); -char_size_set(.75)( .8)("o"); +char_size_set(.75)( .8)("opq"); char_size_set( .8)( .8)("e"); -char_size_set( .7)( .8)("abdcksuvxzwry"); +char_size_set( .9)( .8)("wm"); +char_size_set( .7)( .8)("abdcksuvrxyz"); char_size_set(.35)( .9)("i"); +char_size_set( .5)( .9)("j"); +char_size_set(.35)( 1)("!|"); char_size_set( .4)( 1)(".,:;'`^"); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def draw_char(expr CHR,POS,WD,PEN,NUM)= begingroup save Z,aW,aH,fW,fH,hW,hW,hH,fP,hP,zO,zOh,pos,dw,dwh,dwv,cdw,ppcs,sbp,sC; -path zO,zOh; +path zO,zOh,zOa; string sC; pair Z[],pos; %------------------------------------------------------------------------------------------------- @@ -1355,8 +1361,11 @@ fW:=aW-hP; hW:=.5aW; fH:=aH-hP; hH:=.5aH; Z01:=( 0,hP); Z02:=(hP, 0); Z03:=(hP,hP); Z04:=(aW,hP); Z05:=(fW, 0); Z06:=(hW,aH); Z07:=(hW, 0); Z08:=( 0,hH); Z09:=(hP,hH); Z10:=(fW,hH); Z11:=(hW,aW); Z12:=( 0,fH); Z13:=(hP,fH); Z14:=(hW,fH); Z15:=(fW,aH); Z16:=(aW,fH); Z17:=(aW,hH); Z18:=(hP,aH); Z19:=(hW,hP); Z20:=(hW,hH); Z21:=(fW,hP); -zO:=Z10..(.8aW,fH)..tension 1.5..(.2aW,fH)..Z09..(.2aW,hP)..tension 1.5..(.8aW,hP)..cycle; +Z22:=(fW,fH); Z23:=(hW,fW); +zO:=Z10..(.8aW,fH-.5hP)..tension 1.5..(.2aW,fH-.5hP)..Z09.. + (.2aW,1.5hP)..tension 1.5..(.8aW,1.5hP)..cycle; zOh:=(hP,.25aH)..Z19..(fW,.25aH)..Z20..cycle; +zOa:=(hP,.35aH)..(hW,hP)..(fW,.35aH)..(hW,.7aH)..cycle; %------------------------------------------------------------------------------------------------- ppcs fP; if sC="A": dwvs(1.14) Z02--Z06--Z05; dw .33[Z02,Z06]--.33[Z05,Z06]; @@ -1364,24 +1373,25 @@ ef sC="B": dw Z13--Z14{right}..(.9fH,.75aH)..{left}Z20--Z09--Z20{right}..(.9fH,. {left}Z19--Z03; dwv Z02--Z18; ef sC="C": cdw sbp(.05,.95)zO; ef sC="D": dw Z13--Z14..Z10..Z19--Z03; dwv Z02--Z18; -ef sC="E": pickup pensquare scaled fP; dw Z21--Z03--Z13--(fW,fH); dw Z09--Z10; +ef sC="E": pickup pensquare scaled fP; dw Z21--Z03--Z13--Z22; dw Z09--Z10; ef sC="F": dwh Z12--Z16; dwh (0,.45aH)--(fW,.45aH); dw Z02--Z13; ef sC="G": cdw sbp(.06,.97)zO; dwh bot Z20-- bot Z17; ef sC="H": dwv Z02--Z18; dw Z09--Z10; dwv Z05--Z15; ef sC="I": dwv Z19--Z14; dwh (hW-fP,hP)--(hW+fP,hP); dwh (hW-fP,fH)--(hW+fP,fH); ef sC="J": cdw Z09..(hP,.4aH){down}..{right}Z19{right}..{up}(fW,.4aH)..Z15; -ef sC="K": cdw Z02--Z18; cdw .5[.45[Z02,Z18],Z16]--Z05; cdw .45[Z02,Z18]--Z16; +ef sC="K": cdw Z02--Z18; cdw .35[.45[Z02,Z18],Z16]--Z05; cdw .35[Z02,Z18]--Z16; ef sC="L": dwh Z04--Z01; dwv Z02--Z18; ef sC="M": dwv Z02--Z18; dwvs(1.14) Z18--Z19--Z15; dwv Z15--Z05; ef sC="N": dwv Z02--Z18; dwv Z05--Z15; dwvs(1.4) (1.4hP,aH)--(aW-1.4hP,0); ef sC="O": dw zO; -ef sC="P": dwv Z02--Z18; dw Z13--(.3aW,fH){right}..(fW,.7aH)..{left}(.3aW,.44aH)..(hP,.44aH); +ef sC="P": dwv Z02--Z18; dw Z13--(.65aW,fH){right}..(fW,.7aH)..{left}(.65aW,.44aH)..(hP,.44aH); ef sC="Q": dw zO; dw (.6aW,.4aH)--Z05; -ef sC="R": dwv Z02--Z18; dw Z13--(.3aW,fH){right}..(fW,.7aH)..{left}(.3aW,.44aH)..(hP,.44aH); +ef sC="R": dwv Z02--Z18; dw Z13--(.65aW,fH){right}..(fW,.7aH)..{left}(.65aW,.44aH)..(hP,.44aH); cdw Z05{up}..{left}(hW,.44aH); ef sC="S": cdw sbp(.05,.45)zO; cdw sbp(.55,.95)zO; dw (fW,.3aH){up}..{up}(hP,.7aH); ef sC="T": dwh Z12--Z16; dwv .5[Z12,Z16]--Z07; ef sC="U": cdw Z18..Z09{down}..{right}Z19{right}..{up}Z10..Z15; +ef sC="U": cdw Z18..(hP,.4fH){down}..{right}Z19{right}..{up}(fW,.4fH)..Z15; ef sC="V": dwvs(1.2) Z18--Z07--Z15; ef sC="W": dwvs(1.08) Z18--(.25aW,0)--Z06--(.75aW,0)--Z15; ef sC="X": dwvs(1.4) Z18..Z05; dwvs(1.4) Z02..Z15; @@ -1392,20 +1402,20 @@ ef sC="b": dw Z19..Z10..Z11..Z09..cycle; dwv Z02--(hP,1.3aH) ef sC="c": cdw sbp(.06,.94)Z10..Z14..Z09..Z19..cycle; ef sC="d": dw Z19..Z10..Z11..Z09..cycle; dwv Z05--(fW,1.3aH); ef sC="e": cdw sbp(0,.92)Z10..Z14..Z09..Z19..cycle; dw Z10--Z09; -ef sC="f": cdw (hW,0)--(hW,.75aH){up}..(.75aW,fH)..{down}(fW,.8aH); dwh Z08--Z17; -ef sC="g": dw Z19..Z10..Z11..Z09..cycle; cdw (Z15--Z21..(hW,0)..(.1aW,fP)) shifted (0,-.3aH); +ef sC="f": cdw (.4fW,0)--(.4fW,.75aH){up}..(.75aW,fH)..{down}(fW,.8aH); dwh Z08--Z17; +ef sC="g": dw zOa; dw sbp(0,.5)zOh shifted (0,-.5fH); cdw (aW-hP,.7aH)--(aW-hP,-.25aH); ef sC="h": cdw Z02..(hP,.3aH){up}..(hW,.7fH)..{down}(fW,.3aH)..Z05; dwv (hP,.3aH)--Z18; ef sC="i": dwv Z07--(hW,.7aH); ppcs 1.4fP; dw Z14; -ef sC="j": dwv Z19--(hW,.63aH); dw Z19..(.25aW,-hP)..Z01; ppcs 1.4fP; dw Z14; -ef sC="k": dwv Z02--Z18; cdw .5[.45[Z02,Z18],Z16]--Z05; cdw .45[Z02,Z18]--Z16; +ef sC="j": cdw (fW,.7aH)--Z21..(.25aW,-.66fP)..Z03; ppcs 1.4fP; dw Z22; +ef sC="k": dwv Z02--(hP,1.3fH); cdw .5[Z02,Z18]--Z05; cdw .5[Z02,Z18]--Z16; ef sC="l": dwv Z07--Z06; dwh Z14--Z13; dwh Z19--Z21; -ef sC="m": cdw Z02..(hP,.3aH){up}..(.28aW,.7fH)..{down}(hW,.3aH)..Z07; - cdw (hW,.3aH){up}..(.7aW,.7aH-hP)..{down}(fW,.3aH)..Z05; dwv (hP,.3aH)--(hP,.7aH); -ef sC="n": cdw Z02{up}..(hW,.8fH)..{down}(fW,.5aH)..Z05; dwv (hP,.4aH)--(hP,.8aH); +ef sC="m": cdw Z02..(hP,.3aH){up}..(.28aW,fH)..{down}(hW,.3aH)..Z07; + cdw (hW,.6aH){up}..(.7aW,aH-hP)..{down}(fW,.6aH)..Z05; dwv (hP,.3aH)--(hP,aH); +ef sC="n": cdw Z02{up}..(hW,.8fH)..{down}(fW,.5aH)..Z05; dwv (hP,0)--(hP,.8aH); ef sC="o": dw Z19..Z10..Z14..Z09..cycle; -ef sC="p": dw Z19..Z10..Z11..Z09..cycle; dwv (hP,.7aH)--(hP,-.3aH); -ef sC="q": dw Z19..Z10..Z11..Z09..cycle; dwv (fW,.7aH)--(fW,-.3aH); -ef sC="r": cdw (sbp(.35,.72)Z19..Z10..Z14..Z09..cycle) shifted(0,-fP); dwv Z02--Z18; +ef sC="p": dw Z19..Z10..Z14..Z09..cycle; dwv (hP,aH)--(hP,-.3aH); +ef sC="q": dw Z19..Z10..Z14..Z09..cycle; dwv (fW,aH)--(fW,-.3aH); +ef sC="r": cdw (sbp(.33,.72)Z19..Z10..Z14..Z09..cycle) shifted(0,-hP); dwv Z02--Z18; ef sC="s": cdw sbp(.05,.45)zO; cdw sbp(.55,.95)zO; dw (fW,.3aH){up}..{up}(hP,.7aH); ef sC="t": dwv Z07--Z06; dwh (0,.66aH)--(aW,.66aH); ef sC="u": cdw Z18..(hP,.55aH){down}..Z19..(fW,.55aH){up}..Z15; dwv Z15--Z05; @@ -1415,16 +1425,17 @@ ef sC="x": dwvs(1.4) Z18--Z05; dwvs(1.4) Z15--Z02; ef sC="y": dwvs(1.4) (Z18--Z20) shifted (0,-.3aH); dwvs(1.4) (Z15--Z02) shifted (0,-.3aH); ef sC="z": dwh Z12--Z16; dwvs(1.4) (1.4hP,fP)--(aW-1.4hP,aH-fP); dwh Z01--Z04; ef sC="0": dw Z09...Z14...Z10...Z19...cycle; -ef sC="1": dwv Z07--Z06--(hW-hP,fH)--(hW-hP,aH-2.5hP); -ef sC="2": cdw sbp(0,.71)(hP,1.3hP)--(fW,.55aH)..Z14..(hP,.5aH)..(hW,.27aH); dwh Z04--Z01; -ef sC="3": cdw sbp(0,.77)zOh; cdw sbp(.23,.95)zOh shifted (0,.5aH-hP); dwh (.3aW,hH)--Z20; -ef sC="4": dwh (0,.3aH)--(aW,.3aH); dwv (.7aW,0)--(.7aW,aH)--(1.2hP,.3aH+hP); -ef sC="5": dwh Z12--Z16; dwv Z13--(hP,.49aH); cdw (.5hP,.15aH)..(.65aW,1.3hP)..(fW,.3aH).. - (hW,.6aH)..(.6hP,.53aH); -ef sC="6": dw Z19..(fW,.5fW)..(hW,fW)..(hP,.5fW)..cycle; cdw (hP,.4aH)--Z06; +ef sC="1": dwv Z07--(hW,aH-.3hP)--(hW-fP,aH-fP)--(hW-fP,aH-1.5fP); +ef sC="2": cdw (hP,1.3hP)..(.4fW,.35fH)..(fW,.65aH)..Z14..(hP,.65aH); dwh Z04--Z01; +ef sC="3": cdw sbp(0,.75)zOh; cdw sbp(.25,.98)zOh shifted (0,hH-hP); dwh (.3aW,hH)--Z20; +ef sC="4": dwh (0,.25aH)--(aW,.25aH); dwv (.75aW,0)--(.75aW,aH)--(1.2hP,.25aH+hP); + dwv (.75aW+.5hP,aH)--(1.7hP,.25aH+hP); +ef sC="5": dwh Z12--Z16; dwv Z13--(hP,.55fH); + cdw (.5hP,.18aH)..(.65aW,1.3hP)..(fW,.4aH)..(hW,.63aH)..(.7hP,.56aH); +ef sC="6": dw Z19..(fW,.5fW)..Z23..(hP,.5fW)..cycle; cdw (.8fP,hH)--Z06; ef sC="7": dwh (0,.fH)--Z16; dwvs(1.2) (aW-1.2hP,aH-fP)--(.4aW,0); ef sC="8": dw zOh; dw (hP,.75aH)...Z14...(fW,.75aH)...Z20...cycle; -ef sC="9": dw (Z19..(fW,.5fW)..(hW,fW)..(hP,.5fW)..cycle) shifted (0,.32aH); cdw (fW,.6aH)--Z07; +ef sC="9": dw (Z19..(fW,.5fW)..Z23..(hP,.5fW)..cycle) shifted (0,.32aH); cdw (fW-.45fP,hH)--Z07; ef sC=" ": ef sC=".": ppcs 1.4fP; dw Z19; ef sC=",": dw (hW+.5fP,hP)..(hW+.3fP,-fP)..(hW-.5fP,hP-2fP); ppcs 1.4fP; dw Z19; @@ -1434,16 +1445,29 @@ ef sC=":": ppcs 1.4fP; dw (hW,.2aH); dw (hW,.8aH); ef sC=";": dw (hW+hP,.2aH)..(hW-hP,.2aH-2fP); ppcs 1.4fP; dw (hW,.2aH); dw (hW,.8aH); ef sC="(": dw Z19...Z09...Z14; ef sC=")": dw Z19...Z10...Z14; -ef sC="[": dwv Z07--Z06; dwh Z14--(fW,fH); dwh Z19--Z21; +ef sC="[": dwv Z07--Z06; dwh Z14--Z22; dwh Z19--Z21; ef sC="]": dwv Z07--Z06; dwh Z14--Z13; dwh Z03--Z19; ef sC="<": cdw Z01--Z17--Z12; ef sC=">": cdw Z16--Z08--Z04; ef sC="-": dwh Z09--Z10; -ef sC="_": dwh Z03--Z21; ef sC="=": dwh (hP,.3aH)--(fW,.3aH); dwh (hP,.6aH)--(fW,.6aH); -ef sC="/": dw (fW,fH)..Z01; +ef sC="/": dw Z22..Z01; ef sC="+": dwv Z19--Z14; dwh Z09--Z10; ef sC="*": dw Z19--Z14; dw Z09--Z10; dw (.2aW,.2aH)--(.8aW,.8aH); dw (.2aW,.8aH)--(.8aW,.2aH); +ef sC="$": cdw sbp(.05,.45)zO; cdw sbp(.55,.95)zO; dw (fW,.3aH){up}..{up}(hP,.7aH); + dwv (hW,-fP)--(hW,fH+1.5fP); +ef sC="#": dwv (.3aW,0)--(.3aW,aH); dwv (.7aW,0)--(.7aW,aH); + dwh (0,.3aH)--(aW,.3aH); dwh (0,.7aH)--(aW,.7aH); +ef sC="!": dwv Z06--(hW,.25aH); ppcs 1.4fP; dw Z07; +ef sC="?": cdw (hP,.75fH)..(hW,aH)..(fW,.75fH)..(hW,.4fH)--(hW,.2fH); ppcs 1.4fP; dw Z07; +ef sC="|": dwv Z07--Z06; +ef sC="\": dw Z13--Z21; +ef sC="%": dw Z22..Z01; dw fullcircle scaled 2.7fP shifted (.2fH,.9fH); + dw fullcircle scaled 2.7fP shifted (.73fH,.20fH); +ef sC="~": dw (hP,.8aH)..(.3aW,.9aH)..(.6aW,.7aH)..(fW,.8aH); +ef sC="&": cdw Z21..(hW,.35aH)..(.25aW,.75aH)..(hW,.fH)..(.75aW,.75fH)..(hP,.3aH)..(hW,.hP)..Z10; +ef sC="@": cdw sbp(0,.7)zO; dwv (fW,hH)--(fW,0); + dw (fW,.45aH)..(.7aW,.75aH)..(.3aW,.45aH)..(.7aW,.15aH)..cycle; else: fi endgroup |