99 lines
2.9 KiB
TeX
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
|
|
}
|