در نوشته‌های قبلی وبلاگ با حروف‌چینی یک مقاله دانشگاهی و نوشتن یک کتاب با استفاده از زی‌پرشین آشنا شدیم. در این نوشته نکات بیشتری را درباره حروف‌چینی کتاب با این بسته رایگان و متن‌باز یاد می‌گیریم (اگر نمی‌دانید زی‌پرشین چیست، این نوشته‌ها را بخوانید).

در نوشته قبلی، در پایان آموزش، به کد زیر رسیدیم:

\documentclass{book}
\usepackage{makeidx}
\makeindex
\usepackage{xepersian}
\author{وحید دامن‌افشان}
\title{اصول حروف‌چینی و صفحه‌آرایی کتاب}
\date{}
\begin{document}
\maketitle
\tableofcontents
\addcontentsline{toc}{chapter}{پیش‌گفتار}
\chapter*{پیش‌گفتار}
در این کتاب به بررسی اصول حروف‌چینی و صفحه‌آرایی...
\part{اصول حروف‌چینی}
\chapter{انتخاب فونت مناسب}
یکی از مواردی که در \index{حروف‌چینی} باید به آن توجه کرد،
انتخاب فونت\index{فونت} مناسب است که در این فصل به آن...
\section{فونت‌های قدیمی}
فونت‌های قدیمی، فونت‌هایی بودند که...
\section{فونت‌های جدید}
یکی دیگر از انواع فونت‌ها، فونت‌های جدید هستند که دارای
انواع مختلفی هستند.
\subsection{فونت‌های نوع اول}
این فونت‌ها دارای...
\subsection{فونت‌های نوع دوم}
در این فونت‌ها...
\addcontentsline{toc}{chapter}{نمایه}‎
\printindex
\end{document}

همان‌طور که می‌بینید، این کد یک کد کوتاه است؛ اما طبیعتاً بعد از اضافه کردن مطالب بیشتر به کتاب، این کد آن‌قدر بزرگ‌ و شلوغ می‌شود که جستجو در آن و پیدا کردن خطاهای احتمالی آن بسیار مشکل می‌شود. علاوه بر این، زمان اجرای فایل و گرفتن خروجی پی‌دی‌اف از آن نیز بسیار بالا می‌رود؛ چون سیستم تِک، محتوای یک فایل لاتک و یا زی‌پرشین را از بالا به پایین می‌خواند و پردازش می‌کند؛ بنابراین اگر مثلاً مشغول حروف‌چینی فصل ۳ کتاب باشیم، موتور حروف‌چین ابتدا فصل‌های ۱ و ۲ را پردازش می‌کند (که به درد ما نمی‌خورد؛ چون ما می‌خواهیم خروجی فصل ‎۳ را ببینیم) و بعد به فصل ۳ می‌رسد و این کار باعث طولانی شدن زمان اجرا می‌شود؛ زیرا هر چقدر حجم فایل اجراشده، بیشتر باشد، زمان بیشتری هم برای اجرای آن صرف می‌شود. یک راه‌حل برای حل این مشکل این است که نوشته‌های مربوط به ۲ فصل قبلی را با گذاشتن علامت % در ابتدای آن‌ها غیرفعال کنیم؛ اما این کار درستی نیست؛ چون هم نیاز به دقت بالایی دارد و هم امکان فراموش کردن فعال‌سازی دوباره آن‌ها وجود دارد. راه‌حل درست، استفاده از دستور include است.

استفاده از دستور include در زی‌پرشین

برای استفاده از دستور include کافی است که برای هر فصل، یک فایل جدید با پسوند tex با نام‌های مثلاً chap2, chap1 و chap3 در همان پوشه جاری بسازیم و بعد نوشته‌های هر فصل را داخل آن کپی کنیم. به عنوان مثال فصل ۱ باید به صورت زیر باشد:

\chapter{انتخاب فونت مناسب}
یکی از مواردی که در \index{حروف‌چینی} باید به آن توجه کرد،
انتخاب فونت\index{فونت} مناسب است که در این فصل به آن...
\section{فونت‌های قدیمی}
فونت‌های قدیمی، فونت‌هایی بودند که...
\section{فونت‌های جدید}
یکی دیگر از انواع فونت‌ها، فونت‌های جدید هستند که دارای
انواع مختلفی هستند.
\subsection{فونت‌های نوع اول}
این فونت‌ها دارای...
\subsection{فونت‌های نوع دوم}
در این فونت‌ها...

حال باید این فایل، یعنی فایل chap1.tex را با دستور include در فایل اصلی فراخوانی کنیم:

\documentclass{book}
\usepackage{makeidx}
\makeindex
\usepackage{xepersian}
\author{وحید دامن‌افشان}
\title{اصول حروف‌چینی و صفحه‌آرایی کتاب}
\date{}
\begin{document}
\maketitle
\tableofcontents
\addcontentsline{toc}{chapter}{پیش‌گفتار}
\chapter*{پیش‌گفتار}
در این کتاب به بررسی اصول حروف‌چینی و صفحه‌آرایی...
\part{اصول حروف‌چینی}
\include{chap1}
\addcontentsline{toc}{chapter}{نمایه}‎
\printindex
\end{document}

این راه‌حل را می‌توانید برای فصل پیش‌گفتار و حتی دستورهای بخش سرآغاز (preamble) فایل نیز انجام دهید؛ البته بهتر است که فایل حاوی دستورهای بخش سرآغاز را با دستور input فراخوانی کنید. فرق این دستور با دستور include این است که دستور include، محتوای خود را صرف‌نظر از جایی که قرار داده می‌شود، در یک صفحه جدید در خروجی چاپ می‌کند؛ در حالی که دستور input محتوای خود را در هر جایی که فراخوانی شود، چاپ می‌کند. با این توضیح، برای دستورهای سرآغاز هم می‌توانید یک فایل به صورت commands.tex بسازید و دستورهای سرآغاز، یعنی

