تاریخچه تک و لاتک

ماشین لاینوتایپ

در این نوشتار مروری بر تاریخچه صنعت چاپ و حروف‌چینی از آغاز خواهیم داشت. سپس نحوه پیدایش Tex توسط دونالد کنوث را خواهیم گفت. هدف غایی این است که خواننده در انتهای این نوشتار به درک خوبی از چرایی پیدایش Tex و Latex دست یابد و این‌که این دو چه‌ چیزی برای ما به ارمغان می‌آورند.

صنعت چاپ پیش از گوتنبرگ

آسوریان چند هزار سال پیش از میلاد بر خشت‌هایی از گل‌ رس مُهر می‌زدند. انگشترهای خاتم نیز که در زمان باستان استفاده می شد بر همین اساس کار می کرد. در قرن نهم، کتاب‌های چاپی با تیراژ بالا در شو (ایالت چچوان امروز) عرضه شد و دلالان خصوصی امکان خرید آن‌ها را داشتند. کمی بعد، فن چاپ به ایالت های دیگر نیز گسترش یافت و در اواخر قرن نهم، در تمام چین رواج یافت. این فن به سرعت پیشرفت کرد و در سال ۱۰۰۰ میلادی، کتاب‌های صحافی شده به سبک امروز، جانشین تومارها شد. در سال ۱۰۴۱ میلادی، فردی به نام بی‌شنگ (Bi Sheng) در چین، حروف مستقل چاپی را اختراع کرد این حروف بر روی سفال مرطوب حکاکی می‌شد و بعد از پختن در کوره، دوام زیادی می‌یافت و سرعت حروفچینی و تکثیر متون را بسیار بالا می برد.

صنعت چاپ در دوره گوتنبرگ

یوهانس گوتنبرگ (Johannes Gutenberg) یک زرگر آلمانی بود که در سال ۱۳۹۸ میلادی در ماینز آلمان چشم به جهان گشود. از گوتنبرگ اغلب به عنوان مخترع صنعت چاپ یاد می‌شود، اما آنچه که او انجام داد ابداع اولین روش استفاده از حروف چاپی قابل جابجایی و ماشین چاپ بود، که این امکان را فراهم می‌آورد تا بتوان مطالب نوشته‌شده‌ی گوناگون را با سرعت و دقت به چاپ رساند. البته این صنعت ۴۰۰ سال قبل از وی توسط یک بی‌شنگ استفاده می‌شد و حدود ۲۰۰ سال قبل نیز در کره مورد استفاده قرار می‌گرفت.

یوهانس گوتنبرگ

اساس اختراع گوتنبرگ این‌گونه بود که ابتدا نقش حروف، بر اجسام مناسب کنده‌کاری می‌شد، و سپس با ریختن فلز مذاب در این‌ قالب‌های کنده‌کاری شده، حروف فلزی ایجاد می‌شد. سپس حروف ایجاد شده کنار هم قرار می‌گرفت تا کلمات و پاراگراف‌ها شکل گیرد و یک صفحه‌ی کامل پدید آید. صفحه‌ی پدید آمده با حروف فلزی را با جوهر آغشته می‌کردند و با قرار دادن آن بر روی برگ کاغذ، یک صفحه از کتاب چاپ می‌شد. از آن زمان عمل چیدن حروف کنارهم، برای پدیدآوردند واژه‌ها و پاراگراف‌ها، عمل حروف‌چینی (Typesetting) نام گرفت.

روش چاپ گوتنبرگ
روش چاپ گوتنبرگ

گوتنبرگ فردی به نام یوهان فوست (Johann Fust) را راضی کرد تا از اختراع او حمایت مالی کند. اما در سال ۱۴۵۵، در حالی که 57 سال داشت به دلیل عدم پرداخت پول فوست، با شکایت او در دادگاه مواجه شد. او نمی توانست پول فوست را پس دهد، پس مجبور شد که دستگاه چاپش را که دسترنج سال ها تحقیق بود، را به او بدهد.

یوهان فوست
یوهان فوست

فوست چاپخانه‌ای تاسیس نمود و با طراحی آرمی مخصوص به چاپ کتاب مقدس پرداخت و سرمایه‌ای عظیم بدست آورد. گوتنبرگ در اواخر عمر، کار ساخت یک دستگاه چاپ جدید را از نو آغاز کرد، و توانست یک چاپخانه برای خود بوجود آورد.

