mathsPIC(1) General Commands Manual mathsPIC(1)

mathsPIC - یک برنامه فیلتر Perl برای PiCTeX

A. Syropoulos و R.W.D. Nickalls (۲۶ آوریل ۲۰۱۰)


asyropoulos[at]<yahoo><com>
dick[at]<nickalls><org>

برنامه mathsPIC یک برنامه فیلتر Perl برای PiCTeX است. mathsPIC دارای قابلیت ماکرو و کتابخانه ماکروی اختصاصی خود بوده و امکان استفاده از دستورات mathsPIC، PiCTeX، TeX و LaTeX را فراهم می‌کند. یکی از ویژگی‌های برجسته mathsPIC امکان دسترسی به خط فرمان است و از این رو به کاربر اجازه می‌دهد با فراخوانی Perl و سایر برنامه‌های نوشته‌شده برای انجام ترسیم‌های خاص، دستورات mathsPIC را گسترش دهد. برای جزئیات کامل و مثال‌ها، راهنمای بسته را ببینید. آخرین نسخه را می‌توان از نشانی زیر بارگیری کرد:

CTAN: tex-archive/graphics/pictex/mathspic/perl

دستوراتی که می‌توان در فایل اسکریپت mathsPIC استفاده کرد به چهار گروه اصلی تقسیم می‌شوند: (الف) دستورات ماکروی mathsPIC (با پیشوند %def)، (ب) دستورات معمولی mathsPIC (بدون بک‌اسلش)، (ج) دستورات معمولی PiCTeX (همگی دارای بک‌اسلش)، و (د) دستورات معمولی TeX و LaTeX (همگی دارای بک‌اسلش).

توابع ریاضی زیر قابل استفاده هستند (توجه داشته باشید که کسرهای اعشاری با مقدار مطلق کمتر از ۱ باید دارای یک صفر قبل از ممیز باشند). همچنین توجه داشته باشید که تمام توابع مثلثاتی به آرگومان بر حسب رادیان نیاز دارند.

مثلثاتی: sin()، cos()، tan()، asin()، acos()، atan()

باقیمانده: rem()؛ به عنوان مثال var r=12 rem(5)

عدد صحیح: int()؛ به عنوان مثال var r= int(3.87) --> 3

علامت (مقادیر -1، 0، +1 را برمی‌گرداند): sgn()؛ به عنوان مثال var s=sgn(-3.27) --> -1

ریشه دوم: sqrt()؛ به عنوان مثال var s = sqrt(14)

به توان رساندن: **؛ به عنوان مثال var j = r**2

ثابت پی (3.14159...): _Pi_ و _pi_

ثابت e (2.71828...): _E_ و _e_

ضخامت خط: _linethickness_ ؛ به عنوان مثال var t = _linethickness_

perl mathspic.pl [-b] [-c] [-h] [-o <outfile>] <infile>

-b در صورت تشخیص خطا توسط mathsPIC، بوق هشدار (beep) را فعال می‌کند

-c نوشتن توضیحات (کامنت‌ها) در فایل خروجی را غیرفعال می‌کند

-h فایل راهنما را نمایش می‌دهد

-o نام فایل خروجی را تعیین می‌کند

دستورات تعریف ماکرو با %def آغاز می‌شوند و می‌توانند ۰، ۱ یا چند پارامتر بپذیرند. ماکروها عموماً به عنوان بخشی از دستور var همان‌طور که در زیر نشان داده شده است استفاده می‌شوند. ماکروها با استفاده از دستور %undef حذف می‌شوند.


-----syntax:
%def MACRONAME(parameters)<macrodefinition>
%undef MACRONAME(parameters)


-----notes:
نکات: (الف) حتی اگر پارامتری استفاده نشود، () باید در تعریف آورده شود، (ب) نام می‌تواند هر ترکیبی از حروف بزرگ و کوچک و اعداد باشد، (ج) وقتی ماکرو در یک دستور استفاده می‌شود، با نماد & شروع می‌شود، (د) ایده خوبی است که همیشه یک نماد % در انتهای تعریف قرار داده شود، (هـ) توضیحات (با پیشوند نماد %) را می‌توان دقیقاً مانند TeX یا LaTeX پس از تعریف ماکرو قرار داد.


