Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'figs/libs/graphene.sty')
-rw-r--r--figs/libs/graphene.sty86
1 files changed, 86 insertions, 0 deletions
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}
+}