سلام، لطفا وارد شوید یا عضو شوید.

نویسنده موضوع: گونه‌ای از کاربرد دستود if  (دفعات بازدید: 1556 بار)

آفلاین امیرحسین شرفی

  • Full Member
  • ***
  • تشکر
  • -اهدا شده: 105
  • -دریافت شده: 20
  • ارسال: 192
    • ديدن مشخصات
    • باشگاه ریاضی جم
گونه‌ای از کاربرد دستود if
« : نوامبر 25, 2011, 03:11:35 pm »
فرض کنید متغیر X را در فایل .cls به صورت زیر تعریف کرده‌ایم:
\def\X#1{\gdef\@X{#1}}‎‎ (خودم معنی‌اش را نمی‌دانم)
در فایل tex این متغیر سه مقدار a و b و c به صورت \X{a}و \X{b} و \X{c} می‌تواند بگیرد.
می‌خواهم در فایل .cls بگویم اگر مقدار X مثلا a بود فلان کار را کند، اگر b بود بهمان کار را بکند و...
چه کنم؟
« آخرين ويرايش: نوامبر 25, 2011, 03:47:31 pm توسط امیرحسین شرفی »
ریاضیات را جذاب‌تر بیاموزیم - www.jammathclub.com

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
پاسخ : گونه‌ای از کاربرد دستود if
« پاسخ #1 : نوامبر 25, 2011, 03:55:29 pm »
فرض کنید متغیر X را در فایل .cls به صورت زیر تعریف کرده‌ایم:
\def\X#1{\gdef\@X{#1}}‎‎ (خودم معنی‌اش را نمی‌دانم)
در فایل tex این متغیر سه مقدار a و b و c به صورت \X{a}و \X{b} و \X{c} می‌تواند بگیرد.
می‌خواهم در فایل .cls بگویم اگر مقدار X مثلا a بود فلان کار را کند، اگر b بود بهمان کار را بکند و...
چه کنم؟
\documentclass{article}
\makeatletter
\def\X#1{\gdef\@X{#1}}
\newcommand{\testX}{\if\@X a I am a\else \if\@X b I am b\else\if\@X c I am c\else I am neither a, b nor c\fi\fi\fi}
\makeatother
\begin{document}
\X{a}
\testX\\
\X{b}
\testX\\
\X{c}
\testX\\
\X{f}
\testX
\end{document}

آفلاین امیرحسین شرفی

  • Full Member
  • ***
  • تشکر
  • -اهدا شده: 105
  • -دریافت شده: 20
  • ارسال: 192
    • ديدن مشخصات
    • باشگاه ریاضی جم
پاسخ : گونه‌ای از کاربرد دستود if
« پاسخ #2 : نوامبر 25, 2011, 04:10:49 pm »
\documentclass{article}
\makeatletter
\def\X#1{\gdef\@X{#1}}
\newcommand{\testX}{\if\@X a I am a\else \if\@X b I am b\else\if\@X c I am c\else I am neither a, b nor c\fi\fi\fi}
\makeatother
\begin{document}
\X{a}
\testX\\
\X{b}
\testX\\
\X{c}
\testX\\
\X{f}
\testX
\end{document}
اگر این دستوری که شما تعریف کرده‌اید (یعنی \testX) را در فایل cls به کار برم دیگر نیازی به \makeatletter و \makeatother نیست. درسته؟

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
پاسخ : گونه‌ای از کاربرد دستود if
« پاسخ #3 : نوامبر 25, 2011, 04:47:36 pm »
اگر این دستوری که شما تعریف کرده‌اید (یعنی \testX) را در فایل cls به کار برم دیگر نیازی به \makeatletter و \makeatother نیست. درسته؟
نه نیازی نیست.

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
پاسخ : گونه‌ای از کاربرد دستود if
« پاسخ #4 : نوامبر 25, 2011, 05:01:13 pm »
من مثال شما رو کمی تغییر دادم و خواستم اگر X مقدارش a شد یک مربع توخالی (\square) رسم شود. ولی با خطا مواجه شدم. گویا نماد ریاضی را بین \makeatletter و \makeatother و همچنین در فایل cls نمی‌توان به کار برد. خوب من به این کار نیاز دارم اکنون چه کنم؟
چه سبکی \square رو تعریف می‌کنه؟

 

گونه ۰٫۲ سبک xindy-persian (پشتیبانی زبان پارسی برای زیندی)

نویسنده vafaانجمن Xindy

پاسخ ها: 3
مشاهده: 2064
آخرين ارسال سپتامبر 20, 2011, 08:42:13 am
توسط محمود امین‌طوسی
گونه ۱٫۲٫۱ سبک زی‌پرشین

نویسنده vafaانجمن زی‌تک

پاسخ ها: 0
مشاهده: 1199
آخرين ارسال سپتامبر 19, 2011, 06:55:48 pm
توسط vafa
کاربرد بسته natbib برای ارجاع دادن به مراجع پشت سر هم

نویسنده وحید دامن‌افشانانجمن مراجع و بیب‌تک BibTeX

پاسخ ها: 8
مشاهده: 6226
آخرين ارسال ژانویه 24, 2013, 06:47:04 am
توسط هادی صفی‌اقدم
چگونه مي‌توان در زي‌پرشين گونه اي زير نويس را نوشت كه كمترين جا را بگيرد؟

نویسنده meim007انجمن زی‌تک

پاسخ ها: 21
مشاهده: 8176
آخرين ارسال اوت 20, 2010, 04:28:45 pm
توسط هادی صفی‌اقدم
کاربرد دستورات \langle و \rangle

نویسنده هادی صفی‌اقدمانجمن حروف‌چینی مستندات

پاسخ ها: 7
مشاهده: 3834
آخرين ارسال ژوئن 09, 2010, 12:23:04 pm
توسط مهدی امیدعلی
گونه ۱٫۲٫۹ سبک bidi

نویسنده vafaانجمن زی‌تک

پاسخ ها: 0
مشاهده: 1174
آخرين ارسال سپتامبر 11, 2011, 05:17:32 pm
توسط vafa
گونه آزمایشی جدید xepersian

نویسنده vafaانجمن زی‌تک

پاسخ ها: 16
مشاهده: 7683
آخرين ارسال فوریه 09, 2011, 09:58:50 pm
توسط وحید دامن‌افشان
گونه بعدی پایدار xepersian و bidi

نویسنده vafaانجمن زی‌تک

پاسخ ها: 9
مشاهده: 5063
آخرين ارسال فوریه 12, 2011, 05:55:28 pm
توسط hasannoori