تالار گفتگوی پارسی‌لاتک

لاتک LATEX => حروف‌چینی مستندات => نويسنده: فرشاد ترابی در سپتامبر 24, 2012, 09:55:10 pm

عنوان: حذف فاصله هنگام استفاده از ماکروها
رسال شده توسط: فرشاد ترابی در سپتامبر 24, 2012, 09:55:10 pm
به فایلهای پیوست دقت کنید. هنگامی که از یک ماکرو استفاده میشود، فاصله بعد از آن حذف میگردد؟
هم در فارسی چک کردم و هم در انگلیسی. مشکل کجاست؟ مگر نه این است که ماکرو صرفاً یک
جایگزاری است؟ پس چرا اینطوری جواب میده؟
عنوان: پاسخ : حذف فاصله هنگام استفاده از ماکروها
رسال شده توسط: حسن ذاکری در سپتامبر 24, 2012, 10:23:44 pm
این رفتار نرمال تک است که از فاصله بعد از دستورات صرف نظر می‌کند. بنابراین نوشتن دومتن زیر
\TeX ignores spaces after control words.و
\TeX                 ignores spaces after control words.هردو یک خروجی به شکل
TeXignores spaces after control words.
تولید می‌کند. یعنی کلمه TeX را به لغت بعد می‌چسباند. اما ۳ راه حل در پیش دارید:
۱. در تعریف ماکرو، فاصبه را اضافه کنید:
\newcommand{\ترابی}{کلاس\ }که این مشکل را دارد که وقتی می‌نویسید
\ترابی.یک فاصله زاید قبل از نقطه قرار می‌دهد.
۲. در هر بار استفاده از ماکرو، یک فاصله اجباری بعد از آن اضاف کنید:
سومین جمله این است که \ترابی\ را بیرون ببریدمشکل این است که نوشتن این فاصله در هر دفعه مشکل است.
۳. از بسته xspace و دستور \xspace در تعریف ماکرو استفاده کنید که اضافه کردن فاصله را اتوماتیک می‌کند.