وقتی شما میگید \index{a}
(منظورم اولین نمایه شماست) در سطح پائین این اتفاقی هست که میفته
\write\@indexfile%
{\string\indexentry{a}{\thepage}}
نمایه شما با استفاده از دستور بدوی \write
به فایل .idx
نوشته میشود. تک وقتی دستور \write
رو میبینه همون موقع process نمیکنه بلکه پردازشش تا زمانی که تک صفحه رو در زمان shipout میسازه به تأخیر میانجامه. به عنوان نمونه اگر شما فایل نمونه زیر رو اجرا کنید:
\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}
\index{a}
\printindex
\end{document}
در فایل .idx
هیچ چیزی وجود نداره چون در صفحه چیزی وجود نداره. در مورد نمونه شما
\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}
\index{a}
\index {a}
\printindex
\end{document}
در مورد نمایه دوم یعنی \index {a}
آرگومان \index
فاصله خالی بعدش هست و {a}
بصورت معمولی و نه آرگومان دستور \index
چاپ میشه. برای اطلاعات بیشتر فصل ۲۱ کتاب TeXBook کنوث صفحه ۲۲۷ رو بخونید.