]> gitweb.michael.orlitzky.com - mjotex.git/commitdiff
Wrap all mjotex files in conditionals to prevent double-loading.
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 15 Sep 2019 20:16:08 +0000 (16:16 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 15 Sep 2019 20:16:08 +0000 (16:16 -0400)
I plan to start putting glossary entries in mjo-common, and that
reveals a problem: some files (i.e. mjo-common.tex) get loaded more
than once. And there's not always a way to ignore the duplicate
definitions. So, finally, after avoiding it for as long as possible,
I've wrapped everything in "ifx" tests that check the value of a
macro I define (just like #ifdef HAVE_FOO in C).

The \ifx test was chosen over of \ifdefined (which is an e-TeX
primitive) because it makes the conditional simpler; we don't need to
have an empty "if" block. Of course, testing against \undefined only
works if \undefined is... undefined. But theoretically someone could
probably redefine \ifdefined, too. Whatever. I can change it if it
ever causes a problem.

17 files changed:
mjo-algebra.tex
mjo-algorithm.tex
mjo-arrow.tex
mjo-calculus.tex
mjo-common.tex
mjo-complex.tex
mjo-cone.tex
mjo-convex.tex
mjo-eja.tex
mjo-font.tex
mjo-linear_algebra.tex
mjo-listing.tex
mjo-misc.tex
mjo-proof_by_cases.tex
mjo-theorem-star.tex
mjo-theorem.tex
mjo-topology.tex

index 010ab0512a5b719aeafdc40283eebff3b969b89c..88523456235e4bde91b99d9f99f1fcd41280588c 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Abstract algebraic structures.
 %
+\ifx\havemjoalgebra\undefined
+\def\havemjoalgebra{1}
+
 
 % Needed for \operatorname.
 \usepackage{amsopn}
@@ -15,3 +18,6 @@
 % coefficients is the first argument and whose indeterminates (a
 % comma-separated list) are the second argumnt.
 \newcommand*{\polyring}[2]{{#1}\left[{#2}\right]}
+
+
+\fi
index 25b396c5d24113c2e2515ad9b6f0f7f85a744953..cef0e89f67988659217f0302308580dea6b0b08d 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Good looking algorithm environments.
 %
+\ifx\havemjoalgorithm\undefined
+\def\havemjoalgorithm{1}
+
 
 % algorithmicx, for the, uh, algorithms.
 \usepackage{algpseudocode}
@@ -14,3 +17,6 @@
 \usepackage{algorithm}
 
 \algrenewcommand{\algorithmiccomment}[1]{/\!/ {#1}}
+
+
+\fi
index 8b44ded1753eb175124ed71fa73ad4e5ec9b35e5..4dd5f88bc6053dd224dd3c7b138ff757c78fe301 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Things dealing with arrows in a category. Or functions, basically.
 %
+\ifx\havemjoarrow\undefined
+\def\havemjoarrow{1}
+
 
 \input{mjo-common}
 
@@ -16,3 +19,6 @@
 
 % The preimage of the second argument (a set) under the first (a function).
 \newcommand*{\preimage}[2]{ #1^{-1}\of{#2} }
+
+
+\fi
index c162d34205797074f62e66dcdb101712dfba78e1..fbc9bfe08b2f0aebd1a878cfff8b217f38bba064 100644 (file)
@@ -1,3 +1,10 @@
+\ifx\havemjocalculus\undefined
+\def\havemjocalculus{1}
+
+
 % The gradient of its argument, which should be a function from R^n to
 % R (or maybe some other field).
 \newcommand*{\gradient}[1]{ \nabla{{#1}} }
+
+
+\fi
index 7b6280b245233c9ae8928e2e480a05777e312b51..8ead1233ece6d100f632c6f390d391d7bd957142 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Only the most commonly-used macros. Needed by everything else.
 %
+\ifx\havemjocommon\undefined
+\def\havemjocommon{1}
+
 
 % Needed for \mathbb.
 \usepackage{amsfonts}
 \providecommand*{\intervaloc}[2]{ \left({#1},{#2}\right] } % open-closed
 \providecommand*{\intervalco}[2]{ \left[{#1},{#2}\right) } % closed-open
 \providecommand*{\intervalcc}[2]{ \left[{#1},{#2}\right] } % closed-closed
+
+
+\fi
index 23d440f497f3de367354e7d7bebc86a433773d8f..25c6872ae21898fa213770a6cbef0bd92af8868c 100644 (file)
@@ -1,4 +1,10 @@
 % Operations used when dealing with complex numbers.
+\ifx\havemjocomplex\undefined
+\def\havemjocomplex{1}
+
 
 % The complex conjugate of its argument.
 \providecommand*{\compconj}[1]{ \overline{#1} }
+
+
+\fi
index dad432e76b46025182de3c9f808103f54ada6d29..35edc8e0199a34212a23011a15ef77ce2b9df2e9 100644 (file)
@@ -4,6 +4,9 @@
 % The operator families Z(K), LL(K), etc. can technically be defined on
 % sets other than cones, but nobody cares.
 %
+\ifx\havemjocone\undefined
+\def\havemjocone{1}
+
 
 \usepackage{amssymb} % \succcurlyeq and friends
 
@@ -67,3 +70,6 @@
 \newcommand*{\gtcone}{\succ}
 \newcommand*{\lecone}{\preccurlyeq}
 \newcommand*{\ltcone}{\prec}
+
+
+\fi
index a51011f4613ef1e0635d4f73e2b567b2afd3e598..dfc282213908c28028b8d018474de6b19a368555 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Operations that usually appear in convex optimization.
 %
+\ifx\havemjoconvex\undefined
+\def\havemjoconvex{1}
+
 
 % Needed for \operatorname.
 \usepackage{amsopn}
@@ -28,3 +31,6 @@
 % The "is a face of" and "is a proper face of" relations.
 \newcommand*{\faceof}{ \trianglelefteq }
 \newcommand*{\properfaceof}{ \triangleleft }
+
+
+\fi
index 0408beae0c2249f7e98ca97b326687f1ee0d9653..b6974be8da9dff720b7817594d1b46a4d49482db 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Euclidean Jordan algebras.
 %
+\ifx\havemjoeja\undefined
+\def\havemjoeja{1}
+
 
 % The jordan product of its two arguments.
 %
@@ -18,3 +21,6 @@
 % into its own LaTeX file; we probably wouldn't want to use \circ as
 % a (bilinear) algebra multiplication in any other context.
 \newcommand*{\jp}[2]{{#1} \circ {#2}}
+
+
+\fi
index fda3c0880450444ba1ed663a40b3564c75afb8d8..c6675f3bc8b93058c489ab0eafcc04962adcf0e1 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Font handling that you probably want to use everywhere.
 %
+\ifx\havemjofont\undefined
+\def\havemjofont{1}
+
 
 % Allow arbitrary font sizes (prevents pdflatex warnings).
 \usepackage{lmodern}
@@ -11,3 +14,6 @@
 
 % Grab the AMS fonts, too, for things like \mathbb.
 \usepackage{amsfonts}
+
+
+\fi
index 5c3f715744b14db7b4984b063952f02ba5ac530e..d423a433e65030774141eac013cf95bbea2a1aa4 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Standard operations from linear algebra.
 %
+\ifx\havemjolinearalgebra\undefined
+\def\havemjolinearalgebra{1}
+
 
 % Needed for \lvert, \rVert, etc. and \operatorname.
 \usepackage{amsmath}
 
 % Now declare an orthogonal direct sum in terms of \oplusperp.
 \newcommand*{\directsumperp}[2]{ {#1}\oplusperp{#2} }
+
+
+\fi
index f733be6b4c5d8179e317859b6d3e5735d9699ae2..f898aba13ea886be03258fea0bfc61dd1ee72dd9 100644 (file)
 %   x
 %   \end{tcblisting}
 %
+\ifx\havemjolisting\undefined
+\def\havemjolisting{1}
+
+
 \usepackage{listings}
 \usepackage{tcolorbox}
 
@@ -52,3 +56,6 @@
                left=2em,%
                listing options={language=sage,style=sage},%
                listing file=sage_listings/#1.listing}}
+
+
+\fi
index 3d8a4069eb3984cf93917b020da8572c58f768f4..f73fe142e3a41f105f8e3d085ca9523468eb7744 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Things that fit absolutely nowhere else.
 %
+\ifx\havemjomisc\undefined
+\def\havemjomisc{1}
+
 
 \usepackage{amsmath}
 
@@ -8,3 +11,6 @@
 % absolute value, and the meaning of card(X) is clear at once, so we
 % prefer the latter.
 \newcommand*{\card}[1]{ \operatorname{card} \of{{#1}} }
+
+
+\fi
index ae4b0fc3da355637dc9f5966c52a5e6db8bf70f0..247d28049226213ae19173026680540fa94112c7 100644 (file)
@@ -8,6 +8,9 @@
 %
 % Case 2 (x < 0): derp.
 %
+\ifx\havemjoproofbycases\undefined
+\def\havemjoproofbycases{1}
+
 
 % Used below to define pcases. The ``loadonly'' parameter prevents
 % a very bad interaction with the beamer document class.
@@ -59,3 +62,6 @@
   \def\thiscase{#1}%
   \item \hfill\par\vspace{\singleblskip}
 }
+
+
+\fi
index 7fd06e1ddb20bc8f31ab5ac813c096a1f690ea19..7a3cebad1b5eaff67c54a5bf9a569a76b3ca92d2 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Unnumbered versions of the mjo-theorem environments.
 %
+\ifx\havemjotheoremstar\undefined
+\def\havemjotheoremstar{1}
+
 
 \usepackage{amsthm}
 
@@ -17,3 +20,6 @@
 
 \theoremstyle{remark}
 \newtheorem*{remark*}{Remark}
+
+
+\fi
index c11d56f6b250a3ff27f000ae0158edadfc30e75d..dc67f45ca37d98c9a7d3d728c1eacb3720b4e1ac 100644 (file)
@@ -2,6 +2,9 @@
 % The standard corollary, definition, theorem, etc. that we all define
 % in every single paper.
 %
+\ifx\havemjotheorem\undefined
+\def\havemjotheorem{1}
+
 
 \usepackage{amsthm}
 
@@ -18,3 +21,6 @@
 
 \theoremstyle{remark}
 \newtheorem{remark}{Remark}
+
+
+\fi
index 885f3390ae0aee177391ac1584070704261ca962..c7f50373ad8e98320f25088b2644e72828c1195b 100644 (file)
@@ -1,6 +1,9 @@
 %
 % Standard topological operations.
 %
+\ifx\havemjotopology\undefined
+\def\havemjotopology{1}
+
 
 % Needed for \operatorname.
 \usepackage{amsopn}
@@ -15,3 +18,6 @@
 
 % And the ``boundary of'' operator.
 \newcommand*{\boundary}[1]{ \operatorname{bdy}\of{{#1}} }
+
+
+\fi