\thanks{} 使用 amsart 和 doc 时脚注缩进

\thanks{} 使用 amsart 和 doc 时脚注缩进

amsart当将文档类与包结合使用时,我在第一作者的脚注doc中得到了额外的缩进:thanks

\documentclass{amsart}
\usepackage{doc}
\begin{document}
\title{title}
\author{first author}
\thanks{thanks1}
\author{second author}
\thanks{thanks2}
\maketitle
\end{document}

产量

并发症脚注的裁剪

有什么方法可以避免这种行为吗?

答案1

更新\@setthanks似乎就足够了:

在此处输入图片描述

\documentclass{amsart}
\usepackage{doc}

\makeatletter
\def\@setthanks{\vspace{-\baselineskip}\def\thanks##1{\@par##1\@addpunct.}\thankses}
\makeatother

\begin{document}

\title{title}
\author{first author}
\thanks{thanks1}
\author{second author}
\thanks{thanks2}

\maketitle

\end{document}

amsart提及

为了使多个致谢脚注在单个 \@footnotetext参数中起作用,我们需要\par忽略第一个。参见 \@setthanks

然后将 设置\def\par{\let\par\@par}为 中的第一项\@footnotetext。因此,\@par从头开始使用 every\thanks引入了垂直跳跃,使用 可将其还原\vspace{-\baselineskip}

答案2

\maketitle修补命令中设置脚注缩进的部分doc.sty以使用以下值amsart

\documentclass{amsart}
\usepackage{etoolbox}
\usepackage{doc}
\patchcmd\maketitle
  {\parindent 1em}{\parindent\normalparindent}%
  {}{}
\patchcmd\maketitle
  {\hbox to1.8em}{\hbox to\normalparindent}%
  {}{}
\begin{document}
\title{title}
\author{first author}
\thanks{thanks1}
\author{second author}
\thanks{thanks2}
\maketitle
\end{document}

答案3

例如,您可以通过包\@makefntext中的定义来更改的定义。\maketitledoc

\documentclass{amsart}
\usepackage{doc}
\makeatletter
\def\maketitle{\par
      \begingroup
        \def\thefootnote{\fnsymbol{footnote}}%
      \setcounter{footnote}\z@
      \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}%
      \long\def\@makefntext##1{\noindent
          \ifnum\c@footnote>\z@\relax
            \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1%
          \else
          \hbox to1.8em{\hfill}%
            \parbox{\dimexpr\linewidth-1.8em}{\raggedright ##1}%
          \fi}
      \if@twocolumn\twocolumn[\@maketitle]%
      \else\newpage\global\@topnum\z@\@maketitle\fi
      \thispagestyle{titlepage}\@thanks\endgroup
      \setcounter{footnote}\z@
      \gdef\@date{\today}\gdef\@thanks{}%
      \gdef\@author{}\gdef\@title{}}


\makeatother
\begin{document}
\title{title\footnote{A footnote}\footnote{Another footnote}}
\author{first author}
\thanks{thanks1}
\author{second author}
\thanks{thanks2}
\maketitle
\end{document}

答案4

所有答案都正确,\maketitle即由doc软件包制作。虽然在我看来这是合乎逻辑/正确的方法,但包含\makeatletter ...内容的解决方案并不容易记住。所以我的解决方案是用一个简单的脚注(没有标记)来表示虚假的感谢 \maketitle肯定有人会认为这是一种不好的做法,但据我所知,这样做不会破坏任何东西:

\documentclass{amsart}
\usepackage{doc}
\def\thanks#1{{\let\thefootnote\relax\footnote{#1.}\setcounter{footnote}{0}}}
\begin{document}
\author{first author}
\author{second author}
\title{title}
\maketitle
\thanks{thanks1}
\thanks{thanks2}
Some  text\footnote{A normal footnote.}
\end{document}

平均能量损失

相关内容