summaryrefslogtreecommitdiff
path: root/info/latex-for-undergraduates/alounsburymacros.sty
diff options
context:
space:
mode:
Diffstat (limited to 'info/latex-for-undergraduates/alounsburymacros.sty')
-rw-r--r--info/latex-for-undergraduates/alounsburymacros.sty633
1 files changed, 633 insertions, 0 deletions
diff --git a/info/latex-for-undergraduates/alounsburymacros.sty b/info/latex-for-undergraduates/alounsburymacros.sty
new file mode 100644
index 0000000000..39788e6ad4
--- /dev/null
+++ b/info/latex-for-undergraduates/alounsburymacros.sty
@@ -0,0 +1,633 @@
+% alounsburymacros.sty 1.0 2022/02/05
+% Andrew Lounsbury
+
+% This file was not generated from source code.
+% This software is contributed to the public domain.
+
+% Marking this file as a package
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{alounsburymacros}[2022/02/05 1.0 miscellaneous commands]
+
+% This allows commands that use things from these packages to work even if we
+% haven't put them in \usepackage{} in the preamble.
+\RequirePackage{forloop, mathrsfs, mathtools, nicefrac, xcolor}
+% Otherwise, we could list packages we often use to avoid having to include them
+% in the preamble of our tex files.
+%===================================================================================%
+% In other words, the use of \usepackage{} for packages other than alounsburymacros %
+% at the beginning of LaTeX_for_Undergraduates.tex is merely there for the sake of %
+% example. %
+%===================================================================================%
+\RequirePackage{amsmath, amsfonts, amssymb, amsthm, cancel, calligra, enumitem, fancyvrb, graphicx, pagecolor, pifont, suppose, totcount, upgreek, verbatim, verse}
+\RequirePackage{fontenc}
+\PassOptionsToPackage{T1}{fontenc}
+
+% GENERAL COMMANDS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% From enumitem package
+% Fixing indentation in enumerate and itemize environments
+\setlist{
+ listparindent=\parindent,
+ parsep=0pt,
+}
+
+% For <...> arguments in LaTeX_for_Undergraduates.tex
+\newcommand*{\opt}[1]{$\langle$\textit{#1}$\rangle$}
+
+% Troubleshooting
+\newcommand{\ee}{\end{enumerate}}
+\newcommand{\ed}{\end{document}}
+
+% LaTeX Workshop autocompletes \par to \paragraph{}, which gets annoying.
+\newcommand{\p}{\par}
+
+% Horizontal separator with option to add label
+\newcommand*{\hl}[1][\unskip]{%
+ \noindent\textbf{#1} \\%
+ \makebox{%
+ \rule[1.5ex]{0.75\paperwidth}{0.8pt}%
+ }%
+}
+
+% \renewcommand overrides a command that has already been defined.
+% In the proof environment, \qedsymbol defaults to a white square.
+% I prefer a black square, so I change it here.
+\renewcommand{\qedsymbol}{$\blacksquare$}
+% but these allow me to easily change it to other things
+\newcommand{\whiteqed}{\renewcommand{\qedsymbol}{$\square$}}
+\newcommand{\noqed}{\renewcommand{\qedsymbol}{}}
+
+% Environments -----------------------------------------------------------------
+% Creating \begin{...} \end{...} environments with a few defaults provided by
+% \newtheorem
+% * removes numbering
+% The first {} contains the name of the environment.
+% The second {} contains what will be displayed.
+\newtheorem{claim}{Claim} % numbered
+\newtheorem*{claim*}{Claim} % not numbered
+\newtheorem*{conjecture*}{Conjecture}
+\newtheorem{corollary}{Corollary}
+\newtheorem*{corollary*}{Corollary}
+\newtheorem{lemma}{Lemma}
+\newtheorem*{lemma*}{Lemma}
+\newtheorem{note}{Note}
+\newtheorem{problem}{Problem}
+\newtheorem{proposition}{Proposition}
+\newtheorem*{proposition*}{Proposition}
+\newtheorem{theorem}{Theorem}
+\newtheorem*{theorem*}{Theorem}
+
+\theoremstyle{definition} % removes italics from the following
+\newtheorem{case}{Case}
+\newtheorem{counterexample}{Counterexample}
+\newtheorem*{counterexample*}{Counterexample}
+\newtheorem{definition}{Definition}
+\newtheorem*{definition*}{Definition}
+\newtheorem{example}{Example}
+\newtheorem*{example*}{Example}
+\newtheorem{nonexample}{Non-Example}
+\newtheorem*{nonexample*}{Non-Example}
+\newtheorem*{fact*}{Fact}
+\newtheorem{notation}{Notation}
+\newtheorem*{notation*}{Notation}
+\theoremstyle{remark} % italicized title, upright text
+\newtheorem{remark}{Remark}
+\newtheorem*{remark*}{Remark}
+
+% Don't use these \newtheorem environments.
+% Use the \newenvironment's below.
+\newtheorem*{pfcases}{Proof by Cases}
+\newtheorem*{pfcontradiction}{Proof by Contradiction}
+\newtheorem*{pfcombinatorial}{Proof (Combinatorial)}
+\newtheorem*{pfcontrapositive}{Proof by Contrapositive}
+\newtheorem*{pfdirect}{Proof (Direct)}
+\newtheorem*{pfinduction}{Proof by Induction}
+% Proof environments with the technique specified
+\newenvironment*{pfca}
+ {\pushQED{\qed}\pfcases}
+ {\popQED\endpfcases}
+\newenvironment*{pfcd}
+ {\pushQED{\qed}\pfcontradiction}
+ {\popQED\endpfcontradiction}
+\newenvironment*{pfco}
+ {\pushQED{\qed}\pfcombinatorial}
+ {\popQED\endpfcombinatorial}
+\newenvironment*{pfcp}
+ {\pushQED{\qed}\pfcontrapositive}
+ {\popQED\endpfcontrapositive}
+\newenvironment*{pfd}
+ {\pushQED{\qed}\proof}
+ {\popQED\endpfdirect}
+\newenvironment*{pfi}
+ {\pushQED{\qed}\pfinduction}
+ {\popQED\endpfinduction}
+
+% Color-coded environments
+\definecolor{darkpastelgreen}{rgb}{0.01, 0.75, 0.24}
+\definecolor{ballblue}{rgb}{0.13, 0.67, 0.8}
+
+\theoremstyle{plain} % adds italics to the following
+\newtheorem*{cconjecture*}{\colorbox{orange}{Conjecture}}
+\newtheorem{ccorollary}{\colorbox{orange}{Corollary}}
+\newtheorem*{ccorollary*}{\colorbox{orange}{Corollary}}
+\newtheorem{clemma}{\colorbox{orange}{Lemma}}
+\newtheorem*{clemma*}{\colorbox{orange}{Lemma}}
+\newtheorem{cnote}{\colorbox{blue}{Note}}
+\newtheorem{cproposition}{\colorbox{pink}{Proposition}}
+\newtheorem*{cproposition*}{\colorbox{pink}{Proposition}}
+\newtheorem{ctheorem}{\colorbox{pink}{Theorem}}
+\newtheorem*{ctheorem*}{\colorbox{pink}{Theorem}}
+
+\theoremstyle{definition} % removes italics from the following
+\newtheorem{ccase}{Case}
+\newtheorem*{cfact*}{\colorbox{cyan}{Fact}}
+\newtheorem{cexample}{\colorbox{darkpastelgreen}{Example}}
+\newtheorem*{cexample*}{\colorbox{darkpastelgreen}{Example}}
+\newtheorem{cnonexample}{\colorbox{darkpastelgreen}{Non-Example}}
+\newtheorem*{cnonexample*}{\colorbox{red}{Non-Example}}
+\newtheorem*{cremark*}{\colorbox{cyan}{Remark}}
+%-----------------------------------------------------------------
+
+% For inductive proofs and recursive definitions
+\newcommand{\bc}{\textbf{\underline{Base case}: }}
+\newcommand{\ind}{\textbf{\underline{Induction step}: }}
+\newcommand{\basis}{\textbf{\underline{Basis}: }}
+\newcommand{\rec}{\textbf{\underline{Recursive step}: }}
+
+% Ways to avoid \text{} in display-math
+\newcommand{\as}{\text{ as}\ }
+\newcommand{\bec}{\text{ because}\ }
+\newcommand{\but}{\text{ but}\ }
+\newcommand{\const}{\text{ const}\ }
+\newcommand{\countable}{\text{ countable}\ }
+\newcommand{\each}{\text{ each}\ }
+\newcommand{\et}{\text{ and}\ }
+\newcommand{\for}{\text{ for}\ }
+\newcommand{\some}{\text{ some}\ }
+\newcommand{\fs}{\text{ for some}\ }
+\newcommand{\on}{\text{ on}\ }
+\newcommand{\ona}{\text{ on a}\ }
+\newcommand{\ow}{\text{o/w}\ } % otherwise
+\newcommand{\st}{\text{s.t.}\ } % such that
+\newcommand{\mst}{\text{ s.t.}\ } % math such that
+\newcommand{\ou}{\text{ or}\ }
+\renewcommand{\over}{\text{ over}\ }
+\newcommand{\so}{\text{ so}\ }
+\newcommand{\tms}{\text{ times}\ } % for \underbrace{...}_{n times}
+\newcommand{\undef}{\text{undef.}\ }
+\newcommand{\with}{\text{ with}\ }
+\newcommand{\where}{\text{ where}\ }
+\newcommand{\wrt}{\text{ with respect to}\ }
+
+% Things to stack on =, <, \le, etc.
+\newcommand{\lh}{\stackrel{\text{\tiny L'H}}} % L'Hôpital's Rule
+\newcommand{\pf}{\stackrel{\text{\tiny PF}}} % Pascal's Formula
+\newcommand{\ti}{\stackrel{\text{\tiny TI}}} % Triangle Inequality
+\newcommand{\one}{\stackrel{\text{\tiny \ensuremath{(1)}}}}
+\newcommand{\two}{\stackrel{\text{\tiny \ensuremath{(2)}}}}
+\newcommand{\three}{\stackrel{\text{\tiny \ensuremath{(3)}}}}
+
+% Black-board bold
+\newcommand{\C}{\mathbb{C}} % complex numbers
+\newcommand{\F}{\mathbf{F}} % bold F
+\newcommand{\N}{\mathbb{N}} % natural numbers
+\newcommand{\bP}{\mathbb{P}}
+\newcommand{\Q}{\mathbb{Q}} % etc.
+\newcommand{\R}{\mathbb{R}}
+\newcommand{\W}{\mathbb{W}}
+\newcommand{\Z}{\mathbb{Z}}
+
+% Miscellaneous
+\newcommand{\bs}{\boldsymbol}
+\newcommand{\f}{\frac} % \f{numerator}{denominator}
+\newcommand{\inv}{^{-1}}
+\newcommand*{\lcm}[1]{\mathrm{lcm}\left\{#1\right\}} % least common multiple
+\newcommand{\mbf}{\mathbf} % math bold face
+\newcommand*{\ol}[1]{\overline{#1}}
+\newcommand*{\ttt}[1]{\texttt{#1}}
+\newcommand*{\ul}[1]{\underline{#1}}
+\newcommand{\vn}{\varnothing}
+\newcommand{\wt}{\widetilde}
+
+% My notations
+\newcommand*{\msum}[3]{\sum\limits_{#1=#2}^{#3}} % my sum
+\newcommand*{\mprod}[3]{\prod\limits_{#1=#2}^{#3}} % my prod
+\newcommand*{\mcap}[3]{\cap_{#1=#2}^{#3}} % etc.
+\newcommand*{\mcup}[3]{\cup_{#1=#2}^{#3}}
+\newcommand*{\mbcap}[3]{\bigcap\limits_{#1=#2}^{#3}}
+\newcommand*{\mbcup}[3]{\bigcup\limits_{#1=#2}^{#3}}
+\newcommand*{\mset}[4]{\left\{#1\right\}_{#2=#3}^{#4}}
+% Default infinity for the upper bounds
+\newcommand*{\msumi}[2]{\msum{#1}{#2}{\infty}}
+\newcommand*{\mprodi}[2]{\mprod{#1}{#2}{\infty}}
+\newcommand*{\mcapi}[2]{\mcap{#1}{#2}{\infty}}
+\newcommand*{\mcupi}[2]{\mcup{#1}{#2}{\infty}}
+\newcommand*{\mbcapi}[2]{\mbcap{#1}{#2}{\infty}}
+\newcommand*{\mbcupi}[2]{\mbcup{#1}{#2}{\infty}}
+\newcommand*{\mseti}[3]{\mset{#1}{#2}{#3}{\infty}}
+
+\newcommand{\bcup}{\bigcup\limits}
+\newcommand{\bcap}{\bigcap\limits}
+\newcommand{\Int}{\int\limits}
+\newcommand{\Prod}{\prod\limits}
+\newcommand{\Sum}{\sum\limits}
+
+% Package-specific
+\newcommand{\nf}{\nicefrac} % nicefrac
+\newcommand{\cmark}{\ding{51}\ } % pifont
+\newcommand{\xmark}{\ding{55}\ }
+\newcommand*{\cb}[2]{\colorbox{#1}{#2}} % xcolor
+\newcommand*{\cbr}[1]{\colorbox{red}{#1}}
+\newcommand{\cbg}{\cb{darkpastelgreen}}
+\newcommand*{\cby}[1]{\colorbox{yellow}{#1}}
+\newcommand*{\tc}[2]{\textcolor{#1}{#2}}
+\newcommand*{\tcb}[1]{\textcolor{blue}{#1}}
+\newcommand{\tcg}{\tc{darkpastelgreen}}
+\newcommand*{\tcr}[1]{\textcolor{red}{#1}}
+% math mode
+\newcommand*{\mcb}[2]{\colorbox{#1}{$#2$}}
+\newcommand*{\mcbb}[1]{\colorbox{blue}{$#1$}}
+\newcommand*{\mcbr}[1]{\colorbox{red}{$#1$}}
+\newcommand*{\mcby}[1]{\colorbox{yellow}{$#1$}}
+\newcommand*{\mtc}[2]{\textcolor{#1}{$#2$}}
+\newcommand*{\mtcb}[1]{\textcolor{blue}{$#1$}}
+\newcommand*{\mtcr}[1]{\textcolor{red}{$#1$}}
+\DeclareOption{b}{
+ \pagecolor{black}
+ \color{white}
+}
+\DeclareOption*{\PackageWarning{alounsburymacros}{Unknown '\CurrentOption'}}
+\ProcessOptions\relax
+
+%--------------------------------------------------------------------------
+% Polish notation for responsive block delimiters
+\newcommand*{\abs}[1]{\left\lvert#1\right\rvert} % absolute value
+\newcommand*{\ceil}[1]{\left\lceil#1\right\rceil} % ceiling
+\newcommand*{\floor}[1]{\left\lfloor#1\right\rfloor} % floor
+\newcommand*{\mang}[1]{\left<#1\right>} % my angle bracket
+\newcommand*{\mbrack}[1]{\left[#1\right]} % my bracket
+\newcommand*{\mpar}[1]{\left(#1\right)} % my parentheses
+\newcommand*{\norm}[1]{\left\lVert#1\right\rVert} % norm
+
+\newcommand*{\bpar}[1]{\boldsymbol(#1\boldsymbol)}
+
+% \Mid is a very useful extensible \mid from the mathtools documentation
+% (originally \given)
+% just to make sure it exists
+\providecommand\Mid{}
+% can be useful to refer to this outside \set
+\newcommand\SetSymbol[1][]{%
+ \nonscript\:#1\vert%
+ \allowbreak%
+ \nonscript\:%
+ \mathopen{}%
+}
+\DeclarePairedDelimiterX{\set}[1]\{\}{%
+ \renewcommand\Mid{\SetSymbol[\delimsize]}%
+ #1%
+}
+%-------------------------------------------------------------------------
+
+% ALGEBRA
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\renewcommand{\O}{\mathcal{O}}
+
+% ALGEBRAIC GEOMETRY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\V}{\mathbf{V}}
+\newcommand{\I}{\mathbf{I}}
+\newcommand{\Va}{\V_a}
+\newcommand{\Ia}{\I_a}
+\newcommand*{\VaI}[1]{\V_a(\I(#1))}
+\newcommand*{\IaV}[1]{\I_a(\V(#1))}
+\newcommand*{\VI}[1]{\V(\I(#1))}
+\newcommand*{\IV}[1]{\I(\V(#1))}
+
+% Polynomial rings
+\newcommand{\kx}{k[x]}
+\newcommand{\ky}{k[y]}
+\newcommand{\kz}{k[z]}
+\newcommand{\kxy}{k[x,y]}
+\newcommand{\kxz}{k[x,z]}
+\newcommand{\kyz}{k[y,z]}
+\newcommand{\kxyz}{k[x,y,z]}
+\newcommand{\ring}{k[x_1,\dots,x_n]}
+\newcommand{\ringz}{k[x_0,\dots,x_n]}
+\newcommand{\Izero}{\left<x_0,\dots,x_n\right>}
+
+% Polynomial rings over projective space
+\newcommand*{\pring}[2]{\bP^{#1}(#2)}
+\newcommand{\ptwok}{\bP^2(k)}
+\newcommand{\pnk}{\bP^n(k)}
+\newcommand{\por}{\bP^1(\R)}
+\newcommand{\ptwor}{\bP^2(\R)}
+\newcommand{\pthr}{\bP^3(\R)}
+\newcommand{\pnr}{\bP^n(\R)}
+
+\newcommand{\gln}{\mathrm{GL}(n,k)}
+\DeclareMathOperator{\lm}{LM} % leading monomial
+\DeclareMathOperator{\lt}{LT} % leading term
+\DeclareMathOperator{\lc}{LC} % leading coefficient
+\DeclareMathOperator{\md}{multideg} % degree for multivariate polynomial
+
+% CALCULUS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\A}{\mathcal{A}} % an algebra of functions
+\newcommand{\va}{\scalebox{1.5}{$a$}} % variation of \A
+\newcommand{\ab}{[a,b]}
+\newcommand{\ar}{\mathscr{R}}
+\newcommand{\ara}{\mathscr{R}(\alpha)}
+\newcommand{\arr}{\mathcal{R}}
+\newcommand{\B}{\mathcal{B}}
+\DeclareMathOperator{\bd}{\mathrm{bd}}
+\newcommand{\bdd}{bounded\ }
+\DeclareMathOperator{\diam}{diam}
+\newcommand{\E}{\mathcal{E}}
+\newcommand{\ef}{\mathscr{F}}
+\DeclareMathOperator{\ext}{\mathrm{ext}}
+\newcommand{\fsc}{finite subcover\ }
+\DeclareMathOperator{\intr}{\mathrm{int}}
+\renewcommand{\L}{\mathscr{L}}
+\newcommand{\M}{\mathfrak{M}}
+\newcommand{\nbd}{neighborhood\ }
+\newcommand{\U}{\mathscr{U}}
+\newcommand{\oo}{[0,1]}
+\newcommand{\seq}{(x_n)_{n=1}^\infty}
+\newcommand{\seqf}{\bs(f_n(x)\bs)_{n=1}^\infty}
+\newcommand{\spc}{(X,\tau)}
+
+\newcommand{\duh}{Let $(X,d)$ be a metric space. }
+
+% Linear algebra
+\newcommand{\boldf}{\bs{\mathrm{f}}}
+\newcommand{\Cdot}{\bs{\cdot}}
+\newcommand*{\mvec}[1]{\bs{\mathrm{#1}}} % my vector
+\newcommand{\e}{\bs{\mathrm{e}}}
+\newcommand{\h}{\bs{\mathrm{h}}}
+\newcommand{\x}{\bs{\mathrm{x}}}
+\newcommand{\y}{\bs{\mathrm{y}}}
+\newcommand{\z}{\bs{\mathrm{z}}}
+\newcommand{\vf}{\vec{f}}
+\newcommand{\vfp}{\vec{f'}}
+\newcommand{\vphi}{\vec{\phi}}
+
+% Greek letters
+\renewcommand{\a}{\alpha}
+\renewcommand{\b}{\beta}
+\newcommand{\D}{\Delta}
+\newcommand{\Da}{\Delta\alpha}
+\newcommand{\Dx}{\Delta x}
+\newcommand{\ve}{\varepsilon}
+\newcommand{\vp}{\varphi}
+\newcommand{\vr}{\varrho}
+
+% Limits
+\newcommand*{\mlim}[1]{\lim\limits_{#1}} % my limit
+\newcommand{\Lim}{\lim\limits}
+\newcommand{\Limsup}{\limsup\limits}
+\newcommand{\Liminf}{\liminf\limits}
+\newcommand{\limi}{\ul{\Lim}\ } % alternative liminf
+\newcommand{\lims}{\ol\Lim\ } % alternative limsup
+\newcommand{\Max}{\max\limits}
+\newcommand{\Min}{\min\limits}
+
+\newcommand{\Inf}{\inf\limits}
+\newcommand{\Sup}{\sup\limits}
+\newcommand*{\minf}[1]{\Inf_{#1}}
+\newcommand*{\msup}[1]{\Sup_{#1}}
+
+\newcommand*{\mto}[2]{#1\to#2} % my to
+\newcommand*{\mtoi}[1]{\mto{#1}{\infty}}
+\newcommand{\nti}{\mtoi{n}}
+\newcommand{\ttx}{\mto{t}{x}}
+\newcommand{\xti}{\mtoi{x}}
+
+\newcommand{\pto}{\xrightarrow{\text{\tiny PW}}} % pointwise convergence
+\newcommand{\uto}{\xrightarrow{\text{unif}}} % uniform convergence
+
+% Derivatives
+\newcommand*{\dif}[1]{\,d#1}
+\newcommand{\da}{\,d\alpha}
+\newcommand{\dx}{\,dx}
+\newcommand{\dy}{\,dy}
+\newcommand{\dz}{\,dz}
+\newcommand{\dxy}{\,dxdy}
+\newcommand{\dxz}{\,dxdz}
+\newcommand{\dyz}{\,dydz}
+\newcommand{\dxyz}{\,dxdydz}
+\newcommand{\dt}{\,dt}
+\newcommand{\du}{\,du}
+\newcommand{\dv}{\,dv}
+
+\newcommand*{\dd}[2]{\f{d#1}{d#2}}
+\newcommand*{\mdd}[2]{\f{d^{#1}}{d#2^{#1}}}
+\newcommand{\ddx}{\f{d}{dx}}
+\newcommand{\ddy}{\f{d}{dy}}
+\newcommand{\ddz}{\f{d}{dz}}
+\newcommand{\del}{\partial}
+\newcommand*{\mdel}[2]{\f{\partial#1}{\partial#2}}
+\newcommand*{\delx}[1]{\f{\partial#1}{\parial x}}
+\newcommand*{\dely}[1]{\f{\partial#1}{\partial y}}
+\newcommand*{\delz}[1]{\f{\partial#1}{\partial z}}
+\newcommand{\Del}{\nabla}
+
+% Integrals
+\newcommand*{\mint}[2]{\int\limits_{#1}^{#2}} % my integral
+\newcommand{\mab}{\mint{a}{b}}
+\newcommand*{\lint}[2]{\mint{\underline{#1}}{#2}} % lower Rieman integral
+\newcommand{\lab}{\lint{a}{b}}
+\newcommand*{\uint}[2]{\mint{#1}{\ol{#2}}} % upper
+\newcommand{\uab}{\uint{a}{b}}
+
+\newcommand*{\dint}[2]{\displaystyle\int_{#1}^{#2}} % display integral (no \limits)
+\newcommand{\dab}{\dint{a}{b}}
+\newcommand*{\dlint}[2]{\dint{\underline{#1}}{#2}}
+\newcommand{\dlab}{\dlint{a}{b}}
+\newcommand*{\duint}[2]{\dint{#1}{\ol{#2}}}
+\newcommand{\duab}{\duint{a}{b}}
+
+\newcommand*{\Lint}[2]{\int\limits_{\underline{#1}}^{#2}}
+\newcommand{\Lab}{\Lint{a}{b}}
+\newcommand*{\Uint}[2]{\int\limits_{#1}^{\ol{#2}}}
+\newcommand{\Uab}{\Uint{a}{b}}
+
+% Default upper bound of infinity
+\newcommand*{\dinti}[1]{\dint{#1}{\infty}} % display integral (no \limits)
+\newcommand*{\minti}[1]{\mint{#1}{\infty}}
+
+\newcommand{\pint}{\mint{0}{1}} % probability integral
+\newcommand{\piint}{\mint{0}{1}\mint{0}{1}}
+\newcommand{\piiint}{\mint{0}{1}\mint{0}{1}\mint{0}{1}}
+\newcommand{\dpint}{\dint{0}{1}}
+\newcommand{\dpiint}{\dint{0}{1}\dint{0}{1}}
+\newcommand{\dpiiint}{\dint{0}{1}\dint{0}{1}\dint{0}{1}}
+
+% GEOMETRY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\ang}{\measuredangle}
+\newcommand{\dg}{^\circ}
+\newcommand{\lin}[1]{\overleftrightarrow{#1}}
+\newcommand{\ray}[1]{\overrightarrow{#1}}
+\newcommand{\seg}[1]{\overline{#1}}
+\newcommand{\sq}{\square}
+\newcommand{\tr}[1]{\triangle{#1}}
+
+% LINEAR ALGEBRA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\Ell}{\mathcal{L}}
+\newcommand{\Pol}{\mathcal{P}}
+\DeclareMathOperator{\Col}{\mathrm{Col}}
+\DeclareMathOperator{\Null}{Null}
+\DeclareMathOperator{\rank}{\mathrm{rank}}
+\DeclareMathOperator{\Row}{\mathrm{Row}}
+\DeclareMathOperator{\spn}{\mathrm{span}}
+% row vectors
+\newcommand*{\onevec}[1]{\left[\begin{matrix}\hfill#1\end{matrix}\right]}
+\newcommand*{\twovec}[2]{\left[\begin{matrix}\hfill#1\\\hfill#2\end{matrix}\right]}
+\newcommand*{\threevec}[3]{\left[\begin{matrix}\hfill#1\\\hfill#2\\\hfill#3\end{matrix}\right]}
+\newcommand*{\fourvec}[4]{\left[\begin{array}{c}#1\\#2\\#3\\#4\end{array}\right]}
+\newcommand*{\fivevec}[5]{\left[\begin{matrix}\hfill#1\\\hfill#2\\\hfill#3\\\hfill#4\\\hfill#5\end{matrix}\right]}
+\newcommand*{\twovecex}[2]{\left[\begin{matrix}\hfill#1\\[0.5ex]\hfill#2\end{matrix}\right]}
+\newcommand*{\threevecex}[3]{\left[\begin{matrix}\hfill#1\\[0.5ex]\hfill#2\\[0.5ex]\hfill#3\end{matrix}\right]}
+\newcommand*{\fourvecex}[4]{\left[\begin{matrix}\hfill#1\\[0.5ex]\hfill#2\\[0.5ex]\hfill#3\\[0.5ex]\hfill#4\end{matrix}\right]}
+% centered column vectors
+\newcommand*{\onevecc}[1]{\left[\begin{matrix}#1\end{matrix}\right]}
+\newcommand*{\twovecc}[2]{\left[\begin{matrix}#1\\#2\end{matrix}\right]}
+\newcommand*{\threevecc}[3]{\left[\begin{matrix}#1\\#2\\#3\end{matrix}\right]}
+\newcommand*{\fourvecc}[4]{\left[\begin{matrix}#1\\#2\\#3\\#4\end{matrix}\right]}
+\newcommand*{\fivevecc}[5]{\left[\begin{matrix}#1\\#2\\#3\\#4\\#5\end{matrix}\right]}
+\newcommand*{\threeveccex}[3]{\left[\begin{matrix}#1\\[0.5ex]#2\\[0.5ex]#3\end{matrix}\right]}
+\newcommand*{\fourveccex}[4]{\left[\begin{matrix}#1\\[0.5ex]#2\\[0.5ex]#3\\[0.5ex]#4\end{matrix}\right]}
+% row vectors
+\newcommand*{\onerowvec}[1]{\left[\begin{matrix}\hfill#1\end{matrix}\right]}
+\newcommand*{\tworowvec}[2]{\left[\begin{matrix}\hfill#1&\hfill#2\end{matrix}\right]}
+\newcommand*{\threerowvec}[3]{\left[\begin{matrix}\hfill#1&\hfill#2&\hfill#3\end{matrix}\right]}
+\newcommand*{\fourrowvec}[4]{\left[\begin{matrix}\hfill#1&\hfill#2&\hfill#3&\hfill#4\end{matrix}\right]}
+\newcommand*{\fiverowvec}[5]{\left[\begin{matrix}\hfill#1&\hfill#2&\hfill#3&\hfill#4&\hfill#5\end{matrix}\right]}
+% n-tuples
+\newcommand*{\onetuple}[1]{(#1)}
+\newcommand*{\twotuple}[2]{(#1,#2)}
+\newcommand*{\threetuple}[3]{(#1,#2,#3)}
+\newcommand*{\fourtuple}[4]{(#1,#2,#3,#4)}
+\newcommand*{\fivetuple}[5]{(#1,#2,#3,#4,#5)}
+\newcommand*{\ntuple}[2]{(#1_1,\ldots,#1_#2)}
+\newcommand*{\listz}[2]{#1_0,\ldots,#1_#2}
+\newcommand*{\listo}[2]{#1_1,\ldots,#1_#2}
+% square numeric matrices
+\newcommand*{\onebyone}[1]{\left[\begin{matrix}\hfill#1\end{matrix}\right]}
+\newcommand*{\twobytwo}[4]{\left[\begin{matrix}\hfill#1&\hfill#2\\\hfill#3&\hfill#4\end{matrix}\right]}
+\newcommand*{\threebythree}[9]{\left[\begin{matrix}\hfill#1&\hfill#2&\hfill#3\\\hfill#4&\hfill#5&\hfill#6\\\hfill#7&\hfill#8&\hfill#9\end{matrix}\right]}
+% square numeric determinants
+\newcommand*{\onebyonev}[1]{\begin{vmatrix}#1\end{vmatrix}}
+\newcommand*{\twobytwov}[4]{\begin{vmatrix}#1&#2\\#3&#4\end{vmatrix}}
+\newcommand*{\threebythreev}[9]{\begin{vmatrix}#1&#2&#3\\#4&#5&#6\\#7&#8&#9\end{vmatrix}}
+% augmented matrices
+\newcommand*{\augmented}[2]{\left[#1\mid#2\right]}
+\newcommand*{\augtwo}[2]{\left[\begin{array}{r|r}#1&#2\end{array}\right]}
+% \newcommand*{\augtwo}[2]{\left[#1\mid#2\right]}
+\newcommand*{\augthree}[3]{\left[\begin{array}{r|r|r}#1&#2&#3\end{array}\right]}
+\newcommand*{\augfour}[4]{\left[\begin{array}{r|r|r|r}#1&#2&#3&#4\end{array}\right]}
+%--------------------------------------------------------------------------
+% column vectors with row separation
+\newcommand*{\fourvectorchline}[4]{\left[\begin{array}{ccc}&#1&\\[0.5ex]\hline&#2&\\[0.5ex]\hline&#3&\\[0.5ex]\hline&#4\end{array}\right]}
+
+% LOGIC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% contradiction
+\newcommand{\contra}{\ensuremath{\rightarrow\mspace{-2.5mu}\leftarrow}}
+\newcommand{\ex}{\exists}
+\newcommand{\fall}{\forall}
+\newcommand{\fa}{\,\forall}
+% forward implication
+\newcommand{\fim}{%
+ \mbox{
+ $\bs(%
+ \mspace{-10.5mu}%
+ \bs\implies%
+ \mspace{-12mu}%
+ \bs)$\ %
+ }
+}
+% backward implication
+\newcommand{\bim}{\mbox{$\bs(\mspace{-12mu}\bs\impliedby\mspace{-10.5mu}\bs)$\ }}
+% forward inclusion
+\newcommand{\fsub}{$\bs(\mspace{-5mu}\bs\subseteq\mspace{-5mu}\bs)$\ }
+% backward inclusion
+\newcommand{\bsub}{$\bs(\mspace{-5mu}\bs\supseteq\mspace{-5mu}\bs)$\ }
+\newcommand{\sland}{\;\land\;} % space logical and
+\newcommand{\slor}{\,\lor\, } % space logical or
+\newcommand{\tf}{\therefore\,} % I sometimes prefer a little space after this.
+
+\newcommand{\bij}{\longleftrightarrow} % bijection
+\newcommand{\varbij}{\hookrightarrow\hspace{-8pt}\rightarrow}
+\newcommand{\inj}{\rightarrowtail} % one-to-one
+\newcommand{\varinj}{\hookrightarrow}
+\newcommand{\onto}{\twoheadrightarrow}
+\newcommand{\Ra}{\Rightarrow} % short implies
+\newcommand{\ra}{\rightarrow} % alternate implication
+
+\newcommand*{\mneg}[1][1]{ % my (alternative) negation
+ \mspace{-5mu}%
+ \setcounter{i}{0}%
+ \forloop{i}{0}{\value{i}<#1}%
+ {%
+ \sim%
+ }%
+ \mspace{-5mu}%
+}
+\newcommand{\n}{\neg} % negation
+\newcommand{\s}{\sim\mspace{-5mu}} % alternative negation
+\newcommand{\vd}{\vdash} % proves
+\newcommand{\proves}{\vd}
+\newcommand{\vdd}{\vDash} % satisfies
+\newcommand{\satisfies}{\vdd}
+
+\newcommand{\nec}{\scalebox{0.75}{$\square$}} % necessarily
+\newcommand{\poss}{\scalebox{1.25}{$\diamond$}} % possibly
+
+\newcommand{\fA}{\mathfrak{A}}
+\newcommand{\fB}{\mathfrak{B}}
+\newcommand{\fN}{\mathfrak{N}}
+\newcommand{\is}{\text{ is\ }}
+\newcommand{\isnt}{\text{ is not\ }}
+\newcommand{\IFF}{\text{ iff\ }}
+\newcommand{\sbar}{\ol{s}}
+
+% PDE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\dtau}{\,d\tau}
+
+% Ditto marks
+%====================================================================================
+% ditto
+\newcommand{\dit}{%
+ \quad\scalebox{0.75}{\ensuremath{\prime\prime}}\quad%
+}
+\newcommand{\ditt}{\dit\dit}
+\newcommand{\dittt}{\ditt\dit}
+\newcommand{\ditttt}{\ditt\ditt}
+% sparse ditto
+\newcommand{\sdit}{\qquad\scalebox{0.75}{\ensuremath{\prime\prime}}\qquad}
+\newcommand{\sditt}{\sdit\sdit}
+\newcommand{\sdittt}{\sditt\sdit}
+\newcommand{\sditttt}{\sditt\sditt}
+% dense ditto
+\newcommand{\ddit}{$\mspace{9mu}$\scalebox{0.75}{\ensuremath{\prime\prime}}$\mspace{9mu}$}
+\newcommand{\dditt}{\ddit\ddit}
+\newcommand{\ddittt}{\dditt\ddit}
+\newcommand{\dditttt}{\dditt\dditt}
+
+% For loops
+\newcounter{i}
+\newcommand*{\mdit}[1][1]{% my ditto; invoked as \mdit[n] for n ditto marks
+ \forloop{i}{0}{\value{i} < #1}%
+ {%
+ \dit%
+ }%
+}
+% my sparse ditto
+\newcommand*{\msdit}[1][1]{\forloop{i}{0}{\value{i}<#1}{\sdit}}
+% my dense ditto
+\newcommand*{\mddit}[1][1]{\forloop{i}{0}{\value{i}<#1}{\ddit}}
+
+% VERSE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\attrib}[1]{\nopagebreak{\raggedleft\footnotesize#1\par}\ }
+
+\newcommand{\dinkus}{%
+ \begin{center}%
+ \textbf{***}\vspace{-0.25cm}%
+ \end{center}%
+} \ No newline at end of file