При использовании 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
from start с 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
в определении \maketitle
пакета doc
.
\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
made by doc
package. Хотя ИМХО это логичный/правильный подход, решение с \makeatletter ...
stuffs нелегко запомнить. Поэтому мое решение - сделать фальшивое спасибо с простыми сносками без отметокпосле \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}