-----examples:
%def d2r()_pi_/180% % degrees2radians
%def AreaOfRectangle(x,y)x*y% % width x, length y
%undef d2r() % delete the macro


-----use:
var j2= 6*(&d2r(45) + 23)
var a3 = 3*&AreaOfRectangle(5,7)

عبارت‌های عددی (NUMERICAL EXPRESSIONS)
هنگام کار با دستورات، مکرراً به اصطلاح «عبارت عددی» اشاره خواهیم کرد که منظور از آن یکی از موارد زیر است: (الف) یک عدد (صحیح یا اعشاری)، (ب) یک متغیر یا ثابت عددی (تعریف‌شده با استفاده از دستور var یا const)، (ج) هر تابع، ماکرو یا عبارت ریاضی mathsPIC که به یک عدد ارزیابی شود، یا (د) یک جفت از نام نقاط (مانند AB) که نمایانگر فاصله فیثاغورثی بین دو نقطه است. برای کسرهای اعشاری کمتر از یک، باید از صفر قبل از ممیز استفاده شود.


به طور کلی، اگر آرگومان یک دستور عددی را بپذیرد، یک «عبارت عددی» (<expr>) را نیز همان‌طور که در بالا تعریف شد خواهد پذیرفت. گاهی یک واحد (<unit>) در ادامه با عدد یا عبارت عددی همراه است، که در این حالت عدد یا عبارت عددی می‌تواند با پرانتز گرد محصور شود (یا با یک <space> از واحد جدا شود)، همان‌طور که در مثال‌های زیر نشان داده شده است.


-----examples:
ArrowShape(3mm, 20,40)
var h=4
ArrowShape(h mm, 20, 40)
ArrowShape((2*h)mm,20,40)

BACKSLASH \
یک بک‌اسلش آغازین بدون فاصله پس از آن نشان می‌دهد که بخشی از یک دستور PiCTeX، TeX یا LaTeX است، که در این صورت mathsPIC صرفاً تمام خط را عیناً به فایل خروجی کپی می‌کند. یک بک‌اسلش آغازین که پس از آن یک یا چند فاصله باشد، باعث می‌شود mathsPIC تمام خط را عیناً به فایل خروجی کپی کند اما بدون بک‌اسلش.

استفاده از بسته رنگ (USING THE COLOR PACKAGE)
بسته استاندارد COLOR را می‌توان همراه با mathsPIC استفاده کرد، اما توجه داشته باشید که بارگذاری بسته COLOR پس از بسته mathsPIC بسیار مهم است.


بهتر است یک نماد توضیح % در انتهای دستورات LaTeX و TeX قرار دهید تا فاصله‌های خالی انتهایی محدود شوند.


در صورت هرگونه سرایت رنگ از دیاگرام به متن پس از آن (این مورد در پیاده‌سازی‌های اولیه TeX یک مشکل بود)، استفاده از دستور \normalcolor را به عنوان یک جداکننده در محیط \beginpicture...\endpicture مد نظر قرار دهید.

==============================

ARROWSHAPE
این دستور شکل نوک پیکان را تعریف می‌کند و امکان سفارشی‌سازی نوک پیکان‌های مختلف را فراهم می‌سازد.

شکل پیش‌فرض پیکان معادل دستور Arrowshape(2mm,30,40) است. این شکل پیش‌فرض نوک پیکان را می‌توان با استفاده از دستور Arrowshape(default) بازنشانی کرد، همان‌طور که در مثال زیر نشان داده شده است.


-----syntax:
arrowshape(<length>[units], <angledeg>, <angledeg>)


-----examples:
Arrowshape(4mm,30,60)
drawArrow(AB)
Arrowshape(default)

==============================