انجیل گوتنبرگ. کتابخانهٔ کنگره واشینگتن دی‌سی
انجیل گوتنبرگ. کتابخانهٔ کنگره واشینگتن دی‌سی

از گوتنبرگ تا شروع عصر حروف‌چینی رایانه‌ای

دگرگونی در صنعت چاپ و نشر، پس از گوتنبرگ روندی کند داشت و تا سده هفدهم میلادی تغییر عمده‌ای در آن رخ نداد. در این قرن، یوهان رینمان (Yohan Rynmann) است که در آوگسبورگ آلمان، پس از آشنایی با چاپ، به نشر کتاب روی آورد و حدود 200 کتاب منشتر ساخت. از سده هفدهم به بعد انقلاب صنعتی باعث و بانی پیشرفت‌های عظیمی در صنعت چاپ شد. در سده هجدهم، چاپ به رشد تدریجی خود ادامه داد و در این قرن، آمریکا به عنوان کانونی تازه اما پرتوان، وارد صحنه نشر جهان شد و تاثیر بسزایی در پیشرفت و نوآوریهای نشر داشت. استفاده از نیروی بخار در ماشین چاپ و ساخت ماشین حروف‌چینی، دو نمونه از تحولات بزرگ در صنعت چاپ در این دوران محسوب می‌شود. در قرن نوزدهم ، تحولات چاپ و نشر کتاب به حدی سرعت و کیفیت چاپ را افزایش داد که این قرن را عصر جدید کتاب نامیدند.

در سال دهه ۱۹۶۰ میلادی، جهش قابل توجهی در پیشرفت صنعت چاپ و حروف‌چینی انجام گرفت و آن چاپ با کمک عکاسی (Phototypesetting) بود. اساس کار این‌گونه بود که ابتدا، به وسیله‌ی دوربین عکاسی، تصویری از صفحه مورد نظر، باندازه دلخواه، فراهم می‌شد. فیلم حاصل را روی یک صفحه‌ی فلزی مناسب قرار می‌دادند و حاصل کار را دورن یک مایع شیمیایی مخصوص غوطه‌ور می‌کردند. آن قسمت از صفحه‌ی فلزی که تصویر حروف و کلمات قرار داشت، برجای می‌ماند و سایر قسمت‌های صفحه، توسط مایع شیمیایی، اصطلاحا خورده می‌شد. در نتیجه سطحی بدست می‌آمد که در آن نوشته‌ی مورد نظر، به صورت برجسته، نمایان بود. سطح حاصل را به جوهر آغشته می‌کردند و برای چاپ استفاده می‌نمودند. این فرایند حروف‌چینی سرد (cold type) نام داشت، زیرا در آن از فلز مذاب و داغ استفاده نمی‌شد. یکی از مزایای این روش این بود که به آسانی بزرگنمایی حروف و کلمات قابل تغییر بود و حتی می‌توانستند حروف و کلمات را روی هم چاپ کنند.

ماشین لاینوتایپ
ماشین لاینوتایپ

عصر حروف‌چینی رایانه‌ای

دستگاه‌های چاپ به کمک عکسبرداری، رشد و توسعه فراوانی پیدا نمودند. استفاده از لامپ پرتوی کاتدی (Cathode ray tube) نمونه‌ای از این تحولات است. در دهه ۱۹۷۰، دستگاه‌هایی به مانند IBM 2680 (1967)، ٰVideoComp (1973)، Linotron 202 (1978) و … بوجود آمد که در آن، دستگاه چاپ به کمک عکسبرداری، می‌توانست اطلاعات خود را از یک رایانه دریافت کند. گرچه در دهه ۱۹۸۰ این دستگاه‌ها با دستگاه‌های تمام رایانه‌ای جایگزین گشت.

در اواخر دهه ۱۹۸۰ میلادی مجله Time با همکاری دو برنامه‌نویس، نرم‌افزاری با عنوان QuarkXPress را طراحی کرد که برای حروف‌چینی در رایانه‌های رومیزی Macintash استفاده می‌شد. این رویداد باعث تحول بزرگی در عرصه حروف‌چینی رایانه‌ای گشت. بدین‌سان هرکس قادر بود در منزل خود و در پشت رایانه شخصی‌اش بنشیند و نوشتار خود را براحتی تمام و با کیفیت مناسب تهیه کند.

پیدایش TEX

