我正在尝试在标题中添加脚注amsart
用小写字母,但总是以大写字母结尾(即使在数学模式下)。
\documentclass{amsart}
\title{ text \footnote{ text }}
\begin{document}
\maketitle
\end{document}
如何在脚注中使用小型大写字母?
答案1
解决方法很简单,但不会有脚注标记:
\documentclass{amsart}
\begin{document}
\newcommand\myfootnotetitle{\spaceskip=0pt \scshape I want this in Small Caps}
\title{Title\footnote{\protect\myfootnotetitle}}
\author{A. U. Thor}
\maketitle
\vspace*{\fill}
{\footnotesize\myfootnotetitle\par} % for checking
\end{document}
有两个问题:一是防止不合时宜的扩展(将的参数\title
传递给\MakeUppercase
),二是将文本中的\spaceskip
设置为非零值。
添加脚注标记需要更深入的操作。将星号作为脚注标记的简单解决方法如下。
\documentclass{amsart}
\makeatletter
\newcommand{\definetitlefootnote}[1]{%
\newcommand\addtitlefootnote{%
\makebox[0pt][l]{$^{*}$}%
\footnote{\protect\@titlefootnotetext}
}%
\newcommand\@titlefootnotetext{\spaceskip=\z@skip $^{*}$#1}%
}
\makeatother
% Just to make a short page for viewing the result
\setlength{\textheight}{6cm}
\calclayout
\begin{document}
\definetitlefootnote{\scshape I want this in Small Caps}
\title{Title\addtitlefootnote}
\author{A. U. Thor}
\maketitle
Some text with a footnote\footnote{Whatever}
\end{document}
答案2
这也是一种保留脚注标记的方法。您需要保存定义并在发出命令之前恢复它们\footnotemark
。然后进行一些调整以获得正确的计数器值。
标题如下:
而且这里有脚注,显示\thanks
等均不受干扰。
\documentclass{amsart}
\makeatletter
\let\mymakefnmark\@makefnmark
\let\mythefnmark\@thefnmark
\newcommand{\restorefn}{\let\@makefnmark\mymakefnmark
\let\mythfnmakr\@thefnmark}
\makeatother
\begin{document}
\title{Title text\restorefn\footnotemark}
\author{A. N. Author}
\date{\today}
\thanks{Thanks}
\maketitle
\stepcounter{footnote}\footnotetext{\scshape Footnote.}
\end{document}
答案3
该解决方案提供了更多的自动化功能并保持用户界面原样,因此您可以继续书写\title[short text]{text\footnote{text}}
。
基本思想是禁用内部宏\@adminfootnotes
通过以下方式禁用通常的脚注机制
\xpatchcmd\@adminfootnotes{\let\@makefnmark\relax}{}{}{}
然后使用 -duo \footnotemark
。\footnotetext
标记是通过类似的东西构建的\title{...\fotenotemark}
,并且\footnotetext
在外面声明以确保它不受大写的影响。后者是通过一个简单的补丁来完成的\maketitle
:
\xapptocmd\maketitle{%
\stepcounter{footnote}
\ifx\@empty\titlefn\else
\footnotetext{\scshape\titlefn}\fi}{}{}
\titlefn
\footnote{...}
是重新定义版本中收集的脚注文本的存储\title
(请注意,\footnote
这里仅作为分隔符):
\def\title@aux#1\footnote#2#3{%
\global\let\shorttitle\@tempa
\gdef\titlefn{#2}
\ams@title{#1\ifx\@empty\titlefn\else\protect\footnotemark\fi}
\ifx#3\footnote\expandafter\@gobble\else\expandafter#3\fi
}
当然,在这个重新定义中也\footnotemark
引入了。
完整代码
\documentclass{amsart}
\usepackage{xpatch}
\makeatletter
\xpatchcmd\@adminfootnotes{\let\@makefnmark\relax}{}{}{}
\xapptocmd\maketitle{%
\stepcounter{footnote}
\ifx\@empty\titlefn\else
\footnotetext{\scshape\titlefn}\fi}{}{}
\let\ams@title\title
\def\title{\@dblarg\title@}
\def\title@[#1]#2{\gdef\@tempa{#1}\title@aux#2\footnote{}}
\def\title@aux#1\footnote#2#3{%
\global\let\shorttitle\@tempa
\gdef\titlefn{#2}
\ams@title{#1\ifx\@empty\titlefn\else\protect\footnotemark\fi}
\ifx#3\footnote\expandafter\@gobble\else\expandafter#3\fi
}
\makeatother
\title{text\footnote{text}}
\begin{document}
\maketitle
%for testing purposes
\vfill
\footnotesize\scshape\hskip3.5pt text
\end{document}