همونطور که توی فایل ضمیمه شده میبینین، برای تعریف «استاد مشاور»، از دستورات شرطی استفاده شده. به این صورت که اگه یه
«استاد مشاور» داشته باشیم، با دستور \firstadvisor اونو وارد میکنیم و اگه دو «استاد مشاور» داشته باشیم، اول، دستور
\twoadvisors رو فعال میکنیم و بعدش اسم استاد مشاور دوم رو هم با دستور \secondadvisor وارد میکنیم. اما اگه هیچ «استاد مشاور»ی نداشته باشیم، وقتی این ۳ دستور رو کامنت میکنم، خطا میگیره (و در ضمن، عبارت «استاد مشاور» هم باقی میمونه).
چطور میشه فایل رو طوری تغییر داد که وقتی استاد مشاوری نداریم، نه خطا بگیره و نه عبارت «استاد مشاور»، ظاهر بشه؟
نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 04:49:54 بعد از ظهر
همونطور که توی فایل ضمیمه شده میبینین، برای تعریف «استاد مشاور»، از دستورات شرطی استفاده شده. به این صورت که اگه یه
«استاد مشاور» داشته باشیم، با دستور \firstadvisor اونو وارد میکنیم و اگه دو «استاد مشاور» داشته باشیم، اول، دستور
\twoadvisors رو فعال میکنیم و بعدش اسم استاد مشاور دوم رو هم با دستور \secondadvisor وارد میکنیم. اما اگه هیچ «استاد مشاور»ی نداشته باشیم، وقتی این ۳ دستور رو کامنت میکنم، خطا میگیره (و در ضمن، عبارت «استاد مشاور» هم باقی میمونه).
چطور میشه فایل رو طوری تغییر داد که وقتی استاد مشاوری نداریم، نه خطا بگیره و نه عبارت «استاد مشاور»، ظاهر بشه؟
متأسفانه من چیزی از حرفهات متوجه نشدم. پروندهای هم که پیوست کردی بصورت اشتباه از دستورات شرطی استفاده کردی و من نفهمیدم میخواهی چی کنی. دقیقاً سوالت چیه؟
نقل قول از: وفا در ژانویه 30, 2011, 04:58:03 بعد از ظهر
متأسفانه من چیزی از حرفهات متوجه نشدم. پروندهای هم که پیوست کردی بصورت اشتباه از دستورات شرطی استفاده کردی و من نفهمیدم میخواهی چی کنی. دقیقاً سوالت چیه؟
من میخوام وقتی کسی توی پایاننامهش، استاد مشاور نداره، با حذف کردن ۳ دستور بعد از \begin{document}،
عبارت «استاد مشاور»، توی خروجی، چاپ نشه و در ضمن، خطا هم نگیره. این دو مشکل رو چطور میشه حل کرد؟
نقل قول از: وحید دامن افشان در ژانویه 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\ وارد میکنه.
تا اینجای کار، همه چی مرتبه. اما اگه طرف، اصلاً استاد مشاور نداشته باشه، باید چیکار کنه؟ اگه بیاد و اون سه دستور رو کامنت کنه، دو مشکل براش پیش میاد:
۱- خطا میگیره.
۲- عبارت «استاد مشاور»، توی خروجی، چاپ میشه که نباید بشه.
حالا من میخوام این دو مشکل رو رفع کنم.
ممنون از وقتی که میذاری.
نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 05:45:33 بعد از ظهر
آقا وفا فکر کنم هنوز منظور منو خوب متوجه نشدین. بذارین بیشتر توضیح بدم.
هیچ فرقی نداره. من فقط به شما ایده دادم و قرار هم نبود که حل کنم مشکل را. پرونده پیوست را ببین.
نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 05:45:33 بعد از ظهر
۲- اگه طرف، دو استاد مشاور داشته باشه، دستور twoadvisors\ رو فعال میکنه و اسم استاد دومی رو با دستور secondadvisor\ وارد میکنه.
اصلاً نیازی به دستور اضافه و گمراهکننده \twoadvisiors نیست.
نقل قول از: وفا در ژانویه 30, 2011, 06:28:23 بعد از ظهر
اصلاً نیازی به دستور اضافه و گمراهکننده \twoadvisiors نیست.
حق با شماست. خودمم زیاد خوشم نیومد. باز هم به خاطر راهنماییتون ممنون.
نقل قول از: وحید دامن افشان در ژانویه 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
که البته این خیلی پیچیدهتر بود چون اولاً چهار گزینه داشتم و سه نوع طول داشتم که بر حسب اینها باید تصمیم میگرفتم، جوابهای چهارگزینهای چجوری قرار بگیره.
وفا جان، راهحلهات اونقدر آموزندهس که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.
یه سوال: نحوه بکاربردن عبارات شرطی رو از منبع خاصی یاد گرفتی یا با تجربه یاد گرفتی؟
نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 08:12:42 بعد از ظهر
وفا جان، راهحلهات اونقدر آموزندهس که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.
یه سوال: نحوه بکاربردن عبارات شرطی رو از منبع خاصی یاد گرفتی یا با تجربه یاد گرفتی؟
منبع خاصی نمیخواهد. فقط بایستی نحوه استفاده از دستور شرطی را بدانی و بقیش فقط منطق خودت هستش.
نقل قول از: وحید دامن افشان در ژانویه 30, 2011, 08:12:42 بعد از ظهر
وفا جان، راهحلهات اونقدر آموزندهس که آدم باید اونارو فاب بگیره و بزنه به دیوار تا همیشه جلوی چش آدم باشه.
یه سوال: نحوه بکاربردن عبارات شرطی رو از منبع خاصی یاد گرفتی یا با تجربه یاد گرفتی؟
واقعا...
علی ای حال...
دستور \gdef رو میشناسی؟...
یه نگاهی به sty های قدیمی بنداز...
مثلا اینو پیدا کن...
/texmf/tex/latex209/base/article.sty
gdef رو پیدا کن ... و بعد زیرش ببین چطور titlepage رو میسازه...
حتما ببین... یک کپی از اونو واست اتچ کردم... حتما یه نگا بنداز...
نقل قول از: امید غیور در فبریه 05, 2011, 02:17:24 قبل از ظهر
واقعا...
علی ای حال...
دستور \gdef رو میشناسی؟...
یه نگاهی به sty های قدیمی بنداز...
مثلا اینو پیدا کن...
/texmf/tex/latex209/base/article.sty
gdef رو پیدا کن ... و بعد زیرش ببین چطور titlepage رو میسازه...
حتما ببین... یک کپی از اونو واست اتچ کردم... حتما یه نگا بنداز...
۱- اگر پرونده تک ایشون رو نگاه کنید متوجه میشید که ایشون خیلی قشنگ میدونه \gdef چیه.
۲- \gdef چه ربطی به حل این مشکل در حالت کلی داره؟