1780 lines
49 KiB
TeX
1780 lines
49 KiB
TeX
\NeedsTeXFormat{LaTeX2e}
|
||
\ProvidesClass{tmr-tex}
|
||
[2025/11/27 v1.0 Submission to TMR journals]
|
||
\LoadClass[10pt,a4paper,twoside]{article}
|
||
|
||
\RequirePackage{xkeyval}
|
||
\RequirePackage{geometry}
|
||
\RequirePackage{changepage}
|
||
\RequirePackage{stringstrings}
|
||
\RequirePackage[absolute]{textpos}
|
||
\RequirePackage[table,svgnames]{xcolor}
|
||
\RequirePackage{tabularray}
|
||
\usepackage[none]{hyphenat}%强制不能出现断词
|
||
\sloppy%启用宽松间距排版
|
||
\RequirePackage{
|
||
caption,
|
||
floatrow,
|
||
graphicx,
|
||
url,
|
||
mdframed,
|
||
mfirstuc,
|
||
% footmisc,
|
||
alphalph
|
||
}
|
||
\urlstyle{same}
|
||
\ifcase\@ptsize % 根据基础字号(\@ptsize=0→10pt, 1→11pt, 2→12pt)
|
||
% 10pt 基准
|
||
\renewcommand{\tiny}{\fontsize{5}{6}\selectfont}
|
||
\renewcommand{\scriptsize}{\fontsize{7}{8}\selectfont}
|
||
\renewcommand{\footnotesize}{\fontsize{8}{9.5}\selectfont}
|
||
\renewcommand{\small}{\fontsize{9}{10.5}\selectfont}
|
||
%\renewcommand{\normalsize}{\fontsize{10}{11}\selectfont}
|
||
\renewcommand{\normalsize}{\fontsize{8}{9.5}\selectfont}
|
||
\renewcommand{\large}{\fontsize{12}{14}\selectfont}
|
||
%\renewcommand{\Large}{\fontsize{14}{16}\selectfont}
|
||
\renewcommand{\LARGE}{\fontsize{17}{20}\selectfont}
|
||
\renewcommand{\huge}{\fontsize{20}{23}\selectfont}
|
||
\renewcommand{\Huge}{\fontsize{25}{28}\selectfont}
|
||
\newcommand{\xiaoliu}{\fontsize{9}{11}\selectfont}
|
||
|
||
\AtBeginDocument{\bodyfont}
|
||
|
||
|
||
\definecolor{contentblue}{RGB}{0, 130, 170}
|
||
\newcommand*\contentBlue[1]{%
|
||
\textcolor{contentblue}{#1}%
|
||
}
|
||
\or
|
||
%% 11pt 基准(按需添加)
|
||
%\renewcommand{\normalsize}{\fontsize{11}{13}\selectfont}
|
||
%\or
|
||
%% 12pt 基准(按需添加)
|
||
%\renewcommand{\normalsize}{\fontsize{12}{14}\selectfont}
|
||
\fi
|
||
|
||
%%自定义方法
|
||
\newcommand*\cup@warning{\ClassWarning{tmr-tex}}
|
||
|
||
\newcommand*\cup@ifundefined[1]{%
|
||
\begingroup\expandafter\expandafter\expandafter\endgroup
|
||
\expandafter\ifx\csname #1\endcsname\relax
|
||
\expandafter\@firstoftwo
|
||
\else
|
||
\expandafter\@secondoftwo
|
||
\fi
|
||
}
|
||
|
||
\newcommand*\cup@keyval@bool[2]{%
|
||
\cup@ifundefined{cup@#1#2}{%
|
||
\cup@warning{Unknown option `#2' for key #1}%
|
||
}{%
|
||
\@nameuse{cup@#1#2}%
|
||
}%
|
||
}
|
||
|
||
%%定义变量
|
||
\newif\ifcup@abbreviations
|
||
\newif\ifcup@jel
|
||
\newif\ifcup@msc
|
||
\newif\ifcup@dates
|
||
\newif\ifcup@articletitle
|
||
\newif\ifcup@chaptertitle
|
||
\newif\ifcup@email
|
||
\newif\ifcup@hyperref
|
||
\newif\ifcup@super
|
||
\newif\ifcup@simfonts
|
||
\define@key{cup}{abbreviations}[true]{%
|
||
\cup@keyval@bool{abbreviations}{#1}%
|
||
}
|
||
\define@key{cup}{jel}[true]{%
|
||
\cup@keyval@bool{jel}{#1}%
|
||
}
|
||
\define@key{cup}{msc}[true]{%
|
||
\cup@keyval@bool{msc}{#1}%
|
||
}
|
||
\define@key{cup}{suppmat}[true]{%
|
||
\cup@keyval@bool{suppmat}{#1}%
|
||
}
|
||
\define@key{cup}{suppdata}[true]{%
|
||
\cup@keyval@bool{suppdata}{#1}%
|
||
}
|
||
\define@key{cup}{orcid}[true]{%
|
||
\cup@keyval@bool{orcid}{#1}%
|
||
}
|
||
\define@key{cup}{ack}[true]{%
|
||
\cup@keyval@bool{ack}{#1}%
|
||
}
|
||
\define@key{cup}{contrib}[true]{%
|
||
\cup@keyval@bool{contrib}{#1}%
|
||
}
|
||
\define@key{cup}{financial}[true]{%
|
||
\cup@keyval@bool{financial}{#1}%
|
||
}
|
||
\define@key{cup}{conflicts}[true]{%
|
||
\cup@keyval@bool{conflicts}{#1}%
|
||
}
|
||
\define@key{cup}{ethics}[true]{%
|
||
\cup@keyval@bool{ethics}{#1}%
|
||
}
|
||
\define@key{cup}{dates}[true]{%
|
||
\cup@keyval@bool{dates}{#1}%
|
||
}
|
||
\define@key{cup}{articletitle}[true]{%
|
||
\cup@keyval@bool{articletitle}{#1}%
|
||
}
|
||
\define@key{cup}{chaptertitle}[true]{%
|
||
\cup@keyval@bool{chaptertitle}{#1}%
|
||
}
|
||
\define@key{cup}{email}[true]{%
|
||
\cup@keyval@bool{email}{#1}%
|
||
}
|
||
\define@key{cup}{hyperref}[true]{%
|
||
\cup@keyval@bool{hyperref}{#1}%
|
||
}
|
||
\define@key{cup}{super}[true]{%
|
||
\cup@keyval@bool{super}{#1}%
|
||
}
|
||
\define@key{cup}{usetitle}[true]{%
|
||
\cup@keyval@bool{articletitle}{#1}%
|
||
}
|
||
\define@key{cup}{simfonts}[true]{%
|
||
\cup@keyval@bool{simfonts}{#1}%
|
||
}
|
||
\newcommand*\cup@journal{Traditional Medicine Research}
|
||
\newcommand*\cup@doi{\cup@warning{No DOI provided}}
|
||
\newcommand*\cup@layout{largetwo}
|
||
\newcommand*\cup@manuscript{article}
|
||
\newcommand*\cup@year{\cup@warning{No year provided}}
|
||
\newcommand*\cup@vol{\cup@warning{No volume provided}}
|
||
\newcommand*\cup@maxauthors{15}
|
||
\newcommand*\cup@articletype{ARTICLE}
|
||
\newcommand*\cup@journalweb{\cup@warning{No journal website}}
|
||
\newcommand*\cup@authorcon{\cup@warning{No Author contributions}}
|
||
\newcommand*\cup@competing{\cup@warning{No Competing interests}}
|
||
\newcommand*\cup@Acknowledgments{\cup@warning{No Acknowledgments}}
|
||
\newcommand*\cup@Peerreviewinformation{\cup@warning{no Peer review information}}
|
||
\newcommand*\cup@Abbreviations{\cup@warning{no Abbreviations}}
|
||
\newcommand*\cup@Citation{\cup@warning{no Citation}}
|
||
\newcommand*\cup@keywords{\cup@warning{no keywords}}
|
||
\newcommand*\cup@Executiveeditor{\cup@warning{no Executive editor}}
|
||
\newcommand*\cup@EditorialAdvisoryBoard{\cup@warning{no Editorial Advisory Board}}
|
||
\newcommand*\cup@Correspondence{\cup@warning{no Correspondence}}
|
||
%\newcommand*\cup@no{\cup@warning{no journal number}}
|
||
\newcommand*\cup@no{}%
|
||
\newcommand*\cup@revd{}%
|
||
\newcommand*\cup@page{\cup@warning{no article page}}
|
||
\newcommand*\cup@journalname{\cup@warning{no jorunal name}}
|
||
\newcommand*\cup@copyright{© \cup@year By Author(s). Published by TMR Publishing Group Limited. This is an open access article under the CC-BY license. (https://creativecommons.org/licenses/by/4.0/)}
|
||
\define@key{cup}{journal}{%
|
||
\def\cup@journal{#1}%
|
||
}
|
||
\define@key{cup}{layout}{%
|
||
\def\cup@layout{#1}%
|
||
}
|
||
\define@key{cup}{journalname}{%
|
||
\def\cup@journalname{#1}%
|
||
}
|
||
\define@key{cup}{no}{%
|
||
\def\cup@no{#1}%
|
||
}
|
||
\define@key{cup}{page}{%
|
||
\def\cup@page{#1}%
|
||
}
|
||
\define@key{cup}{manuscript}{%
|
||
\AtBeginDocument{\def\cup@manuscript{#1}}%
|
||
}
|
||
\define@key{cup}{EditorialAdvisoryBoard}{%
|
||
\def\cup@EditorialAdvisoryBoard{#1}%
|
||
}
|
||
\define@key{cup}{year}{%
|
||
\def\cup@year{#1}%
|
||
}
|
||
\define@key{cup}{volume}{%
|
||
\def\cup@vol{#1}%
|
||
}
|
||
\define@key{cup}{articletype}{%
|
||
\def\cup@articletype{#1}%
|
||
}
|
||
\define@key{cup}{journalweb}{
|
||
\def\cup@journalweb{#1}
|
||
}
|
||
\define@key{cup}{authorcon}{
|
||
\def\cup@authorcon{#1}
|
||
}
|
||
\define@key{cup}{competing}{
|
||
\def\cup@competing{#1}
|
||
}
|
||
\define@key{cup}{Acknowledgments}{
|
||
\def\cup@Acknowledgments{#1}
|
||
}
|
||
\define@key{cup}{Peerreviewinformation}{
|
||
\def\cup@Peerreviewinformation{#1}
|
||
}
|
||
\define@key{cup}{Abbreviations}{
|
||
\def\cup@Abbreviations{#1}
|
||
}
|
||
\define@key{cup}{Citation}{
|
||
\def\cup@Citation{#1}
|
||
}
|
||
\define@key{cup}{Executiveeditor}{
|
||
\def\cup@Executiveeditor{#1}
|
||
}
|
||
\define@key{cup}{copyright}{
|
||
\def\cup@copyright{#1}
|
||
}
|
||
\define@key{cup}{keywords}{
|
||
\def\cup@keywords{#1}
|
||
}
|
||
\define@key{cup}{Correspondence}{
|
||
\def\cup@Correspondence{#1}
|
||
}
|
||
|
||
\ProcessOptionsX*<cup>
|
||
\let\@unusedoptionlist\@empty
|
||
\newcommand*\cup@manuscript@communication{communication}
|
||
\newcommand*\cup@manuscript@letter{letter}
|
||
\newcommand*\cup@manuscript@note{note}
|
||
\newcommand*\cup@manuscript@review{review}
|
||
\newcommand*\cup@manuscript@suppinfo{suppinfo}
|
||
\setkeys{cup}{
|
||
articletitle,
|
||
super,
|
||
% dates,
|
||
% copyright,
|
||
abbreviations,
|
||
jel,
|
||
msc,
|
||
simfonts
|
||
}
|
||
|
||
|
||
|
||
%定义变量并暂存
|
||
\newcommand*\doi[1]{\gdef\cup@doi{#1}}
|
||
\@onlypreamble\doi
|
||
\newcommand*\received[1] {\gdef\cup@recvd{#1}}
|
||
\newcommand*\revised[1] {\gdef\cup@revd{#1}}
|
||
\newcommand*\accepted[1] {\gdef\cup@accptd{#1}}
|
||
\newcommand*\Availableonline[1]{\gdef\cup@Availableonline{#1}}
|
||
\newcommand*\published[1]{\gdef\cup@publd{#1}}
|
||
\newcommand*\articletype[1]{\gdef\cup@articletype{#1}}
|
||
\newcommand*\journalweb[1]{\gdef\cup@journalweb{#1}}
|
||
\newcommand*\authorcontributions[1]{\gdef\cup@authorcon{#1}}
|
||
\newcommand*\competinginterests[1]{\gdef\cup@competing{#1}}
|
||
\newcommand*\Acknowledgments[1]{\gdef\cup@Acknowledgments{#1}}
|
||
\newcommand*\Peerreviewinformation[1]{\gdef\cup@Peerreviewinformation{#1}}
|
||
\newcommand*\Abbreviations[1]{\gdef\cup@Abbreviations{#1}}
|
||
\newcommand*\Citation[1]{\gdef\cup@Citation{#1}}
|
||
\newcommand*\Executiveeditor[1]{\gdef\cup@Executiveeditor{#1}}
|
||
\newcommand*\EditorialAdvisoryBoard[1]{\gdef\cup@EditorialAdvisoryBoard{#1}}
|
||
\newcommand*\tmrabstract[1]{\gdef\cup@tmrabstract{#1}}
|
||
\newcommand*\keywords[1]{\gdef\cup@keywords{#1}}
|
||
\newcommand*\KeywordImage[1]{\gdef\cup@KeywordImage{#1}}
|
||
\newcommand*\Correspondence[1]{\gdef\cup@Correspondence{#1}}
|
||
% 设置字体sourcesanspro,这是一套全局字体样式的组合
|
||
|
||
\RequirePackage{fontspec}
|
||
\newcommand{\simfonts}{%
|
||
% \newfontface\bodyfont{Charis SIL}[Contextuals={WordInitial,WordFinal}]
|
||
\newfontfamily\bodyfont{Charis SIL}[
|
||
BoldFont={Charis SIL Bold}, % 显式指定加粗字体(Windows 系统默认名称)
|
||
ItalicFont={Charis SIL Italic},% 可选:指定斜体字体
|
||
BoldItalicFont={Charis SIL Bold Italic} % 可选:指定加粗斜体字体
|
||
]
|
||
\newfontfamily\showfont{Calibri}[
|
||
BoldFont={Calibri Bold}, % 显式指定加粗字体(Windows 系统默认名称)
|
||
ItalicFont={Calibri Italic},% 可选:指定斜体字体
|
||
BoldItalicFont={Calibri Bold Italic} % 可选:指定加粗斜体字体
|
||
]
|
||
\RequirePackage{sansmath}
|
||
\RequirePackage[italic,eulergreek]{mathastext}
|
||
\RequirePackage{unicode-math}
|
||
\setmathfont{Latin Modern Math}
|
||
}
|
||
|
||
\newlength\cup@space@pre@title
|
||
\setlength\cup@space@pre@title{1em}
|
||
\newlength\cup@space@post@title
|
||
\setlength\cup@space@post@title{1em}
|
||
\newlength\cup@space@post@author
|
||
\setlength\cup@space@post@author{0.5em}
|
||
\newlength\cup@space@post@address
|
||
\setlength\cup@space@post@address{0pt}
|
||
\newlength\cup@space@post@email
|
||
\setlength\cup@space@post@email{1.5em}
|
||
\newlength\cup@space@post@date
|
||
\setlength\cup@space@post@date{0.5em}
|
||
\newlength\cup@space@inter@extra
|
||
\setlength\cup@space@inter@extra{0.5em}
|
||
\newlength\cup@space@left@content
|
||
\setlength\cup@space@left@content{0.6em}
|
||
\newlength\cup@space@left@title
|
||
\setlength\cup@space@left@title{0.1em}
|
||
\newlength\cup@maketitle@width
|
||
\setlength\cup@maketitle@width{\textwidth}
|
||
\newcommand*\affilsize{\footnotesize}
|
||
\newcommand*\authorsize{\normalsize}
|
||
\newcommand*\emailsize{\footnotesize}
|
||
\newcommand*\datesize{\footnotesize}
|
||
\newcommand*\firstheadsize{\scriptsize}
|
||
\newcommand*\affilfont{\bodyfont}
|
||
\newcommand*\authorfont{\bodyfont\bfseries}
|
||
\newcommand*\emailfont{\footnotesize}
|
||
\newcommand*\emailsymbol{*}
|
||
%\newcommand*\emailme{#}
|
||
\newcommand*\firstsymbol{\#}
|
||
\newcommand*\titlesize{\Large}
|
||
\newcommand*\titlefont{\sffamily\bfseries\color{structure@color}}
|
||
\newcommand*\datefont{\footnotesize}
|
||
\newcommand*\extrasfont{\footnotesize}
|
||
\newcommand*\abstractfont{\small}
|
||
\newcommand*\journalnamefont{\itshape}
|
||
\newcommand*\volumefont{\bfseries}
|
||
\newcommand*\cup@etal{\emph{et al.}}
|
||
|
||
|
||
|
||
%%设置首页内容
|
||
\usepackage{ragged2e}
|
||
\RequirePackage{lastpage}
|
||
\def\@maketitle{%
|
||
\setlength\parindent{\z@}
|
||
\ifnum\cup@author@cnt<\z@\relax
|
||
\cup@warning{No authors defined: At least one author is required}%
|
||
\fi
|
||
\newpage
|
||
\vspace*{\dimexpr-\headsep-\headheight + 6pt\relax}
|
||
\includegraphics[width=18mm]{../tmr-logo.pdf}% 你的Logo路径
|
||
\hfill
|
||
\parbox[b]{150mm}{%
|
||
\raggedleft
|
||
{\showfont\large\textbf{\color[HTML]{002060} \cup@articletype}}\par
|
||
\vspace{0.8pt}
|
||
{\bodyfont\footnotesize{\itshape\textbf{\cup@journal@name}}\ \cup@year;\cup@vol\ifx\cup@no\empty\else(\cup@no)\fi:\cup@page.\ https://doi.org/\cup@doi}\par
|
||
}\par
|
||
\vspace*{1.5em}
|
||
{%输出的标题部分
|
||
\titlefont
|
||
\showfont
|
||
\titlesize
|
||
\let\@fnsymbol\cup@author@fnsymbol
|
||
\let\footnote@org\footnote
|
||
\let\footnote\cup@title@footnote
|
||
\cup@maketitle@suppinfo \@title
|
||
\cup@title@footnote@check
|
||
\global\cup@footnote@cnt\c@footnote
|
||
\@maketitle@title@hook
|
||
\par
|
||
}
|
||
\vspace*{1.5em}%
|
||
{%作者信息部分
|
||
\xiaoliu
|
||
\showfont
|
||
\frenchspacing
|
||
\cup@author@list
|
||
\par
|
||
}%
|
||
\vspace*{1.5em}%
|
||
{%作者机构信息显示
|
||
\xiaoliu
|
||
\showfont
|
||
\cup@address@list
|
||
\par
|
||
}%
|
||
\vspace*{1.5em}%
|
||
{%
|
||
\xiaoliu
|
||
\showfont
|
||
\cup@author@firstOverTwo
|
||
\par
|
||
}%
|
||
{%
|
||
\xiaoliu
|
||
\showfont
|
||
\textsuperscript{\color[HTML]{057cca}*}{\textbf{Correspondence to: }}\cup@Correspondence\par
|
||
}%
|
||
\vspace*{1.5em}
|
||
{%
|
||
\footnotesize
|
||
\bodyfont
|
||
\raggedright
|
||
\begin{minipage}[t]{0.48\textwidth}
|
||
\showfont
|
||
%Author contributions
|
||
{\itshape\textbf{Author contributions}}\par
|
||
\cup@authorcon\par
|
||
%Competing interests
|
||
{\itshape\textbf{Competing interests}}\par
|
||
\cup@competing\par
|
||
%Acknowledgments
|
||
{\itshape\textbf{Acknowledgments}}\par
|
||
\cup@Acknowledgments\par
|
||
%Abbreviations
|
||
{\itshape\textbf{Abbreviations}}\par
|
||
\cup@Abbreviations\par
|
||
%Citation
|
||
{\itshape\textbf{Citation}}\par
|
||
\contentBlue{\cup@Citation}\par
|
||
\vspace{1em}
|
||
%Peer review information
|
||
{\itshape\textbf{Peer review information}}\par
|
||
\cup@Peerreviewinformation\par
|
||
%Executive editor-----copyright
|
||
{\textbf{Editorial Advisory Board:}}\ \cup@EditorialAdvisoryBoard \par
|
||
{\textbf{Executive editor:}}\ \cup@Executiveeditor.\par
|
||
{\textbf{Received:}}\ \cup@recvd ; {\ifx\cup@revd\empty\else{\textbf{Revised:}}\ \cup@revd ; \fi}{\textbf{Accepted:}}\ \cup@accptd ; {\textbf{Available online:}}\ \cup@Availableonline \par
|
||
\cup@copyright
|
||
|
||
|
||
\end{minipage}
|
||
\hfill
|
||
\begin{minipage}[t]{0.5\textwidth}
|
||
{\xiaoliu\itshape\textbf{Abstract}}\par
|
||
\vspace{\cup@space@left@title}
|
||
\cup@tmrabstract\par
|
||
\vspace{1em}
|
||
{\textbf{Keywords:}}\ \cup@keywords
|
||
|
||
|
||
\ifx\cup@KeywordImage\empty
|
||
\else
|
||
\vspace{1em}
|
||
% 插入图片:宽度适配 minipage(0.6\textwidth),高度自动按比例缩放
|
||
\includegraphics[
|
||
width=\linewidth, % 图片宽度=minipage宽度(避免超出)
|
||
% height=auto, % 高度自动适配,保持比例
|
||
keepaspectratio % 强制保持宽高比(防止拉伸变形)
|
||
]{\cup@KeywordImage}
|
||
\fi
|
||
|
||
\end{minipage}
|
||
}%
|
||
\vfill
|
||
{%
|
||
\sffamily
|
||
{\footnotesize\fontspec{Charis SIL}\color[HTML]{002060} {Submit a manuscript:\ \cup@journalweb} }
|
||
\hfill
|
||
\thepage
|
||
}%
|
||
}
|
||
|
||
\newcommand*\@maketitle@title@hook{}
|
||
\newcommand*\cup@maketitle@suppinfo{%
|
||
\ifx\cup@manuscript\cup@manuscript@suppinfo
|
||
Supporting Information:\\
|
||
\fi
|
||
}
|
||
\newcommand*\cup@title@footnote[1]{%
|
||
\footnotemark
|
||
\g@addto@macro\@thanks{\footnotetext{#1}}%
|
||
}
|
||
\newcommand\cup@title@footnote@check{%
|
||
\ifx\@thanks\@empty
|
||
\else
|
||
\begingroup
|
||
\toks@=\expandafter{\@thanks}%
|
||
\xdef\@thanks{%
|
||
\begingroup
|
||
\let\noexpand\@fnsymbol\noexpand\cup@author@fnsymbol
|
||
\the\toks@
|
||
\endgroup
|
||
}%
|
||
\endgroup
|
||
\fi
|
||
}
|
||
%\newcommand*\cup@contact@details{%
|
||
% { \emailsymbol{}Corresponding author. Email: \cup@email@list}%
|
||
% \cup@number@list
|
||
%}
|
||
%\let\@thanks\@empty
|
||
%\renewcommand*{\title}[2][]{%
|
||
% \gdef\cup@title@short{#1}%
|
||
% \gdef\@title{#2}%
|
||
% \ifx\cup@title@short\@empty
|
||
% \global\let\cup@title@short\@title
|
||
% \fi
|
||
%}
|
||
%\@onlypreamble\title
|
||
|
||
|
||
|
||
%%作者相关
|
||
%定义作者相关
|
||
\newcount\cup@author@cnt%作者数量
|
||
\newcount\cup@affil@cnt%作者机构数量
|
||
\newcount\cup@affil@alt@cnt
|
||
\newcount\cup@footnote@cnt%偏移量,很奇妙的东西貌似这里没有实际生效
|
||
\newcount\cup@affil@marker@cnt%
|
||
\newcount\cup@first@cnt%第一作者的数量
|
||
\def\author#1{%定义方法
|
||
\global\advance\cup@author@cnt\@ne\relax%作者数自加1
|
||
\expandafter\gdef\csname @author@\@roman\cup@author@cnt\endcsname{#1}
|
||
\begingroup
|
||
\advance\cup@affil@cnt\@ne
|
||
\expandafter\xdef\csname @author@affil@\@roman\cup@author@cnt\endcsname{\the\cup@affil@cnt}%
|
||
\endgroup
|
||
}
|
||
\@onlypreamble\author%只在导言区生效,这段结束后 @author@1 是作者的名字 ; @author@affil@1 是第一个机构的编号比如1
|
||
|
||
|
||
\newcommand*\affiliation[2][\relax]{%两个参数
|
||
\ifnum\cup@author@cnt>\z@\relax%如果作者数小于0那么就报错
|
||
\cup@affil@ifdup{#2}{%检查机构是否已存在
|
||
\cup@affil@swap{#2}%
|
||
}{%如果不存在执行这些
|
||
\global\advance\cup@affil@cnt\@ne\relax
|
||
\expandafter\gdef\csname @address@\@roman\cup@affil@cnt\endcsname%address@1存进去实际的作者单位
|
||
{#2}%
|
||
\ifx\relax#1\relax
|
||
\expandafter\gdef\csname @affil@\@roman\cup@affil@cnt\endcsname{#2}%如果第一个参数为空,就把机构全称存到@affil@1 中
|
||
\else
|
||
\expandafter\gdef\csname @affil@\@roman\cup@affil@cnt\endcsname{#1}%如果第一个参数不为空,就把第一个参数即简称存到 @affil@1中
|
||
\fi
|
||
}%
|
||
\else
|
||
\cup@warning{Affiliation with no author}%
|
||
\fi
|
||
}
|
||
\@onlypreamble\affiliation
|
||
|
||
|
||
\newcommand*\cup@affil@ifdup[1]{%判断某个作者单位,是否已存在address@数组中 如果存在执行第一个{}如果没有执行第二个{}
|
||
\begingroup
|
||
\def\@tempa{#1}%
|
||
\@tempswafalse%设置tempswa的值是false
|
||
\@tempcnta\z@\relax%设置tempcnta的值是0
|
||
\cup@affil@ifdup@aux
|
||
\if@tempswa
|
||
\aftergroup\@firstoftwo
|
||
\else
|
||
\aftergroup\@secondoftwo
|
||
\fi
|
||
\endgroup
|
||
}
|
||
|
||
|
||
\newcommand*\cup@affil@ifdup@aux{%判断是否存在的核心方法
|
||
\advance\@tempcnta\@ne\relax
|
||
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\@tempb\expandafter\expandafter\expandafter{\csname @address@\@roman\@tempcnta\endcsname}%
|
||
\ifx\@tempa\@tempb
|
||
\expandafter\@tempswatrue
|
||
\else
|
||
\ifnum\@tempcnta<\cup@affil@cnt\relax%如果目前判断的这个aff还不是最后一个,那就需要继续遍历下一个
|
||
\expandafter\expandafter\expandafter\cup@affil@ifdup@aux
|
||
\fi
|
||
\fi
|
||
}
|
||
|
||
|
||
\newcommand*\cup@affil@swap[1]{%如果已经存在了,那执行这个
|
||
\begingroup
|
||
\def\@tempa{#1}%
|
||
\@tempcnta\z@\relax
|
||
\@tempcntb\z@\relax
|
||
\cup@affil@ifdup@aux
|
||
\advance\cup@affil@cnt\@ne\relax
|
||
\cup@affil@swap@aux
|
||
\endgroup
|
||
}
|
||
|
||
|
||
\newcommand*\cup@affil@swap@aux{%让用户的单位指向,指向这个单位
|
||
\advance\@tempcntb\@ne\relax
|
||
\expandafter\ifnum\csname @author@affil@\@roman\@tempcntb\endcsname
|
||
= \cup@affil@cnt\relax
|
||
\expandafter\xdef\csname @author@affil@\@roman\@tempcntb\endcsname{%
|
||
\the\@tempcnta
|
||
}%
|
||
\fi
|
||
\ifnum\@tempcntb<\cup@author@cnt\relax
|
||
\expandafter\cup@affil@swap@aux
|
||
\fi
|
||
}
|
||
|
||
\newcommand*\alsoaffiliation[2][\relax]{%第二个单位
|
||
\ifnum\cup@author@cnt>\z@\relax%cup@author@cnt这个是当前的作者的数字号
|
||
\cup@affil@ifdup{#2}{%是否存在这个单位了
|
||
\cup@alsoaffil@find{#2}%如果存在的话
|
||
}{%
|
||
\global\advance\cup@affil@cnt\@ne\relax
|
||
\@tempcnta\cup@affil@cnt\relax
|
||
\expandafter\gdef\csname @address@\@roman\cup@affil@cnt\endcsname
|
||
{#2}%
|
||
\ifx\relax#1\relax
|
||
\expandafter\gdef\csname @affil@\@roman\cup@affil@cnt\endcsname
|
||
{#2}%
|
||
\else
|
||
\expandafter\gdef\csname @affil@\@roman\cup@affil@cnt\endcsname
|
||
{#1}%
|
||
\fi
|
||
}%
|
||
\@ifundefined{@author@alsoaffil@\@roman\cup@author@cnt}{%
|
||
\expandafter\xdef\csname @author@alsoaffil@\@roman\cup@author@cnt
|
||
\endcsname{\the\@tempcnta}%
|
||
}{%
|
||
\expandafter\xdef\csname @author@alsoaffil@\@roman\cup@author@cnt
|
||
\endcsname{%
|
||
\csname @author@alsoaffil@\@roman\cup@author@cnt\endcsname
|
||
,\the\@tempcnta
|
||
}%
|
||
}%
|
||
\else
|
||
\cup@warning{Affiliation with no author}%
|
||
\fi
|
||
}
|
||
%%定义第一作者
|
||
\newcommand*\firstauthor[1][\relax]{%
|
||
\global\advance\cup@first@cnt\@ne\relax
|
||
\ifnum\cup@author@cnt>\z@\relax
|
||
\expandafter\gdef\csname @firstauthor@\@roman\cup@author@cnt\endcsname
|
||
{#1}%
|
||
\else
|
||
\cup@warning{first author with no author}%
|
||
\fi
|
||
}
|
||
\@onlypreamble\firstauthor
|
||
|
||
\newcommand*\orcid[1]{%
|
||
\ifnum\cup@author@cnt>\z@\relax
|
||
\expandafter\gdef\csname @orcid@\@roman\cup@author@cnt\endcsname
|
||
{#1}%
|
||
\else
|
||
\cup@warning{orcid with no author}%
|
||
\fi%
|
||
}%
|
||
\@onlypreamble\orcid
|
||
|
||
\newcommand*\cup@alsoaffil@find[1]{%
|
||
\begingroup
|
||
\def\@tempa{#1}%定义@tempa是单位具体内容
|
||
\@tempcnta\z@\relax%定义a是0
|
||
\@tempcntb\z@\relax%定义b是0
|
||
\cup@affil@ifdup@aux
|
||
\expandafter\endgroup
|
||
\expandafter\@tempcnta\the\@tempcnta\relax
|
||
}
|
||
\newcommand*\altaffiliation[1]{%
|
||
\ifnum\cup@author@cnt>\z@\relax
|
||
\begingroup
|
||
\cup@altaffil@ifdup{#1}{%
|
||
\expandafter\xdef\csname @author@altaffil@\\cup@author@cnt
|
||
\endcsname{\the\@tempcnta}%
|
||
}{%
|
||
\global\advance\cup@affil@alt@cnt\@ne\relax
|
||
\expandafter\gdef\csname @altaffil@\\cup@affil@alt@cnt
|
||
\endcsname{#1}%
|
||
\expandafter\xdef\csname @author@altaffil@\@roman\cup@author@cnt
|
||
\endcsname{\the\cup@affil@alt@cnt}%
|
||
}%
|
||
\endgroup
|
||
\else
|
||
\cup@warning{Affiliation with no author}%
|
||
\fi
|
||
}
|
||
\@onlypreamble\altaffiliation
|
||
\newcommand*\cup@altaffil@ifdup[1]{%
|
||
\def\@tempa{#1}%
|
||
\@tempswafalse
|
||
\@tempcnta\z@\relax
|
||
\ifnum\cup@affil@alt@cnt>\z@\relax
|
||
\expandafter\cup@altaffil@ifdup@aux
|
||
\fi
|
||
\if@tempswa
|
||
\expandafter\@firstoftwo
|
||
\else
|
||
\expandafter\@secondoftwo
|
||
\fi
|
||
}
|
||
\newcommand*\cup@altaffil@ifdup@aux{%
|
||
\advance\@tempcnta\@ne\relax
|
||
\expandafter\expandafter\expandafter\def\expandafter\expandafter
|
||
\expandafter\@tempb\expandafter\expandafter\expandafter
|
||
{\csname @altaffil@\@roman\@tempcnta\endcsname}%
|
||
\ifx\@tempa\@tempb
|
||
\expandafter\@tempswatrue
|
||
\else
|
||
\ifnum\@tempcnta<\cup@affil@alt@cnt\relax
|
||
\expandafter\expandafter\expandafter\cup@altaffil@ifdup@aux
|
||
\fi
|
||
\fi
|
||
}
|
||
|
||
\newcommand*\email[2][]{%
|
||
\ifnum\cup@author@cnt>\z@\relax
|
||
\cup@emailtrue%
|
||
\expandafter\gdef\csname @emailname@\@roman\cup@author@cnt\endcsname
|
||
{#1}%
|
||
\expandafter\gdef\csname @email@\@roman\cup@author@cnt\endcsname
|
||
{#2}%
|
||
\else
|
||
\cup@warning{E-mail with no author}%
|
||
\fi
|
||
}
|
||
\@onlypreamble\email
|
||
\newcommand*\fax[1]{%
|
||
\ifnum\cup@author@cnt>\z@\relax
|
||
\expandafter\gdef\csname @fax@\@roman\cup@author@cnt\endcsname
|
||
{#1}%
|
||
\else
|
||
\cup@warning{Fax number with no author}%
|
||
\fi
|
||
}
|
||
\@onlypreamble\fax
|
||
\newcommand*\phone[1]{%
|
||
\ifnum\cup@author@cnt>\z@\relax
|
||
\expandafter\gdef\csname @phone@\@roman\cup@author@cnt\endcsname
|
||
{#1}%
|
||
\else
|
||
\cup@warning{Phone number with no author}%
|
||
\fi
|
||
}
|
||
\@onlypreamble\phone
|
||
\newcommand*\abbreviations[1]{%
|
||
\gdef\@abbreviations{#1}%
|
||
}
|
||
\newcommand*\@abbreviations{}
|
||
\@onlypreamble\abbreviations
|
||
%\newcommand*\keywords[1]{%
|
||
% \gdef\@keywords{#1}%
|
||
%}
|
||
%\newcommand*\@keywords{}
|
||
%\@onlypreamble\keywords
|
||
\newcommand*\cup@abbreviations@print{%
|
||
\ifx\@abbreviations\@empty\else
|
||
{\noindent\bfseries Abbreviations: }
|
||
\@abbreviations
|
||
\par
|
||
\fi
|
||
}
|
||
\newcommand*\jel[1]{%
|
||
\gdef\@jel{#1}%
|
||
}
|
||
\newcommand*\@jel{}
|
||
\@onlypreamble\jel
|
||
\newcommand*\cup@jel@print{%
|
||
\ifx\@jel\@empty\else
|
||
{\noindent\bfseries JEL classification: }
|
||
\@jel
|
||
\par
|
||
\fi
|
||
}
|
||
\newcommand*\msc[1]{%
|
||
\gdef\@msc{#1}%
|
||
}
|
||
\newcommand*\@msc{}
|
||
\@onlypreamble\msc
|
||
\newcommand*\cup@msc@print{%
|
||
\ifx\@msc\@empty\else
|
||
{\noindent\bfseries MSC Codes: }
|
||
\@msc
|
||
\par
|
||
\fi
|
||
}
|
||
|
||
\newcommand*\cup@author@list{%
|
||
\@tempcnta\z@\relax%从0开始遍历作者
|
||
\ifnum\cup@author@cnt=\z@\relax\else
|
||
\expandafter\cup@author@list@main
|
||
\fi
|
||
}
|
||
\newcommand*\cup@author@footnotes{}
|
||
\newcommand*\cup@author@list@main{%
|
||
\advance\@tempcnta\@ne\relax
|
||
\def\cup@author@footnotes{}%清空上一个的标记
|
||
\cup@author@list@mycomma%作者和作者之间要加逗号
|
||
\space%空格
|
||
\@nameuse{@author@\@roman\@tempcnta}%显示姓名
|
||
\cup@author@affil
|
||
\cup@author@affil@also
|
||
\cup@author@firstauthor
|
||
\cup@author@star
|
||
\ifx\@empty\cup@author@footnotes\else
|
||
\textsuperscript{\color[HTML]{057cca}\cup@author@footnotes}%实际的显示
|
||
\fi
|
||
%%解决orcid
|
||
\cup@author@orcid
|
||
\ifnum\@tempcnta<\cup@author@cnt\relax
|
||
\expandafter\cup@author@list@main
|
||
\fi
|
||
}
|
||
\newcommand*\cup@author@list@and{%最后一个作者增加and字符串
|
||
\ifnum\cup@author@cnt=\@ne\relax\else
|
||
\ifnum\@tempcnta=\cup@author@cnt\relax
|
||
\space and%
|
||
\fi
|
||
\fi
|
||
}
|
||
\newcommand*\cup@author@list@comma{%
|
||
\ifnum\cup@author@cnt>\tw@\relax
|
||
\ifnum\@tempcnta<\cup@author@cnt\relax
|
||
,%
|
||
\fi
|
||
\fi
|
||
}
|
||
|
||
|
||
\newcommand*\cup@author@list@mycomma{%
|
||
\ifnum\@tempcnta>1\relax
|
||
\ifnum\@tempcnta>\cup@author@cnt\relax
|
||
\else
|
||
,
|
||
\fi
|
||
\fi
|
||
}
|
||
|
||
|
||
\newcommand*\cup@author@star{%如果定义了@email@roman,那么就要给footnotes加上型号标识
|
||
\cup@ifundefined{@email@\@roman\@tempcnta}{}{%
|
||
\cup@author@star@aux
|
||
}%
|
||
}
|
||
\newcommand*\cup@author@star@aux{%
|
||
\protected@edef\cup@author@footnotes{%
|
||
\cup@author@footnotes
|
||
% \cup@author@fnsymbol{\z@}%
|
||
\emailsymbol%
|
||
% \ifnum\cup@affil@cnt>\@ne\relax
|
||
% ,
|
||
% \else
|
||
% \ifnum\cup@affil@alt@cnt>\z@\relax
|
||
% ,
|
||
% \fi
|
||
% \fi
|
||
}%
|
||
}
|
||
|
||
\RequirePackage[hidelinks]{hyperref}
|
||
|
||
|
||
|
||
% 1. 定义引用自定义颜色
|
||
\definecolor{refColor}{RGB}{0, 130, 170} % 自定义RGB值
|
||
% 2. 配置hyperref(移除hidelinks,添加颜色)
|
||
%\RequirePackage[colorlinks=true, linkcolor=refColor]{hyperref}
|
||
% 3. 重定义\ref/\autoref确保颜色生效
|
||
\let\originalRef\ref
|
||
\renewcommand{\ref}[1]{\textcolor{refColor}{\originalRef{#1}}}
|
||
\let\originalAutoref\autoref
|
||
\renewcommand{\autoref}[1]{\textcolor{refColor}{\originalAutoref{#1}}}
|
||
|
||
|
||
|
||
|
||
\newcommand*\cup@author@orcid{%
|
||
\cup@ifundefined{@orcid@\@roman\@tempcnta}{}{%
|
||
\href{https://orcid.org/\csname @orcid@\@roman\@tempcnta\endcsname}{%
|
||
\includegraphics[height=0.8em]{../orcid_icon.png}% 确保orcid_icon.png在路径中
|
||
}
|
||
}%
|
||
}
|
||
|
||
\newcommand*\cup@author@firstOverTwo{
|
||
\ifnum\cup@first@cnt>1\relax
|
||
\textsuperscript{\color[HTML]{057cca}\#}These authors contributed equally to this work and are co-first authors for this paper.
|
||
\fi
|
||
}
|
||
|
||
|
||
\newcommand*\cup@author@firstauthor{%
|
||
\cup@ifundefined{@firstauthor@\@roman\@tempcnta}{}{%
|
||
\cup@author@firstauthor@aux
|
||
}%
|
||
}
|
||
\newcommand*\cup@author@firstauthor@aux{%
|
||
\protected@edef\cup@author@footnotes{%
|
||
\cup@author@footnotes
|
||
\expandafter\firstsymbol\relax%
|
||
}%
|
||
}
|
||
|
||
\newcommand*\cup@author@affil{%
|
||
\cup@ifundefined{%
|
||
@affil@\@roman\csname @author@affil@\@roman\@tempcnta\endcsname
|
||
}{%没有找到这个机构则发出警告
|
||
\cup@warning{%
|
||
No affiliation given for author\MessageBreak
|
||
\@nameuse{@author@\@roman\@tempcnta}%
|
||
}%
|
||
}{%找到了就要执行后续操作
|
||
\cup@author@affil@aux
|
||
}%
|
||
}
|
||
\newcommand*\cup@author@affil@aux{%
|
||
\ifnum\cup@affil@cnt>\@ne\relax%机构总计数大于1
|
||
\expandafter\cup@affil@marker@cnt\csname @author@affil@\@roman\@tempcnta\endcsname\relax
|
||
\advance\cup@affil@marker@cnt\cup@footnote@cnt\relax
|
||
\protected@edef\cup@author@footnotes{%
|
||
% \cup@author@footnotes
|
||
\cup@author@fnsymbol{\cup@affil@marker@cnt}%
|
||
}%
|
||
\else%机构总计数等于1
|
||
\ifnum\cup@affil@cnt>\z@\relax%这里做过修改原来是\ifnum\cup@affil@alt@cnt>\z@\relax
|
||
\cup@affil@marker@cnt\@ne\relax
|
||
\advance\cup@affil@marker@cnt\cup@footnote@cnt\relax
|
||
\protected@edef\cup@author@footnotes{%
|
||
% \cup@author@footnotes
|
||
\cup@author@fnsymbol{\cup@affil@marker@cnt}%
|
||
}%
|
||
\fi
|
||
\fi
|
||
}
|
||
\newcommand*\cup@author@affil@also{%
|
||
\cup@ifundefined{@author@alsoaffil@\@roman\@tempcnta}{}{%
|
||
\cup@author@affil@also@aux
|
||
}%
|
||
}
|
||
\newcommand*\cup@author@affil@also@aux{%
|
||
\expandafter\@for\expandafter\@tempa\expandafter:\expandafter
|
||
=\csname @author@alsoaffil@\@roman\@tempcnta\endcsname\do{%
|
||
\cup@affil@marker@cnt\@tempa\relax
|
||
\advance\cup@affil@marker@cnt\cup@footnote@cnt\relax
|
||
\protected@edef\cup@author@footnotes{%
|
||
\cup@author@footnotes
|
||
,
|
||
\cup@author@fnsymbol{\cup@affil@marker@cnt}%
|
||
}%
|
||
}%
|
||
}
|
||
\newcommand*\cup@author@affil@alt{%
|
||
\cup@ifundefined{@author@altaffil@\@roman\@tempcnta}{}{%
|
||
\cup@author@affil@alt@aux
|
||
}%
|
||
}
|
||
\newcommand*\cup@author@affil@alt@aux{%
|
||
\expandafter\cup@affil@marker@cnt
|
||
\csname @author@altaffil@\@roman\@tempcnta\endcsname\relax
|
||
\advance\cup@affil@marker@cnt\cup@affil@cnt\relax
|
||
\advance\cup@affil@marker@cnt\cup@footnote@cnt\relax
|
||
\protected@edef\cup@author@footnotes{%
|
||
\cup@author@footnotes
|
||
%,%
|
||
\cup@author@fnsymbol{\cup@affil@marker@cnt}%
|
||
}%
|
||
}
|
||
\newcommand*{\cup@author@fnsymbol}[1]{%
|
||
\ensuremath{%
|
||
\expandafter\cup@author@fnsymbol@aux\expandafter{\number#1}%
|
||
}%
|
||
}
|
||
\newcommand*{\cup@author@fnsymbol@aux}[1]{%此方法被重写了,直接返回数字
|
||
\ifnum#1>10 %
|
||
\expandafter\cup@author@fnsymbol@loop
|
||
\else
|
||
\expandafter\cup@author@fnsymbol@symbol
|
||
\fi
|
||
{#1}%
|
||
}
|
||
\newcommand*{\cup@author@fnsymbol@loop}[1]{%
|
||
\cup@author@fnsymbol@loop@aux@i#1%
|
||
}
|
||
\newcommand*{\cup@author@fnsymbol@loop@aux@i}[2]{%
|
||
\cup@author@fnsymbol@symbol{\ifnum#2=0 10\else #2\fi}%
|
||
\expandafter\cup@author@fnsymbol@loop@aux@ii\romannumeral #1000Q{}%
|
||
{\cup@author@fnsymbol@symbol{\ifnum#2=0 10\else #2\fi}}%
|
||
}
|
||
\newcommand*{\cup@author@fnsymbol@loop@aux@ii}[1]{%
|
||
\@nameuse{cup@author@fnsymbol@loop@aux@#1}%
|
||
}
|
||
\def\cup@author@fnsymbol@loop@aux@m#1Q#2#3{%
|
||
\cup@author@fnsymbol@loop@aux@ii#1Q{#2#3}{#3}%
|
||
}
|
||
\newcommand*{\cup@author@fnsymbol@loop@aux@Q}[2]{#1}
|
||
\newcommand*{\cup@author@fnsymbol@symbol}[1]{%
|
||
\ifcase #1 *\or
|
||
\dagger\or
|
||
\ddagger\or
|
||
\P\or
|
||
\S\or
|
||
\|\or
|
||
\bot\or
|
||
\#\or
|
||
@\or
|
||
\triangle\or
|
||
\nabla
|
||
\fi
|
||
}
|
||
\newcommand*\cup@address@list{%
|
||
\ifnum\cup@affil@cnt>\z@
|
||
\expandafter\cup@address@list@auxi
|
||
\else
|
||
\cup@warning{No affiliations: at least one affiliation is needed}%
|
||
\fi
|
||
}
|
||
\newcommand*\cup@address@list@auxi{%
|
||
% \ifnum0%
|
||
% \ifnum\cup@affil@cnt>\@ne 1\fi
|
||
% \ifnum\cup@affil@alt@cnt>\z@ 1\fi
|
||
% >\z@
|
||
\expandafter\cup@address@list@auxii
|
||
% \else
|
||
% \@address@i\par
|
||
% \fi
|
||
}
|
||
\newcommand*\cup@address@list@auxii{%
|
||
\@tempcnta\z@
|
||
\cup@affil@marker@cnt\cup@footnote@cnt
|
||
\loop\ifnum\@tempcnta<\cup@affil@cnt
|
||
\advance\@tempcnta\@ne
|
||
\advance\cup@affil@marker@cnt\@ne
|
||
{\color[HTML]{057cca}\textsuperscript{\cup@author@fnsymbol{\cup@affil@marker@cnt}}}%
|
||
\@nameuse{@address@\@roman\@tempcnta}\par% and % TODO handle multiples
|
||
\repeat
|
||
\@tempcnta\z@
|
||
\loop\ifnum\@tempcnta<\cup@affil@cnt
|
||
\advance\@tempcnta\@ne
|
||
\advance\cup@affil@marker@cnt\@ne
|
||
\cup@ifundefined{@altaffil@\@roman\@tempcnta}
|
||
{}
|
||
{%
|
||
{\color[HTML]{057cca}\textsuperscript{\cup@author@fnsymbol{\cup@affil@marker@cnt}}}%
|
||
\@nameuse{@altaffil@\@roman\@tempcnta}\par
|
||
}%
|
||
\repeat
|
||
}
|
||
\newcommand*\cup@fnsymbol@org{}
|
||
\newcommand*\cup@affil@list{%
|
||
\let\cup@fnsymbol@org\@fnsymbol
|
||
\let\@fnsymbol\cup@author@fnsymbol
|
||
\@tempcnta\z@\relax
|
||
\@tempcntb\z@\relax
|
||
\ifnum\cup@affil@cnt>\@ne\relax
|
||
\expandafter\cup@affil@list@aux
|
||
\else
|
||
\ifnum\cup@affil@alt@cnt>\z@\relax
|
||
\cup@affil@marker@cnt\@ne\relax
|
||
\advance\cup@affil@marker@cnt\cup@footnote@cnt\relax
|
||
\footnotetext[^\cup@affil@marker@cnt]{\@affil@i}%
|
||
\@tempcnta\@ne\relax
|
||
\fi
|
||
\fi
|
||
\ifnum\cup@affil@alt@cnt>\z@\relax
|
||
\expandafter\cup@affil@alt@list
|
||
\fi
|
||
\let\@fnsymbol\cup@fnsymbol@org
|
||
}
|
||
\newcommand*\cup@affil@list@aux{%
|
||
\advance\@tempcnta\@ne\relax
|
||
\cup@affil@marker@cnt\@tempcnta\relax
|
||
\advance\cup@affil@marker@cnt\cup@footnote@cnt\relax
|
||
\footnotetext[\cup@affil@marker@cnt]{%
|
||
\@nameuse{@affil@\@roman\@tempcnta}%
|
||
}%
|
||
|
||
\ifnum\@tempcnta<\cup@affil@cnt\relax
|
||
\expandafter\cup@affil@list@aux
|
||
\fi
|
||
}
|
||
\newcommand*\cup@affil@alt@list{%
|
||
\advance\@tempcntb\@ne\relax
|
||
\cup@ifundefined{@altaffil@\@roman\@tempcntb}{}{%
|
||
\cup@altaffil@foot@aux
|
||
}
|
||
\ifnum\@tempcntb<\cup@author@cnt\relax
|
||
\expandafter\cup@affil@alt@list
|
||
\fi
|
||
}
|
||
\newcommand*\cup@altaffil@foot@aux{%
|
||
\advance\@tempcnta\@ne\relax
|
||
\cup@affil@marker@cnt\@tempcnta\relax
|
||
\advance\cup@affil@marker@cnt\cup@footnote@cnt\relax
|
||
\footnotetext[\cup@affil@marker@cnt]{%
|
||
\@nameuse{@altaffil@\@roman\@tempcntb}%
|
||
}%
|
||
}
|
||
\newcommand*\cup@email@list@font{}
|
||
\newcommand*\cup@email@list{%
|
||
\begingroup
|
||
\def\UrlFont{\cup@email@list@font}%
|
||
\@tempcnta\z@\relax
|
||
\@tempcntb\z@\relax
|
||
\cup@email@list@aux
|
||
\ifnum\@tempcntb=\z@\relax
|
||
\cup@warning{%
|
||
No e-mail given:\MessageBreak
|
||
at lest one author must have a contact e-mail%
|
||
}%
|
||
\fi
|
||
\endgroup
|
||
}
|
||
\newcommand*\cup@email@list@aux{%
|
||
\advance\@tempcnta\@ne\relax
|
||
\ifnum\@tempcnta>\cup@author@cnt\relax\else
|
||
\cup@ifundefined{@email@\@roman\@tempcnta}{}{%
|
||
\advance\@tempcntb\@ne\relax
|
||
\ifnum\@tempcntb>\@ne\relax
|
||
;
|
||
\fi
|
||
\expandafter\expandafter\expandafter\url\expandafter
|
||
\expandafter\expandafter{%
|
||
\csname @email@\@roman\@tempcnta\endcsname
|
||
}%
|
||
}%
|
||
\expandafter\cup@email@list@aux
|
||
\fi
|
||
}
|
||
\newcommand*\cup@number@list{%
|
||
\begingroup
|
||
\cup@number@list@aux@i{phone}%
|
||
\let\@tempb\@tempa
|
||
\cup@number@list@aux@i{fax}%
|
||
\ifx\@tempa\@empty
|
||
\let\@tempa\@tempb
|
||
\else
|
||
\ifx\@tempb\@empty\else
|
||
\protected@edef\@tempa{%
|
||
\@tempb.\space\@tempa
|
||
}%
|
||
\fi
|
||
\fi
|
||
\ifx\@tempa\@empty\else
|
||
\par
|
||
\@tempa
|
||
\fi
|
||
\endgroup
|
||
}
|
||
\newcommand*\cup@number@list@aux@i[1]{%
|
||
\def\@tempa{}%
|
||
\@tempcnta\z@\relax
|
||
\def\cup@number@list@aux@ii{%
|
||
\advance\@tempcnta\@ne\relax
|
||
\ifnum\@tempcnta>\cup@author@cnt\relax\else
|
||
\cup@ifundefined{@#1@\@roman\@tempcnta}{}{%
|
||
\cup@ifundefined{@email@\@roman\@tempcnta}{}{%
|
||
\ifx\@tempa\@empty
|
||
\edef\@tempa{%
|
||
\@nameuse{@#1@\@roman\@tempcnta}%
|
||
}%
|
||
\else
|
||
\edef\@tempa{%
|
||
\@tempa
|
||
;
|
||
\@nameuse{@#1@\@roman\@tempcnta}%
|
||
}%
|
||
\fi
|
||
}%
|
||
}%
|
||
\expandafter\cup@number@list@aux@ii
|
||
\fi
|
||
}%
|
||
\cup@number@list@aux@ii
|
||
\ifx\@tempa\@empty\else
|
||
\protected@edef\@tempa{%
|
||
\MakeUppercase#1: \@tempa
|
||
}%
|
||
\fi
|
||
}
|
||
\newcommand*\cup@number@list@aux@ii{}
|
||
|
||
|
||
%%处理作者标记的方式
|
||
\newcommand*\acksize{\normalsize}
|
||
\newcommand*\suppsize{\normalsize}
|
||
\newcommand*\patch@numeric@authors{%
|
||
\renewcommand{\cup@author@fnsymbol@aux}[1]{##1}
|
||
\pretocmd{\cup@author@fnsymbol}{\let\ensuremath\relax}{}{}
|
||
}
|
||
|
||
%%对maketitle的配置
|
||
\newcommand*\cup@maketitle@extras{%
|
||
\cup@maketitle@extras@hook
|
||
}
|
||
\newcommand*\cup@maketitle@extras@hook{}
|
||
\g@addto@macro{\maketitle}{\cup@maketitle@extras\thispagestyle{empty}}
|
||
\g@addto@macro{\document}{\maketitle}
|
||
|
||
|
||
|
||
%%正文内容
|
||
%设置全局图片和表格的字体等元素的样式
|
||
\captionsetup{
|
||
font={
|
||
footnotesize,
|
||
sf,
|
||
% sansmath
|
||
},
|
||
labelfont=bf,
|
||
labelsep=period
|
||
}
|
||
\floatsetup{
|
||
font={
|
||
sf,
|
||
% sansmath,
|
||
footnotesize
|
||
}
|
||
}
|
||
\definecolor{figerTitleColor}{RGB}{210,90,90}
|
||
\DeclareCaptionFormat{tmrcalibriCaption}{%
|
||
\bodyfont % 设置Calibri字体
|
||
\footnotesize % 字号+加粗
|
||
#1 #2#3 % 保留caption原有结构(编号+内容)
|
||
}
|
||
|
||
|
||
|
||
\captionsetup[figure]{
|
||
format=tmrcalibriCaption,
|
||
labelfont={bf,color=figerTitleColor},
|
||
labelsep=space,
|
||
justification=raggedright,
|
||
}
|
||
\captionsetup[figure*]{
|
||
format=tmrcalibriCaption,
|
||
labelfont={bf,color=figerTitleColor},
|
||
labelsep=space,
|
||
justification=raggedright,
|
||
}
|
||
|
||
\colorlet{structure@color}{black}%设置一个全局颜色,并指定为黑色
|
||
|
||
%列表样式
|
||
\RequirePackage{enumitem} % For list styling
|
||
\setlist{noitemsep,leftmargin=\parindent}
|
||
|
||
%%表格注释的定义
|
||
\RequirePackage[online]{threeparttable}
|
||
\let\TPTnoteSettingsOrig\TPTnoteSettings
|
||
\def\TPTnoteSettings{\TPTnoteSettingsOrig\scriptsize}
|
||
\RequirePackage{endnotes}
|
||
\newcommand*{\printendnotes}{%
|
||
\def\enoteformat{\rightskip=0pt \leftskip=0pt \parindent=0pt \makeenmark}
|
||
\def\makeenmark{\bgroup\bfseries\theenmark\enspace\egroup}
|
||
\theendnotes
|
||
}
|
||
|
||
%浮动体的新定义
|
||
%\newfloat{scheme}{htbp}{los}
|
||
%\floatname{scheme}{Scheme}
|
||
%\newfloat{chart}{htbp}{loc}
|
||
%\floatname{chart}{Chart}
|
||
%\newfloat{graph}{htbp}{loh}
|
||
%\floatname{graph}{Graph}
|
||
%\newcommand*\schemename{Scheme}
|
||
%\newcommand*\chartname{Chart}
|
||
%\newcommand*\graphname{Graph}
|
||
%\floatplacement{table}{htbp}
|
||
%\floatplacement{figure}{htbp}
|
||
\floatstyle{plaintop}
|
||
\restylefloat{table}
|
||
%\let\cup@floatboxreset\@floatboxreset
|
||
%\def\@floatboxreset{%
|
||
% \centering
|
||
% \cup@floatboxreset
|
||
%}
|
||
|
||
\definecolor{tmrTableColorBase}{RGB}{250,231,232}
|
||
|
||
%%%表格设置
|
||
%\AtEndOfClass{%
|
||
% \colorlet{tbrowcolor}{structure@color!10}
|
||
% \colorlet{tbheadcolor}{structure@color!30}
|
||
% \colorlet{tmrTableColor}{tmrTableColorBase!60}
|
||
% \arrayrulecolor{structure@color}
|
||
%}
|
||
%%% From https://tex.stackexchange.com/a/32366/226
|
||
%\newcommand*{\trfiller}{%
|
||
% \arrayrulecolor{tbrowcolor}% change to cell colour
|
||
% \specialrule{\heavyrulewidth}{0pt}{-\heavyrulewidth}% "invisible" rule
|
||
% \arrayrulecolor{structure@color}% revert to regular line colour
|
||
%}
|
||
%\newcommand*{\thfiller}{%
|
||
% \arrayrulecolor{tmrTableColor}% change to cell colour
|
||
% \specialrule{\heavyrulewidth}{0pt}{-\heavyrulewidth}% "invisible" rule
|
||
% \arrayrulecolor{structure@color}% revert to regular line colour
|
||
%}
|
||
%\newcommand{\headrow}{\rowcolor{tmrTableColor}}
|
||
%\newcommand{\patchCUPtables}{%
|
||
% \rowcolors*{1}{}{tmrTableColor}%
|
||
% \setlength{\aboverulesep}{0pt}%
|
||
% \setlength{\belowrulesep}{0pt}%
|
||
% \setlength{\extrarowheight}{.75ex}%
|
||
%}
|
||
%\AtBeginEnvironment{table}{\patchCUPtables}
|
||
%\AtBeginEnvironment{table*}{\patchCUPtables}
|
||
|
||
|
||
|
||
% 先定义需要的颜色(如果未定义)
|
||
\definecolor{evenRowColor}{RGB}{250,231,232}
|
||
|
||
\newenvironment{tmrtable}[5]{%
|
||
\begin{table}[htb!]
|
||
\centering
|
||
\caption{#1}
|
||
\label{tab:#2}
|
||
\def\tablenote{#5}
|
||
\edef\tableroweven{\the\numexpr #4 + 1 \relax}
|
||
% 环境开始时执行的代码
|
||
\begin{tblr}{
|
||
% 优化列宽:调整比例,适配长文本自动换行
|
||
colspec={#3},
|
||
% 三线表样式
|
||
hline{1}={1.5pt},
|
||
hline{2}={0.75pt},
|
||
hline{Z}={1.5pt},
|
||
% 表头样式:背景为白色
|
||
row{#4}={font=\bfseries, bg=white},
|
||
% 偶数行变色(第2行起)
|
||
row{even[\tableroweven]}={bg=evenRowColor},
|
||
% row{even}={
|
||
% bg={\ifnum\rownum>\startEvenRow-1 evenRowColor\else white\fi}
|
||
% },
|
||
% 合并单元格强制白色背景
|
||
cell{*}{*}={merge={bg=white}},
|
||
% 紧凑间距+自动换行
|
||
rowsep=3pt,
|
||
colsep=3pt,
|
||
vlines={0pt},
|
||
% 自动换行:所有单元格左对齐,自动换行
|
||
cell{*}{*}={cmd=\raggedright},
|
||
}%
|
||
}{%
|
||
\end{tblr}%
|
||
\vspace{0.5em}
|
||
\par\small\noindent{\tablenote}%
|
||
% \par{#6}%
|
||
\end{table}%
|
||
}
|
||
|
||
% ========== 修复版:跨栏表格环境 tmrtable* ==========
|
||
% 使用方式:\begin{tmrtable*}{列格式}{表头行} 表格内容 \end{tmrtable*}
|
||
\newenvironment{tmrtable*}[5]{%
|
||
% 环境开始时执行的代码
|
||
\begin{table*}[htb!]
|
||
\centering
|
||
\caption{#1}
|
||
\label{#2}
|
||
\def\tablenote{#5}
|
||
\edef\tableroweven{\the\numexpr #4 + 1 \relax}
|
||
\centering % 跨栏表格居中
|
||
\begin{tblr}{
|
||
% 优化列宽:调整比例,适配长文本自动换行
|
||
colspec={#3},
|
||
% 三线表样式
|
||
hline{1}={1.5pt},
|
||
hline{2}={0.75pt},
|
||
hline{Z}={1.5pt},
|
||
% 表头样式:背景为白色
|
||
row{#4}={font=\bfseries, bg=white},
|
||
% 偶数行变色(第2行起)
|
||
row{even[2]}={bg=evenRowColor},
|
||
% 合并单元格强制白色背景
|
||
cell{*}{*}={merge={bg=white}},
|
||
% 紧凑间距+自动换行
|
||
rowsep=3pt,
|
||
colsep=3pt,
|
||
vlines={0pt},
|
||
% 自动换行:所有单元格左对齐,自动换行
|
||
cell{*}{*}={cmd=\raggedright},
|
||
}%
|
||
}{%
|
||
% 环境结束时执行的代码
|
||
\end{tblr}
|
||
\vspace{0.5em}
|
||
\par\small\noindent{\tablenote}%
|
||
\end{table*}%
|
||
}
|
||
|
||
|
||
|
||
%自定义 \appendix 命令,使得附录部分的章节编号从 0 开始,并将章节格式设置为“Appendix 1”样式
|
||
\renewcommand\appendix{\par
|
||
\setcounter{section}{0}
|
||
\setcounter{subsection}{0}
|
||
\gdef\thesection{Appendix \@arabic\c@section}
|
||
}
|
||
|
||
|
||
%定义超链接的样式
|
||
%\ifcup@hyperref
|
||
%\expandafter\RequirePackage
|
||
%\else
|
||
%\expandafter\@gobble
|
||
%\fi
|
||
%{hyperref}
|
||
|
||
|
||
\usepackage{mdframed} % 高亮背景容器
|
||
\usepackage{enumitem} % 优化列表排版(解决默认列表间距问题)
|
||
|
||
\definecolor{hilight-bg}{RGB}{222,235,247}
|
||
\NewDocumentEnvironment{highlight}{+b}{%
|
||
% 1. 外层高亮容器
|
||
\begin{mdframed}[
|
||
backgroundcolor=hilight-bg, % 整体背景
|
||
hidealllines=true,
|
||
% linecolor=hilight-border, % 边框颜色
|
||
% linewidth=0.5pt, % 边框宽度
|
||
roundcorner=4pt, % 圆角(可选,增强美观)
|
||
leftmargin=3mm, % 容器左外边距
|
||
rightmargin=3mm, % 容器右外边距
|
||
innertopmargin=5mm, % 容器内顶部间距
|
||
innerbottommargin=3mm, % 容器内底部间距
|
||
innerleftmargin=3mm, % 容器内左侧间距
|
||
innerrightmargin=3mm, % 容器内右侧间距
|
||
]
|
||
|
||
% 2. 内部列表环境(承载多个 \item{title}{content})
|
||
\begin{itemize}[
|
||
leftmargin=0pt, % 取消列表默认左缩进
|
||
label={}, % 隐藏列表默认项目符号
|
||
itemsep=6mm, % 条目之间的垂直间距(可调整)
|
||
topsep=0pt, % 列表顶部无额外间距
|
||
partopsep=0pt
|
||
]
|
||
#1 % 接收环境内的所有 \item 内容
|
||
\end{itemize}
|
||
|
||
\end{mdframed}
|
||
}{}
|
||
|
||
\NewDocumentCommand{\highlightitem}{mm}{%
|
||
\item[{}] % 空标签,避免默认列表符号
|
||
\showfont\textbf{\itshape #1}\\[1mm] % 标题换行,1.5mm间距
|
||
\begin{flushright}
|
||
\vspace{-2.1em}% 取消顶部额外间距
|
||
\begin{minipage}[t]{\dimexpr\linewidth - 1em} % 宽度可调整
|
||
\footnotesize#2
|
||
\end{minipage}
|
||
\vspace{0pt}% 取消底部额外间距
|
||
\end{flushright}
|
||
}
|
||
|
||
|
||
|
||
|
||
%%章节的基本调整
|
||
\RequirePackage{xcolor} % 引入 xcolor 宏包以支持颜色
|
||
\RequirePackage{tikz}
|
||
|
||
\definecolor{mycolor}{rgb}{0.87, 0.93, 0.97}
|
||
\definecolor{sectioncolor}{HTML}{D25A5A}
|
||
\renewcommand\section{\@startsection {section}{1}{\z@}%
|
||
{-3.5ex \@plus -1ex \@minus -.2ex}% 上间距
|
||
{1.2ex \@plus.2ex}% 下间距
|
||
{% 关键:添加 \noindent 取消标题缩进,避免右移
|
||
\bodyfont\sffamily\bfseries\noindent\@mysection}}
|
||
|
||
\def\@mysection#1{%
|
||
\tikz[baseline]{%
|
||
\node[fill=mycolor,
|
||
text=sectioncolor,
|
||
rounded corners=3pt,
|
||
inner sep=5pt,
|
||
minimum width=\linewidth, % 占全行宽度
|
||
align=left, % 文字左对齐
|
||
anchor=west] % 节点锚点设为左边界(核心修正)
|
||
{#1};
|
||
}%
|
||
}
|
||
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
|
||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||
{0.2ex \@plus .2ex}%
|
||
{\xiaoliu\bodyfont\sffamily\bfseries}}
|
||
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
|
||
{-3.25ex\@plus -1ex \@minus -.2ex}%
|
||
{0.2ex \@plus .2ex}%
|
||
{\bodyfont\sffamily\bfseries}}
|
||
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
|
||
{3.25ex \@plus1ex \@minus.2ex}%
|
||
{-1em}%
|
||
{\bodyfont\sffamily}}
|
||
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
|
||
{3.25ex \@plus1ex \@minus .2ex}%
|
||
{-1em}%
|
||
{\bodyfont\sffamily}}
|
||
|
||
%%这一命令用于文本的悬挂缩进或特定格式化
|
||
%\def\@hangfrom#1{\setbox\@tempboxa\hbox{{#1}}%
|
||
% \hangindent 0pt%\wd\@tempboxa
|
||
%\noindent\box\@tempboxa}
|
||
|
||
%章节格式
|
||
\def\@seccntformat#1{\@ifundefined{#1@cntformat}%
|
||
{\csname the#1\endcsname\quad}% default
|
||
{\csname #1@cntformat\endcsname}% individual control
|
||
}
|
||
\def\section@cntformat{\thesection.\quad}
|
||
|
||
|
||
\def\section@cntformat{}%第一级标题不显示编号
|
||
\def\subsection@cntformat{}%
|
||
\def\subsubsection@cntformat{}%
|
||
%章节格式
|
||
\newcommand*\cup@section{}
|
||
\let\cup@section\section
|
||
\newcommand*\cup@subsection{}
|
||
\let\cup@subsection\subsection
|
||
\newcommand*\cup@subsubsection{}
|
||
\let\cup@subsubsection\subsubsection
|
||
\newcommand*\cup@startsection@orig{}
|
||
\let\cup@startsection@orig\@startsection
|
||
\newcommand\cup@startsection[6]{%
|
||
\if@noskipsec \leavevmode \fi
|
||
\par \@tempskipa #4\relax
|
||
\@afterindenttrue
|
||
\ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
|
||
\if@nobreak \everypar{}\else
|
||
\addpenalty\@secpenalty\addvspace\@tempskipa\fi
|
||
\@ifstar{\@dblarg{\@sect{#1}{\@m}{#3}{#4}{#5}{#6}}}%
|
||
{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
|
||
}
|
||
\let\@startsection\cup@startsection
|
||
\newcommand*\cup@startsection@alt[6]{%
|
||
\if@noskipsec \leavevmode \fi
|
||
\par \@tempskipa #4\relax
|
||
\@afterindenttrue
|
||
\ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
|
||
\if@nobreak \everypar{}\else
|
||
\addpenalty\@secpenalty\addvspace\@tempskipa\fi
|
||
\@ifstar{\@ssect{#3}{#4}{#5}{#6}}
|
||
{\@ssect{#3}{#4}{#5}{#6}}%
|
||
}
|
||
\newcommand*\cup@sections@none{%
|
||
\@ifstar{%
|
||
\cup@sections@none@aux
|
||
}{%
|
||
\cup@sections@none@aux
|
||
}%
|
||
}
|
||
\newcommand*\cup@sections@none@aux[2][]{%
|
||
\cup@warning{%
|
||
(Sub)section `#2' ignored%
|
||
}%
|
||
}
|
||
\patchcmd{\@ssect}{#4}{\color{structure@color}#4}{}{}
|
||
\patchcmd{\@sect}{#6}{\color{structure@color}#6}{}{}
|
||
\newcommand*\SectionNumbersOff{%
|
||
\let\@startsection\cup@startsection@alt
|
||
}
|
||
\@onlypreamble\SectionNumbersOff
|
||
\newcommand*\SectionNumbersOn{%
|
||
\let\@startsection\cup@startsection
|
||
}
|
||
\@onlypreamble\SectionNumbersOn
|
||
\newcommand*\SectionsOff{%
|
||
\let\section\cup@sections@none
|
||
\let\subsection\cup@sections@none
|
||
\let\subsubsection\cup@sections@none
|
||
}
|
||
\@onlypreamble\SectionsOff
|
||
\newcommand*\SectionsOn{%
|
||
\let\section\cup@section
|
||
\let\subsection\cup@subsection
|
||
\let\subsubsection\cup@subsubsection
|
||
}
|
||
\@onlypreamble\SectionsOn
|
||
\begingroup
|
||
\toks@=\expandafter{\tableofcontents}
|
||
\xdef\tableofcontents{%
|
||
\begingroup
|
||
\let\noexpand\@startsection\noexpand\cup@startsection@orig
|
||
\the\toks@
|
||
\endgroup
|
||
}
|
||
\endgroup
|
||
|
||
|
||
%%定义两个小的引用短句acknowledgement,suppinfoname
|
||
\newenvironment{acknowledgement}{%
|
||
\cup@section*{\acknowledgementname}%
|
||
}{}
|
||
\newenvironment{suppinfo}{%
|
||
\cup@section*{\suppinfoname}%
|
||
}{}
|
||
\newcommand*\acknowledgementname{Acknowledgement}
|
||
|
||
|
||
%%????????????????这里存在的意义是什么?
|
||
\AtEndOfClass{%
|
||
\def\bibsection{%
|
||
\cup@section*{\refname}%
|
||
}%
|
||
}
|
||
\newcommand*\suppinfoname{Supporting Information Available}
|
||
|
||
|
||
%%对于整体largetwo的整体设置,十分重要
|
||
\newcommand*\cup@layout@largetwo{%
|
||
\ifcup@simfonts\simfonts\fi
|
||
\geometry{paperwidth=210mm,paperheight=297mm,
|
||
left=1.91cm,top=2.54cm,bottom=2.54cm,right=1.91cm,
|
||
columnsep=1.5em,headsep=1cm
|
||
}
|
||
\appto{\authorfont}{\sffamily}
|
||
\appto{\affilfont}{\sffamily}
|
||
\appto{\datesize}{\sffamily}
|
||
\appto{\emailfont}{\sffamily}
|
||
\appto{\normalsize}{\sffamily}
|
||
\def\ps@plain{
|
||
\renewcommand{\@oddhead}{
|
||
\sffamily
|
||
\hfill
|
||
\parbox[t]{150mm}{
|
||
\raggedleft
|
||
{\showfont\large\textbf{\color[HTML]{002060} \cup@articletype}}\par
|
||
\vspace{1pt}
|
||
{\bodyfont\footnotesize {\journalnamefont\textbf{\cup@journal@name}}\ \cup@year;\cup@vol\ifx\cup@no\empty\else(\cup@no)\fi:\cup@page.\ https://doi.org/\cup@doi}\par
|
||
}%
|
||
}
|
||
\renewcommand{\@evenhead}{\@oddhead}
|
||
\renewcommand{\@evenfoot}{
|
||
\sffamily
|
||
{\bodyfont\footnotesize\color[HTML]{002060} {Submit a manuscript:\ \cup@journalweb} }
|
||
\hfill
|
||
\thepage
|
||
}
|
||
\renewcommand{\@oddfoot}{\@evenfoot}% 奇数页页脚 = 偶数页页脚(统一样式,不分奇偶)
|
||
}
|
||
\pagestyle{plain}
|
||
}
|
||
|
||
|
||
% Journal Definitions
|
||
\def\cup@jnl@default{%
|
||
\def\cup@journal@name{Default Journal}
|
||
\cup@layout@largetwo
|
||
}%
|
||
|
||
\def\cup@jnl@tmr{%
|
||
\edef\cup@journal@name{\cup@journalname}
|
||
\cup@layout@largetwo
|
||
\patch@numeric@authors
|
||
\let\endnote\footnote
|
||
\let\printendnotes\relax
|
||
\renewcommand{\thefootnote}{\alphalph{\value{footnote}}}
|
||
\renewcommand\footnoterule{}
|
||
\advance\skip\footins 4\p@\@plus2\p@\relax
|
||
}%
|
||
|
||
|
||
|
||
|
||
%启动
|
||
\ifcsname cup@jnl@\cup@journal\endcsname%
|
||
\csname cup@jnl@\cup@journal\endcsname%
|
||
\else%
|
||
\cup@warning{%
|
||
Unknown journal `\cup@journal':\MessageBreak
|
||
using default configuration%
|
||
}%
|
||
\cup@jnl@default%
|
||
\fi%
|
||
|
||
\RequirePackage{xpatch}
|
||
\RequirePackage{xstring}
|
||
%%定义参考文献的样式
|
||
\providecommand*\cup@reference@code{% AMA格式配置(基于BibLaTeX原生numeric样式)
|
||
\RequirePackage[%
|
||
style=numeric, % 核心:数字引用样式(AMA是数字上标)
|
||
backend=biber, % 文献处理后端(必须用Biber)
|
||
sorting=none, % 关键:按引用顺序排序(AMA要求,非字母顺序)
|
||
maxnames=3, % 作者最多显示6位,超过用et al.(AMA规范)
|
||
minnames=3, % 最少显示1位作者
|
||
giveninits=false, % 作者名:名首字母缩写(如Zhang SD,AMA要求)
|
||
natbib=true, % 兼容natbib命令(\citet/\citep)
|
||
url=false,% % 全局禁用URL(AMA优先显示DOI,可手动开启)
|
||
doi=true,
|
||
citestyle=numeric-comp,
|
||
]{biblatex}
|
||
|
||
\definecolor{citecolor}{RGB}{45, 144, 203}
|
||
\let\oldparencite\parencite%
|
||
\renewcommand{\parencite}[1]{%
|
||
\textcolor{citecolor}{\oldparencite{##1}}%
|
||
}
|
||
\DeclareFieldFormat{labelnumberwidth}{%
|
||
##1.\thinspace%
|
||
}
|
||
\DeclareFieldFormat{title}{##1}%
|
||
\DeclareFieldFormat[article]{title}{##1}% 期刊文章
|
||
\DeclareFieldFormat[book]{title}{##1}% 图书
|
||
\DeclareFieldFormat[incollection]{title}{##1}% 论文集中的文章
|
||
\DeclareFieldFormat[report]{title}{##1}% 研究报告
|
||
\DeclareFieldFormat[thesis]{title}{##1}% 学位论文
|
||
\DeclareFieldFormat{year}{##1}
|
||
\ExecuteBibliographyOptions{date=year}
|
||
\DeclareFieldFormat{volume}{##1}
|
||
\DeclareFieldFormat{number}{(##1)}
|
||
\DeclareFieldFormat{pages}{##1}
|
||
|
||
\DeclareBibliographyDriver{article}{%
|
||
\usebibmacro{bibindex}%
|
||
\usebibmacro{begentry}%
|
||
\usebibmacro{author}%
|
||
\setunit{\labelnamepunct}\newblock%
|
||
\usebibmacro{title}%
|
||
\newunit{\labelnamepunct}\newblock%
|
||
\usebibmacro{journal}%
|
||
\setunit{\labelnamepunct}%
|
||
\printfield{year}%
|
||
\setunit{\addsemicolon}% 年份后直接加英文分号(无空格)
|
||
\iffieldundef{volume}{% 无卷时不显示期
|
||
}{%
|
||
\printfield{volume}% 打印卷
|
||
}%
|
||
\iffieldundef{number}{}{%
|
||
(\printfield{number})%
|
||
}%
|
||
\setunit{\addcolon}%
|
||
\printfield{pages}
|
||
\newunit\newblock%
|
||
\usebibmacro{doi+eprint+url}%
|
||
\newunit\newblock%
|
||
\usebibmacro{finentry}%
|
||
}
|
||
|
||
\DeclareBibliographyDriver{misc}{%
|
||
\usebibmacro{bibindex}% 索引(保持和article一致)
|
||
\usebibmacro{begentry}% 条目开始(保持格式统一)
|
||
\usebibmacro{title}% 核心:直接展示title字段(优先级最高)
|
||
\newunit\newblock%
|
||
\usebibmacro{finentry}% 条目结束(保持格式统一)
|
||
}
|
||
|
||
|
||
\DeclareBibliographyDriver{book}{%
|
||
\usebibmacro{bibindex}% 索引
|
||
\usebibmacro{begentry}% 条目开始
|
||
\usebibmacro{author}% 可选:显示作者(无则跳过)
|
||
\setunit{\labelnamepunct}\newblock% 作者与标题的分隔符
|
||
\usebibmacro{title}% 核心:必显title字段
|
||
\newunit{\labelnamepunct}\newblock% 年份与出版商的分隔符
|
||
\iffieldundef{publisher}{}{% 仅当填写publisher时显示
|
||
\printfield{publisher}% book类型核心:展示出版商
|
||
}%
|
||
\newunit\newblock%
|
||
\usebibmacro{finentry}% 条目结束
|
||
}
|
||
|
||
|
||
\renewcommand*{\finalnamedelim}{\addcomma\space}%最后两个作者之间的分隔符:移除and,改为逗号+空格(或仅空格)
|
||
\DeclareFieldFormat{doi}{Available at:\newline\hspace{2em}\textcolor[HTML]{0082AA}{\url{https://doi.org/##1}}\nopunct}%
|
||
\DeclareNameAlias{sortname}{family-given}
|
||
\renewrobustcmd*{\bibinitdelim}{}% 名缩写无逗号分隔(Zhang SD而非Zhang, S. D.)
|
||
\renewrobustcmd*{\bibinitperiod}{} % 取消缩写点(SD而非S.D.)
|
||
\renewcommand*{\bibfont}{\bodyfont\footnotesize}
|
||
}
|
||
|
||
\cup@reference@code
|
||
%\cup@type@check
|
||
%\ifx\cup@manuscript\cup@manuscript@note
|
||
% \SectionsOff
|
||
%\fi
|
||
%\ifx\cup@manuscript\cup@manuscript@review
|
||
% \SectionsOn
|
||
% \SectionNumbersOn
|
||
%\fi
|
||
%\ifx\cup@manuscript\cup@manuscript@suppinfo
|
||
% \setkeys{cup}{maxauthors = 0}
|
||
% \def\thepage{S-\arabic{page}}
|
||
% \renewcommand*\thefigure{S\@arabic\c@figure}
|
||
% \renewcommand*\thescheme{S\@arabic\c@scheme}
|
||
% \renewcommand*\thetable{S\@arabic\c@table}
|
||
% \AtBeginDocument
|
||
% {%
|
||
% \renewcommand*\citenumfont[1]{S#1}%
|
||
% \renewcommand*\bibnumfmt[1]{(S#1)}%
|
||
% }
|
||
%\fi
|
||
\SectionNumbersOn |