summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-22 03:01:02 +0000
committerNorbert Preining <norbert@preining.info>2022-06-22 03:01:02 +0000
commitd6888fdb49e3ac954c2d436951f364d3a4a4b17d (patch)
tree6afde4b28d9150c5e111b3319fc5c475b8fd502c /macros
parent884ebedeec6018feff488351eff936cf5b56c030 (diff)
CTAN sync 202206220301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/base/README.md2
-rw-r--r--macros/latex/base/alltt.pdfbin223831 -> 223831 bytes
-rw-r--r--macros/latex/base/cfgguide.pdfbin242888 -> 242888 bytes
-rw-r--r--macros/latex/base/changes.txt20
-rw-r--r--macros/latex/base/classes.pdfbin560350 -> 560350 bytes
-rw-r--r--macros/latex/base/clsguide.pdfbin402780 -> 402780 bytes
-rw-r--r--macros/latex/base/cmfonts.pdfbin292376 -> 292376 bytes
-rw-r--r--macros/latex/base/cyrguide.pdfbin239689 -> 239689 bytes
-rw-r--r--macros/latex/base/doc-code.pdfbin1081761 -> 1081448 bytes
-rw-r--r--macros/latex/base/doc.pdfbin755188 -> 754888 bytes
-rw-r--r--macros/latex/base/docstrip.pdfbin503774 -> 503446 bytes
-rw-r--r--macros/latex/base/encguide.pdfbin1318126 -> 1318126 bytes
-rw-r--r--macros/latex/base/exscale.pdfbin204711 -> 204711 bytes
-rw-r--r--macros/latex/base/fix-cm.pdfbin288328 -> 288328 bytes
-rw-r--r--macros/latex/base/fntguide.pdfbin502880 -> 502880 bytes
-rw-r--r--macros/latex/base/graphpap.pdfbin161713 -> 161713 bytes
-rw-r--r--macros/latex/base/ifthen.pdfbin221211 -> 221211 bytes
-rw-r--r--macros/latex/base/inputenc.pdfbin318204 -> 318204 bytes
-rw-r--r--macros/latex/base/lamport-manual.pdfbin170878 -> 170878 bytes
-rw-r--r--macros/latex/base/latexrelease.pdfbin281906 -> 281906 bytes
-rw-r--r--macros/latex/base/latexsym.pdfbin200760 -> 200760 bytes
-rw-r--r--macros/latex/base/lb2.pdfbin252140 -> 252140 bytes
-rw-r--r--macros/latex/base/letter.pdfbin337706 -> 337382 bytes
-rw-r--r--macros/latex/base/lgc2.pdfbin215684 -> 215684 bytes
-rw-r--r--macros/latex/base/lppl.pdfbin132382 -> 132382 bytes
-rw-r--r--macros/latex/base/ltclass.dtx9
-rw-r--r--macros/latex/base/ltcmdhooks-code.pdfbin720249 -> 719776 bytes
-rw-r--r--macros/latex/base/ltcmdhooks-doc.pdfbin479100 -> 478626 bytes
-rw-r--r--macros/latex/base/ltfilehook-code.pdfbin803034 -> 802638 bytes
-rw-r--r--macros/latex/base/ltfilehook-doc.pdfbin548731 -> 548313 bytes
-rw-r--r--macros/latex/base/lthooks-code.pdfbin1096874 -> 1096471 bytes
-rw-r--r--macros/latex/base/lthooks-doc.pdfbin703775 -> 703370 bytes
-rw-r--r--macros/latex/base/ltkeys.dtx53
-rw-r--r--macros/latex/base/ltluatex.pdfbin317700 -> 317700 bytes
-rw-r--r--macros/latex/base/ltmarks-code.pdfbin715660 -> 715258 bytes
-rw-r--r--macros/latex/base/ltmarks-doc.pdfbin587106 -> 586703 bytes
-rw-r--r--macros/latex/base/ltnews.pdfbin1180993 -> 1180993 bytes
-rw-r--r--macros/latex/base/ltnews01.pdfbin161518 -> 161518 bytes
-rw-r--r--macros/latex/base/ltnews02.pdfbin159792 -> 159792 bytes
-rw-r--r--macros/latex/base/ltnews03.pdfbin159332 -> 159332 bytes
-rw-r--r--macros/latex/base/ltnews04.pdfbin152525 -> 152525 bytes
-rw-r--r--macros/latex/base/ltnews05.pdfbin174494 -> 174494 bytes
-rw-r--r--macros/latex/base/ltnews06.pdfbin142849 -> 142849 bytes
-rw-r--r--macros/latex/base/ltnews07.pdfbin137811 -> 137811 bytes
-rw-r--r--macros/latex/base/ltnews08.pdfbin155053 -> 155053 bytes
-rw-r--r--macros/latex/base/ltnews09.pdfbin129570 -> 129570 bytes
-rw-r--r--macros/latex/base/ltnews10.pdfbin169416 -> 169416 bytes
-rw-r--r--macros/latex/base/ltnews11.pdfbin111948 -> 111948 bytes
-rw-r--r--macros/latex/base/ltnews12.pdfbin156551 -> 156551 bytes
-rw-r--r--macros/latex/base/ltnews13.pdfbin182225 -> 182225 bytes
-rw-r--r--macros/latex/base/ltnews14.pdfbin170473 -> 170473 bytes
-rw-r--r--macros/latex/base/ltnews15.pdfbin130309 -> 130309 bytes
-rw-r--r--macros/latex/base/ltnews16.pdfbin138073 -> 138073 bytes
-rw-r--r--macros/latex/base/ltnews17.pdfbin166228 -> 166228 bytes
-rw-r--r--macros/latex/base/ltnews18.pdfbin38033 -> 38033 bytes
-rw-r--r--macros/latex/base/ltnews19.pdfbin230028 -> 230028 bytes
-rw-r--r--macros/latex/base/ltnews20.pdfbin318548 -> 318548 bytes
-rw-r--r--macros/latex/base/ltnews21.pdfbin244867 -> 244867 bytes
-rw-r--r--macros/latex/base/ltnews22.pdfbin317773 -> 317773 bytes
-rw-r--r--macros/latex/base/ltnews23.pdfbin286591 -> 286591 bytes
-rw-r--r--macros/latex/base/ltnews24.pdfbin265279 -> 265279 bytes
-rw-r--r--macros/latex/base/ltnews25.pdfbin204935 -> 204935 bytes
-rw-r--r--macros/latex/base/ltnews26.pdfbin379462 -> 379462 bytes
-rw-r--r--macros/latex/base/ltnews27.pdfbin250592 -> 250592 bytes
-rw-r--r--macros/latex/base/ltnews28.pdfbin376643 -> 376643 bytes
-rw-r--r--macros/latex/base/ltnews29.pdfbin455107 -> 455107 bytes
-rw-r--r--macros/latex/base/ltnews30.pdfbin511909 -> 511909 bytes
-rw-r--r--macros/latex/base/ltnews31.pdfbin526323 -> 526323 bytes
-rw-r--r--macros/latex/base/ltnews32.pdfbin546160 -> 546160 bytes
-rw-r--r--macros/latex/base/ltnews33.pdfbin522412 -> 522412 bytes
-rw-r--r--macros/latex/base/ltnews34.pdfbin508044 -> 508044 bytes
-rw-r--r--macros/latex/base/ltnews35.pdfbin563513 -> 563513 bytes
-rw-r--r--macros/latex/base/ltpara-code.pdfbin667130 -> 666711 bytes
-rw-r--r--macros/latex/base/ltpara-doc.pdfbin560603 -> 560195 bytes
-rw-r--r--macros/latex/base/ltshipout-code.pdfbin820873 -> 820502 bytes
-rw-r--r--macros/latex/base/ltshipout-doc.pdfbin565171 -> 564800 bytes
-rw-r--r--macros/latex/base/ltvers.dtx2
-rw-r--r--macros/latex/base/ltx3info.pdfbin219349 -> 219349 bytes
-rw-r--r--macros/latex/base/ltxdoc.pdfbin243273 -> 243273 bytes
-rw-r--r--macros/latex/base/makeindx.pdfbin165821 -> 165821 bytes
-rw-r--r--macros/latex/base/modguide.pdfbin243605 -> 243605 bytes
-rw-r--r--macros/latex/base/nfssfont.pdfbin211180 -> 211180 bytes
-rw-r--r--macros/latex/base/proc.pdfbin227059 -> 227059 bytes
-rw-r--r--macros/latex/base/slides.pdfbin375518 -> 375518 bytes
-rw-r--r--macros/latex/base/slifonts.pdfbin234191 -> 234191 bytes
-rw-r--r--macros/latex/base/source2e.pdfbin5761626 -> 5763795 bytes
-rw-r--r--macros/latex/base/syntonly.pdfbin189789 -> 189463 bytes
-rw-r--r--macros/latex/base/tlc2.pdfbin290615 -> 290615 bytes
-rw-r--r--macros/latex/base/tulm.pdfbin162772 -> 162772 bytes
-rw-r--r--macros/latex/base/usrguide.pdfbin430994 -> 430994 bytes
-rw-r--r--macros/latex/base/usrguide3.pdfbin403394 -> 403394 bytes
-rw-r--r--macros/latex/base/utf8ienc.pdfbin353405 -> 353405 bytes
-rw-r--r--macros/latex/base/webcomp.pdfbin146198 -> 146198 bytes
-rw-r--r--macros/latex/contrib/csvsimple/CHANGES.md8
-rw-r--r--macros/latex/contrib/csvsimple/README.md2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-doc.sty13
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-example.pdfbin75624 -> 75624 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-example.tex2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.pdfbin1093900 -> 1093665 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.sty6
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.tex8
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.pdfbin823702 -> 823702 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.sty6
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.tex2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.pdfbin309204 -> 309521 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.sty4
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.tex2
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.dtx14
-rw-r--r--macros/latex/contrib/ut-thesis/ut-thesis.pdfbin140267 -> 140497 bytes
-rw-r--r--macros/latex/contrib/verifiche/verifiche-example.pdfbin192001 -> 191985 bytes
-rw-r--r--macros/latex/contrib/verifiche/verifiche-example.tex6
-rw-r--r--macros/latex/contrib/verifiche/verifiche.dtx157
-rw-r--r--macros/latex/contrib/verifiche/verifiche.pdfbin585018 -> 586335 bytes
-rw-r--r--macros/luatex/latex/showhyphens/README11
-rw-r--r--macros/luatex/latex/showhyphens/showhyphens-doc.pdfbin83289 -> 0 bytes
-rw-r--r--macros/luatex/latex/showhyphens/showhyphens-doc.tex102
-rw-r--r--macros/luatex/latex/showhyphens/showhyphens-sample.pdfbin17790 -> 0 bytes
-rw-r--r--macros/luatex/latex/showhyphens/showhyphens.sty68
-rw-r--r--macros/xetex/latex/xduts/README.md17
-rw-r--r--macros/xetex/latex/xduts/xduts.dtx2653
-rw-r--r--macros/xetex/latex/xduts/xduts.pdfbin441342 -> 665369 bytes
121 files changed, 2691 insertions, 476 deletions
diff --git a/macros/latex/base/README.md b/macros/latex/base/README.md
index 302fb3d4ad..099f5f7cd7 100644
--- a/macros/latex/base/README.md
+++ b/macros/latex/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2022-06-01 patch level 1
+Release 2022-06-01 patch level 2
Overview
--------
diff --git a/macros/latex/base/alltt.pdf b/macros/latex/base/alltt.pdf
index b68240407e..805b27ed9a 100644
--- a/macros/latex/base/alltt.pdf
+++ b/macros/latex/base/alltt.pdf
Binary files differ
diff --git a/macros/latex/base/cfgguide.pdf b/macros/latex/base/cfgguide.pdf
index 3340e6d405..733bda5c20 100644
--- a/macros/latex/base/cfgguide.pdf
+++ b/macros/latex/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex/base/changes.txt b/macros/latex/base/changes.txt
index ce72312d3d..061d7282e7 100644
--- a/macros/latex/base/changes.txt
+++ b/macros/latex/base/changes.txt
@@ -10,7 +10,25 @@ are not part of the distribution.
All changes above are only part of the development branch for the next release.
================================================================================
-2022-06-16 Joseph Wright <Joseph.Wright@latex-proejct.org>
+#########################
+# 2022-06-01 PL2 Release
+#########################
+
+2022-06-20 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx (subsection{Main mechanism})
+ Use raw options data for keyval handling
+
+2022-06-19 Joseph Wright <Joseph.Wright@latex-proejct.org>
+
+ * ltkeys.dtx (subsection{Main mechanism})
+ Correct approach to removing keys from \@unusedoptionlist
+
+#########################
+# 2022-06-01 PL1 Release
+#########################
+
+2022-06-16 Joseph Wright <Joseph.Wright@latex-project.org>
* ltkeys.dtx (subsection{Main mechanism})
Remove key name but avoid touching key value in \@unusedoptionlist
diff --git a/macros/latex/base/classes.pdf b/macros/latex/base/classes.pdf
index 7d1b9e8453..2a96c80c4c 100644
--- a/macros/latex/base/classes.pdf
+++ b/macros/latex/base/classes.pdf
Binary files differ
diff --git a/macros/latex/base/clsguide.pdf b/macros/latex/base/clsguide.pdf
index f5f716adf9..fa1e75ba69 100644
--- a/macros/latex/base/clsguide.pdf
+++ b/macros/latex/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex/base/cmfonts.pdf b/macros/latex/base/cmfonts.pdf
index ab94f922d4..8a5a7021f8 100644
--- a/macros/latex/base/cmfonts.pdf
+++ b/macros/latex/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex/base/cyrguide.pdf b/macros/latex/base/cyrguide.pdf
index f46472597d..95dba9a899 100644
--- a/macros/latex/base/cyrguide.pdf
+++ b/macros/latex/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex/base/doc-code.pdf b/macros/latex/base/doc-code.pdf
index 38d4f82330..e36d030699 100644
--- a/macros/latex/base/doc-code.pdf
+++ b/macros/latex/base/doc-code.pdf
Binary files differ
diff --git a/macros/latex/base/doc.pdf b/macros/latex/base/doc.pdf
index 6796c27a54..1f59aefdf2 100644
--- a/macros/latex/base/doc.pdf
+++ b/macros/latex/base/doc.pdf
Binary files differ
diff --git a/macros/latex/base/docstrip.pdf b/macros/latex/base/docstrip.pdf
index 47ad57079c..46caaa90a4 100644
--- a/macros/latex/base/docstrip.pdf
+++ b/macros/latex/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex/base/encguide.pdf b/macros/latex/base/encguide.pdf
index 196ccc9edd..fa4d1cd4ac 100644
--- a/macros/latex/base/encguide.pdf
+++ b/macros/latex/base/encguide.pdf
Binary files differ
diff --git a/macros/latex/base/exscale.pdf b/macros/latex/base/exscale.pdf
index 94ad97b2fc..8375b3505d 100644
--- a/macros/latex/base/exscale.pdf
+++ b/macros/latex/base/exscale.pdf
Binary files differ
diff --git a/macros/latex/base/fix-cm.pdf b/macros/latex/base/fix-cm.pdf
index 8aac40d3bd..075f79c3a6 100644
--- a/macros/latex/base/fix-cm.pdf
+++ b/macros/latex/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.pdf b/macros/latex/base/fntguide.pdf
index 5e46ecc713..816986a0bc 100644
--- a/macros/latex/base/fntguide.pdf
+++ b/macros/latex/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex/base/graphpap.pdf b/macros/latex/base/graphpap.pdf
index 1ed2f69711..b02cc053b0 100644
--- a/macros/latex/base/graphpap.pdf
+++ b/macros/latex/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex/base/ifthen.pdf b/macros/latex/base/ifthen.pdf
index e0aac52ba3..03f4561ea5 100644
--- a/macros/latex/base/ifthen.pdf
+++ b/macros/latex/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex/base/inputenc.pdf b/macros/latex/base/inputenc.pdf
index 5b80585b56..830cb4ee3d 100644
--- a/macros/latex/base/inputenc.pdf
+++ b/macros/latex/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex/base/lamport-manual.pdf b/macros/latex/base/lamport-manual.pdf
index 8a7a7cf083..669833f2e9 100644
--- a/macros/latex/base/lamport-manual.pdf
+++ b/macros/latex/base/lamport-manual.pdf
Binary files differ
diff --git a/macros/latex/base/latexrelease.pdf b/macros/latex/base/latexrelease.pdf
index 12f09cd026..d6f8b20329 100644
--- a/macros/latex/base/latexrelease.pdf
+++ b/macros/latex/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex/base/latexsym.pdf b/macros/latex/base/latexsym.pdf
index 8ba858063c..ae26a21ad8 100644
--- a/macros/latex/base/latexsym.pdf
+++ b/macros/latex/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex/base/lb2.pdf b/macros/latex/base/lb2.pdf
index 64053ba56c..817e5b1dcf 100644
--- a/macros/latex/base/lb2.pdf
+++ b/macros/latex/base/lb2.pdf
Binary files differ
diff --git a/macros/latex/base/letter.pdf b/macros/latex/base/letter.pdf
index 21e1df4f36..23b2175137 100644
--- a/macros/latex/base/letter.pdf
+++ b/macros/latex/base/letter.pdf
Binary files differ
diff --git a/macros/latex/base/lgc2.pdf b/macros/latex/base/lgc2.pdf
index 8c0459b7ab..8cbf115a78 100644
--- a/macros/latex/base/lgc2.pdf
+++ b/macros/latex/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex/base/lppl.pdf b/macros/latex/base/lppl.pdf
index 916caca462..91a8beaaff 100644
--- a/macros/latex/base/lppl.pdf
+++ b/macros/latex/base/lppl.pdf
Binary files differ
diff --git a/macros/latex/base/ltclass.dtx b/macros/latex/base/ltclass.dtx
index 20e59353ec..35c4251fce 100644
--- a/macros/latex/base/ltclass.dtx
+++ b/macros/latex/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2022/04/16 v1.5b LaTeX Kernel (Class & Package Interface)]
+ [2022/06/20 v1.5c LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -2150,7 +2150,7 @@
% actions prepend \cs{@currpath} to \cs{@currname} (namely loading,
% as we have to respect the given path).
%
-% A file substituiton isn't followed just yet because at this point
+% A file substitution isn't followed just yet because at this point
% we are parsing user input, so the file is still what the user
% asked for, and not the file actually loaded.
% \begin{macrocode}
@@ -2176,6 +2176,7 @@
\@ifl@aded\@currext\@currname
% \end{macrocode}
% \changes{v1.5b}{2022/03/18}{Switch to \cs{ProcessKeyOptions}}
+% \changes{v1.5c}{2022/06/20}{Pass raw options to \cs{ProcessKeyOptions}}
% In the current preferred approach, a key family name will exist for
% processing using \pkg{ltkeys}. In that case, we replace the previous
% package options with the new ones, then call the key handler.
@@ -2185,7 +2186,9 @@
\@ifundefined{opt@fam@\@currname.\@currext}
{\@onefilewithoptions@clashchk{#2}}
{%
- \@namedef{opt@\@currname.\@currext}{#2}%
+ \expandafter\edef\csname opt@\@currname.\@currext\endcsname
+ {\zap@space#2 \@empty}%
+ \@namedef{@raw@opt@\@currname.\@currext}{#2}%
\expandafter\expandafter\expandafter\ProcessKeyOptions
\expandafter\expandafter\expandafter
[\csname opt@fam@\@currname.\@currext\endcsname]%
diff --git a/macros/latex/base/ltcmdhooks-code.pdf b/macros/latex/base/ltcmdhooks-code.pdf
index 9f11b67c39..54cfa08682 100644
--- a/macros/latex/base/ltcmdhooks-code.pdf
+++ b/macros/latex/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltcmdhooks-doc.pdf b/macros/latex/base/ltcmdhooks-doc.pdf
index 3a2d5d871b..9da6815147 100644
--- a/macros/latex/base/ltcmdhooks-doc.pdf
+++ b/macros/latex/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook-code.pdf b/macros/latex/base/ltfilehook-code.pdf
index 3e1f2c268c..5250d38893 100644
--- a/macros/latex/base/ltfilehook-code.pdf
+++ b/macros/latex/base/ltfilehook-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook-doc.pdf b/macros/latex/base/ltfilehook-doc.pdf
index 36fce9e03a..b12c3b4f77 100644
--- a/macros/latex/base/ltfilehook-doc.pdf
+++ b/macros/latex/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/macros/latex/base/lthooks-code.pdf b/macros/latex/base/lthooks-code.pdf
index 86a0c63692..7e9d75bb85 100644
--- a/macros/latex/base/lthooks-code.pdf
+++ b/macros/latex/base/lthooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/lthooks-doc.pdf b/macros/latex/base/lthooks-doc.pdf
index cf90a3a98a..65d5c50781 100644
--- a/macros/latex/base/lthooks-doc.pdf
+++ b/macros/latex/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltkeys.dtx b/macros/latex/base/ltkeys.dtx
index c6dfa5f6dd..fbd5ce302a 100644
--- a/macros/latex/base/ltkeys.dtx
+++ b/macros/latex/base/ltkeys.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltkeys.dtx}
- [2022/06/16 v1.0g LaTeX Kernel (Kevyal options)]
+ [2022/06/20 v1.0h LaTeX Kernel (Kevyal options)]
% \iffalse
\documentclass{l3doc}
\GetFileInfo{ltkeys.dtx}
@@ -258,6 +258,7 @@
%
% \begin{macro}{\@@_options_global:n}
% \changes{v1.0f}{2022/03/18}{Simplify to always cover global options}
+% \changes{v1.0h}{2022/06/20}{Use raw options data}
% Global (class) options are handled differently for \LaTeXe{} packages
% and classes. Hence this function is essentially a check on the current
% file type. The initial test is needed as \LaTeXe{} allows variables to
@@ -266,7 +267,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_options_global:n #1
{
- \cs_if_eq:NNF \@classoptionslist \scan_stop:
+ \cs_if_eq:NNF \@raw@classoptionslist \scan_stop:
{
\cs_if_eq:NNTF \@currext \@clsextension
{ \@@_options_class:n {#1} }
@@ -278,8 +279,10 @@
%
% \begin{macro}{\@@_options_class:n}
% \changes{v1.0g}{2022/06/16}{Better handling of option removal}
-% \begin{macro}{\@@_options_remove:nnn}
-% \changes{v1.0g}{2022/06/16}{New function}
+% \changes{v1.0h}{2022/06/19}{Further work on handling of option removal}
+% \changes{v1.0h}{2022/06/20}{Use raw options data}
+% \begin{macro}{\@@_options_class:nnn}
+% \changes{v1.0h}{2022/06/20}{New function}
% For classes, each option (stripped of any content after |=|)
% is checked for existence as a key. If found, the option is added to
% the combined list for processing. On the other hand, unused options
@@ -289,36 +292,44 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_options_class:n #1
{
- \cs_if_free:cF { opt@ \@currname . \@currext }
+ \cs_if_free:cF { @raw@opt@ \@currname . \@currext }
{
\keys_if_exist:nnTF {#1} { unknown }
{
\clist_put_right:Nv \l_@@_options_clist
- { opt@ \@currname . \@currext }
+ { @raw@opt@ \@currname . \@currext }
}
{
- \clist_map_inline:cn { opt@ \@currname . \@currext }
+ \clist_map_inline:cn { @raw@opt@ \@currname . \@currext }
{
- \@@_options_remove:enn
+ \exp_args:Ne \@@_options_class:nnn
{ \@@_remove_equals:n {##1} }
{##1} {#1}
}
}
}
}
-\cs_new_protected:Npn \@@_options_remove:nnn #1#2#3
+\cs_new_protected:Npn \@@_options_class:nnn #1#2#3
{
\keys_if_exist:nnTF {#3} {#1}
{ \clist_put_right:Nn \l_@@_options_clist {#2} }
- { \clist_put_right:Nn \@unusedoptionlist {#1} }
+ {
+ \str_if_eq:eeF
+ { \exp_not:v { @raw@opt@ \@currname . \@currext } }
+ { \exp_not:V \@raw@classoption }
+ { \clist_put_right:Nn \@unusedoptionlist {#1} }
+ }
}
-\cs_generate_variant:Nn \@@_options_remove:nnn { e }
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@@_options_package:n}
% \changes{v1.0g}{2022/06/16}{Better handling of option removal}
+% \changes{v1.0h}{2022/06/19}{Further work on handling of option removal}
+% \changes{v1.0h}{2022/06/20}{Use raw options data}
+% \begin{macro}{\@@_options_package:nnn}
+% \changes{v1.0h}{2022/06/19}{New function}
% For global options when processing a package, the tasks are slightly
% different from those for a class. The check is the same, but here
% there is nothing to do if the option is not applicable. Each valid
@@ -326,18 +337,28 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_options_package:n #1
{
- \clist_map_inline:Nn \@classoptionslist
+ \clist_map_inline:Nn \@raw@classoptionslist
{
- \@@_options_remove:enn
+ \exp_args:Ne \@@_options_package:nnn
{ \@@_remove_equals:n {##1} }
{##1} {#1}
}
}
+\cs_new_protected:Npn \@@_options_package:nnn #1#2#3
+ {
+ \keys_if_exist:nnT {#3} {#1}
+ {
+ \clist_put_right:Nn \l_@@_options_clist {#2}
+ \clist_remove_all:Nn \@unusedoptionlist {#1}
+ }
+ }
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@@_options_local:}
-% If local options are found, the are added to the processing list.
+% \changes{v1.0h}{2022/06/20}{Use raw options data}
+% If local options are found, they are added to the processing list.
% \LaTeXe{} stores options for each file in a macro which may or may not
% exist, hence the need to use \cs{cs_if_exist:c}.
% \begin{macrocode}
@@ -345,10 +366,10 @@
{
\cs_if_eq:NNF \@currext \@clsextension
{
- \cs_if_exist:cT { opt@ \@currname . \@currext }
+ \cs_if_exist:cT { @raw@opt@ \@currname . \@currext }
{
\clist_put_right:Nv \l_@@_options_clist
- { opt@ \@currname . \@currext }
+ { @raw@opt@ \@currname . \@currext }
}
}
}
diff --git a/macros/latex/base/ltluatex.pdf b/macros/latex/base/ltluatex.pdf
index 715cccdc7a..71557fac17 100644
--- a/macros/latex/base/ltluatex.pdf
+++ b/macros/latex/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-code.pdf b/macros/latex/base/ltmarks-code.pdf
index 2ebc5271db..48e7996f06 100644
--- a/macros/latex/base/ltmarks-code.pdf
+++ b/macros/latex/base/ltmarks-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-doc.pdf b/macros/latex/base/ltmarks-doc.pdf
index 705938d156..ebaf75aa77 100644
--- a/macros/latex/base/ltmarks-doc.pdf
+++ b/macros/latex/base/ltmarks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews.pdf b/macros/latex/base/ltnews.pdf
index 20e8dea9a4..3387dff525 100644
--- a/macros/latex/base/ltnews.pdf
+++ b/macros/latex/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews01.pdf b/macros/latex/base/ltnews01.pdf
index f77a5b28d9..e8e22df85e 100644
--- a/macros/latex/base/ltnews01.pdf
+++ b/macros/latex/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews02.pdf b/macros/latex/base/ltnews02.pdf
index 0a33f62e06..6acaf138d7 100644
--- a/macros/latex/base/ltnews02.pdf
+++ b/macros/latex/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews03.pdf b/macros/latex/base/ltnews03.pdf
index 53c96235c7..410d6331b1 100644
--- a/macros/latex/base/ltnews03.pdf
+++ b/macros/latex/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews04.pdf b/macros/latex/base/ltnews04.pdf
index 5547952ef6..5592c44adf 100644
--- a/macros/latex/base/ltnews04.pdf
+++ b/macros/latex/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews05.pdf b/macros/latex/base/ltnews05.pdf
index ff24fd0a87..52d924ca14 100644
--- a/macros/latex/base/ltnews05.pdf
+++ b/macros/latex/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews06.pdf b/macros/latex/base/ltnews06.pdf
index 6f78782136..f5ba66cd4d 100644
--- a/macros/latex/base/ltnews06.pdf
+++ b/macros/latex/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews07.pdf b/macros/latex/base/ltnews07.pdf
index e20380a79b..19c4d5961a 100644
--- a/macros/latex/base/ltnews07.pdf
+++ b/macros/latex/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews08.pdf b/macros/latex/base/ltnews08.pdf
index 30bab4f8af..60d2674f6d 100644
--- a/macros/latex/base/ltnews08.pdf
+++ b/macros/latex/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews09.pdf b/macros/latex/base/ltnews09.pdf
index 574b47fa54..40388aa82e 100644
--- a/macros/latex/base/ltnews09.pdf
+++ b/macros/latex/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews10.pdf b/macros/latex/base/ltnews10.pdf
index 9ea06f76ca..d4c9871ac6 100644
--- a/macros/latex/base/ltnews10.pdf
+++ b/macros/latex/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews11.pdf b/macros/latex/base/ltnews11.pdf
index ebe4532b73..aa049f39f1 100644
--- a/macros/latex/base/ltnews11.pdf
+++ b/macros/latex/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews12.pdf b/macros/latex/base/ltnews12.pdf
index 7e6032f020..69f668a45b 100644
--- a/macros/latex/base/ltnews12.pdf
+++ b/macros/latex/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews13.pdf b/macros/latex/base/ltnews13.pdf
index f2083e9019..d165372af6 100644
--- a/macros/latex/base/ltnews13.pdf
+++ b/macros/latex/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews14.pdf b/macros/latex/base/ltnews14.pdf
index 3721424d0c..2a24206818 100644
--- a/macros/latex/base/ltnews14.pdf
+++ b/macros/latex/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews15.pdf b/macros/latex/base/ltnews15.pdf
index 9ba1dbc6b7..382655f485 100644
--- a/macros/latex/base/ltnews15.pdf
+++ b/macros/latex/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews16.pdf b/macros/latex/base/ltnews16.pdf
index 1d2b17732e..6e7c57d74a 100644
--- a/macros/latex/base/ltnews16.pdf
+++ b/macros/latex/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews17.pdf b/macros/latex/base/ltnews17.pdf
index 2468e25ad4..81f328b77f 100644
--- a/macros/latex/base/ltnews17.pdf
+++ b/macros/latex/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews18.pdf b/macros/latex/base/ltnews18.pdf
index 3dbf4ee348..f87a5852d6 100644
--- a/macros/latex/base/ltnews18.pdf
+++ b/macros/latex/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews19.pdf b/macros/latex/base/ltnews19.pdf
index 3cf318808c..c3a3426abb 100644
--- a/macros/latex/base/ltnews19.pdf
+++ b/macros/latex/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews20.pdf b/macros/latex/base/ltnews20.pdf
index f3ecf75d70..83273b77fb 100644
--- a/macros/latex/base/ltnews20.pdf
+++ b/macros/latex/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews21.pdf b/macros/latex/base/ltnews21.pdf
index df01d98c08..d2a3268a39 100644
--- a/macros/latex/base/ltnews21.pdf
+++ b/macros/latex/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews22.pdf b/macros/latex/base/ltnews22.pdf
index 7af667be54..31b8dbbe72 100644
--- a/macros/latex/base/ltnews22.pdf
+++ b/macros/latex/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews23.pdf b/macros/latex/base/ltnews23.pdf
index ce5a6d101e..1604787140 100644
--- a/macros/latex/base/ltnews23.pdf
+++ b/macros/latex/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews24.pdf b/macros/latex/base/ltnews24.pdf
index a19bae372c..ff2175eb35 100644
--- a/macros/latex/base/ltnews24.pdf
+++ b/macros/latex/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews25.pdf b/macros/latex/base/ltnews25.pdf
index 0d7669ddc2..e37e5ea0cd 100644
--- a/macros/latex/base/ltnews25.pdf
+++ b/macros/latex/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews26.pdf b/macros/latex/base/ltnews26.pdf
index 13dc3d26d5..28d7db3a71 100644
--- a/macros/latex/base/ltnews26.pdf
+++ b/macros/latex/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews27.pdf b/macros/latex/base/ltnews27.pdf
index 5d8e665fb8..7f8dde1f56 100644
--- a/macros/latex/base/ltnews27.pdf
+++ b/macros/latex/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews28.pdf b/macros/latex/base/ltnews28.pdf
index 328c065c53..99f52713e3 100644
--- a/macros/latex/base/ltnews28.pdf
+++ b/macros/latex/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews29.pdf b/macros/latex/base/ltnews29.pdf
index 52445cc420..1b69ee7795 100644
--- a/macros/latex/base/ltnews29.pdf
+++ b/macros/latex/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews30.pdf b/macros/latex/base/ltnews30.pdf
index f9caf97816..b2693bd19d 100644
--- a/macros/latex/base/ltnews30.pdf
+++ b/macros/latex/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews31.pdf b/macros/latex/base/ltnews31.pdf
index 242feb7d2c..6692ae1768 100644
--- a/macros/latex/base/ltnews31.pdf
+++ b/macros/latex/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews32.pdf b/macros/latex/base/ltnews32.pdf
index 363250860b..52d35e5928 100644
--- a/macros/latex/base/ltnews32.pdf
+++ b/macros/latex/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews33.pdf b/macros/latex/base/ltnews33.pdf
index cbd0f2b46c..6b2439cc0b 100644
--- a/macros/latex/base/ltnews33.pdf
+++ b/macros/latex/base/ltnews33.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews34.pdf b/macros/latex/base/ltnews34.pdf
index 9919a56abe..cf03dba842 100644
--- a/macros/latex/base/ltnews34.pdf
+++ b/macros/latex/base/ltnews34.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews35.pdf b/macros/latex/base/ltnews35.pdf
index 857e259bec..4f855f2466 100644
--- a/macros/latex/base/ltnews35.pdf
+++ b/macros/latex/base/ltnews35.pdf
Binary files differ
diff --git a/macros/latex/base/ltpara-code.pdf b/macros/latex/base/ltpara-code.pdf
index f6de8902d2..1fda8edf58 100644
--- a/macros/latex/base/ltpara-code.pdf
+++ b/macros/latex/base/ltpara-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltpara-doc.pdf b/macros/latex/base/ltpara-doc.pdf
index 7d3886667d..fb713ae12d 100644
--- a/macros/latex/base/ltpara-doc.pdf
+++ b/macros/latex/base/ltpara-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-code.pdf b/macros/latex/base/ltshipout-code.pdf
index 96f65484fd..a5695040ca 100644
--- a/macros/latex/base/ltshipout-code.pdf
+++ b/macros/latex/base/ltshipout-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-doc.pdf b/macros/latex/base/ltshipout-doc.pdf
index 7114777340..66efc21ce6 100644
--- a/macros/latex/base/ltshipout-doc.pdf
+++ b/macros/latex/base/ltshipout-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltvers.dtx b/macros/latex/base/ltvers.dtx
index 021bb5038f..92cd1f4e5d 100644
--- a/macros/latex/base/ltvers.dtx
+++ b/macros/latex/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2022-06-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{1}
+\def\patch@level{2}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex/base/ltx3info.pdf b/macros/latex/base/ltx3info.pdf
index b1df70669e..cd1444506d 100644
--- a/macros/latex/base/ltx3info.pdf
+++ b/macros/latex/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex/base/ltxdoc.pdf b/macros/latex/base/ltxdoc.pdf
index b5777b7254..2be49f9048 100644
--- a/macros/latex/base/ltxdoc.pdf
+++ b/macros/latex/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex/base/makeindx.pdf b/macros/latex/base/makeindx.pdf
index 2689599099..ba96438573 100644
--- a/macros/latex/base/makeindx.pdf
+++ b/macros/latex/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex/base/modguide.pdf b/macros/latex/base/modguide.pdf
index d49b2d3885..dc70acb086 100644
--- a/macros/latex/base/modguide.pdf
+++ b/macros/latex/base/modguide.pdf
Binary files differ
diff --git a/macros/latex/base/nfssfont.pdf b/macros/latex/base/nfssfont.pdf
index 4550a82fe6..894ab53d0b 100644
--- a/macros/latex/base/nfssfont.pdf
+++ b/macros/latex/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex/base/proc.pdf b/macros/latex/base/proc.pdf
index 240143af6d..c3938114f3 100644
--- a/macros/latex/base/proc.pdf
+++ b/macros/latex/base/proc.pdf
Binary files differ
diff --git a/macros/latex/base/slides.pdf b/macros/latex/base/slides.pdf
index 197dc1d51a..45e76e0909 100644
--- a/macros/latex/base/slides.pdf
+++ b/macros/latex/base/slides.pdf
Binary files differ
diff --git a/macros/latex/base/slifonts.pdf b/macros/latex/base/slifonts.pdf
index 52b9da8326..93f1470416 100644
--- a/macros/latex/base/slifonts.pdf
+++ b/macros/latex/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex/base/source2e.pdf b/macros/latex/base/source2e.pdf
index 70e084f6e8..0d0541b35b 100644
--- a/macros/latex/base/source2e.pdf
+++ b/macros/latex/base/source2e.pdf
Binary files differ
diff --git a/macros/latex/base/syntonly.pdf b/macros/latex/base/syntonly.pdf
index ef6ff5857b..0730685de9 100644
--- a/macros/latex/base/syntonly.pdf
+++ b/macros/latex/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex/base/tlc2.pdf b/macros/latex/base/tlc2.pdf
index 54b6f037af..5d8214fc35 100644
--- a/macros/latex/base/tlc2.pdf
+++ b/macros/latex/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex/base/tulm.pdf b/macros/latex/base/tulm.pdf
index 993243e50b..f3059c903e 100644
--- a/macros/latex/base/tulm.pdf
+++ b/macros/latex/base/tulm.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide.pdf b/macros/latex/base/usrguide.pdf
index 1c8e6fdf84..36b100810f 100644
--- a/macros/latex/base/usrguide.pdf
+++ b/macros/latex/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide3.pdf b/macros/latex/base/usrguide3.pdf
index ce002ec1ef..c0b20f83dc 100644
--- a/macros/latex/base/usrguide3.pdf
+++ b/macros/latex/base/usrguide3.pdf
Binary files differ
diff --git a/macros/latex/base/utf8ienc.pdf b/macros/latex/base/utf8ienc.pdf
index 282ed4d197..6cab68e0db 100644
--- a/macros/latex/base/utf8ienc.pdf
+++ b/macros/latex/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex/base/webcomp.pdf b/macros/latex/base/webcomp.pdf
index 456c8e33a5..d98c02c8fd 100644
--- a/macros/latex/base/webcomp.pdf
+++ b/macros/latex/base/webcomp.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/CHANGES.md b/macros/latex/contrib/csvsimple/CHANGES.md
index f41204bcb7..9cace235da 100644
--- a/macros/latex/contrib/csvsimple/CHANGES.md
+++ b/macros/latex/contrib/csvsimple/CHANGES.md
@@ -17,6 +17,14 @@ and this project adheres to
+## [2.3.1] - 2022-06-21
+
+### Fixed
+- Documentation: placeholder names corrected (issue #21)
+- Use built-in constants instead of integers for boolexpr (issue #22)
+
+
+
## [2.3.0] - 2022-02-01
### Added
diff --git a/macros/latex/contrib/csvsimple/README.md b/macros/latex/contrib/csvsimple/README.md
index f874770dd8..253d920721 100644
--- a/macros/latex/contrib/csvsimple/README.md
+++ b/macros/latex/contrib/csvsimple/README.md
@@ -1,4 +1,4 @@
-# The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+# The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
> Copyright (c) 2008-2022 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
diff --git a/macros/latex/contrib/csvsimple/csvsimple-doc.sty b/macros/latex/contrib/csvsimple/csvsimple-doc.sty
index 4d4d8beba8..3e917f4e0f 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-doc.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-doc.sty
@@ -1,5 +1,5 @@
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+%% The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
%% csvsimple-doc.sty: style file for the documentation
%%
%% -------------------------------------------------------------------------------------------
@@ -18,11 +18,18 @@
%%
%% This work consists of all files listed in README.md
%%
-\def\version{2.3.0}%
-\def\datum{2022/02/01}%
+\def\version{2.3.1}%
+\def\datum{2022/06/21}%
\IfFileExists{csvsimple-doc.cfg}{\input{csvsimple-doc.cfg}}{}\providecommand\csvpkgprefix{}
+\makeatletter
+% prevent hypdoc from loading (sets hyperindex=false)
+\@namedef{ver@hypdoc.sty}{9999/12/31}
+\@namedef{opt@hypdoc.sty}{hypdoc}
+\makeatother
+
+
\RequirePackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc}
\RequirePackage[english]{babel}
diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.pdf b/macros/latex/contrib/csvsimple/csvsimple-example.pdf
index b59dc4f269..fdafa0f5e4 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-example.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.tex b/macros/latex/contrib/csvsimple/csvsimple-example.tex
index ee5efffe8a..fe840925cc 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-example.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-example.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+%% The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
%% csvsimple-example.tex: an example for csvsimple
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
index 2ed9105de7..b698edd0a6 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.sty b/macros/latex/contrib/csvsimple/csvsimple-l3.sty
index 1af04edf9c..6144f4e9d8 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+%% The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
%% csvsimple-l3.sty: Simple LaTeX CSV file processing (LaTeX3)
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README.md
%%
-\ProvidesExplPackage{csvsimple-l3}{2022/02/01}{2.3.0}
+\ProvidesExplPackage{csvsimple-l3}{2022/06/21}{2.3.1}
{LaTeX3 CSV file processing}
@@ -33,7 +33,7 @@
\msg_warning:nn { csvsimple }{ l3 / package-loaded }
\tex_endinput:D
}
-\bool_const:Nn \c__csvsim_package_expl_bool { 1 }
+\bool_const:Nn \c__csvsim_package_expl_bool { \c_true_bool }
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.tex b/macros/latex/contrib/csvsimple/csvsimple-l3.tex
index d8bd01a613..013360a811 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+%% The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
@@ -1098,7 +1098,7 @@ The following string compare filters \refKey{/csvsim/filter strcmp} and
\begin{docCsvKey}[][doc new=2021-06-25]{filter bool}{=\meta{boolean expression}}{no default}
Only data lines which fulfill a \LaTeX3 \meta{boolean expression} are accepted.
Note that such an \meta{boolean expression} needs expl3 code.
- To preprocess the data line before testing the \meta{condition},
+ To preprocess the data line before testing the \meta{boolean expression},
the option key \refKey{/csvsim/before filter} can be used.
\begin{dispExample}
% For convenience, we save the filter
@@ -1191,7 +1191,7 @@ filter test=\iftest{some testing},
Only data lines which fulfill a \meta{boolean expression} are accepted.
Every \meta{boolean expression}
from the \ctanpkg{etoolbox} package is feasible (package loading required!).
- To preprocess the data line before testing the \meta{condition},
+ To preprocess the data line before testing the \meta{boolean expression},
the option key \refKey{/csvsim/before filter} can be used.
\begin{dispExample}
% \usepackage{etoolbox,booktabs}
@@ -1216,7 +1216,7 @@ filter test=\iftest{some testing},
Only data lines which fulfill a \meta{boolean expression} are accepted.
For the \meta{boolean expression}, every term from the \ctanpkg{ifthen} package
is feasible (package loading required!).
- To preprocess the data line before testing the \meta{condition},
+ To preprocess the data line before testing the \meta{boolean expression},
the option key \refKey{/csvsim/before filter} can be used.
\begin{dispExample}
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
index dc99089c0a..1b0409b0ec 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
index 9495978c55..78006bff74 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+%% The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
%% csvsimple-legacy.sty: Simple LaTeX CSV file processing (LaTeX2e)
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{csvsimple-legacy}[2022/02/01 version 2.3.0 LaTeX2e CSV file processing]
+\ProvidesPackage{csvsimple-legacy}[2022/06/21 version 2.3.1 LaTeX2e CSV file processing]
%---- check package
@@ -32,7 +32,7 @@
\msg_warning:nn { csvsimple }{ legacy / package-loaded }
\tex_endinput:D
}
-\bool_const:Nn \c__csvsim_package_expl_bool { 0 }
+\bool_const:Nn \c__csvsim_package_expl_bool { \c_false_bool }
\ExplSyntaxOff
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
index bffc4b53b4..f07ce1259a 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+%% The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/csvsimple/csvsimple.pdf b/macros/latex/contrib/csvsimple/csvsimple.pdf
index 0b356e3122..e72807aa1b 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple.sty b/macros/latex/contrib/csvsimple/csvsimple.sty
index b34de03816..ba3c21eb71 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+%% The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
%% csvsimple.sty: Simple LaTeX CSV file processing
%%
%% -------------------------------------------------------------------------------------------
@@ -19,7 +19,7 @@
%%
\RequirePackage{l3keys2e}
-\ProvidesExplPackage{csvsimple}{2022/02/01}{2.3.0}
+\ProvidesExplPackage{csvsimple}{2022/06/21}{2.3.1}
{LaTeX CSV file processing}
\cs_if_exist:NT \c__csvsim_package_expl_bool
diff --git a/macros/latex/contrib/csvsimple/csvsimple.tex b/macros/latex/contrib/csvsimple/csvsimple.tex
index a9870b5063..6583171aaf 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.3.0 (2022/02/01)
+%% The LaTeX package csvsimple - version 2.3.1 (2022/06/21)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.dtx b/macros/latex/contrib/ut-thesis/ut-thesis.dtx
index acb18a1f78..fa8b3a4c31 100644
--- a/macros/latex/contrib/ut-thesis/ut-thesis.dtx
+++ b/macros/latex/contrib/ut-thesis/ut-thesis.dtx
@@ -5,7 +5,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<class>\ProvidesClass{ut-thesis}
%<*class>
-[2021/08/26 v3.1.5 University of Toronto thesis class]
+[2022/06/21 v3.1.6 University of Toronto thesis class]
%</class>
%
%<*driver>
@@ -198,6 +198,12 @@
%
% If undefined, template values are used like ``(author)''.
%
+% \begin{macro}{\copyrighttext}
+% The copyright text printed on the titlepage.
+% The default, which can be overwritten if needed, is:
+% |{\copyright} Copyright {\@gradyear} by {\@author}|.
+% \end{macro}
+%
% \subsubsection{Document Parts}\label{use:cmd:parts}
%
% From the |book| class, four commands can be used to divide the document into major parts.
@@ -430,9 +436,10 @@
\newcommand*{\gradyear} [1]{\gdef\@gradyear{#1}}
\newcommand*{\department}[2][Department of]%
{\gdef\@deptpre{#1}\gdef\@deptname{#2}}
+\newcommand*{\copyrighttext}[1]{\gdef\@copyrighttext{#1}}
% \end{macrocode}
%
-% Setting default values that will hopefully be overwritten.
+% Setting default values that will mostly be overwritten.
%
% \begin{macrocode}
\author {(author)}
@@ -440,6 +447,7 @@
\degree {(degree)}
\gradyear {(gradyear)}
\department{(department)}
+\copyrighttext{{\copyright} Copyright {\@gradyear} by {\@author}}
% \end{macrocode}
%
% \subsection{Front Matter}\label{imp:front}
@@ -482,7 +490,7 @@
{\@deptpre} {\@deptname}\\
University of Toronto\\
\vfill
- {\copyright} Copyright {\@gradyear} by {\@author}
+ {\@copyrighttext}
\end{center}
{{\pagestyle{empty}\ocleardoublepage}}
}
diff --git a/macros/latex/contrib/ut-thesis/ut-thesis.pdf b/macros/latex/contrib/ut-thesis/ut-thesis.pdf
index 5128406af3..88b20d0dfb 100644
--- a/macros/latex/contrib/ut-thesis/ut-thesis.pdf
+++ b/macros/latex/contrib/ut-thesis/ut-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifiche/verifiche-example.pdf b/macros/latex/contrib/verifiche/verifiche-example.pdf
index b6ae252e2e..39518e617c 100644
--- a/macros/latex/contrib/verifiche/verifiche-example.pdf
+++ b/macros/latex/contrib/verifiche/verifiche-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifiche/verifiche-example.tex b/macros/latex/contrib/verifiche/verifiche-example.tex
index b399be3644..eba83beca0 100644
--- a/macros/latex/contrib/verifiche/verifiche-example.tex
+++ b/macros/latex/contrib/verifiche/verifiche-example.tex
@@ -1,5 +1,5 @@
% compile 2 times
-\documentclass[a4paper]{article}
+\documentclass[a4paper, 10pt]{extarticle}
\usepackage[italian]{babel}
\usepackage[solutions%show/hide the solutions
]{verifiche}
@@ -62,8 +62,8 @@ Rispondere alle seguenti domande:
\begin{esercizio}[diff=3, partialpt]\label{es:meccanica}
Rispondere alle seguenti domande:
\begin{enumerate}[(i)]
-\item\partialpt{2}Descrivere l'energia meccanica di un sistema gravitazionale a due corpi isolato.
-\item\partialpt{3}Enunciare il teorema del viriale.
+\item\partialpt{2} Descrivere l'energia meccanica di un sistema gravitazionale a due corpi isolato.
+\item\partialpt{3} Enunciare il teorema del viriale.
\end{enumerate}
\end{esercizio}
diff --git a/macros/latex/contrib/verifiche/verifiche.dtx b/macros/latex/contrib/verifiche/verifiche.dtx
index de03d7052a..60621ae295 100644
--- a/macros/latex/contrib/verifiche/verifiche.dtx
+++ b/macros/latex/contrib/verifiche/verifiche.dtx
@@ -16,7 +16,7 @@
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{verifiche} [2022/06/16 v5.1 .dtx verifiche file]
+%<package>\ProvidesPackage{verifiche} [2022/06/21 v5.2 .dtx verifiche file]
%<*driver>
\documentclass{ltxdoc}
\usepackage[utf8]{inputenc}
@@ -70,7 +70,7 @@
%</driver>
% \fi
%
-% \CheckSum{914}
+% \CheckSum{934}
% \changes{v1.0}{2020/06/14}{Initial version.}
% \changes{v2.0}{2020/06/26}{Better performance in exercise environment.}
% \changes{v2.1}{2020/06/30}{Introduced closedquestionitem to control |item| symbol.}
@@ -83,6 +83,7 @@
% \changes{v4.4}{2022/03/10}{Minor update. Fixed labels issues.}
% \changes{v5.0}{2022/05/18}{Major update. Remove some unnecessary packages. Remove spurious space in closedquestion environment. Add a starred version of closedquestion environment. Add the possibility to add local label to soluzione environment. Add a new command: makecolumn.}
% \changes{v5.1}{2022/06/16}{Minor update. Clean the code for printheading command; better appearance for openquestion command.}
+% \changes{v5.2}{2022/06/21}{Minor update. Resolve bugs in printheading command.}
% \GetFileInfo{verifiche.sty}
% \DoNotIndex{\newcommand,\newenvironment,\def,\begin,\end,\par}
% \DoNotIndex{\DeclareOption,\ExecuteOptions,\ProcessOptions,\RequirePackage}
@@ -119,16 +120,16 @@
% \DoNotIndex{\val, \xout, \y, \usebox, \romannumeral, \@ifundefined, \ltx@zero, \rc@default, \rc@extract@, \chardef, \llap}
%
%
-% \title{Il pacchetto \textsf{verifiche}
+% \title{Il pacchetto \textsf{verifiche}%
% \thanks{Questo documento corrisponde al pacchetto \textsf{verifiche}~\fileversion,
% in data~\filedate.}
-%\\ {\normalsize Version: \fileversion}}
+%\\ {\normalsize \fileversion}}
% \author{Francesco Raccanello\\ \texttt{raccanello.francesco@gmail.com}}
%
% \maketitle
%\begin{otherlanguage}{english}
%\begin{abstract}
-% The aim of this package is to manage the elements of a middle or hight school test. It can composes the headings of the page, the exercises and their solutions. The exercises can show numeration, difficulty and score.
+% The aim of this package is to manage the elements of a middle or hight school test. It can compose the headings of the page, the exercises and their solutions. The exercises can show numerical ID, difficulty and score.
% The package manages some standard test typology: plain exercise, complete-the-text, true or false, open questions, closed questions, find-the-error.
%\end{abstract}
%\end{otherlanguage}
@@ -163,23 +164,20 @@
%\item |graphicx|, |xcolor| e |tikz| per la gestione grafica;
%\end{itemize}
%
-%\section{Come usare il pacchetto \textsf{verifiche}}
+%\section{Come usare il pacchetto \textsf{verifiche} e le sue opzioni}
%Per usare il pacchetto \textsf{verifiche} è sufficiente copiare il file \texttt{\filename} nella cartella di lavoro
%o installarlo secondo le procedure relative al proprio sistema operativo.
%
%Una volta installato è sufficiente caricare il pacchetto attraverso il comando:\\
-%\begin{center}|\usepackage{verifiche}|\end{center}
-%
-%\section{Le opzioni del pacchetto}
-%Il pacchetto \textsf{verifiche} prevede alcune opzioni per modificare globalmente il proprio comportamento.
%\begin{center} |\usepackage|\oarg{options}|{verifiche}|\end{center}
+%Il pacchetto \textsf{verifiche} prevede alcune opzioni per modificare globalmente il proprio comportamento.
%Queste gestiscono l'aspetto dell'intestazione, la numerazione globale dei quesiti nonché l'attivazione della "modalità soluzioni" per poter visualizzare, nel documento, le soluzioni e variarne il colore del font.
%
%\begin{center}
%\begin{tabular}{ll}
%\textbf{\meta{options}}& \textbf{Descrizione} \\[.5em]
%\hline\\
-%|noinstitute| & non stampa il nome dell'istituto (si veda pag. \pageref{par:institute}).\\
+%|noinstitute| & non stampa il nome dell'istituto.\\
%|nocandidatename|& non stampa la sezione per il nome del candidato\\
%|noinstruction| & non stampa le istruzioni della prova\\
%|noduration| & non stampa la durata della prova\\
@@ -187,7 +185,7 @@
%|notesttype| & non stampa il tipo di prova \\
%|nonumbered| & quesiti non numerati\\
%|noexercisept| & non stampa il punteggio degli esercizi, anche se dichiarati\\
-%|solutions| & stampa le soluzioni degli esercizi (si veda pag.\pageref{sec:solutions})\\
+%|solutions| & stampa le soluzioni degli esercizi (si veda pag. \pageref{sec:solutions})\\
%|red| & il colore del font delle soluzioni è rosso\\
%|blue| & il colore del font delle soluzioni è blu\\
%|color|=\meta{color}& il colore del font delle soluzioni è \meta{color}\\[.5em]
@@ -214,7 +212,7 @@
%</example>
%\fi
%
-%il cui argomento verrà stampato al centro dell'intestazione della pagina con un font largo, senza grazie e di colore grigio scuro e separato dal resto del documento attraverso una riga orizzontale.
+%il cui argomento verrà stampato al centro dell'intestazione della pagina con un font largo, senza grazie e di colore grigio scuro.
%Il font può essere modificato ridefinendo il comando |\institutefont|.
%
%\DescribeMacro{\asyear}\label{par:asyear}L'anno scolastico viene indicato tramite l'apposito comando:
@@ -276,7 +274,6 @@
%\iffalse
%</example>
%\fi
-%Salvo esplicite opzioni del pacchetto, il comando richiede di definire \emph{tutte} le voci (al limite indicandole con argomento vuoto |{}|), per non generare alcun errore di compilazione.
%
%\vspace{1em}
%Riassumendo, il pacchetto fornisce i seguenti comandi per gestire e la stampa dell'intestazione del documento:
@@ -313,19 +310,7 @@
%Ogni comando prevede la possibilità di fornire le soluzioni che vengono visualizzato quando il pacchetto è caricato attivando l'opzione |solutions|.
%
%\vspace{1em}
-% \DescribeEnv{esercizio}\label{sec:esercizio}L'ambiente esercizio viene usato per definire il quesito.
-%Esso produce il testo contenuto nel corpo preponendo la dicitura ‘‘Quesito” seguito da un numero.
-%Questo può essere oggetto di riferimenti incrociati trami tramite un'etichetta dichiarata tramite l'usuale comando |\label=|\marg{label} dichiarato dopo l'apertura dell'ambiente |esercizio|.
-%I riferimenti incrociati possono essere richiamati tramite l'usuale comando |\ref|\marg{label}, che produce il numero dell'esercizio e |\pageref|\marg{label} che stampa la pagina del riferimento.
-%L'ambiente prevede, inoltre, alcune opzioni espresse nel formato \texttt{key=val}, eventualmente separate da virgola se presenti in contemporanea.\par
-%\vspace{1em}
-%\begin{tabular}{ll}
-%|label|=\meta{label} & definisce il titolo del quesito\\
-%|diff|=\meta{number} & definisce la difficoltà sotto forma di stelle\\
-%|pt|=\meta{number} & definisce il punteggio della prova\\
-%|partialpt| & somma in automatico i punteggi parziali\\
-%\end{tabular}
-%
+% \DescribeEnv{esercizio}\label{sec:esercizio}Gli esercizi od i quesiti del test vengono gestiti dall'ambiente |esercizio|.
% \iffalse
%<*example>
% \fi
@@ -337,7 +322,18 @@
% \iffalse
%</example>
% \fi
-%Nel seguito si mostrano alcuni dei possibili risultati visivi.
+%Senza specificare alcun argomento opzionale, viene stampata la dicitura "Quesito" seguita da un indice numerico crescente ed il testo contenuto nel corpo dell'ambiente.
+%Le modifiche dell'aspetto e del comportamento sono previste tramite delle opzioni espresse nel formato \texttt{key=val}, eventualmente separate da virgola se presenti in contemporanea:\par
+%\begin{center}
+%\begin{tabular}{ll}
+%|label|=\meta{label} & definisce il titolo del quesito\\
+%|diff|=\meta{number} & definisce la difficoltà sotto forma di stelle\\
+%|pt|=\meta{number} & definisce il punteggio della prova\\
+%|partialpt| & somma in automatico i punteggi parziali\\
+%\end{tabular}
+%\end{center}
+%
+%Nel seguito si mostrano alcuni dei possibili risultati visivi.\\
%
% \iffalse
%<*example>
@@ -439,8 +435,12 @@ che voglio somministrare
%</example>
% \fi
%
+%È possibile fare dei riferimenti incrociati usando gli usuali comandi presenti in \LaTeX{}. L'etichetta viene dichiarata tramite l'usuale comando |\label=|\marg{label} introdotto dopo l'apertura dell'ambiente |esercizio|.
+%I riferimenti incrociati possono essere richiamati tramite l'usuale comando |\ref|\marg{label}, che produce il numero dell'esercizio e |\pageref|\marg{label} che stampa la pagina del riferimento.\\
+%
%
%\DescribeMacro{\partialpt}Il comando |\partialpt|, da non confondere con l'opzione omonima |partialpt| dell'ambiente |esercizio|, permette di riportare il punteggio parziale per le domande di un esercizio. Questo viene stampato a margine e racchiuso tra parentesi tonde.\\
+%
% \iffalse
%<*example>
% \fi
@@ -452,9 +452,9 @@ che voglio somministrare
\end{enumerate}
\end{esercizio}}
{\begin{minipage}[t]{.3\linewidth}
-\vspace{-1.3em}
+\vspace{-.4em}
\phantom{1cm/ 4 pt\\[.5em]}
-\vspace{.9em}
+\vspace{.8em}
(1 pt)\\
(3 pt)
\end{minipage}
@@ -486,18 +486,18 @@ che voglio somministrare
\item\partialpt{3} Domanda 2
\end{enumerate}
\end{esercizio}}
-{\begin{minipage}[t]{.4\linewidth}
-\vspace{-1.3em}
-\underline{\phantom{1cm}}/ 4 pt\\[.5em]
+{\begin{minipage}[t]{.39\linewidth}
+\vspace{-.7em}
+\underline{\hspace{.7cm}}/4 pt\\[.9em]
\vspace{.8em}
-(1 pt)\\
-(3 pt)
+\hspace*{\fill}(1 pt)\\
+\hspace*{\fill}(3 pt)
\end{minipage}
\raisebox{.5\baselineskip}{
-\begin{minipage}[t]{.53\linewidth}
+\begin{minipage}[t]{.54\linewidth}
\begin{esercizio}
\begin{enumerate}[leftmargin=*]
-\footnotesize
+\small
\item Domanda 1
\item Domanda 2
\end{enumerate}
@@ -582,7 +582,7 @@ dell'esercizio somministrato
%</example>
% \fi
%
-%\DescribeMacro{\inlinesol}Il pacchetto presenta il comando |\inlinesol| per produrre soluzioni in line, ovvero testo che in modalità "test" viene ignorato, ma che invece viene visualizzato nella modalità "soluzioni" (opzione |solutions| del pacchetto).
+%\DescribeMacro{\inlinesol}Il pacchetto presenta il comando |\inlinesol| per produrre soluzioni in linea, ovvero testo che in modalità "test" viene ignorato, ma che invece viene visualizzato nella modalità "soluzioni" (opzione |solutions| del pacchetto).
% \iffalse
%<*example>
% \fi
@@ -638,7 +638,7 @@ dell'esercizio somministrato
% \iffalse
%</example>
% \fi
-%Il comando produce due riquadri quadrati allineati con le lettere \texttt V e \texttt F; l'argomento obbligatorio richiede di indicare la lettera |V| o |F| al fine di poter realizzare un segno di spunta ($\checkmark$) sulla casella giusta nella modalità |solutions| del pacchetto. Tale simbolo può essere modificato ridefinendo il comando \DescribeMacro{\checkmaker}|\checkmaker|. Il pacchetto ammette degli argomenti opzionali che possono essere tutti quelli descritti nel pacchetto |enumitem|.
+%Il comando produce due riquadri quadrati allineati con le lettere \texttt V e \texttt F; l'argomento obbligatorio richiede di indicare la lettera |V| o |F| al fine di poter realizzare un segno di spunta ($\checkmark$) sulla casella giusta nella modalità |solutions| del pacchetto. Tale simbolo può essere modificato ridefinendo il comando \DescribeMacro{\checkmaker}|\checkmaker|.
% \iffalse
%<*example>
% \fi
@@ -800,7 +800,7 @@ dell'esercizio somministrato
%<*example>
% \fi
\begin{lstlisting}
-\textandimage*@\oarg{left width}\oarg{right width}\marg{rx material}\marg{dx material}@*
+\textandimage*@\oarg{left width}\oarg{right width}\marg{sx material}\marg{dx material}@*
\end{lstlisting}
% \iffalse
%</example>
@@ -851,7 +851,7 @@ dell'esercizio somministrato
%
%
%\section{Personalizzazione}
-%Il pacchetto prevede un certo numero di comandi definiti al fine di gestire l'aspetto del documento finale.
+%Il pacchetto prevede un certo numero di comandi per gestire l'aspetto del documento finale.
%\subsection*{Font}
%Per l'intestazione tutti i font sono definiti secondo lo schema:
%\begin{center}
@@ -859,7 +859,7 @@ dell'esercizio somministrato
%\end{center}
%ed oltre a gestire l'aspetto del carattere, alcuni di questi, specificano la posizione occupata del testo ed eventuali prefissi.
%
-%\DescribeMacro{\headerfont} Il font delle intestazioni quando viene usato lo stile di pagina |verifiche|.
+%\DescribeMacro{\headerfont} Il font delle intestazioni quando viene usato lo stile di pagina |verifiche|, può essere modifica ridefinendo il comando |\headerfont|:
%\iffalse
%<*example>
%\fi
@@ -971,9 +971,12 @@ dell'esercizio somministrato
%</example>
%\fi
%
-%L'ambiente |esercizio| permette di riportare anche il punteggio complessivo e parziale per le sotto-domande. Di default il punteggio totale del quesito viene riportato anteponendo un tratto orizzontale seguito da uno slash, il valore del punteggio ed un'etichetta indicante la sigla \emph{pt}.
+%L'ambiente |esercizio| permette di riportare anche il punteggio complessivo e parziale per le sotto-domande. Di default il punteggio totale del quesito viene riportato anteponendo un tratto orizzontale seguito da uno slash il valore del punteggio ed un'etichetta indicante la sigla \emph{pt}.
% Per quanto riguarda il punteggio parziale, questo viene riportato racchiuso tra parentesi tonde.
-% È possibile modificare l'aspetto di entrambi i punteggio che sono strutturati nel seguente modo: \texttt{prefisso delimitatore punteggio label delimitatore}.
+% L'aspetto complessivo del punteggio, quindi, può essere così schematizzato:
+%\begin{center}
+%\texttt{prefisso delimitatore punteggio label delimitatore}
+%\end{center}
%
%\DescribeMacro{\ptprefix} Il comando |\ptprefix| permette di modificare il \texttt{prefisso} del punteggio. Di default traccia una linea, la cui lunghezza può essere variata modificando la lunghezza |ptrulerlength|, ed uno slash. Se si vuole modificarne l'aspetto è sufficiente evocare il comando.
%\iffalse
@@ -985,43 +988,44 @@ dell'esercizio somministrato
%\iffalse
%</example>
%\fi
-%
%\DescribeMacro{\partialptprefix} Allo stesso modo il comando |\partialptprefix| definisce un \texttt{prefisso} per il punteggio parziale.
%
-%\DescribeMacro{\ptlabel}\DescribeMacro{\partialptlabel} Il punteggio viene riportato indicando anche una \texttt{label}. Questa di default è "pt" sia per il punteggio parziale che per quello totale. È possibile definire un nome alternativo usando il comando |\ptlabel| per il punteggio totale o |\partialptlabel| per quello parziale. I comandi prevedono un argomento obbligatorio che è valido per tutti i punteggi, ma anche uno facoltativo che viene usato quanto il valore del punteggio è pari a 1 e che necessita quindi di un sostantivo singolare al posto di quello plurale (i.e. "punto" al posto di "punti").
+%\DescribeMacro{\ptdelimiters}\DescribeMacro{\partialptdelimiters} I punteggi sono racchiusi tra due \texttt{delimitatori}. Il punteggio totale non presenta alcun simbolo, mentre quello parziale è racchiuso tra parentesi tonde. È possibile definire dei nuovi delimitatori utilizzando i comandi |\partialptdelimiters| e |\ptdelimiters| i quali argomenti contengono due caratteri che fungono da delimitatore dentro e sinistro.
%\iffalse
%<*example>
%\fi
\begin{lstlisting}
-\ptlabel*@\oarg{sing.}\marg{plur.}@*
-\partialptlabel*@\oarg{sing.}\marg{plur.}@*
+\ptdelimiters*@\marg{coppia di caratteri}@*
+\partialptdelimiters*@\marg{coppia di caratteri}@*
\end{lstlisting}
%\iffalse
%</example>
%\fi
-%\DescribeMacro{\diffsymb}L'ambiente esercizi prevede di poter descrivere la difficoltà tramite un simbolo grafico. Di default questo è una stella ($\bigstar$), tuttavia è possibile cambiare il tipo di simbolo ridefinendo il comando |\diffsymb|:
+%
+%\DescribeMacro{\ptlabel}\DescribeMacro{\partialptlabel} Il punteggio viene riportato indicando anche una \texttt{label}. Questa di default è "pt" sia per il punteggio parziale che per quello totale. È possibile definire un nome alternativo usando il comando |\ptlabel| per il punteggio totale o |\partialptlabel| per quello parziale. I comandi prevedono un argomento obbligatorio che è valido per tutti i punteggi, ma anche uno facoltativo che viene usato quanto il valore del punteggio è pari a 1 e che necessita quindi di un sostantivo singolare al posto di quello plurale (i.e. "punto" al posto di "punti").
%\iffalse
%<*example>
%\fi
\begin{lstlisting}
-\renewcommand{\diffsymb}*@\marg{codice del simbolo}@*
+\ptlabel*@\oarg{sing.}\marg{plur.}@*
+\partialptlabel*@\oarg{sing.}\marg{plur.}@*
\end{lstlisting}
%\iffalse
%</example>
%\fi
-%
-%\DescribeMacro{\ptdelimiters}\DescribeMacro{\partialptdelimiters} Infine, i punteggi sono racchiusi tra due delimitatori. Il punteggio totale non presenta alcun simbolo, mentre quello parziale è racchiuso tra parentesi tonde. È possibile definire dei nuovi delimitatori utilizzando i comandi |\partialptdelimiters| e |\ptdelimiters| i quali argomenti contengono due caratteri che fungono da delimitatore dentro e sinistro.
+%\DescribeMacro{\diffsymb}L'ambiente esercizi prevede di poter descrivere la difficoltà tramite un simbolo grafico. Di default questo è una stella ($\bigstar$), tuttavia è possibile cambiare il tipo di simbolo ridefinendo il comando |\diffsymb|:
%\iffalse
%<*example>
%\fi
\begin{lstlisting}
-\ptdelimiters*@\marg{coppia di caratteri}@*
-\partialptdelimiters*@\marg{coppia di caratteri}@*
+\renewcommand{\diffsymb}*@\marg{codice del simbolo}@*
\end{lstlisting}
%\iffalse
%</example>
%\fi
%
+%
+%\subsection*{Ambiente \texttt{closedquestion}}
%\DescribeMacro{\closedquestionitem}Il simbolo delle domande chiuse è controllato dal comando |\closedquestionitem| che di default è un quadrato ($\square$). Per modificare questo simbolo è sufficiente ridefinire il comando:
%\iffalse
%<*example>
@@ -1032,6 +1036,17 @@ dell'esercizio somministrato
%\iffalse
%</example>
%\fi
+%Il segno di spunta che viene stampato nella modalità soluzione, può essere cambiato ridefinendo il comando\DescribeMacro{\checkmaker}|\checkmaker|
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\renewcommand{\checkmaker}*@\marg{...}@*
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+
%
%\subsection*{Ambiente \texttt{soluzione}}
% Per quel che riguarda l'ambiente |soluzione| è possibile cambiare il nome dell'ambente ridefinendo il comando |\solutionlabel|\DescribeMacro{\solutionlabel}.
@@ -1044,7 +1059,7 @@ dell'esercizio somministrato
%\iffalse
%</example>
%\fi
-%
+%\clearpage
%
% \StopEventually{\clearpage\PrintChanges \clearpage\PrintIndex}
% \section{Implementation}
@@ -1146,14 +1161,16 @@ dell'esercizio somministrato
\newlength{\daterulerlength}
\newlength{\ptrulerlength}
\newlength{\columnseparation}
+\newlength{\verifiche@remainingvspace}
+\newlength{\verifiche@remaininghspace}
+\newlength{\verifiche@truefalsesquares}
+\newlength{\spacedim}
\setlength{\candidatenamerulerlength}{.35\textwidth}
\setlength{\classrulerlength}{.1\textwidth}
\setlength{\daterulerlength}{.15\textwidth}
\setlength{\ptrulerlength}{1cm}
-\newlength{\verifiche@remainingvspace}
-\newlength{\verifiche@remaininghspace}
-\newlength{\spacedim}
\setlength{\columnseparation}{\fill}
+\setlength{\verifiche@truefalsesquares}{.7\baselineskip}
% \end{macrocode}
%
%\subsection{Labels}
@@ -1218,7 +1235,7 @@ dell'esercizio somministrato
\newcommand{\testtype}[1]{%
\gdef\@testtype{#1}}
\newcommand{\instruction}[1]{%
- \gdef\@instruction{#1}%
+ \gdef\@instruction{\ignorespaces#1}%
\showinstructiondelimitertrue}
\newcommand{\asyear}[2][\@asyearlabeldefault]{%
\gdef\@asyearpreamble{#1}\gdef\@asyear{#2}}
@@ -1354,7 +1371,11 @@ dell'esercizio somministrato
%\fi
% \begin{macrocode}
\newcommand{\checkmarker}{$\checkmark$}%
-\newcommand{\verifiche@checkmarker}{\bgroup\ifsolutionscolor\color{\solutionscolor}\fi\checkmarker\egroup}%
+\newcommand{\verifiche@checkmarker}{%
+ \bgroup%
+ \ifsolutionscolor\color{\solutionscolor}\fi%
+ \checkmarker%
+ \egroup}%
% \end{macfrocode}
%\iffalse
%% convert ref to num
@@ -1418,10 +1439,10 @@ dell'esercizio somministrato
{\ifcandidatename\@header\par\vspace{\baselineskip}\fi}%
{\ifdefined\@asyear\ifasyear\asyearfont{\@asyearpreamble\space\@asyear}\par\vspace{\baselineskip}\fi\fi}%
{\ifdefined\@testtype\iftesttype\testtypefont{\@testtype}\par\fi\fi}%
- {\ifshowinstructiondelimiter\instructiondelimiter\par\fi}%
- {\ifdefined\@instruction\ifinstruction\instrunctionfont{\@instruction}}\par\fi\fi%
+ {\ifshowinstructiondelimiter\noindent\instructiondelimiter\par\fi}%
+ {\ifdefined\@instruction\ifinstruction\instrunctionfont{\noindent\@instruction}}\par\fi\fi%
{\ifdefined\@duration\ifduration\durationfont\@duration\par\fi\fi}%
- {\ifshowinstructiondelimiter\instructiondelimiter\par\fi}%
+ {\ifshowinstructiondelimiter\noindent\instructiondelimiter\par\fi}%
}
% \end{macrocode}
@@ -1543,7 +1564,7 @@ dell'esercizio somministrato
\hfill\@partialptprefix%
\@lpartialpt@delimiter#1\space\@usepartialptlabel{#1}%
\@rpartialpt@delimiter%
- \addtocounter{partialpoints}{#1}}%
+ \addtocounter{partialpoints}{#1}}\ignorespaces%
\fi}%
% \end{macrocode}
%\end{macro}
@@ -1611,18 +1632,18 @@ dell'esercizio somministrato
% \begin{macrocode}
\newcommand{\truefalse}[1]{%
%True
- \fbox{\@verifiche@Tletter}%
+ \framebox{\parbox[c][\verifiche@truefalsesquares]{\verifiche@truefalsesquares}{\centering\@verifiche@Tletter}}%
\ifsol\llap{%
\if#1\@verifiche@Tletter%
- \Large\verifiche@checkmarker%
+ \Large\verifiche@checkmarker\hspace{-1pt}%
\fi}%
\fi%
\quad%
%False
- \fbox{\@verifiche@Fletter}%
+ \fbox{\parbox[c][\verifiche@truefalsesquares]{\verifiche@truefalsesquares}{\centering\@verifiche@Fletter}}%
\ifsol\llap{%
\if#1\@verifiche@Fletter%
- \Large\verifiche@checkmarker%
+ \Large\verifiche@checkmarker\hspace{-1pt}%
\fi}%
\fi%%
}
diff --git a/macros/latex/contrib/verifiche/verifiche.pdf b/macros/latex/contrib/verifiche/verifiche.pdf
index 47ae4949a2..6d47fdf24b 100644
--- a/macros/latex/contrib/verifiche/verifiche.pdf
+++ b/macros/latex/contrib/verifiche/verifiche.pdf
Binary files differ
diff --git a/macros/luatex/latex/showhyphens/README b/macros/luatex/latex/showhyphens/README
deleted file mode 100644
index cf245e5b75..0000000000
--- a/macros/luatex/latex/showhyphens/README
+++ /dev/null
@@ -1,11 +0,0 @@
-The LaTeX package 'showhyphens' shows all possible hyphenation points in
-the PDF output.
-
-Usage:
-
-\usepackage{showhyphens}
-
-Requirements: The package only works with LuaLaTeX.
-
-Copyright 2011-2016 Patrick Gundlach (patrick@gundla.ch),
-licensed under the MIT license. See the style for details.
diff --git a/macros/luatex/latex/showhyphens/showhyphens-doc.pdf b/macros/luatex/latex/showhyphens/showhyphens-doc.pdf
deleted file mode 100644
index 06a175f325..0000000000
--- a/macros/luatex/latex/showhyphens/showhyphens-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/luatex/latex/showhyphens/showhyphens-doc.tex b/macros/luatex/latex/showhyphens/showhyphens-doc.tex
deleted file mode 100644
index 0ec2875290..0000000000
--- a/macros/luatex/latex/showhyphens/showhyphens-doc.tex
+++ /dev/null
@@ -1,102 +0,0 @@
-\documentclass{ltxdockit}
-\usepackage{dtklogos,csquotes,graphicx}
-
-\newcommand\pkgversion{0.5c}
-
-\titlepage{%
- title={The showhyphens package},
- subtitle={Show all possible hyphenation points},
- url={(none yet)},
- author={Patrick Gundlach},
- email={patrick@gundla.ch},
- revision={\pkgversion},
- date={\today}}
-
-\begin{document}
-\printtitlepage
-\tableofcontents
-
-\section{Documentation}
-
-When you load the package \texttt{showhyphens} in your Lua\LaTeX\ document, \LaTeX\ will show all possible hyphenation points. This
-package requires you to process the document with Lua\LaTeX.
-
-\begin{verbatim}
-\documentclass{article}
-\usepackage{showhyphens}
-
-\begin{document}
-A wonderful serenity has taken
-possession of my entire soul, like these
-sweet mornings of spring which I enjoy
-with my whole heart. I am alone, and
-feel the charm of existence in this
-spot, which was created for the bliss of
-souls like mine. I am so happy, my dear
-friend, so absorbed in the exquisite
-sense of mere tranquil existence, that I
-neglect my talents. I should be
-incapable of drawing a single stroke at
-the present moment; and yet I feel that
-I never was a greater artist than now.
-\end{document}
-\end{verbatim}
-
-yields \vspace{5mm}
-
-\noindent \includegraphics{showhyphens-sample}
-
-\section{Bugs and limitations}
-
-% see http://tex.stackexchange.com/q/268884
-Hyphenation points within ligatures cannot be shown correctly. The package marks the ligature with a horizontal bar on top. The hyphenation point is somewhere within the ligature.
-For example \enquote{office} gives the word \enquote{office} with a horizontal bar on top of \enquote{ffi} but should show of'fice instead.
-While it is possible to look inside
-the ffi ligature and find out where the original hyphen character was placed
-(between the first f and the following component fi), it is very hard to draw
-the line indicating the hyphenation point correctly. The ffi ligature is one
-opaque rectangle to the package. Drawing a line at the correct position is
-pure luck, and therefore out of the scope of the package.
-
-\section{Options}
-
-\begin{optionlist}
-\legitem{blue}{Shows hyphenation marker in blue, instead of red.}
-\end{optionlist}
-
-
-\section{Changes}
-
-\begin{changelog}
-\begin{release}{0.5c}{2016-02-19}
- \item Remove viz-nodelist
-\end{release}
-\begin{release}{0.5b}{2016-02-05}
- \item Fix version number
-\end{release}
-\begin{release}{0.5a}{2016-02-05}
- \item Remove debug message
-\end{release}
-\begin{release}{0.5}{2016-02-05}
- \item Mark ligatures
-\end{release}
-\begin{release}{0.4a}{2015-09-23}
- \item Documentation update.
-\end{release}
-\begin{release}{0.4}{2015-09-22}
- \item Document limitation on ligatures.
-\end{release}
-\begin{release}{0.3}{2014-07-30}
- \item Internal changes (node structure corrected, node ids not hard coded)
-\end{release}
-\begin{release}{0.2}{2012-10-25}
- \item New option \enquote{blue}, thanks go to Herbert Vo\ss.
-\end{release}
-\end{changelog}
-
-\section{Copying}
-
-Copyright 2011-2016 Patrick Gundlach (patrick@gundla.ch), licensed under the MIT license. See the style for details.
-
-
-\end{document}
diff --git a/macros/luatex/latex/showhyphens/showhyphens-sample.pdf b/macros/luatex/latex/showhyphens/showhyphens-sample.pdf
deleted file mode 100644
index 1a961538ab..0000000000
--- a/macros/luatex/latex/showhyphens/showhyphens-sample.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/luatex/latex/showhyphens/showhyphens.sty b/macros/luatex/latex/showhyphens/showhyphens.sty
deleted file mode 100644
index 38d1d2603a..0000000000
--- a/macros/luatex/latex/showhyphens/showhyphens.sty
+++ /dev/null
@@ -1,68 +0,0 @@
-\ProvidesPackage{showhyphens}[2016/02/19 v0.5c Show hyphenation points (PGU)]
-\RequirePackage{ifluatex,luatexbase}
-% License: MIT style license
-
-% Copyright (c) 2011-2016 Patrick Gundlach patrick@gundla.ch
-
-% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
-% "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge,
-% publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
-% so, subject to the following conditions:
-%
-% The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-%
-% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-% FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-% WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-\def\lua@SHcolor{1 0 0}% red
-\DeclareOption{blue}{\def\lua@SHcolor{0 0 1 }}% must be a rgb color
-\ProcessOptions
-
-\ifluatex
-\directlua{
-local show_hyph
-local hlist_node = node.id("hlist")
-local vlist_node = node.id("vlist")
-local disc_node = node.id("disc")
-local glyph_node = node.id("glyph")
-
-local function round(num)
- return math.floor(num * 10^3 + 0.5) / 10^3
-end
-
-show_hyph = function(head)
- while head do
- if head.id == hlist_node or head.id == vlist_node then
- show_hyph(head.list)
- elseif head.id == disc_node then
- if head.replace and head.replace.id == glyph_node and head.replace.components then
- local wd = round(head.replace.width / 65781) or 0
- local ht = round(head.replace.height / 65781) + 0.5 or 0
- local r = node.new("whatsit","pdf_literal")
- r.data = "q 0.3 w 0 " .. tostring(ht) .. " m " .. tostring(-wd) .. " " .. tostring(ht) .. " l S Q"
- node.insert_after(head.replace,head.replace,r)
- else
- local n = node.new("whatsit","pdf_literal")
- n.mode = 0
- n.data = "q \lua@SHcolor RG 0.3 w 0 2 m 0 7 l S Q"
- n.next = head.next
- head.next.prev = n
- n.prev = head
- head.next = n
- head = n
- end
- end
- head = head.next
- end
- return true
-end
-
-
-luatexbase.add_to_callback("post_linebreak_filter",show_hyph,"show_hyph")
-}
-\else
-\errhelp{Please use LuaLaTeX when you require the package 'showhyphens'}
-\errmessage{Package showhyphens error: This works only with LuaLaTeX!}
-\fi
diff --git a/macros/xetex/latex/xduts/README.md b/macros/xetex/latex/xduts/README.md
index b8b0b431bd..f0120632c3 100644
--- a/macros/xetex/latex/xduts/README.md
+++ b/macros/xetex/latex/xduts/README.md
@@ -6,14 +6,14 @@ XDUTS (Xidian University TeX Suite) is a LaTeX3 document class and package suite
XDUTS currently includes:
-- `xduugthesis.cls`, Xidian University Undergraduate Thesis document class
- `xdufont.sty`, Xidian University Font package
+- `xdupgthesis.cls`, Xidian University Postgraduate Thesis document class
+- `xduugthesis.cls`, Xidian University Undergraduate Thesis document class
In the future, we plan to add the following document classes, including
- `xduugtp.cls`, Xidian University Undergraduate Thesis Proposal document class
- `xdupgtp.cls`, Xidian University Postgraduate Thesis Proposal document class
-- `xdupgthesis.cls`, Xidian University Postgraduate Thesis document class
## Installation
@@ -52,15 +52,16 @@ texdoc xduts
### GitHub
-Generally speaking, CTAN updates XDUTS slowly. If you want to use the latest version of XDUTS, download this repository and run the following commands to get the corresponding documentation and document class/package files.
+Generally speaking, CTAN updates XDUTS slowly. If you want to use the latest version of XDUTS, download this repository and run the following command to get the document class/package files.
```shell
xetex xduts.ins
-xelatex xduts.dtx
-makeindex -s gind.ist -o xduts.ind xduts.idx
-makeindex -s gglo.ist -o xduts.gls xduts.glo
-xelatex xduts.dtx
-xelatex xduts.dtx
+```
+
+Run command below to get the documentation.
+
+```shell
+l3build ctan
```
## Note
diff --git a/macros/xetex/latex/xduts/xduts.dtx b/macros/xetex/latex/xduts/xduts.dtx
index 967e6c1c4a..cb82f93235 100644
--- a/macros/xetex/latex/xduts/xduts.dtx
+++ b/macros/xetex/latex/xduts/xduts.dtx
@@ -1,14 +1,14 @@
% \iffalse
%<*driver>
\ProvidesFile{xduts.dtx}
-[2022/05/15 v1.15.0.1 Xidian University TeX Suite]
+[2022/06/21 v2.0.0.0 Xidian University TeX Suite]
%</driver>
%<class|sty>\NeedsTeXFormat{LaTeX2e}
%<class|sty>\RequirePackage{expl3}
%<xdufont>\ProvidesExplPackage{xdufont}
%<xdupgthesis>\ProvidesExplClass{xdupgthesis}
%<xduugthesis>\ProvidesExplClass{xduugthesis}
-%<class|sty> {2022/05/15}{1.15.0.1}
+%<class|sty> {2022/06/21}{2.0.0.0}
%<xdufont> {Xidian University Font package}
%<xdupgthesis> {Xidian University Postgraduate Thesis document class}
%<xduugthesis> {Xidian University Undergraduate Thesis document class}
@@ -55,10 +55,10 @@
\newcommand{\secrefx}[1]{第\xspace\ref{#1}\xspace 节}
\newcommand{\tabrefx}[1]{\tablename\xspace\ref{#1}\xspace}
% 文档类选项
-\newcommand{\optx}[1]{\xspace\opt{#1}\xspace}
-% /name LaTeX3控制序列
+\newcommand{\optx}[1]{\xspace{\ttfamily\seqsplit{#1}}\xspace}
+% \name LaTeX3控制序列
\newcommand{\csx}[1]{\xspace\cs{#1}\xspace}
-% /name 传统LaTeX2e命令
+% \name 传统LaTeX2e命令
\newcommand{\tnx}[1]{\xspace\tn{#1}\xspace}
% <name> LaTeX3键值
\newcommand{\metax}[1]{\xspace\meta{#1}\xspace}
@@ -79,9 +79,9 @@
% 文档类
\newcommand{\clsx}[1]{\xspace\cls{#1}\xspace}
% 值
-\newcommand{\valuex}[1]{\xspace\texttt{#1}\xspace}
+\newcommand{\valuex}[1]{\xspace{\ttfamily\seqsplit{#1}}\xspace}
% 命令
-\newcommand{\cmdx}[1]{\xspace\texttt{#1}\xspace}
+\newcommand{\cmdx}[1]{\xspace{\ttfamily\seqsplit{#1}}\xspace}
% 链接
\newcommand{\footurl}[1]{\footnote{\url{#1}}}
\newcommand{\ctanurl}[1]{\href{https://mirrors.ustc.edu.cn/CTAN/#1}{\ttfamily CTAN://#1}}
@@ -155,7 +155,7 @@
\end{document}
%</driver>
% \fi
-% \CheckSum{1315}
+% \CheckSum{2773}
% \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
@@ -197,7 +197,10 @@
% \end{enumerate}
% \end{abstract}
% \clearpage
-% \tableofcontents
+% \section*{\contentsname\markright{目录}}
+% \makeatletter
+% \@starttoc{toc}
+% \makeatother
% \clearpage
% \section{介绍}
% \xduts{} (Xidian University \TeX{} Suite)
@@ -205,11 +208,8 @@
% 而编写的\LaTeXiii{}文档类和宏包套装,目前有:
% \begin{itemize}
% \item \pkgx{xdufont},中/英/数学字体配置宏包。
-% \item \clsx{xduugthesis},本科毕业设计论文。
-% \end{itemize}
-% 正在开发:
-% \begin{itemize}
% \item \clsx{xdupgthesis},研究生学位论文。
+% \item \clsx{xduugthesis},本科毕业设计论文。
% \end{itemize}
% 即将支持:
% \begin{itemize}
@@ -242,7 +242,9 @@
% 请在最新版\LaTeX{}环境中使用最新版\xduts{},
% 认真阅读相应文档类/宏包使用说明章节即可使用\xduts{}。
% \subsection{xdufont}
-% \pkgx{xdufont}宏包基于\pkgx{xeCJK},相较于\pkgx{ctex}宏包的主要优势为默认支持宋体粗体、斜体,内置多种字体配置,可任意搭配中/英/数学字体,更加符合校内各种文档的撰写要求。
+% \pkgx{xdufont}宏包基于\pkgx{xeCJK}和\pkgx{unicode-math},
+% 在中文字体配置方面相较于\pkgx{ctex}宏包的主要优势为默认支持宋体粗体、斜体,
+% 内置多种字体配置,可任意搭配中/英/数学字体,更加符合校内各种文档的撰写要求。
% \par
% \secrefx{编译}介绍了如何编译,\secrefx{参数设置}介绍了如何自定义配置,具体的配置选项见\secrefx{字体选项}。\pkgx{xdufont}可以搭配任意文档类进行使用,例如:
% \begin{latexexample}[moretexcs={\xdusetup},emph={[1]document}]
@@ -257,7 +259,47 @@
% \par
% 学会以上用法后即可使用\pkgx{xdufont}宏包。
% \changes{v1.4.0.0}{2022/04/26}{新增研究生学位论文}
+% \changes{v1.30.0.2}{2022/06/20}{研究生学位论文文档}
% \subsection{xdupgthesis}
+% \pkgx{xdupgthesis}基于\clsx{ctexbook}文档类,
+% 提供多种字体配置,部分样式可自定义,信息录入便捷。
+% 请在阅读《西安电子科技大学研究生学位论文模板(2015年修订版)-2019.03修订》后再使用\pkgx{xdupgthesis}。
+% 专业学位硕士请额外阅读《西安电子科技大学专业学位硕士学位论文封面及中英文题名页模板(2015年版)-2019.03修订》,
+% 撰写英文学位论文请额外阅读《西安电子科技大学英文学位论文撰写相关规定》。
+% \par
+% 典型的\clsx{xdupgthesis}主文件结构如下所示:
+% \begin{latexexample}[moretexcs={\xdusetup,\frontmatter,\mainmatter,\chapter,\backmatter},emph={[1]document}]
+% \documentclass{xdupgthesis}
+% \xdusetup{}
+% \begin{document}
+% \frontmatter
+% \mainmatter
+% \chapter{欢迎}
+% 使用\LaTeX{}!
+% \backmatter
+% \end{document}
+% \end{latexexample}
+% \par
+% \secrefx{编译}介绍了如何编译,
+% \secrefx{参考文献引用}介绍了如何引用参考文献,
+% \secrefx{参数设置}介绍了如何自定义配置。
+% 其中,字体选项见\secrefx{字体选项},
+% 部分英文字体切换见\secrefx{英文字体},
+% 语言配置见\secrefx{语言配置},
+% 参考文献配置见\secrefx{参考文献配置},
+% 页面配置见\secrefx{页面配置},
+% 交叉引用配置见\secrefx{交叉引用配置},
+% Caption配置见\secrefx{Caption配置},
+% 表格配置见\secrefx{表格配置},
+% 算法配置见\secrefx{算法配置},
+% 章节配置见\secrefx{章节配置},
+% 对照表配置见\secrefx{对照表配置},
+% 作者简介配置见\secrefx{作者简介配置}。
+% 如需附录,请使用附录环境,具体见\secrefx{附录环境}。
+% 支持的信息录入选项见\secrefx{信息录入}。
+% \par
+% 学会以上用法后即可使用\clsx{xdupgthesis}文档类。
+% 另外,在\secrefx{额外命令}中提供了部分额外命令来增强排版。
% \subsection{xduugthesis}
% \pkgx{xduugthesis}基于\clsx{ctexbook}文档类,
% 提供多种字体配置,部分样式可自定义,信息录入便捷。
@@ -278,6 +320,7 @@
% \end{document}
% \end{latexexample}
% \par
+% \changes{v1.30.0.1}{2022/06/20}{移除info录入示例}
% \secrefx{编译}介绍了如何编译,
% \secrefx{参考文献引用}介绍了如何引用参考文献,
% \secrefx{参数设置}介绍了如何自定义配置。
@@ -291,28 +334,7 @@
% 算法配置见\secrefx{算法配置},
% 章节配置见\secrefx{章节配置}。
% 如需附录,请使用附录环境,具体见\secrefx{附录环境}。
-% 仅支持如下信息录入,具体每个选项的含义见\secrefx{信息录入},如没有部分选项,则删除该行即可。
-% \begin{latexexample}[moretexcs={\xdusetup},emph={[2]info}]
-% \xdusetup {
-% info = {
-% title = {第一行标题\\第二行标题},
-% department = {电子工程学院},
-% major = {电子信息工程},
-% author = {张三},
-% supervisor = {李四},
-% supervisor-department = {王五},
-% supervisor-enterprise = {赵六},
-% supervisor-school = {刘七},
-% class-id = {123456},
-% student-id = {12345678910},
-% abstract = {abstract-zh.tex},
-% abstract* = {abstract-en.tex},
-% keywords = {我,就是,充数的,关键词},
-% keywords* = {Dummy,Keywords,Here,it is},
-% acknowledgements = {acknowledgements.tex}
-% }
-% }
-% \end{latexexample}
+% 支持的信息录入选项见\secrefx{信息录入}。
% \par
% 学会以上用法后即可使用\clsx{xduugthesis}文档类。
% 另外,在\secrefx{额外命令}中提供了部分额外命令来增强排版。
@@ -354,6 +376,7 @@
% \subsection{参数设置}
% \label{参数设置}
% \changes{v0.5.1.1}{2022/04/06}{增加xdusetup配置文档}
+% \changes{v1.30.0.1}{2022/06/20}{修改xdusetup配置文档}
% \begin{function}[added=2022-03-07]{\xdusetup}
% \begin{syntax}
% \tnx{xdusetup}=\argx{键值列表}
@@ -369,27 +392,31 @@
% 但需注意,参数列表中不可以出现空行。
% 一些选项包含子选项,如\optx{style}和\optx{info}等,
% 它们可以按如下两种等价方式来设定:
-% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,cjk-font,latin-font,info,title,author,department}]
+% \end{function}
+% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,cjk-font,latin-font,info,title,author,department,abstract,keywords*}]
% \xdusetup{
-% style = { cjk-font = adobe, latin-font = tacn },
+% style = { cjk-font = fandol, latin-font = gyre },
% info = {
-% title = {论如何让用户认真阅读文档},
+% title = {论如何让用户\\认真阅读文档},
% author = {张三},
-% department = {排版学院}
+% department = {排版学院},
+% abstract = {chapters/abstract-zh.tex},
+% keywords* = {Dummy,Keywords,Here,it is}
% }
% }
% \end{latexexample}
% 或者
-% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,cjk-font,latin-font,info,title,author,department}]
+% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,cjk-font,latin-font,info,title,author,department,abstract,keywords*}]
% \xdusetup{
-% style / cjk-font = adobe,
-% style / latin-font = tacn,
-% info / title = {论如何让用户认真阅读文档},
+% style / cjk-font = fandol,
+% style / latin-font = gyre,
+% info / title = {论如何让用户\\认真阅读文档},
% info / author = {张三},
-% info / department = {排版学院}
+% info / department = {排版学院},
+% info / abstract = {chapters/abstract-zh.tex},
+% info / keywords* = {Dummy,Keywords,Here,it is}
% }
% \end{latexexample}
-% \end{function}
% \subsection{字体选项}
% \label{字体选项}
% \begin{function}[added=2022-03-06]{style/cjk-font}
@@ -562,7 +589,7 @@
% \end{function}
% \begin{optdesc}
% \item[zh] 中文。
-% \item[en] 英文。
+% \item[en] 英文。注意,研究生学位论文一二三级标题命令请参考\secrefx{英文研究生学位论文双语标题}。
% \end{optdesc}
% \subsection{参考文献配置}
% \label{参考文献配置}
@@ -576,11 +603,21 @@
% \item[bibtex] 使用\bibtex{}处理文献,样式由\pkgx{natbib}宏包负责。
% \item[biblatex] 使用\biber{}处理文献,样式由\pkgx{biblatex}宏包负责。
% \end{optdesc}
-% \begin{function}[added=2022-04-02]{style/bib-resource}
+% \changes{v1.31.0.0}{2022/06/21}{修改\pkgx{biblatex}默认选项}
+% \begin{function}[added=2022-06-21]{style/biblatex-option}
% \begin{syntax}
-% \optx{style/bib-resource}=\argx{参考文献文件路径}
+% \optx{style/biblatex-option}=\argx{biblatex宏包选项}
% \end{syntax}
-% 设置参考文献\filex{.bib}文件,多个文件之间需要使用英文半角逗号隔开。
+% 修改\pkgx{biblatex}默认选项,具体配置参考\filex{biblatex-gb7714-2015.pdf},
+% 仅在\optx{style/bib-backend}等于|biblatex|时有效。例如:
+% \begin{latexexample}[morekeywords={\xdusetup},emph={[1]style,biblatex-option}]
+% \xdusetup{
+% style / biblatex-option = { gbnamefmt=quanpin }
+% }
+% \end{latexexample}
+% \end{function}
+% \begin{function}[added=2022-04-02]{style/bib-resource}
+% 已弃用,请使用\secrefx{信息录入}中的\optx{info/bib-resource}。
% \end{function}
% \subsection{页面配置}
% \label{页面配置}
@@ -709,22 +746,147 @@
% \item[7] 七号
% \item[8] 八号
% \end{optdesc}
+% \subsection{对照表配置}
+% \label{对照表配置}
+% \begin{function}[added=2022-06-05]{style/customize-los,style/customize-loa}
+% \begin{syntax}
+% \optx{style/customize-los}=\metax{(true)|false}
+% \optx{style/customize-loa}=\metax{(true)|false}
+% \end{syntax}
+% 是否完全自定义符号对照表和缩略语对照表。
+% \end{function}
+% \begin{optdesc}
+% \item[true] 完全自定义符号对照表和缩略语对照表,对照表由用户自行排版。
+% 在\secrefx{信息录入}中提及的\optx{info/los}和\optx{info/loa}中对应的文件中可以通过表格或列表等方式实现对照表,例如:
+% \begin{latexexample}[emph={[1]tabular}]
+% \begin{tabular}{ll}
+% 符号 & 符号名称 \\
+% $\pi$ & 圆周率 \\
+% $\mathbb{R}$ & 实数 \\
+% \end{tabular}
+% \end{latexexample}
+% \item[false] 使用内置的基于\envx{longtblr}环境(\pkgx{tabularray}宏包)实现的
+% 符号对照表和缩略语对照表样式。
+% 在\secrefx{信息录入}中提及的\optx{info/los}和\optx{info/loa}中对应的文件仅需填写相应列数的内容即可,例如:
+% \begin{latexexample}
+% $\pi$ & 圆周率 \\
+% $\mathbb{R}$ & 实数 \\
+% \end{latexexample}
+% \end{optdesc}
+% \begin{function}[added=2022-06-05]{style/colspec-los,style/colspec-loa}
+% \begin{syntax}
+% \optx{style/colspec-los}=\argx{符号对照表列格式}
+% \optx{style/colspec-loa}=\argx{缩略语对照表列格式}
+% \end{syntax}
+% 设置符号对照表和缩略语对照表列格式,
+% 符号对照表列格式默认值为\valuex{Q[l,m]X[l,m]}。
+% 缩略语对照表列格式默认值为\valuex{Q[l,m]X[l,m]X[l,m]}。
+% 语法参考\pkgx{tabularray}宏包\cmdx{colspec}选项。
+% 仅在\optx{style/customize-los}和\optx{style/customize-loa}等于\valuex{false}时有效。
+% \end{function}
+% \begin{function}[added=2022-06-05]{style/title-row-los,style/title-row-loa}
+% \begin{syntax}
+% \optx{style/title-row-los}=\metax{true|(false)}
+% \optx{style/title-row-loa}=\metax{true|(false)}
+% \end{syntax}
+% 是否每页均显示符号对照表和缩略语对照表标题行。
+% 仅在\optx{style/customize-los}和\optx{style/customize-loa}等于\valuex{false}时有效。
+% \end{function}
+% \begin{optdesc}
+% \item[true] 每页均显示符号对照表和缩略语对照表标题行。
+% \item[false] 仅第一页显示显示符号对照表和缩略语对照表标题行。
+% \end{optdesc}
+% \changes{v1.26.0.0}{2022/06/07}{作者简介配置}
+% \subsection{作者简介配置}
+% \label{作者简介配置}
+% \changes{v1.28.4.1}{2022/06/19}{修正作者简介示例}
+% \begin{function}[added=2022-06-07]{style/customize-edubg,style/customize-resresult}
+% \begin{syntax}
+% \optx{style/customize-edubg}=\metax{(true)|false}
+% \optx{style/customize-resresult}=\metax{(true)|false}
+% \end{syntax}
+% 是否完全自定义作者简介中教育背景和攻读硕士学位期间的研究成果。
+% \end{function}
+% \begin{optdesc}
+% \item[true] 完全自定义作者简介中教育背景和攻读硕士学位期间的研究成果,由用户自行排版。
+% 在\secrefx{信息录入}中提及的\optx{info/bio}中对应的文件中
+% 可以通过段落、表格或列表等方式排版教育背景和攻读硕士学位期间的研究成果,例如:
+% \begin{latexexample}[moretexcs={\subsection}]
+% \section{基本情况}
+% 张三,男,陕西西安人,1982年8月出生,西安电子科技大学XX学院XX专业2008级硕士研究生。
+% \section{教育背景}
+% 2001.08~2005.07 西安电子科技大学,本科,专业:电子信息工程
+% \par
+% 2008.08~ 西安电子科技大学,硕士研究生,专业:电磁场与微波技术
+% \section{攻读硕士学位期间的研究成果}
+% \subsection{发表学术论文}
+% [1] XXX, XXX, XXX. Rapid development technique for drip irrigation emitters[J]. RP Journal,UK.,2003,9(2): 104-110.(SCI: 672CZ, EI: 03187452127)
+% \par
+% [2] XXX, XXX, XXX. 基于快速成型制造的滴管快速制造技术研究[J]. 西安交通大学学报, 2001, 15(9): 935-939. (EI: 02226959521)
+% \subsection{申请(授权)专利}
+% [1] XXX, XXX, XXX等. 专利名称: 国别,专利号[P]. 出版日期.
+% \subsection{参与科研项目及获奖}
+% [1] XXX项目, 项目名称, 起止时间, 完成情况, 作者贡献。
+% \par
+% [2] XXX, XXX, XXX等. 科研项目名称. 陕西省科技进步三等奖, 获奖日期.
+% \end{latexexample}
+% \item[false] 使用内置的基于\envx{tblr}环境(\pkgx{tabularray}宏包)实现的
+% 教育背景表格环境\envx{edubg}和基于\envx{enumerate}环境(\pkgx{enumitem}宏包)实现的
+% 攻读硕士学位期间的研究成果列表环境\envx{resresult}。
+% 在\secrefx{信息录入}中提及的\optx{info/bio}中对应的文件中使用\envx{edubg}和\envx{resresult}环境即可,例如:
+% \begin{latexexample}[moretexcs={\subsection},emph={[1]edubg,resresult}]
+% \section{基本情况}
+% 张三,男,陕西西安人,1982年8月出生,西安电子科技大学XX学院XX专业2008级硕士研究生。
+% \section{教育背景}
+% \begin{edubg}
+% 2001.08~2005.07 & 西安电子科技大学,本科,专业:电子信息工程\\
+% 2008.08~ & 西安电子科技大学,硕士研究生,专业:电磁场与微波技术\\
+% \end{edubg}
+% \section{攻读硕士学位期间的研究成果}
+% \subsection{发表学术论文}
+% \begin{resresult}
+% \item XXX, XXX, XXX. Rapid development technique for drip irrigation emitters[J]. RP Journal,UK.,2003,9(2): 104-110.(SCI: 672CZ, EI: 03187452127)
+% \item XXX, XXX, XXX. 基于快速成型制造的滴管快速制造技术研究[J]. 西安交通大学学报, 2001, 15(9): 935-939. (EI: 02226959521)
+% \end{resresult}
+% \subsection{申请(授权)专利}
+% \begin{resresult}
+% \item XXX, XXX, XXX等. 专利名称: 国别,专利号[P]. 出版日期.
+% \end{resresult}
+% \subsection{参与科研项目及获奖}
+% \begin{resresult}
+% \item XXX项目, 项目名称, 起止时间, 完成情况, 作者贡献。
+% \item XXX, XXX, XXX等. 科研项目名称. 陕西省科技进步三等奖, 获奖日期.
+% \end{resresult}
+% \end{latexexample}
+% \end{optdesc}
% \subsection{附录环境}
% \label{附录环境}
-% \begin{function}[added=2022-04-04]{appendixes}
-% 附录位于参考文献后,即在\tnx{backmatter}后。
-% \begin{latexexample}[emph={[1]appendixes}]
+% \changes{v1.29.0.0}{2022/06/19}{研究生学位论文附录环境}
+% \begin{function}[added=2022-04-04,updated=2022-06-19]{appendixes}
+% 本科生毕业设计附录位于参考文献后,即在\tnx{backmatter}后。
+% \begin{latexexample}[moretexcs={\backmatter,\chapter},emph={[1]appendixes}]
+% \chapter{这是正文章节}
+% \backmatter
+% \begin{appendixes}
+% \chapter{这是一个附录}
+% \chapter{这是另一个附录}
+% \end{appendixes}
+% \end{latexexample}
+% 研究生学位论文附录位于参考文献前,即在\tnx{backmatter}前。
+% \begin{latexexample}[moretexcs={\backmatter,\chapter},emph={[1]appendixes}]
+% \chapter{这是正文章节}
% \begin{appendixes}
% \chapter{这是一个附录}
% \chapter{这是另一个附录}
% \end{appendixes}
+% \backmatter
% \end{latexexample}
% \end{function}
% \subsection{信息录入}
% \label{信息录入}
% \changes{v1.9.0.0}{2022/05/03}{增加信息录入选项分类表}
% \changes{v1.10.3.1}{2022/05/04}{移除专业博士校外导师信息录入}
-% 用户根据\tabrefx{tblr:info}选择相应的选项进行信息录入。
+% 用户根据\tabrefx{tblr:info}选择相应的选项并使用\secrefx{参数设置}中的方式进行信息录入。
% \begin{tblr}
% [
% long,
@@ -776,12 +938,17 @@
% student-id & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
% clc & & & \cmark & \cmark & \cmark & \cmark \\
% secret-level & & & \cmark & \cmark & \cmark & \cmark \\
+% secret-year & & & \cmark & \cmark & \cmark & \cmark \\
% submit-date & & & \cmark & \cmark & \cmark & \cmark \\
% abstract & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
% abstract* & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
% keywords & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
% keywords* & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
+% los & & & \cmark & \cmark & \cmark & \cmark \\
+% loa & & & \cmark & \cmark & \cmark & \cmark \\
+% bib-resource & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
% acknowledgements & \cmark & \cmark & \cmark & \cmark & \cmark & \cmark \\
+% bio & & & \cmark & \cmark & \cmark & \cmark \\
% \end{tblr}
% \changes{v1.9.0.0}{2022/05/03}{增加研究生信息录入选项文档}
% \begin{function}[added=2022-05-02,updated=2022-05-03]{info/graduate-type}
@@ -811,12 +978,13 @@
% \end{syntax}
% 设置研究生学位类别。
% \end{function}
-% \begin{function}[added=2022-04-01,updated=2022-05-03]{info/title,info/title*}
+% \begin{function}[added=2022-04-01,updated=2022-05-30]{info/title,info/title*}
% \begin{syntax}
% \optx{info/title}=\argx{论文中文标题}
% \optx{info/title*}=\argx{论文英文标题}
% \end{syntax}
-% 设置论文标题。如果需要手动制定换行位点,请使用换行控制符(|\\|),最多两行。
+% 设置论文标题。建议使用换行控制符(|\\|)手动制定换行位点,
+% 本科毕业设计论文最多两行,研究生学位论文无限制。
% \end{function}
% \begin{function}[added=2022-04-01]{info/department}
% \begin{syntax}
@@ -914,11 +1082,18 @@
% \end{syntax}
% 设置密级。
% \end{function}
-% \begin{function}[added=2022-05-03]{info/submit-date}
+% \begin{function}[added=2022-05-30]{info/secret-year}
+% \begin{syntax}
+% \optx{info/secret-year}=\argx{保密年限}
+% \end{syntax}
+% 设置保密年限,仅在\optx{secret-level}等于|秘密|时有效。
+% \end{function}
+% \changes{v1.17.0.1}{2022/05/29}{研究生学位论文提交日期格式}
+% \begin{function}[added=2022-05-03,updated=2022-05-29]{info/submit-date}
% \begin{syntax}
-% \optx{info/submit-date}=\argx{提交日期}
+% \optx{info/submit-date}=\argx{yyyy-mm}
% \end{syntax}
-% 设置提交日期。
+% 设置提交日期,如果留空,则自动使用编译当天年份和月份。
% \end{function}
% \begin{function}[added=2022-04-02]{info/abstract,info/abstract*}
% \begin{syntax}
@@ -934,14 +1109,306 @@
% \end{syntax}
% 设置关键词,关键词之间需要使用英文半角逗号隔开。
% \end{function}
+% \changes{v1.22.0.0}{2022/06/05}{符号对照表文件路径}
+% \begin{function}[added=2022-06-05]{info/los}
+% \begin{syntax}
+% \optx{info/los}=\argx{符号对照表文件路径}
+% \end{syntax}
+% 设置符号对照表文件路径。
+% \end{function}
+% \changes{v1.22.0.0}{2022/06/05}{缩略语对照表文件路径}
+% \begin{function}[added=2022-06-05]{info/loa}
+% \begin{syntax}
+% \optx{info/loa}=\argx{缩略语对照表文件路径}
+% \end{syntax}
+% 设置缩略语对照表文件路径。
+% \end{function}
+% \changes{v2.0.0.0}{2022/06/21}{修改参考文献文件路径选项名称}
+% \begin{function}[added=2022-06-21]{info/bib-resource}
+% \begin{syntax}
+% \optx{info/bib-resource}=\argx{参考文献文件路径}
+% \end{syntax}
+% 设置参考文献\filex{.bib}文件路径,多个文件之间需要使用英文半角逗号隔开。
+% \end{function}
% \begin{function}[added=2022-04-02]{info/acknowledgements}
% \begin{syntax}
% \optx{info/acknowledgements}=\argx{致谢文件路径}
% \end{syntax}
% 设置致谢文件路径,相应文件内仅撰写致谢内容,无需任何环境。
% \end{function}
+% \begin{function}[added=2022-06-07]{info/bio}
+% \begin{syntax}
+% \optx{info/bio}=\argx{作者简介路径}
+% \end{syntax}
+% 设置作者简介文件路径,文件内容可参考\secrefx{作者简介配置}中的示例。
+% \end{function}
+% \changes{v1.26.11.2}{2022/06/18}{研究生信息推荐值}
+% \subsubsection{研究生信息推荐值}
+% \label{研究生信息推荐值}
+% 以下研究生信息推荐值均来自
+% 《西安电子科技大学研究生学位论文模板(2015年修订版)-2019.03修订》
+% 和《西安电子科技大学专业学位硕士学位论文封面及中英文题名页模板(2015年版)-2019.03修订》,
+% 无任何修改,仅供参考。
+% \setlength\parindent{0pt}
+% \begin{itemize}
+% \item \optx{degree} (非专业硕士)
+% \begin{itemize}
+% \item 工学硕士
+% \item 工学博士
+% \item 哲学硕士
+% \item 经济学硕士
+% \item 法学硕士
+% \item 教育学硕士
+% \item 文学硕士
+% \item 理学硕士
+% \item 理学博士
+% \item 军事学硕士
+% \item 军事学博士
+% \item 管理学硕士
+% \item 管理学博士
+% \end{itemize}
+% \item \optx{degree} (专业硕士)
+% \begin{itemize}
+% \item 金融硕士
+% \item 应用统计硕士
+% \item 翻译硕士
+% \item 工程硕士
+% \item 工商管理硕士
+% \item 公共管理硕士
+% \end{itemize}
+% \item \optx{degree*}
+% \begin{itemize}
+% \item Finance
+% \item Applied Statistics
+% \item Translation
+% \item Engineering
+% \item Business Administration
+% \item Public Administration
+% \end{itemize}
+% \item \optx{department}
+% \begin{itemize}
+% \item 通信工程学院
+% \item 电子工程学院
+% \item 计算机科学与技术学院
+% \item 机电工程学院
+% \item 物理与光电工程学院
+% \item 经济与管理学院
+% \item 数学与统计学院
+% \item 微电子学院
+% \item 外国语学院
+% \item 生命科学技术学院
+% \item 空间科学与技术学院
+% \item 先进材料与纳米科技学院
+% \item 网络与信息安全学院
+% \item 人文学院
+% \item 马克思主义学院
+% \item 人工智能学院
+% \end{itemize}
+% \item \optx{major}
+% \begin{itemize}
+% \item 哲学
+% \item 应用经济学
+% \item 马克思主义理论
+% \item 教育学
+% \item 体育学
+% \item 外国语言文学
+% \item 数学
+% \item 物理学
+% \item 统计学
+% \item 力学
+% \item 机械工程
+% \item 光学工程
+% \item 仪器科学与技术
+% \item 材料科学与工程
+% \item 电气工程
+% \item 电子科学与技术
+% \item 信息与通信工程
+% \item 控制科学与工程
+% \item 计算机科学与技术
+% \item 化学工程与技术
+% \item 交通运输工程
+% \item 环境科学与工程
+% \item 生物医学工程
+% \item 软件工程
+% \item 军队指挥学
+% \item 管理科学与工程
+% \item 工商管理
+% \item 公共管理
+% \item 图书情报与档案管理
+% \item 网络空间安全
+% \end{itemize}
+% \item \optx{major*}
+% \begin{itemize}
+% \item Philosophy
+% \item Applied Economics
+% \item Marxist Theory
+% \item Education Science
+% \item Science of Physical Culture and Sports
+% \item Foreign Languages and Literature
+% \item Mathematics
+% \item Physics
+% \item Statistics
+% \item Mechanics
+% \item Mechanical Engineering
+% \item Optical Engineering
+% \item Instrument Science and Technology
+% \item Materials Science and Engineering
+% \item Electrical Engineering
+% \item Electronics Science and Technology
+% \item Information and Communications Engineering
+% \item Control Science and Engineering
+% \item Computer Science and Technology
+% \item Chemical Engineering and Technology
+% \item Communication and Transportation Engineering
+% \item Environmental Science and Engineering
+% \item Biomedical Engineering
+% \item Software Engineering
+% \item Science of Command
+% \item Management Science and Engineering
+% \item Business Administration
+% \item Public Management
+% \item Science of Library, Information and Archival
+% \item Cyber Security
+% \end{itemize}
+% \item \optx{sub-major}
+% \begin{itemize}
+% \item 美学
+% \item 宗教学
+% \item 国民经济学
+% \item 金融学
+% \item 产业经济学
+% \item 马克思主义基本原理
+% \item 思想政治教育
+% \item 高等教育学
+% \item 教育技术学
+% \item 教育哲学
+% \item 体育教育训练学
+% \item 英语语言文学
+% \item 外国语言学及应用语言学
+% \item 计算数学
+% \item 概率论与数理统计
+% \item 应用数学
+% \item 运筹学与控制论
+% \item 等离子体物理
+% \item 凝聚态物理
+% \item 光学
+% \item 无线电物理
+% \item 统计学
+% \item 工程力学
+% \item 机械制造及其自动化
+% \item 机械电子工程
+% \item 机械设计及理论
+% \item 电子机械科学与技术
+% \item 工业设计
+% \item 光学工程
+% \item 精密仪器及机械
+% \item 测试计量技术及仪器
+% \item 材料物理与化学
+% \item 材料学
+% \item 电机与电器
+% \item 电力电子与电力传动
+% \item 物理电子学
+% \item 电路与系统
+% \item 微电子学与固体电子学
+% \item 电磁场与微波技术
+% \item 信息对抗技术
+% \item 集成电路系统设计
+% \item 通信与信息系统
+% \item 信号与信息处理
+% \item 智能信息处理
+% \item 空间信息科学与技术
+% \item 控制理论与控制工程
+% \item 检测技术与自动化装置
+% \item 系统工程
+% \item 模式识别与智能系统
+% \item 导航、制导与控制
+% \item 计算机系统结构
+% \item 计算机软件与理论
+% \item 计算机应用技术
+% \item 应用化学
+% \item 交通信息工程及控制
+% \item 环境科学
+% \item 环境工程
+% \item 生物医学工程
+% \item 生物材料与细胞工程
+% \item 软件工程
+% \item 软件工程技术
+% \item 军事通信学
+% \item 密码学
+% \item 管理科学与工程
+% \item 管理哲学
+% \item 会计学
+% \item 企业管理
+% \item 技术经济及管理
+% \item 行政管理
+% \item 图书馆学
+% \item 情报学
+% \item 光通信
+% \item 信息安全
+% \item 生物信息科学与技术
+% \item 机器人技术
+% \item 遥感信息科学与技术
+% \item 空间科学与技术
+% \item 马克思主义中国化研究
+% \item 外国文学
+% \item 翻译学
+% \item 基础数学
+% \item 流体力学
+% \item 固体力学
+% \item 智能机电系统及测控技术
+% \item 空间科学仪器与电磁实验技术
+% \item 飞行器测控与导航制导
+% \item 智能检测与新型传感器
+% \end{itemize}
+% \item \optx{domain}
+% \begin{itemize}
+% \item 金融
+% \item 应用统计
+% \item 英语笔译
+% \item 机械工程
+% \item 光学工程
+% \item 仪器仪表工程
+% \item 材料工程
+% \item 电子与通信工程
+% \item 集成电路工程
+% \item 控制工程
+% \item 计算机技术
+% \item 软件工程
+% \item 生物医学工程
+% \item 航天工程
+% \item 项目管理
+% \item 物流工程
+% \item 工商管理
+% \item 公共管理
+% \end{itemize}
+% \item \optx{supervisor-title}
+% \begin{itemize}
+% \item 教授
+% \item 副教授
+% \end{itemize}
+% \item \optx{supervisor-title*}
+% \begin{itemize}
+% \item Professor
+% \item Associate Professor
+% \end{itemize}
+% \item \optx{supervisor-enterprise-title}
+% \begin{itemize}
+% \item 研究员
+% \item 副研究员
+% \item 高工
+% \end{itemize}
+% \item \optx{supervisor-enterprise-title*}
+% \begin{itemize}
+% \item Research Fellow
+% \item Associate Research Fellow
+% \item Senior Engineer
+% \end{itemize}
+% \end{itemize}
+% \setlength\parindent{2em}
% \subsection{额外命令}
% \label{额外命令}
+% \subsubsection{\tn{noauxwrite}}
+% \label{noauxwrite}
% \begin{function}[added=2022-05-13]{\noauxwrite}
% \begin{syntax}
% \tn{noauxwrite}\marg{参考文献引用命令}
@@ -952,6 +1419,35 @@
% \caption{本文与文献\noauxwrite{\parencite{某文献}}计算开销对比}
% \end{latexexample}
% \end{function}
+% \changes{v1.30.0.0}{2022/06/20}{英文研究生学位论文双语标题}
+% \subsubsection{英文研究生学位论文双语标题}
+% \label{英文研究生学位论文双语标题}
+% \begin{function}[added=2022-06-20]{\chapter,\section,\subsection}
+% \begin{syntax}
+% \tn{chapter}\marg{英文标题}\marg{中文标题}
+% \tn{section}\marg{英文标题}\marg{中文标题}
+% \tn{subsection}\marg{英文标题}\marg{中文标题}
+% \end{syntax}
+% 在英文研究生学位论文中一二三级标题为中英双语,其他级别标题为英文。
+% 一个简单的例子如下所示:
+% \begin{latexexample}[moretexcs={\chapter,\section,\subsection,\subsubsection,\paragraph,\subparagraph}]
+% \chapter{This Is Chapter}{这是一级标题}
+% \section{This Is Section}{这是二级标题}
+% \subsection{This Is Subsection}{这是三级标题}
+% \subsubsection{This Is Subsubsection}
+% \paragraph{This Is Paragraph}
+% \subparagraph{This Is Subparagraph}
+% \end{latexexample}
+% \end{function}
+% \subsection{隐藏功能}
+% \changes{v1.26.11.1}{2022/06/17}{带教导师与挂名导师}
+% \subsubsection{带教导师与挂名导师}
+% 已和学位办确认,对于研究生,如挂名导师与带教导师不是一人的,
+% 仅需填写带教导师,无需填写挂名导师。
+% 如有特殊需求,需要填写两位老师,
+% 可在\optx{info/supervisor}、\optx{info/supervisor*}、
+% \optx{info/supervisor-title}和\optx{info/supervisor-title*}中
+% 使用逗号分隔两位老师的信息。
% \section{贡献者}
% \xduts{}的开发过程中,唯一维护者为
% \href{https://github.com/note286/}{\ttfamily @note286}。
@@ -968,11 +1464,7 @@
% 《在\LaTeX{}中进行文学编程》\footurl{https://liam.page/2015/01/23/literate-programming-in-latex/}
% 和《Good things come in little packages: An introduction to writing .ins and .dtx files》\footurl{https://www.tug.org/TUGboat/tb29-2/tb92pakin.pdf}
% 提供了很大帮助。
-% 在文档的编写过程中,参考了
-% \filex{ctex.dtx}\footctan{language/chinese/ctex/ctex.dtx}、
-% \filex{fduthesis.dtx}\footctan{macros/latex/contrib/fduthesis/fduthesis.dtx}、
-% \filex{njuthesis.dtx}\footctan{macros/unicodetex/latex/njuthesis/njuthesis.dtx}
-% 和\filex{thuthesis.dtx}\footctan{macros/latex/contrib/thuthesis/thuthesis.dtx}。
+% 在文档的编写过程中,参考了\filex{ctex.dtx}、\filex{fduthesis.dtx}、\filex{njuthesis.dtx}和\filex{thuthesis.dtx}。
% \clearpage
% \section{代码实现}
% \changes{v0.1.0.0}{2022/04/03}{基本完成本科毕业设计论文模板}
@@ -1590,9 +2082,9 @@
\cs_new:Npn \@@_set_latin_mono_font:nnnnn #1#2#3#4#5
{
\str_if_eq:NNTF { \l_@@_font_type_tl } { font }
- { \setmonofont{ #1 } [ \@@_set_latin_scale: \@@_off_latin_ligatures: ]}
+ { \setmonofont { #1 } [ \@@_set_latin_scale: \@@_off_latin_ligatures: ] }
{
- \setmonofont{ #2 }
+ \setmonofont { #2 }
[
\@@_font_path:
\@@_set_latin_scale:
@@ -1654,7 +2146,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_set_latin_mono_font:nnnn #1#2#3#4
{
- \setmonofont{ #1 }
+ \setmonofont { #1 }
[
\@@_set_latin_scale:
\@@_off_latin_ligatures:
@@ -1766,9 +2258,9 @@
\cs_new:Npn \@@_load_math_font_cambria:
{
\@@_load_unicode_math_pkg:
- \str_if_eq:NNTF { \l_@@_font_type_tl} { font}
- { \setmathfont { Cambria~Math} }
- { \setmathfont { cambria.ttc} [ Path = \l_@@_font_path_tl/, FontIndex = 1 ] }
+ \str_if_eq:NNTF { \l_@@_font_type_tl } { font }
+ { \setmathfont { Cambria~Math } }
+ { \setmathfont { cambria.ttc } [ Path = \l_@@_font_path_tl/, FontIndex = 1 ] }
}
% \end{macrocode}
% \end{macro}
@@ -1868,13 +2360,14 @@
% \l_@@_dept_str,
% \l_@@_major_str,
% \l_@@_author_str,
-% \l_@@_supv_str,
+% \l_@@_supv_clist,
% \l_@@_supv_ent_str,
% \l_@@_student_id_str,
% \l_@@_abstract_zh_tl,
% \l_@@_abstract_en_tl,
% \l_@@_keywords_zh_clist,
% \l_@@_keywords_en_clist,
+% \l_@@_bib_file_clist,
% \l_@@_ack_tl
% }
% 论文标题。
@@ -1897,7 +2390,7 @@
% \end{macrocode}
% 导师姓名。
% \begin{macrocode}
-\str_new:N \l_@@_supv_str
+\clist_new:N \l_@@_supv_clist
% \end{macrocode}
% 校外导师姓名。
% \begin{macrocode}
@@ -1923,6 +2416,10 @@
% \begin{macrocode}
\clist_new:N \l_@@_keywords_en_clist
% \end{macrocode}
+% 参考文献文件。
+% \begin{macrocode}
+\clist_new:N \l_@@_bib_file_clist
+% \end{macrocode}
% 致谢。
% \begin{macrocode}
\tl_new:N \l_@@_ack_tl
@@ -1952,7 +2449,7 @@
% \end{macrocode}
% 导师姓名。
% \begin{macrocode}
- supervisor .tl_set:N = \l_@@_supv_str,
+ supervisor .clist_set:N = \l_@@_supv_clist,
% \end{macrocode}
% 校外导师姓名。
% \begin{macrocode}
@@ -1978,6 +2475,10 @@
% \begin{macrocode}
keywords* .clist_set:N = \l_@@_keywords_en_clist,
% \end{macrocode}
+% 参考文献文件。
+% \begin{macrocode}
+ bib-resource .clist_set:N = \l_@@_bib_file_clist,
+% \end{macrocode}
% 致谢。
% \begin{macrocode}
acknowledgements .tl_set:N = \l_@@_ack_tl
@@ -2000,11 +2501,30 @@
info / abstract* = { },
info / keywords = { },
info / keywords* = { },
+ info / bib-resource = { },
info / acknowledgements = { }
}
% \end{macrocode}
% \end{macro}
+% \begin{variable}
+% {
+% \l_@@_supv_str,
+% \l_@@_supv_ii_str
+% }
+% \changes{v1.16.0.0}{2022/05/22}{拆分导师姓名}
+% 拆分导师姓名。
% \begin{macrocode}
+\str_new:N \l_@@_supv_str
+\str_new:N \l_@@_supv_ii_str
+\ctex_at_end_preamble:n
+ {
+ \str_set:Nx \l_@@_supv_str { \clist_item:Nn \l_@@_supv_clist { 1 } }
+ \str_set:Nx \l_@@_supv_ii_str { \clist_item:Nn \l_@@_supv_clist { 2 } }
+ }
+% \end{macrocode}
+% \end{variable}
+% \begin{macrocode}
+%</thesis>
%<*xduugthesis>
% \end{macrocode}
% \subsubsection{本科生}
@@ -2071,10 +2591,10 @@
% \l_@@_degree_str,
% \l_@@_degree_en_str,
% \l_@@_author_en_str,
-% \l_@@_supv_en_str,
+% \l_@@_supv_en_clist,
% \l_@@_supv_ent_en_str,
-% \l_@@_supv_t_str,
-% \l_@@_supv_t_en_str,
+% \l_@@_supv_t_clist,
+% \l_@@_supv_t_en_clist,
% \l_@@_supv_ent_t_str,
% \l_@@_supv_ent_t_en_str,
% \l_@@_title_en_str,
@@ -2083,7 +2603,11 @@
% \l_@@_domain_str,
% \l_@@_clc_str,
% \l_@@_secret_lv_str,
-% \l_@@_submit_date_str
+% \l_@@_secret_year_str,
+% \l_@@_submit_date_str,
+% \l_@@_los_str,
+% \l_@@_loa_str,
+% \l_@@_bio_str
% }
% 研究生类型。
% \begin{macrocode}
@@ -2104,7 +2628,7 @@
% \end{macrocode}
% 导师姓名拼音。
% \begin{macrocode}
-\str_new:N \l_@@_supv_en_str
+\clist_new:N \l_@@_supv_en_clist
% \end{macrocode}
% 校外导师姓名拼音。
% \begin{macrocode}
@@ -2112,8 +2636,8 @@
% \end{macrocode}
% 导师职称。
% \begin{macrocode}
-\str_new:N \l_@@_supv_t_str
-\str_new:N \l_@@_supv_t_en_str
+\clist_new:N \l_@@_supv_t_clist
+\clist_new:N \l_@@_supv_t_en_clist
% \end{macrocode}
% 校外导师职称。
% \begin{macrocode}
@@ -2144,10 +2668,26 @@
% \begin{macrocode}
\str_new:N \l_@@_secret_lv_str
% \end{macrocode}
+% 保密年限。
+% \begin{macrocode}
+\str_new:N \l_@@_secret_year_str
+% \end{macrocode}
% 提交日期。
% \begin{macrocode}
\str_new:N \l_@@_submit_date_str
% \end{macrocode}
+% 符号对照表文件路径。
+% \begin{macrocode}
+\str_new:N \l_@@_los_str
+% \end{macrocode}
+% 缩略语对照表文件路径。
+% \begin{macrocode}
+\str_new:N \l_@@_loa_str
+% \end{macrocode}
+% 作者简介文件路径。
+% \begin{macrocode}
+\str_new:N \l_@@_bio_str
+% \end{macrocode}
% \end{variable}
% \begin{macro}{\keys_define:nn}
% 定义信息键值。
@@ -2176,7 +2716,7 @@
% \end{macrocode}
% 导师姓名拼音。
% \begin{macrocode}
- supervisor* .tl_set:N = \l_@@_supv_en_str,
+ supervisor* .clist_set:N = \l_@@_supv_en_clist,
% \end{macrocode}
% 校外导师姓名拼音。
% \begin{macrocode}
@@ -2184,8 +2724,8 @@
% \end{macrocode}
% 导师职称。
% \begin{macrocode}
- supervisor-title .tl_set:N = \l_@@_supv_t_str,
- supervisor-title* .tl_set:N = \l_@@_supv_t_en_str,
+ supervisor-title .clist_set:N = \l_@@_supv_t_clist,
+ supervisor-title* .clist_set:N = \l_@@_supv_t_en_clist,
% \end{macrocode}
% 校外导师职称。
% \begin{macrocode}
@@ -2217,9 +2757,25 @@
secret-level .choices:nn = { 秘密, 公开 }
{ \tl_set_eq:NN \l_@@_secret_lv_str \l_keys_choice_tl },
% \end{macrocode}
+% 保密年限。
+% \begin{macrocode}
+ secret-year .tl_set:N = \l_@@_secret_year_str,
+% \end{macrocode}
% 提交日期。
% \begin{macrocode}
- submit-date .tl_set:N = \l_@@_submit_date_str
+ submit-date .tl_set:N = \l_@@_submit_date_str,
+% \end{macrocode}
+% 符号对照表文件路径。
+% \begin{macrocode}
+ los .tl_set:N = \l_@@_los_str,
+% \end{macrocode}
+% 缩略语对照表文件路径。
+% \begin{macrocode}
+ loa .tl_set:N = \l_@@_loa_str,
+% \end{macrocode}
+% 作者简介文件路径。
+% \begin{macrocode}
+ bio .tl_set:N = \l_@@_bio_str
}
% \end{macrocode}
% \end{macro}
@@ -2247,20 +2803,77 @@
info / domain = { },
info / clc = { },
info / secret-level = { 公开 },
- info / submit-date = { }
+ info / secret-year = { },
+ info / submit-date = { },
+ info / los = { },
+ info / loa = { },
+ info / bio = { }
}
% \end{macrocode}
% \end{macro}
+% \begin{variable}
+% {
+% \l_@@_supv_en_str,
+% \l_@@_supv_ii_en_str,
+% \l_@@_supv_t_str,
+% \l_@@_supv_ii_t_str,
+% \l_@@_supv_t_en_str,
+% \l_@@_supv_ii_t_en_str
+% }
+% \changes{v1.16.0.0}{2022/05/22}{拆分导师英文姓名和中英文职称}
+% 拆分导师英文姓名和中英文职称。
+% \begin{macrocode}
+\str_new:N \l_@@_supv_en_str
+\str_new:N \l_@@_supv_ii_en_str
+\str_new:N \l_@@_supv_t_str
+\str_new:N \l_@@_supv_ii_t_str
+\str_new:N \l_@@_supv_t_en_str
+\str_new:N \l_@@_supv_ii_t_en_str
+\ctex_at_end_preamble:n
+ {
+ \str_set:Nx \l_@@_supv_en_str
+ { \clist_item:Nn \l_@@_supv_en_clist { 1 } }
+ \str_set:Nx \l_@@_supv_ii_en_str
+ { \clist_item:Nn \l_@@_supv_en_clist { 2 } }
+ \str_set:Nx \l_@@_supv_t_str
+ { \clist_item:Nn \l_@@_supv_t_clist { 1 } }
+ \str_set:Nx \l_@@_supv_ii_t_str
+ { \clist_item:Nn \l_@@_supv_t_clist { 2 } }
+ \str_set:Nx \l_@@_supv_t_en_str
+ { \clist_item:Nn \l_@@_supv_t_en_clist { 1 } }
+ \str_set:Nx \l_@@_supv_ii_t_en_str
+ { \clist_item:Nn \l_@@_supv_t_en_clist { 2 } }
+ }
+% \end{macrocode}
+% \end{variable}
% \begin{macrocode}
%</xdupgthesis>
+%<*thesis>
+% \end{macrocode}
+% \subsection{标签宏配置}
+% \label{标签宏配置}
+% \begin{macro}
+% {
+% \figurename,
+% \figname,
+% \tablename,
+% \tabname,
+% }
+% \changes{v1.21.0.0}{2022/06/01}{配置图表标签宏}
+% \begin{macrocode}
+\cs_set:Npn \figurename { \@@_lang_switch:nn { 图 } { Figure } }
+\cs_new_eq:NN \figname \figurename
+\cs_set:Npn \tablename { \@@_lang_switch:nn { 表 } { Table } }
+\cs_new_eq:NN \tabname \tablename
% \end{macrocode}
+% \end{macro}
% \subsection{样式配置}
% \begin{variable}
% {
% \l_@@_en_cjk_font_bool,
% \l_@@_lang_tl,
% \l_@@_bib_tool_tl,
-% \l_@@_bib_file_clist,
+% \l_@@_biblatex_option_tl,
% \l_@@_cap_label_sep_tl,
% \l_@@_tab_small_bool,
% \l_@@_alg_small_bool,
@@ -2287,9 +2900,9 @@
% \begin{macrocode}
\tl_new:N \l_@@_bib_tool_tl
% \end{macrocode}
-% 参考文献文件。
+% 修改\pkgx{biblatex}默认选项。
% \begin{macrocode}
-\clist_new:N \l_@@_bib_file_clist
+\tl_new:N \l_@@_biblatex_option_tl
% \end{macrocode}
% 是否在\tnx{ref}和\tnx{pageref}两侧自动调整中英文间空白。
% \begin{macrocode}
@@ -2350,9 +2963,9 @@
bib-backend .choices:nn = { bibtex, biblatex }
{ \tl_set_eq:NN \l_@@_bib_tool_tl \l_keys_choice_tl },
% \end{macrocode}
-% 参考文献文件。
+% 修改\pkgx{biblatex}默认选项。
% \begin{macrocode}
- bib-resource .clist_set:N = \l_@@_bib_file_clist,
+ biblatex-option .tl_set:N = \l_@@_biblatex_option_tl,
% \end{macrocode}
% 是否在\tnx{ref}和\tnx{pageref}两侧自动调整中英文间空白。
% \begin{macrocode}
@@ -2405,7 +3018,7 @@
style / en-cjk-font = false,
style / language = zh,
style / bib-backend = biblatex,
- style / bib-resource = { },
+ style / biblatex-option = { },
style / ref-add-space = false,
style / caption-label-sep = { 0.75em },
style / table-small-font = true,
@@ -2413,14 +3026,140 @@
style / before-skip = { 24pt, 18pt, 12pt, 12pt, 12pt, 12pt },
style / after-skip = { 18pt, 12pt, 6pt, 6pt, 6pt, 6pt },
style / symmetric-margin = false,
- style / page-vertical-align = {顶部对齐}
+ style / page-vertical-align = { 顶部对齐 }
}
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
%</thesis>
+%<*xdupgthesis>
+% \end{macrocode}
+% \changes{v1.22.0.0}{2022/06/05}{对照表样式配置}
+% \subsection{对照表样式配置}
+% \begin{variable}
+% {
+% \l_@@_customize_los_bool,
+% \l_@@_customize_loa_bool,
+% \l_@@_colspec_los_tl,
+% \l_@@_colspec_loa_tl,
+% \l_@@_title_row_los_bool,
+% \l_@@_title_row_los_bool,
+% }
+% 是否完全自定义符号对照。
+% \begin{macrocode}
+\bool_new:N \l_@@_customize_los_bool
+% \end{macrocode}
+% 是否完全自定义缩略语对照表。
+% \begin{macrocode}
+\bool_new:N \l_@@_customize_loa_bool
+% \end{macrocode}
+% 符号对照表列格式。
+% \begin{macrocode}
+\tl_new:N \l_@@_colspec_los_tl
+% \end{macrocode}
+% 缩略语对照表列格式。
+% \begin{macrocode}
+\tl_new:N \l_@@_colspec_loa_tl
+% \end{macrocode}
+% 是否每页均显示符号对照表标题行。
+% \begin{macrocode}
+\bool_new:N \l_@@_title_row_los_bool
+% \end{macrocode}
+% 是否每页均显示缩略语对照表标题行。
+% \begin{macrocode}
+\bool_new:N \l_@@_title_row_loa_bool
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\keys_define:nn}
+% 定义信息键值。
+% \begin{macrocode}
+\keys_define:nn { xdu / style }
+ {
% \end{macrocode}
+% 是否完全自定义符号对照。
% \begin{macrocode}
+ customize-los .bool_set:N = \l_@@_customize_los_bool,
+% \end{macrocode}
+% 是否完全自定义缩略语对照表。
+% \begin{macrocode}
+ customize-loa .bool_set:N = \l_@@_customize_loa_bool,
+% \end{macrocode}
+% 符号对照表列格式。
+% \begin{macrocode}
+ colspec-los .tl_set:N = \l_@@_colspec_los_tl,
+% \end{macrocode}
+% 缩略语对照表列格式。
+% \begin{macrocode}
+ colspec-loa .tl_set:N = \l_@@_colspec_loa_tl,
+% \end{macrocode}
+% 是否每页均显示符号对照表标题行。
+% \begin{macrocode}
+ title-row-los .bool_set:N = \l_@@_title_row_los_bool,
+% \end{macrocode}
+% 是否每页均显示缩略语对照表标题行。
+% \begin{macrocode}
+ title-row-loa .bool_set:N = \l_@@_title_row_loa_bool
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\keys_set:nn}
+% 初始设置。
+% \begin{macrocode}
+\keys_set:nn { xdu }
+ {
+ style / customize-los = { true },
+ style / customize-loa = { true },
+ style / colspec-los = { Q[l,m]X[l,m] },
+ style / colspec-loa = { Q[l,m]X[l,m]X[l,m] },
+ style / title-row-los = { false },
+ style / title-row-loa = { false }
+ }
+% \end{macrocode}
+% \end{macro}
+% \changes{v1.26.0.0}{2022/06/07}{作者简介样式配置}
+% \subsection{作者简介样式配置}
+% \begin{variable}
+% {
+% \l_@@_customize_edubg_bool,
+% \l_@@_customize_resresult_bool
+% }
+% 是否完全自定义作者简介中教育背景。
+% \begin{macrocode}
+\bool_new:N \l_@@_customize_edubg_bool
+% \end{macrocode}
+% 是否完全自定义作者简介中攻读硕士学位期间的研究成果。
+% \begin{macrocode}
+\bool_new:N \l_@@_customize_resresult_bool
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\keys_define:nn}
+% 定义信息键值。
+% \begin{macrocode}
+\keys_define:nn { xdu / style }
+ {
+% \end{macrocode}
+% 是否完全自定义作者简介中教育背景。
+% \begin{macrocode}
+ customize-edubg .bool_set:N = \l_@@_customize_edubg_bool,
+% \end{macrocode}
+% 是否完全自定义作者简介中攻读硕士学位期间的研究成果。
+% \begin{macrocode}
+ customize-resresult .bool_set:N = \l_@@_customize_resresult_bool
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\keys_set:nn}
+% 初始设置。
+% \begin{macrocode}
+\keys_set:nn { xdu }
+ {
+ style / customize-edubg = { true },
+ style / customize-resresult = { true }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</xdupgthesis>
%<*class|xdufont>
% \end{macrocode}
% \subsection{键值选项}
@@ -2521,6 +3260,29 @@
}
% \end{macrocode}
% \end{variable}
+% \begin{macro}{\@@_split_title:Nn,\@@_split_title:NV}
+% 拆分标题。
+% \begin{arguments}
+% \item 拆分后标题。
+% \item 拆分前标题。
+% \end{arguments}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_split_title:Nn #1#2
+ {
+ \seq_new:N \l_@@_title_seq
+ \tl_if_in:nnTF { #2 } { \\ }
+ {
+ \seq_set_split:Nnn \l_@@_title_seq { \\ } { #2 }
+ \clist_set_from_seq:NN #1 \l_@@_title_seq
+ }
+ {
+ \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1 } { 14 } }
+ \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
+ }
+ }
+\cs_generate_variant:Nn \@@_split_title:Nn { NV }
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\@@_uline:n}
% 绘制下划线。
% \begin{macrocode}
@@ -2590,10 +3352,10 @@
% \begin{macrocode}
\cs_new:Npn \@@_n_chapter_head_ii:nn #1#2
{
- {
+ \group_begin:
\ctexset { chapter / format = { #2 } }
\@@_n_chapter_head:n { #1 }
- }
+ \group_end:
}
% \end{macrocode}
% \end{macro}
@@ -2624,10 +3386,10 @@
% \begin{macrocode}
\cs_new:Npn \@@_n_chapter_head_ii:nnn #1#2#3
{
- {
+ \group_begin:
\ctexset { chapter / format = { #3 } }
\@@_n_chapter_head:nn { #1 } { #2 }
- }
+ \group_end:
}
% \end{macrocode}
% \end{macro}
@@ -2658,7 +3420,25 @@
}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\@@_n_chapter_head_toc_ii:nn}
+% \changes{v1.28.1.0}{2022/06/18}{新建无编号章节并单独添加目录及页眉并单独设置标题样式}
+% 新建无编号章节并单独添加目录及页眉并单独设置标题样式。
+% \begin{arguments}
+% \item 目录、书签、页眉处。
+% \item 章节标题处。
+% \end{arguments}
+% \begin{macrocode}
+\cs_new:Npn \@@_n_chapter_head_toc_ii:nn #1#2
+ {
+ \group_begin:
+ \ctexset { chapter / format = { #2 } }
+ \@@_n_chapter_head_toc:n { #1 }
+ \group_end:
+ }
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\@@_typeout_keywords:nNn}
+% \changes{v1.20.0.0}{2022/05/30}{允许关键词标签带格式}
% 排版关键词。
% \begin{arguments}
% \item 标签名称。
@@ -2668,11 +3448,11 @@
% \begin{macrocode}
\cs_new:Npn \@@_typeout_keywords:nNn #1#2#3
{
- \str_clear_new:N \l_@@_keywords_label_str
- \str_set:Nn \l_@@_keywords_label_str { #1 }
+ \tl_clear_new:N \l_@@_keywords_label_str
+ \tl_set:Nn \l_@@_keywords_label_tl { #1 }
\dim_zero_new:N \l_@@_keywords_label_dim
- \@@_get_text_width:NV \l_@@_keywords_label_dim \l_@@_keywords_label_str
- \begin { list } { \l_@@_keywords_label_str }
+ \@@_get_text_width:NV \l_@@_keywords_label_dim \l_@@_keywords_label_tl
+ \begin { list } { \l_@@_keywords_label_tl }
{
\labelwidth \l_@@_keywords_label_dim
\labelsep \c_zero_dim
@@ -2684,6 +3464,24 @@
}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\@@_str_max_dim:Nn}
+% \changes{v1.26.4.0}{2022/06/10}{计算字符串多大长度}
+% 计算字符串多大长度。
+% \begin{arguments}
+% \item 最大值长度。
+% \item 字符串。
+% \end{arguments}
+% \begin{macrocode}
+\dim_new:N \l_@@_str_dim
+\box_new:N \l_@@_str_box
+\cs_new:Npn \@@_str_max_dim:Nn #1#2
+ {
+ \hbox_set:Nn \l_@@_str_box { #2 }
+ \dim_set:Nn \l_@@_str_dim { \box_wd:N \l_@@_str_box }
+ \dim_set:Nn #1 { \dim_max:nn { \l_@@_str_dim } { #1 } }
+ }
+% \end{macrocode}
+% \end{macro}
% \subsection{额外命令}
% \begin{macro}{\noauxwrite}
% \changes{v1.15.0.0}{2022/05/13}{\tnx{noauxwrite}允许添加不影响现有引用列表顺序的引用}
@@ -2706,10 +3504,12 @@
% \begin{macro}{\geometry,\newgeometry,\savegeometry}
% \changes{v1.5.1.0}{2022/05/01}{修正页脚高度}
% \changes{v1.5.2.0}{2022/05/02}{修正底部页边距高度}
+% \changes{v1.26.8.0}{2022/06/13}{修正研究生页眉高度}
% 正文页面。
% \begin{description}
% \item[本科生] 上3、下2、内3、外2;装订线1;页眉2、页脚1。
% \item[研究生] 上3、\textbf{下2.5}、内2.5、外2.5;装订线0.5;页眉2、页脚$2.5-1.75=0.75$。
+% 实测上3.14,headheight和headsep均为实测。
% \end{description}
% \begin{macrocode}
\newgeometry
@@ -2724,12 +3524,13 @@
foot = 1cm
%</xduugthesis>
%<*xdupgthesis>
- top = 3cm,
+ top = 3.14cm,
bottom = 2.5cm,
inner = 2.5cm,
outer = 2.5cm,
bindingoffset = 0.5cm,
- head = 2cm,
+ headheight = 20pt,
+ headsep = 10pt,
foot = 0.75cm
%</xdupgthesis>
}
@@ -2754,12 +3555,13 @@
foot = 1cm
%</xduugthesis>
%<*xdupgthesis>
- top = 3cm,
- bottom = 2.5cm,
- inner = 2.75cm,
- outer = 2.75cm,
- head = 2cm,
- foot = 0.75cm
+ top = 3.14cm,
+ bottom = 2.5cm,
+ inner = 2.75cm,
+ outer = 2.75cm,
+ headheight = 20pt,
+ headsep = 10pt,
+ foot = 0.75cm
%</xdupgthesis>
}
\savegeometry { main-sym }
@@ -2768,7 +3570,7 @@
% 封面页面。
% \begin{description}
% \item[本科生] 上2.5、下2、内3、外2。
-% \item[研究生] 上3、下2、内3、外2.5。
+% \item[研究生] 上3、下1、内3、外2.5。
% \end{description}
% \begin{macrocode}
\newgeometry
@@ -2781,7 +3583,7 @@
%</xduugthesis>
%<*xdupgthesis>
top = 3cm,
- bottom = 2cm,
+ bottom = 1cm,
inner = 3cm,
outer = 2.5cm
%</xdupgthesis>
@@ -2857,6 +3659,7 @@
% \changes{v0.1.1.0}{2022/04/03}{修正页眉字号}
% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
% \changes{v1.7.0.0}{2022/05/02}{设置页眉}
+% \changes{v1.26.9.0}{2022/06/13}{修正页眉文字和双横线高度}
% 设置正文页眉页脚。
% \begin{description}
% \item[本科生] 页眉:宋体五号,居中排列。左面页眉为论文题目,右面页眉为章次和章标题。页眉底划线的宽度为0.75磅。页码:宋体小五号,排在页眉行的最外侧,不加任何修饰。
@@ -2882,6 +3685,8 @@
\cs_set:Npn \headrulewidth { 0.5pt }
\cs_set:Npn \headrule
{
+ \hrule \@height 0pt
+ \skip_vertical:N 2pt
\hrule \@height \headrulewidth
\skip_vertical:N \headrulewidth
\hrule \@height \headrulewidth
@@ -2916,15 +3721,16 @@
%<*xduugthesis>
% \end{macrocode}
% \subsection{标题设置}
+% \subsubsection{本科生}
% 中文章标题黑体,三号,居中排列。节标题宋体,四号,居中排列。英文一级标题字体为Times New Roman,四号,正体,左对齐,以大写罗马数字(I、II 等)标出序号。其余各级标题的字体均为Times New Roman,小四号,正体。二级及以下级别的标题依次缩进4个英文字符,以1.1,1.2,1.1.1,1.1.2形式标出序号。
-% \subsubsection{章节层次}
+% \paragraph{章节层次}
% \begin{macro}{\ctexset}
% 设置章节层次为subparagraph。
% \begin{macrocode}
\ctexset { secnumdepth=5 }
% \end{macrocode}
% \end{macro}
-% \subsubsection{章节名字}
+% \paragraph{章节名字}
% \begin{macro}{\ctexset}
% 设置章节的名字。
% \begin{macrocode}
@@ -2943,7 +3749,7 @@
}
% \end{macrocode}
% \end{macro}
-% \subsubsection{章节编号}
+% \paragraph{章节编号}
% \begin{macro}{\ctexset}
% \changes{v1.2.1.0}{2022/04/19}{修正英文论文标题序号}
% 设置章节编号的数字输出格式。
@@ -2976,7 +3782,7 @@
}
% \end{macrocode}
% \end{macro}
-% \subsubsection{章节和标题}
+% \paragraph{章节和标题}
% \begin{macro}{\@@_zh_t:nnn}
% 设置中文章节名字和随后的标题内容格式。
% \begin{arguments}
@@ -3085,6 +3891,149 @@
}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</xduugthesis>
+%<*xdupgthesis>
+% \end{macrocode}
+% \changes{v1.27.0.0}{2022/06/18}{研究生学位论文章节标题样式}
+% \subsubsection{研究生}
+% \paragraph{章节层次}
+% \begin{macro}{\ctexset}
+% 设置章节层次为subparagraph。
+% \begin{macrocode}
+\ctexset { secnumdepth=5 }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{章节名字}
+% \begin{macro}{\ctexset}
+% \changes{v1.29.2.0}{2022/06/19}{修正英文研究生学位论文一级标题名称}
+% 设置章节的名字。
+% \begin{macrocode}
+\ctex_at_end_preamble:n
+ {
+ \@@_lang_switch:nn
+ { \ctexset { chapter / name = { 第, 章 } } }
+ { \ctexset { chapter / name = { Chapter\space } } }
+ }
+\ctexset
+ {
+ section / name = { },
+ subsection / name = { },
+ subsubsection / name = { (, ) },
+ paragraph / name = { (, ) },
+ subparagraph / name = { (, ) }
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{章节编号}
+% \begin{macro}{\ctexset}
+% \changes{v1.29.2.0}{2022/06/19}{修正英文研究生学位论文一级标题数字输出格式}
+% 设置章节编号的数字输出格式。
+% \begin{macrocode}
+\ctex_at_end_preamble:n
+ {
+ \@@_lang_switch:nn
+ { \ctexset { chapter / number = { \chinese { chapter } } } }
+ { \ctexset { chapter / number = { \Roman { chapter } } } }
+ }
+\ctexset
+ {
+ section / number = { \thesection },
+ subsection / number = { \thesubsection },
+ subsubsection / number = { \arabic { subsubsection } },
+ paragraph / number = { \alph { paragraph } },
+ subparagraph / number = { \roman { subparagraph } }
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{章节格式}
+% \begin{macro}
+% {
+% \@@_sec_format_i:n,
+% \@@_sec_format_ii:,
+% \@@_sec_format_iii:,
+% \ctexset
+% }
+% \changes{v1.29.2.0}{2022/06/19}{修正英文研究生学位论文一级标题字体}
+% 设置章节名字和随后的标题内容格式。
+% \begin{macrocode}
+\cs_new:Npn \@@_sec_format_i:n #1
+ { \@@_rm_family: \bfseries \zihao { #1 } \dim_set:Nn \baselineskip { 20pt } }
+\cs_new:Npn \@@_sec_format_ii:
+ { \@@_sf_family: \centering \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+\cs_new:Npn \@@_sec_format_iii:
+ { \@@_rm_family: \centering \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+\ctex_at_end_preamble:n
+ {
+ \@@_lang_switch:nn
+ { \ctexset { chapter / format = { \@@_sec_format_ii: } } }
+ { \ctexset { chapter / format = { \@@_sec_format_iii: } } }
+ }
+\ctexset
+ {
+ section / format = { \@@_sec_format_i:n { -3 } },
+ subsection / format = { \@@_sec_format_i:n { 4 } },
+ subsubsection / format = { \@@_sec_format_i:n { 4 } },
+ paragraph / format = { \@@_sec_format_i:n { 4 } },
+ subparagraph / format = { \@@_sec_format_i:n { 4 } }
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{章节编号与标题间距}
+% \begin{macro}{\ctexset}
+% 设置章节编号与标题间距。
+% \begin{macrocode}
+\ctexset
+ {
+ chapter / aftername = { \quad },
+ section / aftername = { \enskip },
+ subsection / aftername = { \enskip },
+ subsubsection / aftername = { },
+ paragraph / aftername = { },
+ subparagraph / aftername = { }
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{章节缩进}
+% \begin{macro}{\ctexset}
+% 设置章节标题本身的首行缩进。
+% \begin{macrocode}
+\ctexset
+ {
+ chapter / indent = { 0bp },
+ section / indent = { 0bp },
+ subsection / indent = { 24bp },
+ subsubsection / indent = { 24bp },
+ paragraph / indent = { 24bp },
+ subparagraph / indent = { 24bp }
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{章节间距}
+% \begin{macro}{\ctexset}
+% 设置章节标题前后的垂直间距。
+% \begin{macrocode}
+\ctexset
+ {
+ chapter / beforeskip = { 6pt },
+ section / beforeskip = { 18pt },
+ subsection / beforeskip = { 12pt },
+ subsubsection / beforeskip = { 12pt },
+ paragraph / beforeskip = { 12pt },
+ subparagraph / beforeskip = { 12pt },
+ chapter / afterskip = { 18pt },
+ section / afterskip = { 12pt },
+ subsection / afterskip = { 6pt },
+ subsubsection / afterskip = { 6pt },
+ paragraph / afterskip = { 6pt },
+ subparagraph / afterskip = { 6pt }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</xdupgthesis>
+%<*thesis>
+% \end{macrocode}
% \subsection{目录}
% \begin{macro}{\RequirePackage}
% \changes{v0.4.1.0}{2022/04/05}{设置目录样式}
@@ -3095,6 +4044,11 @@
\RequirePackage { tocloft }
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</thesis>
+%<*xduugthesis>
+% \end{macrocode}
+% \subsubsection{本科生}
% \begin{variable}{\cftchapleader}
% 修改目录中一级标题引导点。
% \begin{macrocode}
@@ -3160,6 +4114,67 @@
% \end{variable}
% \begin{macrocode}
%</xduugthesis>
+%<*xdupgthesis>
+% \end{macrocode}
+% \changes{v1.28.0.0}{2022/06/18}{研究生学位论文目录样式}
+% \subsubsection{研究生}
+% \begin{variable}{\cftdotsep}
+% 修改引导点之间的距离。
+% \begin{macrocode}
+\cs_set:Npn \cftdotsep { 0 }
+% \end{macrocode}
+% \end{variable}
+% \begin{variable}{\cftchapleader}
+% 修改目录中一级标题引导点。
+% \begin{macrocode}
+\cs_set:Npn \cftchapleader { \cftdotfill { \cftdotsep } }
+% \end{macrocode}
+% \end{variable}
+% \begin{variable}
+% {
+% \cftbeforechapskip,
+% \cftbeforesecskip
+% }
+% 设置一级标题与其余各级标题条目前垂直间距一致。
+% \begin{macrocode}
+\dim_set_eq:NN \cftbeforechapskip \cftbeforesecskip
+% \end{macrocode}
+% \end{variable}
+% \begin{variable}{\cftchapfont}
+% \changes{v1.29.2.0}{2022/06/19}{修正英文研究生学位论文目录中一级标题字体}
+% 设置一级标题字体字号。
+% \begin{macrocode}
+\ctex_at_end_preamble:n
+ {
+ \@@_lang_switch:nn
+ { \cs_set:Npn \cftchapfont { \@@_sf_family: \zihao { -4 } } }
+ { \cs_set:Npn \cftchapfont { \@@_rm_family: \zihao { -4 } } }
+ }
+% \end{macrocode}
+% \end{variable}
+% \begin{variable}
+% {
+% \cftsecfont,
+% \cftsubsecfont,
+% \cftchappagefont,
+% \cftsecpagefont,
+% \cftsubsecpagefont
+% }
+% 设置二三级标题及一二三级标题页码字体字号。
+% \begin{macrocode}
+\clist_map_inline:nn
+ {
+ \cftsecfont,
+ \cftsubsecfont,
+ \cftchappagefont,
+ \cftsecpagefont,
+ \cftsubsecpagefont
+ }
+ { \renewcommand { #1 } { \@@_rm_family: \zihao { -4 } } }
+% \end{macrocode}
+% \end{variable}
+% \begin{macrocode}
+%</xdupgthesis>
%<*thesis>
% \end{macrocode}
% \subsection{公式}
@@ -3354,8 +4369,10 @@
% \end{macro}
% \begin{macro}{\thesubfigure}
% \changes{v1.13.5.0}{2022/05/08}{设置\pkgx{subcaption}宏包子图引用样式}
+% \changes{v1.20.1.0}{2022/05/30}{修复\pkgx{subcaption}宏包子图标签样式}
% 设置\pkgx{subcaption}宏包子图引用样式。
% \begin{macrocode}
+\PassOptionsToPackage { labelformat = simple } { subcaption }
\ctex_at_end_preamble:n
{
\@ifpackageloaded { subcaption }
@@ -3428,7 +4445,7 @@
% \changes{v1.10.0.0}{2022/05/04}{添加PDF应用程序元数据}
% 配置超链接和PDF元数据。
% \begin{macrocode}
-\RequirePackage{ hyperref }
+\RequirePackage { hyperref }
\hypersetup
{
bookmarksnumbered,
@@ -3507,16 +4524,13 @@
{ \group_begin: \citestyle { numbers } \cite { #1 } \group_end: }
}
{
+ \PassOptionsToPackage { \l_@@_biblatex_option_tl } { biblatex }
\RequirePackage { biblatex }
\clist_map_inline:Nn \l_@@_bib_file_clist { \addbibresource { #1 } }
}
}
% \end{macrocode}
% \end{macro}
-% \begin{macrocode}
-%</thesis>
-%<*xduugthesis>
-% \end{macrocode}
% \subsection{附录}
% \begin{macro}{appendixes}
% 附录环境。
@@ -3543,8 +4557,14 @@
}
% \end{macrocode}
% \end{macro}
-% \subsection{封面}
+% \begin{macrocode}
+%</thesis>
+%<*xduugthesis>
+% \end{macrocode}
+% \changes{v1.26.7.1}{2022/06/12}{整理代码结构}
+% \subsection{前言部分}
% \subsubsection{本科生}
+% \paragraph{前言组件}
% \begin{macro}{\@@_cover_i:nn}
% 绘制班级和学号。
% \begin{arguments}
@@ -3632,29 +4652,6 @@
}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\@@_split_title:Nn,\@@_split_title:Nn}
-% 拆分标题。
-% \begin{arguments}
-% \item 拆分后标题。
-% \item 拆分前标题。
-% \end{arguments}
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_split_title:Nn #1#2
- {
- \seq_new:N \l_@@_title_seq
- \tl_if_in:nnTF { #2 } { \\ }
- {
- \seq_set_split:Nnn \l_@@_title_seq { \\ } { #2 }
- \clist_set_from_seq:NN #1 \l_@@_title_seq
- }
- {
- \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 1 } { 14 } }
- \clist_put_right:Nx #1 { \tl_range:nnn { #2 } { 15 } { -1 } }
- }
- }
-\cs_generate_variant:Nn \@@_split_title:Nn { NV }
-% \end{macrocode}
-% \end{macro}
% \begin{variable}{\l_@@_is_ent_bool,\l_@@_is_wide_bool}
% \changes{v0.8.1.0}{2022/04/12}{封面导师标签标志位}
% 是否为校外毕设,是否为宽名称。
@@ -3691,9 +4688,10 @@
}
% \end{macrocode}
% \end{macro}
+% \paragraph{\tn{frontmatter}}
% \begin{macro}{\frontmatter}
% \changes{v1.9.1.0}{2022/05/04}{修正封面元素位置及尺寸}
-% 排版正文前部分。
+% 排版前言部分。
% \begin{macrocode}
\renewcommand { \frontmatter }
{
@@ -3756,9 +4754,10 @@
\@@_cover_iii:nnnn { 校内导师姓名 } { rm } { -3 } { \l_@@_supv_sch_str }
}
% \end{macrocode}
+% \changes{v1.15.1.0}{2022/05/21}{使用\csx{group_begin:}和\csx{group_end:}替换分组}
% 校内毕设,排版导师姓名、院内导师姓名。
% \begin{macrocode}
- {
+ \group_begin:
\@@_cover_iii:nnnn { 导师姓名 } { rm } { -3 } { \l_@@_supv_str }
\tl_if_blank:VF \l_@@_supv_dept_str
{
@@ -3768,7 +4767,7 @@
{ -3 }
{ \l_@@_supv_dept_str }
}
- }
+ \group_end:
\cleardoublepage
% \end{macrocode}
% \changes{v0.8.0.0}{2022/04/12}{支持对称页边距}
@@ -3790,24 +4789,24 @@
{ 摘 { \quad } 要 }
{ \@@_sf_family: \zihao { 3 } \centering }
}
- {
+ \group_begin:
\dim_set:Nn \parindent { 2 \ccwd }
\rmfamily \zihao { -4 }
\file_if_exist_input:n { \l_@@_abstract_zh_tl }
- }
+ \group_end:
% \end{macrocode}
% \changes{v1.10.3.0}{2022/05/04}{使用弹性长度分隔关键词}
% 关键词弹性分隔间距。
% \begin{macrocode}
- \cs_new:Npn \@@_keywords_space: { \hspace{ 2em plus 1em minus 1em } }
+ \cs_new:Npn \@@_keywords_space: { \hspace { 2em plus 1em minus 1em } }
% \end{macrocode}
% 中文关键词,黑体小四号。
% \begin{macrocode}
- {
+ \group_begin:
\sffamily \zihao { -4 } \par
\@@_typeout_keywords:nNn
{ 关键词: } { \l_@@_keywords_zh_clist } { \@@_keywords_space: }
- }
+ \group_end:
\cleardoublepage
% \end{macrocode}
% 英文摘要,Times New Roman字体,小四号。
@@ -3815,19 +4814,19 @@
% \begin{macrocode}
\@@_n_chapter_head_ii:nn
{ ABSTRACT } { \rmfamily \zihao { 3 } \bfseries \centering }
- {
+ \group_begin:
\dim_set:Nn \parindent { 2 \ccwd }
\rmfamily \zihao { -4 }
\file_if_exist_input:n { \l_@@_abstract_en_tl }
- }
+ \group_end:
% \end{macrocode}
% 英文关键词,Times New Roman字体加粗,小四号。
% \begin{macrocode}
- {
+ \group_begin:
\rmfamily \zihao { -4 } \bfseries \par
\@@_typeout_keywords:nNn
{ Keywords: } { \l_@@_keywords_en_clist } { \@@_keywords_space: }
- }
+ \group_end:
\cleardoublepage
% \end{macrocode}
% \changes{v1.1.4.0}{2022/04/16}{为目录章节标题增加间距}
@@ -3848,18 +4847,1147 @@
%<*xdupgthesis>
% \end{macrocode}
% \subsubsection{研究生}
+% \paragraph{封面}
+% \begin{variable}
+% {
+% \l_@@_ac_master,
+% \l_@@_pro_master,
+% \l_@@_ac_phd,
+% \l_@@_pro_phd,
+% \l_@@_phd,
+% \l_@@_master,
+% \l_@@_ac,
+% \l_@@_pro
+% }
+% \changes{v1.16.0.0}{2022/05/22}{研究生类别}
+% \changes{v1.17.0.0}{2022/05/28}{增加学术和专业研究生布尔变量}
+% \changes{v1.18.0.0}{2022/05/29}{增加硕士和博士研究生布尔变量}
+% 研究生类别。
+% \begin{macrocode}
+\bool_new:N \l_@@_ac_master
+\bool_new:N \l_@@_pro_master
+\bool_new:N \l_@@_ac_phd
+\bool_new:N \l_@@_pro_phd
+\bool_new:N \l_@@_phd
+\bool_new:N \l_@@_master
+\bool_new:N \l_@@_ac
+\bool_new:N \l_@@_pro
+\ctex_at_end_preamble:n
+ {
+ \tl_if_eq:NnTF \l_@@_gr_type_tl { 硕士 }
+ {
+ \bool_set_true:N \l_@@_master
+ \tl_if_eq:NnTF \l_@@_degree_type_tl { 学术 }
+ { \bool_set_true:N \l_@@_ac_master }
+ { \bool_set_true:N \l_@@_pro_master }
+ }
+ {
+ \bool_set_true:N \l_@@_phd
+ \tl_if_eq:NnTF \l_@@_degree_type_tl { 学术 }
+ { \bool_set_true:N \l_@@_ac_phd }
+ { \bool_set_true:N \l_@@_pro_phd }
+ }
+ \tl_if_eq:NnTF \l_@@_degree_type_tl { 学术 }
+ { \bool_set_true:N \l_@@_ac }
+ { \bool_set_true:N \l_@@_pro }
+ }
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\@@_cover_i:nnnnn}
+% \changes{v1.16.0.0}{2022/05/22}{绘制研究生封面单行内容}
+% \changes{v1.17.0.0}{2022/05/28}{绘制研究生封面和提名页单行内容}
+% 绘制研究生封面和提名页单行内容。
+% \begin{arguments}
+% \item 盒子高度。
+% \item 字体族。
+% \item 字号。
+% \item 是否加粗。
+% \item 盒子内容。
+% \end{arguments}
+% \begin{macrocode}
+\cs_new:Npn \@@_cover_i:nnnnn #1#2#3#4#5
+ {
+ \dim_set:Nn \baselineskip { 20pt }
+ \vbox_to_ht:nn { #1 }
+ {
+ \vfill
+ \mode_leave_vertical:
+ \hfil
+ \use:c { #2 family } \zihao { #3 }
+ \str_if_eq:nnTF { #4 } { bf } { \bfseries } { }
+ #5
+ \hfil
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_cover_ii:nnnn}
+% \changes{v1.16.0.0}{2022/05/22}{绘制研究生封面论文信息}
+% \changes{v1.26.4.0}{2022/06/10}{研究生封面论文信息可指定宽度}
+% 绘制研究生封面论文信息。
+% \begin{arguments}
+% \item 标签宽度。
+% \item 标签名称。
+% \item 盒子宽度。
+% \item 盒子内容。
+% \end{arguments}
+% \begin{macrocode}
+\cs_new:Npn \@@_cover_ii:nnnn #1#2#3#4
+ {
+ \dim_set:Nn \baselineskip { 20pt }
+ \vbox_to_ht:nn { 25pt }
+ {
+ \vfill
+ \mode_leave_vertical:
+ \hfil
+ \hbox:n
+ {
+ \zihao { 4 } \bfseries
+ \hbox_to_wd:nn { #1 } { \sffamily #2 }
+ \skip_horizontal:n { 0.5em }
+ \@@_uline:n
+ {
+ \skip_horizontal:n { 9em - #1 }
+ \hbox_to_wd:nn { #3 } { \hfil \rmfamily #4 \hfil }
+ }
+ }
+ \hfil
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_cover_iii:nnnn}
+% \changes{v1.17.0.0}{2022/05/28}{绘制研究生中文提名页顶部信息}
+% 绘制研究生中文提名页顶部信息。
+% \begin{arguments}
+% \item 标签宽度。
+% \item 标签名称。
+% \item 值宽度。
+% \item 值内容。
+% \end{arguments}
+% \begin{macrocode}
+\cs_new:Npn \@@_cover_iii:nnnn #1#2#3#4
+ {
+ \dim_set:Nn \baselineskip { 20pt }
+ \hbox:n
+ {
+ \rmfamily \zihao { 5 } \bfseries
+ \hbox_to_wd:nn { #1 } { #2 }
+ \skip_horizontal:n { 0.5em }
+ \@@_uline:n { \hbox_to_wd:nn { #3 } { \hfil #4 \hfil } }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_month:n}
+% \changes{v1.18.0.0}{2022/05/29}{英文月份}
+% 英文月份。
+% \begin{macrocode}
+\cs_new:Npn \@@_en_month:n #1
+ {
+ \str_case:Vn #1
+ {
+ { 1 } { January }
+ { 2 } { February }
+ { 3 } { March }
+ { 4 } { April }
+ { 5 } { May }
+ { 6 } { June }
+ { 7 } { July }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { October }
+ { 11 } { November }
+ { 12 } { December }
+ { 01 } { January }
+ { 02 } { February }
+ { 03 } { March }
+ { 04 } { April }
+ { 05 } { May }
+ { 06 } { June }
+ { 07 } { July }
+ { 08 } { August }
+ { 09 } { September }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_zh_today:,\@@_en_today:}
+% \changes{v1.17.0.0}{2022/05/28}{中文今日年月}
+% \changes{v1.18.0.0}{2022/05/29}{英文今日年月}
+% 今日年月。
+% \begin{macrocode}
+\cs_new:Npn \@@_zh_today:
+ { \int_use:N \c_sys_year_int 年 \int_use:N \c_sys_month_int 月 }
+\cs_new:Npn \@@_en_today:
+ { \@@_en_month:n { \c_sys_month_int } ~ \int_use:N \c_sys_year_int }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_split_submit_date:N}
+% \changes{v1.17.0.0}{2022/05/28}{拆分提交日期为年和月}
+% 拆分提交日期为年和月。
+% \begin{macrocode}
+\seq_new:N \l_@@_submit_date_seq
+\cs_new:Npn \@@_split_submit_date:N #1
+ {
+ \seq_set_split:NnV \l_@@_submit_date_seq { - } \l_@@_submit_date_str
+ \clist_set_from_seq:NN #1 \l_@@_submit_date_seq
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_zh_submit_date:}
+% \changes{v1.17.0.0}{2022/05/28}{中文提交日期}
+% 中文提交日期。
+% \begin{macrocode}
+\clist_new:N \l_@@_submit_date_clist
+\cs_new:Npn \@@_zh_submit_date:
+ {
+ \str_if_empty:NTF \l_@@_submit_date_str
+ { \@@_zh_today: }
+ {
+ \@@_split_submit_date:N \l_@@_submit_date_clist
+ \clist_item:Nn \l_@@_submit_date_clist { 1 } 年
+ \clist_item:Nn \l_@@_submit_date_clist { 2 } 月
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_submit_date:}
+% \changes{v1.18.0.0}{2022/05/29}{英文提交日期}
+% 英文提交日期。
+% \begin{macrocode}
+\str_new:N \l_@@_submit_date_month_str
+\cs_new:Npn \@@_en_submit_date:
+ {
+ \str_if_empty:NTF \l_@@_submit_date_str
+ { \@@_en_today: }
+ {
+ \@@_split_submit_date:N \l_@@_submit_date_clist
+ \str_set:Nx \l_@@_submit_date_month_str
+ { \clist_item:Nn \l_@@_submit_date_clist { 2 } }
+ \@@_en_month:n { \l_@@_submit_date_month_str } ~
+ \clist_item:Nn \l_@@_submit_date_clist { 1 }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_cover_author_info:}
+% \changes{v1.26.4.0}{2022/06/10}{研究生封面底部作者信息}
+% 研究生封面底部作者信息。
+% \begin{macrocode}
+\cs_new:Npn \@@_cover_author_info:
+ {
+% \end{macrocode}
+% 计算作者信息最大宽度。
+% \begin{macrocode}
+ \rmfamily \zihao { 4 }
+ \dim_new:N \l_@@_cover_author_info_dim
+ \dim_set:Nn \l_@@_cover_author_info_dim { 7em }
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim { \l_@@_author_str }
+ \bool_if:NTF \l_@@_pro_master
+ {
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+ { \l_@@_supv_str \enskip \l_@@_supv_t_str }
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+ { \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+ }
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+ { \l_@@_supv_ent_str \enskip \l_@@_supv_ent_t_str }
+ }
+ {
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+ { \l_@@_supv_str \enskip \l_@@_supv_t_str }
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim
+ { \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+ }
+ }
+ \@@_str_max_dim:Nn \l_@@_cover_author_info_dim { \l_@@_degree_str }
+ \dim_add:Nn \l_@@_cover_author_info_dim { 3em }
+% \end{macrocode}
+% 排版封面论文信息。
+% \begin{macrocode}
+ \@@_cover_ii:nnnn { 4em } { 作者姓名 }
+ { \l_@@_cover_author_info_dim }
+ { \l_@@_author_str }
+ \bool_if:NTF \l_@@_pro_master
+ {
+ \@@_cover_ii:nnnn { 9em } { 学校导师姓名、职称 }
+ { \l_@@_cover_author_info_dim }
+ { \l_@@_supv_str \enskip \l_@@_supv_t_str }
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \@@_cover_ii:nnnn { 9em } { }
+ { \l_@@_cover_author_info_dim }
+ { \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+ }
+ \@@_cover_ii:nnnn { 9em } { 企业导师姓名、职称 }
+ { \l_@@_cover_author_info_dim }
+ { \l_@@_supv_ent_str \enskip \l_@@_supv_ent_t_str }
+ }
+ {
+ \@@_cover_ii:nnnn { 9em } { 指导教师姓名、职称 }
+ { \l_@@_cover_author_info_dim }
+ { \l_@@_supv_str \enskip \l_@@_supv_t_str }
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \@@_cover_ii:nnnn { 9em } { }
+ { \l_@@_cover_author_info_dim }
+ { \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+ }
+ }
+ \@@_cover_ii:nnnn { 6em } { 申请学位类别 }
+ { \l_@@_cover_author_info_dim }
+ { \l_@@_degree_str }
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{中文提名页}
+% \begin{macro}{\@@_zh_title_page_info:}
+% \changes{v1.26.7.0}{2022/06/11}{拆分研究生中文提名页底部信息}
+% 中文提名页底部信息。
+% \begin{macrocode}
+\cs_new:Npn \@@_zh_title_page_info:
+ {
+% \end{macrocode}
+% \changes{v1.26.6.0}{2022/06/11}{研究生中文提名页底部信息宽度测量}
+% 底部信息宽度测量。
+% \begin{macrocode}
+ \rmfamily \zihao { 4 }
+ \dim_new:N \l_@@_zh_title_page_info_dim
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 作者姓名:\l_@@_author_str }
+ \bool_if:NTF \l_@@_ac
+ {
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 一级学科:\l_@@_major_str }
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 二级学科(研究方向):\l_@@_sub_major_str }
+ }
+ {
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 领\qquad{}域:\l_@@_domain_str }
+ }
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 学位类别:\l_@@_degree_str }
+ \bool_if:NTF \l_@@_pro_master
+ {
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 学校导师姓名、职称:\l_@@_supv_str \enskip \l_@@_supv_t_str }
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 学校导师姓名、职称:\l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+ }
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 企业导师姓名、职称:\l_@@_supv_ent_str \enskip \l_@@_supv_ent_t_str }
+ }
+ {
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 指导教师姓名、职称:\l_@@_supv_str \enskip \l_@@_supv_t_str }
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 指导教师姓名、职称:\l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str }
+ }
+ }
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 学\qquad{}院:\l_@@_dept_str }
+ \@@_str_max_dim:Nn \l_@@_zh_title_page_info_dim
+ { 提交日期:\@@_zh_submit_date: }
+% \end{macrocode}
+% \changes{v1.26.6.0}{2022/06/11}{研究生中文提名页底部信息自动居中}
+% \changes{v1.26.10.0}{2022/06/17}{修正中文提名页底部信息字体系列}
+% 底部信息。
+% \begin{macrocode}
+ \dim_new:N \l_@@_zh_title_page_info_skip_dim
+ \dim_set_eq:NN \l_@@_zh_title_page_info_skip_dim \linewidth
+ \dim_sub:Nn \l_@@_zh_title_page_info_skip_dim { \l_@@_zh_title_page_info_dim }
+ \skip_horizontal:n { \dim_eval:n { \l_@@_zh_title_page_info_skip_dim / 2 } }
+ \vbox:n
+ {
+ \rmfamily \zihao { 4 }
+ \dim_set:Nn \baselineskip { 32pt }
+ { \bfseries 作者姓名: } \l_@@_author_str
+ \bool_if:NTF \l_@@_ac
+ {
+ \par
+ { \bfseries 一级学科: } \l_@@_major_str
+ \par
+ { \bfseries 二级学科(研究方向): } \l_@@_sub_major_str
+ }
+ {
+ \par
+ { \bfseries 领\qquad{}域: } \l_@@_domain_str
+ }
+ \par
+ { \bfseries 学位类别: } \l_@@_degree_str
+ \bool_if:NTF \l_@@_pro_master
+ {
+ \par
+ { \bfseries 学校导师姓名、职称: }
+ \l_@@_supv_str \enskip \l_@@_supv_t_str
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \par
+ \phantom { 学校导师姓名、职称: }
+ \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str
+ }
+ \par
+ { \bfseries 企业导师姓名、职称: }
+ \l_@@_supv_ent_str \enskip \l_@@_supv_ent_t_str
+ }
+ {
+ \par
+ { \bfseries 指导教师姓名、职称: }
+ \l_@@_supv_str \enskip \l_@@_supv_t_str
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \par
+ \phantom { 指导教师姓名、职称: }
+ \l_@@_supv_ii_str \enskip \l_@@_supv_ii_t_str
+ }
+ }
+ \par
+ { \bfseries 学\qquad{}院: } \l_@@_dept_str
+ \par
+ { \bfseries 提交日期: } \@@_zh_submit_date:
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_zh_title_page:}
+% \changes{v1.17.0.0}{2022/05/28}{中文提名页}
+% 中文提名页。
+% \begin{macrocode}
+\cs_new:Npn \@@_zh_title_page:
+ {
+% \end{macrocode}
+% 顶部信息。
+% \begin{macrocode}
+ \vbox:n { }
+ \skip_vertical:n { -7.5pt }
+ \dim_set:Nn \baselineskip { 15.6bp }
+ \vbox:n
+ {
+ \mode_leave_vertical:
+ \@@_cover_iii:nnnn { 4em } { 学校代码 } { 7em } { 10701 }
+ \hfill
+ \@@_cover_iii:nnnn { 3em } { 学号 } { 7em } { \l_@@_student_id_str }
+ }
+ \vbox:n
+ {
+ \mode_leave_vertical:
+ \@@_cover_iii:nnnn { 4em } { 分类号 } { 7em } { \l_@@_clc_str }
+ \hfill
+ \@@_cover_iii:nnnn { 3em } { 密级 } { 7em } { \l_@@_secret_lv_str }
+ }
+% \end{macrocode}
+% 学校名称和论文类型。
+% \begin{macrocode}
+ \@@_cover_i:nnnnn { 100pt } { sf } { 1 } { bf } { 西安电子科技大学 }
+ \@@_cover_i:nnnnn { 85pt } { rm } { -1 } { bf } { \l_@@_gr_type_tl 学位论文 }
+% \end{macrocode}
+% \changes{v1.18.1.0}{2022/05/30}{不拆分研究生中文提名页标题}
+% 论文标题。
+% \begin{macrocode}
+ \skip_vertical:n { 87.5pt }
+ \vbox_to_ht:nn { 150pt }
+ {
+ \rmfamily \zihao { 2 } \bfseries \centering
+ \dim_set:Nn \baselineskip { 30pt }
+ \l_@@_title_str
+ }
+% \end{macrocode}
+% 底部信息。
+% \begin{macrocode}
+ \group_begin:
+ \@@_zh_title_page_info:
+ \group_end:
+ \cleardoublepage
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{中文提名页}
+% \begin{macro}{\@@_en_title_supv:n}
+% \changes{v1.18.0.0}{2022/05/29}{英文提名页底部导师姓名拼音盒子}
+% 英文提名页底部导师姓名拼音盒子。
+% \begin{macrocode}
+\dim_new:N \l_@@_supv_dim
+\dim_new:N \l_@@_supv_max_dim
+\box_new:N \l_@@_supv_box
+\cs_new:Npn \@@_en_title_supv:n #1
+ {
+ \rmfamily \zihao { 3 }
+ \dim_zero:N \l_@@_supv_max_dim
+ \hbox_set:Nn \l_@@_supv_box { \l_@@_supv_en_str }
+ \dim_set:Nn \l_@@_supv_dim { \box_wd:N \l_@@_supv_box }
+ \dim_set:Nn \l_@@_supv_max_dim
+ { \dim_max:nn { \l_@@_supv_dim } { \l_@@_supv_max_dim } }
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \hbox_set:Nn \l_@@_supv_box { \l_@@_supv_ii_en_str }
+ \dim_set:Nn \l_@@_supv_dim { \box_wd:N \l_@@_supv_box }
+ \dim_set:Nn \l_@@_supv_max_dim
+ { \dim_max:nn { \l_@@_supv_dim } { \l_@@_supv_max_dim } }
+ }
+ \bool_if:NT \l_@@_pro_master
+ {
+ \hbox_set:Nn \l_@@_supv_box { \l_@@_supv_ent_en_str }
+ \dim_set:Nn \l_@@_supv_dim { \box_wd:N \l_@@_supv_box }
+ \dim_set:Nn \l_@@_supv_max_dim
+ { \dim_max:nn { \l_@@_supv_dim } { \l_@@_supv_max_dim } }
+ }
+ \hbox_to_wd:nn { \l_@@_supv_max_dim } { #1 \hfil } \quad
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_title_supv_t:n}
+% \changes{v1.18.0.0}{2022/05/29}{英文提名页底部导师英文职称盒子}
+% 英文提名页底部导师英文职称盒子。
+% \begin{macrocode}
+\dim_new:N \l_@@_supv_t_dim
+\dim_new:N \l_@@_supv_t_max_dim
+\box_new:N \l_@@_supv_t_box
+\cs_new:Npn \@@_en_title_supv_t:n #1
+ {
+ \rmfamily \zihao { 3 }
+ \dim_zero:N \l_@@_supv_t_max_dim
+ \hbox_set:Nn \l_@@_supv_t_box { \l_@@_supv_t_en_str }
+ \dim_set:Nn \l_@@_supv_t_dim { \box_wd:N \l_@@_supv_t_box }
+ \dim_set:Nn \l_@@_supv_t_max_dim
+ { \dim_max:nn { \l_@@_supv_t_dim } { \l_@@_supv_t_max_dim } }
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \hbox_set:Nn \l_@@_supv_t_box { \l_@@_supv_ii_t_en_str }
+ \dim_set:Nn \l_@@_supv_t_dim { \box_wd:N \l_@@_supv_t_box }
+ \dim_set:Nn \l_@@_supv_t_max_dim
+ { \dim_max:nn { \l_@@_supv_t_dim } { \l_@@_supv_t_max_dim } }
+ }
+ \bool_if:NT \l_@@_pro_master
+ {
+ \hbox_set:Nn \l_@@_supv_t_box { \l_@@_supv_ent_t_en_str }
+ \dim_set:Nn \l_@@_supv_t_dim { \box_wd:N \l_@@_supv_t_box }
+ \dim_set:Nn \l_@@_supv_t_max_dim
+ { \dim_max:nn { \l_@@_supv_t_dim } { \l_@@_supv_t_max_dim } }
+ }
+ \hbox_to_wd:nn { \l_@@_supv_t_max_dim } { #1 \hfil } \quad
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_title_page:}
+% \changes{v1.18.0.0}{2022/05/29}{英文提名页}
+% \changes{v1.26.1.0}{2022/06/07}{修复作者拼音为空无法编译}
+% \changes{v1.26.11.0}{2022/06/17}{修复非专业硕士英文提名页英文一级学科}
+% 英文提名页。
+% \begin{macrocode}
+\cs_new:Npn \@@_en_title_page:
+ {
+ \vbox:n { }
+ \skip_vertical:n { -3.5pt }
+ \dim_set:Nn \baselineskip { 30pt }
+ \vbox_to_ht:nn { 170pt }
+ {
+ \rmfamily \zihao { 2 } \bfseries \centering
+ \dim_set:Nn \baselineskip { 30pt }
+ \l_@@_title_en_str
+ }
+ \vbox_to_ht:nn { 360pt }
+ {
+ \rmfamily \zihao { 3 } \centering
+ \dim_set:Nn \baselineskip { 30pt }
+ A
+ \bool_if:NTF \l_@@_master { ~thesis~ } { ~dissertation~ }
+ submitted~to\\
+ XIDIAN~UNIVERSITY\\
+ in~partial~fulfillment~of~the~requirements\\
+ for~the~degree~of
+ \bool_if:NTF \l_@@_master { ~Master\\ } { ~Doctor~of~Philosophy\\ }
+ in
+ \bool_if:NTF \l_@@_pro_master
+ { ~\l_@@_degree_en_str\\ }
+ { ~\l_@@_major_en_str\\ }
+ }
+ \vbox:n
+ {
+ \rmfamily \zihao { 3 } \centering
+ \dim_set:Nn \baselineskip { 30pt }
+ By\\
+ \l_@@_author_en_str
+ \str_if_empty:NTF \l_@@_author_en_str
+ { \skip_vertical:N \baselineskip }
+ { \\ }
+ Supervisor:~\@@_en_title_supv:n { \l_@@_supv_en_str }
+ Title:~\@@_en_title_supv_t:n { \l_@@_supv_t_en_str } \\
+ \str_if_empty:NF \l_@@_supv_ii_str
+ {
+ \phantom { Supervisor:~ } \@@_en_title_supv:n { \l_@@_supv_ii_en_str }
+ \phantom { Title:~ } \@@_en_title_supv_t:n { \l_@@_supv_ii_t_en_str } \\
+ }
+ \bool_if:NT \l_@@_pro_master
+ {
+ Supervisor:~ \@@_en_title_supv:n { \l_@@_supv_ent_en_str }
+ Title:~ \@@_en_title_supv_t:n { \l_@@_supv_ent_t_en_str } \\
+ }
+ \@@_en_submit_date:
+ }
+ \cleardoublepage
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{声明页}
+% \begin{macro}{\@@_statement:}
+% \changes{v1.19.0.0}{2022/05/30}{学位论文独创性声明和关于论文使用授权的说明}
+% 学位论文独创性声明和关于论文使用授权的说明。
+% \begin{macrocode}
+\cs_new:Npn \@@_statement:
+ {
+ \vbox:n { }
+ \skip_vertical:n { -7.5pt }
+ \vbox_to_ht:nn { 60pt }
+ {
+ \rmfamily \zihao { 4 } \bfseries \centering
+ \dim_set:Nn \baselineskip { 20pt }
+ 西安电子科技大学\\
+ 学位论文独创性(或创新性)声明
+ }
+ \vbox_to_ht:nn { 140pt }
+ {
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \parindent { 2em }
+ \dim_set:Nn \baselineskip { 20pt }
+ 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指
+ 导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢
+ 中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包
+ 含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一
+ 同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
+ \par
+ 学位论文若有不实之处,本人承担一切法律责任。
+ \vfil
+ }
+ \vbox_to_ht:nn { 175pt }
+ {
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \parindent { 2em }
+ \dim_set:Nn \baselineskip { 20pt }
+ 本人签名:\@@_uline:n { \skip_horizontal:n { 10em } }
+ \hfill
+ 日\qquad{}期:\@@_uline:n { \skip_horizontal:n { 10em } }
+ }
+ \vbox_to_ht:nn { 60pt }
+ {
+ \rmfamily \zihao { 4 } \bfseries \centering
+ \dim_set:Nn \baselineskip { 20pt }
+ 西安电子科技大学\\
+ 关于论文使用授权的说明
+ }
+ \vbox_to_ht:nn { 140pt }
+ {
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \parindent { 2em }
+ \dim_set:Nn \baselineskip { 20pt }
+ 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校
+ 攻读学位期间论文工作的知识产权属于西安电子科技大学。学校有权保留送交论文
+ 的复印件,允许查阅、借阅论文;学校可以公布论文的全部或部分内容,允许采用
+ 影印、缩印或其它复制手段保存论文。同时本人保证,结合学位论文研究成果完成
+ 的论文、发明专利等成果,署名单位为西安电子科技大学。
+ \par
+ 保密的学位论文在
+ \str_if_eq:NNTF \l_@@_secret_lv_str { 秘密 }
+ {
+ \str_if_empty:NTF \l_@@_secret_year_str
+ { \@@_uline:n { \skip_horizontal:n { 1.5em } } }
+ { \@@_uline:n { \enskip \l_@@_secret_year_str \enskip } }
+ }
+ { \@@_uline:n { \skip_horizontal:n { 1.5em } } }
+ 年解密后适用本授权书。
+ \vfil
+ }
+ \vbox:n
+ {
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \parindent { 2em }
+ \dim_set:Nn \baselineskip { 40pt }
+ 本人签名:\@@_uline:n { \skip_horizontal:n { 10em } }
+ \hfill
+ 导师签名:\@@_uline:n { \skip_horizontal:n { 10em } }
+ \par
+ 日\qquad{}期:\@@_uline:n { \skip_horizontal:n { 10em } }
+ \hfill
+ 日\qquad{}期:\@@_uline:n { \skip_horizontal:n { 10em } }
+ }
+ \cleardoublepage
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{中英文摘要}
+% \begin{macro}{\@@_zh_abstract_keywords:}
+% \changes{v1.20.0.0}{2022/05/30}{中文摘要和关键词}
+% \changes{v1.28.1.0}{2022/06/18}{添加中文摘要至目录}
+% \changes{v1.28.2.0}{2022/06/18}{修正英文语言下中文摘要标题样式}
+% 中文摘要和关键词。
+% \begin{macrocode}
+\cs_new:Npn \@@_zh_abstract_keywords:
+ {
+% \end{macrocode}
+% 中文摘要。
+% \begin{macrocode}
+ \@@_n_chapter_head_toc:nn { 摘要 } { 摘 { \quad } 要 }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 摘要 } }
+ \group_begin:
+ \dim_set:Nn \parindent { 2 \ccwd }
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \baselineskip { 20pt }
+ \file_if_exist_input:n { \l_@@_abstract_zh_tl }
+ \group_end:
+% \end{macrocode}
+% 中文关键词。
+% \begin{macrocode}
+ \group_begin:
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \baselineskip { 20pt }
+ \skip_vertical:n { 20pt }
+ \@@_typeout_keywords:nNn
+ { \textbf { 关键词 } : } { \l_@@_keywords_zh_clist } { , }
+ \group_end:
+ \cleardoublepage
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_en_abstract_keywords:}
+% \changes{v1.20.0.0}{2022/05/30}{英文摘要和关键词}
+% \changes{v1.28.1.0}{2022/06/18}{添加英文摘要至目录}
+% \changes{v1.28.2.0}{2022/06/18}{修正英文摘要标题样式}
+% \changes{v1.28.3.0}{2022/06/18}{修正目录中英文摘要标题样式}
+% 英文摘要和关键词。
+% \begin{macrocode}
+\cs_new:Npn \@@_en_abstract_keywords:
+ {
+% \end{macrocode}
+% 英文摘要。
+% \begin{macrocode}
+ \@@_n_chapter_head_toc_ii:nn
+ { \textrm { ABSTRACT } } { \centering \rmfamily \zihao { 3 } \dim_set:Nn \baselineskip { 20pt } }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { \textrm { ABSTRACT } } }
+ \group_begin:
+ \dim_set:Nn \parskip { 20pt }
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \baselineskip { 20pt }
+ \file_if_exist:nT { \l_@@_abstract_en_tl } { \skip_vertical:n { -20pt } }
+ \file_if_exist_input:n { \l_@@_abstract_en_tl }
+ \group_end:
+% \end{macrocode}
+% 英文关键词。
+% \begin{macrocode}
+ \group_begin:
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \baselineskip { 20pt }
+ \skip_vertical:n { 20pt }
+ \@@_typeout_keywords:nNn
+ { \textbf { Keywords } : } { \l_@@_keywords_en_clist } { ,~ }
+ \group_end:
+ \cleardoublepage
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{图表索引}
+% \begin{macro}{\@@_loft_label_num_width:nN}
+% \changes{v1.21.0.0}{2022/06/01}{计算图表索引编号标签最大宽度}
+% 计算图表索引编号标签最大宽度。
+% \begin{macrocode}
+\cs_new:Npn \@@_loft_label_num_width:nN #1#2
+ {
+% \end{macrocode}
+% 读取索引文件。
+% \begin{macrocode}
+ \tl_clear_new:N \l_@@_loft_tl
+ \file_get:nnN
+ { \jobname.#1 }
+ { \let\do\@makeother \dospecials }
+ \l_@@_loft_tl
+% \end{macrocode}
+% 使用正则表达式匹配索引编号。
+% \begin{macrocode}
+ \seq_clear_new:N \l_@@_loft_label_num_seq
+ \cs_generate_variant:Nn \regex_extract_all:nnN { nVN }
+ \str_if_eq:nnTF { #1 } { lof }
+ {
+ \regex_extract_all:nVN
+ { \\contentsline\ \{figure\}\{\\numberline\ \{\K[0-9A-Z\.]+ }
+ \l_@@_loft_tl \l_@@_loft_label_num_seq
+ }
+ {
+ \regex_extract_all:nVN
+ { \\contentsline\ \{table\}\{\\numberline\ \{\K[0-9A-Z\.]+ }
+ \l_@@_loft_tl \l_@@_loft_label_num_seq
+ }
+% \end{macrocode}
+% 计算所有索引编号的最大宽度。
+% \begin{macrocode}
+ \dim_zero_new:N \l_@@_loft_label_num_dim
+ \seq_map_inline:Nn \l_@@_loft_label_num_seq
+ {
+ \@@_get_text_width:Nn \l_@@_loft_label_num_dim { ##1 }
+ \dim_set:Nn #2 { \dim_max:nn { \l_@@_loft_label_num_dim } { #2 } }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_list_of_figure:}
+% \changes{v1.21.0.0}{2022/05/31}{插图索引}
+% \changes{v1.28.1.0}{2022/06/18}{添加插图索引至目录}
+% \changes{v1.29.3.0}{2022/06/19}{修正插图索引字号}
+% 插图索引。
+% \begin{macrocode}
+\cs_new:Npn \@@_list_of_figure:
+ {
+ \@@_n_chapter_head_toc:n
+ { \@@_lang_switch:nn { 插图索引 } { List~of~Figures } }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 插图索引 } }
+ \group_begin:
+ \addtocontents { lof } { \vspace { 10pt } }
+ \renewcommand { \addvspace } [1] { }
+% \end{macrocode}
+% 配置文本标签及宽度。
+% \begin{macrocode}
+ \tl_set:Nn \cftfigpresnum { \figurename \space }
+ \dim_zero_new:N \l_@@_lof_label_dim
+ \@@_get_text_width:NV \l_@@_lof_label_dim \cftfigpresnum
+ \dim_set:Nn \cftfignumwidth { \l_@@_lof_label_dim }
+% \end{macrocode}
+% 配置索引编号标签宽度。
+% \begin{macrocode}
+ \dim_new:N \l_@@_lof_label_num_max_dim
+ \@@_loft_label_num_width:nN { lof } \l_@@_lof_label_num_max_dim
+ \dim_add:Nn \cftfignumwidth { \l_@@_lof_label_num_max_dim }
+ \dim_add:Nn \cftfignumwidth { .75em }
+ \dim_set:Nn \cftfigindent { 0pt }
+% \end{macrocode}
+% 排版索引表。
+% \begin{macrocode}
+ \rmfamily \zihao { -4 } \dim_set:Nn \baselineskip { 20pt }
+ \@starttoc { lof }
+ \group_end:
+ \cleardoublepage
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_list_of_table:}
+% \changes{v1.21.0.0}{2022/05/31}{表格索引}
+% \changes{v1.28.1.0}{2022/06/18}{添加表格索引至目录}
+% \changes{v1.29.3.0}{2022/06/19}{修正表格索引字号}
+% 表格索引。
+% \begin{macrocode}
+\cs_new:Npn \@@_list_of_table:
+ {
+ \@@_n_chapter_head_toc:n
+ { \@@_lang_switch:nn { 表格索引 } { List~of~Tables } }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 表格索引 } }
+ \group_begin:
+ \addtocontents { lot } { \vspace { 10pt } }
+ \renewcommand { \addvspace } [1] { }
+% \end{macrocode}
+% 配置文本标签及宽度。
+% \begin{macrocode}
+ \tl_set:Nn \cfttabpresnum { \tablename \space }
+ \dim_zero_new:N \l_@@_lot_label_dim
+ \@@_get_text_width:NV \l_@@_lot_label_dim \cfttabpresnum
+ \dim_set:Nn \cfttabnumwidth { \l_@@_lot_label_dim }
+% \end{macrocode}
+% 配置索引编号标签宽度。
+% \begin{macrocode}
+ \dim_new:N \l_@@_lot_label_num_max_dim
+ \@@_loft_label_num_width:nN { lot } \l_@@_lot_label_num_max_dim
+ \dim_add:Nn \cfttabnumwidth { \l_@@_lot_label_num_max_dim }
+ \dim_add:Nn \cfttabnumwidth { .75em }
+ \dim_set:Nn \cfttabindent { 0pt }
+% \end{macrocode}
+% 排版索引表。
+% \begin{macrocode}
+ \rmfamily \zihao { -4 } \dim_set:Nn \baselineskip { 20pt }
+ \@starttoc { lot }
+ \group_end:
+ \cleardoublepage
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{对照表}
+% \begin{macro}{\UseTblrLibrary,\NewTblrTheme}
+% \changes{v1.22.0.0}{2022/06/05}{对照表样式}
+% 对照表样式。
+% \begin{macrocode}
+\ctex_at_end_preamble:n
+ {
+ \bool_new:N \l_@@_load_tabularray_bool
+ \bool_if:NF \l_@@_customize_los_bool
+ { \bool_set_true:N \l_@@_load_tabularray_bool }
+ \bool_if:NF \l_@@_customize_loa_bool
+ { \bool_set_true:N \l_@@_load_tabularray_bool }
+ \bool_if:NT \l_@@_load_tabularray_bool
+ {
+ \RequirePackage { tabularray }
+ \UseTblrLibrary { functional }
+ \NewTblrTheme { losloatheme }
+ {
+ \DefTblrTemplate { caption-tag } { default } { }
+ \DefTblrTemplate { caption-sep } { default } { }
+ \DefTblrTemplate { caption-text } { default } { }
+ \DefTblrTemplate { conthead-text } { default } { }
+ \DefTblrTemplate { contfoot-text } { default } { }
+ }
+ }
+ \cs_generate_variant:Nn \__tblr_parse_colrow_spec:nn { nV }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_symbols_list:}
+% \changes{v1.22.0.0}{2022/06/05}{符号对照表}
+% \changes{v1.26.2.0}{2022/06/09}{修复符号对照表列格式解析错误}
+% \changes{v1.26.3.0}{2022/06/09}{修复符号对照表文件导入接口}
+% \changes{v1.26.5.0}{2022/06/10}{修复符号对照表空文件标题行错误}
+% \changes{v1.28.1.0}{2022/06/18}{添加符号对照表至目录}
+% \changes{v1.29.1.0}{2022/06/19}{修复符号对照表引起的章节段前段后间距错误}
+% 符号对照表。
+% \begin{macrocode}
+\cs_new:Npn \@@_symbols_list:
+ {
+ \@@_n_chapter_head_toc:n
+ { \@@_lang_switch:nn { 符号对照表 } { List~of~Symbols } }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 符号对照表 } }
+% \end{macrocode}
+% 是否完全自定义符号对照表。
+% \begin{macrocode}
+ \bool_if:NTF \l_@@_customize_los_bool
+ { \file_if_exist_input:n { \l_@@_los_str } }
+ {
+% \end{macrocode}
+% 配置符号对照表标题行。
+% \begin{macrocode}
+ \tl_new:N \l_@@_los_head_tl
+ \@@_lang_switch:nn
+ { \tl_set:Nn \l_@@_los_head_tl { 符号 & 符号名称 \\ } }
+ { \tl_set:Nn \l_@@_los_head_tl { Notation & Description \\ } }
+% \end{macrocode}
+% 是否每页均显示符号对照表标题行。
+% \begin{macrocode}
+ \tl_new:N \l_@@_los_rowhead_tl
+ \bool_if:NTF \l_@@_title_row_los_bool
+ { \tl_set:Nn \l_@@_los_rowhead_tl { 1 } }
+ { \tl_set:Nn \l_@@_los_rowhead_tl { 0 } }
+% \end{macrocode}
+% 使用\envx{longtblr}环境排版符号对照表。
+% \begin{macrocode}
+ \tl_new:N \l_@@_los_begin_tblr_tl
+ \tl_set:Nx \l_@@_los_begin_tblr_tl
+ {
+ \exp_not:n
+ {
+ \begin { longtblr }
+ [
+ evaluate = \fileIfExistInput,
+ expand = \l_@@_los_head_tl,
+ theme = losloatheme
+ ]
+ }
+ {
+ colspec = { \exp_not:V \l_@@_colspec_los_tl },
+ \exp_not:n
+ {
+ rowhead = \int_compare:nNnTF
+ { \value { rowcount } } > { 1 }
+ { \l_@@_los_rowhead_tl } { 0 },
+ rows = { font = \rmfamily \zihao { -4 } },
+ stretch = 0,
+ rowsep = { 3pt },
+ rows = { ht = 14pt }
+ }
+ }
+ }
+ \tl_use:N \l_@@_los_begin_tblr_tl
+ \l_@@_los_head_tl
+ \fileIfExistInput { \l_@@_los_str }
+ \end { longtblr }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_abbreviations_list:}
+% \changes{v1.22.0.0}{2022/06/05}{缩略语对照表}
+% \changes{v1.26.2.0}{2022/06/09}{修复缩略语对照表列格式解析错误}
+% \changes{v1.26.3.0}{2022/06/09}{修复缩略语对照表文件导入接口}
+% \changes{v1.26.5.0}{2022/06/10}{修复缩略语对照表空文件标题行错误}
+% \changes{v1.28.1.0}{2022/06/18}{添加缩略语对照表至目录}
+% \changes{v1.29.1.0}{2022/06/19}{修复缩略语对照表引起的章节段前段后间距错误}
+% 缩略语对照表。
+% \begin{macrocode}
+\cs_new:Npn \@@_abbreviations_list:
+ {
+ \@@_n_chapter_head_toc:n
+ { \@@_lang_switch:nn { 缩略语对照表 } { List~of~Abbreviations } }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 缩略语对照表 } }
+% \end{macrocode}
+% 是否完全自定义缩略语对照表。
+% \begin{macrocode}
+ \bool_if:NTF \l_@@_customize_loa_bool
+ { \file_if_exist_input:n { \l_@@_loa_str } }
+ {
+% \end{macrocode}
+% 配置缩略语对照表标题行。
+% \begin{macrocode}
+ \tl_new:N \l_@@_loa_head_tl
+ \@@_lang_switch:nn
+ {
+ \tl_set:Nn \l_@@_loa_head_tl
+ { 缩略语 & 英文全称 & 中文对照 \\ }
+ }
+ {
+ \tl_set:Nn \l_@@_loa_head_tl
+ { Abbreviation & English~Full~Name & Chinese~Full~Name \\ }
+ }
+% \end{macrocode}
+% 是否每页均显示缩略语对照表标题行。
+% \begin{macrocode}
+ \tl_new:N \l_@@_loa_rowhead_tl
+ \bool_if:NTF \l_@@_title_row_loa_bool
+ { \tl_set:Nn \l_@@_loa_rowhead_tl { 1 } }
+ { \tl_set:Nn \l_@@_loa_rowhead_tl { 0 } }
+% \end{macrocode}
+% 使用\envx{longtblr}环境排版缩略语对照表。
+% \begin{macrocode}
+ \tl_new:N \l_@@_loa_begin_tblr_tl
+ \tl_set:Nx \l_@@_loa_begin_tblr_tl
+ {
+ \exp_not:n
+ {
+ \begin { longtblr }
+ [
+ evaluate = \fileIfExistInput,
+ expand = \l_@@_loa_head_tl,
+ theme = losloatheme
+ ]
+ }
+ {
+ colspec = { \exp_not:V \l_@@_colspec_loa_tl },
+ \exp_not:n
+ {
+ rowhead = \int_compare:nNnTF
+ { \value { rowcount } } > { 1 }
+ { \l_@@_loa_rowhead_tl } { 0 },
+ rows = { font = \rmfamily \zihao { -4 } },
+ stretch = 0,
+ rowsep = { 3pt },
+ rows = { ht = 14pt }
+ }
+ }
+ }
+ \tl_use:N \l_@@_loa_begin_tblr_tl
+ \l_@@_loa_head_tl
+ \fileIfExistInput { \l_@@_loa_str }
+ \end { longtblr }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_add_zh_toc:nn}
+% \changes{v1.30.0.0}{2022/06/20}{添加章节至中文目录}
+% \begin{macrocode}
+\cs_new:Npn \@@_add_zh_toc:nn #1#2
+ {
+ \str_if_eq:NNTF { #1 } { chapter }
+ { \phantomsection \addcontentsline { zh.toc } { #1 } { \@@_sf_family: #2 } }
+ { \phantomsection \addcontentsline { zh.toc } { #1 } { #2 } }
+ }
+% \end{macrocode}
+% \end{macro}
+% \paragraph{\tn{frontmatter}}
% \begin{macro}{\frontmatter}
% \changes{v1.5.0.0}{2022/05/01}{设置封面页边距}
% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
-% 排版正文前部分。
+% \changes{v1.16.0.0}{2022/05/22}{绘制研究生封面}
+% 排版前言部分。
% \begin{macrocode}
\renewcommand { \frontmatter }
{
\loadgeometry { cover }
\pagestyle { empty }
+ \dim_set:Nn \parindent { 0pt }
+ \dim_set:Nn \baselineskip { 20pt }
+ \@@_add_bookmark:n { \@@_lang_switch:nn { 封面 } { Cover } }
+% \end{macrocode}
+% \changes{v1.18.1.0}{2022/05/30}{不拆分研究生封面标题}
+% 封面标题。
+% \begin{macrocode}
+ \vbox:n { }
+ \skip_vertical:n { 435pt }
+ \vbox_to_ht:nn { 120pt }
+ {
+ \rmfamily \zihao { 2 } \bfseries \centering
+ \dim_set:Nn \baselineskip { 30pt }
+ \l_@@_title_str
+ }
+% \end{macrocode}
+% 封面底部作者信息。
+% \begin{macrocode}
+ \@@_cover_author_info:
+ \cleardoublepage
+% \end{macrocode}
+% 中英文提名页。
+% \begin{macrocode}
+ \@@_lang_switch:nn
+ { \@@_zh_title_page: \@@_en_title_page: }
+ { \@@_en_title_page: \@@_zh_title_page: }
+% \end{macrocode}
+% 声明页。
+% \begin{macrocode}
+ \@@_statement:
+% \end{macrocode}
+% 更改页面样式。
+% \begin{macrocode}
\@@_load_main_geometry:
\pagestyle { front }
\pagenumbering { Roman }
+ \dim_set:Nn \baselineskip { 20pt }
+% \end{macrocode}
+% 中英文摘要。
+% \begin{macrocode}
+ \@@_lang_switch:nn
+ { \@@_zh_abstract_keywords: \@@_en_abstract_keywords: }
+ { \@@_en_abstract_keywords: \@@_zh_abstract_keywords: }
+% \end{macrocode}
+% 图表索引。
+% \begin{macrocode}
+ \@@_list_of_figure:
+ \@@_list_of_table:
+% \end{macrocode}
+% 符号对照表和缩略语对照表。
+% \begin{macrocode}
+ \@@_symbols_list:
+ \@@_abbreviations_list:
+% \end{macrocode}
+% \changes{v1.23.0.0}{2022/06/05}{研究生学位论文目录}
+% \changes{v1.28.0.0}{2022/06/18}{设置研究生学位论文目录深度}
+% 目录。
+% \begin{macrocode}
+ \setcounter { tocdepth } { 2 }
+ \@@_n_chapter_head:nn
+ { \@@_lang_switch:nn { 目录 } { Contents } }
+ { \@@_lang_switch:nn { 目 { \quad } 录 } { Contents } }
+ \@starttoc { toc }
+ \cleardoublepage
+% \end{macrocode}
+% \changes{v1.30.0.0}{2022/06/20}{英文研究生学位论文中文目录}
+% 英文研究生学位论文中文目录。
+% \begin{macrocode}
+ \@@_lang_switch:nn { }
+ {
+ \setcounter { tocdepth } { 2 }
+ \@@_n_chapter_head:nn { 目录 } { \@@_sf_family: 目 { \quad } 录 }
+ \@starttoc { zh.toc }
+ \cleardoublepage
+ }
}
% \end{macrocode}
% \end{macro}
@@ -3867,7 +5995,7 @@
%</xdupgthesis>
%<*xduugthesis>
% \end{macrocode}
-% \subsection{正文}
+% \subsection{正文部分}
% \subsubsection{本科生}
% \begin{macro}{\mainmatter}
% \changes{v0.8.0.0}{2022/04/12}{支持对称页边距}
@@ -3883,8 +6011,62 @@
}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+%</xduugthesis>
+%<*xdupgthesis>
+% \end{macrocode}
+% \subsubsection{研究生}
+% \begin{macro}{\mainmatter}
+% \changes{v1.5.0.0}{2022/05/01}{设置正文页边距}
+% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
+% \changes{v1.23.1.0}{2022/06/05}{设置正文字号和行间距}
+% 排版正文部分。
+% \begin{macrocode}
+\renewcommand { \mainmatter }
+ {
+ \@@_load_main_geometry:
+ \pagestyle { plain }
+ \pagenumbering { arabic }
+ \dim_set:Nn \parindent { 2 \ccwd }
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \baselineskip { 20pt }
+% \end{macrocode}
+% \changes{v1.30.0.0}{2022/06/20}{英文研究生学位论文目录中正文一二三级中英双语标题}
+% 英文研究生学位论文目录中正文一二三级中英双语标题。
+% \begin{macrocode}
+ \@@_lang_switch:nn { }
+ {
+ \cs_new_eq:NN \@@_org_chapter:n \chapter
+ \RenewDocumentCommand { \chapter } { m m }
+ {
+ \@@_org_chapter:n { ##1 }
+ \@@_add_zh_toc:nn { chapter }
+ { \numberline { 第 \chinese { chapter } 章 \hspace { .3em } } ##2 }
+ }
+ \cs_new_eq:NN \@@_org_section:n \section
+ \RenewDocumentCommand { \section } { m m }
+ {
+ \@@_org_section:n { ##1 }
+ \@@_add_zh_toc:nn { section } { \numberline { \thesection } ##2 }
+ }
+ \cs_new_eq:NN \@@_org_subsection:n \subsection
+ \RenewDocumentCommand { \subsection } { m m }
+ {
+ \@@_org_subsection:n { ##1 }
+ \@@_add_zh_toc:nn { subsection } { \numberline { \thesubsection } ##2 }
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</xdupgthesis>
+%<*xduugthesis>
+% \end{macrocode}
+% \subsection{后记部分}
+% \subsubsection{本科生}
% \begin{macro}{\backmatter}
-% 排版正文后部分。
+% 排版后记部分。
% \begin{macrocode}
\renewcommand { \backmatter }
{
@@ -3895,11 +6077,11 @@
\@@_n_chapter_head_toc:nn
{ \@@_lang_switch:nn { 致谢 } { Acknowledgements } }
{ \@@_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } }
- {
+ \group_begin:
\dim_set:Nn \parindent { 2 \ccwd }
\rmfamily \zihao { -4 }
\file_if_exist_input:n { \l_@@_ack_tl }
- }
+ \group_end:
% \end{macrocode}
% 参考文献。
% \changes{v0.2.1.0}{2022/04/04}{参考文献添加至目录}
@@ -3909,7 +6091,7 @@
% \begin{macrocode}
\cs_set:Npn \bibname { \@@_lang_switch:nn { 参考文献 } { Bibliography } }
\@@_n_chapter_head_toc:n { \bibname }
- {
+ \group_begin:
\tl_if_eq:NnTF \l_@@_bib_tool_tl { bibtex }
{
\cs_set:Npn \bibsection { }
@@ -3921,27 +6103,154 @@
\cs_set:Npn \bibfont { \@@_rm_family: \zihao { 5 } }
\printbibliography
}
- }
+ \group_end:
}
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
%</xduugthesis>
-% \end{macrocode}
-% \begin{macrocode}
%<*xdupgthesis>
% \end{macrocode}
% \subsubsection{研究生}
-% \begin{macro}{\mainmatter}
-% \changes{v1.5.0.0}{2022/05/01}{设置正文页边距}
-% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
-% 排版正文部分。
+% \begin{macro}{\RequirePackage,\newenvironment}
+% \changes{v1.26.0.0}{2022/06/07}{作者简介样式}
+% 作者简介样式。
% \begin{macrocode}
-\renewcommand { \mainmatter }
+\ctex_at_end_preamble:n
{
- \@@_load_main_geometry:
- \pagestyle { plain }
- \pagenumbering { arabic }
+% \end{macrocode}
+% 计算列表和表格缩进距离。
+% \begin{macrocode}
+ \dim_new:N \l_@@_bio_indent_dim
+ \box_new:N \l_@@_bio_indent_box
+ \hbox_set:Nn \l_@@_bio_indent_box { \rmfamily \zihao { -3 } \bfseries 1. \quad}
+ \dim_set:Nn \l_@@_bio_indent_dim { \box_wd:N \l_@@_bio_indent_box }
+% \end{macrocode}
+% 定义教育背景表格环境。
+% \begin{macrocode}
+ \bool_if:NF \l_@@_customize_edubg_bool
+ {
+ \RequirePackage { tabularray }
+ \newenvironment { edubg }
+ {
+ \dim_set:Nn \parindent { 0pt }
+ \begin { tblr }
+ {
+ colspec = { @{ \skip_horizontal:N \l_@@_bio_indent_dim } lX @{ } },
+ rows = { font = \zihao { -4 } \dim_set:Nn \baselineskip { 20pt } }
+ }
+ }
+ {
+ \end { tblr }
+ \dim_set:Nn \parindent { 2 \ccwd }
+ }
+ }
+% \end{macrocode}
+% 定义研究成果列表。
+% \begin{macrocode}
+ \bool_if:NF \l_@@_customize_resresult_bool
+ {
+ \RequirePackage { enumitem }
+ \SetEnumitemKey { resresult }
+ {
+ label = {[}\arabic*{]},
+ left = \l_@@_bio_indent_dim,
+ align = right,
+ parsep = 0pt,
+ itemsep = 0pt,
+ topsep = 0pt
+ }
+ \newenvironment { resresult }
+ { \begin { enumerate } [ resresult ] }
+ { \end { enumerate } }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\backmatter}
+% 排版后记部分。
+% \begin{macrocode}
+\renewcommand { \backmatter }
+ {
+% \end{macrocode}
+% \changes{v1.30.0.0}{2022/06/20}{恢复英文研究生学位论文后记一二三级标题命令}
+% 恢复英文研究生学位论文后记一二三级标题命令。
+% \begin{macrocode}
+ \@@_lang_switch:nn { }
+ {
+ \cs_set_eq:NN \chapter \@@_org_chapter:n
+ \cs_set_eq:NN \section \@@_org_section:n
+ \cs_set_eq:NN \subsection \@@_org_subsection:n
+ }
+% \end{macrocode}
+% \changes{v1.25.0.0}{2022/06/05}{研究生学位论文参考文献}
+% 参考文献。
+% \begin{macrocode}
+ \cs_set:Npn \bibname { \@@_lang_switch:nn { 参考文献 } { Bibliography } }
+ \@@_n_chapter_head_toc:n { \bibname }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 参考文献 } }
+ \group_begin:
+ \tl_if_eq:NnTF \l_@@_bib_tool_tl { bibtex }
+ {
+ \cs_set:Npn \bibsection { }
+ \rmfamily \zihao { 5 }
+ \dim_set:Nn \baselineskip { 20pt }
+ \bibliography { \l_@@_bib_file_clist }
+ }
+ {
+ \defbibheading { bibliography } [ ] { }
+ \cs_set:Npn \bibfont
+ {
+ \rmfamily \zihao { 5 }
+ \dim_set:Nn \baselineskip { 20pt }
+ }
+ \printbibliography
+ }
+ \group_end:
+% \end{macrocode}
+% \changes{v1.24.0.0}{2022/06/05}{研究生学位论文致谢}
+% 致谢。
+% \begin{macrocode}
+ \@@_n_chapter_head_toc:nn
+ { \@@_lang_switch:nn { 致谢 } { Acknowledgements } }
+ { \@@_lang_switch:nn { 致 { \quad } 谢 } { Acknowledgements } }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 致谢 } }
+ \group_begin:
+ \dim_set:Nn \parindent { 2 \ccwd }
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \baselineskip { 20pt }
+ \file_if_exist_input:n { \l_@@_ack_tl }
+ \group_end:
+% \end{macrocode}
+% \changes{v1.26.0.0}{2022/06/07}{研究生学位论文作者简介}
+% \changes{v1.28.4.0}{2022/06/18}{移除研究生学位论文目录中作者简介二三级标题}
+% 作者简介。
+% \begin{macrocode}
+ \@@_n_chapter_head_toc:n
+ { \@@_lang_switch:nn { 作者简介 } { Author~Biography } }
+ \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 作者简介 } }
+ \group_begin:
+ \dim_set:Nn \parindent { 2 \ccwd }
+ \rmfamily \zihao { -4 }
+ \dim_set:Nn \baselineskip { 20pt }
+% \end{macrocode}
+% 配置作者简介部分标题样式。
+% \begin{macrocode}
+ \ctexset
+ {
+ section / number = { \arabic { section } . },
+ section / format = { \rmfamily \zihao { -3 } \bfseries \raggedright },
+ subsection / number = { \arabic { section } . \arabic { subsection } },
+ subsection / format = { \rmfamily \zihao { 4 } \bfseries \raggedright },
+ subsection / indent = { \l_@@_bio_indent_dim }
+ }
+ \setcounter { section } { 0 }
+ \addtocontents { toc } { \setcounter { tocdepth } { 0 } }
+% \end{macrocode}
+% 作者简介文件。
+% \begin{macrocode}
+ \file_if_exist_input:n { \l_@@_bio_str }
+ \group_end:
}
% \end{macrocode}
% \end{macro}
diff --git a/macros/xetex/latex/xduts/xduts.pdf b/macros/xetex/latex/xduts/xduts.pdf
index 4160cedd52..c37cd0b7dc 100644
--- a/macros/xetex/latex/xduts/xduts.pdf
+++ b/macros/xetex/latex/xduts/xduts.pdf
Binary files differ