در حدود سی‌سال پیش، حروف‌چینی نوشتجاتی که در بردارنده‌ی فرمول‌ها و علایم ریاضی بود، کاری سخت و دشوار بود. ابتدا دست‌نوشته‌ها، به وسیله‌ی یک ماشین حروف‌چینی، آماده می‌شد و سپس فرمول ها و علایم ریاضی، با صرف وقت و زمان زیاد، به طور دستی، درون متن گنجانده می‌شد و حاصل کار به چاپخانه ارسال می‌گشت. قبل از چاپ نهایی، کتاب حروف‌چینی شده در اختیار نویسنده قرار می‌گرفت و نویسنده، برای رفع اشکال احتمالی، آن را بررسی می‌کرد و در صورت لزوم نکاتی در حاشیه‌ها می‌نوشت و آن را جهت اصلاح برای ناشر می‌فرستاد. بدین‌سان هیچ‌گونه ارتباطی بین نویسنده و مسئول حروف‌چینی وجود نداشت. در آن هنگام حروف‌چینی متون ریاضی، گاهی به عنوان یک جریمه برای کارکنان چاپخانه، به حساب می‌آمد.

در سال ۱۹۶۹ میلادی، جلد اول از کتاب «هنر برنامه‌نویسی رایانه» توسط دونالد کنوث (Donald E. Knuth) منتشر گشت. این کتاب به وسیله حروف فلزی و با شیوه‌ی قدیمی، توسط یک ماشین چاپ قرن ۱۹ میلادی چاپ و منتشر شد. اما در ۱۹۷۶، هنگامی که جلد دوم می‌خواست به چاپ برسد، تمام کتاب باید دوباره حروف‌چینی می‌شد، چرا که فناوری مونوتایپ به صورت گسترده با روش‌های عکس‌برداری جایگزین شده بود، و قلم‌های قبلی دیگر در دسترس نبودند. به هر صورت، هنگامی که کنوث پیش‌نمایش کتاب جدیدش را در ۳۰ مارس ۱۹۷۷ دریافت کرد، متوجه شد که بسیار بدشکل است. در همین زمان بود که او کتاب Artificial Intelligence نوشته Patrick Winston که با حروف‌چینی دیجیتالی تهیه شده بود، را مشاهده نمود، و به این نوع از حروف‌چینی علاقه‌مند شد. پیش‌نمایش‌های مأیوس‌کننده در نهایت موجب شدند که او تصمیم بگیرد با طراحی سیستم حروف‌چینی خود برمبنای حروف‌چینی دیجیتالی، این مشکل را یک بار و برای همیشه حل کند. کنوث دریافت که معنای حروف‌چینی دیجیتالی این است که بتوان یک چیدمان درست از صفرها و یک‌ها (نقاط سفید و سیاه) را در کنار یکدیگر قرار داد. یافتن قواعد درست و زیبا برای نگارش متون ریاضی و تبدیل آن به چیدمان صحیحی از صفرها ویک‌ها، کاری بود که کنوث فکر می‌کرد آن‌را می‌تواند در ظرف شش ماه تا تعطيلات دانشگاهي سال ۱۹۷۸ به پایان برساند، اما آن‌چه که اتفاق افتاد این بود که در نهایت در ۱۹۸۹، یعنی ده سال بعد، این کار به اتمام رسید.

دونالد کنوث
دونالد کنوث

گای استیل (Guy Steele) در تابستان ۱۹۷۸، هنگامی که کنوث مشغول ایجاد اولین نسخهٔ TeX بود، در استنفورد بود. هنگامی که او در پاییز به‌ MIT بازگشت، سیستم ورودی/خروجی TeX را بازنویسی کرد تا تحت سیستم‌عامل ITS[۱] اجرا شود. اولین نسخهٔ TeX به زبان «SAIL» نوشته شده بود تا بر روی یک PDP 10 تحت سیستم‌عامل WAITS استنفورد اجرا شود. برای نسخه‌های بعدی TeX، کنوث شیوهٔ «برنامه‌نویسی لفظی» را ابداع کرد که شیوه‌ای برای تولید کد منبع سازگار و مستندات با کیفیت بالا و پیوندیافته(که البته با TeX حروف‌چینی می‌شود) از پروندهٔ اصلی می‌باشد. زبان استفاده شده وب نامیده می‌شود و برنامه‌هایی به زبان پاسکال تولید می‌کند.

