پرسش پاسخ شما بستگی به این داره که از چه موتور تکی استفاده میکنید. هر موتور تکی دستورات بدوی (primitive) موتور تک پایه Knuth رو داره به اضافه دستورات بدوی موتورهای تک دیگری که خودش استفاده کرده به اضافه دستورات بدوی موتور خودش. به عنوان مثال، موتور pdfTeX
دارای دستورات بدوی موتورهای تک پایه Knuth، موتور e-tex و خودش هست. برای اینکه لیست کاملی از دستورات بدوی موتور pdfTeX
داشته باشی:
- راهنمای تک پایه Knuth رو بخونی تا بدونی چه دستوراتی بدوی هستند (حدود ۳۰۰ تا دستور بدوی اینجا وجود داره که مهمترین بخش هر موتور تکی رو تشکیل میدهند).
- راهنمای موتور e-tex رو بخونی تا ببینی چه دستورات بدوی داره.
- راهنمای موتور pdfTeX رو بخونی تا ببینی چه دستورات بدوی داره.
اگر از بسته زیپرشین استفاده میکنید و میخواهید بدونید که چه دستوری بدوی هست و چه دستوری ماکرو (بر حسب دستورات بدوی تعریف شده)، میتوانید از دستورات \if@bidi@defprimitive
یا \if@bidi@csprimitive
استفاده کنید تا اگر یک دستور بدوی بود، کار به خصوصی رو انجام بدهید و اگر ماکرو بود، کار دیگری را. برای توضیحات بیشتر این پرسش و پاسخ را ببینید.
C
یا C++
اصلاً قابل مقایسه با TeX
نیست. C
یا C++
زبانهای برنامهنویسی بسیار ساده و راحتی هستند که اگر بخواهی یک تکه کد بنویسی حتماً لازم نیست که از کد سطح بالاتری استفاده کنی و میتونی خیلی راحت از دستورات پایه استفاده کنی. این موضوع در مورد تک درست نیست. چون اگر بخواهی برای تکه کدی که مینویسی از دستورات بدوی استفاده کنی، معمولاً باید زمان زیادی رو صرف کنی و کد خیلی زیادی بنویسی در صورتی که میتونی از کد سطح بالاتری استفاده کنی که از پیچیدگی کار کم کنه. گذشته از این شما در C
یا C++
محدودیتی نداری ولی در تک محدودیتهایی فراوانی وجود داره مثلاً در تک بزرگترین اندازهای که شما میتونی حساب کنی \maxdimen
هست که برابر است 16383.99998pt
. هر اندازه دیگری رو که بخواهی بصورت عادی حساب کنی که بزرگتر از این باشه، خطای Arithmetic overflow
خواهی گرفت. به عنوان مورد دیگه، پیدا کردن خطای کد توی C
یا C++
خیلی راحته چون debug کردن کد راحته. اما توی تک روشی برای debug کردن کد وجود نداره و فقط اشخاصی که خیلی تجربه و تبحر داشته باشند و داخل و بیرون تک رو به خوبی بشناسند، میتونند بفهمند که اگر خطایی اتفاق میافتد این خطا از کدام قسمت کد نشای میشود.