beginLOOP...endLOOP
این محیطی است که یک بلوک کد را به تعداد دفعات مشخص‌شده تکرار می‌کند.


-----syntax:
beginLoop <expr>
...
endLoop


-----notes:
بلوک کدی که در داخل این محیط قرار دارد، به تعداد <expr> بار دریافت می‌شود.


-----example:
beginLoop 5
...
endLoop

==============================

beginSKIP...endSKIP
این یک «محیط» است که دستورات درون آن اجرا نمی‌شوند. این محیط در زمان توسعه برای آزمایش دستورات به صورت مجزا و مستثنی کردن سایر دستورات مفید است.

==============================

CONST
دستور const برای تعریف ثابت‌های نرده‌ای (اسکالر) استفاده می‌شود. توجه داشته باشید که نام یک ثابت باید با یک حرف تکی (بزرگ یا کوچک) شروع شود و می‌تواند حداکثر تا سه رقم به دنبال آن داشته باشد. توجه داشته باشید که ثابت‌ها، متغیرها و نقاط ساختار نام‌گذاری یکسانی دارند و یک ثابت می‌تواند هم‌نام با یک نقطه باشد (بنابراین پیشنهاد می‌کنیم برای نقاط از حروف بزرگ و برای متغیرها و ثابت‌ها از حروف کوچک استفاده شود). آرگومان اسکالر می‌تواند هر عبارت عددی باشد. مقادیر جدید را نمی‌توان مجدداً به نام‌های ثابتِ موجود اختصاص داد. اگر این اتفاق بیفتد، mathsPIC یک پیام خطا صادر می‌کند.


-----syntax:
const name = <expr>


-----examples:
const r = 20, r4 = r3*tan(0.3)

==============================

DashArray
دستور dasharray تعداد اختیاری از آرگومان‌های جفت‌شده را می‌پذیرد که برای مشخص کردن الگوی خط‌چین استفاده می‌شوند.


-----syntax
dasharray(d1 , g1 , d2 , g2 , ... )


-----notes
پارامترهای d طول خط‌چین و پارامترهای g طول فاصله خالی بین دو خط‌چین متوالی را مشخص می‌کنند. تعداد آرگومان‌ها باید زوج باشد. اگر از یک متغیر یا عبارت استفاده می‌شود، باید با یک <space> یا با پرانتزهای گرد ( ) از واحد جدا شود، همان‌طور که در زیر نشان داده شده است.


-----example
dasharray(6pt, 2pt, 1pt, 2pt)
var d=2
dasharray(6pt, 2pt, 1pt, d pt)
dasharray(6pt, 2pt, 1pt, (d)pt)
dasharray(6pt, 2pt, 1pt, (3*d)pt)

==============================

DrawAngleArc
این دستور یک کمان در زاویه مشخص‌شده، در فاصله <radius> از زاویه رسم می‌کند. زاویه می‌تواند <internal> (داخلی، کمتر از ۱۸۰ درجه) یا <external> (خارجی، بیشتر از ۱۸۰ درجه) باشد. جهت کمان یا <clockwise> (ساعت‌گرد) یا <anticlockwise> (پادساعت‌گرد) است، و این جهت باید با ترتیب حروف مشخص‌شده برای زاویه مطابقت داشته باشد. اگر این چهار پارامتر از نظر داخلی با یکدیگر سازگار نباشند، نتایج عجیب و غیرمنتظره‌ای ایجاد خواهد شد. ترتیب گزینه‌های زاویه/شعاع/داخلی یا خارجی/ساعت‌گرد یا پادساعت‌گرد حائز اهمیت است. پارامتر <radius> می‌تواند هر عبارت عددی باشد.


-----syntax:
DrawAngleArc{angle(), radius(), external, clockwise}


-----example:
DrawAngleArc{angle(ABC), radius(3), external, clockwise}
var r=3
DrawAngleArc{angle(ABC), radius(r), external, clockwise}

==============================

