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