diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ae7b1660..594b0ca5 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -35,7 +35,7 @@ jobs:
- run: cat build/build-*.log
name: display build log
if: ${{ failure() || success() }}
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
path: |
build/build-*.pdf
@@ -60,7 +60,7 @@ jobs:
- run: cat build/*.log
name: display build log
if: ${{ failure() || success() }}
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
path: |
build/build-*.pdf
@@ -85,7 +85,7 @@ jobs:
- name: check if generated files are of latest version
run: |
git diff --exit-code
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
path: |
src/build/distrib/tds/doc
diff --git a/.github/workflows/contrib.yml b/.github/workflows/contrib.yml
index 18ca9f04..2cb0592f 100644
--- a/.github/workflows/contrib.yml
+++ b/.github/workflows/contrib.yml
@@ -47,7 +47,7 @@ jobs:
sed -i "s|||g" /etc/ImageMagick-*/policy.xml
.github/ci/build_contrib.sh -halt-on-error -time -xelatex
name: build contrib doc with XeLaTeX
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
path: |
build/contrib.*.pdf
diff --git a/.vscode/sjtubeamer.code-snippets b/.vscode/sjtubeamer.code-snippets
index 068cd726..d4c73ec7 100644
--- a/.vscode/sjtubeamer.code-snippets
+++ b/.vscode/sjtubeamer.code-snippets
@@ -35,6 +35,12 @@
"body": "\\bgcenterbox{$1}",
"description": " Define a command to make a centered\n background box easily.\n"
},
+ "setsjtutitlegraphic": {
+ "scope": "doctex,tex",
+ "prefix": "\\setsjtutitlegraphic",
+ "body": "\\setsjtutitlegraphic{$1}",
+ "description": " Set up titlegraphic for the native\n SJTUBeamer theme cover.\n"
+ },
"coverpage": {
"scope": "doctex,tex",
"prefix": "\\coverpage",
diff --git a/beamercolorthemesjtubeamer.sty b/beamercolorthemesjtubeamer.sty
index 995fceb3..56cbd923 100644
--- a/beamercolorthemesjtubeamer.sty
+++ b/beamercolorthemesjtubeamer.sty
@@ -21,7 +21,7 @@
%% limitations under the License.
%% ------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamercolorthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer color theme]
+\ProvidesPackage{beamercolorthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer color theme]
\RequirePackage{sjtuvi}
\DefineOption{color}{color}{red}
\DefineOption{color}{color}{blue}
diff --git a/beamerfontthemesjtubeamer.sty b/beamerfontthemesjtubeamer.sty
index 991949dd..2c2308b9 100644
--- a/beamerfontthemesjtubeamer.sty
+++ b/beamerfontthemesjtubeamer.sty
@@ -21,7 +21,7 @@
%% limitations under the License.
%% ------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerfontthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer font theme]
+\ProvidesPackage{beamerfontthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer font theme]
\RequirePackage{silence}
\WarningFilter{latexfont}{Font shape}
\usefonttheme{professionalfonts}
diff --git a/beamerinnerthemesjtubeamer.sty b/beamerinnerthemesjtubeamer.sty
index 4f79f61b..e3631075 100644
--- a/beamerinnerthemesjtubeamer.sty
+++ b/beamerinnerthemesjtubeamer.sty
@@ -21,7 +21,7 @@
%% limitations under the License.
%% ------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerinnerthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer inner theme]
+\ProvidesPackage{beamerinnerthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer inner theme]
\RequirePackage{sjtuvi}
\RequirePackage{tcolorbox}
\DefineOption{inner}{cover}{maxplus}
@@ -69,10 +69,11 @@
\setbeamertemplate{background}
{\bgcenterbox{\sjtubg[cprimary!50,opacity=0.2]}}
\fi
-\def\titlegraphic{\setbeamertemplate{titlegraphic}}
-\def\inserttitlegraphic{\usebeamertemplate{titlegraphic}}
-\setbeamertemplate{titlegraphic}{}
-\setbeamertemplate{titlegraphic}[\sjtubeamer@inner@cover]
+\def\setsjtutitlegraphic#1{
+ \setbeamertemplate{sjtutitlegraphic}[#1]
+ \titlegraphic{\usebeamertemplate{sjtutitlegraphic}}
+}
+\setsjtutitlegraphic{\sjtubeamer@inner@cover}
\newdimen\beamer@sidebarwidth
\beamer@sidebarwidth=0em
\def\coverpage#1{
diff --git a/beamerouterthemesjtubeamer.sty b/beamerouterthemesjtubeamer.sty
index 1ade0ba2..32cafbe3 100644
--- a/beamerouterthemesjtubeamer.sty
+++ b/beamerouterthemesjtubeamer.sty
@@ -21,7 +21,7 @@
%% limitations under the License.
%% ------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerouterthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer outer theme]
+\ProvidesPackage{beamerouterthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer outer theme]
\RequirePackage{sjtuvi}
\DefineOption{outer}{nav}{miniframes}
\DefineOption{outer}{nav}{infolines}
diff --git a/beamerthemesjtubeamer.sty b/beamerthemesjtubeamer.sty
index 4b4cfcac..781916df 100644
--- a/beamerthemesjtubeamer.sty
+++ b/beamerthemesjtubeamer.sty
@@ -21,7 +21,7 @@
%% limitations under the License.
%% ------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer parent theme]
+\ProvidesPackage{beamerthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer parent theme]
\DeclareOptionBeamer{maxplus}{
\def\sjtubeamer@cover{maxplus}\def\sjtubeamer@logopos{topright}}
\DeclareOptionBeamer{max}{
diff --git a/sjtucover.sty b/sjtucover.sty
index 83c2ae98..33b4f3b5 100644
--- a/sjtucover.sty
+++ b/sjtucover.sty
@@ -18,7 +18,7 @@
%% see https://vi.sjtu.edu.cn/index.php/articles/bulletin/16.
%% ------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sjtucover}[2024/10/21 3.1.0 cover library for sjtubeamer]
+\ProvidesPackage{sjtucover}[2024/12/21 v3.1.1 cover library for sjtubeamer]
\RequirePackage{sjtuvi}
\DefineOption{cover}{lang}{zh}
\DefineOption{cover}{lang}{en}
@@ -31,10 +31,10 @@
\else
\defbeamertemplate*{logo}{default}{\resizebox{!}{0.7cm}{\enlogo}}
\fi
-\defbeamertemplate*{titlegraphic}{maxplus}{\includegraphics{vi/sjtu-vi-sjtuphoto.jpg}}
-\defbeamertemplate*{titlegraphic}{max}{\sjtubg[opacity=0.2]}
-\defbeamertemplate*{titlegraphic}{min}{\includegraphics{vi/sjtu-vi-sjtuphoto.jpg}}
-\defbeamertemplate*{titlegraphic}{my}{
+\defbeamertemplate*{sjtutitlegraphic}{maxplus}{\includegraphics{vi/sjtu-vi-sjtuphoto.jpg}}
+\defbeamertemplate*{sjtutitlegraphic}{max}{\sjtubg[opacity=0.2]}
+\defbeamertemplate*{sjtutitlegraphic}{min}{\includegraphics{vi/sjtu-vi-sjtuphoto.jpg}}
+\defbeamertemplate*{sjtutitlegraphic}{my}{
%
% Developer could define your title graphic here for "my"...
%
@@ -176,7 +176,8 @@
\usebeamerfont{date}\insertdate
\end{beamercolorbox}
\usebeamercolor{palette primary}%
- \ifbeamertemplateempty{titlegraphic}{}{%
+ \ifx\inserttitlegraphic\@empty%
+ \else
\begin{tikzpicture}[overlay, yshift=1.2em]
\node (pic) [fg, above left, inner sep=0.32em] at (0.86\paperwidth,0)
{\resizebox{0.3\paperwidth}{!}{\inserttitlegraphic}};
@@ -190,7 +191,7 @@
(pic.south east) --
(pic.south west) -- cycle;
\end{tikzpicture}
- }
+ \fi
\endgroup
\vskip0.5em
\vfill
diff --git a/sjtuvi.sty b/sjtuvi.sty
index 36a96b5e..a06643ba 100644
--- a/sjtuvi.sty
+++ b/sjtuvi.sty
@@ -18,7 +18,7 @@
%% see https://vi.sjtu.edu.cn/index.php/articles/bulletin/16.
%% ------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sjtuvi}[2024/10/21 3.1.0 Visual Identity System library for sjtubeamer]
+\ProvidesPackage{sjtuvi}[2024/12/21 v3.1.1 Visual Identity System library for sjtubeamer]
\newif\ifsjtubeamer@tempif%
\newbox\sjtubeamer@tempbox%
\newskip\sjtubeamer@h%
diff --git a/src/MANIFEST.md b/src/MANIFEST.md
index b35c9c57..11202e2e 100644
--- a/src/MANIFEST.md
+++ b/src/MANIFEST.md
@@ -33,22 +33,26 @@ These are source files for a number of purposes, including the `unpack` process
generates the installation files of the package. Additional files included here will also
be installed for processing such as testing.
-* beamerthemesjtubeamer.ins ‡
-* beamercolorthemesjtubeamer.dtx ‡
-* beamerfontthemesjtubeamer.dtx ‡
-* beamerinnerthemesjtubeamer.dtx ‡
-* beamerouterthemesjtubeamer.dtx ‡
-* beamerthemesjtubeamer.dtx ‡
-* sjtucover.dtx ‡
-* sjtuvi.dtx ‡
+ | File | Flag | Description |
+ | --- | --- | --- |
+ | beamerthemesjtubeamer.ins | ‡ | |
+ | beamercolorthemesjtubeamer.dtx | ‡ | sjtubeamer color theme |
+ | beamerfontthemesjtubeamer.dtx | ‡ | sjtubeamer font theme |
+ | beamerinnerthemesjtubeamer.dtx | ‡ | sjtubeamer inner theme |
+ | beamerouterthemesjtubeamer.dtx | ‡ | sjtubeamer outer theme |
+ | beamerthemesjtubeamer.dtx | ‡ | sjtubeamer parent theme |
+ | sjtucover.dtx | ‡ | cover library for sjtubeamer |
+ | sjtuvi.dtx | ‡ | Visual Identity System library for sjtubeamer |
### Typeset documentation source files
These files are typeset using LaTeX to produce the PDF documentation for the package.
-* sjtubeamer.tex ‡
-* sjtubeamerdevguide.tex ‡
-* sjtubeamerquickstart.tex ‡
+ | File | Flag | Description |
+ | --- | --- | --- |
+ | sjtubeamer.tex | ‡ | User Manual for sjtubeamer (Chinese) |
+ | sjtubeamerdevguide.tex | ‡ | Development Guide for sjtubeamer (English) |
+ | sjtubeamerquickstart.tex | ‡ | Quick Start for sjtubeamer (Chinese) |
### Derived files
diff --git a/src/doc/sjtubeamer.tex b/src/doc/sjtubeamer.tex
index 1df41a8e..68e558c5 100644
--- a/src/doc/sjtubeamer.tex
+++ b/src/doc/sjtubeamer.tex
@@ -14,7 +14,7 @@
%% limitations under the License.
%% ------------------------------------------------------------------------
-\ProvidesFile{sjtubeamer.tex}[2024/10/21 3.1.0 User Manual for sjtubeamer (Chinese)]
+\ProvidesFile{sjtubeamer.tex}[2024/12/21 v3.1.1 User Manual for sjtubeamer (Chinese)]
\documentclass[
UTF8,
heading=true,
diff --git a/src/doc/sjtubeamerdevguide.tex b/src/doc/sjtubeamerdevguide.tex
index a18c8cbd..eb5cd17d 100644
--- a/src/doc/sjtubeamerdevguide.tex
+++ b/src/doc/sjtubeamerdevguide.tex
@@ -14,7 +14,7 @@
%% limitations under the License.
%% ------------------------------------------------------------------------
-\ProvidesFile{sjtubeamerdevguide.tex}[2024/10/21 3.1.0 Development Guide for sjtubeamer (English)]
+\ProvidesFile{sjtubeamerdevguide.tex}[2024/12/21 v3.1.1 Development Guide for sjtubeamer (English)]
\documentclass{ltxdoc}
\usepackage[scheme=plain]{ctex}
\usepackage[style=ieee]{biblatex}
diff --git a/src/doc/sjtubeamerquickstart.tex b/src/doc/sjtubeamerquickstart.tex
index c1c9c152..9e40241d 100644
--- a/src/doc/sjtubeamerquickstart.tex
+++ b/src/doc/sjtubeamerquickstart.tex
@@ -14,7 +14,7 @@
%% -----------------------------------------------------------------------
% 本行为文件元数据,可省略。
-\ProvidesFile{sjtubeamerquickstart.tex}[2024/10/21 3.1.0 Quick Start for sjtubeamer (Chinese)]
+\ProvidesFile{sjtubeamerquickstart.tex}[2024/12/21 v3.1.1 Quick Start for sjtubeamer (Chinese)]
% 加载 ctexbeamer 文档类【第一部分】
% 如遇无法显示的数学符号,尝试对 ctexbeamer 文档类添加 no-math 选项;
diff --git a/src/source/beamercolorthemesjtubeamer.dtx b/src/source/beamercolorthemesjtubeamer.dtx
index a43b2df7..60329825 100644
--- a/src/source/beamercolorthemesjtubeamer.dtx
+++ b/src/source/beamercolorthemesjtubeamer.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamercolorthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer color theme]
+\ProvidesPackage{beamercolorthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer color theme]
%
% \fi
% \CheckSum{0}
diff --git a/src/source/beamerfontthemesjtubeamer.dtx b/src/source/beamerfontthemesjtubeamer.dtx
index fe0e45f2..7825695e 100644
--- a/src/source/beamerfontthemesjtubeamer.dtx
+++ b/src/source/beamerfontthemesjtubeamer.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerfontthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer font theme]
+\ProvidesPackage{beamerfontthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer font theme]
%
% \fi
% \CheckSum{0}
diff --git a/src/source/beamerinnerthemesjtubeamer.dtx b/src/source/beamerinnerthemesjtubeamer.dtx
index 0aeed8e6..dcc18486 100644
--- a/src/source/beamerinnerthemesjtubeamer.dtx
+++ b/src/source/beamerinnerthemesjtubeamer.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerinnerthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer inner theme]
+\ProvidesPackage{beamerinnerthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer inner theme]
%
% \fi
% \CheckSum{0}
@@ -167,29 +167,32 @@
\fi
% \end{macrocode}
%
-% Redefine the \verb"\titlegraphic" command in \verb"beamer" to implement it
-% into the beamer template management system, as is been done in \verb"\logo".
-% The original definition of \verb"\titlegraphic" is to set the command
-% \verb"\inserttitlegraphic" as its parameter directly.
+% \begin{macro}{\setsjtutitlegraphic}
+% Set up titlegraphic for the native
+% SJTUBeamer theme cover.
% \begin{macrocode}
-\def\titlegraphic{\setbeamertemplate{titlegraphic}}
-% \end{macrocode}
-% Redefine the \verb"\inserttitlegraphic" command to use the template
-% \verb"titlegraphic" directly, using the current color setup without
-% forming a group (not \verb"\usebeamertemplate*").
-% \begin{macrocode}
-\def\inserttitlegraphic{\usebeamertemplate{titlegraphic}}
+\def\setsjtutitlegraphic#1{
+ \setbeamertemplate{sjtutitlegraphic}[#1]
+ \titlegraphic{\usebeamertemplate{sjtutitlegraphic}}
+}
% \end{macrocode}
-% This redefinition makes \verb"\inserttitlegraphic" never be \verb"\@empty".
-% If we need to check if the title graphic is empty now, use
-% \verb"\ifbeamertemplateempty{titlegraphic}{}{}" instead.
+% From version v2.5.2 to v3.1.0, the command \verb"\inserttitlegraphic" is
+% overrided to the custom mechanism of using the beamer template
+% \verb"titlegraphic" directly, but it was soon discovered that this could lead
+% to circular references (\TeX{} capacity exceeded) when the user tries to set
+% the title page to the default template where it will
+% \verb"\usebeamertemplate{titlegraphic}" to use \verb"\inserttitlegraphic"
+% where it will call \verb"\usebeamertemplate{titlegraphic}" again.
+% This has already been solved by reverting to the original definition where
+% \verb"\titlegraphic" will set the \verb"\inserttitlegraphic" directly.
+%
+% \changes{v3.1.1}{2024/12/21}{add the command to set the native titlegraphic,
+% and remove the original way of overriding \cs{inserttitlegraphic}.}
+% \end{macro}
%
% Set up titlegraphic for this cover.
-% First set to empty in case that all definitions of this template in
-% \verb"sjtucover" is not extracted.
% \begin{macrocode}
-\setbeamertemplate{titlegraphic}{}
-\setbeamertemplate{titlegraphic}[\sjtubeamer@inner@cover]
+\setsjtutitlegraphic{\sjtubeamer@inner@cover}
% \end{macrocode}
%
% \subsubsection{Covers}
diff --git a/src/source/beamerouterthemesjtubeamer.dtx b/src/source/beamerouterthemesjtubeamer.dtx
index 948c5b8c..c3610222 100644
--- a/src/source/beamerouterthemesjtubeamer.dtx
+++ b/src/source/beamerouterthemesjtubeamer.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerouterthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer outer theme]
+\ProvidesPackage{beamerouterthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer outer theme]
%
% \fi
% \CheckSum{0}
diff --git a/src/source/beamerthemesjtubeamer.dtx b/src/source/beamerthemesjtubeamer.dtx
index be9fcc9f..1b5d4a07 100644
--- a/src/source/beamerthemesjtubeamer.dtx
+++ b/src/source/beamerthemesjtubeamer.dtx
@@ -37,7 +37,7 @@
% ------------------------------------------------------------------- \fi
% \iffalse
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerthemesjtubeamer}[2024/10/21 3.1.0 sjtubeamer parent theme]
+\ProvidesPackage{beamerthemesjtubeamer}[2024/12/21 v3.1.1 sjtubeamer parent theme]
% \fi
%
% \subsection{Parent Theme}
diff --git a/src/source/sjtucover.dtx b/src/source/sjtucover.dtx
index b6f1d574..b9721262 100644
--- a/src/source/sjtucover.dtx
+++ b/src/source/sjtucover.dtx
@@ -13,7 +13,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sjtucover}[2024/10/21 3.1.0 cover library for sjtubeamer]
+\ProvidesPackage{sjtucover}[2024/12/21 v3.1.1 cover library for sjtubeamer]
%
% \fi
% \CheckSum{0}
@@ -64,28 +64,28 @@
% \paragraph{maxplus.}
% \begin{macrocode}
%<*maxplus>
-\defbeamertemplate*{titlegraphic}{maxplus}{\includegraphics{vi/sjtu-vi-sjtuphoto.jpg}}
+\defbeamertemplate*{sjtutitlegraphic}{maxplus}{\includegraphics{vi/sjtu-vi-sjtuphoto.jpg}}
%
% \end{macrocode}
%
% \paragraph{max.}
% \begin{macrocode}
%<*max>
-\defbeamertemplate*{titlegraphic}{max}{\sjtubg[opacity=0.2]}
+\defbeamertemplate*{sjtutitlegraphic}{max}{\sjtubg[opacity=0.2]}
%
% \end{macrocode}
%
% \paragraph{min.}
% \begin{macrocode}
%<*min>
-\defbeamertemplate*{titlegraphic}{min}{\includegraphics{vi/sjtu-vi-sjtuphoto.jpg}}
+\defbeamertemplate*{sjtutitlegraphic}{min}{\includegraphics{vi/sjtu-vi-sjtuphoto.jpg}}
%
% \end{macrocode}
%
% \paragraph{my.}
% \begin{macrocode}
%<*my>
-\defbeamertemplate*{titlegraphic}{my}{
+\defbeamertemplate*{sjtutitlegraphic}{my}{
%
% Developer could define your title graphic here for "my"...
%
@@ -316,9 +316,12 @@
%
% \changes{v3.1.0}{2024/10/21}{Fix the condition of empty titlegraphic in
% \texttt{min} theme.}
+% \changes{v3.1.1}{2024/12/21}{Revert to the original condition of empty titlegraphic in
+% \texttt{min} theme.}
% \begin{macrocode}
\usebeamercolor{palette primary}%
- \ifbeamertemplateempty{titlegraphic}{}{%
+ \ifx\inserttitlegraphic\@empty%
+ \else
\begin{tikzpicture}[overlay, yshift=1.2em]
\node (pic) [fg, above left, inner sep=0.32em] at (0.86\paperwidth,0)
{\resizebox{0.3\paperwidth}{!}{\inserttitlegraphic}};
@@ -332,7 +335,7 @@
(pic.south east) --
(pic.south west) -- cycle;
\end{tikzpicture}
- }
+ \fi
\endgroup
\vskip0.5em
\vfill
diff --git a/src/source/sjtuvi.dtx b/src/source/sjtuvi.dtx
index dd985dfe..73edb5e2 100644
--- a/src/source/sjtuvi.dtx
+++ b/src/source/sjtuvi.dtx
@@ -13,7 +13,7 @@
% \iffalse
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{sjtuvi}[2024/10/21 3.1.0 Visual Identity System library for sjtubeamer]
+\ProvidesPackage{sjtuvi}[2024/12/21 v3.1.1 Visual Identity System library for sjtubeamer]
%
% \fi
% \CheckSum{0}