DVISVGM(1) dvisvgm Manual DVISVGM(1)
نام (NAME)
dvisvgm - تبدیل فایلهای DVI، EPS و PDF به قالب برداری SVG مبتنی بر XML
خلاصه دستور (SYNOPSIS)
dvisvgm [options] file[.dvi]
dvisvgm --eps [options] file1[.eps] file2[.eps] ...
dvisvgm --pdf [options] file[.pdf]
توضیحات (DESCRIPTION)
ابزار خط فرمانی dvisvgm فایلهای DVI تولیدشده توسط TeX/LaTeX را به قالب
گرافیک برداری مقیاسپذیر مبتنی بر XML به نام SVG تبدیل میکند. این ابزار
از نسخهٔ کلاسیک DVI ۲ و همچنین نسخهٔ ۳ (تولیدشده توسط pTeX در حالت عمودی)
و نسخههای ۵ تا ۷ XeTeX که با عنوان XDV نیز شناخته میشوند، پشتیبانی
میکند. افزون بر دستورات پایهای DVI، برنامهٔ dvisvgm بسیاری از بهاصطلاح
specials را نیز ارزیابی و پردازش میکند که قابلیتهای قالب پایهٔ DVI را به
میزان چشمگیری گسترش میدهند. برای بررسی دقیقتر، بخش Supported Specials
در ادامه را ببینید.
از آنجا که استاندارد فعلی SVG 1.1 گرافیکهای چندصفحهای را تعریف نمیکند،
dvisvgm برای هر صفحهٔ DVI یک فایل SVG جداگانه ایجاد میکند. به دلایل
سازگاری، بهطور پیشفرض تنها صفحهٔ اول تبدیل میشود. برای انتخاب یک صفحهٔ
دیگر یا توالی دلخواهی از صفحات، از گزینهٔ -p که در ادامه شرح داده شده
است استفاده کنید.
قالب SVG یک قالب گرافیکی برداری است و از این رو dvisvgm تلاش میکند تا
خطوط پیرامونی نشانهها (glyphها) را برای تمامی قلمهای ارجاعشده در یک بخش
صفحهٔ DVI به توصیفهای مسیر مقیاسپذیر تبدیل کند. سریعترین راه برای
دستیابی به این هدف، استخراج اطلاعات مسیر از فایلهای قلم برداری موجود در
قالبهای PFB، TTF یا OTF است. اگر dvisvgm بتواند چنین فایلی را بیابد،
تمامی اطلاعات پیرامونی لازم دربارهٔ نشانهها را از آن استخراج میکند.
با این حال، منبع اصلی پیشین TeX برای توصیف قلمها Metafont است که خروجی
نقشهبیتی (بیتمپ) در قالب فایلهای GF تولید میکند. به همین دلیل همهٔ
قلمهای قابل دسترسی TeX در قالبهای مقیاسپذیر موجود نیستند. در این موارد،
dvisvgm تلاش میکند با ردگیری (tracing) بیتمپ نشانهها، خروجی Metafont را
برداریسازی کند. نتایج به اندازهٔ همتایان PFB یا OTF (که بهصورت دستی
بهینهسازی شدهاند) بینقص نیستند، اما با این وجود در بیشتر موارد بسیار
رضایتبخش هستند.
هنگام اجرای dvisvgm بدون گزینهٔ --no-fonts، این ابزار عنصرهای font
(...) ایجاد میکند تا دادههای قلم را درون فایلهای SVG
جاسازی (embed) کند. متأسفانه، تنها تعداد اندکی از رندرکنندههای SVG از
این عنصرها پشتیبانی میکنند. بیشتر مرورگرهای وب و برنامههای گرافیک
برداری آنها را بهدرستی ارزیابی نمیکنند، بهطوری که بخشهای متنی گرافیک
حاصل ممکن است ناهماهنگ به نظر برسند. برای ایجاد فایلهای SVG سازگارتر،
میتوان گزینهٔ خط فرمانی --no-fonts را مشخص کرد تا عنصرهای قلم با مسیرهای
گرافیکی ساده جایگزین شوند. بیشتر مرورگرهای وب (اما تنها تعداد کمی از
رندرکنندههای مستقل SVG) از قلمهای WOFF و WOFF2 نیز پشتیبانی میکنند که
میتوانند به جای قلمهای پیشفرض SVG به کار روند. گزینهٔ --font-format
قابلیت تغییر قالبی که به قلمهای جاسازیشده اعمال میشود را فراهم میکند.
با این حال، این ویژگی تنها برای فایلهای DVI یا فایلهای PDF تبدیلشده از
طریق پردازشگر جدید PDF مبتنی بر mutool کار میکند (پایینتر را ببینید).
متن موجود در فایلهای PostScript همواره به عنصرهای مسیر (path) تبدیل
میشود.
گزینهها (OPTIONS)
برنامهٔ dvisvgm یک رابط خط فرمانی سازگار با POSIX با نامهای گزینهٔ کوتاه
و بلند ارائه میدهد. آنها را میتوان پیش و/یا پس از نام فایل مورد نظر
برای تبدیل وارد کرد. همچنین، ترتیب مشخص کردن گزینهها اهمیتی ندارد، به
این معنی که میتوانید آنها را به هر ترتیبی بدون تغییر در رفتار dvisvgm
اضافه کنید. برخی گزینهها پارامترهای اضافی میپذیرند یا به آنها نیاز
دارند که مستقیماً به گزینهٔ کوتاه چسبانده میشوند یا با فاصله از آن جدا
میشوند (مانند -v0 یا -v 0). گزینههای بلند به یک علامت مساوی اضافی (=)
بین نام گزینه و آرگومان نیاز دارند، اما بدون هیچ فاصلهٔ خالی در اطراف آن
(مانند --verbosity=0). چندین گزینهٔ کوتاه که انتظار پارامترهای بیشتری
ندارند را میتوان پس از یک خط فاصله با هم ترکیب کرد (مانند -ejs به جای
-e -j -s).
نامهای بلند گزینهها را میتوان با حذف نویسههای انتهایی نیز کوتاه کرد، تا
زمانی که نام کوتاهشده همچنان بدون ابهام باشد. برای نمونه، گزینهٔ
--exact-bbox میتواند به --exact، --exa یا --ex کوتاه شود. در صورت وجود
اختصارهای مبهم، dvisvgm یک پیام خطا همراه با تمام نامهای گزینهٔ
مطابقتیافته چاپ میکند.
-b, --bbox=fmt
جعبهٔ محصورکننده (bounding box) گرافیک SVG تولیدشده را روی قالب
مشخصشده تنظیم میکند. این گزینه تنها بر تبدیل فایلهای DVI اثر
میگذارد. اسناد SVG تولیدشده از PDF و PostScript همواره جعبههای
محصورکنندهٔ فایلهای ورودی را به ارث میبرند.
پارامتر fmt یا یکی از مشخصکنندههای قالب فهرستشده در زیر را میپذیرد،
یا توالیای از چهار مقدار طول جداشده با کاما یا فاصله شامل x1، y1،
x2 و y2. مورد دوم، مختصات مطلق دو گوشهٔ قطری جعبهٔ محصورکننده را مشخص
میکند. هر مقدار طول شامل یک عدد ممیز شناور و یک یکای طول اختیاری
است (pt، bp، cm، mm، in، pc، dd، cc یا sp). در صورت حذف یکا،
واحدهای پوینت TeX (pt) در نظر گرفته میشوند.
همچنین امکان ارائهٔ تنها یک مقدار طول l وجود دارد. در این حالت،
کمینهٔ جعبهٔ محصورکننده محاسبه شده و با افزودن (-l,-l) به گوشهٔ
بالا-چپ و (l,l) به گوشهٔ پایین-راست گسترش مییابد.
علاوه بر این، dvisvgm مشخصکنندههای قالب زیر را نیز پشتیبانی میکند:
اندازههای کاغذ بینالمللی DIN/ISO
An، Bn، Cn، Dn، که در آن n یک عدد صحیح غیرمنفی است، مانند A4 یا
a4 برای قالب DIN/ISO A4 (۲۱۰ میلیمتر × ۲۹۷ میلیمتر).
اندازههای کاغذ آمریکای شمالی
invoice، executive، legal، letter، ledger
اندازههای ویژهٔ جعبهٔ محصورکننده
dvi اندازهٔ صفحه ذخیرهشده در فایل DVI
min کمینهترین/فشردهترین جعبهٔ محصورکننده را محاسبه میکند
none هیچ جعبهٔ محصورکنندهای اختصاص داده نمیشود
papersize اندازههای جعبه مشخصشده توسط papersize specials
موجود در فایل DVI
preview دادههای جعبهٔ محصورکننده محاسبهشده توسط بستهٔ preview
(اگر در فایل DVI موجود باشد)
جهتگیری صفحه (Page orientation)
جهتگیری پیشفرض صفحه برای اندازههای کاغذ DIN/ISO و آمریکایی
portrait (عمودی) است، یعنی width < height. افزودن -landscape یا
صرفاً -l به رشتهٔ قالب، حالت را به landscape (افقی) تغییر میدهد
(width > height). به دلایل تقارن، میتوانید بهطور صریح -portrait
یا -p را نیز برای اشاره به قالب پیشفرض عمودی اضافه کنید. توجه
داشته باشید که این پسوندها بخشی از رشتهٔ اندازه هستند و نه
گزینههای جداگانه؛ بنابراین باید مستقیماً پس از مشخصکنندهٔ اندازه
و بدون فاصلهٔ خالی اضافی بیایند. علاوه بر این، پسوندهای جهتگیری
را نمیتوان همراه با dvi، min و none به کار برد.
نکته
گزینهٔ -b, --bbox تنها بر جعبهٔ محصورکننده تأثیر میگذارد و
محتوای صفحه را تغییرشکل نمیدهد. از این رو، در صورت انتخاب
یک قالب افقی، صفحه چرخانده نخواهد شد.
-B, --bitmap-format=fmt
این گزینه قالب تصویری مورد استفاده برای جاسازی بیتمپهای استخراجشده
از دادههای PostScript یا PDF را تعیین میکند. بهطور پیشفرض، dvisvgm
تمام بیتمپها را به صورت تصاویر JPEG جاسازی میکند زیرا فشردهترین
قالب از میان دو قالب پشتیبانیشده توسط SVG است. برای انتخاب قالب
جایگزینِ بدوناتلاف PNG، میتوان از --bitmap-format=png استفاده کرد.
انواع قالبهای دیگری نیز وجود دارند که dvisvgm در حال حاضر از آنها
پشتیبانی میکند، هرچند که jpeg و png باید در بیشتر موارد کافی باشند.
فهرست زیر نمایی کلی از نامهای قالب شناختهشده ارائه میدهد که متناظر
با نامهای دستگاههای خروجی Ghostscript هستند.
none غیرفعال کردن پردازش تصاویر بیتمپ
jpeg قالب JPEG رنگی
jpeggray قالب JPEG در مقیاس خاکستری
png قالب PNG در مقیاس خاکستری یا رنگی ۲۴ بیتی، بسته به فضای
رنگ فعلی
pnggray قالب PNG در مقیاس خاکستری
pngmono قالب PNG سیاهوسفید
pngmonod قالب PNG سیاهوسفید با ترامریزی (dithered)
png16 قالب PNG با رنگ ۴ بیتی
png256 قالب PNG با رنگ ۸ بیتی
png16m قالب PNG با رنگ ۲۴ بیتی
از آنجا که مجموعهٔ دستگاههای خروجی پشتیبانیشده میتواند میان نصبیات
محلی مختلف Ghostscript متغیر باشد، ممکن است همهٔ قالبها در برخی
محیطها در دسترس نباشند. اگر قالب خروجی انتخابشده نیازمند یک دستگاه
خروجی باشد که به صورت محلی پشتیبانی نمیشود، dvisvgm با یک پیام خطای
PostScript خارج میشود.
دو مشخصکنندهٔ قالب JPEG یک پارامتر اختیاری برای تنظیم سطح کیفیت IJG
میپذیرند که باید مستقیماً پس از مشخصکنندهٔ قالب و جداشده با دونقطه
بیاید، مانند --bitmap-format=jpeg:50. مقدار کیفیت یک عدد صحیح بین 0
و 100 است. مقادیر بالاتر منجر به کیفیت تصویر بهتر اما ضریب
فشردهسازی کمتر و در نتیجه فایلهای بزرگتر میشوند. سطح کیفیت پیشفرض
75 است که در صورت تعیین نشدن پارامتر کیفیت یا تنظیم آن روی 0 اعمال
میشود. -C, --cache[=dir]
برای افزایش سرعت فرایند تبدیل قلمهای بیتمپ، dvisvgm اطلاعات
میانی تبدیل را در فایلهای کَش ذخیره میکند. بهطور پیشفرض، این
فایلها در $XDG_CACHE_HOME/dvisvgm/ یا چنانچه XDG_CACHE_HOME
تنظیم نشده باشد، در $HOME/.cache/dvisvgm ذخیره میشوند. اگر مکان
دیگری را ترجیح میدهید، از گزینه --cache برای بازنویسی مقدار
پیشفرض استفاده کنید. علاوه بر این، غیرفعال کردن کامل سازوکار کش
قلم با گزینه --cache=none نیز امکانپذیر است. اگر آرگومان dir
حذف شود، dvisvgm مسیر دایرکتوری پیشفرض کش را همراه با اطلاعات
بیشتر درباره قلمهای ذخیرهشده چاپ میکند. همچنین، فایلهای کش
قدیمی و آسیبدیده حذف میشوند.
-j, --clipjoin
این گزینه به dvisvgm میگوید که تمام تقاطعهای مسیرهای برش
(clipping paths) را خودش محاسبه کند، بهجای اینکه این وظیفه را
به رندرکننده SVG واگذار نماید. فایلهای SVG حاصل سازگاری و
قابلیتحمل بیشتری دارند، زیرا برخی از نمایشدهندههای SVG از تقاطع
مسیرهای برشی که توسط عناصر clipPath حاوی صفت clip-path تعریف
شدهاند پشتیبانی نمیکنند.
--color
رنگیسازی پیامهای چاپشده در حین فرایند تبدیل را فعال میکند.
رنگها را میتوان از طریق متغیر محیطی DVISVGM_COLORS سفارشیسازی
کرد. برای اطلاعات بیشتر، بخش محیط (ENVIRONMENT) در ادامه را
ببینید.
--colornames
بهطور پیشفرض، dvisvgm منحصراً از مقادیر RGB به شکل #RRGGBB یا
#RGB برای نمایش رنگها در فایل SVG استفاده میکند. مورد دوم شکل
کوتاهشدهای برای رنگهایی است که مؤلفههای RGB آنها هر یک از دو
رقم هگزادسیمال یکسان تشکیل شده است؛ برای مثال، #123 برابر است
با #112233. طبق استاندارد SVG، استفاده از نامهای رنگ (مانند
black و darkblue) نیز برای تعداد محدودی از رنگهای از پیش
تعریفشده (https://www.w3.org/TR/SVG11/types.html#ColorKeywords)
امکانپذیر است. بهمنظور اعمال این نامهای رنگ بهجای مقادیر RGB
آنها، dvisvgm را با گزینه --colornames فراخوانی کنید. تمامی
رنگهای فاقد نام رنگ در SVG، همچنان با مقادیر RGB نمایش داده
خواهند شد.
--comments
توضیحاتی (کامنتهایی) را با اطلاعات تکمیلی درباره دادههای منتخب
به فایل SVG میافزاید. در حال حاضر، تنها عناصر قلم و قواعد CSS
قلمِ مرتبط با قلمهای بومی (native) حاشیهنویسی میشوند.
--currentcolor[=color]
این گزینه به dvisvgm میگوید تا رنگ مشخصشده را با متغیر CSS با
نام currentColor جایگزین کند که مقدار رنگ پیشزمینه جاری
تعیینشده توسط ویژگی CSS با نام color را در بر دارد. بدین ترتیب
یک برنامه کاربردی یا وبسایت میتواند رنگ را از طریق CSS تغییر
دهد، بدون آنکه نیازی به تغییر کد SVG باشد.
آرگومان اختیاری --currentcolor مقدار رنگ RGB مورد نظر برای
جایگزینی را مشخص میکند و باید یا به صورت یک مقدار رنگ
هگزادسیمال شش یا سه رقمی (https://www.w3.org/TR/css-
color/#typedef-hex-color) که قبل از آن نویسه # قرار دارد مشخص
شود؛ مانند #0000ff یا #00f برای آبی. در صورت حذف آرگومان
اختیاری، رنگ سیاه به عنوان پیشفرض در نظر گرفته میشود.
--embed-bitmaps
محتوای فایلهای بیتمپ را بهجای افزودن ارجاعهای فایلی، در درون
فایلهای SVG تولیدشده جاسازی میکند. به دلیل دادههای با کدگذاری
base64، فایلهای SVG معمولاً بسیار بزرگتر میشوند، اما همزمان
قابلیتحمل بیشتری دارند زیرا به فایلهای بیتمپ خارجی وابسته
نیستند.
این گزینه تنها بر بیتمپهای ارجاعدادهشده در فایلهای DVI/XDV
تأثیر میگذارد، مثلاً از طریق \includegraphics یا دستور ویژه
dvisvgm:img (پایین را ببینید). بیتمپهای موجود در فایلهای
PostScript یا PDF همواره جاسازی میشوند. همچنین گزینه
bitmap-format را ببینید.
-E, --eps
در صورت ارائه این گزینه، dvisvgm بهجای DVI انتظار یک یا چند
فایل ورودی EPS را دارد و سعی میکند آنها را به SVG تبدیل کند.
برای انجام این کار، یک دستور ویژه psfile ایجاد شده و به
گرداننده ویژه PostScript ارجاع داده میشود. این گزینه تنها در
صورتی در دسترس است که dvisvgm با پشتیبانی فعال از PostScript
ساخته شده باشد، و نیازمند در دسترس بودن Ghostscript است. برای
اطلاعات بیشتر، گزینه --libgs را ببینید.
-e, --exact-bbox
این گزینه به dvisvgm دستور میدهد تا جعبه احاطهکننده (bounding
box) دقیق هر نویسه را محاسبه کند. بهطور پیشفرض، مقادیر ذخیرهشده
در فایل TFM یک قلم برای تعیین حدود یک گلیف مورد استفاده قرار
میگیرند. از آنجا که این مقادیر با هدف جایگذاری بهینه نویسهها در
نظر گرفته شدهاند و نه برای نمایش ابعاد دقیق، لزوماً با مرزهای
بصری گلیفها مطابقت ندارند. در نتیجه، پهنا و/یا ارتفاع برخی
گلیفها ممکن است از مقادیر متناظر در TFM بزرگتر (یا کوچکتر)
باشد. این امر میتواند به بریده شدن نویسهها در مرزهای گرافیک SVG
منجر شود. با ارائه گزینه --exact-bbox، برنامه dvisvgm شکل واقعی
هر نویسه را تحلیل کرده و جعبه احاطهکنندهای معمولاً کاملاً منطبق و
بسته به دست میآورد.
این گزینه تنها بر پردازش فایلهای DVI تأثیر میگذارد. هنگام تبدیل
فایلهای EPS یا PDF، از اطلاعات جعبه احاطهکننده ذخیرهشده در همان
فایلها برای تعیین جعبه احاطهکننده SVG استفاده میشود.
-f, --font-format=format
قالب فایلی را مشخص میکند که برای جاسازی دادههای قلم در خروجی
SVG تولیدشده هنگام تبدیل فایلهای DVI یا PDF به کار میرود. مورد
دوم نیازمند گرداننده جدید PDF مبتنی بر mutool است که در dvisvgm
نگارش 3.0 معرفی شده است (همچنین گزینه --pdf را ببینید). گزینه
--font-format هنگام تبدیل فایلهای PDF یا PostScript با استفاده
از Ghostscript هیچ تأثیری ندارد. در این حالت، قطعههای متنی
موجود در این فایلها همواره به عناصر مسیر (path) تبدیل میشوند.
قالبهای زیر پشتیبانی میشوند: SVG (پیشفرض)، TTF (TrueType)،
WOFF، و WOFF2 (Web Open Font Format نگارش ۱ و ۲). بهطور پیشفرض،
dvisvgm قلمهای بدون بهینهسازی نمایشی (unhinted) ایجاد میکند که
ممکن است در دستگاههایی با وضوح تصویر پایین جلوه نامناسبی داشته
باشند. بهمنظور بهبود کیفیت نمایش، میتوان قلمهای TrueType، WOFF
یا WOFF2 تولیدشده را بهطور خودکار بهینهسازی نمایشی (autohint)
کرد. این بهینهساز خودکار با افزودن ,autohint یا ,ah به قالب قلم
فعال میشود؛ مثلاً --font-format=woff,autohint یا --fwoff,ah. این
قابلیت نیازمند کتابخانه ttfautohint
(https://freetype.org/ttfautohint) است. اگر این کتابخانه موجود
نباشد یا یافت نشود، dvisvgm پیام هشدار مربوطهای صادر میکند.
گزینه --font-format تنها در صورتی در دسترس است که dvisvgm با
پشتیبانی فعال از WOFF ساخته شده باشد.
-m, --fontmap=filenames
یک فایل نگاشت قلم یا توالیای از فایلهای نگاشت قلم را بارگذاری و
ارزیابی میکند. این فایلها برای حل نام فایلهای قلم و رمزگذاریها
(encodings) مورد نیاز هستند. برنامه dvisvgm فایلهای نگاشت
اختصاصی خود را ارائه نمیدهد، بلکه تلاش میکند فایلهای موجود
همراه با dvips یا dvipdfm را بخواند. اگر گزینه --fontmap حذف
شود، dvisvgm فایلهای نگاشت پیشفرض dvisvgm.map، ps2pk.map،
pdftex.map، dvipdfm.map، و psfonts.map را (به همین ترتیب) جستجو
میکند. در غیر این صورت، فایلهای ارائهشده به عنوان آرگومانهای
گزینه به ترتیب مشخصشده ارزیابی میشوند. نامهای متعدد فایلها باید
با کاما و بدون فاصلههای خالی ابتدا و/یا انتها از یکدیگر جدا
شوند.
بهطور پیشفرض، نگاشتهای بازتعریفشده جایگزین موارد قبلی نمیشوند.
با این حال، میتوان در ابتدای هر نام فایل یک مشخصکننده حالت
اختیاری (+، -، یا =) قرار داد تا این رفتار تغییر کند:
+mapfile
تنها آن دسته از مدخلهای فایل نگاشت ارائهشده اعمال میشوند که
یک نگاشت قلم را بازتعریف نکنند؛ یعنی قلمهایی که از قبل
نگاشت شدهاند دستنخورده باقی میمانند. این حالت همچنین در
صورت تعیین نشدن هیچ مشخصکنندهای، حالت پیشفرض است.
-mapfile
تضمین میکند که هیچیک از نگاشتهای قلم تعریفشده در فایل نگاشت
دادهشده استفاده نشوند؛ یعنی نگاشتهای پیشتر تعریفشده برای
قلمهای مشخصشده حذف میشوند.
=mapfile
تمامی نگاشتهای تعریفشده در فایل نگاشت اعمال میشوند. تنظیمات
پیشتر تعریفشده برای همان قلمها جایگزین میگردند.
اگر پیش از نخستین نام فایل در توالی نامها یک مشخصکننده حالت
قرار گیرد، dvisvgm نگاشت قلم پیشفرض را بارگذاری کرده (بالا
را ببینید) و سپس سایر فایلهای نگاشت را اعمال مینماید. در
غیر این صورت، هیچیک از فایلهای نگاشت پیشفرض بهطور خودکار
بارگذاری نخواهند شد.
مثالها: --fontmap=myfile1.map,+myfile2.map فایل myfile1.map
و به دنبال آن myfile2.map را بارگذاری میکند که در آن تمام
بازتعریفهای myfile2.map نادیده گرفته میشوند.
--fontmap==myfile1.map,-myfile2.map فایل نگاشت پیشفرض و به
دنبال آن myfile1.map و myfile2.map را بارگذاری میکند که در
آن تمام بازتعریفهای myfile1.map جایگزین مدخلهای پیشین
میشوند. پس از آن، تمامی تعاریف قلمهای مشخصشده در
myfile2.map از درخت نگاشت قلم حذف میگردند.
برای کسب اطلاعات بیشتر پیرامون قالبهای فایل نگاشت و
مشخصکنندههای حالت، کتابچههای راهنمای dvips
(https://tug.org/texinfohtml/dvips.html) و dvipdfm
(https://ctan.org/tex-archive/dviware/dvipdfm) را مشاهده
کنید.
برنامه dvisvgm از هر دو قالب فایل نگاشت dvips و dvipdfm
پشتیبانی میکند. این برنامه هر دو حالت را با دو دستور
include گسترش میدهد که امکان بارگذاری سایر فایلهای نگاشت را
درون یک فایل نگاشت فراهم میسازند. نحو به صورت زیر است:
#include []
#includefirst []
آنها باید در یک خط جداگانه قرار گیرند و از ستون اول آن خط
آغاز شوند؛ در غیر این صورت، نادیده گرفته میشوند. در حالی که
حالت اول همواره تلاش میکند فایل مشخصشده را بگنجاند،
#includefirst تنها یک بار اجرا میشود؛ بدین معنی که به محض
اینکه یک فایل با موفقیت توسط این دستور گنجانده شد، تمامی
خطوط بعدی #includefirst نادیده گرفته میشوند. این سازوکار
میتواند برای گنجاندن یکی از چندین فایل جایگزین به کار رود،
بهگونهای که نخستین فایل یافتشده بارگذاری میشود و بقیه
نادیده گرفته میشوند.
پارامتر اختیاری (که میتواند +، -، یا = باشد)
چگونگی ادغام دادههای خواندهشده از فایل گنجاندهشده را با
دادههای نگاشت موجود تعیین میکند. عملکرد آنها همانند
مشخصکنندههای حالت شرحدادهشده در بالا است. اگر پارامتر
حذف شود، مقدار پیشفرض آن + خواهد بود.
نام فایل یا مسیر فایل در ادامه، فایل مورد نظر برای گنجاندن
را مشخص میکند. در مورد نامهای فایل ساده (بدون مشخصکنندههای
مسیر)، فایلها با استفاده از قابلیت جستجوی فایل TeX پیدا
میشوند؛ بدین معنی که فایلهای موجود در ساختار درختی
دایرکتوری TeX را میتوان بهآسانی اضافه کرد. مسیرهای نسبی
نسبت به مکان فایل حاوی دستور #include محاسبه میشوند.
مؤلفههای مسیر حتی در سیستمهای Windows نیز باید با اسلش رو
به جلو (/) از هم جدا شوند.
مثالها: #include pdftex.map به دنبال pdftex.map در
دایرکتوری کاری جاری و در ساختار درختی دایرکتوری TeX میگردد.
از سوی دیگر، دستور #include ./pdftex.map تنها در همان
دایرکتوری که فایل دربرگیرنده در آن قرار دارد، به دنبال
pdftex.map میگردد.
--grad-overlap
به dvisvgm میگوید که هنگام تقریبزدن پر کردن گرادیان رنگی،
بخشهای شبکهای همپوشان ایجاد کند (همچنین گزینهٔ
--grad-segments را در زیر ببینید). بهطور پیشفرض، بخشهای
مجاور همپوشانی ندارند و تنها مانند کاشیهای جداگانه مماس با
یکدیگرند. با این حال، اگر رندرکنندهٔ SVG برای ایجاد خطوط
مرزیِ صاف از anti-aliasing استفاده کند، این چینش میتواند
منجر به ایجاد شکافهای قابل مشاهده میان بخشها شود، چرا که
رنگ پسزمینه معمولاً روی رنگ مرز بخشها تأثیر میگذارد. یک راه
برای جلوگیری از این موضوع و ایجاد نواحی رنگی کاملاً پیوسته،
بزرگتر کردن بخشها به گونهای است که به درون ناحیهٔ همسایگان
راست و پایین خود امتداد یابند. از آنجا که بخشهای مجاور روی
قسمتهای همپوشان رسم میشوند، اندازهٔ قابل مشاهدهٔ تمام بخشها
بدون تغییر باقی میماند. تنها شکافهای قبلی ناپدید میشوند،
چرا که پسزمینه اکنون کاملاً با رنگهای درست پوشانده شده است.
در حال حاضر، dvisvgm بخشهای همپوشان را بهطور جداگانه برای
هر وصله (patch) از مش محاسبه میکند (یک patch mesh ممکن است
شامل چندین وصله از یک نوع باشد). بنابراین، ممکن است همچنان
شکافهای قابل مشاهدهای در محل اتصال دو وصلهٔ مجاور وجود داشته
باشد.
--grad-segments=number
حداکثر تعداد بخشها در هر ستون و سطر را که برای تقریبزدن پر
کردن گرادیان رنگی استفاده میشود، مشخص میکند. از آنجا که SVG
1.1 تنها از زیرمجموعهٔ کوچکی از الگوریتمهای سایهزنی
(shading) موجود در PostScript پشتیبانی میکند، dvisvgm برخی
از آنها را با تقسیم ناحیهٔ مورد نظر به بخشهای کوچکتر و تکرنگ
(monochromatic) تقریب میزند. به هر یک از این بخشها میانگین
رنگ ناحیهای که پوشش میدهد اختصاص مییابد. بنابراین، افزایش
تعداد بخشها منجر به ایجاد نواحی تکرنگ کوچکتر و در نتیجه
تقریب بهتری از گرادیان رنگی واقعی میشود. با این حال، افزایش
بخشها عیب ایجاد فایلهای SVG بزرگتر را در پی دارد، زیرا هر
بخش با یک عنصر path جداگانه نمایش داده میشود.
در حال حاضر، dvisvgm از مشهای وصلهٔ مثلثی با فرم آزاد
(free-form) و شبکهای (lattice-form) و نیز مشهای وصلهٔ Coons
و tensor-product پشتیبانی میکند. این موارد با تقسیم مساحت
هر وصله به یک شبکهٔ n×n از بخشهای کوچکتر تقریب زده میشوند.
حداکثر تعداد بخشها در هر سطر و ستون را میتوان با گزینهٔ
--grad-segments تغییر داد.
--grad-simplify=delta
اگر اندازهٔ بخشهای ایجادشده برای تقریب گرادیان رنگی از مقدار
دلتای مشخصشده کمتر شود، dvisvgm سطح جزئیات آنها را کاهش
میدهد. برای نمونه، منحنیهای بزیه (Bézier) با خطوط مستقیم
جایگزین میشوند و بخشهای مثلثی به چهارضلعیها تبدیل میگردند.
برای یک delta کوچک، این سادهسازیها معمولاً قابل توجه نیستند
اما اندازهٔ فایلهای SVG تولیدشده را بهطور چشمگیری کاهش
میدهند.
-h, --help[=mode]
خلاصهای کوتاه از تمام گزینههای در دسترس خط فرمان را چاپ
میکند. پارامتر اختیاری mode یک مقدار عددی صحیح بین 0 و 2
است. این پارامتر نحوهٔ نمایش متن راهنما را مشخص میکند. حالت
0 همهٔ گزینهها را به همراه سربرگ هر بخش، در دستهبندیهای
جداگانه فهرست میکند. این حالت همچنین رفتار پیشفرض در صورت
فراخوانی dvisvgm بدون پارامتر است. حالت 1 همهٔ گزینهها را بر
پایهٔ نامهای کوتاه مرتب میکند، در حالی که حالت 2 خطوط را بر
اساس نامهای بلند گزینهها مرتب میسازد.
مقادیر داخل کروشه پس از متن توضیحات، پارامتر پیشفرض گزینه
را نشان میدهند. این مقادیر در صورتی اعمال میشوند که گزینهای
با یک پارامتر اجباری استفاده نشود یا اگر یک پارامتر اختیاری
حذف گردد. برای نمونه، گزینهٔ --bbox به یک پارامتر اندازه
نیاز دارد که در صورت استفاده نشدن از --bbox مقدار پیشفرض آن
min است. گزینهٔ --zip که بهطور پیشفرض اعمال نمیشود، یک
پارامتر اختیاری برای سطح فشردهسازی میپذیرد. در صورت حذف آن،
مقدار پیشفرض ذکرشده یعنی 9 استفاده میشود.
--keep
حذف فایلهای موقت ایجادشده توسط Metafont (معمولاً فایلهای
.gf، .tfm و .log) یا ماژول TrueType/WOFF را غیرفعال میکند.
--libgs=path
این گزینه تنها زمانی در دسترس است که کتابخانهٔ Ghostscript
بهطور مستقیم به dvisvgm پیوند (link) داده نشده باشد و
پشتیبانی از PostScript در طول کامپایل کاملاً غیرفعال نشده
باشد. در این حالت، dvisvgm تلاش میکند کتابخانهٔ اشتراکی GS
را بهطور پویا در زمان اجرا بارگذاری کند. بهطور پیشفرض،
انتظار دارد نام کتابخانه libgs.so.X (در سیستمهای شبهیونیکس،
که در آن X نسخهٔ ABI کتابخانه است) یا
gsdll32.dll/gsdll64.dll (در Windows) باشد. اگر dvisvgm
کتابخانه را پیدا نکند، میتوان از گزینهٔ --libgs برای تعیین
مسیر و نام فایل صحیح استفاده کرد، برای مثال
--libgs=/usr/local/lib/libgs.so.9 یا
--libgs=\gs\gs9.25\bin\gsdll64.dll.
به عنوان جایگزین، همچنین میتوان مسیر را به متغیر محیطی
LIBGS اختصاص داد، مثلاً export
LIBGS=/usr/local/lib/libgs.so.9 یا set
LIBGS=\gs\gs9.25\bin\gsdll63.dll. اولویت LIBGS از گزینهٔ خط
فرمان کمتر است، یعنی اگر --libgs داده شده باشد، dvisvgm
متغیر LIBGS را نادیده میگیرد.
-L, --linkmark=style
روش نشانهگذاری نواحی دارای پیوند (hyperlink) را انتخاب
میکند. آرگومان style میتواند یکی از مقادیر none، box و line
را بگیرد، که box حالت پیشفرض است؛ یعنی در صورت حذف گزینهٔ
--linkmark، یک مستطیل دور ناحیهٔ پیوند دادهشده رسم میشود.
آرگومان سبک line تنها لبهٔ پایینی مستطیل محاطی را رسم میکند،
و none به dvisvgm میگوید هیچ شیء مرئیای به پیوندها اضافه
نکند. خطها و جعبهها رنگ متن فعلی را به خود میگیرند. برای
اعمال یک رنگ ثابت و متفاوت، میتوان یک دونقطه به همراه شناسهٔ
رنگ را به رشتهٔ سبک اضافه کرد. یک شناسهٔ رنگ یا یک مقدار
هگزادسیمال RGB به شکل #RRGGBB است، یا یک نام رنگ dvips
(https://en.wikibooks.org/wiki/LaTeX/Colors#The_68_standard_colors_known_to_dvips).
علاوه بر این، آرگومان style میتواند یک شناسهٔ رنگ منفرد را
برای برجستهسازی ناحیهٔ پیوند دادهشده با یک جعبهٔ بدون کادر
پرشده با آن رنگ بپذیرد. یک شناسهٔ رنگ دوم اختیاری که با
دونقطه جدا میشود، رنگ کادر را تعیین میکند.
مثالها: box:red یا box:#ff0000 جعبههای قرمزرنگی را دور
نواحی پیوند دادهشده رسم میکنند. yellow:blue مستطیلهای
پرشده با رنگ زرد و با کادرهای آبی ایجاد میکند.
-l, --list-specials
فهرستی از گردانندههای ویژهدستورِ (special handlers) ثبتشده
را چاپ کرده و خارج میشود. هر گرداننده مجموعهای از دستورهای
ویژه متعلق به یک دستهبندی مشخص را پردازش میکند. در بیشتر
موارد، این دستهبندیها با پیشوند دستورهای ویژه مشخص میشوند
که معمولاً یک رشته در ابتدا همراه با یک دونقطه یا فاصله است،
مانند color یا ps. با این حال، نامهای فهرستشده برای
گردانندهها نیازی نیست که با این پیشوندها مطابقت داشته
باشند؛ مثلاً در حالتی که پیشوند مشترکی وجود ندارد یا
قابلیتها به چند گردانندهٔ مجزا تقسیم شدهاند تا بتوان آنها را
بهطور جداگانه با استفاده از گزینهٔ --no-specials غیرفعال
کرد. تمام دستورهای ویژهای که توسط یکی از گردانندهها پوشش
داده نشوند، در سکوت نادیده گرفته میشوند.
-M, --mag=factor
ضریب بزرگنمایی اعمالشده همراه با فراخوانیهای Metafont پیش
از ردگیری (tracing) نشانهها (glyphs) را تنظیم میکند. هر چه
این مقدار بزرگتر باشد، نتایج ردگیری بهتر خواهد بود. با این
حال، مقادیر بزرگنمایی زیاد میتوانند به دلیل سرریز عددی،
باعث خطاهای محاسباتی در Metafont شوند. بنابراین، از این
گزینه با احتیاط استفاده کنید. تنظیمات پیشفرض معمولاً نتایج
مطلوبی تولید میکند.
--message=text
پس از نوشته شدن یک فایل SVG، پیام مشخصشده را در کنسول چاپ
میکند. آرگومان text میتواند شامل متن ایستا و همچنین
ماکروهای فهرستشده در بخش توضیحات دستور ویژهٔ dvisvgm:raw در
زیر باشد. برای نمونه، --message="page {?pageno} written to
{?svgfile}" پس از تبدیل هر صفحه از یک فایل DVI یا PDF، یا
پس از پردازش یک فایل EPS، این پیام را با ماکروهای بسطیافته
چاپ میکند.
خروجی گزینهٔ --message تحت تأثیر سطح پرگویی (verbosity
level) مشخصشده قرار نمیگیرد، یعنی dvisvgm این متن را حتی با
--verbosity=0 نیز چاپ میکند.
--no-merge
هر نویسه را در یک عنصر text مجزا به همراه ویژگیهای متناظر x
و y قرار میدهد. بهطور پیشفرض، عناصر جدید text یا tspan تنها
زمانی ایجاد میشوند که یک رشته در مکانی شروع شود که با
موقعیت معمول تعریفشده توسط مقادیر پیشروی (advance values)
نویسهها تفاوت داشته باشد.
--no-mktexmf
از تولید فایلهای فونت ناموجود جلوگیری میکند. اگر dvisvgm
نتواند از طریق سازوکار جستجوی kpathsea یک فایل فونت را
بیابد، ابزارهای خارجی mktextfm یا mktexmf را فراخوانی
میکند. این گزینه این فراخوانیها را غیرفعال میسازد.
-n, --no-fonts[=variant]
اگر این گزینه مشخص شود، dvisvgm عناصر font در SVG ایجاد
نمیکند و در عوض از مسیرها ( paths ) استفاده میکند. فایلهای
SVG حاصل معمولاً حجم بیشتری دارند، اما همزمان با بیشتر
برنامههایی که از فونتهای SVG پشتیبانی نمیکنند سازگارتر
هستند. آرگومان اختیاری variant روش جایگزینی فونتها با
مسیرها را انتخاب میکند. گونهٔ 0 برای جلوگیری از موارد تکراریِ
طولانی، عناصر path و use ایجاد میکند. گونهٔ 1 تنها عناصر
path میسازد. گزینهٔ --no-fonts گزینهٔ --no-styles را نیز در
بر دارد.
-c, --scale=sx[,sy]
محتوای صفحه را بهصورت افقی با sx و بهصورت عمودی با sy
مقیاسبندی میکند. این گزینه معادل -TSsx,sy است.
-S, --no-specials[=names]
پردازش دستورهای ویژهٔ جاسازیشده در فایل DVI را غیرفعال
میکند. اگر پارامتر دیگری داده نشود، تمام ویژهدستورها نادیده
گرفته میشوند. برای غیرفعال کردن دستهای مشخص از ویژهدستورها،
میتوان فهرستی اختیاری از نامها که با کاما از هم جدا شدهاند
را به این گزینه اضافه کرد. یک name شناسهٔ یکتایی است که به
گردانندهٔ ویژهدستور مورد نظر، همانگونه که توسط گزینهٔ
--list-specials فهرست شده است، ارجاع میدهد.
--no-styles
بهطور پیشفرض، dvisvgm برای ارجاع به فونتها، سبکهای CSS و
ویژگیهای class ایجاد میکند. این روش فشردهتر از اضافه کردن
مکرر اطلاعات کامل فونت به تکتک عناصر متنی است. با این حال،
اگر ارجاع مستقیم به فونتها را ترجیح میدهید، رفتار پیشفرض را
میتوان با گزینهٔ --no-styles غیرفعال کرد. -O,
--optimize[=modules]
چندین بهینهسازی را روی درخت SVG تولیدشده اعمال میکند تا
اندازه فایل کاهش یابد. این بهینهسازیها با اجرای
پودمانهای بهینهساز جداگانهای که توسط آرگومان اختیاری
modules مشخص میشوند، انجام میپذیرند. این آرگومان
میتواند شامل نام یک پودمان منفرد یا فهرستی از چندین نام
پودمان جداشده با کاما باشد. پودمانهای مربوطه یکی پس از
دیگری به ترتیبِ دادهشده اجرا میشوند و بدین ترتیب درخت
XML را به تدریج تبدیل میکنند. یک خط تیره در ابتدا (-)
میتواند برای مستثنی کردن یک پودمان از پردازش به کار
رود. برای نمونه -Oall,-collapse-groups تمام بهینهسازیها
را به جز collapse-groups انجام میدهد. اگر نام نخستین
پودمان در فهرست با خط تیره آغاز شود، dvisvgm به صورت
خودکار all را در ابتدا درج میکند؛ یعنی
-O-collapse-groups همانند -Oall,-collapse-groups است.
فهرست زیر پودمانهای بهینهساز موجود در حال حاضر را شرح
میدهد.
list
تمام پودمانهای بهینهساز موجود را فهرست کرده و خارج
میشود.
none
اگر این آرگومان داده شود، dvisvgm هیچ بهینهسازیای
اعمال نمیکند. none نمیتواند با سایر نامهای پودمان
ترکیب شود.
all
تمام بهینهسازیهای فهرستشده در زیر را انجام میدهد.
این حالت همچنین پیشفرض است اگر گزینه --optimize
بدون هیچ آرگومانی استفاده شود. پودمانها با ترتیبی
از پیش تعریفشده اجرا میشوند که معمولاً به بهترین
نتایج منجر میشود. all باید تنها ورودی یا نخستین
ورودی در فهرست نامهای پودمان باشد.
collapse-groups
عناصر گروه تودرتو (...) را که هر کدام تنها
شامل یک صفت منفرد هستند، ادغام میکند. در صورت
امکان، صفتهای گروه به بیرونیترین عنصر زیردرختِ
پردازششده منتقل میشوند. این پودمان همچنین عناصر
گروهی را که اصلاً هیچ صفتی ندارند باز (unwrap)
میکند.
group-attributes
برای صفتهای مشترک، گروههایی (...) در اطراف
عناصر مجاور ایجاد میکند. هر صفت به یک گروه جداگانه
منتقل میشود تا صفتهای مشترکِ چندگانه به گروههای
تودرتو منجر شوند. این گروهها را میتوان پس از آن با
اعمال پودمان بهینهساز collapse-groups ادغام کرد.
الگوریتم تنها ویژگیهای ارثبرنده، مانند fill یا
stroke-width را در نظر میگیرد و تنها در صورتی آنها
را از یک عنصر حذف میکند که هیچیک از صفتهای دیگر،
مانند id، مانع این کار نشوند.
reassign-clippaths
تمام عناصر clipPath را که تنها در شناسه (ID) خود
تفاوت دارند جمعآوری میکند. پس از آن، موارد تکراری
حذف میشوند بهگونهای که تنها یکی باقی بماند. تمام
صفتهای clip-path که به یکی از موارد تکراری ارجاع
میدهند، مطابق با آن بهروزرسانی میشوند.
remove-clippaths
تمام عناصر زاید clipPath را حذف میکند. این
بهینهسازی در نگارشهای پیشین dvisvgm نیز وجود داشت و
همواره بهطور پیشفرض اعمال میشد. این رفتار حفظ شده
است، یعنی dvisvgm این پودمان را حتی اگر گزینه
--optimize داده نشده باشد، اجرا میکند. میتوانید از
آرگومان none برای جلوگیری از آن استفاده کنید.
simplify-text
اگر یک عنصر text تنها شامل گرههای فاصلهساز و عناصر
tspan باشد، تمام صفتهای ارثبرنده مشترکِ عناصر اخیر
به عنصر متنی دربرگیرنده منتقل میشوند. تمام عناصر
tspan بدون صفتهای بیشتر، باز (unwrap) میشوند؛ یعنی
برچسبهای tspan حذف میگردند.
simplify-transform
تلاش میکند تمام صفتهای transform را کوتاه کند. این
پودمان دستورهای تبدیل هر صفت را ترکیب کرده و ماتریس
تبدیل بهدستآمده را به دنبالهای از تبدیلات پایهای،
یعنی انتقال (translation)، مقیاسگذاری (scaling)،
چرخش (rotation) و اریبکردن (skewing) تجزیه میکند.
اگر این دنباله کوتاهتر از عبارت معادل matrix باشد،
به صفت اختصاص مییابد. در غیر این صورت، عبارت
ماتریسی استفاده میشود.
-o, --output=pattern
الگویی را تنظیم میکند که نام فایلهای SVG تولیدشده را
تعیین مینماید و میتواند به صورت اختیاری شامل مسیر فایل
نیز باشد. پارامتر الزامی pattern میتواند شامل دنبالهای
دلخواه از نویسهها باشد که نام فایلها یا مسیرهای فایل را
به صورت نسبی نسبت به دایرکتوری کاری جاری تشکیل میدهند.
به استثنای متغیرها و عبارات ذکرشده در زیر، تمام نویسهها
به عنوان بخشهای ایستا از نام فایلها/پوشهها در نظر گرفته
میشوند و بنابراین برای همه صفحاتی که طی یک اجرای
dvisvgm پردازش میشوند یکسان هستند. رشتههای %f، %p، %P،
%n، %N، %hd، %ho و %hc متغیرهایی هستند که میتوانند به
عنوان بخشی از الگو استفاده شوند. %f به نام پایه فایل
DVI، یعنی نام فایل بدون پسوند باز میشود؛ %p شماره صفحه
جاری است و %P تعداد کل صفحات در فایل DVI است. متغیرهای
%n و %N به ترتیب به شماره فایلی که در حال حاضر تبدیل
میشود (با شروع از ۱) و تعداد کل فایلهای دادهشده باز
میشوند.
یک عدد اختیاری (۰-۹) که مستقیماً پس از علامت درصدِ یک
متغیر عددی مشخص میشود، حداقل تعداد رقمهای ایجادشده را
نشان میدهد. اگر مقداری از ارقام کمتری تشکیل شده باشد،
آن عدد با صفر در ابتدا پر میشود. مثال: %3p ۳ رقم را
برای شماره صفحه جاری اجبار میکند (۰۰۱، ۰۰۲ و غیره).
بدون یک مشخصکننده صریح پهنا، %p به همان تعداد رقمهای %P
رقم دریافت میکند.
اگر به کنترل بیشتری روی شمارهگذاری نیاز دارید، میتوانید
از عبارات حسابی به عنوان بخشی از الگو استفاده کنید. نحو
آن به صورت %(expr) است که در آن expr میتواند شامل جمع،
تفریق، ضرب و تقسیم اعداد صحیح با اولویتهای عملگری
متداول باشد. متغیرهای p و P به ترتیب شامل شماره صفحه
جاری و تعداد کل صفحات هستند. برای نمونه،
--output="%f-%(p-1)" نام فایلهایی ایجاد میکند که
شمارهگذاری آنها به جای ۱ از ۰ آغاز میشود.
متغیرهای %hX شامل مقادیر درهمسازی (هش) متفاوتی هستند که
از دادههای صفحه DVI و گزینههای ارائهشده در خط فرمان
محاسبه شدهاند. %hd و %hc تنها در صورتی مقداردهی میشوند
که گزینه --page-hashes وجود داشته باشد. در غیر این
صورت، خالی خواهند بود. برای اطلاعات بیشتر، توضیحات
گزینه --page-hashes را در زیر ببینید.
الگوی پیشفرض %f-%p.svg است اگر فایل DVI بیش از یک صفحه
داشته باشد، و در غیر این صورت %f.svg است. بدین معنا که
یک فایل DVI با نام foo.dvi در صورتی که سندی تکصفحهای
باشد به foo.svg تبدیل میشود. در غیر این صورت، چندین
فایل SVG مانند foo-01.svg، foo-02.svg و غیره تولید
میشوند. در محیطهای Windows، علامت درصد نشاندهنده
متغیرهای محیطی ارجاعزداییشده است، و از این رو باید با
یک علامت درصد دوم محافظت شود، برای مثال
--output=%%f-%%p.
-p, --page=ranges
این گزینه صفحاتی را که باید پردازش شوند انتخاب میکند.
پارامتر ranges شامل فهرستی جداشده با کاما از شماره
صفحات منفرد و/یا بازههای صفحه است. یک بازه صفحه، جفتی
از اعداد است که با خط تیره از هم جدا شدهاند، مانند
5-12. بنابراین، یک توالی صفحه ممکن است به این شکل باشد:
2-4,6,9-12,15. مهم نیست که یک صفحه بیش از یک بار مشخص
شود یا بازههای صفحه همپوشانی داشته باشند. dvisvgm همیشه
شماره صفحات را به ترتیب صعودی استخراج میکند و آنها را
فقط یک بار تبدیل مینماید.
به منظور حفظ سازگاری با نگارشهای پیشین، توالی پیشفرض
صفحات 1 است. از این رو، اگر گزینه --page ذکر نشود،
dvisvgm فقط صفحه نخست را تبدیل میکند و نه کل سند را.
معمولاً، بازههای صفحه شامل دو عدد هستند که نخستین و
آخرین صفحه برای تبدیل را مشخص میکنند. اگر تبدیل باید از
صفحه ۱ آغاز شود، یا تا آخرین صفحه DVI ادامه یابد، عدد
اول یا دوم بازه میتواند به ترتیب حذف شود. مثال:
--page=-10 تمام صفحات تا صفحه ۱۰ را تبدیل میکند،
--page=10- تمام صفحات با شروع از صفحه ۱۰ را تبدیل
میکند. لطفاً توجه داشته باشید که مقادیر صفحه به شماره
صفحات چاپشده روی صفحه مربوطه اشاره ندارند. در عوض،
شمارش فیزیکی صفحات مد نظر است که در آن صفحه اول همواره
شماره ۱ را دریافت میکند.
برای انتخاب آخرین صفحه، میتوان از عبارت %P به جای شماره
صفحه صریح استفاده کرد. این عبارت با شماره آخرین صفحه
جایگزین میشود. برای نمونه، --page=1,%P صفحه اول و آخر
سند را تبدیل میکند.
افزون بر این، عبارات حسابی به صورت %(expr) به جای اعداد
نیز معتبر هستند. مقادیر حاصل همواره به نزدیکترین عدد
صحیح به سمت پایین گرد میشوند. برای اطلاعات بیشتر در
مورد نحو و عملگرهای حسابی پشتیبانیشده، گزینه --output
را ببینید. مثال: --page=%(P-2)- سه صفحه آخر را تبدیل
میکند.
در انتهای توالی بازه، یک مشخصکننده پالایه اختیاری
میتواند افزوده شود تا شماره صفحات خاصی را از توالی حذف
کند. در حال حاضر، دو پالایه :even و :odd پشتیبانی
میشوند که مقادیر پیشین را به ترتیب به اعداد زوج و فرد
محدود میکنند. برای نمونه، --page=1-11,20:even معادل
--page=2,4,6,8,10,20 است. -H, --page-hashes[=params]
اگر این گزینه داده شود، dvisvgm مقادیر درهمسازی
(هش) تمام صفحاتی را که باید پردازش شوند محاسبه
میکند. تا زمانی که محتوای صفحه تغییر نکند، مقدار هش
آن صفحه ثابت میماند. از این ویژگی میتوان برای تعیین
اینکه آیا یک صفحه DVI باید دوباره تبدیل شود یا
میتوان در اجراهای متوالی dvisvgm از آن صرفنظر کرد،
استفاده نمود. این کار با انتقال مقدار هش به متغیر
%hd انجام میشود که در الگوی خروجی قابل دسترسی است
(گزینه --output را ببینید). بهطور پیشفرض، در صورت
داده شدن گزینه --page-hashes، برنامه dvisvgm الگوی
خروجی را به %f-%hd تغییر میدهد. در نتیجه، تمام
نامهای فایل SVG به جای شماره صفحه، حاوی مقدار هش
خواهند بود. هنگام فراخوانی مجدد dvisvgm با گزینه
--page-hashes و همان الگوی خروجی، این برنامه وجود
فایل SVG را که قرار است ایجاد شود بررسی میکند و در
صورت موجود بودن، از تبدیل آن صرفنظر مینماید. این
مورد همچنین برای فراخوانیهای متوالی dvisvgm با
پارامترهای خط فرمان مختلف نیز صدق میکند. اگر
میخواهید تبدیل مجدد یک فایل DVI را که تغییر نکرده
است تحمیل کنید، باید فایلهای SVG مربوطه را از قبل
حذف کنید یا پارامتر replace را اضافه نمایید (پایین
را ببینید). اگر الگوی خروجی را دستی طوری تنظیم کنید
که حاوی مقدار هش نباشد، از تبدیل صرفنظر نخواهد شد.
بهعنوان جایگزین، الگوی خروجی میتواند حاوی متغیرهای
%ho و %hc باشد. %ho به یک هش ۳۲ بیتی گسترش مییابد
که نشاندهنده گزینههای خط فرمان دادهشدهای است که بر
خروجی SVG تولیدشده تأثیر میگذارند، مانند --no-fonts
و --precision. ترکیبهای متفاوتی از گزینهها و
پارامترها منجر به هشهای متفاوتی میشوند. بدین ترتیب
الگوی %f-%hd-%ho نامفایلهایی ایجاد میکند که بسته به
دادههای DVI و گزینههای خط فرمان ارائهشده تغییر
میکنند. متغیر %hc یک هش ترکیبی را ارائه میدهد که از
دادههای DVI و گزینههای خط فرمان محاسبه شده است. طول
آن با %hd یکسان است.
از آنجا که شماره صفحه بهطور پیشفرض بخشی از نام فایل
نیست، صفحات مختلف DVI با محتوای یکسان، نام فایل
یکسانی دریافت میکنند. از این رو، تنها صفحه نخست
تبدیل شده و از بقیه صرفنظر میشود. برای ایجاد
فایلهای جداگانه برای هر صفحه، میتوانید شماره صفحه
را به الگوی خروجی اضافه کنید، مانند
--output="%f-%p-%hc".
بهطور پیشفرض، dvisvgm از الگوریتم هش سریع XXH64
برای محاسبه مقادیر ارائهشده از طریق %hd و %hc
استفاده میکند. هشهای ۶۴ بیتی باید برای اکثر اسناد
با تعداد میانگین صفحات کافی باشند. بهعلاوه، میتوان
از XXH32 و MD5 نیز استفاده کرد. الگوریتم مورد نظر
توسط آرگومان params از گزینه --page-hashes مشخص
میشود. این آرگومان یکی از رشتههای MD5، XXH32 و
XXH64 را میپذیرد، که نامها میتوانند با حروف کوچک
نیز داده شوند، مانند --page-hashes=md5. از نسخه
0.7.1، xxHash یک تابع هش ۱۲۸ بیتی آزمایشی ارائه
میدهد که الگوریتم آن از نسخه 0.8 پایدار شده است.
هنگام استفاده از نسخههای قبل از 0.8، مقادیر هش ۱۲۸
بیتی ممکن است بسته به نسخه xxHash استفادهشده تفاوت
داشته باشند. در صورت در دسترس بودن API مربوطه،
dvisvgm از تابع هش جدید پشتیبانی میکند و گزینه
--page-hashes علاوه بر این مشخصکننده الگوریتم
XXH128 را میپذیرد.
در نهایت، گزینه --page-hashes میتواند آرگومان دومی
را بپذیرد که باید با یک کاما جدا شود. در حال حاضر،
تنها دو پارامتر list و replace ارزیابی میشوند،
مانند --page-hashes=md5,list یا
--page-hashes=replace. هنگامی که list حضور دارد،
dvisvgm هیچ تبدیلی انجام نمیدهد بلکه صرفاً مقادیر هش
%hd و %hc صفحاتی را که با گزینه --page مشخص شدهاند،
فهرست میکند. پارامتر replace برنامه dvisvgm را
وادار میکند تا یک صفحه DVI را حتی در صورتی که فایلی
با نام مقصد از قبل موجود باشد، تبدیل کند.
-P, --pdf
اگر این گزینه داده شود، dvisvgm به جای DVI انتظار
یک فایل ورودی PDF را دارد و تلاش میکند آن را به SVG
تبدیل کند. مشابه تبدیل فایلهای DVI، بهطور پیشفرض
تنها صفحه نخست پردازش میشود. گزینه --page میتواند
برای انتخاب صفحات مختلف، محدودههای صفحه و/یا
توالیهای صفحه استفاده شود.
اگر نسخهای از Ghostscript کمتر از 10.01.0 یافت شود،
dvisvgm از Ghostscript برای پردازش فایل PDF استفاده
میکند. در این حالت، تبدیل با ایجاد یک دستور ویژه
(special) منفرد pdffile تحقق مییابد که به گرداننده
ویژه PostScript در dvisvgm فرستاده میشود. بنابراین،
این گزینه تنها در صورتی در دسترس است که dvisvgm با
پشتیبانی فعال از PostScript ساخته شده باشد، و
نیازمند در دسترس بودن Ghostscript است. برای اطلاعات
بیشتر گزینه --libgs را ببینید.
از نسخه 10.01.0 برنامه Ghostscript به بعد، به دلیل
معرفی یک مفسر جدید PDF، این روش دیگر کار نخواهد
کرد. از این رو، یک ماژول تبدیل جایگزین بر پایه
mutool، ابزاری که بخشی از بسته MuPDF
(https://mupdf.com) است، معرفی شده است. این ماژول
بهطور خودکار فراخوانی میشود در صورتی که نتوان از
Ghostscript استفاده کرد و یک فایل اجرایی فعال
mutool در دایرکتوریای که بخشی از مسیر جستجوی سیستم
است، موجود باشد.
بهعنوان جایگزین، میتوان از متغیر محیطی
DVISVGM_PDF_PROC برای انتخاب پردازنده PDF استفاده
کرد. مقادیر پشتیبانیشده فعلی gs و mutool هستند.
-d, --precision=digits
حداکثر تعداد ارقام اعشار اعمالشده بر مقادیر
مشخصههای ممیز شناور را تعیین میکند. تمام مقادیر
مشخصههای نوشتهشده در فایل(های) SVG تولیدشده بر همین
اساس گرد میشوند. پارامتر digits مقادیر صحیح از 0 تا
6 را میپذیرد، که در آن 0 انتخاب خودکار ارقام اعشار
بااهمیت را فعال میکند. این همچنین مقدار پیشفرض در
صورت فراخوانی dvisvgm بدون گزینه --precision است.
--progress[=delay]
یک نشانگر پیشرفت ساده را فعال میکند که هنگام پردازش
عملیات زمانبر مانند دستورات ویژه PostScript نمایش
داده میشود. این نشانگر پیش از سپری شدن تاخیر
دادهشده (به ثانیه) ظاهر نمیشود. مقدار تاخیر پیشفرض
0.5 ثانیه است.
-r, --rotate=angle
محتوای صفحه را به اندازه angle درجه در جهت عقربههای
ساعت به دور مرکز صفحه میچرخاند. این گزینه معادل
-TRangle است.
-R, --relative
فرمت SVG به شما امکان میدهد تا مسیرهای گرافیکی را
با توالیای از دستورات مسیر مطلق و/یا نسبی تعریف
کنید، یعنی هر دستور یا مختصات مطلق و یا مختصات نسبی
به موقعیت رسم فعلی را انتظار دارد. بهطور پیشفرض،
dvisvgm مسیرهای متشکل از دستورات مطلق ایجاد میکند.
اگر گزینه --relative داده شود، به جای آن دستورات
نسبی ایجاد میشوند. این کار در اکثر موارد اندازه
فایلهای SVG را اندکی کاهش میدهد.
--stdin
به dvisvgm دستور میدهد تا دادههای ورودی DVI یا EPS
را به جای فایل از stdin بخواند. بهعنوان جایگزینی
برای گزینه --stdin، یک خط تیره منفرد (-) میتواند
داده شود. نام پیشفرض فایل SVG تولیدشده stdin.svg
است که میتواند با گزینه --output تغییر یابد.
-s, --stdout
خروجی SVG را در یک فایل نمینویسد، بلکه آن را به
stdout هدایت میکند.
--tmpdir[=path]
در برخی موارد، dvisvgm برای عملکرد صحیح نیاز به
ایجاد فایلهای موقت دارد. این فایلها بهطور پیشفرض به
پوشه موقت سیستم، مانند /tmp در سیستمهای لینوکس،
میروند. گزینه --tmpdir میتواند برای تعیین مکانی
متفاوت استفاده شود. لطفاً توجه داشته باشید که
dvisvgm در صورت عدم وجود این پوشه، آن را ایجاد
نمیکند. بنابراین، باید پیش از اجرای dvisvgm اطمینان
حاصل کنید که این پوشه واقعاً وجود دارد.
به منظور جلوگیری از تداخل فایلهای ناشی از
فراخوانیهای موازی dvisvgm، این برنامه فایلها را
مستقیماً در دایرکتوری مشخصشده نمینویسد، بلکه علاوه
بر آن زیرپوشهای با نام یکتا در آنجا ایجاد میکند که
فایلهای موقت در آن قرار خواهند گرفت. این رفتار را
میتوان با الحاق // یا \\ (در ویندوز) به انتهای نام
دایرکتوری مشخصشده لغو کرد. برای مثال، --tmpdir=.//
فایلهای موقت را مستقیماً در دایرکتوری کاری فعلی
ایجاد میکند، در حالی که --tmpdir=. آنها را در یک
زیرپوشه اختصاصی از دایرکتوری کاری فعلی قرار میدهد.
اگر پارامتر اختیاری path از گزینه --tmpdir حذف شود،
dvisvgm مکان پوشه موقت سیستم را چاپ کرده و خارج
میشود.
-a, --trace-all=[retrace]
این گزینه dvisvgm را وادار میکند تا نه تنها
گلیفهایی را که واقعاً برای رندر صحیح فایل SVG مورد
نیاز هستند – که حالت پیشفرض است – برداری کند، بلکه
تمام گلیفهای تمام قلمهای ارجاع دادهشده در فایل DVI
را پردازش نماید. از آنجا که dvisvgm نتایج ردیابی
برداری را در حافظه موقت (کَش) قلم ذخیره میکند، تمام
تبدیلهای بعدی این قلمها به میزان چشمگیری تسریع
خواهند شد. گزینه بولی retrace تعیین میکند با
گلیفهایی که قبلاً در کَش ذخیره شدهاند چگونه رفتار
شود. بهطور پیشفرض، از این گلیفها صرفنظر میشود.
تنظیم آرگومان retrace روی yes یا true برنامه
dvisvgm را وادار میکند تا دوباره بیتمپهای مربوطه را
ردیابی برداری کند.
نکته
این گزینه تنها زمانی تأثیر دارد که کَش قلم فعال
باشد. بنابراین، --trace-all نمیتواند با گزینه
--cache=none ترکیب شود.
-T, --transform=commands
توالیای از تبدیلهای هندسی را بر محتوای SVG اعمال
میکند. هر تبدیل توسط یک command که با یک حرف بزرگ
آغاز میشود و پس از آن فهرستی از پارامترهای جداشده
با کاما میآید، توصیف میشود. دستورات تبدیل زیر
پشتیبانی میشوند:.PP T tx[,ty]
صفحه را در جهت بردار (tx,ty) انتقال میدهد
(جابهجا میکند). اگر ty حذف شود، ty=0 فرض میشود.
واحد طول مورد انتظار برای tx و ty پوینتهای TeX
است (1pt = 1/72.27in). با این حال، چندین ثابت
برای سادهسازی تبدیل واحدها تعریف شده است (پایین
را ببینید).
S sx[,sy]
صفحه را بهصورت افقی به اندازهٔ sx و بهصورت عمودی
به اندازهٔ sy مقیاسبندی میکند. اگر sy حذف شود،
sy=sx فرض میشود.
R angle[,x,y]
صفحه را در جهت عقربههای ساعت به اندازهٔ angle
درجه حول نقطهٔ (x,y) میچرخاند. اگر آرگومانهای
اختیاری x و y حذف شوند، صفحه بسته به قالب صفحهٔ
انتخابشده حول مرکز خود چرخانده میشود. هنگامی که
گزینهٔ -bnone داده شود، مرکز چرخش مبدا مختصات
(0,0) است.
KX angle
صفحه را در امتداد محور x به اندازهٔ angle درجه
کج (مورب) میکند. آرگومان angle میتواند هر
مقداری بهجز 90+180k داشته باشد، که در آن k یک
عدد صحیح است.
KY angle
صفحه را در امتداد محور y به اندازهٔ angle درجه
کج (مورب) میکند. آرگومان angle میتواند هر
مقداری بهجز 90+180k داشته باشد، که در آن k یک
عدد صحیح است.
FH [y]
صفحه را نسبت به خط افقی گذرنده از نقطهٔ (0,y)
بازتاب (آینه) میکند. حذف آرگومان اختیاری منجر
به y=h/2 میشود، که در آن h نشاندهندهٔ ارتفاع
صفحه است (بخش ثابتهای از پیش تعریفشده در زیر را
ببینید).
FV [x]
صفحه را نسبت به خط عمودی گذرنده از نقطهٔ (x,0)
بازتاب (آینه) میکند. حذف آرگومان اختیاری منجر
به x=w/2 میشود، که در آن w نشاندهندهٔ عرض صفحه
است (بخش ثابتهای از پیش تعریفشده در زیر را
ببینید).
M m1,...,m6
تبدیلی را که توسط ماتریس 3×3 بهصورت
((m1,m2,m3),(m4,m5,m6),(0,0,1)) توصیف شده است
اعمال میکند، که در آن سهتاییهای درونی بیانگر
سطرها هستند.
نکته
تمام دستورات تبدیل گزینهٔ -T, --transform به
ترتیبی که نوشته شدهاند اعمال میشوند.
دستورات چندگانه را میتوان اختیاری با فاصله
از هم جدا کرد. در این حالت کل رشتهٔ تبدیل
باید درون نقلقول دوتایی (double quotes)
قرار گیرد تا یکپارچه بماند. همهٔ پارامترها
عبارتهایی از نوع ممیز شناور هستند. میتوانید
اعداد ساده یا عبارتهای حسابی ترکیبشده با
عملگرهای + (جمع)، - (تفریق)، * (ضرب)، /
(تقسیم) یا % (باقیمانده) را با قواعد معمول
تقدم و شرکتپذیری ارائه دهید. پرانتزها نیز
قابل استفاده هستند.
علاوه بر این، برخی از ثابتهای از پیش
تعریفشده فراهم شدهاند:
ux موقعیت افقی گوشهٔ بالا-چپ صفحه در واحد
پوینت TeX
uy موقعیت عمودی گوشهٔ بالا-چپ صفحه در واحد
پوینت TeX
h ارتفاع صفحه در واحد پوینت TeX (مقدار 0
در صورت استفاده از -bnone)
w عرض صفحه در واحد پوینت TeX (مقدار 0 در
صورت استفاده از -bnone)
افزون بر این، میتوانید از ۹ ثابت طول pt،
bp، cm، mm، in، pc، dd، cc و sp استفاده
کنید، مانند 2cm یا 1.6in. بنابراین، گزینهٔ
-TT1in,0R45 محتوای صفحه را ۱ اینچ به راست
جابهجا کرده و پس از آن ۴۵ درجه حول مرکز
صفحه میچرخاند.
برای تبدیلات منفرد، گزینههای کوتاهنویسی -c،
-t و -r نیز در دسترس هستند. برخلاف دستورات
--transform، ترتیب این گزینهها اهمیتی
ندارد، به همین دلیل نمیتوان توالیهای تبدیل
را با آنها مشخص کرد.
-t, --translate=tx[,ty]
محتوای صفحه را در جهت بردار (tx,ty) جابهجا (انتقال)
میدهد. این گزینه معادل -TTtx,ty است.
-v, --verbosity=level
نوع پیامهای چاپشده در حین اجرای dvisvgm را کنترل
میکند:
0 هیچ پیامی در خروجی چاپ نمیشود
1 فقط پیامهای خطا
2 فقط پیامهای هشدار
4 فقط پیامهای اطلاعرسانی
8 فقط پیامهای کاربر (مثلاً ایجادشده توسط دستور
ویژهٔ dvisvgm:message)
نکته
با جمع کردن این مقادیر میتوانید دستهبندیها را
با هم ترکیب کنید. سطح پیشفرض ۱۵ است، یعنی تمام
پیامها چاپ میشوند.
-V, --version[=extended]
نسخه dvisvgm را چاپ کرده و خارج میشود. اگر
آرگومان اختیاری روی yes تنظیم شده باشد، شماره
نسخه کتابخانههای پیوندیافته نیز چاپ میشود.
-z, --zip[=level]
یک فایل SVG فشرده با پسوند .svgz ایجاد میکند.
آرگومان اختیاری سطح فشردهسازی را مشخص میکند.
مقادیر معتبر در محدوده ۱ تا ۹ هستند (مقدار
پیشفرض ۹ است). مقادیر بزرگتر باعث فشردهسازی
بهتری میشوند اما ممکن است زمان پردازش کمی
بیشتری نیاز داشته باشند.
-Z, --zoom=factor
مقادیر مشخصههای width و height عنصر ریشه SVG را
در آرگومان factor ضرب میکند در حالی که دستگاه
مختصات محتوای گرافیکی حفظ میشود. در نتیجه،
بیشتر نمایشگرهای SVG گرافیک را متناسب با آن
بزرگنمایی یا کوچکنمایی میکنند. اگر یک ضریب منفی
داده شود، مشخصههای width و height حذف میشوند.
دستورهای ویژه پشتیبانیشده (SUPPORTED SPECIALS)
نرمافزار dvisvgm از چندین special command (دستور ویژه) پشتیبانی میکند
که مجموعه دستورهای DVI را با دستورالعملهای اضافی برای ویژگیهایی چون
رنگ، گرافیک و پیوندها غنی میسازد. اصطلاح special command، یا صرفاً
special، از دستور \special{...} در TeX سرچشمه میگیرد که تقریباً هیچ کاری
انجام نمیدهد. نرمافزار TeX فقط آرگومان این دستور را با استفاده از آپکد
متناظر xxx به فایل DVI منتقل میکند، و بدین ترتیب اجرای آن را به درایور
DVI واگذار مینماید. درایور سپس میتواند بسته به عبارتهای پشتیبانیشده،
تصمیم به پردازش یا نادیده گرفتن آن بگیرد. پارامتر دستور \special در TeX
درون آکولاد قرار میگیرد و میتواند شامل یک دنباله نویسه دلخواه باشد که
دستورالعمل واقعی را نشان میدهد، برای مثال color Red.
شایان ذکر است که دستورهای ویژه تنها هنگام پردازش فایلهای DVI ارزیابی
میشوند. فرمتهای PS/EPS و PDF چیزی از مفهوم دستورهای ویژه نمیدانند و
بنابراین سازوکاری برای نمایش آنها ارائه نمیدهند.
به منظور ارزیابی دستورهای ویژه، dvisvgm چندین گرداننده (handler)
اختصاصی را پیادهسازی میکند. هر گرداننده مسئول تمامی عبارتهای ویژه متعلق
به یک مجموعه دستور یکسان است؛ یعنی دستورهایی که معمولاً – اما نه لزوماً –
با یک پیشوند مشترک آغاز میشوند. برای نمونه، تمام دستورهای ویژه PDF با
پیشوند pdf: آغاز میشوند، در حالی که مجموعه دستورهای ویژه TPIC شامل ۱۳
دستور مختلف بدون شناسه مشترک است. دستورهای ویژه PDF توسط گرداننده pdf
در dvisvgm پردازش میشوند و دستورهای TPIC توسط گرداننده tpic. برای
دریافت فهرستی از گردانندههای ویژه ارائهشده، از گزینه --list-specials
استفاده کنید (به بالا مراجعه شود). فهرست زیر نمای کلی از مجموعههای ویژه
در حال حاضر پشتیبانیشده را ارائه میدهد. از نام گردانندهها همچنین میتوان
برای غیرفعال کردن پردازش مجموعههای خاصی از دستورهای ویژه استفاده کرد.
برای اطلاعات بیشتر در این مورد، گزینه --no-specials را ببینید.
bgcolor
عبارتهای ویژه برای تغییر رنگ پسزمینه/صفحه. در حال حاضر، dvisvgm
تنها از عبارت background همانگونه که در راهنمای dvips مشخص شده است
(https://tug.org/texinfohtml/dvips.html#Color-specifications)
پشتیبانی میکند. از آنجا که SVG 1.1 از رنگهای پسزمینه پشتیبانی
نمیکند، dvisvgm مستطیلی با رنگ انتخابشده را درون سند SVG تولیدشده
قرار میدهد. این مستطیل همواره هماندازه جعبه محصورکننده (bounding
box) انتخابشده یا محاسبهشده خواهد بود. این دستور رنگ پسزمینه بخشی
از مجموعه ویژه رنگ است اما به طور جداگانه مدیریت میشود تا کاربر
بتواند آن را خاموش کند.
color
عبارتهای این مجموعه دستورالعملهایی برای تغییر رنگ متن/نقاشی ارائه
میدهند. برای مرور ساختار دقیق، برای مثال به مستندات dvips مراجعه
کنید.
نرمافزار dvisvgm نحو رنگهای ویژه dvips را با دو اصلاحکننده اختیاری
گسترش میدهد تا امکان تفکیک بین رنگهای پرکردن (fill) و خط دور
(stroke) را فراهم سازد، یعنی رنگهایی که به ترتیب برای پر کردن نواحی
محصور و رسم خطوط استفاده میشوند. اگر قبل از یکی از مشخصکنندههای
رنگ، مانند نام رنگ یا مدل رنگی که پس از آن دنبالهای از مؤلفههای رنگ
میآید، fill یا stroke قرار گیرد، تنها رنگ متناظر تغییر مییابد. بدون
این اصلاحکنندهها هر دو رنگ تغییر میکنند. مثال: color push fill rgb
1 0 1 یک جفت رنگ جدید را در پشته رنگ قرار میدهد که در آن رنگ پرکردن
روی magenta تنظیم شده و رنگ خط دور مقدار فعلی خود را حفظ میکند.
color push rgb 1 0 1 یک جفت رنگ را در پشته قرار میدهد که هر دو رنگ
آن روی magenta تنظیم شدهاند.
علاوه بر این، دستور ویژه جدید color set معرفی شده است. نحو آن مشابه
با color push به همراه اصلاحکنندههای اختیاری fill و stroke است. این
دستور به جای قرار دادن یک جفت رنگ جدید در پشته، بالاترین مورد روی
پشته را اصلاح میکند. اگر پشته رنگ خالی باشد، رنگ پیشفرض (سیاه)
fill/stroke تغییر مییابد.
dvisvgm
فهرست زیر مرور کوتاهی بر مجموعه اختصاصی دستورهای ویژه dvisvgm که در
حال حاضر پشتیبانی میشوند ارائه میدهد.
dvisvgm:raw text
یک دنباله دلخواه از گرههای XML را به بخش صفحه سند SVG اضافه
میکند. نرمافزار dvisvgm نحو و تو در تویی صحیح عنصرهای درجشده را
بررسی میکند اما هیچ اعتبارسنجی انجام نمیدهد؛ بنابراین کاربر
باید اطمینان حاصل کند که SVG حاصل همچنان معتبر است. تگهای باز و
بسته میتوانند بین دستورهای ویژه raw مختلف توزیع شوند. خود تگها
نیز میتوانند شکسته شوند اما باید بلافاصله با دستور ویژه raw
بعدی ادامه یابند. هر دو مورد تگهای از نظر نحوی نادرست و تگهای
با تو در تویی اشتباه منجر به پیامهای خطا میشوند.
پارامتر text همچنین میتواند حاوی عبارتهای {?x}، {?y}، {?color}،
{?fillcolor}، {?strokecolor}، {?matrix}، {?pageno}، {?svgfile}
و {?svgpath} باشد که به ترتیب به مختصات فعلی x و y، یک رشته هگز
RGB از رنگ فعال فعلی fill و stroke، ماتریس تبدیل فعلی، شماره
صفحه فعلی، و مسیر نسبی و مطلق فایل SVG در حال ایجاد گسترش
مییابند. {?color} به همان رشته {?fillcolor} گسترش مییابد و
همچنان برای سازگاری با نسخههای قدیمیتر dvisvgm که بین رنگهای
fill و stroke تفاوتی قائل نبودند در دسترس است (اطلاعات مربوط به
دستورهای ویژه رنگ را در زیر ببینید).
از آنجا که SVG از رنگهای CMYK پشتیبانی نمیکند، برای نمونه در
مشخصههای fill و stroke، نرمافزار dvisvgm ماکروی
{?cmyk(c,m,y,k)} را برای ایجاد یک رشته هگز RGB از یک رنگ CMYK
ارائه میدهد. این ماکرو میتواند به جای ترکیبی از دستورهای ویژه
color/PostScript و ماکروهای رنگ، برای درج مستقیم یک مقدار رنگی
CMYK استفاده شود.
دنباله نویسه {?nl} به یک نویسه خط جدید گسترش مییابد. در نهایت،
ساختارهایی به شکل {?(expr)} ارزیابی عبارتهای ریاضی را ممکن
میسازند که میتوانند شامل عملیات پایهای حسابی از جمله باقیمانده
تقسیم (modulo) باشند. همانند بالا، متغیرهای x و y نشاندهنده
مختصات فعلی هستند. عملیات نامعتبر، مانند تقسیم بر صفر، منجر به
پیام خطا در کنسول میشود. مثال: {?(-10*(x+2y)-5)} یک عبارت معتبر
است و به رشته عددی متناظر گسترش مییابد.
dvisvgm:rawdef text
این دستور مشابه dvisvgm:raw است، اما گرههای XML را در بخش
از سند SVG که در حال حاضر تولید میشود قرار میدهد.
dvisvgm:rawset name ... dvisvgm:endrawset
این جفت دستور ویژه، آغاز و پایان تعریف یک قطعه خام نامگذاریشده
SVG را مشخص میکند. تمام دستورهای ویژه dvisvgm:raw و
dvisvgm:rawdef که بین dvisvgm:rawset و dvisvgm:endrawset محصور
شدهاند، بلافاصله ارزیابی نمیشوند بلکه برای استفاده بعدی تحت
name مشخصشده با هم ذخیره میگردند. پس از تعریف، میتوان در سراسر
فایل DVI با استفاده از dvisvgm:rawput به این قطعه نامگذاریشده
ارجاع داد (به زیر مراجعه کنید). دو دستور dvisvgm:rawset و
dvisvgm:endrawset نباید تو در تو باشند؛ یعنی پیش از فراخوانی یک
dvisvgm:rawset دیگر، هر فراخوانی dvisvgm:rawset باید با
فراخوانی متناظر dvisvgm:endrawset دنبال شود. همچنین شناسه name
باید در سراسر فایل DVI یکتا باشد. استفاده چندباره از
dvisvgm:rawset با یک name یکسان منجر به پیامهای هشدار میشود.
dvisvgm:rawput name
قطعات خام SVG که پیشتر تحت name مشخصشده ذخیره شده بودند را درج
میکند. نرمافزار dvisvgm بین قطعاتی که با dvisvgm:raw یا
dvisvgm:rawdef مشخص شدهاند تفاوت قائل میشود و با آنها به شکل
متفاوتی رفتار میکند: هر بار که dvisvgm:rawput فراخوانی شود،
تمام بخشهای dvisvgm:raw را درج میکند، در حالی که بخشهای
dvisvgm:rawdef تنها یک بار به بخش از سند SVG فعلی منتقل
میشوند.
dvisvgm:img width height file
با استفاده از موقعیت گرافیکی فعلی، ماتریس تبدیل، ابعاد مشخصشده
و نام فایل ارائهشده، یک عنصر image ایجاد میکند. این دستور ویژه
همچنین جعبه محصورکننده SVG حاصل را بهروزرسانی میکند تا تصویر
تبدیلیافته را بهطور کامل در بر بگیرد. خود تصویر به گونهای قرار
میگیرد که گوشه پایین سمت چپ تصویر تبدیلنشده در موقعیت گرافیکی
فعلی قرار گیرد. طولهای width و height ابعاد تصویر تبدیلنشده را
مشخص میکنند. برای فهرستی از واحدهای طول پشتیبانیشده به گزینه
--bbox مراجعه کنید. اعداد ساده بدون مشخصکننده واحد، به معنای
پوینتهای TeX هستند (1in = 72.27pt).
پارامتر file میتواند یک نام فایل ساده یا یک مسیر نسبی یا مطلق
از یک فایل باشد. بهطور پیشفرض، dvisvgm صرفاً پیوندهایی ایجاد
میکند که به فایل تصویر ارجاع میدهند، به طوری که رندرکننده SVG
نام فایل یا مسیر را نسبت به مکان فایل SVG تولیدشده ارزیابی
میکند. اگر گزینه --embed-bitmaps داده شود، تصاویر JPEG و PNG
درون سند SVG جاسازی میشوند. از آنجا که این امر نیازمند کدگذاری
base64 دادههای تصویر است، فایلهای SVG حاصل میتوانند بسیار حجیم
شوند.
dvisvgm:bbox lock
جعبه محصورکننده صفحه فعلی را قفل کرده و از بهروزرسانی بیشتر آن
جلوگیری میکند؛ یعنی عناصر گرافیکی که پس از فراخوانی این دستور
ویژه اضافه میشوند، در تعیین وسعت جعبه محصورکننده در نظر گرفته
نمیشوند.
dvisvgm:bbox unlock
جعبه محصورکننده قبلاً قفلشده صفحه فعلی را باز میکند تا با افزودن
عناصر گرافیکی به صفحه، دوباره بهروزرسانی شود. dvisvgm:bbox
n[ew] name
یک کادر احاطهکننده محلی به نام name را تعریف یا بازنشانی
میکند. این نام میتواند شامل حروف و ارقام باشد. هنگام پردازش
یک صفحه DVI، dvisvgm بهطور مداوم کادر احاطهکننده (سراسری)
صفحه جاری را بهروزرسانی میکند تا کوچکترین مستطیل شامل تمام
اجزای مرئی صفحه (نویسهها، تصاویر، عناصر ترسیمی و غیره) را
تعیین کند. علاوه بر کادر احاطهکننده سراسری، کاربر میتواند
تعداد دلخواهی از کادرهای احاطهکننده محلی نامگذاریشده را
درخواست کند. پس از تعریف، این کادرها همراه با کادر
احاطهکننده سراسری، با شروع از نخستین نویسه پس از تعریف،
بهروزرسانی میشوند. بنابراین، میتوان از کادرهای محلی برای
محاسبه وسعت بخشهایی از صفحه استفاده کرد. این قابلیت برای
سناریوهایی که فایل SVG تولیدشده پسپردازش میشود، مفید است.
در ترکیب با دستور ویژه dvisvgm:raw، ماکروی {?bbox name} به
چهار مقدار x، y، w و h (جداشده با فاصله) بسط مییابد که
مختصات گوشه بالا سمت چپ، عرض و ارتفاع کادر محلی name را
مشخص میکنند. اگر کادر name قبلاً تعریف نشده باشد، هر چهار
مقدار برابر با صفر خواهند بود.
dvisvgm:bbox width height [depth] [transform]
کادر احاطهکننده صفحه جاری را با تعبیه یک مستطیل مجازی (x،
y، width، height) که گوشه پایین سمت چپ آن در موقعیت رسم
جاری DVI (x,y) قرار دارد، بهروزرسانی میکند. اگر پارامتر
اختیاری depth مشخص شده باشد، dvisvgm یک مستطیل دوم (x، y،
width، -depth) را تعبیه میکند. طولهای width، height و depth
میتوانند همراه با یک مشخصکننده واحد (گزینه --bbox را
ببینید) یا به صورت اعداد ممیز شناور ساده مشخص شوند. در حالت
دوم، واحدهای پوینت تک فرض میشوند (1in = 72.27pt). بسته به
اندازه و موقعیت مستطیل مجازی، این دستور کادر احاطهکننده کلی
را گسترش میدهد یا آن را همانگونه که هست رها میکند.
بنابراین، کاهش وسعت آن امکانپذیر نیست.
این دستور ویژه قرار است همراه با dvisvgm:raw استفاده شود تا
درگاه دید (viewport) صفحه را بهدرستی بهروزرسانی کند. بهطور
پیشفرض، ابعاد کادر بدون تغییر تخصیص داده میشوند و بهویژه با
دستورات تبدیل تغییر نمیکنند. برای اعمال ماتریس تبدیل جاری،
اصلاحکننده اختیاری transform میتواند در انتهای عبارت دستور
ویژه افزوده شود.
dvisvgm:bbox a[bs] x1 y1 x2 y2 [transform]
این نوع از دستور ویژه bbox، کادر احاطهکننده را با تعبیه یک
مستطیل مجازی (x1,y1,x2,y2) بهروزرسانی میکند. نقاط (x1,y1) و
(x2,y2) نشاندهنده مختصات مطلق دو گوشه قطری مستطیل هستند.
همانند گونه نسبی دستور ویژه شرح داده شده در بالا،
اصلاحکننده اختیاری transform امکان اعمال ماتریس تبدیل جاری
روی کادر احاطهکننده را فراهم میآورد.
dvisvgm:bbox f[ix] x1 y1 x2 y2 [transform]
این نوع از دستور ویژه bbox یک کادر احاطهکننده مطلق (نهایی)
را به SVG حاصل اختصاص میدهد. پس از اجرای این دستور، dvisvgm
دیگر مختصات کادر احاطهکننده را تغییر نمیدهد، مگر اینکه این
دستور ویژه بعداً مجدداً فراخوانی شود. نقاط (x1,y1) و (x2,y2)
نشاندهنده مختصات مطلق دو گوشه قطری مستطیل هستند. همانند
گونه نسبی دستور ویژه شرح داده شده در بالا، اصلاحکننده
اختیاری transform امکان اعمال ماتریس تبدیل جاری روی کادر
احاطهکننده را فراهم میآورد.
قطعهکد TeX زیر دو عنصر خام SVG را به خروجی اضافه کرده و
کادر احاطهکننده را متناسب با آن بهروزرسانی میکند:
\special{dvisvgm:raw }%
\special{dvisvgm:bbox 10bp 10bp 10bp transform}%
\special{dvisvgm:bbox -10bp 10bp 10bp transform}
\special{dvisvgm:raw }%
\special{dvisvgm:bbox abs 10bp 200bp 100bp 250bp transform}
dvisvgm:currentcolor [on|off]
این دستور ویژه عملکردی مشابه با گزینه --currentcolor دارد
اما نیازی به آرگومان صریح رنگ ندارد. در عوض، رنگ فعال کنونی
را دریافت کرده و آن را با currentColor جایگزین میکند.
بنابراین، نتیجه نهایی هم به محل قرارگیری این دستور ویژه و
هم به تغییرات رنگ پیش از آن وابسته است. آرگومان on – که
قابلیت currentColor را فعال میکند – میتواند حذف شود. هنگامی
که با آرگومان off فراخوانی شود، این قابلیت دوباره غیرفعال
میگردد.
dvisvgm:message msg
متن ارائهشده msg را در کنسول چاپ میکند. علاوه بر متن ایستا،
میتواند شامل ماکروهای {?...} ذکرشده در توضیحات dvisvgm:raw
نیز باشد. پیامهای ایجادشده توسط این دستور ویژه را میتوان با
گزینه --verbosity (به بالا مراجعه کنید) فرونشاند.
em
این دستورات ویژه همراه با توزیع emTeX توسط Eberhard Mattes
معرفی شدند. آنها دستورات رسم خط، دستورالعملهایی برای تعبیه
فایلهای تصویری PCX ،MSP و BMP و همچنین دو دستور PCL را فراهم
میکنند. dvisvgm فقط از دستورات رسم خط پشتیبانی میکند و تمام
دیگر دستورات ویژه em را بدون اخطار نادیده میگیرد. شرح نحو این
دستورات را میتوان در مستندات درایور DVI همراه با emTeX
(https://ctan.org/pkg/emtex) یافت.
html
مشخصات hyperref چندین شیوه گوناگون را برای چگونگی علامتگذاری
نواحی پیونددار در یک فایل DVI تعریف میکند. dvisvgm از ساختارهای
دستور ویژه استاندارد HyperTeX به همان شکلی که توسط گزینه
hypertex بسته hyperref ایجاد میشوند، پشتیبانی میکند. بهطور
پیشفرض، تمام نواحی پیونددار سند با یک مستطیل علامتگذاری میشوند.
گزینه --linkmark به شما امکان میدهد این رفتار را تغییر دهید.
برای جزئیات بیشتر به بخشهای بالاتر مراجعه کنید. اطلاعات مربوط
به نحو و معناشناسی دستورات ویژه HyperTeX را میتوان در راهنمای
hyperref (https://ctan.org/pkg/hyperref) یافت.
papersize
دستور ویژه papersize، که افزونهای معرفیشده توسط dvips است،
میتواند برای تعیین عرض و ارتفاع صفحات در فایل DVI استفاده شود.
این دستور بر صفحهای که در آن ظاهر میشود و همچنین بر تمامی صفحات
پس از آن تا زمانی که دستور ویژه papersize دیگری یافت شود، تأثیر
میگذارد. اگر بیش از یک دستور ویژه papersize در یک صفحه وجود
داشته باشد، dvisvgm آخرین مورد را اعمال میکند. با این حال، به
منظور حفظ سازگاری با نسخههای قبلی dvisvgm که این دستورات ویژه
را ارزیابی نمیکردند، پردازش آنها باید صریحاً با افزودن گزینه
--bbox=papersize در خط فرمان فعال شود. در غیر این صورت، dvisvgm
آنها را نادیده گرفته و کادرهای احاطهکننده فشرده را محاسبه
میکند.
pdf
برنامههای pdfTeX و dvipdfmx چندین دستور ویژه مرتبط با تولید
فایلهای PDF را معرفی کردند. در حال حاضر، تنها دستورات ویژه
pdf:mapfile، pdf:mapline، pdf:pagesize و پیوندهای PDF توسط
dvisvgm پشتیبانی میشوند. موارد اخیر، معادلهای PDF برای دستورات
ویژه HyperTeX در HTML هستند. برای نمونه، این دستورات توسط بسته
hyperref در حالت PDF تولید میشوند. اگر یک صفحه DVI حاوی دستورات
ویژه پشتیبانینشده PDF باشد، dvisvgm یک پیام هشدار شامل تعداد
دستورات ویژه نادیدهگرفتهشده چاپ میکند.
دستور pdf:pagesize مشابه دستور ویژه papersize است (بالا را
ببینید) که اندازه صفحه کنونی و تمام صفحات بعدی را تعیین میکند.
به منظور اعمال واقعی این ابعاد بر فایلهای SVG تولیدشده، گزینه
--bbox=papersize باید ارائه شود.
دستورات pdf:mapfile و pdf:mapline امکان تغییر درخت نگاشت فونت
را در طول پردازش فایل DVI فراهم میکنند. این دستورات برای نمونه
توسط CTeX استفاده میشوند. dvisvgm از هر دو قالب نگاشت قلم dvips
و dvipdfm پشتیبانی میکند. برای کسب اطلاعات بیشتر درباره نحو و
مفاهیم این دستور، مستندات \pdfmapfile را در راهنمای کاربر
pdfTeX (https://ctan.org/pkg/pdftex) ببینید.
ps
درایور سرشناس DVI به نام dvips
(https://www.tug.org/texinfohtml/dvips.html) مجموعه دستورات
ویژه اختصاصی خود را برای گنجاندن کدهای PostScript در فایلهای
DVI معرفی کرد، که تواناییهای اسناد DVI را به شدت افزایش میدهد.
یکی از اهداف dvisvgm ارزیابی کامل تمام قطعهکدهای PostScript و
تبدیل هر چه بیشتر آنها به فرمت SVG است. بر خلاف dvips، برنامه
dvisvgm برای محاسبه موقعیت دقیق هر عنصر گرافیکی از محاسبات ممیز
شناور استفاده میکند، یعنی مختصات را گرد نمیکند. از این رو، ممکن
است موقعیت نسبی عناصر گرافیکی اندکی با مقادیر محاسبهشده توسط
dvips متفاوت باشد.
از آنجا که PostScript زبانی نسبتاً پیچیده است، dvisvgm مفسر
اختصاصی خود را برای PostScript پیادهسازی نکرده و به جای آن به
Ghostscript (https://ghostscript.com) متکی است. اگر کتابخانه
Ghostscript به باینری dvisvgm پیوند داده نشده باشد، در زمان
اجرا به شکل پویا جستجو و بارگذاری میشود. در این حالت، dvisvgm
در سیستمهای شبهیونیکس به دنبال libgs.so.X (نسخههای ABI
پشتیبانیشده: 7، 8، 9)، در macOS به دنبال libgs.X.dylib و در
ویندوز به دنبال gsdll32.dll یا gsdll64.dll میگردد. شما میتوانید
با استفاده از متغیر محیطی LIBGS یا گزینه خط فرمان --libgs
نامهای پیشفرض فایل را لغو و بازنویسی کنید. کتابخانه باید از
طریق مسیر جستجوی ld (در شبهیونیکس) یا متغیر محیطی PATH (در
ویندوز) در دسترس باشد. همچنین میتوان مسیر مطلق فایل را مشخص
کرد. اگر کتابخانه یافت نشود، dvisvgm پردازش دستورات ویژه
PostScript را غیرفعال کرده و یک پیام هشدار چاپ میکند. با
استفاده از گزینه --list-specials بررسی کنید که آیا پشتیبانی از
PostScript در دسترس است یا خیر، یعنی ورودی ps وجود دارد یا نه.
پردازشگر PostScript همچنین دادههای کادر احاطهکننده تولیدشده
توسط بسته preview (https://ctan.org/pkg/preview) با گزینه
tightpage را شناسایی و ارزیابی میکند. اگر چنین دادهای در فایل
DVI وجود داشته باشد و dvisvgm با گزینه --bbox=preview فراخوانی
شود، dvisvgm پهنا و ارتفاع کل فایل SVG را بر اساس مقادیر
استخراجشده از دادههای پیشنمایش تنظیم میکند. علاوه بر این، پیامی
حاوی پهنا، ارتفاع و عمق کادر بر حسب واحدهای پوینت تک به کنسول
چاپ میکند. بهویژه، مقدار عمق (depth) میتواند توسط پسپردازشگرها
خوانده شود تا برای نمونه، گرافیکهای SVG را با خط مبنای
(baseline) متن پیرامون در اسناد HTML یا XSL-FO همتراز سازد.
لطفاً توجه داشته باشید که کادرهای احاطهکننده SVG بر اساس یک پهنا
و یک ارتفاع (کل) تعریف میشوند. بر خلاف TeX، فرمت SVG هیچ
سازوکاری برای تفکیک ارتفاع و عمق، یعنی به ترتیب ابعاد عمودی
بالاتر و پایینتر از خط مبنا، ارائه نمیدهد. از این رو، بهطور کلی
امکان استخراج مقدار عمق از خود فایل SVG وجود ندارد.
اگر dvisvgm را با گزینه --bbox=min (پیشفرض) اجرا کنید و دادههای
پیشنمایش در فایل DVI وجود داشته باشند، dvisvgm ابعاد پیشنمایش
را اعمال نمیکند، بلکه کادر احاطهکنندهای را محاسبه میکند که
محتویات صفحه را به صورت فشرده احاطه کند. مقادیر ارتفاع، عمق و
پهنا که در کنسول نوشته میشوند، بر این اساس تطبیق خواهند یافت.
tpic
مجموعه دستورات ویژه TPIC دستورالعملهایی را برای رسم اشکال هندسی
ساده تعریف میکند. برخی بستههای LaTeX، نظیر eepic و tplot، از
این دستورات ویژه برای توصیف نگارهها استفاده میکنند.
dvisvgm file
صفحه نخست file.dvi را به file.svg تبدیل میکند.
dvisvgm -p1-5 file
پنج صفحه نخست file.dvi را به file-1.svg،...،file-5.svg
تبدیل میکند.
dvisvgm -p1- file
تمامی صفحات file.dvi را به فایلهای SVG جداگانه تبدیل میکند.
dvisvgm -p1,3 -O file
صفحات اول و سوم file.dvi را به فایلهای بهینهشده SVG تبدیل
میکند.
dvisvgm - < file.dvi
صفحه نخست file.dvi را به stdin.svg تبدیل میکند، بهطوری که
محتوای file.dvi از stdin خوانده میشود.
dvisvgm -z file
صفحه نخست file.dvi را با سطح فشردهسازی پیشفرض 9 به
file.svgz تبدیل میکند.
dvisvgm -p5 -z3 -ba4-l -o newfile file
صفحه پنجم file.dvi را با سطح فشردهسازی 3 به newfile.svgz
تبدیل میکند. کادر احاطهکننده (bounding box) روی DIN/ISO A4
در قالب افقی (landscape) تنظیم شده است.
dvisvgm --transform="R20,w/3,2h/5 T1cm,1cm S2,3" file
صفحه نخست file.dvi را به file.svg تبدیل میکند که در آن سه
تبدیل (transformation) اعمال میشود.
محیط (ENVIRONMENT)
برنامه dvisvgm از کتابخانه kpathsea برای یافتن فایلهایی که باز میکند
استفاده میکند. از این رو، متغیرهای محیطی شرحدادهشده در مستندات این
کتابخانه بر مبدل تأثیر میگذارند.
اگر dvisvgm بدون کتابخانه Ghostscript پیوند داده شده باشد و پشتیبانی از
PostScript غیرفعال نشده باشد، کتابخانه مشترک Ghostscript هنگام اجرا از
طریق dlopen() جستجو میشود. متغیر محیطی LIBGS میتواند برای تعیین مسیر و
نام فایل کتابخانه استفاده شود.
نسخههای از پیش کامپایلشده ویندوز dvisvgm به یک نصب فعال از MiKTeX 2.9
یا بالاتر نیاز دارند. dvisvgm همراه با نسخه قابلحمل (portable) MiKTeX
کار نمیکند زیرا به رابط COM مربوط به MiKTeX متکی است که تنها در یک نصب
محلی در دسترس است. برای فعالسازی ارزیابی دستورات ویژه PostScript، باید
فایل DLL اصلی Ghostscript یعنی gsdll32.dll موجود و از طریق مسیر جستجو
قابلدستیابی باشد. ساختهای ۶۴بیتی ویندوز نیازمند فایل DLL شصت و چهار
بیتی Ghostscript یعنی gsdll64.dll هستند. هر دو فایل DLL همراه با
نصبکنندههای متناظر Ghostscript ارائه میشوند که از طریق
https://ghostscript.com در دسترس هستند.
متغیر محیطی DVISVGM_COLORS رنگهای بهکاررفته برای برجستهسازی بخشهای
مختلف خروجی پیامهای dvisvgm را مشخص میکند. این متغیر تنها زمانی ارزیابی
میشود که گزینه --color داده شده باشد. مقدار DVISVGM_COLORS فهرستی از
مدخلهای جداشده با دونقطه به صورت gg=BF است، که در آن gg نشاندهنده یکی
از شاخصهای گروه رنگ فهرستشده در زیر است، و BF دو رقم هگزادسیمال هستند
که رنگ پسزمینه (رقم اول) و رنگ متن/پیشزمینه (رقم دوم) را مشخص میکنند.
مقادیر رنگ به صورت زیر تعریف شدهاند: 0=مشکی، 1=قرمز، 2=سبز، 3=زرد،
4=آبی، 5=سرخابی، 6=فیروزهای، 7=خاکستری، 8=قرمز روشن، 9=سبز روشن، A=زرد
روشن، B=آبی روشن، C=سرخابی روشن، D=فیروزهای روشن، E=خاکستری روشن،
F=سفید. بسته به ترمینال، ممکن است رنگها متفاوت باشند. به جای تغییر هر
دو رنگ متن و پسزمینه، تغییر تنها یکی از آنها نیز ممکن است: علامت ستاره
(*) به جای رقم هگزادسیمال نشاندهنده رنگ پیشفرض متن یا پسزمینه ترمینال
است.
تمامی مدخلهای با ساختار نامعتبر در این فهرست بدون نمایش پیام نادیده
گرفته میشوند.
er پیامهای خطا
wn پیامهای هشدار
pn پیامهای مربوط به شماره صفحه
ps پیامهای اندازه صفحه
fw اطلاعات مربوط به فایلهای نوشتهشده
sm پیامهای وضعیت
tr پیامهای ردیاب گلیف (glyph tracer)
pi نشانگر پیشرفت
مثال: er=01:pi=*5 رنگ پیامهای خطا (er) را به قرمز (1) روی مشکی (0)، و
رنگ نشانگرهای پیشرفت (pi) را به فیروزهای (5) روی پسزمینه پیشفرض (*)
تنظیم میکند.
متغیر DVISVGM_PDF_PROC امکان انتخاب پردازشگر PDF دلخواه را فراهم میکند.
برای پردازش فایلهای PDF، dvisvgm به Ghostscript (نسخه < 10.01.0) یا
mutool نیاز دارد. اگر DVISVGM_PDF_PROC تنظیم نشده باشد، dvisvgm تلاش
میکند پردازشگرهای موجود را شناسایی کند. برای اطلاعات بیشتر گزینه --pdf
را ببینید. جهت انتخاب یک پردازشگر PDF خاص، میتوانید DVISVGM_PDF_PROC را
روی gs یا mutool تنظیم کنید که به ترتیب استفاده از Ghostscript و mutool
را تحمیل میکند..SH "فایلها (FILES)"
مکان فایلهای زیر توسط کتابخانه kpathsea تعیین میشود. برای بررسی
پیکربندی واقعی kpathsea میتوانید از ابزار kpsewhich استفاده کنید.
*.enc فایلهای کدگذاری قلم
*.fgd فایلهای دادههای گلیف قلم (فایلهای کش ایجادشده توسط dvisvgm)
*.map فایلهای نگاشت قلم
*.mf فایلهای ورودی Metafont
*.pfb فایلهای قلم PostScript Type 1
*.pro فایلهای سرآیند/پیشدرآمد PostScript
*.tfm فایلهای متریک قلم TeX
*.ttf فایلهای قلم TrueType
*.vf فایلهای قلم مجازی
همچنین ببینید (SEE ALSO)
tex(1), mf(1), mktexmf(1), grodvi(1), potrace(1) و مستندات info مربوط
به kpathsea library.
منابع (RESOURCES)
صفحه اصلی پروژه
https://dvisvgm.de
مخزن کد
https://github.com/mgieseki/dvisvgm
گزارش باگها (BUGS)
لطفاً گزارش باگها را با استفاده از سامانه ردیابی باگ در GitHub
(https://github.com/mgieseki/dvisvgm/issues) ارسال کنید.
نویسندگان (AUTHORS)
نوشتهشده توسط Martin Gieseking
کپیرایت و تکثیر (COPYRIGHT)
حق نشر © 2005-2026 متعلق به Martin Gieseking است. استفاده آزاد از این
نرمافزار تحت شرایط «مجوز عمومی همگانی گنو» (GPL) نسخه ۳ یا (به انتخاب
شما) هر نسخه بالاتر مجاز است.
dvisvgm 3.6.1 2026-08-03 DVISVGM(1)