\usepackage{makeidx}
\makeindex
\usepackage{xepersian}
\author{وحید دامن‌افشان}
\title{اصول حروف‌چینی و صفحه‌آرایی کتاب}
\date{}‎

را در آن قرار دهید و آن را به صورت

\input{commands}‎

در فایل اصلی فراخوانی کنید.

حال بعد از اینکه تمام فصل‌ها را در فایل‌های جداگانه و با دستور include فراخوانی کردیم، به راحتی می‌توان یک یا چند تا از فصل‌ها را از پردازش‌شدن معاف کرد. برای این کار کافی است فقط از علامت % استفاده کنیم. به عنوان مثال، اگر مشغول حروف‌چینی فصل ۳ هستیم، می‌توانیم فصل‌های ۱ و ۲ را به صورت زیر غیرفعال یا اصطلاحاً «کامنت» کنیم:

%include{chap1}
%include{chap2}
include{chap3}‎

نکته خیلی مهمی که در اینجا باید به آن توجه کرد، این است که در فایل‌های مربوط به فصل‌هایی که با دستور include در فایل اصلی فراخوانی می‌شوند، دیگر نیازی به وارد کردن دستورهایی مثل

\documentclass{book}
\usepackage{makeidx}
\makeindex‎

یا

\begin{document}
\end{document}‎

نیست؛ دلیل آن هم روشن است؛ چون این دستورها یک‌بار در فایل اصلی فراخوانی شده‌اند.

نکته مهم دیگری که باید به آن توجه کنید، این است که فایل‌ها یا به عبارتی همان فصل‌هایی که با دستور include فراخوانی شده‌اند، به دلیل اینکه دستورهای قسمت سرآغاز را ندارند، به طور مستقل، قابل پردازش نیستند؛ بنابراین بعد از اضافه و کم کردن نوشته در آن‌ها، برای دیدن تغییرات خروجی آن‌ها باید آن‌ها را ذخیره کنید و سپس فایل اصلی را اجرا کنید. بدیهی است که برای اجرا شدن هر فصل، دستور include آن در فایل اصلی، نباید کامنت شده باشد.

حال اگر دستورها، پیش‌گفتار و تمام فصل‌ها را در فایل اصلی فراخوانی کنیم، کد اولیه‌مان به صورت زیر درمی‌آید:

\documentclass{book}
\input{commands}
\begin{document}
\maketitle
\tableofcontents
\addcontentsline{toc}{chapter}{پیش‌گفتار}
\include{preface}
\part{اصول حروف‌چینی}
\include{chap1}
\addcontentsline{toc}{chapter}{نمایه}‎
\printindex
\end{document}

همان‌طور که می‌بینید این کد بسیار مرتب‌تر و کار کردن با آن راحت‌تر شده است. دقت داشته باشید که اگر این کد را با نام مثلاً root.tex ذخیره کنیم، تمام فایل‌های root.tex و commands.tex و preface.tex و chap1.tex باید در یک پوشه باشند و فایلی که قابل اجراکردن است، فایل root.tex است.

برای راحتی کار و برای اینکه این توضیحات را بهتر متوجه بشوید، تمام فایل‌های لازم را می‌توانید در قالب یک فایل زیپ دانلود کنید.

در پایان به عنوان یک پیشنهاد می‌توانید تنظیماتی در ویرایشگر تک‌میکر بدهید که کار را با این‌گونه فایل‌ها که خود به چند فایل جداگانه تقسیم می‌شوند، راحتٰ‌تر کند؛ به این صورت که فایل root.tex را باز کنید و سپس از منوی Options، گزینه مشخص‌شده در شکل زیر را تیک بزنید. با این کار دیگر لازم نیست بعد از هر بار تغییر دادن فایل‌های دیگر مثل chap1.tex، به فایل root.tex برگردید و آن را اجرا کنید؛ تا زمانی که این گزینه فعال باشد، می‌توانید به طور مستقیم خود آن فایل‌ها را اجرا کنید.

تنظیم ویرایشگر تک‌میکر

مشابه همین کار را در ویرایشگر Texworks نیز می‌توانید انجام دهید؛ برای این کار کافی است در خط اول فایل‌هایی که با دستور include در فایل اصلی وارد می‌شوند، دستور

% !TeX root =root.tex‎

را قرار دهید. دقت داشته باشید که که علامت % را نباید پاک کنید. همان‌طور که می‌بینید، در این دستور، فایل اصلی یعنی root.tex را برای ویرایشگر مشخص کرده‌ایم تا به جای فایل‌های واردشده با دستور include، این فایل را بخواند.

در نوشته‌های بعدی این وبلاگ، باز هم  درباره حروف‌چینی کتاب با زی‌پرشین خواهم نوشت. اگر می‌خواهید از انتشار این نوشته‌ها باخبر شوید، می‌توانید به طور رایگان، مشترک خوراک «پانویس» و یا مشترک ای‌میلی «پانویس» شوید. دقت داشته باشید که برای فعال‌سازی این اشتراک، باید ای‌میلی که از طرف وبلاگ برای‌تان فرستاده می‌شود را تأیید کنید.

لینک ثابت: https://panevis.ir/?p=1274

سرمایه‌گذاری روی بیت‌کوین