如题,当使用l3doc
文档类时,脚注只有编号,在页脚没有正常显示内容,该怎么解决呢?MWE
如下:
\documentclass{l3doc}
\begin{document}
\begin{function}{test}
lalala\footnote{this is a footnote}
\end{function}
\end{document}
得到的结果如下:
在导言区加上这个:
\ExplSyntaxOn\makeatletter
\providecommand\Hy@footnote@currentHref{}
\prop_new:N\g__codedoc_fnmark_prop
\cs_new_protected:Npn \__codedoc_fn_store:
{
\prop_gput:Nxx\g__codedoc_fnmark_prop
{fn\int_use:N\c@footnote}{{\Hy@footnote@currentHref}{\int_use:N\c@footnote}}
}
\cs_new_protected:Npn \__codedoc_fn_restore:n #1
{
\prop_get:NnN \g__codedoc_fnmark_prop {fn#1}\l__codedoc_tmpa_tl
\tl_gset:Nx\Hy@footnote@currentHref
{\exp_last_unbraced:NV\use_i:nn \l__codedoc_tmpa_tl }
\setcounter{footnote}{\exp_last_unbraced:NV\use_ii:nn \l__codedoc_tmpa_tl}
}
\cs_generate_variant:Nn \hook_gput_next_code:nn {ne}
\cs_new_protected:Npn \__codedoc_fn_footnote:nn #1 #2
{
\footnotemark
\__codedoc_fn_store:
\hook_gput_next_code:ne {env/#1/after}
{\exp_not:N\__codedoc_fn_restore:n{\int_use:N\c@footnote}{\exp_not:n{\footnotetext{#2}}}}}
\AddToHook{env/function/begin}{\def\footnote{\__codedoc_fn_footnote:nn{function}}}
\AddToHook{env/variable/begin}{\def\footnote{\__codedoc_fn_footnote:nn{variable}}}
\makeatother\ExplSyntaxOff
好滴,谢谢雾佬
雾佬我想额外再咨询一下您就是,如果使用
texlive 2024
编译fduthesis
的文档:1、使用
xetex fduthesis
生成cls
等文档类;2、使用
xelatex fduthesis
生成文档,其中对fduthesis.dtx
中的这部分内容修改如下以开启代码实现部分:但是,对于
texlive2023
能够正常编译,对于texlive2024
,则会在这个地方出现报错:报错为:
想请问一下雾佬有没有好的解决办法呢
原始版本是这样的:
我试过将
\@@_get_hyper_target:xN
修改为\@@_get_hyper_target:eN
,但是又会报别的错。比如报\tl_replace_all:Non
和\@@_macroname_prefix:o
:! Undefined control sequence.
@u3379 等待作者更新。
也可以自己修复,命令的变体未定义只需要用
\cs_generate_variant:Nn
生成相应的变体即可。@u10307 好的,谢谢雾佬