% Only the most commonly-used macros. Needed by everything else.
%
-\usepackage{mathtools}
-
% Place the argument in matching left/right parntheses.
-\DeclarePairedDelimiter{\of}{ \lparen }{ \rparen }
+\providecommand*{\of}[1]{ \left( {#1} \right) }
% Group terms using parentheses.
-\newcommand*{\qty}[1]{ \left\lparen {#1} \right\rparen }
+\providecommand*{\qty}[1]{ \left( {#1} \right) }
+
+% Group terms using square brackets.
+\providecommand*{\sqty}[1]{ \left[ {#1} \right] }
% Create a set from the given elements
-\DeclarePairedDelimiter{\set}{ \lbrace }{ \rbrace }
+\providecommand*{\set}[1]{ \left\lbrace {#1} \right\rbrace }
% A set comprehension, where the ``such that...'' bar is added
% automatically. The bar was chosen over a colon to avoid ambiguity
% with the L : V -> V notation. We can't leverage \set here because \middle
% needs \left and \right present.
-\newcommand*{\setc}[2]{ \left\lbrace {#1}\ \middle|\ {#2} \right\rbrace }
+\providecommand*{\setc}[2]{ \left\lbrace {#1}\ \middle|\ {#2} \right\rbrace }
% A pair of things.
-\DeclarePairedDelimiterX{\pair}[2]{ \lparen }{ \rparen}{ {#1}, {#2} }
+\providecommand*{\pair}[2]{ \left( {#1}, {#2} \right) }
+
+%
+% Product spaces
+%
+% All of the product spaces (for example, R^n) that follow default to
+% an exponent of ``n'', but that exponent can be changed by providing
+% it as an optional argument. If the exponent given is ``1'', then it
+% will be omitted entirely.
+%
+
+% The integral n-space, Z x Z x Z x ... x Z.
+\providecommand*{\Zn}[1][n]{
+ \mathbb{Z}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi
+}
+
+% The rational n-space, Q x Q x Q x ... x Q.
+\providecommand*{\Qn}[1][n]{
+ \mathbb{Q}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi
+}
+
+% The real n-space, R x R x R x ... x R.
+\providecommand*{\Rn}[1][n]{
+ \mathbb{R}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi
+}
+
+% The complex n-space, C x C x C x ... x C.
+\providecommand*{\Cn}[1][n]{
+ \mathbb{C}\if\detokenize{#1}\detokenize{1}{}\else^{#1}\fi
+}