• Welcome to پارسی‌لاتک.
 
از تاریخ ۱۳۹۳/۸/۱۴ به دلیل ارائه خدمات بهتر به سایت جدید پرسش و پاسخ مهاجرت کرده‌ایم؛ از این رو امکان عضویت و ارسال پست در تالار غیرفعال شده است. لطفاً برای پرسیدن سوال‌های خود به سایت جدید مراجعه کنید.

ورود به سایت جدید

یک سوال درباره تعاریف شرطی برای طراحی یه استایل پایان‌نامه

نویسنده وحید دامن‌افشان, ژانویه 30, 2011, 04:49:54 بعد از ظهر

« قبلی - بعدی »

وحید دامن‌افشان

همون‌طور که توی فایل ضمیمه شده می‌بینین، برای تعریف «استاد مشاور»، از دستورات شرطی استفاده شده. به این صورت که اگه یه
«استاد مشاور» داشته باشیم، با دستور ‎‎\firstadvisor اونو وارد می‌کنیم و اگه دو «استاد مشاور» داشته باشیم، اول، دستور
\twoadvisors رو فعال می‌کنیم و بعدش اسم استاد مشاور دوم رو هم با دستور \secondadvisor وارد می‌کنیم.  اما اگه هیچ «استاد مشاور»ی نداشته باشیم، وقتی این ۳ دستور رو کامنت می‌کنم، خطا می‌گیره (و در ضمن، عبارت «استاد مشاور» هم باقی می‌مونه).
چطور می‌شه فایل رو طوری تغییر داد که وقتی استاد مشاوری نداریم، نه خطا بگیره و نه عبارت «استاد مشاور»، ظاهر بشه؟

vafa

نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 04:49:54 بعد از ظهر
همون‌طور که توی فایل ضمیمه شده می‌بینین، برای تعریف «استاد مشاور»، از دستورات شرطی استفاده شده. به این صورت که اگه یه
«استاد مشاور» داشته باشیم، با دستور ‎‎\firstadvisor اونو وارد می‌کنیم و اگه دو «استاد مشاور» داشته باشیم، اول، دستور
\twoadvisors رو فعال می‌کنیم و بعدش اسم استاد مشاور دوم رو هم با دستور \secondadvisor وارد می‌کنیم.  اما اگه هیچ «استاد مشاور»ی نداشته باشیم، وقتی این ۳ دستور رو کامنت می‌کنم، خطا می‌گیره (و در ضمن، عبارت «استاد مشاور» هم باقی می‌مونه).
چطور می‌شه فایل رو طوری تغییر داد که وقتی استاد مشاوری نداریم، نه خطا بگیره و نه عبارت «استاد مشاور»، ظاهر بشه؟
متأسفانه من چیزی از حرفهات متوجه نشدم. پرونده‌ای هم که پیوست کردی بصورت اشتباه از دستورات شرطی استفاده کردی و من نفهمیدم می‌خواهی چی کنی. دقیقاً سوالت چیه؟

وحید دامن‌افشان

نقل قول از: وفا در ژانویه 30, 2011, 04:58:03 بعد از ظهر
متأسفانه من چیزی از حرفهات متوجه نشدم. پرونده‌ای هم که پیوست کردی بصورت اشتباه از دستورات شرطی استفاده کردی و من نفهمیدم می‌خواهی چی کنی. دقیقاً سوالت چیه؟
من می‌خوام وقتی کسی توی پایان‌نامه‌ش، استاد مشاور نداره، با حذف کردن ۳ دستور بعد از \begin{document}‎‎،
عبارت «استاد مشاور»،  توی خروجی، چاپ نشه و در ضمن، خطا هم نگیره. این دو مشکل رو چطور می‌شه حل کرد؟

vafa

نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 05:06:38 بعد از ظهر
من می‌خوام وقتی کسی توی پایان‌نامه‌ش، استاد مشاور نداره، با حذف کردن ۳ دستور بعد از \begin{document}‎‎،
عبارت «استاد مشاور»،  توی خروجی، چاپ نشه و در ضمن، خطا هم نگیره. این دو مشکل رو چطور می‌شه حل کرد؟
فرض کنید یک ماکرو به اسم \firsttest دارید که اینگونه تعریف شده است:


\newcommand{\myfirsttest}[1]{\def\@myfirsttest{#1}}

و ماکروی دیگری دارید به نام \test که می‌خواهید اگر از دستور \myfirsttest استفاده شده بود، محتوایش را چاپ کند و در غیر اینصورت هیچی:


\newcommand{\test}{\ifx\@myfirsttest\undefined\else\@myfirsttest\fi}


وحید دامن‌افشان

نقل قول از: وفا در ژانویه 30, 2011, 05:24:10 بعد از ظهر
فرض کنید یک ماکرو به اسم \firsttest دارید که اینگونه تعریف شده است:


\newcommand{\myfirsttest}[1]{\def\@myfirsttest{#1}}

و ماکروی دیگری دارید به نام \test که می‌خواهید اگر از دستور \myfirsttest استفاده شده بود، محتوایش را چاپ کند و در غیر اینصورت هیچی:


\newcommand{\test}{\ifx\@myfirsttest\undefined\else\@myfirsttest\fi}

آقا وفا فکر کنم هنوز منظور منو خوب متوجه نشدین. بذارین بیشتر توضیح بدم.
توی این فایل،
۱- اگه طرف، یه استاد مشاور داشته باشه، اونو با دستور  ‎‎\firstadvisor وارد می‌کنه.
۲- اگه طرف، دو استاد مشاور داشته باشه، دستور twoadvisors\ رو فعال می‌کنه و اسم استاد دومی رو با دستور secondadvisor\ وارد می‌کنه.
تا اینجای کار، همه چی مرتبه. اما اگه طرف، اصلاً استاد مشاور نداشته باشه، باید چیکار کنه؟ اگه بیاد و اون سه دستور رو کامنت کنه، دو مشکل براش پیش میاد:
۱- خطا می‌گیره.
۲- عبارت «استاد مشاور»،  توی خروجی، چاپ می‌شه که نباید بشه.
حالا من می‌خوام این دو مشکل رو رفع کنم.
ممنون از وقتی که می‌ذاری.

vafa

نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 05:45:33 بعد از ظهر
آقا وفا فکر کنم هنوز منظور منو خوب متوجه نشدین. بذارین بیشتر توضیح بدم.
هیچ فرقی نداره. من فقط به شما ایده دادم و قرار هم نبود که حل کنم مشکل را. پرونده پیوست را ببین.

vafa

نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 05:45:33 بعد از ظهر
۲- اگه طرف، دو استاد مشاور داشته باشه، دستور twoadvisors\ رو فعال می‌کنه و اسم استاد دومی رو با دستور secondadvisor\ وارد می‌کنه.
اصلاً نیازی به دستور اضافه و گمراه‌کننده \twoadvisiors نیست.

وحید دامن‌افشان

نقل قول از: وفا در ژانویه 30, 2011, 06:28:23 بعد از ظهر
اصلاً نیازی به دستور اضافه و گمراه‌کننده \twoadvisiors نیست.
حق با شماست. خودمم زیاد خوشم نیومد. باز هم به خاطر راهنمایی‌تون ممنون.

vafa

نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 06:34:18 بعد از ظهر
حق با شماست. خودمم زیاد خوشم نیومد. باز هم به خاطر راهنمایی‌تون ممنون.
در واقع در راه‌حل من، من دو عبارت شرطی رو با هم ادغام کردم و چهار حالت پیش می‌یاد که حالا در هر یک از حالات یک کار مخصوص رو انجام می‌دهید. ادغام کردن دو، سه و چهار عبارت شرطی به کرات در ماکروهای bidi و xepersian به کار رفته چون حروف‌چینی دوجهته مقداری پیچیده است بایستی حالات مختلف را در نظر گرفت.

ماکرویی که برای هادی برای حروف‌چینی سوالات چهرگزینه‌ای نوشته بودم، هم از همین روش استفاده کردم.

http://www.parsilatex.com/joomla/index.php?option=com_smf&Itemid=0&topic=1259.15

که البته این خیلی پیچیده‌تر بود چون اولاً چهار گزینه داشتم و سه نوع طول داشتم که بر حسب اینها باید تصمیم می‌گرفتم، جوابهای چهارگزینه‌ای چجوری قرار بگیره.

وحید دامن‌افشان

نقل قول از: وفا در ژانویه 30, 2011, 06:41:46 بعد از ظهر
در واقع در راه‌حل من، من دو عبارت شرطی رو با هم ادغام کردم و چهار حالت پیش می‌یاد که حالا در هر یک از حالات یک کار مخصوص رو انجام می‌دهید. ادغام کردن دو، سه و چهار عبارت شرطی به کرات در ماکروهای bidi و xepersian به کار رفته چون حروف‌چینی دوجهته مقداری پیچیده است بایستی حالات مختلف را در نظر گرفت.

ماکرویی که برای هادی برای حروف‌چینی سوالات چهرگزینه‌ای نوشته بودم، هم از همین روش استفاده کردم.

http://www.parsilatex.com/joomla/index.php?option=com_smf&Itemid=0&topic=1259.15

که البته این خیلی پیچیده‌تر بود چون اولاً چهار گزینه داشتم و سه نوع طول داشتم که بر حسب اینها باید تصمیم می‌گرفتم، جوابهای چهارگزینه‌ای چجوری قرار بگیره.
وفا جان، راه‌حل‌هات اونقدر آموزنده‌س که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.
یه سوال: نحوه بکاربردن عبارات شرطی رو از منبع خاصی یاد گرفتی یا با تجربه یاد گرفتی؟

vafa

نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 08:12:42 بعد از ظهر
وفا جان، راه‌حل‌هات اونقدر آموزنده‌س که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.
یه سوال: نحوه بکاربردن عبارات شرطی رو از منبع خاصی یاد گرفتی یا با تجربه یاد گرفتی؟
منبع خاصی نمی‌خواهد. فقط بایستی نحوه استفاده از دستور شرطی را بدانی و بقیش فقط منطق خودت هستش.

امید غیور

نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 08:12:42 بعد از ظهر
وفا جان، راه‌حل‌هات اونقدر آموزنده‌س که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.
یه سوال: نحوه بکاربردن عبارات شرطی رو از منبع خاصی یاد گرفتی یا با تجربه یاد گرفتی؟

واقعا...
علی ای حال...
دستور \gdef رو می‌شناسی؟...
یه نگاهی به sty های قدیمی بنداز...
مثلا اینو پیدا کن...
/texmf/tex/latex209/base/article.sty
gdef رو پیدا کن ... و بعد زیرش ببین چطور titlepage رو می‌سازه...
حتما ببین... یک کپی از اونو واست اتچ کردم... حتما یه نگا بنداز...
امید غیور (بازنشسته فعال گروه یپناتک)

vafa

نقل قول از: امید غیور در فبریه 05, 2011, 02:17:24 قبل از ظهر
واقعا...
علی ای حال...
دستور \gdef رو می‌شناسی؟...
یه نگاهی به sty های قدیمی بنداز...
مثلا اینو پیدا کن...
/texmf/tex/latex209/base/article.sty
gdef رو پیدا کن ... و بعد زیرش ببین چطور titlepage رو می‌سازه...
حتما ببین... یک کپی از اونو واست اتچ کردم... حتما یه نگا بنداز...
۱- اگر پرونده تک ایشون رو نگاه کنید متوجه می‌شید که ایشون خیلی قشنگ میدونه \gdef چیه.

۲- \gdef چه ربطی به حل این مشکل در حالت کلی داره؟