نسخهٔ جدید تک، بازنویسی و Tex82 نامیده شد و در سال ۱۹۸۲ منتشر گشت. از تغییرات قابل ذکر در این نسخه، جایگزینی الگوریتم فاصله‌گذاری با الگوریتم فرانک لیانگ (Frank Liang) بود. Tex82 همچنین از حساب ممیز ثابت به جای ممیز شناور استفاده می‌کرد تا از بازآفرینی نتایج بر روی سخت‌افزارهای متفاوت، اطمینان حاصل شود. اعداد اعشاری روی سخت‌افزارها و نرم‌افزارها با دقت‌های متفاوتی ذخيره و بازيابی مي‌شوند. اين مسئله يكي از مشكلات كلاسيك در دنيای برنامه‌نويسی است و اغلب باعث عملكرد متفاوت يك كد واحد روی سكوهای مختلف می‌شود. سازندگان TeX82 با بهره‌گيری از اعداد صحيح براي انجام تمامی محاسبات از مواجهه با اين نوع مشكلات جلوگيری كردند. همچنين TeX82 نیز شامل یک زبان برنامه‌نویسی واقعی و کامل از نظر تورینگ بود که به پیشنهاد گای استیل در آن گنجانده شده بود. در سال ۱۹۸۹، کنوث نسخهٔ جدیدی از TeX و متافونت را عرضه نمود. با وجود این که او می‌خواست برنامه را پایدار نموده و از تغییرات پرهیز نماید، دریافت که ۱۲۸ نماد مختلف ورودی برای استفاده در زبان‌هایی غیر از انگلیسی کافی نیست. بنابراین مهم‌ترین تغییر در نسخهٔ Tex3.0، قابلیت استفاده از ورودی ۸ بیتی بود که اجازه می‌داد ۲۵۶ نماد مختلف به صورت هم‌زمان در متن ورودی استفاده شوند.

گای استایل
گای استایل

TEX را چطور بنویسیم و تلفظ کنیم؟

نام TEX باید به صورت تِکْ (آی. پی. ای. : /tɛx/) تلفظ شود که در آن ک مشابه حرف j اسپانیایی اروپایی، یا صدای پایانی loch در اسکاتلندی یا اسم هنرمند آلمانی Bach تلفظ شود. حرف X برای نشان دادن حرف یونانی χ (خی) به کار رفته‌است. TEX خلاصهٔ تخنه (τέχνη) است که کلمه‌ای یونانی به معنی «هنر» و «صنعت» است و منبع کلمهٔ technical (فنی) در انگلیسی است. انگلیسی زبان‌ها عموماً آن را به صورت tek تلفظ می‌کنند که مشابه بخش اول کلمهٔ technical می‌باشد. برای حروف‌چینی درست نرم‌افزار، E باید پایین‌تر از خط باشد و فاصلهٔ بین حروف کاهش یابد (این، همان‌گونه که در کتاب «تک بوک» دونالد کنوث به آن اشاره شده‌است، برای ایجاد تمایز بین تک و نام سامانه‌های دیگر مانند TEX شرکت «هانی ول» [که سرنام Text Executive producer است] انجام شده‌است).

پایداری TEX

از نسخهٔ ۳، TEX سیستم نسخه‌گذاری جدیدی را استفاده کرده‌است، به این صورت که بروز رسانی نرم‌افزار با افزودن رقم جدید در انتهای بخش اعشاری نسخهٔ قبلی مشخص می‌شود، و به این ترتیب این عدد به ثابت پی نزدیک می‌گردد. این نشان دهندهٔ این واقعیت است که TEX اکنون بسیار پایدار است، و تنها بروزرسانی‌های جزیی بر روی آن انجام می‌گردد. نسخه‌ی جاری TeX 3.14159265 است، و آخرین بار در سال ۲۰۱۴ بروزرسانی شده‌است. طراحی نرم‌افزار از نسخهٔ ۳٫۰ تغییری نکرده‌است و هیچ ویژگی جدید یا تغییر اساسی بعد از آن افزوده نشده است، و بدین ترتیب نسخه‌های جدید تنها شامل رفع اشکال خواهند بود. با وجود این که حتی کنوث، خود نیز پیشنهاد کرده‌است که در برخی زمینه‌ها تک امکان بهبود دارد، اشاره نموده‌است که بدون تغییر نگاه داشتن سامانه که موجب تولید خروجی‌های یکسان -اکنون و در آینده- خواهد شد، مهم‌تر از معرفی ویژگی‌های جدید است. به همین دلیل، او تأکید کرده‌است که “آخرین تغییری که در TEX (بعد از مرگ من) داده خواهد شد، این است که شمارهٔ نسخهٔ به پی تغییر کرده و بدین ترتیب باگ‌های باقی‌مانده، «ویژگی» محسوب خواهند شد”.

