Initial commit

This commit is contained in:
Ian Jauslin 2015-07-23 14:55:49 +00:00
commit 1a0ba99f6b
8 changed files with 776 additions and 0 deletions

38
BBlog.sty Normal file
View File

@ -0,0 +1,38 @@
%%
%% BBlog bibliography related commands
%%
%% length used to display the bibliography
\newlength{\rw}
\setlength{\rw}{1.5cm}
%% read header
\IfFileExists{header.BBlog.tex}{\input{header.BBlog}}{}
%% cite a reference
\def\cite#1{%
\ref{cite#1}%
%% add entry to citelist after checking it has not already been added
\ifcsname if#1cited\endcsname%
\expandafter\if\csname if#1cited\endcsname%
\else%
\csname if#1citedtrue\endcsname%
\immediate\write\@auxout{\noexpand\BBlogcite{#1}}%
\fi%
\else%
\expandafter\newif\csname if#1cited\endcsname%
\csname if#1citedtrue\endcsname%
\immediate\write\@auxout{\noexpand\BBlogcite{#1}}%
\fi%
}
%% an empty definition for the aux file
\def\BBlogcite#1{}
%% display the bibliography
\long\def\BBlography{
\newlength{\colw}
\setlength{\colw}{\textwidth}
\addtolength{\colw}{-\rw}
\IfFileExists{bibliography.BBlog.tex}{
\input{bibliography.BBlog}}{{\tt error: missing BBlog bibliography file}}
}

173
Gallavotti_Jauslin_2015.tex Normal file
View File

@ -0,0 +1,173 @@
\documentclass{kiss}
% load packages
\usepackage{header}
% bibliography commands
\usepackage{BBlog}
% miscellaneous commands
\usepackage{toolbox}
% main style file
\usepackage{iansecs}
\begin{document}
\bf\Large
\hfil Kondo effect in the hierarchical $s-d$ model
\normalsize
\vskip20pt
\hfil{Giovanni Gallavotti, Ian Jauslin}
\vskip20pt
\rm
\hfil2015\par
\hugeskip
\leftskip20pt
\rightskip20pt
\small
The $s-d$ model describes a chain of spin-1/2 electrons interacting magnetically with a two-level impurity. It was introduced to study the Kondo effect, in which the magnetic susceptibility of the impurity remains finite in the 0-temperature limit as long as the interaction of the impurity with the electrons is anti-ferromagnetic. A variant of this model was introduced by Andrei, which he proved was exactly solvable via Bethe Ansatz. A hierarchical version of Andrei's model was studied by Benfatto and the authors. In the present letter, that discussion is extended to a hierarchical version of the $s-d$ model. The resulting analysis is very similar to the hierarchical Andrei model, though the result is slightly simpler.\par
\leftskip0pt
\rightskip0pt
\normalsize
\hugeskip
\indent The $s-d$ model was introduced by Anderson [\cite{andSO}] and used by Kondo [\cite{konSF}] to study what would subsequently be called the {\it Kondo effect}. It describes a chain of electrons interacting with a fixed spin-1/2 magnetic impurity. One of the manifestations of the effect is that when the coupling is anti-ferrmoagnetic, the magnetic susceptibility of the impurity remains finite in the 0-temperature limit, whereas it diverges for ferromagnetic and for vanishing interactions.\par
\indent A modified version of the $s-d$ model was introduced by Andrei [\cite{andEZ}], which was shown to be exactly solvable by Bethe Ansatz. In [\cite{bgjOFi}], a hierarchical version of Andrei's model was introduced and shown to exhibit a Kondo effect. In the present letter, we show how the argument can be adapted to the $s-d$ model.\par
\indent We will show that in the hierarchical $s-d$ model, the computation of the susceptibility reduces to iterating an {\it explicit} map relating 6 {\it running coupling constants} (rccs), and that this map can be obtained by restricting the flow equation for the hierarchical Andrei model [\cite{bgjOFi}] to one of its invariant manifolds. The physics of both models are therefore very closely related, as had already been argued in [\cite{bgjOFi}]. This is particularly noteworthy since, at 0-field, the flow in the hierarchical Andrei model is relevant, whereas it is marginal in the hierarchical $s-d$ model, which shows that the relevant direction carries little to no physical significance.\par
\bigskip
\indent The $s-d$ model [\cite{konSF}] represents a chain of non-interacting spin-1/2 fermions, called {\it electrons}, which interact with an isolated spin-1/2 {\it impurity} located at site 0. The Hilbert space of the system is $\mathcal F_L\otimes\mathbb C^2$ in which $\mathcal F_L$ is the Fock space of a length-$L$ chain of spin-1/2 fermions (the electrons) and $\mathbb C^2$ is the state space for the two-level impurity. The Hamiltonian, in the presence of a magnetic field of amplitude $h$ in the direction $\bm\omega\equiv(\bm\omega_1,\bm\omega_2,\bm\omega_3)$, is
\begin{equation}\begin{array}{r@{\ }>{\displaystyle}l}
H_K=&H_0+V_0+V_h=:H_0+V\\[0.3cm]
H_0=&\sum_{\alpha\in\{\uparrow,\downarrow\}}\sum_{x=-{L}/2}^{{L}/2-1} c^+_\alpha(x)\,\left(-\frac{\Delta}2-1\right)\,c^-_\alpha(x)\\[0.5cm]
V_0=&-\lambda_0\sum_{j=1,2,3\atop\alpha_1,\alpha_2} c^+_{\alpha_1}(0)\sigma^j_{\alpha_1,\alpha_2}c^-_{\alpha_2}(0)\, \tau^j\\[0.5cm]
V_h=&-h \,\sum_{j=1,2,3}\bm\omega_j \tau^j
\end{array}\label{eqhamdef}\end{equation}
where $\lambda_0$ is the interaction strength, $\Delta$ is the discrete Laplacian $c_\alpha^\pm(x),\,\alpha=\uparrow,\downarrow$ are creation and annihilation operators acting on {\it electrons}, and $\sigma^j=\tau^j,\,j=1,2,3$, are Pauli matrices. The operators $\tau^j$ act on the {\it impurity}. The boundary conditions are taken to be periodic.\par
\indent In the {\it Andrei model} [\cite{andEZ}], the impurity is represented by a fermion instead of a two-level system, that is the Hilbert space is replaced by $\mathcal F_L\otimes\mathcal F_1$, and the Hamiltonian is defined by replacing $\tau^j$ in~(\ref{eqhamdef}) by $d^+\tau^jd^-$ in which $d_\alpha^\pm(x),\,\alpha=\uparrow,\downarrow$ are creation and annihilation operators acting on the impurity.\par
\bigskip
\indent The partition function $Z={\rm Tr}\, e^{-\beta H_K}$ can be expressed formally as a functional integral:
\begin{equation}
Z=\mathrm{Tr}\int P(d\psi)\, \sum_{n=0}^\infty(-1)^n\int_{0<t_1<\cdots<t_n<\beta}\kern-50pt dt_1\cdots dt_n\, \mathcal V(t_1)\cdots\mathcal V(t_n)
\label{eqpartfn}\end{equation}
in which $\mathcal V(t)$ is obtained from $V$ by replacing $c_\alpha^\pm(0)$ in~(\ref{eqhamdef}) by a {\it Grassmann} field $\psi_\alpha^\pm(0,t)$, $P(d\psi)$ is a {\it Gaussian Grassmann measure} over the fields $\{\psi_\alpha^\pm(0,t)\}_{t,\alpha}$ whose {\it propagator} ({\it i.e.} {\it covariance}) is, in the $L\to\infty$ limit,
$$
g(t,t')=\frac1{(2\pi)^2}\int dk dk_0 \frac{e^{i k_0(t-t')}}{i k_0-\cos k},
$$
and the trace is over the state-space of the spin-1/2 impurity, that is a trace over $\mathbb C^2$.\par
\bigskip
\indent We will consider a {\it hierarchical} version of the $s-d$ model. The hierarchical model defined below is {\it inspired} by the $s-d$ model in the same way as the hierarchical model defined in [\cite{bgjOFi}] was inspired by the Andrei model. We will not give any details on the justification of the definition, as such considerations are entirely analogous to the discussion in [\cite{bgjOFi}].\par
\indent The model is defined by introducing a family of {\it hierarchical fields} and specifying a {\it propagator} for each pair of fields. The average of any monomial of fields is then computed using the Wick rule.\par
\indent Assuming $\beta=2^{N_\beta}$ with $N_\beta=\log_2\beta\in\mathbb N$, the time axis $[0,\beta)$ is paved with boxes ({\it i.e.} intervals) of size $2^{-m}$ for every $m\in\{0,-1,\ldots,-N_\beta\}$: let
\begin{equation}
\mathcal Q_m:=\left\{[i 2^{|m|}, (i+1) 2^{|m|})\right\}_{i=0,1,\cdots,2^{N_\beta-|m|}-1}^{m=0,-1,\ldots}
\label{eqtiledef}\end{equation}
Given a box $\Delta\in{\mathcal Q}_m$, let $t_\Delta$ denote the center of $\Delta$, and given a point $t\in R$, let $\Delta^{[m]}(t)$ be the (unique) box on scale $m$ that contains $t$. We further decompose each box $\Delta\in\mathcal Q_m$ into two {\it half boxes}: for $\eta\in\{-,+\}$, let
\begin{equation}
\Delta_{\eta}:=\Delta^{[m+1]}(t_{\Delta}+\eta2^{-m-2})
\label{eqhalfboxdef}\end{equation}
for $m\le 0$. Thus $\Delta_{-}$ can be called the ``lower half'' of $\Delta$ and $\Delta_{+}$ the ``upper half''.\par
\indent The elementary fields used to define the hierarchical $s-d$ model will be {\it constant on each half-box} and will be denoted by $\psi_\alpha^{[m]\pm}(\Delta_{\eta})$ for $m\in\{0,-1,\cdots,$ $-N_\beta\}$, $\Delta\in\mathcal Q_m$, $\eta\in\{-,+\}$, $\alpha\in\{\uparrow,\downarrow\}$.\par
\indent The propagator of the hierarchical $s-d$ model is defined as
\begin{equation}
\left<\psi_{\alpha}^{[m]-}(\Delta_{-\eta})\psi_{\alpha}^{[m]+}(\Delta_{\eta})\right >:= \eta
\label{eqprop}\end{equation}
for $m\in\{0,-1,\cdots,$ $-N_\beta\}$, $\Delta\in\mathcal Q_m$, $\eta\in\{-,+\}$, $\alpha\in\{\uparrow,\downarrow\}$. The propagator of any other pair of fields is set to 0.\par
\indent Finally, we define
\begin{equation}
\psi^\pm_\alpha(t):= \sum_{m=0}^{-N_\beta} 2^{\frac{m}2}\psi_\alpha^{[m]\pm}(\Delta^{[m+1]}(t)).
\label{eqfielddcmp}\end{equation}
\indent The partition function for the hierarchical $s-d$ model is
\begin{equation}
Z=\mathrm{Tr}\left< \sum_{n=0}^\infty(-1)^n\int_{0<t_1<\cdots<t_n<\beta}\kern-50pt dt_1\cdots dt_n\, \mathcal V(t_1)\cdots\mathcal V(t_n) \right>
\label{eqhierpartfn}\end{equation}
in which the $\psi^\pm_\alpha(0,t)$ in $\mathcal V(t)$ have been replaced by the $\psi_\alpha^\pm(t)$ defined in~(\ref{eqfielddcmp}):
\begin{equation}
\mathcal V(t):=-\lambda_0\sum_{j=1,2,3\atop\alpha_1,\alpha_2} \psi^+_{\alpha_1}(t)\sigma^j_{\alpha_1,\alpha_2}\psi^-_{\alpha_2}(t)\, \tau^j -h \,\sum_{j=1,2,3}\bm\omega_j \tau^j.
\label{eqhierpot}\end{equation}
This concludes the definition of the hierarchical $s-d$ model.\par
\bigskip
\indent We will now show how to compute the partition function~(\ref{eqhierpartfn}) using a renormalization group iteration. We first rewrite
\begin{equation}
\sum_{n=0}^\infty(-1)^n\int_{0<t_1<\cdots<t_n<\beta}\kern-50pt dt_1\cdots dt_n\, \mathcal V(t_1)\cdots\mathcal V(t_n) =\prod_{\Delta\in\mathcal Q_0}\prod_{\eta=\pm}\left(\sum_{n=0}^\infty\frac{(-1)^n}{2^nn!}\mathcal V(t_{\Delta_\eta})^n\right)
\label{eqtrotthier}\end{equation}
and find that
\begin{equation}
\sum_{n=0}^\infty\frac{(-1)^n}{2^nn!}\mathcal V(t_{\Delta_\eta^{[0]}})^n =C\left(1+\sum_{p}\ell_p^{[0]}O_{p,\eta}^{[\le 0]}(\Delta^{[0]})\right)
\label{eqexpV}\end{equation}
with
\begin{equation}\begin{array}{r@{\quad}l}
O_{0,\eta}^{[\le 0]}(\Delta):=\frac12\mathbf A^{[\le 0]}_\eta(\Delta)\cdot\bm\tau,& O_{1,\eta}^{[\le 0]}(\Delta):=\frac12\mathbf A^{[\le 0]}_\eta(\Delta)^2,\\[0.3cm]
O_{4,\eta}^{[\le 0]}(\Delta):=\frac12\mathbf A^{[\le 0]}_\eta(\Delta)\cdot\bm\omega,& O_{5,\eta}^{[\le 0]}(\Delta):=\frac12\mathbf \bm\tau\cdot\bm\omega,\\[0.3cm]
O_{6,\eta}^{[\le 0]}(\Delta):=\frac12(\mathbf A^{[\le 0]}_\eta(\Delta)\cdot\bm\omega)(\bm\tau\cdot\bm\omega),& O_{7,\eta}^{[\le 0]}(\Delta):=\frac12(\mathbf A^{[\le 0]}_\eta(\Delta)^2)(\bm\tau\cdot\bm\omega)
\end{array}\label{eqOdef}\end{equation}
(the numbering is meant to recall that in [\cite{bgjOFi}]) in which $\bm\tau=(\tau^1,\tau^2,\tau^3)$ and $\mathbf A_\eta^{[\le 0]}(\Delta)$ is a vector of polynomials in the fields whose $j$-th component for $j\in\{1,2,3\}$ is
\begin{equation}
A_\eta^{[\le 0]j}(\Delta):=\sum_{(\alpha,\alpha')\in\{\uparrow,\downarrow\}^2} \psi_\alpha^{[\le 0]+}(\Delta_\eta)\sigma^j_{\alpha,\alpha'}\psi_{\alpha'}^{[\le 0]-}(\Delta_\eta)
\label{eqAdef}\end{equation}
$\psi_\alpha^{[\le 0]\pm}:=\sum_{m\le0}2^{\frac m2}\psi_\alpha^{[m]\pm}$, and
\begin{equation}\begin{array}{r@{\ }>{\displaystyle}l}
C=&\cosh(\tilde h),\quad \ell_0^{[0]}=\frac1C\frac{\lambda_0}{\tilde h}\sinh(\tilde h),\quad
\ell_1^{[0]}=\frac1C\frac{\lambda_0^2}{12\tilde h}(\tilde h\cosh(\tilde h)+2\sinh(\tilde h))\\[0.3cm]
\ell_4^{[0]}=&\frac1C\lambda_0\sinh(\tilde h),\quad \ell_5^{[0]}=\frac1C\sinh(\tilde h),\quad
\ell_6^{[0]}=\frac1C\frac{\lambda_0}{\tilde h}(\tilde h\cosh(\tilde h)-\sinh(\tilde h))\\[0.3cm]
\ell_7^{[0]}=&\frac1C\frac{\lambda_0^2}{12\tilde h^2}(\tilde h^2\sinh(\tilde h)+2\tilde h\cosh(\tilde h)-2\sinh(\tilde h))
\end{array}\label{eqinitcd}\end{equation}
in which $\tilde h:=h/2$.\par
\indent By a straightforward induction, we find that the partition function~(\ref{eqhierpartfn}) can be computed by defining
\begin{equation}
C^{[m]}\mathcal W^{[m-1]}(\Delta^{[m]}):=\left<\prod_\eta\left(\mathcal W^{[m]}(\Delta^{[m]}_\eta)\right)\right>_m
\label{eqindW}\end{equation}
in which $\left<\cdot\right>_m$ denotes the average over $\psi^{[m]}$, $C^{[m]}>0$ and
\begin{equation}
\mathcal W^{[m-1]}(\Delta^{[m]})=1+\sum_p\ell_p^{[m]}O_p^{[\le m]}(\Delta^{[m]})
\label{eqexprW}\end{equation}
in terms of which
\begin{equation}
Z=C^{2|\mathcal Q_0|}\prod_{m=-N(\beta)+1}^0(C^{[m]})^{|\mathcal Q_{m-1}|}
\label{eqZind}\end{equation}
in which $|\mathcal Q_m|=2^{N(\beta)-|m|}$ is the cardinality of $\mathcal Q_m$. In addition, similarly to [\cite{bgjOFi}], the map relating $\ell_p^{[m]}$ to $\ell_p^{[m-1]}$ and $C^{[m]}$ can be computed explicitly from~(\ref{eqindW}):
\begin{equation}\begin{array}{r@{\ }>{\displaystyle}l}
C^{[m]} =& 1 +\frac{3}{2}\ell_{0}^2 +\ell_{0}\ell_{6} +9\ell_{1}^2 +\frac{\ell_{4}^2}{2} +\frac{\ell_{5}^2}{4} +\frac{\ell_{6}^2}{2} +9\ell_{7}^2 \\[0.3cm]
\ell^{[m-1]}_{0} =& \frac1C\left(\ell_{0} -\ell_{0}^2 +3\ell_{0}\ell_{1} -\ell_{0}\ell_{6} \right)\\[0.3cm]
\ell^{[m-1]}_{1} =& \frac1C\left(\frac{\ell_{1}}{2} +\frac{\ell_{0}^2}{8} +\frac{\ell_{0}\ell_{6}}{12} +\frac{\ell_{4}^2}{24} +\frac{\ell_{5}\ell_{7}}{4} +\frac{\ell_{6}^2}{24} \right)\\[0.3cm]
\ell^{[m-1]}_{4} =& \frac1C\left(\ell_{4} +\frac{\ell_{0}\ell_{5}}{2} +3\ell_{0}\ell_{7} +3\ell_{1}\ell_{4} +\frac{\ell_{5}\ell_{6}}{2} +3\ell_{6}\ell_{7} \right)\\[0.3cm]
\ell^{[m-1]}_{5} =& \frac1C\left(2\ell_{5} +2\ell_{0}\ell_{4} +36\ell_{1}\ell_{7} +2\ell_{4}\ell_{6} \right)\\[0.3cm]
\ell^{[m-1]}_{6} =& \frac1C\left(\ell_{6} +\ell_{0}\ell_{6} +3\ell_{1}\ell_{6} +\frac{\ell_{4}\ell_{5}}{2} +3\ell_{4}\ell_{7} \right)\\[0.3cm]
\ell^{[m-1]}_{7} =& \frac1C\left(\frac{\ell_{7}}{2} +\frac{\ell_{0}\ell_{4}}{12} +\frac{\ell_{1}\ell_{5}}{4} +\frac{\ell_{4}\ell_{6}}{12} \right)
\end{array}\label{eqbetafun}\end{equation}
in which the $^{[m]}$ have been dropped from the right hand side.\par
\bigskip
\indent The flow equation~(\ref{eqbetafun}) can be recovered from that of the hierarchical Andrei model studied in [\cite{bgjOFi}] (see in particular [\cite{bgjOFi}, (C1)] by restricting the flow to the invariant submanifold defined by \begin{equation} \ell_2^{[m]}=\frac13,\quad \ell_3^{[m]}=\frac16\ell_1^{[m]},\quad \ell_8^{[m]}=\frac16\ell_4^{[m]}. \label{e18}\end{equation} This is of particular interest since $\ell_2^{[m]}$ is a relevant coupling and the fact that it plays no role in the $s-d$ model indicates that it has little to no physical relevance.\par
\indent The qualitative behavior of the flow is therefore the same as that described in [\cite{bgjOFi}] for the hierarchical Andrei model. In particular the susceptibility, which can be computed by deriving $-\beta^{-1}\log Z$ with respect to $h$, remains finite in the 0-temperature limit as long as $\lambda_0<0$, that is as long as the interaction is anti-ferromagnetic.\par
\hugeskip
{\bf Acknowledgements}: We are grateful to G.~Benfatto for many enlightening discussions on the $s-d$ and Andrei's models.
\hugeskip
\small
\BBlography
\vfill
\eject
\end{document}

49
README Normal file
View File

@ -0,0 +1,49 @@
* Typeset
In order to typeset the LaTeX document, run
pdflatex Gallavotti_Jauslin_2015.tex
pdflatex Gallavotti_Jauslin_2015.tex
* Files
Gallavotti_Jauslin_2015.tex :
body of the paper.
bibliography.BBlog.tex :
list of references.
BBlog.sty :
bibliography related commands.
header.sty :
list of packages.
iansecs.sty :
main style file.
kiss.cls :
barebones class file
toolbox.sty :
collection of useful commands.
* Coding style
In the body of the paper, an effort has been made to keep the LaTeX code
'standard', avoiding self-defined commands whenever possible, and sticking to
TeX and basic LaTeX commands. In some instances however, such an approach would
have been too restrictive, and commands defined in the style files listed above
were used.
Many of the commands defined in 'iansecs.sty' are drop-in replacements for
standard LaTeX commands, though some functionality may be lost.
* Bibliography
The bibliography was generated by BBlog, which produced the
bibliography.BBlog.tex file. All of the required code to adequately typeset
the reference list and define the commands used to cite them are contained in
that file.

20
bibliography.BBlog.tex Normal file
View File

@ -0,0 +1,20 @@
\hrefanchor
\outdef{citeandSO}{And61}
\hbox{\parbox[t]{\rw}{[\cite{andSO}]}\parbox[t]{\colw}{P.~Anderson - {\it Localized magnetic states in metals}, Physical Review, Vol.~124, n.~1, p.~41-53, 1961.}}\par
\bigskip
\hrefanchor
\outdef{citeandEZ}{And80}
\hbox{\parbox[t]{\rw}{[\cite{andEZ}]}\parbox[t]{\colw}{N.~Andrei - {\it Diagonalization of the Kondo Hamiltonian}, Physical Review Letters, Vol.~45, n.~5, 1980.}}\par
\bigskip
\hrefanchor
\outdef{citebgjOFi}{BGJ15}
\hbox{\parbox[t]{\rw}{[\cite{bgjOFi}]}\parbox[t]{\colw}{G.~Benfatto, G.~Gallavotti, I.~Jauslin - {\it Kondo effect in a Fermionic hierarchical model}, arXiv 1506.04381, 2015.}}\par
\bigskip
\hrefanchor
\outdef{citekonSF}{Kon64}
\hbox{\parbox[t]{\rw}{[\cite{konSF}]}\parbox[t]{\colw}{J.~Kondo - {\it Resistance minimum in dilute magnetic alloys}, Progress of Theoretical Physics, Vol.~32, n.~1, 1964.}}\par
\bigskip

11
header.sty Normal file
View File

@ -0,0 +1,11 @@
%%
%% Load packages
%%
\usepackage{color}
\usepackage[hidelinks]{hyperref}
\usepackage{amsfonts}
\usepackage{bm}
\usepackage{array}
\usepackage{etoolbox}

402
iansecs.sty Normal file
View File

@ -0,0 +1,402 @@
%%
%% This file contains the main style commands
%%
%% Some options can be set by changing the \loaddefaults command
%%
\usepackage{color}
\usepackage{marginnote}
\def\loaddefaults{
\sectionsfalse
\subseqcountfalse
\def\seqskip{\vskip1.5cm}
\def\subseqskip{\vskip1cm}
\resetpointattheofalse
\parindent=0pt
\def\indent{\hskip20pt}
}
% false if there are no sections
\newif\ifsections
% true if equation numbers should include the subsection number
\newif\ifsubseqcount
% true if there is a table of contents
\newif\iftoc
% true if point counting should reset at each theorem
\newif\ifresetpointattheo
% a prefix to put before the section number, e.g. A for appendices
\def\sectionprefix{}
\loaddefaults
%% style for the equation number
\def\eqnumstyle{}
%% 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}}%
}
%% define a label for the latest tag
%% label defines a command containing the string stored in \tag
\AtBeginDocument{
\def\label#1{\expandafter\outdef{#1}{\safe\tag}}
\def\ref#1{%
% check whether the label is defined (hyperlink runs into errors if this check is ommitted)
\ifcsname #1@hl\endcsname%
\hyperlink{ln.\csname #1@hl\endcsname}{\safe\csname #1\endcsname}%
\else%
\ifcsname #1\endcsname%
\csname #1\endcsname%
\else%
{\bf ??}%
\fi%
\fi%
}
}
%% counters
\newcounter{sectioncount}
\newcounter{subsectioncount}
\newcounter{pointcount}
\newcounter{subpointcount}
\newcounter{subsubpointcount}
\newcounter{seqcount}
\newcounter{figcount}
\newcounter{Theocount}
\newcounter{tocsectioncount}
\newcounter{tocsubsectioncount}
%% section command
\newlength\secnumwidth
\newlength\sectitlewidth
\def\section#1{%
% reset counters
\stepcounter{sectioncount}%
\setcounter{subsectioncount}{0}%
\setcounter{pointcount}{0}%
\setcounter{subpointcount}{0}%
\setcounter{subsubpointcount}{0}%
\setcounter{figcount}{0}%
\setcounter{Theocount}{0}%
\setcounter{seqcount}{0}%
% space before section (if not first)
\ifnum\thesectioncount>1%
\seqskip%
\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%
\par\penalty10000%
\bigskip\penalty10000%
}
%% subsection
\def\subsection#1{
% counters
\stepcounter{subsectioncount}%
\setcounter{pointcount}{0}%
\setcounter{subpointcount}{0}%
\setcounter{subsubpointcount}{0}%
\ifsubseqcount%
\setcounter{seqcount}0%
\fi%
% space before subsection (if not first)
\ifnum\thesubsectioncount>1%
\subseqskip%
\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%
\par\penalty10000%
\medskip\penalty10000%
}
%% itemize
\newlength\itemizeskip
% left margin for items
\setlength\itemizeskip{20pt}
% item symbol
\def\itemizept{\textbullet}
\newlength\itemizeseparator
% space between the item symbol and the text
\setlength\itemizeseparator{5pt}
\newlength\current@itemizeskip
\setlength\current@itemizeskip{0pt}
\def\itemize{
\par\medskip
\addtolength\current@itemizeskip{\itemizeskip}
\leftskip\current@itemizeskip
}
\def\enditemize{
\addtolength\current@itemizeskip{-\itemizeskip}
\par\leftskip\current@itemizeskip
\medskip
}
\newlength\itempt@total
\def\item{
\settowidth\itempt@total{\itemizept}
\addtolength\itempt@total{\itemizeseparator}
\par
\medskip
\hskip-\itempt@total\itemizept\hskip\itemizeseparator
}
%% points
\def\point{
\stepcounter{pointcount}
\setcounter{subpointcount}{0}
% hyperref anchor
\hrefanchor
\indent{\bf \thepointcount\ - }
% define tag (for \label)
\xdef\tag{\thepointcount}
}
\def\subpoint{
\stepcounter{subpointcount}
\setcounter{subsubpointcount}0
% hyperref anchor
\hrefanchor
\indent\hskip.5cm{\bf \thepointcount-\thesubpointcount\ - }
% define tag (for \label)
\xdef\tag{\thepointcount-\thesubpointcount}
}
\def\subsubpoint{
\stepcounter{subsubpointcount}
% hyperref anchor
\hrefanchor
\indent\hskip1cm{\bf \thepointcount-\thesubpointcount-\thesubsubpointcount\ - }
% define tag (for \label)
\xdef\tag{\thepointcount-\thesubpointcount-\thesubsubpointcount}
}
% reset points
\def\resetpointcounter{
\setcounter{pointcount}{0}
\setcounter{subpointcount}{0}
\setcounter{subsubpointcount}{0}
}
%% equation numbering
\def\seqcount{
\stepcounter{seqcount}
% the output
\edef\seqformat{\theseqcount}
% add subsection number
\ifsubseqcount
\let\tmp\seqformat
\edef\seqformat{\thesubsectioncount.\tmp}
\fi
% add section number
\ifsections
\let\tmp\seqformat
\edef\seqformat{\sectionprefix\thesectioncount.\tmp}
\fi
% define tag (for \label)
\xdef\tag{\seqformat}
% write number
\marginnote{\eqnumstyle\hfill(\seqformat)}
}
%% equation environment compatibility
\def\equation{\hrefanchor$$\seqcount}
\def\endequation{$$\@ignoretrue}
%% figures
\newlength\figwidth
\setlength\figwidth\textwidth
\addtolength\figwidth{-2.5cm}
\def\figcount#1{%
\stepcounter{figcount}%
% hyperref anchor
\hrefanchor%
% the number of the figure
\edef\figformat{\thefigcount}%
% add section number
\ifsections%
\let\tmp\figformat%
\edef\figformat{\sectionprefix\thesectioncount.\tmp}%
\fi%
% define tag (for \label)
\xdef\tag{\figformat}%
% write
\hfil fig \figformat: \parbox[t]{\figwidth}{\small#1}%
\par\bigskip%
}
%% environment
\def\figure{
\par\penalty-500
}
\def\endfigure{
\par\penalty-1000
}
\let\caption\figcount
%% 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}
\def\delim{\par\leavevmode\raise.3em\hbox to\hsize{\vrule height0.3em\hrulefill\vrule height0.3em}\par\penalty10000}
\def\enddelim{\par\penalty10000\leavevmode\raise.3em\hbox to\hsize{\vrule height0.3em\hrulefill\vrule height0.3em}\par}
%% theorem headers
\def\theo#1{
\stepcounter{Theocount}
% reset points
\ifresetpointattheo\resetpointcounter\fi
% hyperref anchor
\hrefanchor
% the number
\def\formattheo{\theTheocount}
% add section number
\ifsections
\let\tmp\formattheo
\edef\formattheo{\sectionprefix\thesectioncount.\tmp}
\fi
% define tag (for \label)
\xdef\tag{\formattheo}
% write
\delimtitle{\bf #1 \formattheo}
}
\let\endtheo\enddelim
%% 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}
}
%% start references
\def\references{%
\hrefanchor%
% write
{\bf \LARGE References}\par\penalty10000\bigskip\penalty10000%
% 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%
}
%% table of contents
\newif\iftocopen
\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
\def\tocsection #1#2{
\stepcounter{tocsectioncount}
\setcounter{tocsubsectioncount}{0}
% write
\smallskip\hyperlink{ln.\csname toc@sec.\thetocsectioncount\endcsname}{{\bf \tocsectionprefix\thetocsectioncount}.\hskip5pt #1\leaderfill#2}\par
}
\def\tocsubsection #1#2{
\stepcounter{tocsubsectioncount}
% write
{\hskip10pt\hyperlink{ln.\csname toc@subsec.\thetocsectioncount.\thetocsubsectioncount\endcsname}{{\bf \thetocsubsectioncount}.\hskip5pt {\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}{{\bf References}\leaderfill#1}}\par
\smallskip
}

42
kiss.cls Normal file
View File

@ -0,0 +1,42 @@
%%
%% Barebones class declaration
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{kiss}
\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}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
%% something is wrong with \thepage, redefine it
\gdef\thepage{\the\c@page}
%% default offsets: 1in, correct with \hoffset and \voffset
\hoffset=-50pt
\voffset=-72pt
%% horizontal margins
%\oddsidemargin=31pt
%\evensidemargin=31pt
%% vertical margin
%\topmargin=20pt
%% body size
\textwidth=460pt
\textheight=704pt
%% header size and margin
%\headheight=12pt
%\headsep=25pt
%% footer size
%\footskip=30pt
%% margin size and margin
\marginparwidth=35pt
%\marginparsep=10pt

41
toolbox.sty Normal file
View File

@ -0,0 +1,41 @@
%%
%% A collection of useful commands
%%
%% can call commands even when they are not defined
\def\safe#1{%
\ifdefined#1%
#1%
\else%
{\color{red}\bf?}%
\fi%
}
%% larger skip
\newskip\hugeskipamount
\hugeskipamount=24pt plus8pt minus8pt
\def\hugeskip{\vskip\hugeskipamount}
%% penalty before large blocks
\def\preblock{
\penalty-500
}
%% listparpenalty prevents page breaks before lists
\newcount\prevparpenalty
\def\listparpenalty{
\prevparpenalty=\@beginparpenalty
\@beginparpenalty=10000
}
%% back to previous value
\def\unlistparpenalty{
\@beginparpenalty=\prevparpenalty
}
%% array spanning the entire line
\def\largearray{\begin{array}{@{}>{\displaystyle}l@{}}\hphantom{\hspace{\textwidth}}\\[-.5cm]}
\def\endlargearray{\end{array}}