texlive[65752] Master: physics2 (7feb23)

commits+karl at tug.org commits+karl at tug.org
Tue Feb 7 21:48:04 CET 2023


Revision: 65752
          http://tug.org/svn/texlive?view=revision&revision=65752
Author:   karl
Date:     2023-02-07 21:48:04 +0100 (Tue, 07 Feb 2023)
Log Message:
-----------
physics2 (7feb23)

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

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/physics2/
    trunk/Master/texmf-dist/doc/latex/physics2/README.md
    trunk/Master/texmf-dist/doc/latex/physics2/phy2docdef.tex
    trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.pdf
    trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.tex
    trunk/Master/texmf-dist/doc/latex/physics2/physics2.pdf
    trunk/Master/texmf-dist/doc/latex/physics2/physics2.tex
    trunk/Master/texmf-dist/tex/latex/physics2/
    trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.braket.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.legacy.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-bm-um.legacy.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-braket.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-common.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-diagmat.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-doubleprod.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-explsetup.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-nabla.legacy.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-op.legacy.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-qtext.legacy.sty
    trunk/Master/texmf-dist/tex/latex/physics2/phy-xmat.sty
    trunk/Master/texmf-dist/tex/latex/physics2/physics2.sty
    trunk/Master/tlpkg/tlpsrc/physics2.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/physics2/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/physics2/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/physics2/README.md	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,27 @@
