جواب داده شده در لینکی که در نظر خود گذاشتید یک پاسخ کاملاً ناشیانه است. در واقع شما دارید وصلهکاری میکنید و مشکل اصلی را پیدا نکردهاید.
مشکل اصلی کجاست؟
دستور اصلی که باعث شود شمارههای زیرنویس در متن درج شوند، دستور \@makefnmark
است. در فایل latex.ltx
دستور \@makefnmark
بصورت زیر تعریف شده است:
\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
و دستور \@textsuperscript
بصورت زیر تعریف شده است:
\def\@textsuperscript#1{%
{\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
لاتک برای درج شماره زیرنویس در متن چه میکند؟
از ماکروهای بالا به سادگی میتوان دید که لاتک وارد محیط ریاضی میشود و شماره زیرنویس را به عنوان توان قرار میدهد.
در صورتی که در کلاسهای ams
دستور \@makefnmark
بصورت زیر تعریف شده است:
\def\@makefnmark{%
\leavevmode
\raise.9ex\hbox{\fontsize\sf@size\z@\normalfont\@thefnmark}%
}
کلاسهای ams
برای درج شماره زیرنویس در متن چه کار میکنند؟
از ماکروی بالا به راحتی میتوان دید که کلاسهای ams
برای درج شماره زیرنویس در متن داخل محیط ریاضی نمیشوند بلکه شماره زیرنویس را داخل یک \hbox
قرار میدهند و این \hbox
را به اندازه 0.9ex
بالا میبرند.
آیا میتوانید تفاوت قرار دادن شماره زیرنویس در متن در خود لاتک و کلاسهای ams
را ببینید؟
یک مشاهده
اندازه شماره زیرنویس در متن در لاتک با اندازه شماره زیرنویس در متن با کلاسهای ams
زمانی که ریاضی اول نوشتار به کار رفته باشد، یکی است. برای دیدن این موضوع خروجی:
\documentclass{article}
\title{A Document $1$}
\author{Author}
\begin{document}
\maketitle
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\end{document}
را با خروجی:
\documentclass{amsart}
\title{A Document $1$}
\author{Author}
\begin{document}
\maketitle
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\end{document}
مقایسه کنید. در واقع تنها زمانی که در نوشتار ریاضی وجود ندارد، اندازه زیرنویس در متن با کلاسهای ams
کوچکتر است.
این تفاوت اندازه در زیرنویس از کجا ناشی میشود؟
در لاتک شما شماره زیرنویس را وقتی داخل محیط ریاضی میشوید درج میکنید در حالی که در کلاسهای ams
شما شماره زیرنویس را در همان حالت متنی (یا بهتر بگوییم حالت افقی) درج میکنید و حالت ریاضی با حالت افقی در تک تفاوتهایی را ایجاد میکند.
در پاسخ به سوال شما در قسمت نظرات همین پاسخ
اگر xelatex
را روی فایل زیر پردازش کنید:
\documentclass{amsart}
\begin{document}
\footnote{This is a test.}
\makeatletter
\showthe\sf@size
\makeatother
$x+1=3$
\footnote{This is a test.}
\end{document}
اندازه \sf@size
را بصورت زیر نمایش میدهد:
\sf@size ->6
در صورتی که اگر بخواهید مقدار آن را بعد از یک فرمول ریاضی بدانید:
\documentclass{amsart}
\begin{document}
\footnote{This is a test.}
$x+1=3$
\makeatletter
\showthe\sf@size
\makeatother
\footnote{This is a test.}
\end{document}
مقدار زیر را به شما نشان میدهد:
\sf@size ->7
\sf@size
اندازه قلم زیرنویس است. قبل از فرمول ریاضی، اندازه قلم شماره زیرنویس در متن ۶ است اما بعد از آن، اندازه ۷ است.
چرا اندازه شماره زیرنویس در لاتک استاندارد تغییر نمیکند اما در کلاسهای ams
تغییر میکند؟
در فایل تک بالا فهمیدیم که مقدار \sf@size
قبل از فرمول ریاضی ۶ است اما بعد از فرمول ریاضی ۷ است. علت اینکه مقدار آن در محیط ریاضی ۷ است به خاطر تعریف زیر است:
\DeclareMathSizes{\@xpt}{\@xpt}{7}{5}
در لاتک استاندارد شماره زیرنویس در متن همیشه در محیط ریاضی درج میشود و در این مکان مقدار \sf@size
همیشه ۷ است. بنابراین همه شماره زیرنویسهای متن در لاتک استاندارد با اندازه ۷ درج میشوند.
در صورتی که در کلاسهای ams
شماره زیرنویس با در محیط افقی (هیچگاه وارد محیط ریاضی نمیشوند) درج میشوند. تا مادامی که ریاضی حروفچینی نکردهاید، شماره زیرنویس در متن با اندازه ۶ درج میشود اما همین که یک فرمول ریاضی حروفچینی کردید، شماره زیرنویسهای متن با اندازه ۷ درج میشوند.