Files
LithosAnanake/docs/formal/common/preamble.tex
T

99 lines
2.9 KiB
TeX

%% common/preamble.tex — shared preamble for all three formal volumes
%% SOURCE: docs/formal/CLAUDE.md (authoring conventions)
%% Do NOT include this file directly. Each volume's main.tex does:
%% \input{../common/preamble}
\documentclass[11pt,a4paper,twoside]{book}
%% --- Packages ---
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{xcolor}
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{natbib}
\geometry{a4paper, top=25mm, bottom=25mm, inner=30mm, outer=20mm}
%% --- Theorem environments ---
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{definition}{Definition}[chapter]
\newtheorem{claim}{Claim}[chapter]
%% --- Code listings ---
\lstset{
basicstyle=\ttfamily\small,
breaklines=true,
frame=single,
numbers=left,
numberstyle=\tiny,
xleftmargin=2em
}
%% Custom language definitions (not built into listings)
\lstdefinelanguage{Forth}{
morekeywords={IF,ELSE,THEN,DO,LOOP,BEGIN,UNTIL,WHILE,REPEAT,
DUP,DROP,SWAP,ROT,OVER,NIP,TUCK,
AND,OR,XOR,INVERT,LSHIFT,RSHIFT,
VARIABLE,CONSTANT,CREATE,DOES>,
EMIT,KEY,TYPE,CR,SPACE,ACCEPT,
INCLUDE,LOAD,THRU,FLUSH,
BYE,ABORT,S\",.\(,
WORD-ENTROPY,PHYSICS-FREEZE,PHYSICS-THAW,
ACL-GRANT,ACL-REVOKE,ACL-PIN,ACL-TTL,
EXEC,CAPSULE-LOAD},
morecomment=[l]{\ },
morecomment=[l]{(},
morestring=[b]",
sensitive=false
}
\lstalias{forth}{Forth}
\lstdefinelanguage{R}{
morekeywords={function,if,else,for,while,return,library,require,
TRUE,FALSE,NULL,NA,Inf,NaN,
data.frame,list,vector,matrix,array,
read.csv,write.csv,ggplot,aov,lm,summary},
morecomment=[l]{\#},
morestring=[b]",
morestring=[b]',
sensitive=true
}
\lstdefinelanguage{Isabelle}{
morekeywords={theory,begin,end,theorem,lemma,proof,qed,by,apply,
definition,fun,datatype,type_synonym,
fixes,assumes,shows,where,let,have,thus,hence,
moreover,ultimately,from,with,simp,auto,blast,
induction,case,next,sledgehammer},
morecomment=[l]{--},
morecomment=[s]{(*}{*)},
morestring=[b]",
sensitive=true
}
\lstalias{isabelle}{Isabelle}
%% --- Notation ---
% Q48.16 fixed-point type (usable in both text and math mode)
\newcommand{\Qtype}{\ensuremath{\mathbb{Q}_{48.16}}}
% Thermodynamic proxy label (usable in both text and math mode)
\newcommand{\heat}{\ensuremath{\mathit{heat}}}
% Feedback loop reference (\loop is a LaTeX primitive — use \loopref)
\newcommand{\loopref}[1]{\textsf{Loop~\##1}}
%% --- Hyperref setup ---
\hypersetup{
colorlinks=true,
linkcolor=blue!60!black,
citecolor=green!50!black,
urlcolor=blue!60!black
}