DrawAngleArrow
این دستور یک پیکان منحنی در زاویه مشخص‌شده، در فاصله <radius> از زاویه رسم می‌کند. زاویه می‌تواند <internal> (کمتر از ۱۸۰ درجه) یا <external> (بیشتر از ۱۸۰ درجه) باشد. جهت پیکان یا <clockwise> (ساعت‌گرد) یا <anticlockwise> (پادساعت‌گرد) است، و این جهت باید با ترتیب حروف مشخص‌شده برای زاویه مطابقت داشته باشد. اگر این چهار پارامتر از نظر داخلی با یکدیگر سازگار نباشند، نتایج عجیب و غیرمنتظره‌ای ایجاد خواهد شد. ترتیب گزینه‌های زاویه/شعاع/داخلی/ساعت‌گرد حائز اهمیت است. پارامتر <radius> می‌تواند هر عبارت عددی باشد.


-----syntax:
DrawAngleArrow{angle(), radius(), external, clockwise}


-----example:
DrawAngleArrow{angle(ABC), radius(3), external, clockwise}
var r=3
DrawAngleArrow{angle(ABC), radius(r), external, clockwise}

==============================

DrawArrow
این دستور یک یا چند پیکان رسم می‌کند که دو نقطه را به هم متصل می‌کنند. جهت پیکان در جهت ترتیب نقاطِ مشخص‌شده است.


-----syntax:
drawArrow(<line> [,<line>] ... )


-----notes:
گزینه طول فقط می‌تواند به یک پیکان اشاره داشته باشد


-----example:
drawArrow(AB)
drawArrow(FG, HJ)

==============================

DrawCircle
این دستور دایره‌ای را رسم می‌کند که با شعاع و نام نقطه مرکز آن مشخص شده است. مقدار <radius> می‌تواند هر عبارت عددی باشد. اگر واحدهای محورهای X و Y متفاوت باشند، ممکن است دایره‌ها به شکل نامتعارفی رسم شوند و به همین دلیل mathsPIC پیامی هشدارآمیز در این خصوص تولید می‌کند.


-----syntax:
DrawCircle(<center>, <radius>)


-----examples:
drawCircle(C2,5)
drawCircle(C2,r2)
drawCircle(C2,r2/tan(1.3))
drawCircle(C2,AB)

==============================

DrawCircumcircle
این دستور دایره محیطی یک مثلث را رسم می‌کند.


-----syntax:
DrawCircumcircle(<triangle>)


-----example:
drawCircumcircle(ABC)

==============================

DrawCurve
این دستور یک منحنی درجه دوم هموار را از میان سه نقطه به ترتیب نقاطِ مشخص‌شده رسم می‌کند. توجه داشته باشید که منحنی‌های رسم‌شده با استفاده از این دستور برای اجتناب از نواحی بدون خطِ مرتبط با نقاط، قطع نمی‌شوند.


-----syntax:
DrawCurve(<point><point><point>)


-----example:
drawCurve(ABC)==============================

DrawExcircle
این دستور دایرهٔ برمحاطی (excircle) مماس بر یک ضلع یک مثلث را رسم می‌کند.


-----نحو:
DrawExcircle(<triangle>, <side>)


-----مثال:
drawExcircle(ABC, BC)

==============================

DrawIncircle
این دستور دایرهٔ محاطی داخلی (incircle) یک مثلث را رسم می‌کند.


-----نحو:
DrawIncircle(<triangle>)


-----مثال:
drawIncircle(ABC)

==============================

DrawLine
این دستور خطی را رسم می‌کند که دو یا چند نقطه را به یکدیگر متصل می‌کند. برای تغییر ضخامت از دستور Linethickness استفاده کنید. این دستور برای خطوط افقی و عمودی از دستور \putrule در PiCTeX و برای سایر جهات از دستور \plot استفاده می‌کند.


-----نحو:
DrawLine( <points> [, <points>] )


-----نکات:
<points> هر توالی از دو یا چند نام نقطه است.
<expr> هر عبارت عددی است.
خطوط به همان ترتیبی که مشخص شده‌اند رسم می‌شوند.
خطوط با کاما از یکدیگر جدا می‌شوند.


-----مثال‌ها:
drawline(AB)
drawline(BCDE)
drawline(FG, HJK, PQRST)

==============================

DrawPerpendicular
این دستور خط عمود از یک نقطه به یک خط را رسم می‌کند.


-----نحو:
DrawPerpendicular(<point>, <line)


-----مثال:
drawPerpendicular(P,AB)

==============================

DrawPoint
این دستور نماد نقطه (point-symbol) را در مکان نقطه رسم می‌کند. برای جداسازی نام نقاط نباید از کاما استفاده شود. نماد پیش‌فرض نقطه


-----نحو:
DrawPoint(<point> [<point> ..])


-----مثال‌ها:
drawpoint(T4)
drawpoint(ABCDEF)
drawpoint(P1 P2 P3 P4)

==============================

DrawRightangle
این دستور نماد استاندارد زاویهٔ قائمه را در زاویهٔ داخلی مشخص‌شده و با اندازه‌ای که توسط <expr> تعیین شده رسم می‌کند.


-----نحو:
DrawRightangle(<angle>, <expr>)


-----نکات:
مقدار <expr> می‌تواند هر عبارت عددی باشد.


-----مثال:
drawRightangle(ABC,3)
drawRightangle(ABC,PQ)
var d=5
drawRightangle(ABC,d)

==============================

DrawSquare
این دستور مربعی را رسم می‌کند که با ضلع آن و نام نقطهٔ مرکز آن تعریف شده است. مقدار <sidelength> می‌تواند هر عبارت عددی باشد.


-----نحو:
DrawSquare(<centerpoint>, <sidelength>)


-----مثال‌ها:
drawSquare(P,5)
var s2=3, j=2
drawSquare(P,s2)
drawSquare(P, s2*4/(3*j))
drawSquare(P,AB)

==============================

DrawThickArrow
این دستور یک یا چند پیکان ضخیم رسم می‌کند که دو نقطه را به هم متصل می‌کنند. جهت پیکان مطابق با ترتیب نقاط مشخص‌شده است. شکل نوک پیکان توسط دستور ArrowShape کنترل می‌شود.


-----نحو:
drawThickArrow(<line> [,<line>,...])


-----مثال‌ها:
drawThickarrow(BC)
drawThickarrow(PQ, RS)

==============================

DrawThickLine
این دستور یک یا چند خط ضخیم رسم می‌کند که دو نقطه را به هم متصل می‌کنند. جهت خط مطابق با ترتیب نقاط مشخص‌شده است. برای تغییر ضخامت خط از دستور Linethickness استفاده کنید.


-----نحو:
drawThickLine(<line> [,<line>,...])


-----مثال‌ها:
drawThickline(BC)
drawThickline(PQ, RS)

==============================

InputFile
این دستور یک فایل متنی ساده حاوی دستورهای mathsPIC را وارد می‌کند. در صورت تمایل، فایل می‌تواند چندین بار وارد شود که در این حالت این دستور مانند یک حلقهٔ DO--LOOP عمل می‌کند. مقدار <loopnumber> می‌تواند هر عبارت عددی باشد. اگر <loopnumber> یک عدد صحیح نباشد، mathsPIC مقدار آن را به سمت پایین به نزدیک‌ترین عدد صحیح گرد می‌کند. همچنین دستورهای beginLOOP ... endLOOP را ببینید.


-----نحو:
inputFile[*](<filename>)[<loopnumber>]


-----نکات:
دستور inputfile* برای وارد کردن یک فایل به‌صورت عین به عین (verbatim) به کار می‌رود؛ یعنی فایلی بدون هیچ دستور mathsPIC، برای مثال فایلی که فقط شامل دستورهای PiCTeX یا نقاط داده برای رسم و غیره است. توجه داشته باشید که دستور inputfile* گزینهٔ <loopnumber> را ندارد. همچنین توجه داشته باشید که PiCTeX به یک تعداد فرد (ODD) از نقاط نیاز دارد.


