یه بازی/مسابقه وبلاگی راه افتاده با عنوان این که چرا گنو/لینوکس رو دوست دارم؟
خوب من دلایل زیادی دارم برای دوست داشتن گنو/لینوکس. اما میخوام تو این پست روی یکی از اونها تمرکز کنم: فرمانپذیری. قبلش بگم که همه کارایی که من تو این پست میکنم رو با ویندوز/مک/داس هم میشه انجام داد. اما گنو/لینوکس انگار واسه این کارا طراحی شده. فرقش مث اینه که سر یه پیچ تند با سرعت ۱۲۰ کیلومتر در ساعت بخوای با موتور گازی بپیچی یا با یکی از این ماشین آمریکایی پت و پهنها.
قصهای که میخوام تعریف کنم مربوطه به نوشتن پروپوزال اینجانب. اول رفتم سراغ ورد تو ویندوز. یه محیط بصری عالی. اما با زیاد شدن حجم شکلها و فرمولها واقعا ورد اذیت میکرد. کند شده بود، اعداد رو درست نمایش نمیداد و هزار تا مشکل دیگه. دلیل همه اینها هم مشخصه: ورد درست شده تا به جای من تصمیم بگیره. تو کارای ساده این ممکنه کمک کننده باشه، اما تو کارایی که حتی یه کم پیچیده میشن، اصلا.
این شد که این دفعه لپتاپ رو با اوبونتو بالا آوردم.
مشکل اول این بود که کلی تو ورد تایپ کرده بودم و الان میخواستم همه رو ببرم تو لتک. پس باید فایل ورد رو تبدیل به متن میکردم. با یه سرچ تو synaptic به یه ابزار ساده برخوردم: docx2txt. مشکل حل شده بود.
خوشبختانه livetex2011 رو از یکی از دوستان گرفته بودم. خیلی راحت نصبش کردم. فونتها رو هم کافیه سرچ کنید ubuntu install font تا بینهایت راهنما برای نصبش داشته باشید. ناگفته نماند برای حروفچینی فارسی از بسته xepersian استفاده میکنم.
بعد رفتم که فایل لتک رو با gedit ویرایش کنم. سینتکس لتک رنگی نبود. کافی بود بسته gedit-plugins رو نصب کنم.
مرحله بعد؟ آرم دانشگاه یه مقدار حاشیهاش زیاد بود و میخواستم ویرایشش کنم. بدون فکر pinta رو نصب کردم.
حالا میخواستم فایل latex فقط با یه دستور کامپایل بشه. چه ابزاری بهتر از یه makefile؟ با کمی جستجو چند تا پست عالی (+ و + و +) پیدا کردم و makefile خودم رو ساختم:
[bash]
# This makefile works with png files.
# For a different directory structure one need to change only next four lines.
MAIN = proposal
SRC_DIR = .
PIC_DIR = pics
BUILD_DIR = build
VPATH = $(SRC_DIR) $(PIC_DIR) $(BUILD_DIR)
TEX_FILES = $(wildcard $(SRC_DIR)/*.tex)
BIB_FILES = $(wildcard $(SRC_DIR)/*.bib)
EPS_FILES = $(patsubst %.png,%.eps,$(wildcard $(PIC_DIR)/*.png))
TEX = xelatex -interaction nonstopmode -output-directory=$(BUILD_DIR)
BIB = bibtex
$(MAIN).pdf: $(EPS_FILES) $(TEX_FILES) $(BIB_FILES)
$(TEX) $(MAIN).tex
cp -n $(SRC_DIR)/*.bib $(BUILD_DIR)/
cd $(BUILD_DIR);pwd;bibtex $(MAIN).aux;cd ..
$(TEX) $(MAIN).tex
$(TEX) $(MAIN).tex
clean:
cd $(PIC_DIR); rm *.eps; cd ..
cd $(BUILD_DIR); rm *; cd ..
%.eps: %.png
sam2p $< $(PIC_DIR)/basename $< .png
.eps
[/bash]
قبلا یه پست دیگه در منقبت sam2p نوشتم البته.
حالا کافی بود که برای صدازدن makefile تو gedit یه کلید میانبر تعریف کنم. اما کلید محترم کار نمیکرد و این موجب شد یه چیز جدید از اینجا یاد بگیرم: اگر path به bashrc اضافه بشه فقط وقتی ترمینال باز میکنیم کار میکنه. اما اگه به profile اضافه بشه همه جا کار میکنه.
تو قدم بعد داشتم دنبال یه pdf readerمیگشتم که وقتی فایل pdf جدید ساخته شد خود به خود آپدیت بشه. خوب اشتباه میکردم. اینجا ویندوز نیست و Document Viewer پیشفرض اوبونتو خودش این خاصیت رو داره.
و در آخر موند مدیریت مراجع. از قدیم JabRef رو میشناسم. اما با یه سرچ یه ابزار بهتر پیدا کردم: Zotero. این یه افزونست برای فایرفاکس که هم خروجی فایل bib میده، هم موقع اینترنت گردی واقعا با یه کلیک مرجع رو ثبت میکنه و هم میشه آدم همه کارایی که رو چند تا کامپیوتر میکنه رو با هم (مث xmarks) سینک نگه داره.
زیبا نیست؟ هم کارام رو انجام دادم، هم یه اکو سیستم برای خودم به وجود آوردم که همه اجزاش رو میشناسم، هم کلی چیز یاد گرفتم، و هم -مهمتر از همه- کلی از کارم لذت بردم. تو کل مراحل کارم گنو/لینوکس گوش به فرمان من بود. نه کار اضافه میکرد و نه کار کمتر. اون دقیقا کاری رو که من میخواستم انجام میداد و برای همینه که گنو/لینوکس رو دوست دارم.
آپدیت: makefile رو برای کار با مراجع تغییر دادم. (با کمک از اینجا)
بعد التحریر: اگه جایزه از اول راسپبری بود چه بسا تو این پست آپولو هوا میکردیم. :دی