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

نویسنده موضوع: آیا استفاده از & ‌در ماکرو اشکال دارد؟  (دفعات بازدید: 1760 بار)

آفلاین فرشاد ترابی

  • مدیر تالار
  • Hero Member
  • **
  • تشکر
  • -اهدا شده: 204
  • -دریافت شده: 474
  • ارسال: 1,779
    • ديدن مشخصات
سلام دوستان گرامی

من در فایل پیوست می‌خواهم یک ماکرو بنویسم که ستون‌های یک جدول را در دو حالت مختلف پر بکنه. اما ظاهراً وجود علامت &  در بدنه
ماکروها باعث ایجاد خطا می‌شه. مشکل از کجاست؟

آفلاین سید احمد موسوی

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 40
  • -دریافت شده: 255
  • ارسال: 595
    • ديدن مشخصات
خطای شما رو نمی دونم چیه. ولی خودم طور دیگه نوشتم. البته فکر کنم طرز نوشتن دستورات name و sname شما درست نیشت.

آفلاین فرشاد ترابی

  • مدیر تالار
  • Hero Member
  • **
  • تشکر
  • -اهدا شده: 204
  • -دریافت شده: 474
  • ارسال: 1,779
    • ديدن مشخصات
سلام

ممنون از کمک شما. ولی من اصلاً‌ متوجه نمی‌شوم که مشکل کار خودم چیه.
درضمن به نظر خودم فکر نکنم دستورهای name‌ و sname  مشکلی داشته باشند به نظر شما مشکل از چیه؟

آفلاین سید احمد موسوی

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 40
  • -دریافت شده: 255
  • ارسال: 595
    • ديدن مشخصات
به استایل پایان نامه تبریز اگر نگاه کنید زیاد از این روش استفاده شده. اگر اشتباه نکنم طریقه تعریف به این شکل بود.
\def\name#1{\gdef\@name{#1}}

آفلاین فرشاد ترابی

  • مدیر تالار
  • Hero Member
  • **
  • تشکر
  • -اهدا شده: 204
  • -دریافت شده: 474
  • ارسال: 1,779
    • ديدن مشخصات
من اصلاً دارم استیل پایان‌نامه تبریز را برای دانشگاه خواجه نصیر تنظیم می‌کنم.
تغییرات زیادی دادم و هیچ‌کجا هم مشکل نداشتم غیر از این یکی که واسم خیلی عجیب بود.
اینجوری درست می‌شه (از کار شما کپی کردم) ولی من هنوز نفهمیدم اشکال کار قبلی از کجاست.
\documentclass{article}


\usepackage{xepersian}
\settextfont{HM XNiloofar}

\def\name{فرشاد}
\def\sname{ترابی}

\def\NAME{نام: \name  & فامیل: \name }
\def\SNAME{نام: \sname  & فامیل: \sname }
\def\Col{
\ifdefined\SNAME%
\SNAME
\else
\NAME
\fi
}


\begin{document}

\begin{tabular}{|c |c|}
آ & ب\\
پ & ت\\
\Col
\end{tabular}


\end{document}

آفلاین سید احمد موسوی

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 40
  • -دریافت شده: 255
  • ارسال: 595
    • ديدن مشخصات

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
سلام دوستان گرامی

من در فایل پیوست می‌خواهم یک ماکرو بنویسم که ستون‌های یک جدول را در دو حالت مختلف پر بکنه. اما ظاهراً وجود علامت &  در بدنه
ماکروها باعث ایجاد خطا می‌شه. مشکل از کجاست؟
هیچ موقع از \ifx استفاده نکن چون خیلی اوقات دستوری که داری ممکنه معنای \relax داشته باشه و کاری که با دستورات شرطی انجام می‌دهی غلط از آب دربیاد، به جاش از دستورات \if@bidi@csundef یا \if@bidi@undef استفاده کن. هر چند مشکلی که اینجا داری بی‌ارتباط با این موضوعه و مشکلت ربط به expansion داره.
« آخرين ويرايش: اوت 29, 2013, 03:53:47 pm توسط وفا خلیقی »

