PREREX(5) PREREX(5)

prerex_format -- قالبی برای توصیف نمودارهای دروس پیش‌نیاز

این راهنما قالب توصیف نمودارهای پیش‌نیاز را شرح می‌دهد که می‌توانند توسط [pdf]latex (معمولاً با استفاده از یک فایل استایل مناسب prerex.sty(7)) پردازش شده و با استفاده از ویرایشگر تعاملی prerex(1) (یا توسط هر ویرایشگر متن متداول دیگر) ویرایش شوند.

یک نمودار پیش‌نیاز شامل تعدادی جعبه درس (course boxes) است که با فلش‌ها (arrows) به یکدیگر متصل شده‌اند. دروس یا نیم‌ترم (half) یا تمام‌ترم (full) هستند، و ممکن است الزامی (required) یا اختیاری (optional) باشند (یا هیچ‌کدام). هر جعبه درس می‌تواند شامل یک کد درس (code) (گوشه بالا چپ)، یک عنوان درس (title) (نیمه پایینی) و اطلاعات برنامه زمانی (timetable) (گوشه بالا راست) باشد. یک فلش می‌تواند پیش‌نیاز (prerequisite) (خط ممتد)، هم‌نیاز (corequisite) (نقطه‌چین)، یا توصیه‌شده (recommended) (خط‌چین) باشد. هنگامی که یک فلش معمولی نامناسب باشد، می‌توان از یک درس مینی (mini) درست بالای جعبه هدف استفاده کرد.

فایل باید دقیقاً شامل یک نمونه از محیط LaTeX باشد:

\begin{chart} دستورات ... \end{chart}

با حداکثر یک دستور در هر خط. توجه داشته باشید که برنامه‌ای مانند prerex(1) فایل‌های با قالب prerex را بدون استفاده از TeX تحلیل می‌کند؛ برای مثال، تعاریف ماکرو نادیده گرفته می‌شوند و فراخوانی‌های ماکرو بسط داده نخواهند شد.

دستورات می‌توانند با فاصله خالی (white space) شروع شوند. خطوطی که با % شروع می‌شوند به عنوان کامنت در نظر گرفته شده و نادیده گرفته می‌شوند. ترتیب دستورات اهمیتی ندارد جز اینکه دستور مربوط به جعبه مبدا و مقصد یک فلش باید قبل از دستور خود فلش بیاید. قالب دستورات در بخش‌های زیر شرح داده شده است.

دستوراتی که جعبه‌های درس را ایجاد می‌کنند فرم‌های زیر را دارند:

\halfcourse x,y:{code}{title}{timetable}

\fullcourse x,y:{code}{title}{timetable}

\reqhalfcourse x,y:{code}{title}{timetable}

\reqfullcourse x,y:{code}{title}{timetable}

\opthalfcourse x,y:{code}{title}{timetable}

\optfullcourse x,y:{code}{title}{timetable}

که در آن x,y مختصات نقطه مرکزی (centerpoint) جعبه هستند، نسبت به مبدا سیستم مختصات در گوشه پایین سمت چپ دیاگرام. آرگومان‌های code، title و timetable متن‌های اختیاری (با براکت‌بندی صحیح) هستند، که احتمالاً شامل نشانه‌گذاری‌های LaTeX می‌باشند.

موارد زیر مشابه هستند اما یک آرگومان اضافی برای تعیین رنگ پس‌زمینه (غیر پیش‌فرض) جعبه درس می‌گیرند:

\halfcoursec x,y:{code}{title}{timetable}{color}
\fullcoursec x,y:{code}{title}{timetable}{color}
\reqhalfcoursec x,y:{code}{title}{timetable}{color}
\reqfullcoursec x,y:{code}{title}{timetable}{color}
\opthalfcoursec x,y:{code}{title}{timetable}{color}
\optfullcoursec x,y:{code}{title}{timetable}{color}

یک درس مینی توسط دستوری به شکل زیر ایجاد می‌شود:

\mini x,y:{code}

یک خط متن توسط دستوری به فرم زیر در نمودار درج می‌شود:

\text x,y:{line-of-text}

حداکثر طول مجاز برای کد درس ممکن است کمتر از حداکثر طول مجاز برای یک خط متن باشد.

فلش‌های بین جعبه‌های درس (یا از یک مینی به یک جعبه درس) توسط دستوراتی به شکل زیر ایجاد می‌شوند:

\prereq x0,y0,x1,y1:

\coreq x0,y0,x1,y1:

\recomm x0,y0,x1,y1:

این‌ها به ترتیب فلش‌های ممتد، نقطه‌چین و خط‌چین از جعبه درس (یا مینی) با مرکز در مختصات x0,y0 به جعبه درس با مرکز در مختصات x1,y1 تولید می‌کنند.

در برخی پیاده‌سازی‌ها، برخی فلش‌ها به طور پیش‌فرض دارای انحنای غیرصفر هستند. می‌توان با استفاده از دستورات زیر انحنای پیش‌فرض را برای یک فلش خاص تغییر داد:

\prereqc x0,y0,x1,y1;c:

\coreqc x0,y0,x1,y1;c:

\recommc x0,y0,x1,y1;c:

که در آن c یک عدد صحیح در محدوده -100:100 است که انحنای مطلوب را مشخص می‌کند؛ برای مثال، c=0 یک فلش مستقیم تولید می‌کند. برای تغییر انحنای پیش‌فرض، برنامه کاربر می‌تواند دستور \DefaultCurvature را مجدداً تعریف کند.

دستور زیر یک شبکه مختصات ایجاد می‌کند که برای ویرایش دیاگرام مفید است:

\grid

این دستور معمولاً قبل از سایر دستورات قرار می‌گیرد تا خطوط شبکه در پس‌زمینه باشند و توسط جعبه‌های درس، مینی‌ها و فلش‌ها پوشانده شوند.

جعبه‌های درس می‌توانند به آدرس‌های وب پیوند داده شوند. نشانی وب (URL) برای جعبه‌های درس می‌تواند توسط کاربر از طریق تعریف مجدد دستور \CourseURL تنظیم شود؛ هنگامی که برای یک جعبه درس فراخوانی می‌شود، سه آرگومان دریافت می‌کند: مختصات x و y جعبه، مینی یا خط متن، و آرگومان code جعبه درس. برای مثال،

\renewcommand{\CourseURL}[3]{http://www.cs.queensu.ca/undergraduate/courses/#3.html}

برای دروس در School of Computing, Queen's University مناسب است. دو آرگومان اول را می‌توان برای نمایش مختصات یک جعبه، مینی یا خط متن در برخی نمایش‌دهنده‌های PDF در هنگام نگه داشتن ماوس روی آن در حین ویرایش فایل سورس استفاده کرد.

R. D. Tennent (rdt@cs.queensu.ca)

prerex(1), prerex.sty(7).

2019-11-15 prerex_format