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

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

نحوه تعریف if و else

نویسنده ابوالفضل دیانت, ژانویه 06, 2012, 12:37:47 بعد از ظهر

« قبلی - بعدی »

ابوالفضل دیانت

با سلام
من یک متغیر به صورت زیر تعریف کرده ام
‎‎‎\gdef
\@glossType{persian}
\def\glossTyp
e#1{\gdef\@glossType{#1}}‎‎
بعد در جایی از فایل لاتک قبل از \begin{document}
به آن مقداری می دهم
\glossType{persian}‎

اکنون می خواهم یک if‌و esle بنویسم که اگر متغیر برابر با persian بود یکسری کارها را انجام دهد و اگر برابر با english
یکسری کارهای دیگر
چگونه می توانم این کار را انجام دهم؟
باتشکر

هادی صفی‌اقدم

من الان دسترسی به منابعم ندارم که جواب بدهم ولی جواب سوال شما در کتاب The Tex Book کنوث هست.

vafa


\documentclass{article}
\usepackage{xepersian}
\makeatletter
\newcommand{\my@gloss@persian}{%
کارهایی برای واژه‌نامه پارسی آنجام بده%
}
\newcommand{\my@gloss@english}{%
کارهایی برای واژه‌نامه لاتین آنجام بده%
}
\newcommand*{\glossType}[1]{%
  \ifcsname my@gloss@#1\endcsname
    \csname my@gloss@#1\expandafter\endcsname
  \else
    \PackageError{my-package}%
      {Invalid argument `#1' for \string\glossType}%
      \@ehc
  \fi
}
\makeatother
\begin{document}
\glossType{persian}

\bigskip

\glossType{english}

\bigskip

%\glossType{turkish}
\end{document}