آفلاین فرشاد ترابی

  • مدیر تالار
  • Hero Member
  • **
  • تشکر
  • -اهدا شده: 204
  • -دریافت شده: 474
  • ارسال: 1,779
    • ديدن مشخصات
هیچ موقع از \ifx استفاده نکن چون خیلی اوقات دستوری که داری ممکنه معنای \relax داشته باشه و کاری که با دستورات شرطی انجام می‌دهی غلط از آب دربیاد، به جاش از دستورات \if@bidi@csundef یا \if@bidi@undef استفاده کن. هر چند مشکلی که اینجا داری بی‌ارتباط با این موضوعه و مشکلت ربط به expansion داره.

ممنون از راهنمایی گرانقدر شما
اگر امکان داره یک کوچولو راجع به فرق \if@bidi@undef  و \if@bidi@csundef  بدهید یا مرجعی که در آن توضیح داده شده ‌را معرفی کنید.
همچنین چرا روش من مشکل expansion‌ داره؟ خودم تجربم کمه متوجه نمی‌شوم.

ممنون

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
ممنون از راهنمایی گرانقدر شما
اگر امکان داره یک کوچولو راجع به فرق \if@bidi@undef  و \if@bidi@csundef  بدهید یا مرجعی که در آن توضیح داده شده ‌را معرفی کنید.
همچنین چرا روش من مشکل expansion‌ داره؟ خودم تجربم کمه متوجه نمی‌شوم.

ممنون
هر دو دستور در بسته biditools تعریف شده‌اند که جزئی از کلاف بسته bidi است. راهنمایی وجود نداره چون بسته biditools بسته کاربر نیست بسته‌ای هست که من برای برنامه‌نویسی بسته‌های bidi و xepersian استفاده کردم. نحوه استفاده دو دستور به صورت زیر هست:
\if@bidi@undef{\commandi}{do things if \commandi is undefined}{do things if \commandi is defined}
\if@bidi@csundef{commandi}{do things if \commandi is undefined}{do things if \commandi is defined}
هر دو دستور عین هم کار می‌کنند تنها تفاوتشون اینه که در آرگومان اول که یک دستور هست برای \if@bidi@csundef برای نام فرمان احتیاجی به \ نیست.

 

استفاده از اشکال هندسی در سند

نویسنده amirjadidiانجمن گرافیک، جدول و شکل

پاسخ ها: 8
مشاهده: 3733
آخرين ارسال ژوئن 07, 2010, 07:58:47 pm
توسط مهدی امیدعلی
اشکال در استفاده از قلمهای سری X

نویسنده محسن رحمانیانانجمن قلم‌ها و حروف

پاسخ ها: 2
مشاهده: 1910
آخرين ارسال مه 16, 2010, 12:29:45 pm
توسط محسن رحمانیان
اشکال در استفاده از pstricks

نویسنده مرتضیانجمن گرافیک، جدول و شکل

پاسخ ها: 2
مشاهده: 1403
آخرين ارسال اوت 05, 2010, 04:41:57 pm
توسط هادی صفی‌اقدم
ایجاد اشکال در استفاده از بسته color و تغییر نگ قسمتی از متن

نویسنده hasannooriانجمن اسلاید Beamer

پاسخ ها: 8
مشاهده: 5337
آخرين ارسال دسامبر 01, 2010, 05:09:43 pm
توسط vafa
اشکال در استفاده از قلم یاس

نویسنده سید مهدی موسویانجمن قلم‌ها Fonts

پاسخ ها: 8
مشاهده: 3636
آخرين ارسال دسامبر 21, 2010, 05:10:09 pm
توسط سید مهدی موسوی
اشکال در استفاده از: پاورقی چند ستونه!

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

پاسخ ها: 5
مشاهده: 2916
آخرين ارسال نوامبر 01, 2011, 01:59:22 pm
توسط vafa
استفاده از شمارنده در ماکرو

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

پاسخ ها: 5
مشاهده: 2292
آخرين ارسال مارس 10, 2012, 06:04:30 am
توسط فرشاد ترابی
بروز خطا هنگامی که از دستور \lr در ماکرو استفاده می شود.

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

پاسخ ها: 1
مشاهده: 1804
آخرين ارسال ژوئن 27, 2012, 04:14:47 pm
توسط vafa