+# The `physics2` package
+
+This package defines commands for typesetting math formulae faster and
+more simply. `physics2` is a modularized package, each module provides its
+own function while `physics2.sty` itself only provides very few functions.
+Therefore you can load modules separately after loading `physics2`.
+
+Modules of `physics2` provide the following supports:
+
+- Automatic braces;
+- Dirac bra-ket notation;
+- Easy way to typeset diagonal matrices and matrices with similar entries;
+- Double cross and double dot (binary) operators for tensors;
+
+**Welcome to pull requests
+[here](https://github.com/AlphaZTX/physics2/pulls).**
+
+## License
+
+This work may be distributed and/or modified under the conditions of the
+[LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+either version 1.3c of this license or (at your option) any later version.
+
+This work has the LPPL maintenance status `maintained`.
+
+The Current Maintainer of this work is
+[Zhang Tingxuan](https://www.ctan.org/author/zhang-tx).
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/physics2/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/physics2/phy2docdef.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/physics2/phy2docdef.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/physics2/phy2docdef.tex	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,70 @@
+%% This is part of physics2 documentation.
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+\makeatletter
+\usepackage[nohyperref]{doc}
+\renewcommand*\l at subsection{\@dottedtocline{2}{1.5em}{2.1em}}
+\def\contentsonly{\@starttoc{toc}}
+\usepackage{manfnt}
+\protected\def\pardanger{\ifnum\lastnodetype=1%
+  \leavevmode\hbox to \z@{\hss\dbend\hskip10pt\hskip\parindent}\else
+  \ifnum\lastnodetype=11%
+  \leavevmode\hbox to \z@{\hss\dbend\hskip10pt}%
+  \fi\fi\ignorespaces}
+\usepackage{hyperref,color,xr}
+\definecolor{pkgcolor}{RGB}{0,120,80}
+\definecolor{moducolor}{RGB}{0,0,150}
+\hypersetup{colorlinks,urlcolor=magenta,linkcolor=black,filecolor=blue,
+  pdfstartview=FitH,pdfview=FitH,pdfcreator=XeTeX output}
+\def\s at pkg#1{\texorpdfstring{\textcolor{pkgcolor}{\textsf{#1}}}{“#1”}}
+\def\@pkg#1{\texorpdfstring{\hyperref{https://www.ctan.org/pkg/#1}%
+  {}{}{\textcolor{pkgcolor}{\textsf{#1}}}}{“#1”}}
+\DeclareRobustCommand\pkg{\@ifstar\@pkg\s at pkg}
+\def\modu#1{\texorpdfstring{\textcolor{moducolor}{\textsf{#1}}}{“#1”}}
+\def\opt#1{\texorpdfstring{\texttt{#1}}{“#1”}}
+\protected\def\marg#1{\texttt\{\meta{#1}\texttt\}}
+\protected\def\oarg#1{\texttt[\meta{#1}\texttt]}
+\parindent2.4em
+\linespread{1.06}
+\usepackage{multicol,fancyvrb,verbatim,array,hologo}
+\fvset{xleftmargin=\parindent}
+\newenvironment{displayed}{\trivlist\item[]\leftskip\parindent\relax}{\endtrivlist}
+\usepackage[normalem]{ulem}
+\newcounter{example}[subsection]
+\renewcommand\theexample{\thesubsection.\arabic{example}}
+\newwrite\example at out
+\def\example at name{\jobname.example.aux}
+\long\def\example at start{\begingroup\@bsphack
+  \immediate\openout\example at out=\example at name
+  \let\do\@makeother\dospecials\catcode`\^^M\active
+  \def\verbatim at processline{\immediate\write\example at out{\the\verbatim at line}}%
+  \verbatim at start}
+\long\def\example at end{\immediate\closeout\example at out\@esphack\endgroup%
+  \trivlist\item[]\relax
+    \leavevmode\hbox to \z@{%
+      \hbox to \z@{\hss{\footnotesize[\theexample]}\hskip10pt}%
+      \hskip\parindent
+      \begin{minipage}[c]{0.55\textwidth}%
+        \small\verbatiminput{\example at name}%
+      \end{minipage}%
+      \fbox{%
+        \begin{minipage}[c]{0.5\textwidth}%
+          \normalsize\input{\example at name}%
+        \end{minipage}%
+      }%
+    \hss}%
+  \endtrivlist}
+\newenvironment{example*}[1]%
+  {\refstepcounter{example}\label{#1}\example at start}{\example at end}
+\newenvironment{example}
+  {\stepcounter{example}\example at start}{\example at end}
+\author{Zhang Tingxuan}
+\date{2023/02/07\quad Version 0.1.1\thanks{%
+  \url{https://www.github.com/AlphaZTX/physics2}}}
+\makeatother
+\endinput
\ No newline at end of file


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

Index: trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.pdf	2023-02-07 20:46:17 UTC (rev 65751)
+++ trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.pdf	2023-02-07 20:48:04 UTC (rev 65752)

Property changes on: trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/physics2/physics2-legacy.tex	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,539 @@
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+\documentclass[11pt,letterpaper]{article}
+\usepackage{amsmath}
+\usepackage{unicode-math}
+\setmainfont{Latin Modern Roman}
+\setsansfont{Latin Modern Sans}
+\setmonofont{Latin Modern Mono}
+\setmathfont{Latin Modern Math}
+\usepackage{physics2}
+\usephysicsmodule{ab}
+\usephysicsmodule{ab.legacy,nabla.legacy}
+\usephysicsmodule{op.legacy,qtext.legacy}
+\usephysicsmodule{ab.braket}
+\usephysicsmodule{diagmat}
+\usephysicsmodule[showleft=3,showtop=3]{xmat}
+\usepackage{derivative}
+\input{phy2docdef.tex}
+\title{\pkg{physics2} manual for the legacy \pkg{physics} users}
+\begin{document}
+\maketitle
+
+\begin{abstract}
+This short document describes \pkg*{physics2} package for those who are
+used to the \pkg*{physics} package. This document is only a simple reference
+manual for:
+\begin{itemize}
+\item Frequent users of the legacy \pkg{physics} package;
+\item Those who have to maintain a document written with \pkg{physics};
+\item Users who failed to use \pkg*{unicode-math} with \pkg{physics}.
+\end{itemize}
+It seems no reason for any other user to read \emph{this} document instead of
+the \hyperref{./physics2.pdf}{}{}{package documentation} of \pkg{physics2},
+because this document cannot describe the package in detail.
+
+In this document, the modules of \pkg{physics2} will be introduced in
+the same order as the \pkg{physics} documentation.
+\end{abstract}
+
+\section*{Contents}
+\begin{multicols}{2}
+\contentsonly
+\end{multicols}
+\ifnum\value{page}=1 \vfil\clearpage\fi
+
+\section{Before you start}
+\subsection{Legacy problems with \pkg{physics} package}
+\label{subsec:physics-legacy-problems}
+The \pkg{physics} package provides \cs{qty} command for automatic-sizing
+braces. The \cs{qty} command would cause conflict with the \pkg{siunitx}
+package, which provides a unified method to typeset numbers and units
+correctly.
+
+Besides, after you loaded \pkg{physics}, when you type \cs{homework} you
+will get Maxwell equations and Schrödinger equation. The \cs{homework}
+command is ``declared'' in \texttt{physics.sty} but it was not described
+in the documentation. That is, if you have defined \cs{homework} before
+loading \pkg{physics} package, \pkg{physics} would overwrite the definition
+``silently''.
+
+The vector-notation part of \pkg{physics} uses \pkg*{amsmath}'s (more exactly, 
+\texttt{amsbsy.sty}'s) \cs{boldsymbol} command to generate bold vectors.
+Commands for cross/dot product are defined with \cs{boldsymbol}. 
+\cs{boldsymbol} uses \cs{mathversion}, a \LaTeXe\ kernel command that works
+well with traditional TFM-based fonts but fails when using \pkg{unicode-math}.
+
+In the definition of \cs{imat}, \cs{xmat}, \cs{dmat} and \cs{admat} commands
+from \pkg{physics}, there is a \cs{newtoks} command which allocates a token
+list register and two \cs{newcount} commands allocating two count registers.
+Every time you write a command like \cs{imat} in your document, then one token
+list register and two count registers will be wasted. What's even worse is
+that, if you wrote really too many matrix commands from \pkg{physics} (for
+example, 32767 \cs{imat}s in \hologo{LuaLaTeX}), there'd be no room for a new
+\cs{count}.
+
+\pkg{physics} integrated all the functions in one file (\texttt{physics.sty}),
+that is, you cannot load one of the total seven parts of functions; you have
+to load the seven parts altogether, even included the extra \cs{homework}
+command we mentioned in the first paragraph.
+
+Moreover, the code of \texttt{physics.sty} ``abuses'' the \texttt{g}-type
+arguments of \pkg*{xparse} package. Therefore the syntax of \pkg{physics} package
+looks kind of weird. See \hyperref{https://tex.stackexchange.com/questions/%
+470819/macros-dv-and-pdv-eat-the-subsequent-parenthesis-argument/470842#470842}%
+{}{}{here} for more.
+
+\subsection{Loading \pkg{physics2}}
+The \pkg{physics2} package includes different modules, among which every module
+focuses on one single function.
+
+Write the following line in the preamble to load \pkg{physics2}:
+\begin{Verbatim}
+\usepackage{physics2}
+\end{Verbatim}
+But this is not enough. \pkg{physics2} contains different modules, among which,
+only the \modu{common} module would be loaded automatically by the package.
+If you want to load other modules of \pkg{physics2}, write this after loading
+\pkg{physics2} package:
+\begin{displayed}
+\cs{usephysicsmodule}\marg{module list}
+\end{displayed}
+For example, ``\verb|\usephysicsmodule{ab,doubleprod}|'' loads the \modu{ab}
+module and the \modu{doubleprod} module.
+
+You can also load a module with options:
+\begin{displayed}
+\cs{usephysicsmodule}\oarg{option list}\marg{module}
+\end{displayed}
+For example, ``\verb|\usephysicsmodule[legacy]{ab}|'' loads \modu{ab} with the
+option ``\opt{legacy}''.
+
+\pardanger Attention, if you used any font package in your document, remember
+that \pkg{physics2} requires to be loaded \emph{after} font packages.
+
+
+\section{List of commands}
+\subsection{Automatic bracing}\label{subsec:ab-and-legacy}
+As mentioned in \S\ref{subsec:physics-legacy-problems}, the \cs{qty} command
+from \pkg{physics} would cause conflicts with \pkg{siunitx}. The command for
+automatic braces in \pkg{physics2} is \cs{ab}, a shorthand for 
+{\bfseries a}utomatic {\bfseries b}races.
+
+The \cs{ab} command requires the \modu{ab} module, so don't forget to write
+\verb|\usephysicsmodule{ab}| in the preamble after you loaded \pkg{physics2}.
+Always remember, \emph{do not put an \cs{ab} separately in the end of a math
+formula}. Take some examples:
+\begin{example}
+\[ \ab ( \frac12 )  \quad
+   \ab [ \frac12 ]  \quad
+   \ab\{ \frac12 \} \]
+\end{example}
+\cs{ab} can modify a delimiter-braced subformula. But the delimiters should
+not be out of the range described by the following chart:
+\begin{center}
+\begin{tabular}{c@{\hskip2em}l@{\hskip2em}c}
+\opt{(},\quad\opt{)} && \\
+\opt{[},\quad\opt{]} && \\
+\cs{\{},\quad\cs{\}} &or& \cs{lbrace},\quad\cs{rbrace} \\
+\opt{<},\quad\opt{>} &or& \cs{langle},\quad\cs{rangle} \\
+\opt{|},\quad\opt{|} &or&   \cs{vert},\quad\cs{vert} \\
+ \cs{|},\quad\cs{|}  &or&   \cs{Vert},\quad\cs{Vert}
+\end{tabular}
+\end{center}
+For example, \verb|$\ab{foo}$| and \verb|$\ab(foo]$| are illegal, but
+\verb|$\ab\{foo\}$| and \verb|$\ab(foo)$| are okay; \verb|$\ab([)$|
+is okay but \verb|$\ab(()$| is illegal.
+
+\pardanger Attention, if you want to delimit a subformula with ``\{'' and
+``\}'', you can only write \verb|\{|, \verb|\}| or \cs{lbrace}, \cs{rbrace}
+around it. \verb|{| and \verb|}| are not supported in \modu{ab} module.
+
+Between \cs{ab} and the first delimiter can be a ``biggg'' command, that is,
+from \cs{big} to \cs{Bigg}. Actually, you can also write \cs{biggg} and
+\cs{Biggg} because \pkg{physics2} defines these after you load it. For example,
+\begin{example}
+\[ \ab\Big \| \frac12 \| \quad
+   \ab\Bigg < \frac12 >  \quad
+   \ab\Biggg| \frac12 |  \]
+\end{example}
+Between \cs{ab} and the first delimiter can also be a star (\opt{*}), which
+means ``use the default size of delimiters''. But in this situation, you
+needn't use the \cs{ab} command at all.
+
+The \pkg{physics} package provides commands like \cs{pqty}, \cs{bqty}. In
+the \modu{ab} module of \pkg{physics2}, these commands have changed to
+\cs{pab}, \cs{bab}, etc. The following example shows all the 
+\texttt{\textbackslash}$X$\texttt{ab} commands in \modu{ab} module:
+\begin{example}
+\def\0{\frac12}
+\[ \pab{\0} \quad \bab{\0}
+            \quad \Bab{\0} \]
+\[ \aab{\0} \quad \vab{\0}
+            \quad \Vab{\0} \]
+\end{example}
+Also, after \texttt{\textbackslash}$X$\texttt{ab} can be a ``biggg'' command
+or a star. For example,
+\begin{example}
+\def\0{\frac12}
+\[ \pab\Big{\0} \quad \bab*{\0} \]
+\end{example}
+
+\pkg{physics} also provides the following commands:
+\begin{Verbatim}[fontsize=\small]
+\abs   \norm   \eval   \order      \comm   \acomm   \pb
+\end{Verbatim}
+\pardanger These commands are not originally supported by \pkg{physics2}, but
+the first four commands can be used through the \modu{ab.legacy} module of
+\pkg{physics2}:
+\begin{Verbatim}
+\usephysicsmodule{ab.legacy}
+\end{Verbatim}
+For example,
+\begin{example}
+\def\0{\frac12}
+\[ \abs{\0} \quad \abs\Big{\0}
+            \quad \abs*{\0}    \]
+\end{example}
+Users of the legacy \pkg{physics} package should notice that the syntax of
+\cs{eval} has been changed to \cs{eval}\oarg{left delimiter}\marg{subformula}.
+The \modu{ab.legacy} module abandoned the \verb"\eval(foo|"-like syntax. The
+\meta{left delimiter} argument is optional. For example,
+\begin{example}
+\def\0{\frac12x}
+\[ \eval{\0}_a^b       \quad
+   \eval[(]{\0}_a^b    \quad
+   \eval[[]\big{\0}_a^b   \]
+\end{example}
+The \cs{comm}, \cs{acomm} and \cs{pb} (Poisson bracket) are not supported.
+But you can write like \verb|\ab[foo,baz]| or \verb|\bab{foo,baz}| instead.
+
+By the way, you can set the ``order'' symbol in \modu{ab.legacy} through
+the \opt{order} option like this:
+\begin{Verbatim}
+\usephysicsmodule[order=O]{ab.legacy}
+\end{Verbatim}
+Then \verb|$\order(N)$| yields $O(N)$.
+
+\subsection{Vector notation}
+Unfortunately, there is not a plan for \pkg{physics2} to support this part
+of \pkg{physics} completely, but the rest of this section will show some
+methods to maintain the document written with \pkg{physics}.
+
+The \cs{vb}(\opt{*}), \cs{va}(\opt{*}) and \cs{vu}(\opt{*}) are not supported
+in any module of \pkg{physics2}. But these commands can be defined by copying
+the following lines below and pasting them in the preamble:
+\begin{Verbatim}[fontsize=\small]
+\makeatletter
+\newcommand\vb{\@ifstar\boldsymbol\mathbf}
+\newcommand\va[1]{\@ifstar{\vec{#1}}{\vec{\mathrm{#1}}}}
+\newcommand\vu[1]{%
+  \@ifstar{\hat{\boldsymbol{#1}}}{\hat{\mathbf{#1}}}}
+\makeatother
+\end{Verbatim}
+The \cs{boldsymbol} command requires the \pkg*{amsmath} or \pkg*{bm} package.
+If you prefer to use \pkg{bm}, you can also use the \cs{bm} command.
+What's more, if you tried the commands above, you might find that,
+the result of \cs{va} above is different from that of \pkg{physics}.
+This is beacuse, if you choose to present a vector in bold, it's alomost
+no need to put a \cs{vec} ($\vec{\mskip9mu}$) sign above it.
+
+However, the method above may not work well with \pkg*{unicode-math}
+because there are so many OpenType math fonts without a bold version.
+When using \pkg{unicode-math}, it's recommended to use \cs{symbf} and
+\cs{symbfit} for a separate vector. For example, \verb|$\symbf{0}$| yields
+$\symbf{0}$, and \verb|$\symbfit{A}$| yields $\symbfit{A}$.
+
+The \cs{vdot} and \cs{cross} commands are not supported in any module
+of \pkg{physics2}. Actually, there is no need to use a bold ``$\cdot$''
+or ``$\times$'' for the products of two vectors. Using \cs{cdot} and
+\cs{times} is enough.
+
+The commands related to ``$\nabla$'' are supported through \modu{nabla.legacy}
+module. These commands are \cs{grad}, \cs{div} and \cs{curl}. These commands
+should not be put in the end of a math formula either (just like \cs{ab}).
+Notice that the former \cs{div} command for a ``$\divsymbol$'' (if there
+exists one) is redefined as \cs{divsymbol}. For example,
+\begin{example}
+% \usephysicsmodule{nabla.legacy}
+\[ \grad F      \quad
+   \grad(\frac G2)     \]
+\[ \div\Bigg[X]  \quad
+    \curl*\{\frac Y2\} \]
+\[ 2 \divsymbol 1      \]
+\end{example}
+Actually, the nabla-related commands end with \cs{ab}. Thus, the subformula
+after these commands can be delimited with \verb|()|, \verb|[]| and \verb|\{\}|.
+
+The \modu{nabla.legacy} requires the \pkg*{fixdif} package at least
+version 2.0 (file date: 2023/01/31 or after 2023/01/31).
+
+By the way, if you are used to write \cs{bm} for a vector but interested in
+\pkg{unicode-math}, the \modu{bm-um.legacy} module would be a passable
+alternative to \pkg{bm} package. Notice that the \cs{bm} command from the
+\modu{bm-um.legacy} module can only take \emph{one} letter (or \emph{one} digit)
+as its argument.
+
+\subsection{Operators}
+There's no plan for \pkg{physics2} to support this part of \pkg{physics}
+completely. The syntax in this part of \pkg{physics} (such as \verb|\tan[2](x)|)
+abuses \pkg*{xparse}.
+
+It's suggested to write like this if you used the \modu{ab} module:
+\begin{Verbatim}[fontsize=\small]
+$ \sin^2 \ab( \frac{\alpha}{2} ) $
+\end{Verbatim}
+Rather than take the superscript as an optional argument of the command of
+log-like functions.
+
+The \pkg{physics} package provides a bundle of commands for log-like functions
+that have not been defined in the \LaTeXe\ kernel. Those log-like functions
+can be used with the \modu{op.legacy} module; this module do not support
+the syntax of \pkg{physics} either. For example:
+\begin{example}
+% \usephysicsmodule{op.legacy}
+\[ \asin^2 x \quad \rank \{ A \} \]
+\end{example}
+The \cs{Re} and \cs{Im} commands are redefined as operators ``$\Re$'' and
+``$\Im$'', while $\Resymbol$ and $\Imsymbol$ are reserved as \cs{Resymbol} and
+\cs{Imsymbol}. $\Resymbol$ and $\Imsymbol$ are ordinary symbols but $\Re$ and
+$\Im$ are opetators.
+
+\subsection{Quick quad text}\label{subsec:qtext}
+The \modu{qtext.legacy} module provides the \cs{q}\meta{foo} commands
+for \cs{quad}-wrapped texts. These commands have the same syntax as
+\pkg{physics}. For example,
+\begin{example}
+% \usephysicsmodule{qtext.legacy}
+\[ A \qq {foo bar} B \]
+\[ A \qq*{foo bar} B \]
+\[ C \qcc D \qcc*  E \]
+\[ F \qif G \qthen H \]
+\end{example}
+All the commands described in \S2.4 of
+\hyperref{http://mirrors.ctan.org/macros/latex/contrib/physics/physics.pdf}{}{}%
+{\textsf{physics} documentation} are supported when using \modu{qtext.legacy}
+module, but I don't recommend to use this module unless you are maintaining a
+document written with \pkg{physics}'s \cs{q}\meta{foo} commands.
+
+\subsection{Derivatives}
+There is no plan for \pkg{physics2} to support this part of \pkg{physics}. If
+you want to typeset the differential operators on a better sense, you can try
+the \pkg*{fixdif} package; if you want an easy way to type derivatives, you
+can try the \pkg*{derivative} package. These two packages can be used
+together. For example,
+\begin{example}
+% \usepackage{fixdif,derivative}
+\[ \pdv{f}{x,y,z} \d x \]
+Math ($\d x$) v.s.\ Text (\d x)
+\end{example}
+Here are the documentations of
+\hyperref{http://mirrors.ctan.org/macros/latex/contrib/fixdif/fixdif.pdf}%
+{}{}{\textsf{fixdif}} and
+\hyperref{http://mirrors.ctan.org/macros/latex/contrib/derivative/derivative%
+.pdf}{}{}{\textsf{derivative}}.
+
+\pkg{fixdif}'s commands behave better in superscripts and subscripts.
+
+\subsection{Dirac bra-ket notation}
+There are two solutions to Dirac bra-ket in \pkg{physics2} --- \modu{ab.braket}
+and \modu{braket}. These two modules are \emph{not} compatible and neither of
+them supports \pkg{physics}'s syntax completely.
+Click \hyperlink{para:ab.braket}{\textcolor{cyan}{here}} to see the
+\modu{ab.braket} module and \hyperlink{para:braket}{\textcolor{cyan}{here}}
+to see the \modu{braket} module.
+
+\paragraph{The \modu{ab.braket} module}
+\hypertarget{para:ab.braket}{This} module provides four commands --- \cs{bra}, \cs{ket}, \cs{braket} and
+\cs{ketbra}. After these commands can be a star (\opt{*}) or a ``biggg''
+command. These commands share similar syntaxes like \cs{ab}'s syntax. But,
+\emph{the bra-ket commands from \modu{ab.braket} module are completely different
+from \cs{ab}}. Their internal structures are different.
+
+The argument of \cs{bra} should be delimited with \opt{<} and \opt{|}, that is,
+\begin{center}
+\cs{bra} \opt{<} \meta{subformula} \opt{|}
+\end{center}
+For example,
+\begin{example}
+\[ \bra < \frac \phi 2 | \]
+\[ \bra*< \frac \phi 2 | \]
+\[ \bra\Big< \phi  |     \]
+\end{example}
+The argument of \cs{ket} should be delimited with \opt{|} and \opt{>}, that is,
+\begin{center}
+\cs{ket} \opt{|} \meta{subformula} \opt{>}
+\end{center}
+For example,
+\begin{example}
+\[ \ket | \frac \psi 2 > \]
+\[ \ket*| \frac \psi 2 > \]
+\[ \ket\Big| \psi >      \]
+\end{example}
+\pardanger
+If you want to write ``$>$'' and ``$<$'' for relations in the argument of
+\cs{bra} and \cs{ket}, you can write \verb|\mathrel{>}| and \verb|\mathrel{<}|
+(although there is almost no such need).
+
+The argument of \cs{braket} should be delimited with \opt{<} and \opt{>},
+that is,
+\begin{center}
+\cs{braket} \opt{<} \meta{subformula} \opt{>}
+\end{center}
+In the \meta{subformula} argument, every ``\opt{|}'' will be regarded as an
+extensible vertical bar. For example,
+\begin{example}
+\[ \braket< \phi >            \]
+\[ \braket< \phi | \psi >     \]
+\[ \braket< \phi | A | \psi > \]
+\end{example}
+\begin{example}
+\def\0{\frac\phi2}
+\[ \braket     < \0 | \psi >  \]
+\[ \braket*    < \0 | \psi >  \]
+\[ \braket\Bigg< \0 | \psi >  \]
+\end{example}
+The argument of \cs{ketbra} should be delimited with \opt{|} and \opt{|}.
+In the argument, \opt{>} and \opt{<} will be regarded as extensible $\rangle$
+and $\langle$. that is,
+\begin{center}
+\cs{ketbra} \opt{|} \meta{subformula$_1$} \opt{>} \meta{optional}
+  \opt{<} \meta{subformula$_2$} \opt{|}
+\end{center}
+For example,
+\begin{example}
+\def\0{\frac\phi2}
+\[ \ketbra     | \0 >< \psi | \]
+\[ \ketbra*    | \0 >< \psi | \]
+\[ \ketbra\Bigg| \0 >< \psi | \]
+\end{example}
+\begin{example}
+\def\0{\frac\phi2}
+\[ \ketbra| \0 >_x^y < \psi | \]
+\end{example}
+\pardanger
+If you want to write ``$>$'' and ``$<$'' for relations in the argument of
+\cs{braket} and \cs{ketbra}, you can write \cs{>} and \cs{<} (although there
+is almost no such need). It is quite different from \verb|\mathrel{>}| or
+\verb|\mathrel{<}| because in these commands' argument, \opt{>} and \opt{<}
+will be redefined.
+
+\paragraph{The \modu{braket} module}
+\begingroup
+\makeatletter\def\phy at requiremodule#1{}%
+\def\PackageWarning#1#2{}%
+\input phy-braket.sty\makeatother
+\hypertarget{para:braket}{This} module contains four commands --- \cs{bra},
+\cs{ket}, \cs{braket} and \cs{ketbra}. After these commands can be a star
+(\opt{*}) or a square-bracket-delimited size option, the size option can
+take the following values:
+\begin{center}
+\opt{big},\quad\opt{Big},\quad\opt{bigg},\quad\opt{Bigg},\quad
+\opt{biggg}\quad or\quad\opt{Biggg}.
+\end{center}
+Star stands for ``do not size the bra-ket automatically''.
+
+The argument(s) of these four commands are braced with \verb|{| and \verb|}|.
+\cs{bra} and \cs{ket} take one mandatory argument. For example,
+\begin{example}
+\def\0{\frac\phi2}
+\[ \bra {\0} \quad \bra* {\0}
+             \quad \bra[Big] {\0} \]
+\[ \ket {\0} \quad \ket* {\0}
+             \quad \ket[Big] {\0} \]
+\end{example}
+The \cs{braket} command, in default, can take two arguments.
+\begin{example}
+\def\0{\frac\phi2}
+\[ \braket {\0} {\psi}   \quad
+   \braket*{\0} {\psi}   \quad
+   \braket[big] {\0} {\psi} \]
+\end{example}
+If you want \cs{braket} to take one or three arguments, you can write the
+number of arguments in the sqare bracket. If you need to specify the size
+of bra-ket simultaneously, you need to separate the number and the size with
+a comma:
+\begin{example}
+\def\0{\frac\phi2}
+\[ \braket [1] {\0} \quad
+   \braket*[1] {\0} \]
+\[ \braket [3] {\0}{A}{\psi}    \]
+\[ \braket[3,big] {\0}{A}{\psi}
+     \quad
+   \braket[Big,3] {\0}{A}{\psi} \]
+\end{example}
+The \cs{ketbra} command takes two mandatory arguments. It can also take an
+optional argument between the two mandatory arguments. The optional argument
+will be placed between $\rangle$ and $\langle$:
+\begin{example}
+\def\0{\frac\phi2}
+\[ \ketbra  {\0} {\psi}    \quad
+   \ketbra* {\0} {\psi}       \]
+\[ \ketbra [Bigg] {\0} {\psi} \]
+\[ \ketbra {\0} [_x^y] {\psi} \]
+\end{example}
+\endgroup
+
+\subsection{Matrix macros}
+Unfortunately, \pkg{physics2} do not support the \cs{mqty} command from
+\pkg{physics}. If you are used to this command, you can write like this:
+\begin{Verbatim}[fontsize=\small]
+\newcommand\mqty[1]{\begin{matrix}#1\end{matrix}}
+\newcommand\pmqty[1]{\begin{pmatrix}#1\end{pmatrix}}
+$\ab(\mqty{foo})$  or  $\pmqty{foo}$
+\end{Verbatim}
+These are equal to physics's \verb|\mqty(foo)| (require \pkg{amsmath}).
+
+\pkg{physics2}'s \modu{diagmat} module provides \cs{diagmat} command
+for diagonal matrices. For example,
+\begin{example}
+\[
+  \diagmat { 1, 2, 3 }
+\]
+\end{example}
+\begin{example}
+\[
+  \pdiagmat [ empty = {} ]
+    { a, b, c, d }
+\]
+\end{example}
+\cs{pdiagmat}, \cs{bdiagmat}, \cs{Bdiagmat}, \cs{vdiagmat} and \cs{Vdiagmat}
+are also available.
+
+\pkg{physics2}'s \modu{xmat} module provides \cs{xmat} command
+for matrices with formatted entries. For example,
+\begin{example}
+\[
+  \xmat{a}{2}{3}
+\]
+\end{example}
+\begin{example}
+% \usephysicsmodule
+%   [showleft=3,showtop=3]{xmat}
+\[
+  \pxmat{X}{m}{n}
+\]
+\end{example}
+\begin{example}
+\[
+  \xmat [showleft=2,showtop=2,
+    format=\texttt{#1[#2][#3]}]
+    {x}{m}{n}
+\]
+\end{example}
+\cs{pxmat}, \cs{bxmat}, \cs{Bxmat}, \cs{vxmat} and \cs{Vxmat} are also available.
+
+
+
+
+
+
+
+
+
+\end{document}
\ No newline at end of file


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

Index: trunk/Master/texmf-dist/doc/latex/physics2/physics2.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/physics2/physics2.pdf	2023-02-07 20:46:17 UTC (rev 65751)
+++ trunk/Master/texmf-dist/doc/latex/physics2/physics2.pdf	2023-02-07 20:48:04 UTC (rev 65752)

Property changes on: trunk/Master/texmf-dist/doc/latex/physics2/physics2.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/physics2/physics2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/physics2/physics2.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/physics2/physics2.tex	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,567 @@
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+\documentclass[11pt,letterpaper]{article}
+\usepackage{amsmath}
+\usepackage{unicode-math}
+\setmainfont{Libertinus Serif}
+\setsansfont{Libertinus Sans}
+\setmonofont{Noto Sans Mono}[Scale=MatchLowercase]
+\setmathfont{Libertinus Math}
+\usepackage{physics2}
+\usephysicsmodule{ab,ab.braket}
+\usephysicsmodule{diagmat}
+\usephysicsmodule{doubleprod}
+\usephysicsmodule[showleft=3,showtop=3]{xmat}
+\usephysicsmodule{ab.legacy,nabla.legacy,op.legacy,qtext.legacy,bm-um.legacy}
+\input{phy2docdef.tex}
+\externaldocument[lega-]{physics2-legacy}
+\title{The \pkg{physics2} package}
+\begin{document}
+\maketitle
+
+\begin{abstract}
+This is the document for \pkg{physics2} package, which defines commands for
+typesetting math formulae faster and more simply. \pkg{physics2} is a
+modularized package, each module provides its own function. 
+
+This document describes the \pkg{physics2} package in more detail.
+But if you are a user of the legacy \pkg{physics} package, you can click
+\hyperref{./physics2-legacy.pdf}{}{}{here} to see the documention for
+\pkg{physics} users before you start. If you never used \pkg{physics} package
+before, just read \emph{this} documentation.
+\end{abstract}
+
+\tableofcontents
+
+\section{Introduction}
+\subsection{The purpose of this package}
+This package aims to provide a bundle of commands for typesetting math faster
+in different modules. The commands provided by \pkg{physics2} and its different
+modules are designed to be short and easy to memorize.
+
+\subsection{Packages required}
+The \pkg{physics2} package itself only requires the \pkg*{keyval} package, which
+is part of the \pkg*{latex-graphics} bundle. Almost every \LaTeX\ distribution
+will include this bundle.
+
+Different modules of \pkg{physics2} might require different packages. It will
+be explained in the following sections that which module requires which package.
+
+The \pkg{physics2} package requires \LaTeXe\ kernel released after 2020/10.
+Please make sure that your \LaTeX\ distribution is not too old.
+
+\subsection{Loading the \pkg{physics2} package}
+Just like loading any package, write
+\begin{Verbatim}
+\usepackage{physics2}
+\end{Verbatim}
+in the preamble to load the \pkg{physics2} package. In this version,
+\pkg{physics2} doesn't provide a package option.
+
+However, \pkg{physics2} itself only provides very few functions. Actually, it
+just provides a method to load modules. You need to load different modules of
+\pkg{physics2} to have different kinds of functions applied to your document.
+
+\subsection{Loading a module of \pkg{physics2}}
+You can load a module of \pkg{physics2} only \emph{after} you write
+\verb|\usepackage{physics2}| in the preamble. Load a \pkg{physics2} module
+like this:
+\begin{center}
+\cs{usephysicsmodule}\marg{module}
+\end{center}
+The usage of \cs{usephysicsmodule} is similar to \cs{usepackage}, so you can
+load more than one modules in one line. For example,
+\begin{Verbatim}
+\usephysicsmodule{ab,ab.braket}
+\end{Verbatim}
+This line loads the \modu{ab} and \modu{ab.braket} modules.
+
+You can also load \emph{one} module with options. The options of a
+\pkg{physics2} module can be a comma-separated key-value list. For example,
+\begin{Verbatim}
+\usephysicsmodule[tightbraces=true]{ab}
+\usephysicsmodule{ab.braket,doubleprod}
+\end{Verbatim}
+These two lines load the \modu{ab} module with option
+\opt{tightbraces\:=\:true} and load \modu{ab.braket} and \modu{doubleprod}
+modules.
+
+\pardanger
+The \modu{common} module will be loaded automatically when you load the
+\pkg{physics2} package and \emph{only} the \modu{common} module will be
+loaded automatically. Any other module should be loaded manually by writing
+\cs{usephysicsmodule}\marg{module} after you loaded \pkg{physics2} in the
+preamble.
+
+The following sections introduce all the user-level modules of \pkg{physics2}.
+View back to the table of contents to see the names of user-level modules.
+
+\section{Modules of \pkg{physics2}}
+\subsection{The automatically loaded \modu{common} module}
+The \modu{common} module provides the following commands:
+
+\cs{delopen} and \cs{delclose}, followed by a math delimiter. They can be
+regarded as abbreviations of ``open delimiter'' and ``close delimiter''. If
+you had heard of the \pkg*{mleftright} package. You can regard \cs{delopen}
+and \cs{delclose} as a simpler version of \cs{mleft} and \cs{mright}.
+For example,
+\begin{example}
+\[    0 \left(\frac12\right) 3    \]
+\[ 0 \delopen(\frac12\delclose) 3 \]
+\end{example}
+
+\cs{biggg} and \cs{Biggg}, followed by a math delimiter. They are even bigger
+than \cs{Bigg}. \cs{biggg} and \cs{Biggg} may be useful when you need to write
+something really tall in math mode, but most OpenType math font do not support
+\cs{langle} (or U+27E8) and \cs{rangle} (or U+27E9) in this large size. Take
+an example,
+\begin{example}
+\[\Biggg(\biggg(\Bigg(\bigg(\Big(\big((
+)\big)\Big)\bigg)\Bigg)\biggg)\Biggg)\]
+\end{example}
+\cs{bigggl}, \cs{bigggm}, \cs{bigggr}, \cs{Bigggl}, \cs{Bigggm} and \cs{Bigggr}
+are also supported.
+
+\subsection{The \modu{ab} module --- automatic braces}
+This module provides the command \cs{ab}. The \cs{ab} command, as a shorthand
+of ``automatic braces'', would specify the size of the following pair of
+delimiters. The delimiters after \cs{ab} should not be out of the range
+described by the following chart:
+\begin{center}
+\begin{tabular}{c@{\hskip2em}l@{\hskip2em}c}
+\opt{(},\quad\opt{)} && \\
+\opt{[},\quad\opt{]} && \\
+\cs{\{},\quad\cs{\}} &or& \cs{lbrace},\quad\cs{rbrace} \\
+\opt{<},\quad\opt{>} &or& \cs{langle},\quad\cs{rangle} \\
+\opt{|},\quad\opt{|} &or&   \cs{vert},\quad\cs{vert} \\
+ \cs{|},\quad\cs{|}  &or&   \cs{Vert},\quad\cs{Vert}
+\end{tabular}
+\end{center}
+For example, it's illegal to write an ``\verb|\ab(|'' without a ``\verb|)|'';
+it's also illegal to write \verb|\ab=foo=|. Take some correct examples:
+\begin{example}
+\[ \ab ( \frac12 )  \quad
+   \ab [ \frac12 ]  \quad
+   \ab\{ \frac12 \}    \]
+\end{example}
+You can also write a command from \cs{big} to \cs{Biggg} between \cs{ab}
+and the first delimiter, which means to specify the size of delimiters manually.
+Also, you can write a star (\opt{*}) between \cs{ab} and the first delimiter,
+to prevent \cs{ab} from setting the size of delimiters. For example,
+\begin{example}
+\[ \ab      <\frac12> \quad
+   \ab\biggg|\frac12| \quad
+   \ab*    \|\frac12\|   \]
+\end{example}
+\pardanger
+Always remember, do not put an \cs{ab} separately at the end of math mode like
+\verb|$\ab$|, because \cs{ab} will try to absorb the following math shift
+character (\verb|$|) as its argument.
+
+The \modu{ab} module also provides \texttt{\textbackslash}$X$\texttt{ab}
+commands, where $X$ can be \opt{p}, \opt{b}, \opt{B}, \opt{a}, \opt{v} and
+\opt{V}. These commands take a normal argument but not an argument delimited
+with paired delimiters. For example,
+\begin{example}
+\def\0{\frac12}
+\[ \pab{\0} \bab{\0} \Bab{\0} \]
+\[ \aab{\0} \vab{\0} \Vab{\0} \]
+\end{example}
+After \texttt{\textbackslash}$X$\texttt{ab} can be a ``biggg'' command or a
+star. For example,
+\begin{example}
+\def\0{\frac12}
+\[ \pab\Big{\0} \quad \bab*{\0} \]
+\end{example}
+
+\paragraph{The options of \modu{ab} module}
+\opt{tightbraces}, a bool type key, whose default value is \opt{true},
+influences whether thin skips are reserved around the paired delimiters.
+It only works with the automatically sized delimiters.
+
+\subsection{The \modu{ab.braket} module --- Dirac bra-ket notation}
+This module provides four commands --- \cs{bra}, \cs{ket}, \cs{braket} and
+\cs{ketbra}. After these commands can be a star (\opt{*}) or a ``biggg''
+command. These commands share similar syntaxes like \cs{ab}'s syntax. But,
+\emph{the bra-ket commands from \modu{ab.braket} module are completely different
+from \cs{ab}}. Their internal structures are different.
+
+The argument of \cs{bra} should be delimited with \opt{<} and \opt{|}, that is,
+\begin{center}
+\cs{bra} \opt{<} \meta{subformula} \opt{|}
+\end{center}
+For example,
+\begin{example}
+\[ \bra < \frac \phi 2 | \]
+\[ \bra*< \frac \phi 2 | \]
+\[ \bra\Big< \phi  |     \]
+\end{example}
+The argument of \cs{ket} should be delimited with \opt{|} and \opt{>}, that is,
+\begin{center}
+\cs{ket} \opt{|} \meta{subformula} \opt{>}
+\end{center}
+For example,
+\begin{example}
+\[ \ket | \frac \psi 2 > \]
+\[ \ket*| \frac \psi 2 > \]
+\[ \ket\Big| \psi >      \]
+\end{example}
+\pardanger
+If you want to write ``$>$'' and ``$<$'' for relations in the argument of
+\cs{bra} and \cs{ket}, you can write \verb|\mathrel{>}| and \verb|\mathrel{<}|
+(although there is almost no such need).
+
+The argument of \cs{braket} should be delimited with \opt{<} and \opt{>},
+that is,
+\begin{center}
+\cs{braket} \opt{<} \meta{subformula} \opt{>}
+\end{center}
+In the \meta{subformula} argument, every ``\opt{|}'' will be regarded as an
+extensible vertical bar. For example,
+\begin{example}
+\[ \braket< \phi >            \]
+\[ \braket< \phi | \psi >     \]
+\[ \braket< \phi | A | \psi > \]
+\end{example}
+\begin{example}
+\def\0{\frac\phi2}
+\[ \braket     < \0 | \psi >  \]
+\[ \braket*    < \0 | \psi >  \]
+\[ \braket\Bigg< \0 | \psi >  \]
+\end{example}
+The argument of \cs{ketbra} should be delimited with \opt{|} and \opt{|}.
+In the argument, \opt{>} and \opt{<} will be regarded as extensible $\rangle$
+and $\langle$. that is,
+\begin{center}
+\cs{ketbra} \opt{|} \meta{subformula$_1$} \opt{>} \meta{optional}
+  \opt{<} \meta{subformula$_2$} \opt{|}
+\end{center}
+For example,
+\begin{example}
+\def\0{\frac\phi2}
+\[ \ketbra     | \0 >< \psi | \]
+\[ \ketbra*    | \0 >< \psi | \]
+\[ \ketbra\Bigg| \0 >< \psi | \]
+\end{example}
+\begin{example}
+\def\0{\frac\phi2}
+\[ \ketbra| \0 >_x^y < \psi | \]
+\end{example}
+\pardanger
+If you want to write ``$>$'' and ``$<$'' for relations in the argument of
+\cs{braket} and \cs{ketbra}, you can write \cs{>} and \cs{<} (although there
+is almost no such need). It is quite different from \verb|\mathrel{>}| or
+\verb|\mathrel{<}| because in these commands' argument, \opt{>} and \opt{<}
+will be redefined.
+
+Next, the \modu{braket} module will be introduced. Please notice that
+\modu{braket} is conflict with \modu{ab.braket}, they cannot be used together.
+
+\subsection{The \modu{braket} module --- Dirac bra-ket notation}
+\begingroup
+\makeatletter\def\phy at requiremodule#1{}%
+\def\PackageWarning#1#2{}%
+\input phy-braket.sty\makeatother
+Please notice that this module is conflict with the \modu{ab.braket} module.
+Don't use them together.
+
+This module contains four commands --- \cs{bra}, \cs{ket}, \cs{braket} and
+\cs{ketbra}. After these commands can be a star (\opt{*}) or a
+square-bracket-delimited size option, the size option can
+take the following values:
+\begin{center}
+\opt{big},\quad\opt{Big},\quad\opt{bigg},\quad\opt{Bigg},\quad
+\opt{biggg}\quad or\quad\opt{Biggg}.
+\end{center}
+Star stands for ``do not size the bra-ket automatically''.
+
+The argument(s) of these four commands are braced with \verb|{| and \verb|}|.
+\cs{bra} and \cs{ket} take one mandatory argument. For example,
+\begin{example}
+\def\0{\frac\phi2}
+\[ \bra {\0} \quad \bra* {\0}
+             \quad \bra[Big] {\0} \]
+\[ \ket {\0} \quad \ket* {\0}
+             \quad \ket[Big] {\0} \]
+\end{example}
+The \cs{braket} command, in default, can take two arguments.
+\begin{example}
+\def\0{\frac\phi2}
+\[ \braket {\0} {\psi}   \quad
+   \braket*{\0} {\psi}   \quad
+   \braket[big] {\0} {\psi} \]
+\end{example}
+If you want \cs{braket} to take one or three arguments, you can write the
+number of arguments in the sqare bracket. If you need to specify the size
+of bra-ket simultaneously, you need to separate the number and the size with
+a comma:
+\begin{example}
+\def\0{\frac\phi2}
+\[ \braket [1] {\0} \quad
+   \braket*[1] {\0} \]
+\[ \braket [3] {\0}{A}{\psi}    \]
+\[ \braket[3,big] {\0}{A}{\psi}
+     \quad
+   \braket[Big,3] {\0}{A}{\psi} \]
+\end{example}
+The \cs{ketbra} command takes two mandatory arguments. It can also take an
+optional argument between the two mandatory arguments. The optional argument
+will be placed between $\rangle$ and $\langle$:
+\begin{example}
+\def\0{\frac\phi2}
+\[ \ketbra  {\0} {\psi}    \quad
+   \ketbra* {\0} {\psi}       \]
+\[ \ketbra [Bigg] {\0} {\psi} \]
+\[ \ketbra {\0} [_x^y] {\psi} \]
+\end{example}
+\endgroup
+
+\subsection{The \modu{diagmat} module --- simple diagonal matrices}
+This module provides \cs{diagmat} command:
+\begin{center}
+\cs{diagmat}\opt{[empty\:=\:}\meta{empty entry}\opt{]}\marg{diag}
+\end{center}
+where \meta{diag} is the diagonal of the diagonal matrix. The entries should
+be separated by commas. The \opt{empty} option is optional, with default value
+\opt{0}. For example,
+\begin{example}
+\[
+  \diagmat { 1, 2, 3 }
+\]
+\end{example}
+\cs{pdiagmat}, \cs{bdiagmat}, \cs{Bdiagmat}, \cs{vdiagmat} and \cs{Vdiagmat}
+are also available. Prefixes like \opt{p}, \opt{b}, \opt{B} have the same
+meaning as the \opt{p}, \opt{b}, \opt{B} in \pkg{amsmath}'s \opt{pmatrix},
+\opt{bmatrix} and \opt{Bmatrix}. For example,
+\begin{example}
+\[
+  \pdiagmat [ empty = {} ]
+    { a, b, c, d }
+\]
+\end{example}
+This module requires \pkg{amsmath}.
+
+\paragraph{The options of \modu{diagmat} module}
+You can set the default value of \cs{diagmat}'s empty entries in the module
+option like this:
+\begin{Verbatim}
+\usephysicsmodule[empty={\cdot}]{diagmat}
+\end{Verbatim}
+
+\subsection{The \modu{doubleprod} module --- tensors' double product operator}
+Take an example of this module:
+\begin{example}
+$ A \doublecross B \doubledot C $
+\end{example}
+\cs{doublecross} and \cs{doubledot} are regarded as binary operators by \TeX.
+
+\paragraph{The options of \modu{doubleprod} module}
+You can control the scale of ``$\times$'' and ``$\cdot$'' in \cs{doublecross}
+and \cs{doubledot} in module option. For example,
+\begin{Verbatim}
+\usephysicsmodule[crossscale=0.75,dotscale=1.2]{doubleprod}
+\end{Verbatim}
+The default values of \opt{crossscale} and \opt{dotscale} are \opt{0.8} and
+\opt{1}. You can also control the distances between the two ``$\times$''s and
+``$\cdot$''s through the \opt{crossopenup} and \opt{dotopenup} options.
+For example,
+\begin{Verbatim}
+\usephysicsmodule[crossopenup=.05,dotopenup=.25]{doubleprod}
+\end{Verbatim}
+The default values of \opt{crossopenup} and \opt{dotopenup} are \opt{0.02}
+and \opt{0.2}. The value stands for the multiple of current font size.
+Moreover, you can change the symbols produced by \cs{doublecross} and
+\cs{doubledot} by setting \opt{crosssymbol} and \opt{dotsymbol} in module
+option.
+
+\subsection{The \modu{xmat} module --- matrices with formatted entries}
+The \modu{xmat} module provides \cs{xmat} command for matrices with formatted
+entries:
+\begin{center}
+\cs{xmat}\oarg{options}\marg{entry}\marg{rows shown}\marg{cols shown}
+\end{center}
+If \meta{rows shown} and \meta{cols shown} are digits, the value of them
+must be less at least 2 than the value of \pkg{amsmath}'s \opt{MaxMatrixCols}
+counter. For example,
+\begin{example}
+\[
+  \xmat{a}{2}{3}
+\]
+\end{example}
+\cs{pxmat}, \cs{bxmat}, \cs{Bxmat}, \cs{vxmat} and \cs{Vxmat} are also
+available. The meaning of \opt{p} and so on is the same as the \opt{p}
+in \opt{pmatrix} of \pkg{amsmath}. For example,
+\begin{example}
+\[
+  \pxmat{M}{3}{3}
+\]
+\end{example}
+If \meta{rows shown} and \meta{cols shown} contain non-digit characters,
+extra dots will be added. For example,
+\begin{example}
+\[
+  \bxmat[showleft=3,showtop=2]
+    {X}{m}{n}
+\]
+\end{example}
+In this example we used the \opt{showleft} and \opt{showtop} options. The
+default value of them is the value of \opt{MaxMatrixCols} minus 2. You can
+also set them in the module option like this:
+\begin{Verbatim}
+\usephysicsmodule[showtop=3,showleft=3]{xmat}
+\end{Verbatim}
+Then every \cs{xmat} with non-digital \meta{rows shown} and \meta{cols shown}
+will have 2 top-most rows and 3 left-most columns shown. This will also
+influence ``\cs{xmat}''s with digital \meta{rows shown} and \meta{cols shown}
+when \meta{rows shown} and \meta{cols shown} are larger than the values
+corresponding to \opt{showtop} and \opt{showleft}. For example,
+\begin{example}
+% \usephysicsmodule
+%   [showtop=3,showleft=3]{xmat}
+\[ \pxmat{A}{8}{8} \]
+\end{example}
+However, when \meta{rows shown} and \meta{cols shown} are 1 greater than
+\meta{showtop} and \meta{showleft}, for example, \meta{rows shown}$\:=4$ and
+\meta{cols shown}$\:=4$ in last example's settings, \cs{xmat} will still add
+the extra dots:
+\begin{example}
+% \usephysicsmodule
+%   [showtop=3,showleft=3]{xmat}
+\[ \pxmat{A}{4}{4} \]
+\end{example}
+In such situations, we need to specify \opt{showtop} and \opt{showleft}
+manually. For example,
+\begin{example}
+% \usephysicsmodule
+%   [showtop=3,showleft=3]{xmat}
+\[ \pxmat[showtop=4,showleft=4]
+     {A}{4}{4}               \]
+\end{example}
+
+The \cs{xmat} command provides the \opt{format} option, which allows users
+to use a new entry format. For example,
+\begin{example}
+\[
+  \xmat [showleft=2,showtop=2,
+    format=\texttt{#1[#2][#3]}]
+    {x}{m}{n}
+\]
+\end{example}
+In the value of \opt{format} key, \verb|#1| stands for the common entry,
+or the first mandotary \meta{entry} argument of \cs{xmat}; \verb|#2|
+stands for the row index and \verb|#3| stands for the column index.
+
+This module requires \pkg{amsmath}.
+
+\paragraph{The options of \modu{xmat} module}
+Only \opt{showtop} and \opt{showleft} can be used as module options.
+\opt{format} should be only used in the optional argument of the
+\cs{xmat} command.
+
+\section{The ``legacy'' modules}
+The legacy modules have similar names like \meta{module}\opt{.legacy}. Most of
+them are designed to provide solutions to maintain documents written with the
+legacy \pkg{physics} package. It's not suggest to use them in a new document.
+
+\subsection{The \modu{ab.legacy} module}
+This module provides the following commands:
+\begin{Verbatim}[fontsize=\small]
+\abs   \norm   \eval   \order
+\end{Verbatim}
+They can take a normal argument. Between these commands and their argument
+can be a ``biggg'' command or a star. For example,
+\begin{example}
+\def\0{\frac12}
+\[ \abs{\0}             \quad
+   \norm\Big{\0}        \quad
+   \order*{\0}             \]
+\end{example}
+\begin{example}
+\def\0{\frac12x}
+\[ \eval{\0}_a^b        \quad
+   \eval[(]{\0}_a^b     \quad
+   \eval[[]\big{\0}_a^b    \]
+\end{example}
+You can set the ``order'' symbol in this module through
+the \opt{order} option like this:
+\begin{Verbatim}
+\usephysicsmodule[order=O]{ab.legacy}
+\end{Verbatim}
+For further information of this module, see \S\ref*{lega-subsec:ab-and-legacy}
+of \hyperref{./physics2-legacy.pdf}{}{}{physics2-legacy}.
+
+\subsection{The \modu{bm-um.legacy} module}
+If you are maintaining a document with plenty of ``\cs{bm}''s or
+``\cs{boldsymbol}''s in it but want to use \pkg{unicode-math} package
+simultaneously, you could take a look at this module.
+
+The \cs{bm} command from \pkg{bm} package uses \cs{mathversion} to support
+its function, but there are few OpenType math fonts who released with a bold
+version. The \modu{bm-um.legacy} module provides a \cs{bm} command too, but
+this \cs{bm} can only take \emph{one} math character or a series of math
+characters sharing the same category code as its argument.
+If the argument was Latin letters or Greek letters, \cs{bm} would switch to
+the bold italic glyphs corresponding to them (if there exists bold italic
+glyphs); else \cs{bm} would switch to the bold upright glyphs. For example,
+\begin{example}
+$\bm{0}\bm{A}\bm{z}
+ \bm{\alpha}\bm{\Omega}$
+\end{example}
+
+\subsection{The \modu{nabla.legacy} module}
+This module provides some commands related to nabla ($\nabla$). Notice that
+this module requires the \pkg{fixdif} package with file date 2023/01/31 at
+minimum.
+
+This module defines \cs{grad} and \cs{curl} and redefines \cs{div}. For example,
+\begin{example}
+\[ \grad V      \]
+\[ \div (x,y,z) \]
+\[ \curl(x,y,z) \]
+\end{example}
+The ``$\divsymbol$'' symbol was redefined as \cs{divsymbol}.
+
+\subsection{The \modu{op.legacy} module}
+This module provides a series of commands for log-like operators. They are
+\begin{Verbatim}
+\asin   \acos   \atan
+\acsc   \asec   \acot
+\Tr     \tr     \rank
+\erf    \Res    \res
+\PV     \pv
+\Re     \Im
+\end{Verbatim}
+where \cs{Re} and \cs{Im} are redefined. The first four lines of commands
+yield what they look like in math mode. For example,
+\begin{example}
+$\asin x$ \quad $\rank A$
+\end{example}
+\cs{PV} yields ``$\PV$'' as an ordinary symbol and \cs{pv} yields ``$\pv$''.
+For example,
+\begin{example}
+$\PV f(z)$ \quad $\pv f(z)$
+\end{example}
+\cs{Re} and \cs{Im} are redefined as ``$\Re$'' and ``$\Im$''. $\Resymbol$
+and $\Imsymbol$ are redefined as \cs{Resymbol} and \cs{Imsymbol}, in default.
+
+This module \emph{does not} require \pkg{amsmath}.
+
+\paragraph{The options of \modu{op.legacy} module}
+\opt{ReIm}, a bool key with default value \opt{true}, determines whether to
+redefine \cs{Re} and \cs{Im}. If you want to reserve the definition of
+\cs{Re} and \cs{Im}, you can write like this:
+\begin{Verbatim}
+\usephysicsmodule[ReIm=false]{op.legacy}
+\end{Verbatim}
+
+\subsection{The \modu{qtext.legacy} module}
+This module was written just to offer a method to maintain documents written
+with the legacy \pkg{physics} package. See \S\ref*{lega-subsec:qtext} of
+\hyperref{./physics2-legacy.pdf}{}{}{physics2-legacy} for more information.
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/physics2/physics2.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.braket.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.braket.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.braket.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,84 @@
+%% 
+%% This is file `phy-ab.braket.sty',
+%% the `ab.braket' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-ab.braket.sty}
+  [2023/01/25 `ab.braket' module of `physics2.sty']
+% This module requires \phy at abopen and \phy at abclose from `ab'.
+\phy at requiremodule{ab}
+\ifdefined\phy at bra@@
+  \PackageWarning{physics2}{You cannot load `ab.braket' and `braket'
+    modules together.\MessageBreak Only `ab.braket' module works now.}
+\fi
+% \bra<foo|
+\phy at AB@gen{br.m}<{mr<|}{\mathopen#1\langle#2\mathclose#1\vert}
+\phy at AB@gen{br.a}<{r<|}{\phy at abopen\langle#1\phy at abclose\vert}
+\phy at d@l at genxm{br.m}
+\phy at d@l at genxa{br.a}
+\DeclareRobustCommand\bra{\phy at d@lx{br.m}{br.a}}
+% \ket|foo>
+\phy at AB@gen{kt.m}|{mr|>}{\mathopen#1\vert#2\mathclose#1\rangle}
+\phy at AB@gen{kt.a}|{r|>}{\phy at abopen\vert#1\phy at abclose\rangle}
+\phy at d@l at genxm{kt.m}
+\phy at d@l at genxa{kt.a}
+\DeclareRobustCommand\ket{\phy at d@lx{kt.m}{kt.a}}
+% \braket<foo|bar>
+\begingroup
+\catcode`\|=\active
+\gdef\phy@@mb at bk#1#2{\begingroup%
+  \mathcode`\|="8000\def|{\egroup#1\vert\bgroup}%
+  \def\<{\mathrel{<}}\def\>{\mathrel{>}}%
+  \mathopen#1\langle\bgroup#2\egroup\mathclose#1\rangle\endgroup}
+\gdef\phy@@ab at bk#1{\begingroup%
+  \mathcode`\|="8000\def|{\egroup\phy at abb@bkv\bgroup}%
+  \def\<{\mathrel{<}}\def\>{\mathrel{>}}%
+  \phy at abopen\langle\bgroup#1\egroup\phy at abclose\rangle\endgroup}
+\endgroup
+\def\phy at abb@bkv{\middle\vert}
+\phy at AB@gen{bk.m}<{mr<>}{\phy@@mb at bk#1{#2}}
+\phy at AB@gen{bk.a}<{r<>}{\phy@@ab at bk{#1}}
+\phy at d@l at genxm{bk.m}
+\phy at d@l at genxa{bk.a}
+\DeclareRobustCommand\braket{\phy at d@lx{bk.m}{bk.a}}
+% \ketbra|foo>bar<baz|
+\begingroup
+\catcode`\<=\active
+\catcode`\>=\active
+\gdef\phy@@mb at kb#1#2{\begingroup%
+  \mathcode`\<="8000 \mathcode`\>="8000%
+  \def<{#1\langle}\def>{#1\rangle}%
+  \def\<{\phy at abb@l}\def\>{\phy at abb@r}%
+  \mathopen#1\vert#2\mathclose#1\vert\endgroup}
+\endgroup
+\gdef\phy@@ab at kb#1>#2<#3\phy@@end{\begingroup%
+  \def\<{\phy at abb@l}\def\>{\phy at abb@r}%
+  \phy at abopen\vert\mathopen{\phy at mathvphantom{#3}}#1\phy at abclose\rangle#2%
+  \phy at abopen\langle#3\mathclose{\phy at mathvphantom{#1}}\phy at abclose\vert%
+\endgroup}
+\AtBeginDocument{\ifcsname symbf\endcsname%
+  \def\phy at abb@l{\Umathchar 3 \symoperators "003C }%
+  \def\phy at abb@r{\Umathchar 3 \symoperators "003E }%
+\fi}
+\def\phy at abb@l{\mathchar"313C }
+\def\phy at abb@r{\mathchar"313E }
+\phy at AB@gen{kb.m}|{mr||}{\phy@@mb at kb#1{#2}}
+\phy at AB@gen{kb.a}|{r||}{\phy@@ab at kb#1\phy@@end}
+\phy at d@l at genxm{kb.m}
+\phy at d@l at genxa{kb.a}
+\DeclareRobustCommand\ketbra{\phy at d@lx{kb.m}{kb.a}}
+\endinput
+%% End of file `phy-ab.braket.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.braket.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.legacy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.legacy.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.legacy.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,33 @@
+%% 
+%% This is file `phy-ab.legacy.sty',
+%% the `ab.legacy' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-ab.legacy.sty}
+  [2023/01/25 `ab.legacy' module of `physics2.sty']
+\phy at requiremodule{ab}
+% The `tight' bool option, true or false.
+\phy at define@key{ab.legacy}{order}[\mathcal{O}]{\def\phy at ab@ordersym{#1}}
+% The default values to keys in this module.
+\phy at setkeys{ab.legacy}{order}
+\phy at processkeyopt{ab.legacy}
+% The braced operators.
+\DeclareRobustCommand\abs{\phy at d@ly\vert\vert}
+\DeclareRobustCommand\norm{\phy at d@ly\Vert\Vert}
+\DeclareRobustCommand\order{\phy at ab@ordersym\phy at d@ly()}
+\DeclareRobustCommand\eval[1][.]{\phy at d@ly#1|}
+\endinput
+%% End of file `phy-ab.legacy.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.legacy.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,105 @@
+%% 
+%% This is file `phy-ab.sty',
+%% the `ab' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-ab.sty}
+  [2023/02/07 `ab' (autobraces) module of `physics2.sty']
+% \phy at requiremodule{common}
+% The `tightbraces' bool option, true or false.
+\phy at define@key{ab}{tightbraces}[true]{\def\@phy at abtight{#1}}
+% Execute the default values to keys in this module.
+\phy at setkeys{ab}{tightbraces=true}
+\phy at processkeyopt{ab}
+% \phy at abopen and \phy at abclose,
+% internal definition for all commands in this module.
+\ifx\@phy at abtight\phy at true
+  \let\phy at abopen\delopen
+  \let\phy at abclose\delclose
+\else
+  \let\phy at abopen\left
+  \let\phy at abclose\right
+\fi
+% The internal version of \ab. #1: `ab' or `mb'; #2: open symbol; (#3: arg-spec; #4: definition)
+\def\phy at AB@gen#1#2{\expandafter\DeclareDocumentCommand\csname phy@#1@\string#2\endcsname}
+% #1 (r<token1><token2>): inner content.
+\phy at AB@gen{ab}({r()}{\phy at abopen(#1\phy at abclose)}
+\phy at AB@gen{ab}[{r[]}{\phy at abopen[#1\phy at abclose]}
+\phy at AB@gen{ab}\{{r\{\}}{\phy at abopen\{#1\phy at abclose\}}
+\phy at AB@gen{ab}|{r||}{\phy at abopen|#1\phy at abclose|}
+\phy at AB@gen{ab}\|{r\|\|}{\phy at abopen\|#1\phy at abclose\|}
+\phy at AB@gen{ab}<{r<>}{\phy at abopen<#1\phy at abclose>}
+\phy at AB@gen{ab}\lbrace{r\lbrace\rbrace}{\phy at abopen\lbrace#1\phy at abclose\rbrace}
+\phy at AB@gen{ab}\vert{r\vert\vert}{\phy at abopen\vert#1\phy at abclose\vert}
+\phy at AB@gen{ab}\Vert{r\Vert\Vert}{\phy at abopen\Vert#1\phy at abclose\Vert}
+\phy at AB@gen{ab}\langle{r\langle\rangle}{\phy at abopen\langle#1\phy at abclose\rangle}
+% #1 (m): \biggg; #2 (r<token1><token2>): inner content.
+\phy at AB@gen{mb}({mr()}{\mathopen#1(#2\mathclose#1)}
+\phy at AB@gen{mb}[{mr[]}{\mathopen#1[#2\mathclose#1]}
+\phy at AB@gen{mb}\{{mr\{\}}{\mathopen#1\lbrace#2\mathclose#1\rbrace}
+\phy at AB@gen{mb}|{mr||}{\mathopen#1\vert#2\mathclose#1\vert}
+\phy at AB@gen{mb}\|{mr\|\|}{\mathopen#1\Vert#2\mathclose#1\Vert}
+\phy at AB@gen{mb}<{mr<>}{\mathopen#1\langle#2\mathclose#1\rangle}
+\phy at AB@gen{mb}\lbrace{mr\lbrace\rbrace}{\mathopen#1\lbrace#2\mathclose#1\rbrace}
+\phy at AB@gen{mb}\vert{mr\vert\vert}{\mathopen#1\vert#2\mathclose#1\vert}
+\phy at AB@gen{mb}\Vert{mr\Vert\Vert}{\mathopen#1\Vert#2\mathclose#1\Vert}
+\phy at AB@gen{mb}\langle{mr\langle\rangle}{\mathopen#1\langle#2\mathclose#1\rangle}
+% \phy at del, the automatic
+\def\phy at del#1#2#3{\phy at abopen#1#3\phy at abclose#2}
+\expandafter\def\csname phy at del\string*\endcsname#1#2#3{\mathopen#1#3\mathclose#2}
+\expandafter\def\csname phy at del\string\big\endcsname#1#2#3{\bigl#1#3\bigr#2}
+\expandafter\def\csname phy at del\string\Big\endcsname#1#2#3{\Bigl#1#3\Bigr#2}
+\expandafter\def\csname phy at del\string\bigg\endcsname#1#2#3{\biggl#1#3\biggr#2}
+\expandafter\def\csname phy at del\string\Bigg\endcsname#1#2#3{\Biggl#1#3\Biggr#2}
+\expandafter\def\csname phy at del\string\biggg\endcsname#1#2#3{\bigggl#1#3\bigggr#2}
+\expandafter\def\csname phy at del\string\Biggg\endcsname#1#2#3{\Bigggl#1#3\Bigggr#2}
+% \phy at AB@gb(a|b|..): gobble (a|b|..) arguments in the middle.
+\def\phy at AB@gbc#1#2#3#4#5{#1{#5}}
+% \phy at d@lx (phy_del_x): the internal defination of \ab.
+% #1: `mb', according to \phy at AB@gen; #2: `ab'; #3: star or big or left delimiter.
+\def\phy at d@lx#1#2#3{%
+  \ifcsname phy at del\string#3\endcsname%
+    \def\reserved at a{#1}% #3 is star or biggg, then get the next argument.
+  \else%
+    \def\reserved at a{#2}% #3 is delimiter, the braces are automatic.
+  \fi%
+  \csname phy at d@lx\reserved at a\endcsname#3}
+% The first two arguments of \phy at d@lx need to be generated by the following two commands.
+\def\phy at d@l at genxm#1{% generate arguments like `mb'
+  \expandafter\def\csname phy at d@lx#1\endcsname##1##2{%
+    \ifx##1*\let\phy at tempa=\relax\else\let\phy at tempa=##1\fi
+    \csname phy@#1@\string##2\endcsname\phy at tempa##2}}
+\def\phy at d@l at genxa#1{% generate arguments like `ab'
+  \expandafter\def\csname phy at d@lx#1\endcsname##1{%
+    \csname phy@#1@\string##1\endcsname##1}}
+% Generate the `mb' and `ab' arguments.
+\phy at d@l at genxm{mb}
+\phy at d@l at genxa{ab}
+% \phy at d@ly (phy_del_y): the internal defination of \(p|b|..)ab.
+\def\phy at d@ly#1#2#3{\ifcsname phy at del\string#3\endcsname
+    \phy at AB@gbc{\csname phy at del\string#3\endcsname#1#2}%
+  \else{\phy at del#1#2{#3}}\fi}
+% \ab(<subformula>), after \ab can be a star or \biggg.
+\DeclareRobustCommand\ab{\phy at d@lx{mb}{ab}}
+% \(p|b|..)ab{<subformula>}, after \(p|..)ab can be a star or \biggg.
+\DeclareRobustCommand\pab{\phy at d@ly()}
+\DeclareRobustCommand\bab{\phy at d@ly[]}
+\DeclareRobustCommand\Bab{\phy at d@ly\lbrace\rbrace}
+\DeclareRobustCommand\vab{\phy at d@ly\vert\vert}
+\DeclareRobustCommand\aab{\phy at d@ly\langle\rangle}
+\DeclareRobustCommand\Vab{\phy at d@ly\Vert\Vert}
+\endinput
+%% End of file `phy-ab.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-ab.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-bm-um.legacy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-bm-um.legacy.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-bm-um.legacy.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,62 @@
+%% 
+%% This is file `phy-bm-um.legacy.sty',
+%% the `bm-um.legacy' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesExplFile{phy-bm-um.legacy.sty}{2023/01/25}{}
+  {`bm-um.legacy' module of `physics2.sty'}
+\AtBeginDocument
+  {
+    \cs_if_exist:cF { symbf }
+      {
+        \PackageError { physics2 }
+          {
+            The ~ `bm-um.legacy' ~ module ~ requires ~
+            `unicode-math' ~ package
+          }
+          {
+            Have ~ you ~ used ~ `unicode-math' ~
+            in ~ the ~ preamble?
+          }
+      }
+  }
+\DeclareDocumentCommand \bm { m }
+  {
+    \mode_if_math:TF
+      {
+        \tl_if_head_eq_catcode:nNTF { #1 } A
+          {
+            \symbfit { #1 }
+          }
+          {
+            \symbf { #1 }
+          }
+      }
+      {
+        \PackageError { physics2 }
+          {
+            The ~ \string\bm\space command ~ should ~ be ~
+            used ~ in ~ math ~ mode ~ only. \MessageBreak
+            This ~ is ~ an ~ error ~ from ~ `bm-um.legacy' ~ module
+          }
+          {
+            Check ~ if ~ any ~ `\string\bm' ~ is ~ out ~
+            of ~ math ~ mode.
+          }
+      }
+  }
+\endinput
+%% End of file `phy-bm-um.legacy.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-bm-um.legacy.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-braket.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-braket.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-braket.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,110 @@
+%% 
+%% This is file `phy-braket.sty',
+%% the `braket' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-braket.sty}
+  [2023/01/25 `braket' module of `physics2.sty']
+% Here we need to get the definition of \phy at abopen and \phy at abclose.
+\phy at requiremodule{ab}
+\ifdefined\phy at abb@bkv
+  \PackageWarning{physics2}{You cannot load `ab.braket' and `braket'
+    modules together.\MessageBreak Only `braket' module works now.}
+\fi
+% \bra
+\DeclareDocumentCommand\bra{ s o m }{%
+  \IfBooleanTF{#1}%
+    {\mathopen\langle#3\mathclose\vert}%
+    {\IfValueTF{#2}%
+      {\csname#2l\endcsname\langle#3\csname#2r\endcsname\vert}%
+      {\phy at abopen\langle#3\phy at abclose\vert}%
+    }%
+}
+% \ket
+\DeclareDocumentCommand\ket{ s o m }{%
+  \IfBooleanTF{#1}%
+    {\mathopen\vert#3\mathclose\rangle}%
+    {\IfValueTF{#2}%
+      {\csname#2l\endcsname\vert#3\csname#2r\endcsname\rangle}%
+      {\phy at abopen\vert#3\phy at abclose\rangle}%
+    }%
+}
+% \braket
+\DeclareDocumentCommand\braket{ s O{} }{%
+  \IfBooleanTF{#1}%
+    {%
+      \gdef\@phy at bk@argnum{ii}%
+      \phy at bk@doopt{#2}%
+      \gdef\@phy at bk@l{mathopen}%
+      \gdef\@phy at bk@m{mathord}%
+      \gdef\@phy at bk@r{mathclose}%
+    }%
+    {%
+      \gdef\@phy at bk@argnum{ii}%
+      \gdef\@phy at bk@l{phy at abopen}%
+      \gdef\@phy at bk@m{middle}%
+      \gdef\@phy at bk@r{phy at abclose}%
+      \phy at bk@doopt{#2}%
+    }%
+  \csname phy at bk@in@\@phy at bk@argnum\endcsname%
+}
+% The internal version of \braket
+\def\phy at bk@in at i#1{%
+  \csname\@phy at bk@l\endcsname\langle{#1}%
+  \csname\@phy at bk@r\endcsname\rangle}
+\def\phy at bk@in at ii#1#2{%
+  \csname\@phy at bk@l\endcsname\langle{#1}%
+  \csname\@phy at bk@m\endcsname\vert{#2}%
+  \csname\@phy at bk@r\endcsname\rangle}
+\def\phy at bk@in at iii#1#2#3{%
+  \csname\@phy at bk@l\endcsname\langle{#1}%
+  \csname\@phy at bk@m\endcsname\vert{#2}%
+  \csname\@phy at bk@m\endcsname\vert{#3}%
+  \csname\@phy at bk@r\endcsname\rangle}
+% Parse the optional argument of \braket.
+\def\@phy at bk@do at pt#1,{\ifx#1\relax\@empty\else%
+  \edef\reserved at a{\zap at space#1 \@empty}%
+  \ifx\reserved at a\@empty\else%
+    \ifcsname phy at del\expandafter\string\csname\reserved at a\endcsname\endcsname%
+      \xdef\@phy at bk@l{\reserved at a l}%
+      \xdef\@phy at bk@m{\reserved at a}% but not m (m stands for \mathrel)
+      \xdef\@phy at bk@r{\reserved at a r}%
+    \else%
+      \ifnum\reserved at a>3%
+        \PackageError{physics2}{\string\braket\space can only take 3
+          mandatory arguments at most}{Check if you had written a number
+          more than 3 in the [optional] argument.}%
+      \fi%
+      \xdef\@phy at bk@argnum{\romannumeral\reserved at a}%
+    \fi%
+  \fi%
+\expandafter\@phy at bk@do at pt\fi}
+\def\phy at bk@doopt#1{\@phy at bk@do at pt#1,\relax,}
+% \ketbra
+\DeclareDocumentCommand\ketbra{ s o m O{} m }{%
+  \IfBooleanTF{#1}%
+    {\mathopen\vert#3\mathclose\rangle#4\mathopen\langle#5\mathclose\vert}%
+    {\IfValueTF{#2}%
+      {\csname#2l\endcsname\vert#3\csname#2r\endcsname\rangle#4%
+        \csname#2l\endcsname\langle#5\csname#2r\endcsname\vert}%
+      {\begingroup%
+        \phy at abopen\vert\mathopen{\phy at mathvphantom{#5}}#3\phy at abclose\rangle#4%
+        \phy at abopen\langle#5\mathclose{\phy at mathvphantom{#3}}\phy at abclose\vert%
+      \endgroup}%
+    }%
+}
+\endinput
+%% End of file `phy-braket.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-braket.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-common.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-common.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-common.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,67 @@
+%% 
+%% This is file `phy-common.sty',
+%% the `common' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-common.sty}
+  [2023/01/25 `common' module of `physics2.sty']
+% Check if `unicode-math' loaded and (re)define the vert symbols.
+% The `\relax'es here are for \ifx to compare.
+\AtBeginDocument{\ifcsname symrm\endcsname
+  \protected\def\|{\Udelimiter 0 \symoperators "2016 }%
+  \protected\def\vert{\Udelimiter 0 \symoperators "007C\relax}%
+  \protected\def\Vert{\Udelimiter 0 \symoperators "2016\relax}%
+  \protected\def\mid{\Udelimiter 3 \symoperators "007C }%
+\fi}
+\protected\def\Vert{\delimiter"026B30D\relax}
+\protected\def\mid{\delimiter"326A30C }
+% \delopen and \delclose, make inner subformulae delimited by
+% \left and \right behave as an open plus a close atom.
+\DeclareRobustCommand\delopen{\mathopen{}\mathclose\bgroup\left}
+\DeclareRobustCommand\delclose{\aftergroup\egroup\right}
+% Extension to the 2e kernel biggggg commands.
+\DeclareRobustCommand\biggg[1]{\leavevmode at ifvmode
+  {\hbox{$\left#1\vbox to20.5\p@{}\right.\n at space$}}}
+\DeclareRobustCommand\Biggg[1]{\leavevmode at ifvmode
+  {\hbox{$\left#1\vbox to23.5\p@{}\right.\n at space$}}}
+\DeclareRobustCommand\bigggl{\mathopen\biggg}
+\DeclareRobustCommand\bigggm{\mathrel\biggg}
+\DeclareRobustCommand\bigggr{\mathclose\biggg}
+\DeclareRobustCommand\Bigggl{\mathopen\Biggg}
+\DeclareRobustCommand\Bigggm{\mathrel\Biggg}
+\DeclareRobustCommand\Bigggr{\mathclose\Biggg}
+% \phy at mathvphantom, does the same job as \vphantom in math mode actually.
+\def\phy at mathvphantom#1{\setbox\phy at tempboxa=\hbox{}%
+  \mathchoice%
+    {\setbox\@tempboxa\hbox{$\displaystyle#1$}%
+      \ht\phy at tempboxa=\ht\@tempboxa%
+      \dp\phy at tempboxa=\dp\@tempboxa%
+      \box\phy at tempboxa}%
+    {\setbox\@tempboxa\hbox{$\textstyle#1$}%
+      \ht\phy at tempboxa=\ht\@tempboxa%
+      \dp\phy at tempboxa=\dp\@tempboxa%
+      \box\phy at tempboxa}%
+    {\setbox\@tempboxa\hbox{$\scriptstyle#1$}%
+      \ht\phy at tempboxa=\ht\@tempboxa%
+      \dp\phy at tempboxa=\dp\@tempboxa%
+      \box\phy at tempboxa}%
+    {\setbox\@tempboxa\hbox{$\scriptscriptstyle#1$}%
+      \ht\phy at tempboxa=\ht\@tempboxa%
+      \dp\phy at tempboxa=\dp\@tempboxa%
+      \box\phy at tempboxa}%
+}
+\endinput
+%% End of file `phy-common.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-common.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-diagmat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-diagmat.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-diagmat.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,92 @@
+%% 
+%% This is file `phy-diagmat.sty',
+%% the `diagmat' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesExplFile{phy-diagmat.sty}{2023/01/25}{}
+  {`diagmat' module of `physics2.sty'}
+\phy at requiremodule { explsetup }
+\RequirePackage { amsmath }
+\phy at define@key { diagmat } { empty } [ 0 ] { \tl_gset:Nn \l__phy_mat_empty_tl { #1 } }
+% New variables
+\clist_new:N \l__phy_mat_diag_clist
+\clist_new:N \l__phy_mat_tmpa_clist
+\clist_new:N \l__phy_mat_tmpb_clist
+\clist_new:N \l__phy_mat_diagpos_clist
+\int_new:N \l__phy_mat_dim_int
+\tl_new:N \l__phy_mat_line_tl
+\tl_new:N \l__phy_diagmat_tl
+\tl_new:N \l__phy_mat_empty_tl
+\tl_gset:Nn \l__phy_mat_empty_tl { 0 }
+\phy at processkeyopt { diagmat }
+\keys_define:nn { phy/diagmat }
+  {
+    empty .tl_set:N = \l__phy_mat_empty_tl ,
+  }
+% Document Commands
+\DeclareDocumentCommand \diagmat { O{} m }
+  { \__phy_diagmat_type:nnn { } { #1 } { #2 } }
+\DeclareDocumentCommand \pdiagmat { O{} m }
+  { \__phy_diagmat_type:nnn { p } { #1 } { #2 } }
+\DeclareDocumentCommand \bdiagmat { O{} m }
+  { \__phy_diagmat_type:nnn { b } { #1 } { #2 } }
+\DeclareDocumentCommand \Bdiagmat { O{} m }
+  { \__phy_diagmat_type:nnn { B } { #1 } { #2 } }
+\DeclareDocumentCommand \vdiagmat { O{} m }
+  { \__phy_diagmat_type:nnn { v } { #1 } { #2 } }
+\DeclareDocumentCommand \Vdiagmat { O{} m }
+  { \__phy_diagmat_type:nnn { V } { #1 } { #2 } }
+% Internal function
+\cs_new:Npn \__phy_diagmat_type:nnn #1#2#3
+  {
+    \group_begin:
+    \clist_set:Nn \l__phy_mat_diag_clist { #3 }
+    \int_set:Nn \l__phy_mat_dim_int { \clist_count:N \l__phy_mat_diag_clist }
+    \int_compare:nNnT { \l__phy_mat_dim_int } > { \value { MaxMatrixCols } }
+      { \setcounter { MaxMatrixCols } { \l__phy_mat_dim_int } }
+    \keys_set:nn { phy/diagmat } { #2 }
+    \tl_gclear:N \l__phy_diagmat_tl
+    \int_step_inline:nnn { 0 } { \l__phy_mat_dim_int - 1 }
+      {
+        \int_step_inline:nnn { 0 } { \l__phy_mat_dim_int - 1 }
+          {
+            \int_compare:nNnTF { ##1 } = { ####1 }
+              {
+                \clist_gpop:NN \l__phy_mat_diag_clist \l__phy_tmpa_tl
+                \tl_if_empty:NTF \l__phy_tmpa_tl
+                  { \tl_gput_right:Nn \l__phy_mat_line_tl { \l__phy_mat_empty_tl } }
+                  { \tl_gput_right:Nx \l__phy_mat_line_tl { \l__phy_tmpa_tl } }
+              }
+              { \tl_gput_right:Nn \l__phy_mat_line_tl { \l__phy_mat_empty_tl } }
+            % The `&' and `\\' between entries.
+            \int_compare:nNnTF { ####1 } = { \l__phy_mat_dim_int - 1 }
+              {
+                \tl_gput_right:Nn \l__phy_mat_line_tl { \\ }
+              }
+              {
+                \tl_gput_right:Nn \l__phy_mat_line_tl { & }
+              }
+          }
+        \tl_gput_right:Nx \l__phy_diagmat_tl { \l__phy_mat_line_tl }
+        \tl_gclear:N \l__phy_mat_line_tl
+      }
+    \begin { #1 matrix }
+      \tl_use:N \l__phy_diagmat_tl
+    \end { #1 matrix }
+    \group_end:
+  }
+\endinput
+%% End of file `phy-diagmat.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-diagmat.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-doubleprod.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-doubleprod.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-doubleprod.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,40 @@
+%% 
+%% This is file `phy-doubleprod.sty',
+%% the `doubleprod' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-doubleprod.sty}
+  [2023/01/25 `doubleprod' (double binary) module of `physics2.sty']
+% The options, true or false.
+\phy at define@key{doubleprod}{crosssymbol}{\def\@phy at dbl@c{#1}}
+\phy at define@key{doubleprod}{dotsymbol}{\def\@phy at dbl@d{#1}}
+\phy at define@key{doubleprod}{crossscale}{\def\@phy at dbl@sc{#1}}
+\phy at define@key{doubleprod}{dotscale}{\def\@phy at dbl@sd{#1}}
+\phy at define@key{doubleprod}{crossopenup}{\def\@phy at dbl@oc{#1}}
+\phy at define@key{doubleprod}{dotopenup}{\def\@phy at dbl@od{#1}}
+\phy at setkeys{doubleprod}{crosssymbol=\times,dotsymbol=\ldotp,
+  crossscale=0.8,dotscale=1,crossopenup=.02,dotopenup=.2}
+\phy at processkeyopt{doubleprod}
+\def\phy at dbl@gen#1#2#3#4{%
+  \DeclareRobustCommand#1{\mathbin{\vcenter{\baselineskip\z at skip%
+    \lineskip#4\phy at dblcurrf@size%
+    \setbox\@tempboxa=\hbox{\fontsize{#2\phy at dblcurrf@size}\z@$#3$}%
+    \copy\@tempboxa\box\@tempboxa}}}}
+\def\phy at dblcurrf@size{\dimexpr\f at size pt\relax}
+\phy at dbl@gen\doublecross\@phy at dbl@sc\@phy at dbl@c\@phy at dbl@oc
+\phy at dbl@gen\doubledot\@phy at dbl@sd\@phy at dbl@d\@phy at dbl@od
+\endinput
+%% End of file `phy-doubleprod.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-doubleprod.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-explsetup.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-explsetup.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-explsetup.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,29 @@
+%% 
+%% This is file `phy-explsetup.sty',
+%% the `explsetup' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesExplFile{phy-explsetup.sty}{2023/01/25}{}
+  {`explsetup' module of `physics2.sty'}
+% temporary variables
+\int_new:N \l__phy_tmpa_int
+\int_new:N \l__phy_tmpb_int
+\tl_new:N \l__phy_tmpa_tl
+\tl_new:N \l__phy_tmpb_tl
+% gobble one token
+\cs_new:Npn \__phy_gobble_i:n #1 { }
+\endinput
+%% End of file `phy-explsetup.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-explsetup.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-nabla.legacy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-nabla.legacy.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-nabla.legacy.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,32 @@
+%% 
+%% This is file `phy-nabla.legacy.sty',
+%% the `nabla.legacy' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-nabla.legacy.sty}
+  [2023/01/25 `nabla.legacy' (autobraces) module of `physics2.sty']
+\phy at requiremodule{ab}
+% This package required `fixdif' package version 2.x.
+\RequirePackage{fixdif}[2023/01/31]
+\letdif\phy at nl@nabla{nabla}
+\AtBeginDocument{\ifcsname div\endcsname\let\divsymbol\div\fi
+  \DeclareRobustCommand\grad{\phy at nl@nabla\ab}%
+  \DeclareRobustCommand\div{\phy at nl@nabla\cdot\ab}%
+  \DeclareRobustCommand\curl{\phy at nl@nabla\times\ab}%
+  \DeclareRobustCommand\laplacian{\phy at nl@nabla^2\ab}%
+}
+\endinput
+%% End of file `phy-nabla.legacy.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-nabla.legacy.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-op.legacy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-op.legacy.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-op.legacy.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,51 @@
+%% 
+%% This is file `phy-op.legacy.sty',
+%% the `op.legacy' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-op.legacy.sty}
+  [2023/01/25 `op.legacy' module of `physics2.sty']
+\phy at define@key{op.lega}{ReIm}[true]{\def\phy at reserveda{#1}}
+% The keys for \PV and \pv
+\phy at define@key{op.lega}{PV}{\def\@phy at oplega@PV{#1}}
+\phy at define@key{op.lega}{pv}{\def\@phy at oplega@pv{#1}}
+\phy at setkeys{op.lega}{PV=\mathcal{P},pv={p.v.},ReIm=true}
+\phy at processkeyopt{ab}
+\DeclareRobustCommand\asin{\mathop{\operator at font asin}\nolimits}
+\DeclareRobustCommand\acos{\mathop{\operator at font acos}\nolimits}
+\DeclareRobustCommand\atan{\mathop{\operator at font atan}\nolimits}
+\DeclareRobustCommand\acsc{\mathop{\operator at font acsc}\nolimits}
+\DeclareRobustCommand\asec{\mathop{\operator at font asec}\nolimits}
+\DeclareRobustCommand\acot{\mathop{\operator at font acot}\nolimits}
+\DeclareRobustCommand\Tr{\mathop{\operator at font Tr}\nolimits}
+\DeclareRobustCommand\tr{\mathop{\operator at font tr}\nolimits}
+\DeclareRobustCommand\rank{\mathop{\operator at font rank}\nolimits}
+\DeclareRobustCommand\erf{\mathop{\operator at font erf}\nolimits}
+\DeclareRobustCommand\Res{\mathop{\operator at font Res}\nolimits}
+\DeclareRobustCommand\res{\mathop{\operator at font res}\nolimits}
+\DeclareRobustCommand\PV{\mathord{\@phy at oplega@PV}}
+\DeclareRobustCommand\pv{\mathop{\operator at font\@phy at oplega@pv{}}\nolimits}
+% \Re and \Im, restore the former comands as \Resymbol and \Imsymbol
+\ifx\phy at reserveda\phy at true
+\AtBeginDocument{%
+  \let\Resymbol\Re%
+  \let\Imsymbol\Im%
+  \DeclareRobustCommand\Re{\mathop{\operator at font Re}\nolimits}%
+  \DeclareRobustCommand\Im{\mathop{\operator at font Im}\nolimits}%
+}
+\fi
+\endinput
+%% End of file `phy-op.legacy.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-op.legacy.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-qtext.legacy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-qtext.legacy.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-qtext.legacy.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,52 @@
+%% 
+%% This is file `phy-qtext.legacy.sty',
+%% the `qtext.legacy' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesFile{phy-qtext.legacy.sty}
+  [2023/01/25 `qtext.legacy' module of `physics2.sty']
+\RequirePackage{amstext}
+\def\phy at qtext@#1#2{#1\text{#2}\quad}
+\DeclareRobustCommand\qqtext{\@ifstar{\phy at qtext@{}}{\phy at qtext@\quad}}
+\DeclareRobustCommand\qq{\qqtext}
+\DeclareRobustCommand\qcomma{,\quad}
+\DeclareRobustCommand\qc{\qcomma}
+\DeclareRobustCommand\qcc{\@ifstar{\phy at qtext@{}{c.c}}{\phy at qtext@\quad{c.c}}}
+\def\phy at qtext@lega at gen@#1{%
+  \expandafter\DeclareRobustCommand\csname q#1\endcsname%
+    {\@ifstar{\phy at qtext@{}{#1}}{\phy at qtext@\quad{#1}}}}
+\phy at qtext@lega at gen@{if}
+\phy at qtext@lega at gen@{then}
+\phy at qtext@lega at gen@{else}
+\phy at qtext@lega at gen@{otherwise}
+\phy at qtext@lega at gen@{unless}
+\phy at qtext@lega at gen@{give}
+\phy at qtext@lega at gen@{using}
+\phy at qtext@lega at gen@{unless}
+\phy at qtext@lega at gen@{assume}
+\phy at qtext@lega at gen@{since}
+\phy at qtext@lega at gen@{let}
+\phy at qtext@lega at gen@{for}
+\phy at qtext@lega at gen@{all}
+\phy at qtext@lega at gen@{even}
+\phy at qtext@lega at gen@{odd}
+\phy at qtext@lega at gen@{integer}
+\phy at qtext@lega at gen@{and}
+\phy at qtext@lega at gen@{or}
+\phy at qtext@lega at gen@{as}
+\phy at qtext@lega at gen@{in}
+\endinput
+%% End of file `phy-qtext.legacy.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-qtext.legacy.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/phy-xmat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/phy-xmat.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/phy-xmat.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,148 @@
+%% 
+%% This is file `phy-xmat.sty',
+%% the `xmat' module of `physics2' package.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\ProvidesExplFile{phy-xmat.sty}{2023/01/25}{}
+  {`xmat' module of `physics2.sty'}
+\phy at requiremodule { explsetup }
+\RequirePackage { amsmath }
+\phy at define@key { xmat } { showtop }
+  { \int_gset:Nn \l__phy_xmat_showtop_int { #1 } }
+\phy at define@key { xmat } { showleft }
+  { \int_gset:Nn \l__phy_xmat_showleft_int { #1 } }
+% New variables
+\bool_new:N \l__phy_xmat_extra_vdots_bool
+\bool_new:N \l__phy_xmat_extra_cdots_bool
+\int_new:N \l__phy_xmat_showtop_int
+\int_new:N \l__phy_xmat_showleft_int
+\tl_new:N \l__phy_xmat_tl
+\int_gset:Nn \l__phy_xmat_showtop_int { \value { MaxMatrixCols } - 2 }
+\int_gset:Nn \l__phy_xmat_showleft_int { \value { MaxMatrixCols } - 2 }
+\cs_new:Npn \__phy_xmat_entry_format:nnn #1#2#3
+  {
+    #1 \c_math_subscript_token { #2 #3 }
+  }
+\phy at processkeyopt { xmat }
+\DeclareDocumentCommand \xmat { O{} m m m }
+ { \__phy_xmat_type:nnnnn { } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \pxmat { O{} m m m }
+ { \__phy_xmat_type:nnnnn { p } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \bxmat { O{} m m m }
+ { \__phy_xmat_type:nnnnn { b } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \Bxmat { O{} m m m }
+ { \__phy_xmat_type:nnnnn { B } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \vxmat { O{} m m m }
+ { \__phy_xmat_type:nnnnn { v } { #1 } { #2 } { #3 } { #4 } }
+\DeclareDocumentCommand \Vxmat { O{} m m m }
+ { \__phy_xmat_type:nnnnn { V } { #1 } { #2 } { #3 } { #4 } }
+
+\keys_define:nn { phy/xmat }
+  {
+    format  .cs_set:Np = \__phy_xmat_entry_format:nnn #1#2#3 ,
+    showtop .int_set:N = \l__phy_xmat_showtop_int ,
+    showleft.int_set:N = \l__phy_xmat_showleft_int ,
+  }
+% Use regex to judge if the total row/column number contains digits **only**.
+\prg_new_conditional:Npnn \__phy_if_digits_only:n #1 { TF }
+  {
+    \regex_match:nnTF { \A [[:digit:]]* \Z } { #1 }
+      { \prg_return_true: } { \prg_return_false: }
+  }
+% #1: p,b,B; #2: options; #2: common entry; #3: total rows; #4: total cols.
+\cs_new:Npn \__phy_xmat_type:nnnnn #1#2#3#4#5
+  {
+    \group_begin:
+    \tl_gclear:N \l__phy_xmat_tl
+    \keys_set:nn { phy/xmat } { #2 } % 
+    \__phy_if_digits_only:nTF { #4 }
+      {
+        \int_compare:nNnTF { #4 } < { \l__phy_xmat_showtop_int + 1 }
+          {
+            \int_set:Nn \l__phy_xmat_showtop_int { #4 }
+            \bool_set_false:N \l__phy_xmat_extra_vdots_bool
+          }
+          {
+            \bool_set_true:N \l__phy_xmat_extra_vdots_bool
+          }
+      }
+      {
+        \bool_set_true:N \l__phy_xmat_extra_vdots_bool
+      }
+    \__phy_if_digits_only:nTF { #5 }
+      {
+        \int_compare:nNnTF { #5 } < { \l__phy_xmat_showleft_int + 1 }
+          {
+            \int_set:Nn \l__phy_xmat_showleft_int { #5 }
+            \bool_set_false:N \l__phy_xmat_extra_cdots_bool
+          }
+          {
+            \bool_set_true:N \l__phy_xmat_extra_cdots_bool
+          }
+      }
+      {
+        \bool_set_true:N \l__phy_xmat_extra_cdots_bool
+      }
+    \int_step_inline:nn { \l__phy_xmat_showtop_int }
+      {
+        \tl_put_right:Nn \l__phy_xmat_tl
+          { \__phy_xmat_entry_format:nnn { #3 } { ##1 } { 1 } }
+        \int_step_inline:nnn { 2 } { \l__phy_xmat_showleft_int }
+          {
+            \tl_put_right:Nn \l__phy_xmat_tl
+              { & \__phy_xmat_entry_format:nnn { #3 } { ##1 } { ####1 } }
+          }
+        \bool_if:NT \l__phy_xmat_extra_cdots_bool
+          {
+            \tl_put_right:Nn \l__phy_xmat_tl
+              { & \cdots & \__phy_xmat_entry_format:nnn { #3 } { ##1 } { #5 } }
+          }
+        \tl_put_right:Nn \l__phy_xmat_tl { \\ }
+      }
+    \bool_if:NT \l__phy_xmat_extra_vdots_bool
+      {
+        \tl_put_right:Nn \l__phy_xmat_tl { \vdots }
+        \prg_replicate:nn { \l__phy_xmat_showleft_int - 1 }
+          {
+            \tl_put_right:Nn \l__phy_xmat_tl { & \vdots }
+          }
+        % Add \ddots if vdots_bool and cdots_bool be true simultaneously.
+        \bool_if:NT \l__phy_xmat_extra_cdots_bool
+          {
+            \tl_put_right:Nn \l__phy_xmat_tl { & \ddots & \vdots }
+          } % else relax
+        \tl_put_right:Nn \l__phy_xmat_tl { \\ }
+        % The last row.
+        \tl_put_right:Nn \l__phy_xmat_tl
+          { \__phy_xmat_entry_format:nnn { #3 } { #4 } { 1 } }
+        \int_step_inline:nnn { 2 } { \l__phy_xmat_showleft_int }
+          {
+            \tl_put_right:Nn \l__phy_xmat_tl
+              { & \__phy_xmat_entry_format:nnn { #3 } { #4 } { ##1 } }
+          }
+        \bool_if:NT \l__phy_xmat_extra_cdots_bool
+          {
+            \tl_put_right:Nn \l__phy_xmat_tl
+              { & \cdots & \__phy_xmat_entry_format:nnn { #3 } { #4 } { #5 } }
+          }
+      } % else relax
+    \begin { #1 matrix }
+      \tl_use:N \l__phy_xmat_tl
+    \end { #1 matrix }
+    \group_end:
+  }
+\endinput
+%% End of file `phy-xmat.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/phy-xmat.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/physics2/physics2.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/physics2/physics2.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/physics2/physics2.sty	2023-02-07 20:48:04 UTC (rev 65752)
@@ -0,0 +1,70 @@
+%%
+%% This is file `physics2.sty'.
+%% 
+%% ******************************************************
+%% * This work may be distributed and/or modified under *
+%% * the conditions of the LaTeX Project Public License *
+%% *                                                    *
+%% *     http://www.latex-project.org/lppl.txt          *
+%% *                                                    *
+%% * either version 1.3c of this license or any later   *
+%% * version.                                           *
+%% ******************************************************
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Zhang Tingxuan.
+%% 
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesPackage{physics2}
+  [2023/01/25 Tools for typesetting math for physics.]
+% Some common variables.
+\newcount\phy at tempcnta
+\newdimen\phy at tempdima
+\newdimen\phy at tempdimb
+\newskip\phy at tempskipa
+\newmuskip\phy at tempmuskipa
+\newbox\phy at tempboxa
+\newif\ifphy at tempswa
+\newtoks\phy at toksa
+% The package uses `keyval' to support key-value settings.
+\RequirePackage{keyval}
+\def\phy at true{true}
+\def\phy at false{false}
+% \phy at define@key{<module>}{<key>}[<default value>]{<code>}
+\long\def\phy at define@key#1{\define at key{phy-#1}}
+% \phy at setkeys{<module>}{<key-val list>}
+\long\def\phy at setkeys#1{\setkeys{phy-#1}}
+% \phy at processkeyopt{<module>}
+\def\phy at processkeyopt#1{\let\reserved at a\@empty%
+  \edef\reserved at a{\@ptionlist{\@currname.\@currext}}%
+  \edef\reserved at a{\noexpand\phy at setkeys{#1}{\reserved at a}}%
+  \reserved at a% the next line thanks to `geometry'
+  \AtEndOfPackage{\let\@unprocessedoptions\relax}}
+% Load the physics modules as 2e kernel does.
+\def\usephysicsmodule{\phy at FWoptions\@pkgextension}
+\let\phy at requiremodule\usephysicsmodule
+\@onlypreamble\usephysicsmodule
+\def\phy at FWoptions#1{\@ifnextchar[%]
+  {\phy at FW@ptions#1}{\phy at FW@ptions#1[]}}
+\@onlypreamble\phy at FWoptions
+\def\phy at FW@ptions#1[#2]#3{\@ifnextchar[%]
+  {\phy at FW@pti at ns#1[{#2}]#3}{\phy at FW@pti at ns#1[{#2}]#3[]}}
+\@onlypreamble\phy at FW@ptions
+\def\phy at FW@pti at ns#1[#2]#3[#4]{%
+  \def\reserved at b##1,{%
+    \ifx\@nnil##1\relax\else
+      \ifx\@nnil##1\@nnil\else
+       \noexpand\@onefilewithoptions{phy-##1}[{\unexpanded{#2}}][{#4}]%
+       \noexpand\@pkgextension
+      \fi
+      \expandafter\reserved at b
+    \fi}%
+    \edef\reserved at a{\zap at space#3 \@empty}%
+    \edef\reserved at a{\expandafter\reserved at b\reserved at a,\@nnil,}%
+  \reserved at a}
+\@onlypreamble\phy at FW@pti at ns
+% The `common' module of physics2, every module needs this.
+\phy at requiremodule{common}
+\endinput
+%% End of file `physics2.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/physics2/physics2.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2023-02-07 20:46:17 UTC (rev 65751)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2023-02-07 20:48:04 UTC (rev 65752)
@@ -636,7 +636,8 @@
     phfnote phfparen phfqit phfquotetext
     phfsvnwatermark phfthm
     philex philokalia philosophersimprint
-    phonenumbers phonetic phonrule photo photobook physconst physics physunits
+    phonenumbers phonetic phonrule photo photobook
+    physconst physics physics2 physunits
     piano picinpar pict2e
     pictex pictex2 pictexsum picture piechartmp piff pigpen
     pinlabel pinoutikz pitex piton pittetd pixelart pixelarttikz

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2023-02-07 20:46:17 UTC (rev 65751)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2023-02-07 20:48:04 UTC (rev 65752)
@@ -1752,6 +1752,7 @@
  'pedigree-perl'        => '&POSTpedigreeperl',
  'pgfornament'		=> '&POSTpgfornament',
  'pgfplots'             => '&POSTpgfplots',
+ 'physics2'		=> '&POST_onelevel',
  'pict2e'               => '&POSTpict2e',
  'pixelarttikz'         => '&POST_onelevel',
  'pkfix-helper'         => '&POSTpkfix_helper',

Modified: trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc	2023-02-07 20:46:17 UTC (rev 65751)
+++ trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc	2023-02-07 20:48:04 UTC (rev 65752)
@@ -174,6 +174,7 @@
 depend pfdicons
 depend physconst
 depend physics
+depend physics2
 depend physunits
 depend pinoutikz
 depend pm-isomath

Added: trunk/Master/tlpkg/tlpsrc/physics2.tlpsrc
===================================================================


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