texlive[61193] Master: rbt-mathnotes (30nov21)

commits+karl at tug.org commits+karl at tug.org
Tue Nov 30 23:53:25 CET 2021


Revision: 61193
          http://tug.org/svn/texlive?view=revision&revision=61193
Author:   karl
Date:     2021-11-30 23:53:25 +0100 (Tue, 30 Nov 2021)
Log Message:
-----------
rbt-mathnotes (30nov21)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/LICENSE.txt
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/README.md
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.pdf
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.tex
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.pdf
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.tex
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.pdf
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.tex
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.pdf
    trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.tex
    trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/
    trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-formula-sheet.cls
    trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-hw.cls
    trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-messages.sty
    trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-util.sty
    trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.cls
    trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.sty
    trunk/Master/tlpkg/tlpsrc/rbt-mathnotes.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/LICENSE.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/LICENSE.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/LICENSE.txt	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c  2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+    Everyone is allowed to distribute verbatim copies of this
+    license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute.  This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but 
+it is written in such a way that you can use it even if your work is 
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work.  If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+   `Work'
+    Any work being distributed under this License.
+    
+   `Derived Work'
+    Any work that under any applicable law is derived from the Work.
+
+   `Modification' 
+    Any procedure that produces a Derived Work under any applicable
+    law -- for example, the production of a file containing an
+    original file associated with the Work or a significant portion of
+    such a file, either verbatim or with modifications and/or
+    translated into another language.
+
+   `Modify'
+    To apply any procedure that produces a Derived Work under any
+    applicable law.
+    
+   `Distribution'
+    Making copies of the Work available from one person to another, in
+    whole or in part.  Distribution includes (but is not limited to)
+    making any electronic components of the Work accessible by
+    file transfer protocols such as FTP or HTTP or by shared file
+    systems such as Sun's Network File System (NFS).
+
+   `Compiled Work'
+    A version of the Work that has been processed into a form where it
+    is directly usable on a computer system.  This processing may
+    include using installation facilities provided by the Work,
+    transformations of the Work, copying of components of the Work, or
+    other activities.  Note that modification of any installation
+    facilities provided by the Work constitutes modification of the Work.
+
+   `Current Maintainer'
+    A person or persons nominated as such within the Work.  If there is
+    no such explicit nomination then it is the `Copyright Holder' under
+    any applicable law.
+
+   `Base Interpreter' 
+    A program or process that is normally needed for running or
+    interpreting a part or the whole of the Work.    
+
+    A Base Interpreter may depend on external components but these
+    are not considered part of the Base Interpreter provided that each
+    external component clearly identifies itself whenever it is used
+    interactively.  Unless explicitly specified when applying the
+    license to the Work, the only applicable Base Interpreter is a
+    `LaTeX-Format' or in the case of files belonging to the 
+    `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1.  Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope.  In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2.  You may distribute a complete, unmodified copy of the Work as you
+received it.  Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3.  You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4.  If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work.  You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work.  Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5.  If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6.  If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition.  Only
+the Current Maintainer is allowed to add such statements of exemption 
+to a component of the Work. 
+
+  a. If a component of this Derived Work can be a direct replacement
+     for a component of the Work when that component is used with the
+     Base Interpreter, then, wherever this component of the Work
+     identifies itself to the user when used interactively with that
+     Base Interpreter, the replacement component of this Derived Work
+     clearly and unambiguously identifies itself as a modified version
+     of this component to the user when used interactively with that
+     Base Interpreter.
+     
+  b. Every component of the Derived Work contains prominent notices
+     detailing the nature of the changes to that component, or a
+     prominent reference to another file that is distributed as part
+     of the Derived Work and that contains a complete and accurate log
+     of the changes.
+  
+  c. No information in the Derived Work implies that any persons,
+     including (but not limited to) the authors of the original version
+     of the Work, provide any support, including (but not limited to)
+     the reporting and handling of errors, to recipients of the
+     Derived Work unless those persons have stated explicitly that
+     they do provide such support for the Derived Work.
+
+  d. You distribute at least one of the following with the Derived Work:
+
+       1. A complete, unmodified copy of the Work; 
+          if your distribution of a modified component is made by
+          offering access to copy the modified component from a
+          designated place, then offering equivalent access to copy
+          the Work from the same or some similar place meets this
+          condition, even though third parties are not compelled to
+          copy the Work along with the modified component;
+
+       2. Information that is sufficient to obtain a complete,
+          unmodified copy of the Work.
+
+7.  If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8.  The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9.  Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+     
+10. a. A Derived Work may be distributed under a different license
+       provided that license itself honors the conditions listed in
+       Clause 6 above, in regard to the Work, though it does not have
+       to honor the rest of the conditions in this license.
+      
+    b. If a Derived Work is distributed under a different license, that
+       Derived Work must provide sufficient documentation as part of
+       itself to allow each recipient of that Derived Work to honor the 
+       restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12.  Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work.  Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose.  The entire risk as to the quality and performance
+of the Work is with you.  Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1.  Make a reasonable attempt to trace the Current Maintainer (and
+     the Copyright Holder, if the two differ) through the means of
+     an Internet or similar search.
+
+ 2.  If this search is successful, then enquire whether the Work
+     is still maintained.
+
+  a. If it is being maintained, then ask the Current Maintainer
+     to update their communication data within one month.
+     
+  b. If the search is unsuccessful or no action to resume active
+     maintenance is taken by the Current Maintainer, then announce
+     within the pertinent community your intention to take over
+     maintenance.  (If the Work is a LaTeX work, this could be
+     done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+     maintenance of the Work to you, then this takes effect
+     immediately upon announcement.
+     
+  b. If the Current Maintainer is not reachable and the Copyright
+     Holder agrees that maintenance of the Work be passed to you,
+     then this takes effect immediately upon announcement.  
+    
+ 4.  If you make an `intention announcement' as described in 2b. above
+     and after three months your intention is challenged neither by
+     the Current Maintainer nor by the Copyright Holder nor by other
+     people, then you may arrange for the Work to be changed so as
+     to name you as the (new) Current Maintainer.
+     
+ 5.  If the previously unreachable Current Maintainer becomes
+     reachable once more within three months of a change completed
+     under the terms of 3b) or 4), then that Current Maintainer must
+     become or remain the Current Maintainer upon request provided
+     they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer.  You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license.  These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license.  You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license.  It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate.  Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component.  While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community.  It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one.  Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified.  Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+  %% pig.dtx
+  %% Copyright 2005 M. Y. Name
+  %
+  % This work may be distributed and/or modified under the
+  % conditions of the LaTeX Project Public License, either version 1.3
+  % of this license or (at your option) any later version.
+  % The latest version of this license is in
+  %   http://www.latex-project.org/lppl.txt
+  % and version 1.3 or later is part of all distributions of LaTeX
+  % version 2005/12/01 or later.
+  %
+  % This work has the LPPL maintenance status `maintained'.
+  % 
+  % The Current Maintainer of this work is M. Y. Name.
+  %
+  % This work consists of the files pig.dtx and pig.ins
+  % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.  
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+   The LPPL requires that distributions of the Work contain all the
+   files of the Work.  It is therefore important that you provide a
+   way for the licensee to determine which files constitute the Work.
+   This could, for example, be achieved by explicitly listing all the
+   files of the Work near the copyright notice of each file or by
+   using a line such as:
+
+    % This work consists of all files listed in manifest.txt.
+   
+   in that place.  In the absence of an unequivocal list it might be
+   impossible for the licensee to determine what is considered by you
+   to comprise the Work and, in such a case, the licensee would be
+   entitled to make reasonable conjectures as to which files comprise
+   the Work.
+


Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/LICENSE.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/README.md	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,16 @@
+# rbt-mathnotes
+
+Rebecca Turner’s personal macros and styles for typesetting mathematics notes.
+
+See `rbt-mathnotes.pdf` for detailed documentation.
+
+Contents:
+
+- `rbt-mathnotes` package
+- `rbt-mathnotes` document class
+- `rbt-mathnotes-hw` document class, containing specialized commands for
+  typesetting homework assignments and solutions (in particular, the `problem`
+  environment and `\prob` command)
+- `rbt-mathnotes-formula-sheet` document class, optimized for stuffing as much
+  text as possible onto an exam “cheat sheet”
+- Examples of each document class in the `examples` directory


Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.pdf	2021-11-30 22:51:41 UTC (rev 61192)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.pdf	2021-11-30 22:53:25 UTC (rev 61193)

Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.tex	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,227 @@
+%% cheat-sheet.tex
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\documentclass{rbt-mathnotes-formula-sheet}
+\usepackage{nicefrac}
+\ExplSyntaxOn
+\NewDocumentCommand \normalized { m }
+  { \frac { #1 } { \| #1 \| } }
+\let \gr \grad
+\def \ddx { \frac{d}{dx} }
+% VL = vector literal
+\NewDocumentCommand \vl { m } { \left\langle #1 \right\rangle }
+\ExplSyntaxOff
+
+\title{Formula Sheet}
+\author{Rebecca Turner}
+\date{2019-11-12}
+
+% "The most common size for index cards in North America and UK is 3 by 5
+% inches (76.2 by 127.0 mm), hence the common name 3-by-5 card. Other sizes
+% widely available include 4 by 6 inches (101.6 by 152.4 mm), 5 by 8 inches
+% (127.0 by 203.2 mm) and ISO-size A7 (74 by 105 mm or 2.9 by 4.1 in)."
+\mathnotes{
+  height = 4in ,
+  width = 6in ,
+}
+\begin{document}
+\maketitle
+\begin{gather*}
+% 12.2: Vectors
+% 12.3: Dot product
+  \textstyle\vec a \cdot \vec b = \sum_i a_i b_i = |\vec a| |\vec b| \cos \theta. \\
+% 12.4: Cross product
+  \vec a \times \vec b
+  % = \left| \begin{array}{rrr}
+    % \hat{i} & \hat{j} & \hat{k} \\
+    % a_1 & a_2 & a_3 \\
+    % b_1 & b_2 & b_3 \\
+  % \end{array} \right| \\
+  = \langle a_2 b_3 - a_3 b_2,
+    \quad a_3b_1 - a_1b_3, \\
+    a_1b_2 - a_2b_1 \rangle.\quad
+  |\vec a \times \vec b| = |\vec a| |\vec b| \sin \theta.
+% 12.5: Equations of lines and planes.
+\shortintertext{Param.\ eqns.\ of line through $\langle x_0,y_0,z_0 \rangle$
+par.\ to $\langle a,b,c \rangle$:}
+  x = x_0 + at,
+  \quad y = y_0 + bt,
+  \quad z = z_0 + ct. \\
+\text{Symm.\ eqns.: }
+  \frac{x-x_0}{a}
+  = \frac{y-y_0}{b}
+  = \frac{z-z_0}{c}. \\
+\shortintertext{Vec.\ eqn.\ of plane through $\vec r$ with $\vec n$ normal:}
+  \vec n \cdot (\vec r - \vec r_0) = 0,
+  \quad \vec n \cdot \vec r = \vec n \cdot \vec r_0. \\
+% 13.1: Vector functions
+% 13.2: Derivatives/integrals of vector functions
+% 13.3: Arc length and curvature
+\shortintertext{Length along a vec.\ fn.\ $\vec r(t)$:}
+  \textstyle\int_a^b \left|\vec r'(t)\right|\,dt = \int_a^b \sqrt{\sum_i
+  r_i'(t)^2}\,dt, \\
+\shortintertext{Unit tang.\ $\vec T(t) = \vec r'(t)/\left|\vec
+r'(t)\right|$, so curvature of $\vec r(t)$ w/r/t the arc len.\ fn. $s$:}
+  \kappa = \left|\frac{d\vec T}{ds}\right|
+  = \frac{\left| \vec T'(t) \right|}{\left| \vec r'(t) \right|}
+  = \frac{\left| \vec r'(t) \times \vec r''(t) \right|}{\left| \vec r'(t)
+  \right|^3}. \\
+\text{Unit normal:}\quad
+  \vec N(t) = \vec T'(t)\,/\,\left| \vec T'(t) \right| \\
+% 14.1: Functions of several variables
+% 14.2: Limits and continuity
+% 14.3: Partial derivatives
+\text{Clairaut's thm.:}\quad
+  f_{xy}(a,b) = f_{yx}(a,b) \\
+% 14.4: Tangent planes & linear approximations
+\shortintertext{Tan.\ plane to $z = f(x,y)$ at $\langle x_0, y_0,
+z_0\rangle$:}
+  z - z_0 = f_x(x_0, y_0) (x-x_0) \\
+    + f_y(x_0, y_0) (y-y_0). \\
+% Partial derivatives of f for each variable exist near a point and are
+% continuous => f is differentiable at the po\int.
+% 14.6: Directional derivatives and the gradient vector
+\text{Grad.:}\quad
+  \grad f(x,y) = \pd[f]x \hat{i} + \pd[f]y \hat{j}. \\
+\shortintertext{Dir.\ deriv.\ towards $\vec u$ at $\langle x_0, y_0 \rangle$:}
+  D_{\langle a,b\rangle} f(x_0, y_0) = f_x(x,y) a + f_y(x,y) b \\
+  = \grad f(x,y) \cdot \vec u. \\
+\shortintertext{Max of $D_{\vec u} f(\vec x) = \left|\grad f(\vec
+x)\right|$. Tan.\ plane of $f$ at $\vec p$:}
+  0 =
+  f_x(\vec p)(x-\vec p_x)
+  + f_y(\vec p)(y-\vec p_y) \\
+  + f_z(\vec p)(z-\vec p_z).
+% 14.7: Maximum and minimum values
+\shortintertext{If $f$ has loc.\ extrem.\ at $\vec p$, then $f_x(\vec p) =
+0$ (\& $f_y$, etc). If so, let}
+  D = \left| \begin{array}{ll}
+    f_{xx} & f_{xy} \\
+    f_{yx} & f_{yy}
+  \end{array}\right|
+  = f_{xx} f_{yy} - (f_{xy})^2.
+\shortintertext{%
+  $D = 0$: no information.
+  $D < 0$: saddle pt.
+  $D > 0$: $f_{xx}(\vec p) > 0 \implies$ loc.\ min;
+  $f_{xx}(\vec p) < 0 \implies$ loc.\ max.
+  ($D$ is the \textbf{Hessian mat.})
+\endgraf
+  Set of possible abs. min and max vals of $f$ in reg.\ $D$: $f$ at critical
+  pts.\ and extreme vals.\ on the boundary of $D$.
+% 14.8: Lagrange multipliers
+\endgraf
+  Lagrange mults.: extreme vals of $f(\vec p)$ when $g(\vec p) = k$.
+  Find all $\vec x, \lambda$ s.t.
+}
+  \grad f(\vec x) = \lambda \grad g(\vec x),\quad g(\vec x) = k.
+\shortintertext{i.e.\ $f_x = \lambda g_x$, etc.}
+% 15.1: Double integrals over rectangles
+% 15.2: Iterated integrals
+% 15.3: Double integrals over general regions
+  \iint f(r\cos\theta, r\sin\theta)r\,dr\,d\theta. \\
+  A = \iint_D \left(\sqrt{f_x(x,y)^2 + f_y(x,y)^2 + 1}\right) \,dA. \\
+\shortintertext{Line int.s}
+  \int_C f(x,y)\,ds = \\
+    \int_a^b f(x(t), y(t))\sqrt{\left(\pd[x]t\right)^2 + \left(\pd[y]t\right)^2}\,dt \\
+\shortintertext{If $C$ is a smooth curve given by $\vec r(t)$ from $a \le t
+\le b$,}
+  \int_C \grad f \cdot d\vec r = f(\vec r(b)) - f(\vec r(a)) \\
+\text{Spherical coords:}\quad
+  x = \rho \sin \phi \cos \theta \\
+  y = \rho \sin \phi \sin \theta, z = \rho \cos \phi \\
+  \curl \vec F = \\ \left< \pd[R]y - \pd[Q]z, \pd[P]z - \pd[R]x, \pd[Q]x -
+  \pd[P]y\right>. \\
+  \vec F = \langle P,Q,R \rangle,\quad
+  \curl \vec F = \grad \times \vec F \\
+  \vec F \text{ ``conservative''} \implies \exists f, \vec F = \grad f. \\
+  \dive \vec F = \grad \cdot \vec F = \pd[P]x + \pd[Q]y + \pd[R]z. \\
+  \curl(\grad f) = \vec 0,\quad \dive \curl \vec F = 0 \\
+\shortintertext{If $C$ is a positively-oriented (ccw) closed curve, $D$
+is bounded by $C$, and $\vec n$ represents the normal,}
+  % \int_C P\,dx + Q\,dy = \iint_D\left( \pd[Q]{x} - \pd[P]{y} \right). \\
+  \oint_C \vec F \cdot \vec n\,ds = \iint_D \dive \vec F(x,y)\,dA.
+\end{gather*}
+
+\pagebreak
+\raggedright Common derivs:
+$f(g(x)) \to g'(x) f'(g(x))$,
+$b^x \to b^x \ln b$,
+$f^{-1}(x) \to 1/f'(f^{-1}(x))$,
+$\ln x \to 1/x$,
+$\sin x \to \cos x$, $\cos x \to -\sin x$,
+$\tan x \to \sec^2 x$,
+$\sin^{-1} x \to 1/\sqrt{1-x^2}$,
+$\cos^{-1} x \to -(\sin^{-1}x)'$ (etc.),
+$\tan^{-1} x \to 1/(1+x^2)$,
+$\sec^{-1} x \to 1/(|x|\sqrt{x^2-1})$.
+
+Common ints (don't forget $+C$):
+\begin{gather*}
+  x^n \to \frac{x^{n + 1}}{n + 1} + C \quad \text{when } n \ne -1 \\
+  1/x \to \ln |x| \\
+  \tan x \to -\ln(\cos x) \\
+  \int uv'\,dx = uv - \int u'v\,dx \quad\text{(Int.\ by parts)} \\
+  \int u\,dv = uv-\int v\,du \\
+  \int_{g(a)}^{g(b)} f(u)\,du = \int_a^b f(g(x))g'(x)\,dx
+  \quad\text{$u$-substitution.}
+\intertext{E.x.\ in $\int 2x \cos x^2\,dx$, let $u=x^2$, find $du/dx=2x
+\implies du = 2x\,dx$, subs.\ $\int \cos u\,du = \sin u + C = \sin x^2 +
+C$.}
+  \iint_R f(x,y)\,dA = \int_\alpha^\beta \int_a^b f(r\cos\theta,
+  r\sin\theta)r\,dr\,d\theta
+\end{gather*}
+\begin{itemize}
+  \item Integrand contains $a^2-x^2$, let $x = a\sin\theta$ and use $1 -
+  \sin^2 \theta = \cos^2 \theta$.
+  \item $a^2 + x^2$, let $x = a\tan\theta$, use $1 + \tan^2 \theta = \sec^2
+  \theta$.
+  \item $x^2 - a^2$, let $x = a\sec\theta$, use $\sec^2\theta - 1 = \tan^2
+  \theta$.
+\end{itemize}
+
+\begin{gather*}
+  \lim_{x \to 0} \sin x/x = 1 \\
+  \lim_{x \to 0} (1-\cos x)/x = 0 \\
+  \lim_{x \to \infty} x \sin(1/x) = 1 \\
+  \lim_{x \to 0} (1+x)^{1/x} = e \\
+  \lim_{x \to 0} (e^{ax}-1)/(bx) = a/b \\
+  \lim_{x \to 0^+} x^x = 1 \\
+  \lim_{x \to 0^+} x^{-n} = \infty \\
+  \text{For $0/0$ or $\pm\infty/\infty$,}\quad
+  \lim_{x \to c} f(x)/g(x) = \lim_{x \to c} f'(x)/g'(x) \\
+  \text{For $g(x)$ cont.\ at $L$,}
+  \lim_{x \to c} f(x) = L \implies \lim_{x \to c} g(L)
+\end{gather*}
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/cheat-sheet.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.pdf	2021-11-30 22:51:41 UTC (rev 61192)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.pdf	2021-11-30 22:53:25 UTC (rev 61193)

Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.tex	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,507 @@
+%% multivar.tex
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\documentclass[knowledge]{rbt-mathnotes}
+\title{Multivariable Calculus}
+\mathnotes{
+  instructor  = Prof.~Corey Bregman ,
+  name        = Rebecca Turner ,
+  email       = rebeccaturner at brandeis.edu ,
+  course      = \textsc{math} 20a (multivariable calculus) ,
+  institution = Brandeis University ,
+  semester    = Fall 2019 ,
+}
+
+\ExplSyntaxOn
+\NewDocumentCommand \normalized { m }
+  { \frac { #1 } { \| #1 \| } }
+\let \gr \grad
+\def \ddx { \frac{d}{dx} }
+% VL = vector literal
+\NewDocumentCommand \vl { m } { \left\langle #1 \right\rangle }
+\ExplSyntaxOff
+
+% \makeatletter
+% \@ifpackageloaded{knowledge}
+%   {
+\knowledge{notion, index={Derivative!Partial}}
+  | partial derivative
+\AtBeginDocument{\index{Partial derivative|see{Derivative, partial}}}
+
+\knowledge{notion, index={Derivative!Directional}}
+  | directional derivative
+\AtBeginDocument{\index{Directional derivative|see{Directional, partial}}}
+
+\knowledge{notion, index=Unit vector}
+  | unit vector
+
+\knowledge{notion, index=Limit}
+  | limit
+
+\knowledge{notion, index={Differentiable functions}}
+  | differentiable
+
+\knowledge{notion, index=Gradient}
+  | gradient
+
+\knowledge{notion, index={Neighborhood (topology)}}
+  | neighborhood
+
+\knowledge{notion, index=Local maximum}
+  | local maximum
+  | local maxima
+
+\knowledge{notion, index=Local minimum}
+  | local minimum
+  | local minima
+
+\knowledge{notion, index=Absolute maximum}
+  | absolute maximum
+  | absolute maxima
+
+\knowledge{notion, index=Absolute minimum}
+  | absolute minimum
+  | absolute minima
+
+\knowledge{notion, index=Local extremum}
+  | local extremum
+  | local extrema
+
+\knowledge{notion, index=Critical point}
+  | critical point
+
+\knowledge{notion, index=Saddle point}
+  | saddle point
+
+\knowledge{notion, index={Lagrange multiplier}}
+  | Lagrange multiplier
+  | Lagrange multipliers
+  | the method of Lagrange multipliers
+
+\knowledge{url={https://en.wikipedia.org/wiki/Joseph-Louis_Lagrange}}
+  | Joseph-Louis Lagrange
+  | Lagrange
+
+\knowledge{url={https://en.wikipedia.org/wiki/Marquis_de_Condorcet}}
+    | Marquis de Condorcet
+
+  \knowledge{url={https://en.wikipedia.org/wiki/Adrien-Marie_Legendre}}
+    | Adrien-Marie Legendre
+%   }
+%   {}
+% \makeatother
+\date{2019-10-23}
+\begin{document}
+\maketitle
+\tableofcontents
+
+\chapter{Vectors}
+I already know about vectors --- I've been taught them in about five
+different courses so far. I'm skipping this.
+
+\chapter{Partial derivatives}
+
+If we have a function of multiple variables, say
+\[f(a_1, a_2, a_3, \dots),\]
+we might care about the change of $f$ with respect to only one variable. By
+picking a fixed value for all but one of the variables, we can determine
+this.
+
+Say that we want to find the "partial derivative" of $f$ with respect to
+$a_2$; then, by constructing $g(a_2) = f(c_1, a_2, c_3, \dots)$, we've
+created a function of \emph{one} variable, which we can differentiate as
+usual.
+\begin{notation}
+  We write the "partial derivative" of a function $f$ at a point $\vec p$ 
+  with respect to a basis element $a$ of $\vec p$ as \fbox{$f_a(\vec p)$.}
+
+  We may also use much more common notation
+  \[\pd[f]{a},\]
+  using the "partial derivative" symbol $\partial$, a stylized cursive
+  ``d''.\footnote{Introduced by "Marquis de Condorcet" in 1770, who used it
+  to represent a partial \emph{differential}, i.e.~the $dy$ or $dx$ in
+  $dy/dx$, and then adapted in 1786 by "Adrien-Marie Legendre" for use as the
+  partial derivative.}
+
+  In the interest of completeness, I'll exhaustedly note that the book also
+  uses, on occasion, the notation $D_a f$.
+\end{notation}
+
+We can also calculate ""higher partial derivatives"" --- similarly to the
+higher ordinary derivatives. The notation is a fairly clear extension:
+\[(f_x)_x = f_{xx} = \pd x \left( \pd[f]{x} \right) = \pd[^2 f]{x^2}.\]
+
+\begin{thm}[Clairaut's Theorem]
+  Suppose $f$ is defined on a neighborhood $N$ about a point $\vec p$.
+  If $f_{xy}$ and $f_{yx}$ are continuous in $N$, then $f_{xy}(\vec p) =
+  f_{yx}(\vec p)$.
+\end{thm}
+
+\section{Gradients}
+\begin{notation}
+  This ridiculous textbook denotes the "partial derivative" of a function
+  $f(x, y) = z$ with respect to  $x$ as $f_x(x, y)$.
+\end{notation}
+
+\begin{defn}
+  The ""directional derivative"" of a function $f$ at $(x_0, y_0)$ in the
+  direction of a "unit vector" $\vec u = \langle a, b \rangle$ is
+  \[D_{\vec u} f(x_0, y_0) = \lim_{h \to 0} \frac{f(x_0 + ha, y_0 + hb) -
+  f(x_0, y_0)}{h},\]
+  if the "limit" exists.
+\end{defn}
+
+If $f : \Re^2 \mapsto \Re$ is a "differentiable" function, then $f$ has a
+"directional derivative" in the direction of any "unit vector" $\vec u =
+\langle a, b \rangle$ of
+\begin{alignat*}{1}
+  D_{\vec u} f(x, y) &= f_x(x, y) a + f_y(x, y) b.
+\intertext{Or, if $\vec u = \langle \cos \theta, \sin \theta \rangle$, then}
+  D_{\vec u} f(x, y) &= f_x(x, y) \cos \theta + f_y(x, y) \sin \theta.
+\end{alignat*}
+
+Noticing that the "directional derivative" of a function can be written as
+the dot product of two vectors,
+\begin{alignat*}{1}
+  D_{\vec u} f(x, y) &= f_x(x, y) a + f_y(x, y) b \\
+    &= \langle f_x(x, y), f_y(x, y) \rangle \cdot \langle a, b \rangle \\
+    &= \langle f_x(x, y), f_y(x, y) \rangle \cdot \vec u,
+\end{alignat*}
+we call the first vector $\langle f_x(x, y), f_y(x, y) \rangle$ the
+""gradient"" of $f$ and denote it as $\grad f$.
+
+\begin{defn}
+  The "gradient" of a function $f$ of two variables is defined as
+  \[\grad f(x, y) = \langle f_x(x, y), f_y(x, y) \rangle
+    = \frac{\partial f}{\partial x} \vec i + \frac{\partial f}{\partial y}
+    \vec j.\]
+\end{defn}
+
+Therefore, we can rewrite the "directional derivative" of a function $f$
+as
+\[D_{\vec u} f(x, y) = \grad f(x, y) \cdot \vec u.\]
+It's intuitive, then, that the maximum value of the "directional derivative"
+is $|\grad f(x, y)|$, when $\vec u$ is parallel to $\grad f(x, y)$.
+
+\section{Maximum and minimum values}
+\begin{defn}
+  $f : A^k \mapsto B$ has a ""local maximum"" at $\vec a$ if for some
+  "neighborhood" $N \subset A$ about $\vec a$, for all $\vec x \in N$,
+  $f(\vec x) \le f(\vec a)$.
+
+  Conversely, if $f(\vec x) \ge f(\vec a)$, then $f(\vec a)$ is a ""local
+  \emph{minimum}@local minimum"".
+
+  If the statement also holds true for $N = A$, then $\vec a$ is an
+  ""absolute maximum"" (or ""absolute minimum"").
+\end{defn}
+
+If $f$ has a "local maximum" or "minimum at local minimum" at $\vec a$ and the
+partials of $f$ exist at $\vec a$, then $\partial f/\partial x (\vec a) = 0$
+and $f_y(a, b) = 0$; geometrically, the tangent plane to a maximum or
+minimum must be horizontal.
+
+\begin{defn}
+  A point $\vec a$ is called a ""critical point"" of $f$ if $f_x(\vec a) =
+  0$ or $f_x(\vec a)$ doesn't exist for all variables of $f$.
+\end{defn}
+
+\begin{defn}
+  A ""saddle point"" of a function is a "critical point" which is not a
+  "local extremum" of the function.
+\end{defn}
+
+If $(a, b)$ is a critical point of $f$, then let
+\[D = D(a, b) = f_{xx} (a,b) \, f_{yy} (a,b) - (f_{xy}(a,b))^2.\]
+If $D < 0$, then $(a, b)$ is a "saddle point" of $f$.
+
+\section{Lagrange multipliers}
+Often we want to find the "local extrema" of a function subject to
+constraints, i.e.~maximizing the volume of an object while keeping its
+surface area constant. The method of "Lagrange multipliers"\footnote{After
+"Joseph-Louis Lagrange" (1736--1813), ``an Italian Enlightenment Era
+mathematician and astronomer [who] made significant contributions to the
+fields of analysis, number theory, and both classical and celestial
+mechanics.''} is a strategy for doing this.
+
+To find extrema of $f(\vec p)$ constrained with $g(\vec p) = k$,
+we look for extrema of $f$ that are restricted to lie on the level curve
+$g(\vec p) = k$; it happens that the largest $c$ such that $f(\vec p) = c$
+intersects with  $g(\vec p) = k$ when the two level curves are tangent with
+each other, i.e.~they have identical normals. In other words, for some
+scalar $\lambda$, $\grad f(\vec p) = \lambda \grad g(\vec p)$.
+
+More formally, suppose $f$ has an extrema at $\vec p_0$. Then, let the level
+surface generated by the constraint $g(\vec p) = k$ be called $S$, where
+$\vec p_0 \in S$. Then, let $C$ be the set of points given by $\vec r(t)$ such
+that $C \subset S$ and $\vec p_0 \in C$. Further, let $t_0$ be a point such
+that $\vec r(t_0) = \vec p_0$.
+
+Then, $f \after \vec r$ gives the values of $f$ on the curve $C$. $f$ has an
+extrema at $\vec p$, so $f \after \vec r$ must also, and $(f \after \vec
+r)'(t_0) = 0$. If $f$ is "differentiable", we can use the chain rule to
+write
+\begin{alignat*}{1}
+  0 &= (f \after \vec r)'(t_0) \\
+  &= \grad f(\vec p_0) \cdot \vec r'(t_0).
+\end{alignat*}
+Therefore, the gradient of $f$ is orthogonal to the tangent of every such
+curve $C$. We also know that $\grad g(\vec p_0)$ is orthogonal to $\vec
+r'(t_0)$, so the gradients of $f$ and $g$ at $\vec p_0$ must be parallel.
+Therefore, if $\grad g(\vec p_0) \ne 0$, there exists some $\lambda$ such
+that
+\begin{equation}
+  \grad f(\vec p_0) = \lambda \grad g(\vec p_0),
+\end{equation}
+where the constant $\lambda$ is called a "Lagrange multiplier".
+
+Then, the ""method of Lagrange multipliers"" gives us a process to
+find the maximum and minimum values of a function $f(\vec p)$ subject to the
+constraint  $g(\vec p) = k$, where $\vec p \in \Re^n$. To use the method of
+Lagrange multipliers, we assume that the extreme values exist and that
+$\grad g \ne 0$ on the level surface $g(\vec p) = k$.
+\begin{enumerate}
+  \item Find all values of $\vec p$ and $\lambda$ such that
+  \begin{alignat*}{1}
+    \grad f(\vec p) &=  \lambda \grad g(\vec p) \\
+  \text{and}\qquad g(\vec p) &= k. \\
+  \end{alignat*}
+
+  \item Next, evaluate $f$ at all of the points found in the first step. The
+  largest of these values is the maximum value of $f$, and the smallest of
+  them is the minimum value.
+\end{enumerate}
+
+\chapter{Multiple integrals}
+Single integrals are good for functions of one variable. To integrate
+functions of multiple variables, we use multiple integrals. Straightforward
+enough.
+
+Multiple integrals allow us to calculate things like surface areas and
+volumes of geometric objects.
+
+In general, for some double integral
+\[\underbrace{\int_a^b \overbrace{\int_c^d f(x,y)\,dx}^{\mathclap{\text{We
+treat $y$ as constant while evaluating this.}}}\,dy,}_{\mathclap{\text{We've
+eliminated $x$ from the equation before evaluating this.}}}\]
+we do the opposite of partial differentiation and treat all variables other
+than the one we're integrating for as constant, repeatedly, until we've
+integrated with respect to all variables; each step in this process is
+called, predictably, ""partial integration"".
+
+\section{Double integrals}
+For an axis-aligned rectangle $R$ on the $xy$-plane from $(x_0, y_0)$ to $(x_1,
+y_1)$, the area of a function $f(x, y)$ under $R$ is given by the double
+integral
+\begin{alignat*}{1}
+  \iint_{Y} f(x,y)\,dA &= \underbrace{\int_{x_0}^{x_1} \int_{y_0}^{y_1}
+    f(x,y)\,dy\,dx}_{\mathclap{\text{This is the iterated form of the
+    integral.}}} \\
+    &= \int_{y_0}^{y_1} \int_{x_0}^{x_1} f(x,y)\,dx\,dy, \\
+\end{alignat*}
+where we use $\iint_R$ to mean ``integrating over the area of $R$'' and
+``$dA$'' to mean ``with respect to area.''
+
+The right-hand side of the equation above is called the ""iterated form"",
+or an \reintro*"iterated integral".
+
+We can also iterate over funkier regions if we're willing to play with the
+limits of integration a bit. The easiest regions to integrate over are the
+ones that are easily expressible as the region bounded above and below by
+functions of one variable, e.g. ``the region under the line $y = 2x$ and
+above the line $y = x^2$'' (note that this is bounded on the left at $x = 0$
+and on the right at $x = 2$).
+
+% Area[ImplicitRegion[x^2 < y \[And] y < 2 x, {x, y}
+The area of that region is expressed by the integral
+\begin{alignat*}{1}
+  A &= \int_0^2 \int_{x^2}^{2x}\,dy\,dx \\
+    &= \int_0^2 {\bigg[ x \bigg]}_{x^2}^{2x}\,dx \\
+    &= \int_0^2 {\bigg( 2x-x^2 \bigg)}\,dx \\
+    &= {\left[ x^2 - \frac{x^3}{3} \right]}_0^2 \\
+    &= 4 - \frac{8}{3} = \frac{4}{3}.
+\end{alignat*}
+
+A more complicated region might be ``the region under the paraboloid $z =
+x^2 + y^2$ and above the region in the $xy$-plane bounded by $y = \sqrt{x}$
+and $y=1-\cos x$.''
+
+We can build larger regions out of pieces, by summing smaller integrals.
+
+\section{Polar coordinates}
+Use the conversions
+\begin{alignat*}{1}
+  r &= \sqrt{x^2+y^2} \\
+  x &= r\cos\theta \\
+  y &= r\sin\theta \\
+\intertext{for the coordinates and then we have that if $R$ is a ``polar
+rectangle'' (arc-shaped region bounded by angles and radii) from $r=a$ to
+$r=b$ and $\theta = \alpha$ to $\theta = \beta$, we have}
+  \iint_R f(x,y)\,dA &= \int_\alpha^\beta \int_a^b f(r\cos\theta,
+  r\sin\theta)r\,dr\,d\theta, \\
+\intertext{which makes our lives easier for circly areas and volumes. Don't
+forget to multiply by $r$.
+\endgraf
+For squiggly and varying radii, we can use functions $h_1(\theta)$ and
+$h_2(\theta)$ instead of constants $a$ and $b$:}
+  \iint_D f(x,y)\,dA &= \int_\alpha^\beta \int_{h_1(\theta)}^{h_2(\theta)} f(r\cos\theta,
+  r\sin\theta)r\,dr\,d\theta. \\
+\end{alignat*}
+
+\section{Cylindrical coordinates}
+Just add $z$.
+
+\section{Spherical coordinates}
+I can never remember how these work. If we have a point $P$, and we drop it
+down to the $xy$-plane, the angle between the positive $x$-axis and the
+segment from the origin to $P$ is $\theta$.
+
+Next, the angle between the positive $z$-axis and the segment from the origin
+to $P$ is $\phi$.
+
+Finally, the length of the segment from the origin to $P$ is $\rho$.
+
+The conversions
+\begin{alignat*}{1}
+  x &= \rho \sin \phi \cos \theta \\
+  y &= \rho \sin \phi \sin \theta \\
+  z &= \rho \cos \phi \\
+\intertext{give us the integral-conversion for the spherical wedge bounded
+by $a \le \rho \le b, \alpha \le \theta \le \beta, c \le \phi \le d$ as}
+  \iiint_E f(x,y,z)\,dV &= \int_c^d \int_\alpha^\beta \int_a^b
+    f(\rho \sin\phi \cos\theta,\,
+      \rho \sin\phi \sin\theta,\,
+      \rho \cos \theta)
+    [\rho^2 \sin\phi]
+    \,d\rho\,d\theta\,d\phi. \\
+\end{alignat*}
+Very gross!
+
+\section{Surface area}
+
+For $f(x,y)$ with $f_x$, $f_y$ continuous, the surface area of $f$ within
+a region $D$ is
+\[A = \iint_D \left(\sqrt{f_x(x,y)^2 + f_y(x,y)^2 + 1}\right) \,dA.\]
+
+% Need notes on:
+%   - Change of variables (in multiple integrals)
+
+\chapter{Vector calculus}
+A vector field is a mapping $\R^k \mapsto \R^n$; for each point in
+$k$-dimensional Euclidean space, we associate an $n$-dimensional vector.
+These vectors can represent velocity, distance, or anything else, and come
+up in all sorts of applied fields.
+
+We'll be mostly concerned with vector fields $\R^2\mapsto\R^2$ and
+$\R^3\mapsto\R^3$.
+
+If we have a plane curve given by the vector equation
+\begin{alignat*}{1}
+  \vec r(t) &= \left< x(t), y(t) \right> \qquad a \le t \le b, \\
+\intertext{then the line integral of $f$ along $\vec r(t)$ from $a$ to $b$
+is}
+  & \int_a^b f(x(t), y(t)) \sqrt{{\left(\dd[x]{t}\right)}^2 +
+  {\left(\dd[y]{t}\right)}^2}\,dt,
+\end{alignat*}
+i.e.\ the length of the curve multiplied, at each point, by the value of the
+vector field $f$ at that point.
+
+% Need notes on:
+% 16.1, 16.2, 16.3, 16.4, 16.5,
+% Need to update cheat sheet.
+
+\appendix
+\chapter{Common formulas for derivatives and integrals}
+\backmatter
+\section{Derivatives}
+
+\begin{alignat*}{2}
+  \ddx&\;& (f + g) &= f' + g' \\
+  \ddx&& x^n &= nx^{n - 1} \\
+  \ddx&& (fg) &= fg' + f'g \\
+  \ddx&& \frac{h}{l} &= \frac{l h' - h l'}{l^2} \\
+  \ddx&& f(g(x)) &= f'(g(x)) g'(x) \quad\text{(Chain rule.)} \\
+  \ddx&& b^x &= b^x \ln b \\
+  \ddx&& f^{-1}(x) &= \frac{1}{f'(f^{-1}(x)} \\
+  \ddx&& c &= 0 \\
+  \ddx&& c\,f &= c\,f' \\
+  \ddx&& e^x &= e^x \\
+  \ddx&& e^{f(x)} &= f'(x) e^{f(x)} \quad\text{(By the chain rule.)}  \\
+  \ddx&& \ln x &= \frac{1}{x} \\
+  \ddx&& \log_b x &= \frac{1}{x \ln b} \\
+  \ddx&& [\vec u \cdot \vec v] &= \vec u' \cdot \vec v + \vec u \cdot \vec v' \\
+  \ddx&& [\vec u \times \vec v] &= \vec u' \times \vec v + \vec u \times \vec v' \\
+\end{alignat*}
+
+\subsection{Trigenometric}
+\begin{alignat*}{2}
+  \ddx&\;& \sin x &= \cos x \\
+  \ddx&& \cos x &= -\sin x \\
+  \ddx&& \tan x &= \sec^2 x \\
+  \ddx&& \cot x &= -\csc^2 x \\
+  \ddx&& \sec x &=  \sec x \tan x \\
+  \ddx&& \csc x &=  -\csc x \cot x \\
+  % inverse
+  \ddx&& \sin^{-1} x &= \frac{ 1}{\sqrt{1 - x^2}} \\
+  \ddx&& \cos^{-1} x &= \frac{-1}{\sqrt{1 - x^2}} \\
+  \ddx&& \tan^{-1} x &= \frac{ 1}{1 + x^2} \\
+  \ddx&& \cot^{-1} x &= \frac{-1}{1 + x^2} \\
+  \ddx&& \sec^{-1} x &= \frac{ 1}{|x| \sqrt{x^2 - 1}} \\
+  \ddx&& \csc^{-1} x &= \frac{-1}{|x| \sqrt{x^2 - 1}} \\
+\end{alignat*}
+
+\section{Integrals}
+See also:
+\emph{\href{https://www.whitman.edu/mathematics/calculus/calculus_08_Techniques_of_Integration.pdf}{Techniques
+of Integration}}.
+\begin{alignat*}{1}
+  \int x^n\,dx &= \frac{x^{n + 1}}{n + 1} + C \quad \text{when } n \ne -1 \\
+  \int x^{-1}\,dx &= \ln|x| + C \\
+  \int e^x\,dx &= e^x + C \\
+  \dd{t} \int_{a(t)}^{b(t)} g(s)\,ds &= b'(t) g(b(t)) - a'(t) g(a(t))
+  \quad\text{(Leibniz' rule.)} \\
+  \int uv'\,dx &= uv - \int u'v\,dx \\
+\end{alignat*}
+
+\subsection{Trigenometric}
+\begin{alignat*}{1}
+  \int \sin x\,dx &= -\cos x + C \\
+  \int \cos x\,dx &= \sin x + C \\
+  \int \sec^2 x\,dx &= \tan x + C \\
+  \int \sec x \tan x\,dx &= \sec x + C \\
+  \int \frac{1}{1 + x^2}\,dx &= \tan^{-1} x + C \\
+  \int \frac{1}{\sqrt{1 + x^2}}\,dx &= \sin^{-1} x + C \\
+\end{alignat*}
+
+\printindex
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/multivar.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.pdf	2021-11-30 22:51:41 UTC (rev 61192)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.pdf	2021-11-30 22:53:25 UTC (rev 61193)

Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.tex	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,246 @@
+%% topology-hw-1.tex
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\documentclass[twocolumn, noxcolor, maketitle]{rbt-mathnotes-hw}
+\mathnotes{
+  instructor  = Prof.~Ruth Charney ,
+  name        = Rebecca Turner ,
+  email       = rebeccaturner at brandeis.edu ,
+  course      = \textsc{math} 104a (Intro to Topology) ,
+  institution = Brandeis University ,
+  semester    = Spring 2020 ,
+}
+\title{Homework 1}
+\date{2020-01-18}
+\def\T{\mathcal{T}}
+\def\basis{\mathcal{B}}
+\usepackage[
+  letterpaper,
+  margin = 1in,
+]{geometry}
+\raggedbottom
+\begin{document}
+\maketitle
+
+\section{Topological Spaces}
+\subsection{Open Sets and the Definition of a Topology}
+\begin{problem}[1.7]
+  Define a topology on $\R$ (by listing the open sets within it) that contains
+  the open sets $(0,2)$ and $(1,3)$ that contains as few open sets as possible.
+\end{problem}
+$\T = \{ \emptyset, (0,2), (1,3), (1,2), (0,3), \R \}$.
+
+\subsection{Basis for a Topology}
+\begin{problem}[1.10]
+  Show that $\mathcal{B} = \{[a,b) \subset \R : a < b\}$ is a basis for a
+  topology on $\R$.
+\end{problem}
+\begin{enumerate}
+  \item \textbf{$\emptyset \in \T$, $\R \in \T$.} $\emptyset \in \T$ (by the
+    definition of the completion of a basis to a topology).
+
+    Next, we show $\R \in \T$. For all $n \in \Z_{\ge 0}$, $[n-1, n) \in \basis$
+    and $[-n + 1, -n) \in \basis$. We know that if $b_1, b_2 \in \basis$, $b_1
+    \union b_2 \in \T$, so these short intervals can be gathered together (``unionized'')
+    to produce $\R$:
+    \[ \bigunion_{n=1}^{\infty} \left( [n-1, n) \union [-n + 1, -n] \right) = \R, \]
+    so $\R \in \T$.
+
+  \item \textbf{$\T$ contains all finite intersections of elements of $\T$.}
+    Suppose we have two intervals $[a, b)$ and $[c, d)$. Then, we define
+    \begin{alignat*}{1}
+      a' &= \max(a, c) \\
+      b' &= \min(b, d).
+    \end{alignat*}
+    If $a' > b'$, the intersection $[a, b) \inter [c, d) = \emptyset$, which is
+    in $\T$. Otherwise, the intersection is $[a', b')$, which is an element of
+    $\basis$. All elements of the basis are in $\T$, so the intersection of two
+    elements is in the topology.
+
+    Thankfully, the intersection is itself always a basis element, so we can
+    use the same process to show that finite intersections are in $\T$ by
+    induction.
+
+  \item \textbf{Unions of elements of $\T$ are in $\T$.} By the definition of
+    the completion of a basis to a topology, this is true (all unions of basis
+    elements are included in $\T$).
+\end{enumerate}
+
+\begin{problem}[1.12]
+  % See example 1.9 for defn of \R_l
+  Determine which of the following are open sets in $\R_l$. In each case, prove
+  your assertion.
+  \[ A = [4,5)
+    \quad B = \{3\}
+    \quad C = [1,2]
+    \quad D = (7,8) \]
+\end{problem}
+\begin{enumerate}
+  \item $A$ is open in $\R_l$; $[4,5) \in \basis$.
+  \item $B$ is not an open set in $\R_l$; there is no $[a, b) \subset \R$ where
+    both $b > a$ and $|[a, b)| = 1$ (because $[0,1) \cong \R$, i.e.~all
+    intervals contain infinitely many points).
+
+    (Where $\cong$ means ``is isomorphic to.'')
+  \item $C$ is not open in $\R_l$ because the upper bound of an open set in
+    $\R_l$ is never inclusive. There is no set of intervals $[a_1, b_1), \dots$
+    where the union or intersection of the intervals has an inclusive upper bound.
+  \item $D$ is open because we can take
+    \[ D = \lim_{n\to\infty} \left[7 + \frac{1}{n}, 8\right), \]
+    where $[7 + 1/n, 8) \in \basis$ for any $n \in \R$ with $n \ne 0$.
+\end{enumerate}
+
+\pagebreak
+\begin{problem}[1.15]
+  An arithmetic progression in $\Z$ is a set
+  \[ A_{a,b} = \{\dots, a - 2b, a - b, a, a + b, a + 2b, \dots\} \]
+  with $a,b \in \Z$ and $b \ne 0$. Prove that the collection of arithmetic
+  progressions
+  \[ \mathcal{A} = \{ A_{a,b} : a, b \in \Z \text{ and } b \ne 0 \} \]
+  is a basis for a topology on $\Z$. The resulting topology is called the
+  arithmetic progression topology on $\Z$.
+\end{problem}
+
+\begin{proof}
+  \def\Ar#1#2{A_{#1,#2}}
+  \def\Ars{\mathcal{A}}
+  Let us describe the \emph{minimal form} of an arithmetic progression $\Ar ab$
+  to be the progression $\Ar{a'}{b'} = \Ar ab$ with $a', b' > 0$ and the
+  smallest possible $a'$; in particular, that $a' < b'$.
+
+  We can obtain the minimal form of the progression like so:
+  \begin{alignat*}{1}
+    a' &= a \bmod b \\
+    b' &= |b|, \\
+    \Ar{a'}{b'} &= \Ar ab.
+  \end{alignat*}
+
+  \begin{remark}
+    Two arithmetic progressions have the same elements if their minimal forms are
+    the same; this give an equivalence relation on $\Ars$.
+  \end{remark}
+
+  Now, suppose we have two arithmetic progressions $\Ar ab$ and $\Ar cd$. We
+  assume that the progressions are in minimal form without loss of generality. We
+  also assume that $b \le d$ (by swapping $(a,b)$ with $(c,d)$ if necessary),
+  again without loss of generality.
+
+  If $b \mid d$ and $a = c$, we have $\Ar ab \subset \Ar cd$. In particular, $\Ar
+  ab \inter \Ar cd = \Ar cd$.
+
+  If $b \mid d$ and $a \ne c$, we have $\Ar ab \inter \Ar cd = \emptyset$.
+
+  If $b \nmid d$, we have a different progression. An intersection is generated by
+  an index $(n_1, n_2)$, where
+  \begin{alignat*}{1}
+    a + b n_1 &= c + d n_2. \\
+    \intertext{We can then solve for $n_1$:}
+    t(n) &= c - a + dn \\
+    n_1 &= \frac{t(n_2)}{b}. \\
+    \intertext{Next, we have an infinite \emph{set} of possibilities for $n_2$:}
+    n_2 &\in \left\{n \in \Z : t(n) \mid b \right\}.
+    \intertext{Sorting the possible values of $n_2$ by absolute value, let us call
+      the smallest two values $i_1$ and $i_2$. Then, the difference between
+      adjacent elements in the intersection progression $\Ar ab \inter \Ar cd$
+      is $i_2 - i_1$.
+      \endgraf
+      Let}
+    a' &= a + bi_1 \\
+    b' &= i_2 - i_1 \\
+    \Ar ab \inter \Ar cd &= \Ar{a'}{b'}.
+  \end{alignat*}
+  This isn't super rigorous, admittedly (we're missing some inductive reasoning
+  about the integers to prove that there are an infinite set of valid values of
+  $n_2$, in particular), but I have some fairly convincing Haskell code. And the
+  missing steps are mostly boilerplate, and it's late at night already\dots
+
+  In all cases, the intersection of two arithmetic progressions is either empty or
+  another arithmetic progression (i.e.~either the empty set or another basis
+  element), so the same argument given above for $\R_l$ holds (namely that we can
+  extend this to all finite intersections of elements of $\Ars$ inductively).
+
+  Therefore, finite intersections are in the basis. Unions are in the completion
+  of the basis (again by definition). The special element $\emptyset$ is in the
+  completion (by definition), and $\Z = \Ar01$, so $\Z \in \basis$. Therefore,
+  $\Ars$ forms the basis of a topology on $\Z$.
+\end{proof}
+
+\pagebreak
+\subsection{Closed Sets}
+\begin{problem}[1.27(a)]
+  The infinite comb $C$ is the subset of the plane illustrated in Figure~1.17
+  and defined by
+  \begin{multline*}
+    C = \{(x,0) : 0 \le x \le 1\} \;\union \\
+    \bigg\{ \left( \frac{1}{2^n}, y \right) : n = 0,1,2, \dots \\
+      \text{ and } 0 \le y \le 1 \bigg\}.   
+  \end{multline*}
+  Prove that $C$ is not closed in the standard topology on $\R^2$.
+\end{problem}
+\begin{proof}
+  Suppose $C$ is closed in the standard topology on $\R^2$. Then, its complement
+  $C^c = \R^2 \setminus C$ must be an open set.
+
+  The point $(0, 1)$ is not in $C$, so $(0, 1) \in C^c$. Every open ball in $\R^2$
+  containing $(0, 1)$ also contains a smaller open ball centered about $(0, 1)$.
+  (For example, the open ball about $(-1, 1)$ of radius $1.1$ contains the open
+  ball centered about $(0, 1)$ of radius $0.1$.)
+
+  However, every open ball centered about $(0, 1)$ contains infinitely many
+  points of $C$; if the ball has radius $r$, all the comb's ``tines'' at $x =
+  1/2^n$ for $n > - \log_2 r$ intersect with the ball.
+
+  Therefore, every open ball containing $(0, 1)$ also contains points in $C$. As
+  a result, $C^c$ is not open, which contradicts our assumption. Therefore, $C$
+  is not closed.
+\end{proof}
+
+\begin{problem}[1.32]
+  Prove that intervals of the form $[a, b)$ are closed in the lower limit
+  topology on $\R$.
+\end{problem}
+\begin{proof}
+  Take some interval $[a, b)$. Its complement is given by $(-\infty, a) \union
+  [b, \infty)$. Given that
+  \begin{alignat*}{1}
+    (-\infty, a) &= \bigunion_{n=1}^\infty [a-n, a) \\
+    [b, \infty) &= \bigunion_{n=1}^\infty [b, b+n),
+  \end{alignat*}
+  the complement of $[a, b)$ is the union of a number of lower-limit intervals
+  in $\R$, i.e.~the basis elements. The basis elements and its unions are open
+  sets, so the complement of $[a, b)$ is an open set. Then, by the definition of
+  a closed set, $[a, b)$ is closed in $\R_l$.
+\end{proof}
+
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/examples/topology-hw-1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.pdf	2021-11-30 22:51:41 UTC (rev 61192)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.pdf	2021-11-30 22:53:25 UTC (rev 61193)

Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.tex	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,475 @@
+%% rbt-mathnotes.tex
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\documentclass{ltxguidex}
+
+\errorcontextlines=10
+\usepackage{longtable}
+\usepackage{changepage}
+\usepackage{metalogo}
+\usepackage{changelog}
+\newcommand{\mn}{\ctan{rbt-mathnotes}}
+
+\makeatletter
+\renewcommand{\SX at explpreset}{
+  language=[LaTeX]TeX,
+  numbers=none,
+}
+\makeatother
+
+%\setmainfont{Charter}
+\lstset{basewidth=0.6em}
+
+\usepackage[
+  nomaketitle,
+  notitles,
+  noxcolor,
+  noenumitem,
+  notheorems,
+]{rbt-mathnotes}
+
+\usepackage{FiraSans}
+\usepackage{FiraMono}
+
+\NewDocumentEnvironment{ctandescription}{}
+  {\NewDocumentCommand{\pkg}{m}{\item[\ctan{##1}]}
+  \begin{description}}
+  {\end{description}}
+
+\author{Rebecca Turner\thanks{\email{rbt at sent.as}, \https{becca.ooo}}}
+\title{The \mn\ Package}
+\date{1.0.2 2021/11/29}
+\begin{document}
+\maketitle
+
+\begin{abstract}
+  Rebecca Turner's personal macros and styles for typesetting mathematics
+  notes.
+\end{abstract}
+
+\begin{note}
+  Browse the sources, contribute, or complain at \\
+  \https{github.com/9999years/latex-mathnotes}
+\end{note}
+
+\tableofcontents
+\vfill
+\pagebreak
+
+\begin{note}
+  Copyright 2021 Rebecca B. Turner.
+
+  This work may be distributed and/or modified under the
+  conditions of the LaTeX Project Public License, either version 1.3
+  of this license or (at your option) any later version.
+  The latest version of this license is in
+    \https{www.latex-project.org/lppl.txt}
+  and version 1.3 or later is part of all distributions of LaTeX
+  version 2005/12/01 or later.
+
+  This work has the LPPL maintenance status `maintained'.
+
+  The Current Maintainer of this work is Rebecca B. Turner.
+
+  This work consists of the files:
+    \begin{itemize}
+      \item \texttt{README.md}
+      \item \texttt{rbt-mathnotes.tex}
+      \item \texttt{rbt-mathnotes.sty}
+      \item \texttt{rbt-mathnotes.cls}
+      \item \texttt{rbt-mathnotes-util.sty}
+      \item \texttt{rbt-mathnotes-messages.sty}
+      \item \texttt{rbt-mathnotes-hw.cls}
+      \item \texttt{rbt-mathnotes-formula-sheet.cls}
+      \item \texttt{examples/cheat-sheet.tex}
+      \item \texttt{examples/multivar.tex}
+      \item \texttt{examples/topology-hw-1.tex}
+    \end{itemize}
+  and the derived files:
+    \begin{itemize}
+      \item \texttt{rbt-mathnotes.pdf}
+      \item \texttt{examples/cheat-sheet.pdf}
+      \item \texttt{examples/multivar.pdf}
+      \item \texttt{examples/topology-hw-1.pdf}
+    \end{itemize}
+\end{note}
+
+\vfill
+\pagebreak
+
+\section{Package options}
+
+Some options are enabled by default, and can be disabled by passing
+|no<option>|. The enabled-by-default options are:
+\begin{keys}
+  \key{fonts}[\bool][true]
+  \key{stix}[\bool][true]
+    \begin{itemize}
+      \item In \XeTeX\ or \LuaTeX, loads the \ctan{unicode-math} package, and
+        then, if the \option{stix} option is also given, loads the
+        \texttt{STIX2Text} and \texttt{STIX2Math} \textsc{otf} fonts (available
+        in the \ctan{stix2-otf} package).
+
+        The \texttt{STIX2Math} font is loaded with stylistic sets 1 (roundhand
+        script forms instead of chancery script for |\mathcal| Script
+        Alphanumeric Symbols) and 8 (upright, rather than slanted, forms for
+        integrals); see ``Stylistic Sets'' in
+        \href{http://mirrors.ctan.org/fonts/stix2-otf/STIXTwoMath-Regular.pdf}{the
+        \texttt{stix2-otf} documentation} (pp.~51--53) for more information.
+
+      \item In other engines, if the \option{stix} option is also given, loads
+        the \package{stix2} package from \ctan{stix2-type1}.
+    \end{itemize}
+
+  \key{symbols}[\bool][true]
+
+    Defines a collection of ``natural language'' math-mode symbol commands.
+    Most commands are declared with |\ProvideDocumentCommand| so that they
+    won't overwrite custom commands you've already defined.
+
+    Note that symbols may look different depending on the \option{fonts} and
+    \option{stix} options.
+
+    \begin{longtable}{rl}
+      |\lnot| & $\lnot$ \\
+      |\Rational|, |\Rat|, |\Q| & $\Rational$ \\
+      |\Natural|, |\Nat|, |\N| & $\Natural$ \\
+      |\Integer|, |\Int|, |\Z| & $\Integer$ \\
+      |\Complex|, |\Comp|, |\C| & $\Complex$ \\
+      |\Real|, |\R| & $\R$ \\
+      |\powerset| & $\powerset$ \\
+      |\vec{A}| & $\vec{A}$ \\
+      |\intersection|, |\inter| & $\intersection$ \\
+      |\bigintersection|, |\biginter| & $\bigintersection$ \\
+      |\union| & $\union$ \\
+      |\bigunion| & $\bigunion$ \\
+      |\divisible|, |\div| & $a \divisible b$ \\
+      |\notdivisible|, |\ndivisible|, |\notdiv|, |\ndiv| & $a \notdivisible b$ \\
+      |\floor{A}| & $\floor{A}$ \\
+      |\ceil{A}| & $\ceil{A}$ \\
+      |\emptyset|, |\es| & $\emptyset$ \\
+      |\after| & $g \after f$ \\
+      |\cross| & $a \cross b$ \\
+      |\img| & $\img f$ \\
+      |\pre| & $\pre f$ \\
+      |\Stab| & $\Stab f$ \\
+      |\FixPt| & $\FixPt f$ \\
+      |\id| & $\id$ \\
+      |\injection|, |\inj| & $\injection$ \\
+      |\surjection|, |\surj| & $\surjection$ \\
+      |\bijection|, |\bij| & $\bijection$ \\
+      |\restriction|, |\restr| & $f \restr_{\N}$ \\
+      |\dd[y]{x}| & $\dd[y]{x}$ \\
+      |\pd[y]{x}| & $\pd[y]{x}$ \\
+      |\curl| & $\curl$ \\
+      |\dive| & $\dive$ \\
+    \end{longtable}
+
+  \key{maketitle}[\bool][true]
+    Redefines |\maketitle| and related commands. The provided |\maketitle|
+    command will automatically insert a |\thanks| if any email, course,
+    instructor, institution, or semester is supplied with the |\mathnotes|
+    command.
+
+  \key{titles}[\bool][true]
+    No-op; may set the format of sectioning commands in the future.
+
+  \key{xcolor}[\bool][true]
+    Load the \ctan{xcolor} package and defines several colors with the |MN|
+    prefix.
+
+  \key{theorems}[\bool][true]
+    Set up various theorem environments with the \ctan{ntheorem} and
+    \ctan{mdframed} packages.
+
+    Provides |thm| (Theorem), |lem| (Lemma), |cor| (Corollary), |prop|
+    (Proposition), |defn| (Definition), |notation|, |ex|
+    (Example), |note|, |remark|, |hint|, and |abuse-of-notation| (Abuse of
+    notation) theorem-like environments.
+
+  \key{enumitem}[\bool][true]
+    Loads the \ctan{enumitem} package.
+
+\end{keys}
+
+The other options are not enabled by default, and can be enabled by passing
+|<option>| --- the option name --- as a package option:
+\begin{keys}
+  \key{listings}[\bool]
+    Loads the \ctan{listings} and \ctan{xcolor} packages.
+    Sets default styles for listings, including setting the default language to
+    |Mathematica|.
+
+  \key{knowledge}\bool]
+    Loads the \ctan{knowledge} package and sets up default styles.
+    Patches lists so that manually placing |\AP| and |\itemAP| commands is
+    unecessary.
+
+  \key{index}[\bool]
+    Sets the |knowledge| key and starts indexing with |\makeindex|.
+
+  \key{footnotes}[\bool]
+    Loads the \ctan{footmisc} package and sets up footnotes.
+
+  \key{figures}[\bool]
+    Loads the \ctan{graphicx} and \ctan{caption} packages and sets up figure
+    captions.
+
+  \key{tabu}[\bool]
+    Loads the \ctan{multirow}, \ctan{booktabs}, \ctan{longtable}, and
+    \ctan{tabu} packages.
+
+    Defines the |\Th| command.
+
+  \key{kindle}[\bool]
+    Sets a small page size and tweaks the layout for Kindle devices; designed in
+    particular for whatever generation of Kindle Paperwhite I have.
+    Only compatible with the \ctan{memoir} document class.
+
+\end{keys}
+
+\section{Commands}
+
+\begin{desc}
+|\numberthis|
+\end{desc}
+
+At the end of a line (before the |\\|) in an \ctan{amsmath} starred
+environment, gives an equation a number.
+
+\begin{LTXexample}
+\begin{alignat*}{2}
+  x &= y \\
+  y &= 2z \numberthis \\
+  z &= 1/w
+\end{alignat*}
+\end{LTXexample}
+
+\begin{desc}
+|\labelthis{<label>}|
+\end{desc}
+
+At the end of a line (before the |\\|) in an \ctan{amsmath} starred
+environment, gives an equation a number and label for referencing.
+
+\begin{LTXexample}
+\begin{alignat*}{2}
+  x &= y \\
+  y &= 2z \labelthis{eq:cool} \\
+  z &= 1/w.
+\end{alignat*}
+As we saw in
+Equation~\ref{eq:cool}, \dots
+\end{LTXexample}
+
+\begin{desc}
+|\newacronym[<command>]{<text>}|
+\end{desc}
+
+Defines |\<command>| to be |\textsc{<text>}|; |<command>| defaults to |<text>|
+if ommitted.
+
+\begin{LTXexample}
+\newacronym{nist}
+\newacronym[\seetan]{ctan}
+
+\nist\ is not associated
+with \seetan.
+\end{LTXexample}
+
+\begin{desc}
+|\newacronyms{<acronyms>}|
+\end{desc}
+
+Defines a collection of acronym commands together using |\newacronym|;
+|<acronyms>| is a comma-separated list of acronyms.
+
+\begin{LTXexample}
+\newacronyms{apa, mla}
+
+\apa\ and \mla\ are common
+citation styles.
+\end{LTXexample}
+
+\begin{desc}
+|\mathnotes{<key-value pairs>}|
+\end{desc}
+
+\begin{keys}
+  \key{date}[\m{date}]
+  \key{author}[\m{author}]
+  \key{title}[\m{title}]
+    Sets the date, author, or title; setting these keys are equivalent to using the
+    |\date|, |\author|, and |\title| commands, respectively.
+
+  \key{institution}[\m{institution}]
+    Sets the institution (e.g., Brandeis University) associated with the
+    document.
+  \key{course}[\m{course}]
+    Sets the course (e.g., \textsc{math}~23a) associated with the
+    document.
+  \key{semester}[\m{semester}]
+    Sets the semester (e.g., Fall 2018) associated with the document.
+  \key{instructor}[\m{instructor}]
+    Sets the instructor (e.g., Prof.~Ruth~Charney) associated with the document.
+  \key{email}[\m{email}]
+    Sets the email (e.g., \email{rbt at sent.as}) associated with the author.
+\end{keys}
+
+\begin{desc}
+|\TODO[<item>]|
+\end{desc}
+
+Typesets a to-do marker.
+
+\begin{LTXexample}
+\TODO
+
+\TODO[explain in detail]
+\end{LTXexample}
+
+\begin{desc}
+|\email{<email>}|
+\end{desc}
+Typesets an email address, with a link if the \ctan{hyperref} package is loaded.
+
+\begin{LTXexample}
+\email{rbt at sent.as}
+\end{LTXexample}
+
+\begin{desc}
+|\Th[<column spec>]{<header>}|
+\end{desc}
+Typesets a table column header in bold using |\multicolumn|. Especially useful
+if the column in question is a math or numeric column.
+
+\m{column spec} defaults to |l| (left-aligned).
+
+\section{The \texttt{rbt-mathnotes} document class}
+
+The \mn\ document class is a \ctan{memoir}-based class that automatically loads
+the \mn\ package.
+
+\section{The \texttt{rbt-mathnotes-hw} document class}
+
+The |rbt-mathnotes-hw| document class is based on the |rbt-mathnotes| document
+class, providing additional commands and styles for typesetting homework
+assignments.  Theorems are given subtler styling that takes up less space on
+the page.  The author name and title are added to the top-left heading.
+
+\begin{desc}
+|problem| \\
+|\begin{problem}[<number or options>]| \\
+|\prob[<number or options>]{<text>}|
+\end{desc}
+
+The |problem| environment (and its matching shorthand |\prob|) typesets a
+homework problem typesets a homework problem. Problems are added to the table of
+contents at the chapter-level, which is the top level if I remember correctly.
+
+\m{number or options} is a list of key-value pairs:
+
+\begin{keys}
+  \key{number}[\m{number}]
+    Sets the problem's number. For brevity, an unrecognized key with no value
+    is also used as the problem number; this allows concise expressions like
+    |\begin{problem}[4.3a] ...| to specify problem numbers (to match textbook
+    problem numbers, for example). Otherwise, problem numbers
+    start at 1 and count up.
+
+  \key{title}[\m{title}]
+    Sets the problem's ``title''.
+
+  \key{label}[\m{label}]
+    Sets the problem's label (e.g., |prob:n-sheeted-covering|), which can be
+    referred to later with |\ref|.
+\end{keys}
+
+If your professor calls them ``exercises'' or something, you can change the
+string used to refer to them with the |\mathnotes| command, which supports an
+additional key in |rbt-mathnotes-hw|:
+\begin{keys}
+  \key{problem string}[\m{problem string}][Problem]
+    The string used to represent a problem in titles and contents entries.
+\end{keys}
+
+\pagebreak
+\section{The \texttt{rbt-mathnotes-formula-sheet} document class}
+
+Sometimes, exams will let you take any formula sheet of a given size as
+reference material. The |rbt-mathnotes-formula-sheet| document class (based on the
+\ctan{article} class) is optimized for getting as much material as possible in
+that area. A tiny |\maketitle| is provided, as well as a tiny |\section|.
+Theorem titles are highly abbreviated (``Thm'' instead of ``Theorem''). Lists
+are rendered without linebreaks between items. Paragraphs are compressed and the
+page margins are set to a tenth of an inch. The entire document is set in
+|\scriptsize|.
+
+Some additional keys are added to the |\mathnotes| command to customize the
+output:
+
+\begin{keys}
+  \key{columns}[\m{column count}][3]
+    The number of text columns to set the formula sheet in; use 1 to turn off
+    columns.
+
+  \key{balance columns}
+    If set, the unstarred |multicols| environment is used instead of |multicols*|,
+    which attempts to spread material between each of the columns evenly, to
+    make their vertical sizes as even as possible.
+
+    It doesn't look great --- you want to know when you've filled up one column
+    --- so it's off by default.
+
+  \key{width}[\m{width}][8.5in]
+  \key{height}[\m{height}][11in]
+    Set the paper width and height. The 0.1 inch margins are not customizable.
+\end{keys}
+
+\begin{changelog}[author=Rebecca Turner]
+  \begin{version}[v=1.0.2, date=2021-11-27, short]
+    Added license notice to all files.
+  \end{version}
+
+  \begin{version}[v=1.0.1, date=2021-11-24, short]
+    Renamed package from \texttt{mathnotes} to \texttt{rbt-mathnotes} to avoid
+    a file name conflict with
+    \href{http://mirrors.ctan.org/fonts/newtx/doc/mathnotes.pdf}{\texttt{CTAN:/fonts/newtx/doc/mathnotes.pdf}}.
+  \end{version}
+
+  \begin{version}[v=1.0.0, date=2021-11-04, short]
+    Initial release as \texttt{mathnotes}, documented package.
+  \end{version}
+\end{changelog}
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/rbt-mathnotes/rbt-mathnotes.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-formula-sheet.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-formula-sheet.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-formula-sheet.cls	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,150 @@
+%% rbt-mathnotes-formula-sheet.cls
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplClass{rbt-mathnotes-formula-sheet}{2021/11/29}{1.0.2}{Styles
+  for mathematical exam formula sheets.}
+
+\LoadClass{article}
+
+\RequirePackage{rbt-mathnotes}
+
+\cs_set:Npn \@maketitle
+  {
+    \textbf{\@title}~
+    (\@author,~\@date)
+  }
+
+\cs_set:Npn \mn__tiny_thm:nn #1#2
+  {
+    \RenewDocumentEnvironment { #1 } { o }
+      {
+        \textbf
+          {
+            #2
+            \IfValueT { ##1 }
+              {
+                :~##1
+              }
+            .
+          }
+      }
+      {
+      }
+  }
+
+\mn__tiny_thm:nn { thm } { Thm }
+\mn__tiny_thm:nn { lem } { Lem }
+\mn__tiny_thm:nn { cor } { Cor }
+\mn__tiny_thm:nn { prop } { Prop }
+\mn__tiny_thm:nn { defn } { Defn }
+\mn__tiny_thm:nn { ex } { Ex }
+\mn__tiny_thm:nn { note } { Note }
+\mn__tiny_thm:nn { remark } { Rmrk }
+
+\prg_new_conditional:Npnn \mn__if_should_use_multicols:
+  { T, }
+  {
+    \int_compare:nNnTF
+      { \g__mn_fs_columns_int } = { \c_one_int }
+      { \prg_return_false: }
+      { \prg_return_true: }
+  }
+
+\RequirePackage{multicol}
+\AtBeginDocument
+  {
+    \scriptsize
+    \mn__if_should_use_multicols:T
+      {
+        \begin
+          {
+            multicols
+            \bool_if:NF \g__mn_should_balance_multicols_bool
+              { * }
+          }
+          {
+            \int_use:N \g__mn_fs_columns_int
+          }
+      }
+    \skip_set:Nn \abovedisplayskip { 0pt }
+    \skip_set:Nn \belowdisplayskip { 0pt }
+  }
+
+\AtEndDocument
+  {
+    \mn__if_should_use_multicols:T
+      {
+        \end
+          {
+            multicols
+            \bool_if:NF \g__mn_should_balance_multicols_bool
+              { * }
+          }
+      }
+  }
+
+\bool_new:N \g__mn_should_balance_multicols_bool
+
+\keys_define:nn { mn__main }
+  {
+    columns .int_set:N = \g__mn_fs_columns_int ,
+    columns .initial:x = 3 ,
+
+    balance~columns .default:n = true ,
+    balance~columns .bool_set:N = \g__mn_should_balance_multicols_bool ,
+
+    width .value_required:n = true ,
+    width .code:n = \geometry{ paperwidth = #1 } ,
+
+    height .value_required:n = true ,
+    height .code:n = \geometry{ paperheight = #1 } ,
+  }
+
+\RequirePackage
+  [
+    letterpaper ,
+    margin = 0.1in ,
+  ]
+  { geometry }
+
+\skip_set:Nn \parskip { 0.25em }
+
+\RequirePackage { enumitem }
+\setlist
+  {
+    nosep
+  }
+
+\def\section#1{\hrulefill\\\textbf{#1}\\}


Property changes on: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-formula-sheet.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-hw.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-hw.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-hw.cls	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,325 @@
+%% rbt-mathnotes-hw.cls
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplClass{rbt-mathnotes-hw}{2021/11/29}{1.0.2}{Companion styles
+  to rbt-mathnotes for typeset homework assignments.}
+
+% \PassOptionsToPackage{noxcolor}{rbt-mathnotes}
+
+\RequirePackage{kvoptions}
+\DeclareDefaultOption
+  {
+    \PassOptionsToClass { \CurrentOption } { rbt-mathnotes }
+  }
+\ProcessKeyvalOptions*
+
+\LoadClass { rbt-mathnotes }
+
+\cs_set:Npn \mn__undefine_thm:n #1
+  {
+    \cs_undefine:c { #1 }
+    \cs_undefine:c { end#1 }
+    \cs_undefine:c { #1* }
+    \cs_undefine:c { end#1* }
+  }
+
+\mn__undefine_thm:n { thm }
+\mn__undefine_thm:n { lem }
+\mn__undefine_thm:n { cor }
+\mn__undefine_thm:n { prop }
+\mn__undefine_thm:n { defn }
+\mn__undefine_thm:n { notation }
+\mn__undefine_thm:n { ex }
+
+\cs_undefine:N \mn__undefine_thm:n
+
+\theoremstyle { definition }
+\newtheorem { thm } { Theorem }
+\newtheorem { lem } { Lemma }
+\newtheorem { cor } { Corollary }
+\newtheorem { prop } { Proposition }
+\newtheorem { defn } { Definition }
+\newtheorem { notation } { Notation }
+\newtheorem { ex } { Example }
+
+% The displayed problem number. \g__mn_problems_int isn't incremented if a
+% custom number is given.
+\int_new:N \g__mn_problems_int
+\int_set_eq:NN \g__mn_problems_int \c_one_int
+
+% The internal problem number. \g__mn_all_problems_int is *always*
+% incremented, so it can be used as a unique identifier in hyperref
+% pdf bookmark names.
+\int_new:N \g__mn_all_problems_int
+\int_set_eq:NN \g__mn_all_problems_int \c_one_int
+
+% Label prepended to problem numbers.
+\tl_const:Nn \g__mn_problem_string_tl { Problem }
+
+\skip_const:Nn \g__mn_problem_before_skip { 2em }
+
+% Label appended to problem numbers; omitted from PDF bookmarks.
+\tl_const:Nn \g__mn_problem_after_tl { . }
+
+% A possible custom problem number. If \c_novalue_tl, use
+% \g__mn_problems_int instead.
+\tl_new:N \mn__problem_number_tl
+\tl_set_eq:NN \mn__problem_number_tl \c_novalue_tl
+
+\tl_const:Nn \mn__problem_number_default_tl
+  {
+    \int_to_arabic:n { \g__mn_problems_int }
+  }
+
+% Current problem number, either from \g__mn_problems_int or
+% \mn__problem_number_tl.
+\tl_new:N \mn__problem_number_current_tl
+
+% Current problem display title, including "problem" label, number, and
+% custom title.
+% \tl_new:N \mn__problem_display_title_tl
+
+\keys_define:nn { mn__main }
+  {
+    problem~string .value_required:n = true ,
+    problem~string .tl_set:N = \g__mn_problem_string_tl ,
+    problem~before~skip .skip_set:N = \g__mn_problem_before_skip
+  }
+
+\keys_define:nn { mn__problem }
+  {
+    number .value_required:n = true ,
+    number .tl_set:N = \mn__problem_number_tl ,
+
+    title .value_required:n = true ,
+    title .tl_set:N = \mn__problem_title_tl ,
+    title .initial:n = ,
+
+    label .value_required:n = true ,
+    label .tl_set:N = \mn__problem_label_tl ,
+
+    % Treat unknown keys as the problem number; this lets us avoid having
+    % 2 or more optional arguments.
+    unknown .code:n =
+      \tl_if_empty:nTF { #1 }
+        {
+          % No value; use it for the problem number.
+          \tl_set_eq:NN \mn__problem_number_tl \l_keys_key_tl
+        }
+        {
+          % Non-empty value; give an error.
+          \msg_error:nnx
+            { mathnotes }
+            { no key in problem }
+            { \tl_use:N \l_keys_key_tl }
+        } ,
+  }
+
+\cs_set:Npn \mn__problem_title_pdf:
+  {
+    % A string like "Problem" or "Exercise" or "Question"
+    \tl_use:N \g__mn_problem_string_tl
+    % The problem number.
+    \tl_if_empty:NF \mn__problem_number_current_tl
+      {
+        \ \tl_use:N \mn__problem_number_current_tl
+      }
+    \tl_if_empty:NF \mn__problem_title_tl
+      {
+        :~\tl_use:N \mn__problem_title_tl
+      }
+  }
+
+\cs_set:Npn \mn__problem_title:
+  {
+    \mn__problem_title_pdf:
+    % The text after the problem, nominally a period (".").
+    \tl_use:N \g__mn_problem_after_tl
+  }
+
+% PDF anchor / bookmark name for hyperref.
+\cs_set:Npn \mn__problem_anchor:
+  {
+    problem.\int_to_arabic:n { \g__mn_all_problems_int }
+  }
+
+\NewDocumentEnvironment { problem }
+  {
+    O{} % Problem number or options
+  }
+  {
+    \keys_set:nn { mn__problem } { #1 }
+
+    % Set the problem number
+    \tl_set:Nn \mn__problem_number_current_tl { }
+    \tl_if_eq:NNTF \mn__problem_number_tl \c_novalue_tl
+      {
+        % No number given
+        \tl_set_eq:NN \mn__problem_number_current_tl \mn__problem_number_default_tl
+      }
+      {
+        % Some number given, *maybe* empty
+        \tl_set_eq:NN \mn__problem_number_current_tl \mn__problem_number_tl
+      }
+
+    \vspace { \skip_use:N \g__mn_problem_before_skip }
+
+    \phantomsection
+    \addcontentsline
+      { toc }
+      { chapter }
+      { \mn__problem_title_pdf: }
+    \begin{mdframed}
+      [
+        style = note ,
+        startinnercode =
+          \mn__note_title:n
+            {
+              \cs_gset:Npx \@currentlabel { \tl_use:N \mn__problem_number_current_tl }
+              \cs_gset:Npx \@currentlabelname { \mn__problem_title: }
+              \tl_if_empty:NF \mn__problem_label_tl
+                {
+                  \exp_after:wN \label { \tl_use:N \mn__problem_label_tl }
+                }
+              \mn__problem_title:
+            }
+          ,
+      ]
+  }
+  {
+    \end{mdframed}
+    % If we didn't get a custom number, increment the counter.
+    \tl_if_eq:NNT \mn__problem_number_tl \c_novalue_tl
+      {
+        \int_gincr:N \g__mn_problems_int
+      }
+    % But always increment the internal counter.
+    \int_gincr:N \g__mn_all_problems_int
+  }
+
+\NewDocumentCommand \prob
+  {
+    O{} % Problem number or options
+    m % Problem text
+  }
+  {
+    \begin{problem}[#1]
+      #2
+    \end{problem}
+  }
+
+\cs_set:Npn \mn__add_par_arg_to_sectioning_cmd:N #1
+  {
+    \cs_set_eq:cN { mn__\cs_to_str:N #1 _old } #1
+    \cs_set_eq:cc
+      { mn__the\cs_to_str:N #1 _old }
+      { the\cs_to_str:N #1 }
+    \RenewDocumentCommand #1
+      {
+        s % ##1: Numbered / in ToC?
+        d() % ##2: Number override.
+        o % ##3: ToC title.
+        o % ##4: Page header title.
+        m % ##5: Title.
+      }
+      {
+        \group_begin:
+        \cs_set:Npx \mn__current_thesection_cmd
+          { the\cs_to_str:N #1 }
+        % Is there a number override?
+        \IfValueTF { ##2 }
+          {
+            % If yes, *globally* change the number format.
+            \cs_gset:cpn { \mn__current_thesection_cmd } { ##2 }
+          }
+          {
+            % Otherwise, restore the number format from a previous override,
+            % if applicable.
+            \cs_gset_eq:cc
+              { \mn__current_thesection_cmd }
+              { mn__the\cs_to_str:N #1 _old  }
+          }
+        % Save the original command so we can use it as a single token.
+        \cs_set_eq:Nc \mn__orig_sectioning_cmd { mn__\cs_to_str:N #1 _old }
+        \exp_last_unbraced:Ne \mn__orig_sectioning_cmd
+          {
+            % Propagate the star.
+            \IfBooleanT { ##1 } { * }
+            % Propogate other arguments.
+            \IfValueT { ##3 } { [##3] }
+            \IfValueT { ##4 } { [##4] }
+            { ##5 }
+          }
+        \group_end:
+      }
+  }
+
+\cs_set:Npn \mn__add_par_arg_to_sectioning_cmds:n #1
+  {
+    \clist_map_function:nN { #1 } \mn__add_par_arg_to_sectioning_cmd:N
+  }
+
+\makeheadstyles { rbt-mathnotes-hw }
+  {
+    \chapterstyle { rbt-mathnotes }
+    \headstyles { rbt-mathnotes }
+
+    % Don't use chapter numbers in sections and beyond:
+    \cs_set:Npn \thesection { \arabic{section} }
+
+    % Add paren-arg to override numbers in sectioning commands.
+    \mn__add_par_arg_to_sectioning_cmds:n
+      {
+        \chapter ,
+        \section ,
+        \subsection ,
+        \subsubsection ,
+        \paragraph ,
+        \subparagraph ,
+      }
+  }
+
+\headstyles { rbt-mathnotes-hw }
+
+\setlength{\columnsep}{3em}
+
+% No chapter numbers for figures.
+\counterwithout{figure}{chapter}
+
+% Put author name, title in headings
+\makeevenfoot { headings } { } { } { }
+\makeoddfoot  { headings } { } { } { }
+\makeevenhead { headings } { } { } { \thepage }
+\makeoddhead  { headings } { \@author,~\textit{ \@title } } { } { \thepage }


Property changes on: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-hw.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-messages.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-messages.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-messages.sty	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,76 @@
+%% rbt-mathnotes-messages.sty
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{rbt-mathnotes-messages}{2021/11/29}{1.0.2}{Messages
+  for mathnotes.}
+
+\msg_new:nnnn { mathnotes }
+  { no name }
+  {
+    No~author~name~given~but~\exp_not:N \maketitle~was~still~used.
+  }
+  {
+    Set~your~name~in~the~preamble: \\
+    \exp_not:N \mathnotes\{~name~=~Your~name~...~,~\}
+  }
+
+\msg_new:nnnn { mathnotes }
+  { acronym already defined }
+  {
+    Command~#1~already~defined;~refusing~to~redefine~as~an~acronym~for~#2.
+  }
+  {
+    Pick~a~different~destination~control~sequence~with~\protect\newacronym's~
+    optional~argument?
+  }
+
+\msg_new:nnnn { mathnotes }
+  { no key in problem }
+  {
+    Key~#1~is~not~defined~for~the~problem~environment.
+  }
+  {
+    If~you~meant~to~set~the~problem~number,~don't~include~a~value.
+  }
+
+
+\msg_new:nnnn { mathnotes }
+  { requires memoir class }
+  {
+    Option~#1~can~only~be~used~with~the~memoir~class!
+  }
+  {
+    Use~the~memoir~document~class~or~one~of~the~rbt-mathnotes~classes~wrapping~it.
+  }


Property changes on: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-messages.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-util.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-util.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-util.sty	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,180 @@
+%% rbt-mathnotes-util.sty
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{rbt-mathnotes-util}{2021/11/29}{1.0.2}{Utility commands
+  for rbt-mathnotes.}
+
+\cs_set:Npn \mn__legacy_bool_option:n #1
+  {
+    \bool_new:c { g__mn_#1_bool }
+    \csname if\@currname @#1 \endcsname
+      \bool_gset_true:c { g__mn_#1_bool }
+    \else
+      \bool_gset_false:c { g__mn_#1_bool }
+    \fi
+  }
+
+\keys_define:nn { mn_options }
+  {
+    init .tl_set:N = \l__mn_options_init_tl ,
+    init .default:n = true ,
+    init .initial:x = \tl_use:N \c_novalue_tl ,
+
+    default .tl_set:N = \l__mn_options_default_tl ,
+    default .value_required:n = true ,
+    default .initial:x = \tl_use:N \c_novalue_tl ,
+
+    type .choice: ,
+    type .choices:nn = { bool, str }
+      { \tl_set_eq:NN \l__mn_options_type_tl \l_keys_choice_tl } ,
+    type .value_required:n = true ,
+    type .initial:n = bool ,
+  }
+
+% A hook which executes after \ProcessKeyvalOptions and is used to convert
+% TeX booleans and so on to LaTeX3 booleans and strings.
+\tl_new:N \g__mn_after_options_hook_tl
+% A hook used to define a particular option, allowing keys to be set only in
+% a group.
+\tl_new:N \g__mn_define_option_tl
+% Initializes complementary #1 and no#1 package options.
+\NewDocumentCommand \mn__option_new { o m }
+  {
+    \tl_gclear:N \g__mn_define_option_tl
+    \group_begin:
+    \tl_if_novalue:nF { #1 }
+      { \keys_set:nn { mn_options } { #1 } }
+
+    \tl_set:Nn \l_tmpa_tl { bool }
+    \tl_if_eq:NNT \l__mn_options_type_tl \l_tmpa_tl
+      {
+        % If no default was given, use `false` for bools.
+        \tl_if_eq:NNT \l__mn_options_init_tl \c_novalue_tl
+          { \tl_set:Nn \l__mn_options_init_tl { false } }
+
+        \tl_gput_right:Nx \g__mn_define_option_tl
+          {
+            \exp_not:N \DeclareBoolOption [\l__mn_options_init_tl]{#2}
+            \exp_not:N \DeclareComplementaryOption {no#2}{#2}
+          }
+
+        % After we process options, convert to an expl3 bool.
+        \tl_gput_right:Nn \g__mn_after_options_hook_tl
+          {
+            % Adapt the legacy bool into an expl3 bool.
+            \mn__legacy_bool_option:n { #2 }
+            % Then, delete the legacy bool.
+            \mn__legacy_bool_undefine:n { \@currname @#2 }
+          }
+      }
+
+    % For a string option:
+    \tl_set:Nn \l_tmpa_tl { str }
+    \tl_if_eq:NNT \l__mn_options_type_tl \l_tmpa_tl
+      {
+        \tl_gput_right:No \g__mn_define_option_tl
+          {
+            \exp_not:N \DeclareStringOption
+              \tl_if_eq:NNF \l__mn_options_init_tl \c_novalue_tl
+                { [\l__mn_options_init_tl] }
+              { #2 }
+              \tl_if_eq:NNF \l__mn_options_default_tl \c_novalue_tl
+                { [\l__mn_options_default_tl] }
+          }
+
+          \tl_gput_right:Nn \g__mn_after_options_hook_tl
+            {
+              % Create the new tl for this option.
+              \tl_new:c { g__mn_#2_tl }
+              % Set it to the command kvoptions created.
+              \tl_set:co { g__mn_#2_tl } { \cs:w \@currname @#2 \cs_end: }
+              % Delete the old command.
+              \cs_undefine:c { \@currname @#2 }
+            }
+      }
+    \group_end:
+    \tl_use:N \g__mn_define_option_tl
+  }
+
+\cs_set:Npn \mn__process_options:n #1
+  {
+    \ProcessKeyvalOptions { #1 }
+    \tl_use:N \g__mn_after_options_hook_tl
+  }
+
+\cs_set:Npn \mn__legacy_bool_undefine:n #1
+  {
+    \cs_undefine:c { if#1 }
+    \cs_undefine:c { #1true }
+    \cs_undefine:c { #1false }
+  }
+
+% Package configuration string values.
+% {< module >}{< family >}{< key name >}
+\cs_set:Npn \mn__key_new:nnn #1#2#3
+  {
+    \tl_set_eq:cN { l__#1_#3_tl } \c_novalue_tl
+    \keys_define:nn { #2 }
+      {
+        #1 .value_required:n = true,
+        #1 .tl_set:c = l__#1_#3_tl,
+      }
+  }
+
+\cs_set:Npn \mn__mathnotes_key_new:n #1
+  {
+    \mn__key_new:nnn { mn } { mathnotes } { #1 }
+  }
+
+\cs_set:Npn \mn__keys_new:n #1 { \clist_map_function:nN { #1 } \mn__mathnotes_key_new:n }
+
+\prg_new_conditional:Npnn \mn__if_package_loaded:n #1
+  { p, T, F, TF }
+  {
+    \@ifpackageloaded { #1 }
+      { \prg_return_true: }
+      { \prg_return_false: }
+  }
+
+\prg_new_conditional:Npnn \mn__if_novalue:N #1
+  { p, T, F, TF }
+  {
+    \tl_if_eq:NNTF \c_novalue_tl #1
+      { \prg_return_true: }
+      { \prg_return_false: }
+  }
+\prg_generate_conditional_variant:Nnn \mn__if_novalue:N
+  { c }
+  { p, T, F, TF }


Property changes on: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes-util.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.cls	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,202 @@
+%% rbt-mathnotes.cls
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplClass{rbt-mathnotes}{2021/11/29}{1.0.2}{Styles for mathematical
+  note taking.}
+
+\PassOptionsToClass { openany, oneside } { memoir }
+
+\LoadClass{memoir}
+\setsecnumdepth{subsubsection}
+\settocdepth{subsubsection}
+\nouppercaseheads
+\makeevenfoot { plain } { } { } { }
+\makeoddfoot  { plain } { } { } { }
+\makeevenhead { plain } { } { } { \thepage }
+\makeoddhead  { plain } { } { } { \thepage }
+
+\RequirePackage{etoolbox}
+\RequirePackage{xparse}
+\AtBeginDocument{
+    \patchcmd { \@tocmaketitle }
+      { \thispagestyle { chapter } }
+      { }
+      { }
+      { }
+  }
+
+\makechapterstyle { rbt-mathnotes }
+  {
+    % allow for 99 chapters!
+    \settowidth{\chapindent}{\chapnumfont 999}
+
+    \RenewDocumentCommand \chapnumfont { }
+      {
+        \normalfont
+        \huge
+        \exp:w \mn__color:n {MNsecnum}
+      }
+    \RenewDocumentCommand \chapterheadstart { } { }
+    \RenewDocumentCommand \printchaptername { } { }
+    \RenewDocumentCommand \chapternamenum   { } { }
+    \RenewDocumentCommand \printchapternum  { }
+      {
+        \noindent
+        \llap
+          {
+            \makebox [ \chapindent ]
+              { \chapnumfont \thechapter }
+          }
+      }
+    \RenewDocumentCommand \afterchapternum  { } { }
+    \RenewDocumentCommand \printchaptertitle { m }
+      {
+        \raggedright
+        \huge
+        ##1
+      }
+    \RenewDocumentCommand \afterchaptertitle { }
+      {
+        \vskip \onelineskip
+        \hrule
+        \vskip \onelineskip
+      }
+  }
+
+\makeheadstyles { rbt-mathnotes }
+  {
+    \chapterstyle { rbt-mathnotes }
+
+    \setsecnumformat
+      {
+        \group_begin:
+        \exp:w \mn__color:n {MNsecnum}
+        \cs:w the##1 \cs_end:
+        \quad
+        \group_end:
+      }
+
+    % Sections.
+    \setbeforesecskip
+      {
+          -1\onelineskip plus -0.5\onelineskip minus -0.5\onelineskip
+      }
+    \setaftersecskip
+      {
+        1\onelineskip plus 0.1\onelineskip
+      }
+    \setsecheadstyle
+      {
+        \normalfont
+        \memRTLraggedright
+        \bfseries
+        \LARGE
+        % \scshape
+        % \MakeTextLowercase
+      }
+
+    % Subsections.
+    \setbeforesubsecskip
+      {
+        -1.0\onelineskip plus -0.25\onelineskip minus -0.25\onelineskip
+      }
+    \setaftersubsecskip
+      {
+        1.0\onelineskip plus 0.1\onelineskip
+      }
+    \setsubsecheadstyle
+      {
+        \sethangfrom { \noindent ####1 }
+        \normalfont
+        \bfseries
+        \memRTLraggedright
+      }
+
+    % Subsubsections.
+    \setbeforesubsubsecskip
+      {
+        1.0\onelineskip plus 0.5\onelineskip minus 0.2\onelineskip
+      }
+    \setaftersubsubsecskip
+      {
+        1.0\onelineskip plus 0.1\onelineskip
+      }
+    \setsubsubsecheadstyle
+      {
+        \normalfont
+        \normalsize
+        \bfseries
+        \memRTLraggedright
+      }
+
+    % Paragraphs.
+    \setbeforeparaskip
+      {
+        1.0\onelineskip plus 0.5\onelineskip minus 0.2\onelineskip
+      }
+    \setafterparaskip { -1em }
+    \setparaheadstyle
+      {
+        \normalfont
+        \normalsize
+        \bfseries
+      }
+
+    % Subparagraphs.
+    \setsubparaindent { \parindent }
+    \setbeforesubparaskip
+      {
+        1.0\onelineskip plus 0.5\onelineskip minus 0.2\onelineskip
+      }
+    \setaftersubparaskip { -1em }
+    \setsubparaheadstyle
+      {
+        \normalfont
+        \normalsize
+        \itshape
+        \addperiod
+      }
+  }
+
+\headstyles { rbt-mathnotes }
+
+% \chapterstyle{hangnum}
+% \cs_set:Npn \chapnumfont
+  % {
+    % \HUGE \bfseries
+    % \exp:w \mn__color:n {MNsecnum}
+  % }
+
+\RequirePackage { rbt-mathnotes }


Property changes on: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.sty	2021-11-30 22:53:25 UTC (rev 61193)
@@ -0,0 +1,1122 @@
+%% rbt-mathnotes.sty
+%% Copyright 2021 Rebecca B. Turner.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Rebecca B. Turner.
+%
+% This work consists of the files:
+%     README.md
+%     rbt-mathnotes.tex
+%     rbt-mathnotes.sty
+%     rbt-mathnotes.cls
+%     rbt-mathnotes-util.sty
+%     rbt-mathnotes-messages.sty
+%     rbt-mathnotes-hw.cls
+%     rbt-mathnotes-formula-sheet.cls
+%     examples/cheat-sheet.tex
+%     examples/multivar.tex
+%     examples/topology-hw-1.tex
+% and the derived files:
+%     rbt-mathnotes.pdf
+%     examples/cheat-sheet.pdf
+%     examples/multivar.pdf
+%     examples/topology-hw-1.pdf
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{rbt-mathnotes}{2021/11/29}{1.0.2}{Styles for
+  mathematical note taking.}
+\errorcontextlines 20
+% Module 'mn'
+
+% Load some utility packages.
+\RequirePackage{xparse}  % Better command declarations.
+\RequirePackage{xkeyval}  % Better keyval parsing.
+% {{{ Package options
+\RequirePackage{kvoptions}  % More flexible package options.
+\RequirePackage{rbt-mathnotes-util}
+
+\SetupKeyvalOptions
+  {
+    family = mn__package_options ,
+  }
+
+\mn__option_new[init = true]{fonts}
+\mn__option_new[init = true]{stix}
+\mn__option_new[init = true]{symbols}
+\mn__option_new[init = true]{maketitle}
+\mn__option_new[init = true]{titles}
+\mn__option_new[init = true]{xcolor}
+\mn__option_new[init = true]{theorems}
+\mn__option_new[init = true]{enumitem}
+\mn__option_new{listings}
+\mn__option_new{knowledge}
+\mn__option_new{index}
+\mn__option_new{footnotes}
+\mn__option_new{figures}
+\mn__option_new{tabu}
+\mn__option_new{kindle}
+
+\mn__process_options:n { mn__package_options } % }}}
+
+\RequirePackage{rbt-mathnotes-messages}
+
+% {{{ Load fonts.
+% Check if we can load fontspec; this is taken from fontspec.sty.
+\bool_new:N  \c__mn_fontspec_bool
+\bool_set:Nn \c__mn_fontspec_bool
+  {
+    \sys_if_engine_xetex_p: || \sys_if_engine_luatex_p:
+  }
+
+% NOTE: The order these packages are loaded in is very important.
+% - mathtools has to be loaded before these or overbrackets and such get
+%   messed up
+% - unicode-math overwrites a bunch of commands, so should be loaded after
+%   amsmath and others
+% - amsmath should be loaded after stix2 (not sure why, but the stix2
+%   documentation specifies this) -- however, if we can use fontspec, we
+%   just load the stix2 fonts without the stix2 package itself, so we load
+%   amsmath before unicode-math (and the stix2 fonts)
+\RequirePackage{mathtools}
+\bool_if:NTF \g__mn_fonts_bool
+  {
+    \bool_if:NTF \c__mn_fontspec_bool
+      {
+        \RequirePackage{amsmath}[2013/01/14]
+        % unicode-math makes equations copy/pastable in PDF output.
+        % Note that unicode-math encapsulates the functionality of fontspec.
+        \RequirePackage[
+          warnings-off={mathtools-colon,mathtools-overbracket}
+        ]{unicode-math}
+        \bool_if:NT \g__mn_stix_bool
+          {
+            \setmainfont
+              [
+                UprightFont    = *-Regular ,
+                ItalicFont     = *-Italic ,
+                BoldFont       = *-Bold ,
+                BoldItalicFont = *-BoldItalic ,
+                Extension      = .otf ,
+              ]
+              { STIX2Text }
+
+            \setmathfont
+              [
+                StylisticSet =
+                  {
+                    1 , % better caligraphic forms
+                    8 , % upright integrals
+                  } ,
+                Extension = .otf ,
+              ]
+              { STIX2Math }
+          }
+      }
+      {
+        % Otherwise, load non-XeTeX fallbacks.
+        \bool_if:NT \g__mn_stix_bool
+          {
+            \RequirePackage[upint]{stix2}
+          }
+        \RequirePackage{amsmath}[2013/01/14]
+      }
+  }
+  {
+    % No fonts
+    \RequirePackage{amsmath}[2013/01/14]
+  } % }}}
+
+\bool_if:NT \g__mn_symbols_bool % {{{ Define math symbol commands
+  {
+    % Logical not
+    \mn__if_package_loaded:nTF { unicode-math }
+      { \DeclareDocumentCommand \lnot {} { \char "AC } } % 0xAC = ¬
+      { \mathchardef \Not = "1218 }
+
+    % Blackboard bold set symbols
+    \NewDocumentCommand \Rational {}{\mathbb{Q}}
+    \ProvideDocumentCommand \Rat {}{\Rational}
+    \ProvideDocumentCommand \Q {}{\Rational}
+
+    % \NewDocumentCommand \Irrational {}{\mathbb{I}}
+    % \ProvideDocumentCommand \Irrat {}{\Irrational}
+    % \ProvideDocumentCommand \I {}{\Irrational}
+
+    \NewDocumentCommand \Natural {}{\mathbb{N}}
+    \ProvideDocumentCommand \Nat {}{\Natural}
+    \ProvideDocumentCommand \N {}{\Natural}
+
+    \NewDocumentCommand \Integer {}{\mathbb{Z}}
+    \ProvideDocumentCommand \Int {}{\Integer}
+    \ProvideDocumentCommand \Z {}{\Integer}
+
+    \NewDocumentCommand \Complex {}{\mathbb{C}}
+    \ProvideDocumentCommand \Comp {}{\Complex}
+    % Renew \C to mean \Complex in math-mode; normally, \C just gives an
+    % error in math-mode.
+    % ...if \C isn't defined, just define it normally.
+    \AtBeginDocument
+      {
+        \cs_if_free:NTF \C
+          { \NewDocumentCommand }
+          {
+            \cs_set_eq:NN \mn__C_old \C
+            \RenewDocumentCommand
+          }
+        \C {}{
+          \mode_if_math:TF
+            { \Complex } % Complex set
+            { \mn__C_old } % Copyright sign
+        }
+      }
+
+    \NewDocumentCommand \Real {}{\mathbb{R}}
+    \ProvideDocumentCommand \R {}{\Real}
+
+    % Using the Weierstrass p here is probably a bit controversial, but I like
+    % it. I'm open to change, though...
+    \ProvideDocumentCommand \powerset {}{\wp}
+
+    \RenewDocumentCommand \vec {m}{\mathbf{#1}}
+
+    % Operator synonyms.
+    % Set intersect.
+    \ProvideDocumentCommand \intersection {}{\cap}
+    \ProvideDocumentCommand \inter {}{\cap}
+    \ProvideDocumentCommand \bigintersection {}{\bigcap}
+    \ProvideDocumentCommand \biginter {}{\bigcap}
+
+    % Set union.
+    \ProvideDocumentCommand \union {}{\cup}
+    \ProvideDocumentCommand \bigunion {}{\bigcup}
+    % Disjoint union.
+    \ProvideDocumentCommand \disjointunion {}{\sqcup}
+    \ProvideDocumentCommand \disunion {}{\sqcup}
+
+    % Divisiblity.
+    \ProvideDocumentCommand \divisible {}{\mid}
+    \ProvideDocumentCommand \div {}{\mid}
+    % Negation.
+    \ProvideDocumentCommand \notdivisible {}{\nmid}
+    \ProvideDocumentCommand \ndivisible {}{\nmid}
+    \ProvideDocumentCommand \notdiv {}{\nmid}
+    \ProvideDocumentCommand \ndiv {}{\nmid}
+
+    % Wrappers around floor and ceil.
+    \ProvideDocumentCommand \floor {m}{\lfloor #1\rfloor}
+    \ProvideDocumentCommand \ceil {m}{\lceil #1\rceil}
+
+    % The default empty set symbol is very ugly. Use \varnothing instead,
+    % which is less ugly.
+    \AtBeginDocument{\RenewDocumentCommand \emptyset {}{\varnothing}}
+    \ProvideDocumentCommand \es {}{\emptyset}
+
+    % Function composition. The notation g \after f helps internalize the
+    % order of operations. :)
+    \ProvideDocumentCommand \after {}{\circ}
+
+    % Cross product.
+    \ProvideDocumentCommand \cross {}{\times}
+
+    % Operators.
+    % Function image.
+    \cs_if_free:NT \img
+      { \DeclareMathOperator \img {img} }
+    % Function pre-image.
+    \cs_if_free:NT \pre
+      { \DeclareMathOperator \pre {pre} }
+    % Function stabilizer.
+    \cs_if_free:NT \Stab
+      { \DeclareMathOperator \Stab {Stab} }
+    % Set of a function's fixed points.
+    \cs_if_free:NT \FixPt
+      { \DeclareMathOperator \FixPt {FixPt} }
+    % Identity function
+    \cs_if_free:NT \id
+      { \DeclareMathOperator \id {id} }
+
+    % Injective function.
+    \ProvideDocumentCommand \injection {}{\hookrightarrow}
+    \ProvideDocumentCommand \inj {}{\hookrightarrow}
+    % Surjective function.
+    \ProvideDocumentCommand \surjection {}{\twoheadrightarrow}
+    \ProvideDocumentCommand \surj {}{\twoheadrightarrow}
+    % Bijective function.
+    \ProvideDocumentCommand \bijection {}{\twoheadrightarrowtail}
+    \ProvideDocumentCommand \bijective {}{\twoheadrightarrowtail}
+    \ProvideDocumentCommand \bij {}{\twoheadrightarrowtail}
+    % Function restriction.
+    \cs_if_free:NT \restriction
+      { \DeclareMathOperator \restriction {|} }
+    \ProvideDocumentCommand \restr {}{\restriction}
+
+    % d/dx
+    \ProvideDocumentCommand \dd { O{} m }{\frac{d#1}{d#2}}
+    \ProvideDocumentCommand \pd { O{} m }{\frac{\partial#1}{\partial#2}}
+    \ProvideDocumentCommand \gradient {}{\nabla}
+    \ProvideDocumentCommand \grad {}{\nabla}
+    \cs_if_free:NT \curl
+      { \DeclareMathOperator \curl {curl} }
+    \cs_if_free:NT \dive
+      { \DeclareMathOperator \dive {div} }
+  } % }}}
+
+% Gives this an equation a number in an amsmath starred environment.
+\ProvideDocumentCommand \numberthis { } % {{{
+  {
+    \tag { \theequation }
+    \refstepcounter { equation }
+  } % }}}
+
+% Gives this equation a number and label in an amsmath starred environment.
+\ProvideDocumentCommand \labelthis { m } % {{{
+  {
+    \numberthis
+    \IfValueT { #1 }
+      { \label { #1 } }
+  } % }}}
+
+\bool_if:NT \g__mn_enumitem_bool
+  { \RequirePackage{enumitem} }
+
+\bool_if:NT \g__mn_listings_bool
+  { \RequirePackage{listings} }
+
+\bool_if:NT \g__mn_xcolor_bool % {{{ Load xcolor and define MN colors
+  {
+    \PassOptionsToPackage { rgb } { xcolor }
+    \RequirePackage { xcolor }
+    \providecolorset { HTML }
+      % Prefix/postfix of all color names
+      { } { }
+      {
+        \use_none:n
+        ; MNthmtitle  , 0F0066
+        ; MNthmbg     , EBFEFF
+        ; MNthmline   , 4836B3
+        ; MNextitle   , 692219
+        ; MNexbg      , FFF0EB
+        ; MNexline    , CC7468
+        ; MNdefntitle , 00540B
+        ; MNdefnline  , 196924
+        ; MNdefnbg    , EBFFED
+        ; MNnotetitle , 6B0019
+        ; MNnoteline  , CC3F60
+        ; MNnotebg    , FFF5F7
+
+        ; MNsecnum , 8015A1
+
+        ; MNlink , 113DB8
+      }
+  } % }}}
+
+\bool_if:NT \g__mn_listings_bool % {{{ Better default styles
+  {
+    \RequirePackage { xcolor }
+    \lstset
+      {
+        % Use a monospace font for code listings.
+        basicstyle        = \ttfamily ,
+        language          = Mathematica ,
+        % Tab size of 4, but you should probably use spaces.
+        tabsize           = 4 ,
+        % Keywords in blue.
+        keywordstyle      = \bfseries\ttfamily\color[rgb]{0,.3,.7} ,
+        % Comments in green.
+        commentstyle      = \color[rgb]{0.133,0.545,0.133} ,
+        % Strings in orange.
+        stringstyle       = \color[rgb]{0.75,0.49,0.07} ,
+        % The default listings characters are too widely-spaced.
+        % 0.55em/character makes things look a lot better.
+        basewidth         = 0.55em ,
+        % Wrap lines if they're too long, and wrap at whitespace.
+        breaklines ,
+        breakatwhitespace = true ,
+      }
+  } % }}}
+
+% Creates an acronym-command.
+% \newacronym[<\command>]{<text>} defines \command to be \textsc{text}.
+% \newacronym{<text>} defines \text to be \textsc{text}.
+\ProvideDocumentCommand \newacronym { o m } % {{{
+  {
+    \group_begin:
+      % If we have #1, then #1 is the cs we're going to define; #1 is a cs.
+      % Otherwise, we define \#2.
+      \IfValueTF { #1 }
+        { \cs_set:Npn \mn__acronym_cs: { \cs_to_str:N #1 } }
+        { \cs_set:Npn \mn__acronym_cs: { #2 } }
+
+      % Ensure that the cs is undefined.
+      \cs_if_exist:cT { \mn__acronym_cs: }
+        {
+          \msg_error:nnxx
+            { mathnotes }
+            { acronym already defined }
+            { \exp_not:c { \mn__acronym_cs: } }
+            { #2 }
+        }
+
+      % Finally, define the acronym command.
+      \cs_new:cpn { \mn__acronym_cs: }
+        { \textsc { #2 } }
+    \group_end:
+  } % }}}
+
+% \newacronyms takes a comma-separated list as its argument and defines them
+% all as acronyms.
+\ProvideDocumentCommand \newacronyms { m }
+  { \clist_map_function:nN { #1 } \newacronym }
+
+% {{{ Package configuration string values; \mathnotes command
+\keys_define:nn { mn__main }
+  {
+    date   .value_required:n = true ,
+    date   .code:n           = \date{#1} ,
+    author .value_required:n = true ,
+    author .code:n           = \author{#1} ,
+    title  .value_required:n = true ,
+    title  .code:n           = \title{#1} ,
+
+    generate~thanks .value_required:n = false ,
+    generate~thanks .bool_set:N = \g__mn_should_make_thanks ,
+    generate~thanks .default:n = true ,
+    generate~thanks .initial:n = true ,
+  }
+
+\cs_set:Npn \mn__key_new:n #1
+  {
+    \keys_define:nn { mn__main }
+      {
+        #1 .value_required:n = true ,
+        #1 .tl_gset:c = g__mn_#1_tl ,
+        #1 .initial:x = ,
+      }
+  }
+
+\cs_set:Npn \mn__keys_new:n #1 { \clist_map_function:nN { #1 } \mn__key_new:n }
+
+\mn__keys_new:n
+  {
+    instructor, course, name, email, institution, semester,
+  }
+
+\NewDocumentCommand \mathnotes { m }
+  {
+    \keys_set:nn { mn__main } { #1 }
+  }
+% }}}
+
+\bool_if:NT \g__mn_maketitle_bool % {{{ \author, \title, \maketitle, \thanks, etc.
+  {
+    \bool_new:N \g__mn_author_set
+    \cs_set:Npn \author #1
+      {
+        \bool_gset_true:N \g__mn_author_set
+        \cs_gset:Npn \@author { #1 }
+      }
+
+    \bool_new:N \g__mn_title_set
+    \cs_set:Npn \title #1
+      {
+        \bool_gset_true:N \g__mn_title_set
+        \cs_gset:Npn \@title { #1 }
+      }
+
+    \prg_new_conditional:Npnn \mn__if_should_make_thanks: % {{{
+      { T, }
+      {
+        \bool_if:NTF \g__mn_should_make_thanks
+          {
+            \bool_lazy_all:nTF
+              {
+                { \tl_if_empty_p:N \g__mn_email_tl }
+                { \tl_if_empty_p:N \g__mn_course_tl }
+                { \tl_if_empty_p:N \g__mn_instructor_tl }
+                { \tl_if_empty_p:N \g__mn_institution_tl }
+                { \tl_if_empty_p:N \g__mn_semester_tl }
+              }
+              { \prg_return_false: }
+              { \prg_return_true: }
+          }
+          { \prg_return_false: }
+      } % }}}
+
+    \cs_set:Npn \mn__make_thanks_text % {{{
+      {
+        \tl_if_empty:NF \g__mn_email_tl
+          {
+            \email { \tl_use:N { \g__mn_email_tl } }
+            \bool_lazy_all:nF
+              {
+                { \tl_if_empty_p:N \g__mn_course_tl }
+                { \tl_if_empty_p:N \g__mn_instructor_tl }
+                { \tl_if_empty_p:N \g__mn_institution_tl }
+                { \tl_if_empty_p:N \g__mn_semester_tl }
+              }
+              { ;~ }
+          }
+        \tl_if_empty:NF \g__mn_course_tl
+          {
+            \tl_use:N \g__mn_course_tl
+            \bool_lazy_all:nF
+              {
+                { \tl_if_empty_p:N \g__mn_instructor_tl }
+                { \tl_if_empty_p:N \g__mn_institution_tl }
+                { \tl_if_empty_p:N \g__mn_semester_tl }
+              }
+              { ~ }
+          }
+        \tl_if_empty:NF \g__mn_instructor_tl
+          {
+            \bool_lazy_all:nTF
+              {
+                { \tl_if_empty_p:N \g__mn_email_tl }
+                { \tl_if_empty_p:N \g__mn_course_tl }
+              }
+              { Taught~by~ }
+              { taught~by~ }
+            \tl_use:N \g__mn_instructor_tl
+          }
+        \tl_if_empty:NF \g__mn_institution_tl
+          {
+            \bool_lazy_all:nTF
+              {
+                { \tl_if_empty_p:N \g__mn_email_tl }
+                { \tl_if_empty_p:N \g__mn_course_tl }
+                { \tl_if_empty_p:N \g__mn_instructor_tl }
+              }
+              { At~ }
+              { ~at~ }
+            \tl_use:N \g__mn_institution_tl
+          }
+        \tl_if_empty:NF \g__mn_semester_tl
+          {
+            \bool_lazy_all:nF
+              {
+                { \tl_if_empty_p:N \g__mn_email_tl }
+                { \tl_if_empty_p:N \g__mn_course_tl }
+                { \tl_if_empty_p:N \g__mn_instructor_tl }
+                { \tl_if_empty_p:N \g__mn_institution_tl }
+              }
+              { ,~ }
+            \tl_use:N \g__mn_semester_tl
+          }
+        .
+      } % }}}
+
+    \cs_set:Npn \@author % {{{
+      {
+        % If the author hasn't been set, we provide this (complicated, PITA)
+        % default; however, if we don't have any information to put in it, we
+        % still give a warning.
+        \tl_if_eq:NNTF \g__mn_name_tl \c_novalue_tl
+          {
+            \msg_warning:nn { mathnotes } { no name }
+          }
+          {
+            \tl_use:N \g__mn_name_tl
+            % Do we have any information to put in a \thanks?
+            \mn__if_should_make_thanks:T
+              {
+                \thanks { \mn__make_thanks_text }
+              }
+          }
+      } % }}}
+
+    % {{{ \@maketitle and \maketitle
+    \skip_const:Nn \g__mn_maketitle_after_title { 1em }
+    \skip_const:Nn \g__mn_maketitle_after_author { 0.5em }
+    \skip_const:Nn \g__mn_maketitle_after { 1.5em }
+
+    \RenewDocumentCommand \@maketitle {}
+      {
+        \begin{center}
+          \let \footnote \thanks
+
+          % Set the title, if it exists.
+          \bool_if:NT \g__mn_title_set
+            {
+              \group_begin:
+              \HUGE
+              \bfseries
+              \@title
+              \par
+              \group_end:
+            }
+          \skip_vertical:N \g__mn_maketitle_after_title
+
+          % Set the author.
+          \group_begin:
+          \LARGE
+          \lineskip 0.5em
+          \begin{tabular}[t]{c}
+            \@author
+          \end{tabular}
+          \par
+          \group_end:
+          \skip_vertical:N \g__mn_maketitle_after_author
+
+          % Set the date.
+          \large
+          \@date
+
+        \end{center}
+        \par
+        \skip_vertical:N \g__mn_maketitle_after
+      }
+
+    \RenewDocumentCommand \maketitle {}
+      {
+        \par
+        \group_begin:
+          \cs_set:Npn \thefootnote
+            {
+              \@fnsymbol
+              \c at footnote
+            }
+          \cs_set:Npn \@makefnmark
+            {
+              \rlap
+                {
+                  \@textsuperscript { \normalfont \@thefnmark }
+                }
+            }
+          \cs_set:Npn \@makefntext ##1
+            {
+              \parindent 1em
+              \noindent
+              \hbox_to_wd:nn
+                { 1.8em }
+                {
+                  \hss
+                  \@textsuperscript { \normalfont \@thefnmark }
+                }
+              ##1
+            }
+          \legacy_if:nTF { @twocolumn }
+            {
+              \if_int_compare:w \col at number = \@ne
+                \@maketitle
+              \else:
+                \twocolumn [ \@maketitle ]
+              \fi:
+            }
+            {
+              \newpage
+              \global\@topnum\z@
+              \@maketitle
+            }
+          \thispagestyle{empty}
+          \@thanks
+        \group_end:
+        \setcounter{footnote}{0}
+        \cs_set:Npn \thanks ##1 { }
+        % NOTE: we don't erase the definitions of \@title, etc.
+      }
+    % }}} \@maketitle and \maketitle
+  } % }}}
+
+\bool_if:NT \g__mn_kindle_bool % {{{
+  {
+    \keys_set:nn { mn__main }
+      {
+        generate~thanks = false ,
+      }
+    \skip_gset:Nn \g__mn_maketitle_after_title { 0em }
+    \skip_gset:Nn \g__mn_maketitle_after_author { 0em }
+    \skip_gset:Nn \g__mn_maketitle_after { 0em }
+    \@ifclassloaded { memoir }
+      {
+        \pagestyle { empty }
+
+        \setstocksize{12.2cm}{9cm}
+        \settrimmedsize{12.2cm}{9cm}{*}
+        \settypeblocksize{12.2cm}{9cm}{*}
+
+        \setlrmargins{0cm}{*}{*}
+        \setulmargins{0cm}{*}{*}
+
+        \setlength{\headheight}{0cm}
+        \setlength{\headsep}{0cm}
+        \setlength{\footskip}{0cm}
+
+        \checkandfixthelayout
+      }
+      {
+          \msg_error:nnx
+            { mathnotes }
+            { requires memoir class }
+            { kindle }
+      }
+  } % }}}
+
+% e.g. `\exp:w \mn__color:n { MNnotetitle }`
+\cs_set:Npn \mn__color:n #1 % {{{
+  {
+    \bool_if:NTF \g__mn_xcolor_bool
+      {
+        \exp_end:
+        \color{#1}
+      }
+      {
+        \exp_end:
+      }
+  } % }}}
+
+\bool_if:NT \g__mn_theorems_bool % {{{ mdtheorem setup
+  {
+    \RequirePackage[thmmarks, amsmath, amsthm]{ntheorem}
+
+    \RequirePackage{mdframed}
+
+    \mdfdefinestyle { theorem }
+      {
+        linewidth = 1.5pt ,
+      }
+
+    \bool_if:NT \g__mn_xcolor_bool
+      {
+        \mdfapptodefinestyle { theorem }
+          {
+            frametitlefont = \normalfont\bfseries\color{MNthmtitle} ,
+            linecolor = MNthmline ,
+            backgroundcolor = MNthmbg ,
+          }
+      }
+
+    \mdfdefinestyle { minor-theorem }
+      {
+        style = theorem ,
+        linewidth = 0.75pt ,
+      }
+
+    \mdfdefinestyle { example }
+      {
+        theoremtitlefont = \normalfont ,
+      }
+
+    \bool_if:NT \g__mn_xcolor_bool
+      {
+        \mdfapptodefinestyle { example }
+          {
+            frametitlefont = \normalfont\bfseries\color{MNextitle} ,
+            linecolor = MNexline ,
+            backgroundcolor = MNexbg ,
+          }
+      }
+
+    \mdfdefinestyle { definition }
+      {
+      }
+
+    \bool_if:NT \g__mn_xcolor_bool
+      {
+        \mdfapptodefinestyle { definition }
+          {
+            frametitlefont = \normalfont\bfseries\color{MNdefntitle} ,
+            linecolor = MNdefnline ,
+            backgroundcolor = MNdefnbg ,
+          }
+      }
+
+    \mdfdefinestyle { note }
+      {
+        topline = false ,
+        rightline = false ,
+        bottomline = false ,
+        linewidth = 2pt ,
+      }
+
+    \bool_if:NT \g__mn_xcolor_bool
+      {
+        \mdfapptodefinestyle { note }
+          {
+            frametitlefont = \normalfont\bfseries\color{MNnotetitle} ,
+            linecolor = MNnoteline ,
+            backgroundcolor = MNnotebg ,
+          }
+      }
+
+    \mdfdefinestyle { example }
+      {
+        theoremtitlefont = \normalfont ,
+      }
+
+    \bool_if:NT \g__mn_xcolor_bool
+      {
+        \mdfapptodefinestyle { example }
+          {
+            frametitlefont = \normalfont\bfseries\color{MNextitle} ,
+            linecolor = MNexline ,
+            backgroundcolor = MNexbg ,
+          }
+      }
+
+    \mdtheorem
+      [ style = theorem ]
+      { thm }
+      { Theorem }
+    % \newtheorem{shortthm}[thm]{Theorem}
+    \mdtheorem
+      [ style = minor-theorem ]
+      { lem }
+      { Lemma }
+    \mdtheorem
+      [ style = minor-theorem ]
+      { cor }
+      { Corollary }
+    \mdtheorem
+      [ style = minor-theorem ]
+      { prop }
+      { Proposition }
+
+    % \theoremstyle{definition}
+    \mdtheorem
+      [ style = definition ]
+      { defn }
+      { Definition }
+    \mdtheorem
+      [ style = definition ]
+      { notation }
+      { Notation }
+
+    % \theoremstyle{remark}
+    \mdtheorem
+      [ style = example ]
+      { ex }
+      { Example }
+
+    \skip_new:N \mn__note_title_after_skip
+    \skip_set:Nn \mn__note_title_after_skip { 1em plus 0.25em minus 0.75em }
+    \cs_set:Npn \mn__note_title:n #1
+      {
+        \textbf
+          {
+            \exp:w \mn__color:n { MNnotetitle }
+            #1
+          }
+        \skip_horizontal:N \mn__note_title_after_skip
+      }
+
+    \newmdenv
+      [
+        style = note ,
+        startinnercode = \mn__note_title:n { Note: } ,
+      ]
+      { note }
+
+    \newmdenv
+      [
+        style = note ,
+        startinnercode = \mn__note_title:n { Remark: } ,
+      ]
+      { remark }
+
+    \newmdenv
+      [
+        style = note ,
+        startinnercode = \mn__note_title:n { Hint: } ,
+      ]
+      { hint }
+
+    \newmdenv
+      [
+        style = note ,
+        startinnercode = \mn__note_title:n { Abuse of notation: } ,
+      ]
+      { abuse-of-notation }
+
+    % % reset for future defn.s
+    % \theoremstyle{plain}
+  } % }}}
+
+\NewDocumentCommand \TODO { o } % {{{
+  {
+    \framebox
+      {
+        \textbf{ TODO \IfValueT { #1 } { :~} }
+        \IfValueT { #1 } { #1 }
+      }
+  } % }}}
+
+% \bool_if:NT \g__mn_titles_bool % {{{
+  % {
+    % \RequirePackage{titlesec}
+    % % \titleformat { \command } [ shape ] { format } { label } { sep } { before-code } [ after-code ]
+    % % before-code can be a command
+    % \titleformat { \chapter }
+      % [ block ]
+      % { \bfseries \HUGE }
+      % { { \exp:w \mn__color:n {MNsecnum} \thechapter} }
+      % { 20pt }
+      % { }
+      % [ ]
+
+    % \titleformat { \section }
+      % [ hang ]
+      % { \bfseries \LARGE }
+      % { { \exp:w \mn__color:n {MNsecnum} \thesection} }
+      % { 16pt }
+      % { }
+      % [ ]
+
+    % \titleformat { \subsection }
+      % [ hang ]
+      % { \bfseries \Large }
+      % { { \exp:w \mn__color:n {MNsecnum} \thesubsection} }
+      % { 16pt }
+      % { }
+      % [ ]
+
+    % % \titlespacing* { \command } { left } { before } { after } [ right ]
+    % \titlespacing* { \chapter }       { 0em } { 0em } { 2em } [ 0em ]
+    % \titlespacing* { \section }       { 0em } { 2em } { 0.5em } [ 0em ]
+    % \titlespacing* { \subsection }    { 0em } { 1em } { 0em } [ 0em ]
+    % \titlespacing* { \subsubsection } { 0em } { 1em } { 0em } [ 0em ]
+  % } % }}}
+
+\bool_if:NT \g__mn_xcolor_bool % {{{
+  {
+    \RequirePackage[hidelinks]{hyperref}
+    \hypersetup
+      {
+        colorlinks = true ,
+        allcolors = MNlink ,
+      }
+  } % }}}
+
+\bool_if:NT \g__mn_index_bool
+  {
+    \bool_set_true:N \g__mn_knowledge_bool
+  }
+
+\bool_if:NTF \g__mn_knowledge_bool % {{{
+  {
+    \bool_if:NT \g__mn_xcolor_bool
+      {
+        \PassOptionsToPackage{xcolor}{knowledge}
+        \providecolorset { HTML }
+          % Prefix/postfix of all color names
+          { } { }
+          {
+            \use_none:n
+            ; MNunknown     , DE0B0F
+            ; MNunknowncont , AD483E
+            ; MNintro       , 051338
+          }
+      }
+    \RequirePackage[quotation, notion, makeidx]{knowledge}
+
+    % Disable the redefined \label command; this fixes some documents.
+    \KnowledgeConfigureBooleanOption[\knowledge_configuration_label_autoscope_bool]{patch~label}
+
+    % {{{ Patch in the automatic-AP feature
+    \bool_new:N \g__mn_noAP_bool
+    \NewDocumentCommand \noAP { }
+      { \bool_gset_true:N \g__mn_noAP_bool }
+    \cs_set:Npn \mn__maybe_AP:N #1
+      {
+        \bool_if:NTF \g__mn_noAP_bool
+          { \bool_gset_false:N \g__mn_noAP_bool }
+          { #1 }
+      }
+
+    \RequirePackage{etoolbox}
+    \pretocmd { \intro }
+      { \mn__maybe_AP:N \AP }
+      { } { }
+
+    \bool_new:N \l__mn_using_itemAP
+    \cs_set:Npn \mn__use_itemAP:
+      {
+        \bool_if:NF \l__mn_using_itemAP
+          {
+            \let \mn__item_orig: \item
+            \bool_set_true:N \l__mn_using_itemAP
+            \RenewDocumentCommand \item { o }
+              {
+                \IfNoValueTF { ##1 }
+                  {
+                    \mn__item_orig:
+                    \mn__maybe_AP:N \AP
+                  }
+                  {
+                    \mn__item_orig:
+                      [
+                        \mn__maybe_AP:N \knowledge_itemAP:
+                        % NOTE: this isn't expandable, which fucks up
+                        % everything.
+                        \cs_set_eq:NN \AP \prg_do_nothing:
+                        ##1
+                      ]
+                  }
+              }
+          }
+      }
+    \apptocmd { \enumerate }   { \mn__use_itemAP: } { } { }
+    \apptocmd { \itemize }     { \mn__use_itemAP: } { } { }
+    \apptocmd { \description } { \mn__use_itemAP: } { } { }
+    % }}}
+
+    % {{{ Make some better styles.
+    \knowledgeconfigure
+      {
+        visible~anchor~points = false
+      }
+    \cs_set:Npn \mn__knowledgestyles:nn #1#2
+      {
+        \clist_map_inline:nn { #1 }
+          { \knowledgestyle* { ##1 } { #2 } }
+      }
+    % List of default styles
+    % notion, intro notion
+    % intro, intro unknown, intro unknown cont
+    % kl unknown, kl unknown cont
+    \bool_if:NTF \g__mn_xcolor_bool
+      {
+        \mn__knowledgestyles:nn
+          { notion , intro~notion }
+          {
+            color = MNlink ,
+          }
+        \mn__knowledgestyles:nn
+          { intro , intro~notion , intro~unknown, intro~unknown~cont , }
+          {
+            boldface ,
+            color = MNintro ,
+          }
+        \mn__knowledgestyles:nn
+          { intro~unknown , intro~unknown~cont , kl~unknown , kl~unknown~cont , }
+          {
+            underline = false ,
+            color     = MNunknown ,
+          }
+        \mn__knowledgestyles:nn
+          { intro~unknown~cont , kl~unknown~cont , }
+          {
+            color = MNunknowncont ,
+          }
+      }
+      {
+        % These blank definitions are important for erasing some very poorly
+        % typeset decisions.
+        \mn__knowledgestyles:nn
+          { notion , intro~notion }
+          {
+          }
+        \mn__knowledgestyles:nn
+          { intro , intro~notion , intro~unknown, intro~unknown~cont , }
+          {
+            boldface ,
+          }
+        \mn__knowledgestyles:nn
+          { intro~unknown , intro~unknown~cont , kl~unknown , kl~unknown~cont , }
+          {
+          }
+        \mn__knowledgestyles:nn
+          { intro~unknown~cont , kl~unknown~cont , }
+          {
+          }
+      }
+    % }}}
+  }
+  {
+    % If we don't load the knowledge package, provide a *similar* interface
+    % to make writing commands that *optionally* use the knowledge interface
+    % easier.
+    \ProvideDocumentCommand \itemAP { O{} } { \item[#1] }
+    \ProvideDocumentCommand \AP { } { }
+    \ProvideDocumentCommand \phantomintro { d() m } { }
+    \ProvideDocumentCommand \nointro { m } { }
+    \ProvideDocumentCommand \reintro { s o m } { #3 }
+    \ProvideDocumentCommand \intro { d() o d() m } { #4 }
+    \ProvideDocumentCommand \kl { d() o d() m } { #4 }
+  } % }}}
+
+\bool_if:NT \g__mn_index_bool
+  {
+    \makeindex
+  }
+
+% The \emailstyle command gives the style of an email; by default, we
+% initialize it to \texttt.
+\ProvideDocumentCommand \emailstyle { m } { \texttt{#1} }
+% The \email command typesets an email; if the user has loaded the
+% hyperref package, we can add a link as well.
+\mn__if_package_loaded:nTF { hyperref } % {{{
+  {
+    \ProvideDocumentCommand \email { m }
+          { \href{mailto:#1}{\emailstyle{#1}} }
+  }
+  {
+    \ProvideDocumentCommand \email { m }
+          { \emailstyle{#1} }
+  } % }}}
+
+\bool_if:NT \g__mn_tabu_bool % {{{
+  {
+    \RequirePackage{multirow}
+    \RequirePackage{booktabs}
+    \RequirePackage{longtable}
+    \RequirePackage{tabu}
+    \ProvideExpandableDocumentCommand \Th { O{l} m }
+      {
+        \multicolumn
+          { 1 } % For 1 column...
+          { #1 } % ...with column-spec #1...
+          { \textbf{#2} } % Typeset #2 in bold.
+      }
+  } % }}}
+
+\bool_if:NT \g__mn_figures_bool % {{{
+  {
+    % figure captions
+    \RequirePackage{graphicx}
+    \RequirePackage{caption}
+    \captionsetup
+      {
+        format = hang,
+        font   = { sf, footnotesize },
+        margin = 1in
+      }
+  } % }}}
+
+% {{{ Footnotes
+\bool_if:NT \g__mn_footnotes_bool
+  {
+    \PassOptionsToPackage{bottom, hang}{footmisc}
+    \RequirePackage{footmisc}
+  }
+\setlength { \footnotesep } { \baselineskip }
+% }}}
+
+% Document style.
+\setlength { \parindent } { 0em }
+\setlength { \parskip }   { 1em }
+% {{{ Set \parskip=0 around \tableofcontents
+\RequirePackage{etoolbox}
+\pretocmd { \tableofcontents }
+  {
+    \group_begin:
+    \setlength{\parskip}{0pt}
+  }
+  { } { }
+\apptocmd { \tableofcontents }
+  { \group_end: }
+  { } { }
+% }}}
+
+% This has to be hooked so that it doesn't break the other bools undefined
+% with it first.
+\AtEndOfPackage { \cs_undefine:N \mn__legacy_bool_undefine:n }


Property changes on: trunk/Master/texmf-dist/tex/latex/rbt-mathnotes/rbt-mathnotes.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-11-30 22:51:41 UTC (rev 61192)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-11-30 22:53:25 UTC (rev 61193)
@@ -669,7 +669,7 @@
      quran quran-bn quran-de quran-ur qyxf-book
   r_und_s ragged2e raleway ran_toks randbild
     random randomlist randomwalk randtext
-    rank-2-roots rccol rcs rcs-multi rcsinfo
+    rank-2-roots rbt-mathnotes rccol rcs rcs-multi rcsinfo
     readablecv readarray realboxes realhats realscripts realtranspose rec-thy
     recipe recipebook recipecard recycle rectopma
     refcheck refcount refenums reflectgraphics refman refstyle

Modified: trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc	2021-11-30 22:51:41 UTC (rev 61192)
+++ trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc	2021-11-30 22:53:25 UTC (rev 61193)
@@ -172,6 +172,7 @@
 depend pythonhighlight
 depend qsharp
 depend rank-2-roots
+depend rbt-mathnotes
 depend rec-thy
 depend rest-api
 depend revquantum

Added: trunk/Master/tlpkg/tlpsrc/rbt-mathnotes.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.