تنظیمات از پیش تعیین شده
پنداک این امکان را به شما میدهد که تمام تنظیمات و گزینههایی را که معمولاً در خط فرمان وارد میکنید، داخل یک فایل YAML ذخیره کنید. به این ترتیب، به جای نوشتن یک دستور طولانی و پر از گزینه، فقط کافی است در خط فرمان، فایل تنظیمات را معرفی کنید.
YAML (مخفف YAML Ain't Markup Language) یک فرمت متنی ساده و خوانا برای ذخیرهسازی دادهها و پیکربندیهاست. در اینجا از YAML برای تعریف گزینهها و پارامترهای پنداک استفاده میکنیم. فایل YAML ساختار سادهای دارد و با فاصلهها و تورفتگیها (indentation) گزینهها و مقادیر را مشخص میکند.
به زبان ساده:
- یک فایل متنی با پسوند
yaml.میسازید. - داخل آن، گزینهها و پارامترهای موردنظرتان برای پنداک را تعریف میکنید.
- سپس در خط فرمان به جای نوشتن همه گزینهها، فقط مینویسید:
pandoc input.md -o output.pdf --defaults /path/to/file.yaml
در نهایت پنداک تمام تنظیمات داخل فایل YAML را بهصورت خودکار اعمال میکند.
یک مثال ساده از فایل YAML:
pdf-engine: xelatex
toc: true
number-sections: true
variables:
geometry: "a4paper, margin=2.5cm"
mainfont: Yas
fontsize: 12pt
حالا کافی است فقط بنویسید:
pandoc input.md -o output.pdf --defaults config.yaml
و همه گزینهها به طور خودکار اعمال میشوند. این روش بهویژه وقتی دستور پنداک شما طولانی باشد یا گزینههای تکراری زیادی داشته باشید بسیار مفید است و کار را سادهتر میکند.
نمونه تنظیمات پیشنهادی برای زبان فارسی
گزینه های زیر یک نمونهای ایدهآل برای زبان فارسی میباشد:
pdf-engine: xelatex
top-level-division: chapter # part, section
variables:
geometry: "a4paper, margin=1.3in"
fontsize: 12pt
header-includes:
- \usepackage{hyperref}
- \usepackage{xepersian}
- \settextfont{XB Niloofar}
- '\renewcommand{\labelitemi}{\tiny\textbullet}' # Set the size of bullet points to small
جدول زیر، هر کدام از گزینههای تعریف شده در مثال بالا را توضیح میدهد:
| گزینه | توضیح |
|---|---|
pdf-engine: xelatex | موتور PDF برای پشتیبانی بهتر از فونتهای فارسی |
top-level-division: chapter | تعیین سطح اصلی تقسیمبندی سند (مثل فصل یا بخش) |
geometry: "a4paper, margin=1.3in" | اندازه کاغذ و فاطله حاشیهها |
fontsize: 12pt | اندازه فونت متن |
header-includes | پکیجها و دستورات اضافهای که قبل از شروع سند بارگذاری میشوند |
\usepackage{hyperref} | فعالکردن لینکها و ارجاعات |
\usepackage{xepersian} | پشتیبانی کامل از متن فارسی |
\settextfont{XB Niloofar} | تعیین فونت اصلی متن فارسی |
\renewcommand{\labelitemi}{\tiny\textbullet} | کوچک کردن علامتهای گلولهای در لیستها |
ترکیب زبانهای مارکآپ
پیشتر توضیح داده شد که پنداک ابتدا فایل ورودی را به یک زبان میانی تبدیل میکند. این یعنی شما میتوانید در یک فایل واحد، ترکیبی از چند زبان نشانهگذاری (Markup) مثل Markdown، LaTeX و HTML داشته باشید. پنداک همه آنها را به درخت نحو انتزاعی (AST) تبدیل کرده و سپس خروجی نهایی را بهدرستی تولید میکند.
به عنوان مثال، یک فایل ورودی شامل Markdown، LaTeX و HTML میتواند به شکل زیر باشد:
بخش LaTeX
برای تعریف مشخصات سند (عنوان، نویسنده، تاریخ) و همچنین برای نوشتن فرمولهای ریاضی یا محتوای پیشرفته که Markdown پشتیبانی محدودی از آنها دارد:
\title{نام اثر}
\author{محمدرضا روستا}
\date{}
\maketitle
The area of a circle is $A = \pi r^2$.
$$
f(x) = \int_{0}^{\infty} e^{-t^2} dt
$$
بخش مارکدون
برای نوشتن متنهای سادهتر، سریع و روان:
## بخش اول
متن نوشته شده با مارکدون
- لیست با آیتم شماره ۱
- لیست با آیتم شماره ۲
کلمات با **تأکید** و ~~خطخوردگی~~
بخش HTML
برای پوشش محدودیتهای مارکدون، مانند لاتک میتوان میتوان از تگهای html هم استفاده کرد. بهعنوان مثال برای مرکزچین کردن متن یا جدول:
<div align="center">
| ستون اول | ستون دوم |
|----------|----------|
| مورد اول | مورد دوم |
| مورد سوم | مورد چهارم |
</div>
به این ترتیب، میتوانید در یک فایل واحد: از Markdown برای متن اصلی، از LaTeX برای فرمولها و از HTML برای قالببندیهای خاص استفاده کنید. پنداک همه را یکجا پردازش کرده و خروجی نهایی را بدون مشکل تولید میکند.