اما، از آن‌جا که کد منبع TEX در «مالکیت عمومی» است، برنامه‌نویسان دیگر اجازه دارند (و صراحتاً ترغیب شده‌اند) که این سامانه را بهبود بخشند، اما باید از نام دیگری برای توزیع TEX تغییر یافته استفاده نمایند، و این بدان معنی است که کد منبع همچنان تحول می‌یابد. به طور مثال، پروژهٔ امگا پس از سال ۱۹۹۱ با هدف اصلی ارتقاء تک برای حروف‌چینی چندزبانه ایجاد شد. کنوث، خود نیز نسخه‌هایی «غیررسمی» مانند «TeX-XeT» ایجاد کرده‌است، که به کاربر اجازه می‌دهد تا متنی که از چپ به راست نوشته می‌شود با متن راست به چپ در یک سند ترکیب نماید. در بخش بعدی به برخی از توسعه‌های معروف TEX اشاره خواهد شد.

کنوث به کسانی که در TEX اشکالی بیابند و آن را گزارش کنند، جایزهٔ نقدی می‌دهد. جایزهٔ هر اشکال از ۲/۵۶ دلار آغاز شده و هر سال دو برابر شده‌است تا این‌که که به مقدار کنونی آن یعنی ۳۲۷/۶۸ دلار رسیده‌است. این باعث فقر کنوث نشده‌است، چرا که تعداد بسیار کمی باگ گزارش شده‌است. علاوه بر این، افراد معمولاً به جای نقد کردن چک، آن را قاب می‌گیرند تا ثابت کنند در TEX اشکالی یافته‌اند.

چک یکی از برندگان جایزه کنوث
چک یکی از برندگان جایزه کنوث

مثالی از یک فایل TeX

کنوث کارش را در TEX به نهایت زیبایی انجام داد. مثال زیر نمایی از یک کد TEX است.

