]> gitweb.michael.orlitzky.com - mjotex.git/commitdiff
Put \ifx guards on most other package includes, too.
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 15 Sep 2019 21:01:48 +0000 (17:01 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 15 Sep 2019 21:01:48 +0000 (17:01 -0400)
We shouldn't be trying to load "amsopn" ten times, for example. But
testing whether or not a package is loaded is tricky. First, I tried
the \@ifpackageloaded macro: that causes problems with some of my
existing documents, and the "spacefactor" error that results is
apparently a FAQ. But I don't know what to do about it.

The other way to test if a package is loaded is by checking for some
(unique?) macro that it defines. That's what I've guessed at here.  It
works in most cases, like when we want \operatorname from "amsopn."
But, some packages also didn't have something obvious to check for, so
coverage isn't 100%.

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

index 88523456235e4bde91b99d9f99f1fcd41280588c..0b8dc93c2df8ad9da5f2b911c61eb251bc8f6b43 100644 (file)
@@ -5,8 +5,9 @@
 \def\havemjoalgebra{1}
 
 
-% Needed for \operatorname.
-\usepackage{amsopn}
+\ifx\operatorname\undefined
+  \usepackage{amsopn}
+\fi
 
 % The fraction field of its argument, an integral domain. The name
 % "Frac" was chosen here instead of "Quot" because the latter
index cef0e89f67988659217f0302308580dea6b0b08d..55d4831de9571d7cf413badcd175b7e728dfb883 100644 (file)
@@ -16,6 +16,7 @@
 % This just gives us the floating ``algorithm'' environment.
 \usepackage{algorithm}
 
+% Use "//" for comments instead of the default.
 \algrenewcommand{\algorithmiccomment}[1]{/\!/ {#1}}
 
 
index 4dd5f88bc6053dd224dd3c7b138ff757c78fe301..60530cb71020f3902e3b4c11f9a6498814241f5e 100644 (file)
@@ -5,7 +5,11 @@
 \def\havemjoarrow{1}
 
 
-\input{mjo-common}
+\input{mjo-common} % for \of, at least.
+
+\ifx\operatorname\undefined
+  \usepackage{amsopn}
+\fi
 
 % The identity operator/arrow on its argument.
 \newcommand*{\identity}[1]{ \operatorname{id}_{{#1}} }
index fbc9bfe08b2f0aebd1a878cfff8b217f38bba064..6021163a63f250d43d9d4b630f9fecc0cf384793 100644 (file)
@@ -1,3 +1,6 @@
+%
+% Standard calculus operations.
+%
 \ifx\havemjocalculus\undefined
 \def\havemjocalculus{1}
 
index 6aac4ca84be42e3777562c7dd6aecd9526d1ebc0..aa7427fc96dbe46a0582a83de7c7e494e0a78f59 100644 (file)
@@ -5,11 +5,13 @@
 \def\havemjocommon{1}
 
 
-% Needed for \mathbb.
-\usepackage{amsfonts}
+\ifx\mathbb\undefined
+  \usepackage{amsfonts}
+\fi
 
-% Needed for \bigtimes.
-\usepackage{mathtools}
+\ifx\bigtimes\undefined
+  \usepackage{mathtools}
+\fi
 
 % Place the argument in matching left/right parentheses.
 \newcommand*{\of}[1]{ \left({#1}\right) }
index 35edc8e0199a34212a23011a15ef77ce2b9df2e9..703ecf44d0d63f2a78ddc51e9a2fac9238adc3f6 100644 (file)
@@ -8,7 +8,9 @@
 \def\havemjocone{1}
 
 
-\usepackage{amssymb} % \succcurlyeq and friends
+\ifx\succcurlyeq\undefined
+  \usepackage{amssymb} % \succcurlyeq, \preccurlyeq
+\fi
 
 \input{mjo-common}
 
index dfc282213908c28028b8d018474de6b19a368555..5a930fcf34ec9531f9d5b7af792d75b1c3be055c 100644 (file)
@@ -5,8 +5,9 @@
 \def\havemjoconvex{1}
 
 
-% Needed for \operatorname.
-\usepackage{amsopn}
+\ifx\operatorname\undefined
+  \usepackage{amsopn}
+\fi
 
 \input{mjo-common}
 
index c6675f3bc8b93058c489ab0eafcc04962adcf0e1..2a00a29ff34c9f3a6db57b1413d0646afaf05aa9 100644 (file)
@@ -13,7 +13,8 @@
 \usepackage[utf8]{inputenc}
 
 % Grab the AMS fonts, too, for things like \mathbb.
-\usepackage{amsfonts}
-
+\ifx\mathbb\undefined
+  \usepackage{amsfonts}
+\fi
 
 \fi
index d423a433e65030774141eac013cf95bbea2a1aa4..e2ae9fa5b18c008639db087142911ba51a6c10b0 100644 (file)
@@ -5,14 +5,18 @@
 \def\havemjolinearalgebra{1}
 
 
-% Needed for \lvert, \rVert, etc. and \operatorname.
-\usepackage{amsmath}
+\ifx\lvert\undefined
+  \usepackage{amsmath} % \lvert, \rVert, etc. and \operatorname.
+\fi
 
-% Wasysym contains the \ocircle that we use in \directsumperp.
-\usepackage{wasysym}
+\ifx\ocircle\undefined
+  \usepackage{wasysym}
+\fi
 
-% Part of the adjustbox package; needed to clip the \perp sign.
-\usepackage{trimclip}
+\ifx\clipbox\undefined
+  % Part of the adjustbox package; needed to clip the \perp sign.
+  \usepackage{trimclip}
+\fi
 
 \input{mjo-common}
 
index f898aba13ea886be03258fea0bfc61dd1ee72dd9..cf3fc582a1d1e7fa8aefb8a62e7488477ade3dbf 100644 (file)
 \def\havemjolisting{1}
 
 
-\usepackage{listings}
-\usepackage{tcolorbox}
+\ifx\lstset\undefined
+  \usepackage{listings}
+\fi
+
+\ifx\tcbuselibrary\undefined
+  \usepackage{tcolorbox}
+\fi
 
 % Tell tcolorbox to use ``listings'' within the boxes.
 \tcbuselibrary{listings}
index f73fe142e3a41f105f8e3d085ca9523468eb7744..24421457fab2d4a4bd474473b96bf470f221d351 100644 (file)
@@ -5,7 +5,9 @@
 \def\havemjomisc{1}
 
 
-\usepackage{amsmath}
+\ifx\operatorname\undefined
+  \usepackage{amsopn}
+\fi
 
 % The cardinality of a set. The |X| notation conflicts with the
 % absolute value, and the meaning of card(X) is clear at once, so we
index 7a3cebad1b5eaff67c54a5bf9a569a76b3ca92d2..b8ed63c0ff5713bbb323100eddce77d780e0a447 100644 (file)
@@ -5,7 +5,9 @@
 \def\havemjotheoremstar{1}
 
 
-\usepackage{amsthm}
+\ifx\theoremstyle\undefined
+  \usepackage{amsthm}
+\fi
 
 \theoremstyle{plain}
 \newtheorem*{corollary*}{Corollary}
index dc67f45ca37d98c9a7d3d728c1eacb3720b4e1ac..ea0ca332922827ae38fa388b2cf89d72ec3349ca 100644 (file)
@@ -5,8 +5,9 @@
 \ifx\havemjotheorem\undefined
 \def\havemjotheorem{1}
 
-
-\usepackage{amsthm}
+\ifx\theoremstyle\undefined
+  \usepackage{amsthm}
+\fi
 
 \theoremstyle{plain}
 \newtheorem{corollary}{Corollary}
index c7f50373ad8e98320f25088b2644e72828c1195b..760d44d96c4bbead22746a24b5712faa16478efa 100644 (file)
@@ -5,8 +5,9 @@
 \def\havemjotopology{1}
 
 
-% Needed for \operatorname.
-\usepackage{amsopn}
+\ifx\operatorname\undefined
+  \usepackage{amsopn}
+\fi
 
 \input{mjo-common}