summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/thuthesis
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-07-10 03:02:35 +0000
committerNorbert Preining <norbert@preining.info>2020-07-10 03:02:35 +0000
commitb3cf6973881fee79b4abb0be96dcfd5330bfeeea (patch)
tree43938d7ef0bdc8d688f2ed5fef9b92cde2da9607 /macros/latex/contrib/thuthesis
parent36846a866c020aa9369708b527a1297fcd5215f9 (diff)
CTAN sync 202007100302
Diffstat (limited to 'macros/latex/contrib/thuthesis')
-rw-r--r--macros/latex/contrib/thuthesis/CHANGELOG.md15
-rw-r--r--macros/latex/contrib/thuthesis/data/appendix-survey.tex7
-rw-r--r--macros/latex/contrib/thuthesis/data/chap01.tex18
-rw-r--r--macros/latex/contrib/thuthesis/math_commands.tex292
-rw-r--r--macros/latex/contrib/thuthesis/spine.pdfbin17265 -> 17319 bytes
-rw-r--r--macros/latex/contrib/thuthesis/thusetup.tex42
-rw-r--r--macros/latex/contrib/thuthesis/thuthesis-author-year.bst335
-rw-r--r--macros/latex/contrib/thuthesis/thuthesis-bachelor.bst331
-rw-r--r--macros/latex/contrib/thuthesis/thuthesis-example.pdfbin877114 -> 875812 bytes
-rw-r--r--macros/latex/contrib/thuthesis/thuthesis-numeric.bst331
-rw-r--r--macros/latex/contrib/thuthesis/thuthesis.dtx58
-rw-r--r--macros/latex/contrib/thuthesis/thuthesis.pdfbin1075310 -> 1080107 bytes
12 files changed, 883 insertions, 546 deletions
diff --git a/macros/latex/contrib/thuthesis/CHANGELOG.md b/macros/latex/contrib/thuthesis/CHANGELOG.md
index 4ccfabe39f..336c697e0a 100644
--- a/macros/latex/contrib/thuthesis/CHANGELOG.md
+++ b/macros/latex/contrib/thuthesis/CHANGELOG.md
@@ -6,6 +6,18 @@
## [Unreleased]
+## [v6.1.3] - 2020-07-09
+### Added
+- 新增选项 `statement-page-style = empty / plain` 同时控制声明的页眉和页脚。
+
+### Fixed
+- `\record` 命令中,如果 `output` 配置为 `print`,则强制进行 `\cleardoublepage`,保证记录表独立成页。
+- 修正了在导言区设置论文主要语言无效的问题(#560)。
+- 修正了研究生插入扫描版声明页时的页眉。
+
+### Deprecated
+- 选项 `statement-page-number` 已过时。
+
## [v6.1.2] - 2020-06-14
### Changed
- `\statement` 和 `\copyrightpage` 命令都会在 PDF 中生成相应位置的书签。
@@ -593,7 +605,8 @@
-[Unreleased]: https://github.com/tuna/thuthesis/compare/v6.1.2...HEAD
+[Unreleased]: https://github.com/tuna/thuthesis/compare/v6.1.3...HEAD
+[v6.1.3]: https://github.com/tuna/thuthesis/compare/v6.1.2...v6.1.3
[v6.1.2]: https://github.com/tuna/thuthesis/compare/v6.1.1...v6.1.2
[v6.1.1]: https://github.com/tuna/thuthesis/compare/v6.1.0...v6.1.1
[v6.1.0]: https://github.com/tuna/thuthesis/compare/v6.0.2...v6.1.0
diff --git a/macros/latex/contrib/thuthesis/data/appendix-survey.tex b/macros/latex/contrib/thuthesis/data/appendix-survey.tex
index 5b6e24a896..a3c5ef6205 100644
--- a/macros/latex/contrib/thuthesis/data/appendix-survey.tex
+++ b/macros/latex/contrib/thuthesis/data/appendix-survey.tex
@@ -32,14 +32,13 @@ as follows,
which maximizes a real-valued function $f$ of
$x=(x_1,x_2,\cdots,x_n)$ subject to a set of constraints.
-\newcommand\Real{\mathbf{R}}
\newtheorem{mpdef}{Definition}[chapter]
\begin{mpdef}
In SOP, we call $x$ a decision vector, and
$x_1,x_2,\cdots,x_n$ decision variables. The function
$f$ is called the objective function. The set
\begin{equation*}
-S=\left\{x\in\Real^n\bigm|g_j(x)\le 0,\,j=1,2,\cdots,p\right\}
+S=\left\{x\in\real^n\bigm|g_j(x)\le 0,\,j=1,2,\cdots,p\right\}
\end{equation*}
is called the feasible set. An element $x$ in $S$ is called a
feasible solution.
@@ -134,8 +133,8 @@ concerned with analyzing the structure of problems.
\end{figure}
Now we consider a nonlinear programming which is confronted solely with
-maximizing a real-valued function with domain $\Real^n$. Whether derivatives are
-available or not, the usual strategy is first to select a point in $\Real^n$ which
+maximizing a real-valued function with domain $\real^n$. Whether derivatives are
+available or not, the usual strategy is first to select a point in $\real^n$ which
is thought to be the most likely place where the maximum exists. If there is no
information available on which to base such a selection, a point is chosen at
random. From this first point an attempt is made to construct a sequence of
diff --git a/macros/latex/contrib/thuthesis/data/chap01.tex b/macros/latex/contrib/thuthesis/data/chap01.tex
index 6c2e757db2..2dfbcf4ec0 100644
--- a/macros/latex/contrib/thuthesis/data/chap01.tex
+++ b/macros/latex/contrib/thuthesis/data/chap01.tex
@@ -58,10 +58,9 @@
\subsection{基本表格}
\label{sec:basictable}
-模板中关于表格的宏包有三个:\pkg{booktabs}、\pkg{array} 和 \pkg{longtable},命
-令有一个 \cs{hlinewd}。三线表可以用 \pkg{booktabs} 提供
-的 \cs{toprule}、\cs{midrule} 和 \cs{bottomrule}。它们与 \pkg{longtable} 能很好的
-配合使用。如果表格比较简单的话可以直接用命令 \cs{hlinewd}\marg{width} 控制。
+模板中关于表格的宏包有三个:\pkg{booktabs}、\pkg{array} 和 \pkg{longtable}。
+三线表可以用 \pkg{booktabs} 提供 的 \cs{toprule}、\cs{midrule} 和 \cs{bottomrule}。
+它们与 \pkg{longtable} 能很好的配合使用。
\begin{table}[htb]
\centering
\begin{threeparttable}[b]
@@ -105,7 +104,7 @@
\begin{minipage}[t]{0.8\textwidth}
\begin{tabularx}{\linewidth}{|l|X|X|X|X|}
\hline
- \multirow{2}*{\diagbox[width=5em]{x}{y}} & \multicolumn{2}{c|}{First Half} & \multicolumn{2}{c|}{Second Half}\\\cline{2-5}
+ \multirow{2}*{} & \multicolumn{2}{c|}{First Half} & \multicolumn{2}{c|}{Second Half}\\\cline{2-5}
& 1st Qtr &2nd Qtr&3rd Qtr&4th Qtr \\ \hline
East$^{*}$ & 20.4& 27.4& 90& 20.4 \\
West$^{**}$ & 30.6 & 38.6 & 34.6 & 31.6 \\ \hline
@@ -116,9 +115,8 @@
\end{minipage}
\end{table}
-此外,表~\ref{tab:tabexamp1} 同时还演示了另外两个功能:1)通过 \pkg{tabularx} 的
- \texttt{|X|} 扩展实现表格自动放大;2)通过命令 \cs{diagbox} 在表头部分
-插入反斜线。
+此外,表~\ref{tab:tabexamp1} 同时还演示了通过 \pkg{tabularx} 的
+ \texttt{|X|} 扩展实现表格自动放大功能。
为了使我们的例子更接近实际情况,我会在必要的时候插入一些“无关”文字,以免太多图
表同时出现,导致排版效果不太理想。第一个出场的当然是我的最爱:风流潇洒、骏马绝尘、
@@ -405,7 +403,6 @@ x&\equiv y+1\pod{m^2}
乾,反复道也。或跃在渊,进无咎也。飞龙在天,大人造也。亢龙有悔,盈不可久也。用九,
天德不可为首也。   
-\newcommand\dif{\mathop{}\!\mathrm{d}}
\begin{lemma}
《猫和老鼠》是我最爱看的动画片。
\begin{multline*}%\tag*{[a]} % 这个不出现在索引中
@@ -540,9 +537,8 @@ p(y|\vx) = \frac{p(\vx,y)}{p(\vx)}=
\end{equation}
论文里面公式越多,\TeX{} 就越 happy。再看一个 \pkg{amsmath} 的例子:
-\newcommand{\envert}[1]{\left\lvert#1\right\rvert}
\begin{equation}\label{detK2}
-\det\mK(t=1,t_1,\dots,t_n)=\sum_{I\in\vn}(-1)^{\envert{I}}
+\det\mK(t=1,t_1,\dots,t_n)=\sum_{I\in\vn}(-1)^{\abs{I}}
\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mA
^{(\lambda)}(\overline{I}|\overline{I})=0.
\end{equation}
diff --git a/macros/latex/contrib/thuthesis/math_commands.tex b/macros/latex/contrib/thuthesis/math_commands.tex
deleted file mode 100644
index e3636b612a..0000000000
--- a/macros/latex/contrib/thuthesis/math_commands.tex
+++ /dev/null
@@ -1,292 +0,0 @@
-% !TeX root = ./thuthesis-example.tex
-
-% Adapted for use with thuthesis.
-% Original code is at https://github.com/goodfeli/dlbook_notation/blob/master/math_commands.tex
-
-%%%%% NEW MATH DEFINITIONS %%%%%
-
-\newcommand\ceil[1]{\lceil #1 \rceil}
-\newcommand\floor[1]{\lfloor #1 \rfloor}
-
-
-% Vectors
-\newcommand\Vector[1]{\symbf{#1}}
-
-\newcommand\0{{\Vector{0}}}
-\newcommand\vzero{{\Vector{0}}}
-\newcommand\1{{\Vector{1}}}
-\newcommand\vone{{\Vector{1}}}
-
-\newcommand\va{{\Vector{a}}}
-\newcommand\vb{{\Vector{b}}}
-\newcommand\vc{{\Vector{c}}}
-\newcommand\vd{{\Vector{d}}}
-\newcommand\ve{{\Vector{e}}}
-\newcommand\vf{{\Vector{f}}}
-\newcommand\vg{{\Vector{g}}}
-\newcommand\vh{{\Vector{h}}}
-\newcommand\vi{{\Vector{i}}}
-\newcommand\vj{{\Vector{j}}}
-\newcommand\vk{{\Vector{k}}}
-\newcommand\vl{{\Vector{l}}}
-\newcommand\vm{{\Vector{m}}}
-\newcommand\vn{{\Vector{n}}}
-\newcommand\vo{{\Vector{o}}}
-\newcommand\vp{{\Vector{p}}}
-\newcommand\vq{{\Vector{q}}}
-\newcommand\vr{{\Vector{r}}}
-\newcommand\vs{{\Vector{s}}}
-\newcommand\vt{{\Vector{t}}}
-\newcommand\vu{{\Vector{u}}}
-\newcommand\vv{{\Vector{v}}}
-\newcommand\vw{{\Vector{w}}}
-\newcommand\vx{{\Vector{x}}}
-\newcommand\vy{{\Vector{y}}}
-\newcommand\vz{{\Vector{z}}}
-
-\newcommand\valpha{{\Vector{\alpha}}}
-\newcommand\vbeta{{\Vector{\beta}}}
-\newcommand\vgamma{{\Vector{\gamma}}}
-\newcommand\vdelta{{\Vector{\delta}}}
-\newcommand\vepsilon{{\Vector{\epsilon}}}
-\newcommand\vtheta{{\Vector{\theta}}}
-\newcommand\viota{{\Vector{\iota}}}
-\newcommand\vkappa{{\Vector{\kappa}}}
-\newcommand\vlambda{{\Vector{\lambda}}}
-\newcommand\vmu{{\Vector{\mu}}}
-\newcommand\vnu{{\Vector{\nu}}}
-\newcommand\vxi{{\Vector{\xi}}}
-\newcommand\vpi{{\Vector{\pi}}}
-\newcommand\vrho{{\Vector{\rho}}}
-\newcommand\vsigma{{\Vector{\sigma}}}
-\newcommand\vtau{{\Vector{\tau}}}
-\newcommand\vupsilon{{\Vector{\upsilon}}}
-\newcommand\vphi{{\Vector{\phi}}}
-\newcommand\vchi{{\Vector{\chi}}}
-\newcommand\vpsi{{\Vector{\psi}}}
-\newcommand\vomega{{\Vector{\omega}}}
-
-
-% Matrix
-\newcommand\MATRIX[1]{\symbf{#1}}
-
-\newcommand\mA{{\MATRIX{A}}}
-\newcommand\mB{{\MATRIX{B}}}
-\newcommand\mC{{\MATRIX{C}}}
-\newcommand\mD{{\MATRIX{D}}}
-\newcommand\mE{{\MATRIX{E}}}
-\newcommand\mF{{\MATRIX{F}}}
-\newcommand\mG{{\MATRIX{G}}}
-\newcommand\mH{{\MATRIX{H}}}
-\newcommand\mI{{\MATRIX{I}}}
-\newcommand\mJ{{\MATRIX{J}}}
-\newcommand\mK{{\MATRIX{K}}}
-\newcommand\mL{{\MATRIX{L}}}
-\newcommand\mM{{\MATRIX{M}}}
-\newcommand\mN{{\MATRIX{N}}}
-\newcommand\mO{{\MATRIX{O}}}
-\newcommand\mP{{\MATRIX{P}}}
-\newcommand\mQ{{\MATRIX{Q}}}
-\newcommand\mR{{\MATRIX{R}}}
-\newcommand\mS{{\MATRIX{S}}}
-\newcommand\mT{{\MATRIX{T}}}
-\newcommand\mU{{\MATRIX{U}}}
-\newcommand\mV{{\MATRIX{V}}}
-\newcommand\mW{{\MATRIX{W}}}
-\newcommand\mX{{\MATRIX{X}}}
-\newcommand\mY{{\MATRIX{Y}}}
-\newcommand\mZ{{\MATRIX{Z}}}
-
-\newcommand\mGamma{{\MATRIX{\Gamma}}}
-\newcommand\mDelta{{\MATRIX{\Delta}}}
-\newcommand\mTheta{{\MATRIX{\Theta}}}
-\newcommand\mLambda{{\MATRIX{\Lambda}}}
-\newcommand\mXi{{\MATRIX{\Xi}}}
-\newcommand\mPi{{\MATRIX{\Pi}}}
-\newcommand\mSigma{{\MATRIX{\Sigma}}}
-\newcommand\mUpsilon{{\MATRIX{\Upsilon}}}
-\newcommand\mPhi{{\MATRIX{\Phi}}}
-\newcommand\mPsi{{\MATRIX{\Psi}}}
-\newcommand\mOmega{{\MATRIX{\Omega}}}
-
-
-% Tensor
-\newcommand\tens[1]{\symbfsf{#1}}
-\newcommand\tA{{\tens{A}}}
-\newcommand\tB{{\tens{B}}}
-\newcommand\tC{{\tens{C}}}
-\newcommand\tD{{\tens{D}}}
-\newcommand\tE{{\tens{E}}}
-\newcommand\tF{{\tens{F}}}
-\newcommand\tG{{\tens{G}}}
-\newcommand\tH{{\tens{H}}}
-\newcommand\tI{{\tens{I}}}
-\newcommand\tJ{{\tens{J}}}
-\newcommand\tK{{\tens{K}}}
-\newcommand\tL{{\tens{L}}}
-\newcommand\tM{{\tens{M}}}
-\newcommand\tN{{\tens{N}}}
-\newcommand\tO{{\tens{O}}}
-\newcommand\tP{{\tens{P}}}
-\newcommand\tQ{{\tens{Q}}}
-\newcommand\tR{{\tens{R}}}
-\newcommand\tS{{\tens{S}}}
-\newcommand\tT{{\tens{T}}}
-\newcommand\tU{{\tens{U}}}
-\newcommand\tV{{\tens{V}}}
-\newcommand\tW{{\tens{W}}}
-\newcommand\tX{{\tens{X}}}
-\newcommand\tY{{\tens{Y}}}
-\newcommand\tZ{{\tens{Z}}}
-
-
-% Graph
-\newcommand\gA{{\mathcal{A}}}
-\newcommand\gB{{\mathcal{B}}}
-\newcommand\gC{{\mathcal{C}}}
-\newcommand\gD{{\mathcal{D}}}
-\newcommand\gE{{\mathcal{E}}}
-\newcommand\gF{{\mathcal{F}}}
-\newcommand\gG{{\mathcal{G}}}
-\newcommand\gH{{\mathcal{H}}}
-\newcommand\gI{{\mathcal{I}}}
-\newcommand\gJ{{\mathcal{J}}}
-\newcommand\gK{{\mathcal{K}}}
-\newcommand\gL{{\mathcal{L}}}
-\newcommand\gM{{\mathcal{M}}}
-\newcommand\gN{{\mathcal{N}}}
-\newcommand\gO{{\mathcal{O}}}
-\newcommand\gP{{\mathcal{P}}}
-\newcommand\gQ{{\mathcal{Q}}}
-\newcommand\gR{{\mathcal{R}}}
-\newcommand\gS{{\mathcal{S}}}
-\newcommand\gT{{\mathcal{T}}}
-\newcommand\gU{{\mathcal{U}}}
-\newcommand\gV{{\mathcal{V}}}
-\newcommand\gW{{\mathcal{W}}}
-\newcommand\gX{{\mathcal{X}}}
-\newcommand\gY{{\mathcal{Y}}}
-\newcommand\gZ{{\mathcal{Z}}}
-
-
-% Sets
-\newcommand\sA{{\mathbb{A}}}
-\newcommand\sB{{\mathbb{B}}}
-\newcommand\sC{{\mathbb{C}}}
-\newcommand\sD{{\mathbb{D}}}
-% Don't use a set called E, because this would be the same as our symbol
-% for expectation.
-\newcommand\sF{{\mathbb{F}}}
-\newcommand\sG{{\mathbb{G}}}
-\newcommand\sH{{\mathbb{H}}}
-\newcommand\sI{{\mathbb{I}}}
-\newcommand\sJ{{\mathbb{J}}}
-\newcommand\sK{{\mathbb{K}}}
-\newcommand\sL{{\mathbb{L}}}
-\newcommand\sM{{\mathbb{M}}}
-\newcommand\sN{{\mathbb{N}}}
-\newcommand\sO{{\mathbb{O}}}
-\newcommand\sP{{\mathbb{P}}}
-\newcommand\sQ{{\mathbb{Q}}}
-\newcommand\sR{{\mathbb{R}}}
-\newcommand\sS{{\mathbb{S}}}
-\newcommand\sT{{\mathbb{T}}}
-\newcommand\sU{{\mathbb{U}}}
-\newcommand\sV{{\mathbb{V}}}
-\newcommand\sW{{\mathbb{W}}}
-\newcommand\sX{{\mathbb{X}}}
-\newcommand\sY{{\mathbb{Y}}}
-\newcommand\sZ{{\mathbb{Z}}}
-
-
-% Random variables
-\newcommand\RandomVariable[1]{\symit{#1}}
-
-\newcommand\rA{{\RandomVariable{A}}}
-\newcommand\rB{{\RandomVariable{B}}}
-\newcommand\rC{{\RandomVariable{C}}}
-\newcommand\rD{{\RandomVariable{D}}}
-\newcommand\rE{{\RandomVariable{E}}}
-\newcommand\rF{{\RandomVariable{F}}}
-\newcommand\rG{{\RandomVariable{G}}}
-\newcommand\rH{{\RandomVariable{H}}}
-\newcommand\rI{{\RandomVariable{I}}}
-\newcommand\rJ{{\RandomVariable{J}}}
-\newcommand\rK{{\RandomVariable{K}}}
-\newcommand\rL{{\RandomVariable{L}}}
-\newcommand\rM{{\RandomVariable{M}}}
-\newcommand\rN{{\RandomVariable{N}}}
-\newcommand\rO{{\RandomVariable{O}}}
-\newcommand\rP{{\RandomVariable{P}}}
-\newcommand\rQ{{\RandomVariable{Q}}}
-\newcommand\rR{{\RandomVariable{R}}}
-\newcommand\rS{{\RandomVariable{S}}}
-\newcommand\rT{{\RandomVariable{T}}}
-\newcommand\rU{{\RandomVariable{U}}}
-\newcommand\rV{{\RandomVariable{V}}}
-\newcommand\rW{{\RandomVariable{W}}}
-\newcommand\rX{{\RandomVariable{X}}}
-\newcommand\rY{{\RandomVariable{Y}}}
-\newcommand\rZ{{\RandomVariable{Z}}}
-
-% Random vectors
-\newcommand\RandomVector[1]{\symbf{#1}}
-
-\newcommand\rvA{{\RandomVector{A}}}
-\newcommand\rvB{{\RandomVector{B}}}
-\newcommand\rvC{{\RandomVector{C}}}
-\newcommand\rvD{{\RandomVector{D}}}
-\newcommand\rvE{{\RandomVector{E}}}
-\newcommand\rvF{{\RandomVector{F}}}
-\newcommand\rvG{{\RandomVector{G}}}
-\newcommand\rvH{{\RandomVector{H}}}
-\newcommand\rvI{{\RandomVector{I}}}
-\newcommand\rvJ{{\RandomVector{J}}}
-\newcommand\rvK{{\RandomVector{K}}}
-\newcommand\rvL{{\RandomVector{L}}}
-\newcommand\rvM{{\RandomVector{M}}}
-\newcommand\rvN{{\RandomVector{N}}}
-\newcommand\rvO{{\RandomVector{O}}}
-\newcommand\rvP{{\RandomVector{P}}}
-\newcommand\rvQ{{\RandomVector{Q}}}
-\newcommand\rvR{{\RandomVector{R}}}
-\newcommand\rvS{{\RandomVector{S}}}
-\newcommand\rvT{{\RandomVector{T}}}
-\newcommand\rvU{{\RandomVector{U}}}
-\newcommand\rvV{{\RandomVector{V}}}
-\newcommand\rvW{{\RandomVector{W}}}
-\newcommand\rvX{{\RandomVector{X}}}
-\newcommand\rvY{{\RandomVector{Y}}}
-\newcommand\rvZ{{\RandomVector{Z}}}
-
-\newcommand\laplace{\mathrm{Laplace}} % Laplace distribution
-
-\newcommand\E{\mathbb{E}}
-\newcommand\Ls{\mathcal{L}}
-\newcommand\R{\mathbb{R}}
-\newcommand\emp{\tilde{p}}
-\newcommand\lr{\alpha}
-\newcommand\reg{\lambda}
-\newcommand\rect{\mathrm{rectifier}}
-\newcommand\softmax{\mathrm{softmax}}
-\newcommand\sigmoid{\sigma}
-\newcommand\softplus{\zeta}
-\newcommand\KL{D_{\mathrm{KL}}}
-\newcommand\Var{\mathrm{Var}}
-\newcommand\standarderror{\mathrm{SE}}
-\newcommand\Cov{\mathrm{Cov}}
-% Wolfram Mathworld says $L^2$ is for function spaces and $\ell^2$ is for vectors
-% But then they seem to use $L^2$ for vectors throughout the site, and so does
-% wikipedia.
-\newcommand\normlzero{L^0}
-\newcommand\normlone{L^1}
-\newcommand\normltwo{L^2}
-\newcommand\normlp{L^p}
-\newcommand\normmax{L^\infty}
-
-\DeclareMathOperator*{\argmax}{arg\,max}
-\DeclareMathOperator*{\argmin}{arg\,min}
-
-\DeclareMathOperator{\sign}{sign}
-\DeclareMathOperator{\Tr}{Tr}
-\let\ab\allowbreak
diff --git a/macros/latex/contrib/thuthesis/spine.pdf b/macros/latex/contrib/thuthesis/spine.pdf
index dabd941d2c..f4e9ef526e 100644
--- a/macros/latex/contrib/thuthesis/spine.pdf
+++ b/macros/latex/contrib/thuthesis/spine.pdf
Binary files differ
diff --git a/macros/latex/contrib/thuthesis/thusetup.tex b/macros/latex/contrib/thuthesis/thusetup.tex
index c1545ad811..bba4722092 100644
--- a/macros/latex/contrib/thuthesis/thusetup.tex
+++ b/macros/latex/contrib/thuthesis/thusetup.tex
@@ -89,11 +89,11 @@
%
include-spine = false,
%
- % 生成的声明页是否要插入页码(默认 false)
+ % 生成的声明页是否要插入页眉和页脚(默认 empty)
% 仅在需要进行电子签名时,才需要打开这一选项
- % 插入的扫描声明页总是会有页码,不受这一选项影响
+ % 插入的扫描声明页总是会生成页眉(研究生)和页脚,不受这一选项影响
%
- statement-page-number = false,
+ % statement-page-style = plain,
%
% 密级和年限
% 秘密, 机密, 绝密
@@ -126,9 +126,6 @@
\usepackage{threeparttable}
\pretocmd{\TPTnoteSettings}{\footnotesize}{}{}
-% 表格中的反斜线
-\usepackage{diagbox}
-
% 确定浮动对象的位置,可以使用 H,强制将浮动对象放到这里(可能效果很差)
\usepackage{float}
@@ -148,29 +145,26 @@
% 给自定义的宏后面自动加空白
% \usepackage{xspace}
-% 借用 ltxdoc 里面的几个命令。
-\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
-\def\cmd@to@cs#1#2{\char\number`#2\relax}
-\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
-
-\newcommand*{\meta}[1]{{%
- \ensuremath{\langle}\rmfamily\itshape#1\/\ensuremath{\rangle}}}
-\providecommand\marg[1]{%
- {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
-\providecommand\oarg[1]{%
- {\ttfamily[}\meta{#1}{\ttfamily]}}
-\providecommand\parg[1]{%
- {\ttfamily(}\meta{#1}{\ttfamily)}}
-\providecommand\pkg[1]{{\sffamily#1}}
-
% 定义所有的图片文件在 figures 子目录下
\graphicspath{{figures/}}
-% 数学命令
-\input{math_commands.tex}
-
% 定义自己常用的东西
% \def\myname{薛瑞尼}
+% 数学命令
+\newcommand\dif{\mathop{}\!\mathrm{d}} % 微分符号
+\newcommand\real{{\mathbf{R}}} % 实数集
+\newcommand\abs[1]{\lvert#1\rvert}
+\newcommand\VECTOR{\symbf} % 向量
+\newcommand\MATRIX{\symbf} % 矩阵
+\newcommand\vn{{\VECTOR{n}}}
+\newcommand\vx{{\VECTOR{x}}}
+\newcommand\mA{{\MATRIX{A}}}
+\newcommand\mK{{\MATRIX{K}}}
+
+% 借用 ltxdoc 里面的几个命令方便写文档。
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\providecommand\pkg[1]{{\sffamily#1}}
+
% hyperref 宏包在最后调用
\usepackage{hyperref}
diff --git a/macros/latex/contrib/thuthesis/thuthesis-author-year.bst b/macros/latex/contrib/thuthesis/thuthesis-author-year.bst
index 370aa0520f..071d19764f 100644
--- a/macros/latex/contrib/thuthesis/thuthesis-author-year.bst
+++ b/macros/latex/contrib/thuthesis/thuthesis-author-year.bst
@@ -1,5 +1,5 @@
%%
-%% This is file `versions/thu/thuthesis-author-year.bst',
+%% This is file `variants/thu/thuthesis-author-year.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
@@ -8,9 +8,9 @@
%% -------------------------------------------------------------------
%% GB/T 7714-2015 BibTeX Style
%% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2019/03/21 v1.1.1
+%% Version: 2020/06/08 v2.0.2
%% -------------------------------------------------------------------
-%% Copyright (C) 2016-2019 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016-2020 by Zeping Lee <zepinglee AT gmail.com>
%% -------------------------------------------------------------------
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -26,15 +26,23 @@ INTEGERS {
period.between.author.year
sentence.case.title
link.title
+ title.in.journal
show.mark
+ space.before.mark
+ show.medium.type
slash.for.extraction
in.booktitle
- italic.jounal
+ abbreviate.journal
+ italic.journal
bold.journal.volume
show.missing.address.publisher
+ only.start.page
+ show.urldate
show.url
show.doi
+ show.preprint
show.note
+ show.english.translation
lang.zh.order
lang.ja.order
lang.en.order
@@ -49,15 +57,23 @@ FUNCTION {load.config}
#1 'period.between.author.year :=
#1 'sentence.case.title :=
#0 'link.title :=
+ #1 'title.in.journal :=
#1 'show.mark :=
+ #1 'space.before.mark :=
+ #1 'show.medium.type :=
#1 'slash.for.extraction :=
#0 'in.booktitle :=
- #0 'italic.jounal :=
+ #0 'abbreviate.journal :=
+ #0 'italic.journal :=
#0 'bold.journal.volume :=
#0 'show.missing.address.publisher :=
+ #0 'only.start.page :=
+ #1 'show.urldate :=
#1 'show.url :=
#0 'show.doi :=
+ #0 'show.preprint :=
#0 'show.note :=
+ #0 'show.english.translation :=
#1 'lang.zh.order :=
#2 'lang.ja.order :=
#3 'lang.en.order :=
@@ -67,12 +83,14 @@ FUNCTION {load.config}
ENTRY
{ address
+ archivePrefix
author
booktitle
date
doi
edition
editor
+ eprint
howpublished
institution
journal
@@ -88,13 +106,14 @@ ENTRY
school
series
title
+ translation
translator
url
urldate
volume
year
}
- { entry.lang entry.is.electronic entry.numbered }
+ { entry.lang entry.is.electronic is.pure.electronic entry.numbered }
{ label extra.label sort.label short.list entry.mark entry.url }
INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash }
@@ -270,6 +289,12 @@ FUNCTION {output.check}
FUNCTION {fin.entry}
{ add.period$
write$
+ show.english.translation entry.lang lang.zh = and
+ { ")"
+ write$
+ }
+ 'skip$
+ if$
newline$
}
@@ -474,15 +499,20 @@ FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
+ ""
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+ nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
nameptr max.num.authors >
- { bbl.et.al
+ { bbl.et.al *
#1 'namesleft :=
}
{ t "others" =
- { bbl.et.al }
+ { bbl.et.al * }
{ t get.str.lang 'name.lang :=
name.lang lang.en =
{ t #1 "{vv~}{ll}{~f{~}}" format.name$
@@ -494,14 +524,11 @@ FUNCTION {format.names}
}
{ t #1 "{ll}{ff}" format.name$ }
if$
+ *
}
if$
}
if$
- nameptr #1 >
- { ", " swap$ * * }
- 'skip$
- if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
@@ -861,12 +888,51 @@ FUNCTION {format.series.vol.num.booktitle}
if$
}
-FUNCTION {format.journal}
-{ journal
- italic.jounal entry.lang lang.en = and
- 'italicize
+FUNCTION {remove.period}
+{ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$ 'tmp.str :=
+ tmp.str "." = not
+ { s tmp.str * 's := }
+ 'skip$
+ if$
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ s
+}
+
+FUNCTION {abbreviate}
+{ remove.period
+ 't :=
+ t "l" change.case$ 's :=
+ ""
+ s "physical review letters" =
+ { "Phys Rev Lett" }
'skip$
if$
+ 's :=
+ s empty$
+ { t }
+ { pop$ s }
+ if$
+}
+
+FUNCTION {format.journal}
+{ journal empty$ not
+ { journal
+ abbreviate.journal
+ 'abbreviate
+ 'skip$
+ if$
+ italic.journal entry.lang lang.en = and
+ 'italicize
+ 'skip$
+ if$
+ }
+ { "" }
+ if$
}
FUNCTION {set.entry.mark}
@@ -885,15 +951,24 @@ FUNCTION {format.mark}
type$ "phdthesis" = type$ "mastersthesis" = or type$ "patent" = or
medium empty$ not or entry.is.electronic or
and
- { medium empty$ not
- { entry.mark "/" * medium * 'entry.mark := }
- { entry.is.electronic
- { entry.mark "/OL" * 'entry.mark := }
- 'skip$
+ { entry.mark
+ show.medium.type
+ { medium empty$ not
+ { "/" * medium * }
+ { entry.is.electronic
+ { "/OL" * }
+ 'skip$
+ if$
+ }
if$
}
+ 'skip$
+ if$
+ 'entry.mark :=
+ space.before.mark
+ { " [" entry.mark * "]" * }
+ { "\allowbreak[" entry.mark * "]" * }
if$
- " [" entry.mark * "]" *
}
{ "" }
if$
@@ -1075,7 +1150,9 @@ FUNCTION {format.editdate}
}
FUNCTION {format.urldate}
-{ urldate empty$ not entry.is.electronic and
+{ urldate empty$ not
+ show.urldate show.url and is.pure.electronic or and
+ url empty$ not and
{ "\allowbreak[" urldate * "]" * }
{ "" }
if$
@@ -1106,6 +1183,18 @@ FUNCTION {format.pages}
if$
}
+FUNCTION {format.extracted.pages}
+{ pages empty$
+ { "" }
+ { pages
+ only.start.page
+ 'extract.before.dash
+ 'hyphenate
+ if$
+ }
+ if$
+}
+
FUNCTION {format.journal.volume}
{ volume empty$ not
{ bold.journal.volume
@@ -1127,7 +1216,9 @@ FUNCTION {format.journal.number}
FUNCTION {format.journal.pages}
{ pages empty$
{ "" }
- { ":\penalty0 " pages hyphenate * }
+ { ": "
+ format.extracted.pages *
+ }
if$
}
@@ -1199,9 +1290,15 @@ FUNCTION {check.url}
}
FUNCTION {format.url}
+{ entry.url
+}
+
+FUNCTION {output.url}
{ entry.url empty$ not
- { new.block entry.url }
- { "" }
+ { new.block
+ entry.url output
+ }
+ 'skip$
if$
}
@@ -1235,7 +1332,7 @@ FUNCTION {is.in.url}
FUNCTION {format.doi}
{ ""
- doi empty$ not show.doi and
+ doi empty$ not
{ "" 's :=
doi 't :=
#0 'numnames :=
@@ -1263,11 +1360,16 @@ FUNCTION {format.doi}
t #2 global.max$ substring$ 't :=
}
while$
- 's :=
- s empty$ not
- { new.block s }
- { "" }
- if$
+ }
+ 'skip$
+ if$
+}
+
+FUNCTION {output.doi}
+{ doi empty$ not show.doi and
+ show.english.translation entry.lang lang.zh = and not and
+ { new.block
+ format.doi output
}
'skip$
if$
@@ -1292,6 +1394,27 @@ FUNCTION {check.electronic}
if$
}
+FUNCTION {format.eprint}
+{ ""
+ archivePrefix empty$ not
+ { archivePrefix * ": " *
+ "\eprint{https://" *
+ archivePrefix "l" change.case$ * ".org/abs/" * eprint * "}{" *
+ eprint * "}" *
+ }
+ { eprint }
+ if$
+}
+
+FUNCTION {output.eprint}
+{ show.preprint eprint empty$ not and
+ { new.block
+ format.eprint output
+ }
+ 'skip$
+ if$
+}
+
FUNCTION {format.note}
{ note empty$ not show.note and
{ note }
@@ -1299,6 +1422,30 @@ FUNCTION {format.note}
if$
}
+FUNCTION {output.translation}
+{ show.english.translation entry.lang lang.zh = and
+ { translation empty$ not
+ { translation }
+ { "[English translation missing!]" }
+ if$
+ " (in Chinese)" * output
+ write$
+ format.doi duplicate$ empty$ not
+ { newline$
+ write$
+ }
+ 'pop$
+ if$
+ " \\" write$
+ newline$
+ "(" write$
+ ""
+ before.all 'output.state :=
+ }
+ 'skip$
+ if$
+}
+
FUNCTION {empty.misc.check}
{ author empty$ title empty$
year empty$
@@ -1311,6 +1458,7 @@ FUNCTION {empty.misc.check}
FUNCTION {monograph}
{ output.bibitem
+ output.translation
author empty$ not
{ format.authors }
{ editor empty$ not
@@ -1339,8 +1487,8 @@ FUNCTION {monograph}
format.address.publisher output
format.pages bbl.colon output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1348,6 +1496,7 @@ FUNCTION {monograph}
FUNCTION {incollection}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
period.between.author.year
@@ -1369,10 +1518,10 @@ FUNCTION {incollection}
format.edition output
new.block
format.address.publisher output
- format.pages bbl.colon output.after
+ format.extracted.pages bbl.colon output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1380,6 +1529,7 @@ FUNCTION {incollection}
FUNCTION {periodical}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
period.between.author.year
@@ -1396,8 +1546,8 @@ FUNCTION {periodical}
new.block
format.address.publisher output
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1405,6 +1555,7 @@ FUNCTION {periodical}
FUNCTION {article}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
period.between.author.year
@@ -1413,17 +1564,21 @@ FUNCTION {article}
if$
format.year "year" output.check
new.block
- format.title "title" output.check
- "J" set.entry.mark
- format.mark "" output.after
- new.block
+ title.in.journal
+ { format.title "title" output.check
+ "J" set.entry.mark
+ format.mark "" output.after
+ new.block
+ }
+ 'skip$
+ if$
format.journal "journal" output.check
format.journal.volume output
format.journal.number "" output.after
format.journal.pages "" output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1431,6 +1586,7 @@ FUNCTION {article}
FUNCTION {patent}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
period.between.author.year
@@ -1445,8 +1601,8 @@ FUNCTION {patent}
new.block
format.date "year" output.check
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1455,7 +1611,9 @@ FUNCTION {patent}
FUNCTION {electronic}
{ #1 #1 check.electronic
#1 'entry.is.electronic :=
+ #1 'is.pure.electronic :=
output.bibitem
+ output.translation
format.authors output
author format.key output
period.between.author.year
@@ -1472,8 +1630,49 @@ FUNCTION {electronic}
format.pages bbl.colon output.after
format.editdate "" output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {preprint}
+{ output.bibitem
+ output.translation
+ author empty$ not
+ { format.authors }
+ { editor empty$ not
+ { format.editors }
+ { "empty author and editor in " cite$ * warning$
+ bbl.anonymous
+ }
+ if$
+ }
+ if$
+ output
+ period.between.author.year
+ 'new.sentence
+ 'skip$
+ if$
+ format.year "year" output.check
+ new.block
+ title.in.journal
+ { format.series.vol.num.title "title" output.check
+ "Z" set.entry.mark
+ format.mark "" output.after
+ new.block
+ }
+ 'skip$
+ if$
+ format.translators output
+ new.sentence
+ format.edition output
+ new.block
+ output.eprint
+ format.pages bbl.colon output.after
+ format.urldate "" output.after
+ output.url
new.block
format.note output
fin.entry
@@ -1486,10 +1685,14 @@ FUNCTION {misc}
'incollection
{ publisher empty$ not
'monograph
- { entry.is.electronic
- 'electronic
- { "Z" set.entry.mark
- monograph
+ { eprint empty$ not show.preprint and
+ 'preprint
+ { entry.is.electronic
+ 'electronic
+ { "Z" set.entry.mark
+ monograph
+ }
+ if$
}
if$
}
@@ -1589,10 +1792,7 @@ FUNCTION {techreport}
misc
}
-FUNCTION {unpublished}
-{ "Z" set.entry.mark
- misc
-}
+FUNCTION {unpublished} { misc }
FUNCTION {default.type} { misc }
@@ -1918,6 +2118,7 @@ FUNCTION {presort}
{ set.entry.lang
set.entry.numbered
show.url show.doi check.electronic
+ #0 'is.pure.electronic :=
calc.label
label sortify
" "
@@ -2007,19 +2208,25 @@ FUNCTION {begin.bib}
write$ newline$
"\providecommand{\url}[1]{#1}"
write$ newline$
- "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
+ "\expandafter\ifx\csname urlstyle\endcsname\relax\else"
write$ newline$
" \urlstyle{same}\fi"
write$ newline$
- show.doi
- { "\providecommand{\href}[2]{\url{#2}}"
+ "\expandafter\ifx\csname href\endcsname\relax"
+ write$ newline$
+ " \DeclareUrlCommand\doi{\urlstyle{rm}}"
+ write$ newline$
+ " \def\eprint#1#2{#2}"
+ write$ newline$
+ "\else"
+ write$ newline$
+ " \def\doi#1{\href{https://doi.org/#1}{\nolinkurl{#1}}}"
+ write$ newline$
+ " \let\eprint\href"
write$ newline$
- "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
+ "\fi"
write$ newline$
}
- 'skip$
- if$
-}
FUNCTION {end.bib}
{ newline$
diff --git a/macros/latex/contrib/thuthesis/thuthesis-bachelor.bst b/macros/latex/contrib/thuthesis/thuthesis-bachelor.bst
index 412acbe2c2..bb91ba5c09 100644
--- a/macros/latex/contrib/thuthesis/thuthesis-bachelor.bst
+++ b/macros/latex/contrib/thuthesis/thuthesis-bachelor.bst
@@ -1,5 +1,5 @@
%%
-%% This is file `versions/thu/thuthesis-bachelor.bst',
+%% This is file `variants/thu/thuthesis-bachelor.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
@@ -8,9 +8,9 @@
%% -------------------------------------------------------------------
%% GB/T 7714-2015 BibTeX Style
%% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2019/03/21 v1.1.1
+%% Version: 2020/06/08 v2.0.2
%% -------------------------------------------------------------------
-%% Copyright (C) 2016-2019 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016-2020 by Zeping Lee <zepinglee AT gmail.com>
%% -------------------------------------------------------------------
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -26,15 +26,23 @@ INTEGERS {
period.between.author.year
sentence.case.title
link.title
+ title.in.journal
show.mark
+ space.before.mark
+ show.medium.type
slash.for.extraction
in.booktitle
- italic.jounal
+ abbreviate.journal
+ italic.journal
bold.journal.volume
show.missing.address.publisher
+ only.start.page
+ show.urldate
show.url
show.doi
+ show.preprint
show.note
+ show.english.translation
}
FUNCTION {load.config}
@@ -43,25 +51,35 @@ FUNCTION {load.config}
#3 'max.num.authors :=
#1 'sentence.case.title :=
#0 'link.title :=
+ #1 'title.in.journal :=
#1 'show.mark :=
+ #1 'space.before.mark :=
+ #1 'show.medium.type :=
#1 'slash.for.extraction :=
#0 'in.booktitle :=
- #0 'italic.jounal :=
+ #0 'abbreviate.journal :=
+ #0 'italic.journal :=
#0 'bold.journal.volume :=
#0 'show.missing.address.publisher :=
+ #0 'only.start.page :=
+ #1 'show.urldate :=
#1 'show.url :=
#1 'show.doi :=
+ #0 'show.preprint :=
#0 'show.note :=
+ #0 'show.english.translation :=
}
ENTRY
{ address
+ archivePrefix
author
booktitle
date
doi
edition
editor
+ eprint
howpublished
institution
journal
@@ -77,13 +95,14 @@ ENTRY
school
series
title
+ translation
translator
url
urldate
volume
year
}
- { entry.lang entry.is.electronic entry.numbered }
+ { entry.lang entry.is.electronic is.pure.electronic entry.numbered }
{ label extra.label sort.label short.list entry.mark entry.url }
INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash }
@@ -259,6 +278,12 @@ FUNCTION {output.check}
FUNCTION {fin.entry}
{ add.period$
write$
+ show.english.translation entry.lang lang.zh = and
+ { ")"
+ write$
+ }
+ 'skip$
+ if$
newline$
}
@@ -463,15 +488,20 @@ FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
+ ""
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+ nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
nameptr max.num.authors >
- { bbl.et.al
+ { bbl.et.al *
#1 'namesleft :=
}
{ t "others" =
- { bbl.et.al }
+ { bbl.et.al * }
{ t get.str.lang 'name.lang :=
name.lang lang.en =
{ t #1 "{vv~}{ll}{~f{~}}" format.name$
@@ -483,14 +513,11 @@ FUNCTION {format.names}
}
{ t #1 "{ll}{ff}" format.name$ }
if$
+ *
}
if$
}
if$
- nameptr #1 >
- { ", " swap$ * * }
- 'skip$
- if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
@@ -850,12 +877,51 @@ FUNCTION {format.series.vol.num.booktitle}
if$
}
-FUNCTION {format.journal}
-{ journal
- italic.jounal entry.lang lang.en = and
- 'italicize
+FUNCTION {remove.period}
+{ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$ 'tmp.str :=
+ tmp.str "." = not
+ { s tmp.str * 's := }
+ 'skip$
+ if$
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ s
+}
+
+FUNCTION {abbreviate}
+{ remove.period
+ 't :=
+ t "l" change.case$ 's :=
+ ""
+ s "physical review letters" =
+ { "Phys Rev Lett" }
'skip$
if$
+ 's :=
+ s empty$
+ { t }
+ { pop$ s }
+ if$
+}
+
+FUNCTION {format.journal}
+{ journal empty$ not
+ { journal
+ abbreviate.journal
+ 'abbreviate
+ 'skip$
+ if$
+ italic.journal entry.lang lang.en = and
+ 'italicize
+ 'skip$
+ if$
+ }
+ { "" }
+ if$
}
FUNCTION {set.entry.mark}
@@ -871,15 +937,24 @@ FUNCTION {set.entry.mark}
FUNCTION {format.mark}
{ show.mark
- { medium empty$ not
- { entry.mark "/" * medium * 'entry.mark := }
- { entry.is.electronic
- { entry.mark "/OL" * 'entry.mark := }
- 'skip$
+ { entry.mark
+ show.medium.type
+ { medium empty$ not
+ { "/" * medium * }
+ { entry.is.electronic
+ { "/OL" * }
+ 'skip$
+ if$
+ }
if$
}
+ 'skip$
+ if$
+ 'entry.mark :=
+ space.before.mark
+ { " [" entry.mark * "]" * }
+ { "\allowbreak[" entry.mark * "]" * }
if$
- "\allowbreak[" entry.mark * "]" *
}
{ "" }
if$
@@ -1061,7 +1136,9 @@ FUNCTION {format.editdate}
}
FUNCTION {format.urldate}
-{ urldate empty$ not entry.is.electronic and
+{ urldate empty$ not
+ show.urldate show.url and is.pure.electronic or and
+ url empty$ not and
{ "\allowbreak[" urldate * "]" * }
{ "" }
if$
@@ -1092,6 +1169,18 @@ FUNCTION {format.pages}
if$
}
+FUNCTION {format.extracted.pages}
+{ pages empty$
+ { "" }
+ { pages
+ only.start.page
+ 'extract.before.dash
+ 'hyphenate
+ if$
+ }
+ if$
+}
+
FUNCTION {format.journal.volume}
{ volume empty$ not
{ bold.journal.volume
@@ -1113,7 +1202,9 @@ FUNCTION {format.journal.number}
FUNCTION {format.journal.pages}
{ pages empty$
{ "" }
- { ":\penalty0 " pages hyphenate * }
+ { ": "
+ format.extracted.pages *
+ }
if$
}
@@ -1185,9 +1276,15 @@ FUNCTION {check.url}
}
FUNCTION {format.url}
+{ entry.url
+}
+
+FUNCTION {output.url}
{ entry.url empty$ not
- { new.block entry.url }
- { "" }
+ { new.block
+ entry.url output
+ }
+ 'skip$
if$
}
@@ -1221,7 +1318,7 @@ FUNCTION {is.in.url}
FUNCTION {format.doi}
{ ""
- doi empty$ not show.doi and
+ doi empty$ not
{ "" 's :=
doi 't :=
#0 'numnames :=
@@ -1249,11 +1346,16 @@ FUNCTION {format.doi}
t #2 global.max$ substring$ 't :=
}
while$
- 's :=
- s empty$ not
- { new.block s }
- { "" }
- if$
+ }
+ 'skip$
+ if$
+}
+
+FUNCTION {output.doi}
+{ doi empty$ not show.doi and
+ show.english.translation entry.lang lang.zh = and not and
+ { new.block
+ format.doi output
}
'skip$
if$
@@ -1278,6 +1380,27 @@ FUNCTION {check.electronic}
if$
}
+FUNCTION {format.eprint}
+{ ""
+ archivePrefix empty$ not
+ { archivePrefix * ": " *
+ "\eprint{https://" *
+ archivePrefix "l" change.case$ * ".org/abs/" * eprint * "}{" *
+ eprint * "}" *
+ }
+ { eprint }
+ if$
+}
+
+FUNCTION {output.eprint}
+{ show.preprint eprint empty$ not and
+ { new.block
+ format.eprint output
+ }
+ 'skip$
+ if$
+}
+
FUNCTION {format.note}
{ note empty$ not show.note and
{ note }
@@ -1285,6 +1408,30 @@ FUNCTION {format.note}
if$
}
+FUNCTION {output.translation}
+{ show.english.translation entry.lang lang.zh = and
+ { translation empty$ not
+ { translation }
+ { "[English translation missing!]" }
+ if$
+ " (in Chinese)" * output
+ write$
+ format.doi duplicate$ empty$ not
+ { newline$
+ write$
+ }
+ 'pop$
+ if$
+ " \\" write$
+ newline$
+ "(" write$
+ ""
+ before.all 'output.state :=
+ }
+ 'skip$
+ if$
+}
+
FUNCTION {empty.misc.check}
{ author empty$ title empty$
year empty$
@@ -1297,6 +1444,7 @@ FUNCTION {empty.misc.check}
FUNCTION {monograph}
{ output.bibitem
+ output.translation
author empty$ not
{ format.authors }
{ editor empty$ not
@@ -1321,8 +1469,8 @@ FUNCTION {monograph}
format.year "year" output.check
format.pages bbl.colon output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1330,6 +1478,7 @@ FUNCTION {monograph}
FUNCTION {incollection}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
@@ -1347,10 +1496,10 @@ FUNCTION {incollection}
new.block
format.address.publisher output
format.year "year" output.check
- format.pages bbl.colon output.after
+ format.extracted.pages bbl.colon output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1358,6 +1507,7 @@ FUNCTION {incollection}
FUNCTION {periodical}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
@@ -1370,8 +1520,8 @@ FUNCTION {periodical}
format.address.publisher output
format.date "year" output.check
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1379,21 +1529,26 @@ FUNCTION {periodical}
FUNCTION {article}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
- format.title "title" output.check
- "J" set.entry.mark
- format.mark "" output.after
- new.block
+ title.in.journal
+ { format.title "title" output.check
+ "J" set.entry.mark
+ format.mark "" output.after
+ new.block
+ }
+ 'skip$
+ if$
format.journal "journal" output.check
format.date "year" output.check
format.journal.volume output
format.journal.number "" output.after
format.journal.pages "" output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1401,6 +1556,7 @@ FUNCTION {article}
FUNCTION {patent}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
@@ -1410,8 +1566,8 @@ FUNCTION {patent}
new.block
format.date "year" output.check
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1420,7 +1576,9 @@ FUNCTION {patent}
FUNCTION {electronic}
{ #1 #1 check.electronic
#1 'entry.is.electronic :=
+ #1 'is.pure.electronic :=
output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
@@ -1436,8 +1594,45 @@ FUNCTION {electronic}
format.pages bbl.colon output.after
format.editdate "" output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {preprint}
+{ output.bibitem
+ output.translation
+ author empty$ not
+ { format.authors }
+ { editor empty$ not
+ { format.editors }
+ { "empty author and editor in " cite$ * warning$
+ ""
+ }
+ if$
+ }
+ if$
+ output
+ new.block
+ title.in.journal
+ { format.series.vol.num.title "title" output.check
+ "Z" set.entry.mark
+ format.mark "" output.after
+ new.block
+ }
+ 'skip$
+ if$
+ format.translators output
+ new.sentence
+ format.edition output
+ new.block
+ output.eprint
+ format.year "year" output.check
+ format.pages bbl.colon output.after
+ format.urldate "" output.after
+ output.url
new.block
format.note output
fin.entry
@@ -1450,10 +1645,14 @@ FUNCTION {misc}
'incollection
{ publisher empty$ not
'monograph
- { entry.is.electronic
- 'electronic
- { "Z" set.entry.mark
- monograph
+ { eprint empty$ not show.preprint and
+ 'preprint
+ { entry.is.electronic
+ 'electronic
+ { "Z" set.entry.mark
+ monograph
+ }
+ if$
}
if$
}
@@ -1542,10 +1741,7 @@ FUNCTION {techreport}
misc
}
-FUNCTION {unpublished}
-{ "Z" set.entry.mark
- misc
-}
+FUNCTION {unpublished} { misc }
FUNCTION {default.type} { misc }
@@ -1746,6 +1942,7 @@ FUNCTION {presort}
{ set.entry.lang
set.entry.numbered
show.url show.doi check.electronic
+ #0 'is.pure.electronic :=
calc.label
label sortify
" "
@@ -1814,19 +2011,25 @@ FUNCTION {begin.bib}
write$ newline$
"\providecommand{\url}[1]{#1}"
write$ newline$
- "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
+ "\expandafter\ifx\csname urlstyle\endcsname\relax\else"
write$ newline$
" \urlstyle{same}\fi"
write$ newline$
- show.doi
- { "\providecommand{\href}[2]{\url{#2}}"
+ "\expandafter\ifx\csname href\endcsname\relax"
+ write$ newline$
+ " \DeclareUrlCommand\doi{\urlstyle{rm}}"
+ write$ newline$
+ " \def\eprint#1#2{#2}"
+ write$ newline$
+ "\else"
+ write$ newline$
+ " \def\doi#1{\href{https://doi.org/#1}{\nolinkurl{#1}}}"
+ write$ newline$
+ " \let\eprint\href"
write$ newline$
- "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
+ "\fi"
write$ newline$
}
- 'skip$
- if$
-}
FUNCTION {end.bib}
{ newline$
diff --git a/macros/latex/contrib/thuthesis/thuthesis-example.pdf b/macros/latex/contrib/thuthesis/thuthesis-example.pdf
index 5fff934faf..7b6a0b2a4c 100644
--- a/macros/latex/contrib/thuthesis/thuthesis-example.pdf
+++ b/macros/latex/contrib/thuthesis/thuthesis-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/thuthesis/thuthesis-numeric.bst b/macros/latex/contrib/thuthesis/thuthesis-numeric.bst
index c8cd10f4b8..234b065a7d 100644
--- a/macros/latex/contrib/thuthesis/thuthesis-numeric.bst
+++ b/macros/latex/contrib/thuthesis/thuthesis-numeric.bst
@@ -1,5 +1,5 @@
%%
-%% This is file `versions/thu/thuthesis-numeric.bst',
+%% This is file `variants/thu/thuthesis-numeric.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
@@ -8,9 +8,9 @@
%% -------------------------------------------------------------------
%% GB/T 7714-2015 BibTeX Style
%% https://github.com/CTeX-org/gbt7714-bibtex-style
-%% Version: 2019/03/21 v1.1.1
+%% Version: 2020/06/08 v2.0.2
%% -------------------------------------------------------------------
-%% Copyright (C) 2016-2019 by Zeping Lee <zepinglee AT gmail.com>
+%% Copyright (C) 2016-2020 by Zeping Lee <zepinglee AT gmail.com>
%% -------------------------------------------------------------------
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -26,15 +26,23 @@ INTEGERS {
period.between.author.year
sentence.case.title
link.title
+ title.in.journal
show.mark
+ space.before.mark
+ show.medium.type
slash.for.extraction
in.booktitle
- italic.jounal
+ abbreviate.journal
+ italic.journal
bold.journal.volume
show.missing.address.publisher
+ only.start.page
+ show.urldate
show.url
show.doi
+ show.preprint
show.note
+ show.english.translation
}
FUNCTION {load.config}
@@ -43,25 +51,35 @@ FUNCTION {load.config}
#3 'max.num.authors :=
#1 'sentence.case.title :=
#0 'link.title :=
+ #1 'title.in.journal :=
#1 'show.mark :=
+ #1 'space.before.mark :=
+ #1 'show.medium.type :=
#1 'slash.for.extraction :=
#0 'in.booktitle :=
- #0 'italic.jounal :=
+ #0 'abbreviate.journal :=
+ #0 'italic.journal :=
#0 'bold.journal.volume :=
#0 'show.missing.address.publisher :=
+ #0 'only.start.page :=
+ #1 'show.urldate :=
#1 'show.url :=
#0 'show.doi :=
+ #0 'show.preprint :=
#0 'show.note :=
+ #0 'show.english.translation :=
}
ENTRY
{ address
+ archivePrefix
author
booktitle
date
doi
edition
editor
+ eprint
howpublished
institution
journal
@@ -77,13 +95,14 @@ ENTRY
school
series
title
+ translation
translator
url
urldate
volume
year
}
- { entry.lang entry.is.electronic entry.numbered }
+ { entry.lang entry.is.electronic is.pure.electronic entry.numbered }
{ label extra.label sort.label short.list entry.mark entry.url }
INTEGERS { output.state before.all mid.sentence after.sentence after.block after.slash }
@@ -259,6 +278,12 @@ FUNCTION {output.check}
FUNCTION {fin.entry}
{ add.period$
write$
+ show.english.translation entry.lang lang.zh = and
+ { ")"
+ write$
+ }
+ 'skip$
+ if$
newline$
}
@@ -463,15 +488,20 @@ FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
+ ""
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
+ nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
nameptr max.num.authors >
- { bbl.et.al
+ { bbl.et.al *
#1 'namesleft :=
}
{ t "others" =
- { bbl.et.al }
+ { bbl.et.al * }
{ t get.str.lang 'name.lang :=
name.lang lang.en =
{ t #1 "{vv~}{ll}{~f{~}}" format.name$
@@ -483,14 +513,11 @@ FUNCTION {format.names}
}
{ t #1 "{ll}{ff}" format.name$ }
if$
+ *
}
if$
}
if$
- nameptr #1 >
- { ", " swap$ * * }
- 'skip$
- if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
@@ -850,12 +877,51 @@ FUNCTION {format.series.vol.num.booktitle}
if$
}
-FUNCTION {format.journal}
-{ journal
- italic.jounal entry.lang lang.en = and
- 'italicize
+FUNCTION {remove.period}
+{ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$ 'tmp.str :=
+ tmp.str "." = not
+ { s tmp.str * 's := }
+ 'skip$
+ if$
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ s
+}
+
+FUNCTION {abbreviate}
+{ remove.period
+ 't :=
+ t "l" change.case$ 's :=
+ ""
+ s "physical review letters" =
+ { "Phys Rev Lett" }
'skip$
if$
+ 's :=
+ s empty$
+ { t }
+ { pop$ s }
+ if$
+}
+
+FUNCTION {format.journal}
+{ journal empty$ not
+ { journal
+ abbreviate.journal
+ 'abbreviate
+ 'skip$
+ if$
+ italic.journal entry.lang lang.en = and
+ 'italicize
+ 'skip$
+ if$
+ }
+ { "" }
+ if$
}
FUNCTION {set.entry.mark}
@@ -874,15 +940,24 @@ FUNCTION {format.mark}
type$ "phdthesis" = type$ "mastersthesis" = or type$ "patent" = or
medium empty$ not or entry.is.electronic or
and
- { medium empty$ not
- { entry.mark "/" * medium * 'entry.mark := }
- { entry.is.electronic
- { entry.mark "/OL" * 'entry.mark := }
- 'skip$
+ { entry.mark
+ show.medium.type
+ { medium empty$ not
+ { "/" * medium * }
+ { entry.is.electronic
+ { "/OL" * }
+ 'skip$
+ if$
+ }
if$
}
+ 'skip$
+ if$
+ 'entry.mark :=
+ space.before.mark
+ { " [" entry.mark * "]" * }
+ { "\allowbreak[" entry.mark * "]" * }
if$
- " [" entry.mark * "]" *
}
{ "" }
if$
@@ -1064,7 +1139,9 @@ FUNCTION {format.editdate}
}
FUNCTION {format.urldate}
-{ urldate empty$ not entry.is.electronic and
+{ urldate empty$ not
+ show.urldate show.url and is.pure.electronic or and
+ url empty$ not and
{ "\allowbreak[" urldate * "]" * }
{ "" }
if$
@@ -1095,6 +1172,18 @@ FUNCTION {format.pages}
if$
}
+FUNCTION {format.extracted.pages}
+{ pages empty$
+ { "" }
+ { pages
+ only.start.page
+ 'extract.before.dash
+ 'hyphenate
+ if$
+ }
+ if$
+}
+
FUNCTION {format.journal.volume}
{ volume empty$ not
{ bold.journal.volume
@@ -1116,7 +1205,9 @@ FUNCTION {format.journal.number}
FUNCTION {format.journal.pages}
{ pages empty$
{ "" }
- { ":\penalty0 " pages hyphenate * }
+ { ": "
+ format.extracted.pages *
+ }
if$
}
@@ -1188,9 +1279,15 @@ FUNCTION {check.url}
}
FUNCTION {format.url}
+{ entry.url
+}
+
+FUNCTION {output.url}
{ entry.url empty$ not
- { new.block entry.url }
- { "" }
+ { new.block
+ entry.url output
+ }
+ 'skip$
if$
}
@@ -1224,7 +1321,7 @@ FUNCTION {is.in.url}
FUNCTION {format.doi}
{ ""
- doi empty$ not show.doi and
+ doi empty$ not
{ "" 's :=
doi 't :=
#0 'numnames :=
@@ -1252,11 +1349,16 @@ FUNCTION {format.doi}
t #2 global.max$ substring$ 't :=
}
while$
- 's :=
- s empty$ not
- { new.block s }
- { "" }
- if$
+ }
+ 'skip$
+ if$
+}
+
+FUNCTION {output.doi}
+{ doi empty$ not show.doi and
+ show.english.translation entry.lang lang.zh = and not and
+ { new.block
+ format.doi output
}
'skip$
if$
@@ -1281,6 +1383,27 @@ FUNCTION {check.electronic}
if$
}
+FUNCTION {format.eprint}
+{ ""
+ archivePrefix empty$ not
+ { archivePrefix * ": " *
+ "\eprint{https://" *
+ archivePrefix "l" change.case$ * ".org/abs/" * eprint * "}{" *
+ eprint * "}" *
+ }
+ { eprint }
+ if$
+}
+
+FUNCTION {output.eprint}
+{ show.preprint eprint empty$ not and
+ { new.block
+ format.eprint output
+ }
+ 'skip$
+ if$
+}
+
FUNCTION {format.note}
{ note empty$ not show.note and
{ note }
@@ -1288,6 +1411,30 @@ FUNCTION {format.note}
if$
}
+FUNCTION {output.translation}
+{ show.english.translation entry.lang lang.zh = and
+ { translation empty$ not
+ { translation }
+ { "[English translation missing!]" }
+ if$
+ " (in Chinese)" * output
+ write$
+ format.doi duplicate$ empty$ not
+ { newline$
+ write$
+ }
+ 'pop$
+ if$
+ " \\" write$
+ newline$
+ "(" write$
+ ""
+ before.all 'output.state :=
+ }
+ 'skip$
+ if$
+}
+
FUNCTION {empty.misc.check}
{ author empty$ title empty$
year empty$
@@ -1300,6 +1447,7 @@ FUNCTION {empty.misc.check}
FUNCTION {monograph}
{ output.bibitem
+ output.translation
author empty$ not
{ format.authors }
{ editor empty$ not
@@ -1324,8 +1472,8 @@ FUNCTION {monograph}
format.year "year" output.check
format.pages bbl.colon output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1333,6 +1481,7 @@ FUNCTION {monograph}
FUNCTION {incollection}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
@@ -1350,10 +1499,10 @@ FUNCTION {incollection}
new.block
format.address.publisher output
format.year "year" output.check
- format.pages bbl.colon output.after
+ format.extracted.pages bbl.colon output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1361,6 +1510,7 @@ FUNCTION {incollection}
FUNCTION {periodical}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
@@ -1373,8 +1523,8 @@ FUNCTION {periodical}
format.address.publisher output
format.date "year" output.check
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1382,21 +1532,26 @@ FUNCTION {periodical}
FUNCTION {article}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
- format.title "title" output.check
- "J" set.entry.mark
- format.mark "" output.after
- new.block
+ title.in.journal
+ { format.title "title" output.check
+ "J" set.entry.mark
+ format.mark "" output.after
+ new.block
+ }
+ 'skip$
+ if$
format.journal "journal" output.check
format.date "year" output.check
format.journal.volume output
format.journal.number "" output.after
format.journal.pages "" output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1404,6 +1559,7 @@ FUNCTION {article}
FUNCTION {patent}
{ output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
@@ -1413,8 +1569,8 @@ FUNCTION {patent}
new.block
format.date "year" output.check
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
new.block
format.note output
fin.entry
@@ -1423,7 +1579,9 @@ FUNCTION {patent}
FUNCTION {electronic}
{ #1 #1 check.electronic
#1 'entry.is.electronic :=
+ #1 'is.pure.electronic :=
output.bibitem
+ output.translation
format.authors output
author format.key output
new.block
@@ -1439,8 +1597,45 @@ FUNCTION {electronic}
format.pages bbl.colon output.after
format.editdate "" output.after
format.urldate "" output.after
- format.url output
- format.doi output
+ output.url
+ output.doi
+ new.block
+ format.note output
+ fin.entry
+}
+
+FUNCTION {preprint}
+{ output.bibitem
+ output.translation
+ author empty$ not
+ { format.authors }
+ { editor empty$ not
+ { format.editors }
+ { "empty author and editor in " cite$ * warning$
+ ""
+ }
+ if$
+ }
+ if$
+ output
+ new.block
+ title.in.journal
+ { format.series.vol.num.title "title" output.check
+ "Z" set.entry.mark
+ format.mark "" output.after
+ new.block
+ }
+ 'skip$
+ if$
+ format.translators output
+ new.sentence
+ format.edition output
+ new.block
+ output.eprint
+ format.year "year" output.check
+ format.pages bbl.colon output.after
+ format.urldate "" output.after
+ output.url
new.block
format.note output
fin.entry
@@ -1453,10 +1648,14 @@ FUNCTION {misc}
'incollection
{ publisher empty$ not
'monograph
- { entry.is.electronic
- 'electronic
- { "Z" set.entry.mark
- monograph
+ { eprint empty$ not show.preprint and
+ 'preprint
+ { entry.is.electronic
+ 'electronic
+ { "Z" set.entry.mark
+ monograph
+ }
+ if$
}
if$
}
@@ -1556,10 +1755,7 @@ FUNCTION {techreport}
misc
}
-FUNCTION {unpublished}
-{ "Z" set.entry.mark
- misc
-}
+FUNCTION {unpublished} { misc }
FUNCTION {default.type} { misc }
@@ -1760,6 +1956,7 @@ FUNCTION {presort}
{ set.entry.lang
set.entry.numbered
show.url show.doi check.electronic
+ #0 'is.pure.electronic :=
calc.label
label sortify
" "
@@ -1828,19 +2025,25 @@ FUNCTION {begin.bib}
write$ newline$
"\providecommand{\url}[1]{#1}"
write$ newline$
- "\expandafter\ifx\csname urlstyle\endcsname\relax\relax\else"
+ "\expandafter\ifx\csname urlstyle\endcsname\relax\else"
write$ newline$
" \urlstyle{same}\fi"
write$ newline$
- show.doi
- { "\providecommand{\href}[2]{\url{#2}}"
+ "\expandafter\ifx\csname href\endcsname\relax"
+ write$ newline$
+ " \DeclareUrlCommand\doi{\urlstyle{rm}}"
+ write$ newline$
+ " \def\eprint#1#2{#2}"
+ write$ newline$
+ "\else"
+ write$ newline$
+ " \def\doi#1{\href{https://doi.org/#1}{\nolinkurl{#1}}}"
+ write$ newline$
+ " \let\eprint\href"
write$ newline$
- "\providecommand{\doi}[1]{\href{https://doi.org/#1}{#1}}"
+ "\fi"
write$ newline$
}
- 'skip$
- if$
-}
FUNCTION {end.bib}
{ newline$
diff --git a/macros/latex/contrib/thuthesis/thuthesis.dtx b/macros/latex/contrib/thuthesis/thuthesis.dtx
index fe1a16b6fa..f96a2d4b72 100644
--- a/macros/latex/contrib/thuthesis/thuthesis.dtx
+++ b/macros/latex/contrib/thuthesis/thuthesis.dtx
@@ -17,7 +17,7 @@
%
% \iffalse
%<*driver>
-\ProvidesFile{thuthesis.dtx}[2020/06/14 6.1.2 Tsinghua University Thesis Template]
+\ProvidesFile{thuthesis.dtx}[2020/07/09 6.1.3 Tsinghua University Thesis Template]
\documentclass{ltxdoc}
\usepackage{dtx-style}
@@ -798,15 +798,15 @@
% 也可以使用 \cs{inlinecite}\marg{key} 临时使用正文模式的引用标注。
%
% \paragraph{著者-出版年制}
-% 著者-出版年制的参考文献引用有三种模式:
+% 著者-出版年制的参考文献引用有两种模式:
% \begin{enumerate}
% \item \cs{citep}:著者与年份均在括号中,比如“(Zhang, 2008)”,
% 同默认的 \cs{cite} 命令;
% \item \cs{citet}:著者姓名作为正文的一部分,比如“Zhang (2008)”;
-% \item \cs{citeyear}:只插入年份,但不含括号,比如“2008”。
% \end{enumerate}
%
-% 关于参考文献引用的更多细节参考 \pkg{natbib} 的文档。
+% 另外还有 \cs{citeauthor}、\cs{citeyear} 等命令分别标注文献的著者姓名和年份,
+% 更多的引用文献标注法参考 \pkg{natbib} 的文档。
%
% \subsection{其他部分}
%
@@ -877,14 +877,15 @@
% \statement[scan-statement.pdf]
% \end{latex}
%
-% 由于打印版和电子版有空白页的差别,声明的页码可能不同。所以编译声明页时默认不加页码,
-% 在签字后插入扫描页时再补上页码,防止页码冲突。
+% 由于打印版和电子版有空白页的差别,声明的页码可能不同。
+% 所以编译声明页时默认不加页眉和页脚,
+% 在签字后插入扫描页时再补上页眉和页脚,防止页码冲突。
%
-% \DescribeOption{statement-page-number}
+% \DescribeOption{statement-page-style}
% 如果需要编译时也加页码(如直接对电子版进行签名而不是插入扫描页),可以使用在 \cs{statement} 前设置
% \begin{latex}
% \thusetup{
-% statement-page-number = true,
+% statement-page-style = plain,
% }
% \end{latex}
% 注意,插入扫描页总是会加页码,不受该选项控制。
@@ -1082,7 +1083,7 @@
% \begin{macrocode}
%<cls>\NeedsTeXFormat{LaTeX2e}[2017/04/15]
%<cls>\ProvidesClass{thuthesis}
-%<cls>[2020/06/14 6.1.2 Tsinghua University Thesis Template]
+%<cls>[2020/07/09 6.1.3 Tsinghua University Thesis Template]
% \end{macrocode}
%
% 报错
@@ -1090,6 +1091,9 @@
\newcommand\thu@error[1]{%
\ClassError{thuthesis}{#1}{}%
}
+\newcommand\thu@warning[1]{%
+ \ClassWarning{thuthesis}{#1}%
+}
% \end{macrocode}
%
% 检查 \LaTeXe{} kernel 版本
@@ -1116,7 +1120,7 @@
%<*cls>
\hyphenation{Thu-Thesis}
\def\thuthesis{ThuThesis}
-\def\version{6.1.2}
+\def\version{6.1.3}
\RequirePackage{kvdefinekeys}
\RequirePackage{kvsetkeys}
\RequirePackage{kvoptions}
@@ -1779,6 +1783,7 @@
BoldFont = *-bold,
ItalicFont = *-italic,
BoldItalicFont = *-bolditalic,
+ Ligatures = CommonOff,
]%
}
\newcommand\thu@load@font@xits{%
@@ -2141,7 +2146,7 @@
% \begin{macrocode}
\let\thu@main@language\thu@language
\thu@option@hook{language}{%
- \ifx\@begindocumenthook\@undefined
+ \ifx\@begindocumenthook\@undefined\else
\let\thu@main@language\thu@language
\fi
}
@@ -2203,7 +2208,7 @@
\thu@set@chapter@names
\thu@option@hook{degree}{\thu@set@chapter@names}
\thu@option@hook{language}{%
- \ifx\@begindocumenthook\@undefined
+ \ifx\@begindocumenthook\@undefined\else
\thu@set@chapter@names
\fi
}
@@ -2341,13 +2346,6 @@
\pagestyle{plain}
% \end{macrocode}
%
-% 用于声明页,不含页脚。
-% \begin{macrocode}
-\fancypagestyle{nofooter}{%
- \fancyfoot{}%
-}
-% \end{macrocode}
-%
% \cs{chapter} 会调用特殊的 page style。
% \begin{macrocode}
\ctexset{chapter/pagestyle = plain}
@@ -3823,6 +3821,14 @@
% 声明部分(支持扫描文件替换)
% \begin{macrocode}
\thu@define@key{
+ statement-page-style = {
+ name = statement@page@style,
+ choices = {
+ empty,
+ plain,
+ },
+ default = empty,
+ },
statement-page-number = {
name = statement@page@number,
choices = {
@@ -3832,6 +3838,12 @@
default = false,
},
}
+\thu@option@hook{statement-page-number}{%
+ \thu@warning{%
+ The "statement-page-number" option is deprecated.
+ Use "statement-page-style" instead%
+ }%
+}
\newcommand\statement[1][]{%
\ifthu@degree@bachelor
\cleardoublepage
@@ -3840,7 +3852,7 @@
\ifx\thu@@tmp\@empty
\thu@chapter*{\thu@statement@name}%
\ifthu@statement@page@number@false
- \thispagestyle{nofooter}%
+ \thispagestyle{\thu@statement@page@style}%
\fi
\thu@statement@text\par
\ifthu@degree@graduate
@@ -3852,6 +3864,7 @@
\thu@backdate\thu@underline[2.5cm]\relax}%
\else
\includepdf[pagecommand={%
+ \markboth{\thu@statement@name}{}%
\thu@phantomsection
\addcontentsline{toc}{chapter}{\thu@statement@name}%
}]{#1}%
@@ -4273,7 +4286,7 @@
%
% \begin{macrocode}
\newcommand{\record}[1]{%
- \clearpage
+ \cleardoublepage
\thu@pdfbookmark{0}{综合论文训练记录表}%
\includepdf[pages=-]{#1}%
}
@@ -4675,7 +4688,7 @@
\RequirePackage{fontspec}[2017/01/20]
\RequirePackage{amsmath}
\RequirePackage{unicode-math}
-\RequirePackage[UTF8,scheme=chinese]{ctex}
+\RequirePackage[UTF8,scheme=chinese,fontset=fandol]{ctex}
\RequirePackage[
top=2.5cm, bottom=2.5cm,
left=4cm, right=2cm,
@@ -4732,6 +4745,7 @@
ItalicFont = *-italic,
BoldItalicFont = *-bolditalic,
Scale = MatchLowercase,
+ Ligatures = CommonOff,
]{texgyrecursor}
}
\unimathsetup{
diff --git a/macros/latex/contrib/thuthesis/thuthesis.pdf b/macros/latex/contrib/thuthesis/thuthesis.pdf
index 1891336779..d2d3ee64d7 100644
--- a/macros/latex/contrib/thuthesis/thuthesis.pdf
+++ b/macros/latex/contrib/thuthesis/thuthesis.pdf
Binary files differ