summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-07-19 03:00:51 +0000
committerNorbert Preining <norbert@preining.info>2022-07-19 03:00:51 +0000
commit8ff4930a7a6c0dcfef1066c5537747570c7967b3 (patch)
tree41b8e0712644eb7027b8e1be0ba48166b291a8fd /graphics
parentfd8e2e79d92b88ea6e5598d3edc6972750a43e38 (diff)
CTAN sync 202207190300
Diffstat (limited to 'graphics')
-rw-r--r--graphics/mcf2graph/CHANGELOG6
-rw-r--r--graphics/mcf2graph/README4
-rw-r--r--graphics/mcf2graph/mcf2graph.mp105
-rw-r--r--graphics/mcf2graph/mcf_exa_code.pdfbin78730 -> 79537 bytes
-rw-r--r--graphics/mcf2graph/mcf_exa_code.tex4
-rw-r--r--graphics/mcf2graph/mcf_exa_soc.mp7
-rw-r--r--graphics/mcf2graph/mcf_example.pdfbin434278 -> 432324 bytes
-rw-r--r--graphics/mcf2graph/mcf_example.tex4
-rw-r--r--graphics/mcf2graph/mcf_library.mcf107
-rw-r--r--graphics/mcf2graph/mcf_man_soc.mp6
-rw-r--r--graphics/mcf2graph/mcf_manual.pdfbin289263 -> 289436 bytes
-rw-r--r--graphics/mcf2graph/mcf_manual.tex2
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.pdfbin195848 -> 196059 bytes
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.tex4
-rw-r--r--graphics/pgf/contrib/jigsaw/README.md2
-rw-r--r--graphics/pgf/contrib/jigsaw/jigsaw-doc.pdfbin167851 -> 176773 bytes
-rw-r--r--graphics/pgf/contrib/jigsaw/jigsaw-doc.tex39
-rw-r--r--graphics/pgf/contrib/jigsaw/jigsaw.sty47
18 files changed, 207 insertions, 130 deletions
diff --git a/graphics/mcf2graph/CHANGELOG b/graphics/mcf2graph/CHANGELOG
index 28629b6d28..88068648b1 100644
--- a/graphics/mcf2graph/CHANGELOG
+++ b/graphics/mcf2graph/CHANGELOG
@@ -1,6 +1,10 @@
*******************************************************************************
- Changelog of mcf2graph software package by Akira Yamaji 2022-06-12
+ Changelog of mcf2graph software package by Akira Yamaji 2022-07-18
*******************************************************************************
+[ver. 4.86 / 2022-07-18]
+ -fix bug in function mc_query()
+ -update mcf_library.mcf
+
[ver. 4.85 / 2022-06-12]
-fix bug in function mc_query()
-update mcf_library.mcf
diff --git a/graphics/mcf2graph/README b/graphics/mcf2graph/README
index ce2a661f32..585316422b 100644
--- a/graphics/mcf2graph/README
+++ b/graphics/mcf2graph/README
@@ -1,7 +1,7 @@
********************************************************************************
mcf2graph : Convert Molecular Coding Format to graphics with MetaPost
Author : Akira Yamaji
- version : 4.85 2022-06-12
+ version : 4.86 2022-07-18
E-mail : mcf2graph@gmail.com
Located at : http://www.ctan.org/pkg/mcf2graph
********************************************************************************
@@ -48,7 +48,7 @@
(11) >mpost -s ahlength=7 filename => output report file
4. License
- mcf2graph ver 4.84 Copyright (c) 2013-2022 Akira Yamaji
+ mcf2graph ver 4.86 Copyright (c) 2013-2022 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
diff --git a/graphics/mcf2graph/mcf2graph.mp b/graphics/mcf2graph/mcf2graph.mp
index a0fec4985f..d50800ebcb 100644
--- a/graphics/mcf2graph/mcf2graph.mp
+++ b/graphics/mcf2graph/mcf2graph.mp
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.85 Copyright (c) 2013-2022 Akira Yamaji
+% mcf2graph ver 4.86 Copyright (c) 2013-2022 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,
@@ -33,7 +33,7 @@
% Set output MOL file (V3000) : mpost -s ahlength=6 FILENAME
% Set output report : mpost -s ahlength=7 FILENAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-message "* This is mcf2graph ver 4.85 2022.06.12";
+message "* This is mcf2graph ver 4.86 2022.07.18";
tracingstats:=1; prologues:=3; warningcheck:=0;
%-------------------------------------------------------------------------------------------------
numeric save_num[],parts_com[][],parts_par[][],parts_cnt[],tbl_atom[],tbl_group[][],tbl_atom_wt[],
@@ -250,7 +250,7 @@ def endfigm=
fi
%----------------------------------------------------------------------------------------
if scan_bit(sw_frame,Outside): draw_frame((0,0),fig_wd,fig_ht,thickness_frame);
- else: draw_corner((0,0),fig_wd,fig_ht,0.01);
+ else: draw_corner((0,0),fig_wd,fig_ht,0.004);
fi
if scan_bit(sw_frame,Inside):
draw_frame((margin_lr,margin_tb),fig_wd-2margin_lr,fig_ht-2margin_tb,thickness_frame);
@@ -316,10 +316,9 @@ def pickup_data_unit(expr t,v,f)=
endfor
fi
else:
- inf_num:=split_char(sS,";");
+ inf_num:=split_str(sS,";")(arg_s);
for i=1 upto inf_num:
- sI:=arg_s[i]; nA:=scan_char(":",sI,0,1);
- tag_a[i]:=substring(0,nA-1) of sI; var_a[i]:=substring(nA,length(sI)) of sI;
+ get_tag_var(arg_s[i])(tag_a[i],var_a[i]);
if t=tag_a[i]: if v=var_a[i]: f_match:=1; fi fi
endfor
fi
@@ -362,7 +361,7 @@ def read_mcf(expr n)(text t)=
| :=mark_adress; || :=reset_adress; ##:=reset_length; _:=Me;
\:=0; \\:=zero_dm; *\:=zero_wf; \*:=zero_zf; *\*:=zero_wv;
let = ==op_equ; let : ==op_col; let ^==op_hat; let ~==op_til; let > ==op_lth; let `==op_bqu;
- def $==abs_adress enddef; def &$==&.$ enddef; def '==read_id enddef;
+ def $==abs_adress enddef; def &$==&.$ enddef; def '==read_id enddef;
def {==read_number( enddef; def CP == com_par enddef; def CA == com_par_adr enddef;
let }==); let @$==jump_atom_abs; let < ==rot_angle; let @==jump_atom; let &==cyc_atom;
let #==chg_length; let /==group_si; let //==group_dm; let */==group_wf; let /*==group_zf;
@@ -1343,16 +1342,12 @@ def proc_mc_out(expr f)=
message "["&decimal(fig_num)&"]:"&inf_EN;
file_output:="temp-mc.aux";
if mc_length<100:
- nN:=scan_chars(mc,","); nL:=length(mc); nA:=0;
- forever:
- for i=nN downto 1:
- if at_char[i]<=nA+mc_length:
- printf substring(nA,at_char[i]) of mc; nA:=at_char[i]; exitif true; fi
- endfor
- if nL-nA<=mc_length: printf substring(nA,nL) of mc; exitif true; fi
- endfor
- else:
- for i=1 upto mc_row: printf (substring(0,mc_indent[i]) of blanks)&mc[i]; endfor fi
+ nN:=split_str(mc,",")(arg_s); nA:=0; temps:="";
+ for i=1 upto nN:
+ if i=nN: temps:=temps&arg_s[i]; printf temps;
+ ef at_char[i+1]-nA>mc_length: nA:=at_char[i]; printf temps&arg_s[i]&","; temps:="";
+ else: temps:=temps&arg_s[i]&","; fi endfor
+ else: for i=1 upto mc_row: printf (substring(0,mc_indent[i]) of blanks)&mc[i]; endfor fi
printf EOF;
enddef;
%=================================================================================================
@@ -1365,13 +1360,13 @@ vardef bond_stereo(expr n)=
vardef bond_config(expr n)=
if (n=wf)or(n=zb)or(n=bd): 1 ef (n=zf)or(n=wb)or(n=dt): 3 ef n=wv: 2 else: 0 fi enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-vardef STa(expr s,WT,MI)=
+vardef TA(expr s,WT,MI)=
str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; parts_num:=parts_num+1;
parts_com[parts_num][1]:=_set_atom; parts_par[parts_num][1]:=str_cnt; parts_cnt[parts_num]:=1;
str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0;
tbl_atom_wt[tbl_cnt]:=WT; tbl_atom_mi[tbl_cnt]:=MI; parts_num enddef;
%-------------------------------------------------------------------------------------------------
-vardef STb(expr s)(text t)=
+vardef TB(expr s)(text t)=
str_cnt:=str_cnt+1; tbl_cnt:=tbl_cnt+1; parts_num:=parts_num+1;
parts_com[parts_num][1]:=_set_atom; parts_par[parts_num][1]:=str_cnt; parts_cnt[parts_num]:=1;
str_tbl[str_cnt]:=tbl_atom_str[tbl_cnt]:=s; tbl_atom[tbl_cnt]:=0;
@@ -1380,34 +1375,38 @@ enddef;
%=================================================================================================
parts_int:=parts_emi_start; parts_num:=parts_emb_start;
%-------------------------------------------------------------------------------------------------
-C:= STa("C" ,12.0107, 12.0000000); H:= STa("H" , 1.00794, 1.00782503223);
-D:= STa("D" ,2.012, 2.01410177812); Ag:=STa("{Ag}",107.868, 106.905095);
-Al:=STa("{Al}",26.9815, 26.98153853); As:=STa("{As}",74.9216, 74.92159457);
-B:= STa("B" ,10.811, 11.00930536); Ba:=STa("{Ba}",137.33, 136.905816);
-Bi:=STa("{Bi}",208.9804, 208.980338); Br:=STa("{Br}",79.904, 78.9183376);
-Ca:=STa("{Ca}",40.078, 39.962590863); Cd:=STa("{Cd}",112.41, 110.904182);
-Cl:=STa("{Cl}",35.453, 34.968852); Co:=STa("{Co}",58.933194, 58.93319429);
-Cr:=STa("{Cr}",51.9961, 51.94050623); Cu:=STa("{Cu}",63.546, 62.92959772);
-F:= STa("F" ,18.9984, 18.99840316273); Fe:=STa("{Fe}",55.845, 55.93493633);
-Hg:=STa("{Hg}",200.59, 201.97064340); I:= STa("I" ,126.90447,126.9044719);
-K:= STa("K" ,39.0983, 38.9637064864); Li:=STa("{Li}",6.941, 7.0160034366);
-Mg:=STa("{Mg}",24.305, 23.985041697); Mn:=STa("{Mn}",54.938044, 54.93804391);
-N:= STa("N" ,14.0067, 14.00307400443); Na:=STa("{Na}",22.98977, 22.9897692820);
-Ni:=STa("{Ni}",58.693, 57.93534241); O:= STa("O" ,15.9994, 15.99491461957);
-P:= STa("P" ,30.973762, 30.97376199842); Pb:= STa("{Pb}",207.2, 205.974455);
-Pd:=STa("{Pd}",106.4, 107.905075);
-S:= STa("S" ,32.065, 31.9720711744); Sb:= STa("{Sb}",121.75, 120.90381);
-Se:=STa("{Se}",78.971, 79.9165218); Si:=STa("{Si}",28.0855, 27.97692653465);
-Sn:=STa("{Sn}",118.71, 119.90220163); Ti:=STa("{Ti}",47.867, 47.94794198);
-U:= STa("U", 238.0289, 238.05079); V:= STa("V", 50.9415, 50.943957);
-W:= STa("W", 183.85, 181.948225); Zn:=STa("{Zn}",65.409, 63.92914201);
+C:= TA("C" ,12.0107, 12.0000000); H:= TA("H" , 1.00794, 1.00782503223);
+D:= TA("D" ,2.012, 2.01410177812); Ag:=TA("{Ag}",107.868, 106.905095);
+Al:=TA("{Al}",26.9815, 26.98153853); As:=TA("{As}",74.9216, 74.92159457);
+B:= TA("B" ,10.811, 11.00930536); Ba:=TA("{Ba}",137.33, 136.905816);
+Be:=TA("{Be}",9.01218, 0);
+Bi:=TA("{Bi}",208.9804, 208.980338); Br:=TA("{Br}",79.904, 78.9183376);
+Ca:=TA("{Ca}",40.078, 39.962590863); Cd:=TA("{Cd}",112.41, 110.904182);
+Cl:=TA("{Cl}",35.453, 34.968852); Co:=TA("{Co}",58.933194, 58.93319429);
+Cr:=TA("{Cr}",51.9961, 51.94050623); Cs:=TA("{Cs}",132.905, 132.90543);
+Cu:=TA("{Cu}",63.546, 62.92959772);
+F:= TA("F" ,18.9984, 18.99840316273); Fe:=TA("{Fe}",55.845, 55.93493633);
+Hg:=TA("{Hg}",200.59, 201.97064340); I:= TA("I" ,126.90447,126.9044719);
+K:= TA("K" ,39.0983, 38.9637064864); Li:=TA("{Li}",6.941, 7.0160034366);
+Mg:=TA("{Mg}",24.305, 23.985041697); Mn:=TA("{Mn}",54.938044, 54.93804391);
+Mo:=TA("{Mo}",95.95, 0);
+N:= TA("N" ,14.0067, 14.00307400443); Na:=TA("{Na}",22.98977, 22.9897692820);
+Ni:=TA("{Ni}",58.693, 57.93534241); O:= TA("O" ,15.9994, 15.99491461957);
+P:= TA("P" ,30.973762, 30.97376199842); Pb:=TA("{Pb}",207.2, 205.974455);
+Pd:=TA("{Pd}",106.4, 107.905075);
+S:= TA("S" ,32.065, 31.9720711744); Sb:=TA("{Sb}",121.75, 120.90381);
+Se:=TA("{Se}",78.971, 79.9165218); Si:=TA("{Si}",28.0855, 27.97692653465);
+Sn:=TA("{Sn}",118.71, 119.90220163); Ta:=TA("{Ta}",180.948, 0);
+Te:=TA("{Te}",127.60, 129.90623); Ti:=TA("{Ti}",47.867, 47.94794198);
+U:= TA("U", 238.0289, 238.05079); V:= TA("V", 50.9415, 50.943957);
+W:= TA("W", 183.85, 181.948225); Zn:=TA("{Zn}",65.409, 63.92914201);
tbl_atom_end:=tbl_cnt;
%-------------------------------------------------------------------------------------------------
-CH3:=STb("C{H_3_}")(C,H,H,H); CH2:=STb("C{H_3_}")(C,H,H); CN:=STb("CN")(C,N); OH:=STb("OH")(O,H);
-COOH:=STb("COOH")(C,O,O,H); COONa:=STb("COO{Na}")(C,O,O,Na); CHO:=STb("CHO")(C,H,O);
-NO:=STb("NO")(N,O); NO2:=STb("N{O_2_}")(N,O,O); NH2:=STb("N{H_2_}")(N,H,H);
-SH:= STb("SH")(S,H); SO2H:=STb("S{O_2_}H")(S,O,O,H); SO3H:=STb("S{O_3_}H")(S,O,O,O,H);
-ONa:=STb("O{Na}")(O,Na); SO3Na:=STb("S{O_3_}{Na}")(S,O,O,O,Na);
+CH3:=TB("C{H_3_}")(C,H,H,H); CH2:=TB("C{H_3_}")(C,H,H); CN:=TB("CN")(C,N); OH:=TB("OH")(O,H);
+COOH:=TB("COOH")(C,O,O,H); COONa:=TB("COO{Na}")(C,O,O,Na); CHO:=TB("CHO")(C,H,O);
+NO:=TB("NO")(N,O); NO2:=TB("N{O_2_}")(N,O,O); NH2:=TB("N{H_2_}")(N,H,H);
+SH:= TB("SH")(S,H); SO2H:=TB("S{O_2_}H")(S,O,O,H); SO3H:=TB("S{O_3_}H")(S,O,O,O,H);
+ONa:=TB("O{Na}")(O,Na); SO3Na:=TB("S{O_3_}{Na}")(S,O,O,O,Na);
%-------------------------------------------------------------------------------------------------
tbl_group_end:=tbl_cnt; parts_atom_end:=parts_num;
%=================================================================================================
@@ -1598,8 +1597,7 @@ def mc_query(text s)=
for i=1 upto filter_cnt: filter_p[i]:=0; endfor
sort_s:="";
for i=1 upto info_cnt:
- nA:=scan_char(":",arg_s[i],0,1);
- sT:=substring(0,nA-1) of arg_s[i]; sV:=substring(nA,length(arg_s[i])) of arg_s[i];
+ get_tag_var(arg_s[i])(sT,sV);
if sT=key_s: if is_num(sV)=1: sort_s:=fix_num(sV); else: sort_s:=sV; fi fi
for j=1 upto filter_cnt:
if filter_tag[j]=sT:
@@ -1617,7 +1615,7 @@ def mc_query(text s)=
if filter_n=1: if key_s<>"": sort_tbl[unit_cnt]:=sort_s; fi unit_cnt:=unit_cnt+1; fi
ef subc(1,temps)="+": f_mcf:=1; mc_row:=1;
ef subc(1,temps)<>"%":
- if f_mcf=1: mc_row:=mc_row+1; else: info_cnt:=split_char(temps,";"); fi fi
+ if f_mcf=1: mc_row:=mc_row+1; else: info_cnt:=split_str(temps,";")(arg_s); fi fi
fi
endfor
unit_cnt:=unit_cnt-1;
@@ -1671,10 +1669,11 @@ vardef scan_char(expr c,s,d,n)=
ef d=-1: for i=length(s) downto n: if subc(i,s)<>c: nN:=i; fi exitif nN>0; endfor fi nN
enddef;
%-------------------------------------------------------------------------------------------------
-vardef scan_chars(expr s,c)=
- nN:=0; for i=1 upto length(s): if subc(i,s)=c: at_char[incr nN]:=i; fi endfor nN enddef;
+vardef split_str(expr s,c)(suffix v)=
+ at_char[0]:=nN:=0; for i=1 upto length(s): if subc(i,s)=c: at_char[incr nN]:=i; fi endfor
+ nN:=nN+1; at_char[nN]:=length(s)+1;
+ for i=1 upto nN: v[i]:=substring (at_char[i-1],at_char[i]-1) of s; endfor nN enddef;
%-------------------------------------------------------------------------------------------------
-vardef split_char(expr s,c)=
- nN:=scan_chars(s,c)+1; at_char[0]:=0; at_char[nN]:=length(s)+1;
- for i=1 upto nN: arg_s[i]:=substring (at_char[i-1],at_char[i]-1) of s; endfor nN enddef;
+vardef get_tag_var(expr s)(suffix t,v)=
+ nN:=scan_char(":",s,0,1); t:=substring(0,nN-1) of s; v:=substring(nN,length(s)) of s; enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/graphics/mcf2graph/mcf_exa_code.pdf b/graphics/mcf2graph/mcf_exa_code.pdf
index 64cc1bef8a..d7883dbeb9 100644
--- a/graphics/mcf2graph/mcf_exa_code.pdf
+++ b/graphics/mcf2graph/mcf_exa_code.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_exa_code.tex b/graphics/mcf2graph/mcf_exa_code.tex
index d5e2807b43..6cd64c95ee 100644
--- a/graphics/mcf2graph/mcf_exa_code.tex
+++ b/graphics/mcf2graph/mcf_exa_code.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Print out mcf data list by A.Yamaji 2022.06.12
+% Print out mcf data list by A.Yamaji 2022.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 4.85
+% ** mcf2graph.mf must be version 4.86
% ** use mcf_library.mcf
% ** typeset by LuaLaTeX(luamplib)
\documentclass{article}
diff --git a/graphics/mcf2graph/mcf_exa_soc.mp b/graphics/mcf2graph/mcf_exa_soc.mp
index 2e7874177c..317a93911d 100644
--- a/graphics/mcf2graph/mcf_exa_soc.mp
+++ b/graphics/mcf2graph/mcf_exa_soc.mp
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format by Akira Yamaji 2022.06.12
+% Molecular Coding Format by Akira Yamaji 2022.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph; %%% it must be version 4.85
+input mcf2graph; %%% it must be version 4.86
message "* mcf_exa_soc 2022.06.12";
message "";
%------------------------------------------------------------------------------
@@ -23,10 +23,11 @@ tag1:="J"; tag2:="C"; tag3:="fm"; tag4:="mw"; tag5:="EN"; tag6:="MW";
%%%%mc_query("Cat=biological","MW<200","s:MW");
%%%%mc_query("Cat=biological","MW<110.0","s:EN");
%%%%mc_query("Cat=biological","MW>=150","MW<=200","a:EN");
-%%%%mc_query("Cat=biological","MW>=150","MW<=200","d:MW");
+%%%%mc_query("Cat=biological","MW>=100","MW<=250","a:MW");
%******************************************************************************
fsize:=(35mm,24mm);
max_blength:=4mm;
+mc_length:=20;
%------------------------------------------------------------------------------
%%%% beginfigm("t:EN","v:Caffeine") % select EN=Caffeine
forever:
diff --git a/graphics/mcf2graph/mcf_example.pdf b/graphics/mcf2graph/mcf_example.pdf
index c978c19eb8..b8b2896f7c 100644
--- a/graphics/mcf2graph/mcf_example.pdf
+++ b/graphics/mcf2graph/mcf_example.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_example.tex b/graphics/mcf2graph/mcf_example.tex
index a081702378..710cf6357e 100644
--- a/graphics/mcf2graph/mcf_example.tex
+++ b/graphics/mcf2graph/mcf_example.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2022.06.12
+% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2022.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 4.85
+% ** mcf2graph.mf must be version 4.86
% ** use mcf_library.mcf
% ** typeset by LuaLaTeX(luamplib)
\documentclass{article}
diff --git a/graphics/mcf2graph/mcf_library.mcf b/graphics/mcf2graph/mcf_library.mcf
index 839346726e..b30b4742e1 100644
--- a/graphics/mcf2graph/mcf_library.mcf
+++ b/graphics/mcf2graph/mcf_library.mcf
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular library file mcf_library.mcf by Akira Yamaji 2022.06.12
+% molecular library file mcf_library.mcf by Akira Yamaji 2022.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tag1:var1;tag2:var2;tag3:var3 .....
% first character of line "%" comment out
@@ -8,7 +8,7 @@
% Cat = Category
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%==============================================================================
-% molecular data for mcf_example.tex EXA=1(155) EXA=2(7)
+% molecular data for mcf_example.tex EXA:1[155] EXA:2[7]
%==============================================================================
Cat:biological;EN:Adenine;MW:135.13;EXA:1
+
@@ -318,6 +318,42 @@ Cat:biological;EN:Tocopherol;MW:430.717;EXA:1
+
<30,Ph,3=?6,7:O,{1,2,5}:/_,8:/*_^60,6:/OH,@8,\,|,!12,{4,8}:/*_,12:/_
+------------------------------------------------------------------------------
+Cat:biological;EN:Thiamine;MW:265.35;EXA:1
++
+<30,Ph,4:/NH2,@3,\`1,!,<-12,?5,{-1,-4}=dl,{1,5,8}:N,11:S,{6,9}:/_,
+ @-3,\^-12,!2,OH,8:p_^72
++------------------------------------------------------------------------------
+Cat:biological;EN:Riboflavin;MW:376.37;EXA:1
++
+<30,Ph,{3,9}=?6,{8,16}=dl,{7,10,14}:N,12:NH,{11,13}://O,{1,6}:/_,
+ @10,\`1.5,!,*/OH,!,/*OH,!,*/OH,!2,OH
++------------------------------------------------------------------------------
+Cat:biological;EN:Nicotinic acid;MW:123.11;EXA:1
++
+<30,Ph,2:N,4:/COOH
++------------------------------------------------------------------------------
+Cat:biological;EN:Nicotinamide;MW:122.12;EXA:1
++
+<30,Ph,2:N,4:/CONH2
++------------------------------------------------------------------------------
+Cat:biological;EN:Pantothenic acid;MW:219.23;EXA:1
++
+<30,OH,!8,COOH,3:??,4^35:/*H,4^-20:*/OH,5://O,6:NH
++------------------------------------------------------------------------------
+Cat:biological;EN:Pyridoxine;MW:169.18;EXA:1
++
+<30,Ph,2:N,3:/_,4:/OH,{5,6}:/!OH
++------------------------------------------------------------------------------
+Cat:biological;EN:Biotin;MW:244.31;EXA:1
++
+<18,?5,4=?5,2:S,{6,8}:NH,7://O,{4^-54,5^54}:*/H,
+ @3,\*^-12,!4,COOH
++------------------------------------------------------------------------------
+Cat:biological;EN:Folic acid;MW:441.3975;EXA:1
++
+<30,?6,3=Ph2,1=dl,{2,7,10}:N,6:NH,5://O,1:/NH2,
+ @9,\,!,NH,!,Ph,@-3,\,//O,!,NH,!,/*COOH,!3,COOH
++------------------------------------------------------------------------------
Cat:biological;EN:Carotene;MW:536.8726;EXA:1
+
<30,?6,4=dl,3:??,5:/_,
@@ -339,11 +375,6 @@ Cat:biological;EN:Capsaicin;MW:305.418;EXA:1
+
<30,Ph,1:/OH,6:/O!,@4,\,!,NH,!,//O,!7,?!,-3=dl
+------------------------------------------------------------------------------
-Cat:biological;EN:Thiamine;MW:300.81;EXA:1
-+
-<30,Ph,4:/NH2,@3,\`1,!,<-12,?5,{-1,-4}=dl,{1,5,8}:N,11:S,{6,9}:/_,
- @-3,\,!2,OH,8:p_^72,@8,@(3.5,1.5),Cl,n_^15
-+------------------------------------------------------------------------------
Cat:biological;EN:Gibberellin A3;MW:346.379;EXA:1
+
<18,?5,3=?7,5=?6[12],@8,160`1.3,&3,13=dl,6=wf,8=wb,
@@ -354,11 +385,6 @@ Cat:biological;EN:Cholesterol;MW:386.664;EXA:1
<30,?6,{-4,-2}=?6,-4=?5,7=dl,
1:*/OH,{4,12}:*/_^60,{9'^60,10^180,11^-60,-1^-60}:/*H,@-1,17,/*_,!4,?!
+------------------------------------------------------------------------------
-Cat:biological;EN:Riboflavin;MW:376.37;EXA:1
-+
-<30,Ph,{3,9}=?6,{8,16}=dl,{7,10,14}:N,12:NH,{11,13}://O,{1,6}:/_,
- @10,\`1.5,!,*/OH,!,/*OH,!,*/OH,!2,OH
-+------------------------------------------------------------------------------
Cat:biological;EN:Resveratrol;MW:228.24;EXA:1
+
<30,Ph,@4,\,!!,!,Ph,{2,6,-3}:/OH
@@ -382,6 +408,31 @@ Cat:biological;EN:Chlorophyll a;MW:893.509;EXA:1
{4,11,17,23}:N,{1~zf,9,15,21}:/_,14:/!,20:/!!,25:/*COO!,26://O,
@2,*\^-6,!2,//O,!,O,!2,!!,|,!13,{1,5,9,13}:/_
+------------------------------------------------------------------------------
+Cat:biological;EN:Alizarin;MW:240.21;EXA:1
++
+<30,Ph,3=?6,-3=Ph2,{7,10}://O,{13,14}:/OH
++------------------------------------------------------------------------------
+Cat:biological;EN:Indigo;MW:262.26;EXA:1
++
+<30,Ph,3=?5,@-2,\\,?5,-3=Ph2,{7,14}:NH,{9,11}://O
++------------------------------------------------------------------------------
+Cat:biological;EN:6,6'-dibromoindigo;MW:420.0549;EXA:1
++
+<30,Ph,3=?5,@-2,\\,?5,-3=Ph2,{7,14}:NH,{9,11}://O,{1,-2}:/Br
++------------------------------------------------------------------------------
+Cat:biological;EN:Carminic Acid;MW:492.39;EXA:1
++
+<30,Ph,3=?6,-3=Ph2,{7,10}://O,{2,5,6,13}:/OH,11:/_,12:/COOH,
+ @1,\~wb`1,?6,-5:O,{-1,-2',-3}:/*OH,-4:*/!OH
++------------------------------------------------------------------------------
+Cat:biological;EN:Curcumin;MW:368.38;EXA:1
++
+<30,Ph,@3,\,!7,Ph,{8,13}=dr,{9,11}://O,{6,-3}:/OH,{5,-4}:/O!
++------------------------------------------------------------------------------
+Cat:biological;EN:Berberine;MW:336.36;EXA:1
++
+<30,Ph,3=Ph,-3=?6,-2=Ph2,-3=?5,8:N,8:p_^60,{-1,-3}:O,{1>vt,2}:/!OH
++------------------------------------------------------------------------------
%==============================================================================
Cat:biological;EN:Apigenin;MW:270.24;EXA:-
+
@@ -871,7 +922,7 @@ Cat:antibiotics;EN:Emamectine;MW:886.133;EXA:1
17:/_,19:/*_,@18,\,O,!,?6`.7,-1:O,#.5,-2:*/_,-4:*/O!,##,
@-3,\,O,60,?6`.7,-5:O,#.5,-4:*/_,-3:/*NH!,-2:*/O!
+------------------------------------------------------------------------------
-Cat:antibiotics;EN:Spinosad;MW:731.968;EXA:1
+Cat:antibiotics;EN:Spinosad;MW:731.968;EXA:2
+
<30,#1,<-120,60,60,-60,60,60,60,-60,60,60,60,-60,&1,##,
5=?5,-1=dl,{-2^60,-3^-35}:/*H,-3=?6,-4=dl,
@@ -948,11 +999,11 @@ Cat:antibiotics;EN:Rifampicin;MW:822.94;EXA:1
-4:/*O!,@-6,-30,O,!,//O,!,@$11,\,!!,N,!,|,?6,1:N,4:N!
+------------------------------------------------------------------------------
%==============================================================================
-Cat:pesticide;EN:BHC;MW:290.83;EXA:1
+Cat:pesticide;EN:BHC;MW:290.83;EXA:-
+
<30,?6,{1,2',3,4,5',6}:*/Cl
+------------------------------------------------------------------------------
-Cat:pesticide;EN:pp-DDT;MW:354.49;EXA:1
+Cat:pesticide;EN:pp-DDT;MW:354.49;EXA:-
+
<30,Ph,6:/Cl,@3,\,/CCl3,!,Ph,-3:/Cl
+------------------------------------------------------------------------------
@@ -976,7 +1027,7 @@ Cat:pesticide;EN:XMC;MW:179.2;EXA:-
+
<30,Ph,{1,5}:/_,@3,\,O,!,//O,!,NH,!
+------------------------------------------------------------------------------
-Cat:pesticide;EN:Acrinathrin;MW:541.45;EXA:1
+Cat:pesticide;EN:Acrinathrin;MW:541.45;EXA:-
+
<-30,?3,{2^-35,2'^35}:*/_,
@1,\,!~dl,!,//O,!,O,!,/CF3,!,CF3,@3,\,//O,!,O,!,/CN,!,Ph,-4:/OPh>rl
@@ -1049,7 +1100,7 @@ Cat:pesticide;EN:Ethrimfos;MW:292.29;EXA:-
+
<-30,!,O,!,P,//S,/O!^160,!,O,!,|,Ph,{2,4}:N,5:/!,3:/O!2
+------------------------------------------------------------------------------
-Cat:pesticide;EN:Endrin;MW:380.91;EXA:1
+Cat:pesticide;EN:Endrin;MW:380.91;EXA:-
+
<30,?6`1.3,3=?6,6=dl,9=?3,-1:O,
@2,210~wf`1.5,&5~wb,@7,210~zf`1.5,&10~zb,{1,2,5,6,12^-210,12^-150}:/Cl
@@ -1863,14 +1914,6 @@ Cat:pesticide;EN:Silafluofen;MW:408.588;EXA:-
+
<30,Ph,@5,\,O,!,Ph,-1:/F,@10,\,!3,Si,??,!,Ph,-3:/O!2
+------------------------------------------------------------------------------
-Cat:pesticide;EN:Spinosad;MW:731.968;EXA:2
-+
-<30,#1,<-120,60,60,-60,60,60,60,-60,60,60,60,-60,&1,##,
- 5=?5,-1=dl,{-2^60,-3^-35}:/*H,-3=?6,-4=dl,{-1^35,-2'^-60}:*/H,-2=?5,
- 2:O,{3^15,7^-28}://O, 1:/!,
- @-2,\*,O,66,?6,-1:O,-2:/_,{-3,-4,-5}:/O!,8:*/_,5^-65:*/H,
- @9,\*,O,!,|,?6,2:O,3:/_,-3:/N?!
-+------------------------------------------------------------------------------
Cat:pesticide;EN:Di-allate;MW:270.212;EXA:-
+
<-30,!?!,N,!,//O,!,S,!2,!!,!,Cl,3:/?!,7:/Cl
@@ -2051,7 +2094,7 @@ Cat:antibacterial;EN:5-(Propylsulphonyl)-1-H-Benzimidazole-2-Amine;MW:239.29;EXA
+
<30,Ph,3=?6,8=dl,7:N,9:NH,6:/S!3,8:/NH2
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Sulfapyrizine;MW:249.288;EXA:1
+Cat:antibacterial;EN:Sulfapyrizine;MW:249.288;EXA:-
+
<30,Ph,1:/NH2,@4,\,SOO,!,NH,!,|,Ph,6:N
+------------------------------------------------------------------------------
@@ -2064,11 +2107,11 @@ Cat:antibacterial;EN:Sulfamerazine;MW:264.303;EXA:-
+
<30,Ph,1:/NH2,@4,\,SOO,!,NH,!,|,Ph,{2,6}:N,3:/_
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Trimethoprim;MW:290.323;EXA:1
+Cat:antibacterial;EN:Trimethoprim;MW:290.323;EXA:-
+
<30,Ph,{1,5}:N,{2,6}:/NH2,@3,\,!,|,Ph,{3,4,5}:/O!
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Ofloxacin;MW:361.373;EXA:1
+Cat:antibacterial;EN:Ofloxacin;MW:361.373;EXA:-
+
<30,Ph,{3,(2,7)}=?6,9=dl,7:N,11:O,
6:/F,9:/COOH,10://O,13:/_,@1,\,|,?6,{1,4}:N,4:/_
@@ -2081,12 +2124,12 @@ Cat:antibacterial;EN:Enrofloxacin;MW:359.401;EXA:1
+
<30,Ph,-4=?6,9=dl,7:N,6:/F,7:/?3,9:/COOH,10://O,@1,\,|,?6,{1,4}:N,4:/!
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Danofloxacin;MW:357.385;EXA:1
+Cat:antibacterial;EN:Danofloxacin;MW:357.385;EXA:-
+
<30,Ph,-4=?6,9=dl,7:N,6:/F,7:/?3,9:/COOH,10://O,
@1,\,|,?6,@2,-200`1.1,&5,{1,4}:N,4:*/_
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Ormetoprim;MW:274.324;EXA:1
+Cat:antibacterial;EN:Ormetoprim;MW:274.324;EXA:-
+
<30,Ph,{1,5}:N,{2,6}:/NH2,@3,\,!,|,Ph,2:/_,{4,5}:/O!
+------------------------------------------------------------------------------
@@ -2094,7 +2137,7 @@ Cat:antibacterial;EN:Sulfadimidine;MW:278.33;EXA:-
+
<30,Ph,1:/NH2,@4,\,SOO,!,NH,!,|,Ph,{2,4}:N,{3,5}:/_
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Orbifloxacin;MW:395.382;EXA:1
+Cat:antibacterial;EN:Orbifloxacin;MW:395.382;EXA:-
+
<30,Ph,-4=?6,9=dl,7:N,{2,5,6}:/F,7:/?3,9:/COOH,10://O,
@1,\,|,?6,1:N,{3,5}:*/_,4:NH
@@ -2107,7 +2150,7 @@ Cat:antibacterial;EN:Sarafloxacin;MW:385.371;EXA:-
+
<30,Ph,3=?6,9=dl,7:N,6:/F,9:/COOH,10://O,@1,\,?6,-6:N,-3:NH,@7,\,Ph,-3:/F
+------------------------------------------------------------------------------
-Cat:antibacterial;EN:Difloxacin;MW:399.398;EXA:1
+Cat:antibacterial;EN:Difloxacin;MW:399.398;EXA:-
+
<30,Ph,-4=?6,9=dl,7:N,6:/F,9:/COOH,10://O,@1,\,|,?6,{1,4}:N,4:/_,
||,@7,\,Ph,-3:/F
diff --git a/graphics/mcf2graph/mcf_man_soc.mp b/graphics/mcf2graph/mcf_man_soc.mp
index e9fc711828..a176a9ae80 100644
--- a/graphics/mcf2graph/mcf_man_soc.mp
+++ b/graphics/mcf2graph/mcf_man_soc.mp
@@ -1,9 +1,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF file for mcf_manual.tex by Akira.Yamaji 2022.06.12
+% MCF file for mcf_manual.tex by Akira.Yamaji 2022.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph; %% it must be version 4.85
+input mcf2graph; %% it must be version 4.86
% ** use library file 'mcf_library.mcf'
-message "mcf_man_soc 2022.06.12"; message "";
+message "mcf_man_soc 2022.07.18"; message "";
%------------------------------------------------------------------------
sw_mframe:=0;
sw_expand:=0;
diff --git a/graphics/mcf2graph/mcf_manual.pdf b/graphics/mcf2graph/mcf_manual.pdf
index 1336e1e33d..80f343d399 100644
--- a/graphics/mcf2graph/mcf_manual.pdf
+++ b/graphics/mcf2graph/mcf_manual.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_manual.tex b/graphics/mcf2graph/mcf_manual.tex
index ccfdd511ab..eb640aac46 100644
--- a/graphics/mcf2graph/mcf_manual.tex
+++ b/graphics/mcf2graph/mcf_manual.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format manual by Akira Yamaji 2022.06.12
+% Molecular Coding Format manual by Akira Yamaji 2022.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
%%%\usepackage{graphicx}
diff --git a/graphics/mcf2graph/mcf_mplib_exa.pdf b/graphics/mcf2graph/mcf_mplib_exa.pdf
index f1b1033ffd..148a8caa0a 100644
--- a/graphics/mcf2graph/mcf_mplib_exa.pdf
+++ b/graphics/mcf2graph/mcf_mplib_exa.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_mplib_exa.tex b/graphics/mcf2graph/mcf_mplib_exa.tex
index eaabc597a3..5b6810cf35 100644
--- a/graphics/mcf2graph/mcf_mplib_exa.tex
+++ b/graphics/mcf2graph/mcf_mplib_exa.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2022.06.12
+% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2022.07.18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mp must be version 4.85
+% ** mcf2graph.mp must be version 4.86
% ** use mcf_library.mcf
\documentclass{article}
%------------------------------------------------------------------------------
diff --git a/graphics/pgf/contrib/jigsaw/README.md b/graphics/pgf/contrib/jigsaw/README.md
index 74d412760f..bd493b23a7 100644
--- a/graphics/pgf/contrib/jigsaw/README.md
+++ b/graphics/pgf/contrib/jigsaw/README.md
@@ -2,7 +2,7 @@
A small LaTeX package to draw jigsaw pieces with TikZ. It is possible to draw individual pieces and adjust their shape, produce tile patterns or to automatically generate complete jigsaws.
-Current version: 2022/06/20 version v0.2
+Current version: 2022/07/18 version v0.3
This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
diff --git a/graphics/pgf/contrib/jigsaw/jigsaw-doc.pdf b/graphics/pgf/contrib/jigsaw/jigsaw-doc.pdf
index 43e3b10c21..00f6b25cc8 100644
--- a/graphics/pgf/contrib/jigsaw/jigsaw-doc.pdf
+++ b/graphics/pgf/contrib/jigsaw/jigsaw-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex b/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex
index 377e8024c5..9abda93205 100644
--- a/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex
+++ b/graphics/pgf/contrib/jigsaw/jigsaw-doc.tex
@@ -21,7 +21,9 @@
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[bitstream-charter]{mathdesign}
+%\usepackage{duckuments}
\usepackage{jigsaw}
+\usetikzlibrary{matrix}
\usepackage[most]{tcolorbox}
\usepackage[paper=a4paper,margin=2.9cm]{geometry}
\usepackage{url}
@@ -61,7 +63,7 @@
texcsstyle=*\color{duckblue}\bfseries,
keywordstyle=\color{red!60!black}\bfseries,
morekeywords={tikzpicture,scope},
- moretexcs={path,node,draw,clip,includegraphics,color,piece,tile,jigsaw},
+ moretexcs={path,node,draw,clip,pic,includegraphics,color,piece,tile,jigsaw},
delim ={[s][\ttfamily\color{green!50!black}]{$}{$}},
moredelim=[is][\footnotesize\ttfamily\color{orange!70!black}]{|}{|},
moredelim={[s][\color{gray}]{<}{>}},
@@ -96,7 +98,7 @@
\url{https://github.com/samcarter/jigsaw}\\
\url{https://www.ctan.org/pkg/jigsaw}
}{samcarter}}
-\date{Version v0.2 \textendash{} 2022/06/20}
+\date{Version v0.3 \textendash{} 2022/07/18}
\begin{document}
\maketitle
@@ -158,8 +160,7 @@ The piece shape is also available as \TikZ \verb|pic|:
\end{tikzpicture}
\end{tcblisting}
-
-The shapes of the jigsaw pieces are designed to seamlessly fit into each other which allows to produce tile patters.
+The shapes of the jigsaw pieces are designed to seamlessly fit into each other which allows to produce tile patters in various ways:
\begin{tcblisting}{title={Manual tile pattern}}
\begin{tikzpicture}
@@ -178,6 +179,31 @@ The shapes of the jigsaw pieces are designed to seamlessly fit into each other w
\end{tikzpicture}
\end{tcblisting}
+\begin{tcblisting}{title={Manual pattern using \texttt{\textbackslash pic}}}
+\begin{tikzpicture}
+\pic at (0,1) [fill=lightgray,draw]
+ {piece={1}{1}{0}{0}};
+\pic at (1,1) [fill=teal]
+ {piece={1}{0}{0}{-1}};
+\pic at (0,0) [fill=teal]
+ {piece={0}{-1}{-1}{0}};
+\pic at (1,0) [fill=lightgray]
+ {piece={0}{0}{-1}{1}};
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{title={Manual pattern using Ti\emph{k}Z matrix}}
+% \usetikzlibrary{matrix}
+\begin{tikzpicture}
+\matrix [nodes=draw]{
+\pic [fill=lightgray]{piece={-1}{-1}{0}{0}};&
+\pic [fill=teal]{piece={1}{0}{0}{-1}}; \\
+\pic [fill=teal]{piece={0}{-1}{1}{0}}; &
+\pic [fill=lightgray]{piece={0}{0}{-1}{1}};\\
+};
+\end{tikzpicture}
+\end{tcblisting}
+
Manually position each jigsaw piece at the correct position can be tedious, therefore the command \lstinline|\tile[<colour>]{<bottom>}{<right>}{<top>}{<left>}| was added. It can be used outside of of the \lstinline|tikzpicture| environment to place the pieces besides each other like normal letters in a text. Line breaks have to be added at the appropriate positions and one has to be careful not to introduce additional spaces between the jigsaw pieces from unprotected line endings.
\begin{tcblisting}{title={The tile command}}
@@ -207,8 +233,9 @@ This automatically generated jigsaw can also be overlaid on a picture:
\begin{tcblisting}{title={Overlaid image}}
\begin{tikzpicture}
\clip (0,0) rectangle (6,4);
-\node at (3,2) {\includegraphics[width=6cm]
- {example-image-duck}};
+\node at (3,2) {%
+ \includegraphics[width=6cm,height=4cm]{example-image-duck}%
+};
\jigsaw{6}{4}
\end{tikzpicture}
\end{tcblisting}
diff --git a/graphics/pgf/contrib/jigsaw/jigsaw.sty b/graphics/pgf/contrib/jigsaw/jigsaw.sty
index ae1a736042..ad8bcc9674 100644
--- a/graphics/pgf/contrib/jigsaw/jigsaw.sty
+++ b/graphics/pgf/contrib/jigsaw/jigsaw.sty
@@ -40,19 +40,19 @@
}
\newcommand{\halfpiece}[2]{
- \draw \side{#1} [rotate around={90:(0.5,0.5)}] \side{#2};
+ \draw \side{#1} [rotate around={90:(0.5,0.5)}] \side{#2};
}
\newcommand{\piece}[5][\@nil]{
- \def\tmp{#1}%
- \ifx\tmp\@nnil
- \else
- \fill[#1]
- \side{#2}
- [rotate around={90:(0.5,0.5)}] -- \side{#3}
- [rotate around={90:(0.5,0.5)}] -- \side{#4}
- [rotate around={90:(0.5,0.5)}] -- \side{#5}
- -- cycle;
+ \def\tmp{#1}%
+ \ifx\tmp\@nnil
+ \else
+ \fill[#1]
+ \side{#2}
+ [rotate around={90:(0.5,0.5)}] -- \side{#3}
+ [rotate around={90:(0.5,0.5)}] -- \side{#4}
+ [rotate around={90:(0.5,0.5)}] -- \side{#5}
+ -- cycle;
\fi
\draw
\side{#2}
@@ -62,12 +62,12 @@
}
\newcommand{\tile}[5][\@nil]{%
- \begin{tikzpicture}
- \path (0,0) rectangle (1,0.97);
- \begin{pgfinterruptboundingbox}
- \piece[#1]{#2}{#3}{#4}{#5}
- \end{pgfinterruptboundingbox}
- \end{tikzpicture}%
+ \begin{tikzpicture}
+ \path (0,0) rectangle (1,0.97);
+ \begin{pgfinterruptboundingbox}
+ \piece[#1]{#2}{#3}{#4}{#5}
+ \end{pgfinterruptboundingbox}
+ \end{tikzpicture}%
}
\pgfmathdeclarerandomlist{inout}{{-1}{1}}
@@ -99,12 +99,15 @@
pics/piece/.style n args={4}{
inherit options/.code={\csname tikz@options\endcsname},inherit options,
code = {
- \path[pic actions]
- \side{#1}
- [rotate around={90:(0.5,0.5)}] -- \side{#2}
- [rotate around={90:(0.5,0.5)}] -- \side{#3}
- [rotate around={90:(0.5,0.5)}] -- \side{#4}
- -- cycle;
+ \path (0,0) rectangle (1,1);
+ \begin{pgfinterruptboundingbox}
+ \path[pic actions]
+ \side{#1}
+ [rotate around={90:(0.5,0.5)}] -- \side{#2}
+ [rotate around={90:(0.5,0.5)}] -- \side{#3}
+ [rotate around={90:(0.5,0.5)}] -- \side{#4}
+ -- cycle;
+ \end{pgfinterruptboundingbox}
}
},
piece/.search also={,/tikz,/pgf},