\TeX{} is good at typesetting words like `fjord', `efficiency',
and `fiasco'. It is also good at typesetting math like,
$a^2 + b^2 = c^2$.
\bye

خروجی این کد به صورت زیر است:

خروجی یک نمونه‌کد تک
خروجی یک نمونه‌کد تک

همان‌طور که در این مثال مشاهده می‌کنید، TeX به زیبایی ترکیب حروف ‘ff’، ‘fj’ و ‘fi’ و نحوه نمایش آن را مدیریت می‌کند. TeX در بهترین نقطه خط را می‌شکند، و به زیبایی روابط ریاضی را چاپ می‌کند. Tex شامل فرمان‌هایی نیز هست که با ‘\’ شروع می‌شود. Tex شامل ۳۰۰ فرمان پایه است، البته بعدها کنوث ۶۰۰ فرمان دیگر نیز اضافه نمود، و آن را تحت عنوان Plain TeX منتشر کرد.

خانواده TEX

همان‌طور که پیشتر ذکر شده، کنوث دیگران را تشویق کرد تا TEX را توسعه دهند و با نامی دیگر منتشر کنند. TEX خانواده بزرگی دارد، LaTex، pdfTex، XeTex، LauTex و … . احتمالا شما در دنیای TEX با این واژگان بسیار برخورد خواهید کرد. TEX ای کنوث در سال ۱۹۸۹ ابداع نمود، به نوعی پدربزرگ همه این‌ها محسوب می‌شود.

LATEX

TEX با همه مزايايي كه دارد، براي استفاده گسترده و كاربرپسند داراي يك مشكل اساسي است: TEX یک زبان برنامه‌نويسی واقعی، گسترده و مشكل است كه يادگيري و به‌كارگرفتن آن براي كاربران عادي پرزحمت و غيراقتصادي است. در سال‌های آغازین دهه‌ی ۱۹۸۰ میلادی، لزلی لمپورت (Leslie Lamport) شروع به کار بروی LATEX کرد. LATEX معمولاً به صورت لِی‌تِخ یا لاتِخ تلفظ می‌شود که در آن X صدای خ فارسی را می‌دهد زیرا نام TEX از واژه یونانی τεχνη (تِخنی به معنی هنر و مهارت) گرفته شده است. گرچه کنوت شخصاً تلفظ “tech” (تِخ) را استفاده می‌کند، ولی لمپورت گفته است که ” او هیچ تلفظ خاصی را برای LATEX ترجیح نمی‌دهد یا بد نمی‌داند.

لزلی لمپورت
لزلی لمپورت

LATEX یک سامانه‌ی آماده‌سازی و حروف‌چینی نوشتار بر پایه TEX است، که از TEX به عنوان موتور حروف‌چینی استفاده می‌کند. در واقع هر دستور LATEX، از مجموعه‌ای پیچیده از دستورات TEX تشکیل شده است، که گردابه‌ای بزرگ از صورت‌های توسعه‌یافته‌ی TeX را تشکیل می‌دهد، با همه‌ چيزهايي كه لازم بود به آن اضافه شود تا به محصولي قابل استفاده براي عموم تبديل گردد. تعداد زيادی امكانات امنيتی و پيغام‌های خطا، همچنين قالب‌های متن مختلف (كتاب، نامه، گزارش و …)، امكانات فراوان براي ايجاد فصل‌ها، بخش‌ها، فهرست مطالب، فهرست راهنما ‌(Index)، فهرست منابع ‌(Bibliographic Index) و ايجاد پيوندهای مورد نياز براي ساختن اين فهرست‌ها در متن سند، از جمله امكاناتی هستند كه در كنار سيستم حروفچيني و صفحه‌بندي TEX، LATEX را به وجود مي‌آورند. یکی از کارهای بزرگ لمپورت اضافه کردن قابلیت فراخوانی بسته بود. بدین‌صورت هزاران بسته LATEX در سرتاسر جهان بوجود آمد و هر کس می‌توانست به‌سادگی آن‌ها را با دستور usepackage، در فایل خود فراخوانی کند. امروزه CTAN مخزن رسمی بسته‌های LATEX محسوب می‌شود.

TEX و LATEX هر دو با مجوزهاي نرم‌افزار آزاد منتشر شده‌اند و كد منبع آن‌ها در دسترس همگان قرار دارد، اما مجوزي كه LATEX تحت آن انتشار مي‌يابد‌ LPPL است؛ نه GPL معروف. تفاوت اصلی LPPL باGPL در آن است كه بر اساس LPPL فايل‌هايي كه در هر نسخه يا توزيع جديد نسبت به نگارش قبلي تغيير محتوا پيدا مي‌كنند بايد تغيير نام هم داده شوند تا در ارجاعات ميان فايل‌ها ناسازگاري ايجاد نشود. نسخه کنونی LATEX به LaTeX2e مشهور است. LaTeX3 نیز به عنوان نسخه جدید LATEX، در حال توسعه است.

PdfTeX

یکی از مهم‌ترین توسعه‌های TeX، در دهه ۱۹۹۰ توسط Hàn Thế Thành به عنوان بحشی از رساله دکترایش صورت پذیرفت، و به نام PdfTeX منتشر شد. TEX در ابتدا تنها خروجی DVI به ما می‌داد، اما بعدها توانست خروجی postscript بدهد. در سال ۱۹۹۳، فرمت PDF پابه عرصه ظهور گذاشت. فرمت PDF قابلیت‌های به مراتب بیشتری نسبت به postscript داشت، که مهم‌ترین آن‌ها پشتیبانی از ابرپیوند (hyperlink) بود. ایده اصلی PdfTeX این بود که TeX را به نحوی توسعه دهد که بتواند خروجی PDF نیز بدهد. البته تفاوت‌ها به همین‌جا خاتمه نمی‌یابد. در TEX شما تنها می‌توانستید که تصاویر با فرمت eps را وارد کنید، اما در PdfTeX می‌توانید از تصاویر با فرمت PDF، jpg، png نیز استفاده کنید.

LaTeX آمد تا کار کردن ما با TeX را سهولت بخشد. اکنون باید بگوییم که PdfLaTeX نیز آمد تا کار ما با PdfTex را آسان‌تر نماید. در واقع PdfLaTeX همان نقش LaTeX را برای Tex بازی می‌کند.

Hàn Thế Thành
Hàn Thế Thành

XeTeX

داستان به همین‌جا ختم نمی‌شود. در سال ۲۰۰۴ جوناتان کو (Jonathan Kew) زی‌تک (XeTeX) را به عنوان بهبودی بر TeX عرضه نمود. XeTeX استاندارد یونیکد را به کار می‌برد و از فناوری‌های امروزی فونت مانند OpenType و ATT پشتیبانی می‌کند. این امر موجب شد تا نوشتن TeX برای زبان‌های غیرانگلیسی (به مانند فارسی) بیش‌از پیش آسان گردد. زی‌تک در آغاز تنها در سیستم‌عامل Mac OS X کار می‌کرد، ولی امروزه در بیشتر سیستم‌عامل‌ها موجود است. زی‌تک پرونده‌‌ی ورودی‌‌اش را در کدگذاری UTF8 می‌انگارد، در ضمن می‌تواند همهٔ فونت‌های نصب‌شده در سیستم‌عامل را به کار ببرد. زی‌تک در توزیع‌های معروف TeX مانند TexLive و MikTex، موجود است.

جوناتان کو
جوناتان کو

LuaTex

برای کاربران عادی TeX زبانی بسیار زمخت است، و در عمل نمی‌توان به آن یک زبان برنامه‌نویسی اطلاق نمود. به همین دلیل بسیاری از اتفاقاتی که درون LaTeX رخ می‌دهد، بسیار پیچیده و فهم آن دشوار است، چرا که LaTeX بر مبنای TeX‌ نوشته شده است. پروژه LuaTeX نسخه توسعه یافته از pdfTeX است و زبان برنامه‌نویسی Lua به عنوان یک زبان اسکریپت نویسی، در آن قرار داده شده است. ایده اصلی پروژه بر مبنای آن بنیان شد که بتواند ضمن توسعه TeX، اجازه پیکربندی آن را با زبان Lua به کاربران بدهد، و این در حالی‌ صورت می‌پذیرد که خللی در سازگاری با کدهای TeX قبلی بوجود نمی‌آید.

LuaTeX نیز به مانند XeTeX از UTF-8 استفاده می‌کند، و این بدان معنا است که فایل‌های tex ورودی به هر دو می‌تواند زبان‌های مختلف غیرانگلیسی نیز باشد. علاوه بر این هر دوی LuaTeX و XeTeX می‌توانند از تمامی فونت‌های موجود در سیستم‌عامل استفاده کنند.

ConTeXt

همان‌طور که پیشتر ذکر شد، LaTeX یک زبان سطح بالا بر روی TeX بود، که ما را از پیچیدگی‌های زبان TeX رها می‌کرد. ConTeXt در حوالی سال ۱۹۹۱ توسط Hans Hagen و Ton Otten ابداع شد، و به مانند LaTeX یک زبان سطح بالا بر روی TeX بود. برای درک بهتر تفاوت بین LaTeX و ConTeXt کد LaTeX زیر را در نظر بگیرید:

\begin{itemize}
  \item Foo,
  \item bar,
  \item baz.
\end{itemize}

کد زیر نیز همان مثال اما این بار با ConTeXt است:

\startitemize [R,2*broad][
  start=11,
  before=\startlinecorrection,
  after=\stoplinecorrection,
]
  \item Foo,
  \item bar,
  \item baz.
\stopitemize

ایده اصلی LaTeX این بوده است که بین محتوا (نوشته اصلی) و تعیین نحوه نمایش (حروف‌چین) تمایز قایل شود. در واقع LaTeX کاربران را تشویق می‌کند که محتوا را تولید کنند، به عنوان مثال در کد فوق، بدون این‌که کاربران را درگیر نحوه نمایش محیط itemize بکند، از آن‌ها می‌خواهد که فقط محتوا را تعیین کنند، و نحوه نمایش را برعهده Layout قرار دهند. اما از سوی دیگر ConTeXt به نوعی یک واسط فراهم نموده است که به کاربران اجازه می‌دهد در حین نوشتن محتوا تنظیمات پیشرفته‌ای بر روی نحوه نمایش محتوا نیز انجام دهند.

hans hagen
hans hagen

متافونت

با این که متافونت صریحاً بخشی از تک نیست، اما ابزاری لازم برای این سامانهٔ حروف‌چینی می‌باشد. متافونت یک سامانهٔ توصیف(شرح) قلم است که به طراحان اجازه می‌دهد که نمادها را به صورت الگوریتمی توصیف نمایند. این سامانه از منحنی‌های بزیه به شیوهٔ استاندارد برای تولید نماد خروجی برای نمایش استفاده می‌نماید، اما نوث توجه زیادی به مسئلهٔ نقطه‌ای شدن بر روی صفحه نمایش پیکسلی دارد. تز دیگری توسط جان هابی، مسئلهٔ «خط سیر قلم» را بیش‌تر بررسی می‌نماید. این عبارت از آن‌جا آمده‌است که متافونت نمادها را به این صورت توصیف می‌کند که آن‌ها توسط قلم‌هایی انتزاعی رسم می‌شوند.

امکان استفاده از تک و لی‌تک بدون استفاده از متافونت هم وجود دارد. می‌توان از قلم‌های ادوبی پست اسکریپت (نوع ۱) به جای آن استفاده نمود. تک (و لی‌تک) انتظار دارند که قلم‌های نقطه‌ای با اندازهٔ مناسب در اختیارشان قرار گیرد، اما پست‌اسکریپت یک شرح برداری مقیاس‌پذیر در ابعاد متفاوت است، و این کار را کمی پیچیده می‌کند. با کمک تعدادی بستهٔ ازپیش‌تعیین‌شده، تک و لی‌تک قادر به استفاده از قلم‌های پست‌اسکریپت می‌باشند. ضمناً این توجه لازم است که «نوع ۱» (Type 1) و «T1» در مستندات به دو چیز متفاوت اشاره می‌کنند: قلم‌های ادوبی پست‌اسکریپت، و کدگذاری T1 تک برای نگاشت از مقدارهای بایتی به گلیف‌ها.

فارسی‌نویسی با TeX

تک‌پارسی

تک‌پارسی که در سال ۱۳۷۰ هجری شمسی توسط شرکت داده‌کاوی عرضه گشت، جزو نخستین تلاش‌ها در این زمینه بود. شرکت داده‌کاوی، تک‌پارسی را در سال‌های ۱۳۷۴ و ۱۳۷۵ هجری شمسی مبتنی بر TeX pre-3.0 و LaTeX 2.09 منتشر نمود. البته آن‌ها در تک‌پارسی بر روی موتور TeX تغییرات گسترده‌ای انجام داده بودند. در ابتدا انتشارات دانشگاه تهران و موسسه انتشارات فاطمی از این نرم‌افزار حمایت کردند. متاسفانه شرکت داده‌کاوی در سال ۱۳۷۵ تا مرز ورشکستگی پیش رفت. چند سال بعد دبیرخانه شورای عالی اطلاع‌رسانی این نرم‌افزار را به صورت متن‌باز (open source) در اختیار عموم قرار داد.

فارسی‌تک

در سال ۱۳۷۲ هجری شمسی (۱۹۹۲ میلادی) تیمی تحت نظارت دکتر قدسی در دانشگاه صنعتی شریف فارسی‌تک را ارایه دادند. متاسفانه این پروژه از بعد از سال ۲۰۰۶ میلادی دیگر بروز نشد، و نسخه جدیدی از فارسی‌تک منتشر نشد.

پیدایش Xepersian

Xepersian (بخوانید زی‌پرشین) بسته‌ای است که توسط آقای وفا خلیقی برمبنای XeTeX، برای نگارش مستندات فارسی/انگلیسی، ارایه شد. اولین نسخه Xepersian در سال ۲۰۰۸ میلادی ارایه شد، و از 2.7 MiKTeX و TexLive2009 در این توزیع‌ها قرار گرفت. این بسته با مجوز LPPL منتشر می‌شود. در برخي از نرم افزارها مانند تک پارسي اگر قرار بود از بسته‌اي در نرم افزار پشتيباني شود، تغييراتي داخل بسته اعمال مي‌شد تا براي زبان فارسي قابل استفاده باشد در نتيجه اگر بسته مذکور بروزرساني مي‌شد يا نسخه جديدي از آن منتشر مي شد، قابليت انطباق با نرم افزار را نداشت، اما در زي پرشين با فراخواني هر بسته، زي پرشين تغييراتي کلي در بسته اعمال مي‌کند بدون اينکه محتويات بسته را دستکاري کند. از سوی دیگر به دلیل این‌که XePersian برمبنای XeTeX است، می‌توان از تمامی فونت‌های نصب شده بر روی سیستم‌عامل در آن استفاده نمود. مقایسه کاملی بین XePersian و با دیگر توزیع‌های فارسی شده در پیوند مقایسهٔ زی‌پرشین با دیگر توزیع‌های فارسی‌شدهٔ لاتک ارایه شده است. Xepersian يک مجموعه نرم افزار متن باز است و کد منبع آن در دسترس همگان قرار دارد.

وفا خلیقی
وفا خلیقی

منابع

نویسنده: ابوالفضل دیانت


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *