我需要掌握一个自定义脚注命令,该命令可以通过以下几个命令来总结xparse
:
\documentclass[11pt, a4paper, frenchb]{report}
\usepackage{xparse}
\newcounter{myfnCnt}
% % % % % % % % MYFOOTNOTE % % % % % % % %
% #1 footnote content
\ProvideDocumentCommand \myfootnote{ m }
{% MARK
\stepcounter{myfnCnt}\hspace{.1cm}\myfnmark%
% FOOTNOTE
{\let\thefootnote\relax\footnote{\myfnmark~#1}}
}
% % % % % % % % MYFNMARK % % % % % % % %
%
\ProvideDocumentCommand \myfnmark{}
{\texttrademark\textsuperscript{ \arabic{myfnCnt}}}
\begin{document}
They see me rollin\myfootnote{they hatin}
Son, they shook\footnote{Cause ain't no such things as halfway crooks}
\end{document}
上述命令确实提供了一个合理的解决方案:能够调整计数器周围的自定义样式。但它缺少超链接。我可以手动完成,但我正在寻找一种更优雅、更强大的解决方案,无论是自定义命令还是“基于包”。我研究了曼尼福特和大脚但我不认为他们能做到,或者我遗漏了什么(可能……)。例如,这\DeclareNewFootnote[⟨footnote style⟩]{⟨suffix⟩}[⟨enumeration style⟩]
是“固定”定制,您无法提供自己的脚注样式。
答案1
Pschiii,实际上,可以使用两行解决方案来实现manyfoot
:
\DeclareNewFootnote{B}
\renewcommand{\thefootnoteB}{\texttrademark \arabic{footnoteB}}
使用以下命令调用它:\footnoteB{...}
但它在制作超链接方面遇到了麻烦,所以这里对我的自定义无封装现已完全正常运行的解决方案(它使用脚注的格式):
% % % % % % % % MYFOOTNOTE % % % % % % % %
% #1 footnote content
\ProvideDocumentCommand \tm{ m }
{\stepcounter{myfnCnt}{\let\thefootnote\myfnmark\footnote{#1}}}
% % % % % % % % MYFNMARK % % % % % % % %
%
\ProvideDocumentCommand \myfnmark{}
{\textsc{tm} \arabic{myfnCnt}}
希望这对某人有用。
[03/15 编辑]
这是一个更复杂的交叉引用方法
% !TeX encoding = UTF-8
% !TeX spellcheck = fr_FR
\documentclass[11pt, frenchb, twoside]{report}
% IMPORTS
\usepackage{blindtext}
\usepackage{hyperref}
\usepackage{polyglossia}
\usepackage{refcount}
\usepackage{xparse}
\usepackage{xifthen}
\newcounter{__fnCnt}
% % % % % % % % FN % % % % % % % %
% #1 footnote label
% #2 footnote content
\ProvideDocumentCommand \myfn{ m m }
{%
\refstepcounter{__fnCnt}{\let\thefootnote\myfnLabel\footnote{#2}}
\setcounterref{__fnCnt}{fn:#1}\label{fn:#1}
}
% % % % % % % % FNREF % % % % % % % %
% #1 star : add as footnote
% #2 label
\ProvideDocumentCommand \myfnRef{ s m }
{%
\IfBooleanTF{#1}
{\footnote{See \myfnLink{fn:#2}.}}
{\myfnLink{fn:#2}}%
}
% % % % % % % % FNLABEL % % % % % % % %
%
\ProvideDocumentCommand \myfnLabel{}
{FN-\arabic{__fnCnt} }
% % % % % % % % FNLINK % % % % % % % %
% #1 label
\ProvideDocumentCommand \myfnLink{ m }
{\hyperref[#1]{\textsuperscript{FN-\getrefnumber{#1}}}, p. \getpagerefnumber{#1}}
\begin{document}
Hello World\myfn{fnref}{This is my custom footnote} !\\[3cm]
\blindtext[10]\myfnRef*{fnref}
\end{document}