Commit fd769d50 authored by liziwl's avatar liziwl
Browse files

移除不用cite-style选项

parent 4e1efc07
Loading
Loading
Loading
Loading
+0 −332
Original line number Diff line number Diff line
@@ -767,15 +767,6 @@
%   \item 正文模式(inline),比如“文 [3] 中详细说明了……”。
% \end{enumerate}
%
% \DescribeOption{cite-style}
% 用户可以将引用标注的格式设为正文模式:
% \begin{latex}
%   \thusetup{
%     cite-style = inline, % 手动设置正文模式
%   }
% \end{latex}
% 也可以使用 \cs{inlinecite}\marg{key} 临时使用正文模式的引用标注。
%
% \paragraph{著者-出版年制}
% 著者-出版年制的参考文献引用有两种模式:
% \begin{enumerate}
@@ -800,61 +791,6 @@
% 然后使用 \texttt{bibtex} 对 \file{.aux} 文件进行编译得到 \file{.bbl} 文件。
% 其中的参考文献表内容会在后续编译时替换到 \cs{bibliography} 的位置。
%
% ^^A 参考文献通常可以使用 \hologo{BibTeX} 或 biblatex 生成。
% ^^A \hologo{BibTeX} 是 LaTeX 处理参考文献的传统的方式,
% ^^A 需要在使用 \cs{bibliographystyle}\marg{style} 选择样式
% ^^A 并用 \cs{bibliography} 设置 \file{.bib} 的路径。
% ^^A 然后使用 \texttt{bibtex} 对 \file{.aux} 文件进行编译得到 \file{.bbl} 文件。
% ^^A 其中的参考文献表内容会在后续编译时替换到 \cs{bibliography} 的位置。
% ^^A Biblatex 是较新的方式,需要在载入宏包时通过 \option{style} 选择样式,
% ^^A 在导言区使用 \cs{addbibresource} 声明数据库的路径,
% ^^A 并在输出参考文献表的位置使用 \cs{printbibliography} 命令,
% ^^A 而且编译参考文献的命令需要换为 biber。
% ^^A 这两种方式各有优缺点,比如 BibTeX 无法对中文按照拼音排序,一些样式更新不够及时;
% ^^A Biblatex 运行较缓慢,无法对多个参考文献表使用不同样式。
% ^^A 用户需要根据实际选择合适的方式。
% ^^A
% ^^A 研究生要求的参考文献格式基于《信息与文献 参考文献著录规则》(GB/T 7714—2015)
% ^^A 进行了少量改编(如英文姓名不使用全大写),
% ^^A 可以选择“顺序编码制”和“著者-出版年制”。
% ^^A 如果使用 BibTeX 的方式,需要在导言区载入 \pkg{natbib} 宏包并选择样式,如:
% ^^A \begin{latex}
% ^^A   % 顺序编码制
% ^^A   \usepackage[sort]{natbib}
% ^^A   \bibliographystyle{thuthesis-numeric}
% ^^A \end{latex}
% ^^A 或
% ^^A \begin{latex}
% ^^A   % 著者-出版年制
% ^^A   \usepackage{natbib}
% ^^A   \bibliographystyle{thuthesis-author-year}
% ^^A \end{latex}
% ^^A 其中的 \option{sort} 选项会将同一处引用的多个文献编号严格按照顺序排序,
% ^^A 这并非《写作指南》要求,但是推荐使用。
% ^^A 这里调用的样式由 \href{http://ctan.org/pkg/gbt7714}{\pkg{gbt7714}} 的 \file{.bst} 进行了少量修改。
% ^^A % ^^A 参考文献表采用“著者-出版年”制组织时,各篇文献首先按文种集中,然后按著者字
% ^^A 顺和出版年排列;中文文献可以按著者汉语拼音字顺排列,也可以按著者的笔画笔顺排列。
% ^^A 但由于 \hologo{BibTeX} 功能的局限性,无法自动获取著者姓名的拼音或笔画笔顺进行正确排序。
% ^^A 一种解放方法是在 \file{.bib} 数据库的中文文献的 |key| 域手动录入著者姓名的拼音,
% ^^A 这比较适合中文文献数量较少的情况,如:
% ^^A \begin{latex}
% ^^A   @book{capital,
% ^^A     author = {马克思 and 恩格斯},
% ^^A     key    = {ma3 ke4 si1 & en1 ge2 si1},
% ^^A     ...
% ^^A   }
% ^^A \end{latex}
% ^^A 另一种方式是使用 biblatex,应在在导言区设置
% ^^A \begin{latex}
% ^^A   \usepackage[backend=biber,style=thuthesis-author-year]{biblatex}
% ^^A   \addbibresource{ref/refs.bib}
% ^^A \end{latex}
% ^^A 这里的样式由 \href{https://ctan.org/pkg/biblatex-gb7714-2015}{biblatex-gb7714-2015} 进行了少量改编,
% ^^A 一些额外用法可以参考该宏包的文档。
% ^^A 注意 \pkg{biblatex} 跟 \pkg{natbib} 不兼容,
% ^^A 而且 \cs{addbibresource} 必须在导言区设置。
% ^^A 输出参考文献表应使用 \cs{printbibliography} 命令。
%
% \subsubsection{致谢}
%
% \DescribeEnv{acknowledgements}
@@ -4787,23 +4723,6 @@ Thesis for the degree of \degree@level@en@noun \ of \thu@degree@domain@en%
% \subsection{参考文献}
% \label{sec:ref}
%
% 参考文献的格式根据用户选择的 \BibTeX{}/BibLaTeX 分别进行配置,
% 所以使用 \pkg{filehook} 的方式。
%
% 设置 \option{cite-style} 的接口,只对 \BibTeX{} 的编译方式有效。
%    \begin{macrocode}
  \thu@define@key{
    cite-style = {
      name = cite@style,
      choices = {
        super,
        inline,
        author-year,
      }
    }
  }
%    \end{macrocode}
%
% \subsubsection{BibTeX\pkg{natbib} 宏包}
%
% \BibTeX{} 和 \pkg{natbib} 宏包的配置。
@@ -4820,257 +4739,6 @@ Thesis for the degree of \degree@level@en@noun \ of \thu@degree@domain@en%
%    \end{macrocode}
% \end{macro}
%
% 几种种引用样式,与 \file{bst} 文件名保持一致,
% 这样在使用 \cs{bibliographystyle} 选择参考文献表的样式时也会设置对应的引用样式。
%    \begin{macrocode}
%  \newcommand\bibstyle@super{%
%    \bibpunct{[}{]}{,}{s}{,}{\textsuperscript{,}}}
%  \newcommand\bibstyle@inline{%
%    \bibpunct{[}{]}{,}{n}{,}{,}}
%  \@namedef{bibstyle@author-year}{%
%    \bibpunct{(}{)}{;}{a}{,}{,}}
%    \end{macrocode}
%
%    \begin{macrocode}
%  \thu@option@hook{cite-style}{\@nameuse{bibstyle@\thu@cite@style}}
%    \end{macrocode}
%
% 几种种引用样式,与 \file{bst} 文件名保持一致,
% 这样在使用 \cs{bibliographystyle} 选择参考文献表的样式时也会设置对应的引用样式。
%    \begin{macrocode}
%  \@namedef{bibstyle@thuthesis-numeric}{\citestyle{super}}
%  \@namedef{bibstyle@thuthesis-author-year}{\citestyle{author-year}}
%  \@namedef{bibstyle@thuthesis-bachelor}{\citestyle{super}}
%  \@namedef{bibstyle@thuthesis-inline}{\citestyle{inline}}
%    \end{macrocode}
%
% 修改引用的样式。
% 这里在 filehook 中无法使用 \cs{patchcmd},所以只能手动重定义。
%
% 将 \cs{citep} super 式引用的页码改为上标。
%    \begin{macrocode}
  \renewcommand\NAT@citesuper[3]{\ifNAT@swa
    \if*#2*\else#2\NAT@spacechar\fi
    % \unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close}%
    %  \if*#3*\else\NAT@spacechar#3\fi\else #1\fi\endgroup}
    \unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close\if*#3*\else#3\fi}%
    \else #1\fi\endgroup}
%    \end{macrocode}
%
% 将 \cs{citep} numbers 式引用的页码改为上标并置于括号外。
%    \begin{macrocode}
  \renewcommand\NAT@citenum%
      [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\NAT@spacechar\fi
          % #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup}
          #1\NAT@@close\textsuperscript{\if*#3*\else#3\fi}\else#1\fi\endgroup}
%    \end{macrocode}
%
% 修改 \cs{citet} 引用的样式。
%    \begin{macrocode}
  \def\NAT@citexnum[#1][#2]#3{%
    \NAT@reset@parser
    \NAT@sort@cites{#3}%
    \NAT@reset@citea
    \@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty
      \@for\@citeb:=\NAT@cite@list\do
      {\@safe@activestrue
      \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
      \@safe@activesfalse
      \@ifundefined{b@\@citeb\@extra@b@citeb}{%
        {\reset@font\bfseries?}
          \NAT@citeundefined\PackageWarning{natbib}%
        {Citation `\@citeb' on page \thepage \space undefined}}%
      {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm
        \NAT@parse{\@citeb}%
        \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
          \let\NAT@name=\NAT@all@names
          \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
        \fi
        \ifNAT@full\let\NAT@nm\NAT@all@names\else
          \let\NAT@nm\NAT@name\fi
        \ifNAT@swa
        \@ifnum{\NAT@ctype>\@ne}{%
          \@citea
          \NAT@hyper@{\@ifnum{\NAT@ctype=\tw@}{\NAT@test{\NAT@ctype}}{\NAT@alias}}%
        }{%
          \@ifnum{\NAT@cmprs>\z@}{%
          \NAT@ifcat@num\NAT@num
            {\let\NAT@nm=\NAT@num}%
            {\def\NAT@nm{-2}}%
          \NAT@ifcat@num\NAT@last@num
            {\@tempcnta=\NAT@last@num\relax}%
            {\@tempcnta\m@ne}%
          \@ifnum{\NAT@nm=\@tempcnta}{%
            \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}%
          }{%
            \advance\@tempcnta by\@ne
            \@ifnum{\NAT@nm=\@tempcnta}{%
%    \end{macrocode}
%
% 在顺序编码制下,\pkg{natbib} 只有在三个以上连续文献引用才会使用连接号,
% 这里修改为允许两个引用使用连接号。
%    \begin{macrocode}
              % \ifx\NAT@last@yr\relax
              %   \def@NAT@last@yr{\@citea}%
              % \else
              %   \def@NAT@last@yr{--\NAT@penalty}%
              % \fi
              \def@NAT@last@yr{-\NAT@penalty}%
            }{%
              \NAT@last@yr@mbox
            }%
          }%
          }{%
          \@tempswatrue
          \@ifnum{\NAT@merge>\@ne}{\@ifnum{\NAT@last@num=\NAT@num\relax}{\@tempswafalse}{}}{}%
          \if@tempswa\NAT@citea@mbox\fi
          }%
        }%
        \NAT@def@citea
        \else
          \ifcase\NAT@ctype
            \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else
              \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}%
            \fi
            \if*#1*\else#1\NAT@spacechar\fi
            \NAT@mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}%
            \NAT@def@citea@box
          \or
            \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}%
          \or
            \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}%
          \or
            \NAT@hyper@citea@space\NAT@alias
          \fi
        \fi
      }%
      }%
        \@ifnum{\NAT@cmprs>\z@}{\NAT@last@yr}{}%
        \ifNAT@swa\else
%    \end{macrocode}
%
% 将页码放在括号外边,并且置于上标。
%    \begin{macrocode}
          % \@ifnum{\NAT@ctype=\z@}{%
          %   \if*#2*\else\NAT@cmt#2\fi
          % }{}%
          \NAT@mbox{\NAT@@close}%
          \@ifnum{\NAT@ctype=\z@}{%
            \if*#2*\else\textsuperscript{#2}\fi
          }{}%
        \fi
    }{#1}{#2}%
  }%
%    \end{macrocode}
%
% 修改 \cs{citep} author-year 式的页码:
%    \begin{macrocode}
  \renewcommand\NAT@cite%
      [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\NAT@spacechar\fi
          % #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup}
          #1\NAT@@close\if*#3*\else\textsuperscript{#3}\fi\else#1\fi\endgroup}
%    \end{macrocode}
%
% 修改 \cs{citet} author-year 式的页码:
%    \begin{macrocode}
  \def\NAT@citex%
    [#1][#2]#3{%
    \NAT@reset@parser
    \NAT@sort@cites{#3}%
    \NAT@reset@citea
    \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty
      \@for\@citeb:=\NAT@cite@list\do
      {\@safe@activestrue
      \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
      \@safe@activesfalse
      \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%
        {\reset@font\bfseries ?}\NAT@citeundefined
                  \PackageWarning{natbib}%
        {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}%
      {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year
        \NAT@parse{\@citeb}%
        \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
          \let\NAT@name=\NAT@all@names
          \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
        \fi
      \ifNAT@full\let\NAT@nm\NAT@all@names\else
        \let\NAT@nm\NAT@name\fi
      \ifNAT@swa\ifcase\NAT@ctype
        \if\relax\NAT@date\relax
          \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}%
        \else
          \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
              \ifx\NAT@last@yr\NAT@year
                \def\NAT@temp{{?}}%
                \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%
                {Multiple citation on page \thepage: same authors and
                year\MessageBreak without distinguishing extra
                letter,\MessageBreak appears as question mark}\fi
                \NAT@hyper@{\NAT@exlab}%
              \else\unskip\NAT@spacechar
                \NAT@hyper@{\NAT@date}%
              \fi
          \else
            \@citea\NAT@hyper@{%
              \NAT@nmfmt{\NAT@nm}%
              \hyper@natlinkbreak{%
                \NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb
              }%
              \NAT@date
            }%
          \fi
        \fi
      \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%
      \or\@citea\NAT@hyper@{\NAT@date}%
      \or\@citea\NAT@hyper@{\NAT@alias}%
      \fi \NAT@def@citea
      \else
        \ifcase\NAT@ctype
          \if\relax\NAT@date\relax
            \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%
          \else
          \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
              \ifx\NAT@last@yr\NAT@year
                \def\NAT@temp{{?}}%
                \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%
                {Multiple citation on page \thepage: same authors and
                year\MessageBreak without distinguishing extra
                letter,\MessageBreak appears as question mark}\fi
                \NAT@hyper@{\NAT@exlab}%
              \else
                \unskip\NAT@spacechar
                \NAT@hyper@{\NAT@date}%
              \fi
          \else
            \@citea\NAT@hyper@{%
              \NAT@nmfmt{\NAT@nm}%
              \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}%
                {\@citeb\@extra@b@citeb}%
              \NAT@date
            }%
          \fi
          \fi
        \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%
        \or\@citea\NAT@hyper@{\NAT@date}%
        \or\@citea\NAT@hyper@{\NAT@alias}%
        \fi
        \if\relax\NAT@date\relax
          \NAT@def@citea
        \else
          \NAT@def@citea@close
        \fi
      \fi
      }}\ifNAT@swa\else
%    \end{macrocode}
%
% 将页码放在括号外边,并且置于上标。
%    \begin{macrocode}
        % \if*#2*\else\NAT@cmt#2\fi
        \if\relax\NAT@date\relax\else\NAT@@close\fi
        \if*#2*\else\textsuperscript{#2}\fi
      \fi}{#1}{#2}}
%    \end{macrocode}
%
% 参考文献表的正文部分用五号字。
% 行距采用固定值 16 磅,段前空 3 磅,段后空 0 磅。
%