\f[R]) دربرگیرنده به جای خود سرآیند
(بخش Heading identifiers را در زیر ببینید).
این گزینه تنها بر خروجی HTML تأثیر دارد (و بر قالبهای اسلاید HTML تأثیر
ندارد).
.TP
\f[CR]\-\-email\-obfuscation=none\f[R]|\f[CR]javascript\f[R]|\f[CR]references\f[R]
تعیین یک روش برای مبهمسازی پیوندهای \f[CR]mailto:\f[R] در اسناد HTML.
مقدار \f[CR]none\f[R] پیوندهای \f[CR]mailto:\f[R] را دستنخورده باقی
میگذارد.
مقدار \f[CR]javascript\f[R] آنها را با استفاده از JavaScript مبهم
میکند.
مقدار \f[CR]references\f[R] آنها را با چاپ حروفشان به عنوان ارجاعهای
نویسهای دهدهی یا هگزادسیمال مبهم میکند.
پیشفرض \f[CR]none\f[R] است.
.TP
\f[CR]\-\-id\-prefix=\f[R]\f[I]STRING\f[R]
تعیین یک پیشوند برای اضافه شدن به تمامی شناسهها و پیوندهای داخلی در
خروجی HTML و DocBook، و به شمارههای پانویس در خروجی Markdown و Haddock.
این گزینه برای جلوگیری از شناسههای تکراری هنگام تولید قطعههایی که قرار
است در صفحات دیگر گنجانده شوند، مفید است.
.TP
\f[CR]\-T\f[R] \f[I]STRING\f[R], \f[CR]\-\-title\-prefix=\f[R]\f[I]STRING\f[R]
تعیین \f[I]STRING\f[R] به عنوان پیشوند در ابتدای عنوانی که در سرآیند
(header) اچتیامال ظاهر میشود (اما نه در عنوانی که در ابتدای بدنهٔ
HTML ظاهر میشود).
مستلزم \f[CR]\-\-standalone\f[R] است..TP
\f[CR]\-c\f[R] \f[I]URL\f[R], \f[CR]\-\-css=\f[R]\f[I]URL\f[R]
پیوند به یک شیوهنامهٔ CSS.
این گزینه میتواند برای افزودن چندین فایل بهطور مکرر استفاده شود.
فایلها به همان ترتیبی که مشخص شدهاند اضافه خواهند شد.
این گزینه فقط بر خروجیهای HTML (شامل اسلایدهای HTML) و EPUB اثر میگذارد.
باید همراه با \f[CR]\-s/\-\-standalone\f[R] استفاده شود، زیرا پیوند به شیوهنامه در سرایند سند قرار میگیرد.
.RS
.PP
برای ساخت EPUB وجود یک شیوهنامه الزامی است.
اگر هیچ موردی با استفاده از این گزینه (یا فیلدهای فرادادهٔ \f[CR]css\f[R] یا \f[CR]stylesheet\f[R]) ارائه نشود، pandoc به دنبال فایل \f[CR]epub.css\f[R] در دایرکتوری دادههای کاربر میگردد (گزینهٔ \f[CR]\-\-data\-dir\f[R] را ببینید).
اگر آنجا هم پیدا نشود، از مقادیر پیشفرض معقول استفاده خواهد شد.
.RE
.TP
\f[CR]\-\-reference\-doc=\f[R]\f[I]FILE\f[R]|\f[I]URL\f[R]
استفاده از فایل مشخصشده به عنوان مرجع شیوه در تولید فایل docx یا ODT.
.RS
.TP
Docx
برای بهترین نتیجه، docx مرجع باید نسخهٔ اصلاحشدهای از یک فایل docx تولیدشده با pandoc باشد.
محتویات docx مرجع نادیده گرفته میشوند، اما شیوهنامهها و ویژگیهای سند آن (شامل حاشیهها، اندازهٔ صفحه، سرایند و پاورقی) در docx جدید استفاده خواهند شد.
اگر هیچ docx مرجعی در خط فرمان مشخص نشده باشد، pandoc به دنبال فایل \f[CR]reference.docx\f[R] در دایرکتوری دادههای کاربر میگردد (گزینهٔ \f[CR]\-\-data\-dir\f[R] را ببینید).
اگر این فایل هم پیدا نشود، از مقادیر پیشفرض معقول استفاده خواهد شد.
.RS
.PP
برای ساخت یک \f[CR]reference.docx\f[R] سفارشی، ابتدا یک نسخه از \f[CR]reference.docx\f[R] پیشفرض را دریافت کنید:
\f[CR]pandoc \-o custom\-reference.docx \-\-print\-default\-data\-file reference.docx\f[R].
سپس \f[CR]custom\-reference.docx\f[R] را در Word یا LibreOffice باز کرده، شیوهها را مطابق میل خود تغییر دهید و فایل را ذخیره کنید.
برای بهترین نتیجه، تغییری جز اصلاح شیوههای مورد استفادهٔ pandoc در این فایل اعمال نکنید:
.PP
شیوههای پاراگراف:
.IP \(bu 2
Normal
.IP \(bu 2
Body Text
.IP \(bu 2
First Paragraph
.IP \(bu 2
Compact
.IP \(bu 2
Title
.IP \(bu 2
Subtitle
.IP \(bu 2
Author
.IP \(bu 2
Date
.IP \(bu 2
Abstract
.IP \(bu 2
AbstractTitle
.IP \(bu 2
Bibliography
.IP \(bu 2
Heading 1
.IP \(bu 2
Heading 2
.IP \(bu 2
Heading 3
.IP \(bu 2
Heading 4
.IP \(bu 2
Heading 5
.IP \(bu 2
Heading 6
.IP \(bu 2
Heading 7
.IP \(bu 2
Heading 8
.IP \(bu 2
Heading 9
.IP \(bu 2
Block Text [برای نقلقولهای بلوکی]
.IP \(bu 2
Footnote Block Text [برای نقلقولهای بلوکی در پاورقی]
.IP \(bu 2
Source Code
.IP \(bu 2
Footnote Text
.IP \(bu 2
Definition Term
.IP \(bu 2
Definition
.IP \(bu 2
Caption
.IP \(bu 2
Table Caption
.IP \(bu 2
Image Caption
.IP \(bu 2
Figure
.IP \(bu 2
Captioned Figure
.IP \(bu 2
TOC Heading
.PP
شیوههای نویسه:
.IP \(bu 2
Default Paragraph Font
.IP \(bu 2
Verbatim Char
.IP \(bu 2
Footnote Reference
.IP \(bu 2
Hyperlink
.IP \(bu 2
Section Number
.PP
شیوهٔ جدول:
.IP \(bu 2
Table
.RE
.TP
ODT
برای بهترین نتیجه، ODT مرجع باید نسخهٔ اصلاحشدهای از یک ODT تولیدشده با pandoc باشد.
محتویات ODT مرجع نادیده گرفته میشوند، اما شیوهنامههای آن در ODT جدید استفاده خواهند شد.
اگر هیچ ODT مرجعی در خط فرمان مشخص نشده باشد، pandoc به دنبال فایل \f[CR]reference.odt\f[R] در دایرکتوری دادههای کاربر میگردد (گزینهٔ \f[CR]\-\-data\-dir\f[R] را ببینید).
اگر این فایل هم پیدا نشود، از مقادیر پیشفرض معقول استفاده خواهد شد.
.RS
.PP
برای ساخت یک \f[CR]reference.odt\f[R] سفارشی، ابتدا یک نسخه از \f[CR]reference.odt\f[R] پیشفرض را دریافت کنید:
\f[CR]pandoc \-o custom\-reference.odt \-\-print\-default\-data\-file reference.odt\f[R].
سپس \f[CR]custom\-reference.odt\f[R] را در LibreOffice باز کرده، شیوهها را مطابق میل خود تغییر دهید و فایل را ذخیره کنید.
.RE
.TP
PowerPoint
الگوهای ارائه شده همراه Microsoft PowerPoint 2013 (چه با پسوند \f[CR].pptx\f[R] یا \f[CR].potx\f[R]) و بیشتر الگوهای مشتقشده از آنها کارایی دارند.
.RS
.PP
شرط خاص این است که الگو باید شامل طرحبندیهایی با نامهای زیر باشد (همانطور که در PowerPoint دیده میشوند):
.IP \(bu 2
Title Slide
.IP \(bu 2
Title and Content
.IP \(bu 2
Section Header
.IP \(bu 2
Two Content
.IP \(bu 2
Comparison
.IP \(bu 2
Content with Caption
.IP \(bu 2
Blank
.PP
برای هر نام، نخستین طرحبندی یافتشده با آن نام به کار خواهد رفت.
اگر طرحبندی با یکی از این نامها پیدا نشود، pandoc یک هشدار نمایش داده و در عوض از طرحبندی با همان نام از سند مرجع پیشفرض استفاده خواهد کرد.
(نحوهٔ استفاده از این طرحبندیها در بخش PowerPoint layout choice شرح داده شده است.)
.PP
تمام الگوهای همراه نسخههای اخیر MS PowerPoint دارای این مشخصات هستند.
(برای بررسی میتوانید زیر منوی \f[CR]Home\f[R] روی \f[CR]Layout\f[R] کلیک کنید.)
.PP
همچنین میتوانید \f[CR]reference.pptx\f[R] پیشفرض را اصلاح کنید: ابتدا دستور
\f[CR]pandoc \-o custom\-reference.pptx \-\-print\-default\-data\-file reference.pptx\f[R]
را اجرا کرده و سپس \f[CR]custom\-reference.pptx\f[R] را در MS PowerPoint تغییر دهید (pandoc از طرحبندیهایی با نامهای ذکرشده در بالا استفاده خواهد کرد).
.RE
.RE
.TP
\f[CR]\-\-split\-level=\f[R]\f[I]NUMBER\f[R]
سطح عنوانی را مشخص میکند که در آن یک سند EPUB یا chunked HTML به فایلهای مجزا تقسیم میشود.
حالت پیشفرض، تقسیم به فصلها در عناوین سطح ۱ است.
در مورد EPUB، این گزینه فقط بر ساختار داخلی EPUB تأثیر میگذارد، نه نحوهٔ نمایش فصلها و بخشها برای کاربران.
برخی دستگاههای کتابخوان در صورت بزرگ بودن فایلهای فصل ممکن است کند شوند، بنابراین برای اسناد بزرگی با عناوین سطح ۱ اندک، ممکن است ترجیح دهید از سطح فصل ۲ یا ۳ استفاده کنید.
برای chunked HTML، این گزینه تعیین میکند چه مقدار محتوا در هر \(lqتکه\(rq قرار میگیرد.
.TP
\f[CR]\-\-chunk\-template=\f[R]\f[I]PATHTEMPLATE\f[R]
الگویی برای نام فایلها در یک سند \f[CR]chunkedhtml\f[R] مشخص میکند.
در این الگو، \f[CR]%n\f[R] با شمارهٔ تکه (با صفرهای پیشین تا ۳ رقم تکمیل میشود)، \f[CR]%s\f[R] با شمارهٔ بخشِ تکه، \f[CR]%h\f[R] با متن عنوان (بدون قالببندی) و \f[CR]%i\f[R] با شناسهٔ بخش جایگزین خواهد شد.
برای نمونه، \f[CR]section\-%s\-%i.html\f[R] ممکن است به \f[CR]section\-1.1\-introduction.html\f[R] تبدیل شود.
نویسههای \f[CR]/\f[R] و \f[CR]\(rs\f[R] در الگوهای تکه مجاز نیستند و نادیده گرفته خواهند شد.
حالت پیشفرض \f[CR]%s\-%i.html\f[R] است..TP
\f[CR]\-\-epub\-chapter\-level=\f[R]\f[I]NUMBER\f[R]
\f[I]مترادف منسوخشده برای \f[CI]\-\-split\-level\f[I].\f[R]
.TP
\f[CR]\-\-epub\-cover\-image=\f[R]\f[I]FILE\f[R]
استفاده از تصویر مشخصشده به عنوان جلد EPUB.
توصیه میشود عرض و ارتفاع تصویر کمتر از 1000px باشد.
توجه داشته باشید که در یک سند مبدأ Markdown میتوانید \f[CR]cover\-image\f[R] را در یک بلوک فراداده YAML نیز تعیین کنید (بخش «فراداده EPUB» در زیر را ببینید).
.TP
\f[CR]\-\-epub\-title\-page=true\f[R]|\f[CR]false\f[R]
مشخص میکند که آیا صفحه عنوان در EPUB گنجانده شود یا خیر (پیشفرض \f[CR]true\f[R] است).
.TP
\f[CR]\-\-epub\-metadata=\f[R]\f[I]FILE\f[R]
جستجو در فایل XML مشخصشده برای فراداده EPUB.
این فایل باید شامل مجموعهای از عناصر Dublin Core باشد.
برای مثال:
.RS
.IP
.EX
Creative Commons
es\-AR
.EE
.PP
بهطور پیشفرض، pandoc عناصر فراداده زیر را میگنجاند:
\f[CR]
\f[R] (از عنوان سند)، \f[CR]\f[R]
(از نویسندگان سند)، \f[CR]\f[R] (از تاریخ سند که باید در قالب
ISO 8601 باشد)، \f[CR]\f[R] (از متغیر \f[CR]lang\f[R]، یا
در صورت تنظیم نبودن، محلیسازی سیستم)، و
\f[CR]\f[R] (یک UUID بهصورت تصادفی
تولیدشده).
هر یک از این موارد میتواند توسط عناصر موجود در فایل فراداده رونویسی شود.
.PP
نکته: اگر سند مبدأ Markdown باشد، میتوان به جای آن از یک بلوک فراداده YAML
در سند استفاده کرد.
بخش «فراداده EPUB» در زیر را ببینید.
.RE
.TP
\f[CR]\-\-epub\-embed\-font=\f[R]\f[I]FILE\f[R]
جاسازی فونت مشخصشده در EPUB.
این گزینه را میتوان برای جاسازی چندین فونت تکرار کرد.
همچنین میتوان از نویسههای عمومی (wildcards) استفاده کرد: برای مثال، \f[CR]DejaVuSans\-*.ttf\f[R].
با این حال، اگر در خط فرمان از نویسههای عمومی استفاده میکنید، برای جلوگیری
از تفسیر آنها توسط پوسته، مطمئن شوید که آنها را با escape مشخص کرده یا کل
نام فایل را در نقلقول تکی (single quotes) قرار دهید.
برای استفاده از فونتهای جاسازیشده، باید اعلانهایی مانند نمونه زیر را به
CSS خود اضافه کنید (گزینه \f[CR]\-\-css\f[R] را ببینید):
.RS
.IP
.EX
\(atfont\-face {
font\-family: DejaVuSans;
font\-style: normal;
font\-weight: normal;
src:url(\(dq../fonts/DejaVuSans\-Regular.ttf\(dq);
}
\(atfont\-face {
font\-family: DejaVuSans;
font\-style: normal;
font\-weight: bold;
src:url(\(dq../fonts/DejaVuSans\-Bold.ttf\(dq);
}
\(atfont\-face {
font\-family: DejaVuSans;
font\-style: italic;
font\-weight: normal;
src:url(\(dq../fonts/DejaVuSans\-Oblique.ttf\(dq);
}
\(atfont\-face {
font\-family: DejaVuSans;
font\-style: italic;
font\-weight: bold;
src:url(\(dq../fonts/DejaVuSans\-BoldOblique.ttf\(dq);
}
body { font\-family: \(dqDejaVuSans\(dq; }
.EE
.RE
.TP
\f[CR]\-\-epub\-subdirectory=\f[R]\f[I]DIRNAME\f[R]
مشخص کردن زیردایرکتوری در ظرف OCF که باید محتوای مخصوص EPUB را در خود
نگهداری کند.
پیشفرض \f[CR]EPUB\f[R] است.
برای قرار دادن محتویات EPUB در بالاترین سطح، از یک رشته خالی استفاده کنید.
.TP
\f[CR]\-\-ipynb\-output=all|none|best\f[R]
نحوه رفتار با سلولهای خروجی ipynb را تعیین میکند.
مقدار \f[CR]all\f[R] یعنی تمام قالبهای داده موجود در فایل اصلی حفظ شوند.
مقدار \f[CR]none\f[R] یعنی محتوای سلولهای داده حذف شوند.
مقدار \f[CR]best\f[R] باعث میشود pandoc تلاش کند غنیترین بلوک داده در هر
سلول خروجی را که با قالب خروجی سازگار است انتخاب کند.
پیشفرض \f[CR]best\f[R] است.
.TP
\f[CR]\-\-pdf\-engine=\f[R]\f[I]PROGRAM\f[R]
استفاده از موتور مشخصشده هنگام تولید خروجی PDF.
مقادیر معتبر عبارتند از: \f[CR]pdflatex\f[R]، \f[CR]lualatex\f[R]،
\f[CR]xelatex\f[R]، \f[CR]latexmk\f[R]، \f[CR]tectonic\f[R]،
\f[CR]wkhtmltopdf\f[R]، \f[CR]weasyprint\f[R]، \f[CR]pagedjs\-cli\f[R]،
\f[CR]prince\f[R]، \f[CR]context\f[R]، \f[CR]groff\f[R]،
\f[CR]pdfroff\f[R] و \f[CR]typst\f[R].
اگر موتور در PATH شما نباشد، میتوان مسیر کامل آن را در اینجا مشخص کرد.
اگر این گزینه مشخص نشود، pandoc بسته به قالب خروجی تعیینشده با
استفاده از \f[CR]\-t/\-\-to\f[R]، از پیشفرضهای زیر استفاده میکند:
.RS
.IP \(bu 2
\f[CR]\-t latex\f[R] یا هیچکدام: \f[CR]pdflatex\f[R] (گزینههای دیگر:
\f[CR]xelatex\f[R]، \f[CR]lualatex\f[R]، \f[CR]tectonic\f[R]،
\f[CR]latexmk\f[R])
.IP \(bu 2
\f[CR]\-t context\f[R]: \f[CR]context\f[R]
.IP \(bu 2
\f[CR]\-t html\f[R]: \f[CR]weasyprint\f[R] (گزینههای دیگر:
\f[CR]prince\f[R]، \f[CR]wkhtmltopdf\f[R]، \f[CR]pagedjs\-cli\f[R]؛ برای
مقدمهای مناسب در مورد تولید PDF از HTML/CSS وبگاه print\-css.rocks را
ببینید)
.IP \(bu 2
\f[CR]\-t ms\f[R]: \f[CR]groff\f[R]
.IP \(bu 2
\f[CR]\-t typst\f[R]: \f[CR]typst\f[R]
.PP
این گزینه معمولاً برای زمانی در نظر گرفته شده است که یک فایل PDF به عنوان
\f[CR]\-o/\-\-output\f[R] مشخص شده باشد.
با این حال، ممکن است هنگام درخواست سایر قالبهای خروجی نیز اثرگذار باشد.
برای مثال، خروجی \f[CR]ms\f[R] تنها در صورتی شامل ماکروهای \f[CR].pdfhref\f[R]
خواهد بود که یک \f[CR]\-\-pdf\-engine\f[R] انتخاب شده باشد، و این ماکروها
بسته به این که \f[CR]groff\f[R] یا \f[CR]pdfroff\f[R] مشخص شده باشد به شکل
متفاوتی کدگذاری خواهند شد.
.RE
.TP
\f[CR]\-\-pdf\-engine\-opt=\f[R]\f[I]STRING\f[R]
استفاده از رشته دادهشده به عنوان آرگومان خط فرمان برای
\f[CR]pdf\-engine\f[R].
برای مثال، جهت استفاده از دایرکتوری پایدار \f[CR]foo\f[R] برای فایلهای کمکی
\f[CR]latexmk\f[R]، از \f[CR]\-\-pdf\-engine\-opt=\-outdir=foo\f[R]
استفاده کنید.
توجه داشته باشید که هیچ بررسی برای گزینههای تکراری انجام نمیشود..SS بازنمایی ارجاعات
.TP
\f[CR]\-C\f[R], \f[CR]\-\-citeproc\f[R]
ارجاعات موجود در فایل را پردازش کرده، آنها را با ارجاعات بازنماییشده
جایگزین میکند و یک کتابشناسی میافزاید.
پردازش ارجاعات انجام نخواهد شد مگر آنکه دادههای کتابشناختی فراهم شده باشند؛
چه از طریق یک فایل خارجی مشخصشده با استفاده از گزینهٔ
\f[CR]\-\-bibliography\f[R] یا فیلد \f[CR]bibliography\f[R] در فراداده،
یا از طریق بخش \f[CR]references\f[R] در فراداده شامل فهرستی از ارجاعات در
قالب CSL YAML با قالببندی Markdown.
شیوهنامه توسط یک شیوهنامهٔ CSL مشخصشده با استفاده از گزینهٔ
\f[CR]\-\-csl\f[R] یا فیلد \f[CR]csl\f[R] در فراداده کنترل میشود.
(اگر هیچ شیوهنامهای تعیین نشده باشد، شیوهٔ
\f[CR]chicago\-author\-date\f[R] بهطور پیشفرض استفاده خواهد شد.)
تبدیل پردازش ارجاع ممکن است پیش یا پس از فیلترها یا فیلترهای Lua اعمال شود
(ببینید \f[CR]\-\-filter\f[R]، \f[CR]\-\-lua\-filter\f[R]): این تبدیلها
به همان ترتیبی که در خط فرمان ظاهر میشوند اعمال خواهند شد.
برای اطلاعات بیشتر، بخش ارجاعات (Citations) را ببینید.
.RS
.PP
نکته: در صورت تعیین این گزینه، افزونهٔ \f[CR]citations\f[R] بهطور خودکار در
نویسنده (writer) غیرفعال میشود تا اطمینان حاصل شود که به جای نحو ارجاعی خودِ
قالب، ارجاعات تولیدشده توسط citeproc بازنمایی میشوند.
.RE
.TP
\f[CR]\-\-bibliography=\f[R]\f[I]FILE\f[R]
فیلد \f[CR]bibliography\f[R] را در فرادادهٔ سند روی \f[I]FILE\f[R] تنظیم
میکند و هر مقداری را که در فراداده تعیین شده باشد بازنویسی مینماید.
اگر این آرگومان را چندین بار ارائه دهید، هر \f[I]FILE\f[R] به کتابشناسی
اضافه خواهد شد.
اگر \f[I]FILE\f[R] یک نشانی URL باشد، از طریق HTTP واکشی خواهد شد.
اگر \f[I]FILE\f[R] نسبت به دایرکتوری کاری پیدا نشود، در مسیر منبع جستجو
خواهد شد (ببینید \f[CR]\-\-resource\-path\f[R]).
.TP
\f[CR]\-\-csl=\f[R]\f[I]FILE\f[R]
فیلد \f[CR]csl\f[R] را در فرادادهٔ سند روی \f[I]FILE\f[R] تنظیم میکند و هر
مقدار تعیینشده در فراداده را بازنویسی مینماید.
(این معادل \f[CR]\-\-metadata csl=FILE\f[R] است.)
اگر \f[I]FILE\f[R] یک نشانی URL باشد، از طریق HTTP واکشی خواهد شد.
اگر \f[I]FILE\f[R] نسبت به دایرکتوری کاری پیدا نشود، در مسیر منبع (ببینید
\f[CR]\-\-resource\-path\f[R]) و در نهایت در زیرپوشهٔ \f[CR]csl\f[R] از
دایرکتوری دادههای کاربر pandoc جستجو خواهد شد.
.TP
\f[CR]\-\-citation\-abbreviations=\f[R]\f[I]FILE\f[R]
فیلد \f[CR]citation\-abbreviations\f[R] را در فرادادهٔ سند روی
\f[I]FILE\f[R] تنظیم میکند و هر مقدار تعیینشده در فراداده را بازنویسی
مینماید.
(این معادل \f[CR]\-\-metadata citation\-abbreviations=FILE\f[R] است.)
اگر \f[I]FILE\f[R] یک نشانی URL باشد، از طریق HTTP واکشی خواهد شد.
اگر \f[I]FILE\f[R] نسبت به دایرکتوری کاری پیدا نشود، در مسیر منبع (ببینید
\f[CR]\-\-resource\-path\f[R]) و در نهایت در زیرپوشهٔ \f[CR]csl\f[R] از
دایرکتوری دادههای کاربر pandoc جستجو خواهد شد.
.TP
\f[CR]\-\-natbib\f[R]
استفاده از \f[CR]natbib\f[R] برای ارجاعات در خروجی LaTeX.
این گزینه نباید به همراه گزینهٔ \f[CR]\-\-citeproc\f[R] یا با خروجی PDF
استفاده شود.
هدف از آن استفاده در تولید یک فایل LaTeX است که بتوان با \f[CR]bibtex\f[R]
آن را پردازش کرد.
.TP
\f[CR]\-\-biblatex\f[R]
استفاده از \f[CR]biblatex\f[R] برای ارجاعات در خروجی LaTeX.
این گزینه نباید به همراه گزینهٔ \f[CR]\-\-citeproc\f[R] یا با خروجی PDF
استفاده شود.
هدف از آن استفاده در تولید یک فایل LaTeX است که بتوان با \f[CR]bibtex\f[R]
یا \f[CR]biber\f[R] آن را پردازش کرد.
.SS بازنمایی ریاضی در HTML
حالت پیشفرض این است که ریاضیات TeX تا جای ممکن با استفاده از نویسههای
Unicode بازنمایی شوند.
فرمولها درون یک \f[CR]span\f[R] با \f[CR]class=\(dqmath\(dq\f[R] قرار
میگیرند تا در صورت نیاز بتوان سبک آنها را متفاوت از متن اطراف قالببندی
کرد.
با این حال، این روش تنها برای ریاضیات پایه نتایج قابل قبولی ارائه میدهد و
معمولاً مایل خواهید بود از \f[CR]\-\-mathjax\f[R] یا یکی دیگر از گزینههای
زیر استفاده کنید.
.TP
\f[CR]\-\-mathjax\f[R][\f[CR]=\f[R]\f[I]URL\f[R]]
استفاده از MathJax برای نمایش ریاضیات تعبیهشدهٔ TeX در خروجی HTML.
ریاضیات TeX بین \f[CR]\(rs(...\(rs)\f[R] (برای ریاضیات درونخطی) یا
\f[CR]\(rs[...\(rs]\f[R] (برای ریاضیات نمایشی) قرار داده شده و درون
تگهای \f[CR]\f[R] با کلاس \f[CR]math\f[R] پیچیده میشوند.
سپس جاوااسکریپت MathJax آن را بازنمایی خواهد کرد.
آرگومان \f[I]URL\f[R] باید به اسکریپت بارگذاری \f[CR]MathJax.js\f[R]
اشاره داشته باشد.
اگر \f[I]URL\f[R] ارائه نشود، پیوندی به Cloudflare CDN درج خواهد شد.
.TP
\f[CR]\-\-mathml\f[R]
تبدیل ریاضیات TeX به MathML (در \f[CR]epub3\f[R]، \f[CR]docbook4\f[R]،
\f[CR]docbook5\f[R]، \f[CR]jats\f[R]، \f[CR]html4\f[R] و
\f[CR]html5\f[R]).
این مورد در خروجی \f[CR]odt\f[R] پیشفرض است.
MathML بهطور بومی توسط مرورگرهای وب اصلی و برخی کتابخوانهای الکترونیکی
منتخب پشتیبانی میشود.
.TP
\f[CR]\-\-webtex\f[R][\f[CR]=\f[R]\f[I]URL\f[R]]
تبدیل فرمولهای TeX به تگهای \f[CR]
\f[R] که به یک اسکریپت خارجی
پیوند دارند که فرمولها را به تصویر تبدیل میکند.
فرمول بهصورت کدگذاری URL (URL\-encode) درآمده و به نشانی URL ارائهشده
الحاق میشود.
بهعنوان مثال، برای تصاویر SVG میتوانید از
\f[CR]\-\-webtex https://latex.codecogs.com/svg.latex?\f[R] استفاده کنید.
اگر هیچ نشانی URL تعیین نشود، نشانی URL تولیدکنندهٔ PNG در CodeCogs
استفاده خواهد شد (\f[CR]https://latex.codecogs.com/png.latex?\f[R]).
نکته: گزینهٔ \f[CR]\-\-webtex\f[R] علاوه بر HTML بر خروجی Markdown نیز
تأثیر خواهد گذاشت که اگر نگارشی از Markdown بدون پشتیبانی بومی از ریاضیات
را هدف قرار داده باشید، مفید است.
.TP
\f[CR]\-\-katex\f[R][\f[CR]=\f[R]\f[I]URL\f[R]]
استفاده از KaTeX برای نمایش ریاضیات تعبیهشدهٔ TeX در خروجی HTML.
مقدار \f[I]URL\f[R] نشانیِ پایه برای کتابخانهٔ KaTeX است.
آن دایرکتوری باید حاوی یک فایل \f[CR]katex.min.js\f[R] و یک فایل
\f[CR]katex.min.css\f[R] باشد.
اگر \f[I]URL\f[R] ارائه نشود، پیوندی به KaTeX CDN درج خواهد شد.
.TP
\f[CR]\-\-gladtex\f[R]
قرار دادن ریاضیات TeX درون تگهای \f[CR]\f[R] در خروجی HTML.
خروجی HTML حاصل میتواند متعاقباً توسط GladTeX پردازش شود تا تصاویر SVG از
فرمولهای حروفچینیشده و یک فایل HTML شامل این تصاویرِ تعبیهشده را تولید
کند.
.RS
.IP
.EX
pandoc \-s \-\-gladtex input.md \-o myfile.htex
gladtex \-d image_dir myfile.htex
# produces myfile.html and images in image_dir
.EE
.RE.SS "گزینهها برای اسکریپتهای پوششی (Options for wrapper scripts)"
.TP
\f[CR]\-\-dump\-args[=true|false]\f[R]
اطلاعات مربوط به آرگومانهای خط فرمان را در \f[I]stdout\f[R] چاپ کرده
و سپس خارج میشود.
این گزینه در درجه اول برای استفاده در اسکریپتهای پوششی در نظر گرفته شده است.
خط اول خروجی حاوی نام فایل خروجی مشخصشده
با گزینهٔ \f[CR]\-o\f[R] است، یا در صورتی که فایل خروجی مشخص نشده باشد،
حاوی \f[CR]\-\f[R] (برای \f[I]stdout\f[R]) خواهد بود.
خطوط باقیمانده شامل آرگومانهای خط فرمان هستند؛ هر کدام در یک خط،
و به ترتیبی که ظاهر شدهاند.
این موارد شامل گزینههای معمول pandoc و آرگومانهای آنها نمیشوند، اما
شامل هر گزینهای هستند که پس از جداکنندهٔ \f[CR]\-\-\f[R] در انتهای خط
آمده باشد.
.TP
\f[CR]\-\-ignore\-args[=true|false]\f[R]
نادیده گرفتن آرگومانهای خط فرمان (برای استفاده در اسکریپتهای پوششی).
گزینههای معمول pandoc نادیده گرفته نمیشوند.
بنابراین، به عنوان مثال،
.RS
.IP
.EX
pandoc \-\-ignore\-args \-o foo.html \-s foo.txt \-\- \-e latin1
.EE
.PP
معادل است با:
.IP
.EX
pandoc \-o foo.html \-s
.EE
.RE
.SH "کدهای خروج (EXIT CODES)"
اگر pandoc با موفقیت به پایان برسد، کد خروج 0 را برمیگرداند.
کدهای خروج غیرصفر معانی زیر را دارند:
.RS -14n
.IP
.EX
Code Error
\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
1 PandocIOError
3 PandocFailOnWarningError
4 PandocAppError
5 PandocTemplateError
6 PandocOptionError
21 PandocUnknownReaderError
22 PandocUnknownWriterError
23 PandocUnsupportedExtensionError
24 PandocCiteprocError
25 PandocBibliographyError
31 PandocEpubSubdirectoryError
43 PandocPDFError
44 PandocXMLError
47 PandocPDFProgramNotFoundError
61 PandocHttpError
62 PandocShouldNeverHappenError
63 PandocSomeError
64 PandocParseError
66 PandocMakePDFError
67 PandocSyntaxMapError
83 PandocFilterError
84 PandocLuaError
89 PandocNoScriptingEngine
91 PandocMacroLoop
92 PandocUTF8DecodingError
93 PandocIpynbDecodingError
94 PandocUnsupportedCharsetError
95 PandocInputNotTextError
97 PandocCouldNotFindDataFileError
98 PandocCouldNotFindMetadataFileError
99 PandocResourceNotFound
.EE
.RE
.SH "فایلهای پیشفرض (DEFAULTS FILES)"
گزینهٔ \f[CR]\-\-defaults\f[R] میتواند برای تعیین بستهای از
گزینهها در قالب یک فایل YAML یا JSON استفاده شود.
مثالهای این بخش به زبان YAML ارائه میشوند، اما شکلهای معادل
در JSON نیز کار خواهند کرد.
.PP
فیلدهایی که از قلم افتادهاند، مقادیر پیشفرض معمول خود را خواهند داشت.
بنابراین یک فایل پیشفرض میتواند به سادگی یک خط باشد:
.IP
.EX
verbosity\f[B]:\f[R] INFO
.EE
.PP
یا در JSON:
.IP
.EX
{ \(dqverbosity\(dq: \(dqINFO\(dq }
.EE
.PP
در فیلدهایی که انتظار یک مسیر فایل (یا فهرستی از مسیرهای فایل) را دارند، نحو
زیر میتواند برای جایگذاری متغیرهای محیطی استفاده شود:
.IP
.EX
csl\f[B]:\f[R] ${HOME}/mycsldir/special.csl
.EE
.PP
از \f[CR]${USERDATA}\f[R] نیز میتوان استفاده کرد؛ این عبارت، صرفنظر از مقدار
متغیر محیطی \f[CR]USERDATA\f[R]، همواره به دایرکتوری دادههای کاربر
در زمان تجزیهٔ فایل پیشفرض اشاره خواهد کرد.
.PP
عبارت \f[CR]${.}\f[R] به دایرکتوری حاوی خودِ فایل پیشفرض
اشاره خواهد کرد.
این به شما امکان میدهد تا به منابع موجود در آن دایرکتوری ارجاع دهید:
.IP
.EX
epub\-cover\-image\f[B]:\f[R] ${.}/cover.jpg
epub\-metadata\f[B]:\f[R] ${.}/meta.xml
resource\-path\f[B]:\f[R]
\f[B]\-\f[R] .\f[I] # the working directory from which pandoc is run\f[R]
\f[B]\-\f[R] ${.}/images\f[I] # the images subdirectory of the directory\f[R]
\f[I] # containing this defaults file\f[R]
.EE
.PP
این نحوِ جایگذاری متغیر محیطی \f[I]فقط\f[R] در
فیلدهایی کار میکند که انتظار مسیر فایل را دارند.
.PP
فایلهای پیشفرض را میتوان در زیردایرکتوری \f[CR]defaults\f[R] از
دایرکتوری دادههای کاربر قرار داد و از هر دایرکتوریای استفاده کرد.
به عنوان مثال، میتوان فایلی برای تعیین پیشفرضهای نگارش نامه ایجاد کرد،
آن را به عنوان \f[CR]letter.yaml\f[R] در زیردایرکتوری \f[CR]defaults\f[R]
از دایرکتوری دادههای کاربر ذخیره کرد و سپس این پیشفرضها را از هر
دایرکتوری با استفاده از \f[CR]pandoc \-\-defaults letter\f[R] یا
\f[CR]pandoc \-dletter\f[R] فراخوانی کرد.
.PP
هنگامی که چندین فایل پیشفرض استفاده میشوند، محتویات آنها با یکدیگر ترکیب خواهند شد.
.PP
توجه داشته باشید که در مواردی که آرگومانهای خط فرمان قابل تکرار هستند
(\f[CR]\-\-metadata\-file\f[R]، \f[CR]\-\-css\f[R]،
\f[CR]\-\-include\-in\-header\f[R]،
\f[CR]\-\-include\-before\-body\f[R]،
\f[CR]\-\-include\-after\-body\f[R]، \f[CR]\-\-variable\f[R]،
\f[CR]\-\-metadata\f[R]، \f[CR]\-\-syntax\-definition\f[R])، مقادیر
مشخصشده در خط فرمان با مقادیر مشخصشده در فایل پیشفرض ترکیب میشوند،
نه اینکه جایگزین آنها گردند.
.PP
جدولهای زیر نگاشت بین ورودیهای خط فرمان و
فایلهای پیشفرض را نشان میدهند.
.RS -14n
.IP
.EX
command line defaults file
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
foo.md input\-file: foo.md
foo.md bar.md input\-files:
\- foo.md
\- bar.md
.EE
.RE
.PP
مقدار \f[CR]input\-files\f[R] میتواند برای نشان دادن ورودی از stdin خالی
گذاشته شود، و همچنین میتواند یک توالی خالی \f[CR][]\f[R] برای عدم ورودی باشد..SS گزینههای عمومی (General options)
.RS -14n
.IP
.EX
command line defaults file
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\-\-from markdown+emoji from: markdown+emoji
reader: markdown+emoji
\-\-to markdown+hard_line_breaks to: markdown+hard_line_breaks
writer: markdown+hard_line_breaks
\-\-output foo.pdf output\-file: foo.pdf
\-\-output \- output\-file:
\-\-data\-dir dir data\-dir: dir
\-\-defaults file defaults:
\- file
\-\-verbose verbosity: INFO
\-\-quiet verbosity: ERROR
\-\-fail\-if\-warnings fail\-if\-warnings: true
\-\-sandbox sandbox: true
\-\-log=FILE log\-file: FILE
.EE
.RE
.PP
گزینههای مشخصشده در خود یک فایل پیشفرضها، همواره نسبت به گزینههای موجود در فایل دیگری که با مدخل \f[CR]defaults:\f[R] گنجانده شده است، اولویت دارند.
.PP
\f[CR]verbosity\f[R] میتواند دارای مقادیر \f[CR]ERROR\f[R]، \f[CR]WARNING\f[R] یا \f[CR]INFO\f[R] باشد.
.SS گزینههای خواننده (Reader options)
.RS -14n
.IP
.EX
command line defaults file
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\-\-shift\-heading\-level\-by \-1 shift\-heading\-level\-by: \-1
\-\-indented\-code\-classes python indented\-code\-classes:
\- python
\-\-default\-image\-extension \(dq.jpg\(dq default\-image\-extension: \(aq.jpg\(aq
\-\-file\-scope file\-scope: true
\-\-citeproc \(rs filters:
\-\-lua\-filter count\-words.lua \(rs \- citeproc
\-\-filter special.lua \- count\-words.lua
\- type: json
path: special.lua
\-\-metadata key=value \(rs metadata:
\-\-metadata key2 key: value
key2: true
\-\-metadata\-file meta.yaml metadata\-files:
\- meta.yaml
metadata\-file: meta.yaml
\-\-preserve\-tabs preserve\-tabs: true
\-\-tab\-stop 8 tab\-stop: 8
\-\-track\-changes accept track\-changes: accept
\-\-extract\-media dir extract\-media: dir
\-\-abbreviations abbrevs.txt abbreviations: abbrevs.txt
\-\-typst\-input foo=bar typst\-inputs:
foo: bar
\-\-trace trace: true
.EE
.RE
.PP
مقادیر متادیتای مشخصشده در یک فایل پیشفرضها، بهصورت متن رشتهای لفظی (literal)، و نه Markdown، تجزیه میشوند.
.PP
فیلترها در صورتی که پسوند \f[CR].lua\f[R] داشته باشند، فیلتر Lua و در غیر این صورت فیلتر JSON فرض میشوند. با این حال، همانطور که نشان داده شده است، نوع فیلتر میتواند بهصورت صریح نیز مشخص شود. فیلترها به همان ترتیبی که مشخص شدهاند اجرا میشوند. برای گنجاندن فیلتر توکار citeproc، از \f[CR]citeproc\f[R] یا \f[CR]{type: citeproc}\f[R] استفاده کنید.
.SS گزینههای عمومی نویسنده (General writer options)
.RS -14n
.IP
.EX
command line defaults file
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\-\-standalone standalone: true
\-\-template letter template: letter
\-\-variable key=val \(rs variables:
\-\-variable key2 key: val
key2: true
\-\-eol nl eol: nl
\-\-dpi 300 dpi: 300
\-\-wrap preserve wrap: \(dqpreserve\(dq
\-\-columns 72 columns: 72
\-\-table\-of\-contents table\-of\-contents: true
\-\-toc toc: true
\-\-toc\-depth 3 toc\-depth: 3
\-\-strip\-comments strip\-comments: true
\-\-no\-highlight syntax\-highlighting: \(aqnone\(aq
\-\-syntax\-highlighting kate syntax\-highlighting: kate
\-\-syntax\-definition mylang.xml syntax\-definitions:
\- mylang.xml
syntax\-definition: mylang.xml
\-\-include\-in\-header inc.tex include\-in\-header:
\- inc.tex
\-\-include\-before\-body inc.tex include\-before\-body:
\- inc.tex
\-\-include\-after\-body inc.tex include\-after\-body:
\- inc.tex
\-\-resource\-path .:foo resource\-path: [\(aq.\(aq,\(aqfoo\(aq]
\-\-request\-header foo:bar request\-headers:
\- [\(dqUser\-Agent\(dq, \(dqMozilla/5.0\(dq]
\-\-no\-check\-certificate no\-check\-certificate: true
.EE
.RE.SS گزینههای مؤثر بر نویسندههای خاص
.RS -14n
.IP
.EX
command line defaults file
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\-\-self\-contained self\-contained: true
\-\-link\-images link\-images: true
\-\-html\-q\-tags html\-q\-tags: true
\-\-ascii ascii: true
\-\-reference\-links reference\-links: true
\-\-reference\-location block reference\-location: block
\-\-figure\-caption\-position=above figure\-caption\-position: above
\-\-table\-caption\-position=below table\-caption\-position: below
\-\-markdown\-headings atx markdown\-headings: atx
\-\-list\-tables list\-tables: true
\-\-top\-level\-division chapter top\-level\-division: chapter
\-\-number\-sections number\-sections: true
\-\-number\-offset=1,4 number\-offset: \(rs[1,4\(rs]
\-\-listings listings: true
\-\-list\-of\-figures list\-of\-figures: true
\-\-lof lof: true
\-\-list\-of\-tables list\-of\-tables: true
\-\-lot lot: true
\-\-incremental incremental: true
\-\-slide\-level 2 slide\-level: 2
\-\-section\-divs section\-divs: true
\-\-email\-obfuscation references email\-obfuscation: references
\-\-id\-prefix ch1 identifier\-prefix: ch1
\-\-title\-prefix MySite title\-prefix: MySite
\-\-css styles/screen.css \(rs css:
\-\-css styles/special.css \- styles/screen.css
\- styles/special.css
\-\-reference\-doc my.docx reference\-doc: my.docx
\-\-epub\-cover\-image cover.jpg epub\-cover\-image: cover.jpg
\-\-epub\-title\-page=false epub\-title\-page: false
\-\-epub\-metadata meta.xml epub\-metadata: meta.xml
\-\-epub\-embed\-font special.otf \(rs epub\-fonts:
\-\-epub\-embed\-font headline.otf \- special.otf
\- headline.otf
\-\-split\-level 2 split\-level: 2
\-\-chunk\-template=\(dq%i.html\(dq chunk\-template: \(dq%i.html\(dq
\-\-epub\-subdirectory=\(dq\(dq epub\-subdirectory: \(aq\(aq
\-\-ipynb\-output best ipynb\-output: best
\-\-pdf\-engine xelatex pdf\-engine: xelatex
\-\-pdf\-engine\-opt=\-\-shell\-escape pdf\-engine\-opts:
\- \(aq\-shell\-escape\(aq
pdf\-engine\-opt: \(aq\-shell\-escape\(aq
.EE
.RE
.SS رندر ارجاعات
.RS -14n
.IP
.EX
command line defaults file
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\-\-citeproc citeproc: true
\-\-bibliography logic.bib bibliography: logic.bib
\-\-csl ieee.csl csl: ieee.csl
\-\-citation\-abbreviations ab.json citation\-abbreviations: ab.json
\-\-natbib cite\-method: natbib
\-\-biblatex cite\-method: biblatex
.EE
.RE
.PP
مقدار \f[CR]cite\-method\f[R] میتواند \f[CR]citeproc\f[R]، \f[CR]natbib\f[R] یا \f[CR]biblatex\f[R] باشد.
این گزینه فقط بر خروجی LaTeX تأثیر میگذارد.
اگر میخواهید از citeproc برای قالببندی ارجاعات استفاده کنید، باید
`citeproc: true`
را نیز تنظیم کنید.
.PP
اگر نیاز به کنترل زمان اجرای پردازش citeproc نسبت به سایر فیلترها دارید، باید در عوض از \f[CR]citeproc\f[R] در فهرست \f[CR]filters\f[R] استفاده کنید (گزینههای خواننده را ببینید).
.SS رندر ریاضیات در HTML
.RS -14n
.IP
.EX
command line defaults file
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\-\-mathjax html\-math\-method:
method: mathjax
\-\-mathml html\-math\-method:
method: mathml
\-\-webtex html\-math\-method:
method: webtex
\-\-katex html\-math\-method:
method: katex
\-\-gladtex html\-math\-method:
method: gladtex
.EE
.RE
.PP
علاوه بر مقادیر ذکرشده در بالا، \f[CR]method\f[R] میتواند مقدار \f[CR]plain\f[R] را نیز داشته باشد.
.PP
اگر گزینهٔ خط فرمان یک آرگومان URL بپذیرد، میتوان یک فیلد \f[CR]url:\f[R] را به \f[CR]html\-math\-method:\f[R] افزود..SS "گزینههای اسکریپتهای لفاف (Options for wrapper scripts)"
.RS -14n
.IP
.EX
command line defaults file
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\-\-dump\-args dump\-args: true
\-\-ignore\-args ignore\-args: true
.EE
.RE
.SH "قالبها (TEMPLATES)"
هنگامی که گزینهٔ \f[CR]\-s/\-\-standalone\f[R] استفاده میشود، pandoc از یک
قالب برای افزودن محتوای سرایند و پانویس که برای یک سند مستقل
لازم است، استفاده میکند.
برای دیدن قالب پیشفرضی که استفاده میشود، کافی است دستور زیر را بنویسید
.IP
.EX
pandoc \-D *FORMAT*
.EE
.PP
که در آن \f[I]FORMAT\f[R] نام فرمت خروجی است.
یک قالب سفارشی را میتوان با استفاده از گزینهٔ \f[CR]\-\-template\f[R]
مشخص کرد.
همچنین میتوانید قالبهای پیشفرض سیستم را برای یک فرمت خروجی مشخص
\f[I]FORMAT\f[R] با قرار دادن یک فایل
\f[CR]templates/default.*FORMAT*\f[R] در دایرکتوری دادههای کاربر (گزینهٔ
\f[CR]\-\-data\-dir\f[R] در بالا را ببینید) بازنویسی کنید.
\f[I]استثناها:\f[R]
.IP \(bu 2
برای خروجی \f[CR]odt\f[R]، قالب \f[CR]default.opendocument\f[R] را
سفارشیسازی کنید.
.IP \(bu 2
برای خروجی \f[CR]docx\f[R]، قالب \f[CR]default.openxml\f[R] را
سفارشیسازی کنید.
.IP \(bu 2
برای خروجی \f[CR]pdf\f[R]، قالب \f[CR]default.latex\f[R] را سفارشیسازی کنید
(یا در صورت استفاده از \f[CR]\-t context\f[R]، قالب \f[CR]default.context\f[R]،
یا در صورت استفاده از \f[CR]\-t ms\f[R]، قالب \f[CR]default.ms\f[R]، یا در
صورت استفاده از \f[CR]\-t html\f[R]، قالب \f[CR]default.html\f[R]).
.IP \(bu 2
فرمت \f[CR]pptx\f[R] هیچ قالبی ندارد.
.PP
توجه داشته باشید که خروجی \f[CR]docx\f[R]، \f[CR]odt\f[R] و \f[CR]pptx\f[R]
را نیز میتوان با استفاده از \f[CR]\-\-reference\-doc\f[R] سفارشی کرد.
از یک سند مرجع برای تنظیم سبکها در سند خود استفاده کنید؛ از یک
قالب برای مدیریت درونیابی متغیرها و سفارشیسازی نحوه نمایش متادیتا،
جایگاه فهرست مطالب، متنهای کلیشهای و غیره استفاده نمایید.
.PP
قالبها حاوی \f[I]متغیرها\f[R] هستند که امکان گنجاندن اطلاعات
دلخواه را در هر نقطهای از فایل فراهم میکنند.
آنها را میتوان در خط فرمان با استفاده از گزینهٔ
\f[CR]\-V/\-\-variable\f[R] تعیین کرد.
اگر متغیری تعیین نشده باشد، pandoc به دنبال آن کلید در
متادیتای سند میگردد، که میتوان آن را با بلوکهای متادیتای YAML
یا با گزینهٔ \f[CR]\-M/\-\-metadata\f[R] مشخص کرد.
علاوه بر این، pandoc به برخی متغیرها مقادیر پیشفرض میدهد.
برای مشاهدهٔ فهرستی از متغیرهای مورد استفاده در قالبهای پیشفرض
pandoc، بخش متغیرها را در ادامه ببینید.
.PP
اگر از قالبهای سفارشی استفاده میکنید، ممکن است با تغییرات
pandoc نیاز به بازنگری آنها داشته باشید.
ما توصیه میکنیم تغییرات در قالبهای پیشفرض را دنبال کرده و
قالبهای سفارشی خود را بر همان اساس اصلاح کنید.
یک راه آسان برای انجام این کار، فورک کردن (fork) مخزن pandoc\-templates
و ادغام (merge) تغییرات پس از انتشار هر نسخه از pandoc است.
.SS "نحو قالب (Template syntax)"
.SS "توضیحات (Comments)"
هر چیزی بین توالی \f[CR]$\-\-\f[R] و انتهای خط
به عنوان توضیح در نظر گرفته شده و از خروجی حذف خواهد شد.
.SS "جداکنندهها (Delimiters)"
برای مشخص کردن متغیرها و ساختارهای کنترلی در قالب، میتوان از
\f[CR]$\f[R]\&...\f[CR]$\f[R] یا \f[CR]${\f[R]\&...\f[CR]}\f[R]
به عنوان جداکننده استفاده کرد.
این سبکها را میتوان در یک قالب به صورت ترکیبی نیز به کار برد، اما جداکنندهٔ
آغازین و پایانی در هر مورد باید تطابق داشته باشند.
پس از جداکنندهٔ آغازین میتواند یک یا چند فاصله یا تب بیاید
که نادیده گرفته خواهند شد.
پیش از جداکنندهٔ پایانی میتواند یک یا چند فاصله یا تب بیاید
که نادیده گرفته خواهند شد.
.PP
برای گنجاندن یک علامت واقعی \f[CR]$\f[R] در سند، از \f[CR]$$\f[R] استفاده کنید.
.SS "متغیرهای درونیابیشده (Interpolated variables)"
یک جایگاه برای متغیر درونیابیشده، نام یک متغیر احاطهشده توسط
جداکنندههای منطبق است.
نامهای متغیر باید با یک حرف شروع شوند و میتوانند شامل حروف،
اعداد، \f[CR]_\f[R]، \f[CR]\-\f[R] و \f[CR].\f[R] باشند.
کلمات کلیدی \f[CR]it\f[R]، \f[CR]if\f[R]، \f[CR]else\f[R]،
\f[CR]endif\f[R]، \f[CR]for\f[R]، \f[CR]sep\f[R] و \f[CR]endfor\f[R]
نباید به عنوان نام متغیر استفاده شوند.
مثالها:
.IP
.EX
$foo$
$foo.bar.baz$
$foo_bar.baz\-bim$
$ foo $
${foo}
${foo.bar.baz}
${foo_bar.baz\-bim}
${ foo }
.EE
.PP
نامهای متغیر دارای نقطه برای دستیابی به مقادیر متغیرهای
ساختاریافته به کار میروند.
بنابراین، برای مثال، \f[CR]employee.salary\f[R] مقدار فیلد
\f[CR]salary\f[R] از شیئی را برمیگرداند که مقدار فیلد
\f[CR]employee\f[R] است.
.IP \(bu 2
اگر مقدار متغیر یک مقدار ساده باشد، عیناً رندر خواهد شد.
(توجه داشته باشید که هیچ گریزدهی (escaping) انجام نمیشود؛ فرض بر این
است که برنامهٔ فراخواننده، رشتهها را متناسب با فرمت خروجی گریز میدهد.)
.IP \(bu 2
اگر مقدار یک لیست باشد، مقادیر به هم متصل خواهند شد.
.IP \(bu 2
اگر مقدار یک نگاشت (map) باشد، رشتهٔ \f[CR]true\f[R] رندر خواهد شد.
.IP \(bu 2
هر مقدار دیگری به عنوان رشتهٔ خالی رندر خواهد شد..SS "شرطها (Conditionals)"
یک عبارت شرطی با \f[CR]if(variable)\f[R] (محصور در جداکنندههای منطبق) آغاز میشود و با \f[CR]endif\f[R] (محصور در جداکنندههای منطبق) پایان مییابد.
این ساختار میتواند به صورت اختیاری شامل یک \f[CR]else\f[R] (محصور در جداکنندههای منطبق) باشد.
بخش \f[CR]if\f[R] در صورتی استفاده میشود که \f[CR]variable\f[R] مقداری درست (true) داشته باشد، در غیر این صورت بخش \f[CR]else\f[R] (در صورت وجود) به کار میرود.
مقادیر زیر به عنوان درست (true) در نظر گرفته میشوند:
.IP \(bu 2
هر نگاشت (map)
.IP \(bu 2
هر آرایه حاوی دستکم یک مقدار درست (true)
.IP \(bu 2
هر رشته غیرخالی
.IP \(bu 2
مقدار بولیِ True
.PP
توجه داشته باشید که در متادیتای YAML (و متادیتای مشخصشده در خط فرمان با استفاده از \f[CR]\-M/\-\-metadata\f[R])، مقادیر بدون نقلقولِ \f[CR]true\f[R] و \f[CR]false\f[R] به عنوان مقادیر بولی تفسیر میشوند.
اما متغیری که در خط فرمان با استفاده از \f[CR]\-V/\-\-variable\f[R] مشخص شود، همواره یک مقدار رشتهای دریافت خواهد کرد.
بنابراین شرط \f[CR]if(foo)\f[R] در صورت استفاده از \f[CR]\-V foo=false\f[R] فعال خواهد شد، اما اگر از \f[CR]\-M foo=false\f[R] استفاده کنید فعال نمیشود.
.PP
مثالها:
.IP
.EX
$if(foo)$bar$endif$
$if(foo)$
$foo$
$endif$
$if(foo)$
part one
$else$
part two
$endif$
${if(foo)}bar${endif}
${if(foo)}
${foo}
${endif}
${if(foo)}
${ foo.bar }
${else}
no foo!
${endif}
.EE
.PP
از کلیدواژه \f[CR]elseif\f[R] میتوان برای سادهسازی شرطهای تودرتوی پیچیده استفاده کرد:
.IP
.EX
$if(foo)$
XXX
$elseif(bar)$
YYY
$else$
ZZZ
$endif$
.EE
.SS "حلقههای For (For loops)"
یک حلقه for با \f[CR]for(variable)\f[R] (محصور در جداکنندههای منطبق) آغاز شده و با \f[CR]endfor\f[R] (محصور در جداکنندههای منطبق) پایان مییابد.
.IP \(bu 2
اگر \f[CR]variable\f[R] یک آرایه باشد، محتوای درون حلقه مکرراً ارزیابی میشود؛ به این صورت که \f[CR]variable\f[R] به نوبت بر روی هر مقدار از آرایه تنظیم شده و با یکدیگر الحاق (concatenate) میشوند.
.IP \(bu 2
اگر \f[CR]variable\f[R] یک نگاشت (map) باشد، محتوای درون حلقه بر روی آن نگاشت تنظیم میشود.
.IP \(bu 2
اگر مقدار متغیر مربوطه یک آرایه یا نگاشت نباشد، یک تکرار منفرد بر روی مقدار آن انجام خواهد شد.
.PP
مثالها:
.IP
.EX
$for(foo)$$foo$$sep$, $endfor$
$for(foo)$
\- $foo.last$, $foo.first$
$endfor$
${ for(foo.bar) }
\- ${ foo.bar.last }, ${ foo.bar.first }
${ endfor }
$for(mymap)$
$it.name$: $it.office$
$endfor$
.EE
.PP
میتوانید به صورت اختیاری با استفاده از \f[CR]sep\f[R] (محصور در جداکنندههای منطبق)، یک جداکننده میان مقادیر متوالی تعیین کنید.
محتوای میان \f[CR]sep\f[R] و \f[CR]endfor\f[R] همان جداکننده است.
.IP
.EX
${ for(foo) }${ foo }${ sep }, ${ endfor }
.EE
.PP
به جای استفاده از \f[CR]variable\f[R] درون حلقه، میتوان از کلیدواژه ارجاعیِ (anaphoric) خاصِ \f[CR]it\f[R] استفاده کرد.
.IP
.EX
${ for(foo.bar) }
\- ${ it.last }, ${ it.first }
${ endfor }
.EE
.SS "قالبهای جزئی (Partials)"
قالبهای جزئی یا پارشالها (زیرقالبهای ذخیرهشده در فایلهای مجزا) را میتوان با استفاده از نام پارشال به همراه \f[CR]()\f[R] در سند درج کرد؛ برای نمونه:
.IP
.EX
${ styles() }
.EE
.PP
پارشالها در پوشه حاوی قالب اصلی جستجو خواهند شد.
اگر فایل فاقد پسوند باشد، فرض میشود که پسوندی یکسان با قالب اصلی دارد.
هنگام فراخوانی پارشال، میتوان نام کامل شامل پسوند فایل را نیز به کار برد:
.IP
.EX
${ styles.html() }
.EE
.PP
(اگر یک پارشال در پوشه قالب پیدا نشود و مسیر قالب به عنوان یک مسیر نسبی داده شده باشد، در زیرپوشه \f[CR]templates\f[R] از دایرکتوری دادههای کاربر نیز جستجو خواهد شد.)
.PP
پارشالها را میتوان به صورت اختیاری با استفاده از دو نقطه (:) بر روی متغیرها اعمال کرد:
.IP
.EX
${ date:fancy() }
${ articles:bibentry() }
.EE
.PP
اگر \f[CR]articles\f[R] یک آرایه باشد، این دستور بر روی مقادیر آن پیمایش کرده و پارشال \f[CR]bibentry()\f[R] را بر روی تکتک آنها اعمال میکند.
بنابراین مثال دوم در بالا معادل است با:
.IP
.EX
${ for(articles) }
${ it:bibentry() }
${ endfor }
.EE
.PP
توجه داشته باشید که هنگام پیمایش روی پارشالها باید از کلیدواژه ارجاعی \f[CR]it\f[R] استفاده شود.
در مثالهای بالا، پارشال \f[CR]bibentry\f[R] باید به جای \f[CR]articles.title\f[R] حاوی \f[CR]it.title\f[R] (و موارد مشابه) باشد.
.PP
خطوط جدید پایانی (newlines) از پارشالهای گنجاندهشده حذف میشوند.
.PP
پارشالها میتوانند شامل پارشالهای دیگر باشند.
.PP
جداکننده میان مقادیر یک آرایه را میتوان در کروشه، بلافاصله پس از نام متغیر یا پارشال مشخص کرد:
.IP
.EX
${months[, ]}
${articles:bibentry()[; ]}
.EE
.PP
جداکننده در این حالت لفظی (literal) است و (برخلاف \f[CR]sep\f[R] در یک حلقه صریح \f[CR]for\f[R]) نمیتواند شامل متغیرهای درونیابیشده یا سایر دستورالعملهای قالب باشد..SS تودرتویی (Nesting)
برای اطمینان از اینکه محتوا بهصورت \(lqتودرتو\(rq (nested) قرار گیرد، یعنی خطوط بعدی دارای تورفتگی باشند، از دستورالعمل \f[CR]\(ha\f[R] استفاده کنید:
.IP
.EX
$item.number$ $\(ha$$item.description$ ($item.price$)
.EE
.PP
در این مثال، اگر \f[CR]item.description\f[R] دارای چند سطر باشد، همهٔ آنها بهگونهای تورفتگی پیدا میکنند که با سطر اول تراز شوند:
.IP
.EX
00123 A fine bottle of 18\-year old
Oban whiskey. ($148)
.EE
.PP
برای تودرتو کردن چند سطر در یک سطح یکسان، آنها را با دستورالعمل \f[CR]\(ha\f[R] در الگو تراز کنید.
برای نمونه:
.IP
.EX
$item.number$ $\(ha$$item.description$ ($item.price$)
(Available til $item.sellby$.)
.EE
.PP
خروجی زیر را تولید خواهد کرد:
.IP
.EX
00123 A fine bottle of 18\-year old
Oban whiskey. ($148)
(Available til March 30, 2020.)
.EE
.PP
اگر یک متغیر بهتنهایی در یک سطر بیاید، پیش از آن فاصلهٔ خالی (whitespace) باشد و در همان سطر متن یا دستورالعمل دیگری به دنبال آن نیاید، و مقدار متغیر شامل چند سطر باشد، بهطور خودکار تودرتو خواهد شد.
.SS فاصلههای شکستپذیر (Breakable spaces)
بهطور معمول، فاصلهها در خود الگو (برخلاف مقادیر متغیرهای جایگذاریشده) شکستپذیر نیستند، اما میتوان با استفاده از کلمهٔ کلیدی \f[CR]\(ti\f[R] (که با یک \f[CR]\(ti\f[R] دیگر پایان مییابد) آنها را در بخشی از الگو شکستپذیر کرد.
.IP
.EX
$\(ti$This long line may break if the document is rendered
with a short line length.$\(ti$
.EE
.SS لولهها (Pipes)
یک لوله (pipe) مقدار یک متغیر یا پارهالگو (partial) را تبدیل میکند.
لولهها با استفاده از یک ممیز (\f[CR]/\f[R]) میان نام متغیر (یا partial) و نام لوله مشخص میشوند.
مثال:
.IP
.EX
$for(name)$
$name/uppercase$
$endfor$
$for(metadata/pairs)$
\- $it.key$: $it.value$
$endfor$
$employee:name()/uppercase$
.EE
.PP
لولهها میتوانند زنجیرهای شوند:
.IP
.EX
$for(employees/pairs)$
$it.key/alpha/uppercase$. $it.name$
$endfor$
.EE
.PP
برخی از لولهها پارامتر میپذیرند:
.IP
.EX
|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-|
$for(employee)$
$it.name.first/uppercase/left 20 \(dq| \(dq$$it.name.salary/right 10 \(dq | \(dq \(dq |\(dq$
$endfor$
|\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-|
.EE
.PP
در حال حاضر لولههای زیر از پیش تعریف شدهاند:
.IP \(bu 2
\f[CR]pairs\f[R]: یک نگاشت (map) یا آرایه را به آرایهای از نگاشتها تبدیل میکند که هر کدام دارای فیلدهای \f[CR]key\f[R] و \f[CR]value\f[R] هستند.
اگر مقدار اولیه یک آرایه باشد، \f[CR]key\f[R] شاخص آرایه خواهد بود که از 1 آغاز میشود.
.IP \(bu 2
\f[CR]uppercase\f[R]: متن را به حروف بزرگ تبدیل میکند.
.IP \(bu 2
\f[CR]lowercase\f[R]: متن را به حروف کوچک تبدیل میکند.
.IP \(bu 2
\f[CR]length\f[R]: طول مقدار را برمیگرداند: شمار نویسهها برای یک مقدار متنی، شمار عناصر برای یک نگاشت یا آرایه.
.IP \(bu 2
\f[CR]reverse\f[R]: یک مقدار متنی یا آرایه را معکوس میکند، و بر مقادیر دیگر اثری ندارد.
.IP \(bu 2
\f[CR]first\f[R]: در صورت اعمال روی یک آرایهٔ غیرخالی، نخستین مقدار آرایه را برمیگرداند؛ در غیر این صورت مقدار اصلی را برمیگرداند.
.IP \(bu 2
\f[CR]last\f[R]: در صورت اعمال روی یک آرایهٔ غیرخالی، آخرین مقدار آرایه را برمیگرداند؛ در غیر این صورت مقدار اصلی را برمیگرداند.
.IP \(bu 2
\f[CR]rest\f[R]: در صورت اعمال روی یک آرایهٔ غیرخالی، تمام مقادیر آرایه بهجز نخستین مقدار را برمیگرداند؛ در غیر این صورت مقدار اصلی را برمیگرداند.
.IP \(bu 2
\f[CR]allbutlast\f[R]: در صورت اعمال روی یک آرایهٔ غیرخالی، تمام مقادیر آرایه بهجز آخرین مقدار را برمیگرداند؛ در غیر این صورت مقدار اصلی را برمیگرداند.
.IP \(bu 2
\f[CR]chomp\f[R]: خطوط جدید پایانی (و فاصلههای شکستپذیر) را حذف میکند.
.IP \(bu 2
\f[CR]nowrap\f[R]: شکستن خطوط روی فاصلههای شکستپذیر را غیرفعال میکند.
.IP \(bu 2
\f[CR]alpha\f[R]: مقادیر متنی را که میتوان بهصورت یک عدد صحیح خواند، به نویسههای الفبایی کوچک \f[CR]a..z\f[R] (بهپیمانهٔ ۲۶) تبدیل میکند.
این قابلیت میتواند برای ایجاد شمارش الفبایی از شاخصهای آرایه استفاده شود.
برای دریافت حروف بزرگ، آن را با \f[CR]uppercase\f[R] زنجیر کنید.
.IP \(bu 2
\f[CR]roman\f[R]: مقادیر متنی را که میتوان بهصورت یک عدد صحیح خواند، به اعداد رومی کوچک تبدیل میکند.
این قابلیت میتواند برای ایجاد شمارش حرفی از شاخصهای آرایه استفاده شود.
برای دریافت اعداد رومی بزرگ، آن را با \f[CR]uppercase\f[R] زنجیر کنید.
.IP \(bu 2
\f[CR]left n \(dqleftborder\(dq \(dqrightborder\(dq\f[R]: یک مقدار متنی را در بلوکی به پهنای \f[CR]n\f[R]، تراز شده به چپ، همراه با حاشیهٔ چپ و راست اختیاری نمایش میدهد.
بر مقادیر دیگر اثری ندارد.
این قابلیت میتواند برای تراز کردن محتوا در جدولها استفاده شود.
پهنهها اعداد صحیح مثبتی هستند که نشاندهندهٔ شمار نویسهها میباشند.
حاشیهها رشتههایی داخل دابلکوتیشن هستند؛ نویسههای لفظی \f[CR]\(dq\f[R] و \f[CR]\(rs\f[R] باید با بکاسلش گریز داده شوند.
.IP \(bu 2
\f[CR]right n \(dqleftborder\(dq \(dqrightborder\(dq\f[R]: یک مقدار متنی را در بلوکی به پهنای \f[CR]n\f[R]، تراز شده به راست نمایش میدهد، و بر مقادیر دیگر اثری ندارد.
.IP \(bu 2
\f[CR]center n \(dqleftborder\(dq \(dqrightborder\(dq\f[R]: یک مقدار متنی را در بلوکی به پهنای \f[CR]n\f[R]، تراز شده در وسط نمایش میدهد، و بر مقادیر دیگر اثری ندارد..SS "متغیرها (Variables)"
.SS "متغیرهای فراداده (Metadata variables)"
.TP
\f[CR]title\f[R]، \f[CR]author\f[R]، \f[CR]date\f[R]
امکان شناسایی جنبههای اصلی سند را فراهم میکنند.
از طریق LaTeX و ConTeXt در فرادادههای PDF گنجانده میشوند.
این متغیرها را میتوان از طریق بلوک عنوان pandoc (که اجازه تعیین چند نویسنده را میدهد) یا از طریق یک بلوک فراداده YAML تنظیم کرد:
.RS
.IP
.EX
\-\-\-
author:
\- Aristotle
\- Peter Abelard
\&...
.EE
توجه داشته باشید که اگر فقط میخواهید فرادادههای PDF یا HTML را بدون درج بلوک عنوان در خود سند تنظیم کنید، میتوانید متغیرهای
\f[CR]title\-meta\f[R]، \f[CR]author\-meta\f[R] و
\f[CR]date\-meta\f[R] را تعیین کنید.
(بهطور پیشفرض این مقادیر بهصورت خودکار بر اساس \f[CR]title\f[R]،
\f[CR]author\f[R] و \f[CR]date\f[R] تنظیم میشوند.)
عنوان صفحه در HTML توسط \f[CR]pagetitle\f[R] مشخص میشود که بهطور پیشفرض برابر با
\f[CR]title\f[R] است.
.RE
.TP
\f[CR]subtitle\f[R]
زیرعنوان سند، گنجاندهشده در اسناد HTML، EPUB، LaTeX، ConTeXt و docx.
.TP
\f[CR]abstract\f[R]
چکیده سند، گنجاندهشده در اسناد HTML، LaTeX، ConTeXt، AsciiDoc و docx.
.TP
\f[CR]abstract\-title\f[R]
عنوان چکیده، در حال حاضر تنها در HTML، EPUB، docx و Typst استفاده میشود.
این متغیر بسته به \f[CR]lang\f[R] بهطور خودکار روی یک مقدار بومیسازیشده تنظیم میشود، اما میتوان آن را بهصورت دستی نیز بازنویسی کرد.
.TP
\f[CR]keywords\f[R]
فهرستی از کلیدواژهها برای گنجاندن در فرادادههای HTML، PDF، ODT، pptx، docx و
AsciiDoc؛ شیوه تکرار همانند \f[CR]author\f[R] در بالا است.
.TP
\f[CR]subject\f[R]
موضوع سند، گنجاندهشده در فرادادههای ODT، PDF، docx، EPUB و pptx.
.TP
\f[CR]description\f[R]
توضیحات سند، گنجاندهشده در فرادادههای ODT، docx و pptx.
برخی از برنامهها این مورد را بهعنوان فراداده \f[CR]Comments\f[R] نمایش میدهند.
.TP
\f[CR]category\f[R]
دستهبندی سند، گنجاندهشده در فرادادههای docx و pptx.
.PP
علاوه بر این، هر فراداده رشتهای در سطح ریشه که در فرادادههای ODT، docx
یا pptx گنجانده نشده باشد، بهعنوان یک \f[I]ویژگی سفارشی (custom property)\f[R] اضافه میشود.
برای نمونه، بلوک فراداده YAML زیر:
.IP
.EX
\-\-\-
title: \(aqThis is the title\(aq
subtitle: \(dqThis is the subtitle\(dq
author:
\- Author One
\- Author Two
description: |
This is a long
description.
It consists of two paragraphs
\&...
.EE
.PP
هنگام تبدیل به docx، ODT یا pptx، مقادیر \f[CR]title\f[R]، \f[CR]author\f[R] و
\f[CR]description\f[R] را بهعنوان مشخصات استاندارد سند و
\f[CR]subtitle\f[R] را بهعنوان یک ویژگی سفارشی شامل خواهد شد.
.SS "متغیرهای زبان (Language variables)"
.TP
\f[CR]lang\f[R]
زبان اصلی سند را با استفاده از برچسبهای زبان IETF (پیرو استاندارد BCP 47) مانند \f[CR]en\f[R] یا
\f[CR]en\-GB\f[R] مشخص میکند.
ابزار Language subtag lookup میتواند برای جستجو یا اعتبارسنجی این برچسبها استفاده شود.
این متغیر بر بیشتر قالبها تأثیر میگذارد و خطفاصلهگذاری (hyphenation) را در خروجی PDF هنگام استفاده از LaTeX (از طریق \f[CR]babel\f[R] و \f[CR]polyglossia\f[R]) یا
ConTeXt کنترل میکند.
.RS
برای تغییر زبان، از Divها و Spanهای بومی pandoc با مشخصه \f[CR]lang\f[R] استفاده کنید:
.IP
.EX
\-\-\-
lang: en\-GB
\&...
Text in the main document language (British English).
::: {lang=fr\-CA}
> Cette citation est écrite en français canadien.
:::
More text in English. [\(aqZitat auf Deutsch.\(aq]{lang=de}
.EE
.RE
.TP
\f[CR]dir\f[R]
جهت نوشتار پایه، \f[CR]rtl\f[R] (راستبهچپ) یا
\f[CR]ltr\f[R] (چپبهراست).
.RS
برای اسناد دوجهته، میتوان از \f[CR]span\f[R]ها و
\f[CR]div\f[R]های بومی pandoc همراه با مشخصه \f[CR]dir\f[R] (با مقدار \f[CR]rtl\f[R]
یا \f[CR]ltr\f[R]) برای بازنویسی جهت پایه در برخی قالبهای خروجی استفاده کرد.
اگر رندرکننده نهایی (مانند مرورگر، هنگام تولید HTML) از الگوریتم دوجهته یونیکد (Unicode Bidirectional Algorithm) پشتیبانی کند، این کار ممکن است همیشه ضروری نباشد.
هنگام استفاده از LaTeX برای اسناد دوجهته، تنها موتور
\f[CR]xelatex\f[R] بهطور کامل پشتیبانی میشود (از
\f[CR]\-\-pdf\-engine=xelatex\f[R] استفاده کنید).
.RE.SS متغیرها برای HTML
.TP
\f[CR]document\-css\f[R]
گنجاندن بخش عمدهٔ CSS موجود در قالب جزئی (partial) \f[CR]styles.html\f[R]
را فعال میکند (میتوانید با دستور
\f[CR]pandoc \-\-print\-default\-data\-file=templates/styles.html\f[R] آن را مشاهده کنید).
مگر اینکه از \f[CR]\-\-css\f[R] استفاده کنید، این متغیر بهطور پیشفرض روی
\f[CR]true\f[R] تنظیم شده است.
میتوانید آن را مثلاً با \f[CR]pandoc \-M document\-css=false\f[R] غیرفعال کنید.
.TP
\f[CR]mainfont\f[R]
ویژگی \f[CR]font\-family\f[R] در CSS را برای عنصر \f[CR]html\f[R]
تعیین میکند.
.TP
\f[CR]fontsize\f[R]
ویژگی پایهٔ \f[CR]font\-size\f[R] در CSS را تعیین میکند، که معمولاً آن را مثلاً روی
\f[CR]20px\f[R] تنظیم میکنید، اما \f[CR]pt\f[R] را نیز میپذیرد (در بیشتر مرورگرها 12pt = 16px است).
.TP
\f[CR]fontcolor\f[R]
ویژگی \f[CR]color\f[R] در CSS را برای عنصر \f[CR]html\f[R] تعیین میکند.
.TP
\f[CR]linkcolor\f[R]
ویژگی \f[CR]color\f[R] در CSS را برای همهٔ پیوندها تعیین میکند.
.TP
\f[CR]monofont\f[R]
ویژگی \f[CR]font\-family\f[R] در CSS را برای عنصرهای \f[CR]code\f[R]
تعیین میکند.
.TP
\f[CR]monobackgroundcolor\f[R]
ویژگی \f[CR]background\-color\f[R] در CSS را برای عنصرهای \f[CR]code\f[R]
تعیین کرده و فاصلهٔ درونی (padding) اضافی میافزاید.
.TP
\f[CR]linestretch\f[R]
ویژگی \f[CR]line\-height\f[R] در CSS را برای عنصر \f[CR]html\f[R]
تعیین میکند، که ترجیح داده میشود بدون واحد باشد.
.TP
\f[CR]maxwidth\f[R]
ویژگی \f[CR]max\-width\f[R] در CSS را تعیین میکند (پیشفرض 36em است).
.TP
\f[CR]backgroundcolor\f[R]
ویژگی \f[CR]background\-color\f[R] در CSS را برای عنصر
\f[CR]html\f[R] تعیین میکند.
.TP
\f[CR]margin\-left\f[R], \f[CR]margin\-right\f[R], \f[CR]margin\-top\f[R], \f[CR]margin\-bottom\f[R]
ویژگیهای متناظر \f[CR]padding\f[R] در CSS را برای عنصر
\f[CR]body\f[R] تعیین میکنند.
.PP
برای بازنویسی یا گسترش برخی از CSSها فقط برای یک سند، بهعنوان مثال این مورد را درج کنید:
.IP
.EX
\-\-\-
header\-includes: |
\-\-\-
.EE
.SS متغیرها برای ریاضیات در HTML
.TP
\f[CR]classoption\f[R]
هنگام استفاده از \f[CR]\-\-katex\f[R]، میتوانید با استفاده از فرادادههای YAML یا با \f[CR]\-M classoption=fleqn\f[R]، معادلات ریاضی نمایشی (display math) را چپچین کنید.
.SS متغیرها برای اسلایدهای HTML
این متغیرها بر خروجی HTML هنگام تولید ارائهها (slide shows) با pandoc تأثیر میگذارند.
.TP
\f[CR]institute\f[R]
وابستگیهای سازمانی نویسنده: در صورت وجود چند نویسنده میتواند یک فهرست باشد
.TP
\f[CR]revealjs\-url\f[R]
نشانی وب (URL) پایه برای اسناد reveal.js (پیشفرض
\f[CR]https://unpkg.com/reveal.js\(at\(ha5\f[R] است)
.TP
\f[CR]s5\-url\f[R]
نشانی وب (URL) پایه برای اسناد S5 (پیشفرض \f[CR]s5/default\f[R] است)
.TP
\f[CR]slidy\-url\f[R]
نشانی وب (URL) پایه برای اسناد Slidy (پیشفرض
\f[CR]https://www.w3.org/Talks/Tools/Slidy2\f[R] است)
.TP
\f[CR]slideous\-url\f[R]
نشانی وب (URL) پایه برای اسناد Slideous (پیشفرض \f[CR]slideous\f[R] است)
.TP
\f[CR]title\-slide\-attributes\f[R]
مشخصههای اضافی برای اسلاید عنوان در ارائههای reveal.js.
برای یک نمونه، بخش background در reveal.js، beamer و pptx را ببینید.
.TP
\f[CR]highlightjs\-theme\f[R]
پوستهٔ highlight.js برای برجستهسازی کد هنگام استفاده از
\f[CR]\-\-syntax\-highlighting=idiomatic\f[R] با reveal.js (پیشفرض
\f[CR]monokai\f[R] است).
برای مشاهدهٔ پوستههای موجود، صفحهٔ پیشنمایش highlight.js را ببینید.
.PP
تمام گزینههای پیکربندی reveal.js بهعنوان متغیر در دسترس هستند.
برای خاموش کردن پرچمهای بولی (boolean) که پیشفرض آنها در reveal.js مقدار true است، از
\f[CR]0\f[R] استفاده کنید.
.SS متغیرها برای اسلایدهای Beamer
این متغیرها ظاهر اسلایدهای PDF با استفاده از
\f[CR]beamer\f[R] را تغییر میدهند.
.TP
\f[CR]aspectratio\f[R]
نسبت تصویر اسلاید (\f[CR]43\f[R] برای 4:3 [پیشفرض]، \f[CR]169\f[R] برای
16:9، \f[CR]1610\f[R] برای 16:10، \f[CR]149\f[R] برای 14:9، \f[CR]141\f[R]
برای 1.41:1، \f[CR]54\f[R] برای 5:4، \f[CR]32\f[R] برای 3:2)
.TP
\f[CR]beameroption\f[R]
افزودن گزینهٔ اضافی beamer با \f[CR]\(rssetbeameroption{}\f[R]
.TP
\f[CR]institute\f[R]
وابستگیهای سازمانی نویسنده: در صورت وجود چند نویسنده میتواند یک فهرست باشد
.TP
\f[CR]logo\f[R]
تصویر نشانواره (لوگو) برای اسلایدها
.TP
\f[CR]logooptions\f[R]
گزینههای تصویر نشانواره (مانند \f[CR]width\f[R]، \f[CR]height\f[R])
.TP
\f[CR]navigation\f[R]
نمادهای ناوبری را کنترل میکند (پیشفرض برای بدون نمادهای
ناوبری \f[CR]empty\f[R] است؛ مقادیر معتبر دیگر عبارتند از \f[CR]frame\f[R]،
\f[CR]vertical\f[R] و \f[CR]horizontal\f[R])
.TP
\f[CR]section\-titles\f[R]
\(lqصفحههای عنوان\(rq را برای بخشهای جدید فعال میکند (پیشفرض true است)
.TP
\f[CR]theme\f[R], \f[CR]colortheme\f[R], \f[CR]fonttheme\f[R], \f[CR]innertheme\f[R], \f[CR]outertheme\f[R]
پوستههای beamer
.TP
\f[CR]themeoptions\f[R], \f[CR]colorthemeoptions\f[R], \f[CR]fontthemeoptions\f[R], \f[CR]innerthemeoptions\f[R], \f[CR]outerthemeoptions\f[R]
گزینههای پوستههای LaTeX beamer (فهرستها)
.TP
\f[CR]titlegraphic\f[R]
تصویر برای اسلاید عنوان: میتواند یک فهرست باشد
.TP
\f[CR]titlegraphicoptions\f[R]
گزینههای تصویر اسلاید عنوان (مانند \f[CR]width\f[R]،
\f[CR]height\f[R])
.TP
\f[CR]shorttitle\f[R], \f[CR]shortsubtitle\f[R], \f[CR]shortauthor\f[R], \f[CR]shortinstitute\f[R], \f[CR]shortdate\f[R]
برخی از پوستههای beamer از نسخههای کوتاه عنوان، زیرعنوان، نویسنده،
وابستگی سازمانی، و تاریخ استفاده میکنند.SS متغیرها برای PowerPoint
این متغیرها جنبههای بصری یک نمایش اسلاید را کنترل میکنند که کنترل آنها از طریق الگوها بهسادگی ممکن نیست.
.TP
\f[CR]monofont\f[R]
قلم مورد استفاده برای کدها.
.SS متغیرها برای LaTeX
پاندوک هنگام ایجاد یک PDF با موتور LaTeX از این متغیرها استفاده میکند.
.SS صفحهبندی
.TP
\f[CR]block\-headings\f[R]
دستورات \f[CR]\(rsparagraph\f[R] و \f[CR]\(rssubparagraph\f[R] (سرتیترهای سطح چهارم و پنجم، یا در کلاسهای کتاب سطح پنجم و ششم) را بهجای درونخطی (run\-in)، مستقل (free\-standing) میسازد؛ برای تمایز آنها از \f[CR]\(rssubsubsection\f[R] (سرتیترهای سطح سوم یا چهارم) به قالببندی بیشتری نیاز است.
بهجای استفاده از این گزینه، KOMA\-Script میتواند سرتیترها را با گستردگی بیشتری تنظیم کند:
.RS
.IP
.EX
\-\-\-
documentclass: scrartcl
header\-includes: |
\(rsRedeclareSectionCommand[
beforeskip=\-10pt plus \-2pt minus \-1pt,
afterskip=1sp plus \-1sp minus 1sp,
font=\(rsnormalfont\(rsitshape]{paragraph}
\(rsRedeclareSectionCommand[
beforeskip=\-10pt plus \-2pt minus \-1pt,
afterskip=1sp plus \-1sp minus 1sp,
font=\(rsnormalfont\(rsscshape,
indent=0pt]{subparagraph}
\&...
.EE
.RE
.TP
\f[CR]classoption\f[R]
گزینهای برای کلاس سند، مانند \f[CR]oneside\f[R]؛ برای چند گزینه تکرار کنید:
.RS
.IP
.EX
\-\-\-
classoption:
\- twocolumn
\- landscape
\&...
.EE
.RE
.TP
\f[CR]documentclass\f[R]
کلاس سند: معمولاً یکی از کلاسهای استاندارد، شامل \f[CR]article\f[R]، \f[CR]book\f[R] و \f[CR]report\f[R]؛ معادلهای آنها در KOMA\-Script یعنی \f[CR]scrartcl\f[R]، \f[CR]scrbook\f[R] و \f[CR]scrreprt\f[R] که بهطور پیشفرض حاشیههای کوچکتری دارند؛ یا \f[CR]memoir\f[R]
.TP
\f[CR]geometry\f[R]
گزینهای برای بسته \f[CR]geometry\f[R]، مانند \f[CR]margin=1in\f[R]؛ برای چند گزینه تکرار کنید:
.RS
.IP
.EX
\-\-\-
geometry:
\- top=30mm
\- left=20mm
\- heightrounded
\&...
.EE
.RE
.TP
\f[CR]shorthands\f[R]
فعالسازی کوتاهنوشتهای ویژهی زبان هنگام بارگذاری \f[CR]babel\f[R].
(بهطور پیشفرض، pandoc هنگام بارگذاری \f[CR]babel\f[R] گزینه \f[CR]shorthands=off\f[R] را قرار میدهد که کوتاهنوشتهای ویژهی زبان را غیرفعال میکند.)
.TP
\f[CR]hyperrefoptions\f[R]
گزینهای برای بسته \f[CR]hyperref\f[R]، مانند \f[CR]linktoc=all\f[R]؛ برای چند گزینه تکرار کنید:
.RS
.IP
.EX
\-\-\-
hyperrefoptions:
\- linktoc=all
\- pdfwindowui
\- pdfpagemode=FullScreen
\&...
.EE
.RE
.TP
\f[CR]indent\f[R]
در صورت تعیین true، pandoc از تنظیمات کلاس سند برای تورفتگی استفاده خواهد کرد (در غیر این صورت، الگوی پیشفرض LaTeX تورفتگی را حذف کرده و بین پاراگرافها فاصله ایجاد میکند).
.TP
\f[CR]linestretch\f[R]
تنظیم فاصله بین خطوط با استفاده از بسته \f[CR]setspace\f[R]، مانند \f[CR]1.25\f[R]، \f[CR]1.5\f[R]
.TP
\f[CR]margin\-left\f[R]، \f[CR]margin\-right\f[R]، \f[CR]margin\-top\f[R]، \f[CR]margin\-bottom\f[R]
تنظیم حاشیهها در صورتی که از \f[CR]geometry\f[R] استفاده نشده باشد (در غیر این صورت \f[CR]geometry\f[R] بر این متغیرها اولویت خواهد داشت).
.TP
\f[CR]pagestyle\f[R]
کنترل \f[CR]\(rspagestyle{}\f[R]: کلاس پیشفرض article از مقادیر \f[CR]plain\f[R] (پیشفرض)، \f[CR]empty\f[R] (بدون سرصفحه یا شماره صفحه) و \f[CR]headings\f[R] (عنوان بخشها در سرصفحه) پشتیبانی میکند.
.TP
\f[CR]papersize\f[R]
اندازه کاغذ، مانند \f[CR]letter\f[R]، \f[CR]a4\f[R]
.TP
\f[CR]secnumdepth\f[R]
عمق شمارهگذاری بخشها (همراه با گزینه \f[CR]\-\-number\-sections\f[R] یا متغیر \f[CR]numbersections\f[R])
.TP
\f[CR]beamerarticle\f[R]
تولید یک مقاله (article) از اسلایدهای Beamer.
نکته: در صورت تنظیم این متغیر، باید نویسنده beamer را مشخص کنید اما از الگوی پیشفرض \f[I]LaTeX\f[R] استفاده نمایید: برای نمونه،
\f[CR]pandoc \-Vbeamerarticle \-t beamer \-\-template default.latex\f[R].
.TP
\f[CR]handout\f[R]
تولید نسخه جزوه (handout) از اسلایدهای Beamer (با تجمیع لایهها در اسلایدهای تکی).
.TP
\f[CR]csquotes\f[R]
بارگذاری بسته \f[CR]csquotes\f[R] و استفاده از \f[CR]\(rsenquote\f[R] یا \f[CR]\(rsenquote*\f[R] برای متنهای داخل نقلقول.
.TP
\f[CR]csquotesoptions\f[R]
گزینههای مورد استفاده برای بسته \f[CR]csquotes\f[R] (برای گزینههای چندگانه تکرار شود).
.TP
\f[CR]babeloptions\f[R]
گزینههایی که به بسته babel ارسال میشوند (برای گزینههای چندگانه قابل تکرار است).
اگر زبان اصلی یک زبان اروپایی با خط لاتین یا سیریلیک، یا ویتنامی نباشد، مقدار پیشفرض آن \f[CR]provide=*\f[R] خواهد بود.
بیشتر کاربران نیازی به تغییر تنظیمات پیشفرض نخواهند داشت..SS "قلمها (Fonts)"
.TP
\f[CR]fontenc\f[R]
امکان تعیین رمزگذاری قلم را از طریق بستهی \f[CR]fontenc\f[R]
(با \f[CR]pdflatex\f[R]) فراهم میکند؛ مقدار پیشفرض \f[CR]T1\f[R] است (راهنمای
رمزگذاریهای قلم LaTeX را ببینید).
.TP
\f[CR]fontfamily\f[R]
بستهی قلم برای استفاده با \f[CR]pdflatex\f[R]: مجموعهی TeX Live شامل
گزینههای متعددی است که در LaTeX Font Catalogue مستند شدهاند.
پیشفرض Latin Modern است.
.TP
\f[CR]fontfamilyoptions\f[R]
گزینههایی برای بستهای که به عنوان \f[CR]fontfamily\f[R] استفاده شده است؛ برای چندین گزینه
تکرار کنید.
برای نمونه، جهت استفاده از قلم Libertine با ارقام کوچک متناسب (old\-style)
از طریق بستهی \f[CR]libertinus\f[R]:
.RS
.IP
.EX
\-\-\-
fontfamily: libertinus
fontfamilyoptions:
\- osf
\- p
\&...
.EE
.RE
.TP
\f[CR]fontsize\f[R]
اندازهی قلم برای متن اصلی (بدنه).
کلاسهای استاندارد اندازههای 10pt، 11pt و 12pt را مجاز میدانند.
برای استفاده از اندازهای دیگر، \f[CR]documentclass\f[R] را روی یکی از
کلاسهای KOMA\-Script مانند \f[CR]scrartcl\f[R] یا \f[CR]scrbook\f[R] تنظیم کنید.
.TP
\f[CR]mainfont\f[R], \f[CR]sansfont\f[R], \f[CR]monofont\f[R], \f[CR]mathfont\f[R], \f[CR]CJKmainfont\f[R], \f[CR]CJKsansfont\f[R], \f[CR]CJKmonofont\f[R]
خانوادههای قلم برای استفاده با \f[CR]xelatex\f[R] یا \f[CR]lualatex\f[R]:
با استفاده از بستهی \f[CR]fontspec\f[R] نام هر قلم سیستمی را میپذیرند.
در صورت استفاده از \f[CR]xelatex\f[R]، گزینهی \f[CR]CJKmainfont\f[R] از بستهی \f[CR]xecjk\f[R]،
یا اگر از \f[CR]lualatex\f[R] استفاده شود، از بستهی \f[CR]luatexja\f[R] بهره میبرد.
.TP
\f[CR]mainfontoptions\f[R], \f[CR]sansfontoptions\f[R], \f[CR]monofontoptions\f[R], \f[CR]mathfontoptions\f[R], \f[CR]CJKoptions\f[R], \f[CR]luatexjapresetoptions\f[R]
گزینههایی برای استفاده به همراه \f[CR]mainfont\f[R]، \f[CR]sansfont\f[R]،
\f[CR]monofont\f[R]، \f[CR]mathfont\f[R] و \f[CR]CJKmainfont\f[R] در
\f[CR]xelatex\f[R] و \f[CR]lualatex\f[R].
امکان استفاده از هر انتخابی که از طریق \f[CR]fontspec\f[R] در دسترس است را فراهم میکند؛ برای
چندین گزینه تکرار کنید.
برای نمونه، جهت استفاده از نسخهی TeX Gyre قلم Palatino با ارقام کوچک:
.RS
.IP
.EX
\-\-\-
mainfont: TeX Gyre Pagella
mainfontoptions:
\- Numbers=Lowercase
\- Numbers=Proportional
\&...
.EE
.RE
.TP
\f[CR]mainfontfallback\f[R], \f[CR]sansfontfallback\f[R], \f[CR]monofontfallback\f[R]
قلمهایی که اگر گلیفی به ترتیب در \f[CR]mainfont\f[R]،
\f[CR]sansfont\f[R] یا \f[CR]monofont\f[R] یافت نشد، امتحان میشوند.
اینها بهصورت فهرست هستند.
نام قلم باید با یک دونقطه و بهصورت اختیاری با مجموعهای از
گزینهها همراه باشد، برای نمونه:
.RS
.IP
.EX
\-\-\-
mainfontfallback:
\- \(dqFreeSans:\(dq
\- \(dqNotoColorEmoji:mode=harf\(dq
\&...
.EE
قلمهای جایگزین در حال حاضر تنها با \f[CR]lualatex\f[R] کار میکنند.
.RE
.TP
\f[CR]babelfonts\f[R]
نگاشتی از نام زبانهای Babel (مانند \f[CR]chinese\f[R]) به قلمی که باید
برای آن زبان استفاده شود:
.RS
.IP
.EX
\-\-\-
babelfonts:
chinese\-hant: \(dqNoto Serif CJK TC\(dq
russian: \(dqNoto Serif\(dq
\&...
.EE
.RE
.TP
\f[CR]microtypeoptions\f[R]
گزینههایی برای ارسال به بستهی microtype
.SS "پیوندها (Links)"
.TP
\f[CR]colorlinks\f[R]
افزودن رنگ به متن پیوند؛ در صورتی که هر یک از
\f[CR]linkcolor\f[R]، \f[CR]filecolor\f[R]، \f[CR]citecolor\f[R]،
\f[CR]urlcolor\f[R] یا \f[CR]toccolor\f[R] تنظیم شده باشند، بهطور خودکار فعال میشود.
.TP
\f[CR]boxlinks\f[R]
افزودن کادر قابل مشاهده دور پیوندها (در صورت تنظیم بودن \f[CR]colorlinks\f[R]
هیچ تأثیری ندارد)
.TP
\f[CR]linkcolor\f[R], \f[CR]filecolor\f[R], \f[CR]citecolor\f[R], \f[CR]urlcolor\f[R], \f[CR]toccolor\f[R]
به ترتیب رنگ برای پیوندهای داخلی، پیوندهای خارجی، پیوندهای ارجاع، URLهای پیوندشده
و پیوندهای درون فهرست مطالب: از گزینههای مجاز در \f[CR]xcolor\f[R]، از جمله فهرستهای
\f[CR]dvipsnames\f[R]، \f[CR]svgnames\f[R] و \f[CR]x11names\f[R] استفاده میکند.
.TP
\f[CR]links\-as\-notes\f[R]
باعث میشود پیوندها بهصورت پاورقی چاپ شوند
.TP
\f[CR]urlstyle\f[R]
سبک نمایش برای URLها (مانند \f[CR]tt\f[R]، \f[CR]rm\f[R]، \f[CR]sf\f[R] و
حالت پیشفرض، \f[CR]same\f[R])
.SS "بخش آغازین (Front matter)"
.TP
\f[CR]lof\f[R], \f[CR]lot\f[R]
گنجاندن فهرست شکلها، فهرست جدولها (همچنین با استفاده از
\f[CR]\-\-lof/\-\-list\-of\-figures\f[R] و
\f[CR]\-\-lot/\-\-list\-of\-tables\f[R] نیز قابل تنظیم است)
.TP
\f[CR]thanks\f[R]
محتوای پاورقی قدردانی و سپاسگزاری پس از عنوان سند
.TP
\f[CR]toc\f[R]
گنجاندن فهرست مطالب (همچنین با استفاده از
\f[CR]\-\-toc/\-\-table\-of\-contents\f[R] نیز قابل تنظیم است)
.TP
\f[CR]toc\-depth\f[R]
سطح بخشهایی که باید در فهرست مطالب گنجانده شوند.SS کتابنامههای BibLaTeX
این متغیرها هنگام استفاده از BibLaTeX برای رندر ارجاعات کاربرد دارند.
.TP
\f[CR]biblatexoptions\f[R]
فهرست گزینهها برای biblatex
.TP
\f[CR]biblio\-style\f[R]
سبک کتابنامه، هنگام استفاده همراه با \f[CR]\-\-natbib\f[R] و
\f[CR]\-\-biblatex\f[R]
.TP
\f[CR]biblio\-title\f[R]
عنوان کتابنامه، هنگام استفاده همراه با \f[CR]\-\-natbib\f[R] و
\f[CR]\-\-biblatex\f[R]
.TP
\f[CR]bibliography\f[R]
کتابنامه مورد استفاده برای برطرفسازی ارجاعات
.TP
\f[CR]natbiboptions\f[R]
فهرست گزینهها برای natbib
.SS سایر
.TP
\f[CR]pdf\-trailer\-id\f[R]
شناسه trailer در PDF؛ در صورت تنظیم باید دو رشته بایتی PDF باشند، که به طور معمول
هر یک ۱۶ بایت دارند.
برای مثال:
\f[CR]<00112233445566778899aabbccddeeff> <00112233445566778899aabbccddeeff>\f[R].
.RS
بخش ساختهای بازتولیدپذیر را ببینید.
.RE
.TP
\f[CR]pdfstandard\f[R]
استاندارد(های) PDF برای سند، به عنوان مثال \f[CR]ua\-2\f[R]،
\f[CR]a\-4f\f[R].
از انواع PDF/A، PDF/X و PDF/UA پشتیبانی میکند.
نیازمند LuaLaTeX و LaTeX نسخه 2023+ است.
برای چندین استاندارد تکرار کنید:
.RS
.IP
.EX
\-\-\-
pdfstandard:
\- ua\-2
\- a\-4f
\&...
.EE
.RE
.SS متغیرهای ConTeXt
دستور Pandoc هنگام ساخت یک PDF با استفاده از ConTeXt، از این متغیرها استفاده میکند.
.TP
\f[CR]fontsize\f[R]
اندازه قلم برای متن بدنه (مانند \f[CR]10pt\f[R]، \f[CR]12pt\f[R])
.TP
\f[CR]headertext\f[R], \f[CR]footertext\f[R]
متنی که باید در سربرگ یا پاورقی صفحه قرار گیرد (بخش سربرگها و پاورقیهای ConTeXt را ببینید)؛ برای مکانگذاریهای مختلف تا چهار بار قابل تکرار است
.TP
\f[CR]indenting\f[R]
تورفتگی بندها را کنترل میکند، مانند \f[CR]yes,small,next\f[R] (بخش تورفتگی در ConTeXt را ببینید)؛ برای گزینههای متعدد تکرارپذیر است
.TP
\f[CR]interlinespace\f[R]
فاصله بین خطوط را تنظیم میکند، مانند \f[CR]4ex\f[R] (با استفاده از
\f[CR]setupinterlinespace\f[R])؛ برای گزینههای متعدد تکرارپذیر است
.TP
\f[CR]layout\f[R]
گزینههایی برای حاشیههای صفحه و چیدمان متن (بخش چیدمان در ConTeXt را ببینید)؛
برای گزینههای متعدد تکرارپذیر است
.TP
\f[CR]linkcolor\f[R], \f[CR]contrastcolor\f[R]
رنگ پیوندها در بیرون و درون صفحه، مانند \f[CR]red\f[R]،
\f[CR]blue\f[R] (بخش رنگ در ConTeXt را ببینید)
.TP
\f[CR]linkstyle\f[R]
سبک تایپفیس برای پیوندها، مانند \f[CR]normal\f[R]، \f[CR]bold\f[R]،
\f[CR]slanted\f[R]، \f[CR]boldslanted\f[R]، \f[CR]type\f[R]،
\f[CR]cap\f[R]، \f[CR]small\f[R]
.TP
\f[CR]lof\f[R], \f[CR]lot\f[R]
گنجاندن فهرست تصاویر، فهرست جدولها
.TP
\f[CR]mainfont\f[R], \f[CR]sansfont\f[R], \f[CR]monofont\f[R], \f[CR]mathfont\f[R]
خانوادههای قلم: نام هر قلم سیستمی را میپذیرند (بخش تعویض قلم در ConTeXt
را ببینید)
.TP
\f[CR]mainfontfallback\f[R], \f[CR]sansfontfallback\f[R], \f[CR]monofontfallback\f[R]
فهرست قلمهایی که اگر یک گلیف در قلم اصلی یافت نشود، به ترتیب بررسی میشوند.
از نحو نام قلم سازگار با \f[CR]\(rsdefinefallbackfamily\f[R] استفاده کنید.
قلمهای ایموجی پشتیبانی نمیشوند.
.TP
\f[CR]margin\-left\f[R], \f[CR]margin\-right\f[R], \f[CR]margin\-top\f[R], \f[CR]margin\-bottom\f[R]
در صورت عدم استفاده از \f[CR]layout\f[R]، حاشیهها را تعیین میکند (در غیر این صورت
\f[CR]layout\f[R] این مقادیر را لغو میکند)
.TP
\f[CR]pagenumbering\f[R]
سبک و محل قرارگیری شماره صفحه (با استفاده از \f[CR]setuppagenumbering\f[R])؛
برای چندین گزینه تکرارپذیر است
.TP
\f[CR]papersize\f[R]
اندازه کاغذ، مانند \f[CR]letter\f[R]، \f[CR]A4\f[R]، \f[CR]landscape\f[R]
(بخش تنظیمات کاغذ در ConTeXt را ببینید)؛ برای چندین گزینه تکرارپذیر است
.TP
\f[CR]pdfa\f[R]
تنظیمات لازم برای تولید PDF/A از نوع مشخصشده را به دیباچه میافزاید، مانند \f[CR]1a:2005\f[R]، \f[CR]2a\f[R].
اگر نوعی مشخص نشود (یعنی مقدار با مواردی مثل \f[CR]\-\-metadata=pdfa\f[R] یا \f[CR]pdfa: true\f[R]
در یک بلوک فراداده YAML برابر True تعیین شده باشد)، به دلایل سازگاری با نسخههای پیشین، \f[CR]1b:2005\f[R] به عنوان پیشفرض استفاده خواهد شد.
استفاده از \f[CR]\-\-variable=pdfa\f[R] بدون مقدار مشخصشده پشتیبانی نمیشود.
برای تولید موفقیتآمیز PDF/A، پروفایلهای رنگی ICC موردنیاز باید در دسترس باشند و محتوا و تمام فایلهای ضمیمهشده (مانند تصاویر) باید منطبق با استاندارد باشند.
پروفایلهای ICC و قصد خروجی (output intent) میتوانند با استفاده از متغیرهای
\f[CR]pdfaiccprofile\f[R] و \f[CR]pdfaintent\f[R] مشخص شوند.
همچنین برای اطلاعات بیشتر ConTeXt PDFA را ببینید.
.TP
\f[CR]pdfaiccprofile\f[R]
هنگام استفاده همراه با \f[CR]pdfa\f[R]، پروفایل ICC مورد استفاده در PDF را مشخص میکند، مانند \f[CR]default.cmyk\f[R].
در صورت نامشخص ماندن، \f[CR]sRGB.icc\f[R] به عنوان پیشفرض استفاده میشود.
میتواند برای افزودن چندین پروفایل تکرار شود.
توجه داشته باشید که پروفایلها باید در سیستم در دسترس باشند.
آنها را میتوان از ConTeXt ICC Profiles دریافت کرد.
.TP
\f[CR]pdfaintent\f[R]
هنگام استفاده همراه با \f[CR]pdfa\f[R]، قصد خروجی رنگها را مشخص میکند،
مانند \f[CR]ISO coated v2 300\(rsletterpercent\(rsspace (ECI)\f[R]. اگر
نامشخص بماند، \f[CR]sRGB IEC61966\-2.1\f[R] به عنوان پیشفرض استفاده میشود.
.TP
\f[CR]toc\f[R]
گنجاندن فهرست مطالب (همچنین با استفاده از
\f[CR]\-\-toc/\-\-table\-of\-contents\f[R] قابل تنظیم است)
.TP
\f[CR]urlstyle\f[R]
سبک تایپفیس برای پیوندهای فاقد متن پیوند، مانند \f[CR]normal\f[R]،
\f[CR]bold\f[R]، \f[CR]slanted\f[R]، \f[CR]boldslanted\f[R]،
\f[CR]type\f[R]، \f[CR]cap\f[R]، \f[CR]small\f[R]
.TP
\f[CR]whitespace\f[R]
فاصلهگذاری میان بندها، مانند \f[CR]none\f[R]، \f[CR]small\f[R]
(با استفاده از \f[CR]setupwhitespace\f[R])
.TP
\f[CR]includesource\f[R]
گنجاندن تمام اسناد منبع به عنوان پیوستهای فایل در فایل PDF.SS متغیرها برای \f[CR]wkhtmltopdf\f[R]
Pandoc هنگام ایجاد یک PDF با \f[CR]wkhtmltopdf\f[R] از این متغیرها
استفاده میکند.
گزینه \f[CR]\-\-css\f[R] نیز بر خروجی تأثیر میگذارد.
.TP
\f[CR]footer\-html\f[R], \f[CR]header\-html\f[R]
افزودن اطلاعات به سربرگ و پانویس
.TP
\f[CR]margin\-left\f[R], \f[CR]margin\-right\f[R], \f[CR]margin\-top\f[R], \f[CR]margin\-bottom\f[R]
تنظیم حاشیههای صفحه
.TP
\f[CR]papersize\f[R]
تنظیم اندازه کاغذ PDF
.SS متغیرها برای صفحات man
.TP
\f[CR]adjusting\f[R]
تراز کردن متن به حاشیه چپ (\f[CR]l\f[R])، راست (\f[CR]r\f[R])، مرکز
(\f[CR]c\f[R])، یا هر دو (\f[CR]b\f[R])
.TP
\f[CR]footer\f[R]
پانویس در صفحات man
.TP
\f[CR]header\f[R]
سربرگ در صفحات man
.TP
\f[CR]section\f[R]
شماره بخش در صفحات man
.SS متغیرها برای Texinfo
.TP
\f[CR]version\f[R]
نسخه نرمافزار (در عنوان و صفحه عنوان استفاده میشود)
.TP
\f[CR]filename\f[R]
نام فایل info که باید تولید شود (پیشفرض آن نامی بر اساس نام فایل texi است)
.SS متغیرها برای Typst
.TP
\f[CR]template\f[R]
قالب Typst برای استفاده (فقط مسیر نسبی).
.TP
\f[CR]margin\f[R]
یک دیکشنری با فیلدهای تعریفشده در مستندات Typst:
\f[CR]x\f[R]، \f[CR]y\f[R]، \f[CR]top\f[R]، \f[CR]bottom\f[R]،
\f[CR]left\f[R]، \f[CR]right\f[R].
.TP
\f[CR]papersize\f[R]
اندازه کاغذ: \f[CR]a4\f[R]، \f[CR]us\-letter\f[R] و غیره.
.TP
\f[CR]mainfont\f[R]
نام قلم سیستمی مورد استفاده به عنوان قلم اصلی.
.TP
\f[CR]fontsize\f[R]
اندازه قلم (برای مثال، \f[CR]12pt\f[R]).
.TP
\f[CR]section\-numbering\f[R]
طرحواره مورد استفاده برای شمارهگذاری بخشها، برای مثال \f[CR]1.A.1\f[R].
.TP
\f[CR]page\-numbering\f[R]
طرحواره مورد استفاده برای شمارهگذاری صفحهها، برای مثال \f[CR]1\f[R] یا \f[CR]i\f[R]،
یا یک رشته خالی برای صرفنظر از شمارهگذاری صفحهها.
.TP
\f[CR]columns\f[R]
تعداد ستونها برای متن بدنه.
.TP
\f[CR]thanks\f[R]
محتوای پانویس قدردانی پس از عنوان سند
.TP
\f[CR]mathfont\f[R], \f[CR]codefont\f[R]
نام قلم سیستمی مورد استفاده بهترتیب برای ریاضیات و کد.
.TP
\f[CR]linestretch\f[R]
تنظیم فاصله خطوط، برای مثال \f[CR]1.25\f[R]، \f[CR]1.5\f[R]
.TP
\f[CR]linkcolor\f[R], \f[CR]filecolor\f[R], \f[CR]citecolor\f[R]
رنگ بهترتیب برای پیوندهای خارجی، پیوندهای داخلی و پیوندهای ارجاع:
انتظار یک کد رنگ شانزدهشانزدهی (هگزادسیمال) را دارد
.SS متغیرها برای ms
.TP
\f[CR]fontfamily\f[R]
\f[CR]A\f[R] (Avant Garde)، \f[CR]B\f[R] (Bookman)، \f[CR]C\f[R]
(Helvetica)، \f[CR]HN\f[R] (Helvetica Narrow)، \f[CR]P\f[R] (Palatino)،
یا \f[CR]T\f[R] (Times New Roman).
این تنظیم بر کد منبع که همواره با استفاده از Courier با عرض ثابت (monospace) نمایش
داده میشود، تأثیری ندارد.
این قلمهای توکار در پوشش نویسهها محدود هستند.
قلمهای اضافی را میتوان با استفاده از اسکریپت \f[CR]install\-font.sh\f[R]
که توسط Peter Schaffter ارائه شده و در وبگاه او بهطور مفصل مستند گردیده است، نصب کرد.
.TP
\f[CR]indent\f[R]
تورفتگی بند (برای مثال \f[CR]2m\f[R])
.TP
\f[CR]lineheight\f[R]
ارتفاع خط (برای مثال \f[CR]12p\f[R])
.TP
\f[CR]pointsize\f[R]
اندازه پوینت (برای مثال \f[CR]10p\f[R])
.SS متغیرها برای RTF
.TP
\f[CR]fontsize\f[R]
اندازه قلم برای متن بدنه، برای مثال \f[CR]12pt\f[R] یا \f[CR]12.5pt\f[R].
.SS متغیرهایی که بهطور خودکار تنظیم میشوند
Pandoc این متغیرها را بهطور خودکار در پاسخ به گزینهها یا محتویات سند تنظیم میکند؛
کاربران نیز میتوانند آنها را تغییر دهند.
این متغیرها بسته به قالب خروجی متفاوت بوده و شامل موارد زیر هستند:
.TP
\f[CR]body\f[R]
بدنه سند
.TP
\f[CR]date\-meta\f[R]
متغیر \f[CR]date\f[R] تبدیلشده به ISO 8601 YYYY\-MM\-DD،
گنجاندهشده در تمام قالبهای مبتنی بر HTML شامل
(dzslides، epub، html، html4، html5، revealjs، s5، slideous، slidy).
قالبهای شناختهشده برای \f[CR]date\f[R] عبارتند از: \f[CR]mm/dd/yyyy\f[R]،
\f[CR]mm/dd/yy\f[R]، \f[CR]yyyy\-mm\-dd\f[R] (ISO 8601)،
\f[CR]dd MM yyyy\f[R] (برای مثال \f[CR]02 Apr 2018\f[R] یا
\f[CR]02 April 2018\f[R])، \f[CR]MM dd, yyyy\f[R]
(برای مثال \f[CR]Apr. 02, 2018\f[R] یا
\f[CR]April 02, 2018\f[R])، \f[CR]yyyy[mm[dd]]\f[R] (برای مثال \f[CR]20180402\f[R]،
\f[CR]201804\f[R] یا \f[CR]2018\f[R]).
.TP
\f[CR]header\-includes\f[R]
محتویات مشخصشده توسط \f[CR]\-H/\-\-include\-in\-header\f[R] (میتواند دارای چندین مقدار باشد)
.TP
\f[CR]include\-before\f[R]
محتویات مشخصشده توسط \f[CR]\-B/\-\-include\-before\-body\f[R] (میتواند دارای چندین مقدار باشد)
.TP
\f[CR]include\-after\f[R]
محتویات مشخصشده توسط \f[CR]\-A/\-\-include\-after\-body\f[R] (میتواند دارای چندین مقدار باشد)
.TP
\f[CR]meta\-json\f[R]
نمایش JSON از تمام فرادادههای سند.
مقادیر فیلدها به قالب خروجی انتخابشده تبدیل میشوند.
.TP
\f[CR]numbersections\f[R]
مقداری غیرتهی در صورتی که \f[CR]\-N/\-\-number\-sections\f[R] مشخص شده باشد
.TP
\f[CR]sourcefile\f[R], \f[CR]outputfile\f[R]
نام فایلهای مبدأ و مقصد، همانطور که در خط فرمان مشخص شدهاند.
\f[CR]sourcefile\f[R] در صورتی که ورودی از چندین فایل باشد میتواند یک لیست
باشد، یا در صورتی که ورودی از stdin باشد خالی باشد.
میتوانید از قطعهکد زیر در قالب خود برای تفکیک آنها استفاده کنید:
.RS
.IP
.EX
$if(sourcefile)$
$for(sourcefile)$
$sourcefile$
$endfor$
$else$
(stdin)
$endif$
.EE
به همین ترتیب، اگر خروجی به ترمینال هدایت شود، \f[CR]outputfile\f[R] میتواند \f[CR]\-\f[R] باشد.
اگر به مسیرهای مطلق نیاز دارید، برای مثال از \f[CR]$curdir$/$sourcefile$\f[R] استفاده کنید.
.RE
.TP
\f[CR]pdf\-engine\f[R]
نام موتور PDF در صورتی که با استفاده از \f[CR]\-\-pdf\-engine\f[R] مشخص شده باشد، یا موتور پیشفرض برای قالب در صورتی که خروجی PDF درخواست شده باشد.
.TP
\f[CR]curdir\f[R]
دایرکتوری کاری که pandoc از آن اجرا میشود.
.TP
\f[CR]pandoc\-version\f[R]
نسخه pandoc.
.TP
\f[CR]toc\f[R]
مقداری غیرتهی در صورتی که \f[CR]\-\-toc/\-\-table\-of\-contents\f[R] مشخص شده باشد
.TP
\f[CR]toc\-title\f[R]
عنوان فهرست مطالب (تنها با EPUB، HTML، revealjs، opendocument، odt، docx، pptx، beamer و LaTeX کار میکند).
توجه داشته باشید که در docx و pptx یک \f[CR]toc\-title\f[R] سفارشی از فراداده استخراج میشود، اما نمیتوان آن را به عنوان یک متغیر تنظیم کرد..SH "افزونهها (EXTENSIONS)"
رفتار برخی از خوانندهها و نویسندهها را میتوان با فعال یا غیرفعال کردن افزونههای مختلف تنظیم کرد.
.PP
یک افزونه میتواند با افزودن \f[CR]+EXTENSION\f[R] به نام قالب فعال و با افزودن \f[CR]\-EXTENSION\f[R] غیرفعال شود.
برای نمونه، \f[CR]\-\-from markdown_strict+footnotes\f[R] همان Markdown سختگیرانه با پاورقیهای فعال است، در حالی که \f[CR]\-\-from markdown\-footnotes\-pipe_tables\f[R] بیانگر Markdown پاندوک بدون پاورقی یا جدولهای لولهای (pipe tables) است.
.PP
خواننده و نویسندهٔ Markdown بیشترین استفاده را از افزونهها دارند.
بنابراین افزونههایی که تنها توسط آنها استفاده میشوند در بخش Markdown پاندوک در زیر آورده شدهاند (برای \f[CR]commonmark\f[R] و \f[CR]gfm\f[R]، گونههای Markdown را ببینید).
در ادامه، افزونههایی که برای قالبهای دیگر نیز کار میکنند توضیح داده شدهاند.
.PP
توجه داشته باشید که افزونههای Markdown اضافهشده به قالب \f[CR]ipynb\f[R]، بر سلولهای Markdown در دفترچههای Jupyter تأثیر میگذارند (همانند گزینههای خط فرمان مانند \f[CR]\-\-markdown\-headings\f[R]).
.SS "تایپوگرافی (Typography)"
.SS افزونه: \f[CR]smart\f[R]
نقلقولهای مستقیم (straight quotes) را به عنوان نقلقولهای خمیده (curly quotes)، \f[CR]\-\-\-\f[R] را به عنوان خط تیره بلند (em\-dash)، \f[CR]\-\-\f[R] را به عنوان خط تیره متوسط (en\-dash) و \f[CR]...\f[R] را به عنوان نشانه تعلیق (ellipses) تفسیر میکند.
فاصلههای نشکن پس از برخی اختصارات، مانند \(lqMr.\(rq درج میشوند.
.PP
این افزونه را میتوان برای قالبهای زیر فعال/غیرفعال کرد:
.TP
قالبهای ورودی
\f[CR]markdown\f[R]، \f[CR]commonmark\f[R]، \f[CR]latex\f[R]،
\f[CR]mediawiki\f[R]، \f[CR]org\f[R]، \f[CR]rst\f[R]، \f[CR]twiki\f[R]،
\f[CR]html\f[R]
.TP
قالبهای خروجی
\f[CR]markdown\f[R]، \f[CR]latex\f[R]، \f[CR]context\f[R]،
\f[CR]org\f[R]، \f[CR]rst\f[R]
.TP
بهطور پیشفرض فعال در
\f[CR]markdown\f[R]، \f[CR]latex\f[R]، \f[CR]context\f[R] (هم ورودی
و هم خروجی)
.PP
نکته: اگر در حال \f[I]نوشتن\f[R] Markdown هستید، افزونهٔ \f[CR]smart\f[R] اثر معکوس دارد: آنچه نقلقول خمیده بود، بهصورت مستقیم خارج میشود.
.PP
در LaTeX، \f[CR]smart\f[R] به معنای استفاده از بستارهای (ligatures) استاندارد TeX برای علامتهای نقلقول (\f[CR]\(ga\(ga\f[R] و \f[CR]\(aq\(aq\f[R] برای نقلقولهای دوتایی، \f[CR]\(ga\f[R] و \f[CR]\(aq\f[R] برای نقلقولهای تکی) و خطهای تیره (\f[CR]\-\-\f[R] برای en\-dash و \f[CR]\-\-\-\f[R] برای em\-dash) است.
اگر \f[CR]smart\f[R] غیرفعال باشد، پاندوک هنگام خواندن LaTeX این نویسهها را بهصورت لفظی (literal) پردازش خواهد کرد.
در هنگام نوشتن LaTeX، فعال کردن \f[CR]smart\f[R] به pandoc میگوید در صورت امکان از بستارها استفاده کند؛ اگر \f[CR]smart\f[R] غیرفعال باشد، pandoc از نویسههای یونیکدِ نقلقول و خط تیره استفاده خواهد کرد.
.SS "سرعنوانها و بخشها (Headings and sections)"
.SS افزونه: \f[CR]auto_identifiers\f[R]
به سرعنوانی که شناسهٔ صریحاً مشخصشدهای نداشته باشد، بهطور خودکار یک شناسهٔ یکتا بر اساس متن سرعنوان اختصاص داده خواهد شد.
.PP
این افزونه را میتوان برای قالبهای زیر فعال/غیرفعال کرد:
.TP
قالبهای ورودی
\f[CR]markdown\f[R]، \f[CR]latex\f[R]، \f[CR]rst\f[R]،
\f[CR]mediawiki\f[R]، \f[CR]textile\f[R]، \f[CR]man\f[R]،
\f[CR]typst\f[R]
.TP
قالبهای خروجی
\f[CR]markdown\f[R]، \f[CR]muse\f[R]
.TP
بهطور پیشفرض فعال در
\f[CR]markdown\f[R]، \f[CR]muse\f[R]، \f[CR]man\f[R]
.PP
الگوریتم پیشفرضی که برای استخراج شناسه از متن سرعنوان استفاده میشود عبارت است از:
.IP \(bu 2
حذف تمام قالببندیها، پیوندها و غیره.
.IP \(bu 2
حذف تمام پاورقیها.
.IP \(bu 2
حذف تمام نویسههای غیرحرفی\-عددی، بهجز خط زیر (underscore)، خط تیره و نقطه.
.IP \(bu 2
جایگزین کردن همهٔ فاصلهها و خطوط جدید با خط تیره.
.IP \(bu 2
تبدیل تمام حروف الفبا به حروف کوچک.
.IP \(bu 2
حذف همهچیز تا اولین حرف (شناسهها نباید با عدد یا علامت نگارشی آغاز شوند).
.IP \(bu 2
اگر پس از این چیزی باقی نماند، استفاده از شناسهٔ \f[CR]section\f[R].
.PP
بنابراین، برای نمونه،
.RS -14n
.IP
.EX
Heading Identifier
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Heading identifiers in HTML heading\-identifiers\-in\-html
Maître d\(aqhôtel maître\-dhôtel
*Dogs*?\-\-in *my* house? dogs\-\-in\-my\-house
[HTML], [S5], or [RTF]? html\-s5\-or\-rtf
3. Applications applications
33 section
.EE
.RE
.PP
این قواعد باید در بیشتر موارد به فرد اجازه دهد تا شناسه را از روی متن سرعنوان تعیین کند.
استثنا زمانی است که چندین سرعنوان متن یکسانی داشته باشند؛ در این حالت، اولی شناسهای طبق توضیحات بالا دریافت میکند؛ دومی همان شناسه را با پیوست شدن \f[CR]\-1\f[R] دریافت خواهد کرد؛ سومی با \f[CR]\-2\f[R]؛ و به همین ترتیب.
.PP
(با این حال، در صورت فعال بودن \f[CR]gfm_auto_identifiers\f[R]، الگوریتم متفاوتی استفاده میشود؛ به پایین مراجعه کنید.)
.PP
این شناسهها برای ایجاد مقصدهای پیوند در فهرست مطالبی که با گزینهٔ \f[CR]\-\-toc|\-\-table\-of\-contents\f[R] تولید میشود، استفاده میشوند.
آنها همچنین پیوند دادن از بخشی از سند به بخش دیگر را آسان میکنند.
برای نمونه، پیوندی به این بخش ممکن است به این صورت باشد:
.IP
.EX
See the section on
[heading identifiers](#heading\-identifiers\-in\-html\-latex\-and\-context).
.EE
.PP
با این حال توجه داشته باشید که این روش پیوند دادن به بخشها تنها در قالبهای HTML، LaTeX و ConTeXt کار میکند.
.PP
اگر گزینهٔ \f[CR]\-\-section\-divs\f[R] مشخص شده باشد، هر بخش درون یک \f[CR]section\f[R] (یا یک \f[CR]div\f[R]، اگر \f[CR]html4\f[R] مشخص شده باشد) قرار میگیرد، و شناسه بهجای خودِ سرعنوان به برچسب دربرگیرندهٔ \f[CR]\f[R] (یا \f[CR]\f[R]) اختصاص مییابد.
این ویژگی اجازه میدهد کل بخشها با استفاده از JavaScript دستکاری شوند یا در CSS رفتار متفاوتی با آنها صورت گیرد..SS افزونه: \f[CR]ascii_identifiers\f[R]
باعث میشود شناسههای تولیدشده توسط \f[CR]auto_identifiers\f[R] کاملاً
ASCII باشند.
نشانههای اعراب از حروف لاتینِ اعرابدار حذف شده و حروف غیرلاتین
نادیده گرفته میشوند.
.SS افزونه: \f[CR]gfm_auto_identifiers\f[R]
الگوریتم مورد استفاده توسط \f[CR]auto_identifiers\f[R] را تغییر میدهد تا با
روش GitHub منطبق شود.
فاصلهها به خط تیره (\f[CR]\-\f[R])، نویسههای بزرگ به
نویسههای کوچک تبدیل شده، و نویسههای نشانهگذاری به جز
\f[CR]\-\f[R] و \f[CR]_\f[R] حذف میشوند.
ایموجیها با نامهایشان جایگزین میشوند.
.SS ورودی ریاضی
افزونههای \f[CR]tex_math_dollars\f[R]، \f[CR]tex_math_gfm\f[R]،
\f[CR]tex_math_single_backslash\f[R] و
\f[CR]tex_math_double_backslash\f[R] در بخش مربوط به
Pandoc\(cqs Markdown شرح داده شدهاند.
.PP
با این حال، میتوان از آنها برای ورودی HTML نیز استفاده کرد.
این قابلیت برای نمونه جهت خواندن صفحات وبی که با MathJax قالببندی
شدهاند، بسیار کارآمد است.
.SS HTML/TeX خام
افزونههای زیر با جزئیات بیشتر در بخشهای مربوط به خود در
Pandoc\(cqs Markdown توضیح داده شدهاند:
.IP \(bu 2
\f[CR]raw_html\f[R] اجازه میدهد عناصر HTML که در AST پاندوک قابل نمایش
نیستند، به صورت HTML خام تجزیه شوند.
بهطور پیشفرض، این قابلیت برای ورودی HTML غیرفعال است.
.IP \(bu 2
\f[CR]raw_tex\f[R] امکان گنجاندن کدهای خام LaTeX، TeX و ConTeXt را در
یک سند فراهم میسازد.
این افزونه را میتوان علاوه بر \f[CR]markdown\f[R] برای قالبهای زیر
نیز فعال/غیرفعال کرد:
.RS 2
.TP
قالبهای ورودی
\f[CR]latex\f[R]، \f[CR]textile\f[R]، \f[CR]html\f[R] (تنها محیطها،
\f[CR]\(rsref\f[R] و \f[CR]\(rseqref\f[R])، \f[CR]ipynb\f[R]
.TP
قالبهای خروجی
\f[CR]textile\f[R]، \f[CR]commonmark\f[R]
.PP
نکته: در مورد \f[CR]ipynb\f[R]، افزونههای \f[CR]raw_html\f[R] و
\f[CR]raw_tex\f[R] نه تنها بر TeX خام در سلولهای Markdown، بلکه بر
دادههای با نوع mime به صورت \f[CR]text/html\f[R] در سلولهای خروجی
نیز اثر میگذارند.
از آنجا که خوانندهٔ \f[CR]ipynb\f[R] تلاش میکند تا در صورت وجود چند گزینه،
غنیترین خروجی ممکن را حفظ کند، اگر هنگام تبدیل به قالبهایی نظیر
\f[CR]docx\f[R] (که اجازهٔ وجود \f[CR]html\f[R] یا \f[CR]tex\f[R] خام
را نمیدهند) گزینههای \f[CR]raw_html\f[R] و \f[CR]raw_tex\f[R] را
غیرفعال کنید، بهترین نتیجه را به دست خواهید آورد.
.RE
.IP \(bu 2
\f[CR]native_divs\f[R] باعث میشود عناصر \f[CR]div\f[R] در HTML به عنوان
بلوکهای بومی Div در pandoc تجزیه شوند.
اگر میخواهید آنها به صورت HTML خام تجزیه شوند، از
\f[CR]\-f html\-native_divs+raw_html\f[R] استفاده کنید.
.IP \(bu 2
\f[CR]native_spans\f[R] باعث میشود عناصر \f[CR]span\f[R] در HTML به عنوان
عناصر درونخطی بومی Span در pandoc تجزیه شوند.
اگر میخواهید آنها به صورت HTML خام تجزیه شوند، از
\f[CR]\-f html\-native_spans+raw_html\f[R] استفاده کنید.
اگر مایلید هنگام تبدیل HTML به Markdown تمامی \f[CR]div\f[R]ها و
\f[CR]span\f[R]ها را حذف کنید، میتوانید از
\f[CR]pandoc \-f html\-native_divs\-native_spans \-t markdown\f[R] استفاده نمایید.
.SS پشتیبانی از Literate Haskell
.SS افزونه: \f[CR]literate_haskell\f[R]
سند را به عنوان کد منبع literate Haskell در نظر میگیرد.
.PP
این افزونه را میتوان برای قالبهای زیر فعال/غیرفعال کرد:
.TP
قالبهای ورودی
\f[CR]markdown\f[R]، \f[CR]rst\f[R]، \f[CR]latex\f[R]
.TP
قالبهای خروجی
\f[CR]markdown\f[R]، \f[CR]rst\f[R]، \f[CR]latex\f[R]، \f[CR]html\f[R]
.PP
اگر \f[CR]+lhs\f[R] (یا \f[CR]+literate_haskell\f[R]) را به یکی از قالبهای
بالا الحاق کنید، pandoc با سند مانند کد منبع literate Haskell رفتار خواهد کرد.
این بدان معناست که:
.IP \(bu 2
در ورودی Markdown، بخشهای \(lqbird track\(rq به جای نقلقولهای بلوکی،
به عنوان کد Haskell تجزیه خواهند شد.
متن میان \f[CR]\(rsbegin{code}\f[R] و \f[CR]\(rsend{code}\f[R]
نیز به عنوان کد Haskell در نظر گرفته میشود.
برای عنوانهای سبک ATX به جای `#' از نویسهٔ `=' استفاده خواهد شد.
.IP \(bu 2
در خروجی Markdown، بلوکهای کد با کلاسهای \f[CR]haskell\f[R] و
\f[CR]literate\f[R] با استفاده از bird track نمایش داده میشوند، و
نقلقولهای بلوکی یک فاصله تورفتگی خواهند داشت تا به عنوان کد Haskell
در نظر گرفته نشوند.
علاوه بر این، عنوانها به جای سبک ATX (همراه با نویسههای `#' )، به
سبک setext (با خط زیرین) رندر خواهند شد.
(به این دلیل که ghc نویسههای `#' در ستون اول را به عنوان معرف شماره خط تلقی میکند.)
.IP \(bu 2
در ورودی restructured text، بخشهای \(lqbird track\(rq به عنوان کد Haskell
تجزیه میشوند.
.IP \(bu 2
در خروجی restructured text، بلوکهای کد دارای کلاس \f[CR]haskell\f[R]
با استفاده از bird track رندر میشوند.
.IP \(bu 2
در ورودی LaTeX، متن درون محیطهای \f[CR]code\f[R] به عنوان کد Haskell
تجزیه خواهد شد.
.IP \(bu 2
در خروجی LaTeX، بلوکهای کد با کلاس \f[CR]haskell\f[R] درون محیطهای
\f[CR]code\f[R] رندر خواهند شد.
.IP \(bu 2
در خروجی HTML، بلوکهای کد با کلاس \f[CR]haskell\f[R] با کلاس
\f[CR]literatehaskell\f[R] و نشانههای bird track رندر میشوند.
.PP
مثالها:
.IP
.EX
pandoc \-f markdown+lhs \-t html
.EE
.PP
کد منبع literate Haskell قالببندیشده با قراردادهای Markdown را میخواند
و HTML معمولی (بدون bird track) مینویسد.
.IP
.EX
pandoc \-f markdown+lhs \-t html+lhs
.EE
.PP
خروجی HTML را با کدهای Haskell در قالب bird track مینویسد، تا
بتوان آن را به عنوان کد منبع literate Haskell کپی و جایگذاری کرد.
.PP
توجه داشته باشید که GHC انتظار دارد bird trackها در ستون اول باشند،
بنابراین بلوکهای کد literate تورفته (برای نمونه درون یک محیط فهرستبندیشده)
توسط کامپایلر Haskell شناسایی نخواهند شد..SS سایر افزونهها
.SS افزونه: \f[CR]empty_paragraphs\f[R]
پاراگرافهای خالی را مجاز میکند.
بهطور پیشفرض، پاراگرافهای خالی حذف میشوند.
.PP
این افزونه میتواند برای قالبهای زیر فعال/غیرفعال شود:
.TP
قالبهای ورودی
\f[CR]docx\f[R]، \f[CR]html\f[R]
.TP
قالبهای خروجی
\f[CR]docx\f[R]، \f[CR]odt\f[R]، \f[CR]opendocument\f[R]،
\f[CR]html\f[R]، \f[CR]latex\f[R]
.SS افزونه: \f[CR]native_numbering\f[R]
شمارهگذاری شکلها و جدولها را از طریق فیلدهای شمارندهٔ مختص به قالب مقصد فعال میکند.
این افزونه میتواند برای قالبهای زیر فعال/غیرفعال شود:
.TP
قالبهای خروجی
\f[CR]odt\f[R]، \f[CR]opendocument\f[R]، \f[CR]docx\f[R]
.PP
اگر این افزونه فعال نباشد، جدولها و شکلها در این قالبها شمارهگذاری نخواهند شد.
.SS افزونه: \f[CR]xrefs_name\f[R]
پیوندها به سرفصلها، شکلها و جدولهای درون سند با ارجاعهای متقابلی جایگزین میشوند که از نام یا عنوان موردِ ارجاعشده استفاده خواهند کرد.
متن اصلی پیوند پس از تازهسازی (refresh) سند تولیدشده جایگزین میشود.
این افزونه میتواند با \f[CR]xrefs_number\f[R] ترکیب شود که در این صورت شمارهها پیش از نام ظاهر خواهند شد.
.PP
متن موجود در ارجاعهای متقابل تنها پس از تازهسازی سند با موردِ ارجاعشده یکدست و هماهنگ میشود.
.PP
این افزونه میتواند برای قالبهای زیر فعال/غیرفعال شود:
.TP
قالبهای خروجی
\f[CR]odt\f[R]، \f[CR]opendocument\f[R]
.SS افزونه: \f[CR]xrefs_number\f[R]
پیوندها به سرفصلها، شکلها و جدولهای درون سند با ارجاعهای متقابلی جایگزین میشوند که از شمارهٔ موردِ ارجاعشده استفاده خواهند کرد.
متن اصلی پیوند نادیده گرفته میشود.
این افزونه میتواند با \f[CR]xrefs_name\f[R] ترکیب شود که در این صورت نام یا عنوان پس از شماره ظاهر خواهد شد.
.PP
برای اینکه \f[CR]xrefs_number\f[R] مفید واقع شود، شمارهگذاری سرفصلها باید در سند تولیدشده فعال باشد، همچنین عنوانهای جدول و شکل نیز باید برای مثال با استفاده از افزونهٔ \f[CR]native_numbering\f[R] فعال شده باشند.
.PP
شمارهها در ارجاعهای متقابل تنها پس از تازهسازی سند نهایی قابل مشاهده خواهند بود.
.PP
این افزونه میتواند برای قالبهای زیر فعال/غیرفعال شود:
.TP
قالبهای خروجی
\f[CR]odt\f[R]، \f[CR]opendocument\f[R]
.SS افزونه: \f[CR]styles\f[R]
هنگام تبدیل از docx، ویژگیهای \f[CR]custom\-styles\f[R] را برای همهٔ سبکهای docx اضافه میکند، صرفنظر از اینکه pandoc معنای این سبکها را متوجه شود یا خیر.
از آنجا که ویژگیها را نمیتوان مستقیماً به پاراگرافها یا متن در AST پاندوک اضافه کرد، سبکهای پاراگراف موجب ایجاد Divها و سبکهای نویسه موجب ایجاد Spanها برای نگهداشتن ویژگیها میشوند.
(سبکهای جدول مستقیماً به عناصر Table اضافه خواهند شد.)
این افزونه میتواند همراه با سبکهای سفارشی docx استفاده شود.
.TP
قالبهای ورودی
\f[CR]docx\f[R]
.SS افزونه: \f[CR]amuse\f[R]
در قالب ورودی \f[CR]muse\f[R]، این افزونه قابلیتهای Text::Amuse را برای نشانهگذاری Emacs Muse فعال میکند.
.SS افزونه: \f[CR]raw_markdown\f[R]
در قالب ورودی \f[CR]ipynb\f[R]، این افزونه باعث میشود سلولهای Markdown بهجای تجزیه شدن، بهصورت بلوکهای خام Markdown گنجانده شوند (که امکان تبدیل رفتوبرگشت بدون اتلاف داده را فراهم میسازد).
تنها زمانی از این گزینه استفاده کنید که مقصد شما \f[CR]ipynb\f[R] یا یک قالب خروجی مبتنی بر Markdown باشد.
.SS افزونه: \f[CR]citations\f[R] (typst)
هنگامی که افزونهٔ \f[CR]citations\f[R] در \f[CR]typst\f[R] فعال باشد (همانطور که بهطور پیشفرض فعال است)، ارجاعات \f[CR]typst\f[R] بهصورت ارجاعات بومی pandoc تجزیه شده و ارجاعات بومی pandoc بهصورت ارجاعات \f[CR]typst\f[R] نمایش داده میشوند.
.SS افزونه: \f[CR]citations\f[R] (org)
هنگامی که افزونهٔ \f[CR]citations\f[R] در \f[CR]org\f[R] فعال باشد، ارجاعات به سبک org\-cite و org\-ref بهصورت ارجاعات بومی pandoc تجزیه شده و از ارجاعات org\-cite برای نمایش ارجاعات بومی pandoc استفاده خواهد شد.
.SS افزونه: \f[CR]citations\f[R] (docx)
هنگامی که \f[CR]citations\f[R] در \f[CR]docx\f[R] فعال باشد، ارجاعات درجشده توسط پلاگینهای Zotero ،Mendeley یا EndNote بهصورت ارجاعات بومی pandoc تجزیه خواهند شد.
(در غیر این صورت، ارجاعات قالببندیشده که توسط نرمافزارهای کتابشناختی ایجاد شدهاند، بهصورت متن معمولی تجزیه میشوند.)
.SS افزونه: \f[CR]fancy_lists\f[R] (org)
برخی از جنبههای لیستهای پیشرفتهٔ Markdown در Pandoc در ورودی \f[CR]org\f[R] نیز پذیرفته میشوند که عملکرد گزینهٔ \f[CR]org\-list\-allow\-alphabetical\f[R] در Emacs را شبیهسازی میکند.
همانند Org Mode، فعال کردن این افزونه به نشانگرهای الفبایی کوچک و بزرگ برای لیستهای مرتب اجازه میدهد علاوه بر اعداد معمولی تجزیه شوند.
توجه داشته باشید که برای Org، این شامل اعداد رومی یا نشانگر جانگهدار \f[CR]#\f[R] که توسط این افزونه در Pandoc Markdown فعال میشوند، نخواهد بود.
.SS افزونه: \f[CR]element_citations\f[R]
در قالبهای خروجی \f[CR]jats\f[R]، این افزونه باعث میشود موارد ارجاع با عناصر \f[CR]
\f[R] جایگزین شوند.
این عناصر تحت تأثیر سبکهای CSL قرار نمیگیرند، اما تمام اطلاعات مربوط به آن مورد درون برچسبها گنجانده میشود.
.SS افزونه: \f[CR]ntb\f[R]
در قالب خروجی \f[CR]context\f[R]، این افزونه استفاده از Natural Tables (TABLE) را بهجای Extreme Tables (xtables) پیشفرض فعال میکند.
جدولهای Natural امکان سفارشیسازی سراسری دقیقتری را فراهم میسازند، اما در مقایسه با جدولهای extreme با کاهش کارایی و افت عملکرد همراهاند.
.SS افزونه: \f[CR]smart_quotes\f[R] (org)
هنگام تجزیه، گیومههای مستقیم (straight quotes) را بهصورت گیومههای خمیده (curly quotes) تفسیر میکند.
هنگام \f[I]نوشتن\f[R] Org، افزونهٔ \f[CR]smart_quotes\f[R] اثر معکوس دارد: آنچه قرار بود گیومهٔ خمیده باشد بهصورت مستقیم خارج میشود.
.PP
در صورت فعال بودن \f[CR]smart\f[R]، این افزونه نیز بهطور خودکار اعمال خواهد شد..SS افزونه: \f[CR]special_strings\f[R] (org)
تفسیر \f[CR]\-\-\-\f[R] بهصورت خط تیره بلند (em\-dash)، \f[CR]\-\-\f[R] بهصورت خط تیره متوسط (en\-dash)، \f[CR]\(rs\-\f[R] بهصورت خط پیوند اختیاری (shy hyphen)، و \f[CR]...\f[R] بهصورت سهنقطه (ellipses).
.PP
اگر \f[CR]smart\f[R] فعال باشد، این افزونه نیز بهطور ضمنی اعمال میشود.
.SS افزونه: \f[CR]tagging\f[R]
فعالسازی این افزونه با خروجی \f[CR]context\f[R]، نشانهگذاری مناسبی برای تولید PDFهای برچسبدار (tagged PDFs) ایجاد میکند.
این شامل نشانگرهای اضافی برای بندها و نشانهگذاری جایگزین برای متنهای تأکیدشده است.
در صورت فعال بودن این افزونه، متغیر الگوی \f[CR]emphasis\-command\f[R] مقداردهی میشود.
.SH "مارکداون پاندوک (PANDOC\(cqS MARKDOWN)"
پاندوک نحو گسترشیافته و اندکی بازنگریشدهای از نحو Markdown جان گروبر (John Gruber) را پشتیبانی میکند.
این سند نحو مربوطه را توضیح داده و تفاوتهای آن با Markdown اصلی را مشخص میکند.
بهجز مواردی که ذکر شده، میتوان این تفاوتها را با استفاده از قالب \f[CR]markdown_strict\f[R] به جای \f[CR]markdown\f[R] غیرفعال کرد.
افزونهها را میتوان فعال یا غیرفعال کرد تا رفتار برنامه با جزئیات دقیقتری تنظیم شود.
این موارد در ادامه شرح داده شدهاند.
همچنین برای افزونههایی که روی قالبهای دیگر نیز کار میکنند، بخش افزونهها (Extensions) در بالا را ببینید.
.SS فلسفه
مارکداون بهگونهای طراحی شده است که نوشتن آن آسان، و از آن مهمتر، خواندنش راحت باشد:
.RS
.PP
یک سند با قالببندی Markdown باید بتواند بدون تغییر و بهصورت متن ساده منتشر شود، بدون آنکه به نظر برسد با برچسبها یا دستورالعملهای قالببندی نشانهگذاری شده است.
.PD 0
.P
.PD
\(en جان گروبر (John Gruber)
.RE
.PP
این اصل، راهنمای تصمیمهای pandoc در طراحی نحو برای جدولها، پانویسها و سایر افزونهها بوده است.
.PP
با این حال، از یک جهت اهداف pandoc با اهداف اولیه Markdown متفاوت است.
در حالی که Markdown در ابتدا با هدف تولید HTML طراحی شده بود، pandoc برای چندین قالب خروجی گوناگون طراحی شده است.
بنابراین، اگرچه pandoc درج HTML خام را مجاز میداند، اما استفاده از آن را توصیه نمیکند و روشهای غیر-HTML دیگری را برای نمایش عناصر مهم سند مانند فهرستهای تعاریف، جدولها، فرمولهای ریاضی و پانویسها ارائه میدهد.
.SS بندها
یک بند (پاراگراف) از یک یا چند خط متن تشکیل شده که پس از آن یک یا چند خط خالی قرار دارد.
شکستهای خط (Newlines) بهصورت فاصله در نظر گرفته میشوند، بنابراین میتوانید بندهای خود را به دلخواه بازچینی کنید.
اگر به شکست سطر اجباری (hard line break) نیاز دارید، دو یا چند فاصله در انتهای خط قرار دهید.
.SS افزونه: \f[CR]escaped_line_breaks\f[R]
یک بکاسلش که بلافاصله پس از آن خط جدید بیاید نیز یک شکست سطر اجباری است.
نکته: در سلولهای جدولهای چندخطی و شبکهای، این تنها روش برای ایجاد شکست سطر اجباری است، زیرا فاصلههای انتهایی در سلولها نادیده گرفته میشوند.
.SS سرعنوانها
دو نوع سرعنوان وجود دارد: Setext و ATX.
.SS سرعنوانهای سبک Setext
یک سرعنوان به سبک setext، سطری از متن است که با ردیفی از علامتهای \f[CR]=\f[R] (برای سرعنوان سطح یک) یا علامتهای \f[CR]\-\f[R] (برای سرعنوان سطح دو) زیرخطدار شده است:
.IP
.EX
A level\-one heading
===================
A level\-two heading
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
.EE
.PP
متن سرعنوان میتواند حاوی قالببندی درونخطی باشد، مانند تأکید (بخش قالببندی درونخطی را در زیر ببینید).
.SS سرعنوانهای سبک ATX
یک سرعنوان به سبک ATX شامل یک تا شش علامت \f[CR]#\f[R] و یک سطر متن است که به صورت اختیاری میتواند با هر تعداد علامت \f[CR]#\f[R] به پایان برسد.
تعداد علامتهای \f[CR]#\f[R] در ابتدای سطر، سطح سرعنوان را تعیین میکند:
.IP
.EX
## A level\-two heading
### A level\-three heading ###
.EE
.PP
همانند سرعنوانهای سبک setext، متن سرعنوان میتواند شامل قالببندی باشد:
.IP
.EX
# A level\-one heading with a [link](/url) and *emphasis*
.EE
.SS افزونه: \f[CR]blank_before_header\f[R]
نحو اصلی Markdown نیازی به خط خالی پیش از سرعنوان ندارد.
پاندوک به این خط خالی نیاز دارد (البته بهجز ابتدای سند).
علت این الزام آن است که احتمال قرار گرفتن تصادفی علامت \f[CR]#\f[R] در ابتدای سطر (مثلاً در اثر شکست سطرها) بسیار بالاست.
برای مثال، این مورد را در نظر بگیرید:
.IP
.EX
I like several of their flavors of ice cream:
#22, for example, and #5.
.EE
.SS افزونه: \f[CR]space_in_atx_header\f[R]
بسیاری از پیادهسازیهای Markdown نیازی به فاصله بین علامتهای ابتدایی \f[CR]#\f[R] در سرعنوان ATX و متن سرعنوان ندارند، بهطوری که \f[CR]#5 bolt\f[R] و \f[CR]#hashtag\f[R] سرعنوان به حساب میآیند.
با این افزونه، pandoc وجود فاصله را الزامی میداند.
.SS شناسههای سرعنوان
همچنین افزونهٔ \f[CR]auto_identifiers\f[R] در بالا را ببینید.
.SS افزونه: \f[CR]header_attributes\f[R]
میتوان با استفاده از این نحو در انتهای سطری که حاوی متن سرعنوان است، به سرعنوانها صفتها را اختصاص داد:
.IP
.EX
{#identifier .class .class key=value key=value}
.EE
.PP
بنابراین، برای نمونه، به تمام سرعنوانهای زیر شناسهٔ \f[CR]foo\f[R] اختصاص داده خواهد شد:
.IP
.EX
# My heading {#foo}
## My heading ## {#foo}
My other heading {#foo}
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
.EE
.PP
(این نحو با PHP Markdown Extra سازگار است.)
.PP
توجه داشته باشید اگرچه این نحو امکان انتساب کلاسها و صفتهای کلید/مقدار را فراهم میکند، اما نویسندهها (writers) معمولاً از همه این اطلاعات استفاده نمیکنند.
شناسهها، کلاسها و صفتهای کلید/مقدار در HTML و قالبهای مبتنی بر HTML مانند EPUB و slidy استفاده میشوند.
شناسهها برای برچسبها و لنگرهای پیوند در نویسندههای LaTeX، ConTeXt، Textile، نشانهگذاری Jira و AsciiDoc کاربرد دارند.
.PP
سرعنوانهای دارای کلاس \f[CR]unnumbered\f[R] شمارهگذاری نخواهند شد، حتی اگر \f[CR]\-\-number\-sections\f[R] مشخص شده باشد.
یک خط تیره منفرد (\f[CR]\-\f[R]) در بستر صفتها معادل \f[CR].unnumbered\f[R] بوده و در اسناد غیرانگلیسی ترجیح داده میشود.
بنابراین،
.IP
.EX
# My heading {\-}
.EE
.PP
دقیقاً معادل این است:
.IP
.EX
# My heading {.unnumbered}
.EE
.PP
اگر علاوه بر \f[CR]unnumbered\f[R]، کلاس \f[CR]unlisted\f[R] نیز درج شده باشد، سرعنوان در فهرست مطالب قرار نخواهد گرفت.
(در حال حاضر این ویژگی تنها برای برخی قالبها پیادهسازی شده است: قالبهای مبتنی بر LaTeX و HTML، و همچنین PowerPoint و RTF.).SS افزونه: \f[CR]implicit_header_references\f[R]
دستور Pandoc طوری رفتار میکند که گویی برای هر سرتیتر، پیوندهای ارجاعی تعریف شده است.
بنابراین، برای پیوند دادن به یک سرتیتر
.IP
.EX
# Heading identifiers in HTML
.EE
.PP
میتوانید به سادگی بنویسید
.IP
.EX
[Heading identifiers in HTML]
.EE
.PP
یا
.IP
.EX
[Heading identifiers in HTML][]
.EE
.PP
یا
.IP
.EX
[the section on heading identifiers][heading identifiers in
HTML]
.EE
.PP
بهجای اینکه شناسه را بهطور صریح مشخص کنید:
.IP
.EX
[Heading identifiers in HTML](#heading\-identifiers\-in\-html)
.EE
.PP
اگر چندین سرتیتر با متن یکسان وجود داشته باشد، ارجاع مربوطه تنها به اولین مورد پیوند میدهد، و برای پیوند به سایر موارد، همانطور که در بالا توضیح داده شد، باید از پیوندهای صریح استفاده کنید.
.PP
مانند پیوندهای ارجاعی معمول، این ارجاعها به بزرگی و کوچکی حروف حساس نیستند.
.PP
تعاریف صریح پیوند ارجاعی همواره نسبت به ارجاعهای ضمنی سرتیتر در اولویت قرار دارند.
بنابراین، در مثال زیر، پیوند به \f[CR]bar\f[R] اشاره خواهد کرد، نه به \f[CR]#foo\f[R]:
.IP
.EX
# Foo
[foo]: bar
See [foo]
.EE
.SS نقلقولهای بلوکی (Block quotations)
قالب Markdown از قواعد رایانامه (ایمیل) برای نقلقول بلوکهای متنی استفاده میکند.
یک نقلقول بلوکی شامل یک یا چند بند یا دیگر عناصر بلوکی (مانند فهرستها یا سرتیترها) است، بهطوری که در ابتدای هر سطر یک نویسه \f[CR]>\f[R] و یک فاصله اختیاری قرار میگیرد.
(لازم نیست \f[CR]>\f[R] دقیقاً از حاشیه چپ آغاز شود، اما نباید بیش از سه فاصله دندانهدار شود.)
.IP
.EX
> This is a block quote. This
> paragraph has two lines.
>
> 1. This is a list inside a block quote.
> 2. Second item.
.EE
.PP
حالت \(lqتنبل\(rq (lazy)، که تنها در سطر نخست هر بلوک به نویسه \f[CR]>\f[R] نیاز دارد نیز مجاز است:
.IP
.EX
> This is a block quote. This
paragraph has two lines.
> 1. This is a list inside a block quote.
2. Second item.
.EE
.PP
در میان عناصر بلوکی که میتوانند در یک نقلقول بلوکی قرار گیرند، نقلقولهای بلوکی دیگر نیز وجود دارند.
بدین معنی که نقلقولهای بلوکی میتوانند تودرتو باشند:
.IP
.EX
> This is a block quote.
>
> > A block quote within a block quote.
.EE
.PP
اگر پس از نویسه \f[CR]>\f[R] یک فاصله اختیاری بیاید، آن فاصله بخشی از نشانگر نقلقول بلوکی به شمار میآید و نه بخشی از دندانهگذاری محتوا.
بنابراین، برای قرار دادن یک بلوک کد دندانهدار در یک نقلقول بلوکی، به پنج فاصله پس از \f[CR]>\f[R] نیاز دارید:
.IP
.EX
> code
.EE
.SS افزونه: \f[CR]blank_before_blockquote\f[R]
دستور زبان اصلی Markdown به یک سطر خالی پیش از نقلقول بلوکی نیاز ندارد.
اما Pandoc به این سطر خالی نیاز دارد (البته به جز در ابتدای سند).
دلیل این الزام آن است که احتمال دارد نویسه \f[CR]>\f[R] بهطور تصادفی (شاید به دلیل شکستن خودکار سطرها) در ابتدای یک سطر قرار گیرد.
بنابراین، مگر در صورتی که از قالب \f[CR]markdown_strict\f[R] استفاده شود، مورد زیر در pandoc یک نقلقول بلوکی تودرتو تولید نمیکند:
.IP
.EX
> This is a block quote.
>> Not nested, since \(gablank_before_blockquote\(ga is enabled by default
.EE
.SS بلوکهای کد عیناللفظی (Verbatim)
.SS بلوکهای کد دندانهدار (Indented code blocks)
بلوکی از متن که به اندازه چهار فاصله (یا یک تب) دندانهدار شده باشد، به عنوان متن عیناللفظی (verbatim) در نظر گرفته میشود: به این معنا که نویسههای ویژه باعث اعمال قالببندی خاصی نمیشوند، و تمامی فاصلهها و شکستهای سطر حفظ میگردند.
برای مثال،
.IP
.EX
if (a > 3) {
moveShip(5 * gravity, DOWN);
}
.EE
.PP
دندانهگذاری اولیه (چهار فاصله یا یک تب) بخشی از متن verbatim به شمار نمیآید و در خروجی حذف میشود.
.PP
نکته: سطرهای خالی درون متن عیناللفظی نیازی به شروع با چهار فاصله ندارند..SS بلوکهای کد محصور (Fenced code blocks)
.SS افزونه: \f[CR]fenced_code_blocks\f[R]
علاوه بر بلوکهای کد تورفتهٔ استاندارد، pandoc از بلوکهای کد \f[I]محصور\f[R] نیز پشتیبانی میکند.
این بلوکها با سطری شامل سه یا چند تیلدا (\f[CR]\(ti\f[R]) آغاز میشوند و با سطری از تیلداها پایان مییابند که باید حداقل به اندازهٔ سطر آغازین طولانی باشد.
تمام آنچه بین این خطوط قرار گیرد به عنوان کد در نظر گرفته میشود.
هیچ تورفتگی لازم نیست:
.IP
.EX
\(ti\(ti\(ti\(ti\(ti\(ti\(ti
if (a > 3) {
moveShip(5 * gravity, DOWN);
}
\(ti\(ti\(ti\(ti\(ti\(ti\(ti
.EE
.PP
مانند بلوکهای کد معمولی، بلوکهای کد محصور نیز باید با خطوط خالی از متن اطراف جدا شوند.
.PP
اگر خود کد حاوی سطری از تیلداها یا بکتیکها باشد، کافی است از سطر طولانیتری از تیلداها یا بکتیکها در ابتدا و انتها استفاده کنید:
.IP
.EX
\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti
\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti
code including tildes
\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti
\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti
.EE
.SS افزونه: \f[CR]backtick_code_blocks\f[R]
مشابه \f[CR]fenced_code_blocks\f[R] است، اما به جای تیلدا (\f[CR]\(ti\f[R]) از بکتیک (\f[CR]\(ga\f[R]) استفاده میکند.
.SS افزونه: \f[CR]fenced_code_attributes\f[R]
در صورت تمایل، میتوانید با استفاده از این نحو، ویژگیهایی را به بلوک کد محصور یا با بکتیک ضمیمه کنید:
.IP
.EX
\(ti\(ti\(ti\(ti {#mycode .haskell .numberLines startFrom=\(dq100\(dq}
qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++
qsort (filter (>= x) xs)
\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti\(ti
.EE
.PP
در اینجا \f[CR]mycode\f[R] یک شناسه، \f[CR]haskell\f[R] و \f[CR]numberLines\f[R] کلاس، و \f[CR]startFrom\f[R] یک ویژگی با مقدار \f[CR]100\f[R] است.
برخی از قالبهای خروجی میتوانند از این اطلاعات برای انجام برجستهسازی نحو (syntax highlighting) استفاده کنند.
در حال حاضر، تنها قالبهای خروجی که از این اطلاعات استفاده میکنند عبارتند از HTML، LaTeX، Docx، Ms و PowerPoint.
اگر برجستهسازی برای قالب خروجی و زبان شما پشتیبانی شود، بلوک کد بالا به صورت برجستهشده و با خطوط شمارهگذاریشده نمایش داده خواهد شد.
(برای مشاهدهٔ اینکه کدام زبانها پشتیبانی میشوند، دستور \f[CR]pandoc \-\-list\-highlight\-languages\f[R] را وارد کنید.)
در غیر این صورت، بلوک کد بالا به شکل زیر ظاهر خواهد شد:
.IP
.EX
...
.EE
.PP
کلاس \f[CR]numberLines\f[R] (یا \f[CR]number\-lines\f[R]) باعث شمارهگذاری خطوط بلوک کد میشود که از \f[CR]1\f[R] یا مقدار ویژگی \f[CR]startFrom\f[R] آغاز میگردد.
کلاس \f[CR]lineAnchors\f[R] (یا \f[CR]line\-anchors\f[R]) باعث میشود خطوط در خروجی HTML به صورت لنگرهای قابل کلیک درآیند.
.PP
همچنین میتوان از یک شکل میانبر برای مشخص کردن زبان بلوک کد استفاده کرد:
.IP
.EX
\(ga\(ga\(gahaskell
qsort [] = []
\(ga\(ga\(ga
.EE
.PP
این معادل است با:
.IP
.EX
\(ga\(ga\(ga {.haskell}
qsort [] = []
\(ga\(ga\(ga
.EE
.PP
این شکل میانبر را میتوان با ویژگیها نیز ترکیب کرد:
.IP
.EX
\(ga\(ga\(gahaskell {.numberLines}
qsort [] = []
\(ga\(ga\(ga
.EE
.PP
که معادل است با:
.IP
.EX
\(ga\(ga\(ga {.haskell .numberLines}
qsort [] = []
\(ga\(ga\(ga
.EE
.PP
اگر افزونهٔ \f[CR]fenced_code_attributes\f[R] غیرفعال باشد، اما ورودی شامل ویژگی(های) کلاس برای بلوک کد باشد، اولین ویژگی کلاس بعد از حصار آغازین به صورت یک کلمهٔ ساده چاپ خواهد شد.
.PP
برای جلوگیری از تمام برجستهسازیها، از گزینهٔ \f[CR]\-\-syntax\-highlighting=none\f[R] استفاده کنید.
برای تنظیم سبک یا شیوهٔ برجستهسازی، از \f[CR]\-\-syntax\-highlighting\f[R] استفاده کنید.
برای اطلاعات بیشتر در مورد برجستهسازی، بخش «برجستهسازی نحو (Syntax highlighting)» را در ادامه ببینید.
.SS بلوکهای خطی (Line blocks)
.SS افزونه: \f[CR]line_blocks\f[R]
بلوک خطی دنبالهای از خطوط است که با یک خط عمودی (\f[CR]|\f[R]) و به دنبال آن یک فاصله آغاز میشود.
تقسیمبندی به خطوط، و همچنین فاصلههای ابتدایی، در خروجی حفظ خواهند شد؛ در غیر این صورت، خطوط به صورت Markdown قالببندی میشوند.
این ویژگی برای ابیات شعر و نشانیها سودمند است:
.IP
.EX
| The limerick packs laughs anatomical
| In space that is quite economical.
| But the good ones I\(aqve seen
| So seldom are clean
| And the clean ones so seldom are comical
| 200 Main St.
| Berkeley, CA 94718
.EE
.PP
در صورت نیاز، خطوط میتوانند شکست سخت (hard\-wrap) داشته باشند، اما سطر ادامهیافته باید با یک فاصله آغاز شود.
.IP
.EX
| The Right Honorable Most Venerable and Righteous Samuel L.
Constable, Jr.
| 200 Main St.
| Berkeley, CA 94718
.EE
.PP
قالببندی درونخطی (مانند تأکید) در محتوا مجاز است (اگرچه نمیتواند از مرزهای خط عبور کند).
قالببندی در سطح بلوک (مانند نقلقولهای بلوکی یا فهرستها) شناخته نمیشود.
.PP
این نحو از reStructuredText به امانت گرفته شده است..SS "فهرستها (Lists)"
.SS "فهرستهای نشانهدار (Bullet lists)"
یک فهرست نشانهدار فهرستی از موارد نشانهدار است.
یک مورد از فهرست نشانهدار با یک نشانه (\f[CR]*\f[R]، \f[CR]+\f[R]،
یا \f[CR]\-\f[R]) آغاز میشود.
در اینجا یک مثال ساده آورده شده است:
.IP
.EX
* one
* two
* three
.EE
.PP
این کار یک فهرست \(lqفشرده\(rq تولید میکند.
اگر یک فهرست \(lqباز\(rq میخواهید که در آن هر مورد به صورت یک
پاراگراف قالببندی شود، بین موارد خطوط خالی قرار دهید:
.IP
.EX
* one
* two
* three
.EE
.PP
نیازی نیست که نشانهها حتماً همتراز با حاشیه سمت چپ باشند؛ آنها میتوانند
یک، دو، یا سه فاصله تورفتگی داشته باشند.
پس از هر نشانه باید نویسه فاصله (whitespace) قرار گیرد.
.PP
موارد فهرست زمانی بهترین ظاهر را دارند که خطوط بعدی با خط اول
(پس از نشانه) همتراز باشند:
.IP
.EX
* here is my first
list item.
* and my second.
.EE
.PP
اما Markdown یک ساختار \(lqتنبل\(rq را نیز مجاز میداند:
.IP
.EX
* here is my first
list item.
* and my second.
.EE
.SS "محتوای بلوکی در موارد فهرست (Block content in list items)"
یک مورد فهرست میتواند شامل چندین پاراگراف و سایر محتواهای
سطح بلوک (block\-level) باشد.
با این حال، پیش از پاراگرافهای بعدی باید یک خط خالی وجود داشته باشد و
بهگونهای تورفتگی داشته باشند که با اولین محتوای غیرفاصله پس از نشانگر
فهرست همتراز شوند.
.IP
.EX
* First paragraph.
Continued.
* Second paragraph. With a code block, which must be indented
eight spaces:
{ code }
.EE
.PP
استثنا: اگر پس از نشانگر فهرست یک بلوک کد تورفته قرار گیرد
که باید ۵ فاصله پس از نشانگر فهرست شروع شود، در این صورت پاراگرافهای
بعدی باید دو ستون پس از آخرین نویسه نشانگر فهرست آغاز شوند:
.IP
.EX
* code
continuation paragraph
.EE
.PP
موارد فهرست میتوانند شامل فهرستهای دیگری نیز باشند.
در این حالت خط خالی قبلی اختیاری است.
فهرست تودرتو باید طوری تورفتگی داشته باشد که با اولین نویسه
غیرفاصله پس از نشانگر فهرستِ دربرگیرنده همتراز شود.
.IP
.EX
* fruits
+ apples
\- macintosh
\- red delicious
+ pears
+ peaches
* vegetables
+ broccoli
+ chard
.EE
.PP
همانطور که در بالا اشاره شد، Markdown به شما امکان میدهد موارد فهرست را
به جای ایجاد تورفتگی در خطوط ادامهدهنده، به صورت \(lqتنبل\(rq بنویسید.
با این حال، اگر چندین پاراگراف یا بلوکهای دیگر در یک مورد فهرست وجود
داشته باشد، خط اول هر کدام باید دارای تورفتگی باشد.
.IP
.EX
+ A lazy, lazy, list
item.
+ Another one; this looks
bad but is legal.
Second paragraph of second
list item.
.EE
.SS "فهرستهای مرتب (Ordered lists)"
فهرستهای مرتب دقیقاً مشابه فهرستهای نشانهدار کار میکنند، با این تفاوت که موارد
به جای نشانهها با شمارهگذارها شروع میشوند.
.PP
در Markdown اصلی، شمارهگذارها اعداد دهدهی هستند که پس از آنها یک
نقطه و یک فاصله قرار میگیرد.
خود اعداد نادیده گرفته میشوند، بنابراین تفاوتی بین این فهرست:
.IP
.EX
1. one
2. two
3. three
.EE
.PP
و این یکی وجود ندارد:
.IP
.EX
5. one
7. two
1. three
.EE.SS افزونه: \f[CR]fancy_lists\f[R]
برخلاف Markdown اصلی، pandoc به آیتمهای لیست مرتب اجازه میدهد علاوه بر ارقام عربی، با حروف بزرگ و کوچک و اعداد رومی نیز مشخص شوند.
نشانگرهای لیست ممکن است درون پرانتز قرار گیرند یا پس از آنها یک تکپرانتز راست یا نقطه بیاید.
آنها باید از متنی که در ادامه میآید با حداقل یک فاصله جدا شوند، و اگر نشانگر لیست یک حرف بزرگ همراه با نقطه باشد، با حداقل دو فاصله.
.PP
افزونهی \f[CR]fancy_lists\f[R] همچنین امکان استفاده از `\f[CR]#\f[R]' را به عنوان نشانگر لیست مرتب به جای عدد فراهم میکند:
.IP
.EX
#. one
#. two
.EE
.PP
نکته: نشانگر لیست مرتب `\f[CR]#\f[R]' با \f[CR]commonmark\f[R] کار نمیکند.
.PP
همانند \f[CR]commonmark\f[R]، زیرلیستهای مرتب باید با \f[CR]1\f[R] یا معادل آن (مانند \f[CR]i\f[R] یا \f[CR]a\f[R]) شروع شوند.
این کار به جلوگیری از ایجاد ناخواستهی لیستها بر اثر مواردی مانند تاریخهای درون پرانتز کمک میکند.
.SS افزونه: \f[CR]startnum\f[R]
همچنین pandoc به نوع نشانگر لیست استفادهشده و عدد شروع توجه میکند، و هر دوی این موارد در صورت امکان در قالب خروجی حفظ میشوند.
بنابراین، مورد زیر لیستی با اعداد همراه با یک تکپرانتز، با شروع از 9، و یک زیرلیست با اعداد رومی کوچک ایجاد میکند:
.IP
.EX
9) Ninth
10) Tenth
11) Eleventh
i. subone
ii. subtwo
iii. subthree
.EE
.PP
pandoc هر بار که نوع متفاوتی از نشانگر لیست استفاده شود، لیست جدیدی را آغاز خواهد کرد.
بنابراین، مورد زیر سه لیست ایجاد میکند:
.IP
.EX
(2) Two
(5) Three
1. Four
* Five
.EE
.PP
اگر نشانگرهای پیشفرض لیست مد نظر است، از \f[CR]#.\f[R] استفاده کنید:
.IP
.EX
#. one
#. two
#. three
.EE
.SS افزونه: \f[CR]task_lists\f[R]
pandoc از لیستهای وظایف، با استفاده از نحو GitHub\-Flavored Markdown پشتیبانی میکند.
.IP
.EX
\- [ ] an unchecked task list item
\- [x] checked item
.EE
.SS لیستهای تعاریف (Definition lists)
.SS افزونه: \f[CR]definition_lists\f[R]
pandoc از لیستهای تعاریف، با استفاده از نحو PHP Markdown Extra به همراه برخی افزونهها پشتیبانی میکند.
.IP
.EX
Term 1
: Definition 1
Term 2 with *inline markup*
: Definition 2
{ some code, part of Definition 2 }
Third paragraph of definition 2.
.EE
.PP
هر اصطلاح باید در یک خط جا بگیرد، که میتواند بهصورت اختیاری با یک خط خالی دنبال شود، و باید یک یا چند تعریف به دنبال آن بیاید.
یک تعریف با دونقطه یا تیلدا آغاز میشود، که میتواند با یک یا دو فاصله تورفتگی داشته باشد.
.PP
یک اصطلاح میتواند چندین تعریف داشته باشد، و هر تعریف میتواند از یک یا چند عنصر بلوکی تورفته (پاراگراف، بلوک کد، لیست و غیره) تشکیل شود.
بلوکهای درون تعریف باید به اندازهی ستونِ نخستین محتوای غیرفاصلهای پس از نشانگر \f[CR]:\f[R] یا \f[CR]\(ti\f[R] تورفتگی داشته باشند، یا (در صورتی که افزونهی \f[CR]four_space_rule\f[R] فعال باشد) چهار فاصله یا یک پرش تب.
همانند سایر لیستهای Markdown، میتوانید تورفتگی را در خطوط ادامهی پاراگراف بهصورت «تنبلانه» (\(lqlazily\(rq) نادیده بگیرید:
.IP
.EX
Term 1
: Definition
with lazy continuation.
Second paragraph of the definition.
.EE
.PP
اگر قبل از تعریف فاصله بگذارید (مانند مثال بالا)، متن تعریف به عنوان یک پاراگراف در نظر گرفته خواهد شد.
در برخی از قالبهای خروجی، این امر به معنای فاصلهی بیشتر میان جفتهای اصطلاح/تعریف خواهد بود.
برای داشتن یک لیست تعاریف فشردهتر، فاصلهی قبل از تعریف را حذف کنید:
.IP
.EX
Term 1
\(ti Definition 1
Term 2
\(ti Definition 2a
\(ti Definition 2b
.EE
.PP
توجه داشته باشید که وجود فاصله میان موارد در یک لیست تعاریف الزامی است..SS فهرستهای مثال شمارهگذاریشده
.SS افزونه: \f[CR]example_lists\f[R]
نشانگر ویژهٔ فهرست \f[CR]\(at\f[R] میتواند برای مثالهای شمارهگذاریشدهٔ متوالی استفاده شود.
نخستین مورد فهرست دارای نشانگر \f[CR]\(at\f[R] با «1»، مورد بعدی با «2»، و به همین ترتیب در سرتاسر سند شمارهگذاری خواهد شد.
نیازی نیست مثالهای شمارهگذاریشده در یک فهرست واحد قرار گیرند؛ هر فهرست جدیدی که از \f[CR]\(at\f[R] استفاده کند، شمارهگذاری را از جایی که فهرست پیشین متوقف شده بود پی خواهد گرفت.
بنابراین، برای نمونه:
.IP
.EX
(\(at) My first example will be numbered (1).
(\(at) My second example will be numbered (2).
Explanation of examples.
(\(at) My third example will be numbered (3).
.EE
.PP
مثالهای شمارهگذاریشده میتوانند برچسبگذاری شده و در جاهای دیگر سند مورد ارجاع قرار گیرند:
.IP
.EX
(\(atgood) This is a good example.
As (\(atgood) illustrates, ...
.EE
.PP
برچسب میتواند هر رشتهای از نویسههای الفبایی\-عددی، خط زیر یا خط تیره باشد.
.PP
بندهای ادامهدار در فهرستهای مثال باید فارغ از طول نشانگر فهرست، همواره به اندازهٔ چهار فاصله دندانهدار شوند.
بدین معنا که فهرستهای مثال همواره به گونهای عمل میکنند که گویی افزونهٔ \f[CR]four_space_rule\f[R] فعال است.
چرا که برچسبهای مثال معمولاً طولانی هستند و دندانهدار کردن محتوا تا نخستین نویسهٔ غیرفاصله پس از برچسب، نامناسب و دشوار خواهد بود.
.PP
میتوانید با استفادهٔ مجدد از برچسب یک مثال شمارهگذاریشدهٔ پیشین، آن را تکرار کنید:
.IP
.EX
(\(atfoo) Sample sentence.
Intervening text...
This theory can explain the case we saw earlier (repeated):
(\(atfoo) Sample sentence.
.EE
.PP
با این حال، این شیوه تنها در صورتی بهطور قابلاتکا عمل میکند که مورد تکرارشده به تنهایی در یک فهرست باشد، زیرا هر فهرست مثال شمارهگذاریشده بهصورت پیوسته از شمارهٔ آغازین خود شمارهگذاری خواهد شد.
.SS پایان دادن به یک فهرست
اگر بخواهید یک بلوک کد دندانهدار را پس از یک فهرست قرار دهید چه میشود؟
.IP
.EX
\- item one
\- item two
{ my code block }
.EE
.PP
مشکل!
در اینجا pandoc (مانند سایر پیادهسازیهای Markdown) با \f[CR]{ my code block }\f[R] مانند بند دوم از مورد دوم رفتار میکند، نه به عنوان یک بلوک کد.
.PP
برای «قطع کردن» فهرست پس از مورد دوم، میتوانید مقداری محتوای بدون دندانهگذاری، مانند یک توضیح HTML وارد کنید که خروجی قابل مشاهدهای در هیچ قالبی تولید نمیکند:
.IP
.EX
\- item one
\- item two
{ my code block }
.EE
.PP
اگر به جای یک فهرست بزرگ، دو فهرست پیاپی میخواهید، میتوانید از همین ترفند بهره ببرید:
.IP
.EX
1. one
2. two
3. three
1. uno
2. dos
3. tres
.EE
.SS خطوط افقی
سطری شامل ردیفی از سه یا چند نویسهٔ \f[CR]*\f[R]، \f[CR]\-\f[R]، یا \f[CR]_\f[R] (که به صورت اختیاری با فاصله از هم جدا شدهاند) یک خط افقی ایجاد میکند:
.IP
.EX
* * * *
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
.EE
.PP
اکیداً توصیه میکنیم که خطوط افقی را با خطهای خالی از متنهای پیرامون جدا کنید.
اگر پس از یک خط افقی، خط خالی قرار نگیرد، pandoc ممکن است خطوط بعدی را به عنوان یک بلوک فرادادهٔ YAML یا یک جدول تفسیر کند.
.SS جدولها
میتوان از چهار نوع جدول استفاده کرد.
سه نوع نخست (ساده، چندخطی و شبکهای) نیازمند تراز کردن ستونها هستند و بنابراین استفاده از یک قلم با عرض ثابت، مانند Courier را پیشفرض میگیرند.
نوع چهارم (جدولهای پایپ یا pipe tables) را میتوان با قلمهایی با فاصلهٔ متناسب به کار برد، زیرا نیازی به تراز کردن ستونها ندارد.
.SS افزونه: \f[CR]table_captions\f[R]
میتوان به صورت اختیاری برای هر ۴ نوع جدول، یک عنوان (caption) مشخص کرد (همانطور که در مثالهای زیر نشان داده شده است).
عنوان، بندی است که با رشتهٔ \f[CR]Table:\f[R] (یا \f[CR]table:\f[R] یا صرفاً \f[CR]:\f[R]) آغاز میشود؛ این رشته از ابتدا حذف خواهد شد.
این عنوان میتواند پیش یا پس از جدول ظاهر شود..SS افزونه: \f[CR]simple_tables\f[R]
جدولهای ساده بدین شکل هستند:
.IP
.EX
Right Left Center Default
\-\-\-\-\-\-\- \-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-
12 12 12 12
123 123 123 123
1 1 1 1
Table: Demonstration of simple table syntax.
.EE
.PP
سربرگ و ردیفهای جدول باید هر کدام در یک خط جای گیرند.
تراز ستونها بر اساس موقعیت متن سربرگ نسبت به خطچین زیرین آن تعیین میشود:
.IP \(bu 2
اگر خطچین در سمت راست همراستا با متن سربرگ باشد اما از سمت چپ فراتر از آن امتداد یابد، ستون راستچین است.
.IP \(bu 2
اگر خطچین در سمت چپ همراستا با متن سربرگ باشد اما از سمت راست فراتر از آن امتداد یابد، ستون چپچین است.
.IP \(bu 2
اگر خطچین از هر دو طرف فراتر از متن سربرگ امتداد یابد، ستون وسطچین است.
.IP \(bu 2
اگر خطچین از هر دو طرف همراستا با متن سربرگ باشد، تراز پیشفرض به کار میرود (در بیشتر موارد، چپچین خواهد بود).
.PP
جدول باید با یک خط خالی، یا یک خط متشکل از خطتیرهها که در پی آن یک خط خالی آمده باشد، پایان یابد.
.PP
ردیف سربرگ ستونها را میتوان حذف کرد، به شرطی که از یک خطچین برای پایان جدول استفاده شود.
برای نمونه:
.IP
.EX
\-\-\-\-\-\-\- \-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-
12 12 12 12
123 123 123 123
1 1 1 1
\-\-\-\-\-\-\- \-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-
.EE
.PP
هنگامی که ردیف سربرگ حذف شود، تراز ستونها بر پایهٔ نخستین خط از بدنهٔ جدول مشخص میشود.
بنابراین، در جدولهای بالا، ستونها به ترتیب راستچین، چپچین، وسطچین، و راستچین خواهند بود.
.SS افزونه: \f[CR]multiline_tables\f[R]
جدولهای چندخطی اجازه میدهند تا سربرگ و ردیفهای جدول در چندین خط متنی امتداد یابند (اما خانههایی که در چند ستون یا ردیف از جدول گسترش مییابند پشتیبانی نمیشوند).
در اینجا نمونهای آمده است:
.IP
.EX
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Centered Default Right Left
Header Aligned Aligned Aligned
\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
First row 12.0 Example of a row that
spans multiple lines.
Second row 5.0 Here\(aqs another one. Note
the blank line between
rows.
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Table: Here\(aqs the caption. It, too, may span
multiple lines.
.EE
.PP
این جدولها مانند جدولهای ساده کار میکنند، اما تفاوتهای زیر را دارند:
.IP \(bu 2
باید با ردیفی از خطتیرهها پیش از متن سربرگ آغاز شوند (مگر اینکه ردیف سربرگ حذف شده باشد).
.IP \(bu 2
باید با ردیفی از خطتیرهها و سپس یک خط خالی پایان یابند.
.IP \(bu 2
ردیفها باید به وسیلهٔ خطهای خالی از یکدیگر جدا شوند.
.PP
در جدولهای چندخطی، تجزیهکنندهٔ جدول به عرض ستونها دقت میکند، و نویسندهها (writers) تلاش میکنند تا این عرضهای نسبی را در خروجی بازتولید نمایند.
بنابراین، اگر متوجه شدید که یکی از ستونها در خروجی بیش از حد باریک است، عرض آن را در کد مبدأ Markdown افزایش دهید.
.PP
سربرگ را میتوان همانند جدولهای ساده در جدولهای چندخطی نیز حذف کرد:
.IP
.EX
\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
First row 12.0 Example of a row that
spans multiple lines.
Second row 5.0 Here\(aqs another one. Note
the blank line between
rows.
\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
: Here\(aqs a multiline table without a header.
.EE
.PP
امکانپذیر است که یک جدول چندخطی تنها دارای یک ردیف باشد، اما پس از این ردیف باید یک خط خالی (و سپس ردیف خطتیرههایی که جدول را به پایان میرسانند) بیاید، وگرنه ممکن است جدول به عنوان یک جدول ساده تفسیر شود.
.SS افزونه: \f[CR]grid_tables\f[R]
جدولهای شبکهای بدین شکل هستند:
.IP
.EX
: Sample grid table.
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
| Fruit | Price | Advantages |
+===============+===============+====================+
| Bananas | $1.34 | \- built\-in wrapper |
| | | \- bright color |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
| Oranges | $2.10 | \- cures scurvy |
| | | \- tasty |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
.EE
.PP
ردیف علامتهای \f[CR]=\f[R] سربرگ را از بدنهٔ جدول جدا میکند، و میتوان آن را برای جدولهای بدون سربرگ حذف نمود.
خانههای جدولهای شبکهای میتوانند شامل بلوکهای دلخواه (چندین بند، بلوکهای کد، فهرستها، و غیره) باشند.
.PP
خانهها میتوانند در چند ستون یا ردیف گسترش یابند:
.IP
.EX
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+
| Property | Earth |
+=============+=======+==========+
| | min | \-89.2 °C |
| Temperature +\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+
| 1961\-1990 | mean | 14 °C |
| +\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+
| | max | 56.7 °C |
+\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-+
.EE
.PP
سربرگ جدول میتواند بیش از یک ردیف داشته باشد:
.IP
.EX
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
| Location | Temperature 1961\-1990 |
| | in degree Celsius |
| +\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+
| | min | mean | max |
+=====================+=======+=======+=======+
| Antarctica | \-89.2 | N/A | 19.8 |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+
| Earth | \-89.2 | 14 | 56.7 |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+
.EE
.PP
ترازها را میتوان همانند جدولهای لولهای (pipe tables)، با قرار دادن دونقطهها در لبههای خط جداکننده پس از سربرگ مشخص کرد:
.IP
.EX
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
| Right | Left | Centered |
+==============:+:==============+:==================:+
| Bananas | $1.34 | built\-in wrapper |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
.EE
.PP
در جدولهای بدون سربرگ، دونقطهها به جای آن در خط بالایی قرار میگیرند:
.IP
.EX
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-:+:\-\-\-\-\-\-\-\-\-\-\-\-\-\-+:\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-:+
| Right | Left | Centered |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
.EE
.PP
پاورقی جدول (table foot) را میتوان با محصور کردن آن میان خطوط جداکنندهای که به جای \f[CR]\-\f[R] از \f[CR]=\f[R] استفاده میکنند، تعریف کرد:
.IP
.EX
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
| Fruit | Price |
+===============+===============+
| Bananas | $1.34 |
+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
| Oranges | $2.10 |
+===============+===============+
| Sum | $3.44 |
+===============+===============+
.EE
.PP
پاورقی باید همواره در پایینترین بخش جدول قرار گیرد.
.PP
جدولهای شبکهای را میتوان به آسانی با استفاده از table\-mode در Emacs (\f[CR]M\-x table\-insert\f[R]) ایجاد کرد..SS افزونه: \f[CR]pipe_tables\f[R]
جدولهای پایپ بدین شکل هستند:
.IP
.EX
| Right | Left | Default | Center |
|\-\-\-\-\-\-:|:\-\-\-\-\-|\-\-\-\-\-\-\-\-\-|:\-\-\-\-\-\-:|
| 12 | 12 | 12 | 12 |
| 123 | 123 | 123 | 123 |
| 1 | 1 | 1 | 1 |
: Demonstration of pipe table syntax.
.EE
.PP
ساختار دستوری (syntax) همانند جدولهای PHP Markdown Extra است.
نویسههای پایپ در ابتدا و انتها اختیاری هستند، اما وجود پایپ میان تمام ستونها الزامی است.
دونقطهها همانطور که نشان داده شده است، چینش ستونها را مشخص میکنند.
سرستون (header) را نمیتوان حذف کرد.
برای شبیهسازی یک جدول بدون سرستون، سرستونی با سلولهای خالی قرار دهید.
.PP
از آنجا که پایپها مرزهای ستون را مشخص میکنند، نیازی نیست ستونها همانند مثال بالا بهصورت عمودی تراز شده باشند.
بنابراین، این یک جدول پایپ کاملاً معتبر (هرچند نازیبا) است:
.IP
.EX
fruit| price
\-\-\-\-\-|\-\-\-\-\-:
apple|2.05
pear|1.37
orange|3.09
.EE
.PP
سلولهای جدولهای پایپ نمیتوانند شامل عناصر بلوکی مانند پاراگرافها و فهرستها باشند، و نمیتوانند در چندین سطر امتداد یابند.
اگر هر سطری از منبع Markdown طولانیتر از عرض ستون باشد (به \f[CR]\-\-columns\f[R] مراجعه کنید)، جدول تمام عرض متن را اشغال خواهد کرد و محتوای سلولها شکسته (wrap) میشود؛ در این حالت، عرض نسبی سلولها بر اساس تعداد خطتیرههای موجود در خط جداکننده سرستون جدول از بدنه جدول تعیین میگردد.
(بهعنوان مثال \f[CR]\-\-\-|\-\f[R] ستون اول را ۳/۴ و ستون دوم را ۱/۴ از کل عرض متن قرار میدهد.)
از سوی دیگر، اگر هیچ سطری عریضتر از عرض ستون نباشد، محتوای سلول شکسته نخواهد شد و اندازه سلولها متناسب با محتوای آنها تنظیم میشود.
.PP
نکته: pandoc همچنین جدولهای پایپ به شکل زیر را، همانگونه که توسط orgtbl\-mode در Emacs\(cq تولید میشوند، شناسایی میکند:
.IP
.EX
| One | Two |
|\-\-\-\-\-+\-\-\-\-\-\-\-|
| my | table |
| is | nice |
.EE
.PP
تفاوت در این است که بهجای \f[CR]|\f[R] از \f[CR]+\f[R] استفاده میشود.
سایر ویژگیهای orgtbl پشتیبانی نمیشوند.
بهویژه، برای داشتن چینش ستونی غیر از پیشفرض، باید مانند بالا دونقطه اضافه کنید.
.SS افزونه: \f[CR]table_attributes\f[R]
مشخصهها (attributes) را میتوان با درج آنها در انتهای زیرنویس (caption)، به جدولها پیوست کرد.
(برای ساختار دستوری، به \f[CR]header_attributes\f[R] مراجعه کنید.)
.IP
.EX
: Here\(aqs the caption. {#ident .class key=\(dqvalue\(dq}
.EE
.SS جایگذاری جدول در LaTeX
بهطور پیشفرض، pandoc جدولها را در LaTeX با استفاده از محیط \f[CR]longtable\f[R] رندر میکند.
جدولها \(lqشناور\(rq (float) نخواهند بود و میتوانند در مرزهای صفحه امتداد یابند.
اگر جدولهای استاندارد \(lqشناور\(rq را ترجیح میدهید (که محدود به آنچه در یک صفحه جا میشود هستند)، کلاس \f[CR]float\f[R] را به مشخصههای جدول (که میتواند پس از زیرنویس مشخص شود) اضافه کنید.
بهصورت اختیاری، میتوان از مشخصه \f[CR]latex\-placement\f[R] برای ارسال پارامترهای مؤثر بر جایگذاری شناور استفاده کرد:
.IP
.EX
: The caption of the table. {#ident .float latex\-placement=\(dqht\(dq}
.EE
.PP
توجه داشته باشید که \f[CR]longtable\f[R] با طرحبندیهای دوستونی کار نمیکند، بنابراین اگر در حال تولید یک سند دوستونی با استفاده از LaTeX هستید، باید کلاس \f[CR]float\f[R] را روی هر جدول مشخص کنید، یا از این فیلتر کوچک Lua برای افزودن خودکار آن استفاده نمایید:
.IP
.EX
\f[B]function\f[R] Table(el)
el.classes:insert(\(dqfloat\(dq)
\f[B]return\f[R] el
\f[B]end\f[R]
.EE
.SS بلوکهای متاداده (Metadata blocks)
.SS افزونه: \f[CR]pandoc_title_block\f[R]
اگر فایل با یک بلوک عنوان آغاز شود:
.IP
.EX
% title
% author(s) (separated by semicolons)
% date
.EE
.PP
بهعنوان اطلاعات کتابشناختی تجزیه خواهد شد، نه متن عادی.
(برای مثال در عنوان خروجی مستقل (standalone) در LaTeX یا HTML استفاده خواهد شد.)
این بلوک میتواند فقط شامل یک عنوان، یک تاریخ و یک نویسنده، یا هر سه عنصر باشد.
اگر میخواهید نویسنده بدون عنوان، یا یک عنوان و یک تاریخ بدون نویسنده قرار دهید، به یک سطر خالی نیاز دارید:
.IP
.EX
%
% Author
.EE
.IP
.EX
% My title
%
% June 15, 2006
.EE
.PP
عنوان میتواند چند سطر را اشغال کند، اما سطرهای ادامه باید با فاصله ابتدایی آغاز شوند، بدین صورت:
.IP
.EX
% My title
on multiple lines
.EE
.PP
اگر سندی چند نویسنده داشته باشد، نویسندگان را میتوان در سطرهای جداگانه با فاصله ابتدایی قرار داد، یا با نقطهویرگول (semicolon) از هم جدا کرد، یا از هر دو روش استفاده نمود.
بنابراین، تمام موارد زیر معادل یکدیگرند:
.IP
.EX
% Author One
Author Two
.EE
.IP
.EX
% Author One; Author Two
.EE
.IP
.EX
% Author One;
Author Two
.EE
.PP
تاریخ باید در یک سطر جا شود.
.PP
هر سه فیلد متاداده میتوانند شامل قالببندی درونخطی استاندارد (حروف مورب، پیوندها، پاورقیها و غیره) باشند.
.PP
بلوکهای عنوان همواره تجزیه میشوند، اما فقط زمانی روی خروجی تأثیر میگذارند که گزینه \f[CR]\-\-standalone\f[R] (\f[CR]\-s\f[R]) انتخاب شده باشد.
در خروجی HTML، عنوانها دو بار ظاهر میشوند: یکبار در سربرگ (head) سند\(emاین همان عنوانی است که در بالای پنجره مرورگر ظاهر میشود\(emو یکبار در ابتدای بدنه سند.
عنوان موجود در سربرگ سند میتواند یک پیشوند اختیاری پیوستشده داشته باشد (گزینه \f[CR]\-\-title\-prefix\f[R] یا \f[CR]\-T\f[R]).
عنوان درون بدنه بهصورت یک عنصر H1 با کلاس \(lqtitle\(rq ظاهر میشود، بنابراین میتوان آن را با CSS پنهان کرد یا دوباره قالببندی نمود.
اگر پیشوند عنوان با \f[CR]\-T\f[R] مشخص شده باشد و هیچ بلوک عنوانی در سند وجود نداشته باشد، پیشوند عنوان بهتنهایی بهعنوان عنوان HTML استفاده خواهد شد.
.PP
نویسنده صفحه مان (man page writer) عنوان، شماره بخش صفحه مان، و سایر اطلاعات سربرگ و پانویس را از سطر عنوان استخراج میکند.
فرض میشود عنوان اولین کلمه در سطر عنوان باشد، که میتواند بهصورت اختیاری با یک شماره بخش (تکرقمی) در پرانتز خاتمه یابد.
(نباید هیچ فاصلهای بین عنوان و پرانتز وجود داشته باشد.)
هر چیزی پس از آن، بهعنوان متن اضافی پانویس و سربرگ در نظر گرفته میشود.
برای جداسازی متن پانویس از متن سربرگ باید از یک نویسه خط عمودی منفرد (\f[CR]|\f[R]) استفاده شود.
بدین ترتیب،
.IP
.EX
% PANDOC(1)
.EE
.PP
صفحه مانی با عنوان \f[CR]PANDOC\f[R] و بخش ۱ تولید خواهد کرد.
.IP
.EX
% PANDOC(1) Pandoc User Manuals
.EE
.PP
همچنین عبارت \(lqPandoc User Manuals\(rq را در پانویس خواهد داشت.
.IP
.EX
% PANDOC(1) Pandoc User Manuals | Version 4.0
.EE
.PP
همچنین عبارت \(lqVersion 4.0\(rq را در سربرگ خواهد داشت..SS افزونه: \f[CR]yaml_metadata_block\f[R]
یک بلوک فرادادهٔ YAML یک شیء معتبر YAML است که در بالا با خطی شامل سه خط تیره (\f[CR]\-\-\-\f[R]) و در پایین با خطی شامل سه خط تیره (\f[CR]\-\-\-\f[R]) یا سه نقطه (\f[CR]...\f[R]) محدود میشود.
پس از خط آغازین \f[CR]\-\-\-\f[R] نباید خط خالی قرار گیرد.
یک بلوک فرادادهٔ YAML میتواند در هر کجای سند ظاهر شود، اما اگر در ابتدای سند نباشد، باید پیش از آن یک خط خالی بیاید.
(توجه داشته باشید که از JSON نیز میتوان استفاده کرد، زیرا JSON زیرمجموعهای از YAML است.)
.PP
توجه داشته باشید که به دلیل نحوهٔ الحاق فایلهای ورودی توسط pandoc در صورتی که چند فایل ارائه شده باشد، میتوانید فرادادهها را در یک فایل YAML جداگانه نگهداری کرده و آن را در کنار فایلهای Markdown به عنوان آرگومان به pandoc ارسال کنید:
.IP
.EX
pandoc chap1.md chap2.md chap3.md metadata.yaml \-s \-o book.html
.EE
.PP
تنها مطمئن شوید که فایل YAML با \f[CR]\-\-\-\f[R] آغاز شده و با \f[CR]\-\-\-\f[R] یا \f[CR]...\f[R] خاتمه مییابد.
همچنین، میتوانید از گزینهٔ \f[CR]\-\-metadata\-file\f[R] استفاده کنید.
با این حال، در صورت استفاده از این روش، نمیتوانید به محتوای سند ورودی اصلی Markdown (مانند پاورقیها) ارجاع دهید.
.PP
فراداده از فیلدهای شیء YAML استخراج شده و به فرادادههای موجود سند افزوده خواهد شد.
فراداده میتواند شامل فهرستها و شیءها (با تو در تویی دلخواه) باشد، اما تمام اسکالرهای رشتهای به عنوان Markdown تفسیر خواهند شد.
فیلدهایی که نام آنها به زیرخط (underscore) ختم میشود توسط pandoc نادیده گرفته خواهند شد.
(ممکن است توسط پردازندههای خارجی نقشی به آنها اختصاص داده شود.)
نام فیلدها نباید به عنوان اعداد یا مقادیر بولی YAML قابل تفسیر باشند
(بنابراین، برای مثال، مقادیر \f[CR]yes\f[R]، \f[CR]True\f[R] و \f[CR]15\f[R] نمیتوانند به عنوان نام فیلد استفاده شوند).
.PP
یک سند میتواند شامل چندین بلوک فراداده باشد.
اگر دو بلوک فراداده تلاش کنند فیلد یکسانی را مقداردهی کنند، مقدار بلوک دوم اعمال خواهد شد.
.PP
هر بلوک فراداده در داخل برنامه به صورت یک سند YAML مستقل مدیریت میشود.
این بدان معناست که برای نمونه، لنگرهای (anchors) تعریفشده در یک بلوک نمیتوانند در بلوک دیگری مورد ارجاع قرار گیرند.
.PP
هنگامی که pandoc با \f[CR]\-t markdown\f[R] برای ایجاد یک سند Markdown استفاده میشود، بلوک فرادادهٔ YAML تنها در صورتی ایجاد خواهد شد که گزینهٔ \f[CR]\-s/\-\-standalone\f[R] به کار رفته باشد.
تمام فرادادهها در قالب یک بلوک واحد در ابتدای سند ظاهر خواهند شد.
.PP
توجه داشته باشید که قوانین گریز (escaping) در YAML باید رعایت شوند.
بنابراین، برای مثال، اگر عنوان شامل دونقطه باشد، باید درون نقلقول قرار گیرد، و اگر شامل ممیز وارونه (backslash) است، باید اطمینان حاصل شود که به عنوان توالی گریز YAML در نظر گرفته نشود.
از نویسهٔ خط لوله (\f[CR]|\f[R]) میتوان برای شروع یک بلوک با تورفتگی استفاده کرد که به صورت لفظی و بدون نیاز به گریز تفسیر میشود.
این شکل زمانی لازم است که فیلد شامل خطوط خالی یا قالببندی در سطح بلوک باشد:
.IP
.EX
\-\-\-
title: \(aqThis is the title: it contains a colon\(aq
author:
\- Author One
\- Author Two
keywords: [nothing, nothingness]
abstract: |
This is the abstract.
It consists of two paragraphs.
\&...
.EE
.PP
بلوک لفظی بعد از \f[CR]|\f[R] باید نسبت به خط حاوی \f[CR]|\f[R] دارای تورفتگی باشد.
در غیر این صورت، ساختار YAML نامعتبر خواهد بود و pandoc آن را به عنوان فراداده تفسیر نخواهد کرد.
برای بررسی اجمالی قوانین پیچیدهٔ حاکم بر YAML، مدخل ویکیپدیا دربارهٔ نحو YAML را ببینید.
.PP
متغیرهای الگو به طور خودکار از روی فرادادهها مقداردهی میشوند.
بنابراین، برای مثال، در نگارش HTML، متغیر \f[CR]abstract\f[R] با معادل HTML متن Markdown موجود در فیلد \f[CR]abstract\f[R] مقداردهی خواهد شد:
.IP
.EX
This is the abstract.
It consists of two paragraphs.
.EE
.PP
متغیرها میتوانند شامل ساختارهای دلخواه YAML باشند، اما الگو باید با این ساختار مطابقت داشته باشد.
متغیر \f[CR]author\f[R] در الگوهای پیشفرض انتظار یک فهرست ساده یا رشته را دارد، اما برای پشتیبانی از ساختارهای پیچیدهتر میتواند تغییر داده شود.
برای مثال، ترکیب زیر در صورت مشخص بودن وابستگی سازمانی (affiliation)، آن را به نویسنده اضافه میکند:
.IP
.EX
\-\-\-
title: The document title
author:
\- name: Author One
affiliation: University of Somewhere
\- name: Author Two
affiliation: University of Nowhere
\&...
.EE
.PP
برای استفاده از نویسندگان ساختاریافته در مثال بالا، به یک الگوی سفارشی نیاز خواهید داشت:
.IP
.EX
$for(author)$
$if(author.name)$
$author.name$$if(author.affiliation)$ ($author.affiliation$)$endif$
$else$
$author$
$endif$
$endfor$
.EE
.PP
محتوای خامی که قرار است در سربرگ (header) سند گنجانده شود میتواند با استفاده از \f[CR]header\-includes\f[R] مشخص گردد؛ با این حال، مهم است که این محتوا را با استفاده از افزونهٔ \f[CR]raw_attribute\f[R] به عنوان کد خام برای یک قالب خروجی خاص نشانهگذاری کنید، در غیر این صورت به عنوان Markdown تفسیر خواهد شد.
برای مثال:
.IP
.EX
header\-includes:
\- |
\(ga\(ga\(ga{=latex}
\(rslet\(rsoldsection\(rssection
\(rsrenewcommand{\(rssection}[1]{\(rsclearpage\(rsoldsection{#1}}
\(ga\(ga\(ga
.EE
.PP
نکته: افزونهٔ \f[CR]yaml_metadata_block\f[R] نه تنها با \f[CR]markdown\f[R] بلکه با \f[CR]commonmark\f[R] نیز کار میکند (و به طور پیشفرض در \f[CR]gfm\f[R] و \f[CR]commonmark_x\f[R] فعال است).
با این حال، در \f[CR]commonmark\f[R]، \f[CR]gfm\f[R] و \f[CR]commonmark_x\f[R] محدودیتهای زیر اعمال میشوند:
.IP \(bu 2
بلوک فرادادهٔ YAML باید در ابتدای سند قرار گیرد (و تنها میتواند یکی باشد).
اگر چندین فایل به عنوان آرگومان به pandoc داده شوند، تنها فایل اول میتواند یک بلوک فرادادهٔ YAML باشد.
.IP \(bu 2
گرههای برگ ساختار YAML به طور مجزا از یکدیگر و از بقیهٔ سند تجزیه میشوند.
بنابراین، برای مثال، نمیتوانید در این زمینهها از پیوند ارجاعی استفاده کنید اگر تعریف پیوند در جای دیگری از سند قرار داشته باشد..SS گریز با بکاسلش (Backslash escapes)
.SS افزونه: \f[CR]all_symbols_escapable\f[R]
به جز در درون یک بلوک کد یا کد درونخطی، با هر نشانهٔ نگارشی یا نویسهٔ فاصلهای
که پیش از آن یک بکاسلش آمده باشد به صورت لفظی (literal) رفتار میشود، حتی اگر
در حالت عادی بیانگر قالببندی باشد.
بنابراین، به عنوان مثال، اگر بنویسید
.IP
.EX
*\(rs*hello\(rs**
.EE
.PP
این خروجی حاصل میشود:
.IP
.EX
*hello*
.EE
.PP
به جای
.IP
.EX
hello
.EE
.PP
بهخاطرسپاری این قاعده از قاعدهٔ اصلی Markdown آسانتر است، که در آن
تنها نویسههای زیر مجاز به گریز با بکاسلش هستند:
.IP
.EX
\(rs\(ga*_{}[]()>#+\-.!
.EE
.PP
(با این حال، اگر از قالب \f[CR]markdown_strict\f[R] استفاده شود، قاعدهٔ اصلی
Markdown به کار گرفته خواهد شد.)
.PP
یک فاصلهٔ گریز دادهشده با بکاسلش به عنوان یک فاصلهٔ نشکن (nonbreaking space) تجزیه میشود.
در خروجی TeX، به صورت \f[CR]\(ti\f[R] ظاهر خواهد شد.
در خروجی HTML و XML، به صورت یک نویسهٔ یونیکد لفظی فاصلهٔ نشکن ظاهر میشود
(توجه داشته باشید که از این رو در سورس HTML تولیدشده در واقع \(lqنامرئی\(rq
به نظر میرسد؛ همچنان میتوانید از گزینهٔ خط فرمان \f[CR]\-\-ascii\f[R] استفاده
کنید تا به عنوان یک موجودیت صریح نمایش یابد).
.PP
یک خط جدیدِ گریز دادهشده با بکاسلش (یعنی بکاسلشی که در انتهای یک سطر
میآید) به عنوان یک شکست خط قطعی (hard line break) تجزیه میشود.
در خروجی TeX به صورت \f[CR]\(rs\(rs\f[R] و در HTML به صورت
\f[CR]
\f[R] ظاهر خواهد شد.
این یک جایگزین مناسب برای روش \(lqنامرئی\(rq در Markdown جهت نشان دادن
شکستهای قطعی خط با استفاده از دو فاصله در انتهای سطر است.
.PP
گریزهای بکاسلش در زمینههای عین متن (verbatim) کار نمیکنند.
.SS قالببندی درونخطی (Inline formatting)
.SS تأکید (Emphasis)
برای \f[I]تأکید\f[R] روی بخشی از متن، آن را مانند زیر میان \f[CR]*\f[R] یا
\f[CR]_\f[R] قرار دهید:
.IP
.EX
This text is _emphasized with underscores_, and this
is *emphasized with asterisks*.
.EE
.PP
دو نویسهٔ \f[CR]*\f[R] یا \f[CR]_\f[R] باعث ایجاد \f[B]تأکید قوی (strong emphasis)\f[R] میشود:
.IP
.EX
This is **strong emphasis** and __with underscores__.
.EE
.PP
نویسهٔ \f[CR]*\f[R] یا \f[CR]_\f[R] که با فاصله احاطه شده باشد، یا با
بکاسلش گریز داده شده باشد، تأکید ایجاد نمیکند:
.IP
.EX
This is * not emphasized *, and \(rs*neither is this\(rs*.
.EE
.SS افزونه: \f[CR]intraword_underscores\f[R]
از آنجا که \f[CR]_\f[R] گاهی در داخل کلمات و شناسهها به کار میرود،
pandoc نویسهٔ \f[CR]_\f[R] احاطهشده توسط نویسههای الفباییعددی را به عنوان نشانگر تأکید تفسیر نمیکند.
اگر میخواهید فقط بخشی از یک کلمه را مورد تأکید قرار دهید، از \f[CR]*\f[R] استفاده کنید:
.IP
.EX
feas*ible*, not feas*able*.
.EE
.SS خطخورده (Strikeout)
.SS افزونه: \f[CR]strikeout\f[R]
برای خط زدن روی بخشی از متن با یک خط افقی، ابتدا و انتهای آن را
با \f[CR]\(ti\(ti\f[R] مشخص کنید.
بنابراین، برای مثال،
.IP
.EX
This \(ti\(tiis deleted text.\(ti\(ti
.EE
.SS بالانویسها و زیرنویسها (Superscripts and subscripts)
.SS افزونه: \f[CR]superscript\f[R]، \f[CR]subscript\f[R]
بالانویسها را میتوان با قرار دادن متن مورد نظر در میان نویسههای
\f[CR]\(ha\f[R] نوشت؛ زیرنویسها را نیز میتوان با قرار دادن متن
در میان نویسههای \f[CR]\(ti\f[R] نوشت.
بنابراین، برای مثال،
.IP
.EX
H\(ti2\(tiO is a liquid. 2\(ha10\(ha is 1024.
.EE
.PP
متن میان \f[CR]\(ha...\(ha\f[R] یا \f[CR]\(ti...\(ti\f[R] نباید
حاوی فاصله یا خطوط جدید باشد.
اگر متن بالانویس یا زیرنویس حاوی فاصله باشد، این فاصلهها
باید با بکاسلش گریز داده شوند.
(این قاعده برای جلوگیری از بالانویس یا زیرنویس شدن تصادفی در استفادههای معمولی
از \f[CR]\(ti\f[R] و \f[CR]\(ha\f[R]، و همچنین تداخل نامطلوب با پاورقیها است.)
بنابراین، اگر میخواهید حرف P با عبارت \(lqa cat\(rq در زیرنویس باشد، از
\f[CR]P\(tia\(rs cat\(ti\f[R] استفاده کنید، نه \f[CR]P\(tia cat\(ti\f[R].
.SS عین متن (Verbatim)
برای تبدیل بخشی کوتاه از متن به صورت عین متن (verbatim)، آن را درون بکتیک قرار دهید:
.IP
.EX
What is the difference between \(ga>>=\(ga and \(ga>>\(ga?
.EE
.PP
اگر متن verbatim شامل بکتیک باشد، از دو بکتیک استفاده کنید:
.IP
.EX
Here is a literal backtick \(ga\(ga \(ga \(ga\(ga.
.EE
.PP
(فاصلههای پس از بکتیکهای آغازین و پیش از بکتیکهای پایانی نادیده گرفته خواهند شد.)
.PP
قاعدهٔ کلی این است که یک بخش verbatim با رشتهای از بکتیکهای متوالی
(اختیاراً به همراه یک فاصله در ادامه) آغاز شده و با رشتهای با همان
تعداد بکتیک (اختیاراً به همراه یک فاصله در ابتدا) پایان مییابد.
.PP
توجه داشته باشید که گریزهای بکاسلش (و سایر ساختارهای Markdown) در محیطهای
verbatim کار نمیکنند:
.IP
.EX
This is a backslash followed by an asterisk: \(ga\(rs*\(ga.
.EE.SS افزونه: \f[CR]inline_code_attributes\f[R]
ویژگیها را میتوان همانند بلوکهای کد محصور (fenced code blocks)، به متن درجاشده (verbatim) نیز پیوست کرد:
.IP
.EX
\(ga<$>\(ga{.haskell}
.EE
.SS زیرخط (Underline)
برای خط کشیدن زیر متن، از کلاس \f[CR]underline\f[R] استفاده کنید:
.IP
.EX
[Underline]{.underline}
.EE
.PP
یا، بدون افزونهٔ \f[CR]bracketed_spans\f[R] (اما با
\f[CR]native_spans\f[R]):
.IP
.EX
Underline
.EE
.PP
این مورد در تمامی قالبهای خروجی که از خطزیرین پشتیبانی میکنند کار خواهد کرد.
.SS حروف کاپیتال کوچک (Small caps)
برای نوشتن حروف کاپیتال کوچک، از کلاس \f[CR]smallcaps\f[R] استفاده کنید:
.IP
.EX
[Small caps]{.smallcaps}
.EE
.PP
یا، بدون افزونهٔ \f[CR]bracketed_spans\f[R]:
.IP
.EX
Small caps
.EE
.PP
برای سازگاری با سایر گونههای Markdown، از CSS نیز پشتیبانی میشود:
.IP
.EX
Small caps
.EE
.PP
این مورد در تمامی قالبهای خروجی که از حروف کاپیتال کوچک پشتیبانی میکنند کار خواهد کرد.
.SS برجستهسازی (Highlighting)
برای برجستهسازی متن، از کلاس \f[CR]mark\f[R] استفاده کنید:
.IP
.EX
[Mark]{.mark}
.EE
.PP
یا، بدون افزونهٔ \f[CR]bracketed_spans\f[R] (اما با
\f[CR]native_spans\f[R]):
.IP
.EX
Mark
.EE
.PP
این مورد در تمامی قالبهای خروجی که از برجستهسازی پشتیبانی میکنند کار خواهد کرد.
.SS فرمولهای ریاضی (Math)
.SS افزونه: \f[CR]tex_math_dollars\f[R]
هر چیزی میان دو نویسهٔ \f[CR]$\f[R] به عنوان ریاضیات TeX در نظر گرفته خواهد شد.
علامت \f[CR]$\f[R] آغازین باید بلافاصله در سمت راست خود یک نویسهٔ غیرفاصله داشته باشد، در حالی که \f[CR]$\f[R] پایانی باید بلافاصله در سمت چپ خود یک نویسهٔ غیرفاصله داشته و نباید بلافاصله پس از آن رقمی بیاید.
بنابراین، \f[CR]$20,000 and $30,000\f[R] به عنوان فرمول ریاضی تجزیه نخواهد شد.
اگر بنا به هر دلیلی نیاز دارید که متن را در نویسههای واقعی \f[CR]$\f[R] محصور کنید، آنها را با بکاسلش گریز دهید (\(rs$) تا به عنوان جداکنندههای ریاضی در نظر گرفته نشوند.
.PP
برای ریاضیات نمایشی (display math)، از جداکنندههای \f[CR]$$\f[R] استفاده کنید.
(در این حالت، جداکنندهها میتوانند با فاصله از فرمول جدا شوند.
با این وجود، نباید هیچ خط خالیای میان جداکنندههای بازکننده و پایانیِ
\f[CR]$$\f[R] وجود داشته باشد.)
.PP
ریاضیات TeX در تمامی قالبهای خروجی چاپ خواهد شد.
نحوهٔ رندر شدن آن به قالب خروجی بستگی دارد:
.TP
LaTeX
به صورت کلمهبهکلمه و محصور در \f[CR]\(rs(...\(rs)\f[R] (برای
ریاضی درونخطی) یا \f[CR]\(rs[...\(rs]\f[R] (برای ریاضی نمایشی) ظاهر خواهد شد.
.TP
Markdown, Emacs Org mode, ConTeXt, Txt2Tags, ZimWiki
به صورت کلمهبهکلمه و محصور در \f[CR]$...$\f[R] (برای ریاضی درونخطی)
یا \f[CR]$$...$$\f[R] (برای ریاضی نمایشی) ظاهر خواهد شد.
.TP
XWiki
به صورت کلمهبهکلمه و محصور در
\f[CR]{{formula}}..{{/formula}}\f[R] ظاهر خواهد شد.
.TP
reStructuredText
با استفاده از نقش متن تفسیرشدهٔ \f[CR]:math:\f[R] رندر خواهد شد.
.TP
AsciiDoc
برای خروجی AsciiDoc، ریاضی به صورت کلمهبهکلمه و محصور در
\f[CR]latexmath:[...]\f[R] ظاهر خواهد شد.
برای \f[CR]asciidoc_legacy\f[R]، بخش درون براکت شامل جداکنندههای ریاضی درونخطی یا نمایشی نیز خواهد بود.
.TP
Texinfo
درون یک دستور \f[CR]\(atmath\f[R] رندر خواهد شد.
.TP
roff man, Jira markup
به صورت کلمهبهکلمه بدون علامتهای \f[CR]$\f[R] رندر خواهد شد.
.TP
MediaWiki, DokuWiki
درون برچسبهای \f[CR]