من اکثر متون قبلی خودم رو با استفاده از فارسی تک مینوشتم. با اینکه این پروژه بسیار به من و سایرین در زمانی که هیچ روش دیگری برای ویرایش فارسی TeX وجود نداشت کمک کرده اما وابستگی اون به یک ویراستار خاص و عدم حمایش از یونیکد کمی آزار دهنده و نگران کننده است. به همین دلیل یه مدت کوتاهی رفتم سراغ DocBook، XSLT و FOP اما حال نداد و دوباره برگشتم به LaTex.
خوشبختانه تکلایو عربی امکان نگارش فارسی مبتنی بر استاندارد یونیکد را فراهم میآورد. بنابراین با هر ویراستار متنی استاندارد با توانایی BIDI (مانند Gedit) امکان نوشتن متون فارسی وجود دارد و نیازی به استفاده از فونت و ویراستار خاصی نیست.
برای این استفاده از TexLive فارسی (عربی) در محیط Ubuntu Linux، بستههای زیر میبایست نصب شوند:
sudo aptitude install texlive-bin texlive-fonts-recommended texlive-fonts-extra texlive-lang-arabic
یک فایل نمونه میتونه به این شکل باشه:
\documentclass[a4paper]{book}
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[LFE,LAE]{fontenc}
\usepackage[farsi,english]{babel}
\TOCLanguage{farsi}
\begin{document}
\selectlanguage{farsi}سلام\end{document}
و برای رندر کردن کافیست latex رو صدا بزنیم:
latex sample.tex
در هنگام برخورد با خطای زیر:
! Since I do not know what the Jalali calendar is
I can’t typeset the Farsi date.
I stop here, while you get a suitable Arabiftoday.sty file.
\reserved@a …et a suitable Arabiftoday.sty file}
\@@end
l.99 }
مشکل از case-sensitive بودن نام فایل هاست و به راحتی قابل حل:
cd /usr/share/texmf-texlive/tex/latex/arabi
sudo vim farsi.ldf
حالا به دنبال Arabiftoday بگردید (با زدن / و بعد n) و A را به a تبدیل کنید (۳ مورد).
همانند همین مشکل در مورد فایل Arabicore.sty هم وجود دارد و پس از تصحیح مشکلفوق به این پیام خطا بر میخورید:
! Since I can’t find the Arabicore.sty file
I can’t typeset Arabic.
I stop here, while you get a suitable Arabicore.sty file.
\reserved@a … get a suitable Arabicore.sty file}
\@@end
l.115 }
بازم هم مشکل از A بزرگ اول نام فایل است.
fgrep Arabicore.sty *
sudo vim farsi.ldf
خروجی dvi، ps, PDF همه به درستی کار می کنند. می توانید از این Makefile استفاده کنید:
DVIPS=dvips
TEX=latex
PS2PDF=ps2pdf14
BIBTEX=bibtex
MAIN=book
all: clean ps
dvi:
$(TEX) $(MAIN).tex
ps: dvi
$(DVIPS) $(MAIN).dvi
pdf: ps
$(PS2PDF) $(MAIN).ps
clean:
rm -f *.log *.aux *.toc *.bbl *.BAK *.bak *~ *.dvi *.blg *.lof *.lot
سوال: من صفحه کلید فارسی ندارم یا تایپ فارسیام کند است. هنوز هم میتونم از TeX فارسی استفاده کنم؟
پاسخ: بله. میتوانید از گوگل Transliterate استفاده کنید.
سوال: نمونه های بهتر و بشتر لازم دارم؟
پاسخ: /usr/share/doc/texlive-lang-arabic/latex/arabi/
سوال: ویراستار در نمایش خطوطی که متن فارسی و لاتین دارند دچار مشکل میشود.چه ویراستاری مناسب است؟
پاسخ: هر ویراستاری که به خوبه از BIDI حمایت کنه مثل Gedit. استفاده از vim و emacs به همین دلیل چندان میسر نیست.
توصیه می کنم در خطوطی رو که فارسی-لاتین داره با زدن Enter هر کدوم رو در یک خط بنویسید چون برای LaTeX این Enter ها مهم نیست اما به ویراستار کمک میکنه بهتر صفحه چینی بکنه و کرزر رو درست حرکت بده (راست به چپ و چپ به راست)
پینوشت: این امکانات از مدتها بوده و منم استفاده میکردم. چیز جدیدی نیست اما احساس کردم مستند روش کمه و لازم دونستم یک پست روش بگذارم.