پرسش شما و پاسخی که آقای محمد دادهاند پرسش را به چند پرسش دیگر تبدیل میکند. هدف از این پاسخ، پاسخگویی به این پرسشهاست.
اصولا تفاوت میان ماکرونویسی و برنامه نویسی به زبان تک چیست؟
تفاوتی میان ماکرونویسی و برنامه نویسی به زبان تک وجود ندارد. ماکرونویسی نامی دیگر برای برنامهنویسی به زبان تک است.
یک کاربر مبتدی لاتک چگونه می تواند برنامه نویسی به زبان تک و ماکرونویسی را فرابگیرد؟
پاسخ به این پرسش بستگی دارد به اینکه شما چقدر میخواهید تک را یاد بگیرید. اگر هدف شما دانستن زیر و بم تک است، این پرسش و پاسخ را بخوانید.
اگر هدف شما تنها ماکرونویسی است پیشنهاد میکنم کتاب TeXBook
را بخوانید و سپس کدهای بستههای دیگر را مطالعه کنید. فراگرفتن ماکرونویسی تنها با مطالعه کدهای بستهها و نخواندن این کتاب ممکن نیست. تک مفاهیم نسبتاً پیچیدهای دارد که نخست باید آنها را فرا بگیرید. به عنوان نمونه شما بدون خواندن این کتاب و با نگاه کردن به کد بستهها اگر بخواهید گسترش ماکروها را فرا بگیرید موفق نخواهید شد زیرا که گسترش ماکروها بسیار پیچیده است. وقتی در مورد گسترش صحبت میکنیم ممکن است در کد سه \expandafter
به کار رفته باشد حالا دلیل این کار چیست؟ از کجا بدانیم چه تعدادی \expandafter
باید داشته باشیم؟
این تنها یک نمونه از پیچیدگی تک است. بنابراین پیشنهاد من این است که حداقل یک بار کتاب را بخوانید تا یک دانش ابتدایی از تک و دستورات بدوی آن داشته باشید و سپس به مطالعه کدهای بستهها بپردازید. با این کار وقتی در کد بسته دستور \xdef
را میبینید میدانید این دستور چه کاری انجام میدهد و در اون طرف داستان هم اگر مشکلی در فهمی از نحوه کار کردن یک دستور با خواندن کتاب داشتهاید با مطالعه کد بستهها متوجه مفهوم آن میشوید. بنابراین هر دو اینها با هم لازم هستند و همدیگر رو تکمیل میکنند.
فکر میکنم ذکر این نکته ضروری باشد که در ماکرونویسی گاهی اوقات لازم است بدانید رفتار تک در سطح خیلی ابتدایی چگونه است در این موارد باید زیر و بم تک را بدانید و تنها دانش ماکرونویسی کافی نیست.