تبليغاتX
فارسی تک - تعیین پس‌زمینه برای سندهای فارسی‌تک
فهرست مطالب وبلاگ
آخرین بهروز رسانی:
تعیین کردن یک پس‌زمینه (Background) برای یک سند فارسی‌تک کار سختی نیست و تنها با یک دستور انجام می‌گیرد.

دستور \fancypage :

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

>\fancypage{TEXT1}{TEXT2}

TEXT1 همان عبارت مورد نظر است. این عبارت می‌تواند عکس، متن یا ترکیبی از این‌ دو باشد.

توجه: این دستور در فایل fancybox.sty تعریف شده است پس برای استفاده از این دستور ابتدا باید فایل یاد شده را فراخوانی کنید.

با توجه به اینکه دستور \fancypage از دستورات پیش‌فرض LaTeX 2.09 نیست و همچنین در فایل fancybox.sty هیچ توضیحی در مورد نحوه استفاده از این دستور داده نشده است، کاربرد آرگومان دوم این دستور را بنده حقیر نمی‌دانم و فکر نمی‌کنم نیازی به دانستن آن باشد.

دستور \thisfancypage :

این دستور نیز مشابه دستور \fancypage است و تنها تفاوت آنها در این است که \fancypage پس‌زمینه تمام صفحات سند را تعیین می‌کند ولی \thisfancypage پس‌زمینه صفحه فعلی سند را تعیین می‌کند.

مثال 1:

در این مثال نحوه استفاده از دستور \fancypage را می‌آموزید. کدهای زیر را در ویرایشگر فارسی‌تک تایپ نمایید:

>\documentstyle[persian,fancybox]{oldreport}
>\fancypage{\Huge\IE{SuB}}{}
>\begin{document}
>\english
>The first page
>\newpage
>The second page
>\newpage
>The third page
>\end{document}

خروجی آنرا مشاهده کنید. در خروجی 3 صفحه داریم که در هر صفحه در گوشه سمت چپ و پایین محدوده تایپ صفحه عبارت مورد نظر یعنی SuB چاپ شده است.

با مشاهده این مثال می‌فهمید که مبدا قرار گیری عبارت مورد نظر گوشه سمت چپ و پایین محدوده تایپ است. (محدوده تایپ کوچک‌تر از اندازه برگه است و به متغیرهای بُعد مختلفی از جمله \textwidth و \textheight و ... بستگی دارد.)
معمولاً این قرار‌گیری پیش‌فرض دستور \fancypage برای ما خوش‌آیند نیست و جای دیگری برای آن در نظر داریم. تنها کافی است با قرار دادن متن مورد نظر در عبارت دستور \put و تعیین مکان آن، مکان پس‌زمینه را تعیین کنید. برای آشنایی با نحوه این کار مثال زیر را مشاهده کنید.

مثال 2:

>\documentstyle[persian,fancybox]{oldreport}
>\fancypage{\put(200,200){\Huge\IE{SuB}}}{}
>\begin{document}
>\english
>The first page
>\newpage
>The second page
>\newpage
>The third page
>\end{document}

مشاهده می‌کنیم که مکان قرار‌گیری پس‌زمینه تغییر کرد.

ممکن است بخواهید که پس‌زمینه دقیقاً در وسط محدوده تایپ قرار گیرد در این صورت نیاز به تعریف دستور دیگری داریم که این دستور به صورت زیر تعریف می‌شود:

>\makeatletter
>\newsavebox\pagebackgroundbox
>\newdimen\backgroundwd
>\newdimen\backgroundht
>\def\preparebackground#1{
>    \long\def\put(##1,##2)##3{\@killglue\raise##2\hbox to\z@{\kern##1 ##3\hss}\ignorespaces}
>    \savebox{\pagebackgroundbox}{#1}
>    \backgroundwd=.5\textwidth
>    \addtolength{\backgroundwd}{-.5\wd\pagebackgroundbox}
>    \backgroundht=.5\textheight
>    \addtolength{\backgroundht}{-.5\ht\pagebackgroundbox}
>    \put(\backgroundwd,\backgroundht){#1}
>}
>\makeatother

دستور تعریف شده دستور \preparebackground است با یک آرگومان که عبارت مورد نظر را گرفته و با محاسبه وسط محدوده تایپ، عبارت مورد نظر را در وسط محدوده تایپ قرار می‌دهد. نحوه استفاده از این دستور در مثال زیر آورده شده است:

مثال 3:

کدهای زیر را تایپ و خروجی آنرا مشاهده نمایید:

>\documentstyle[persian,fancybox]{oldreport}
>
\makeatletter
>\newsavebox\pagebackgroundbox
>\newdimen\backgroundwd
>\newdimen\backgroundht
>\def\preparebackground#1{
>    \long\def\put(##1,##2)##3{\@killglue\raise##2\hbox to\z@{\kern##1 ##3\hss}\ignorespaces}
>    \savebox{\pagebackgroundbox}{#1}
>    \backgroundwd=.5\textwidth
>    \addtolength{\backgroundwd}{-.5\wd\pagebackgroundbox}
>    \backgroundht=.5\textheight
>    \addtolength{\backgroundht}{-.5\ht\pagebackgroundbox}
>    \put(\backgroundwd,\backgroundht){#1}
>}
>\makeatother
>\fancypage{\preparebackground{\Huge\IE{SuB}}}{}
>\begin{document}
>\english
>The first page
>\newpage
>The second page
>\newpage
>The third page
>\end{document}

+ نوشته شده توسط SuB در چهارشنبه دهم مهر 1387 و ساعت 23:29 |