summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-04-04 03:02:05 +0000
committerNorbert Preining <norbert@preining.info>2024-04-04 03:02:05 +0000
commit00e667637a3a526b577b05c4d9fead45d65c4c57 (patch)
treec5488d29362ed4d6c10b2271fdf0b54676f18a1e /macros/latex/contrib
parente0bd7da7a67c4cd2c53d232fb0f5cfccc4c37743 (diff)
CTAN sync 202404040301
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/coloredtheorem/LICENSE415
-rw-r--r--macros/latex/contrib/coloredtheorem/README.md96
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdfbin0 -> 201428 bytes
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex197
-rw-r--r--macros/latex/contrib/coloredtheorem/coloredtheorem.sty59
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx10
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin608496 -> 608631 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex5
-rw-r--r--macros/latex/contrib/msu-thesis/README.md4
-rw-r--r--macros/latex/contrib/msu-thesis/docs/msu-thesis.tex12
-rw-r--r--macros/latex/contrib/msu-thesis/msu-thesis.cls26
-rw-r--r--macros/latex/contrib/msu-thesis/msu-thesis.pdfbin113875 -> 114013 bytes
-rw-r--r--macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdfbin215120 -> 214979 bytes
-rw-r--r--macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdfbin196376 -> 196228 bytes
-rw-r--r--macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex6
-rw-r--r--macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdfbin126723 -> 126738 bytes
-rw-r--r--macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex2
-rw-r--r--macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdfbin158171 -> 158189 bytes
-rw-r--r--macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex2
-rw-r--r--macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty7
-rw-r--r--macros/latex/contrib/schule/README4
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.pdfbin292663 -> 310127 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex52
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdfbin253607 -> 264809 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex46
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdfbin167783 -> 167807 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex8
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdfbin184607 -> 184607 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex8
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdfbin310619 -> 332031 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex6
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdfbin184473 -> 198047 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex2
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdfbin114295 -> 123414 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex14
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdfbin196889 -> 196920 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdfbin192919 -> 204958 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex14
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdfbin175997 -> 187089 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex14
-rw-r--r--macros/latex/contrib/schule/doc/changelog.tex6
-rw-r--r--macros/latex/contrib/schule/doc/modulAufgabenpool.tex18
-rw-r--r--macros/latex/contrib/schule/doc/modulBewertung.tex4
-rw-r--r--macros/latex/contrib/schule/doc/modulSymbole.tex4
-rw-r--r--macros/latex/contrib/schule/doc/schule.pdfbin1431361 -> 1472723 bytes
-rw-r--r--macros/latex/contrib/schule/doc/schule.tex5
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex22
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex44
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex37
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex4
-rw-r--r--macros/latex/contrib/schule/latex/schule.sty2
51 files changed, 986 insertions, 169 deletions
diff --git a/macros/latex/contrib/coloredtheorem/LICENSE b/macros/latex/contrib/coloredtheorem/LICENSE
new file mode 100644
index 0000000000..f8b699e6eb
--- /dev/null
+++ b/macros/latex/contrib/coloredtheorem/LICENSE
@@ -0,0 +1,415 @@
+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/coloredtheorem/README.md b/macros/latex/contrib/coloredtheorem/README.md
new file mode 100644
index 0000000000..805393b738
--- /dev/null
+++ b/macros/latex/contrib/coloredtheorem/README.md
@@ -0,0 +1,96 @@
+# coloredtheorem
+
+A colourful boxed theorem environment, combining `tcolorbox` and breakable boxes. It supports full `tcolorbox` customization, automatic numbering, `\label{...}` and `\ref{…}`, and `\listof…`
+
+<!--
+--------
+
+<picture>
+ <source
+ media="(prefers-color-scheme: dark)"
+ srcset="
+ https://api.star-history.com/svg?repos=joaomlourenco/coloredtheorem&type=Date&theme=dark
+ "
+ />
+ <source
+ media="(prefers-color-scheme: light)"
+ srcset="
+ https://api.star-history.com/svg?repos=joaomlourenco/coloredtheorem&type=Date
+ "
+ />
+ <img
+ width="500"
+ alt="Star History Chart"
+ src="https://api.star-history.com/svg?repos=joaomlourenco/coloredtheorem&type=Date"
+ />
+</picture>
+
+--------
+-->
+
+## Introduction
+
+The `coloredtheorem` package is a simple environment, which takes no options, and that allows to write stuff inside boxes from `tcolorbox`. So, this packages includes `tcolorbox` if necessary. You may include `tcolorbox` with your own favourite options prior to including this package.
+
+Akin to `\newtheorem` from the `amsmath` package, the user should start by defining a new theorem/box group and customize its aspect. Each new environment will have its own counter/numnering. Notice that `\label{...}` and `\ref{...}` work as expected. The is also a command to generate the corresponding `\listof...`
+
+## Usage
+
+* `\cthnewtheorem{<envname>}{<Name>}[<tcolorbox options>]`
+ * Load the tcbtheorem package. This package will load tcolorbox if not already loaded.
+* `\cthnewtheorem{<envname>}{<Name>}[<tcolorbox options>]`
+ * `<envname>` is the environment name, e.g., theorem.
+ * `<Name>` is the name for new environment being defined, e.g., Theorem.
+ * `<tcolorbox options>` options to be passed to the `tcolorbox` environment to customize the boxes for the given environment (this argument is optional).
+* `\begin{<envname>}{<Caption>}[<tcolorbox options>]<Contents>\end{<envname>}`
+ * `<envname>` is the environment name, e.g., theorem.
+ * `<Caption>` is the caption/title of the box.
+ * `<tcolorbox options>` options to be passed to the `tcolorbox` environment, which will override the defaults given in `\cthnewtheorem`.
+ * `<Contents>` the contents to by typeset inside the coulored environment.
+* `\listof<envname>s`
+ * Where `<envname>` is the environment name, e.g., `\listoftheorems`. Please notice that there is a ‘s’ (plural) after `<envname>`.
+
+## Example
+
+Let’s start by creating two new environments, one for algorithms and another for examples, both defaulting to a gray frame, the former with a yellowish background and the latter with a lighter gray background.
+
+ \cthnewtheorem{algorithm}{Algorithm}[coltitle=black, colback=yellow!10,
+ colframe=black!15]
+ \cthnewtheorem{example}{Example}[coltitle=black, colback=black!5,
+ colframe=black!30]
+
+An algorithm box will be created with:
+
+ \begin{cthalgorithm}{Advance a counter to the next value in a domain
+ $\omega \in \mathbb{N}$.}
+
+ Algorithm body here!
+ \end{cthalgorithm}
+
+<img width="491" alt="image" src="https://github.com/joaomlourenco/tcbtheorem/assets/2064643/54147631-3f5d-4ae0-a8b7-8b18b48d8db2">
+
+Now, let's rewrite Algorithm 1, but now with a different customized visual, just for this entry! The customization (3rd) argument is passed straight to the `tcolorbox` environment, so anything valid for `tcolorbox` is also valid here.
+
+<img width="491" alt="image" src="https://github.com/joaomlourenco/tcbtheorem/assets/2064643/be180e78-bc59-48ff-9efa-a26af5dae0bd">
+
+(page break here!)
+
+<img width="489" alt="image" src="https://github.com/joaomlourenco/tcbtheorem/assets/2064643/04c6fcaa-1a27-4550-8b17-2ae4d90809b0">
+
+Now, let’s add an example here, this time using the default visual that was given when creating the environment with `\cthnewtheorem`…
+
+<img width="490" alt="image" src="https://github.com/joaomlourenco/tcbtheorem/assets/2064643/835c1537-5b18-48b6-8ac1-ba6a6cff7b1b">
+
+And now and example with no caption and a different visual... this example will not go into the` \listofexamples` below!
+
+<img width="492" alt="image" src="https://github.com/joaomlourenco/tcbtheorem/assets/2064643/329e61a9-a12b-4cfe-9edf-1977f8158ee9">
+
+Now let’s print the lists of algorithms and examples. Remember to add the prefix cthth to the listof, i.e., `\cthlistofalgorithms` and `\cthlistofexamples`!
+
+## List of Algorithms
+<img width="492" alt="image" src="https://github.com/joaomlourenco/tcbtheorem/assets/2064643/f935bfcb-3387-426e-8511-c1f0efdcdd85">
+
+## List of Examples
+<img width="487" alt="image" src="https://github.com/joaomlourenco/tcbtheorem/assets/2064643/033f83d4-24c3-4e9d-8947-135f5765e3f3">
+
+
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf
new file mode 100644
index 0000000000..046c79dcc6
--- /dev/null
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex
new file mode 100644
index 0000000000..55ae3d3ae5
--- /dev/null
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem-doc.tex
@@ -0,0 +1,197 @@
+\documentclass{article}
+
+\usepackage[margin=1.6in]{geometry}
+\usepackage{fancyvrb}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% AMSMATH stuff
+% \usepackage{amsthm}
+% \usepackage{thmtools}
+% \usepackage{amsfonts}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TCBTHEOREM stuff
+\usepackage{coloredtheorem}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXAMPLE document
+\usepackage{amsfonts}
+\usepackage{kantlipsum}
+\usepackage{tabularx}
+\usepackage{xspace}
+\newcommand\tcthrm{\texttt{coloredtheorem}\xspace}
+
+%% ALGPSEUDOCODEX stuff
+\usepackage{algorithm}
+\usepackage[
+ noEnd=false,
+ beginComment={$\triangleright$~\scriptsize},
+ beginLComment={$\triangleright$~},
+ endLComment={},
+]{algpseudocodex}
+
+\algnewcommand\Input{\textbf{Input:~}}
+\algrenewcommand\Output{\textbf{Output:~}}
+\algrenewcommand\algorithmicforall{\textbf{for each}}
+\algnewcommand\Vspace{%
+ {\setlength\itemsep{-1ex}\item[]~}
+}
+\algnewcommand\Let[2]{\State \ensuremath{#1 \gets #2}}
+\algnewcommand\And{\ensuremath{\wedge}\xspace}
+\algnewcommand\Or{\ensuremath{\vee}\xspace}
+\algnewcommand\Not{\ensuremath{\neg}\xspace}
+
+\usepackage[colorlinks,linkcolor=blue!80]{hyperref}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% MAIN DOCUMENT
+\begin{document}
+ \title{The \tcthrm package}
+ \author{João M. Lourenço\\\texttt{\small joao.lourenco@fct.unl.pt}}
+ \date{March 31, 2024}
+
+ \maketitle
+
+
+\section{Introduction}
+\label{sec:introduction}
+
+The \tcthrm package is a simple environment, which takes no options, and that allows to write stuff inside boxes from \texttt{tcolorbox}. So, this packages includes \texttt{tcolorbox} if necessary. You may include \texttt{tcolorbox} with your own favourite options prior to including this package.
+
+Akin to \verb!\newtheorem! from the \verb!amsmath! package, the user should start by defining a new \emph{theorem/box} group and customize its aspect. Each new environment will have its own counter/numbering. Notice that \verb!\label{…}! and \verb!\ref{…}! work as expected. The is also a command to generate the corresponding \emph{list of …}
+
+\section{Usage}
+\label{sec:usage}
+
+\begin{description}
+ \item[]{\bfseries\verb+\usepackage{coloredtheorem}+}
+ \begin{description}
+ \item[]Load the \texttt{coloredtheorem} package. This package will load \texttt{tcolorbox} if necessary.
+ \end{description}
+ \item[]{\bfseries\Verb[commandchars=!()]+\!tcbth()newtheorem{<envname>}{<Name>}[<tcolorbox options>]+}
+ \begin{description}
+ \item[]\verb+<envname>+ is the environment name, e.g., \verb!theorem!.
+ \item[]\verb+<Name>+ is the name for new environment being defined, e.g., \emph{Theorem}.
+ \item[]\verb+<tcolorbox options>+ options to be passed to the \verb+tcolorbox+ environment to customize the boxes for the given environment (this argument is optional).
+ \end{description}
+ \item[]{\bfseries\Verb[commandchars=!()]+\begin{!tcbth()<envname>}{<Caption>}[<tcolorbox options>]<Contents>\end{!tcbth()<envname>}+}
+ \begin{description}
+ \item[]\verb+<envname>+ is the environment name, e.g., \verb+theorem+.
+ \item[]\verb+<Caption>+ is the caption/title of the box.
+ \item[]\verb+<tcolorbox options>+ options to be passed to the \verb+tcolobox+ environment, which will override the defaults given in \verb+\cthnewtheorem+.
+ \item[]\verb+<Contents>+ the contents to by typeset inside the coulored environment.
+ \end{description}
+ \item[]{\bfseries\Verb[commandchars=!()]+\!tcbth()listof<envname>s+}
+ \begin{description}
+ \item[]\verb+<envname>+ is the environment name, e.g., e.g., \Verb[commandchars=!()]+\!tcbth()listoftheorems+. Please notice that there is a `s' (plural) after \verb+<envname>+.
+ \end{description}
+\end{description}
+
+\section{Example}
+\label{sec:examples}
+
+Let's start by creating two new environments, one for \emph{algorithms} and another for \emph{examples}, both defaulting to a gray frame, the former with a yellowish background and the latter with a lighter gray background.
+
+\begin{verbatim}
+\cthnewtheorem{algorithm}{Algorithm}[coltitle=black, colback=yellow!10,
+ colframe=black!15]
+\cthnewtheorem{example}{Example}[coltitle=black, colback=black!5,
+ colframe=black!30]
+\end{verbatim}
+
+\cthnewtheorem{algorithm}{Algorithm}[coltitle=black, colback=yellow!10, colframe=black!15]
+\cthnewtheorem{example}{Example}[coltitle=black, colback=black!5, colframe=black!30]
+
+
+An algorithm box will be created with:
+\begin{verbatim}
+\begin{cthalgorithm}{Advance a counter to the next value in a domain
+ $\omega \in \mathbb{N}$.}
+
+Algorithm body here!
+\end{cthalgorithm}
+\end{verbatim}
+
+\newcommand{\bracesemptyset}{\ensuremath{\lbrace\,\rbrace}}
+
+\begin{cthalgorithm}{Advance a counter to the next value in a domain $\omega \in \mathbb{N}$.}
+ \label{alg:advance1}
+\begin{algorithmic}[1]
+ \Statex \Input $\alpha$: The current value; and $\omega$: the domain.
+ \Statex \Output The next value of $\alpha$ within the domain $\omega$.
+ \LComment{\color{blue}
+ e.g., $\alpha = 3 \And \omega = \lbrace 8, 3, 2, 21, 5, 1 \rbrace \rightarrow 5$}
+
+ \Vspace
+
+ \Function{advance}{$\alpha$: int, $\omega$: set} $\rightarrow$ int \textbf{is}
+ % \Statex\Comment{As we are incrementing one by one on the operation IDs, the complexity of this function is linear in the value of the largest operation id.}
+ \Let {\alpha} {\alpha + 1}
+ \Comment{try the next value}
+ \While{$\alpha \not\in \omega \And \omega \neq \bracesemptyset$}
+ \Comment{if this value is not in the domain}
+ \Let {\alpha} {\alpha + 1}
+ \Comment{try the next value}
+ \EndWhile
+ \If{$\omega \neq \bracesemptyset$}
+ \Let {\omega} {\omega \,\backslash \lbrace \alpha \rbrace}
+ \Comment{remove the value from the domain}
+ \EndIf
+ \State \Return $\alpha$
+ \Comment{\color{red} the next value (or the last value plus one if no more values)}
+ \EndFunction
+\end{algorithmic}
+\end{cthalgorithm}
+
+Now, let's rewrite \autoref{alg:advance1}, but now with a different customized visual, just for this entry! The customization (3rd) argument is passed straight to the \texttt{tcolorbox} environment, so anything valid for \texttt{tcolorbox} is also valid here.
+
+\begin{cthalgorithm}{Advance a counter to the next value in a domain $\omega \in \mathbb{N}$, but now with a customized visual. Also, notice that this algorithm breaks the page boundaries.}[coltitle=white, colback=green!10, colframe=green!70!black, fonttitle=\sffamily\bfseries\large, colbacktitle=red!50!white]
+ \label{alg:advance2}
+\begin{algorithmic}[1]
+ \Statex \Input $\alpha$: The current value; and $\omega$: the domain.
+ \Statex \Output The next value of $\alpha$ within the domain $\omega$.
+ \LComment{\color{blue}
+ e.g., $\alpha = 3 \And \omega = \lbrace 8, 3, 2, 21, 5, 1 \rbrace \rightarrow 5$}
+
+ \Vspace
+
+ \Function{advance}{$\alpha$: int, $\omega$: set} $\rightarrow$ int \textbf{is}
+ % \Statex\Comment{As we are incrementing one by one on the operation IDs, the complexity of this function is linear in the value of the largest operation id.}
+ \Let {\alpha} {\alpha + 1}
+ \Comment{try the next value}
+ \While{$\alpha \not\in \omega \And \omega \neq \bracesemptyset$}
+ \Comment{if this value is not in the domain}
+ \Let {\alpha} {\alpha + 1}
+ \Comment{try the next value}
+ \EndWhile
+ \If{$\omega \neq \bracesemptyset$}
+ \Let {\omega} {\omega \,\backslash \lbrace \alpha \rbrace}
+ \Comment{remove the value from the domain}
+ \EndIf
+ \State \Return $\alpha$
+ \Comment{\color{red} the next value (or the last value plus one if no more values)}
+ \EndFunction
+\end{algorithmic}
+\end{cthalgorithm}
+
+Now, let's add an example here, this time using the default visual that was given when creating the environment with \verb+\cthnewtheorem+…
+
+\begin{cthexample}{This is an example!}
+ \emph{\kant[3]}
+\end{cthexample}
+
+And now an example with no caption and a different visual… this example will not go into the \verb+\listofexamples+ below!
+
+\begin{cthexample}{}[coltitle=yellow, colback=blue!30, colframe=blue!70]
+ \emph{\kant[4]}
+\end{cthexample}
+
+Now let's print the lists of algorithms and examples. Remember to add the prefix \texttt{cthth} to the \texttt{listof}, i.e., \verb+\cthlistofalgorithms+ and \verb+\cthlistofexamples+!
+
+\cthlistofalgorithms
+
+\cthlistofexamples
+
+\end{document}
diff --git a/macros/latex/contrib/coloredtheorem/coloredtheorem.sty b/macros/latex/contrib/coloredtheorem/coloredtheorem.sty
new file mode 100644
index 0000000000..dd553ba75d
--- /dev/null
+++ b/macros/latex/contrib/coloredtheorem/coloredtheorem.sty
@@ -0,0 +1,59 @@
+%% This is file `tcbtheorem.sty',
+%%
+%% Copyright (C) 2024 by João Lourenço <joao.lourenco@fct.unl.pt>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
+%% version 2006/05/20 or later.
+%%
+\NeedsTeXFormat{LaTeX2e}[2020/06/01]
+\ProvidesPackage{coloredtheorem}
+ [2024/03/31 v1.0 - a theorem-like environment inside a tcolobox]
+
+\RequirePackage{tcolorbox}
+\tcbuselibrary{breakable}
+
+\gdef\tcbth{cth}
+
+\expandafter\NewDocumentCommand\csname\tcbth newtheorem\endcsname { m m O{} }{%
+ \expandafter\newcounter\expandafter{\tcbth#1}%
+ \expandafter\gdef\csname\tcbth#1name\endcsname{#2}%
+ \expandafter\gdef\csname\tcbth list#1name\endcsname{List of #2s}%
+ \expandafter\gdef\csname#1autorefname\endcsname{#2}%
+ \AtEndPreamble{%
+ \ifdefined\crefname\expandafter\crefname\csname\tcbth#1\endcsname{#2}{#2s}\fi}%
+ \expandafter\gdef\csname\tcbth listof#1s\endcsname
+ {%
+ \section*{\csname\tcbth list#1name\endcsname}%
+ \expandafter\@starttoc\expandafter{lo#1}%
+ }
+ \expandafter\NewDocumentEnvironment\expandafter{\tcbth#1} {O{} m O{}}%
+ {% \begin{tcb<SOMETHING>}
+ \begin{center}%
+ \ifx\relax##1\relax
+ \ifx\relax##2\relax\else
+ \expandafter\refstepcounter\expandafter{\tcbth#1}%
+ \expandafter\addcontentsline\expandafter{lo#1}{subsection}
+ {\protect\numberline{\csname the\tcbth#1\endcsname}##2}%
+ \fi
+ \else
+ \expandafter\addcontentsline\expandafter{lo#1}{subsection}
+ {\protect\numberline{\csname the\tcbth#1\endcsname}##1}%
+ \fi
+ \begin{tcolorbox}[breakable,
+ title={\textbf{\csname\tcbth#1name\endcsname
+ \ifx\relax##2\relax\else
+ ~\csname the\tcbth#1\endcsname\fi}~~##2},
+ #3, ##3,
+ ]%
+ }{% \end{tcb<SOMETHING>}
+ \end{tcolorbox}%
+ \end{center}%
+ }%
+}
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 2ce884d5f3..64ece3b038 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2024/03/15}{2024ap}
+\ProvidesExplClass{easybook}{2024/04/02}{2024ar}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -297,7 +297,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2024/03/15}{2024ap}
+\ProvidesExplPackage{easybase}{2024/04/02}{2024ar}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -1540,7 +1540,7 @@
#1/tocformat .tl_set:c = l__eb_toc_#1_format_tl,
#1/tocformat+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
#1/tocformat~+ .code:n = \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1},
- #1/tocindent .dim_set:c = l__eb_toc_#1_indent_dim,
+ #1/tocindent .tl_set:c = l__eb_toc_#1_indent_tl,
#1/tocrule .tl_set:c = l__eb_toc_#1_rule_tl,
#1/tocafter .tl_set:c = l__eb_toc_#1_after_tl,
#1/tocbelow .tl_set:c = l__eb_toc_#1_below_tl
@@ -1549,7 +1549,7 @@
\cs_new_protected:Npn \eb_toc_format_initial:n #1
{
\titlecontents{#1}
- [\dim_use:c { l__eb_toc_#1_indent_dim }]
+ [\tl_use:c { l__eb_toc_#1_indent_tl }]
{\tl_use:c { l__eb_toc_#1_format_tl }}
{\eb_toc_entry_if_hang:n {#1}}{}
{\tl_use:c { l__eb_toc_#1_rule_tl }}
@@ -2392,7 +2392,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/03/15}{2024ap}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/04/02}{2024ar}
{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 2fe646ac7e..505b625244 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 104080059b..edd3c476ce 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024ap,
- date = 2024/03/15,
+ version = v2024ar,
+ date = 2024/04/02,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -1420,6 +1420,7 @@
\item 新增行间公式与正文上下间距选项 \option{abovedisplayskip} 和 \option{belowdisplayskip}。
\item 新增目录文件扩展名分配命令 \cs{AllotCaptionExt}。
\end{version}
+ \shortversion{v = 2024aq,date = 2022/03/31,changes = 修复命令 \cs{ebifbitoc} 用于条目缩进选项 \option{tocindent} 失效的问题。}
\end{changelog}
\nocite{*}
diff --git a/macros/latex/contrib/msu-thesis/README.md b/macros/latex/contrib/msu-thesis/README.md
index 13a939dc53..31d83c056a 100644
--- a/macros/latex/contrib/msu-thesis/README.md
+++ b/macros/latex/contrib/msu-thesis/README.md
@@ -1,6 +1,6 @@
-# MSU Thesis Class Version 4.1h 2023/10/07
+# MSU Thesis Class Version 4.2 2024/02/18
-Copyright 2011-2023 by Alan Munn <amunn@msu.edu>
+Copyright 2011-2024 by Alan Munn <amunn@msu.edu>
This is a class file for producing dissertations and theses according to
the Michigan State University Graduate School Guidelines for Electronic
diff --git a/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex b/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
index 98f76d3c07..01ca59e7ad 100644
--- a/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
+++ b/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
@@ -2,8 +2,8 @@
\documentclass[11pt]{article}
-\def\msuversion{4.1h}
-\def\msudate{2023/10/07}
+\def\msuversion{4.2}
+\def\msudate{2024/02/18}
\title{\textbf{Using the MSU Thesis Class}}
\author{\textbf{Alan Munn}\\Department of Linguistics, Languages, and Cultures\\Michigan State University\\\texttt{\href{mailto:amunn@msu.edu}{amunn@msu.edu}}}
\date{Version \msuversion\\\msudate}
@@ -434,7 +434,8 @@ Version 3.6 added built-in support for the Key to Abbreviations.
Version 3.7 added improved support for \pkg{hyperref}.
Version 4.0 implements the new requirements as of September 2022, including adding a |\dualmajor| command.
Various spacing changes have been made which will make your document look like you used Word, but this is what the thesis office seems to care about.
-Version 4.1 added the |msutocdepth| counter to allow for the chapters-only format that the thesis office recommends.
+Version 4.1 added the |msutocdepth| counter to allow for the chapters-only format that the thesis office recommends.
+Version 4.2 changed the spacing parameters for subsections to appease the thesis office yet again.
\section{Acknowledgements}
Thanks to Lars Madsen, Ulrike Fischer and Peter Wilson for help with setting up parts of
@@ -442,12 +443,13 @@ the memoir code for versions 1.0--1.4 (now eliminated due to changed requirement
to Wolfgang Sternefeld for supplying the \pkg{linguex}\ spacing fix code, Leo Liu for the
landscape page numbering code, which greatly simplified my original version. Thanks to
Florent Chervet for early \pkg{hyperref} code (up until v.3.6), and Ulrike Fischer for the
-current \pkg{hyperref} code. Thanks also to the following students who have reported
+current \pkg{hyperref} code. Thanks to David Carlisle for helping me understand a ridiculous spacing problem.
+Thanks also to the following students who have reported
problems over the years: Irina Agafonova, Ali Al-jiboory, Abubakr Ayesh, Julian Blank,
Nathan Brugnone, Dmitriy Bryndin, Greg Christian, Kyle Crayne, Ciaron Hamilton, Matt Husband, Changkuk
Jung, Claire Kopenhafer, Adam Liter, Vanessa Maldonado, Andriana Manousidaki, Ben Miller, William Muir, Eureka
Pai, Alicia Parrish, Neil ver Planck, Taha Posos, Nick Rekuski, Giacomo Romanini, William Sands, Adam
-Soliman, Mookyong Son, Erik Stitt, Fanurs C.E. Teh, Eremey Valetov, Matthew Vincent, Michael Wojcik, Stephen Yowono, Ali
+Soliman, Mookyong Son, Erik Stitt, Fanurs C.E. Teh, Eremey Valetov, Matthew Vincent, Michael Wojcik, Stephen Yowono, Atacan Yücesoy, Ali
Zare, and Yisu Zhou. A special thank you to Non Thongprong who graciously provided a copy
of his entire thesis which allowed me to debug some especially subtle spacing
inconsistencies.
diff --git a/macros/latex/contrib/msu-thesis/msu-thesis.cls b/macros/latex/contrib/msu-thesis/msu-thesis.cls
index f77d580788..c73d4be4d0 100644
--- a/macros/latex/contrib/msu-thesis/msu-thesis.cls
+++ b/macros/latex/contrib/msu-thesis/msu-thesis.cls
@@ -1,6 +1,6 @@
% MSU Thesis Class
%
-% Copyright 2009-2023 by Alan Munn <amunn@msu.edu>
+% Copyright 2009-2024 by Alan Munn <amunn@msu.edu>
%
% This is a class file for producing dissertations and theses according to the
% Michigan State University Graduate School Guidelines
@@ -190,10 +190,12 @@
% Version 4.1f 2023/07/28 Fixed title page spacing issue
% Version 4.1g 2023/08/12 Per chapter appendices and bibliography TOC issue
% Version 4.1h 2023/10/07 Changed option processing code
+% Version 4.1i 2023/12/02 Fixed spurious blank page with biblatex bibliography
+% Version 4.2 2024/02/18 Changed spacing for sections to address complaints about adjacent sectioning commands
% Report bugs/problems/questions to <amunn@msu.edu>
%
-\def\msu@version{4.1h}
-\def\msu@date{2023/10/07}
+\def\msu@version{4.2}
+\def\msu@date{2024/02/18}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{msu-thesis}[\msu@date\space Michigan State University Thesis Class version \msu@version]
\DeclareKeys[msu-thesis]
@@ -359,10 +361,16 @@ chapterapp.code = {
% set up the section styles
-
-\setsecheadstyle{\normalfont\SingleSpacing\bfseries} % made uniform size v4
-\setsubsecheadstyle{\normalfont\SingleSpacing\bfseries}
-\setsubsubsecheadstyle{\normalfont\SingleSpacing\bfseries}
+% Added spacing command v4.2 due to complaints about extra space when two
+% sectioning commands are adjacent
+\newcommand*{\msu@SingleSpacing}{%
+ \setSpacing{\m@m@singlespace}%
+ \ifx\@nodocument\relax\vskip\onelineskip\fi% correction for coming into single spacing
+}
+%
+\setsecheadstyle{\normalfont\msu@SingleSpacing\bfseries} % made uniform size v4
+\setsubsecheadstyle{\normalfont\msu@SingleSpacing\bfseries}
+\setsubsubsecheadstyle{\normalfont\msu@SingleSpacing\bfseries}
% 2023 requirements seem to want "uniform" spacing even after headings, even though this
% is not stated explicitly anywhere. After skips must be positive not zero to avoid runin formatting
% Before skips can be 0
@@ -811,11 +819,13 @@ chapterapp.code = {
% as chapters or as sections in the bibliography. Thesis office isn't consistent in this.
% \clearpage added 7/19/2023 because page numbers were off in the TOC.
% This code probably needs to be revisited since it’s a unholy amalgam of old and new code
+% Removed clearpage from the document level code in response to issue #26.
+% Problem seems to only arise with biblatex so more testing is needed
\newcommand\msu@addbibheadtotoc{%
\ifmsu@chapterbib
\clearpage\phantomsection\addcontentsline{toc}{\msu@bibsection}{\bibtocname}
\else
- \clearpage\phantomsection\addcontentsline{toc}{chapter}{\bibtocname}
+ \phantomsection\addcontentsline{toc}{chapter}{\bibtocname}
\fi
}
% Since the bibliography page is the TOC entry we remove the bib in the TOC
diff --git a/macros/latex/contrib/msu-thesis/msu-thesis.pdf b/macros/latex/contrib/msu-thesis/msu-thesis.pdf
index 4acc940f9f..533ec424b9 100644
--- a/macros/latex/contrib/msu-thesis/msu-thesis.pdf
+++ b/macros/latex/contrib/msu-thesis/msu-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf
index c4d0e9127c..1b819b0aa0 100644
--- a/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf
+++ b/macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf
Binary files differ
diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf
index 317157a051..1ee7bc9bba 100644
--- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf
+++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex
index b54741a518..97155dee5c 100644
--- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex
+++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex
@@ -3,8 +3,8 @@
% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
\documentclass[french,a4paper,11pt]{article}
-\def\TPversion{0.1.5}
-\def\TPdate{25 Février 2023}
+\def\TPversion{0.1.6}
+\def\TPdate{2 avril 2024}
\usepackage[executable=python.exe]{pyluatex}
\usepackage[table,svgnames]{xcolor}
\usepackage{amsmath,amssymb}
@@ -319,6 +319,8 @@ L'idée est ici de proposer une version, adaptée à des dimensions classiques,
\part{Historique}
+\verb|v0.1.6|~:~~~~Correction de bugs dans certains calculs.
+
\verb|v0.1.5|~:~~~~Inverse d'une matrice 4x4 et système 4x4 (même en normal).
\verb|v0.1.4|~:~~~~Ajout de commandes pour du calcul matriciel sans python (de taille raisonnable) ;
diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf
index a07a5766a1..d5bc819d92 100644
--- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf
+++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex
index 7f92c1e701..407a26aa3e 100644
--- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex
+++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex
@@ -2,7 +2,7 @@
% !TeX TXS-program:compile = txs:///lualatex/[--shell-escape]
\documentclass[french,a4paper,10pt]{article}
-\def\RSver{0.1.5}
+\def\RSver{0.1.6}
\usepackage[margin=1.5cm]{geometry}
\usepackage[executable=python.exe]{pyluatex}
\usepackage[pyluatex]{ResolSysteme}
diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf
index 7189d713dc..cd7b6e1fd3 100644
--- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf
+++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.pdf
Binary files differ
diff --git a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex
index 9d785b294f..0eb228e552 100644
--- a/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex
+++ b/macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex
@@ -2,7 +2,7 @@
% !TeX TXS-program:compile = txs:///pdflatex
\documentclass[french,a4paper,10pt]{article}
-\def\RSver{0.1.5}
+\def\RSver{0.1.6}
\usepackage[margin=1.5cm]{geometry}
\usepackage{ResolSysteme}
\usepackage{systeme}
diff --git a/macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty b/macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty
index 847d00ebe7..025ea98cfe 100644
--- a/macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty
+++ b/macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty
@@ -2,7 +2,8 @@
% licence........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ResolSysteme}[2023/02/25 v0.1.5 Quelques commandes pour travailler avec des matrices et des sytemes lineaires]
+\ProvidesPackage{ResolSysteme}[2024/04/02 v0.1.6 Quelques commandes pour travailler avec des matrices et des sytemes lineaires]
+% 0.1.6 Correction de bugs dans certains calculs
% 0.1.5 Inverse d'une matrice en 4x4 (même en normal !) + Système 4x4 (en normal !)
% 0.1.4 Travail sur graphe probabiliste (2x2/3x3/4x4 en python, ou 2x2 en normal...) + Calculs 4x4 en normal
% 0.1.3 Produit matriciel + Puissance matricielle (2x2/3x3 carré en normal, 2x2/3x3/4x4 avec python) + Inversion comportement commandes étoilées
@@ -1282,13 +1283,13 @@ def etat_prob_DD(AA,BB,a,b,c,d,puiss) :
\IfBooleanTF{#1}%version étoilée := moins sur num
{%
\def\MatResA{\ConvVersFrac*[#2]{\CoeffAa*\CoeffBa+\CoeffAb*\CoeffBc}}%
- \def\MatResB{\ConvVersFrac*[#2]{\CoeffAa*\CoeffBb+\CoeffAd*\CoeffBd}}%
+ \def\MatResB{\ConvVersFrac*[#2]{\CoeffAa*\CoeffBb+\CoeffAb*\CoeffBd}}%
\def\MatResC{\ConvVersFrac*[#2]{\CoeffAc*\CoeffBa+\CoeffAd*\CoeffBc}}%
\def\MatResD{\ConvVersFrac*[#2]{\CoeffAc*\CoeffBb+\CoeffAd*\CoeffBd}}%
}%
{%
\def\MatResA{\ConvVersFrac[#2]{\CoeffAa*\CoeffBa+\CoeffAb*\CoeffBc}}%
- \def\MatResB{\ConvVersFrac[#2]{\CoeffAa*\CoeffBb+\CoeffAd*\CoeffBd}}%
+ \def\MatResB{\ConvVersFrac[#2]{\CoeffAa*\CoeffBb+\CoeffAb*\CoeffBd}}%
\def\MatResC{\ConvVersFrac[#2]{\CoeffAc*\CoeffBa+\CoeffAd*\CoeffBc}}%
\def\MatResD{\ConvVersFrac[#2]{\CoeffAc*\CoeffBb+\CoeffAd*\CoeffBd}}%
}%
diff --git a/macros/latex/contrib/schule/README b/macros/latex/contrib/schule/README
index 55cf949be6..01d7ce215e 100644
--- a/macros/latex/contrib/schule/README
+++ b/macros/latex/contrib/schule/README
@@ -12,8 +12,8 @@ sequence diagrams, object diagrams and class diagrams) as well as into
classes for written exams (tests, quizzes, teaching observations,
information sheets, worksheets, and answer keys).
------------------------------------------------------------------------
-Version: 0.9.0
-Last change: 2023/10/07
+Version: 0.10.0
+Last change: 2023/04/01
The package is still a work in progress. Open development steps are
shown in the documentation.
diff --git a/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.pdf b/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.pdf
index 645bf09dbe..f5f0a98d7f 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex b/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex
index 5d02fbda96..e251f76463 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex
@@ -67,11 +67,9 @@
\teilaufgabe Keine Aufgabe
\end{teilaufgaben}
\end{loesung}
- \begin{erwartungen}
- \erwartung{\weva gibt eine Lösung an.}{1}
- \erwartung{erfüllt eine \so{ehrlich völlig überzogene} Erwartung.}{10}
- \erwartung{gibt nicht auf.}{0}[10]
- \end{erwartungen}
+ \erwartung{\weva gibt eine Lösung an.}{1}
+ \erwartung{erfüllt eine \so{ehrlich völlig überzogene} Erwartung.}{10}
+ \erwartung{gibt nicht auf.}{0}[10]
\begin{bearbeitungshinweis}
\begin{teilaufgaben}
\teilaufgabe Man kann auch Hinweise geben.
@@ -93,19 +91,17 @@
\begin{loesung}
Eine Lösung.
\end{loesung}
- \begin{erwartungen}
- \erwartung{hat den {\LARGE Text} \textcolor{red}{gelesen}.}{1}
- \erwartung{gibt eine Lösung an.}{4}
- \erwartung{erfüllt eine ehrlich völlig überzogene Erwartung.
- \begin{tabular}{|c|c|}
- \hline
- a & b \\
- \hline
- c & d \\
- \hline
- \end{tabular}
- }{10}
- \end{erwartungen}
+ \erwartung{hat den {\LARGE Text} \textcolor{red}{gelesen}.}{1}
+ \erwartung{gibt eine Lösung an.}{4}
+ \erwartung{erfüllt eine ehrlich völlig überzogene Erwartung.
+ \begin{tabular}{|c|c|}
+ \hline
+ a & b \\
+ \hline
+ c & d \\
+ \hline
+ \end{tabular}
+ }{10}
\end{aufgabe}
\begin{aufgabe}
@@ -123,9 +119,7 @@
\teilaufgabe drittens
\end{teilaufgaben}
\end{loesung}
-% \begin{erwartungen}
-% \erwartung{sollte eine weitere \symAuge Lösung angeben.}{30}
-% \end{erwartungen}
+% \erwartung{sollte eine weitere \symAuge Lösung angeben.}{30}
\begin{bearbeitungshinweis}
Man kann auch Hinweise geben.
\begin{itemize}
@@ -149,9 +143,7 @@
\begin{loesung}
\mcloesung
\end{loesung}
- \begin{erwartungen}
- \erwartung{kreuzt \textbf{alles} richtig an.}{10}
- \end{erwartungen}
+ \erwartung{kreuzt \textbf{alles} richtig an.}{10}
\end{aufgabe}
\begin{aufgabe}[symbol=\symBleistift,subtitle={Lückentext}]
@@ -159,9 +151,7 @@
\begin{loesung}
Das ist ein total verrückter \textluecke{Lückentext}. Für alle \textluecke{Menschen}, die \textluecke{Lücken} lieben.
\end{loesung}
- \begin{erwartungen}
- \erwartung{füllt die Lücken richtig aus.}{10}
- \end{erwartungen}
+ \erwartung{füllt die Lücken richtig aus.}{10}
\end{aufgabe}
\begin{aufgabe*}
@@ -169,9 +159,7 @@
\begin{loesung*}
Eine weitere Lösung.
\end{loesung*}
- \begin{erwartungen}
- \erwartung{sollte eine $7+4=11$ weitere Lösung angeben.}{}[2]
- \end{erwartungen}
+ \erwartung{sollte eine $7+4=11$ weitere Lösung angeben.}{}[2]
\begin{bearbeitungshinweis}
Noch ein Hinweis. Und noch einer.
\end{bearbeitungshinweis}
@@ -190,9 +178,7 @@
tmp = "Hallo "
print(tmp + weltname + "!")
\end{lstlisting}
- \begin{erwartungen}
- \erwartung{Ergänzt die Funktionsaufrufe korrekt.}{10}
- \end{erwartungen}
+ \erwartung{Ergänzt die Funktionsaufrufe korrekt.}{10}
\begin{bearbeitungshinweis}
Denke gut darüber nach wie man vorgeht.
\end{bearbeitungshinweis}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdf b/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdf
index c3b5cf87d7..3ed68dcf0d 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex b/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex
index 05ad494ae9..f3330a167a 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex
@@ -60,22 +60,20 @@
\begin{loesung}
\includegraphics[scale=0.8]{aufgabe-1}
\end{loesung}
- \begin{erwartungen}
- \erwartung{ermittelt die Objekte \texttt{margret}, \texttt{dieter}, \texttt{franz}, \texttt{manni}, \texttt{formular1} und \texttt{formular2}.}{3}
- \erwartung{ermittelt die Attribute \texttt{alter}, \texttt{hatFormular}, \texttt{lieblingslied} und ordnet sie korrekt zu.}{3}
- \erwartung{ermittelt die Methoden \texttt{nimmAn(formular)}, \texttt{erledigeFormalitaet} und \texttt{singeLied}.}{4}
- \erwartung{entwirft ein, der Situation entsprechendes, Objektdiagramm.}{5}
- \erwartung{stellt das Objektdiagramm den Konventionen entsprechend dar:
- \begin{smallitemize}
- \item Objektnamen klein
- \item Attributwerte groß
- \item Aufträge im Imperativ
- \item Präfixe bei den Attributen
- \item Anführungszeichen bei Zeichenketten
- \end{smallitemize}
- }{5}
- \erwartung{stellt die Beziehungen zwischen den Objekten vollständig und korrekt dar.}{5}
- \end{erwartungen}
+ \erwartung{ermittelt die Objekte \texttt{margret}, \texttt{dieter}, \texttt{franz}, \texttt{manni}, \texttt{formular1} und \texttt{formular2}.}{3}
+ \erwartung{ermittelt die Attribute \texttt{alter}, \texttt{hatFormular}, \texttt{lieblingslied} und ordnet sie korrekt zu.}{3}
+ \erwartung{ermittelt die Methoden \texttt{nimmAn(formular)}, \texttt{erledigeFormalitaet} und \texttt{singeLied}.}{4}
+ \erwartung{entwirft ein, der Situation entsprechendes, Objektdiagramm.}{5}
+ \erwartung{stellt das Objektdiagramm den Konventionen entsprechend dar:
+ \begin{smallitemize}
+ \item Objektnamen klein
+ \item Attributwerte groß
+ \item Aufträge im Imperativ
+ \item Präfixe bei den Attributen
+ \item Anführungszeichen bei Zeichenketten
+ \end{smallitemize}
+ }{5}
+ \erwartung{stellt die Beziehungen zwischen den Objekten vollständig und korrekt dar.}{5}
\end{aufgabe}
\section*{Sequenz- und Klassendiagramme}
@@ -142,16 +140,14 @@
\end{call}
\end{sequencediagram}
}
+ \erwartung{gibt die Aufträge \texttt{begutachteRoller}, \texttt{zustand} und \texttt{kostenNeu}, sowie die zugehörigen Antworten an und erweitert das Diagramm entsprechend.}{5}
\teilaufgabe Klassendiagramm:
\includegraphics[scale=0.8]{aufgabe-2}
+ \erwartung{modelliert ein zu den vorherigen Aufgaben konsistentes Klassendiagramm.}{8}
+ \erwartung{stellt das Klassendiagramm unter Berücksichtigung der geltenden Vereinbarungen korrekt dar.}{2}
\end{teilaufgaben}
\end{loesung}
- \begin{erwartungen}
- \erwartung{gibt die Aufträge \texttt{begutachteRoller}, \texttt{zustand} und \texttt{kostenNeu}, sowie die zugehörigen Antworten an und erweitert das Diagramm entsprechend.}{5}
- \erwartung{modelliert ein zu den vorherigen Aufgaben konsistentes Klassendiagramm.}{8}
- \erwartung{stellt das Klassendiagramm unter Berücksichtigung der geltenden Vereinbarungen korrekt dar.}{2}
- \end{erwartungen}
\end{aufgabe}
\begin{aufgabe}
@@ -172,10 +168,8 @@
roller.schalteAus()
\end{lstlisting}
\end{loesung}
- \begin{erwartungen}
- \erwartung{implementiert eine dem Klassendiagramm entsprechende Methode unter Verwendung der notwendigen Anfragen und Aufträge.}{8}
- \erwartung{wendet beim Implementieren die korrekte Syntax an.}{2}
- \end{erwartungen}
+ \erwartung{implementiert eine dem Klassendiagramm entsprechende Methode unter Verwendung der notwendigen Anfragen und Aufträge.}{8}
+ \erwartung{wendet beim Implementieren die korrekte Syntax an.}{2}
\end{aufgabe}
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdf b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdf
index 564095dce7..875958c447 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex
index 994f41a4b8..d88c9d8c56 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex
@@ -22,14 +22,12 @@
\begin{teilaufgaben}
\teilaufgabe[2] Male ein X.
+ \erwartung{malt ein X}{2}
\teilaufgabe[3] Schreibe einen Satz.
+ \erwartung{schreibt einen Satz}{2}
+ \erwartung{achtet auf die Rechtschreibung}{1}
\end{teilaufgaben}
- \begin{erwartungen}
- \erwartung{malt ein X}{2}
- \erwartung{schreibt einen Satz}{2}
- \erwartung{achtet auf die Rechtschreibung}{1}
- \end{erwartungen}
\end{aufgabe}
\begin{loesung}
\begin{teilaufgaben}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdf b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdf
index cfa4297177..98bb6d6a14 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex
index 6949983ad7..5b2549411c 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex
@@ -37,10 +37,12 @@
Aber mache etwas wirklich gutes.
}
- \begin{erwartungen}
+ \ifAufgabenpoolOptionTF{optionA}{
\erwartung{macht etwas damit}{5}
- \erwartung{lässt anderes sein}{1}
- \end{erwartungen}
+ }{
+ \erwartung{macht etwas anderes damit}{5}
+ }
+ \erwartung{lässt anderes sein}{1}
\end{aufgabe}
\begin{loesung}
Eigentlich ist es ganz egal.
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdf
index 53cc4fabc2..7e4d30029d 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex
index a2225d8f00..f311d1d4c0 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex
@@ -172,9 +172,7 @@
\end{teilaufgaben}
\end{loesung*}
- \begin{erwartungen}
- \erwartung{sollte eine $7+4=11$ weitere Lösung angeben.}{}[2]
- \end{erwartungen}
+ \erwartung{sollte eine $7+4=11$ weitere Lösung angeben.}{}[2]
\begin{bearbeitungshinweis}
Noch ein Hinweis.
\end{bearbeitungshinweis}
@@ -238,4 +236,4 @@
\section*{Notenverteilung}
\notenverteilung
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdf
index c309a0d318..dfac2e9c64 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex
index d1d3a792bf..7598a61919 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex
@@ -101,4 +101,4 @@
\section*{Notenverteilung}
\notenverteilung
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdf
index d5b6f2e05e..ceb9444c50 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex
index 4e93eebe3c..8605b2a2fc 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex
@@ -32,15 +32,13 @@
\blindtext
\begin{teilaufgaben}
\teilaufgabe Lies den Text!
+ \erwartung{Du hast den Text gelesen.}{}
\teilaufgabe Unterschlängele alle Nomen.
+ \erwartung{Du hast alle alle Nomen unterschlängelt.}{}
\end{teilaufgaben}
\begin{loesung}
Dies hier ist ein \uwave{Blindtext} zum \uwave{Testen} von \uwave{Textausgaben}\dots
\end{loesung}
- \begin{erwartungen}
- \erwartung{Du hast den Text gelesen.}{}
- \erwartung{Du hast alle alle Nomen unterschlängelt.}{}
- \end{erwartungen}
\end{aufgabe}
\begin{aufgabe*}
@@ -52,16 +50,14 @@
\begin{loesung*}
\begin{teilaufgaben}
\teilaufgabe Die Lösung lautet 1.
+ \erwartung{Deine Lösung zu Teilaufgabe a) ist richtig.}{}
\teilaufgabe Die Lösung lautet 2.
+ \erwartung{Deine Lösung zu Teilaufgabe b) ist richtig.}{}
\end{teilaufgaben}
\end{loesung*}
- \begin{erwartungen}
- \erwartung{Deine Lösung zu Teilaufgabe a) ist richtig.}{}
- \erwartung{Deine Lösung zu Teilaufgabe b) ist richtig.}{}
- \end{erwartungen}
\end{aufgabe*}
\vspace{1cm}
{\Huge Viel Erfolg!}
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf
index 6be283a536..803354db15 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdf
index 40d6aec8bb..43c864b13c 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex
index 4f40e73ef0..3338b8fc8b 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex
@@ -32,15 +32,13 @@
\blindtext
\begin{teilaufgaben}
\teilaufgabe[5] Lies den Text!
+ \erwartung{hat den Text gelesen.}{5}
\teilaufgabe[10] Nimm dazu begründet Stellung.
+ \erwartung{nimmt begründet Stellung zum Text und berücksichtigt, dass es sich um einen Blindtext handelt.}{10}
\end{teilaufgaben}
\begin{loesung}
Es handelt sich eindeutig um einen Blindtext.
\end{loesung}
- \begin{erwartungen}
- \erwartung{hat den Text gelesen.}{5}
- \erwartung{nimmt begründet Stellung zum Text und berücksichtigt, dass es sich um einen Blindtext handelt.}{10}
- \end{erwartungen}
\end{aufgabe}
\begin{aufgabe*}
@@ -52,16 +50,14 @@
\begin{loesung*}
\begin{teilaufgaben}
\teilaufgabe Die Lösung lautet 1.
+ \erwartung{gibt eine richtige Lösung zu Teilaufgabe a) an.}{}[5]
\teilaufgabe Die Lösung lautet 2.
+ \erwartung{gibt eine richtige Lösung zu Teilaufgabe b) an.}{}[5]
\end{teilaufgaben}
\end{loesung*}
- \begin{erwartungen}
- \erwartung{gibt eine richtige Lösung zu Teilaufgabe a) an.}{}[5]
- \erwartung{gibt eine richtige Lösung zu Teilaufgabe b) an.}{}[5]
- \end{erwartungen}
\end{aufgabe*}
\vspace{1cm}
{\Huge Viel Erfolg!}
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdf
index 75732e79a1..753d9ec46b 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex
index af132ce73f..7e38c73f99 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex
@@ -31,15 +31,13 @@
\blindtext
\begin{teilaufgaben}
\teilaufgabe[5] Lies den Text!
+ \erwartung{hat den Text gelesen.}{5}
\teilaufgabe[10] Nimm dazu begründet Stellung.
+ \erwartung{nimmt begründet Stellung zum Text und berücksichtigt, dass es sich um einen Blindtext handelt.}{10}
\end{teilaufgaben}
\begin{loesung}
Es handelt sich eindeutig um einen Blindtext.
\end{loesung}
- \begin{erwartungen}
- \erwartung{hat den Text gelesen.}{5}
- \erwartung{nimmt begründet Stellung zum Text und berücksichtigt, dass es sich um einen Blindtext handelt.}{10}
- \end{erwartungen}
\end{aufgabe}
\begin{aufgabe*}
@@ -51,13 +49,11 @@
\begin{loesung*}
\begin{teilaufgaben}
\teilaufgabe Die Lösung lautet 1.
+ \erwartung{gibt eine richtige Lösung zu Teilaufgabe a) an.}{}[5]
\teilaufgabe Die Lösung lautet 2.
+ \erwartung{gibt eine richtige Lösung zu Teilaufgabe b) an.}{}[5]
\end{teilaufgaben}
\end{loesung*}
- \begin{erwartungen}
- \erwartung{gibt eine richtige Lösung zu Teilaufgabe a) an.}{}[5]
- \erwartung{gibt eine richtige Lösung zu Teilaufgabe b) an.}{}[5]
- \end{erwartungen}
\end{aufgabe*}
\vspace{1cm}
@@ -66,4 +62,4 @@
\vfill
\punktuebersicht
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/changelog.tex b/macros/latex/contrib/schule/doc/changelog.tex
index 149be23c76..d11563f2bf 100644
--- a/macros/latex/contrib/schule/doc/changelog.tex
+++ b/macros/latex/contrib/schule/doc/changelog.tex
@@ -2,6 +2,12 @@
Im Laufe der Jahre wurde das Paket immer wieder erweitert. Nicht nur die Anpassung an veränderte Anforderungen, etwa bei den Unterrichtsbesuchen, sondern auch neue Funktionalitäten fließen in das Paket ein.
Die folgende Liste bietet eine Übersicht über die letzten Änderungen.
\begin{itemize}
+ \item \textbf{0.10.0} -- 2024-04-01
+ \begin{itemize}
+ \item Das Modul Aufgabenpool um Möglichkeiten für Anhänge erweitert
+ \item Einbinden von Erwartungen für den Erwartungshorizont flexibler gestaltet
+ \item Bugfix
+ \end{itemize}
\item \textbf{0.9.0} -- 2023-10-07
\begin{itemize}
\item Modul Aufgabenpool ausgebaut, damit es variable einsetzbar ist
diff --git a/macros/latex/contrib/schule/doc/modulAufgabenpool.tex b/macros/latex/contrib/schule/doc/modulAufgabenpool.tex
index 9b736eb0f6..750ac6c2cd 100644
--- a/macros/latex/contrib/schule/doc/modulAufgabenpool.tex
+++ b/macros/latex/contrib/schule/doc/modulAufgabenpool.tex
@@ -41,3 +41,21 @@ Zu jeder Aufgabe lassen sich einstellbare Optionen angeben. Mit diesen kann man
\command{setAufgabenpoolOptionen}[\marg{Optionennamen}]
Dieses kann im Kopf der Aufgabendatei genutzt werden, um die Optionen zu setzen. So lassen sich die verschiedenen Ansichten bereits im Aufgabendokument anzeigen.
\end{commands}
+
+\subsection{Anhänge an Aufgaben}\sinceversion{0.10.0}
+Bei der Nutzung des Aufgabenpools kann es vorkommen, dass Aufgaben auch Elemente haben, die im Anhang angegeben werden. Teilweise können auch mehrere Aufgaben den gleichen Anhang nutzen. Daher werden zwei verschiedene Möglichkeiten zum Einbinden von Anhängen bereitgestellt. Die Ausgabe des Anhangs wird dann unterdrückt, wenn der Aufruf des Anhangs sich innerhalb einer eingebundenen Aufgabendatei befindet. Für das Gesamtdokument gibt es mit \cs{showIncludeAppendix} einen extra Befehl, der dann für die Ausgabe sorgt.
+
+\subsubsection{Umgebungen}
+\begin{environments}
+ \environment{onceAppendix}[\marg{Name}]
+ Innerhalb der Umgebung kann Inhalt für den Anhang angegeben werden. Durch die Angabe des Namens wird dafür gesorgt, dass Anhang mit gleichem Namen nur einmal ausgegeben wird.
+\end{environments}
+
+\subsubsection{Befehle}
+\begin{commands}
+ \command{inputOnceAppendix}[\marg{Datei}]
+ Eine Datei kann, mit \cs{getBasedir} für den Dateipfad, angegeben werden. Diese wird nur einmal als Anhang eingebunden in das Dokument.
+
+ \command{showIncludeAppendix}
+ Der Befehl wird an einer Stelle verwendet, an der die Anhänge eingebunden werden sollen.
+\end{commands}
diff --git a/macros/latex/contrib/schule/doc/modulBewertung.tex b/macros/latex/contrib/schule/doc/modulBewertung.tex
index b73d348842..fd48af2a27 100644
--- a/macros/latex/contrib/schule/doc/modulBewertung.tex
+++ b/macros/latex/contrib/schule/doc/modulBewertung.tex
@@ -42,12 +42,12 @@ Das Modul \module{Bewertung} ergänzt das Modul \module{Aufgaben} um die Möglic
\subsubsection{Umgebungen}
\begin{environments}
- \environment{erwartungen} erlaubt es, zu einzelnen Aufgaben Erwartungen anzugeben. Die einzelnen Erwartungen werden dabei mit dem Makro \cs{erwartung} angegeben. Diese Umgebung kann nur direkt innerhalb der Umgebung einer Aufgabe genutzt werden.
+ \environment{erwartungen} \deprecatedversion{0.10.0} Diese Umgebung wird nicht mehr für Erwartungen benötigt und gibt eine Warnung aus.
\end{environments}
\subsubsection{Befehle}
\begin{commands}
- \command{erwartung}[\marg{Erwartung}\marg{Punkte}\oarg{Zusatzpunkte}] definiert eine einzelne Erwartung innerhalb der Umgebung \env{erwartungen}. Der Parameter kann beliebigen \LaTeX-Code enthalten bis auf Verbatim-Elemente. Des weiteren werden die Punkte für diese Erwartung als Parameter erwartet. Als optionalen Parameter können Zusatzpunkte angegeben werden.
+ \command{erwartung}[\marg{Erwartung}\marg{Punkte}\oarg{Zusatzpunkte}] definiert eine einzelne Erwartung, die innerhalb einer \env{aufgabe} oder einer \env{loesung} angegeben werden muss. Der Parameter kann beliebigen \LaTeX-Code enthalten bis auf Verbatim-Elemente. Des weiteren werden die Punkte für diese Erwartung als Parameter erwartet. Als optionalen Parameter können Zusatzpunkte angegeben werden. Wird die Erwartung innerhalb einer \env{teilaufgaben}-Umgebung eingefügt, so bekommt die Erwartung die Nummer der Teilaufgabe mit.
\command{erwartungshorizont} setzt den Erwartungshorizont im gewählten Stil, falls die automatische Erzeugung über die Paketoption \option{erwartungshorizontAnzeigen} nicht genutzt wird.
\command{notenverteilung} setzt die Notenverteilung, falls die automatische Erzeugung über den Erwartungshorizont nicht genutzt wird. Die Verteilung wird über die Gesamtpunkte aller Aufgaben unter Berücksichtigung des gewählten Notenschemas ermittelt.
\end{commands}
diff --git a/macros/latex/contrib/schule/doc/modulSymbole.tex b/macros/latex/contrib/schule/doc/modulSymbole.tex
index 9ffd841a55..0d11875549 100644
--- a/macros/latex/contrib/schule/doc/modulSymbole.tex
+++ b/macros/latex/contrib/schule/doc/modulSymbole.tex
@@ -105,7 +105,7 @@ Dieses Modul stellt einige für den Schulkontext relevante Unicode-Symbole aus d
\command{symKeineGlocke}
{\Huge\usym{1F515}} (1F515)
\command{symLupe}
- {\Huge\usym{1F5FD}} (1F5FD)
+ {\Huge\usym{1F50D}} (1F50D)
\end{commands}
@@ -378,4 +378,4 @@ Dieses Modul stellt einige für den Schulkontext relevante Unicode-Symbole aus d
\command{symWuerfelSechs}
{\Huge\usym{2685}} (2685)
\end{commands}
-\end{multicols} \ No newline at end of file
+\end{multicols}
diff --git a/macros/latex/contrib/schule/doc/schule.pdf b/macros/latex/contrib/schule/doc/schule.pdf
index 1129996f96..95c6c626c7 100644
--- a/macros/latex/contrib/schule/doc/schule.pdf
+++ b/macros/latex/contrib/schule/doc/schule.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/schule.tex b/macros/latex/contrib/schule/doc/schule.tex
index e2621da5a5..01029dbc1d 100644
--- a/macros/latex/contrib/schule/doc/schule.tex
+++ b/macros/latex/contrib/schule/doc/schule.tex
@@ -52,8 +52,8 @@
\setcnltx{
name = schule ,
title = schule ,
- version = 0.9.0 ,
- date = 2023-10-07 ,
+ version = 0.10.0 ,
+ date = 2024-04-01 ,
subtitle = {\LaTeX-Klassen und Pakete für den Einsatz im Bereich der Schule},
info = Paketdokumentation ,
authors = {Johannes Pieper, Johannes Kuhaupt, Ludger Humbert, Andr\'e Hilbig, Adrian Salamon, Daniel Spittank} ,
@@ -73,6 +73,7 @@
}
},
}
+\newnote*\deprecatedversion[1]{\mbox{Veraltet} seit~#1}
% \includeonly{module}
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex
index 1ea304ecf4..0dcbcbbea6 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex
@@ -77,7 +77,7 @@
\DeclareExerciseTranslation{German}{default-heading}{%
\XSIMmixedcase{\GetExerciseParameter{solution-name}}en zu den
\XSIMmixedcase{\GetExerciseParameter{exercise-name}}%
- \XSIMifeqF{\GetExerciseParameter{exercise-name}}{Aufgabe}{}n%
+ \XSIMifeqF{\GetExerciseParameter{exercise-env}}{aufgabe}{\XSIMifeqF{\GetExerciseParameter{exercise-env}}{aufgabe*}{e}}n%
}
\DeclareExerciseTranslation{German}{collection-heading}{%
@@ -100,24 +100,26 @@
}
-
% Teilaufgaben
% --------------------------------------------------------------------
-\newcounter{teilpunkte}
+\ExplSyntaxOn
+\bool_new:N \g__schule_in_teilaufgaben_bool
+\bool_gset_false:N \g__schule_in_teilaufgaben_bool
\@ifclassloaded{beamer}{
\newenvironment{teilaufgaben}{\begin{enumerate}[a)]
}{\end{enumerate}}
}{
- \newlist{teilaufgaben}{enumerate}{1}
- \setlist[teilaufgaben]{
- label=\textbf{\alph{teilaufgabeni})},
+ \newlist{teilaufgabenIntern}{enumerate}{1}
+ \setlist[teilaufgabenIntern]{
+ label=\textbf{\alph{teilaufgabenInterni})},
topsep=0.2em,
itemsep=-0.1em,
}
+ \newenvironment{teilaufgaben}%
+ {\bool_gset_true:N \g__schule_in_teilaufgaben_bool \begin{teilaufgabenIntern}}
+ {\end{teilaufgabenIntern} \bool_gset_false:N \g__schule_in_teilaufgaben_bool}
}
-\newcommand{\Teilpunkte}{\arabic{teilpunkte}}
-
\makeatletter
\NewDocumentCommand{\teilaufgabe}{o}{
\IfInsideSolutionTF{
@@ -131,7 +133,9 @@
}
% Gedacht, wenn es bei Teilaufgaben kein Lösung angegeben werden soll
-\newcommand{\teilaufgabeOhneLoesung}{\addtocounter{teilaufgabeni}{1}}
+\newcommand{\teilaufgabeOhneLoesung}{\addtocounter{teilaufgabenInterni}{1}}
+
+\ExplSyntaxOff
% Spezielle Aufgabentypen
% ********************************************************************
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex
index 76e66d9795..33579f61b4 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex
@@ -5,15 +5,15 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clist_new:N \g__schule_aufgabenoptionen_clist
-\DeclareDocumentCommand{\ifAufgabenpoolOptionTF}{m m m}{
+\DeclareDocumentCommand{\ifAufgabenpoolOptionTF}{m +m +m}{
\clist_if_in:NnTF \g__schule_aufgabenoptionen_clist {#1} {#2} {#3}
}
-\DeclareDocumentCommand{\ifAufgabenpoolOptionT}{m m}{
+\DeclareDocumentCommand{\ifAufgabenpoolOptionT}{m +m}{
\clist_if_in:NnT \g__schule_aufgabenoptionen_clist {#1} {#2}
}
-\DeclareDocumentCommand{\ifAufgabenpoolOptionF}{m m}{
+\DeclareDocumentCommand{\ifAufgabenpoolOptionF}{m +m}{
\clist_if_in:NnF \g__schule_aufgabenoptionen_clist {#1} {#2}
}
@@ -46,21 +46,21 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Aufgabenhinweise
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bool_new:N \g__schule_aufgabenhinweis_bool
-\bool_gset_true:N \g__schule_aufgabenhinweis_bool
+\bool_new:N \g__schule_inAufgabenInput_bool
+\bool_gset_false:N \g__schule_inAufgabenInput_bool
\NewDocumentEnvironment{aufgabenpoolHinweis}{+b}{
- \bool_if:NT \g__schule_aufgabenhinweis_bool {#1}
+ \bool_if:NF \g__schule_inAufgabenInput_bool {#1}
}{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Aufgabeneinbindung
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareDocumentCommand{\aufgabeninput}{o m m}{
- \bool_gset_false:N \g__schule_aufgabenhinweis_bool
+ \bool_gset_true:N \g__schule_inAufgabenInput_bool
\str_gset:Nn \g__schule_basedir_string {#2}
\clist_set:Nn \g__schule_aufgabenoptionen_clist {#1}
\input{#2/#3}
- \bool_gset_true:N \g__schule_aufgabenhinweis_bool
+ \bool_gset_false:N \g__schule_inAufgabenInput_bool
}
\xsimsetup{
@@ -72,6 +72,9 @@
% InputOnce
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clist_new:N \g__schule_inputonce_clist
+\clist_new:N \g__schule_inputonceAppendix_clist
+\prop_new:N \g__schule_appendix_prop
+\prop_new:N \g__schule_appendixBasedir_prop
\DeclareDocumentCommand{\inputOnce}{m}{
\clist_if_in:NnF \g__schule_inputonce_clist {#1} {
@@ -80,4 +83,29 @@
}
}
+\DeclareDocumentCommand{\inputOnceAppendix}{m}{
+ \exp_args:Nnf \clist_if_in:NnF {\g__schule_inputonceAppendix_clist} {\getBasedir/#1} {
+ \exp_args:Nnf \clist_gput_right:Nx {\g__schule_inputonceAppendix_clist} {\getBasedir/#1}
+ \bool_if:NF \g__schule_inAufgabenInput_bool {\input{\getBasedir/#1}}
+ }
+}
+
+\DeclareDocumentCommand{\showIncludeAppendix}{}{
+ \clist_map_inline:Nn \g__schule_inputonceAppendix_clist {
+ \input{##1}
+ }
+ \prop_map_inline:Nn \g__schule_appendix_prop {
+ \exp_args:Nnf \str_gset:Nn \g__schule_basedir_string {\prop_item:Nn \g__schule_appendixBasedir_prop {##1}}
+ ##2
+ }
+}
+
+\NewDocumentEnvironment{onceAppendix}{m +b}{
+ \prop_gput:Nnn \g__schule_appendix_prop {#1} {#2}
+ \exp_args:Nnnf \prop_gput:Nnn {\g__schule_appendixBasedir_prop} {#1} {\getBasedir}
+ \bool_if:NF \g__schule_inAufgabenInput_bool {
+ #2
+ }
+}{}
+
\ExplSyntaxOff
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex
index ef906573a3..2483e825e0 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex
@@ -10,13 +10,7 @@
% ********************************************************************
% Erwartungen *
% ********************************************************************
-% Zur Speicherung der Erwartungen werden die Eigenschaften von xsim
-% Aufgaben erweitert. Hierzu ist es erforderlich, dass die Inhalte
-% der Umgebung expandiert oder serialisiert (detokenized) werden
-% und dem "SetExerciseProperty"-Makro als Wert für den Schlüssel
-% "erwartungen" übergeben werden.
-% Um den folgenden Quelltext halbwegs lesbar zu halten, wird auf
-% das environ-Paket zurückgegriffen und viele Dinge aus LaTeX3 genutzt.
+% Zur Speicherung der Erwartungen werden extra Tokenlisten erstellt.
\ExplSyntaxOn
@@ -32,12 +26,27 @@
% Erwartungen-Umgebung
% ********************************************************************
+\msg_new:nnn {schule}{erwartungen}{Deprecated: erwartungen-Umgebung~wird~nicht~mehr~benoetigt}
\NewEnviron{erwartungen}{
- \exp_args:Nno\SetExerciseProperty{erwartungen}{\BODY}
+ % Kann auf Dauer entfernt werden, da es nur in der überarbeiteten Version benötigt wurde
+ \msg_warning:nn{schule} {erwartungen}
+ \BODY
}
-% Einzelerwartung in Form bringen
+\cs_new_protected:Nn \l_schule_erwartungen_einfuegen:nnnn {
+ \tl_if_exist:cF {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\tl_new:c {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl}}
+ \tl_gput_right:co {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\l_schule_erwartungen_ausgabe:nnnn {#1}{#2}{#3}{#4}}
+}
+\cs_generate_variant:Nn \l_schule_erwartungen_einfuegen:nnnn {nnne}
+
\NewDocumentCommand{\erwartung}{m m O{}}{%
+ \bool_if:NTF \g__schule_in_teilaufgaben_bool
+ {\l_schule_erwartungen_einfuegen:nnne {#1} {#2} {#3} {\alph{teilaufgabenInterni}}}
+ {\l_schule_erwartungen_einfuegen:nnne {#1} {#2} {#3} {}}
+}
+
+% Einzelerwartung in Form bringen
+\cs_new_protected:Nn \l_schule_erwartungen_ausgabe:nnnn {%
%Zeilenfarbe
\bool_if:NTF \schule_erwartungen_zeile_gerade_bool {
\bool_gset_false:N \schule_erwartungen_zeile_gerade_bool
@@ -49,13 +58,15 @@
\IfEqCase{\schule@erwartungshorizontStil}{
{simpel}{
- \tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#1 & & & \\ \hline}}
+ \str_if_eq:nnF {#4} {} {\tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#4)~}}}
+ \tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#4)~ #1 & & & \\ \hline}}
}%
}[%
% Standard oder Einzel
\int_gadd:Nn \schule_aufgaben_punkte_int {\_str_to_int_with_zero:n{#2}} %Punkte
\int_gadd:Nn \schule_aufgaben_zusatzpunkte_int {\_str_to_int_with_zero:n{#3}} %Zusatzpunkte
+ \str_if_eq:nnF {#4} {} {\tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#4)~}}}
\tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#1 & }}
\tl_gput_right:Nn \schule_zeilen_erwartungen_str {\_schule_punkte_anzeige:nn {\_str_to_int_with_zero:n{#2}}{\_str_to_int_with_zero:n{#3}}} %Punkte
\tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{ & \\ \hline}} %Zeile
@@ -119,7 +130,7 @@
%Definition der Aufgabe in entsprechende Befehle laden
\def\ExerciseType{##1}%
\def\ExerciseID{##2}%
- \GetExercisePropertyTF{erwartungen}{\PropertyValue}{}
+ \tl_if_exist:cT {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\tl_use:c {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl}}
%Punkte setzen
\_schule_erwartungen_punkte_speichern
@@ -180,7 +191,7 @@
%Definition der Aufgabe in entsprechende Befehle laden
\def\ExerciseType{##1}%
\def\ExerciseID{##2}%
- \GetExercisePropertyTF{erwartungen}{\PropertyValue}{}
+ \tl_if_exist:cT {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\tl_use:c {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl}}
%Gesamtaufgabe
\tl_gput_right:Nx \schule_aufgaben_erwartungen_str \_schule_aufgaben_erwartungen_zeile
@@ -237,7 +248,7 @@
%Definition der Aufgabe in entsprechende Befehle laden
\def\ExerciseType{##1}%
\def\ExerciseID{##2}%
- \GetExercisePropertyTF{erwartungen}{\PropertyValue}{}
+ \tl_if_exist:cT {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\tl_use:c {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl}}
%Gesamtaufgabe
\tl_gput_right:Nx \schule_aufgaben_erwartungen_str \_schule_aufgaben_erwartungen_zeile_simple
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex
index deb993ec0c..1ed69a988e 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex
@@ -47,7 +47,7 @@
\newcommand{\symSchluessel}{\usym{1F511}}
\newcommand{\symGlocke}{\usym{1F514}}
\newcommand{\symKeineGlocke}{\usym{1F515}}
-\newcommand{\symLupe}{\usym{1F5FD}}
+\newcommand{\symLupe}{\usym{1F50D}}
% Musik
\newcommand{\symNote}{\usym{1F39C}}
@@ -184,4 +184,4 @@
\newcommand{\symWuerfelDrei}{\usym{2682}}
\newcommand{\symWuerfelVier}{\usym{2683}}
\newcommand{\symWuerfelFuenf}{\usym{2684}}
-\newcommand{\symWuerfelSechs}{\usym{2685}} \ No newline at end of file
+\newcommand{\symWuerfelSechs}{\usym{2685}}
diff --git a/macros/latex/contrib/schule/latex/schule.sty b/macros/latex/contrib/schule/latex/schule.sty
index ac95a93be7..d94eed218d 100644
--- a/macros/latex/contrib/schule/latex/schule.sty
+++ b/macros/latex/contrib/schule/latex/schule.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}[2011/11/11]
-\ProvidesPackage{schule}[2023/10/07 v0.9.0 %
+\ProvidesPackage{schule}[2023/04/01 v0.10.0 %
Kommandos fuer die Schule]
% ********************************************************************