CTeX-org / forum

A temporarily alternate forum of `bbs.ctex.org`
https://t.me/chinesetex
Apache License 2.0
210 stars 16 forks source link

希望在同一个\section标题中多次使用脚注功能,并且可以在不手动指定具体数字的情况下生成不同的序号 #296

Closed Mikachu2333 closed 10 months ago

Mikachu2333 commented 1 year ago

检查

编译环境

描述问题

如题,希望在同一个\section中多次使用脚注功能,并且可以在不手动指定具体数字的情况下生成不同的序号。

我能理解错误发生的原理是因为在同一个条目处反复\footnotemark导致最终计数器已经增加完毕,但还没有开始\footnotetext{},而最终所有\footnotetext{}又挤在一起导致计数器重复应用了最后增加完毕的结果导致的序号重复

直接使用\footnote{}当然能解决问题,但是因为我的脚注超级长,这样的话一个标题就支离破碎的,难以阅读……

最小工作示例(MWE)

\documentclass{ctexrep}
\begin{document}
\chapter[衣食住玩与生活]{衣食住玩与生活}

\section[etc]{etc\footnotemark}
\footnotetext{etc...}

%---失败的方式
\section[美食与生活]{美食与生活\footnotemark \footnotemark \footnotemark \footnotemark \footnotemark}
\footnotetext{因文章篇幅原因,本指南仅罗列了同学们提及次数较多的食物或店铺,未能全部列出敬请谅解。}
\footnotetext{下列提及的食物(店铺)均按照空间顺序排列,与好吃程度无关,所用名称为同学习惯性称呼,括号内为特别提醒。}
\footnotetext{标注“$^{〈早〉}$”的店铺约6:00即开始供应。}
\footnotetext{标注“$^{〈晚〉}$”的店铺营业时间最晚可至22:30,其余均在18:30左右停业。}
\footnotetext{奶茶/咖啡店、超市、水果店等单独说明。}

%---成功的方式,但是过于“不优雅”,尤其是当上面增减了脚注数量后需要手动修正后面所有的脚注序号……
%\section[美食与生活]{美食与生活\footnotemark[2] \footnotemark[3] \footnotemark[4] \footnotemark[5] %\footnotemark[6]}
%\footnotetext[2]{略略略}
%\footnotetext[3]{略略略略略略}
%\footnotetext[4]{略略略略略略略略略}
%\footnotetext[5]{略略略略略略略略略略略略}
%\footnotetext{略略略略略略略略略略略略略略略}

testtesttest
\end{document}

输出

无误

我还做了这些尝试

1 试图按照LaTeX技巧197:如何重复使用相同内容的脚注? 中提到的方法使用人为干预计数,因无法在脚注生成处定义计步器而失败; 2 试图使用 %\footnotetext[\thefootnote-3]{略略略略略} 这种运算方式指定序号,编译成功但是序号未改变,失败。

附件

zepinglee commented 1 year ago

直接使用\footnote{}当然能解决问题,但是因为我的脚注超级长,这样的话一个标题就支离破碎的,难以阅读……

在我看来适当换行和缩进就可以避免“支离破碎”。

\documentclass{ctexrep}
\begin{document}
\chapter[衣食住玩与生活]{衣食住玩与生活}
\section[美食与生活]{美食与生活%
  \footnote{因文章篇幅原因,本指南仅罗列了同学们提及次数较多的食物或店铺,未能全部列出敬请谅解。}%
  \footnote{下列提及的食物(店铺)均按照空间顺序排列,与好吃程度无关,所用名称为同学习惯性称呼,括号内为特别提醒。}%
  \footnote{标注“\textsuperscript{〈早〉}”的店铺约6:00即开始供应。}%
  \footnote{标注“\textsuperscript{〈晚〉}”的店铺营业时间最晚可至22:30,其余均在18:30左右停业。}%
  \footnote{奶茶/咖啡店、超市、水果店等单独说明。}%
}
\end{document}

或者可以考虑自定义命令。

\documentclass{ctexrep}
\begin{document}
\chapter[衣食住玩与生活]{衣食住玩与生活}
\newcommand\myfootnote{%
  \footnote{因文章篇幅原因,本指南仅罗列了同学们提及次数较多的食物或店铺,未能全部列出敬请谅解。}%
  \footnote{下列提及的食物(店铺)均按照空间顺序排列,与好吃程度无关,所用名称为同学习惯性称呼,括号内为特别提醒。}%
  \footnote{标注“\textsuperscript{〈早〉}”的店铺约6:00即开始供应。}%
  \footnote{标注“\textsuperscript{〈晚〉}”的店铺营业时间最晚可至22:30,其余均在18:30左右停业。}%
  \footnote{奶茶/咖啡店、超市、水果店等单独说明。}%
}
\section[美食与生活]{美食与生活\myfootnote}
\end{document}
Mikachu2333 commented 1 year ago

自定义命令!感谢感谢! 这就是我想要的相对比较优雅的解决方案了!

Mikachu2333 commented 1 year ago

不过还是向刨根问底一下,如果在嵌套的enumerate环境中,直接使用\footnote{}无法正确生成脚注的情况下仍然希望试险这一目标该怎么做呢

muzimuzhi commented 1 year ago

如果在嵌套的enumerate环境中,直接使用\footnote{}无法正确生成脚注的情况下仍然希望试险这一目标该怎么做呢

建议提供新的例子,甚至可以提新的 issue(当前 issue 是关于 \section 和脚注的)

zepinglee commented 1 year ago

不过还是向刨根问底一下,如果在嵌套的enumerate环境中,直接使用\footnote{}无法正确生成脚注的情况下仍然希望试险这一目标该怎么做呢

我没有遇到这样的问题。建议结合具体的代码讨论。