-----مثال‌ها:
inputFile(myfile.dat)[4]
inputFile*(mycurvedata.dat)

==============================

LineThickness
این دستور یک ضخامت خط خاص را تعیین می‌کند. دستور linethickness(default) ضخامت خط فعال را به مقدار پیش‌فرض 0.4pt بازمی‌گرداند. مقدار فعلی ضخامت خط (در واحدهای جاری) را می‌توان با استفاده از دستور var به دست آورد (این امر هنگام رسم اشکال با خطوط ضخیم می‌تواند مفید باشد).


-----نحو:
LineThickness(<expr><units>)
LineThickness(default)
var t = _linethickness_


-----نکات:
این دستور همچنین قلم را روی cmr و plotsymbol را روی \CM . قرار می‌دهد و همچنین ضخامت خط را برای رسم خطوط افقی و عمودی تنظیم می‌کند. درج صفر قبل از ممیز برای کسرهای اعشاری کوچک‌تر از یک حائز اهمیت است.


-----مثال‌ها:
linethickness(2pt)
var t=3
linethickness((t)pt)
lineThickness((2*t)pt)
linethickness(default)
var t = _linethickness_


-----هشدار:
توجه داشته باشید که یک دستور مشابه در PiCTeX با همین نام (اما با نحوی متفاوت) وجود دارد.

==============================

PAPER
ناحیهٔ رسم را بر اساس گزینه‌های units()، xrange()، yrange()، axes() و ticks() تعریف می‌کند. آرگومان units() باید شامل یک مقدار عددی و یک واحد معتبر طول TeX شامل mm، cm، pt، pc(pica)، in(inch)، bp(big point)، dd(didot)، cc(cicero) و sp(scaled point) باشد. محورهای X و Y می‌توانند واحدهای متفاوتی داشته باشند (مثال دوم در زیر را ببینید). آرگومان‌های XYTBLR در axes() به محورهای X و Y و محورهای بالا (Top)، پایین (Bottom)، چپ (Left) و راست (Right) اشاره دارند. قرار گرفتن یک * پس از یکی از محورها، علامت‌های درجه‌بندی (ticks) را روی آن محور غیرفعال می‌کند. محورهای X و Y از صفرها عبور می‌کنند.


-----مثال‌ها:
paper{units(1cm),xrange(0,10),yrange(0,10)}
paper{units(2cm,1cm),xrange(0,10),yrange(0,10),axes(LB)}
paper{units(1mm),xrange(0,100),yrange(0,100),axes(XY)}
paper{units(1cm),xrange(-5,5),yrange(-5,5),axes(LRTBXY),ticks(1,1)}
paper{units(1cm),xrange(-5,5),yrange(-5,5),axes(LRT*B*)}

==============================

POINT
یک نقطهٔ جدید را با تخصیص مختصات به یک نام نقطهٔ جدید تعریف می‌کند. گزینهٔ * مختصات را دوباره به نام یک نقطهٔ موجود تخصیص می‌دهد.


-----نحو:
POINT[*](<name>){<point>}[symbol=<chars>, radius=<expr>]
POINT[*](<name>){<location>}[symbol=<chars>, radius=<expr>]


-----نکات:
<name> یک حرف ابتدایی به همراه حداکثر سه رقم انتهایی
<chars> هر رشتهٔ TeX مجاز در یک \hbox{}
<expr> هر عبارت عددی
گزینهٔ polar(r,theta) به‌طور پیش‌فرض از رادیان برای زاویهٔ theta استفاده می‌کند. برای کار بر حسب درجه باید <deg> به آن اضافه شود، مانند: polar(r,theta deg). می‌توان از <direction()> و <directiondeg()> برای جایگزینی theta استفاده کرد. توجه داشته باشید که عبارت vector(AB) به معنای استفاده از همان (r, theta) مربوط به AB است.


