تالار گفتگوی پارسیلاتک
لاتک LATEX => حروفچینی مستندات => نويسنده: فرشاد ترابی در اكتبر 08, 2014, 09:26:57 pm
-
با سلام
به فایل پیوست دقت کنید. در این فایل دوتا ماکرو ساده نوشته شده که یکی باعث تعریف \Name و دیگری باعث نوشته شدن یک خط بر مبنای آن است.
چنانچه این دستورها در فایل اصلی بارها و بارها نوشته شوند، متن تولید شده توسط دستور \String کاملا درست (یعنی بدون داشتن فاصله اضافی در ابتدای آن)
خواهد بود. اما اگر همین دستور \name در یک فایل ریخته شده و input شود، به ازای هر خط یک فاصله به متن اضافه میشود.
حال سوال این است که آیا میتوان هنگام input کردن فایل مربوطه به صورت trim شده باشد؟ یعنی فاصلههای انتهای خط با خود خط خوانده نشود؟
-
فایل رو پیوست نکردید!
-
بعد از هر دستور Name توی فایل subinput یک % بذارید:
\name{Farschad}%
-
آره عملا من خودم هم همین کار را کردم ولی این کار یک مشکل اساسی داره.
من در اصل برای ساختن مجموعه خلاصه مقاله کنفرانس این کار را کردم. فرض کنید در یک کنفرانس حدود 800 مقاله قابل ارائه باشه. چیزی که در کنفرانس مکانیک براحتی
اتفاق میفته. به ازای هر مقاله یک فایل حاوی اطلاعات وجود داره که نویسندگان ارسال کردند. حالا دیگه خودتان حجم کار را حدس بزنید که چقدر زمانبر خواهد بود که
بعد از هر اسم، سمت، دانشگاه، عنوان و اطلاعات دیگری که در آن وجود دارد بخواهیم علامت درصد بزنیم. بگذریم از اشتباهات انسانی که پیداکردنشان هم کار راحتی
نیست.
برای همین خواستم ببینم آیا راهی هست که input کردن دقیقا مانند آن باشد که متن را داخل فایل اصلی نوشتیم؟! چون هنگامی که متن فایل پیوست را
دقیقا در فایل اصلی کپی کنیم، چنین اتفاقی نمیفتد.
-
تصور میکنم اگر در انتهای تعریف دستور \name یک \unskip قرار دهید، مشکلی وجود نداشته باشد.
-
در مثالی که فرستادم با استفاده از \unskip مشکل حل شد. اما در کار عملی که در شکل پیوست کردم، همانطور که مشاهده میکنید، قراردادن \unskip در جایی
که با فلش مشخص کردم، تآثیری نداشت و همونطور که در خروجی مشاهده میشه باعث میشه قبل از کادر کشیده شده یک فاصله بیفته که کلا تنظیمات صفحه
را به هم میزنه. آیا جای \unskip را اشتباهی گذاشتم؟
-
متأسفانه تصویر شما هیچ کمکی نمیکنه.
-
حجم کد بسیار زیاده. سعی میکنم تا آنجا که امکان داره کوچکش کنم که مسأله مشخص بشه توش.