هر کس که مدتی با مایکروسافت ورد کار کرده باشد، تا حالا به قانونهای زیر دربارهاش پی برده است:
- احتمال قفلکردن برنامه نسبت مستقیم دارد با اهمیت نوشتهای که تایپ میکنید.
- احتمال قفلکردن برنامه نسبت عکس دارد با زمانی که تا مهلت نوشتن باقی مانده است.
- احتمال قفلکردن برنامه نسبت مستقیم دارد با زمانی که از آخرین ذخیرهکردن نوشته گذشته است.
از شوخی که بگذریم، من هم نوشتههای بزرگ زیادی را با Word تایپ کردهام. البته این روزها میتوانم با اپن آفیس (OpenOffice) هم کار کنم که نرمافزار بسیار خوبی است و هرکاری را که بخواهم میکند. ولی پس از سروکلهزدنهای بسیار با Word، وقتی دانشجوی دکتری شدم تصمیم گرفتم Latex را هم امتحان کنم. راستش، خیلی هم به دلخواه خودم نبود؛ قرار بود مقالهای را به یک مجله بفرستم و فهمیدم که آن مجله مقالهها را فقط در قالب لاتک میپذیرد. مهلت فرستادن مقاله همان روزی بود که من از این موضوع باخبر شدم! مجبور شدم پابرهنه بپرم به وسط لاتک، و خب حدس میزنید که اصلاً کار آسانی نبود. (نکتهٔ آموزشی: هیچ گاه یک چیز تازه را با عجله یادنگیرید!)
ولی من از رو نرفتم و کمکم فهمیدم که کار با لاتک آنقدرها هم سخت نیست. مدتی طول کشید تا یادش بگیرم، ولی برای نوشتههای سادهای که من معمولاً مینوشتم، چیز زیادی برای یادگرفتن نبود. خیلی خوشحالم که آن وقتها دلسرد نشدم، زیرا الان اصلاً دوست ندارم نوشتهها و گزارشهایم را با چیزی جز لاتک بنویسم. البته من تنها کسی نیستم که از ترک دنیای ویزیویگ (WYSIWYG (What You See Is What You Get) خوشحال است.
این مقاله قرار نیست خودآموز استفاده از لاتک باشد. فقط میخواهم کمی از خوبیهای لاتک بگویم و این که چرا فکر میکنم امکانات لاتک به امکانات نرمافزارهای واژهپرداز (مثل Word) سر است.
لاتک چیست؟
در سال ۱۹۷۸، دونالد کنوت (Donald Knuth) که یکی از مشهورترین و معتبرترین دانشمندان علوم کامپیوتر است، شروع به ساخت یک سیستم حروفچینی به نام تک (TeX) کرد. طراحی زبان تک پس از ده سال تمام شد (خودش در آغاز فکر میکرد یک سال بیشتر طول نخواهد کشید!). تک میتوانست چیدمان (layout) نوشتهها را به طرز حیرتآوری تنظیم کند. البته این قدرت زیاد باعث میشد که خیلی هم پیچیده باشد. تا این که در دههٔ ۱۹۸۰ کسی به نام لسلی لمپرت (Leslie Lamport) مجموعهای از ماکروها را طراحی کرد تا از این پیچیدگیها بکاهد. کار او باعث شد تا حروفچینی نوشتهها آسانتر شود، و در ضمن محتوای نوشته و ظاهر آن از هم مستقل باقی بماند. این سیستم جدید لاتک (LaTeX) نام گرفت.
لاتک درواقع یک زبان نشانهگذاری است. محتوا در یک پروندهٔ متنی نوشته میشود و نشانهگذاریها به شکل فرمانهایی بین متن قرارمیگیرند و مشخص میکنند که هر بخش از نوشته چهطور نمایش یابد. مفسر لاتک آن پرونده را میخواند، محتوا را به شکل یک نوشته درمیآورد و یک پروندهٔ خروجی میسازد. همان طور که میبینید، لاتک مثل نرمافزارهای واژهپرداز معمولی نیست.
جدابودن محتوا و ظاهر نوشته
برتری بزرگ لاتک در این موضوع برای کاربران Word چندان واضح نیست، زیرا آنها نمیدانند که این ویژگی چهقدر خوب است. وقتی با لاتک نوشتهٔ خود را مینویسید، فقط به محتوای نوشته فکر میکنید و ساختار متن را مستقیماً به لاتک میگویید؛ مثلاً میگویید که از اینجا به بعد یک بخش جدید آغاز میشود، ولی لازم نیست به این فکر کنید که عنوان بخش چهشکلی باید تایپ شود.
این درست برعکس کاربران Word است که بلافاصله عنوان نوشته را انتخاب کرده و قالببندیاش میکنند (مثلاً آن را بزرگ میکنند، یا فونتش را تغییر میدهند). نکته اینجاست که این کار باید در کل نوشته با دست اعمال شود. در مقابل، لاتک برای قالببندی از سبکهای تعریفشدهای استفاده میکند. این سبکها میگویند که هر بخش از نوشته چهطور باید نمایش یابد. اگر مثلاً خواستید فونت عنوان همهٔ بخشهای نوشتهتان را تغییر دهید، کافی است که تعریف آن سبک را عوض کنید تا کل نوشته خودبهخود بهروز شود. خوبی این روش این است که نوشتهتان خودسازگار و هماهنگ باقی میماند.
البته Word هم این ویژگی سَبْک (Style) را دارد. ولی از آنجا که بهکاربردن این ویژگی اختیاری است، کاربران معمولاً نمیدانند که چنین ویژگیای هم اصلاً هست. لاتک مجبورتان میکند که ساختار منطقی نوشتهٔ خود را مشخص کنید (و کار خیلی خوبی میکند!) و برای همین است که میتواند از نوشتهٔ شما یک خروجی بسیار زیبا بسازد.
انعطافپذیری
میتوانید با لاتک هرکاری که فکرش را میکنید انجام دهید! در طول سالیان دراز، بستههای بسیار زیادی ساخته شدهاند که ویژگیهای لاتک را گسترش میدهند و بیشتر آنها هم به رایگان در دسترس هستند. برای نمونه، کاربران اصلی لاتک که دانشگاهیان و پژوهشگران هستند بستهٔ Bibtex را به کار میبرند که نوشتن و مدیریت مراجع مقالات را بسیار آسان میکند (من همیشه برای همکاران Wordکارم که مراجع را با دست تایپ میکنند افسوس میخورم). بستههای دیگری هستند که با آنها میتوانید نتهای موسیقی بنویسید، حرکات شطرنج را نمایش دهید، و هزار کار دیگر. با توجه به سابقهٔ زیاد تک، هر کاری که با لاتک بخواهید بکنید احتمالش زیاد است که کسی قبلاً بستهای برایش نوشته باشد.
تسلط بر نوشته
حتی در نوشتههای کوتاه هم شاید شما با رفتار غیرهوشمندانهٔ Word روبهرو شدهباشید. مثلاً گاهی وقتها می خواهید تصویری را در پایین صفحه بگذارید و میدانید که تصویر در آنجا جا میشود، ولی Word نمیگذارد آنجا بگذاریدش! یا مثلاً در یک نوشتهٔ ۳۰ صفحهای پر از شکل و جدول، یک بعدازظهر را صرف میکنید تا همهچیز مرتب شود؛ همهٔ تصاویر سرجای خودشان باشند و غیره. آن وقت میفهمید که یک جای نوشتهتان کمی گنگ است و تصمیم میگیرید آنجا را کمی بیشتر توضیح دهید. یک جمله به متن اضافه میکنید، و میبینید که یکی از تصویرها به صفحهٔ بعد میپرد و یک فضای خالی بزرگ در پایین صفحه باقی میگذارد! بعد میفهمید که در یک واکنش زنجیرهای، همهٔ تصویرها و جدولهایتان تا آخر نوشته به هم ریختهاند! واقعاً خندهدار است. در مقابل، لاتک خیلی باهوشتر است و تصویرها و جدولهایتان را همیشه در جاهای معقول میگذارد. بنابراین اگر خواسته باشید که تصویرتان در پایین یک صفحه بماند، آن تصویر همیشه همان پایین میماند!
البته با این که لاتک در جزئیات حروفچینی به جای شما تصمیم میگیرد، ولی اگر بخواهید، میتوانید روی نمایش نوشتهتان اختیار کامل داشته باشید.
کیفیت
به سختی میتوان این موضوع را انکار کرد که کیفیت خروجیهای لاتک بسیار فراتر از خروجیهای Word است. این برتری وقتی آشکارتر میشود که نوشتهٔ شما پر از روابط ریاضی باشد. لاتک همچنین الگوریتمهای بسیار بهتری برای ترازبندی متن، شکستن کلمات و غیره دارد که باعث میشود خروجی شما بسیار حرفهایتر به نظر برسد.
مردم معمولاً یادشان میرود که حروفچینی یک مهارت حرفهای است. حروفچینها سالها آموزش میبینند تا بیاموزند که یک کتاب را چگونه حروفچینی کنند. اما به محض این که شما برنامهٔ واژهپردازتان را باز میکنید، مرتکب اشتباهات حروفچینی میشوید. مثلاً حروفچینها میدانند که خواندن سطرهایی که پهنایشان ۶۶ حرف است آسانتر است. به کتابهایتان نگاه کنید و تعداد حرفها را بشمارید! ولی تنظیم پیشفرض واژهپردازها به طور میانگین ۱۰۰ حرف در هر سطر است. حدس میزنم که خیلیها برایشان مهم نیست، ولی اگر قرار باشد نوشتههای بزرگ زیادی را بخوانید، برایتان مهم میشود.
یک مثال دم دستی: یک نوشتهٔ لاتک را که پیشتر با آن ساختار نوشتهها را در لاتک معرفی کردهبودم برداشتم. همان نوشتهها را در Word هم نوشتم و سبکهای معادل Word را رویش اعمال کردم. همهجا از سبکهای پیشفرض استفاده کردم. در Word سبکی برای چکیده وجود نداشت، برای همین فقط عنوان را پررنگ کردم. خروجی Word را با خروجی لاتک مقایسه کنید. سبکهایی که Word به کار میبرد چندان خوب نیستند. البته میتوان این سبک ها را آنقدر دستکاری کرد که تاحدی شبیه لاتک شوند، ولی من ترجیح میدهم این کار را نکنم و به جایش با همان لاتک خودم کار کنم!
بیشتر کتابها با لاتک حروفچینی میشوند. واژهپردازها برای این کار معمولاً آن قدر خوب نیستند- آن ها را فقط نویسندگان برای نوشتن به کار میبرند و نوشتههایشان بعداً به نرمافزار حروفچینی حرفهای منتقل میشود. البته با Word هم میشود کتابها را حروفچینی کرد، همانطور که با پا هم میشود رانندگی کرد، ولی کار عاقلانهای نیست!
پایداری
یکی از دلایلی که مردم با Word مشکل دارند این است که Word در هنگام ویرایش نوشتههای طولانی زیاد قفل میکند. «بازیابی نوشتهها» (Document Recovery) یکی از ویژگیهای پرکاربرد Word است. نمیدانم چرا مایکروسافت به جای طراحی این ویژگی روی پایداری نرمافزارش بیشتر کار نمیکند! (البته پایداری لزوماً قابلتعمیم نیست. من فقط از تجربهٔ شخصی خودم و دوستانم حرف میزنم. کسی را هم نمیشناسم که تا حالا دچار مشکل ناپایداری Word نشده باشد، ولی معنیاش این نیست که چنین کسی وجود ندارد.)
از آنجا که لاتک بسیار کامل است، و برنامهنویسان بسیار باهوشی آن را ساختهاند، اشکالات آن بسیار کم است. حتی اگر هم اشکالی وجود داشته باشد، هیچگاه پروندهٔ ورودی شما از دست نمیرود. ولی در Word، اگر هر ابزارش قفل کند، میتواند نوشتهٔ شما را نابود کند.
و در ضمن، در لاتک نیازی نیست نگران ویروسهایی باشید که در ماکروهای Word پنهان میشوند!
قیمت
در این مورد لاتک هیچ حرفی باقی نمیگذارد، چون رایگان است! ضربالمثل «هر چی بیشتر پول بدی، بیشتر آش میخوری» دربارهٔ لاتک صادق نیست، درست مثل بیشتر نرمافزارهای آزاد/متنباز. شما با یک نرمافزار بسیار قوی و پایدار روبهرویید که سالها از رقیبانش جلوتر است.
غلطیاب املایی چهطور؟
نکتهٔ خوبی است. این یک کمبود لاتک نیست، زیرا لاتک فقط متنی را پردازش میکند که شما به آن میدهید. اما در ویرایشگر متن، بر خلاف Word، شما خطهای قرمزی را که اشتباههای املایی یا دستوری را یادآوری میکنند نمیبینید. و این چیزی است که بیشتر کاربران میخواهند داشته باشند.
به نظر من داشتن یک غلطیاب دستوری چیز خوبی نیست. کسی که واقعاً برای نوشتن نیازمند غلطیاب دستوری است، بهتر است به جای تکیهکردن بر توصیههای به دردنخور غلطیاب، برود یک کتاب دستور زبان بخواند.
دوم، وجود ویژگی اصلاح خودکار اشتباههای املایی (auto-correct)، هرچند که چیز خوبی به نظر میآید، در درازمدت مفید نیست. درست است که اشتباههای رایج ما را برطرف میکند، ولی باعث میشود که نتوانیم از اشتباههایمان بیاموزیم. اگر هربار که به جای the مینویسیم teh، قرار باشد Word آن را برایمان اصلاح کند، هیچگاه نمیفهمیم که داریم اشتباه میکنیم. با این حال، اگر فکر میکنید که خیلی نیازمند این ویژگی هستید، به آسانی میتوانید هر ویرایشگر متن آبرومندی را مجهز به غلطیاب املایی کنید. برنامههای Ispell و Aspell رایجترین غلطیابهای املایی هستند که هر دو متنبازند و میتوانند با ویرایشگرهای متن یکپارچه شوند.
فرایند یادگیری
خب پس چرا همه با لاتک کار نمیکنند؟ زیرا کار با لاتک نیاز به «کمی» آموزش دارد. باید کمی وقت بگذارید تا کار با لاتک را یاد بگیرید. ولی خیلی زود میفهمید که لاتک ارزش این زمان کم را داشت. سادهترین نوشتهٔ لاتک چنین چیزی است:
%hello.tex - Hello world Latex example \documentclass{article} \begin{document} Hello World! \end{document}
این دستورات عبارت Hello World! را در خروجی چاپ میکند. خیلی هم پیچیده نبود، نه؟
پس لاتک برای چه کسانی خوب است؟
در یک کلام، هر کسی که نوشتههای نهچندان ساده مینویسد و از محیط ناکارامد واژهپردازها خستهشده، لاتک را درخواهدیافت! اگر شما کار دانشگاهی میکنید، احتمالاً مجبورید با لاتک کار کنید! هرکس که باید نوشتههای مربوط به ریاضی بنویسد، نرمافزاری قویتر و باکیفیتتر از لاتک پیدا نخواهد کرد. حتی دانشنامهٔ ویکیپدیا هم برای نوشتن رابطههای ریاضی در مقالههایش، لاتک را به کار میبرد.
لاتک برای آدمهای خیلی تنبل یا آنهایی که تغییر را دوست ندارند خوب نیست! برای من این تغییر کاملاً سودآور بود، زیرا الان میتوانم نوشتهها و گزارشهایم را با سرعت بیشتری بنویسم. هرکسی میتواند لاتک را امتحان کند و تفاوتش را ببیند و تصمیم بگیرد که چه نرمافزاری را برای نوشتن به کار ببرد.
برای آشنایی بیشتر با تک و لاتک میتوانید پست تاریخچه تک و لاتک را ببینید.
منابع
ترجمهٔ آزادی از LaTeX isn’t for everyone but it could be for you نوشته Andy Roberts. مترجم: امیرمسعود پورموسی