Initial commit
This commit is contained in:
commit
52a5942994
2523
Jauslin_Lieb_2017.tex
Normal file
2523
Jauslin_Lieb_2017.tex
Normal file
File diff suppressed because it is too large
Load Diff
69
Makefile
Normal file
69
Makefile
Normal file
@ -0,0 +1,69 @@
|
||||
PROJECTNAME=$(basename $(wildcard *.tex))
|
||||
LIBS=$(notdir $(wildcard libs/*))
|
||||
FIGS=$(notdir $(wildcard figs/*.fig))
|
||||
DIMER_LIBS=dimer.600pk dimer.tfm dimer.sty
|
||||
|
||||
PDFS=$(addsuffix .pdf, $(PROJECTNAME))
|
||||
SYNCTEXS=$(addsuffix .synctex.gz, $(PROJECTNAME))
|
||||
|
||||
all: $(PROJECTNAME)
|
||||
|
||||
$(PROJECTNAME): $(LIBS) $(FIGS) $(DIMER_LIBS)
|
||||
pdflatex -file-line-error $@.tex
|
||||
pdflatex -file-line-error $@.tex
|
||||
pdflatex -synctex=1 $@.tex
|
||||
|
||||
$(PROJECTNAME).aux: $(LIBS) $(FIGS) $(DIMER_LIBS)
|
||||
pdflatex -file-line-error -draftmode $(PROJECTNAME).tex
|
||||
|
||||
|
||||
$(SYNCTEXS): $(LIBS) $(FIGS) $(DIMER_LIBS)
|
||||
pdflatex -synctex=1 $(patsubst %.synctex.gz, %.tex, $@)
|
||||
|
||||
|
||||
libs: $(LIBS)
|
||||
|
||||
$(LIBS):
|
||||
ln -fs libs/$@ ./
|
||||
|
||||
dimer_font: $(DIMER_LIBS)
|
||||
|
||||
$(DIMER_LIBS):
|
||||
$(MAKE) -C dimer_font
|
||||
ln -fs dimer_font/$@ ./
|
||||
|
||||
figs: $(FIGS)
|
||||
|
||||
$(FIGS):
|
||||
make -C figs/$@
|
||||
ln -fs figs/$@/*.pdf ./
|
||||
|
||||
|
||||
clean-aux: clean-figs-aux clean-dimer-aux
|
||||
rm -f $(addsuffix .aux, $(PROJECTNAME))
|
||||
rm -f $(addsuffix .log, $(PROJECTNAME))
|
||||
rm -f $(addsuffix .out, $(PROJECTNAME))
|
||||
rm -f $(addsuffix .toc, $(PROJECTNAME))
|
||||
|
||||
clean-libs:
|
||||
rm -f $(LIBS)
|
||||
|
||||
clean-figs:
|
||||
$(foreach fig,$(addprefix figs/, $(FIGS)), make -C $(fig) clean; )
|
||||
rm -f $(notdir $(wildcard figs/*.fig/*.pdf))
|
||||
|
||||
clean-figs-aux:
|
||||
$(foreach fig,$(addprefix figs/, $(FIGS)), make -C $(fig) clean-aux; )
|
||||
|
||||
clean-dimer:
|
||||
$(MAKE) -C dimer_font clean
|
||||
rm -f $(DIMER_LIBS)
|
||||
|
||||
clean-dimer-aux:
|
||||
$(MAKE) -C dimer_font clean-aux
|
||||
|
||||
|
||||
clean-tex:
|
||||
rm -f $(PDFS) $(SYNCTEXS)
|
||||
|
||||
clean: clean-aux clean-tex clean-libs clean-figs clean-dimer
|
49
README
Normal file
49
README
Normal file
@ -0,0 +1,49 @@
|
||||
This directory contains the source files to typeset the article, and generate
|
||||
the figures. This can be accomplished by running
|
||||
make
|
||||
|
||||
This document uses a custom class file, located in the 'libs' directory, which
|
||||
defines a number of commands. Most of these are drop-in replacements for those
|
||||
defined in the 'article' class.
|
||||
|
||||
Some extra functionality is provided in custom style files, located in the
|
||||
'libs' directory.
|
||||
|
||||
|
||||
* Dependencies:
|
||||
|
||||
pdflatex
|
||||
TeXlive packages:
|
||||
amsfonts
|
||||
color
|
||||
doublestroke
|
||||
graphics
|
||||
hyperref
|
||||
latex
|
||||
marginnote
|
||||
pgf
|
||||
standalone
|
||||
metafont
|
||||
mfware
|
||||
GNU make
|
||||
python3
|
||||
|
||||
* Files:
|
||||
|
||||
Jauslin_Lieb_2017.tex:
|
||||
main LaTeX file
|
||||
|
||||
libs:
|
||||
custom LaTeX class and style files
|
||||
|
||||
figs:
|
||||
source code for the figures
|
||||
|
||||
figs/dimer_example.fig/dimer_conf.py:
|
||||
this python script randomly generates a suitable dimer configuration for
|
||||
the figures interaction.pdf boundary.pdf bounding_loop.pdf and
|
||||
dimer_contour.pdf
|
||||
|
||||
dimer_font:
|
||||
metafont font with dimer symbols
|
||||
|
18
dimer_font/Makefile
Normal file
18
dimer_font/Makefile
Normal file
@ -0,0 +1,18 @@
|
||||
PROJECTNAME=dimer
|
||||
|
||||
dist: $(PROJECTNAME).600pk
|
||||
|
||||
$(PROJECTNAME).600gf:
|
||||
mf '\mode=ljfour; mode_setup; input $(PROJECTNAME).mf'
|
||||
|
||||
$(PROJECTNAME).600pk: $(PROJECTNAME).600gf
|
||||
gftopk $(PROJECTNAME).600gf $(PROJECTNAME).600pk
|
||||
|
||||
clean-aux:
|
||||
rm -f $(PROJECTNAME).600gf
|
||||
rm -f $(PROJECTNAME).log
|
||||
|
||||
clean: clean-aux
|
||||
rm -f $(PROJECTNAME).600pk
|
||||
rm -f $(PROJECTNAME).tfm
|
||||
|
65
dimer_font/dimer.mf
Normal file
65
dimer_font/dimer.mf
Normal file
@ -0,0 +1,65 @@
|
||||
%% half-dimer pointing up
|
||||
% name, width, height, depth
|
||||
beginchar("a",1.5pt#,7pt#,0);
|
||||
pickup pencircle scaled 4;
|
||||
|
||||
x1=y1=x2=x3=0;
|
||||
y2=h;
|
||||
x4=-x5=-y4=-y5=w;
|
||||
y3=2y4;
|
||||
|
||||
draw z1..z2;
|
||||
draw z1..z4..z3..z5..cycle;
|
||||
endchar;
|
||||
|
||||
%% half-dimer pointing down
|
||||
beginchar("b",1.5pt#,7pt#,0);
|
||||
pickup pencircle scaled 4;
|
||||
|
||||
x1=x2=x3=0;
|
||||
y1=h-2w;
|
||||
y2=-2w;
|
||||
x4=-x5=w;
|
||||
y4=y5=h-w;
|
||||
y3=h;
|
||||
|
||||
draw z1..z2;
|
||||
draw z1..z4..z3..z5..cycle;
|
||||
endchar;
|
||||
|
||||
%% radius for horizontal dimers
|
||||
r=1.5pt;
|
||||
|
||||
%% half-dimer pointing right
|
||||
beginchar("c",10pt#,4.5pt#,0);
|
||||
pickup pencircle scaled 4;
|
||||
|
||||
y1=y2=y3=h-r;
|
||||
x3=0;
|
||||
y4=h;
|
||||
y5=h-2r;
|
||||
x4=x5=r;
|
||||
x1=2r;
|
||||
x2=w;
|
||||
|
||||
draw z1..z2;
|
||||
draw z1..z4..z3..z5..cycle;
|
||||
endchar;
|
||||
|
||||
%% half-dimer pointing left
|
||||
beginchar("d",10pt#,4.5pt#,0);
|
||||
pickup pencircle scaled 4;
|
||||
|
||||
y1=y2=y3=h-r;
|
||||
x3=w;
|
||||
y4=h;
|
||||
y5=h-2r;
|
||||
x4=x5=w-r;
|
||||
x1=w-2r;
|
||||
x2=0;
|
||||
|
||||
draw z1..z2;
|
||||
draw z1..z4..z3..z5..cycle;
|
||||
endchar;
|
||||
|
||||
end
|
5
dimer_font/dimer.sty
Normal file
5
dimer_font/dimer.sty
Normal file
@ -0,0 +1,5 @@
|
||||
\newfont{\dimer}{dimer}
|
||||
\def\updimer{\kern3pt\hbox{\dimer a}\kern2pt}
|
||||
\def\downdimer{\kern3pt\hbox{\dimer b}\kern2pt}
|
||||
\def\rightdimer{\hbox{\dimer c}}
|
||||
\def\leftdimer{\hbox{\dimer d}}
|
32
figs/dimer_example.fig/Makefile
Normal file
32
figs/dimer_example.fig/Makefile
Normal file
@ -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
|
289
figs/dimer_example.fig/dimer_conf.py
Normal file
289
figs/dimer_example.fig/dimer_conf.py
Normal file
@ -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)
|
||||
|
1
figs/dimer_example.fig/libs/dimer.sty
Symbolic link
1
figs/dimer_example.fig/libs/dimer.sty
Symbolic link
@ -0,0 +1 @@
|
||||
../../libs/dimer.sty
|
25
figs/libs/Makefile
Normal file
25
figs/libs/Makefile
Normal file
@ -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
|
33
figs/libs/dimer.sty
Normal file
33
figs/libs/dimer.sty
Normal file
@ -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
|
||||
}
|
1
figs/polymer_example.fig/Makefile
Symbolic link
1
figs/polymer_example.fig/Makefile
Symbolic link
@ -0,0 +1 @@
|
||||
../libs/Makefile
|
69
figs/polymer_example.fig/contours.tikz.tex
Normal file
69
figs/polymer_example.fig/contours.tikz.tex
Normal file
@ -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}
|
||||
|
45
figs/polymer_example.fig/inclusion_tree.tikz.tex
Normal file
45
figs/polymer_example.fig/inclusion_tree.tikz.tex
Normal file
@ -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}
|
||||
|
1
figs/polymer_example.fig/libs/dimer.sty
Symbolic link
1
figs/polymer_example.fig/libs/dimer.sty
Symbolic link
@ -0,0 +1 @@
|
||||
../../libs/dimer.sty
|
30
figs/polymer_example.fig/lollipops-tree.tikz.tex
Normal file
30
figs/polymer_example.fig/lollipops-tree.tikz.tex
Normal file
@ -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}
|
||||
|
76
figs/polymer_example.fig/lollipops.tikz.tex
Normal file
76
figs/polymer_example.fig/lollipops.tikz.tex
Normal file
@ -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}
|
||||
|
34
figs/polymer_example.fig/loops.tikz.tex
Normal file
34
figs/polymer_example.fig/loops.tikz.tex
Normal file
@ -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}
|
||||
|
76
figs/polymer_example.fig/polymers.tikz.tex
Normal file
76
figs/polymer_example.fig/polymers.tikz.tex
Normal file
@ -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}
|
||||
|
132
figs/polymer_example.fig/segments.tikz.tex
Normal file
132
figs/polymer_example.fig/segments.tikz.tex
Normal file
@ -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}
|
||||
|
1
figs/smallest.fig/Makefile
Symbolic link
1
figs/smallest.fig/Makefile
Symbolic link
@ -0,0 +1 @@
|
||||
../libs/Makefile
|
1
figs/smallest.fig/libs/dimer.sty
Symbolic link
1
figs/smallest.fig/libs/dimer.sty
Symbolic link
@ -0,0 +1 @@
|
||||
../../libs/dimer.sty
|
16
figs/smallest.fig/smallest-18.tikz.tex
Normal file
16
figs/smallest.fig/smallest-18.tikz.tex
Normal file
@ -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}
|
||||
|
15
figs/smallest.fig/smallest-6.tikz.tex
Normal file
15
figs/smallest.fig/smallest-6.tikz.tex
Normal file
@ -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}
|
||||
|
32
libs/constants.sty
Normal file
32
libs/constants.sty
Normal file
@ -0,0 +1,32 @@
|
||||
%%
|
||||
%% constants package:
|
||||
%% automatically numbered constants
|
||||
%%
|
||||
|
||||
%% TeX format
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
|
||||
%% package name
|
||||
\ProvidesPackage{constants}[2016/11/19]
|
||||
|
||||
%% declare new constant
|
||||
\def\cst#1#2{%
|
||||
% check whether the constant was defined
|
||||
\ifcsname cst@#1@#2\endcsname%
|
||||
#1_{\csname cst@#1@#2\endcsname}%
|
||||
\else%
|
||||
% check whether this character has a counter associated to it
|
||||
\ifcsname thecst@#1@@count\endcsname%
|
||||
\else%
|
||||
\newcounter{cst@#1@@count}%
|
||||
\fi%
|
||||
% increment counter
|
||||
\stepcounter{cst@#1@@count}%
|
||||
\expandafter\xdef\csname cst@#1@#2\endcsname{\csname thecst@#1@@count\endcsname}#1_{\csname thecst@#1@@count\endcsname}%
|
||||
\fi
|
||||
}
|
||||
|
||||
|
||||
%% end
|
||||
\endinput
|
||||
|
658
libs/ian.cls
Normal file
658
libs/ian.cls
Normal file
@ -0,0 +1,658 @@
|
||||
%%
|
||||
%% Ian's class file
|
||||
%%
|
||||
|
||||
%% TeX format
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
|
||||
%% class name
|
||||
\ProvidesClass{ian}[2017/09/15]
|
||||
|
||||
%% boolean to signal that this class is being used
|
||||
\newif\ifianclass
|
||||
|
||||
%% options
|
||||
% no section numbering in equations
|
||||
\DeclareOption{section_in_eq}{\sectionsineqtrue}
|
||||
\DeclareOption{section_in_fig}{\sectionsinfigtrue}
|
||||
\DeclareOption{section_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
|
||||
\DeclareOption{section_in_all}{\sectionsineqtrue\sectionsinfigtrue\PassOptionsToPackage{section_in_theo}{iantheo}}
|
||||
\DeclareOption{subsection_in_eq}{\subsectionsineqtrue}
|
||||
\DeclareOption{subsection_in_fig}{\subsectionsinfigtrue}
|
||||
\DeclareOption{subsection_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
|
||||
\DeclareOption{subsection_in_all}{\subsectionsineqtrue\subsectionsinfigtrue\PassOptionsToPackage{subsection_in_theo}{iantheo}}
|
||||
\DeclareOption{no_section_in_eq}{\sectionsineqfalse}
|
||||
\DeclareOption{no_section_in_fig}{\sectionsinfigfalse}
|
||||
\DeclareOption{no_section_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
|
||||
\DeclareOption{no_section_in_all}{\sectionsineqfalse\sectionsinfigfalse\PassOptionsToPackage{no_section_in_theo}{iantheo}}
|
||||
\DeclareOption{no_subsection_in_eq}{\subsectionsineqfalse}
|
||||
\DeclareOption{no_subsection_in_fig}{\subsectionsinfigfalse}
|
||||
\DeclareOption{no_subsection_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
|
||||
\DeclareOption{no_subsection_in_all}{\subsectionsineqfalse\subsectionsinfigfalse\PassOptionsToPackage{no_subsection_in_theo}{iantheo}}
|
||||
% reset point
|
||||
\DeclareOption{point_reset_at_section}{\PassOptionsToPackage{reset_at_section}{point}}
|
||||
\DeclareOption{point_no_reset_at_section}{\PassOptionsToPackage{no_reset_at_section}{point}}
|
||||
\DeclareOption{point_reset_at_theo}{\PassOptionsToPackage{reset_at_theo}{point}}
|
||||
\DeclareOption{point_no_reset_at_theo}{\PassOptionsToPackage{no_reset_at_theo}{point}}
|
||||
|
||||
\def\ian@defaultoptions{
|
||||
\ExecuteOptions{section_in_all, no_subsection_in_all}
|
||||
\ProcessOptions
|
||||
|
||||
%% required packages
|
||||
\RequirePackage{iantheo}
|
||||
\RequirePackage{point}
|
||||
\RequirePackage{color}
|
||||
\RequirePackage{marginnote}
|
||||
\PassOptionsToPackage{hidelinks}{hyperref}
|
||||
\RequirePackage{hyperref}
|
||||
}
|
||||
|
||||
%% paper dimensions
|
||||
\setlength\paperheight{297mm}
|
||||
\setlength\paperwidth{210mm}
|
||||
|
||||
%% fonts
|
||||
\input{size11.clo}
|
||||
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
|
||||
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
|
||||
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
|
||||
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
|
||||
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
|
||||
|
||||
%% text dimensions
|
||||
\hoffset=-50pt
|
||||
\voffset=-72pt
|
||||
\textwidth=460pt
|
||||
\textheight=704pt
|
||||
|
||||
|
||||
%% remove default indentation
|
||||
\parindent=0pt
|
||||
%% indent command
|
||||
\def\indent{\hskip20pt}
|
||||
|
||||
%% something is wrong with \thepage, redefine it
|
||||
\gdef\thepage{\the\c@page}
|
||||
|
||||
%% array lines (to use the array environment)
|
||||
\setlength\arraycolsep{5\p@}
|
||||
\setlength\arrayrulewidth{.4\p@}
|
||||
|
||||
|
||||
%% correct vertical alignment at the end of a document
|
||||
\AtEndDocument{
|
||||
\vfill
|
||||
\eject
|
||||
}
|
||||
|
||||
|
||||
%% hyperlinks
|
||||
% hyperlinkcounter
|
||||
\newcounter{lncount}
|
||||
% hyperref anchor
|
||||
\def\hrefanchor{%
|
||||
\stepcounter{lncount}%
|
||||
\hypertarget{ln.\thelncount}{}%
|
||||
}
|
||||
|
||||
%% define a command and write it to aux file
|
||||
\def\outdef#1#2{%
|
||||
% define command%
|
||||
\expandafter\xdef\csname #1\endcsname{#2}%
|
||||
% hyperlink number%
|
||||
\expandafter\xdef\csname #1@hl\endcsname{\thelncount}%
|
||||
% write command to aux%
|
||||
\immediate\write\@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname #1\endcsname{\csname #1\endcsname}}%
|
||||
\immediate\write\@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname #1@hl\endcsname{\thelncount}}%
|
||||
}
|
||||
|
||||
%% can call commands even when they are not defined
|
||||
\def\safe#1{%
|
||||
\ifdefined#1%
|
||||
#1%
|
||||
\else%
|
||||
{\color{red}\bf?}%
|
||||
\fi%
|
||||
}
|
||||
|
||||
%% define a label for the latest tag
|
||||
%% label defines a command containing the string stored in \tag
|
||||
\def\deflabel{
|
||||
\def\label##1{\expandafter\outdef{label@##1}{\safe\tag}}
|
||||
|
||||
\def\ref##1{%
|
||||
% check whether the label is defined (hyperlink runs into errors if this check is omitted)
|
||||
\ifcsname label@##1@hl\endcsname%
|
||||
\hyperlink{ln.\csname label@##1@hl\endcsname}{{\color{blue}\safe\csname label@##1\endcsname}}%
|
||||
\else%
|
||||
\ifcsname label@##1\endcsname%
|
||||
{\color{blue}\csname ##1\endcsname}%
|
||||
\else%
|
||||
{\bf ??}%
|
||||
\fi%
|
||||
\fi%
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
%% make a custom link at any given location in the document
|
||||
\def\makelink#1#2{%
|
||||
\hrefanchor%
|
||||
\outdef{label@#1}{#2}%
|
||||
}
|
||||
|
||||
|
||||
%% section command
|
||||
% counter
|
||||
\newcounter{sectioncount}
|
||||
% space before section
|
||||
\newlength\secskip
|
||||
\setlength\secskip{40pt}
|
||||
% a prefix to put before the section number, e.g. A for appendices
|
||||
\def\sectionprefix{}
|
||||
% define some lengths
|
||||
\newlength\secnumwidth
|
||||
\newlength\sectitlewidth
|
||||
\def\section#1{
|
||||
% reset counters
|
||||
\stepcounter{sectioncount}
|
||||
\setcounter{subsectioncount}{0}
|
||||
\ifsectionsineq
|
||||
\setcounter{seqcount}0
|
||||
\fi
|
||||
\ifsectionsinfig
|
||||
\setcounter{figcount}0
|
||||
\fi
|
||||
|
||||
% space before section (if not first)
|
||||
\ifnum\thesectioncount>1
|
||||
\vskip\secskip
|
||||
\penalty-1000
|
||||
\fi
|
||||
|
||||
% hyperref anchor
|
||||
\hrefanchor
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\sectionprefix\thesectioncount}
|
||||
|
||||
% get widths
|
||||
\def\@secnum{{\bf\Large\sectionprefix\thesectioncount.\hskip10pt}}
|
||||
\settowidth\secnumwidth{\@secnum}
|
||||
\setlength\sectitlewidth\textwidth
|
||||
\addtolength\sectitlewidth{-\secnumwidth}
|
||||
|
||||
% print name
|
||||
\parbox{\textwidth}{
|
||||
\@secnum
|
||||
\parbox[t]{\sectitlewidth}{\Large\bf #1}}
|
||||
|
||||
% write to table of contents
|
||||
\iftoc
|
||||
% save lncount in aux variable which is written to toc
|
||||
\immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@sec.\thesectioncount\endcsname{\thelncount}}
|
||||
\write\tocoutput{\noexpand\tocsection{#1}{\thepage}}
|
||||
\fi
|
||||
|
||||
%space
|
||||
\par\penalty10000
|
||||
\bigskip\penalty10000
|
||||
}
|
||||
|
||||
%% subsection
|
||||
% counter
|
||||
\newcounter{subsectioncount}
|
||||
% space before subsection
|
||||
\newlength\subsecskip
|
||||
\setlength\subsecskip{30pt}
|
||||
\def\subsection#1{
|
||||
% counters
|
||||
\stepcounter{subsectioncount}
|
||||
\setcounter{subsubsectioncount}{0}
|
||||
\ifsubsectionsineq
|
||||
\setcounter{seqcount}0
|
||||
\fi
|
||||
\ifsubsectionsinfig
|
||||
\setcounter{figcount}0
|
||||
\fi
|
||||
|
||||
% space before subsection (if not first)
|
||||
\ifnum\thesubsectioncount>1
|
||||
\vskip\subsecskip
|
||||
\penalty-500
|
||||
\fi
|
||||
|
||||
% hyperref anchor
|
||||
\hrefanchor
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\sectionprefix\thesectioncount.\thesubsectioncount}
|
||||
|
||||
% get widths
|
||||
\def\@secnum{{\bf\large\hskip.5cm\sectionprefix\thesectioncount.\thesubsectioncount.\hskip5pt}}
|
||||
\settowidth\secnumwidth{\@secnum}
|
||||
\setlength\sectitlewidth\textwidth
|
||||
\addtolength\sectitlewidth{-\secnumwidth}
|
||||
% print name
|
||||
\parbox{\textwidth}{
|
||||
\@secnum
|
||||
\parbox[t]{\sectitlewidth}{\large\bf #1}}
|
||||
|
||||
% write to table of contents
|
||||
\iftoc
|
||||
% save lncount in aux variable which is written to toc
|
||||
\immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@subsec.\thesectioncount.\thesubsectioncount\endcsname{\thelncount}}
|
||||
\write\tocoutput{\noexpand\tocsubsection{#1}{\thepage}}
|
||||
\fi
|
||||
|
||||
% space
|
||||
\par\penalty10000
|
||||
\medskip\penalty10000
|
||||
}
|
||||
|
||||
%% subsubsection
|
||||
% counter
|
||||
\newcounter{subsubsectioncount}
|
||||
% space before subsubsection
|
||||
\newlength\subsubsecskip
|
||||
\setlength\subsubsecskip{20pt}
|
||||
\def\subsubsection#1{
|
||||
% counters
|
||||
\stepcounter{subsubsectioncount}
|
||||
|
||||
% space before subsubsection (if not first)
|
||||
\ifnum\thesubsubsectioncount>1
|
||||
\vskip\subsubsecskip
|
||||
\penalty-500
|
||||
\fi
|
||||
|
||||
% hyperref anchor
|
||||
\hrefanchor
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\sectionprefix\thesectioncount.\thesubsectioncount.\thesubsubsectioncount}
|
||||
|
||||
% get widths
|
||||
\def\@secnum{{\bf\hskip1.cm\sectionprefix\thesectioncount.\thesubsectioncount.\thesubsubsectioncount.\hskip5pt}}
|
||||
\settowidth\secnumwidth{\@secnum}
|
||||
\setlength\sectitlewidth\textwidth
|
||||
\addtolength\sectitlewidth{-\secnumwidth}
|
||||
% print name
|
||||
\parbox{\textwidth}{
|
||||
\@secnum
|
||||
\parbox[t]{\sectitlewidth}{\large\bf #1}}
|
||||
|
||||
% write to table of contents
|
||||
\iftoc
|
||||
% save lncount in aux variable which is written to toc
|
||||
\immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@subsubsec.\thesectioncount.\thesubsectioncount.\thesubsubsectioncount\endcsname{\thelncount}}
|
||||
\write\tocoutput{\noexpand\tocsubsubsection{#1}{\thepage}}
|
||||
\fi
|
||||
|
||||
% space
|
||||
\par\penalty10000
|
||||
\medskip\penalty10000
|
||||
}
|
||||
|
||||
%% itemize
|
||||
\newlength\itemizeskip
|
||||
% left margin for items
|
||||
\setlength\itemizeskip{20pt}
|
||||
\newlength\itemizeseparator
|
||||
% space between the item symbol and the text
|
||||
\setlength\itemizeseparator{5pt}
|
||||
% penalty preceding an itemize
|
||||
\newcount\itemizepenalty
|
||||
\itemizepenalty=0
|
||||
% counter counting the itemize level
|
||||
\newcounter{itemizecount}
|
||||
|
||||
% item symbol
|
||||
\def\itemizept#1{
|
||||
\ifnum#1=1
|
||||
\textbullet
|
||||
\else
|
||||
$\scriptstyle\blacktriangleright$
|
||||
\fi
|
||||
}
|
||||
|
||||
|
||||
\newlength\current@itemizeskip
|
||||
\setlength\current@itemizeskip{0pt}
|
||||
\def\itemize{%
|
||||
\par\expandafter\penalty\the\itemizepenalty\medskip\expandafter\penalty\the\itemizepenalty%
|
||||
\addtocounter{itemizecount}{1}%
|
||||
\addtolength\current@itemizeskip{\itemizeskip}%
|
||||
\leftskip\current@itemizeskip%
|
||||
}
|
||||
\def\enditemize{%
|
||||
\addtocounter{itemizecount}{-1}%
|
||||
\addtolength\current@itemizeskip{-\itemizeskip}%
|
||||
\par\expandafter\penalty\the\itemizepenalty\leftskip\current@itemizeskip%
|
||||
\medskip\expandafter\penalty\the\itemizepenalty%
|
||||
}
|
||||
\newlength\itempt@total
|
||||
\def\item{
|
||||
\settowidth\itempt@total{\itemizept\theitemizecount}
|
||||
\addtolength\itempt@total{\itemizeseparator}
|
||||
\par
|
||||
\medskip
|
||||
\hskip-\itempt@total\itemizept\theitemizecount\hskip\itemizeseparator
|
||||
}
|
||||
|
||||
|
||||
%% prevent page breaks after itemize
|
||||
\newcount\previtemizepenalty
|
||||
\def\nopagebreakafteritemize{
|
||||
\previtemizepenalty=\itemizepenalty
|
||||
\itemizepenalty=10000
|
||||
}
|
||||
%% back to previous value
|
||||
\def\restorepagebreakafteritemize{
|
||||
\itemizepenalty=\previtemizepenalty
|
||||
}
|
||||
|
||||
%% enumerate
|
||||
\newcounter{enumerate@count}
|
||||
\def\enumerate{
|
||||
\setcounter{enumerate@count}0
|
||||
\let\olditem\item
|
||||
\let\olditemizept\itemizept
|
||||
\def\item{
|
||||
% counter
|
||||
\stepcounter{enumerate@count}
|
||||
% set header
|
||||
\def\itemizept{\theenumerate@count.}
|
||||
% hyperref anchor
|
||||
\hrefanchor
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\theenumerate@count}
|
||||
\olditem
|
||||
}
|
||||
\itemize
|
||||
}
|
||||
\def\endenumerate{
|
||||
\enditemize
|
||||
\let\item\olditem
|
||||
\let\itemizept\olditemizept
|
||||
}
|
||||
|
||||
|
||||
%% equation numbering
|
||||
% counter
|
||||
\newcounter{seqcount}
|
||||
% booleans (write section or subsection in equation number)
|
||||
\newif\ifsectionsineq
|
||||
\newif\ifsubsectionsineq
|
||||
\def\seqcount{
|
||||
\stepcounter{seqcount}
|
||||
% the output
|
||||
\edef\seqformat{\theseqcount}
|
||||
% add subsection number
|
||||
\ifsubsectionsineq
|
||||
\let\tmp\seqformat
|
||||
\edef\seqformat{\thesubsectioncount.\tmp}
|
||||
\fi
|
||||
% add section number
|
||||
\ifsectionsineq
|
||||
\let\tmp\seqformat
|
||||
\edef\seqformat{\sectionprefix\thesectioncount.\tmp}
|
||||
\fi
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\seqformat}
|
||||
% write number
|
||||
\marginnote{\hfill(\seqformat)}
|
||||
}
|
||||
%% equation environment compatibility
|
||||
\def\equation{\hrefanchor$$\seqcount}
|
||||
\def\endequation{$$\@ignoretrue}
|
||||
|
||||
|
||||
%% figures
|
||||
% counter
|
||||
\newcounter{figcount}
|
||||
% booleans (write section or subsection in equation number)
|
||||
\newif\ifsectionsinfig
|
||||
\newif\ifsubsectionsinfig
|
||||
% width of figures
|
||||
\newlength\figwidth
|
||||
\setlength\figwidth\textwidth
|
||||
\addtolength\figwidth{-2.5cm}
|
||||
% caption
|
||||
\def\defcaption{
|
||||
\long\def\caption##1{
|
||||
\stepcounter{figcount}
|
||||
|
||||
% hyperref anchor
|
||||
\hrefanchor
|
||||
|
||||
% the number of the figure
|
||||
\edef\figformat{\thefigcount}
|
||||
% add subsection number
|
||||
\ifsubsectionsinfig
|
||||
\let\tmp\figformat
|
||||
\edef\figformat{\thesubsectioncount.\tmp}
|
||||
\fi
|
||||
% add section number
|
||||
\ifsectionsinfig
|
||||
\let\tmp\figformat
|
||||
\edef\figformat{\sectionprefix\thesectioncount.\tmp}
|
||||
\fi
|
||||
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\figformat}
|
||||
|
||||
% write
|
||||
\hfil fig \figformat: \parbox[t]{\figwidth}{\leavevmode\small##1}
|
||||
|
||||
% space
|
||||
\par\bigskip
|
||||
}
|
||||
}
|
||||
%% short caption: centered
|
||||
\def\captionshort#1{
|
||||
\stepcounter{figcount}
|
||||
|
||||
% hyperref anchor
|
||||
\hrefanchor
|
||||
|
||||
% the number of the figure
|
||||
\edef\figformat{\thefigcount}
|
||||
% add section number
|
||||
\ifsectionsinfig
|
||||
\let\tmp\figformat
|
||||
\edef\figformat{\sectionprefix\thesectioncount.\tmp}
|
||||
\fi
|
||||
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\figformat}
|
||||
|
||||
% write
|
||||
\hfil fig \figformat: {\small#1}
|
||||
|
||||
%space
|
||||
\par\bigskip
|
||||
}
|
||||
|
||||
%% environment
|
||||
\def\figure{
|
||||
\par
|
||||
\vfil\penalty100\vfilneg
|
||||
\bigskip
|
||||
}
|
||||
\def\endfigure{
|
||||
\par
|
||||
\vfil\penalty100\vfilneg
|
||||
\bigskip
|
||||
}
|
||||
|
||||
|
||||
%% start appendices
|
||||
\def\appendix{
|
||||
\vfill
|
||||
\pagebreak
|
||||
|
||||
% counter
|
||||
\setcounter{sectioncount}0
|
||||
|
||||
% prefix
|
||||
\def\sectionprefix{A}
|
||||
|
||||
% write
|
||||
{\bf \LARGE Appendices}\par\penalty10000\bigskip\penalty10000
|
||||
|
||||
% add a mention in the table of contents
|
||||
\iftoc
|
||||
\immediate\write\tocoutput{\noexpand\tocappendices}\penalty10000
|
||||
\fi
|
||||
|
||||
%% uncomment for new page for each appendix
|
||||
%\def\seqskip{\vfill\pagebreak}
|
||||
}
|
||||
|
||||
|
||||
%% bibliography
|
||||
% size of header
|
||||
\newlength\bibheader
|
||||
\def\thebibliography#1{
|
||||
\hrefanchor
|
||||
|
||||
% add a mention in the table of contents
|
||||
\iftoc
|
||||
% save lncount in aux variable which is written to toc
|
||||
\immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@references\endcsname{\thelncount}}
|
||||
\write\tocoutput{\noexpand\tocreferences{\thepage}}\penalty10000
|
||||
\fi
|
||||
|
||||
% write
|
||||
{\bf \LARGE References}\par\penalty10000\bigskip\penalty10000
|
||||
% width of header
|
||||
\settowidth\bibheader{[#1]}
|
||||
\leftskip\bibheader
|
||||
}
|
||||
% end environment
|
||||
\def\endthebibliography{
|
||||
\par\leftskip0pt
|
||||
}
|
||||
|
||||
%% bibitem command
|
||||
\def\bibitem[#1]#2{%
|
||||
\hrefanchor%
|
||||
\outdef{label@cite#2}{#1}%
|
||||
\hskip-\bibheader%
|
||||
\makebox[\bibheader]{\cite{#2}\hfill}%
|
||||
}
|
||||
|
||||
%% cite command (adapted from latex.ltx)
|
||||
% @tempswa is set to true when there is an optional argument
|
||||
\newif\@tempswa
|
||||
\def\cite{%
|
||||
% check whether there is an optional argument (if there is none, add on empty '[]')
|
||||
\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}%
|
||||
}
|
||||
% command with optional argument
|
||||
\def\@citex[#1]#2{\leavevmode%
|
||||
% initialize loop
|
||||
\let\@citea\@empty%
|
||||
% format
|
||||
\@cite{%
|
||||
% loop over ',' separated list
|
||||
\@for\@citeb:=#2\do{%
|
||||
% text to add at each iteration of the loop (separator between citations)
|
||||
\@citea\def\@citea{,\ }%
|
||||
% add entry to citelist
|
||||
\@writecitation{\@citeb}%
|
||||
\ref{cite\@citeb}%
|
||||
}%
|
||||
}%
|
||||
% add optional argument text (as an argument to '\@cite')
|
||||
{#1}%
|
||||
}
|
||||
\def\@cite#1#2{%
|
||||
[#1\if@tempswa , #2\fi]%
|
||||
}
|
||||
%% add entry to citelist after checking it has not already been added
|
||||
\def\@writecitation#1{%
|
||||
\ifcsname if#1cited\endcsname%
|
||||
\else%
|
||||
\expandafter\newif\csname if#1cited\endcsname%
|
||||
\immediate\write\@auxout{\string\citation{#1}}%
|
||||
\fi%
|
||||
}
|
||||
|
||||
%% table of contents
|
||||
% boolean
|
||||
\newif\iftoc
|
||||
\def\tableofcontents{
|
||||
{\bf \large Table of contents:}\par\penalty10000\bigskip\penalty10000
|
||||
|
||||
% copy content from file
|
||||
\IfFileExists{\jobname.toc}{\input{\jobname.toc}}{{\tt error: table of contents missing}}
|
||||
|
||||
% open new toc
|
||||
\newwrite\tocoutput
|
||||
\immediate\openout\tocoutput=\jobname.toc
|
||||
|
||||
\toctrue
|
||||
}
|
||||
%% close file
|
||||
\AtEndDocument{
|
||||
% close toc
|
||||
\iftoc
|
||||
\immediate\closeout\tocoutput
|
||||
\fi
|
||||
}
|
||||
|
||||
|
||||
%% fill line with dots
|
||||
\def\leaderfill{\leaders\hbox to 1em {\hss. \hss}\hfill}
|
||||
|
||||
%% same as sectionprefix
|
||||
\def\tocsectionprefix{}
|
||||
|
||||
%% toc formats
|
||||
\newcounter{tocsectioncount}
|
||||
\def\tocsection #1#2{
|
||||
\stepcounter{tocsectioncount}
|
||||
\setcounter{tocsubsectioncount}{0}
|
||||
\setcounter{tocsubsubsectioncount}{0}
|
||||
% write
|
||||
\smallskip\hyperlink{ln.\csname toc@sec.\thetocsectioncount\endcsname}{{\bf \tocsectionprefix\thetocsectioncount}.\hskip5pt {\color{blue}#1}\leaderfill#2}\par
|
||||
}
|
||||
\newcounter{tocsubsectioncount}
|
||||
\def\tocsubsection #1#2{
|
||||
\stepcounter{tocsubsectioncount}
|
||||
\setcounter{tocsubsubsectioncount}{0}
|
||||
% write
|
||||
{\hskip10pt\hyperlink{ln.\csname toc@subsec.\thetocsectioncount.\thetocsubsectioncount\endcsname}{{\bf \thetocsubsectioncount}.\hskip5pt {\color{blue}\small #1}\leaderfill#2}}\par
|
||||
}
|
||||
\newcounter{tocsubsubsectioncount}
|
||||
\def\tocsubsubsection #1#2{
|
||||
\stepcounter{tocsubsubsectioncount}
|
||||
% write
|
||||
{\hskip20pt\hyperlink{ln.\csname toc@subsubsec.\thetocsectioncount.\thetocsubsectioncount.\thetocsubsubsectioncount\endcsname}{{\bf \thetocsubsubsectioncount}.\hskip5pt {\color{blue}\small #1}\leaderfill#2}}\par
|
||||
}
|
||||
\def\tocappendices{
|
||||
\medskip
|
||||
\setcounter{tocsectioncount}0
|
||||
{\bf Appendices}\par
|
||||
\smallskip
|
||||
\def\tocsectionprefix{A}
|
||||
}
|
||||
\def\tocreferences#1{
|
||||
\medskip
|
||||
{\hyperlink{ln.\csname toc@references\endcsname}{{\color{blue}\bf References}\leaderfill#1}}\par
|
||||
\smallskip
|
||||
}
|
||||
|
||||
|
||||
%% definitions that must be loaded at begin document
|
||||
\let\ian@olddocument\document
|
||||
\def\document{
|
||||
\ian@olddocument
|
||||
|
||||
\deflabel
|
||||
\defcaption
|
||||
}
|
||||
|
||||
%% end
|
||||
\ian@defaultoptions
|
||||
\endinput
|
162
libs/iantheo.sty
Normal file
162
libs/iantheo.sty
Normal file
@ -0,0 +1,162 @@
|
||||
%%
|
||||
%% iantheorem package:
|
||||
%% Ian's customized theorem command
|
||||
%%
|
||||
|
||||
%% boolean to signal that this package was loaded
|
||||
\newif\ifiantheo
|
||||
|
||||
%% TeX format
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
|
||||
%% package name
|
||||
\ProvidesPackage{iantheo}[2016/11/10]
|
||||
|
||||
%% options
|
||||
\newif\ifsectionintheo
|
||||
\DeclareOption{section_in_theo}{\sectionintheotrue}
|
||||
\DeclareOption{no_section_in_theo}{\sectionintheofalse}
|
||||
\newif\ifsubsectionintheo
|
||||
\DeclareOption{subsection_in_theo}{\subsectionintheotrue}
|
||||
\DeclareOption{no_subsection_in_theo}{\subsectionintheofalse}
|
||||
|
||||
\def\iantheo@defaultoptions{
|
||||
\ExecuteOptions{section_in_theo, no_subsection_in_theo}
|
||||
\ProcessOptions
|
||||
|
||||
%%% reset at every new section
|
||||
\ifsectionintheo
|
||||
\let\iantheo@oldsection\section
|
||||
\gdef\section{\setcounter{theocount}{0}\iantheo@oldsection}
|
||||
\fi
|
||||
|
||||
%% reset at every new subsection
|
||||
\ifsubsectionintheo
|
||||
\let\iantheo@oldsubsection\subsection
|
||||
\gdef\subsection{\setcounter{theocount}{0}\iantheo@oldsubsection}
|
||||
\fi
|
||||
}
|
||||
|
||||
|
||||
%% delimiters
|
||||
\def\delimtitle#1{
|
||||
\par%
|
||||
\leavevmode%
|
||||
\raise.3em\hbox to\hsize{%
|
||||
\lower0.3em\hbox{\vrule height0.3em}%
|
||||
\hrulefill%
|
||||
\ \lower.3em\hbox{#1}\ %
|
||||
\hrulefill%
|
||||
\lower0.3em\hbox{\vrule height0.3em}%
|
||||
}%
|
||||
\par\penalty10000%
|
||||
}
|
||||
|
||||
%% callable by ref
|
||||
\def\delimtitleref#1{
|
||||
\par%
|
||||
%
|
||||
\ifdefined\ianclass%
|
||||
% hyperref anchor%
|
||||
\hrefanchor%
|
||||
% define tag (for \label)%
|
||||
\xdef\tag{#1}%
|
||||
\fi%
|
||||
%
|
||||
\leavevmode%
|
||||
\raise.3em\hbox to\hsize{%
|
||||
\lower0.3em\hbox{\vrule height0.3em}%
|
||||
\hrulefill%
|
||||
\ \lower.3em\hbox{\bf #1}\ %
|
||||
\hrulefill%
|
||||
\lower0.3em\hbox{\vrule height0.3em}%
|
||||
}%
|
||||
\par\penalty10000%
|
||||
}
|
||||
|
||||
%% no title
|
||||
\def\delim{
|
||||
\par%
|
||||
\leavevmode\raise.3em\hbox to\hsize{%
|
||||
\lower0.3em\hbox{\vrule height0.3em}%
|
||||
\hrulefill%
|
||||
\lower0.3em\hbox{\vrule height0.3em}%
|
||||
}%
|
||||
\par\penalty10000%
|
||||
}
|
||||
|
||||
%% end delim
|
||||
\def\enddelim{
|
||||
\par\penalty10000%
|
||||
\leavevmode%
|
||||
\raise.3em\hbox to\hsize{%
|
||||
\vrule height0.3em\hrulefill\vrule height0.3em%
|
||||
}%
|
||||
\par%
|
||||
}
|
||||
|
||||
|
||||
%% theorem
|
||||
% counter
|
||||
\newcounter{theocount}
|
||||
% booleans (write section or subsection in equation number)
|
||||
\def\theo#1{
|
||||
\stepcounter{theocount}
|
||||
\ifdefined\ianclass
|
||||
% hyperref anchor
|
||||
\hrefanchor
|
||||
\fi
|
||||
% the number
|
||||
\def\formattheo{\thetheocount}
|
||||
% add subsection number
|
||||
\ifsubsectionintheo
|
||||
\let\tmp\formattheo
|
||||
\edef\formattheo{\thesubsectioncount.\tmp}
|
||||
\fi
|
||||
% add section number
|
||||
\ifsectionintheo
|
||||
\let\tmp\formattheo
|
||||
\edef\formattheo{\sectionprefix\thesectioncount.\tmp}
|
||||
\fi
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\formattheo}
|
||||
% write
|
||||
\delimtitle{\bf #1 \formattheo}
|
||||
}
|
||||
\let\endtheo\enddelim
|
||||
%% theorem headers with name
|
||||
\def\theoname#1#2{
|
||||
\theo{#1}\hfil({\it #2})\par\penalty10000\medskip%
|
||||
}
|
||||
|
||||
|
||||
%% qed symbol
|
||||
\def\qedsymbol{$\square$}
|
||||
\def\qed{\penalty10000\hfill\penalty10000\qedsymbol}
|
||||
|
||||
|
||||
%% compatibility with article class
|
||||
\ifdefined\ianclasstrue
|
||||
\relax
|
||||
\else
|
||||
\def\thesectioncount{\thesection}
|
||||
\def\thesubsectioncount{\thesubsection}
|
||||
\def\sectionprefix{}
|
||||
\fi
|
||||
|
||||
|
||||
%% prevent page breaks after displayed equations
|
||||
\newcount\prevpostdisplaypenalty
|
||||
\def\nopagebreakaftereq{
|
||||
\prevpostdisplaypenalty=\postdisplaypenalty
|
||||
\postdisplaypenalty=10000
|
||||
}
|
||||
%% back to previous value
|
||||
\def\restorepagebreakaftereq{
|
||||
\postdisplaypenalty=\prevpostdisplaypenalty
|
||||
}
|
||||
|
||||
|
||||
%% end
|
||||
\iantheo@defaultoptions
|
||||
\endinput
|
19
libs/largearray.sty
Normal file
19
libs/largearray.sty
Normal file
@ -0,0 +1,19 @@
|
||||
%%
|
||||
%% largearray package:
|
||||
%% Array spanning the entire line
|
||||
%%
|
||||
|
||||
%% TeX format
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
|
||||
%% package name
|
||||
\ProvidesPackage{largearray}[2016/11/10]
|
||||
|
||||
\RequirePackage{array}
|
||||
|
||||
%% array spanning the entire line
|
||||
\newlength\largearray@width
|
||||
\setlength\largearray@width\textwidth
|
||||
\addtolength\largearray@width{-10pt}
|
||||
\def\largearray{\begin{array}{@{}>{\displaystyle}l@{}}\hphantom{\hspace{\largearray@width}}\\[-.5cm]}
|
||||
\def\endlargearray{\end{array}}
|
106
libs/point.sty
Normal file
106
libs/point.sty
Normal file
@ -0,0 +1,106 @@
|
||||
%%
|
||||
%% Points package:
|
||||
%% \point commands
|
||||
%%
|
||||
|
||||
%% TeX format
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
|
||||
%% package name
|
||||
\ProvidesPackage{point}[2017/06/13]
|
||||
|
||||
%% options
|
||||
\newif\ifresetatsection
|
||||
\DeclareOption{reset_at_section}{\resetatsectiontrue}
|
||||
\DeclareOption{no_reset_at_section}{\resetatsectionfalse}
|
||||
\newif\ifresetatsubsection
|
||||
\DeclareOption{reset_at_subsection}{\resetatsubsectiontrue}
|
||||
\DeclareOption{no_reset_at_subsection}{\resetatsubsectionfalse}
|
||||
\newif\ifresetattheo
|
||||
\DeclareOption{reset_at_theo}{\resetattheotrue}
|
||||
\DeclareOption{no_reset_at_theo}{\resetattheofalse}
|
||||
|
||||
\def\point@defaultoptions{
|
||||
\ExecuteOptions{reset_at_section, reset_at_subsection, no_reset_at_theo}
|
||||
\ProcessOptions
|
||||
|
||||
%% reset at every new section
|
||||
\ifresetatsection
|
||||
\let\point@oldsection\section
|
||||
\gdef\section{\resetpointcounter\point@oldsection}
|
||||
\fi
|
||||
%% reset at every new subsection
|
||||
\ifresetatsubsection
|
||||
\let\point@oldsubsection\subsection
|
||||
\gdef\subsection{\resetpointcounter\point@oldsubsection}
|
||||
\fi
|
||||
|
||||
%% reset at every new theorem
|
||||
\ifresetattheo
|
||||
\ifdefined\iantheotrue
|
||||
\let\point@oldtheo\theo
|
||||
\gdef\theo{\resetpointcounter\point@oldtheo}
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
|
||||
|
||||
%% point
|
||||
% counter
|
||||
\newcounter{pointcount}
|
||||
\def\point{
|
||||
\stepcounter{pointcount}
|
||||
\setcounter{subpointcount}{0}
|
||||
% hyperref anchor (only if the class is 'ian')
|
||||
\ifdefined\ifianclass
|
||||
\hrefanchor
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\thepointcount}
|
||||
\fi
|
||||
% header
|
||||
\indent{\bf \thepointcount\ - }
|
||||
}
|
||||
|
||||
%% subpoint
|
||||
% counter
|
||||
\newcounter{subpointcount}
|
||||
\def\subpoint{
|
||||
\stepcounter{subpointcount}
|
||||
\setcounter{subsubpointcount}0
|
||||
% hyperref anchor (only if the class is 'ian')
|
||||
\ifdefined\ifianclass
|
||||
\hrefanchor
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\thepointcount-\thesubpointcount}
|
||||
\fi
|
||||
% header
|
||||
\indent\hskip.5cm{\bf \thepointcount-\thesubpointcount\ - }
|
||||
}
|
||||
|
||||
%% subsubpoint
|
||||
% counter
|
||||
\newcounter{subsubpointcount}
|
||||
\def\subsubpoint{
|
||||
\stepcounter{subsubpointcount}
|
||||
% hyperref anchor (only if the class is 'ian')
|
||||
\ifdefined\ifianclass
|
||||
\hrefanchor
|
||||
% define tag (for \label)
|
||||
\xdef\tag{\thepointcount-\thesubpointcount-\thesubsubpointcount}
|
||||
\fi
|
||||
\indent\hskip1cm{\bf \thepointcount-\thesubpointcount-\thesubsubpointcount\ - }
|
||||
}
|
||||
|
||||
|
||||
%% reset point counters
|
||||
\def\resetpointcounter{
|
||||
\setcounter{pointcount}{0}
|
||||
\setcounter{subpointcount}{0}
|
||||
\setcounter{subsubpointcount}{0}
|
||||
}
|
||||
|
||||
|
||||
|
||||
%% end
|
||||
\point@defaultoptions
|
||||
\endinput
|
Loading…
Reference in New Issue
Block a user