From c91fccd07c9ba1753d7006482512352423046c74 Mon Sep 17 00:00:00 2001 From: Ian Jauslin Date: Thu, 30 Mar 2017 02:47:52 +0000 Subject: As presented at Princeton University on 2017-03-30 --- Jauslin_Princeton_2017.tex | 327 +++++++++++++++++++++++++++++ Makefile | 48 +++++ README | 27 +++ figs/bands.fig/Makefile | 23 ++ figs/bands.fig/bands.gnuplot | 42 ++++ figs/bands.fig/bands.py | 55 +++++ figs/bands_first.fig/Makefile | 23 ++ figs/bands_first.fig/bands_first.gnuplot | 42 ++++ figs/bands_first.fig/bands_first.py | 56 +++++ figs/bands_second.fig/Makefile | 23 ++ figs/bands_second.fig/bands_second.gnuplot | 42 ++++ figs/bands_second.fig/bands_second.py | 56 +++++ figs/bands_third.fig/Makefile | 23 ++ figs/bands_third.fig/bands_third.gnuplot | 41 ++++ figs/bands_third.fig/bands_third.py | 86 ++++++++ figs/bilayer.fig/Makefile | 1 + figs/bilayer.fig/bilayer.tex | 17 ++ figs/bilayer.fig/libs/graphene.sty | 1 + figs/bilayer_cell.fig/Makefile | 1 + figs/bilayer_cell.fig/bilayer_cell.tex | 40 ++++ figs/bilayer_cell.fig/libs/graphene.sty | 1 + figs/flow.fig/Makefile | 21 ++ figs/flow.fig/flow.gnuplot | 53 +++++ figs/hoppings.fig/Makefile | 1 + figs/hoppings.fig/hoppings.tex | 32 +++ figs/hoppings.fig/hoppings_0.tex | 25 +++ figs/hoppings.fig/hoppings_1.tex | 25 +++ figs/hoppings.fig/hoppings_3.tex | 32 +++ figs/hoppings.fig/libs/graphene.sty | 1 + figs/libs/Makefile | 28 +++ figs/libs/graphene.sty | 86 ++++++++ figs/monolayer.fig/Makefile | 1 + figs/monolayer.fig/libs/graphene.sty | 1 + figs/monolayer.fig/monolayer.tex | 16 ++ libs/ian-presentation.cls | 185 ++++++++++++++++ 35 files changed, 1482 insertions(+) create mode 100644 Jauslin_Princeton_2017.tex create mode 100644 Makefile create mode 100644 README create mode 100644 figs/bands.fig/Makefile create mode 100644 figs/bands.fig/bands.gnuplot create mode 100644 figs/bands.fig/bands.py create mode 100644 figs/bands_first.fig/Makefile create mode 100644 figs/bands_first.fig/bands_first.gnuplot create mode 100644 figs/bands_first.fig/bands_first.py create mode 100644 figs/bands_second.fig/Makefile create mode 100644 figs/bands_second.fig/bands_second.gnuplot create mode 100644 figs/bands_second.fig/bands_second.py create mode 100644 figs/bands_third.fig/Makefile create mode 100644 figs/bands_third.fig/bands_third.gnuplot create mode 100644 figs/bands_third.fig/bands_third.py create mode 120000 figs/bilayer.fig/Makefile create mode 100644 figs/bilayer.fig/bilayer.tex create mode 120000 figs/bilayer.fig/libs/graphene.sty create mode 120000 figs/bilayer_cell.fig/Makefile create mode 100644 figs/bilayer_cell.fig/bilayer_cell.tex create mode 120000 figs/bilayer_cell.fig/libs/graphene.sty create mode 100644 figs/flow.fig/Makefile create mode 100644 figs/flow.fig/flow.gnuplot create mode 120000 figs/hoppings.fig/Makefile create mode 100644 figs/hoppings.fig/hoppings.tex create mode 100644 figs/hoppings.fig/hoppings_0.tex create mode 100644 figs/hoppings.fig/hoppings_1.tex create mode 100644 figs/hoppings.fig/hoppings_3.tex create mode 120000 figs/hoppings.fig/libs/graphene.sty create mode 100644 figs/libs/Makefile create mode 100644 figs/libs/graphene.sty create mode 120000 figs/monolayer.fig/Makefile create mode 120000 figs/monolayer.fig/libs/graphene.sty create mode 100644 figs/monolayer.fig/monolayer.tex create mode 100644 libs/ian-presentation.cls diff --git a/Jauslin_Princeton_2017.tex b/Jauslin_Princeton_2017.tex new file mode 100644 index 0000000..2218b6d --- /dev/null +++ b/Jauslin_Princeton_2017.tex @@ -0,0 +1,327 @@ +\documentclass{ian-presentation} + +\usepackage[hidelinks]{hyperref} +\usepackage{graphicx} +\usepackage{color} +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{array} +\usepackage{dsfont} + +\begin{document} +\pagestyle{empty} +\hbox{}\vfil +\bf\Large +\hfil Ground state construction\par +\smallskip +\hfil of Bilayer Graphene\par +\vfil +\large +\hfil Ian Jauslin +\normalsize +\vfil +\hfil\rm joint with {\bf Alessandro Giuliani}\par +\vfil +arXiv:{\tt \href{http://arxiv.org/abs/1507.06024}{1507.06024}}\hfill{\tt \href{http://ian.jauslin.org}{http://ian.jauslin.org}} +\eject + +\setcounter{page}1 +\pagestyle{plain} + +\title{Monolayer graphene} +\begin{itemize} + \item 2D crystal of carbon atoms on a honeycomb lattice. +\end{itemize} +\vfill +\hfil\includegraphics[height=140pt]{monolayer.pdf}\par +\eject + +\title{Bilayer graphene} +\begin{itemize} + \item 2 graphene layers in {\it AB} stacking. +\end{itemize} +\vfill +\hfil\includegraphics[height=140pt]{bilayer.pdf}\par +\eject + +\title{Hamiltonian} +\begin{itemize} + \item Model for the electrons. + \item Hamiltonian: + $$ + \mathcal H=\mathcal H_0+U\mathcal V + $$ + \item $\mathcal H_0$: kinetic term: hoppings (tight-binding approximation). + \item $U\mathcal V$: interaction: weak, short-range (screened Coulomb). +\end{itemize} +\eject + +\title{Lattice structure} +\begin{itemize} + \item Rhombic lattice $\Lambda\equiv\mathbb Z^2$, 4 atoms per site. +\end{itemize} +\vfill +\hfil\includegraphics[height=140pt]{bilayer_cell.pdf}\par +\eject + +\title{Hoppings} +\vfill +\hfil\includegraphics[height=140pt]{bilayer.pdf} +\vfill +\eject + +\addtocounter{page}{-1} +\title{Hoppings} +\vfill +\hfil\includegraphics[height=140pt]{hoppings_0.pdf} +\vfill +\eject + +\addtocounter{page}{-1} +\title{Hoppings} +\vfill +\hfil\includegraphics[height=140pt]{hoppings_1.pdf} +\vfill +\eject + +\addtocounter{page}{-1} +\title{Hoppings} +\vfill +\hfil\includegraphics[height=140pt]{hoppings_3.pdf} \vfill +\eject + +\addtocounter{page}{-1} +\title{Hoppings} +\vfill +\hfil\includegraphics[height=140pt]{hoppings.pdf} +\vfill +\eject + +\title{Non-interacting Hamiltonian} +$$ + \begin{array}{r@{\ }>{\displaystyle}l} + \mathcal H_0:=& + -\gamma_0\sum_{\displaystyle\mathop{\scriptstyle x\in\Lambda}_{j=1,2,3}}\left( + {\color{red}a_x^\dagger b_{x+\delta_j}} + + + {\color{red}b_{x+\delta_j}^\dagger a_x} + + + {\color{red}\tilde b_x^\dagger \tilde a_{x-\delta_j}} + + + {\color{red}\tilde a_{x-\delta_j}^\dagger\tilde b_x} + \right) + \\[1cm] + &-\gamma_1\sum_{ x\in\Lambda}\left( + {\color{green}a_x^\dagger \tilde b_x} + + + {\color{green}\tilde b_x^\dagger a_x} + \right) + \\[0.75cm] + &-\gamma_3\sum_{\displaystyle\mathop{\scriptstyle x\in\Lambda}_{j=1,2,3}}\left( + {\color{blue}\tilde a_{x-\delta_1}^\dagger b_{x-\delta_1-\delta_j}} + + + {\color{blue}b_{x-\delta_1-\delta_j}^\dagger\tilde a_{x-\delta_1}} + \right) + \end{array} +$$ +\vfill +\eject + +\title{Non-interacting Hamiltonian} +\vfill +\begin{itemize} + \item Hopping strengths: + $$ + \gamma_0=1,\quad + \gamma_1=\epsilon,\quad + \gamma_3=0.33\times\epsilon + $$ + \item Experimental value $\epsilon\approx0.1$, here, $\epsilon\ll1$. +\end{itemize} +\vfill +\eject + +\title{Interaction} +$$ + \mathcal V=\sum_{x,y}v(|x-y|)\left(n_x-\frac12\right)\left(n_y-\frac12\right) +$$ +\begin{itemize} + \item $\displaystyle\sum_{x,y}$: sum over pairs of atoms + \item $n_x\equiv\alpha_x^\dagger\alpha_x$ + \item $v(|x-y|)\leqslant e^{-c|x-y|}$, $c>0$ + \item $-\frac12$: {\it half-filling}. +\end{itemize} +\eject + +\title{Theorem} +$\exists U_0,\epsilon_0>0$, independent, such that, for $\epsilon<\epsilon_0$, $|U|_0 + $$ + \item ``Imaginary time'': + $$ + \mathcal V(t):=e^{t\mathcal H_0}\mathcal Ve^{-t\mathcal H_0} + $$ + \vskip-2pt + \item ``Non-interacting Gibbs measure'': + $$ + \left_0:=\frac{\mathrm{Tr}(e^{-\beta\mathcal H_0}A)}{\mathrm{Tr}(e^{-\beta\mathcal H_0})} + $$ +\end{itemize} +\vfill +\eject + +\title{Perturbation theory} +\begin{itemize} + \item Matsubara frequency: for $\alpha\in\{a,b,\tilde a,\tilde b\}$, + $$ + \hat\alpha_{k_0,k}:=\int dt\ e^{ik_0t}e^{t\mathcal H_0}\hat\alpha_ke^{-t\mathcal H_0}. + $$ + + \item Non-interacting Gibbs measure: ``Gaussian'', and singular: for $\alpha,\alpha'\in\{a,b,\tilde a,\tilde b\}$, + $$ + \hat s^{(0)}_{\alpha',\alpha}(k_0,k):=\left<\hat\alpha'_{k_0,k}\hat\alpha_{k_0,k}^\dagger\right>_0=(-ik_0\mathds 1+\hat H_0(k))^{-1}_{\alpha',\alpha} + $$ +\end{itemize} +\vfill +\eject + +\title{Scaling} +\begin{itemize} + \item Eigenvalues of $\hat H_0(k)$: +\end{itemize} +\vfill +\hfil\includegraphics[width=\textwidth]{bands.pdf}\par +\vfill +\eject + +\addtocounter{page}{-1} +\title{Scaling} +\begin{itemize} + \item First regime: $|k|\gg\epsilon$: +\end{itemize} +\vfill +\hfil\includegraphics[width=240pt]{bands_first.pdf}\par +$$ + \hat s^{(0)}(k_0,k)\sim(|k_0|+|k|)^{-1} +$$ +\vfill +\eject + +\addtocounter{page}{-1} +\title{Scaling} +\begin{itemize} + \item Second regime: $\epsilon^2\ll|k|\ll\epsilon$: +\end{itemize} +\vfill +\hfil\includegraphics[width=240pt]{bands_second.pdf}\par +$$ + \hat s^{(0)}(k_0,k)\sim\left(|k_0|+\frac{|k|^2}\epsilon\right)^{-1} +$$ +\vfill +\eject + +\addtocounter{page}{-1} +\title{Scaling} +\begin{itemize} + \item Third regime: $|k|\ll\epsilon^2$: +\end{itemize} +\vfill +\hfil\includegraphics[height=100pt]{bands_third.pdf}\par +$$ + \hat s^{(0)}(k_0,k)\sim(|k_0|+\epsilon|k|)^{-1} +$$ +\vfill +\eject + +\title{Renormalization group} +\begin{itemize} + \item Scale decomposition: scale $h\leqslant 0$: + $$ + \hat s^{(0)}(k_0,k)\sim 2^{-h} + $$ + + \item Scale by scale integration: + $$ + \left_0=\left<\cdots\left<\left_{0,0}\right>_{0,-1}\cdots\right>_{0,h}\cdots + $$ + + \item Effective potential: $\mathcal V_h(t)$: + $$ + \kern-10pt + \left<\mathbb T\exp\left(-U\int dt\ \mathcal V_h(t)\right)\right>_{0,h} + ``="\ \mathbb T\exp\left(-U\int dt\ \mathcal V_{h-1}(t)\right) + $$ +\end{itemize} +\vfill +\eject + + +\title{Renormalization group flow} +\vfill +\includegraphics[width=250pt]{flow.pdf} + +\end{document} diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ef40a6f --- /dev/null +++ b/Makefile @@ -0,0 +1,48 @@ +PROJECTNAME=$(basename $(wildcard *.tex)) +LIBS=$(notdir $(wildcard libs/*)) +FIGS=$(notdir $(wildcard figs/*.fig)) + +PDFS=$(addsuffix .pdf, $(PROJECTNAME)) +SYNCTEXS=$(addsuffix .synctex.gz, $(PROJECTNAME)) + +all: $(PDFS) + +$(PDFS): $(LIBS) $(FIGS) + pdflatex -file-line-error $(patsubst %.pdf, %.tex, $@) + pdflatex -synctex=1 $(patsubst %.pdf, %.tex, $@) + +$(SYNCTEXS): $(LIBS) $(FIGS) + pdflatex -synctex=1 $(patsubst %.synctex.gz, %.tex, $@) + +install: $(PDFS) + cp $^ $(INSTALLDIR)/ + +install-synctex: $(SYNCTEXS) + cp $^ $(INSTALLDIR)/ + + +$(LIBS): + ln -fs libs/$@ ./ + + +$(FIGS): + make -C figs/$@ + ln -fs figs/$@/*.pdf ./ + + +clean-aux: + rm -f $(addsuffix .aux, $(PROJECTNAME)) + rm -f $(addsuffix .log, $(PROJECTNAME)) + rm -f $(addsuffix .out, $(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-tex: + rm -f $(PDFS) $(SYNCTEXS) + +clean: clean-aux clean-tex clean-libs clean-figs diff --git a/README b/README new file mode 100644 index 0000000..011526c --- /dev/null +++ b/README @@ -0,0 +1,27 @@ +* Typeset + +To typeset, run + make + + +* Dependencies + + GNU make + Makefiles are used throughout the source tree + + gnuplot + to plot various graphs + + python + to generate the datapoints needed for some plots + + TeXlive packages: + latex + hyperref + graphicx + color + amsfonts + amssymb + array + dsfont + tikz diff --git a/figs/bands.fig/Makefile b/figs/bands.fig/Makefile new file mode 100644 index 0000000..5a6a103 --- /dev/null +++ b/figs/bands.fig/Makefile @@ -0,0 +1,23 @@ +PROJECTNAME=bands + +all: $(PROJECTNAME).pdf + +$(PROJECTNAME).pdf: + python $(PROJECTNAME).py > $(PROJECTNAME).dat + gnuplot $(PROJECTNAME).gnuplot + pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex + +install: $(PROJECTNAME).pdf + cp $(PROJECTNAME).pdf $(INSTALLDIR)/ + + +clean-aux: + rm -f $(PROJECTNAME).aux + rm -f $(PROJECTNAME).log + rm -f $(PROJECTNAME).dat + rm -f $(PROJECTNAME)_plot.tex + +clean-pdf: + rm -f $(PROJECTNAME).pdf + +clean: clean-aux clean-pdf diff --git a/figs/bands.fig/bands.gnuplot b/figs/bands.fig/bands.gnuplot new file mode 100644 index 0000000..f1f84ff --- /dev/null +++ b/figs/bands.fig/bands.gnuplot @@ -0,0 +1,42 @@ +#!/usr/bin/env gnuplot + +datafile="bands.dat" +# output +outfile="bands_plot.tex" +set output outfile + +# terminal +set term lua tikz size 10,6 standalone tightboundingbox + +# format axes +set key off +unset colorbox +unset border +unset xtics +unset ytics +unset ztics + +# colors +## 4169E1 (pastel blue) +## FF143C (bright red) +## 32CD32 (bright green) +## DAA520 (ochre) + +# angle camera +set view 80,30 + +# style for mesh lines +set style line 1 linetype rgbcolor "#000000" + +# splot mode +set pm3d hidden3d depthorder + +# set colors +set palette defined (0 "#DAA520",0.33 "#FF143C", 0.66 "#32CD32",1 "#4169E1") + +# plot +splot datafile using 1:2:3:4 with pm3d linestyle 1 , \ + datafile using 5:6:7:8 with pm3d linestyle 1 , \ + datafile using 9:10:11:12 with pm3d linestyle 1 , \ + datafile using 13:14:15:16 with pm3d linestyle 1 + diff --git a/figs/bands.fig/bands.py b/figs/bands.fig/bands.py new file mode 100644 index 0000000..57d03b8 --- /dev/null +++ b/figs/bands.fig/bands.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +## compute the bands for bilayer graphene (no g4 or delta) + +from math import * +import cmath +import numpy + +g1=0.1 +g3=0.33*g1 + +def Omega(x,y): + return(1+2*cmath.exp(-3j/2*x)*cos(sqrt(3)/2*y)) + +# Hamiltonian +def H(x,y): + return(numpy.array(\ + [[0,g1,0,Omega(x,y).conjugate()],\ + [g1,0,Omega(x,y),0],\ + [0,Omega(x,y).conjugate(),0,g3*Omega(x,y)*cmath.exp(3j*x)],\ + [Omega(x,y),0,g3*(Omega(x,y).conjugate())*cmath.exp(-3j*x),0]]\ + )) + +# eigenvalues +def eigsH(x,y): + return(numpy.linalg.eigvals(H(x,y))) + + +# resolution +nrpoints=55 +# xrange +xmin,xmax=0,4*pi/3 +# yrange +ymin,ymax=-2*pi/sqrt(3),2*pi/sqrt(3) + +# sample points +x=numpy.linspace(xmin,xmax,nrpoints) +y=numpy.linspace(ymin,ymax,nrpoints) +x,y=numpy.meshgrid(x,y) + +# data points +z=numpy.zeros((4,nrpoints,nrpoints)) +for i in range(0,nrpoints): + for j in range(0,nrpoints): + eigs=numpy.sort(numpy.real(eigsH(x[i,j],y[i,j]))) + for k in range(0,4): + z[k,i,j]=(eigs[k]) + +# output +for i in range(0,nrpoints): + for j in range(0,nrpoints): + for k in range(0,4): + print("%10f %10f %10f %d " % (x[i,j],y[i,j],z[k,i,j],k),end='') + print() + print() diff --git a/figs/bands_first.fig/Makefile b/figs/bands_first.fig/Makefile new file mode 100644 index 0000000..6fbd0d6 --- /dev/null +++ b/figs/bands_first.fig/Makefile @@ -0,0 +1,23 @@ +PROJECTNAME=bands_first + +all: $(PROJECTNAME).pdf + +$(PROJECTNAME).pdf: + python $(PROJECTNAME).py > $(PROJECTNAME).dat + gnuplot $(PROJECTNAME).gnuplot + pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex + +install: $(PROJECTNAME).pdf + cp $(PROJECTNAME).pdf $(INSTALLDIR)/ + + +clean-aux: + rm -f $(PROJECTNAME).aux + rm -f $(PROJECTNAME).log + rm -f $(PROJECTNAME).dat + rm -f $(PROJECTNAME)_plot.tex + +clean-pdf: + rm -f $(PROJECTNAME).pdf + +clean: clean-aux clean-pdf diff --git a/figs/bands_first.fig/bands_first.gnuplot b/figs/bands_first.fig/bands_first.gnuplot new file mode 100644 index 0000000..31fdeb5 --- /dev/null +++ b/figs/bands_first.fig/bands_first.gnuplot @@ -0,0 +1,42 @@ +#!/usr/bin/env gnuplot + +datafile="bands_first.dat" +# output +outfile="bands_first_plot.tex" +set output outfile + +# terminal +set term lua tikz size 10,6 standalone tightboundingbox + +# format axes +set key off +unset colorbox +unset border +unset xtics +unset ytics +unset ztics + +# colors +## 4169E1 (pastel blue) +## FF143C (bright red) +## 32CD32 (bright green) +## DAA520 (ochre) + +# angle camera +set view 90,50 + +# style for mesh lines +set style line 1 linetype rgbcolor "#000000" + +# splot mode +set pm3d hidden3d depthorder + +# set colors +set palette defined (0 "#DAA520",0.33 "#FF143C", 0.66 "#32CD32",1 "#4169E1") + +# plot +splot datafile using 1:2:3:4 with pm3d linestyle 1 , \ + datafile using 5:6:7:8 with pm3d linestyle 1 , \ + datafile using 9:10:11:12 with pm3d linestyle 1 , \ + datafile using 13:14:15:16 with pm3d linestyle 1 + diff --git a/figs/bands_first.fig/bands_first.py b/figs/bands_first.fig/bands_first.py new file mode 100644 index 0000000..980d3b3 --- /dev/null +++ b/figs/bands_first.fig/bands_first.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python + +## compute the bands for bilayer graphene (no g4 or delta) +## first regime + +from math import * +import cmath +import numpy + +g1=0.1 +g3=0.33*g1 + +def Omega(x,y): + return(1+2*cmath.exp(-3j/2*x)*cos(sqrt(3)/2*y)) + +# Hamiltonian +def H(x,y): + return(numpy.array(\ + [[0,g1,0,Omega(x,y).conjugate()],\ + [g1,0,Omega(x,y),0],\ + [0,Omega(x,y).conjugate(),0,g3*Omega(x,y)*cmath.exp(3j*x)],\ + [Omega(x,y),0,g3*(Omega(x,y).conjugate())*cmath.exp(-3j*x),0]]\ + )) + +# eigenvalues +def eigsH(x,y): + return(numpy.linalg.eigvals(H(x,y))) + + +# resolution +nrpoints=31 +# xrange +xmin,xmax=2*pi/3-1.5,2*pi/3+1.5 +# yrange +ymin,ymax=2*pi/3/sqrt(3)-1.5,2*pi/3/sqrt(3)+1.5 + +# sample points +x=numpy.linspace(xmin,xmax,nrpoints) +y=numpy.linspace(ymin,ymax,nrpoints) +x,y=numpy.meshgrid(x,y) + +# data points +z=numpy.zeros((4,nrpoints,nrpoints)) +for i in range(0,nrpoints): + for j in range(0,nrpoints): + eigs=numpy.sort(numpy.real(eigsH(x[i,j],y[i,j]))) + for k in range(0,4): + z[k,i,j]=(eigs[k]) + +# output +for i in range(0,nrpoints): + for j in range(0,nrpoints): + for k in range(0,4): + print("%10f %10f %10f %d " % (x[i,j],y[i,j],z[k,i,j],k),end='') + print() + print() diff --git a/figs/bands_second.fig/Makefile b/figs/bands_second.fig/Makefile new file mode 100644 index 0000000..b026463 --- /dev/null +++ b/figs/bands_second.fig/Makefile @@ -0,0 +1,23 @@ +PROJECTNAME=bands_second + +all: $(PROJECTNAME).pdf + +$(PROJECTNAME).pdf: + python $(PROJECTNAME).py > $(PROJECTNAME).dat + gnuplot $(PROJECTNAME).gnuplot + pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex + +install: $(PROJECTNAME).pdf + cp $(PROJECTNAME).pdf $(INSTALLDIR)/ + + +clean-aux: + rm -f $(PROJECTNAME).aux + rm -f $(PROJECTNAME).log + rm -f $(PROJECTNAME).dat + rm -f $(PROJECTNAME)_plot.tex + +clean-pdf: + rm -f $(PROJECTNAME).pdf + +clean: clean-aux clean-pdf diff --git a/figs/bands_second.fig/bands_second.gnuplot b/figs/bands_second.fig/bands_second.gnuplot new file mode 100644 index 0000000..51f8949 --- /dev/null +++ b/figs/bands_second.fig/bands_second.gnuplot @@ -0,0 +1,42 @@ +#!/usr/bin/env gnuplot + +datafile="bands_second.dat" +# output +outfile="bands_second_plot.tex" +set output outfile + +# terminal +set term lua tikz size 10,6 standalone tightboundingbox + +# format axes +set key off +unset colorbox +unset border +unset xtics +unset ytics +unset ztics + +# colors +## 4169E1 (pastel blue) +## FF143C (bright red) +## 32CD32 (bright green) +## DAA520 (ochre) + +# angle camera +set view 90,50 + +# style for mesh lines +set style line 1 linetype rgbcolor "#000000" + +# splot mode +set pm3d hidden3d depthorder + +# set colors +set palette defined (0 "#DAA520",0.33 "#FF143C", 0.66 "#32CD32",1 "#4169E1") + +# plot +splot datafile using 1:2:3:4 with pm3d linestyle 1 , \ + datafile using 5:6:7:8 with pm3d linestyle 1 , \ + datafile using 9:10:11:12 with pm3d linestyle 1 , \ + datafile using 13:14:15:16 with pm3d linestyle 1 + diff --git a/figs/bands_second.fig/bands_second.py b/figs/bands_second.fig/bands_second.py new file mode 100644 index 0000000..782b300 --- /dev/null +++ b/figs/bands_second.fig/bands_second.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python + +## compute the bands for bilayer graphene (no g4 or delta) +## second regime + +from math import * +import cmath +import numpy + +g1=0.1 +g3=0.33*g1 + +def Omega(x,y): + return(1+2*cmath.exp(-3j/2*x)*cos(sqrt(3)/2*y)) + +# Hamiltonian +def H(x,y): + return(numpy.array(\ + [[0,g1,0,Omega(x,y).conjugate()],\ + [g1,0,Omega(x,y),0],\ + [0,Omega(x,y).conjugate(),0,g3*Omega(x,y)*cmath.exp(3j*x)],\ + [Omega(x,y),0,g3*(Omega(x,y).conjugate())*cmath.exp(-3j*x),0]]\ + )) + +# eigenvalues +def eigsH(x,y): + return(numpy.linalg.eigvals(H(x,y))) + + +# resolution +nrpoints=31 +# xrange +xmin,xmax=2*pi/3-0.1,2*pi/3+0.1 +# yrange +ymin,ymax=2*pi/3/sqrt(3)-0.1,2*pi/3/sqrt(3)+0.1 + +# sample points +x=numpy.linspace(xmin,xmax,nrpoints) +y=numpy.linspace(ymin,ymax,nrpoints) +x,y=numpy.meshgrid(x,y) + +# data points +z=numpy.zeros((4,nrpoints,nrpoints)) +for i in range(0,nrpoints): + for j in range(0,nrpoints): + eigs=numpy.sort(numpy.real(eigsH(x[i,j],y[i,j]))) + for k in range(0,4): + z[k,i,j]=(eigs[k]) + +# output +for i in range(0,nrpoints): + for j in range(0,nrpoints): + for k in range(0,4): + print("%10f %10f %10f %d " % (x[i,j],y[i,j],z[k,i,j],k),end='') + print() + print() diff --git a/figs/bands_third.fig/Makefile b/figs/bands_third.fig/Makefile new file mode 100644 index 0000000..fc025fa --- /dev/null +++ b/figs/bands_third.fig/Makefile @@ -0,0 +1,23 @@ +PROJECTNAME=bands_third + +all: $(PROJECTNAME).pdf + +$(PROJECTNAME).pdf: + python $(PROJECTNAME).py > $(PROJECTNAME).dat + gnuplot $(PROJECTNAME).gnuplot + pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex + +install: $(PROJECTNAME).pdf + cp $(PROJECTNAME).pdf $(INSTALLDIR)/ + + +clean-aux: + rm -f $(PROJECTNAME).aux + rm -f $(PROJECTNAME).log + rm -f $(PROJECTNAME).dat + rm -f $(PROJECTNAME)_plot.tex + +clean-pdf: + rm -f $(PROJECTNAME).pdf + +clean: clean-aux clean-pdf diff --git a/figs/bands_third.fig/bands_third.gnuplot b/figs/bands_third.fig/bands_third.gnuplot new file mode 100644 index 0000000..2845518 --- /dev/null +++ b/figs/bands_third.fig/bands_third.gnuplot @@ -0,0 +1,41 @@ +#!/usr/bin/env gnuplot + +datafile="bands_third.dat" +# output +outfile="bands_third_plot.tex" +set output outfile + +# terminal +set term lua tikz size 10,6 standalone tightboundingbox + +# format axes +set key off +unset colorbox +unset border +unset xtics +unset ytics +unset ztics + +# colors +## FF143C (bright red) +## 32CD32 (bright green) + +# angle camera +set view 80,50 + +# style for mesh lines +set style line 1 linetype rgbcolor "#000000" + +# splot mode +set pm3d hidden3d depthorder + +# set colors +set palette defined (0 "#FF143C", 1 "#32CD32") + +# set data range +set zrange [-0.0001:0.0001] + +# plot +splot datafile using 1:2:3:4 with pm3d linestyle 1 , \ + datafile using 5:6:7:8 with pm3d linestyle 1 + diff --git a/figs/bands_third.fig/bands_third.py b/figs/bands_third.fig/bands_third.py new file mode 100644 index 0000000..f4d2290 --- /dev/null +++ b/figs/bands_third.fig/bands_third.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python + +## compute the bands for bilayer graphene (no g4 or delta) +## third regime + +from math import * +import cmath +import numpy +from scipy import optimize + +g1=0.1 +g3=0.33*g1 + +def Omega(x,y): + return(1+2*cmath.exp(-3j/2*x)*cos(sqrt(3)/2*y)) + +# Hamiltonian +def H(x,y): + return(numpy.array(\ + [[0,g1,0,Omega(x,y).conjugate()],\ + [g1,0,Omega(x,y),0],\ + [0,Omega(x,y).conjugate(),0,g3*Omega(x,y)*cmath.exp(3j*x)],\ + [Omega(x,y),0,g3*(Omega(x,y).conjugate())*cmath.exp(-3j*x),0]]\ + )) + +# eigenvalues +def eigsH(x,y): + return(numpy.linalg.eigvals(H(x,y))) + +# resolution +nrpoints=101 +# xrange +xmin,xmax=2*pi/3-0.004,2*pi/3+0.004 +# yrange +ymin,ymax=2*pi/3/sqrt(3)-0.004,2*pi/3/sqrt(3)+0.004 + +# sample points +x=numpy.linspace(xmin,xmax,nrpoints) +y=numpy.linspace(ymin,ymax,nrpoints) +x,y=numpy.meshgrid(x,y) + + +## We want a data point at each Fermi point, which must first be computed + +# A function that vanishes only at the Fermi points +def fermpt(v): + eigs=numpy.sort(numpy.real(eigsH(v[0],v[1]))) + return([eigs[1]-eigs[2],0]) +# compute Fermi points +## approximate starting value +pf_app=numpy.zeros((4,2)) +pf_app[0]=[2*pi/3,2*pi/3/sqrt(3)] +pf_app[1]=[2*pi/3,2/sqrt(3)*acos(1/2-g1*g3/2)] +pf_app[2]=[acos(g1*g3/2-1/2),acos(g1*g3/2-1/2)/sqrt(3)] +pf_app[3]=[4*pi/3-acos(g1*g3/2-1/2),acos(g1*g3/2-1/2)/sqrt(3)] +pf=pf_app +for i in range(0,4): + pf[i]=optimize.root(fermpt,pf_app[i],tol=1.e-10).x + +# Reset the data point closest to each Fermi point to the fermi point +for k in range(0,4): + mini,minj=0,0 + minval=100 + for i in range(0,nrpoints): + for j in range(0,nrpoints): + if(sqrt((x[i,j]-pf[k,0])**2+(y[i,j]-pf[k,1])**2)](120:1)--++\lo; +\draw[color=red,line width=1.5pt,->](120:1)--++\lt; + + +\end{tikzpicture} +\end{document} diff --git a/figs/bilayer_cell.fig/libs/graphene.sty b/figs/bilayer_cell.fig/libs/graphene.sty new file mode 120000 index 0000000..a377638 --- /dev/null +++ b/figs/bilayer_cell.fig/libs/graphene.sty @@ -0,0 +1 @@ +../../libs/graphene.sty \ No newline at end of file diff --git a/figs/flow.fig/Makefile b/figs/flow.fig/Makefile new file mode 100644 index 0000000..82ff8bd --- /dev/null +++ b/figs/flow.fig/Makefile @@ -0,0 +1,21 @@ +PROJECTNAME=flow + +all: $(PROJECTNAME).pdf + +$(PROJECTNAME).pdf: + gnuplot $(PROJECTNAME).gnuplot + pdflatex -jobname $(PROJECTNAME) $(PROJECTNAME)_plot.tex + +install: $(PROJECTNAME).pdf + cp $(PROJECTNAME).pdf $(INSTALLDIR)/ + + +clean-aux: + rm -f $(PROJECTNAME).aux + rm -f $(PROJECTNAME).log + rm -f $(PROJECTNAME)_plot.tex + +clean-pdf: + rm -f $(PROJECTNAME).pdf + +clean: clean-aux clean-pdf diff --git a/figs/flow.fig/flow.gnuplot b/figs/flow.fig/flow.gnuplot new file mode 100644 index 0000000..3d8d247 --- /dev/null +++ b/figs/flow.fig/flow.gnuplot @@ -0,0 +1,53 @@ +#!/usr/bin/env gnuplot + +# output file +outfile="flow_plot.tex" +set output outfile + +# tics +set x2tics ("$\\log_2\\epsilon$" 5, "$3\\log_2\\epsilon$" 15) nomirror out +set ytics ("$1$" 1, "$\\epsilon$" 2**(-5), "$2\\epsilon|\\log_2\\epsilon|$" 2**(-5)*(15-5+1)) nomirror out +unset xtics + +set xrange [0:20] +set yrange [-0.5:1] + +# remove key +unset key + +# titles +set x2label "$h$" offset 18,-3 +set ylabel norotate "$|V_h|$" offset 10.5,-9 + +# set terminal (add color definitions for title) +set term lua tikz size 8.33,5.833 standalone font "\\footnotesize" + +# 3=1+2 draw bottom and left sides of the box +set border 6 + +# set linestyles +set style line 2 linetype rgbcolor "#DC143C" linewidth 2 +set style line 3 linetype rgbcolor "#32CD32" linewidth 2 + +# extra text +set label "irrelevant" at 2.5,-0.1 center textcolor "#32CD32" +set label "$\\sim 2^{h}$" at 2.5,-0.25 center textcolor "#32CD32" +set label "marginal" at 10,-0.1 center textcolor "#DC143C" +set label "$\\sim\\epsilon|h-\\log_2\\epsilon|$" at 10,-0.25 center textcolor "#DC143C" +set label "irrelevant" at 17.5,-0.1 center textcolor "#32CD32" +set label "$\\sim\\epsilon|2\\log_2\\epsilon|2^{h-3\\log_2\\epsilon}$" at 15,-0.25 left textcolor "#32CD32" + +set samples 97 + +set arrow from 0,1 to 20,1 +set arrow from 0,1 to 0,-0.5 + +set arrow from 5,1 to 5,-0.5 nohead dashtype 2 +set arrow from 15,1 to 15,-0.5 nohead dashtype 2 + +# plots +plot \ + ((x<=5) ? 2**(-x) : 1/0) linestyle 3,\ + ((x>=5 && x<=15) ? 2**(-5)*(x-5+1) : 1/0) linestyle 2,\ + ((x>=15) ? 2**(-5)*(15-5+1)*2**(-(x-15)) : 1/0) linestyle 3 + diff --git a/figs/hoppings.fig/Makefile b/figs/hoppings.fig/Makefile new file mode 120000 index 0000000..704310e --- /dev/null +++ b/figs/hoppings.fig/Makefile @@ -0,0 +1 @@ +../libs/Makefile \ No newline at end of file diff --git a/figs/hoppings.fig/hoppings.tex b/figs/hoppings.fig/hoppings.tex new file mode 100644 index 0000000..c8fa332 --- /dev/null +++ b/figs/hoppings.fig/hoppings.tex @@ -0,0 +1,32 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{graphene} +\begin{document} +\begin{tikzpicture} + +% draw grids +\graphene{(0,0)}{color=red} +\graphene{(-1,0)}{dashed,color=red} + +% bounding box +\path\mlo++\mlo++(-0.1,-0.1)coordinate(A); +\path\lt++(-60:1)++(0.1,-0.1)coordinate(B); +\path\lo++\mlt++\lo++(60:1)++(0.1,0.1)coordinate(C); +\path\mlt++\mlt++\lo++\mlt++(-0.1,0.1)coordinate(D); + +% interlayer hopping +\begin{scope} + \clip(A)--(B)--(C)--(D)--cycle; + \graphene{(120:1)}{densely dotted,color=blue} + \graphene{(-120:1)}{densely dotted,color=blue} +\end{scope} + +\sitelattice{at}{(-1,0)}{} +\sitelattice{bt}{(-1,0)}{color=green} +\sitelattice{a}{(0,0)}{color=green} +\sitelattice{b}{(0,0)}{} + + + +\end{tikzpicture} +\end{document} diff --git a/figs/hoppings.fig/hoppings_0.tex b/figs/hoppings.fig/hoppings_0.tex new file mode 100644 index 0000000..0c8e042 --- /dev/null +++ b/figs/hoppings.fig/hoppings_0.tex @@ -0,0 +1,25 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{graphene} +\begin{document} +\begin{tikzpicture} + +% draw grids +\graphene{(0,0)}{color=red} +\graphene{(-1,0)}{dashed,color=red} + +% bounding box +\path\mlo++\mlo++(-0.1,-0.1)coordinate(A); +\path\lt++(-60:1)++(0.1,-0.1)coordinate(B); +\path\lo++\mlt++\lo++(60:1)++(0.1,0.1)coordinate(C); +\path\mlt++\mlt++\lo++\mlt++(-0.1,0.1)coordinate(D); + +\sitelattice{at}{(-1,0)}{} +\sitelattice{bt}{(-1,0)}{} +\sitelattice{a}{(0,0)}{} +\sitelattice{b}{(0,0)}{} + + + +\end{tikzpicture} +\end{document} diff --git a/figs/hoppings.fig/hoppings_1.tex b/figs/hoppings.fig/hoppings_1.tex new file mode 100644 index 0000000..ddaff19 --- /dev/null +++ b/figs/hoppings.fig/hoppings_1.tex @@ -0,0 +1,25 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{graphene} +\begin{document} +\begin{tikzpicture} + +% draw grids +\graphene{(0,0)}{} +\graphene{(-1,0)}{dashed} + +% bounding box +\path\mlo++\mlo++(-0.1,-0.1)coordinate(A); +\path\lt++(-60:1)++(0.1,-0.1)coordinate(B); +\path\lo++\mlt++\lo++(60:1)++(0.1,0.1)coordinate(C); +\path\mlt++\mlt++\lo++\mlt++(-0.1,0.1)coordinate(D); + +\sitelattice{at}{(-1,0)}{} +\sitelattice{bt}{(-1,0)}{color=green} +\sitelattice{a}{(0,0)}{color=green} +\sitelattice{b}{(0,0)}{} + + + +\end{tikzpicture} +\end{document} diff --git a/figs/hoppings.fig/hoppings_3.tex b/figs/hoppings.fig/hoppings_3.tex new file mode 100644 index 0000000..8f9b64f --- /dev/null +++ b/figs/hoppings.fig/hoppings_3.tex @@ -0,0 +1,32 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{graphene} +\begin{document} +\begin{tikzpicture} + +% draw grids +\graphene{(0,0)}{} +\graphene{(-1,0)}{dashed} + +% bounding box +\path\mlo++\mlo++(-0.1,-0.1)coordinate(A); +\path\lt++(-60:1)++(0.1,-0.1)coordinate(B); +\path\lo++\mlt++\lo++(60:1)++(0.1,0.1)coordinate(C); +\path\mlt++\mlt++\lo++\mlt++(-0.1,0.1)coordinate(D); + +% interlayer hopping +\begin{scope} + \clip(A)--(B)--(C)--(D)--cycle; + \graphene{(120:1)}{densely dotted,color=blue} + \graphene{(-120:1)}{densely dotted,color=blue} +\end{scope} + +\sitelattice{at}{(-1,0)}{} +\sitelattice{bt}{(-1,0)}{} +\sitelattice{a}{(0,0)}{} +\sitelattice{b}{(0,0)}{} + + + +\end{tikzpicture} +\end{document} diff --git a/figs/hoppings.fig/libs/graphene.sty b/figs/hoppings.fig/libs/graphene.sty new file mode 120000 index 0000000..a377638 --- /dev/null +++ b/figs/hoppings.fig/libs/graphene.sty @@ -0,0 +1 @@ +../../libs/graphene.sty \ No newline at end of file diff --git a/figs/libs/Makefile b/figs/libs/Makefile new file mode 100644 index 0000000..5704428 --- /dev/null +++ b/figs/libs/Makefile @@ -0,0 +1,28 @@ +PROJECTNAME=$(basename $(wildcard *.tex)) +LIBS=$(notdir $(wildcard libs/*)) + +PDFS=$(addsuffix .pdf, $(PROJECTNAME)) + +all: $(PDFS) + +$(PDFS): $(LIBS) + echo $(LIBS) + pdflatex -file-line-error $(patsubst %.pdf, %.tex, $@) + +install: $(PDFS) + cp $^ $(INSTALLDIR)/ + +$(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/graphene.sty b/figs/libs/graphene.sty new file mode 100644 index 0000000..40ffd03 --- /dev/null +++ b/figs/libs/graphene.sty @@ -0,0 +1,86 @@ +%% +%% Macros to draw graphene lattices +%% + +% numerical values +% sqrt(3)/2 +\def\sqrttt{0.866} +% sqrt(3) +\def\sqrtt {1.732} + +%l1 +\def\lo{(1.5,\sqrttt)} +%l2 +\def\lt{(1.5,-\sqrttt)} +%-l1 +\def\mlo{(-1.5,-\sqrttt)} +%-l2 +\def\mlt{(-1.5,\sqrttt)} + +% shapes +\def\square#1#2#3{\draw[#3]#1++(-#2,-#2)--++(#2,0)--++(#2,0)--++(0,#2)--++(0,#2)--++(-#2,0)--++(-#2,0)--++(0,-#2)--++(0,-#2);} +\def\fullsquare#1#2#3{\fill[#3]#1++(-#2,-#2)--++(#2,0)--++(#2,0)--++(0,#2)--++(0,#2)--++(-#2,0)--++(-#2,0)--++(0,-#2)--++(0,-#2);} + +% atoms +\def\a#1#2{\fill[#2]#1circle(.1);} +\def\b#1#2{\fullsquare{#1}{.1}{#2}} +\def\at#1#2{\fill[color=white]#1circle(.1);\draw[#2]#1circle(.1);} +\def\bt#1#2{\fullsquare{#1}{.17}{color=white}\square{#1}{.17}{#2}} + + +% draw a hexagon +\def\hexagon#1#2{ + % draw the lines one at a time (so that dashes overlap if the line is dashed) + \draw[#2]#1++(1,0)--++(120:1); + \draw[#2]#1++(-120:1)--++(120:1); + \draw[#2]#1++(60:1)--++(-1,0); + \draw[#2]#1++(-60:1)--++(-1,0); + \draw[#2]#1++(120:1)--++(-120:1); + \draw[#2]#1++(1,0)--++(-120:1); +} + +% draw the atoms around a hexagon +\def\as#1#2{ + \a{#1++(1,0)}{#2} + \a{#1++(120:1)}{#2} + \a{#1++(-120:1)}{#2} +} +\def\ats#1#2{ + \at{#1++(1,0)}{#2} + \at{#1++(120:1)}{#2} + \at{#1++(-120:1)}{#2} +} +\def\bs#1#2{ + \b{#1++(-1,0)}{#2} + \b{#1++(60:1)}{#2} + \b{#1++(-60:1)}{#2} +} +\def\bts#1#2{ + \bt{#1++(-1,0)}{#2} + \bt{#1++(60:1)}{#2} + \bt{#1++(-60:1)}{#2} +} + +% base lattice +\def\graphene#1#2{ + \hexagon{#1}{#2} + \hexagon{#1++\lo}{#2} + \hexagon{#1++\lt}{#2} + \hexagon{#1++\mlo}{#2} + \hexagon{#1++\mlt}{#2} + \hexagon{#1++\lo++\mlt}{#2} + \hexagon{#1++\lo++\mlt++\lo}{#2} + \hexagon{#1++\lo++\mlt++\mlt}{#2} +} + +% base lattice of sites +\def\sitelattice#1#2#3{ + \csname #1s\endcsname{#2}{#3} + \csname #1s\endcsname{#2++\lo}{#3} + \csname #1s\endcsname{#2++\lt}{#3} + \csname #1s\endcsname{#2++\mlo}{#3} + \csname #1s\endcsname{#2++\mlt}{#3} + \csname #1s\endcsname{#2++\lo++\mlt}{#3} + \csname #1s\endcsname{#2++\lo++\mlt++\lo}{#3} + \csname #1s\endcsname{#2++\lo++\mlt++\mlt}{#3} +} diff --git a/figs/monolayer.fig/Makefile b/figs/monolayer.fig/Makefile new file mode 120000 index 0000000..704310e --- /dev/null +++ b/figs/monolayer.fig/Makefile @@ -0,0 +1 @@ +../libs/Makefile \ No newline at end of file diff --git a/figs/monolayer.fig/libs/graphene.sty b/figs/monolayer.fig/libs/graphene.sty new file mode 120000 index 0000000..a377638 --- /dev/null +++ b/figs/monolayer.fig/libs/graphene.sty @@ -0,0 +1 @@ +../../libs/graphene.sty \ No newline at end of file diff --git a/figs/monolayer.fig/monolayer.tex b/figs/monolayer.fig/monolayer.tex new file mode 100644 index 0000000..59bfadc --- /dev/null +++ b/figs/monolayer.fig/monolayer.tex @@ -0,0 +1,16 @@ +\documentclass{standalone} +\usepackage{tikz} + +% macros to draw graphene lattices +\usepackage{graphene} + +\begin{document} +\begin{tikzpicture} + +\graphene{(0,0)}{} + +\sitelattice{a}{(0,0)}{} +\sitelattice{b}{(0,0)}{} + +\end{tikzpicture} +\end{document} diff --git a/libs/ian-presentation.cls b/libs/ian-presentation.cls new file mode 100644 index 0000000..e35cda9 --- /dev/null +++ b/libs/ian-presentation.cls @@ -0,0 +1,185 @@ +%% +%% Ian's presentation class +%% + +%% TeX format +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +%% class name +\ProvidesClass{ian-presentation}[2017/03/29] + +\def\ian@defaultoptions{ + \pagestyle{plain} +} + +%% paper dimensions +\setlength\paperheight{240pt} +\setlength\paperwidth{320pt} + +%% 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 +\textheight=208pt +\textwidth=272pt +\hoffset=-1in +\voffset=-1in +\oddsidemargin=24pt +\evensidemargin=24pt +\topmargin=8pt +\headheight=0pt +\headsep=0pt +\marginparsep=0pt +\marginparwidth=0pt +\footskip=16pt + + +%% remove default skips +\parindent=0pt +\parskip=0pt +\baselineskip=0pt + +%% something is wrong with \thepage, redefine it +\gdef\thepage{\the\c@page} + +%% correct vertical alignment at the end of a document +\AtEndDocument{ + % save total slide count + \immediate\write\@auxout{\noexpand\gdef\noexpand\slidecount{\thepage}} + \vfill + \eject +} + + +%% footer +\def\ps@plain{ + \def\@oddhead{} + \def\@evenhead{\@oddhead} + \def\@oddfoot{\tiny\hfill\thepage/\safe\slidecount\hfill} + \def\@evenfoot{\@oddfoot} +} +\def\ps@empty{ + \def\@oddhead{} + \def\@evenhead{\@oddhead} + \def\@oddfoot{} + \def\@evenfoot{\@oddfoot} +} + + +%% title of slide +\def\title#1{ + \hfil{\bf\large #1}\par + \hfil\vrule width0.75\textwidth height0.3pt\par + \vskip5pt +} + + +%% 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% +} + + +%% 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 +\def\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\penalty\itemizepenalty\medskip\penalty\itemizepenalty + \addtocounter{itemizecount}{1} + \addtolength\current@itemizeskip{\itemizeskip} + \leftskip\current@itemizeskip +} +\def\enditemize{ + \addtocounter{itemizecount}{-1} + \addtolength\current@itemizeskip{-\itemizeskip} + \par\leftskip\current@itemizeskip + \medskip +} +\newlength\itempt@total +\def\item{ + \settowidth\itempt@total{\itemizept\theitemizecount} + \addtolength\itempt@total{\itemizeseparator} + \par + \medskip + \hskip-\itempt@total\itemizept\theitemizecount\hskip\itemizeseparator +} + +%% 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 +} + + +%% end +\ian@defaultoptions + +\endinput -- cgit v1.2.3-54-g00ecf