-----مثال‌ها:
point(A){5,5}
point(B2){22,46}[symbol=$\odot$]
point(B2){22,46}[symbol=circle(2),radius=5]
var r=3
point(B2){22,46}[symbol=square(3),radius=r]
point(B123){22,46}[radius=5]
point(D2){B2, shift(5,5)}
var s = 3
point(D2){B2, shift(2*s,4*s)}
point(D3){D2, polar(6,32 deg)}
point(D4){D2, polar(6,1.2 rad)}
point(D4){D2, polar(6, direction(AB))} %% radians by default
point(D4){D2, polar(6, directiondeg(AB) deg)}
point(G2){Q, rotate(P, 23 deg)}
point(G2){Q, vector(AB)}
point(D2){intersection(AB,CD)}
point(F){PointOnLine(AB,5.3)}
point(G){perpendicular(P,AB)}
point(H){circumcircleCenter(ABC)}
point(J){incircleCenter(ABC)}
point(K){excircleCenter(ABC,BC)}
point*(A){6,3}
point*(P){Q}
point*(B){B, shift(5,0)}
point*(P){xcoord(J),ycoord(K)}

==============================

PointSymbol
این دستور امکان تغییر نماد پیش‌فرض نقطه \bullet (با شعاع بدون خط صفر) را فراهم می‌کند. دستور PointSymbol به‌ویژه زمانی مفید است که مجموعه‌ای از نقاط از یک نماد نقطهٔ یکسان استفاده می‌کنند، برای مثال هنگام رسم نمودارها. نماد نقطه را می‌توان با استفاده از دستور PointSymbol(default) به مقدار پیش‌فرض \bullet بازنشانی کرد.


-----نحو:
PointSymbol(<symbol>, <line-free-radius>)
PointSymbol(default)


-----نکات:
دستور PointSymbol فقط بر دستورهای point بعدی تأثیر می‌گذارد.
کروکشهٔ اختیاری در دستور point، اولویت بالاتری نسبت به دستور PointSymbol دارد و آن را لغو می‌کند.


-----مثال‌ها:
PointSymbol($\odot$, 0.7)
PointSymbol(default)

==============================

SYSTEM
این دستور به کاربر اجازه می‌دهد به خط فرمان دسترسی داشته باشد و دستورهای استاندارد لینوکس را اجرا کند. یک کاربرد مهم این دستور، اجرای یک برنامهٔ Perl است.


-----نحو:
System("<command>")


-----نکات:
رشتهٔ <command> باید درون گیومه باشد.


-----مثال:
system("dir > mydir-listing.txt")
system("perl myperlprogram.pl")

==============================.B SHOW.... این دستور باعث می‌شود mathsPIC مقدار یک محاسبه یا پارامتر مشخص‌شده را برگرداند؛ برای نمونه، مقدار یک زاویه خاص یا طول یک پاره‌خط. نتیجه در فایل خروجی به صورت یک خط توضیح (کامنت) نمایش داده می‌شود. این قابلیت امکان تنظیم دستورات mathsPIC را با توجه به محاسبات فراهم می‌کند. در حال حاضر پنج دستور از این نوع به شرح زیر وجود دارد:


-----نحو (syntax):
showLength(AB)
showAngle(ABC) % زاویه را برحسب رادیان برمی‌گرداند
showAngledeg(ABC) % زاویه را برحسب درجه برمی‌گرداند
showArea(ABC)
showPoints
showVariables

==============================

TEXT این دستور یک رشته متنی (text-string) را در یک مکان مشخص قرار می‌دهد. به‌طور پیش‌فرض، متن به صورت عمودی و افقی در نقطه تعیین‌شده تراز وسط قرار می‌گیرد. به صورت اختیاری، متن می‌تواند با استفاده از ترکیب‌های مناسب گزینه‌های موقعیت (position) در PiCTeX شامل l، t، r، B و b نسبت به یک نقطه قرار گیرد تا به ترتیب لبه چپ (l)، لبه راست (r)، لبه بالا (t)، خط کرسی یا Baseline (B) و لبه پایین (b) کادر متنی با مکان نقطه هم‌تراز شوند.

