stone-zeng / fduthesis

LaTeX thesis template for Fudan University
LaTeX Project Public License v1.3c
829 stars 208 forks source link

fdu的说明文档无法在texlive 2024中正常编译? #344

Open tsiayigong opened 3 months ago

tsiayigong commented 3 months ago

fdu的说明文档在texlive 2023下能正常编译,但是当我开启代码实现细节部分:

\begin{document}
%^^A! \begin{document}
%^^A!
%<!--CODEDOC-->  \DisableImplementation
  \EnableImplementation
%<!--CODEDOC-->  \def\FDUCODEDOC{}
  \DocInput{fduthesis.dtx}
  \DocInput{fduthesis-doc.dtx,fduthesis-logo.dtx}
%<!--CODEDOC-->  \IndexLayout
%<!--CODEDOC-->  \PrintChanges
%<!--CODEDOC-->  \PrintIndex
\end{document}

在texlive 2024下编译时,会报错:

! Undefined control sequence.
\__codedoc_print_macroname:nN ..._hyper_target:xN 
                                                  {\exp_not:n {#1}\bool_if:N...
l.2780 %   \l_@@_tmpa_tl,\l_@@_tmpb_tl}

应该是这一部分的问题:

% \begin{macro}{\@@_print_macroname:nN}
% 该函数不再需要根据命令的长短切换字体。
%    \begin{macrocode}
\cs_set_protected:Npn \@@_print_macroname:nN #1#2
  {
    \strut
    \@@_get_hyper_target:xN
      {
        \exp_not:n {#1}
        \bool_if:NT #2 { \tl_to_str:n {TF} }
      }
      \l_@@_tmpa_tl
    \cs_if_exist:cTF { r@ \l_@@_tmpa_tl }
      { \exp_args:NNo \label@hyperref [ \l_@@_tmpa_tl ] }
      { \use:n }
      {
        \tl_set:Nn \l_@@_tmpa_tl {#1}
%    \end{macrocode}
% 命令中的空格改用“\textvisiblespace”显示。
%    \begin{macrocode}
        \tl_replace_all:Non \l_@@_tmpa_tl
          { \c_catcode_other_space_tl }
          { \fontspec_visible_space: }
        \@@_macroname_prefix:o \l_@@_tmpa_tl
        \@@_macroname_suffix:N #2
      }
  }
%    \end{macrocode}
% \end{macro}

我尝试过将\@@_get_hyper_target:xN修改为\@@_get_hyper_target:eN,但是其余部分\tl_replace_all:Non\@@_macroname_prefix:o依然会报类似的错误。

请问如何解决呀?