اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

محبوب‌ترین برچسب‌ها

رفع خطا جدول مراجع xepersian ریاضی‌نویسی شکل فونت فهرست مطالب شماره‌گذاری منابع bidi پانویس بیب‌تک tikz تک‌لایو parsilatex بیمر اسلاید زی‌پرشین پاورقی سربرگ bibtex نماد فرمول‌نویسی رسم شکل قالب ارجاع‌دهی biditexmaker هدر ویرایشگر beamer واژه‌نامه اندازه فونت texstudio عنوان فصل ماتریس اعمال نشدن تغییرات در پی‌دی‌اف رسم جدول bidipresentation شماره صفحه حاشیه رنگ عنوان شکل اسلاید فارسی محیط قضیه گراف مکان شکل tikzpicture حروف‌چینی کد شماره فصل enumerate tabriz_thesis نمایه align زیرنویس شکل کادر itemize listings الگوریتم عدم اجرا نیم‌فاصله متن لاتین و فارسی فهرست اشکال بسته فاصله بین خطوط قالب پایان‌نامه فرمول نصب تک‌لایو فارسی‌تک hyperref شماره فرمول glossaries کپشن نمودار حروف‌چینی چندستونی فونت فارسی و انگلیسی ماکرونویسی خروجی biditools شماره پاورقی پیوست‌ فاصله‌گذاری فرمول چندضابطه‌ای لاتک سوال امتحانی subfigure extrafootnotefeatures header texmaker pdf tex biditufte-book تصویر شمارنده texlive2015 longtable زیرنویس خطا رسم نمودار شماره‌گذاری صفحات پایان نامه دیاگرام فهرست جداول میک‌تک texlive2016 تنظیم جدول kashida texworks caption اندیس lollipop iust-thesis multicol فصل‌نویسی شعر سوال چهارگزینه‌ای بولد تورفتگی آکولاد اعداد فارسی فاصله عمودی xindy چپ‌چینی اوبونتو میکروسافت ورد قاب geometry texlive fancyhdr تک لایو 2015 عنوان بخش به‌روزرسانی بسته aimc46 صفر توخالی فرمول طولانی بیرون‌زدگی کاما وسط‌چینی tcolorbox پوستر شماره گذاری فاصله سطرها نوشتافت شکست خط tex-programming فونت اعداد pgfplots قرآن tabriz-thesis ایتالیک winedt جستجوی معکوس xelatex فلش جایابی تصویر قالب کتاب پاراگراف‌بندی بازیابی اطلاعات هایپرلینک فهرست نمادها شمارنده فصل font محیط ریاضی رسم کادر جداکننده جدول طولانی فهرست تصاویر شماره‌گذاری فرمول algorithm2e فونت بولد proof equation bidipoem eps جدول افقی عکس به‌روزرسانی پانویس چندستونی کمک مالی فاصله خطوط حروف‌چینی شعر زیرشکل minipage قلم پانویس پاراگرافی ltrfootnote پیوست computeautoilg متن فارسی و انگلیسی فرمول چندخطی neveshtuft غلط‌گیری املایی تک‌پارسی پیکان لاتکس tabular baselineskip شماره قسمت قسمت عنوان جدول
6 نفر آنلاین
0 عضو و 6 مهمان در سایت حاضرند
بازدید امروز: 29774
بازدید دیروز: 20933
بازدید کل: 21198374

علت بزرگتر شدن شماره پانویس‌ها در کلاس amsart

0 رای
814 بازدید

با توجه به سوال پرسیده شده در این لینک و جواب وفا به سوال، می‌خواستم بدانم چرا در صورت استفاده از یک فرمول ریاضی در عنوان مقاله‌ای که با کلاس amsart نوشته شده است، شماره پانویس‌ها در متن بزرگتر از مقدار معمول می‌شوند.

سوال شده آبان 20, 1393 توسط سید احمد موسوی (3,595 امتیاز)
من با روشی که در لینک زیر داده شده است مشکل را حل کردم. ولی نمی‌دانم مشکل دقیقا چیست. آیا همانطور که در این لینک گفته شده یک bug است؟
http://tex.stackexchange.com/questions/47801/using-textsuperscript-to-put-commas-between-consecutive-footnotes-in-amsart-doc?rq=1
همچنین نظر داده شده زیر جواب Gonzalo Medina را در لینکی که گذاشتید ببینید. راه‌حل پیشنهادی مشکل دارد.
من پاسخی در همان لینکی که خودتان گذاشتید ارسال کردم. سعی کردم موضوع را در آن‌جا هم بصورت شفاف توضیح دهم. اگر باز پرسشی باقی ماند، لطفاً در یک سوال جدید مطرح کنید:

http://tex.stackexchange.com/questions/47801/using-textsuperscript-to-put-commas-between-consecutive-footnotes-in-amsart-doc/211682#211682

1 پاسخ

+2 رای
 
بهترین پاسخ

جواب داده شده در لینکی که در نظر خود گذاشتید یک پاسخ کاملاً ناشیانه است. در واقع شما دارید وصله‌کاری می‌کنید و مشکل اصلی را پیدا نکرده‌اید.

مشکل اصلی کجاست؟

دستور اصلی که باعث شود شماره‌های زیرنویس در متن درج شوند، دستور \@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 شماره زیرنویس با در محیط افقی (هیچ‌گاه وارد محیط ریاضی نمی‌شوند) درج می‌شوند. تا مادامی که ریاضی حروف‌چینی نکرده‌اید، شماره زیرنویس در متن با اندازه ۶ درج می‌شود اما همین که یک فرمول ریاضی حروف‌چینی کردید، شماره زیرنویس‌های متن با اندازه ۷ درج می‌شوند.

پاسخ داده شده آبان 20, 1393 توسط وفا (24,380 امتیاز)
ویرایش شده آبان 20, 1393 توسط وفا
درست است. من فرمول را دقیقا بعد از اولین پانویس قرار دادم. فونت شماره پانویس اول کوچک ولی بقیه بزرگتر بودند. من یک مورد را هنوز متوجه نشده‌ام. آیا بعد از اینکه یک محیط ریاضی استفاده کردیم makefnmark تغییر می‌کند؟ سوال دیگر اینکه آیا برای حل موضوع باید دستور فایل latex.ltx را استفاده کنم؟
پاسخ هر دو سوال مثبت است.
لطفاً ویرایش پاسخ من را در انتها ببینید. سعی کردم به پرسش شما با کمی توضیحات بیشتر جواب بدهم.
سپاس. امروز نکات خوبی یاد گرفتم.
لطفاً ویرایش آخر من هم را ببینید. امیدوارم موضوع شفاف شده باشد.
...