summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-29 03:00:54 +0000
committerNorbert Preining <norbert@preining.info>2022-06-29 03:00:54 +0000
commit1803d67dcb084b1d6b825dd2f1a39df83c11db02 (patch)
tree083814d64daa39afbd3ceea4804d903a2585077a /macros
parent2ef43af0215fc52966c9bbd8d5df6db6d6af224b (diff)
CTAN sync 202206290300
Diffstat (limited to 'macros')
-rw-r--r--macros/generic/reverxii/README.md (renamed from macros/plain/contrib/reverxii/README.md)0
-rw-r--r--macros/generic/reverxii/reverxii.dtx (renamed from macros/plain/contrib/reverxii/reverxii.dtx)0
-rw-r--r--macros/generic/reverxii/reverxii.pdf (renamed from macros/plain/contrib/reverxii/reverxii.pdf)bin234070 -> 234070 bytes
-rw-r--r--macros/generic/reverxii/reverxii.tex (renamed from macros/plain/contrib/reverxii/reverxii.tex)0
-rw-r--r--macros/latex/contrib/asternote/README.md32
-rw-r--r--macros/latex/contrib/asternote/asternote-en.md74
-rw-r--r--macros/latex/contrib/asternote/asternote-ja.md74
-rw-r--r--macros/latex/contrib/asternote/asternote.sty143
-rw-r--r--macros/latex/contrib/asternote/asternote_example.tex19
-rw-r--r--macros/latex/contrib/hideanswer/README.md30
-rw-r--r--macros/latex/contrib/hideanswer/hideanswer-en.md77
-rw-r--r--macros/latex/contrib/hideanswer/hideanswer-ja.md79
-rw-r--r--macros/latex/contrib/hideanswer/hideanswer.sty76
-rw-r--r--macros/latex/contrib/hideanswer/hideanswer_example.tex38
-rw-r--r--macros/latex/contrib/inlinelabel/README.md31
-rw-r--r--macros/latex/contrib/inlinelabel/inlinelabel-en.md55
-rw-r--r--macros/latex/contrib/inlinelabel/inlinelabel-ja.md55
-rw-r--r--macros/latex/contrib/inlinelabel/inlinelabel.sty55
-rw-r--r--macros/latex/contrib/inlinelabel/inlinelabel_example.tex11
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/README.md44
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-en.md317
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-ja.md316
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty625
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols_example.pdfbin0 -> 29830 bytes
-rw-r--r--macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols_example.tex132
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin580817 -> 655594 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex348
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.pngbin0 -> 9278 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.pngbin0 -> 13958 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.pngbin0 -> 11759 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.pngbin0 -> 9989 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.pngbin0 -> 7316 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.pngbin0 -> 9599 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty104
-rw-r--r--macros/xetex/latex/xduts/xduts.dtx828
-rw-r--r--macros/xetex/latex/xduts/xduts.pdfbin665369 -> 704529 bytes
36 files changed, 3400 insertions, 163 deletions
diff --git a/macros/plain/contrib/reverxii/README.md b/macros/generic/reverxii/README.md
index 77fba86111..77fba86111 100644
--- a/macros/plain/contrib/reverxii/README.md
+++ b/macros/generic/reverxii/README.md
diff --git a/macros/plain/contrib/reverxii/reverxii.dtx b/macros/generic/reverxii/reverxii.dtx
index 084afdc544..084afdc544 100644
--- a/macros/plain/contrib/reverxii/reverxii.dtx
+++ b/macros/generic/reverxii/reverxii.dtx
diff --git a/macros/plain/contrib/reverxii/reverxii.pdf b/macros/generic/reverxii/reverxii.pdf
index 3117f4b371..3117f4b371 100644
--- a/macros/plain/contrib/reverxii/reverxii.pdf
+++ b/macros/generic/reverxii/reverxii.pdf
Binary files differ
diff --git a/macros/plain/contrib/reverxii/reverxii.tex b/macros/generic/reverxii/reverxii.tex
index 85e5c4ea83..85e5c4ea83 100644
--- a/macros/plain/contrib/reverxii/reverxii.tex
+++ b/macros/generic/reverxii/reverxii.tex
diff --git a/macros/latex/contrib/asternote/README.md b/macros/latex/contrib/asternote/README.md
new file mode 100644
index 0000000000..43e5e01623
--- /dev/null
+++ b/macros/latex/contrib/asternote/README.md
@@ -0,0 +1,32 @@
+# Asternote Package
+
+This package can output annotation symbols enclosed in square brackets and marked with an asterisk.
+
+
+## System Requirements
+
++ TeX format: LaTeX2e
++ TeX engine: pTeX, upTeX
+
+Since the unit zw is used, it can be used only in the pTeX series.
+
+
+## Installation
+
+Move asternote.sty file to $TEXMF/tex/latex/asternote.
+
+
+## License
+
+This package released under [the MIT license](https://ctan.org/license/mit).
+
+
+## Revision History
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+[Yukoh KUSAKABE](https://twitter.com/metaphysicainfo) (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/asternote/asternote-en.md b/macros/latex/contrib/asternote/asternote-en.md
new file mode 100644
index 0000000000..43655aa485
--- /dev/null
+++ b/macros/latex/contrib/asternote/asternote-en.md
@@ -0,0 +1,74 @@
+# Asternote Package
+
+This package can output annotation symbols enclosed in square brackets and marked with an asterisk.
+
+
+## System Requirements
+
++ TeX format: LaTeX2e
++ TeX engine: pTeX, upTeX
+
+Since the unit zw is used, it can be used only in the pTeX series.
+
+
+## Installation
+
+Move asternote.sty file to $TEXMF/tex/latex/asternote.
+
+
+## Usage
+
+### \setasternotenoindent \setasternoteindent
+
+Determines whether or not the annotation symbol is indented at the beginning of a paragraph. The default is \setasternotenoindent. Whether parentheses are considered half-width or full-width is different between text and superscript.
+
+
+### \setasternotetext \setasternotesuperscript
+
+Decide whether the annotation symbols are written in the same size as the body text or in superscript. The default is \setasternotesuperscript.
+
+
+### \setasterreftext \setasterrefsuperscript
+
+Decide whether the annotation reference are written in the same size as the body text or in superscript. The default is \setasterreftext.
+
+
+### \setasternumbertext \asternumbersetsuperscript
+
+Determines whether the manual annotation symbols are written in the same size as the body text or in superscript. The default is \setasternumbertext.
+
+
+### \asternotereset
+
+Reset the annotation symbol number to 1.
+
+
+### \asternote{<LABEL>} \asternotetext{<LABEL>} \asternotesuperscript{<LABEL>}
+
+Put an annotation symbol. You can manually choose to write the annotation in the same size as the body text or in superscript.
+
+
+### \asterref{<LABEL>} \asterreftext{<LABEL>} \asterrefsuperscript{<LABEL>}
+
+Put an annotation reference. You can manually choose to write the annotation in the same size as the body text or in superscript.
+
+
+### \asternumber{<LABEL>} \asternumbertext{<LABEL>} \asternumbersuperscript{<LABEL>}
+
+Put a manual annotation symbol. You can manually choose to write the annotation in the same size as the body text or in superscript.
+
+
+## License
+
+This package released under [the MIT license](https://ctan.org/license/mit).
+
+
+## Revision History
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+Yukoh KUSAKABE (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/asternote/asternote-ja.md b/macros/latex/contrib/asternote/asternote-ja.md
new file mode 100644
index 0000000000..0154cf238f
--- /dev/null
+++ b/macros/latex/contrib/asternote/asternote-ja.md
@@ -0,0 +1,74 @@
+# Asternote パッケージ
+
+このパッケージは,角括弧囲い・アスタリスク付きの注釈記号を出力することができます。
+
+
+## 前提条件
+
++ TeX format: LaTeX2e
++ TeX engine: pTeX, upTeX
+
+単位 zw を用いていますので,pTeX 系列でのみ使用できます。
+
+
+## インストール
+
+asternote.sty を $TEXMF/tex/latex/asternote (TeXが見つけられる場所)に置いてください。
+
+
+## 使用方法
+
+### \setasternotenoindent \setasternoteindent
+
+注釈記号に対して,段落初めの字下げをする否かを決めます。既定は \setasternotenoindent です。text と superscript で括弧を半角とみなすか全角とみなすかが異なります。
+
+
+### \setasternotetext \setasternotesuperscript
+
+注釈記号に対して,本文と同じ大きさで書かれるか上付き文字で書かれるかを決めます。既定は \setasternotesuperscript です。
+
+
+### \setasterreftext \setasterrefsuperscript
+
+注釈参照に対して,本文と同じ大きさで書かれるか上付き文字で書かれるかを決めます。既定は \setasterreftext です。
+
+
+### \setasternumbertext \asternumbersetsuperscript
+
+手動の注釈記号に対して,本文と同じ大きさで書かれるか上付き文字で書かれるかを決めます。既定は \setasternumbertext です。
+
+
+### \asternotereset
+
+注釈記号の番号を 1 に戻します。
+
+
+### \asternote{<LABEL>} \asternotetext{<LABEL>} \asternotesuperscript{<LABEL>}
+
+注釈記号を置きます。本文と同じ大きさで書くこと,上付き文字で書くことを手動で指定することができます。
+
+
+### \asterref{<LABEL>} \asterreftext{<LABEL>} \asterrefsuperscript{<LABEL>}
+
+注釈参照を置きます。本文と同じ大きさで書くこと,上付き文字で書くことを手動で指定することができます。
+
+
+### \asternumber{<LABEL>} \asternumbertext{<LABEL>} \asternumbersuperscript{<LABEL>}
+
+手動の注釈記号を置きます。本文と同じ大きさで書くこと,上付き文字で書くことを手動で指定することができます。
+
+
+## ライセンス
+
+このパッケージは[MITライセンス](https://ctan.org/license/mit)のもとで配布しています。
+
+
+## 更新履歴
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+Yukoh KUSAKABE (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/asternote/asternote.sty b/macros/latex/contrib/asternote/asternote.sty
new file mode 100644
index 0000000000..bd6639f7ed
--- /dev/null
+++ b/macros/latex/contrib/asternote/asternote.sty
@@ -0,0 +1,143 @@
+%%
+%% asternote.sty
+%%
+%% Copyright (C) 2022 Yukoh KUSAKABE (screen-name)
+%% https://www.metaphysica.info/
+%% https://twitter.com/metaphysicainfo
+%%
+%% This package released under
+%% [the MIT license](https://ctan.org/license/mit).
+%%
+%
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesPackage{asternote}[2022/06/28 v1.0]
+%
+%% \@astnt@noindent@switch
+\newif\if@astnt@noindent@switch
+\@astnt@noindent@switchtrue
+%
+%% \setasternotenoindent
+%% \setasternoteindent
+\DeclareRobustCommand{\setasternotenoindent}{\@astnt@noindent@switchtrue}
+\DeclareRobustCommand{\setasternoteindent}{\@astnt@noindent@switchfalse}
+%
+%% \@astnt@notesuperscript@switch
+\newif\if@astnt@notesuperscript@switch
+\@astnt@notesuperscript@switchtrue
+%
+%% \setasternotetext
+%% \setasternotesuperscript
+\DeclareRobustCommand{\setasternotetext}{\@astnt@notesuperscript@switchfalse}
+\DeclareRobustCommand{\setasternotesuperscript}{\@astnt@notesuperscript@switchtrue}
+%
+%% \@astnt@refsuperscriptswitch
+\newif\if@astnt@refsuperscript@switch
+\@astnt@refsuperscript@switchfalse
+%
+%% \setasterreftext
+%% \setasterrefsuperscript
+\DeclareRobustCommand{\setasterreftext}{\@astnt@refsuperscript@switchfalse}
+\DeclareRobustCommand{\setasterrefsuperscript}{\@astnt@refsuperscript@switchtrue}
+%
+%% \@astnt@numbersuperscriptswitch
+\newif\if@astnt@numbersuperscript@switch
+\@astnt@numbersuperscript@switchfalse
+%
+%% \setasternumbertext
+%% \asternumbersetsuperscript
+\DeclareRobustCommand{\setasternumbertext}{\@astnt@numbersuperscript@switchfalse}
+\DeclareRobustCommand{\asternumbersetsuperscript}{\@astnt@numbersuperscript@switchtrue}
+%
+%% asternotecounter
+\newcounter{asternotecounter}
+\setcounter{asternotecounter}{0}
+%
+%% \asternotereset
+\DeclareRobustCommand{\asternotereset}{\setcounter{asternotecounter}{0}}
+%
+%% \asternotetext{<LABEL>}
+%% \asternotesuperscript{<LABEL>}
+\DeclareRobustCommand{\asternotetext}[1]{\refstepcounter{asternotecounter}\textsf{[*\theasternotecounter ]}\expandafter\label{#1}}
+\DeclareRobustCommand{\asternotesuperscript}[1]{\refstepcounter{asternotecounter}\makebox[2zw]{\@textsuperscript{\scriptsize\!\!\textsf{[*\theasternotecounter ]}}\expandafter\label{#1}}}
+%
+%% \asternote{<LABEL>}
+\DeclareRobustCommand{\asternote}[1]{%
+\if@astnt@notesuperscript@switch
+% when \setasternotesuperscript
+% when \setasternotenoindent
+ \if@astnt@noindent@switch
+ {\noindent\asternotesuperscript{#1}}%
+ \else
+% when \setasternoteindent
+ {\asternotesuperscript{#1}}%
+ \fi
+\else
+% when \asternotetext
+% when \setasternotenoindent
+ \if@astnt@noindent@switch
+ {\noindent\asternotetext{#1}}%
+ \else
+% when \setasternoteindent
+ {\asternotetext{#1}}%
+ \fi
+\fi
+}%
+%
+%% \asterreftext{<LABEL>}
+%% \asterrefsuperscript{<LABEL>}
+\DeclareRobustCommand{\asterreftext}[1]{{\textsf{[*\ref{#1}]}}}
+\DeclareRobustCommand{\asterrefsuperscript}[1]{\@textsuperscript{\scriptsize\!\!\textsf{[*\ref{#1}]}}}
+%
+%% \asterref{<LABEL>}
+\DeclareRobustCommand{\asterref}[1]{%
+\if@astnt@refsuperscript@switch
+% when \setasterrefsuperscript
+% when \setasternotenoindent
+ \if@astnt@noindent@switch
+ {\noindent\asterrefsuperscript{#1}}%
+ \else
+% when \setasternoteindent
+ {\asterrefsuperscript{#1}}%
+ \fi
+\else
+% when \asterreftext
+% when \setasternotenoindent
+ \if@astnt@noindent@switch
+ {\noindent\asterreftext{#1}}%
+ \else
+% when \setasternoteindent
+ {\asterreftext{#1}}%
+ \fi
+\fi
+}%
+%
+%% \asternumbertext{<LABEL>}
+%% \asternumbersuperscript{<LABEL>}
+%
+\DeclareRobustCommand{\asternumbertext}[1]{{\textsf{[*{#1}]}}}
+\DeclareRobustCommand{\asternumbersuperscript}[1]{\@textsuperscript{\scriptsize\!\!\textsf{[*{#1}]}}}
+%
+%% \asternumber{<LABEL>}
+\DeclareRobustCommand{\asternumber}[1]{%
+\if@astnt@numbersuperscript@switch
+% when \setasterrefsuperscript
+% when \setasternotenoindent
+ \if@astnt@noindent@switch
+ {\noindent\asternumbersuperscript{#1}}%
+ \else
+% when \setasternoteindent
+ {\asternumbersuperscript{#1}}%
+ \fi
+\else
+% when \asterreftext
+% when \setasternotenoindent
+ \if@astnt@noindent@switch
+ {\noindent\asternumbertext{#1}}%
+ \else
+% when \setasternoteindent
+ {\asternumbertext{#1}}%
+ \fi
+\fi
+}%
+%
+%% EOF \ No newline at end of file
diff --git a/macros/latex/contrib/asternote/asternote_example.tex b/macros/latex/contrib/asternote/asternote_example.tex
new file mode 100644
index 0000000000..1510541ff2
--- /dev/null
+++ b/macros/latex/contrib/asternote/asternote_example.tex
@@ -0,0 +1,19 @@
+\documentclass[uplatex]{article}
+\usepackage{asternote}
+\begin{document}
+%\setasternoteindent
+
+\asternote{a}a
+
+\asternote{b}b
+
+\asternotereset
+
+\asternote{c}c
+
+\asterref{a}A
+
+\asterref{b}B
+
+\asterref{c}C
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/hideanswer/README.md b/macros/latex/contrib/hideanswer/README.md
new file mode 100644
index 0000000000..4fff4489ae
--- /dev/null
+++ b/macros/latex/contrib/hideanswer/README.md
@@ -0,0 +1,30 @@
+# Hideanswer Package
+
+This package can generate documents with and without answers from a single file by toggling a switch. However, it can only be used to create documents to be printed on paper.
+
+
+## System Requirements
+
++ TeX format: LaTeX
++ Prerequisite package: color and graphicx
+
+
+## Installation
+
+Move hideanswer.sty file to $TEXMF/tex/latex/hideanswer.
+
+
+## License
+
+This package released under [the MIT license](https://ctan.org/license/mit).
+
+
+## Revision History
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+[Yukoh KUSAKABE](https://twitter.com/metaphysicainfo) (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/hideanswer/hideanswer-en.md b/macros/latex/contrib/hideanswer/hideanswer-en.md
new file mode 100644
index 0000000000..0f165a079c
--- /dev/null
+++ b/macros/latex/contrib/hideanswer/hideanswer-en.md
@@ -0,0 +1,77 @@
+# Hideanswer Package 1.0
+
+This package can generate documents with and without answers from a single file by toggling a switch. However, it can only be used to create documents to be printed on paper.
+
+
+## System Requirements
+
++ TeX format: LaTeX
++ Prerequisite package: color and graphicx
+
+
+## Installation
+
+Move hideanswer.sty file to $TEXMF/tex/latex/hideanswer.
+
+
+## Usage
+
+### \sethideanswer
+
+After this command, the answer is hidden. Usually, this instruction is used to switch the generation of question and answer sheets, depending on whether or not this instruction is written at the beginning of the document.
+
+
+### \unsethideanswer
+
+After this command, the answer appears.
+
+
+### \hideanswer{<text>}
+
+<text> is hidden. In \hideanswer*{<text>}, the hidden and visible parts are reversed.
+
+
+### environment hideanswerdiv
+
+The written part inside the environment is hidden. It may be used to hide long answers. In hideanswerdiv*, the hidden and visible parts are reversed.
+
+
+### \smashanswer{<text>}
+
+<text> is hidden and the next sentence is placed as if it were not there. In \smashanswer*{<text>}, the hidden and visible parts are reversed.
+
+
+### environment smashanswerdiv
+
+The written part inside the environment is hidden and the next sentence is placed as if it were not there. It may be used to hide long answers. In smashanswerdiv*, the hidden and visible parts are reversed.
+
+
+### \hidegraphics[<includegraphics option>]{<file>}
+
+The graphic is hidden. The options are the same as for \includegraphics since \includegraphics is loaded internally. In \hidegraphics*[<includegraphics option>]{<file>}, the hidden and visible parts are reversed.
+
+
+### \smashraphics[<includegraphics option>]{<file>}
+
+The graphic is hidden and the next sentence is placed as if it were not there. The options are the same as for \includegraphics since \includegraphics is loaded internally. In \hidegraphics*[<includegraphics option>]{<file>}, the hidden and visible parts are reversed.
+
+
+### \switchanswer{<text when sethide>}{<text when unsethide>}
+
+Switching between hidden and visible sentences. Since \switchanswer does not remember the length of the sentence, the position of the next sentence moves. In \switchanswer*{<text when unsethide>}{<text when sethide>}, the hidden and visible parts are reversed.
+
+
+## License
+
+This package released under [the MIT license](https://ctan.org/license/mit).
+
+
+## Revision History
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+Yukoh KUSAKABE (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/hideanswer/hideanswer-ja.md b/macros/latex/contrib/hideanswer/hideanswer-ja.md
new file mode 100644
index 0000000000..3de48be8ca
--- /dev/null
+++ b/macros/latex/contrib/hideanswer/hideanswer-ja.md
@@ -0,0 +1,79 @@
+# Hideanswer パッケージ
+
+このパッケージは,スイッチ切り替えによって単一のファイルから答えが書かれている文書と答えが書かれていない文書を生成することができます。ただし,紙に印刷する文書を作成するときにしか使えません。
+
+
+## 前提条件
+
++ TeX format: LaTeX
++ Prerequisite package: color and graphicx
+
+
+## インストール
+
+hideanswer.sty を $TEXMF/tex/latex/hideanswer (TeXが見つけられる場所)に置いてください。
+
+
+## 使用方法
+
+### \sethideanswer
+
+この命令以降では答えが隠されます。ふつう,文書の最初にこの命令を書くか否かで問題用紙と解答用紙の生成を切り替えるために使います。
+
+
+### \unsethideanswer
+
+この命令以降では答えが現れます。
+
+
+### \hideanswer{<text>}
+
+<text> と書かれた部分が隠されます。\hideanswer*{<text>} では,隠されるときと現れるときが逆になります。
+
+
+### hideanswerdiv 環境
+
+環境の内側に書かれた部分が隠されます。長い答えを隠すために用いるとよいでしょう。
+hideanswerdiv* では,隠されるときと現れるときが逆になります。
+
+
+### \smashanswer{<text>}
+
+<text> と書かれた部分が隠され,それがないかのように次の文が置かれます。\smashanswer*{<text>} では,隠されるときと現れるときが逆になります。
+
+
+### smashanswerdiv 環境
+
+環境の内側に書かれた部分が隠され,それがないかのように次の文が置かれます。長い答えを隠すために用いるとよいでしょう。
+smashanswerdiv* では,隠されるときと現れるときが逆になります。
+
+
+### \hidegraphics[<includegraphics option>]{<file>}
+
+読み込んだ画像が隠されます。\includegraphics を内部で読み込みますので,オプションは \includegraphics のものと同様です。\hidegraphics*[<includegraphics option>]{<file>} では,隠されるときと現れるときが逆になります。
+
+
+### \smashraphics[<includegraphics option>]{<file>}
+
+読み込んだ画像が隠され,それがないかのように次の文が置かれます。\includegraphics を内部で読み込みますので,オプションは \includegraphics のものと同様です。\smashraphics*[<includegraphics option>]{<file>} では,隠されるときと現れるときが逆になります。
+
+
+### \switchanswer{<text when sethide>}{<text when unsethide>}
+
+隠されているときと現れているときで文章を切り替えます。\switchanswer は文章の長さを覚えませんから,次の文の位置が動きます。\switchanswer*{<text when unsethide>}{<text when sethide>} では,隠されるときと現れるときが逆になります。
+
+
+## ライセンス
+
+このパッケージは[MITライセンス](https://ctan.org/license/mit)のもとで配布しています。
+
+
+## 更新履歴
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+Yukoh KUSAKABE (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/hideanswer/hideanswer.sty b/macros/latex/contrib/hideanswer/hideanswer.sty
new file mode 100644
index 0000000000..25a6264b50
--- /dev/null
+++ b/macros/latex/contrib/hideanswer/hideanswer.sty
@@ -0,0 +1,76 @@
+%%
+%% hideanswer.sty
+%%
+%% Copyright (C) 2022 Yukoh KUSAKABE (screen-name)
+%% https://www.metaphysica.info/
+%% https://twitter.com/metaphysicainfo
+%%
+%% This package released under
+%% [the MIT license](https://ctan.org/license/mit).
+%%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hideanswer}[2022/06/28 v1.0]
+%
+%% for \color
+\RequirePackage{color}
+%
+% for \NewDocumentEnvironment
+\RequirePackage{xparse}
+%
+%% \if@hdans@hideswitch
+\newif\if@hdans@hideswitch
+\@hdans@hideswitchfalse
+%
+%% \sethideanswer
+%% \unsethideanswer
+\DeclareRobustCommand{\sethideanswer}{\@hdans@hideswitchtrue}
+\DeclareRobustCommand{\unsethideanswer}{\@hdans@hideswitchfalse}
+%
+%% \hideanswer{<text>}
+%% \hideanswer*{<text>}
+\DeclareRobustCommand{\hideanswer}{\@ifstar{\@hdans@hideanswer@star}{\@hdans@hideanswerh@nostar}}
+\DeclareRobustCommand{\@hdans@hideanswer@star}[1]{\if@hdans@hideswitch\else\color{white}\fi{#1}\if@hdans@hideswitch\else\color{black}\fi}
+\DeclareRobustCommand{\@hdans@hideanswerh@nostar}[1]{\if@hdans@hideswitch\color{white}\else\fi{#1}\if@hdans@hideswitch\color{black}\else\fi}
+%
+%% \begin{hideanswerdiv}
+%% \begin{hideanswerdiv*}
+\newenvironment{hideanswerdiv}%
+{\if@hdans@hideswitch\color{white}\else\fi}%
+{\if@hdans@hideswitch\color{black}\else\fi}
+\newenvironment{hideanswerdiv*}%
+{\if@hdans@hideswitch\else\color{white}\fi}%
+{\if@hdans@hideswitch\else\color{black}\fi}
+%
+%% \smashanswer{<text>}
+%% \smashanswer*{<text>}
+\DeclareRobustCommand{\smashanswer}{\@ifstar{\@hdans@smashanswer@star}{\@hdans@smashanswer@nostar}}
+\DeclareRobustCommand{\@hdans@smashanswer@star}[1]{\if@hdans@hideswitch{#1}\else\fi}
+\DeclareRobustCommand{\@hdans@smashanswer@nostar}[1]{\if@hdans@hideswitch\else{#1}\fi}
+%
+%% \begin{smashanswerdiv}
+%% \begin{smashanswerdiv*}
+\NewDocumentEnvironment{smashanswerdiv}{+b}
+{\if@hdans@hideswitch\else #1\fi}{}
+\NewDocumentEnvironment{smashanswerdiv*}{+b}
+{\if@hdans@hideswitch #1\else\fi}{}
+%
+%% \hidegraphics[<includegraphics>]{<includegraphics>}
+%% \hidegraphics*[<includegraphics>]{<includegraphics>}
+\DeclareRobustCommand{\hidegraphics}{\@ifstar{\@hdans@hidegraphics@star}{\@hdans@hidegraphics@nostar}}
+\DeclareRobustCommand{\@hdans@hidegraphics@star}[2][]{\if@hdans@hideswitch\includegraphics[#1]{#2}\else\phantom{\includegraphics[#1]{#2}}\fi}
+\DeclareRobustCommand{\@hdans@hidegraphics@nostar}[2][]{\if@hdans@hideswitch\phantom{\includegraphics[#1]{#2}}\else\includegraphics[#1]{#2}\fi}
+%
+%% \smashgraphics[<includegraphics>]{<includegraphics>}
+%% \smashgraphics*[<includegraphics>]{<includegraphics>}
+\DeclareRobustCommand{\smashgraphics}{\@ifstar{\@hdans@smashgraphics@star}{\@hdans@smashgraphics@nostar}}
+\DeclareRobustCommand{\@hdans@smashgraphics@star}[2][]{\if@hdans@hideswitch\includegraphics[#1]{#2}\else\fi}
+\DeclareRobustCommand{\@hdans@smashgraphics@nostar}[2][]{\if@hdans@hideswitch\else\includegraphics[#1]{#2}\fi}
+%
+%% \switchanswer{<text when sethide>}{<text when unsethide>}
+%% \switchanswer*{<text when unsethide>}{<text when sethide>}
+\DeclareRobustCommand{\switchanswer}{\@ifstar{\@hdans@switchanswer@star}{\@hdans@switchanswerh@nostar}}
+\DeclareRobustCommand{\@hdans@switchanswer@star}[2]{\if@hdans@hideswitch{#1}\else{#2}\fi}
+\DeclareRobustCommand{\@hdans@switchanswerh@nostar}[2]{\if@hdans@hideswitch{#2}\else{#1}\fi}
+%
+%% EOF \ No newline at end of file
diff --git a/macros/latex/contrib/hideanswer/hideanswer_example.tex b/macros/latex/contrib/hideanswer/hideanswer_example.tex
new file mode 100644
index 0000000000..5e35031c56
--- /dev/null
+++ b/macros/latex/contrib/hideanswer/hideanswer_example.tex
@@ -0,0 +1,38 @@
+\documentclass[uplatex]{article}
+\usepackage{hideanswer}
+\begin{document}
+\sethideanswer
+\unsethideanswer
+
+A\hideanswer{B}A
+
+C\hideanswer*{D}C
+
+E%
+\begin{hideanswerdiv}
+$$F$$
+\end{hideanswerdiv}%
+E
+
+G%
+\begin{hideanswerdiv*}
+$$H$$
+\end{hideanswerdiv*}%
+G
+
+I\smashanswer{J}I
+
+K\smashanswer*{L}K
+
+M%
+\begin{smashanswerdiv}
+$$N$$
+\end{smashanswerdiv}%
+M
+
+O%
+\begin{smashanswerdiv*}
+$$P$$
+\end{smashanswerdiv*}%
+O
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/inlinelabel/README.md b/macros/latex/contrib/inlinelabel/README.md
new file mode 100644
index 0000000000..e7acb7ca7e
--- /dev/null
+++ b/macros/latex/contrib/inlinelabel/README.md
@@ -0,0 +1,31 @@
+# Inlinelabel Package
+
+This package can assign equation numbers to inline equations. When Japanese is supported, you can switch to circled equation numbers.
+
+
+## System Requirements
+
++ TeX format: LaTeX
++ Prerequisite package: amsmath and refcount
++ Prerequisite package with [circled] option: japanese-otf
+
+
+## Installation
+
+Move inlinelabel.sty file to $TEXMF/tex/latex/hideanswer.
+
+
+## License
+
+This package released under [the MIT license](https://ctan.org/license/mit).
+
+
+## Revision History
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+[Yukoh KUSAKABE](https://twitter.com/metaphysicainfo) (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/inlinelabel/inlinelabel-en.md b/macros/latex/contrib/inlinelabel/inlinelabel-en.md
new file mode 100644
index 0000000000..dd726d5533
--- /dev/null
+++ b/macros/latex/contrib/inlinelabel/inlinelabel-en.md
@@ -0,0 +1,55 @@
+# Inlinelabel Package
+
+This package can assign equation numbers to inline equations. When Japanese is supported, you can switch to circled equation numbers.
+
+
+## System Requirements
+
++ TeX format: LaTeX
++ Prerequisite package: amsmath and refcount
++ Prerequisite package with [circled] option: japanese-otf
+
+
+## Installation
+
+Move inlinelabel.sty file to $TEXMF/tex/latex/hideanswer.
+
+
+## Usage
+
+### \inlinelabel{<label>}
+
+Put the inline equation number. Place it outside of the equation (outside of the $--$). Take the name of the label as an argument. Take a small margin before and after the text to make it look natural. If you don't want margins, use \inlinelabel*{<label>}.
+
+
+### Option [circled]
+
+Assuming you are using a Japanese environment. Switch to circled equation numbers. All equation numbers are rewritten, not just the inline equation numbers.
+
+
+### \circledref{<label>}
+
+Only valid when [circled] option is loaded.
+Refer to the circled equation number.
+
+
+### \equationref{<label>}
+
+Only valid when [circled] option is loaded.
+This macro is the same as \circledref{<label>}.
+
+
+## License
+
+This package released under [the MIT license](https://ctan.org/license/mit).
+
+
+## Revision History
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+[Yukoh KUSAKABE](https://twitter.com/metaphysicainfo) (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/inlinelabel/inlinelabel-ja.md b/macros/latex/contrib/inlinelabel/inlinelabel-ja.md
new file mode 100644
index 0000000000..a0e14fe403
--- /dev/null
+++ b/macros/latex/contrib/inlinelabel/inlinelabel-ja.md
@@ -0,0 +1,55 @@
+# Inlinelabel パッケージ
+
+このパッケージは,インライン数式に数式番号を振ることができます。また,日本語を扱えるときには,丸で囲まれた数式番号に切り替えることができます。
+
+
+## 前提条件
+
++ TeX format: LaTeX
++ Prerequisite package: amsmath and refcount
++ Prerequisite package with [circled] option: japanese-otf
+
+
+## インストール
+
+inlinelabel.sty を $TEXMF/tex/latex/hideanswer (TeXが見つけられる場所)に置いてください。
+
+
+## 使用方法
+
+### \inlinelabel{<label>}
+
+インラインの数式番号を置きます。数式の外($--$の外)に置いてください。引数にラベルの名前を取ります。文章を自然に見せるために,前後に少しの余白を取ります。余白がいらないときは,\inlinelabel*{<label>} を使ってください。
+
+
+### Option [circled]
+
+あなたが日本語の環境を使用していることを前提とします。丸で囲まれた数式番号に切り替えます。インラインの数式番号だけでなく,すべての数式番号が書き換えられます。
+
+
+### \circledref{<label>}
+
+[circled] オプションを読み込んでいるときにのみ有効です。
+丸で囲まれた数式番号を参照します。
+
+
+### \equationref{<label>}
+
+[circled] オプションを読み込んでいるときにのみ有効です。
+\circledref{<label>} と同じです。
+
+
+## ライセンス
+
+このパッケージは[MITライセンス](https://ctan.org/license/mit)のもとで配布しています。
+
+
+## 更新履歴
+
++ Version 1.0 2022-06-28
+ + The first public version.
+
+
+---
+
+[Yukoh KUSAKABE](https://twitter.com/metaphysicainfo) (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/inlinelabel/inlinelabel.sty b/macros/latex/contrib/inlinelabel/inlinelabel.sty
new file mode 100644
index 0000000000..93c4822c83
--- /dev/null
+++ b/macros/latex/contrib/inlinelabel/inlinelabel.sty
@@ -0,0 +1,55 @@
+%%
+%% inlinelabel.sty
+%%
+%% Copyright (C) 2022 Yukoh KUSAKABE (screen-name)
+%% https://www.metaphysica.info/
+%% https://twitter.com/metaphysicainfo
+%%
+%% This package released under
+%% [the MIT license](https://ctan.org/license/mit).
+%%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{inlinelabel}[2022/06/28 v1.0]
+%
+% When you meet ''Package pxufont Error: You must load this package
+% after 'otf'.'', move \usepackage{otf} to a forward row.
+%
+%% \if@inlinelabel@circled
+\newif\if@inlinelabel@circled
+\@inlinelabel@circledfalse
+%
+%% [circled]
+\DeclareOption{circled}{\@inlinelabel@circledtrue}
+%
+\ExecuteOptions{}
+\ProcessOptions\relax
+%
+% for \tagform@ \maketag@@@
+\RequirePackage{amsmath}
+%
+%% When [circled]
+\if@inlinelabel@circled
+%
+% for \ajMaru
+\RequirePackage{otf}
+% for \getrefnumber
+\RequirePackage{refcount}
+%
+% renew tagform
+\def\tagform@#1{\maketag@@@{\ldots\ignorespaces\ajMaru{#1}\unskip\@@italiccorr}}%
+%
+%% \circledref{<label>}
+%% \equationref{<label>}
+\DeclareRobustCommand{\circledref}[1]{\mbox{\ajMaru{\getrefnumber{#1}}}}
+\DeclareRobustCommand{\equationref}[1]{\mbox{\ajMaru{\getrefnumber{#1}}}}
+%
+\fi
+%%
+%
+%% \inlinelabel{<label>}
+\DeclareRobustCommand{\inlinelabel}{\@ifstar{\@inlinelabelstar}{\@inlinelabelnostar}}
+\DeclareRobustCommand{\@inlinelabelstar}[1]{\refstepcounter{equation}\tagform@\theequation\expandafter\label{#1}}
+\DeclareRobustCommand{\@inlinelabelnostar}[1]{\hspace{0.5em}\refstepcounter{equation}\tagform@\theequation\expandafter\label{#1}\hspace{0.5em}}
+%
+%% EOF \ No newline at end of file
diff --git a/macros/latex/contrib/inlinelabel/inlinelabel_example.tex b/macros/latex/contrib/inlinelabel/inlinelabel_example.tex
new file mode 100644
index 0000000000..bf70bcaf82
--- /dev/null
+++ b/macros/latex/contrib/inlinelabel/inlinelabel_example.tex
@@ -0,0 +1,11 @@
+\documentclass[uplatex]{article}
+\usepackage{inlinelabel}
+\begin{document}
+$1=2$\inlinelabel{a}
+
+$1=2$\inlinelabel*{b}
+
+\ref{a}
+
+\ref{b}
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/jpnedumathsymbols/README.md b/macros/latex/contrib/jpnedumathsymbols/README.md
new file mode 100644
index 0000000000..d2455ef6b1
--- /dev/null
+++ b/macros/latex/contrib/jpnedumathsymbols/README.md
@@ -0,0 +1,44 @@
+# Jpnedumathsymbols Package
+
+Mathematical equation representation in Japanese education differs somewhat from the standard LaTeX writing style. This package introduces mathematical equation representation in Japanese education.
+
+
+## System Requirements
+
+**This package use Japanese letters.**
+
++ TeX format: LaTeX
++ Prerequisite package: amsmath, amssymb, empheq and xparse
++ Prerequisite package without [nonocurriculum]: japanese-otf
+
+
+## Installation
+
+Move jpnedumathsymbols.sty file to $TEXMF/tex/latex/jpnedumathsymbols.
+
+
+## Achknowledgements
+
+\neconcave, \seconcave, \seconvex and \neconvex are by [Prof. Kouji KODAMA](http://www.math.kobe-u.ac.jp/HOME/kodama/tips-latex-bend-arrow.html) and is released under the GNU/GPL license. I would like to thank him.
+
+\arc is by [Prof. Shingo SAITO](http://www.artsci.kyushu-u.ac.jp/~ssaito/jpn/tex/tips/misc.html#arc). I would like to thank him.
+
+\parallel is by [Mr./Ms. Ohishi]https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html). I would like to thank him/her.
+
+This package is inspired by [emath package by Kazuhiro Okuma (a.k.a. tDB)](http://emath.s40.xrea.com/). I would like to thank him.
+
+
+## License
+
+This package released under [GNU GPL v3 or newer](http://www.gnu.org/licenses/gpl-3.0.html).
+
+
+## Revision History
+
++ Version 1.0 2022-06-29
+ + The first public version.
+
+
+---
+
+[Yukoh KUSAKABE](https://twitter.com/metaphysicainfo) (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-en.md b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-en.md
new file mode 100644
index 0000000000..57e067ea53
--- /dev/null
+++ b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-en.md
@@ -0,0 +1,317 @@
+# Jpnedumathsymbols Package
+
+Mathematical equation representation in Japanese education differs somewhat from the standard LaTeX writing style. This package introduces mathematical equation representation in Japanese education.
+
+
+## System Requirements
+
+**This package use Japanese letters.**
+
++ TeX format: LaTeX
++ Prerequisite package: amsmath, amssymb, empheq and xparse
++ Prerequisite package without [nonocurriculum]: japanese-otf
+
+
+## Installation
+
+Move jpnedumathsymbols.sty file to $TEXMF/tex/latex/jpnedumathsymbols.
+
+
+## Usage
+
+### \frac \sqrt \lim \vec
+
+When the package is loaded, the symbols for fractions, root signs, limits, and vectors are automatically changed. If you do not need that, please specify the options, [nofrac], [nosqrt], [nolim], and [novec]. The original symbol is saved with the name "original" (\originalfrac, \originalsqrt, \originallim and \originalvec).
+
+
+### Roman Typeface Meaning Point
+
+It is customary to use the Roman font to denote points. To make typing easier, the same letter can be typed twice in succession to form a roman letter. For example, \AA will form the Roman letter A. Any conflicts with the original command are renamed (original \AA is \angstrom, original \SS is \capitaleszett). If you do not need that, please specify the option [nopointroman].
+
+
+### Letters for Curriculum
+
+Sometimes it is more convenient for characters used in the curriculum to be full-width characters. They are in the form \curr--. If you do not need that, please specify the option [nocurriculum] (see system requirements).
+
++ Full-width Roman numeral \currI, \currII, \currIII
++ Full-width capital letters \currA -- \currZ
++ Full-width lowercase letters \curra -- \currz
++ Full-width lowercase Greek letters \curralpha -- \curromega
++ Concurrent courses of study \currIA, \currIIB, \currIIBC, \currIIIC
++ Concurrent courses of study with "+" \currIA*, \currIIB*, \currIIBC*, \currIIIC*
+
+
+### \phantomheight[<letter>]
+
+Places a post to enclose the box. If no optional argument is taken, \frac{1}{2} is entered.
+
+
+### \comma \period
+
+Punctuation marks and reading marks are used in mathematical equations. \comma* and \period* are with margin.
+
+
+### \pair{}{} \triplet{}{}{} \quadruplet*{}{}{}
+
+Order pairs. \pair* \triplet* \quadruplet* fix the size of the parentheses.
+
+
+### \intersection \union
+
+Another name for \cap and \cup.
+
+
+### \complement{} \cmpl{}
+
+This is a overline with height matching, even with small letters. \cmpl is another name for \complement.
+
+
+### \tand \tor
+
+The Japanese "and" and "or" used in mathematical equations.
+
+
+### \eand \eor
+
+The English "and" and "or" used in mathematical equations.
+
+
+### \lto \lfrom \iff
+
+Another name for \Longrightarrow, \Longleftarrow and \Longleftrightarrow. It is treated as a \mathrels.
+
+
+### \plto \plfrom \piff
+
+Invisible \lto/\lfrom/\iff used for immediate line breaks in an align environment. The "p" is named after phantom.
+
+
+### \peq
+
+Invisible equal sign used for immediate line breaks in an align environment. The "p" is named after phantom.
+
+
+### \set{}{}
+
+This is an inclusive notation for a set. The delimiter is a vertical bar, which changes to a colon when the option [setcolon] is loaded.
+
+
+### \N \NZ \NP \Z \Q \R \C
+
+The symbols for whole natural numbers, whole integers greater than or equal to 0, whole integers greater than or equal to 1, whole integers, whole rational numbers, whole real numbers, and whole complex numbers. When the option [mathbb] is loaded, it changes to blackboard bold.
+
+
+### \inverse{<function>}
+
+The symbol of inverse function.
+
+
+### \abs{} \abs*{}
+
+Absolute value. \abs* fixes the size.
+
+
+### environment ecases
+
+\begin{ecases}[align(*)/gather(*)]{<left side>}
+
+Case classification. This is an input support for the empheq environment. Default is align*.
+
+
+### environment simul
+
+\begin{simul}{align(*)/gather(*)}
+
+Simultaneous equations. This is an input support for the empheq environment. Default is gather*.
+
+
+### environment signchart
+
+\begin{signchart}{<columns>}
+
+Table of increase/decrease. It takes the number of columns excluding headings as arguments. The internal environment is an array environment, so you write using & \\ \hline etc.
+
+
+### \neconcave \seconcave \seconvex \neconvex
+
+
+Arrows are used in the increase/decrease table.
+
+This code is by [Prof. Kouji KODAMA](http://www.math.kobe-u.ac.jp/HOME/kodama/tips-latex-bend-arrow.html) and is released under the GNU/GPL license. I would like to thank him.
+
+
+### \dint
+
+The symbol of integral which is always in display style.
+
+
+### \dr \ds \dt \du \dx \dy \dz \dtheta
+
+Integral variables.
+
+
+### \const
+
+Integral constant as "const.".
+
+
+### \defint{<from>}{<to>}{<function>}
+
+The function before the assignment of the definite integral.
+
+
+### \transformvariable{<variable1>}{<from1>}{<to1>}{variable2}{<from2>}{<to2>}
+
+Variable transformation of a definite integral.
+
+
+### \rvec{}{} \rvec*{}{}{}
+
+2-dimensional horizontal vector. Asterisked one is 3-dimensional horizontal vectors. When option [rvecbracket] is loaded, they are replaced by square brackets.
+
+
+### \cvec{}{} \cvec*{}{}{}
+
+2-dimensional vertical vector. Asterisked one is 3-dimensional vertical vectors. When option [cvecbracket] is loaded, they are replaced by square brackets.
+
+
+### \innerproduct{}{} {}{}
+
+Inner product of vectors. When option [innerproductbracket] is loaded, it is replaced by bracket notation. \inp is another name for \innerproduct.
+
+
+### \sequence{} \seq{}
+
+Mathematical sequence. \seq is another name for \sequence.
+
+
+### \sum*
+
+\sum which is text style even in display mode.
+
+
+### \GCD \LCM
+
+The symbol of greatest common divisor and the symbol of least common multiple.
+
+
+### \degree
+
+The symbol of degree.
+
+
+### \arc{}
+
+The symbol of arc.
+
+This code is by [Prof. Shingo SAITO](http://www.artsci.kyushu-u.ac.jp/~ssaito/jpn/tex/tips/misc.html#arc). I would like to thank him.
+
+
+### \parallel
+
+The symbol of parallel. The original symbol is stored in \originalparallel.
+
+This code is by [Mr./Ms. Ohishi]https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html). I would like to thank him/her.
+
+
+### \similar
+
+The symbol of similar.
+
+
+### \permutation{}{} \combination{}{} \repeatedpermutation{}{} \repeatedcombination{}{} \homogeneous{}{}
+
+The symbols for permutations, combinations, repeated permutations, and repeated combinations. \homogeneous is another name for \repeatedcombination.
+
+
+### \expectedvalue{}
+
+The symbols for expected value. When the option [mathbb] is loaded, it changes to blackboard bold.
+
+
+### \Re \Im
+
+The symbol of real axis and imaginary axis. The original symbol is stored in \originalRe and \originalIm.
+
+
+### \conjugate{}
+### \conj{}
+
+Complex conjugate. \conj is another name for \conjugate.
+
+
+### \parentext{<text>} \squaretext{<text>} \whitesquaretext{<text>}
+
+Sentences with round brackets, sentences with square brackets, and sentences with white square brackets.
+
+
+### \ltext{<text>} \lltext{<text>}
+
+Sentences with square brackets and sentences with white square brackets.
+
+
+### \ltextbegin \lltextbegin \ltextend \lltextend
+
+Opening square bracket, opening white square bracket, closing square bracket, and closing white square bracket. They are used when there is a line break in the middle of a sentence.
+
+
+### \nomination{}
+
+Parentheses for using a word or phrase in an equation.
+
+
+### \condition{}
+
+Parentheses are used to divide cases. \condition*{} is preceded by a space.
+
+
+### \explanation{}
+
+Parentheses used to explain an expression, preceded by \because. \explanation*{} is not preceded by \because.
+
+
+### \quantify
+
+Text box for mentioning quantization in the middle of an expression.
+
+
+### \equationunit
+
+Parentheses for writing units in expressions.
+
+
+### \texttherefore \textbecause
+
+\therefore and \because adjusted for use in the text.
+
+
+### \QED
+
+Full-width halmos symbol.
+
+
+## Achknowledgements
+
+\neconcave, \seconcave, \seconvex and \neconvex are by [Prof. Kouji KODAMA](http://www.math.kobe-u.ac.jp/HOME/kodama/tips-latex-bend-arrow.html) and is released under the GNU/GPL license. I would like to thank him.
+
+\arc is by [Prof. Shingo SAITO](http://www.artsci.kyushu-u.ac.jp/~ssaito/jpn/tex/tips/misc.html#arc). I would like to thank him.
+
+\parallel is by [Mr./Ms. Ohishi]https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html). I would like to thank him/her.
+
+This package is inspired by [emath package by Kazuhiro Okuma (a.k.a. tDB)](http://emath.s40.xrea.com/). I would like to thank him.
+
+
+## License
+
+This package released under [GNU GPL v3 or newer](http://www.gnu.org/licenses/gpl-3.0.html).
+
+
+## Revision History
+
++ Version 1.0 2022-06-29
+ + The first public version.
+
+
+---
+
+[Yukoh KUSAKABE](https://twitter.com/metaphysicainfo) (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-ja.md b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-ja.md
new file mode 100644
index 0000000000..78e4477ac2
--- /dev/null
+++ b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols-ja.md
@@ -0,0 +1,316 @@
+# Jpnedumathsymbols パッケージ
+
+日本の教育における数式表現には,LaTeX の標準である書きかたとはやや異なる部分があります。このパッケージでは,日本の教育における数式表現を導入します。
+
+
+## 前提条件
+
+**This package use Japanese letters.**
+
++ TeX format: LaTeX
++ Prerequisite package: amsmath, amssymb, empheq and xparse
++ Prerequisite package without [nonocurriculum]: japanese-otf
+
+
+## インストール
+
+jpnedumathsymbols.sty を $TEXMF/tex/latex/jpnedumathsymbols (TeXが見つけられる場所)に置いてください。
+
+
+## 使用方法
+
+### \frac \sqrt \lim \vec
+
+パッケージを読み込むと自動的に分数・根号・極限・ベクトルの記号が変更されます。それが不要なときはオプション [nofrac] [nosqrt] [nolim] [novec] を指定してください。もとの記号は original がついた名前で保存されています(\originalfrac \originalsqrt \originallim \originalvec)。
+
+
+### Roman Typeface Meaning Point
+
+点を表すためにローマン体を用いる慣例があります。入力を楽にするために,同じ文字を2つ続けて打つとローマン体になります。たとえば,\AA でローマン体の A になります。元の命令と重なるものは名前を付け替えています(元の \AA は \angstrom,元の \SS は \capitaleszett です)。それが不要なときはオプション [nopointroman] を指定してください。
+
+
+### Letters for Curriculum
+
+カリキュラムで使われる文字は全角文字であるほうが便利なことがあります。それらは \curr-- という形の命令になっています。それが不要なときはオプション [nocurriculum] を指定してください。
+
++ 全角ローマ数字 \currI, \currII, \currIII
++ 全角英字大文字 \currA -- \currZ
++ 全角英字小文字 \curra -- \currz
++ 全角ギリシア文字小文字 \curralpha -- \curromega
++ 並行カリキュラムのセット \currIA, \currIIB, \currIIBC, \currIIIC
++ 並行カリキュラムのセット(+つき) \currIA*, \currIIB*, \currIIBC*, \currIIIC*
+
+
+### \phantomheight[<letter>]
+
+枠で囲うための支柱を立てます。オプション引数を取らなければ \frac{1}{2} が入ります。
+
+
+### \comma \period
+
+数式中で用いる句点と読点です。アスタリスクをつけると前に余白が付きます。
+
+
+### \pair{}{} \triplet{}{}{} \quadruplet*{}{}{}
+
+順序対です。アスタリスクをつけると括弧の大きさが固定されます。
+
+
+### \intersection \union
+
+\cap と \cup の別名です。
+
+
+### \complement{} \cmpl{}
+
+小さな文字を入れても高さが揃う上線です。\cmpl は \complement の別名です。
+
+
+### \tand \tor
+
+数式中で用いる日本語の「かつ」と「または」です。
+
+
+### \eand \eor
+
+数式中で用いる英語の「and」と「or」です。
+
+
+### \lto \lfrom \iff
+
+\Longrightarrow \Longlrftarrow \Longleftrightarrow の別名です。\mathrel として扱われます。
+
+
+### \plto \plfrom \piff
+
+align 環境で直ちに改行するときに用いる見えない \lto \lfrom \iff です。「p」 は phantom が由来です。
+
+
+### \peq
+
+align 環境で直ちに改行するときに用いる見えない等号です。「p」 は phantom が由来です。
+
+
+### \set{}{}
+
+集合の内包的記法です。区切りは縦棒ですが,[setcolon] オプションを読み込むとコロンに変わります。
+
+
+### \N \NZ \NP \Z \Q \R \C
+
+自然数全体,0以上の整数全体,1以上の整数全体,整数全体,有理数全体,実数全体,複素数全体の記号です。[mathbb] オプションを読み込むと黒板太字に変わります。
+
+
+### \inverse{<function>}
+
+逆関数の記号です。
+
+
+### \abs{} \abs*{}
+
+絶対値です。アスタリスクをつけると大きさが固定されます。
+
+
+### ecases 環境
+
+\begin{ecases}[align(*)/gather(*)]{<left side>}
+
+場合分けです。empheq環境の入力支援です。既定は align* です。
+
+
+### simul 環境
+
+\begin{simul}{align(*)/gather(*)}
+
+連立方程式です。empheq環境の入力支援です。既定は gather* です。
+
+
+### signchart 環境
+
+\begin{signchart}{<columns>}
+
+増減表です。見出しを除いた列数を引数に取ります。内部は array 環境ですので & \\ \hline などを用いて書きます。
+
+
+### \neconcave \seconcave \seconvex \neconvex
+
+増減表で使う矢印です。
+
+このコードは[児玉宏児氏](http://www.math.kobe-u.ac.jp/HOME/kodama/tips-latex-bend-arrow.html)によるもので,GNU/GPLライセンスで公開なさっています。お礼申しあげます。
+
+
+### \dint
+
+常にディスプレイスタイルになる積分記号です。
+
+
+### \dr \ds \dt \du \dx \dy \dz \dtheta
+
+積分変数です。
+
+
+### \const
+
+積分定数を const. と出力します。
+
+
+### \defint{<from>}{<to>}{<function>}
+
+代入前の定積分です。
+
+
+### \transformvariable{<variable1>}{<from1>}{<to1>}{variable2}{<from2>}{<to2>}
+
+定積分の変数変換です。
+
+
+### \rvec{}{} \rvec*{}{}{}
+
+2次元横ベクトルです。アスタリスク付きは3次元横ベクトルです。[rvecbracket] オプションを読み込むと角括弧に置き換えられます。
+
+
+### \cvec{}{} \cvec*{}{}{}
+
+2次元縦ベクトルです。アスタリスク付きは3次元縦ベクトルです。[cvecbracket] オプションを読み込むと角括弧に置き換えられます。
+
+
+### \innerproduct{}{} {}{}
+
+ベクトルの内積です。[innerproductbracket] オプションを読み込むとブラケット記法に置き換えられます。\inp は \innerproduct の別名です。
+
+
+### \sequence{} \seq{}
+
+数列です。\seq は \sequence の別名です。
+
+
+### \sum*
+
+ディスプレイ数式中でもテキストスタイルになる \sum です。
+
+
+### \GCD \LCM
+
+最大公約数と最小公倍数の記号です。
+
+
+### \degree
+
+度の記号です。
+
+
+### \arc{}
+
+弧の記号です。
+
+このコードは[斎藤新悟氏](http://www.artsci.kyushu-u.ac.jp/~ssaito/jpn/tex/tips/misc.html#arc)によるものです。お礼申しあげます。
+
+
+### \parallel
+
+平行の記号です。元の記号は \originalparallel に保存されます。
+
+このコードは[大石氏](https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html)によるものです。お礼申しあげます。
+
+
+### \similar
+
+相似の記号です。
+
+
+### \permutation{}{} \combination{}{} \repeatedpermutation{}{} \repeatedcombination{}{} \homogeneous{}{}
+
+順列・組み合わせ・重複順列・重複組み合わせの記号です。\homogeneous は \repeatedcombination の別名です。
+
+
+### \expectedvalue{}
+
+期待値の記号です。[mathbb] オプションを読み込むと黒板太字に変わります。
+
+
+### \Re \Im
+
+実軸・虚軸の記号です。元の記号は \originalRe \originalIm に保存されます。
+
+
+### \conjugate{}
+### \conj{}
+
+複素共役です。\conj は \conjugate の別名です。
+
+
+### \parentext{<text>} \squaretext{<text>} \whitesquaretext{<text>}
+
+丸括弧付き文章,鉤括弧付き文章,白抜き鉤括弧付き文章です。
+
+
+### \ltext{<text>} \lltext{<text>}
+
+鉤括弧付き文章,白抜き鉤括弧付き文章です。
+
+
+### \ltextbegin \lltextbegin \ltextend \lltextend
+
+開き鉤括弧,開き白抜き鉤括弧,閉じ鉤括弧,閉じ白抜き鉤括弧です。途中で改行が入るときに用いるとよいでしょう。
+
+
+### \nomination{}
+
+語句を数式に用いるための括弧です。
+
+
+### \condition{}
+
+場合分けに用いるための括弧です。\condition*{} は前に空白を伴います。
+
+
+### \explanation{}
+
+式の説明に用いるための括弧で,前に \because を伴います。\explanation*{} は伴いません。
+
+
+### \quantify
+
+式の途中で量子化について言及するためのテキストボックスです。
+
+
+### \equationunit
+
+式の中で単位を書くための括弧です。
+
+
+### \texttherefore \textbecause
+
+本文中で使うために調整した \therefore と \because です。
+
+
+### \QED
+
+全角幅のハルモス記号です。
+
+
+## Achknowledgements
+
+\neconcave \seconcave \seconvex \neconvex は[児玉宏児氏](http://www.math.kobe-u.ac.jp/HOME/kodama/tips-latex-bend-arrow.html)によるもので,GNU/GPLライセンスで公開なさっています。お礼申しあげます。
+
+\arc は[斎藤新悟氏](http://www.artsci.kyushu-u.ac.jp/~ssaito/jpn/tex/tips/misc.html#arc)によるものです。お礼申しあげます。
+
+\parallel は[大石氏](https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html)によるものです。お礼申しあげます。
+
+このパッケージの作成にあたっては,[大熊一弘(tDB)氏によるemath](http://emath.s40.xrea.com/)の影響を受けています。お礼申しあげます。
+
+
+## ライセンス
+
+このパッケージは[GNU GPL v3 or newer](http://www.gnu.org/licenses/gpl-3.0.html)のもとで配布しています。
+
+
+## 更新履歴
+
++ Version 1.0 2022-06-29
+ + The first public version.
+
+
+---
+
+[Yukoh KUSAKABE](https://twitter.com/metaphysicainfo) (screen-name) at [metaphysica.info](https://www.metaphysica.info/) \ No newline at end of file
diff --git a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty
new file mode 100644
index 0000000000..f22aa76b81
--- /dev/null
+++ b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols.sty
@@ -0,0 +1,625 @@
+%%
+%% jpnedumathsymbols.sty
+%% for making handouts in Japanese Education
+%%
+%% Copyright (C) 2022 Yukoh KUSAKABE (screen-name)
+%% https://www.metaphysica.info/
+%% https://twitter.com/metaphysicainfo
+%%
+%% This file released under
+%% [GNU GPL v3 or newer](http://www.gnu.org/licenses/gpl-3.0.html).
+%%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{jpnedumathsymbols}[2022/06/29 v1.0]
+%
+%% [nofrac]
+\newif\if@jpnedu@symbol@nofrac
+\@jpnedu@symbol@nofracfalse
+\DeclareOption{nofrac}{\@jpnedu@symbol@nofractrue}%
+%
+%% [nosqrt]
+\newif\if@jpnedu@symbol@nosqrt
+\@jpnedu@symbol@nosqrtfalse
+\DeclareOption{nosqrt}{\@jpnedu@symbol@nosqrttrue}%
+%
+%% [nolim]
+\newif\if@jpnedu@symbol@nolim
+\@jpnedu@symbol@nolimfalse
+\DeclareOption{nolim}{\@jpnedu@symbol@nolimtrue}%
+%
+%% [novec]
+\newif\if@jpnedu@symbol@novec
+\@jpnedu@symbol@novecfalse
+\DeclareOption{novec}{\@jpnedu@symbol@novectrue}%
+%
+%% [nopointroman]
+\newif\if@jpnedu@symbol@nopointroman
+\@jpnedu@symbol@nopointromanfalse
+\DeclareOption{nopointroman}{\@jpnedu@symbol@nopointromantrue}%
+%
+%% [nocurriculum]
+\newif\if@jpnedu@symbol@nocurriculum
+\@jpnedu@symbol@nocurriculumfalse
+\DeclareOption{nocurriculum}{\@jpnedu@symbol@nocurriculumtrue}%
+%
+%% [mathbb]
+\newif\if@jpnedu@symbol@mathbb
+\@jpnedu@symbol@mathbbfalse
+\DeclareOption{mathbb}{\@jpnedu@symbol@mathbbtrue}
+%
+%% [setcolon]
+\newif\if@jpnedu@symbol@setcolon
+\@jpnedu@symbol@setcolonfalse
+\DeclareOption{setcolon}{\@jpnedu@symbol@setcolontrue}
+%
+%% [rvecbracket]
+\newif\if@jpnedu@symbol@rvecbracket%
+\@jpnedu@symbol@rvecbracketfalse
+\DeclareOption{rvecbracket}{\@jpnedu@symbol@rvecbrackettrue}
+
+%% [cvecbracket]
+\newif\if@jpnedu@symbol@cvecbracket%
+\@jpnedu@symbol@cvecbracketfalse
+\DeclareOption{cvecbracket}{\@jpnedu@symbol@cvecbrackettrue}
+
+%% [innerproductbracket]
+\newif\if@jpnedu@symbol@innerproductbracket%
+\@jpnedu@symbol@innerproductbracketfalse
+\DeclareOption{innerproductbracket}{\@jpnedu@symbol@innerproductbrackettrue}
+%
+\ExecuteOptions{}
+\ProcessOptions\relax
+%
+% for \begin{bmatrix}
+% \begin{cmatrix}
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+%
+% for \NewDocumentEnvironment
+\RequirePackage{xparse}
+%
+% for \begin{empheq}
+\RequirePackage{empheq}
+%
+%%%
+%% FRAC
+%%%
+%
+\if@jpnedu@symbol@nofrac
+\else
+%
+%% \originalfrac
+\let\originalfrac\frac
+%
+%% \frac
+\renewcommand{\frac}[2]{\mathchoice%
+{{\displaystyle\originalfrac{\raisebox{-0.42ex}{$\,#1\,$}}{\raisebox{0.1ex}{$\,#2\,$}}}}%
+{{\displaystyle\originalfrac{\raisebox{-0.42ex}{$\,#1\,$}}{\raisebox{0.1ex}{$\,#2\,$}}}}%
+{\originalfrac{#1}{#2}}%
+{\originalfrac{#1}{#2}}%
+}%
+%
+\fi
+%
+%%%
+%% SQRT
+%%%
+%
+\if@jpnedu@symbol@nosqrt
+\else
+%
+%% \originalsqrt
+\let\originalsqrt\sqrt
+%
+%% \sqrt
+\renewcommand{\sqrt}[2][\phantom{1}]{\mathchoice%
+{\!\originalsqrt[\leftroot{-1}\uproot{0}#1]{\vphantom{(}#2\hspace{1pt}}}%
+{\!\originalsqrt[\leftroot{-1}\uproot{0}#1]{\vphantom{(}#2\hspace{1pt}}}%
+{\originalsqrt[#1]{#2}}%
+{\originalsqrt[#1]{#2}}}
+%
+\fi
+%
+%%%
+%% LIM
+%%%
+%
+\if@jpnedu@symbol@nolim
+\else
+%
+%% \originallim
+\let\originallim\lim
+%
+%% \lim
+\renewcommand{\lim}{\originallim\limits}
+%
+\fi
+%
+%%%
+%% VEC
+%%%
+%
+\if@jpnedu@symbol@novec
+\else
+%
+%% \originalvec
+\let\originalvec\vec
+%
+%% \vec
+\DeclareRobustCommand{\vec}[1]%
+{\hspace{-1pt}\overrightarrow{\hspace{1pt}\vphantom{T}#1\hspace{1pt}}\hspace{-1pt}}
+%{\overrightarrow{\hspace{1pt}\vphantom{T}#1\hspace{1pt}}}
+%
+\fi
+%
+%%%
+%% POINTROMAN
+%%%
+%
+\if@jpnedu@symbol@nopointroman
+\else
+%
+%% \angstrom
+\let\angstrom\AA
+%
+%% \capitaleszett
+\let\capitaleszett\SS
+%
+%% \AA -- \ZZ
+\DeclareRobustCommand\AA{\mathrm{A}}
+\DeclareRobustCommand\BB{\mathrm{B}}
+\DeclareRobustCommand\CC{\mathrm{C}}
+\DeclareRobustCommand\DD{\mathrm{D}}
+\DeclareRobustCommand\EE{\mathrm{E}}
+\DeclareRobustCommand\FF{\mathrm{F}}
+\DeclareRobustCommand\GG{\mathrm{G}}
+\DeclareRobustCommand\HH{\mathrm{H}}
+\DeclareRobustCommand\II{\mathrm{I}}
+\DeclareRobustCommand\JJ{\mathrm{J}}
+\DeclareRobustCommand\KK{\mathrm{K}}
+\DeclareRobustCommand\LL{\mathrm{L}}
+\DeclareRobustCommand\MM{\mathrm{M}}
+\DeclareRobustCommand\NN{\mathrm{N}}
+\DeclareRobustCommand\OO{\mathrm{O}}
+\DeclareRobustCommand\PP{\mathrm{P}}
+\DeclareRobustCommand\QQ{\mathrm{Q}}
+\DeclareRobustCommand\RR{\mathrm{R}}
+\DeclareRobustCommand\SS{\mathrm{S}}
+\DeclareRobustCommand\TT{\mathrm{T}}
+\DeclareRobustCommand\UU{\mathrm{U}}
+\DeclareRobustCommand\VV{\mathrm{V}}
+\DeclareRobustCommand\WW{\mathrm{W}}
+\DeclareRobustCommand\XX{\mathrm{X}}
+\DeclareRobustCommand\YY{\mathrm{Y}}
+\DeclareRobustCommand\ZZ{\mathrm{Z}}
+%
+\fi
+%
+%%%
+%% CURRICULUM
+%%%
+%
+\if@jpnedu@symbol@nocurriculum
+\else
+%
+% for \ajroman
+\RequirePackage{otf}
+%
+%% \mathI \mathA \mathIA etc.
+\DeclareRobustCommand{\currI}{\ajRoman{1}}
+\DeclareRobustCommand{\currII}{\ajRoman{2}}
+\DeclareRobustCommand{\currIII}{\ajRoman{3}}
+\DeclareRobustCommand{\currA}{A}
+\DeclareRobustCommand{\currB}{B}
+\DeclareRobustCommand{\currC}{C}
+\DeclareRobustCommand{\currD}{D}
+\DeclareRobustCommand{\currE}{E}
+\DeclareRobustCommand{\currF}{F}
+\DeclareRobustCommand{\currG}{G}
+\DeclareRobustCommand{\currH}{H}
+\DeclareRobustCommand{\currI}{I}
+\DeclareRobustCommand{\currJ}{J}
+\DeclareRobustCommand{\currK}{K}
+\DeclareRobustCommand{\currL}{L}
+\DeclareRobustCommand{\currM}{M}
+\DeclareRobustCommand{\currN}{N}
+\DeclareRobustCommand{\currO}{O}
+\DeclareRobustCommand{\currP}{P}
+\DeclareRobustCommand{\currQ}{Q}
+\DeclareRobustCommand{\currR}{R}
+\DeclareRobustCommand{\currS}{S}
+\DeclareRobustCommand{\currT}{T}
+\DeclareRobustCommand{\currU}{U}
+\DeclareRobustCommand{\currV}{V}
+\DeclareRobustCommand{\currW}{W}
+\DeclareRobustCommand{\currX}{X}
+\DeclareRobustCommand{\currY}{Y}
+\DeclareRobustCommand{\currZ}{Z}
+\DeclareRobustCommand{\curra}{a}
+\DeclareRobustCommand{\currb}{b}
+\DeclareRobustCommand{\currc}{c}
+\DeclareRobustCommand{\currd}{d}
+\DeclareRobustCommand{\curre}{e}
+\DeclareRobustCommand{\currf}{f}
+\DeclareRobustCommand{\currg}{g}
+\DeclareRobustCommand{\currh}{h}
+\DeclareRobustCommand{\curri}{i}
+\DeclareRobustCommand{\currj}{j}
+\DeclareRobustCommand{\currk}{k}
+\DeclareRobustCommand{\currl}{l}
+\DeclareRobustCommand{\currm}{m}
+\DeclareRobustCommand{\currn}{n}
+\DeclareRobustCommand{\curro}{o}
+\DeclareRobustCommand{\currp}{p}
+\DeclareRobustCommand{\currq}{q}
+\DeclareRobustCommand{\currr}{r}
+\DeclareRobustCommand{\currs}{s}
+\DeclareRobustCommand{\currt}{t}
+\DeclareRobustCommand{\curru}{u}
+\DeclareRobustCommand{\currv}{v}
+\DeclareRobustCommand{\currw}{w}
+\DeclareRobustCommand{\currx}{x}
+\DeclareRobustCommand{\curry}{y}
+\DeclareRobustCommand{\currz}{z}
+\DeclareRobustCommand{\curralpha}{α}
+\DeclareRobustCommand{\currbeta}{β}
+\DeclareRobustCommand{\currgamma}{γ}
+\DeclareRobustCommand{\currdelta}{δ}
+\DeclareRobustCommand{\currepsilon}{ε}
+\DeclareRobustCommand{\currzeta}{ζ}
+\DeclareRobustCommand{\curreta}{η}
+\DeclareRobustCommand{\currtheta}{θ}
+\DeclareRobustCommand{\curriota}{ι}
+\DeclareRobustCommand{\currkappa}{κ}
+\DeclareRobustCommand{\currlambda}{λ}
+\DeclareRobustCommand{\currmu}{μ}
+\DeclareRobustCommand{\currnu}{ν}
+\DeclareRobustCommand{\currxi}{ξ}
+\DeclareRobustCommand{\curromicron}{ο}
+\DeclareRobustCommand{\currpai}{π}
+\DeclareRobustCommand{\currrho}{ρ}
+\DeclareRobustCommand{\currsigma}{σ}
+\DeclareRobustCommand{\currtau}{τ}
+\DeclareRobustCommand{\currupsilon}{υ}
+\DeclareRobustCommand{\currphi}{φ}
+\DeclareRobustCommand{\currchi}{χ}
+\DeclareRobustCommand{\currpsi}{ψ}
+\DeclareRobustCommand{\curromega}{ω}
+\DeclareRobustCommand{\currIA}{\@ifstar{\@jpnedu@symbol@currIA@star}{\@jpnedu@symbol@currIA@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@currIA@star}{\ajRoman{1}+A}
+\DeclareRobustCommand{\@jpnedu@symbol@currIA@nostar}{\ajRoman{1}A}
+\DeclareRobustCommand{\currIIB}{\@ifstar{\@jpnedu@symbol@currIIB@star}{\@jpnedu@symbol@currIIB@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@currIIB@star}{\ajRoman{2}+B}
+\DeclareRobustCommand{\@jpnedu@symbol@currIIB@nostar}{\ajRoman{2}B}
+\DeclareRobustCommand{\currIIBC}{\@ifstar{\@jpnedu@symbol@currIIBC@star}{\@jpnedu@symbol@currIIBC@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@currIIBC@star}{\ajRoman{2}+B+C}
+\DeclareRobustCommand{\@jpnedu@symbol@currIIBC@nostar}{\ajRoman{2}BC}
+\DeclareRobustCommand{\currIIIC}{\@ifstar{\@jpnedu@symbol@currIIIC@star}{\@jpnedu@symbol@currIIIC@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@currIIIC@star}{\ajRoman{3}+C}
+\DeclareRobustCommand{\@jpnedu@symbol@currIIIC@nostar}{\ajRoman{3}C}
+\fi
+%
+%% \phantomheight
+\DeclareRobustCommand{\phantomheight}[1][\frac{1}{2}]{\vphantom{\raisebox{4pt}{\ensuremath{#1}}}\vphantom{\raisebox{-3pt}{\ensuremath{#1}}}}
+%
+%% \comma
+\DeclareRobustCommand{\comma}{\@ifstar{\@jpnedu@symbol@comma@star}{\@jpnedu@symbol@comma@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@comma@nostar}{,\,}
+\DeclareRobustCommand{\@jpnedu@symbol@comma@star}{\,,\,}
+%% \period
+\DeclareRobustCommand{\period}{\@ifstar{\@jpnedu@symbol@period@star}{\@jpnedu@symbol@period@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@period@nostar}{\text{。}\quad}
+\DeclareRobustCommand{\@jpnedu@symbol@period@star}{\,\text{。}\quad}
+%
+%% \pair{}{} \pair*{}{}
+%% \triplet{}{}{} \triplet*{}{}
+%% \quadruplet{}{}{}{} \quadruplet*{}{}{}
+\DeclareRobustCommand{\pair}
+{\@ifstar{\@jpnedu@symbol@pair@star}{\@jpnedu@symbol@pair@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@pair@star}[2]{(#1,\,#2)}
+\DeclareRobustCommand{\@jpnedu@symbol@pair@nostar}[2]{\left(#1,\,#2\right)}
+\DeclareRobustCommand{\triplet}
+{\@ifstar{\@jpnedu@symbol@triplet@star}{\@jpnedu@symbol@triplet@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@triplet@star}[3]{(#1,\,#2,\,#3)}
+\DeclareRobustCommand{\@jpnedu@symbol@triplet@nostar}[3]{\left(#1,\,#2,\,#3\right)}
+\DeclareRobustCommand{\quadruplet}
+{\@ifstar{\@jpnedu@symbol@quadruplet@star}{\@jpnedu@symbol@quadruplet@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@quadruplet@star}[4]{(#1,\,#2,\,#3,\,#4)}
+\DeclareRobustCommand{\@jpnedu@symbol@quadruplet@nostar}[4]{\left(#1,\,#2,\,#3,\,#4\right)}
+%
+%% \intersection
+%% \union
+\DeclareRobustCommand{\intersection}{\cap}
+\DeclareRobustCommand{\union}{\cup}
+%
+%% \complement{}
+\let\originalcmpl\cmpl
+\DeclareRobustCommand{\complement}[1]{\overline{\vphantom{T}#1}}
+\let\cmpl\complement
+%
+%% \tand
+%% \tor
+\DeclareRobustCommand{\tand}{\ensuremath{\mathbin{\text{かつ}}}}
+\DeclareRobustCommand{\tor}{\ensuremath{\mathbin{\text{または}}}}
+%% \eand
+%% \eor
+\DeclareRobustCommand{\eand}{\ensuremath{\mathbin{\text{and}}}}
+\DeclareRobustCommand{\eor}{\ensuremath{\mathbin{\text{or}}}}
+%
+%% \lto
+%% \lfrom
+%% \iff
+%% \plto
+%% \plfrom
+%% \piff
+\let\originaliff\iff
+\DeclareRobustCommand{\lto}{\ensuremath{\mathrel{\Longrightarrow}}}
+\DeclareRobustCommand{\lfrom}{\ensuremath{\mathrel{\Longleftarrow}}}
+\DeclareRobustCommand{\iff}{\ensuremath{\mathrel{\Longleftrightarrow}}}
+\DeclareRobustCommand{\plto}{\ensuremath{\mathrel{\phantom{\Longrightarrow}}}}
+\DeclareRobustCommand{\plfrom}{\ensuremath{\mathrel{\phantom{\Longlrftarrow}}}}
+\DeclareRobustCommand{\piff}{\ensuremath{\mathrel{\phantom{\Longleftrightarrow}}}}
+%
+%% \peq
+\DeclareRobustCommand{\peq}{\mathrel{\phantom{=}}}
+%
+%% \set{}{}
+%% ([setcolon])
+\if@jpnedu@symbol@setcolon
+\DeclareRobustCommand{\set}[2]{\left\{\,#1\,;\,#2\,\right\}}
+\else
+\DeclareRobustCommand{\set}[2]{\left\{\,#1\,\middle|\,#2\,\right\}}
+\fi
+%
+%% \N \NZ \NP \Z \Q \R \C
+%% ([mathbb])
+\if@jpnedu@symbol@mathbb
+\DeclareRobustCommand{\N}{\ensuremath{\mathbb{N}}}
+\DeclareRobustCommand{\NZ}{\ensuremath{\mathbb{N}_{0}}}
+\DeclareRobustCommand{\NP}{\ensuremath{\mathbb{N}_{+}}}
+\DeclareRobustCommand{\Z}{\ensuremath{\mathbb{Z}}}
+\DeclareRobustCommand{\Q}{\ensuremath{\mathbb{Q}}}
+\DeclareRobustCommand{\R}{\ensuremath{\mathbb{R}}}
+\DeclareRobustCommand{\C}{\ensuremath{\mathbb{C}}}
+\else
+\DeclareRobustCommand{\N}{\ensuremath{\mathbf{N}}}
+\DeclareRobustCommand{\NZ}{\ensuremath{\mathbf{N}_{0}}}
+\DeclareRobustCommand{\NP}{\ensuremath{\mathbf{N}_{+}}}
+\DeclareRobustCommand{\Z}{\ensuremath{\mathbf{Z}}}
+\DeclareRobustCommand{\Q}{\ensuremath{\mathbf{Q}}}
+\DeclareRobustCommand{\R}{\ensuremath{\mathbf{R}}}
+\DeclareRobustCommand{\C}{\ensuremath{\mathbf{C}}}
+\fi
+%
+%% \inverse{<function>}
+\DeclareRobustCommand{\inverse}[1]{#1^{-1}}
+%
+%% \abs{} \abs*{}
+\let\originalabs\abs
+\DeclareRobustCommand{\abs}
+{\@ifstar{\@jpnedu@symbol@abs@star}{\@jpnedu@symbol@abs@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@abs@star}[1]{\lvert#1\rvert}
+\DeclareRobustCommand{\@jpnedu@symbol@abs@nostar}[1]{\left\lvert#1\right\rvert}
+%
+%% \begin{cases}
+\DeclareDocumentEnvironment{ecases}{O{align*} m b}%
+{\vspace{0.25\baselineskip}\begin{empheq}[left={#2=\empheqlbrace\,}]{#1}{#3}\end{empheq}}%
+{\par\vspace{0.25\baselineskip}\noindent}
+%
+%% \begin{simul}{<style>}
+\DeclareDocumentEnvironment{simul}{O{gather*} b}%
+{\vspace{0.25\baselineskip}\begin{empheq}[left=\empheqlbrace\,]{#1}{#2}\end{empheq}}%
+{\par\vspace{0.25\baselineskip}\noindent}
+%
+%% \begin{signchart}{<columns>}
+\newenvironment{signchart}[1]%
+{\vspace{0.25\baselineskip}\begin{equation*}\begin{array}{c|*#1{c}}\hline}%
+{\\\hline\end{array}\end{equation*}\par\vspace{0.25\baselineskip}\noindent}
+%
+%% \neconcave
+%% \seconcave
+%% \seconvex
+%% \neconvex
+% http://www.math.kobe-u.ac.jp/HOME/kodama/tips-latex-bend-arrow.html
+% (GNU/GPL)
+\DeclareRobustCommand{\seconvex}{{\begin{picture}(10,10)%
+\put(10,10){\oval(20,20)[lb]}\put(10,0){\vector(1,0){2}}\end{picture}}}
+\DeclareRobustCommand{\neconcave}{{\begin{picture}(10,10)%
+\put(10,0){\oval(20,20)[lt]}\put(10,10){\vector(1,0){2}}\end{picture}}}
+\DeclareRobustCommand{\neconvex}{{\begin{picture}(10,10)%
+\put(0,10){\oval(20,20)[rb]}\put(10,10){\vector(0,1){2}}\end{picture}}}
+\DeclareRobustCommand{\seconcave}{{\begin{picture}(10,10)%
+\put(0,0){\oval(20,20)[rt]}\put(10,0){\vector(0,-1){2}}\end{picture}}}
+%
+%% \dint
+\DeclareRobustCommand{\dint}{{\displaystyle\int}}
+%
+%% \dr \ds \dt \du \dx \dy \dz \dtheta
+\DeclareRobustCommand{\dr}{\,dr}
+\DeclareRobustCommand{\ds}{\,ds}
+\DeclareRobustCommand{\dt}{\,dt}
+\DeclareRobustCommand{\du}{\,du}
+\DeclareRobustCommand{\dx}{\,dx}
+\DeclareRobustCommand{\dy}{\,dy}
+\DeclareRobustCommand{\dz}{\,dz}
+\DeclareRobustCommand{\dtheta}{\,d\theta}
+%
+%% \const
+\DeclareRobustCommand{\const}{\mathrm{const.}}
+%
+%% \defint{<from>}{<to>}{<function>}
+\DeclareRobustCommand{\defint}[3]{\left[\vphantom{\frac{1}{2}}#3\right]_{#1}^{#2}}
+%
+%% \transformvariable{<variable1>}{<from1>}{<to1>}{variable2}{<from2>}{<to2>}
+\DeclareRobustCommand{\transformvariable}[6]{\begin{tabular}{c|ccc}
+$#1$&$#2$&$\to$&$#3$\\\hline
+$#4$&$#5$&$\to$&$#6$
+\end{tabular}}
+%
+%% \rvec{}{}
+%% \rvec*{}{}{}
+%% ([rvecbracket])
+\if@jpnedu@symbol@rvecbracket%
+\DeclareRobustCommand{\rvec}
+{\@ifstar{\@jpnedu@symbol@rvec@star}{\@jpnedu@symbol@rvec@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@rvec@star}[3]{\left[#1,\,#2,\,#3\right]}
+\DeclareRobustCommand{\@jpnedu@symbol@rvec@nostar}[2]{\left[#1,\,#2\right]}
+\else%
+\DeclareRobustCommand{\rvec}
+{\@ifstar{\@jpnedu@symbol@rvec@star}{\@jpnedu@symbol@rvec@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@rvec@star}[3]{\left(#1,\,#2,\,#3\right)}
+\DeclareRobustCommand{\@jpnedu@symbol@rvec@nostar}[2]{\left(#1,\,#2\right)}
+\fi%
+%
+%% \cvec{}{}
+%% \cvec*{}{}{}
+%% ([cvecbracket])
+\if@jpnedu@symbol@cvecbracket%
+\DeclareRobustCommand{\cvec}
+{\@ifstar{\@jpnedu@symbol@cvec@star}{\@jpnedu@symbol@cvec@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@cvec@star}[3]{\begin{bmatrix}\,#1\,\\\,#2\,\\\,#3\,\end{bmatrix}}
+\DeclareRobustCommand{\@jpnedu@symbol@cvec@nostar}[2]{\begin{bmatrix}\,#1\,\\\,#2\,\end{bmatrix}}
+\else%
+\DeclareRobustCommand{\cvec}
+{\@ifstar{\@jpnedu@symbol@cvec@star}{\@jpnedu@symbol@cvec@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@cvec@star}[3]{\begin{pmatrix}\,#1\,\\\,#2\,\\\,#3\,\end{pmatrix}}
+\DeclareRobustCommand{\@jpnedu@symbol@cvec@nostar}[2]{\begin{pmatrix}\,#1\,\\\,#2\,\end{pmatrix}}
+\fi%
+%
+%% \innerproduct{}{} \inp{}{}
+\let\originalinp\inp
+\if@jpnedu@symbol@innerproductbracket
+\DeclareRobustCommand{\innerproduct}
+{\@ifstar{\@jpnedu@symbol@innerproduct@star}{\@jpnedu@symbol@innerproduct@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@innerproduct@star}[2]{\langle #1\relax,#2\rangle}
+\DeclareRobustCommand{\@jpnedu@symbol@innerproduct@nostar}[2]{\left\langle #1\relax,#2\right\rangle}
+\else%
+\DeclareRobustCommand{\innerproduct}
+{\@ifstar{\@jpnedu@symbol@innerproduct@star}{\@jpnedu@symbol@innerproduct@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@innerproduct@star}[2]{#1\cdot #2\relax}
+\DeclareRobustCommand{\@jpnedu@symbol@innerproduct@nostar}[2]{#1\cdot #2\relax}
+\fi%
+\let\inp\innerproduct
+%
+%% \sequence{} \seq{}
+\let\originalseq\seq
+\DeclareRobustCommand{\sequence}[1]{\ensuremath{\left\{#1\right\}}}
+\let\seq\sequence
+%
+%% \sum*
+\let\originalsum\sum
+\DeclareRobustCommand{\sum}
+{\@ifstar{\@jpnedu@symbol@sum@star}{\@jpnedu@symbol@sum@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@sum@star}{\textstyle\sum}
+\DeclareRobustCommand{\@jpnedu@symbol@sum@nostar}{\originalsum}
+%
+%% \GCD
+%% \LCM
+\DeclareRobustCommand{\GCD}{\mathop{\mathrm{GCD}}\nolimits}
+\DeclareRobustCommand{\LCM}{\mathop{\mathrm{LCM}}\nolimits}
+%
+%% \degree
+\let\originaldegree\degree
+\DeclareRobustCommand{\degree}{^{\circ}}
+%
+%% \arc{}
+% http://www.artsci.kyushu-u.ac.jp/~ssaito/jpn/tex/tips/misc.html#arc
+\let\originalarc\arc
+\DeclareRobustCommand{\arc}[1]{%
+\settowidth{\dimen0}{\ensuremath{#1}}%
+\divide\dimen0 by 2%
+\overset{\rotatebox{-90}{\ensuremath{\left(\rule{0pt}{\dimen0}\right.\!}}}{#1}%
+}
+%
+%% \parallel
+% https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/8814.html
+\let\originalparallel\parallel
+\DeclareRobustCommand{\parallel}{%
+\mathrel{\raise.3ex\hbox{\scalebox{.7}{%
+\rotatebox[origin=c]{-7}{/}\kern-.35em\rotatebox[origin=c]{-7}{/}}}}}%
+\DeclareRobustCommand{\notparallel}
+{\mathrel{\raise.3ex\hbox{\scalebox{.7}{%
+\ooalign{\rotatebox[origin=c]{-7}{/}\kern-.35em\rotatebox[origin=c]{-7}{/}\crcr%
+\hfil\raisebox{.2ex}{$\backslash$}\hfil}}}}}%
+%
+%% \similar
+\let\originalsimilar\similar
+\DeclareRobustCommand{\similar}{\mathrel{\lower.2ex\hbox{\scalebox{1.3}{∽}}}}
+%
+%% \permutation{}{}
+%% \combination{}{}
+%% \repeatedpermutation{}{}
+%% \homogeneous{}{} \repeatedcombination{}{}
+\DeclareRobustCommand{\permutation}[2]{\ensuremath{{}_{#1}\mathrm{P}_{#2}}}
+\DeclareRobustCommand{\combination}[2]{\ensuremath{{}_{#1}\mathrm{C}_{#2}}}
+\DeclareRobustCommand{\repeatedpermutation}[2]{\ensuremath{{}_{#1}\mathrm{\Pi}_{#2}}}
+\DeclareRobustCommand{\homogeneous}[2]{\ensuremath{{}_{#1}\mathrm{H}_{#2}}}
+\let\repeatedcombination\homogeneous
+%
+%% \expectedvalue{}
+%% ([mathbb])
+\if@jpnedu@symbol@mathbb
+\DeclareRobustCommand{\expectedvalue}[1]{\mathbb{E}\left(#1\right)}
+\else
+\DeclareRobustCommand{\expectedvalue}[1]{\mathbf{E}\left(#1\right)}
+\fi
+%
+%% \Re
+%% \Im
+\let\originalRe\Re
+\let\originalIm\Im
+\DeclareRobustCommand{\Re}{\mathrm{Re}\,}
+\DeclareRobustCommand{\Im}{\mathrm{Im}\,}
+%
+%% \conjugate{}
+%% \conj{}
+\let\originalconjugate\conjugate
+\let\originalconj\conj
+\DeclareRobustCommand{\conjugate}[1]{\overline{\mathstrut #1}}
+\let\conj\conjugate
+%
+%% \parentext{<text>}
+%% \squaretext{<text>}
+%% \whitesquaretext{<text>}
+\DeclareRobustCommand{\parentext}[1]{\text{(#1)}}
+\DeclareRobustCommand{\squaretext}[1]{\text{「#1」}}
+\DeclareRobustCommand{\whitesquaretext}[1]{\text{『#1』}}
+%
+%% \ltext{<text>}
+%% \lltext{<text>}
+\DeclareRobustCommand{\ltext}{\squaretext}
+\DeclareRobustCommand{\lltext}{\whitesquaretext}
+\DeclareRobustCommand{\ltextbegin}{\text{「}}
+\DeclareRobustCommand{\lltextbegin}{\text{『}}
+\DeclareRobustCommand{\ltextend}{\text{」}}
+\DeclareRobustCommand{\lltextend}{\text{』}}
+%
+%% \nomination{}
+\DeclareRobustCommand{\nomination}{\parentext}
+%
+%% \condition
+\DeclareRobustCommand{\condition}{\@ifstar{\@jpnedu@symbol@condition@star}{\@jpnedu@symbol@condition@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@condition@star}[1]{\quad\parentext{#1}}
+\DeclareRobustCommand{\@jpnedu@symbol@condition@nostar}[1]{\parentext{#1}}
+%
+%% \explanation{}
+\DeclareRobustCommand{\explanation}{\@ifstar{\@jpnedu@symbol@explanation@star}{\@jpnedu@symbol@explanation@nostar}}
+\DeclareRobustCommand{\@jpnedu@symbol@explanation@nostar}[1]{\parentext{\raisebox{1.5pt}{$\because$\ }#1}}
+\DeclareRobustCommand{\@jpnedu@symbol@explanation@star}[1]{\parentext{#1}}
+%
+%% \quantify
+\DeclareRobustCommand{\quantify}[1]{\text{#1}\ }
+%
+%% \equationunit
+\DeclareRobustCommand{\equationunit}[1]{\parentext{#1}}
+%
+%% \texttherefore
+%% \textbecause
+\DeclareRobustCommand{\texttherefore}{\ensuremath{\raisebox{1.5pt}{$\therefore$}}}
+\DeclareRobustCommand{\textbecause}{\ensuremath{\raisebox{1.5pt}{$\because$}}}
+%
+%% \QED
+\DeclareRobustCommand{\QED}{■}
+%
+%% EOF \ No newline at end of file
diff --git a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols_example.pdf b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols_example.pdf
new file mode 100644
index 0000000000..6b60510e28
--- /dev/null
+++ b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols_example.pdf
Binary files differ
diff --git a/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols_example.tex b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols_example.tex
new file mode 100644
index 0000000000..c9debf3c32
--- /dev/null
+++ b/macros/latex/contrib/jpnedumathsymbols/jpnedumathsymbols_example.tex
@@ -0,0 +1,132 @@
+\documentclass[uplatex]{jsarticle}
+\usepackage{jpnedumathsymbols}
+\begin{document}
+\setlength{\baselineskip}{2em}
+A$\frac{1}{2}$B
+
+A$\sqrt[3]{2}$B
+
+A$\lim_{x\to 1}$B
+
+A$\vec{a}+\vec{B}$B
+
+$\triangle\AA\BB\CC$
+
+数学\currIA
+
+$a\comma b$
+
+$a\period$
+
+$\pair{1}{2}$ $\triplet{1}{2}{3}$ $\quadruplet*{1}{2}{3}{4}$
+
+$A\intersection B$ $C\union D$
+
+$\complement{A}$
+
+$A\tand B$ $A\tor B$
+
+$A\eand B$ $A\eor B$
+
+$A\lto B\lfrom C\iff D$
+
+\begin{align*}
+&\piff A\\
+&\iff B
+\end{align*}
+
+$A=B$
+
+\begin{align*}
+&\peq A\\
+&=B
+\end{align*}
+
+$\set{A}{B}$
+
+$\N \NZ \NP \Z \Q \R \C$
+
+$\inverse{f}$
+
+$\abs{\frac{1}{2}} \abs*{\frac{1}{2}}$
+
+\begin{ecases}{A}
+B\\
+C
+\end{ecases}
+
+\begin{simul}
+A=A\\
+B=B
+\end{simul}
+
+\begin{signchart}{3}
+x&1&\cdots&2\\\hline
+\phantomheight f(x)&0&\neconcave&1
+\end{signchart}
+
+$\dint\dtheta=\theta+\const$
+
+$\dint_{1}^{2}\dx=\defint{1}{2}{x}$
+
+\transformvariable{x}{1}{2}{t}{0}{1}
+
+$\rvec{1}{2}$ $\rvec*{1}{2}{3}$
+
+$\cvec{1}{2}$ $\cvec*{1}{2}{3}$
+
+$\innerproduct{\vec{a}}{\vec{b}}$
+
+$\sequence{a_{n}}$
+
+\[\sum*_{k=1}^{n}\]
+
+$\GCD\pair{1}{2}$ $\LCM\pair{1}{2}$
+
+$30\degree$
+
+$\arc{\AA\BB}$
+
+$l\parallel m$
+
+$\triangle\AA\BB\CC\similar\triangle\AA\BB\CC$
+
+$\permutation{n}{r} \combination{n}{r} \repeatedpermutation{n}{r} \repeatedcombination{n}{r}$
+
+$\expectedvalue{P}$
+
+$\Re \Im$
+
+$\conjugate{\alpha}$
+
+$a \parentext{a} \squaretext{a} \whitesquaretext{a}$
+
+$a \ltext{a} \lltext{a}$
+
+$\ltextbegin \lltextbegin \ltextend \lltextend$
+
+$a=\nomination{a}$
+
+\[
+A=
+\begin{dcases}
+B&\condition{b}\\
+C&\condition{c}
+\end{dcases}
+\]
+
+\begin{ecases}{A}
+B&\condition*{b}\\
+C&\condition*{c}
+\end{ecases}
+
+$a\explanation{a}$
+
+$\quantify{任意の実数$x$に対し}x=1$
+
+$a=1\equationunit{kgw}$
+
+a \texttherefore\ b \textbecause\ c
+
+\QED
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index eac8e19ebe..30af5a6176 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
index 03ec63d63c..40588e3c7c 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -14,6 +14,13 @@
\usepackage{graphics}
\usepackage{hvlogos}
\usepackage{simplekv}
+\usepackage{tabto}
+\usepackage{pgf,pgfplots}
+\pgfplotsset{
+ compat=newest,
+ xlabel near ticks,
+ ylabel near ticks
+}
\usepackage{tkz-tab}
\usepackage{listofitems}
\usepackage{xintexpr}
@@ -35,8 +42,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\PLversion{1.1.5}
-\def\PLdate{13 Mai 2022}
+\def\PLversion{1.1.6}
+\def\PLdate{28 Juin 2022}
\tcbset{vignettes/.style={%
nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -195,12 +202,16 @@ Une commande pour créer, en \TikZ, un cercle trigo avec options.
Une commande pour afficher un petit schéma, en \TikZ, sur le signe d'une fonction affine ou d'un trinôme.
-Deux commandes pour, en \TikZ, créer des petits schémas \og de signe \fg
+Deux commandes pour, en \TikZ, créer des petits schémas \og de signe \fg.
+
+Une commande pour déterminer des paramètres ($a$, $b$, $r$ et $r^2$) d'une régression linéaire par moindres carrés.
\vspace{1.5cm}
\hfill{}\textit{Merci à Anne pour ses retours et sa relecture !}
+\hfill{}\textit{Merci aux membres du groupe \faFacebook{} du \og Coin \LaTeX{} \fg{} pour leur aide et leurs idées !}
+
\vfill
\hrule
@@ -2292,9 +2303,338 @@ En ce qui concerne les autres arguments :
\newpage
+\section{Paramètres d'une régression linéaire par la méthode des moindres carrés}
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est d'utiliser une commande qui va permettre de calculer les paramètres principaux d'un régression linéaire par la méthode des moindres carrés.
+
+Le package \ctex{pgfpots} permet de le faire nativement, mais le moteur de calculs de \textsf{pgf} n'est pas des plus performants avec de grandes valeurs, donc ici cela passe par \ctex{xfp} qui permet de gagner en précision !
+
+\smallskip
+
+L'idée est que cette macro calcule et stocke les paramètres dans des variables (le nom peut être personnalisé !) pour exploitation ultérieure :
+
+\begin{itemize}
+ \item en calculs \textit{purs} ;
+ \item dans un environnement \TikZ{} via \textsf{pgfplots} ou bien en \textit{natif} ;
+ \item dans un environnement \PSTricks{} ;
+ \item dans un environnement \METAPOST{} (à vérifier quand même) ;
+ \item \ldots
+\end{itemize}
+\end{codeidee}
+
+\begin{codetex}[listing only]
+...
+\PLreglin[<clés>]{<listeX>}{<listeY>} %listes avec éléments séparés par des ,
+...
+\end{codetex}
+
+\begin{codeinfo}
+La commande \ctex{PLreglin} va définir également des \textsf{macros} pour chaque coefficient, qui de ce fait seront réutilisables après !
+\end{codeinfo}
+
+\subsection{Commandes}
+
+\begin{codecles}
+Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour \textit{renommer} les paramètres :
+
+\begin{itemize}
+ \item la clé \Cle{nomcoeffa} qui permet de définir la variable qui contiendra $a$ ;\hfill{}défaut \Cle{COEFFa}
+ \item la clé \Cle{nomcoeffb} qui permet de définir la variable qui contiendra $b$ ;\hfill{}défaut \Cle{COEFFb}
+ \item la clé \Cle{nomcoeffr} qui permet de définir la variable qui contiendra $r$ ;\hfill{}défaut \Cle{COEFFr}
+ \item la clé \Cle{nomcoeffrd} qui permet de définir la variable qui contiendra $r^2$ ;\hfill{}défaut \Cle{COEFFrd}
+ \item la clé \Cle{nomxmin} qui permet de définir la variable qui contiendra $x_{\text{min}}$ ;\hfill{}défaut \Cle{LXmin}
+ \item la clé \Cle{nomxmax} qui permet de définir la variable qui contiendra $x_{\text{max}}$.\hfill{}défaut \Cle{LXmax}
+\end{itemize}
+\end{codecles}
+
+\begin{codetex}[listing only]
+%les espaces verticaux n'ont pas été écrits ici
+\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
+\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+\PLreglin{\LLX}{\LLY}
+%vérif des calculs (noms non modifiables...)
+Liste des X := \showitems\LX.
+Liste des Y := \showitems\LY.
+Somme des X := \LXSomme{} et somme des Y := \LYSomme.
+Moyenne des X := \LXmoy{} et moyenne des Y := \LYmoy.
+Variance des X := \LXvar{} et variance des Y := \LYvar{}
+Covariance des X/Y := \LXYvar.
+%les coefficients, avec des noms modifiables !
+Min des X := \LXmin{} et Max des X := \LXmax.
+Coefficient $a=\COEFFa$.
+Coefficient $b=\COEFFb$.
+Coefficient $r=\COEFFr$.
+Coefficient $r^2=\COEFFrd$.
+\end{codetex}
+
+\begin{codesortie}
+\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
+\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+\PLreglin{\LLX}{\LLY}
+
+Liste des X := \showitems\LX.
+
+\smallskip
+
+Liste des Y := \showitems\LY.
+
+\smallskip
+
+Somme des X := \LXSomme{} et somme des Y := \LYSomme.
+
+\smallskip
+
+Moyenne des X := \LXmoy{} et moyenne des Y := \LYmoy.
+
+\smallskip
+
+Variance des X := \LXvar{} et variance des Y := \LYvar{}
+
+\smallskip
+
+Covariance des X/Y := \LXYvar.
+
+\smallskip
+
+Min des X := \LXmin{} et Max des X := \LXmax.
+
+\smallskip
+
+Coefficient $a=\COEFFa$.\tabto{0.5\textwidth}Coefficient $b=\COEFFb$.
+
+%\smallskip
+%
+%Coefficient $b=\COEFFb$.
+
+\smallskip
+
+Coefficient $r=\COEFFr$.\tabto{0.5\textwidth}Coefficient $r^2=\COEFFrd$.
+
+%\smallskip
+%
+%Coefficient $r^2=\COEFFrd$.
+\end{codesortie}
+
+\begin{codeinfo}
+\hfill~\includegraphics[height=3cm]{./graphics/pl-doc-stats_a}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_b}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_c}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_c2}\hfill~
+\end{codeinfo}
+
+\begin{codeinfo}
+Les \textsf{macros} qui contiennent les paramètres de la régression sont donc réutilisables, en tant que nombres réels, donc exploitables par \ctex{siunitx} et \ctex{xfp} pour affichage \textit{fin} ! Ci-dessous un exemple permettant de visualiser tout cela.
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+%les espaces verticaux n'ont pas été écrits ici
+\def\LstX{0,1,3,4,5,6}
+\def\LstY{-35,-37.4,-37.7,-39.9,-39,-39.6}
+%on lance les calculs et on change le nom des "macros-résultats"
+\PLreglin[nomcoeffa=TESTa,nomcoeffb=TESTb,nomcoeffr=TESTr,nomcoeffrd=TESTrd,%
+ nomxmin=TESTmin,nomxmax=TESTmax]{\LstX}{\LstY}
+%commandes complémentaires
+\DeclareDocumentCommand\arrond{ s O{3} m }{% * pour afficher signe / opt = précision / argument = nb
+ \IfBooleanTF{#1}{\num[print-implicit-plus]{\fpeval{round(#3,#2)}}}{\num{\fpeval{round(#3,#2)}}}
+}
+%paramètres
+Les valeurs extr. de X sont \TESTmin{} et \TESTmax. Une éq. est $y=\arrond[3]{\TESTa}x \arrond*[3]{\TESTb}$.
+Le coeff. de corrélation est $r=\arrond[4]{\TESTr}$, et son carré est $r^2=\arrond[4]{\TESTrd}$.
+\end{codetex}
+
+\begin{codesortie}
+\def\LstX{0,1,3,4,5,6}\def\LstY{-35,-37.4,-37.7,-39.9,-39,-39.6}
+\PLreglin[nomcoeffa=TESTa,nomcoeffb=TESTb,nomcoeffr=TESTr,nomcoeffrd=TESTrd,nomxmin=TESTmin,nomxmax=TESTmax]{\LstX}{\LstY}
+\DeclareDocumentCommand\arrond{ s O{3} m }{
+ \IfBooleanTF{#1}{\num[print-implicit-plus]{\fpeval{ceil(#3,#2)}}}
+ {\num{\fpeval{round(#3,#2)}}}
+}
+
+Les valeurs extrêmes de X sont \TESTmin{} et \TESTmax. Une équation de la droite de régression de $y$ en $x$ est $y=\arrond[3]{\TESTa}x \arrond*[3]{\TESTb}$.
+
+\smallskip
+
+Le coefficient de corrélation linéaire est $r=\arrond[4]{\TESTr}$, et son carré est $r^2=\arrond[4]{\TESTrd}$.
+\end{codesortie}
+
+\begin{codeinfo}
+\hfill~\includegraphics[height=3cm]{./graphics/pl-doc-stats_d}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_e}\hfill~
+\end{codeinfo}
+
+\pagebreak
+
+\subsection{Intégration dans un environnement \TikZ}
+
+\begin{codeinfo}
+La commande étant \og autonome \fg{}, elle va pouvoir être intégrée dans des environnements graphiques pour permettre un tracé \textit{facile} de la droite de régression.
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+\begin{tikzpicture}
+ \begin{axis}[
+ /pgf/number format/.cd,use comma,xmin = 1992, xmax = 2012,ymin = 1640, ymax = 1730,
+ width = 0.7\textwidth,height = 0.35\textwidth,xtick distance = 2,ytick distance = 10,
+ grid = both,minor tick num = 1,major grid style = {lightgray},minor grid style = {lightgray!25},
+ xlabel = {\small Année ($x$)},ylabel = {\small Altitude du glacier (en m) ($y$)},
+ x tick label style={/pgf/number format/.cd, set thousands separator={}},
+ y tick label style={/pgf/number format/.cd, set thousands separator={}},
+ legend cell align = {left},legend pos = north east]
+ \addplot[teal, only marks,forget plot] table{
+ X Y
+ 1994 1718
+ 1995 1710
+ 1996 1708
+ 1997 1700
+ 1998 1698
+ 1999 1697
+ 2000 1691
+ 2001 1688
+ 2002 1683
+ 2004 1679
+ 2005 1671
+ 2006 1670
+ 2007 1663
+ 2008 1661
+ 2009 1656
+ 2010 1649
+ };
+ \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
+ \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+ \PLreglin{\LLX}{\LLY}
+ \addplot [thick,orange,domain=\LXmin:\LXmax,samples=2]{\COEFFa*x+\COEFFb};
+ \addlegendentry{$y = \fpeval{round(\COEFFa,3)}\,x + \fpeval{round(\COEFFb,3)}$};
+ \addlegendentry{$R^2=\fpeval{round(\COEFFrd,5)}$};
+ \end{axis}
+\end{tikzpicture}
+\end{codetex}
+
+\begin{codesortie}
+\begin{tikzpicture}
+ \begin{axis}[
+ /pgf/number format/.cd,
+ use comma,
+ xmin = 1992, xmax = 2012,
+ ymin = 1640, ymax = 1730,
+ width = 0.7\textwidth,
+ height = 0.35\textwidth,
+ xtick distance = 2,
+ ytick distance = 10,
+ grid = both,
+ minor tick num = 1,
+ major grid style = {lightgray},
+ minor grid style = {lightgray!25},
+ xlabel = {\small Année ($x$)},
+ ylabel = {\small Altitude du glacier (en m) ($y$)},
+ x tick label style={/pgf/number format/.cd, set thousands separator={}},
+ y tick label style={/pgf/number format/.cd, set thousands separator={}},
+ legend cell align = {left},
+ legend pos = north east
+ ]
+ \addplot[teal, only marks] table{
+ X Y
+ 1994 1718
+ 1995 1710
+ 1996 1708
+ 1997 1700
+ 1998 1698
+ 1999 1697
+ 2000 1691
+ 2001 1688
+ 2002 1683
+ 2004 1679
+ 2005 1671
+ 2006 1670
+ 2007 1663
+ 2008 1661
+ 2009 1656
+ 2010 1649
+ };
+ \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
+ \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+ \PLreglin{\LLX}{\LLY}
+ \addplot [thick,orange,domain=\LXmin:\LXmax,samples=2]{\COEFFa*x+\COEFFb};
+ \addlegendentry{$y = \fpeval{round(\COEFFa,3)}\,x + \fpeval{round(\COEFFb,3)}$};
+ \addlegendentry{$R^2=\fpeval{round(\COEFFrd,5)}$};
+ \end{axis}
+\end{tikzpicture}
+\end{codesortie}
+
+
+\pagebreak
+
+\begin{codeinfo}
+IL existe également une commande auxiliaire, \ctex{PLreglinpts} pour afficher le nuage de points avec quelques options, dans un environnement \TikZ{} classique (sans \textsf{pgfplot})\ldots
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+...
+\begin{tikzpicture}[<options>]
+ ...
+ \PLreglinpts[<clés>]{<listeX>}{<listeY>}
+ ...
+\end{tikzpicture}
+\end{codetex}
+
+\begin{codecles}
+Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour la mise en forme du nuage :
+
+\begin{itemize}
+ \item la clé \Cle{couleur} pour la couleur des points du nuage ;\hfill{}défaut \Cle{teal}
+ \item la clé \Cle{taille} pour la taille des points (type \textit{cercle}) ;\hfill{}défaut \Cle{2pt}
+ \item la clé \Cle{Ox} pour spécifier la valeur initiale Ox (si changement d'origine) ;\hfill{}défaut \Cle{0}
+ \item la clé \Cle{Oy} pour spécifier la valeur initiale Oy (si changement d'origine).\hfill{}défaut \Cle{0}
+\end{itemize}
+\end{codecles}
+
+\begin{codetex}[listing only]
+\begin{tikzpicture}[x=0.5cm,y=0.05cm]
+ \draw[xstep=1,ystep=5,lightgray!50,very thin] (0,0) grid (20,100);
+ \draw[xstep=2,ystep=10,lightgray,thin] (0,0) grid (20,100);
+ \draw[thick,->] (0,0)--(20,0) ;
+ \draw[thick,->] (0,0)--(0,100) ;
+ \foreach \x in {1992,1994,...,2010} \draw[thick] ({\x-1992},4pt)--({\x-1992},-4pt) node[below] {$\x$} ;
+ \foreach \y in {1640,1650,...,1730} \draw[thick] (4pt,{\y-1640})--(-4pt,{\y-1640}) node[left] {$\y$} ;
+ \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
+ \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+ \def\Ox{1992}\def\Oy{1640}
+ \PLreglin{\LLX}{\LLY}
+ \PLreglinpts[Ox=1992,Oy=1640,couleur=blue,taille=3pt]{\LLX}{\LLY}
+ \draw[orange,very thick,samples=2,domain=\LXmin:\LXmax] plot ({\x-\Ox},{\COEFFa*(\x)+\COEFFb-\Oy}) ;
+ \matrix [draw,fill=white,below left] at (current bounding box.north east) {
+ \node {$y = \fpeval{round(\COEFFa,3)}\,x + \fpeval{round(\COEFFb,3)}$} ; \\
+ \node {$R^2=\fpeval{round(\COEFFrd,5)}$} ; \\
+ };
+\end{tikzpicture}
+\end{codetex}
+
+\begin{codesortie}
+\begin{tikzpicture}[x=0.5cm,y=0.05cm]
+ \draw[xstep=1,ystep=5,lightgray!50,very thin] (0,0) grid (20,100);
+ \draw[xstep=2,ystep=10,lightgray,thin] (0,0) grid (20,100);
+ \draw[thick,->] (0,0)--(20,0) ;
+ \draw[thick,->] (0,0)--(0,100) ;
+ \foreach \x in {1992,1994,...,2010} \draw[thick] ({\x-1992},4pt)--({\x-1992},-4pt) node[below] {$\x$} ;
+ \foreach \y in {1640,1650,...,1730} \draw[thick] (4pt,{\y-1640})--(-4pt,{\y-1640}) node[left] {$\y$} ;
+ \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
+ \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+ \def\Ox{1992}\def\Oy{1640}
+ \PLreglin{\LLX}{\LLY}
+ \PLreglinpts[Ox=1992,Oy=1640,couleur=blue,taille=3pt]{\LLX}{\LLY}
+ \draw[orange,very thick,samples=2,domain=\LXmin:\LXmax] plot ({\x-\Ox},{\COEFFa*(\x)+\COEFFb-\Oy}) ;
+ \matrix [draw,fill=white,below left] at (current bounding box.north east) {
+ \node {$y = \fpeval{round(\COEFFa,3)}\,x + \fpeval{round(\COEFFb,3)}$} ; \\
+ \node {$R^2=\fpeval{round(\COEFFrd,5)}$} ; \\
+ };
+\end{tikzpicture}
+\end{codesortie}
+
+\newpage
+
\section{Historique}
-{\small \bverb|v1.1.5|~:~~~~Ajout de deux commandes \textsf{aidesignePL} et \ctex{aidesignetkztabPL} pour, en \TikZ, créer des petits schémas \og de signe \fg
+{\small \bverb|v1.1.6|~:~~~~Ajout d'une commande \textsf{PLregln} pour déterminer les paramètres d'une régression linéaire par moindres carrés
+
+{\small \bverb|v1.1.5|~:~~~~Ajout de deux commandes \textsf{aidesignePL} et \textsf{aidesignetkztabPL} pour, en \TikZ, créer des petits schémas \og de signe \fg
{\small \bverb|v1.1.4|~:~~~~Ajout d'une commande \textsf{cercletrigoPL} pour, en \TikZ, créer facilement un cercle trigo avec \textit{options}
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.png
new file mode 100644
index 0000000000..5c05987140
--- /dev/null
+++ b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.png
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.png
new file mode 100644
index 0000000000..90dce1c0ce
--- /dev/null
+++ b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.png
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.png
new file mode 100644
index 0000000000..d7fecfb3e7
--- /dev/null
+++ b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.png
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.png
new file mode 100644
index 0000000000..74e1b905e0
--- /dev/null
+++ b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.png
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.png
new file mode 100644
index 0000000000..b9821f36c4
--- /dev/null
+++ b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.png
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.png
new file mode 100644
index 0000000000..c2de13f554
--- /dev/null
+++ b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.png
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index 2b498305f5..98f5b192c6 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,8 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2022/05/13 - v1.1.5 - Aide pour l'utilisation de LaTeX en lycée]
+\ProvidesPackage{ProfLycee}[2022/06/28 - v1.1.6 - Aide pour l'utilisation de LaTeX en lycée]
+% 1.1.6 Ajout d'une commande pour déterminer les paramètres d'un régression linéaire par moindres carrés
% 1.1.5 Ajout de commandes pour "visualiser" le signe de ax+b ou de ax2+bx+c (cf tnsana !)
% 1.1.4 Ajout d'une commande cercletrigoPL pour, en \TikZ, créer facilement un cercle trigo avec options
% 1.1.3 Ajout d'une commande ensemble pour créer un ensemble à partir d'une liste
@@ -1181,10 +1182,107 @@
#2 = numligne
#3 = échelle
#4 = décalage
- \shorthandoff{:}\shorthandoff{!} %bizzzzzzzzare
+ %\shorthandoff{:}\shorthandoff{!} %bizzzzzzzzare
+ %\NoAutoSpacing
\coordinate (Z) at ($(T2#2)!.5!(T2\the\numexpr#2+1\relax)$) ;
- \shorthandon{:}\shorthandon{!}
+ %\shorthandon{:}\shorthandon{!}
\path (Z.east) + (#4,0) pic[right,scale=#3,every node/.style={scale=#3}] {code={\aidesignePL[#1]}} ;
}
+%=============RegressionLinéaire======= OK !!
+%calcul des paramètres
+\defKV[coeffreglin]{%
+ nomcoeffa=\def\RegLinCoeffa{#1},%
+ nomcoeffb=\def\RegLinCoeffb{#1},%
+ nomcoeffr=\def\RegLinCoeffr{#1},%
+ nomcoeffrd=\def\RegLinCoeffrd{#1},%
+ nomxmin=\def\RegLinCoeffXmin{#1},%
+ nomxmax=\def\RegLinCoeffXmax{#1}
+}
+
+\setKVdefault[coeffreglin]{%
+ nomcoeffa=COEFFa,%
+ nomcoeffb=COEFFb,%
+ nomcoeffr=COEFFr,%
+ nomcoeffrd=COEFFrd,%
+ nomxmin=LXmin,%
+ nomxmax=LXmax
+}
+
+\newcommand\PLreglin[3][]{
+ \useKVdefault[coeffreglin]
+ \setKV[coeffreglin]{#1}% on paramètres les nouvelles clés et on les simplifie
+ %xmin et xmax
+ \expandafter\def\csname\RegLinCoeffXmin\endcsname{\fpeval{min(#2)}}
+ \expandafter\def\csname\RegLinCoeffXmax\endcsname{\fpeval{max(#2)}}
+ %listes des données
+ \def\xliste{#2}
+ \def\yliste{#3}
+ \readlist*\LX{\xliste}
+ \readlist*\LY{\yliste}
+ %taille des listes
+ \def\LNB{\inteval{\LXlen}}
+ %somme des LX et des LY OK
+ \xdef\LXSomme{0}
+ \xdef\LYSomme{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXSomme{\fpeval{\LXSomme+\LX[\i]}}
+ }
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LYSomme{\fpeval{\LYSomme+\LY[\i]}}
+ }
+ %moyenne des LX et des LY OK
+ \xdef\LXmoy{\fpeval{\LXSomme/\LNB}}
+ \xdef\LYmoy{\fpeval{\LYSomme/\LNB}}
+ %variance des LX et des LY OK
+ \xdef\LXvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXvar{\fpeval{\LXvar+(\LX[\i]-\LXmoy)*(\LX[\i]-\LXmoy)}}
+ }
+ \xdef\LXvar{\fpeval{\LXvar/\LNB}}
+ \xdef\LYvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LYvar{\fpeval{\LYvar+(\LY[\i]-\LYmoy)*(\LY[\i]-\LYmoy)}}
+ }
+ \xdef\LYvar{\fpeval{\LYvar/\LNB}}
+ %covariance des XY OK
+ \xdef\LXYvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXYvar{\fpeval{\LXYvar+(\LX[\i]-\LXmoy)*(\LY[\i]-\LYmoy)}}
+ }
+ \xdef\LXYvar{\fpeval{\LXYvar/\LNB}}
+ %COEFFS OK
+ \expandafter\def\csname\RegLinCoeffa\endcsname{\fpeval{\LXYvar/\LXvar}}
+ \expandafter\def\csname\RegLinCoeffb\endcsname{\fpeval{\LYmoy-\csname\RegLinCoeffa\endcsname*\LXmoy}}
+ \expandafter\def\csname\RegLinCoeffr\endcsname{\fpeval{\LXYvar/sqrt(\LXvar*\LYvar)}}
+ \expandafter\def\csname\RegLinCoeffrd\endcsname{\fpeval{\csname\RegLinCoeffr\endcsname*\csname\RegLinCoeffr\endcsname}}
+}
+
+%pour un nuage en TiKz
+\defKV[nuagereglin]{%
+ couleur=\def\RegLinNuageCouleur{#1},%
+ taille=\def\RegLinNuageTaille{#1},
+ Ox=\def\RegLinNuageOx{#1},%
+ Oy=\def\RegLinNuageOy{#1},%
+}
+
+\setKVdefault[nuagereglin]{%
+ couleur=teal,%
+ taille=2pt,%
+ Ox=0,%
+ Oy=0
+}
+
+\newcommand\PLreglinpts[3][]{%
+ \useKVdefault[nuagereglin]
+ \setKV[nuagereglin]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \def\xliste{#2}
+ \def\yliste{#3}
+ \readlist*\LX{\xliste}
+ \readlist*\LY{\yliste}
+ %taille des listes
+ \def\LNB{\inteval{\LXlen}}
+ \foreach \i in {1,2,...,\LNB} {\filldraw[\RegLinNuageCouleur] ({\LX[\i]-\RegLinNuageOx},{\LY[\i]-\RegLinNuageOy}) circle[radius=\RegLinNuageTaille] ;}
+}
+
\endinput \ No newline at end of file
diff --git a/macros/xetex/latex/xduts/xduts.dtx b/macros/xetex/latex/xduts/xduts.dtx
index cb82f93235..8e43cadca1 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/06/21 v2.0.0.0 Xidian University TeX Suite]
+[2022/06/28 v2.10.3.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/06/21}{2.0.0.0}
+%<class|sty> {2022/06/28}{2.10.3.0}
%<xdufont> {Xidian University Font package}
%<xdupgthesis> {Xidian University Postgraduate Thesis document class}
%<xduugthesis> {Xidian University Undergraduate Thesis document class}
@@ -155,7 +155,7 @@
\end{document}
%</driver>
% \fi
-% \CheckSum{2773}
+% \CheckSum{3008}
% \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
@@ -260,6 +260,7 @@
% 学会以上用法后即可使用\pkgx{xdufont}宏包。
% \changes{v1.4.0.0}{2022/04/26}{新增研究生学位论文}
% \changes{v1.30.0.2}{2022/06/20}{研究生学位论文文档}
+% \changes{v2.2.1.1}{2022/06/23}{移除研究生学位论文中关于章节配置的文档}
% \subsection{xdupgthesis}
% \pkgx{xdupgthesis}基于\clsx{ctexbook}文档类,
% 提供多种字体配置,部分样式可自定义,信息录入便捷。
@@ -292,11 +293,11 @@
% Caption配置见\secrefx{Caption配置},
% 表格配置见\secrefx{表格配置},
% 算法配置见\secrefx{算法配置},
-% 章节配置见\secrefx{章节配置},
% 对照表配置见\secrefx{对照表配置},
% 作者简介配置见\secrefx{作者简介配置}。
% 如需附录,请使用附录环境,具体见\secrefx{附录环境}。
% 支持的信息录入选项见\secrefx{信息录入}。
+% 页面和信息移除见\secrefx{页面和信息移除}。
% \par
% 学会以上用法后即可使用\clsx{xdupgthesis}文档类。
% 另外,在\secrefx{额外命令}中提供了部分额外命令来增强排版。
@@ -332,12 +333,12 @@
% Caption配置见\secrefx{Caption配置},
% 表格配置见\secrefx{表格配置},
% 算法配置见\secrefx{算法配置},
-% 章节配置见\secrefx{章节配置}。
-% 如需附录,请使用附录环境,具体见\secrefx{附录环境}。
+% 章节配置见\secrefx{章节配置},
+% 附录配置见\secrefx{附录环境},
% 支持的信息录入选项见\secrefx{信息录入}。
% \par
% 学会以上用法后即可使用\clsx{xduugthesis}文档类。
-% 另外,在\secrefx{额外命令}中提供了部分额外命令来增强排版。
+% 另外,在\secrefx{额外命令}和\secrefx{额外功能}中提供了部分额外命令和功能来增强排版。
% \changes{v1.3.0.1}{2022/04/20}{增加兼容性说明}
% \section{兼容性说明}
% \label{兼容性说明}
@@ -683,6 +684,16 @@
% \end{optdesc}
% \subsection{算法配置}
% \label{算法配置}
+% \begin{function}[added=2022-06-25]{style/algorithm-small-caption}
+% \begin{syntax}
+% \optx{style/algorithm-small-caption}=\metax{(true)|false}
+% \end{syntax}
+% 设置算法Caption字号是否为五号。
+% \end{function}
+% \begin{optdesc}
+% \item[true] 五号。
+% \item[false] 小四号。
+% \end{optdesc}
% \begin{function}[added=2022-04-15]{style/algorithm-small-font}
% \begin{syntax}
% \optx{style/algorithm-small-font}=\metax{(true)|false}
@@ -773,14 +784,15 @@
% $\mathbb{R}$ & 实数 \\
% \end{latexexample}
% \end{optdesc}
-% \begin{function}[added=2022-06-05]{style/colspec-los,style/colspec-loa}
+% \changes{v2.10.2.1}{2022/06/28}{修改对照表默认列格式}
+% \begin{function}[added=2022-06-05,updated=2022-06-28]{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]}。
+% 符号对照表列格式默认值为\valuex{Q[l,h]X[l,h]}。
+% 缩略语对照表列格式默认值为\valuex{Q[l,h]X[l,h]X[l,h]}。
% 语法参考\pkgx{tabularray}宏包\cmdx{colspec}选项。
% 仅在\optx{style/customize-los}和\optx{style/customize-loa}等于\valuex{false}时有效。
% \end{function}
@@ -940,6 +952,7 @@
% secret-level & & & \cmark & \cmark & \cmark & \cmark \\
% secret-year & & & \cmark & \cmark & \cmark & \cmark \\
% submit-date & & & \cmark & \cmark & \cmark & \cmark \\
+% statement-scan & & & \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 \\
@@ -1095,6 +1108,29 @@
% \end{syntax}
% 设置提交日期,如果留空,则自动使用编译当天年份和月份。
% \end{function}
+% \changes{v2.1.0.0}{2022/06/22}{声明页扫描文件路径}
+% \begin{function}[added=2022-06-22]{info/statement-scan}
+% \begin{syntax}
+% \optx{info/statement-scan}=\argx{学位论文独创性声明和关于论文使用授权的说明页扫描文件路径}
+% \end{syntax}
+% 设置学位论文独创性声明和关于论文使用授权的说明页扫描文件路径。
+% \end{function}
+% \changes{v2.2.0.0}{2022/06/23}{声明页签名文件路径}
+% \begin{function}[added=2022-06-23]{info/statement-sign}
+% \begin{syntax}
+% \optx{info/statement-sign}=\argx{文件路径1,文件路径2,文件路径3,文件路径4,文件路径5,文件路径6}
+% \end{syntax}
+% 设置声明页签名文件路径。
+% 文件支持格式与\tnx{includegraphics}一致,建议文件为透明背景且仅有黑色,并尽量减少边距。
+% \end{function}
+% \begin{optdesc}
+% \item[文件路径1] 学位论文独创性声明本人签名文件路径。
+% \item[文件路径2] 学位论文独创性声明日期文件路径。
+% \item[文件路径3] 关于论文使用授权的说明本人签名文件路径。
+% \item[文件路径4] 关于论文使用授权的说明日期文件路径。
+% \item[文件路径5] 关于论文使用授权的说明导师签名文件路径。
+% \item[文件路径6] 关于论文使用授权的说明日期文件路径。
+% \end{optdesc}
% \begin{function}[added=2022-04-02]{info/abstract,info/abstract*}
% \begin{syntax}
% \optx{info/abstract}=\argx{中文摘要文件路径}
@@ -1405,6 +1441,38 @@
% \end{itemize}
% \end{itemize}
% \setlength\parindent{2em}
+% \subsection{页面和信息移除}
+% \label{页面和信息移除}
+% \begin{function}[added=2022-06-26]{style/remove-page}
+% \begin{syntax}
+% \optx{style/remove-page}=\metax{封面|提名页|声明页|摘要|索引|对照表|目录|附录|参考文献|致谢|作者简介}
+% \end{syntax}
+% 设置移除的页面,可多选,多个值之间需要使用英文半角逗号隔开。
+% \end{function}
+% \begin{optdesc}
+% \item[提名页] 中英文提名页。
+% \item[摘要] 中英文摘要。
+% \item[索引] 图片索引和表格索引。
+% \item[对照表] 符号对照表和缩略语对照表。
+% \end{optdesc}
+% \begin{function}[added=2022-06-26]{style/remove-header}
+% \begin{syntax}
+% \optx{style/remove-header}=\metax{true|(false)}
+% \end{syntax}
+% 设置是否移除页眉。
+% \end{function}
+% \begin{function}[added=2022-06-26]{style/remove-footer}
+% \begin{syntax}
+% \optx{style/remove-footer}=\metax{true|(false)}
+% \end{syntax}
+% 设置是否移除页脚。
+% \end{function}
+% \begin{function}[added=2022-06-26]{style/anonymous}
+% \begin{syntax}
+% \optx{anonymous}=\metax{true|(false)}
+% \end{syntax}
+% 设置是否开启匿名,与\secrefx{额外命令}中的\tnx{anon}搭配使用。
+% \end{function}
% \subsection{额外命令}
% \label{额外命令}
% \subsubsection{\tn{noauxwrite}}
@@ -1439,7 +1507,22 @@
% \subparagraph{This Is Subparagraph}
% \end{latexexample}
% \end{function}
-% \subsection{隐藏功能}
+% \subsubsection{匿名命令}
+% \label{匿名命令}
+% \begin{function}[added=2022-06-26]{\anon}
+% \begin{syntax}
+% \tn{anon}\oarg{匿名内容}\marg{非匿名内容}
+% \end{syntax}
+% 根据\optx{style/anonymous}的状态来显示相应的\metax{匿名内容}和\metax{非匿名内容}。
+% 其中\oargx{匿名内容}为可选参数,默认为XXX。
+% 一个简单的例子如下所示:
+% \begin{latexexample}[moretexcs={\anon}]
+% \anon[XX]{张三}
+% \end{latexexample}
+% 当\optx{style/anonymous}为\valuex{true},输出张三;当\optx{style/anonymous}为\valuex{false},输出XX。
+% \end{function}
+% \subsection{额外功能}
+% \label{额外功能}
% \changes{v1.26.11.1}{2022/06/17}{带教导师与挂名导师}
% \subsubsection{带教导师与挂名导师}
% 已和学位办确认,对于研究生,如挂名导师与带教导师不是一人的,
@@ -1448,6 +1531,16 @@
% 可在\optx{info/supervisor}、\optx{info/supervisor*}、
% \optx{info/supervisor-title}和\optx{info/supervisor-title*}中
% 使用逗号分隔两位老师的信息。
+% \changes{v2.10.1.1}{2022/06/26}{相似性检测、盲审和抽查评估}
+% \subsubsection{相似性检测、盲审和抽查评估}
+% 对于相似性检测、盲审和抽查评估,主要分为两种操作,
+% 一种是页面移除,另外一种是信息的隐藏和替换。
+% 页面移除请参考\secrefx{页面和信息移除},
+% 信息隐藏请自行删除或注释相应的信息录入选项,
+% 信息替换请自行修改相应的信息录入选项;
+% 作者简介部分的信息匿名请参考\secrefx{匿名命令}。
+% 用户根据学校和学院的具体要求,
+% 组合使用以上两种操作来生成符合相似性检测、盲审和抽查评估要求的论文。
% \section{贡献者}
% \xduts{}的开发过程中,唯一维护者为
% \href{https://github.com/note286/}{\ttfamily @note286}。
@@ -2605,6 +2698,8 @@
% \l_@@_secret_lv_str,
% \l_@@_secret_year_str,
% \l_@@_submit_date_str,
+% \l_@@_statement_scan_str,
+% \l_@@_statement_sign_clist,
% \l_@@_los_str,
% \l_@@_loa_str,
% \l_@@_bio_str
@@ -2676,6 +2771,14 @@
% \begin{macrocode}
\str_new:N \l_@@_submit_date_str
% \end{macrocode}
+% 声明页扫描文件路径。
+% \begin{macrocode}
+\str_new:N \l_@@_statement_scan_str
+% \end{macrocode}
+% 声明页签名文件路径。
+% \begin{macrocode}
+\clist_new:N \l_@@_statement_sign_clist
+% \end{macrocode}
% 符号对照表文件路径。
% \begin{macrocode}
\str_new:N \l_@@_los_str
@@ -2765,6 +2868,14 @@
% \begin{macrocode}
submit-date .tl_set:N = \l_@@_submit_date_str,
% \end{macrocode}
+% 声明页扫描文件路径。
+% \begin{macrocode}
+ statement-scan .tl_set:N = \l_@@_statement_scan_str,
+% \end{macrocode}
+% 声明页签名文件路径。
+% \begin{macrocode}
+ statement-sign .clist_set:N = \l_@@_statement_sign_clist,
+% \end{macrocode}
% 符号对照表文件路径。
% \begin{macrocode}
los .tl_set:N = \l_@@_los_str,
@@ -2805,6 +2916,8 @@
info / secret-level = { 公开 },
info / secret-year = { },
info / submit-date = { },
+ info / statement-scan = { },
+ info / statement-sign = { },
info / los = { },
info / loa = { },
info / bio = { }
@@ -2846,6 +2959,182 @@
}
% \end{macrocode}
% \end{variable}
+% \changes{v2.7.0.0}{2022/06/26}{页面移除开关}
+% \subsection{页面移除开关}
+% \label{页面移除开关}
+% \begin{variable}
+% {
+% \l_@@_rm_page_clist,
+% \l_@@_rm_header_bool,
+% \l_@@_rm_footer_bool
+% }
+% 页面移除开关。
+% \begin{macrocode}
+\clist_new:N \l_@@_rm_page_clist
+% \end{macrocode}
+% 页眉移除开关。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_header_bool
+% \end{macrocode}
+% 页脚移除开关。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_footer_bool
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\keys_define:nn}
+% 定义样式键值。
+% \begin{macrocode}
+\keys_define:nn { xdu / style }
+ {
+% \end{macrocode}
+% 设置页面移除开关。
+% \begin{macrocode}
+ remove-page .clist_set:N = \l_@@_rm_page_clist,
+ remove-header .bool_set:N = \l_@@_rm_header_bool,
+ remove-footer .bool_set:N = \l_@@_rm_footer_bool
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\keys_set:nn}
+% 初始设置。
+% \begin{macrocode}
+\keys_set:nn { xdu }
+ {
+ style / remove-page = { },
+ style / remove-header = { false },
+ style / remove-footer = { false }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{variable}
+% {
+% \l_@@_rm_cover_bool,
+% \l_@@_rm_title_page_bool,
+% \l_@@_rm_statement_bool,
+% \l_@@_rm_abstract_bool,
+% \l_@@_rm_loft_bool,
+% \l_@@_rm_losa_bool,
+% \l_@@_rm_toc_bool,
+% \l_@@_rm_appendix_bool,
+% \l_@@_rm_ref_bool,
+% \l_@@_rm_ack_bool,
+% \l_@@_rm_bio_bool
+% }
+% 封面。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_cover_bool
+% \end{macrocode}
+% 中英文提名页。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_title_page_bool
+% \end{macrocode}
+% 声明页。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_statement_bool
+% \end{macrocode}
+% 中英文摘要。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_abstract_bool
+% \end{macrocode}
+% 索引。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_loft_bool
+% \end{macrocode}
+% 符号对照表和缩略语对照表。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_losa_bool
+% \end{macrocode}
+% 目录。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_toc_bool
+% \end{macrocode}
+% 附录。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_appendix_bool
+% \end{macrocode}
+% 参考文献。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_ref_bool
+% \end{macrocode}
+% 致谢。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_ack_bool
+% \end{macrocode}
+% 作者简介。
+% \begin{macrocode}
+\bool_new:N \l_@@_rm_bio_bool
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\clist_if_in:NnT,\bool_set_true:N}
+% 设置页面移除开关布尔值。
+% \begin{macrocode}
+\ctex_at_end_preamble:n
+ {
+ \clist_if_in:NnT \l_@@_rm_page_clist { 封面 }
+ { \bool_set_true:N \l_@@_rm_cover_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 提名页 }
+ { \bool_set_true:N \l_@@_rm_title_page_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 声明页 }
+ { \bool_set_true:N \l_@@_rm_statement_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 摘要 }
+ { \bool_set_true:N \l_@@_rm_abstract_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 索引 }
+ { \bool_set_true:N \l_@@_rm_loft_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 对照表 }
+ { \bool_set_true:N \l_@@_rm_losa_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 目录 }
+ { \bool_set_true:N \l_@@_rm_toc_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 附录 }
+ { \bool_set_true:N \l_@@_rm_appendix_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 参考文献 }
+ { \bool_set_true:N \l_@@_rm_ref_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 致谢 }
+ { \bool_set_true:N \l_@@_rm_ack_bool }
+ \clist_if_in:NnT \l_@@_rm_page_clist { 作者简介 }
+ { \bool_set_true:N \l_@@_rm_bio_bool }
+ }
+% \end{macrocode}
+% \end{macro}
+% \changes{v2.10.0.0}{2022/06/26}{匿名命令}
+% \subsection{匿名操作}
+% \label{匿名操作}
+% \begin{variable}{\l_@@_anon_bool}
+% 匿名开关。
+% \begin{macrocode}
+\bool_new:N \l_@@_anon_bool
+% \end{macrocode}
+% \end{variable}
+% \begin{macro}{\keys_define:nn}
+% 定义样式键值。
+% \begin{macrocode}
+\keys_define:nn { xdu / style }
+ {
+% \end{macrocode}
+% 匿名操作。
+% \begin{macrocode}
+ anonymous .bool_set:N = \l_@@_anon_bool
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\keys_set:nn}
+% 初始设置。
+% \begin{macrocode}
+\keys_set:nn { xdu }
+ {
+ style / anonymous = { false }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\anon}
+% 匿名命令。
+% \begin{macrocode}
+\NewDocumentCommand \anon { O { XXX } m }
+ {
+ \bool_if:NTF \l_@@_anon_bool
+ { #1 } { #2 }
+ }
+% \end{macrocode}
+% \end{macro}
% \begin{macrocode}
%</xdupgthesis>
%<*thesis>
@@ -2876,6 +3165,7 @@
% \l_@@_biblatex_option_tl,
% \l_@@_cap_label_sep_tl,
% \l_@@_tab_small_bool,
+% \l_@@_alg_small_cap_bool,
% \l_@@_alg_small_bool,
% \l_@@_before_skip_clist,
% \l_@@_after_skip_clist,
@@ -2916,7 +3206,11 @@
% \begin{macrocode}
\bool_new:N \l_@@_tab_small_bool
% \end{macrocode}
-% 设置算法字号是否为五号。
+% 设置算法Caption字号是否为五号。
+% \begin{macrocode}
+\bool_new:N \l_@@_alg_small_cap_bool
+% \end{macrocode}
+% 设置算法内容字号是否为五号。
% \begin{macrocode}
\bool_new:N \l_@@_alg_small_bool
% \end{macrocode}
@@ -2979,7 +3273,11 @@
% \begin{macrocode}
table-small-font .bool_set:N = \l_@@_tab_small_bool,
% \end{macrocode}
-% 设置算法字号是否为五号。
+% 设置算法Caption字号是否为五号。
+% \begin{macrocode}
+ algorithm-small-caption .bool_set:N = \l_@@_alg_small_cap_bool,
+% \end{macrocode}
+% 设置算法内容字号是否为五号。
% \begin{macrocode}
algorithm-small-font .bool_set:N = \l_@@_alg_small_bool,
% \end{macrocode}
@@ -3015,18 +3313,19 @@
% \begin{macrocode}
\keys_set:nn { xdu }
{
- style / en-cjk-font = false,
- style / language = zh,
- style / bib-backend = biblatex,
- style / biblatex-option = { },
- style / ref-add-space = false,
- style / caption-label-sep = { 0.75em },
- style / table-small-font = true,
- style / algorithm-small-font = true,
- 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 / en-cjk-font = false,
+ style / language = zh,
+ style / bib-backend = biblatex,
+ style / biblatex-option = { },
+ style / ref-add-space = false,
+ style / caption-label-sep = { 0.75em },
+ style / table-small-font = true,
+ style / algorithm-small-caption = true,
+ style / algorithm-small-font = true,
+ 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 = { 顶部对齐 }
}
% \end{macrocode}
% \end{macro}
@@ -3109,8 +3408,8 @@
{
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 / colspec-los = { Q[l,h]X[l,h] },
+ style / colspec-loa = { Q[l,h]X[l,h]X[l,h] },
style / title-row-los = { false },
style / title-row-loa = { false }
}
@@ -3590,6 +3889,14 @@
}
\savegeometry { cover }
% \end{macrocode}
+% \changes{v2.1.0.0}{2022/06/22}{无页边距页面}
+% 无页边距页面。
+% \begin{macrocode}
+%<*xdupgthesis>
+\newgeometry { margin = 0cm }
+\savegeometry { nomargin }
+%</xdupgthesis>
+% \end{macrocode}
% \end{macro}
% \begin{macro}{\@@_load_main_geometry:}
% \changes{v0.8.0.0}{2022/04/12}{根据用户配置加载正文页边距配置}
@@ -3660,6 +3967,9 @@
% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
% \changes{v1.7.0.0}{2022/05/02}{设置页眉}
% \changes{v1.26.9.0}{2022/06/13}{修正页眉文字和双横线高度}
+% \changes{v2.8.0.0}{2022/06/26}{研究生学位论文支持移除页眉}
+% \changes{v2.9.0.0}{2022/06/26}{研究生学位论文支持移除页脚}
+% \changes{v2.9.1.0}{2022/06/26}{研究生学位论文支持移除页眉双横线}
% 设置正文页眉页脚。
% \begin{description}
% \item[本科生] 页眉:宋体五号,居中排列。左面页眉为论文题目,右面页眉为章次和章标题。页眉底划线的宽度为0.75磅。页码:宋体小五号,排在页眉行的最外侧,不加任何修饰。
@@ -3678,19 +3988,27 @@
\renewcommand { \headrulewidth } { 0.75pt }
%</xduugthesis>
%<*xdupgthesis>
- \fancyhead [ CE ] { \@@_rm_family: \zihao { 5 } \l_@@_header_str }
- \fancyhead [ CO ] { \@@_rm_family: \zihao { 5 } \leftmark }
- \fancyfoot [ CE ] { \@@_rm_family: \zihao { -5 } \thepage }
- \fancyfoot [ CO ] { \@@_rm_family: \zihao { -5 } \thepage }
+ \bool_if:NF \l_@@_rm_header_bool
+ {
+ \fancyhead [ CE ] { \@@_rm_family: \zihao { 5 } \l_@@_header_str }
+ \fancyhead [ CO ] { \@@_rm_family: \zihao { 5 } \leftmark }
+ }
+ \bool_if:NTF \l_@@_rm_footer_bool
+ { \fancyfoot [ C ] { } }
+ { \fancyfoot [ C ] { \@@_rm_family: \zihao { -5 } \thepage } }
\cs_set:Npn \headrulewidth { 0.5pt }
- \cs_set:Npn \headrule
+ \bool_if:NTF \l_@@_rm_header_bool
+ { \cs_set:Npn \headrule { } }
{
- \hrule \@height 0pt
- \skip_vertical:N 2pt
- \hrule \@height \headrulewidth
- \skip_vertical:N \headrulewidth
- \hrule \@height \headrulewidth
- \skip_vertical:N -\headrulewidth
+ \cs_set:Npn \headrule
+ {
+ \hrule \@height 0pt
+ \skip_vertical:N 2pt
+ \hrule \@height \headrulewidth
+ \skip_vertical:N \headrulewidth
+ \hrule \@height \headrulewidth
+ \skip_vertical:N -\headrulewidth
+ }
}
%</xdupgthesis>
}
@@ -3698,8 +4016,9 @@
\fancypagestyle { front }
{
\pagestyle { plain }
- \fancyfoot [ CE ] { \rmfamily \zihao { -5 } \thepage }
- \fancyfoot [ CO ] { \rmfamily \zihao { -5 } \thepage }
+ \bool_if:NTF \l_@@_rm_footer_bool
+ { \fancyfoot [ C ] { } }
+ { \fancyfoot [ C ] { \rmfamily \zihao { -5 } \thepage } }
}
%</xdupgthesis>
% \end{macrocode}
@@ -4288,11 +4607,19 @@
% \begin{macro}{\DeclareCaptionLabelSeparator,\DeclareCaptionFont,\captionsetup}
% \changes{v0.1.2.0}{2022/04/03}{设置图片标签与后面标题之间的间距}
% \changes{v0.1.3.0}{2022/04/03}{设置图片标签与标题字体字号}
+% \changes{v2.10.1.0}{2022/06/26}{修复算法标签与标题字体字号警告}
% 设置图表标签与后面标题之间的间距及caption字体字号。
% \begin{macrocode}
\RequirePackage { caption }
\DeclareCaptionLabelSeparator { customskip } { \hskip \l_@@_cap_label_sep_tl }
-\DeclareCaptionFont { customfont } { \@@_rm_family: \zihao { 5 } }
+\DeclareCaptionFont { customfont } { \@@_rm_family: \zihao { 5 } }
+\DeclareCaptionFont { algcustomfont }
+ {
+ \@@_rm_family:
+ \bool_if:NTF \l_@@_alg_small_cap_bool
+ { \zihao { 5 } }
+ { \zihao { -4 } }
+ }
\captionsetup
{
labelsep = customskip,
@@ -4303,19 +4630,21 @@
% \begin{macro}{\captionsetup}
% \changes{v1.0.4.0}{2022/04/15}{设置\pkgx{algorithm}算法标签与标题字体字号及标签与后面标题之间的间距}
% \changes{v1.1.3.0}{2022/04/15}{修正\pkgx{algorithm}算法标签字体系列}
+% \changes{v2.6.0.0}{2022/06/25}{设置\pkgx{algorithm}算法Caption字号是否为五号}
% 设置\pkgx{algorithm}算法标签与标题字体字号及标签与后面标题之间的间距。
% \begin{macrocode}
\captionsetup [ algorithm ]
{
labelsep = customskip,
- labelfont = customfont,
- font = customfont
+ labelfont = algcustomfont,
+ font = algcustomfont
}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\SetAlgoCaptionSeparator,\SetAlCapNameFnt,\SetAlCapFnt}
% \changes{v1.0.0.0}{2022/04/14}{修正\pkgx{algorithm2e}算法标签与后面标题之间的间距}
% \changes{v1.0.4.0}{2022/04/15}{修正\pkgx{algorithm2e}算法标签与标题字体字号}
+% \changes{v2.6.0.0}{2022/06/25}{设置\pkgx{algorithm2e}算法Caption字号是否为五号}
% 设置\pkgx{algorithm2e}算法标签与标题字体字号及标签与后面标题之间的间距。
% \begin{macrocode}
\ctex_at_end_preamble:n
@@ -4323,8 +4652,15 @@
\cs_if_exist:NT \thealgocf
{
\SetAlgoCaptionSeparator { \hbox_to_wd:nn { \l_@@_cap_label_sep_tl } { } }
- \SetAlCapNameFnt { \@@_rm_family: \zihao { 5 } }
- \SetAlCapFnt { \@@_rm_family: \zihao { 5 } }
+ \bool_if:NTF \l_@@_alg_small_cap_bool
+ {
+ \SetAlCapNameFnt { \@@_rm_family: \zihao { 5 } }
+ \SetAlCapFnt { \@@_rm_family: \zihao { 5 } }
+ }
+ {
+ \SetAlCapNameFnt { \@@_rm_family: \zihao { -4 } }
+ \SetAlCapFnt { \@@_rm_family: \zihao { -4 } }
+ }
\SetAlCapSty { }
}
}
@@ -4510,6 +4846,9 @@
% \changes{v1.13.6.0}{2022/05/09}{移除\pkgx{natbib}宏包显式调用}
% \changes{v1.14.0.0}{2022/05/10}{为\bibtex{}提供\tnx{parencite}命令}
% \changes{v1.14.1.0}{2022/05/10}{使用\tnx{PassOptionsToPackage}传递\pkgx{gbt7714}和\pkgx{biblatex}宏包参数}
+% \changes{v2.2.4.0}{2022/06/24}{修改参考文献\bibtex{}标签右对齐}
+% \changes{v2.2.5.0}{2022/06/24}{修改\bibtex{}和\pkgx{biblatex}字体配置方式}
+% \changes{v2.7.1.0}{2022/06/26}{修改\pkgx{biblatex}中斜杠字符字体族}
% 参考文献。
% \begin{macrocode}
\PassOptionsToPackage { sort&compress } { gbt7714 }
@@ -4520,6 +4859,9 @@
{
\RequirePackage { gbt7714 }
\bibliographystyle { gbt7714-numerical }
+ \cs_set:Npn \@biblabel #1 { \hfill [ #1 ] }
+ \cs_set:Npn \bibsection { }
+ \dim_set:Nn \bibsep { 0pt }
\NewDocumentCommand \parencite { m }
{ \group_begin: \citestyle { numbers } \cite { #1 } \group_end: }
}
@@ -4527,6 +4869,29 @@
\PassOptionsToPackage { \l_@@_biblatex_option_tl } { biblatex }
\RequirePackage { biblatex }
\clist_map_inline:Nn \l_@@_bib_file_clist { \addbibresource { #1 } }
+ \defbibheading { bibliography } [ ] { }
+ \dim_set:Nn \biblabelsep { 1ex }
+ \dim_set:Nn \bibitemsep { 0pt }
+ \cs_set_eq:NN \SlashFont \rmfamily
+ }
+% \end{macrocode}
+% \changes{v2.7.0.0}{2022/06/26}{\bibtex{}下允许不生成文献列表}
+% \bibtex{}下允许不生成文献列表。
+% \begin{macrocode}
+\ctex_at_end_preamble:n
+ {
+ \bool_if:NT \l_@@_rm_ref_bool
+ { \RequirePackage { bibentry } }
+ }
+% \end{macrocode}
+% \bibtex{}和\pkgx{biblatex}通用字体字号配置。
+% \begin{macrocode}
+ \cs_set:Npn \bibfont
+ {
+%<xdupgthesis> \rmfamily
+%<xduugthesis> \@@_rm_family:
+ \zihao { 5 }
+%<xdupgthesis> \dim_set:Nn \baselineskip { 20pt }
}
}
% \end{macrocode}
@@ -4556,9 +4921,22 @@
\BODY
}
% \end{macrocode}
-% \end{macro}
% \begin{macrocode}
%</thesis>
+%<*xdupgthesis>
+% \end{macrocode}
+% \changes{v2.7.0.0}{2022/06/26}{研究生学位论文支持移除附录}
+% 研究生学位论文支持移除附录。
+% \begin{macrocode}
+\ctex_at_end_preamble:n
+ {
+ \bool_if:NT \l_@@_rm_appendix_bool
+ { \RenewEnviron { appendixes } { } }
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</xdupgthesis>
%<*xduugthesis>
% \end{macrocode}
% \changes{v1.26.7.1}{2022/06/12}{整理代码结构}
@@ -5439,8 +5817,47 @@
% \end{macrocode}
% \end{macro}
% \paragraph{声明页}
+% \begin{macro}
+% {
+% \@@_statement_scan_sign_uline:n,
+% \@@_statement_scan_sign:nnnn
+% }
+% \changes{v2.2.0.0}{2022/06/23}{声明页签字扫描文件}
+% 声明页签字扫描文件。
+% \begin{macrocode}
+\cs_new:Npn \@@_statement_scan_sign_uline:n #1
+ {
+ \@@_uline:n
+ {
+ \vbox_to_ht:nn { 17.5pt }
+ {
+ \vfil
+ \hbox_to_wd:nn { 10em }
+ {
+ \hfil
+ \includegraphics [ width = 10em, height = 25pt, keepaspectratio ] { #1 }
+ \hfil
+ }
+ }
+ }
+ }
+\cs_new:Npn \@@_statement_scan_sign:nnnn #1#2#3#4
+ {
+ \vbox_to_ht:nn { 30pt }
+ {
+ \vfil
+ #1:
+ \@@_statement_scan_sign_uline:n { #2 }
+ \hfill
+ #3:
+ \@@_statement_scan_sign_uline:n { #4 }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\@@_statement:}
% \changes{v1.19.0.0}{2022/05/30}{学位论文独创性声明和关于论文使用授权的说明}
+% \changes{v2.2.0.0}{2022/06/23}{支持声明页插入签字扫描文件}
% 学位论文独创性声明和关于论文使用授权的说明。
% \begin{macrocode}
\cs_new:Npn \@@_statement:
@@ -5454,7 +5871,7 @@
西安电子科技大学\\
学位论文独创性(或创新性)声明
}
- \vbox_to_ht:nn { 140pt }
+ \vbox_to_ht:nn { 120pt }
{
\rmfamily \zihao { -4 }
\dim_set:Nn \parindent { 2em }
@@ -5468,15 +5885,27 @@
学位论文若有不实之处,本人承担一切法律责任。
\vfil
}
+ \clist_if_empty:NT \l_@@_statement_sign_clist
+ { \skip_vertical:n { 20pt } }
\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 } }
+ \clist_if_empty:NTF \l_@@_statement_sign_clist
+ {
+ 本人签名:\@@_uline:n { \skip_horizontal:n { 10em } }
+ \hfill
+ 日\qquad{}期:\@@_uline:n { \skip_horizontal:n { 10em } }
+ }
+ {
+ \@@_statement_scan_sign:nnnn
+ { 本人签名 } { \clist_item:Nn \l_@@_statement_sign_clist { 1 } }
+ { 日\qquad{}期 } { \clist_item:Nn \l_@@_statement_sign_clist { 2 } }
+ }
}
+ \clist_if_empty:NF \l_@@_statement_sign_clist
+ { \skip_vertical:n { 20pt } }
\vbox_to_ht:nn { 60pt }
{
\rmfamily \zihao { 4 } \bfseries \centering
@@ -5484,7 +5913,7 @@
西安电子科技大学\\
关于论文使用授权的说明
}
- \vbox_to_ht:nn { 140pt }
+ \vbox_to_ht:nn { 120pt }
{
\rmfamily \zihao { -4 }
\dim_set:Nn \parindent { 2em }
@@ -5506,18 +5935,32 @@
年解密后适用本授权书。
\vfil
}
+ \clist_if_empty:NT \l_@@_statement_sign_clist
+ { \skip_vertical:n { 20pt } }
\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 } }
+ \clist_if_empty:NTF \l_@@_statement_sign_clist
+ {
+ 本人签名:\@@_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 } }
+ }
+ {
+ \@@_statement_scan_sign:nnnn
+ { 本人签名 } { \clist_item:Nn \l_@@_statement_sign_clist { 3 } }
+ { 导师签名 } { \clist_item:Nn \l_@@_statement_sign_clist { 5 } }
+ \par
+ \@@_statement_scan_sign:nnnn
+ { 日\qquad{}期 } { \clist_item:Nn \l_@@_statement_sign_clist { 4 } }
+ { 日\qquad{}期 } { \clist_item:Nn \l_@@_statement_sign_clist { 6 } }
+ }
}
\cleardoublepage
}
@@ -5743,6 +6186,15 @@
}
% \end{macrocode}
% \end{macro}
+% \begin{variable}{\l_@@_losa_add_skip_dim}
+% \changes{v2.10.2.0}{2022/06/28}{对照表行间距补偿值}
+% 对照表行间距补偿值:
+% $20pt-12bp\times(72.27/72)pt/bp\times1.2\times1.3=1.2098pt$。
+% \begin{macrocode}
+\dim_new:N \l_@@_losa_add_skip_dim
+\dim_set:Nn \l_@@_losa_add_skip_dim { 1.2098pt }
+% \end{macrocode}
+% \end{variable}
% \begin{macro}{\@@_symbols_list:}
% \changes{v1.22.0.0}{2022/06/05}{符号对照表}
% \changes{v1.26.2.0}{2022/06/09}{修复符号对照表列格式解析错误}
@@ -5750,6 +6202,8 @@
% \changes{v1.26.5.0}{2022/06/10}{修复符号对照表空文件标题行错误}
% \changes{v1.28.1.0}{2022/06/18}{添加符号对照表至目录}
% \changes{v1.29.1.0}{2022/06/19}{修复符号对照表引起的章节段前段后间距错误}
+% \changes{v2.2.1.0}{2022/06/23}{移除表格索引中生成的符号对照表}
+% \changes{v2.10.2.0}{2022/06/28}{修正符号对照表行内行间距}
% 符号对照表。
% \begin{macrocode}
\cs_new:Npn \@@_symbols_list:
@@ -5789,6 +6243,7 @@
[
evaluate = \fileIfExistInput,
expand = \l_@@_los_head_tl,
+ entry = none,
theme = losloatheme
]
}
@@ -5796,13 +6251,15 @@
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 }
+ rowhead = \int_compare:nNnTF
+ { \value { rowcount } } > { 1 }
+ { \l_@@_los_rowhead_tl } { 0 },
+ cells = {
+ font = \rmfamily \zihao { -4 }
+ \dim_add:Nn \baselineskip { \l_@@_losa_add_skip_dim }
+ },
+ abovesep = 0pt,
+ belowsep = \l_@@_losa_add_skip_dim
}
}
}
@@ -5821,6 +6278,8 @@
% \changes{v1.26.5.0}{2022/06/10}{修复缩略语对照表空文件标题行错误}
% \changes{v1.28.1.0}{2022/06/18}{添加缩略语对照表至目录}
% \changes{v1.29.1.0}{2022/06/19}{修复缩略语对照表引起的章节段前段后间距错误}
+% \changes{v2.2.1.0}{2022/06/23}{移除表格索引中生成的缩略语对照表}
+% \changes{v2.10.2.0}{2022/06/28}{修正缩略语对照表行内行间距}
% 缩略语对照表。
% \begin{macrocode}
\cs_new:Npn \@@_abbreviations_list:
@@ -5866,6 +6325,7 @@
[
evaluate = \fileIfExistInput,
expand = \l_@@_loa_head_tl,
+ entry = none,
theme = losloatheme
]
}
@@ -5873,13 +6333,15 @@
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 }
+ rowhead = \int_compare:nNnTF
+ { \value { rowcount } } > { 1 }
+ { \l_@@_loa_rowhead_tl } { 0 },
+ cells = {
+ font = \rmfamily \zihao { -4 }
+ \dim_add:Nn \baselineskip { \l_@@_losa_add_skip_dim }
+ },
+ abovesep = 0pt,
+ belowsep = \l_@@_losa_add_skip_dim
}
}
}
@@ -5907,6 +6369,7 @@
% \changes{v1.5.0.0}{2022/05/01}{设置封面页边距}
% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
% \changes{v1.16.0.0}{2022/05/22}{绘制研究生封面}
+% \changes{v2.7.0.0}{2022/06/26}{研究生学位论文支持移除前言部分页面}
% 排版前言部分。
% \begin{macrocode}
\renewcommand { \frontmatter }
@@ -5915,34 +6378,57 @@
\pagestyle { empty }
\dim_set:Nn \parindent { 0pt }
\dim_set:Nn \baselineskip { 20pt }
- \@@_add_bookmark:n { \@@_lang_switch:nn { 封面 } { Cover } }
+ \bool_if:NF \l_@@_rm_cover_bool
+ {
+ \@@_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
- }
+ \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
+ \@@_cover_author_info:
+ \cleardoublepage
+ }
% \end{macrocode}
% 中英文提名页。
% \begin{macrocode}
- \@@_lang_switch:nn
- { \@@_zh_title_page: \@@_en_title_page: }
- { \@@_en_title_page: \@@_zh_title_page: }
+ \bool_if:NF \l_@@_rm_title_page_bool
+ {
+ \@@_lang_switch:nn
+ { \@@_zh_title_page: \@@_en_title_page: }
+ { \@@_en_title_page: \@@_zh_title_page: }
+ }
% \end{macrocode}
% 声明页。
% \begin{macrocode}
- \@@_statement:
+ \bool_if:NF \l_@@_rm_statement_bool
+ {
+ \file_if_exist:nTF { \l_@@_statement_scan_str }
+ {
+ \loadgeometry { nomargin }
+ \vbox_to_ht:nn { \textheight }
+ {
+ \vfil
+ \centering
+ \includegraphics
+ [ width = \textwidth, height = \textheight, keepaspectratio ]
+ { \l_@@_statement_scan_str }
+ \vfil
+ }
+ \cleardoublepage
+ }
+ { \@@_statement: }
+ }
% \end{macrocode}
% 更改页面样式。
% \begin{macrocode}
@@ -5953,40 +6439,52 @@
% \end{macrocode}
% 中英文摘要。
% \begin{macrocode}
- \@@_lang_switch:nn
- { \@@_zh_abstract_keywords: \@@_en_abstract_keywords: }
- { \@@_en_abstract_keywords: \@@_zh_abstract_keywords: }
+ \bool_if:NF \l_@@_rm_abstract_bool
+ {
+ \@@_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:
+ \bool_if:NF \l_@@_rm_loft_bool
+ {
+ \@@_list_of_figure:
+ \@@_list_of_table:
+ }
% \end{macrocode}
% 符号对照表和缩略语对照表。
% \begin{macrocode}
- \@@_symbols_list:
- \@@_abbreviations_list:
+ \bool_if:NF \l_@@_rm_losa_bool
+ {
+ \@@_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
+ \bool_if:NF \l_@@_rm_toc_bool
+ {
+ \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
+ \@@_lang_switch:nn { }
+ {
+ \setcounter { tocdepth } { 2 }
+ \@@_n_chapter_head:nn { 目录 } { \@@_sf_family: 目 { \quad } 录 }
+ \@starttoc { zh.toc }
+ \cleardoublepage
+ }
}
}
% \end{macrocode}
@@ -6020,6 +6518,7 @@
% \changes{v1.5.0.0}{2022/05/01}{设置正文页边距}
% \changes{v1.6.0.0}{2022/05/02}{设置页脚页码}
% \changes{v1.23.1.0}{2022/06/05}{设置正文字号和行间距}
+% \changes{v2.10.3.0}{2022/06/28}{修正公式与正文间距}
% 排版正文部分。
% \begin{macrocode}
\renewcommand { \mainmatter }
@@ -6056,6 +6555,13 @@
\@@_add_zh_toc:nn { subsection } { \numberline { \thesubsection } ##2 }
}
}
+% \end{macrocode}
+% 修正公式与正文间距。
+% \begin{macrocode}
+ \dim_set:Nn \abovedisplayskip { 12bp }
+ \dim_set:Nn \belowdisplayskip { 12bp }
+ \dim_set:Nn \abovedisplayshortskip { 0bp }
+ \dim_set:Nn \belowdisplayshortskip { 12bp }
}
% \end{macrocode}
% \end{macro}
@@ -6088,21 +6594,20 @@
% \changes{v0.5.2.0}{2022/04/07}{修正参考文献列表字体字号}
% \changes{v1.3.1.0}{2022/04/21}{修复参考文献列表字体字号}
% \changes{v1.4.1.0}{2022/04/27}{修复bibtex产生的多余参考文献列表章节}
+% \changes{v2.2.2.0}{2022/06/24}{修正本科生毕业设计参考文献行间距}
+% \changes{v2.2.3.0}{2022/06/24}{修改本科生毕业设计参考文献\bibtex{}字体字号设置方式}
+% \changes{v2.2.5.0}{2022/06/24}{修改本科生毕业设计参考文献标签与文献内容的间距}
+% \changes{v2.6.1.0}{2022/06/25}{修正本科生毕业设计参考文献斜杠符号字体}
% \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 { }
- \@@_rm_family: \zihao { 5 }
+ \dim_set:Nn \labelsep { 1ex }
\bibliography { \l_@@_bib_file_clist }
}
- {
- \defbibheading { bibliography } [ ] { }
- \cs_set:Npn \bibfont { \@@_rm_family: \zihao { 5 } }
- \printbibliography
- }
+ { \printbibliography }
\group_end:
}
% \end{macrocode}
@@ -6167,6 +6672,7 @@
}
% \end{macrocode}
% \end{macro}
+% \changes{v2.7.0.0}{2022/06/26}{研究生学位论文支持移除后记部分页面}
% \begin{macro}{\backmatter}
% 排版后记部分。
% \begin{macrocode}
@@ -6184,73 +6690,83 @@
}
% \end{macrocode}
% \changes{v1.25.0.0}{2022/06/05}{研究生学位论文参考文献}
+% \changes{v2.2.2.0}{2022/06/24}{修正研究生学位论文参考文献行间距}
+% \changes{v2.2.3.0}{2022/06/24}{修改研究生学位论文参考文献\bibtex{}字体字号设置方式}
+% \changes{v2.2.5.0}{2022/06/24}{修改研究生学位论文参考文献标签与文献内容的间距}
+% \changes{v2.6.1.0}{2022/06/25}{修正研究生学位论文参考文献斜杠符号字体}
% 参考文献。
% \begin{macrocode}
- \cs_set:Npn \bibname { \@@_lang_switch:nn { 参考文献 } { Bibliography } }
- \@@_n_chapter_head_toc:n { \bibname }
- \@@_lang_switch:nn { } { \@@_add_zh_toc:nn { chapter } { 参考文献 } }
+ \bool_if:NF \l_@@_rm_ref_bool
+ {
+ \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
+ \bool_if:NTF \l_@@_rm_ref_bool
+ { \nobibliography { \l_@@_bib_file_clist } }
{
- \rmfamily \zihao { 5 }
- \dim_set:Nn \baselineskip { 20pt }
+ \dim_set:Nn \labelsep { 1ex }
+ \bibliography { \l_@@_bib_file_clist }
}
- \printbibliography
+ }
+ {
+ \bool_if:NF \l_@@_rm_ref_bool
+ { \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:
+ \bool_if:NF \l_@@_rm_ack_bool
+ {
+ \@@_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 }
+ \bool_if:NF \l_@@_rm_bio_bool
+ {
+ \@@_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 } }
+ \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:
+ \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 c37cd0b7dc..765e5bb869 100644
--- a/macros/xetex/latex/xduts/xduts.pdf
+++ b/macros/xetex/latex/xduts/xduts.pdf
Binary files differ