summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-01-25 03:01:54 +0000
committerNorbert Preining <norbert@preining.info>2022-01-25 03:01:54 +0000
commit54e627ff3ae26ebf28688e2cf04b2ed9fb3a393b (patch)
tree5a2f425ce86bd69fad53eebbef6ad56bff1fc9de /macros/latex
parent17f5b660e0ce0c5c1b1dc095df8213e078963809 (diff)
CTAN sync 202201250301
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/altsubsup/LICENSE416
-rw-r--r--macros/latex/contrib/altsubsup/README.md4
-rw-r--r--macros/latex/contrib/altsubsup/altsubsup.dtx386
-rw-r--r--macros/latex/contrib/altsubsup/altsubsup.el43
-rw-r--r--macros/latex/contrib/altsubsup/altsubsup.ins57
-rw-r--r--macros/latex/contrib/altsubsup/altsubsup.pdfbin0 -> 331240 bytes
-rw-r--r--macros/latex/contrib/bmstu/README.md21
-rw-r--r--macros/latex/contrib/bmstu/bmstu.cls115
-rw-r--r--macros/latex/contrib/bmstu/examples/examples.pdfbin0 -> 877742 bytes
-rw-r--r--macros/latex/contrib/bmstu/examples/examples.tex155
-rw-r--r--macros/latex/contrib/bmstu/examples/inc/img/tux.pngbin0 -> 78838 bytes
-rw-r--r--macros/latex/contrib/bmstu/examples/inc/img/tuz.pngbin0 -> 354190 bytes
-rw-r--r--macros/latex/contrib/bmstu/examples/inc/lst/main.c9
-rw-r--r--macros/latex/contrib/bmstu/img/bmstu-logo.pdfbin0 -> 129396 bytes
-rw-r--r--macros/latex/contrib/bmstu/sty/bmstu-appendix.sty37
-rw-r--r--macros/latex/contrib/bmstu/sty/bmstu-biblio.sty23
-rw-r--r--macros/latex/contrib/bmstu/sty/bmstu-defabbr.sty51
-rw-r--r--macros/latex/contrib/bmstu/sty/bmstu-essay.sty68
-rw-r--r--macros/latex/contrib/bmstu/sty/bmstu-figure.sty52
-rw-r--r--macros/latex/contrib/bmstu/sty/bmstu-listing.sty63
-rw-r--r--macros/latex/contrib/bmstu/sty/bmstu-title.sty247
-rw-r--r--macros/latex/contrib/bmstu/sty/bmstu-toc.sty23
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx9
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin598876 -> 598880 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex4
-rw-r--r--macros/latex/contrib/spbmark/spbmark.pdfbin71880 -> 71891 bytes
-rw-r--r--macros/latex/contrib/spbmark/spbmark.sty204
-rw-r--r--macros/latex/contrib/spbmark/spbmark.tex4
-rw-r--r--macros/latex/contrib/uni-titlepage/README.md2
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdfbin43998 -> 43998 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdfbin41265 -> 41265 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdfbin38251 -> 38250 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdfbin26903 -> 26902 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-KIT.pdfbin42149 -> 42151 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdfbin166494 -> 166503 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdfbin119780 -> 119783 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdfbin128796 -> 128796 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdfbin127996 -> 127997 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdfbin40396 -> 40396 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdfbin54017 -> 54018 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdfbin103389 -> 103389 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdfbin58935 -> 58802 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/uni-titlepage.dtx13
-rw-r--r--macros/latex/contrib/uni-titlepage/uni-titlepage.pdfbin865075 -> 864586 bytes
44 files changed, 1895 insertions, 111 deletions
diff --git a/macros/latex/contrib/altsubsup/LICENSE b/macros/latex/contrib/altsubsup/LICENSE
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/macros/latex/contrib/altsubsup/LICENSE
@@ -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.
+
diff --git a/macros/latex/contrib/altsubsup/README.md b/macros/latex/contrib/altsubsup/README.md
new file mode 100644
index 0000000000..307f72145d
--- /dev/null
+++ b/macros/latex/contrib/altsubsup/README.md
@@ -0,0 +1,4 @@
+# altsubsup
+
+A LaTeX package to write alternative and customisable subscripts and
+superscripts, with square brackets.
diff --git a/macros/latex/contrib/altsubsup/altsubsup.dtx b/macros/latex/contrib/altsubsup/altsubsup.dtx
new file mode 100644
index 0000000000..537c96056a
--- /dev/null
+++ b/macros/latex/contrib/altsubsup/altsubsup.dtx
@@ -0,0 +1,386 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2022 by Julien Labbé <Julien.Labbe@univ-grenoble-alpes.fr>
+%
+%
+% This file 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.
+%
+% Note : this file was created from the version 2.1 of the dtxtut tutorial,
+% maintained by Scott Pakin.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{altsubsup.dtx}
+%</driver>
+%<package> \NeedsTeXFormat{LaTeX2e}
+%<package> \ProvidesPackage{altsubsup}
+%<*package>
+[2022/01/23 v1.0 .dtx altsubsup file]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{altsubsup}
+\usepackage[hidelinks]{hyperref}
+\usepackage{xcolor}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+% \OnlyDescription
+\begin{document}
+\DocInput{altsubsup.dtx}
+\PrintChanges
+\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{109}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.0}{2022/01/23}{Initial version}
+%
+% \GetFileInfo{altsubsup.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment,\let}
+% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
+% \DoNotIndex{\begingroup,\endgroup,\bgroup,\egroup}
+% \DoNotIndex{\catcode,\mathcode,\lccode,\lowercase}
+% \DoNotIndex{\relax,\expandafter,\endinput}
+% \DoNotIndex{\def,\edef,\gdef,\global,\newif,\ifx,\else,\fi}
+% \DoNotIndex{\@ifnextchar,\@let@token}
+% \DoNotIndex{\sb,\sp,\text}
+%
+% \title{The \textsf{altsubsup} package\thanks{This document
+% corresponds to \textsf{altsubsup}~\fileversion, dated \filedate.}}
+% \author{Julien Labb\'e \\ \texttt{Julien.Labbe@univ-grenoble-alpes.fr}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% A \LaTeX{} package to write alternative and customisable subscripts and
+% superscripts, with square brackets.
+%
+% Typical use:
+% \begin{center}
+% \begin{tabular}{ccc}
+% |x_[roman]^{italic}|& $\longrightarrow$ & $x_[roman]^{italic}$ \\[6pt]
+% |x_{italic}^[roman]|& $\longrightarrow$ & $x_{italic}^[roman]$
+% \end{tabular}
+% \end{center}
+% \end{abstract}
+%
+% \tableofcontents{}
+% \clearpage
+%
+% \section{Introduction}
+%
+% The \textsf{altsubsup} package allows to write alternate subscripts and
+% superscripts, in math mode, with square brackets :
+% \begin{center}
+% |x_[my subscript]| \quad or \quad |x^[my superscript]|.
+% \end{center}
+% These alternate superscripts and superscripts are formatted by the commands
+% set, respectively, with |\SetAltSubscriptCommand| and
+% |\SetAltSuperscriptCommand|. By default, the |\text| command, from
+% \textsf{amstext} (part of \textsf{amsmath}) is used. This gives:
+% \begin{center}
+% $x_[my subscript]$ \quad or \quad $x^[my superscript]$.
+% \end{center}
+%
+% This package redefine |_| and |^| symbols. Options allow to redefine both
+% (by default), only subscript |_| symbol, or only superscript |^| symbol.
+%
+% \section{Motivations}
+%
+% Common typographic conventions\footnotemark{} use italic (sloping) type for
+% physical quantities or mathematical variables and roman (upright) type for
+% words or fixed numbers. For example, heat capacity at constant pressure should
+% be printed $C_P$, but kinetic energy $E_[k]$ (instead of $E_k$) and relative
+% permeability $\mu_[r]$ (instead of $\mu_r$). This can be obtainted in \LaTeX{}
+% with |E_{\mathrm{k}}| and |\mu_{\mathrm{r}}|. This package allows to write them
+% simply |E_[k]| and |\mu_[r]|.
+% \footnotetext{See, for example: International Organization for
+% Standardization. (2009). \emph{Quantities and units -- Part 1: General} (ISO
+% Standard No. 80000-1:2009).
+% \href{https://www.iso.org/standard/30669.html}{https://www.iso.org/standard/30669.html}.}
+%
+% \section{Usage}
+%
+% \DescribeMacro{\SetAltSubscriptCommand\marg{cmd}}
+%
+% Set the command \meta{cmd} used to format square brackets subscripts
+% |_[...]|. By default, \meta{cmd} is the |\text| command, provided by the
+% \textsf{amstext} package (part of \textsf{amsmath} package).
+%
+% \DescribeMacro{\SetAltSuperscriptCommand\marg{cmd}}
+%
+% Set the command \meta{cmd} used to format square brackets superscripts
+% |^[...]|. By default, \meta{cmd} is the |\text| command, provided by the
+% \textsf{amstext} package (part of \textsf{amsmath} package).
+%
+% \DescribeMacro{\SetAltSubSupCommands\marg{cmd}}
+%
+% Set both square brackets subscripts and square brackets superscripts, with the
+% same command \meta{cmd}.
+%
+% \section{Options}
+%
+% To load the package, add in your preamble:
+% \begin{center}
+% \begin{minipage}{0.7\linewidth}
+% |\usepackage|\oarg{option}|{altsubsup}|
+% \end{minipage}
+% \end{center}
+% Available values for \meta{option}:
+% \begin{description}
+% \item[|subscript|] redefine only the |_| subscript symbol.
+% \item[|superscript|] redefine only the |^| superscript symbol.
+% \item[|both|] redefine both |_| and |^| symbols (default).
+% \end{description}
+%
+% \section{Example}
+%
+% The following input:
+% \begin{center}\begin{minipage}{0.7\linewidth}
+% \begin{verbatim}
+% Default:
+% \begin{displaymath}
+% x_a^b \quad
+% x_{braces sub}^{braces sup} \quad
+% x_[brackets sub]^{braces sup} \quad
+% x_{braces sub}^[brackets sup] \quad
+% x_[brackets sub]^[brackets sup]
+% \end{displaymath}
+%
+% New formats:
+% % \text from amstext package
+% % \color from xcolor package
+% \newcommand{\bluecolor}[1]{\text{\color{blue}#1}}
+% \newcommand{\redcolor}[1] {\text{\color{red}#1}}
+% \SetAltSubscriptCommand{\bluecolor}
+% \SetAltSuperscriptCommand{\redcolor}
+% \begin{displaymath}
+% x_a^b \quad
+% x_{braces sub}^{braces sup} \quad
+% x_[brackets sub]^{braces sup} \quad
+% x_{braces sub}^[brackets sup] \quad
+% x_[brackets sub]^[brackets sup]
+% \end{displaymath}
+%
+% Same command for subscripts and superscripts:
+% \SetAltSubSupCommands{\mathbf}
+% \begin{displaymath}
+% x_a^b \quad
+% x_{braces sub}^{braces sup} \quad
+% x_[brackets sub]^{braces sup} \quad
+% x_{braces sub}^[brackets sup] \quad
+% x_[brackets sub]^[brackets sup]
+% \end{displaymath}
+% \end{verbatim}
+% \end{minipage}\end{center}
+%
+% gives:
+% \begin{center}\begin{minipage}{0.7\linewidth}
+% Default:
+% \begin{displaymath}
+% x_a^b \quad
+% x_{braces sub}^{braces sup} \quad
+% x_[brackets sub]^{braces sup} \quad
+% x_{braces sub}^[brackets sup] \quad
+% x_[brackets sub]^[brackets sup]
+% \end{displaymath}
+%
+% New formats:
+% \newcommand{\bluecolor}[1]{\text{\color{blue}#1}}
+% \newcommand{\redcolor}[1] {\text{\color{red}#1}}
+% \SetAltSubscriptCommand{\bluecolor}
+% \SetAltSuperscriptCommand{\redcolor}
+% \begin{displaymath}
+% x_a^b \quad
+% x_{braces sub}^{braces sup} \quad
+% x_[brackets sub]^{braces sup} \quad
+% x_{braces sub}^[brackets sup] \quad
+% x_[brackets sub]^[brackets sup]
+% \end{displaymath}
+%
+% Same command for subscripts and superscripts:
+% \SetAltSubSupCommands{\mathbf}
+% \begin{displaymath}
+% x_a^b \quad
+% x_{braces sub}^{braces sup} \quad
+% x_[brackets sub]^{braces sup} \quad
+% x_{braces sub}^[brackets sup] \quad
+% x_[brackets sub]^[brackets sup]
+% \end{displaymath}
+% \end{minipage}\end{center}
+%
+% \section{Known issues}
+%
+% The use of the prime symbol |'| can raise the \emph{Double superscript}
+% error message. This is normally fixed (|x'^2| gives $x'^2$ correctly).
+% If needed, enclose the expression with |{...}|. In particular, |x'^[sup]|
+% doesn't work, and should be written: |{x'}^[sup]|.
+%
+% \section{Alternatives}
+%
+% Two other packages give similar functionalities:
+% \begin{description}
+% \item[the \textsf{subtext} package]
+% (\href{https://www.ctan.org/pkg/subtext}{https://www.ctan.org/pkg/subtext}),
+% by Palle J\o{}rgensen, formats |_[...]| subscripts with |\text| (the
+% differences, is that the \textsf{altsubsup} package works both for
+% subscripts and superscripts, allows to customise the commands, and
+% redefine symbols only in math mode);
+% \item[the \textsf{spbmark} package]
+% (\href{https://www.ctan.org/pkg/spbmark}{https://www.ctan.org/pkg/spbmark}),
+% by Qu Yi, allows a complete customisation of subscripts and superscripts.
+% \end{description}
+%
+% \StopEventually{}
+% \section{Implementation}
+%
+% \subsection*{Package declaration}
+%
+% \begin{macrocode}
+\ProvidesPackage{altsubsup}[2022/01/23, v1.0, Alternative and customisable
+subscripts and superscripts, with square brackets.]
+% \end{macrocode}
+%
+% \subsection*{Flags declaration}
+%
+% Determine the commands that will be redefined.
+%
+% \begin{macrocode}
+\newif\ifaltsbsp@subscript \altsbsp@subscripttrue
+\newif\ifaltsbsp@superscript \altsbsp@superscripttrue
+% \end{macrocode}
+%
+% \subsection*{Options declarations and processing}
+%
+% \begin{macrocode}
+\DeclareOption{subscript} {\altsbsp@subscripttrue \altsbsp@superscriptfalse}
+\DeclareOption{superscript} {\altsbsp@subscriptfalse \altsbsp@superscripttrue }
+\DeclareOption{both} {\altsbsp@subscripttrue \altsbsp@superscripttrue }
+\DeclareOption*{\PackageWarning{altsubsup}{Unknown option \CurrentOption.}}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \subsection*{Redefine catcodes and make symbols active in mathmode}
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ifaltsbsp@subscript \catcode`\_=12 \mathcode`\_="8000 \fi%
+ \ifaltsbsp@superscript \catcode`\^=12 \mathcode`\^="8000 \fi%
+}
+% \end{macrocode}
+%
+% \subsection*{Redefinition of the subscript symbol}
+%
+% \begin{macrocode}
+\ifaltsbsp@subscript%
+\begingroup\lccode`\~=`\_\lowercase{\endgroup%
+ \def~}{\@ifnextchar[% dummy bracket ]
+ {\altsbsp@subwrapper}% bracket wrapper
+ {\sb}% standard form
+}%
+\fi
+% \end{macrocode}
+%
+% \subsection*{Redefinition of the superscript symbol}
+%
+% \begin{macrocode}
+\ifaltsbsp@superscript%
+\begingroup\lccode`\~=`\^\lowercase{\endgroup%
+ \def~}{\@ifnextchar[% dummy bracket ]
+ {\altsbsp@supwrapper}% bracket wrapper
+ {\sp}% standard form
+}%
+\fi
+% \end{macrocode}
+%
+% \subsection*{User macros}
+%
+% \begin{macro}{\SetAltSubscriptCommand}
+% \begin{macrocode}
+\def\SetAltSubscriptCommand#1{\let\altsbsp@altsubcmd#1}%
+\def\altsbsp@subwrapper[#1]{\sb{\altsbsp@altsubcmd{#1}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SetAltSuperscriptCommand}
+% \begin{macrocode}
+\def\SetAltSuperscriptCommand#1{\let\altsbsp@altsupcmd#1}%
+\def\altsbsp@supwrapper[#1]{\sp{\altsbsp@altsupcmd{#1}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\SetAltSubSupCommands}
+% \begin{macrocode}
+\newcommand{\SetAltSubSupCommands}[1]{%
+ \SetAltSubscriptCommand{#1}%
+ \SetAltSuperscriptCommand{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection*{Set default commands}
+%
+% \begin{macrocode}
+\RequirePackage{amstext}%
+\SetAltSubSupCommands{\text}%
+% \end{macrocode}
+%
+% \subsection*{Fix prime symbol}
+%
+% \begin{macrocode}
+\ifaltsbsp@superscript%
+\begingroup \catcode`\^=12%
+\gdef\altsbsp@pr@m@s{% copy of \@pr@m@s code from latex.ltx
+ \ifx'\@let@token
+ \expandafter\pr@@@s
+ \else
+ \ifx^\@let@token
+ \expandafter\expandafter\expandafter\pr@@@t
+ \else
+ \egroup
+ \fi
+ \fi}
+\endgroup
+\let\pr@m@s\altsbsp@pr@m@s
+\fi
+% \end{macrocode}
+%
+% \subsection*{End of the package}
+%
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/altsubsup/altsubsup.el b/macros/latex/contrib/altsubsup/altsubsup.el
new file mode 100644
index 0000000000..8d2346bec6
--- /dev/null
+++ b/macros/latex/contrib/altsubsup/altsubsup.el
@@ -0,0 +1,43 @@
+;;; altsubsup.el --- AUCTeX style for `altsubsup.sty'
+
+;; Copyright (C) 2022 by Julien Labbé <Julien.Labbe@univ-grenoble-alpes.fr>
+
+;; This file 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.
+
+;;; Commentary:
+
+;; This file adds support for `altsubsup.sty'.
+
+;;; Code:
+
+;; Silence the compiler:
+
+(TeX-add-style-hook
+ "altsubsup"
+ (lambda ()
+
+ ;; New symbols
+ (TeX-add-symbols
+ "SetAltSubscriptCommand"
+ "SetAltSuperscriptCommand"
+ "SetAltSubSupCommands")
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (add-hook 'TeX-update-style-hook
+ (lambda ()
+ (font-lock-add-keywords
+ nil
+ (list
+ '("\\^\\(\\[[^]]*\\]\\)" (1 'font-latex-superscript-face))
+ '("_\\(\\[[^]]*\\]\\)" (1 'font-latex-subscript-face))))))))
+
+LaTeX-dialect)
+
+;;; altsubsup.el ends here
diff --git a/macros/latex/contrib/altsubsup/altsubsup.ins b/macros/latex/contrib/altsubsup/altsubsup.ins
new file mode 100644
index 0000000000..df5478b20f
--- /dev/null
+++ b/macros/latex/contrib/altsubsup/altsubsup.ins
@@ -0,0 +1,57 @@
+%%
+%% Copyright (C) 2022 by Julien Labbé <Julien.Labbe@univ-grenoble-alpes.fr>
+%%
+%% This file 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.
+%%
+%% Note : this file was created from the version 2.1 of the dtxtut tutorial,
+%% maintained by Scott Pakin.
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/altsubsup}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2022 by Julien Labbé <Julien.Labbe@univ-grenoble-alpes.fr>
+
+This file 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.
+
+\endpreamble
+
+\generate{\file{altsubsup.sty}{\from{altsubsup.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* altsubsup.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file *}
+\Msg{* altsubsup.dtx through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/altsubsup/altsubsup.pdf b/macros/latex/contrib/altsubsup/altsubsup.pdf
new file mode 100644
index 0000000000..94bcb5c1e7
--- /dev/null
+++ b/macros/latex/contrib/altsubsup/altsubsup.pdf
Binary files differ
diff --git a/macros/latex/contrib/bmstu/README.md b/macros/latex/contrib/bmstu/README.md
new file mode 100644
index 0000000000..e62cb3cd35
--- /dev/null
+++ b/macros/latex/contrib/bmstu/README.md
@@ -0,0 +1,21 @@
+# bmstu package
+
+Release 2022-01-24 (v1.0.0)
+
+## Overview
+
+The class defines commands and environments for creating reports and explanatory notes in Bauman Moscow State Technical University (Russia).
+
+Generated files correspond to [requirements of Bauman Moscow State Technical University](https://mf.bmstu.ru/info/uu/ot/norm_docs/docs/polozhenie_normcontrol_pril1.pdf) and [GOST 7.32-2017](https://docs.cntd.ru/document/1200157208). Explanatory notes to graduate qualification works are successfully tested by [TestVKR](https://vkr.bmstu.ru/) (build 203).
+
+Please go to the official repository at https://github.com/Orianti/bmstu-latex-class to submit bug reports, request new features, etc.
+
+## License
+This work (except `bmstu-logo.pdf`) is distributed under The LaTeX Project Public License.
+
+File `bmstu-logo.pdf` is a logo of Bauman Moscow State Technical University and complies with fair use (article 1274 of the Russian Civil Code).
+
+---
+
+Copyright © 2020-2022 Mikael Novikov<br>
+All rights reserved. \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu/bmstu.cls b/macros/latex/contrib/bmstu/bmstu.cls
new file mode 100644
index 0000000000..10f59f876d
--- /dev/null
+++ b/macros/latex/contrib/bmstu/bmstu.cls
@@ -0,0 +1,115 @@
+%% bmstu.cls
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesClass{bmstu}[2022/01/24 v1.0.0 BMSTU class]
+
+% Установка базового класса
+\LoadClass[14pt]{extreport}
+
+% Настройка кодировки и языков
+\RequirePackage[T1,T2A]{fontenc}
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[english,main=russian]{babel}
+\RequirePackage{fix-cm}
+
+% Настройка полей
+\RequirePackage[
+ left=30mm,
+ right=10mm, % Является требованием МГТУ, не соответствует ГОСТ 7.32-2017
+ top=20mm,
+ bottom=20mm,
+]{geometry}
+
+% Настройка переносов
+\RequirePackage{microtype}
+\sloppy
+
+% Настройка межстрочного интервала
+\RequirePackage{setspace}
+\onehalfspacing
+
+% Настройка абзацного отступа
+\RequirePackage{indentfirst}
+\setlength{\parindent}{12.5mm}
+
+% Настройка заголовков
+\makeatletter
+\renewcommand\LARGE{\@setfontsize\LARGE{22pt}{20}}
+\renewcommand\Large{\@setfontsize\Large{20pt}{20}}
+\renewcommand\large{\@setfontsize\large{16pt}{20}}
+\makeatother
+\RequirePackage{titlesec}
+\titleformat{\chapter}[block]{\hspace{\parindent}\large\bfseries}{\thechapter}{0.5em}{\large\bfseries\raggedright}
+\titleformat{name=\chapter,numberless}[block]{\hspace{\parindent}}{}{0pt}{\large\bfseries\centering}
+\titleformat{\section}[block]{\hspace{\parindent}\large\bfseries}{\thesection}{0.5em}{\large\bfseries\raggedright}
+\titleformat{\subsection}[block]{\hspace{\parindent}\large\bfseries}{\thesubsection}{0.5em}{\large\bfseries\raggedright}
+\titleformat{\subsubsection}[block]{\hspace{\parindent}\large\bfseries}{\thesubsection}{0.5em}{\large\bfseries\raggedright}
+\titlespacing{\chapter}{12.5mm}{-22pt}{10pt}
+\titlespacing{\section}{12.5mm}{10pt}{10pt}
+\titlespacing{\subsection}{12.5mm}{10pt}{10pt}
+\titlespacing{\subsubsection}{12.5mm}{10pt}{10pt}
+
+% Подключение пакета цветов
+\RequirePackage{xcolor}
+
+\RequirePackage{bmstu-figure}
+\RequirePackage{bmstu-listing}
+
+% Подключение пакетов таблиц
+\RequirePackage{tabularx}
+\RequirePackage{booktabs}
+
+% Настройка подписей
+\RequirePackage[
+ labelsep=endash,
+ figurename=Рисунок,
+ singlelinecheck=false,
+]{caption}
+\captionsetup[figure]{justification=centering}
+
+% Подключение пакетов для альбомной ориентации
+\RequirePackage{lscape}
+\RequirePackage{afterpage}
+
+% Подключение математических пакетов
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+
+% Настройка библиографии
+\RequirePackage[
+ style=gost-numeric,
+ language=auto,
+ autolang=other,
+ sorting=none,
+]{biblatex}
+\RequirePackage{csquotes}
+\DeclareFieldFormat{urldate}{(дата обращения:\addspace\thefield{urlday}\adddot \thefield{urlmonth}\adddot\thefield{urlyear})}
+
+% Подключение пакета гиперссылок
+\RequirePackage[unicode,hidelinks]{hyperref}
+
+% Подключение пакета управляющих конструкций
+\RequirePackage{xifthen}
+
+\RequirePackage{bmstu-title}
+\RequirePackage{bmstu-essay}
+\RequirePackage{bmstu-toc}
+\RequirePackage{bmstu-defabbr}
+\RequirePackage{bmstu-biblio}
+\RequirePackage{bmstu-appendix}
diff --git a/macros/latex/contrib/bmstu/examples/examples.pdf b/macros/latex/contrib/bmstu/examples/examples.pdf
new file mode 100644
index 0000000000..89f3f3d602
--- /dev/null
+++ b/macros/latex/contrib/bmstu/examples/examples.pdf
Binary files differ
diff --git a/macros/latex/contrib/bmstu/examples/examples.tex b/macros/latex/contrib/bmstu/examples/examples.tex
new file mode 100644
index 0000000000..f95b1fc21f
--- /dev/null
+++ b/macros/latex/contrib/bmstu/examples/examples.tex
@@ -0,0 +1,155 @@
+\documentclass{bmstu}
+
+\begin{document}
+
+% Аргументы, помеченные как необязательные, могут быть пустыми. В таком случае соответствующее этому аргументу поле (например, ФИО консультанта) добавлено не будет.
+
+% Титульная страница
+
+% Отчет
+
+\makereporttitle
+ {Информатика, искусственный интеллект и системы управления} % Название факультета
+ {Программное обеспечение ЭВМ и информационные технологии} % Название кафедры
+ {лабораторной работе №~1} % Название работы (в дат. падеже)
+ {Операционные системы} % Название курса (необязательный аргумент)
+ {Обработчик прерывания от системного таймера} % Тема работы
+ {} % Номер варианта (необязательный аргумент)
+ {ИУ7-51Б} % Номер группы
+ {Иванов~И.~И.} % ФИО студента
+ {Петров~П.~П.} % ФИО преподавателя
+
+% Расчетно-пояснительная записка к курсовой работе
+
+\makecourseworktitle
+ {Информатика, искусственный интеллект и системы управления} % Название факультета
+ {Программное обеспечение ЭВМ и информационные технологии} % Название кафедры
+ {Исследование распределения памяти в многопоточных приложениях Linux} % Тема работы
+ {ИУ7-71Б} % Номер группы
+ {Иванов~И.~И.} % ФИО студента
+ {Петров~П.~П.} % ФИО научного руководителя
+ {Сидоров~С.~С.} % ФИО консультанта (необязательный аргумент)
+ {Кузнецов~К.~К.} % ФИО консультанта (необязательный аргумент)
+
+% Отчет по научно-исследовательской работе
+
+\makeresearchtitle
+ {Информатика, искусственный интеллект и системы управления} % Название факультета
+ {Программное обеспечение ЭВМ и информационные технологии} % Название кафедры
+ {Исследование методов генерации исходного кода} % Тема работы
+ {ИУ7-81Б} % Номер группы
+ {Иванов~И.~И.} % ФИО студента
+ {Петров~П.~П.} % ФИО научного руководителя
+ {} % ФИО консультанта (необязательный аргумент)
+ {} % ФИО консультанта (необязательный аргумент)
+
+% Расчетно-пояснительная записка к выпускной квалификационной работе
+
+\makethesistitle
+ {Информатика, искусственный интеллект и системы управления} % Название факультета
+ {Программное обеспечение ЭВМ и информационные технологии} % Название кафедры
+ {Метод обнаружения спутников как точечных объектов на изображении} % Тема работы
+ {ИУ7-81Б} % Номер группы
+ {Иванов~И.~И.} % ФИО студента
+ {Петров~П.~П.} % ФИО научного руководителя
+ {Сидоров~С.~С.} % ФИО консультанта (необязательный аргумент)
+ {} % ФИО консультанта (необязательный аргумент)
+ {Кузнецов~К.~К.} % ФИО нормоконтролера
+
+% Рисунок
+
+% Рисункам, добавленным следующими командами, присваивается метка `img:<имя файла без расширения>`.
+
+% Без обтекание текста
+
+На~рисунке~\ref{img:tux} символ семейства Unix-подобных операционных систем Linux.
+Он отличается от~<<обычных>> пингвинов желтым цветом клюва и~лап.
+
+\includeimage
+ {tux} % Имя файла без расширения (файл должен быть расположен в директории inc/img/)
+ {f} % Обтекание (без обтекания)
+ {h} % Положение рисунка (см. figure из пакета float)
+ {0.25\textwidth} % Ширина рисунка
+ {Символ Linux (Tux)} % Подпись рисунка
+
+Cоздатель официального талисмана Linux~--- Ларри Юинг~--- американский программист и~дизайнер.
+Известен также как создатель логотипа компании Ximian.
+Живёт в~Остине (штат~Техас) вместе со~своей женой Евой и~дочерью Кристи.
+
+% С обтеканием текста
+
+\includeimage
+ {tuz} % Имя файла без расширения (файл должен быть расположен в директории inc/img/)
+ {w} % Обтекание (с обтеканием)
+ {r} % Положение рисунка (см. wrapfigure из пакета wrapfig)
+ {0.33\textwidth} % Ширина рисунка
+ {Tuz} % Подпись рисунка
+
+История Tux началась в~1996~году, когда в~списке рассылки разработчиков ядра Linux появились первые разговоры о~талисмане.
+Среди множества предложений можно было выделить либо пародии на~логотипы других ОС, либо~стандартных животных.
+Дискуссии несколько утихли после того, как Линус Торвальдс случайно обмолвился о~том, что ему нравятся пингвины.
+Было несколько попыток нарисовать пингвинов в~разных позах, после чего поступило предложение логотипа в~виде пингвина, держащего Землю.
+
+В~качестве символа ядра~версии 2.6.29 принят тасманский дьявол Tuz (см.~рисунок~\ref{img:tuz}), изображение которого ранее служило талисманом конференции linux.conf.au 2009.
+На~этой конференции Линус Торвальдс провёл успешную акцию по~благотворительной продаже игрушек Linux Tasmanian devil за~сохранение популяции Тасманского дьявола. \newpage
+
+% Листинг
+
+% Листингам, добавленным следующими командами, присваивается метка `lst:<имя файла с расширением>`.
+
+% Простой
+
+% C подсветкой синтаксиса и нумерацией строк
+
+% Обратите внимание, что добавление подсветки синтаксиса и нумерации строк приводит к ошибкам TestVKR. При этом ГОСТ 7.32-2017 не регулирует оформление исходного кода программ.
+
+% Если не будет указан язык программирования или указанный язык не поддерживается, подсветка синтаксиса работать не будет.
+
+На~листингах представлен исходный код программы Hello World на~языке программирования C в~двух вариантах оформления.
+
+\includelisting
+ {main.c} % Имя файла с расширением (файл должен быть расположен в директории inc/lst/)
+ {Исходный код программы Hello World} % Подпись листинга
+
+\includelistingpretty
+ {main.c} % Имя файла с расширением (файл должен быть расположен в директории inc/lst/)
+ {c} % Язык программирования (необязательный аргумент)
+ {Исходный код программы Hello World} % Подпись листинга
+
+% Заголовки
+
+\chapter{Операционные системы}
+
+\section{Unix}
+
+Unix (<<UNIX>> является зарегистрированной торговой маркой организации The~Open~Group) --- семейство переносимых, многозадачных и~многопользовательских операционных систем, которые основаны на~идеях оригинального проекта AT\&T Unix, разработанного в~1970-х~годах в~исследовательском центре Bell Labs Кеном Томпсоном, Деннисом Ритчи и~другими.
+
+\subsection{Обзор}
+
+Первая система Unix была разработана в подразделении Bell~Labs компании AT\&T. С~тех пор было создано большое количество различных Unix-систем.
+
+Юридически право называться <<UNIX>> имеют лишь те операционные системы, которые прошли сертификацию на~соответствие стандарту Single UNIX Specification.
+Остальные~же, хотя и~используют сходные концепции и~технологии, называются Unix-подобными операционными системами (англ.~Unix-like).
+
+\subsubsection{Особенности}
+
+Основное отличие Unix-подобных систем от~других операционных систем заключается в~том, что это изначально многопользовательские многозадачные системы.
+В~Unix может одновременно работать сразу много людей, каждый за~своим терминалом, при этом каждый из~них может выполнять множество различных вычислительных процессов, которые будут использовать ресурсы именно этого компьютера. \newpage
+
+% Формулы
+
+\begin{equation}\label{equ:matrix}
+ \frac{n!}{k!(n-k)!} = \binom{n}{k}
+\end{equation}
+
+\begin{equation*}
+ A_{m,n} =
+ \begin{pmatrix}
+ a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\
+ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\
+ \vdots & \vdots & \ddots & \vdots \\
+ a_{m,1} & a_{m,2} & \cdots & a_{m,n}
+ \end{pmatrix}
+\end{equation*}
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu/examples/inc/img/tux.png b/macros/latex/contrib/bmstu/examples/inc/img/tux.png
new file mode 100644
index 0000000000..c5f088ba76
--- /dev/null
+++ b/macros/latex/contrib/bmstu/examples/inc/img/tux.png
Binary files differ
diff --git a/macros/latex/contrib/bmstu/examples/inc/img/tuz.png b/macros/latex/contrib/bmstu/examples/inc/img/tuz.png
new file mode 100644
index 0000000000..b7c3407182
--- /dev/null
+++ b/macros/latex/contrib/bmstu/examples/inc/img/tuz.png
Binary files differ
diff --git a/macros/latex/contrib/bmstu/examples/inc/lst/main.c b/macros/latex/contrib/bmstu/examples/inc/lst/main.c
new file mode 100644
index 0000000000..42dcc471bd
--- /dev/null
+++ b/macros/latex/contrib/bmstu/examples/inc/lst/main.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+// Hello World Program in C
+
+int main()
+{
+ printf("Hello World\n");
+ return 0;
+}
diff --git a/macros/latex/contrib/bmstu/img/bmstu-logo.pdf b/macros/latex/contrib/bmstu/img/bmstu-logo.pdf
new file mode 100644
index 0000000000..226943b0b4
--- /dev/null
+++ b/macros/latex/contrib/bmstu/img/bmstu-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/bmstu/sty/bmstu-appendix.sty b/macros/latex/contrib/bmstu/sty/bmstu-appendix.sty
new file mode 100644
index 0000000000..a276edec33
--- /dev/null
+++ b/macros/latex/contrib/bmstu/sty/bmstu-appendix.sty
@@ -0,0 +1,37 @@
+%% bmstu_appendix.sty
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+% Установка заголовков приложений
+\RequirePackage[
+ titletoc,
+ title,
+]{appendix}
+\AtBeginDocument{\renewcommand{\appendixname}{ПРИЛОЖЕНИЕ}}
+
+% Создание приложений
+\let\oldappendices\appendices
+\let\oldendappendices\endappendices
+\renewenvironment{appendices}
+{
+ \titleformat{\chapter}{\large\bfseries}{\appendixname~\thechapter}{0pt}{\centering\large\bfseries\\}
+ \setcounter{appendixchapters}{0}
+ \oldappendices
+ \renewcommand{\thechapter}{\Asbuk{chapter}}
+}
+{
+ \oldendappendices
+}
diff --git a/macros/latex/contrib/bmstu/sty/bmstu-biblio.sty b/macros/latex/contrib/bmstu/sty/bmstu-biblio.sty
new file mode 100644
index 0000000000..0b08161c90
--- /dev/null
+++ b/macros/latex/contrib/bmstu/sty/bmstu-biblio.sty
@@ -0,0 +1,23 @@
+%% bmstu_biblio.sty
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+% Создание списка использованных источников
+\newcommand{\makebibliography}
+{
+ \printbibliography[title=СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ]
+ \addcontentsline{toc}{chapter}{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu/sty/bmstu-defabbr.sty b/macros/latex/contrib/bmstu/sty/bmstu-defabbr.sty
new file mode 100644
index 0000000000..9c557ac6bd
--- /dev/null
+++ b/macros/latex/contrib/bmstu/sty/bmstu-defabbr.sty
@@ -0,0 +1,51 @@
+%% bmstu_defabbr.sty
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+% Создание элемента
+\RequirePackage{enumitem}
+\newcommand{\definition}[2]
+{
+ \item \noindent #1 --- #2
+}
+
+% Создание страницы определений
+\newenvironment{definitions}
+{
+ \chapter*{ОПРЕДЕЛЕНИЯ}
+ \addcontentsline{toc}{chapter}{ОПРЕДЕЛЕНИЯ}
+
+ В настоящей расчетно-пояснительной записке применяют следующие термины с соответствующими определениями.
+
+ \begin{description}[leftmargin=0pt]
+ }
+ {
+ \end{description}
+}
+
+% Создание страницы обозначений и сокращений
+\newenvironment{abbreviations}
+{
+ \chapter*{ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ}
+ \addcontentsline{toc}{chapter}{ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ}
+
+ В настоящей расчетно-пояснительной записке применяют следующие сокращения и обозначения.
+
+ \begin{description}[leftmargin=0pt]
+ }
+ {
+ \end{description}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu/sty/bmstu-essay.sty b/macros/latex/contrib/bmstu/sty/bmstu-essay.sty
new file mode 100644
index 0000000000..55766d9058
--- /dev/null
+++ b/macros/latex/contrib/bmstu/sty/bmstu-essay.sty
@@ -0,0 +1,68 @@
+%% bmstu_essay.sty
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+% Подсчет количества страниц
+\RequirePackage{lastpage}
+
+% Подсчет количества рисунков и таблиц
+\RequirePackage{etoolbox}
+\newcounter{totfigures}
+\newcounter{tottables}
+\providecommand\totfig{}
+\providecommand\tottab{}
+\makeatletter
+\AtEndDocument{%
+ \addtocounter{totfigures}{\value{figure}}%
+ \addtocounter{tottables}{\value{table}}%
+ \immediate\write\@mainaux{%
+ \string\gdef\string\totfig{\number\value{totfigures}}%
+ \string\gdef\string\tottab{\number\value{tottables}}%
+ }%
+}
+\makeatother
+\pretocmd{\chapter}{\addtocounter{totfigures}{\value{figure}}\setcounter{figure}{0}}{}{}
+\pretocmd{\chapter}{\addtocounter{tottables}{\value{table}}\setcounter{table}{0}}{}{}
+
+% Подсчет количества использованных источников
+\newcounter{totbibentries}
+\newcommand*{\listcounted}{}
+\providecommand\totbib{}
+\makeatletter
+\AtDataInput{%
+ \xifinlist{\abx@field@entrykey}\listcounted%
+ {}%
+ {\stepcounter{totbibentries}%
+ \listxadd\listcounted{\abx@field@entrykey}}%
+}%
+\makeatother
+
+% Подсчет количества приложений
+\usepackage{totcount, assoccnt}
+\newcounter{appendixchapters}
+\DeclareAssociatedCounters{chapter}{appendixchapters}
+\regtotcounter{appendixchapters}
+
+% Создание страницы реферата
+\newenvironment{essay}[1]
+{
+ \chapter*{РЕФЕРАТ}
+ \addcontentsline{toc}{chapter}{РЕФЕРАТ}
+
+ Расчетно-пояснительная записка \begin{NoHyper}\pageref{LastPage}\end{NoHyper}~с., \totfig~рис., \tottab~табл., \thetotbibentries~источн., \total{appendixchapters}~прил.
+
+ \noindent \MakeUppercase{#1} \par
+}{} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu/sty/bmstu-figure.sty b/macros/latex/contrib/bmstu/sty/bmstu-figure.sty
new file mode 100644
index 0000000000..d2817ca668
--- /dev/null
+++ b/macros/latex/contrib/bmstu/sty/bmstu-figure.sty
@@ -0,0 +1,52 @@
+%% bmstu_figure.sty
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+% Подключения пакетов фигур
+\RequirePackage{graphicx}
+\RequirePackage{float}
+\RequirePackage{wrapfig}
+\RequirePackage{tikzscale}
+
+% Подключения пакета графиков
+\RequirePackage{pgfplots}
+\pgfplotsset{compat=newest}
+
+% Команда создания рисунка
+\newcommand{\includeimage}[5]
+{
+ \ifthenelse{\equal{#2}{f}}
+ {
+ \begin{figure}[#3]
+ \center{\includegraphics[width=#4]{inc/img/#1}}
+ \caption{#5}
+ \label{img:#1}
+ \end{figure}
+ }
+ {
+ \ifthenelse{\equal{#2}{w}}
+ {
+ \begin{wrapfigure}{#3}{#4}
+ \center{\includegraphics[width=#4]{inc/img/#1}}
+ \caption{#5}
+ \label{img:#1}
+ \end{wrapfigure}
+ }
+ {
+ \PackageError{bmstu}{unknown image type}{}
+ }
+ }
+} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu/sty/bmstu-listing.sty b/macros/latex/contrib/bmstu/sty/bmstu-listing.sty
new file mode 100644
index 0000000000..1f39686a0e
--- /dev/null
+++ b/macros/latex/contrib/bmstu/sty/bmstu-listing.sty
@@ -0,0 +1,63 @@
+%% bmstu_listing.sty
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+% Настройка листингов
+\RequirePackage{listings}
+\RequirePackage{listingsutf8}
+\lstset{
+ inputencoding=utf8/koi8-r,
+ basicstyle=\small\ttfamily,
+ rulecolor=\color{black},
+ escapeinside={\%*}{*)},
+ breaklines=true,
+ breakatwhitespace=true,
+ tabsize=4,
+ showstringspaces=false,
+ float=h!,
+ abovecaptionskip=-5pt,
+}
+
+% Команда создания простого листинга
+\newcommand{\includelisting}[2]
+{
+ \lstinputlisting[
+ frame=single,
+ caption={#2},
+ label={lst:#1},
+ ]{inc/lst/#1}
+}
+
+\definecolor{numbers}{rgb}{0.5, 0.5, 0.5}
+\definecolor{keywords}{rgb}{0.13, 0.13, 1}
+\definecolor{comments}{rgb}{0, 0.5, 0}
+\definecolor{strings}{rgb}{0.9, 0, 0}
+
+% Команда создания листинга с подсветкой синтаксиса и нумерацией строк
+\newcommand{\includelistingpretty}[3]
+{
+ \lstinputlisting[
+ language={#2},
+ keywordstyle=\color{keywords},
+ stringstyle=\color{strings},
+ commentstyle=\color{comments},
+ frame=leftline,
+ numbers=left,
+ numberstyle=\footnotesize\color{numbers},
+ caption={#3},
+ label={lst:#1},
+ ]{inc/lst/#1}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu/sty/bmstu-title.sty b/macros/latex/contrib/bmstu/sty/bmstu-title.sty
new file mode 100644
index 0000000000..ea707bdc7a
--- /dev/null
+++ b/macros/latex/contrib/bmstu/sty/bmstu-title.sty
@@ -0,0 +1,247 @@
+%% bmstu_title.sty
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+% Установка мета-данных выходного файла
+\newcommand{\documentmeta}[4]
+{
+ \hypersetup{
+ pdftitle={#1 #2 #3},
+ pdfsubject={#4},
+ pdfauthor={#2}
+ }
+}
+
+% Cоздание полей
+\RequirePackage[normalem]{ulem}
+\RequirePackage{stackengine}
+\newcommand{\longunderline}[1]
+{
+ \uline{#1\hfill\mbox{}}
+}
+\newcommand{\fixunderline}[3]
+{
+ $\underset{\text{#3}}{\text{\uline{\stackengine{0pt}{\hspace{#2}}{\text{#1}}{O}{c}{F}{F}{L}}}}$
+}
+
+% Создание горизонтальной линии
+\makeatletter
+\newcommand{\vhrulefill}[1]
+{
+ \leavevmode\leaders\hrule\@height#1\hfill \kern\z@
+}
+\makeatother
+
+% Создание шапки титульной страницы
+\newcommand{\titlepageheader}[2]
+{
+ \begin{wrapfigure}[7]{l}{0.14\linewidth}
+ \vspace{3.4mm}
+ \hspace{-8mm}
+ \includegraphics[width=0.89\linewidth]{img/bmstu-logo}
+ \end{wrapfigure}
+
+ {
+ \singlespacing \small
+ Министерство науки и высшего образования Российской Федерации \\
+ Федеральное государственное бюджетное образовательное учреждение \\
+ высшего образования \\
+ <<Московский государственный технический университет \\
+ имени Н.~Э.~Баумана \\
+ (национальный исследовательский университет)>> \\
+ (МГТУ им. Н.~Э.~Баумана) \\
+ }
+
+ \vspace{-4.2mm}
+ \vhrulefill{0.9mm} \\
+ \vspace{-7mm}
+ \vhrulefill{0.2mm} \\
+ \vspace{2.8mm}
+
+ {
+ \small
+ ФАКУЛЬТЕТ \longunderline{<<#1>>} \\
+ \vspace{3.3mm}
+ КАФЕДРА \longunderline{<<#2>>} \\
+ }
+}
+
+% Установка заголовков отчета по НИР
+\newcommand{\titlepageresearchtitle}[1]
+{
+ {
+ \LARGE \bfseries
+ ОТЧЕТ \\
+ }
+ \vspace{5mm}
+ {
+ \Large \itshape
+ ПО НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ \\
+ \vspace{5mm}
+ НА ТЕМУ: \\
+ <<#1>> \\
+ }
+}
+
+% Установка заголовков РПЗ
+\newcommand{\titlepagenotetitle}[2]
+{
+ {
+ \LARGE \bfseries
+ РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА \\
+ }
+ \vspace{5mm}
+ {
+ \Large \itshape
+ #1 \\
+ \vspace{5mm}
+ НА ТЕМУ: \\
+ <<#2>> \\
+ }
+}
+
+% Установка заголовков отчета
+\newcommand{\titlepagereporttitle}[4]
+{
+ \textbf{ОТЧЕТ} \\
+ по #1 \\
+ \ifthenelse{\isempty{#2}}{}{по курсу <<#2>> \\}
+ \ifthenelse{\isempty{#3}}{}{на тему: <<#3>> \\}
+ \ifthenelse{\isempty{#4}}{}{Вариант №~#4 \\}
+}
+
+% Создание поля студента
+\newcommand{\titlepagestudent}[2]
+{
+ Студент \fixunderline{#1}{25mm}{(Группа)} &
+ \fixunderline{}{40mm}{(Подпись, дата)} \vspace{1.3mm} &
+ \fixunderline{#2}{40mm}{(И.~О.~Фамилия)} \\
+}
+
+% Создание прочих полей
+\newcommand{\titlepageothers}[2]
+{
+ #1 &
+ \fixunderline{}{40mm}{(Подпись, дата)} \vspace{1.3mm} &
+ \fixunderline{#2}{40mm}{(И.~О.~Фамилия)} \\
+}
+
+% Установка исполнителей работы
+\newcommand{\titlepageauthors}[7]
+{
+ {
+ \small
+ \begin{tabularx}{\textwidth}{@{}>{\hsize=.5\hsize}X>{\hsize=.25\hsize}X>{\hsize=.25\hsize}X@{}}
+ \titlepagestudent{#1}{#2}
+ \titlepageothers{#3}{#4}
+ \ifthenelse{\isempty{#5}}{}{\titlepageothers{Консультант}{#5}}
+ \ifthenelse{\isempty{#6}}{}{\titlepageothers{Консультант}{#6}}
+ \ifthenelse{\isempty{#7}}{}{\titlepageothers{Нормоконтролер}{#7}}
+ \end{tabularx}
+ }
+}
+
+% Создание титульной страницы РПЗ к ВКР
+\newcommand{\makethesistitle}[9]
+{
+ \documentmeta{РПЗ к ВКР}{#5}{#4}{#3}
+
+ \begin{titlepage}
+ \centering
+
+ \titlepageheader{#1}{#2}
+ \vspace{15.8mm}
+
+ \titlepagenotetitle{К ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЕ}{#3}
+ \vfill
+
+ \titlepageauthors{#4}{#5}{Руководитель ВКР}{#6}{#7}{#8}{#9}
+ \vspace{14mm}
+
+ \textit{{\the\year} г.}
+ \end{titlepage}
+
+ \setcounter{page}{2}
+}
+
+% Создание титульной страницы отчета по НИР
+\newcommand{\makeresearchtitle}[8]
+{
+ \documentmeta{Отчет по НИР}{#5}{#4}{#3}
+
+ \begin{titlepage}
+ \centering
+
+ \titlepageheader{#1}{#2}
+ \vspace{15.8mm}
+
+ \titlepageresearchtitle{#3}
+ \vfill
+
+ \titlepageauthors{#4}{#5}{Руководитель НИР}{#6}{#7}{#8}{}
+ \vspace{14mm}
+
+ \textit{{\the\year} г.}
+ \end{titlepage}
+
+ \setcounter{page}{2}
+}
+
+% Создание титульной страницы РПЗ к КР
+\newcommand{\makecourseworktitle}[8]
+{
+ \documentmeta{РПЗ к КР}{#5}{#4}{#3}
+
+ \begin{titlepage}
+ \centering
+
+ \titlepageheader{#1}{#2}
+ \vspace{15.8mm}
+
+ \titlepagenotetitle{К КУРСОВОЙ РАБОТЕ}{#3}
+ \vfill
+
+ \titlepageauthors{#4}{#5}{Руководитель курсовой работы}{#6}{#7}{#8}{}
+ \vspace{14mm}
+
+ \textit{{\the\year} г.}
+ \end{titlepage}
+
+ \setcounter{page}{2}
+}
+
+% Создание титульной страницы отчета
+\newcommand{\makereporttitle}[9]
+{
+ \documentmeta{Отчет}{#8}{#3 #4}{#5}
+
+ \begin{titlepage}
+ \centering
+
+ \titlepageheader{#1}{#2}
+ \vspace{15.8mm}
+
+ \titlepagereporttitle{#3}{#4}{#5}{#6}
+ \vfill
+
+ \titlepageauthors{#7}{#8}{Преподаватель}{#9}{}{}{}
+ \vspace{14mm}
+
+ \textit{{\the\year} г.}
+ \end{titlepage}
+
+ \setcounter{page}{2}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/bmstu/sty/bmstu-toc.sty b/macros/latex/contrib/bmstu/sty/bmstu-toc.sty
new file mode 100644
index 0000000000..809698a170
--- /dev/null
+++ b/macros/latex/contrib/bmstu/sty/bmstu-toc.sty
@@ -0,0 +1,23 @@
+%% bmstu_toc.sty
+%% Copyright 2022 Mikael Novikov
+%
+% 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 Mikael Novikov.
+%
+% This work consists of all files listed in manifest.txt.
+
+% Создание содержания
+\newcommand{\maketableofcontents}
+{
+ \renewcommand\contentsname{СОДЕРЖАНИЕ}
+ \tableofcontents
+} \ No newline at end of file
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 6bb74a2191..e23d540b27 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/01/23}{1.50}
+\ProvidesExplClass{easybook}{2022/01/24}{1.51}
{Typeset Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -305,7 +305,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/01/23}{1.50}
+\ProvidesExplPackage{easybase}{2022/01/24}{1.51}
{Typeset Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -1972,6 +1972,8 @@
{
\cs_undefine:c {#1}
\cs_undefine:c { c@#1 }
+ \@ifpackageloaded{cleveref}{}
+ {\labelformat{#1}{\tl_use:c { #1name }~##1}}
}
\eb_thm_biname_set:nnn {#1} {#2} {#3}
\declaretheorem{#1}[
@@ -1986,7 +1988,6 @@
\bool_if:cF { l__eb_tcb_repeat_env_#1_bool }
{ \tcolorboxenvironment{#1}{#4} }
} { }
- \labelformat{#1}{\tl_use:c { #1name }~##1}
}
\prop_new:N \l__eb_thmtools_entry_prop
@@ -2432,7 +2433,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/01/23}{1.50}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/01/24}{1.51}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 1d6687a2d7..1361a798c9 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 49a70949c7..6b742dd898 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -21,8 +21,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK 使用手册,
- version = v1.50,
- date = 2022/01/23,
+ version = v1.51,
+ date = 2022/01/24,
authors = 瞿毅,
info = 排版简体中文学位论文和书籍,
email = q1jx@foxmail.com,
diff --git a/macros/latex/contrib/spbmark/spbmark.pdf b/macros/latex/contrib/spbmark/spbmark.pdf
index 2c833724ea..e3b3c674e4 100644
--- a/macros/latex/contrib/spbmark/spbmark.pdf
+++ b/macros/latex/contrib/spbmark/spbmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty
index bc2aeab66f..53061aedf8 100644
--- a/macros/latex/contrib/spbmark/spbmark.sty
+++ b/macros/latex/contrib/spbmark/spbmark.sty
@@ -9,7 +9,7 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2018/12/31]
\RequirePackage{xparse,l3keys2e}
-\ProvidesExplPackage{spbmark}{2022/01/23}{1.3}
+\ProvidesExplPackage{spbmark}{2022/01/24}{1.31}
{Customize superscripts and subscripts}
\cs_generate_variant:Nn \box_set_ht:Nn { cv }
@@ -40,10 +40,11 @@
\ProcessKeysOptions{spbmark/option}
-\tl_new:N \l__spb_super_cmd_ii_tl
-\tl_new:N \l__spb_sub_cmd_ii_tl
+\cs_set_eq:NN \spb@textsuperscript@save \textsuperscript
+\cs_set_eq:NN \spb@textsubscript@save \textsubscript
+\cs_set_eq:NN \spb@math@super@save \sp
+\cs_set_eq:NN \spb@math@sub@save \sb
\tl_new:N \g__spb_mark_case_init_tl
-
\cs_new_protected:Npn \spb_local_case_init:nnn #1#2#3
{
\str_case:Vn \g__spb_mark_case_init_tl
@@ -63,6 +64,14 @@
}
\spb_define:n
{
+ mode .tl_set:N = \l__spb_mode_value_tl,
+ mode .initial:n = match,
+ style .choice:,
+ style .value_required:n = true,
+ vsep .tl_set:N = \l__spb_supersub_vsep_tl,
+ vsep .initial:n = 0.6ex,
+ halign .tl_set:N = \l__spb_supersub_halign_tl,
+ halign .initial:n = l,
spvmove .tl_set:N = \l__spb_super_vmove_tl,
spvmove .initial:n = 0pt,
sphmove .tl_set:N = \l__spb_super_hmove_tl,
@@ -88,27 +97,87 @@
{ \tl_set:Nn \l__spb_supersub_hmove_tl {#1} }
},
nohmove .meta:n = { sphmove = 0pt,sbhmove = 0pt },
- novmove .meta:n = { spvmove = 0pt,sbvmove = 0pt },
- spcmd .tl_set:N = \l__spb_super_cmd_i_tl,
- sbcmd .tl_set:N = \l__spb_sub_cmd_i_tl,
- spbcmd .code:n = \spb@both@cmd@assign{#1},
- cmd .code:n =
+ novmove .meta:n = { spvmove = 0pt,sbvmove = 0pt }
+ }
+\cs_new:Npn \spb_box_super_move_up_i:n #1
+ { \box_move_up:nn {#1} { \box_use:N \l__super_i_box } }
+\cs_new:Npn \spb_box_sub_move_down_i:n #1
+ { \box_move_down:nn {#1} { \box_use:N \l__sub_i_box } }
+\cs_new:Npn \spb_box_super_move_up_ii:n #1
+ { \box_move_up:nn {#1} { \box_use:N \l__super_ii_box } }
+\cs_new:Npn \spb_box_sub_move_down_ii:n #1
+ { \box_move_down:nn {#1} { \box_use:N \l__sub_ii_box } }
+\cs_new:Npn \spb_box_vmove_i:nn #1
+ {
+ \str_case:nn {#1}
+ {
+ { super } { \spb_box_super_move_up_i:n }
+ { sub } { \spb_box_sub_move_down_i:n }
+ }
+ }
+\cs_generate_variant:Nn \spb_box_super_move_up_ii:n { V }
+\cs_generate_variant:Nn \spb_box_sub_move_down_ii:n { V }
+\dim_new:N \l__spb_supersub_half_vsep_tl
+\providecommand{\hbox_overlap_center:n}[1]
+ { \hbox_to_zero:n { \hss #1\hss } }
+\cs_new:Npn \spb_hbox_overlap_vmove_ii:n #1
+ {
+ \tl_set:Nn \l__spb_supersub_half_vsep_tl
+ { \l__spb_supersub_vsep_tl/2 }
+ \use:c { hbox_overlap_#1:n }
+ { \spb_box_super_move_up_ii:V \l__spb_supersub_half_vsep_tl }
+ \use:c { hbox_overlap_#1:n }
+ { \spb_box_sub_move_down_ii:V \l__spb_supersub_half_vsep_tl }
+ }
+
+\tl_new:N \l__spb_super_cmd_ii_tl
+\tl_new:N \l__spb_sub_cmd_ii_tl
+
+\spb_define:n
+ {
+ spcmd .tl_set:N = \l__spb_super_cmd_i_tl,
+ sbcmd .tl_set:N = \l__spb_sub_cmd_i_tl,
+ spbcmd .code:n = \spb@both@cmd@assign{#1},
+ cmd .code:n =
{
\spb_local_case_init:nnn
{ \tl_set:Nn \l__spb_super_cmd_i_tl {#1} }
{ \tl_set:Nn \l__spb_sub_cmd_i_tl {#1} }
{ \spb@both@cmd@assign{#1} }
},
- spcmd+ .code:n = \tl_put_right:Nn \l__spb_super_cmd_i_tl {#1},
- sbcmd+ .code:n = \tl_put_right:Nn \l__spb_sub_cmd_i_tl {#1},
- spbcmd+ .code:n = \spb@both@cmd@assign+{#1},
- cmd+ .code:n =
+ spcmd+ .code:n = \tl_put_right:Nn \l__spb_super_cmd_i_tl {#1},
+ sbcmd+ .code:n = \tl_put_right:Nn \l__spb_sub_cmd_i_tl {#1},
+ spbcmd+ .code:n = \spb@both@cmd@assign+{#1},
+ cmd+ .code:n =
{
\spb_local_case_init:nnn
{ \tl_put_right:Nn \l__spb_super_cmd_i_tl {#1} }
{ \tl_put_right:Nn \l__spb_sub_cmd_i_tl {#1} }
{ \spb@both@cmd@assign+{#1} }
- },
+ }
+ }
+\NewDocumentCommand{\spb@both@cmd@assign}
+ {t+>{\SplitArgument{1}{,}}m}
+ {
+ \IfBooleanTF{#1}
+ {\spb_supersub_both_addto_cmd:nn #2}
+ {\spb_supersub_both_cmd:nn #2}
+ }
+\cs_new_protected:Npn \spb_supersub_both_cmd:nn #1#2
+ {
+ \tl_set:Nn \l__spb_super_cmd_ii_tl {#1}
+ \tl_if_novalue:nTF {#2}
+ { \tl_clear:N \l__spb_sub_cmd_ii_tl }
+ { \tl_set:Nn \l__spb_sub_cmd_ii_tl {#2} }
+ }
+\cs_new_protected:Npn \spb_supersub_both_addto_cmd:nn #1#2
+ {
+ \tl_put_right:Nn \l__spb_super_cmd_ii_tl {#1}
+ \tl_if_novalue:nF {#2} { \tl_put_right:Nn \l__spb_sub_cmd_ii_tl {#2} }
+ }
+
+\spb_define:n
+ {
spheight .tl_set:N = \l__super_height_i_tl,
sbheight .tl_set:N = \l__sub_height_i_tl,
spbheight .tl_set:N = \l__super_height_ii_tl,
@@ -128,25 +197,26 @@
{ \tl_set:Nn \l__super_depth_i_tl {#1} }
{ \tl_set:Nn \l__sub_depth_i_tl {#1} }
{ \tl_set:Nn \l__sub_depth_ii_tl {#1} }
- },
- vsep .tl_set:N = \l__spb_supersub_vsep_tl,
- vsep .initial:n = 0.6ex,
- halign .tl_set:N = \l__spb_supersub_halign_tl,
- halign .initial:n = l,
- style .choice:,
- style .value_required:n = true,
- mode .tl_set:N = \l__spb_mode_value_tl,
- mode .initial:n = match
+ }
+ }
+\cs_new_protected:Npn \spb_ht_dp_assign:nnn #1#2#3
+ {
+ \tl_if_empty:cF { l__#1_height_#3_tl }
+ { \box_set_ht:cv { l__#1_#3_box } { l__#1_height_#3_tl } }
+ \tl_if_empty:cF { l__#1_depth_i_tl }
+ { \box_set_dp:cv { l__#2_#3_box } { l__#2_depth_#3_tl } }
}
-\cs_set_eq:NN \spb@textsuperscript@save \textsuperscript
-\cs_set_eq:NN \spb@textsubscript@save \textsubscript
-\cs_set_eq:NN \spb@math@super@save \sp
-\cs_set_eq:NN \spb@math@sub@save \sb
\box_new:N \l__super_i_box
\box_new:N \l__sub_i_box
\box_new:N \l__super_ii_box
\box_new:N \l__sub_ii_box
+\tl_set:Nn \l__spb_box_super_wd_i_tl { \box_wd:N \l__super_i_box }
+\tl_set:Nn \l__spb_box_sub_wd_i_tl { \box_wd:N \l__sub_i_box }
+\tl_set:Nn \l__spb_box_super_wd_ii_tl { \box_wd:N \l__super_ii_box }
+\tl_set:Nn \l__spb_box_sub_wd_ii_tl { \box_wd:N \l__sub_ii_box }
+\tl_set:Nn \l__spb_box_max_wd_tl
+ { \dim_max:VV \l__spb_box_super_wd_ii_tl \l__spb_box_sub_wd_ii_tl }
\cs_new:Npn \spb_math_print_store_i:nn #1#2
{
\hbox_set:cn { l__#1_i_box }
@@ -210,69 +280,7 @@
}
}
}
- }
-\tl_set:Nn \l__spb_box_super_wd_i_tl { \box_wd:N \l__super_i_box }
-\tl_set:Nn \l__spb_box_sub_wd_i_tl { \box_wd:N \l__sub_i_box }
-\tl_set:Nn \l__spb_box_super_wd_ii_tl { \box_wd:N \l__super_ii_box }
-\tl_set:Nn \l__spb_box_sub_wd_ii_tl { \box_wd:N \l__sub_ii_box }
-\tl_set:Nn \l__spb_box_max_wd_tl
- { \dim_max:VV \l__spb_box_super_wd_ii_tl \l__spb_box_sub_wd_ii_tl }
-\providecommand{\hbox_overlap_center:n}[1]
- { \hbox_to_zero:n { \hss #1\hss } }
-\cs_new:Npn \spb_box_super_move_i_up:n #1
- { \box_move_up:nn {#1} { \box_use:N \l__super_i_box } }
-\cs_new:Npn \spb_box_sub_move_i_down:n #1
- { \box_move_down:nn {#1} { \box_use:N \l__sub_i_box } }
-\cs_new:Npn \spb_box_super_move_ii_up:n #1
- { \box_move_up:nn {#1} { \box_use:N \l__super_ii_box } }
-\cs_new:Npn \spb_box_sub_move_ii_down:n #1
- { \box_move_down:nn {#1} { \box_use:N \l__sub_ii_box } }
-\cs_new:Npn \spb_box_vmove:nn #1
- {
- \str_case:nn {#1}
- {
- { super } { \spb_box_super_move_i_up:n }
- { sub } { \spb_box_sub_move_i_down:n }
- }
- }
-\cs_generate_variant:Nn \spb_box_super_move_ii_up:n { V }
-\cs_generate_variant:Nn \spb_box_sub_move_ii_down:n { V }
-\dim_new:N \l__spb_supersub_half_vsep_tl
-\cs_new:Npn \spb_hbox_overlap_vmove:n #1
- {
- \tl_set:Nn \l__spb_supersub_half_vsep_tl
- { \l__spb_supersub_vsep_tl/2 }
- \use:c { hbox_overlap_#1:n }
- { \spb_box_super_move_ii_up:V \l__spb_supersub_half_vsep_tl }
- \use:c { hbox_overlap_#1:n }
- { \spb_box_sub_move_ii_down:V \l__spb_supersub_half_vsep_tl }
- }
-\NewDocumentCommand{\spb@both@cmd@assign}
- {t+>{\SplitArgument{1}{,}}m}
- {
- \IfBooleanTF{#1}
- {\spb_supersub_both_addto_cmd:nn #2}
- {\spb_supersub_both_cmd:nn #2}
- }
-\cs_new_protected:Npn \spb_supersub_both_cmd:nn #1#2
- {
- \tl_set:Nn \l__spb_super_cmd_ii_tl {#1}
- \tl_if_novalue:nTF {#2}
- { \tl_clear:N \l__spb_sub_cmd_ii_tl }
- { \tl_set:Nn \l__spb_sub_cmd_ii_tl {#2} }
- }
-\cs_new_protected:Npn \spb_supersub_both_addto_cmd:nn #1#2
- {
- \tl_put_right:Nn \l__spb_super_cmd_ii_tl {#1}
- \tl_if_novalue:nF {#2} { \tl_put_right:Nn \l__spb_sub_cmd_ii_tl {#2} }
- }
-\cs_new_protected:Npn \spb_ht_dp_assign:nnn #1#2#3
- {
- \tl_if_empty:cF { l__#1_height_#3_tl }
- { \box_set_ht:cv { l__#1_#3_box } { l__#1_height_#3_tl } }
- \tl_if_empty:cF { l__#1_depth_i_tl }
- { \box_set_dp:cv { l__#2_#3_box } { l__#2_depth_#3_tl } }
- }
+ }
\cs_new_protected:Npn \spb_both_newcmd_map:n #1
{
@@ -297,14 +305,14 @@
\hbox_overlap_left:n
{
\hbox_overlap_right:n
- { \spb_box_vmove:nn {#1} { \tl_use:c { l__spb_#1_vmove_tl } } }
+ { \spb_box_vmove_i:nn {#1} { \tl_use:c { l__spb_#1_vmove_tl } } }
\skip_horizontal:n { -\tl_use:c { l__spb_#1_hmove_tl } }
}
}
{
\hbox_to_wd:nn
{ \tl_use:c { l__spb_box_#1_wd_i_tl } + \tl_use:c { l__spb_#1_hmove_tl } }
- { \hss\spb_box_vmove:nn {#1} { \tl_use:c { l__spb_#1_vmove_tl } } }
+ { \hss\spb_box_vmove_i:nn {#1} { \tl_use:c { l__spb_#1_vmove_tl } } }
}
}
}
@@ -334,7 +342,7 @@
{
\hbox_overlap_left:n
{
- \spb_hbox_overlap_vmove:n { right }
+ \spb_hbox_overlap_vmove_ii:n { right }
\skip_horizontal:n { -\l__spb_supersub_hmove_tl }
}
}
@@ -342,7 +350,7 @@
\hbox:n
{
\skip_horizontal:n { \l__spb_supersub_hmove_tl }
- \spb_hbox_overlap_vmove:n { right }
+ \spb_hbox_overlap_vmove_ii:n { right }
\skip_horizontal:n { \l__spb_box_max_wd_tl }
}
}
@@ -352,7 +360,7 @@
{
\hbox_overlap_left:n
{
- \spb_hbox_overlap_vmove:n { center }
+ \spb_hbox_overlap_vmove_ii:n { center }
\skip_horizontal:n { -\l__spb_supersub_hmove_tl - \l__spb_box_max_wd_tl/2 }
}
}
@@ -360,7 +368,7 @@
\hbox:n
{
\skip_horizontal:n { \l__spb_box_max_wd_tl/2 + \l__spb_supersub_hmove_tl }
- \spb_hbox_overlap_vmove:n { center }
+ \spb_hbox_overlap_vmove_ii:n { center }
\skip_horizontal:n { \l__spb_box_max_wd_tl/2 }
}
}
@@ -370,7 +378,7 @@
{
\hbox_overlap_left:n
{
- \spb_hbox_overlap_vmove:n { left }
+ \spb_hbox_overlap_vmove_ii:n { left }
\skip_horizontal:n { -\l__spb_supersub_hmove_tl - \l__spb_box_max_wd_tl }
}
}
@@ -378,7 +386,7 @@
\hbox:n
{
\skip_horizontal:n { \l__spb_box_max_wd_tl + \l__spb_supersub_hmove_tl }
- \spb_hbox_overlap_vmove:n { left }
+ \spb_hbox_overlap_vmove_ii:n { left }
}
}
}
diff --git a/macros/latex/contrib/spbmark/spbmark.tex b/macros/latex/contrib/spbmark/spbmark.tex
index 08ed9bc04f..c065e6f83b 100644
--- a/macros/latex/contrib/spbmark/spbmark.tex
+++ b/macros/latex/contrib/spbmark/spbmark.tex
@@ -6,8 +6,8 @@
{
package = spbmark,
title = the spbmark package,
- version = v1.3,
- date = 2022/01/23,
+ version = v1.31,
+ date = 2022/01/24,
authors = Qu Yi,
info = Customize superscript and subscript,
email = q1jx@foxmail.com,
diff --git a/macros/latex/contrib/uni-titlepage/README.md b/macros/latex/contrib/uni-titlepage/README.md
index b19aa7a798..5b396a6fa9 100644
--- a/macros/latex/contrib/uni-titlepage/README.md
+++ b/macros/latex/contrib/uni-titlepage/README.md
@@ -2,7 +2,7 @@
Copyright (c) Markus Kohm <komascript at gmx.info>
-Release: 2021/11/01 v0.7a
+Release: 2022/01/24 v0.7b
License: LPPL 1.3c
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf b/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf
index aa3ad68ba4..7f953a421f 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf
index 1873873a61..b02558e27e 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf
index a052cc2694..0acd1758cc 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf
index 43c45f9645..679dd6e5c7 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf b/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf
index bfc51f8783..69bf4a87be 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf b/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf
index ab91b6dfcb..7a2e4c3499 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf
index a1ab770936..29108aec67 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf
index bcd61ea691..6f031043a7 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf
index bffe9cdb0b..3412a6166e 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf b/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf
index 9207512271..b03e455eba 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf b/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf
index b928b2cdb8..2e5127e5bc 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdf b/macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdf
index a3243acd02..ac410c1f71 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf b/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf
index dd4aa86e12..58a10dfd38 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx b/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx
index c4f9295b72..e1f4c342c3 100644
--- a/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx
+++ b/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
% ============================================================================
% uni-titlepage.dtx
-% Copyright (c) Markus Kohm, 2009-2021
+% Copyright (c) Markus Kohm, 2009-2022
%
% This file is part of the LaTeX package `uni-titlepage'
%
@@ -81,10 +81,10 @@
}[%
%</!README>
%<README>
-%<README>Release: 2021/11/01 v0.7a
+%<README>Release: 2022/01/24 v0.7b
%<README>
%<README>License: LPPL 1.3c
-%<!README>2021/11/01 v0.7a
+%<!README>2022/01/24 v0.7b
%<README>
KOMA presents the title page project
%<*!README>
@@ -1829,6 +1829,7 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
% \end{macro}
% \begin{macro}{\germanordinalmalerefereename}
% \changes{v0.7}{2021/08/18}{new}
+% \changes{v0.7b}{2022/01/24}{missing \cs{fi} added}
% \begin{macrocode}
\newcommand*{\germanordinalmalerefereename}[1]{%
\ifnum #1<\@ne
@@ -1840,7 +1841,9 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
\PackageError{uni-titlepage}{Ordinal of `#1' not defined}{%
This package does only define German ordinal names for referees up
to 4}%
- \fi
+
+ \fi
+ \fi
}
% \end{macrocode}
% \end{macro}
@@ -1854,6 +1857,7 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
% \end{macro}
% \begin{macro}{\germanordinalmalecorrectorname}
% \changes{v0.7}{2021/08/18}{new}
+% \changes{v0.7b}{2022/01/24}{missing \cs{fi} added}
% \begin{macrocode}
\newcommand*{\germanordinalmalecorrectorname}[1]{%
\ifnum #1<\@ne
@@ -1865,6 +1869,7 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
\PackageError{uni-titlepage}{Ordinal of `#1' not defined}{%
This package does only define German ordinal names for correctors up
to 6}%
+ \fi
\fi
}
% \end{macrocode}
diff --git a/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf b/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf
index 3b2c381650..4d320401e8 100644
--- a/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf
+++ b/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf
Binary files differ