به یاد داشته باشید که یکای پیش‌فرض برای آرگومان زاویه در عبارت polar() رادیان است؛ بنابراین اگر می‌خواهید با درجه کار کنید، حتماً باید deg را اضافه کنید.


-----نحو (syntax):
text(<string>){<location>}[<position options>]
text(<string>){<pointname>, shift(<x>,<y>)}[]
text(<string>){<pointname>, polar(<r>,<angle>[rad])}[]


-----مثال‌ها (examples):
text(A){5,6}
text($A_1$){A1, shift(2, 2)}
text(Z2){Z2, shift(5, -5)}[tr]
text(Z3){Z2, polar(5, 20 deg)}[Br]
text(Z4){Z2, polar(5, 1.34 rad)}
text(\framebox{Z5}){Z5}

==============================

VAR دستور var برای تعریف متغیرهای نرده‌ای (اسکالر) به کار می‌رود و می‌تواند هر عبارت عددی باشد. نام متغیر باید با یک تک‌حرف (بزرگ یا کوچک) آغاز شود و می‌تواند حداکثر تا چهار رقم پس از آن داشته باشد. اگر به نام متغیر دقیق‌تری نیاز است، یک راهکار ساده استفاده از ماکروی mathsPIC است---چرا که هر رشته‌ای را می‌توان از طریق ماکروها تخصیص داد (برای جزئیات درباره ماکروها به ابتدای این فصل مراجعه کنید).

توجه داشته باشید که متغیرها، ثابت‌ها و نقاط ساختار نام‌گذاری یکسانی دارند و یک متغیر می‌تواند نامی مشابه یک نقطه داشته باشد (بنابراین پیشنهاد می‌کنیم نقاط دارای حروف بزرگ و متغیرها و ثابت‌ها دارای حروف کوچک باشند). مقادیر جدید را می‌توان مجدداً به نام‌های متغیرهای موجود تخصیص داد؛ با این حال، هنگام رخ دادن این اتفاق، mathsPIC هیچ پیام هشداری برای برجسته کردن این موضوع صادر نمی‌کند.

اگر دریافت هشدار در صورت تخصیص مجدد تصادفی یک متغیر بالقوه مهم باشد، باید به جای آن استفاده از دستور const را در نظر گرفت (زیرا mathsPIC در صورت تخصیص مجدد یک مقدار ثابت، پیام خطا صادر می‌کند).


-----نحو (syntax):
var <name> = <expr>


-----نکات (notes):
علاوه بر توابع ریاضی، توابع mathsPIC که می‌توانند با دستور var استفاده شوند عبارتند از:


angle(<three-points>) % زاویه را برحسب رادیان برمی‌گرداند
angledeg(<three-points>) % زاویه را برحسب درجه برمی‌گرداند
area(<three-points>)
xcoord(<point>)
ycoord(<point>)
direction(<two-points>) % جهت زاویه‌ای را برحسب رادیان برمی‌گرداند
directiondeg(<two-points>) % جهت زاویه‌ای را برحسب درجه برمی‌گرداند


-----مثال‌ها (examples):
var r = 20, r4 = r3*tan(0.3), j = (r*2e3)**2, r5 = AB
var e = _e_, p1 = _Pi_
var t = _linethickness_ % ضخامت خط را در یکاهای جاری برمی‌گرداند
var g137 = angle(ABC) %(پیش‌فرض: زاویه را برحسب رادیان برمی‌گرداند)
var g = angledeg(ABC) % زاویه برحسب درجه
var h = area(ABC)
var x2 = xcoord(A), y2 = ycoord(A)
var m5 = 12 rem 3 % باقی‌مانده پس از تقسیم بر ۳
var r1 = direction(PQ) % برحسب رادیان
var d1 = directiondeg(PQ)

==============================

دفترچه راهنما و مثال‌های بسته mathsPIC

لطفاً باگ‌ها را به Dick Nickalls (dick [AT] nickalls [dot] org) یا به Apostolos Syropoulos گزارش دهید.

April 26, 2010 mathsPIC perl version