Ian Jauslin
summaryrefslogtreecommitdiff
path: root/figs
diff options
context:
space:
mode:
authorIan Jauslin <jauslin@ias.edu>2017-09-13 23:29:54 +0000
committerIan Jauslin <jauslin@ias.edu>2017-09-15 16:34:06 +0000
commit52a5942994007acc29107f036c9b8f386b19399f (patch)
tree70b55d149bb149239b158123d884595440015fe5 /figs
Initial commitv0.0
Diffstat (limited to 'figs')
-rw-r--r--figs/dimer_example.fig/Makefile32
-rw-r--r--figs/dimer_example.fig/dimer_conf.py289
l---------figs/dimer_example.fig/libs/dimer.sty1
-rw-r--r--figs/libs/Makefile25
-rw-r--r--figs/libs/dimer.sty33
l---------figs/polymer_example.fig/Makefile1
-rw-r--r--figs/polymer_example.fig/contours.tikz.tex69
-rw-r--r--figs/polymer_example.fig/inclusion_tree.tikz.tex45
l---------figs/polymer_example.fig/libs/dimer.sty1
-rw-r--r--figs/polymer_example.fig/lollipops-tree.tikz.tex30
-rw-r--r--figs/polymer_example.fig/lollipops.tikz.tex76
-rw-r--r--figs/polymer_example.fig/loops.tikz.tex34
-rw-r--r--figs/polymer_example.fig/polymers.tikz.tex76
-rw-r--r--figs/polymer_example.fig/segments.tikz.tex132
l---------figs/smallest.fig/Makefile1
l---------figs/smallest.fig/libs/dimer.sty1
-rw-r--r--figs/smallest.fig/smallest-18.tikz.tex16
-rw-r--r--figs/smallest.fig/smallest-6.tikz.tex15
18 files changed, 877 insertions, 0 deletions
diff --git a/figs/dimer_example.fig/Makefile b/figs/dimer_example.fig/Makefile
new file mode 100644
index 0000000..8ed4891
--- /dev/null
+++ b/figs/dimer_example.fig/Makefile
@@ -0,0 +1,32 @@
+PROJECTNAME=interaction boundary bounding_loop dimer_contour
+LIBS=$(notdir $(wildcard libs/*))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+SOURCES=$(addsuffix .tikz.tex, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS): $(SOURCES) $(LIBS)
+ echo $(LIBS)
+ pdflatex -jobname $(basename $@) -file-line-error $(patsubst %.pdf, %.tikz.tex, $@)
+
+$(SOURCES):
+ python3 dimer_conf.py
+
+$(LIBS):
+ ln -fs libs/$@ ./
+
+clean-libs:
+ rm -f $(LIBS)
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+
+clean-tex:
+ rm -f $(PDFS)
+
+clean-sources:
+ rm -f $(SOURCES)
+
+clean: clean-libs clean-aux clean-tex clean-sources
diff --git a/figs/dimer_example.fig/dimer_conf.py b/figs/dimer_example.fig/dimer_conf.py
new file mode 100644
index 0000000..7cff9f1
--- /dev/null
+++ b/figs/dimer_example.fig/dimer_conf.py
@@ -0,0 +1,289 @@
+#!/usr/bin/env python3
+
+import random
+from math import *
+
+# size of the grid
+L=24
+# boundary thickness (must be even)
+l0=4
+# activity and interaction
+z=3
+J=5
+
+
+# draw random dimers in a select area
+def fill_dimers(mask,direction):
+ if(direction=="h"):
+ d=[1,0]
+ else:
+ d=[0,1]
+
+ dimers=[]
+
+ # keep track of which sites are occupied
+ occupied=[]
+ for i in range(L):
+ occupied.append([])
+ for j in range(L):
+ occupied[i].append(0)
+
+ for i in range(10000):
+ # pick a random edge (indexed by its lower-left corner)
+ e=None
+ while(e==None or e[0]+d[0]>=L or e[1]+d[1]>=L or mask[e[0]][e[1]]==0 or mask[e[0]+d[0]][e[1]+d[1]]==0):
+ e=[random.randint(0,L-1),random.randint(0,L-1)]
+ # check whether a dimer can be added to the edge
+ if(occupied[e[0]][e[1]]==0 and occupied[e[0]+d[0]][e[1]+d[1]]==0):
+ # number of interactions
+ interactions=0
+ if(e[0]+2*d[0]<L and e[1]+2*d[1]<L and occupied[e[0]+2*d[0]][e[1]+2*d[1]]==1):
+ interactions=interactions+1
+ if(e[0]-d[0]>=0 and e[1]-d[1]>=0 and occupied[e[0]-d[0]][e[1]-d[1]]==1):
+ interactions=interactions+1
+ # probability of adding the dimer
+ p=1/(1+1/z*exp(-J*interactions))
+ if(p>random.random()):
+ # add dimer
+ dimers.append(e)
+ occupied[e[0]][e[1]]=1
+ occupied[e[0]+d[0]][e[1]+d[1]]=1
+
+ return(dimers)
+
+# find interactions
+def interactions(dimers,direction):
+ if(direction=="h"):
+ d=[1,0]
+ else:
+ d=[0,1]
+
+ out=[]
+ for d1 in dimers:
+ for d2 in dimers:
+ if(d1[0]-d2[0]==2*d[0] and d1[1]-d2[1]==2*d[1]):
+ out.append([d2[0]+d[0],d2[1]+d[1]])
+ return(out)
+
+# find interactions with boundary
+def boundary_interactions(dimers,rho):
+ out=[]
+ for d in dimers:
+ for v in rho:
+ if(d[0]==v[0] and d[1]==v[1]):
+ out.append([d[0],d[1]-1])
+ elif(d[0]==v[0] and d[1]==v[1]-1):
+ out.append([d[0],d[1]+1])
+ return(out)
+
+
+# draw dimers
+def draw_dimers(v_dimers,h_dimers,file_desc,color):
+ for d in v_dimers:
+ print("\\dimer{[color="+color+"]("+str(d[0])+","+str(d[1])+")}v", file=file_desc)
+ print("", file=file_desc)
+ for d in h_dimers:
+ print("\\dimer{[color="+color+"]("+str(d[0])+","+str(d[1])+")}h", file=file_desc)
+ print("", file=file_desc)
+
+# draw interactions
+def draw_interactions(v_interactions,h_interactions,file_desc):
+ for d in v_interactions:
+ print("\\interaction{("+str(d[0])+","+str(d[1])+")}v", file=file_desc)
+ print("", file=file_desc)
+ for d in h_interactions:
+ print("\\interaction{("+str(d[0])+","+str(d[1])+")}h", file=file_desc)
+ print("", file=file_desc)
+
+# draw magnetized part of boundary
+def draw_boundary(rho, file_desc):
+ for v in rho:
+ print("\\fill[color=red]("+str(v[0])+","+str(v[1])+")circle(10pt);", file=file_desc)
+
+
+# draw loops
+def draw_loops(loops,file_desc,color):
+ for loop in loops:
+ print("\\draw[color="+color+", line width=3pt]",end="",file=file_desc)
+ for e in loop:
+ print("("+str(e[0])+","+str(e[1])+")--",end="",file=file_desc)
+ print("cycle;",file=file_desc)
+
+# init tikz file
+def init_tikz(filename):
+ file_desc=open(filename,"w")
+ print("\\documentclass{standalone}\n\n\\usepackage{tikz}\n\\usepackage{dimer}\n\\usetikzlibrary{decorations.pathmorphing}\n\n\\begin{document}\n\\begin{tikzpicture}\n\n", file=file_desc)
+ return(file_desc)
+
+# close tikz file
+def close_tikz(file_desc):
+ print("\\end{tikzpicture}\n\\end{document}", file=file_desc)
+ file_desc.close()
+
+
+mu=int(L/2)
+
+# loops
+loop1=[]
+for i in range(0,2*l0):
+ loop1.append([mu-l0+i,mu+4.5])
+for i in range(0,4):
+ loop1.append([mu+l0-1+0.5,mu+4-i])
+for i in range(0,l0):
+ loop1.append([mu+l0+i,mu+0.5])
+for i in range(0,6):
+ loop1.append([mu+2*l0-1+0.5,mu-i])
+for i in range(0,4*l0):
+ loop1.append([mu+2*l0-1-i,mu-5.5])
+for i in range(0,6):
+ loop1.append([mu-2*l0-0.5,mu-5+i])
+for i in range(0,l0):
+ loop1.append([mu-2*l0+i,mu+0.5])
+for i in range(0,4):
+ loop1.append([mu-l0-0.5,mu+1+i])
+# core of loop1
+core_loop1=[]
+for i in range(0,2*l0-4):
+ core_loop1.append([mu-l0+2+i,mu+3.5])
+for i in range(0,3):
+ core_loop1.append([mu+l0-3+0.5,mu+3-i])
+core_loop1.append([mu+l0-2,mu+0.5])
+core_loop1.append([mu+l0-1,mu+0.5])
+for i in range(0,l0-2):
+ core_loop1.append([mu+l0+i,mu-1+0.5])
+for i in range(0,4):
+ core_loop1.append([mu+2*l0-3+0.5,mu-1-i])
+for i in range(0,4*l0-4):
+ core_loop1.append([mu+2*l0-3-i,mu-4.5])
+for i in range(0,4):
+ core_loop1.append([mu-2*l0+2-0.5,mu-4+i])
+for i in range(0,l0-2):
+ core_loop1.append([mu-2*l0+2+i,mu-1+0.5])
+core_loop1.append([mu-l0,mu+0.5])
+core_loop1.append([mu-l0+1,mu+0.5])
+for i in range(0,3):
+ core_loop1.append([mu-l0+2-0.5,mu+1+i])
+
+loop2=[[mu-1,mu+2.5],[mu-0.5,mu+2],[mu-0.5,mu+1],[mu-1,mu+0.5],[mu-1.5,mu+1],[mu-1.5,mu+2]]
+loop3=[[mu-1,mu-1.5],[mu,mu-1.5],[mu+0.5,mu-2],[mu+0.5,mu-3],[mu,mu-3.5],[mu-1,mu-3.5],[mu-1.5,mu-3],[mu-1.5,mu-2]]
+
+
+loops=[loop1,loop2,loop3]
+
+# masks
+# init
+v_mask=[]
+h_mask=[]
+for i in range(L):
+ v_mask.append([])
+ h_mask.append([])
+ for j in range(L):
+ v_mask[i].append(1)
+ h_mask[i].append(0)
+# draw masks
+for i in range(mu-l0,mu+l0):
+ for j in range(mu+1,mu+5):
+ v_mask[i][j]=0
+for i in range(mu-2*l0,mu+2*l0):
+ for j in range(mu-5,mu+1):
+ v_mask[i][j]=0
+for i in range(mu-l0+2,mu+l0-2):
+ for j in range(mu+1,mu+4):
+ h_mask[i][j]=1
+for i in range(mu-l0,mu+l0):
+ h_mask[i][mu]=1
+for i in range(mu-2*l0+2,mu+2*l0-2):
+ for j in range(mu-4,mu):
+ h_mask[i][j]=1
+h_mask[mu-1][mu+1]=0
+h_mask[mu-1][mu+2]=0
+h_mask[mu-1][mu-3]=0
+h_mask[mu-1][mu-2]=0
+h_mask[mu][mu-3]=0
+h_mask[mu][mu-2]=0
+
+# random dimers in mask
+v_dimers=fill_dimers(v_mask,"v")
+h_dimers=fill_dimers(h_mask,"h")
+
+# mantle dimers
+h_mantle=[]
+for i in range(0,l0):
+ h_mantle.append([mu-l0+2*i,mu+4])
+for i in range(0,4):
+ h_mantle.append([mu+l0-2,mu+4-i])
+ h_mantle.append([mu-l0,mu+4-i])
+for i in range(0,int(l0/2)):
+ h_mantle.append([mu+l0+2*i,mu])
+ h_mantle.append([mu-l0-2-2*i,mu])
+for i in range(0,5):
+ h_mantle.append([mu+2*l0-2,mu-i])
+ h_mantle.append([mu-2*l0,mu-i])
+for i in range(0,2*l0):
+ h_mantle.append([mu-2*l0+2*i,mu-5])
+
+v_mantle=[]
+v_mantle.append([mu-1,mu+1])
+v_mantle.append([mu-1,mu-3])
+v_mantle.append([mu,mu-3])
+
+# interactions
+v_interactions=interactions(v_dimers+v_mantle,"v")
+h_interactions=interactions(h_dimers+h_mantle,"h")
+
+# magnetized part of the boundary
+rho=[]
+for i in range(0,L):
+ if(random.randint(0,1)==0):
+ rho.append([i,0])
+ if(random.randint(0,1)==0):
+ rho.append([i,L-1])
+
+
+# files
+
+interaction=init_tikz("interaction.tikz.tex")
+print("\\grid{"+str(L-1)+"}{"+str(L-1)+"}{(0,0)}\n", file=interaction)
+draw_interactions(v_interactions,h_interactions,interaction)
+draw_dimers(v_dimers+v_mantle,h_dimers+h_mantle,interaction,"black")
+close_tikz(interaction)
+
+boundary=init_tikz("boundary.tikz.tex")
+print("\\fill[color=cyan](-0.5,-0.5)--++("+str(L)+",0)--++(0,"+str(l0)+")--++("+str(-L)+",0)--cycle;", file=boundary)
+print("\\fill[color=cyan](-0.5,"+str(L-l0-0.5)+")--++("+str(L)+",0)--++(0,"+str(l0)+")--++("+str(-L)+",0)--cycle;", file=boundary)
+print("", file=boundary)
+draw_boundary(rho,boundary)
+print("\\grid{"+str(L-1)+"}{"+str(L-1)+"}{(0,0)}\n", file=boundary)
+draw_interactions(boundary_interactions(v_dimers,rho),[],boundary)
+draw_dimers(v_dimers+v_mantle,h_dimers+h_mantle,boundary,"black")
+close_tikz(boundary)
+
+bounding_loop=init_tikz("bounding_loop.tikz.tex")
+print("\\begin{scope}", file=bounding_loop)
+print(" \\clip", end="", file=bounding_loop)
+for e in loop1:
+ print("("+str(e[0])+","+str(e[1])+")--", end="", file=bounding_loop)
+print("cycle;",file=bounding_loop)
+print(" \\fill[color=cyan]("+str(mu-2*l0-2)+","+str(mu-7)+")--++("+str(4*l0+3)+",0)--++(0,13)--++("+str(-4*l0-3)+",0);", file=bounding_loop)
+print(" \\fill[color=red]", end="", file=bounding_loop)
+for e in core_loop1:
+ print("("+str(e[0])+","+str(e[1])+")--", end="", file=bounding_loop)
+print("cycle;",file=bounding_loop)
+print("\\end{scope}\n", file=bounding_loop)
+print("\\grid{"+str(4*l0+3)+"}{"+str(13)+"}{("+str(mu-2*l0-2)+","+str(mu-7)+")}\n", file=bounding_loop)
+draw_loops([loop1],bounding_loop,"black")
+close_tikz(bounding_loop)
+
+contour=init_tikz("dimer_contour.tikz.tex")
+print("\\draw[color=green, line width=15pt]("+str(mu-2-0.5)+","+str(mu+1)+")--++(1,0);", file=contour)
+print("\\draw[color=green, line width=15pt]("+str(mu-2-0.5)+","+str(mu+2)+")--++(1,0);", file=contour)
+print("\\draw[color=green, line width=15pt]("+str(mu-0.5)+","+str(mu+1)+")--++(2,0);", file=contour)
+print("\\draw[color=green, line width=15pt]("+str(mu-0.5)+","+str(mu+2)+")--++(2,0);", file=contour)
+print("\\grid{"+str(L-1)+"}{"+str(L-1)+"}{(0,0)}\n", file=contour)
+draw_loops([loop1,loop2],contour,"green")
+draw_loops([loop3],contour,"blue")
+draw_interactions(v_interactions,h_interactions,contour)
+draw_dimers(v_dimers,h_dimers,contour,"black")
+draw_dimers(v_mantle,h_mantle,contour,"gray")
+close_tikz(contour)
+
diff --git a/figs/dimer_example.fig/libs/dimer.sty b/figs/dimer_example.fig/libs/dimer.sty
new file mode 120000
index 0000000..2d83c8a
--- /dev/null
+++ b/figs/dimer_example.fig/libs/dimer.sty
@@ -0,0 +1 @@
+../../libs/dimer.sty \ No newline at end of file
diff --git a/figs/libs/Makefile b/figs/libs/Makefile
new file mode 100644
index 0000000..994463b
--- /dev/null
+++ b/figs/libs/Makefile
@@ -0,0 +1,25 @@
+PROJECTNAME=$(basename $(basename $(wildcard *.tikz.tex)))
+LIBS=$(notdir $(wildcard libs/*))
+
+PDFS=$(addsuffix .pdf, $(PROJECTNAME))
+
+all: $(PDFS)
+
+$(PDFS): $(LIBS)
+ echo $(LIBS)
+ pdflatex -jobname $(basename $@) -file-line-error $(patsubst %.pdf, %.tikz.tex, $@)
+
+$(LIBS):
+ ln -fs libs/$@ ./
+
+clean-libs:
+ rm -f $(LIBS)
+
+clean-aux:
+ rm -f $(addsuffix .aux, $(PROJECTNAME))
+ rm -f $(addsuffix .log, $(PROJECTNAME))
+
+clean-tex:
+ rm -f $(PDFS)
+
+clean: clean-libs clean-aux clean-tex
diff --git a/figs/libs/dimer.sty b/figs/libs/dimer.sty
new file mode 100644
index 0000000..0f087ef
--- /dev/null
+++ b/figs/libs/dimer.sty
@@ -0,0 +1,33 @@
+% square lattice (width #1, height #2, origin #3)
+\def\grid#1#2#3{
+ \foreach\i in {0,...,#2}{
+ \draw#3++(0,\i)--++(#1,0);
+ }
+ \foreach\i in {0,...,#1}{
+ \draw#3++(\i,0)--++(0,#2);
+ }
+}
+
+% dimer (bottom-left vertex #1, vertical or horizontal #2)
+\def\dimer#1#2{
+ \if#2h
+ \draw[line width=5pt]#1--++(1,0);
+ \fill#1circle(7pt);
+ \fill#1++(1,0)circle(7pt);
+ \else
+ \draw[line width=5pt]#1--++(0,1);
+ \fill#1circle(7pt);
+ \fill#1++(0,1)circle(7pt);
+ \fi
+}
+
+% interactions (bottom-left vertex #1, vertical or horizontal #2)
+\def\interaction#1#2{
+ \if#2h
+ \draw[line width=5pt, color=white]#1--++(1,0);
+ \draw[line width=4pt, decorate, decoration={snake}, color=red]#1--++(1,0);
+ \else
+ \draw[line width=5pt, color=white]#1--++(0,1);
+ \draw[line width=4pt, decorate, decoration={snake}, color=red]#1--++(0,1);
+ \fi
+}
diff --git a/figs/polymer_example.fig/Makefile b/figs/polymer_example.fig/Makefile
new file mode 120000
index 0000000..704310e
--- /dev/null
+++ b/figs/polymer_example.fig/Makefile
@@ -0,0 +1 @@
+../libs/Makefile \ No newline at end of file
diff --git a/figs/polymer_example.fig/contours.tikz.tex b/figs/polymer_example.fig/contours.tikz.tex
new file mode 100644
index 0000000..c49c0cc
--- /dev/null
+++ b/figs/polymer_example.fig/contours.tikz.tex
@@ -0,0 +1,69 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}
+
+%% mantles
+
+% blue
+\fill[color=red](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+\fill[color=white](4,7.5)--++(9,0)--++(0.5,0.5)--++(0,6)--++(-0.5,0.5)--++(-9,0)--++(-0.5,-0.5)--++(0,-6)--cycle;
+% red
+\fill[color=red](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\fill[color=white](7,10.5)--++(2,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-2,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% teal
+\fill[color=blue](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+\fill[color=white](11,20.5)--++(7,0)--++(0.5,-0.5)--++(0.5,-0.5)--++(1,0)--++(0.5,-0.5)--++(0,-9)--++(0.5,-0.5)--++(11,0)--++(0.5,0.5)--++(0,20)--++(-0.5,0.5)--++(-21,0)--++(-0.5,-0.5)--++(0,-9)--cycle;
+% magenta
+\fill[color=blue](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+\fill[color=white](14,23.5)--++(16,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-16,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+% cyan
+\fill[color=blue](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\fill[color=white](24,13.5)--++(5,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% orange
+\fill[color=blue](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+\fill[color=white](17,24.5)--++(1,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-1,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% green
+\fill[color=blue](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+
+
+%% segments
+
+\foreach \i in {9,...,14}{
+ \draw[color=red, line width=15pt](3.5,\i)--++(2,0);
+ \draw[color=red, line width=15pt](10.5,\i)--++(3,0);
+}
+
+\foreach \i in {12,...,17}{
+ \draw[color=blue, line width=15pt](20.5,\i)--++(2,0);
+ \draw[color=blue, line width=15pt](30.5,\i)--++(2,0);
+}
+\foreach \i in {22,...,29}{
+ \draw[color=blue, line width=15pt](10.5,\i)--++(2,0);
+ \draw[color=blue, line width=15pt](31.5,\i)--++(1,0);
+}
+
+\foreach \i in {23,...,26}{
+ \draw[color=blue, line width=15pt](\i,23.5)--++(0,1);
+ \draw[color=blue, line width=15pt](\i,26.5)--++(0,1);
+}
+
+%% grid
+\grid{36}{36}{[color=lightgray](0,0)}
+
+
+%% loops
+\draw[color=black, line width=5pt](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+\draw[color=black, line width=5pt](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\draw[color=black, line width=5pt](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+\draw[color=black, line width=5pt](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+\draw[color=black, line width=5pt](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\draw[color=black, line width=5pt](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+\draw[color=black, line width=5pt](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/figs/polymer_example.fig/inclusion_tree.tikz.tex b/figs/polymer_example.fig/inclusion_tree.tikz.tex
new file mode 100644
index 0000000..6394979
--- /dev/null
+++ b/figs/polymer_example.fig/inclusion_tree.tikz.tex
@@ -0,0 +1,45 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}
+
+\path(0,0)coordinate(root);
+\path(root)++(45:1)coordinate(teal);
+\path(root)++(135:1)coordinate(blue);
+\path(blue)++(135:1)coordinate(red);
+\path(teal)++(135:1)coordinate(cyan);
+\path(teal)++(45:1)coordinate(magenta);
+\path(magenta)++(135:1)coordinate(orange);
+\path(magenta)++(45:1)coordinate(green);
+
+\draw(root)--(teal);
+\draw(root)--(blue);
+\draw(blue)--(red);
+\draw(teal)--(cyan);
+\draw(teal)--(magenta);
+\draw(magenta)--(orange);
+\draw(magenta)--(green);
+
+\fill[color=black](root)circle(3pt);
+\fill[color=teal](teal)circle(3pt);
+\fill[color=blue](blue)circle(3pt);
+\fill[color=red](red)circle(3pt);
+\fill[color=cyan](cyan)circle(3pt);
+\fill[color=magenta](magenta)circle(3pt);
+\fill[color=orange](orange)circle(3pt);
+\fill[color=green](green)circle(3pt);
+
+\draw[color=black](blue)++(-135:0.3)node{\footnotesize\it a};
+\draw[color=black](red)++(-135:0.3)node{\footnotesize\it b};
+\draw[color=black](teal)++(-45:0.3)node{\footnotesize\it c};
+\draw[color=black](magenta)++(-45:0.3)node{\footnotesize\it d};
+\draw[color=black](cyan)++(-135:0.3)node{\footnotesize\it e};
+\draw[color=black](orange)++(-135:0.3)node{\footnotesize\it f};
+\draw[color=black](green)++(-45:0.3)node{\footnotesize\it g};
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/figs/polymer_example.fig/libs/dimer.sty b/figs/polymer_example.fig/libs/dimer.sty
new file mode 120000
index 0000000..2d83c8a
--- /dev/null
+++ b/figs/polymer_example.fig/libs/dimer.sty
@@ -0,0 +1 @@
+../../libs/dimer.sty \ No newline at end of file
diff --git a/figs/polymer_example.fig/lollipops-tree.tikz.tex b/figs/polymer_example.fig/lollipops-tree.tikz.tex
new file mode 100644
index 0000000..c8b617c
--- /dev/null
+++ b/figs/polymer_example.fig/lollipops-tree.tikz.tex
@@ -0,0 +1,30 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}
+
+\path(0,0)coordinate(blue);
+\path(blue)++(45:1)coordinate(red);
+\path(blue)++(135:1)coordinate(teal);
+\path(teal)++(135:1)coordinate(cyan);
+
+\draw(blue)--(red);
+\draw(blue)--(teal);
+\draw(teal)--(cyan);
+
+\fill[color=blue](blue)circle(3pt);
+\fill[color=red](red)circle(3pt);
+\fill[color=teal](teal)circle(3pt);
+\fill[color=cyan](cyan)circle(3pt);
+
+\draw[color=black](blue)++(-135:0.3)node{\footnotesize\it a};
+\draw[color=black](red)++(-45:0.3)node{\footnotesize\it b};
+\draw[color=black](teal)++(-135:0.3)node{\footnotesize\it c};
+\draw[color=black](cyan)++(-135:0.3)node{\footnotesize\it e};
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/figs/polymer_example.fig/lollipops.tikz.tex b/figs/polymer_example.fig/lollipops.tikz.tex
new file mode 100644
index 0000000..6b6a058
--- /dev/null
+++ b/figs/polymer_example.fig/lollipops.tikz.tex
@@ -0,0 +1,76 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}[scale=0.2]
+
+%% mantles
+
+% blue
+\fill[color=blue](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+\fill[color=white](4,7.5)--++(9,0)--++(0.5,0.5)--++(0,6)--++(-0.5,0.5)--++(-9,0)--++(-0.5,-0.5)--++(0,-6)--cycle;
+% red
+\fill[color=red](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\fill[color=white](7,10.5)--++(2,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-2,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% teal
+\fill[color=teal](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+\fill[color=white](11,20.5)--++(7,0)--++(0.5,-0.5)--++(0.5,-0.5)--++(1,0)--++(0.5,-0.5)--++(0,-9)--++(0.5,-0.5)--++(11,0)--++(0.5,0.5)--++(0,20)--++(-0.5,0.5)--++(-21,0)--++(-0.5,-0.5)--++(0,-9)--cycle;
+% magenta
+\fill[color=teal](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+\fill[color=white](14,23.5)--++(16,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-16,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+% cyan
+\fill[color=cyan](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\fill[color=white](24,13.5)--++(5,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% orange
+\fill[color=teal](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+\fill[color=white](17,24.5)--++(1,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-1,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% green
+\fill[color=teal](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+
+
+%% segments
+
+\draw[color=teal, line width=3pt](10,15.5)--++(0,4);
+
+\draw[color=red, line width=3pt](3.5,12)--++(2,0);
+
+\draw[color=cyan, line width=3pt](20.5,14)--++(2,0);
+
+\foreach \i in {22,...,29}{
+ \draw[color=teal, line width=3pt](31.5,\i)--++(1,0);
+}
+
+\foreach \i in {23,...,26}{
+ \draw[color=teal, line width=3pt](\i,23.5)--++(0,1);
+ \draw[color=teal, line width=3pt](\i,26.5)--++(0,1);
+}
+
+%% grid
+\grid{36}{36}{[color=lightgray](0,0)}
+
+
+%% loops
+
+\draw[color=black, line width=1pt](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+\draw[color=black](2,16.5)node{\it a};
+
+\draw[color=black, line width=1pt](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\draw[color=black](4.5,13)node{\it b};
+
+\draw[color=black, line width=1pt](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+\draw[color=black](9,32.5)node{\it c};
+
+\draw[color=black, line width=1pt](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+
+\draw[color=black, line width=1pt](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\draw[color=black](23,18.5)node{\it e};
+
+\draw[color=black, line width=1pt](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+
+\draw[color=black, line width=1pt](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/figs/polymer_example.fig/loops.tikz.tex b/figs/polymer_example.fig/loops.tikz.tex
new file mode 100644
index 0000000..db06058
--- /dev/null
+++ b/figs/polymer_example.fig/loops.tikz.tex
@@ -0,0 +1,34 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}[scale=0.2]
+
+\grid{36}{36}{[color=lightgray](0,0)}
+
+\draw[color=blue, line width=1pt](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+\draw[color=black](2,16.5)node{\it a};
+
+\draw[color=red, line width=1pt](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\draw[color=black](4.5,13)node{\it b};
+
+\draw[color=teal, line width=1pt](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+\draw[color=black](9,32.5)node{\it c};
+
+\draw[color=magenta, line width=1pt](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+\draw[color=black](13,30.5)node{\it d};
+
+\draw[color=cyan, line width=1pt](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\draw[color=black](23,18.5)node{\it e};
+
+\draw[color=orange, line width=1pt](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+\draw[color=black](15,28.5)node{\it f};
+
+\draw[color=green, line width=1pt](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+\draw[color=black](23,27.5)node{\it g};
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/figs/polymer_example.fig/polymers.tikz.tex b/figs/polymer_example.fig/polymers.tikz.tex
new file mode 100644
index 0000000..e2f688a
--- /dev/null
+++ b/figs/polymer_example.fig/polymers.tikz.tex
@@ -0,0 +1,76 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}
+
+%% mantles
+
+% blue
+\fill[color=gray](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+\fill[color=white](4,7.5)--++(9,0)--++(0.5,0.5)--++(0,6)--++(-0.5,0.5)--++(-9,0)--++(-0.5,-0.5)--++(0,-6)--cycle;
+% red
+\fill[color=gray](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\fill[color=white](7,10.5)--++(2,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-2,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% teal
+\fill[color=gray](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+\fill[color=white](11,20.5)--++(7,0)--++(0.5,-0.5)--++(0.5,-0.5)--++(1,0)--++(0.5,-0.5)--++(0,-9)--++(0.5,-0.5)--++(11,0)--++(0.5,0.5)--++(0,20)--++(-0.5,0.5)--++(-21,0)--++(-0.5,-0.5)--++(0,-9)--cycle;
+% magenta
+\fill[color=gray](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+\fill[color=white](14,23.5)--++(16,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-16,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+% cyan
+\fill[color=gray](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\fill[color=white](24,13.5)--++(5,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% orange
+\fill[color=gray](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+\fill[color=white](17,24.5)--++(1,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-1,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% green
+\fill[color=gray](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+
+
+%% segments
+
+\draw[color=gray, line width=15pt](4,-0.5)--++(0,7);
+\draw[color=gray, line width=15pt](10,15.5)--++(0,4);
+\draw[color=gray, line width=15pt](11,15.5)--++(0,4);
+\draw[color=gray, line width=15pt](9,31.5)--++(0,5);
+
+\foreach \i in {9,...,14}{
+ \draw[color=gray, line width=15pt](3.5,\i)--++(2,0);
+ \draw[color=gray, line width=15pt](10.5,\i)--++(3,0);
+}
+
+\foreach \i in {12,...,17}{
+ \draw[color=gray, line width=15pt](20.5,\i)--++(2,0);
+ \draw[color=gray, line width=15pt](30.5,\i)--++(2,0);
+}
+\foreach \i in {22,...,29}{
+ \draw[color=gray, line width=15pt](10.5,\i)--++(2,0);
+ \draw[color=gray, line width=15pt](31.5,\i)--++(1,0);
+}
+
+\foreach \i in {23,...,26}{
+ \draw[color=gray, line width=15pt](\i,23.5)--++(0,1);
+ \draw[color=gray, line width=15pt](\i,26.5)--++(0,1);
+}
+
+%% grid
+\grid{36}{36}{[color=lightgray](0,0)}
+
+
+%% loops
+
+\draw[color=black, line width=5pt](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+\draw[color=black, line width=5pt](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+
+\draw[color=black, line width=5pt](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+\draw[color=black, line width=5pt](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+\draw[color=black, line width=5pt](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\draw[color=black, line width=5pt](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+\draw[color=black, line width=5pt](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/figs/polymer_example.fig/segments.tikz.tex b/figs/polymer_example.fig/segments.tikz.tex
new file mode 100644
index 0000000..9669e3b
--- /dev/null
+++ b/figs/polymer_example.fig/segments.tikz.tex
@@ -0,0 +1,132 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}
+
+
+%% mantles
+
+% blue
+\fill[color=blue](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+\fill[color=white](4,7.5)--++(9,0)--++(0.5,0.5)--++(0,6)--++(-0.5,0.5)--++(-9,0)--++(-0.5,-0.5)--++(0,-6)--cycle;
+% red
+\fill[color=red](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\fill[color=white](7,10.5)--++(2,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-2,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% teal
+\fill[color=teal](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+\fill[color=white](11,20.5)--++(7,0)--++(0.5,-0.5)--++(0.5,-0.5)--++(1,0)--++(0.5,-0.5)--++(0,-9)--++(0.5,-0.5)--++(11,0)--++(0.5,0.5)--++(0,20)--++(-0.5,0.5)--++(-21,0)--++(-0.5,-0.5)--++(0,-9)--cycle;
+% magenta
+\fill[color=magenta](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+\fill[color=white](14,23.5)--++(16,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-16,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+% cyan
+\fill[color=cyan](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+\fill[color=white](24,13.5)--++(5,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% orange
+\fill[color=orange](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+\fill[color=white](17,24.5)--++(1,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-1,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+% green
+\fill[color=green](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+
+
+%% segments
+
+\foreach \i in {0,...,1}{
+ \draw[color=gray, line width=15pt](\i,-0.5)--++(0,37);
+}
+\foreach \i in {2,...,8}{
+ \draw[color=gray, line width=15pt](\i,-0.5)--++(0,7);
+ \draw[color=gray, line width=15pt](\i,15.5)--++(0,21);
+}
+\foreach \i in {9,...,15}{
+ \draw[color=gray, line width=15pt](\i,-0.5)--++(0,7);
+ \draw[color=gray, line width=15pt](\i,15.5)--++(0,4);
+ \draw[color=gray, line width=15pt](\i,31.5)--++(0,5);
+}
+\foreach \i in {16,...,18}{
+ \draw[color=gray, line width=15pt](\i,-0.5)--++(0,20);
+ \draw[color=gray, line width=15pt](\i,31.5)--++(0,5);
+}
+\foreach \i in {19,...,34}{
+ \draw[color=gray, line width=15pt](\i,-0.5)--++(0,9);
+ \draw[color=gray, line width=15pt](\i,31.5)--++(0,5);
+}
+\foreach \i in {35,...,36}{
+ \draw[color=gray, line width=15pt](\i,-0.5)--++(0,37);
+}
+
+\draw[color=blue, line width=15pt](3.5,8)--++(10,0);
+\foreach \i in {9,...,14}{
+ \draw[color=blue, line width=15pt](3.5,\i)--++(2,0);
+ \draw[color=blue, line width=15pt](10.5,\i)--++(3,0);
+}
+
+\foreach \i in {7,...,9}{
+ \draw[color=red, line width=15pt](\i,10.5)--++(0,2);
+}
+
+\foreach \i in {10,...,11}{
+ \draw[color=teal, line width=15pt](20.5,\i)--++(12,0);
+}
+\foreach \i in {12,...,17}{
+ \draw[color=teal, line width=15pt](20.5,\i)--++(2,0);
+ \draw[color=teal, line width=15pt](30.5,\i)--++(2,0);
+}
+\foreach \i in {18,...,19}{
+ \draw[color=teal, line width=15pt](20.5,\i)--++(12,0);
+}
+\draw[color=teal, line width=15pt](18.5,20)--++(14,0);
+\draw[color=teal, line width=15pt](10.5,21)--++(22,0);
+\foreach \i in {22,...,29}{
+ \draw[color=teal, line width=15pt](10.5,\i)--++(2,0);
+ \draw[color=teal, line width=15pt](31.5,\i)--++(1,0);
+}
+\draw[color=teal, line width=15pt](10.5,30)--++(22,0);
+
+\foreach \i in {24,...,29}{
+ \draw[color=cyan, line width=15pt](\i,13.5)--++(0,2);
+}
+
+\draw[color=magenta, line width=15pt](14,23.5)--++(0,4);
+\foreach \i in {21,...,22}{
+ \draw[color=magenta, line width=15pt](\i,23.5)--++(0,4);
+}
+\foreach \i in {23,...,26}{
+ \draw[color=magenta, line width=15pt](\i,23.5)--++(0,1);
+ \draw[color=magenta, line width=15pt](\i,26.5)--++(0,1);
+}
+\foreach \i in {27,...,30}{
+ \draw[color=magenta, line width=15pt](\i,23.5)--++(0,4);
+}
+
+\foreach \i in {25,...,26}{
+ \draw[color=orange, line width=15pt](16.5,\i)--++(2,0);
+}
+
+
+
+%% grid
+\grid{36}{36}{[color=lightgray](0,0)}
+
+%% loops
+% blue
+\draw[color=black, line width=5pt](2,6.5)--++(13,0)--++(0.5,0.5)--++(0,8)--++(-0.5,0.5)--++(-13,0)--++(-0.5,-0.5)--++(0,-8)--cycle;
+% red
+\draw[color=black, line width=5pt](6,8.5)--++(4,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-4,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+% teal
+\draw[color=black, line width=5pt](9,19.5)--++(9,0)--++(0.5,-0.5)--++(0,-10)--++(0.5,-0.5)--++(15,0)--++(0.5,0.5)--++(0,22)--++(-0.5,0.5)--++(-25,0)--++(-0.5,-0.5)--++(0,-11)--cycle;
+% magenta
+\draw[color=black, line width=5pt](13,21.5)--++(18,0)--++(0.5,0.5)--++(0,7)--++(-0.5,0.5)--++(-18,0)--++(-0.5,-0.5)--++(0,-7)--cycle;
+% cyan
+\draw[color=black, line width=5pt](23,11.5)--++(7,0)--++(0.5,0.5)--++(0,5)--++(-0.5,0.5)--++(-7,0)--++(-0.5,-0.5)--++(0,-5)--cycle;
+% orange
+\draw[color=black, line width=5pt](15,23.5)--++(5,0)--++(0.5,0.5)--++(0,3)--++(-0.5,0.5)--++(-5,0)--++(-0.5,-0.5)--++(0,-3)--cycle;
+%green
+\draw[color=black, line width=5pt](23,24.5)--++(3,0)--++(0.5,0.5)--++(0,1)--++(-0.5,0.5)--++(-3,0)--++(-0.5,-0.5)--++(0,-1)--cycle;
+
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/figs/smallest.fig/Makefile b/figs/smallest.fig/Makefile
new file mode 120000
index 0000000..704310e
--- /dev/null
+++ b/figs/smallest.fig/Makefile
@@ -0,0 +1 @@
+../libs/Makefile \ No newline at end of file
diff --git a/figs/smallest.fig/libs/dimer.sty b/figs/smallest.fig/libs/dimer.sty
new file mode 120000
index 0000000..2d83c8a
--- /dev/null
+++ b/figs/smallest.fig/libs/dimer.sty
@@ -0,0 +1 @@
+../../libs/dimer.sty \ No newline at end of file
diff --git a/figs/smallest.fig/smallest-18.tikz.tex b/figs/smallest.fig/smallest-18.tikz.tex
new file mode 100644
index 0000000..756f1e6
--- /dev/null
+++ b/figs/smallest.fig/smallest-18.tikz.tex
@@ -0,0 +1,16 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}
+
+\fill[color=gray](2,0.5)--++(3,0)--++(1.5,1.5)--++(-1.5,1.5)--++(-3,0)--++(-1.5,-1.5)--cycle;
+\fill[color=white](3,1.5)--++(1,0)--++(0.5,0.5)--++(-0.5,0.5)--++(-1,0)--++(-0.5,-0.5)--cycle;
+\grid{7}{4}{[color=lightgray](0,0)}
+\draw[color=black, line width=5pt](2,0.5)--++(3,0)--++(1.5,1.5)--++(-1.5,1.5)--++(-3,0)--++(-1.5,-1.5)--cycle;
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/figs/smallest.fig/smallest-6.tikz.tex b/figs/smallest.fig/smallest-6.tikz.tex
new file mode 100644
index 0000000..a231606
--- /dev/null
+++ b/figs/smallest.fig/smallest-6.tikz.tex
@@ -0,0 +1,15 @@
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usepackage{dimer}
+
+\begin{document}
+\begin{tikzpicture}
+
+\fill[color=gray](1,0.5)--++(1,0)--++(0.5,0.5)--++(-0.5,0.5)--++(-1,0)--++(-0.5,-0.5)--cycle;
+\grid{3}{2}{[color=lightgray](0,0)}
+\draw[color=black, line width=5pt](1,0.5)--++(1,0)--++(0.5,0.5)--++(-0.5,0.5)--++(-1,0)--++(-0.5,-0.5)--cycle;
+
+\end{tikzpicture}
+\end{document}
+