.\" Automatically generated by Pandoc 3.1.11.1 .\" .TH "memoize\-extract" "1" "December 02, 2024" "memoize\-extract of Memoize v1.4.1" "User Manual" .SH "نام (NAME)" memoize\-extract.pl, memoize\-extract.py \- استخراج صفحه‌های بیرونی (extern) از فایل PDF .SH "خلاصه دستور (SYNOPSIS)" \f[B]memoize\-extract.pl\f[R] [\f[I]OPTIONS\f[R]] \f[I]document.mmz\f[R] .PP \f[B]memoize\-extract.py\f[R] [\f[I]OPTIONS\f[R]] \f[I]document.mmz\f[R] .SH "توضیحات (DESCRIPTION)" \f[B]memoize\-extract\f[R] یک اسکریپت همراه Memoize است؛ یک بسته TeX که به نویسنده امکان می‌دهد نتایج کدهای نیازمند کامپایل سنگین (مانند تصاویر TikZ) را دوباره استفاده کند. .PP Memoize موارد extern ایجادشده (باکس‌های حاوی محتوای حروف‌چینی‌شده برای استفاده مجدد) را در صفحه‌های اختصاصی خود در فایل PDF تولیدشده ذخیره می‌کند. وظیفه \f[B]memoize\-extract\f[R] استخراج این صفحه‌های extern در فایل‌های PDF جداگانه است. در کامپایل‌های بعدی، Memoize آن فایل‌های extern را بدون کامپایل مجدد سورس آن‌ها، در سند درج می‌کند. .PP ارتباط Memoize با \f[B]memoize\-extract\f[R] از طریق فایل \f[I]document.mmz\f[R] انجام می‌شود. هنگامی که \f[I]document.tex\f[R] برای تولید \f[I]document.pdf\f[R] کامپایل می‌شود، Memoize فایل \f[I]document.mmz\f[R] را ایجاد می‌کند که ثبت می‌کند کدام صفحه‌ها در سند تولیدشده صفحه‌های extern هستند و باید در کدام فایل‌های extern استخراج شوند. بنابراین، پس از کامپایل \f[I]document.tex\f[R]، موارد extern باید توسط \f[B]memoize\-extract\f[R] \f[I]document.mmz\f[R] استخراج شوند. .PP \f[I]document.mmz\f[R] ممکن است به‌صورت document* یا \f[I]document.tex\f[R] نیز داده شود. هنگامی که متغیر محیطی \f[I]TEXMF_OUTPUT_DIRECTORY\f[R] تنظیم شده باشد، این نام فایل نسبت به دایرکتوری خروجی مشخص‌شده توسط این متغیر در نظر گرفته می‌شود. .PP فایل \f[I]document.mmz\f[R] همچنین عرض و ارتفاع مورد انتظار هر extern را ثبت می‌کند. در صورت عدم تطابق، \f[B]memoize\-extract\f[R] از استخراج صفحه خودداری کرده و اگر فایل extern از قبل وجود داشته باشد آن را حذف می‌کند، و یک پیام هشدار در خروجی خطای استاندارد چاپ می‌کند. این اسکریپت همچنین در صورتی که یک (c)c\-memo مرتبط با extern وجود نداشته باشد، از استخراج صفحه خودداری می‌کند. همچنین بخش «امنیت (SECURITY)» را ببینید. .PP نسخه‌های Perl (.pl) و Python (.py) این اسکریپت از نظر عملکردی معادل یکدیگر هستند. اسکریپت Perl به کتابخانه \c .UR https://metacpan.org/pod/PDF::API2 PDF::API2 .UE \c و اسکریپت Python به کتابخانه \c .UR https://pypi.org/project/pdfrw2 pdfrw2 .UE \c \& نیاز دارد. .SH "گزینه‌ها (OPTIONS)" .TP \f[B]\-P, \-\-pdf\f[R] \f[I]filename.pdf\f[R] موارد extern از \f[I]filename.pdf\f[R] استخراج خواهند شد. به‌طور پیش‌فرض، آن‌ها از \f[I]document.pdf\f[R] استخراج می‌شوند. .TP \f[B]\-p, \-\-prune\f[R] حذف صفحه‌های extern از فایل PDF پس از استخراج. .TP \f[B]\-k, \-\-keep\f[R] فایل \f[I]document.mmz\f[R] را برای علامت‌گذاری externها به‌عنوان استخراج‌شده تغییر نده. به‌طور پیش‌فرض، برای جلوگیری از استخراج مجدد، آن‌ها کامنت می‌شوند. .TP \f[B]\-F, \-\-format\f[R] \f[I]latex\f[R]|\f[I]plain\f[R]|\f[I]context\f[R] هنگامی که این گزینه داده می‌شود، اسکریپت فرض می‌کند که از درون یک کامپایل TeX سندی با قالب داده‌شده فراخوانی شده است: نام اسکریپت را به عنوان پیشوند همه خروجی‌ها قرار می‌دهد و یک فایل لاگ \f[I]document.mmz.log\f[R] ایجاد می‌کند که تمامی هشدارها و خطاهای مرتبط با استخراج را دریافت می‌کند. .TP \f[B]\-f, \-\-force\f[R] استخراج extern حتی اگر بررسی اندازه (size\-check) ناموفق باشد. .TP \f[B]\-q, \-\-quiet\f[R] توضیح ندادن اتفاقات در حال وقوع (حالت بی‌صدا). .TP \f[B]\-m, \-\-mkdir\f[R] یک دستور \f[I]mkdir \-p\f[R] بسیار محتاطانه (paranoid). (هیچ استخراجی صورت نمی‌گیرد، \f[I]document.mmz\f[R] به عنوان نام یک دایرکتوری تفسیر می‌شود که ممکن است با هر پسوندی ختم شود؛ هیچ دستکاری روی پسوند انجام نمی‌شود.) .TP \f[B]\-V, \-\-version\f[R] نمایش شماره نسخه Memoize و خروج. .TP \f[B]\-h, \-\-help\f[R] نمایش راهنما و خروج. .SH "امنیت (SECURITY)" این اسکریپت محدودیت‌های ورودی و خروجی فایل اعمال‌شده توسط پیکربندی TeX، به‌طور دقیق‌تر، متغیرهای \f[I]openin_any\f[R] و \f[I]openout_any\f[R] از کتابخانه \f[B]kpathsea\f[R] (https://tug.org/kpathsea) را رعایت می‌کند. می‌توانید مقادیر این متغیرها را با اجرای دستورهای \f[CR]kpsewhich \-var\-value=openin_any\f[R] و \f[CR]kpsewhich \-var\-value=openout_any\f[R] بررسی کنید. تفسیر آن‌ها به شرح زیر است: .TP \f[B]a\f[R] (یا \f[B]y\f[R] یا \f[B]1\f[R]) any اجازه باز شدن هر فایلی را می‌دهد. .TP \f[B]r\f[R] (یا \f[B]n\f[R] یا \f[B]0\f[R]) restricted به معنای غیرمجاز دانستن نام‌های خاص فایل است. .TP \f[B]p\f[R] (یا هر مقدار دیگر) paranoid به معنای بسیار محتاط بودن است: غیرمجاز دانستن نام‌های خاص فایل و محدود کردن فایل‌های ورودی/خروجی به دایرکتوری کاری جاری یا زیرمجموعه آن، یا دایرکتوری مشخص‌شده توسط \f[I]TEXMFOUTPUT\f[R] یا \f[I]TEXMF_OUTPUT_DIRECTORY\f[R]. متغیر \f[I]TEXMFOUTPUT\f[R] ممکن است در \f[I]texmf.cnf\f[R] (مثلاً توسط \f[B]tlmgr\f[R]) یا به عنوان یک متغیر محیطی تنظیم شود. متغیر \f[I]TEXMF_OUTPUT_DIRECTORY\f[R] تنها می‌تواند به عنوان یک متغیر محیطی تنظیم شود؛ این متغیر هنگام فراخوانی TeX با گزینه \f[I]\-output\-directory\f[R] (از نسخه TeXLive 2024 به بعد) به‌طور خودکار توسط TeX تنظیم می‌شود. .SH "وضعیت خروج (EXIT STATUS)" .TP \f[B]0\f[R] موارد extern با موفقیت استخراج شدند. این کد خروج حتی اگر هیچ externای نیازمند استخراج نباشد یا فایل \f[I]document.mmz\f[R] وجود نداشته باشد نیز برگردانده می‌شود. .TP \f[B]10\f[R] یک هشدار که در صورت ارائه گزینه \f[B]\-\-format\f[R] به کامپایل نیز گزارش می‌شود. در حال حاضر یکی از موارد زیر است: (۱) عدم تطابق اندازه؛ (۲) عدم وجود فایل (c)c\-memo مرتبط؛ یا (۳) در دسترس نبودن \f[I]kpsewhich\f[R]. .TP \f[B]11\f[R] یک خطا که در صورت ارائه گزینه \f[B]\-\-format\f[R] به کامپایل نیز گزارش می‌شود. در حال حاضر یکی از موارد زیر است: (۱) یک PDF سند خراب، یا (۲) خطای دسترسی kpathsea. .PP سایر کدهای خروج مطابق کدهای تولیدشده توسط زبان اسکریپت‌نویسی پایه (Perl یا Python) هستند. .SH "همچنین ببینید (SEE ALSO)" \c .UR https://ctan.org/pkg/memoize راهنمای Memoize .UE \c ، بخش 6.6.1.