همونطور که توی فایل ضمیمه شده میبینین، برای تعریف «استاد مشاور»، از دستورات شرطی استفاده شده. به این صورت که اگه یهمتأسفانه من چیزی از حرفهات متوجه نشدم. پروندهای هم که پیوست کردی بصورت اشتباه از دستورات شرطی استفاده کردی و من نفهمیدم میخواهی چی کنی. دقیقاً سوالت چیه؟
«استاد مشاور» داشته باشیم، با دستور \firstadvisor اونو وارد میکنیم و اگه دو «استاد مشاور» داشته باشیم، اول، دستور
\twoadvisors رو فعال میکنیم و بعدش اسم استاد مشاور دوم رو هم با دستور \secondadvisor وارد میکنیم. اما اگه هیچ «استاد مشاور»ی نداشته باشیم، وقتی این ۳ دستور رو کامنت میکنم، خطا میگیره (و در ضمن، عبارت «استاد مشاور» هم باقی میمونه).
چطور میشه فایل رو طوری تغییر داد که وقتی استاد مشاوری نداریم، نه خطا بگیره و نه عبارت «استاد مشاور»، ظاهر بشه؟
متأسفانه من چیزی از حرفهات متوجه نشدم. پروندهای هم که پیوست کردی بصورت اشتباه از دستورات شرطی استفاده کردی و من نفهمیدم میخواهی چی کنی. دقیقاً سوالت چیه؟من میخوام وقتی کسی توی پایاننامهش، استاد مشاور نداره، با حذف کردن ۳ دستور بعد از \begin{document}،
من میخوام وقتی کسی توی پایاننامهش، استاد مشاور نداره، با حذف کردن ۳ دستور بعد از \begin{document}،فرض کنید یک ماکرو به اسم \firsttest دارید که اینگونه تعریف شده است:
عبارت «استاد مشاور»، توی خروجی، چاپ نشه و در ضمن، خطا هم نگیره. این دو مشکل رو چطور میشه حل کرد؟
\newcommand{\myfirsttest}[1]{\def\@myfirsttest{#1}}
\newcommand{\test}{\ifx\@myfirsttest\undefined\else\@myfirsttest\fi}
فرض کنید یک ماکرو به اسم \firsttest دارید که اینگونه تعریف شده است:آقا وفا فکر کنم هنوز منظور منو خوب متوجه نشدین. بذارین بیشتر توضیح بدم.و ماکروی دیگری دارید به نام \test که میخواهید اگر از دستور \myfirsttest استفاده شده بود، محتوایش را چاپ کند و در غیر اینصورت هیچی:کد: [انتخاب]\newcommand{\myfirsttest}[1]{\def\@myfirsttest{#1}}
کد: [انتخاب]\newcommand{\test}{\ifx\@myfirsttest\undefined\else\@myfirsttest\fi}
آقا وفا فکر کنم هنوز منظور منو خوب متوجه نشدین. بذارین بیشتر توضیح بدم.هیچ فرقی نداره. من فقط به شما ایده دادم و قرار هم نبود که حل کنم مشکل را. پرونده پیوست را ببین.
۲- اگه طرف، دو استاد مشاور داشته باشه، دستور twoadvisors\ رو فعال میکنه و اسم استاد دومی رو با دستور secondadvisor\ وارد میکنه.اصلاً نیازی به دستور اضافه و گمراهکننده \twoadvisiors نیست.
اصلاً نیازی به دستور اضافه و گمراهکننده \twoadvisiors نیست.حق با شماست. خودمم زیاد خوشم نیومد. باز هم به خاطر راهنماییتون ممنون.
حق با شماست. خودمم زیاد خوشم نیومد. باز هم به خاطر راهنماییتون ممنون.در واقع در راهحل من، من دو عبارت شرطی رو با هم ادغام کردم و چهار حالت پیش مییاد که حالا در هر یک از حالات یک کار مخصوص رو انجام میدهید. ادغام کردن دو، سه و چهار عبارت شرطی به کرات در ماکروهای bidi و xepersian به کار رفته چون حروفچینی دوجهته مقداری پیچیده است بایستی حالات مختلف را در نظر گرفت.
در واقع در راهحل من، من دو عبارت شرطی رو با هم ادغام کردم و چهار حالت پیش مییاد که حالا در هر یک از حالات یک کار مخصوص رو انجام میدهید. ادغام کردن دو، سه و چهار عبارت شرطی به کرات در ماکروهای bidi و xepersian به کار رفته چون حروفچینی دوجهته مقداری پیچیده است بایستی حالات مختلف را در نظر گرفت.وفا جان، راهحلهات اونقدر آموزندهس که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.
ماکرویی که برای هادی برای حروفچینی سوالات چهرگزینهای نوشته بودم، هم از همین روش استفاده کردم.
http://www.parsilatex.com/joomla/index.php?option=com_smf&Itemid=0&topic=1259.15
که البته این خیلی پیچیدهتر بود چون اولاً چهار گزینه داشتم و سه نوع طول داشتم که بر حسب اینها باید تصمیم میگرفتم، جوابهای چهارگزینهای چجوری قرار بگیره.
وفا جان، راهحلهات اونقدر آموزندهس که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.منبع خاصی نمیخواهد. فقط بایستی نحوه استفاده از دستور شرطی را بدانی و بقیش فقط منطق خودت هستش.
یه سوال: نحوه بکاربردن عبارات شرطی رو از منبع خاصی یاد گرفتی یا با تجربه یاد گرفتی؟
وفا جان، راهحلهات اونقدر آموزندهس که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.
یه سوال: نحوه بکاربردن عبارات شرطی رو از منبع خاصی یاد گرفتی یا با تجربه یاد گرفتی؟
واقعا...۱- اگر پرونده تک ایشون رو نگاه کنید متوجه میشید که ایشون خیلی قشنگ میدونه \gdef چیه.
علی ای حال...
دستور \gdef رو میشناسی؟...
یه نگاهی به sty های قدیمی بنداز...
مثلا اینو پیدا کن...
/texmf/tex/latex209/base/article.sty
gdef رو پیدا کن ... و بعد زیرش ببین چطور titlepage رو میسازه...
حتما ببین... یک کپی از اونو واست اتچ کردم... حتما یه نگا بنداز...