TEXDIFF(1) User Contributed Perl Documentation TEXDIFF(1)

texdiff - مقایسه دو سند (La)TeX جهت ایجاد یک نسخه ادغام‌شده حاوی تغییرات، مشابه قابلیت پیگیری تغییرات در برخی واژه‌پردازها

texdiff [--nofloats⎪-n] old.tex new.tex [diff.tex]

دو فایل نخست با یکدیگر مقایسه می‌شوند و یک فایل TeX جدید در خروجی تولید می‌شود. هنگامی که فایل خروجی توسط (La)TeX پردازش شود، تغییرات جدید را با رنگ آبی و متن‌های قدیمی را با رنگ قرمز به‌همراه یک خط روی متن (strike-through) مشخص می‌کند. علاوه بر این، بخش‌های تغییریافته در حاشیهٔ صفحه با خطوط خاکستری توسط بستهٔ "changebar" در LaTeX علامت‌گذاری می‌شوند (البته تنها پس از اجرای "dvips"؛ در "xdvi" این خطوط به اندازهٔ یک اینچ بیش از حد به سمت چپ قرار می‌گیرند تا فاصلهٔ یک اینچی اعمال‌شده توسط راه‌اندازهای چاپگر TeX را جبران کنند).

برنامهٔ "texdiff" برای درج این نشانه‌ها از دستور "wdiff" استفاده می‌کند و در نتیجه به آن وابسته است. اگر ماکروهای LaTeX درون بخش‌های خط‌خورده یا زیرخط‌دار قرار گیرند، اجرای latex به احتمال زیاد با خطا مواجه خواهد شد. ریشهٔ بیشتر مشکلات در این است که "wdiff" جفت‌آکولادها را از یکدیگر جدا می‌کند. بنابراین "texdiff" یک اسکریپت perl است که "wdiff" را به‌صورت درونی فراخوانی کرده و خروجی "wdiff" را با جفت کردن دوبارهٔ آکولادها و رسیدگی به برخی ماکروهای پرکاربرد LaTeX اصلاح می‌کند.

برای کارکرد texdiff، کد LaTeX زیر باید در دیباچهٔ (preamble) سند LaTeX قرار داده شود:

\usepackage{xcolor} \usepackage{ulem} \usepackage{changebar}
\newcommand\TLSins[1]{\cbstart{}\textcolor{ins}{\uline{#1}}\cbend{}}
\newcommand\TLSdel[1]{\cbdelete{}\textcolor{del}{\sout{#1}}}

رنگ‌های ویرایشی "ins" و "del" را با نام‌های رنگ موجود در "xcolor" تعریف کنید:
\colorlet{ins}{blue} \colorlet{del}{red}

یا از ابتدا:
\definecolor{ins}{rgb}{0, 0.5, 0}

برخلاف اسکریپت‌های اولیه، این ماکروها به‌طور خودکار در \begin{document} درج نمی‌شوند (بخش قدردانی‌ها (ACKNOWLEDGMENTS) در زیر را ببینید)؛ زیرا این روش روی فایل‌های یک سند چندفایلی (فایل‌هایی که با \include یا \input فراخوانی می‌شوند) کار نخواهد کرد. علاوه بر این، در صورت درج دستی ماکروها، می‌توانید آن‌ها را مطابق با نیاز خود سفارشی کنید؛ برای نمونه، رنگ متن یا موقعیت نوار تغییرات (changebars) را تغییر دهید. برای آگاهی از نحوهٔ انجام این کار، نگاهی به مستندات بسته‌های ulem و changebar بیندازید!

در صورت تعیین، از محتویات محیط‌های figure صرف‌نظر می‌کند، اما موارد درج‌شده و حذف‌شده در دستورهای caption را نمایش می‌دهد. این کار برای جلوگیری از به‌هم‌ریختگی‌های پیچیده در محیط‌های subfloat یا محیط‌های figure پیچیده انجام می‌شود.
اشکال‌زدایی را فعال می‌کند. فایل‌های موقتی که شامل آکولادهای شماره‌گذاری‌شده هستند نگه‌داشته می‌شوند و یک فایل تفاوت خام با نام فایل خروجی به‌همراه پسوند '-wdiff.tex' نوشته می‌شود. علاوه بر این، چندین پیام عیب‌یابیِ عبارات باقاعده چاپ می‌شود. هشدار: خروجی بسیار زیادی تولید می‌کند.

Mark Doll <markdoll<AT>gmx.net>, Cengiz Gunay <cengique<AT>users.sf.net>.

*
نسخهٔ 0.4، توسط CG، در 2009/09/15. افزودن استفاده از GetOpt برای دریافت یک پارامتر اختیاری جهت نادیده گرفتن محتویات شناورها (مانند figure یا table). افزودن یک حالت اشکال‌زدایی اختیاری. تعبیهٔ مستندات POD. رفع مشکل مربوط به درج‌ها و حذف‌هایی که در میان دستورهای بخش‌بندی (sectioning) ظاهر شده و باعث اختلال در LaTeX می‌شدند.
*
نسخهٔ 0.3، ویرایش شده توسط Cengiz Gunay <cengique@users.sf.net>، در 2009/06/30. افزودن برخی از دستورهای Latex که باید مستثنی شوند و اصلاح نحوهٔ مدیریت نویسه‌های '\%'.
*
نسخهٔ 0.2، پیاده‌سازی perl از TeXdiff توسط Mark Doll <markdoll@gmx.net>، در 2006/08/09. این نسخه از اسکریپت‌های اولیهٔ bash و perl نوشته‌شده توسط Robert Maron <robmar@mimuw.edu.pl> مشتق شده است که در http://www.robmar.net/TexDiff موجود هستند. این نسخه از texdiff در http://mark.doll.name/texdiff در دسترس است.

Copyleft 2006-2009, Mark Doll and Cengiz Gunay

این کتابخانه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت همان شرایط خود Perl بازتوزیع کرده یا تغییر دهید.

2009-09-24 perl v5.8.8