DVISELECT(1) General Commands Manual DVISELECT(1)

dviselect - استخراج صفحات از فایل‌های DVI

dviselect [ -s ] [ -i infile ] [ -o outfile ] list of pages [ infile [ outfile ] ]

دستور Dviselect صفحاتی را از یک فایل DVI تولیدشده توسط TeX انتخاب می‌کند و یک فایل DVI جدید می‌سازد که توسط هر یک از برنامه‌های تبدیل TeX، یا حتی توسط خود dviselect قابل استفاده است.

یک بازه رشته‌ای به شکل even، odd، یا first:last است که در آن هر دو مقدار first و last رشته‌های عددی اختیاری هستند، و اعداد منفی با یک نویسه زیرخط پیشین «_» مشخص می‌شوند. اگر هر دو مقدار first و last حذف شوند، دونقطه نیز ممکن است حذف شود، یا با یک ستاره «*» جایگزین گردد. یک بازه صفحه فهرستی از بازه‌ها است که با نقطه از هم جدا شده‌اند. یک فهرست صفحات توسط مجموعه‌ای از بازه‌های صفحه توصیف می‌شود که با کاما و/یا نویسه فاصله جدا شده‌اند.

دستور Dviselect در واقع به ده متغیر count که TeX می‌نویسد نگاه می‌کند؛ اولین متغیر از این‌ها (\count0) شماره صفحه است، و \count1 تا \count9 بسته به این‌که چه بسته‌های ماکرویی در حال استفاده هستند، کاربردهای متفاوتی دارند. (معمولاً \count1 ممکن است شماره فصل یا بخش باشد.) یک صفحه در خروجی dviselect قرار می‌گیرد اگر تمام مقادیر \count آن با هر یک از بازه‌های ذکرشده در خط فرمان مطابقت داشته باشد. برای مثال، دستور «dviselect *.1,35:» ممکن است همه چیز در فصل ۱ و همچنین صفحات ۳۵ به بعد را انتخاب کند. دستور «dviselect 10:30» صفحات ۱۰ تا ۳۰ (شامل خود آن‌ها) را انتخاب خواهد کرد. «:43» یعنی همه‌چیز تا صفحه ۴۳ و شامل خود آن (از جمله صفحات با شماره منفی). برای دریافت تمام صفحات با شماره زوج، از «even» استفاده کنید؛ برای دریافت تمام صفحات با شماره فرد، از «odd» استفاده کنید. اگر یک فهرست مطالب دارای شماره صفحات منفی باشد، «:_1» آن را انتخاب خواهد کرد. توجه داشته باشید که «*» باید در پوسته نقل‌قول (quote) شود؛ استفاده از رشته خالی راحت‌تر است، اگرچه خواندن آن دشوارتر است.

به‌جای مقادیر \count، دستور dviselect همچنین می‌تواند بر اساس «شماره صفحه مطلق» انتخاب کند، که در آن اولین صفحه، صفحه ۱، دومین صفحه، صفحه ۲ و به همین ترتیب است. شماره‌های صفحه مطلق با یک علامت مساوی پیشین «=» مشخص می‌شوند. بازه‌هایی از صفحات مطلق نیز مجاز هستند: «dviselect =3:7» صفحات سوم تا هفتم را استخراج خواهد کرد. جداکننده‌های نقطه در بازه‌های مطلق مجاز نیستند و هیچ شماره صفحه مطلق منفی وجود ندارد. با این حال، مشخص‌کننده‌های زوج/فرد مجاز هستند؛ «dviselect =even» صفحات را یکی‌درمیان، با شروع از صفحه دوم انتخاب می‌کند.

به‌طور دقیق‌تر، یک ستاره یا یک رشته خالی به معنای بدون محدودیت است؛ علامت مساوی به معنای شماره صفحه مطلق به‌جای \countها است؛ دونقطه در ابتدا به معنای همه‌چیز تا صفحه داده‌شده و شامل خود آن است؛ دونقطه در انتها به معنای همه‌چیز از صفحه داده‌شده به بعد است؛ کلمه «even» به این معنا است که تنها مقادیر زوج پذیرفته می‌شوند؛ کلمه «odd» به این معنا است که تنها مقادیر فرد پذیرفته می‌شوند؛ و نقطه نشان می‌دهد که \count بعدی باید بررسی شود. اگر کمتر از ۱۰ بازه مشخص شود، باقی‌مانده \countها بدون محدودیت رها می‌شوند (یعنی «1:5» و «1:5.*» معادل یکدیگرند). با یک تک‌شماره n به گونه‌ای رفتار می‌شود که گویی بازه n:n است. می‌توان تعداد دلخواهی از انتخاب‌کننده‌های صفحه را مشخص کرد که با کاما یا فاصله خالی جدا می‌شوند؛ یک صفحه در صورتی انتخاب می‌شود که هر یک از انتخاب‌کننده‌ها با مقادیر \count یا شماره صفحه مطلق آن مطابقت داشته باشد.

دستور Dviselect معمولاً شماره صفحاتِ انتخاب‌شده را چاپ می‌کند؛ گزینه -s از این کار جلوگیری می‌کند.

Chris Torek, University of Maryland

dviconcat(1), latex(1), tex(1)
MC-TeX User's Guide
The TeXbook

یک علامت «-» پیشین باید برای اعداد منفی مجاز می‌بود، اما در حال حاضر برای سازگاری با گذشته، به عنوان مترادفی برای «:» استفاده می‌شود.

انتخاب بر اساس بخش (section) یا زیربخش (subsection) گاهی با شکست مواجه می‌شود، زیرا فایل DVI تنها مقادیر \count فعال در زمان پایان صفحه را فهرست می‌کند. بسته‌های ماکروی هوشمند می‌توانند با استفاده از دیگر ثبات‌های «آزاد» \count این مشکل را کاهش دهند. فصل‌ها معمولاً در صفحات جدید آغاز می‌شوند و دچار این مشکل خاص نمی‌شوند.

روش اکتشافی (heuristic) که تعیین می‌کند کدام آرگومان‌ها انتخاب‌کننده صفحه و کدام نام فایل هستند اغلب اشتباه می‌کند. استفاده از بازهدایت پوسته یا گزینه‌های -i و -o امن‌ترین روش است.

دستور Dviselect پارامترها را در پی‌نوشت (postamble) تنظیم نمی‌کند؛ با این حال، از آن‌جا که این مقادیر معمولاً تنها برای تعیین اندازه برخی ساختارها در برنامه‌های تبدیل خروجی استفاده می‌شوند، و نیازی به افزایش این پارامترها نیست، این موضوع تاکنون مشکلی ایجاد نکرده است.