سلام، لطفا وارد شوید یا عضو شوید.

نویسنده موضوع: جابجا شدن جای کراپ‌مارک‌ها در صفحات بعد از استفاده از دستور newgeometry  (دفعات بازدید: 4869 بار)

آفلاین وحید دامن‌افشان

  • Administrator
  • Hero Member
  • *****
  • تشکر
  • -اهدا شده: 452
  • -دریافت شده: 718
  • ارسال: 2,107
    • ديدن مشخصات
    • http://www.damanafshan.ir
توی کد پایین، برای تغییر حاشیه‌های صفحات ۳ و ۴ از دستور newgeometry استفاده کردم؛ اما همون‌طور که توی فایل خروجی پی‌دی‌اف پیوست‌شده می‌بینید، جای کراپ‌مارک‌ها توی این صفحات به هم می‌ریزه. جالب اینجاست که حتی در صورت برگشتن به حاشیه‌های قبلی (با استفاده از دستور restoregeometry)، همچنان جای کراپ‌مارک‌ها اشتباه چاپ می‌شه. توی راهنمای بسته‌های crop و geometry چیزی پیدا نکردم.
چطور می‌تونم این مشکل رو حل کنم؟
\documentclass[a4paper]{book}
\usepackage{ptext}
\usepackage[total={16.3cm,23.5cm},centering,includehead=true,paperwidth=20.8cm, paperheight=28cm]{geometry}
\usepackage[cross,center,noinfo,a4]{crop}
\usepackage{xepersian}
%\settextfont{XB Niloofar}


\begin{document}
\chapter{مقداری متن}
\section{مقداری متن دیگر}
\ptext[1-10]
\newpage
\newgeometry{total={14.3cm,21.9cm},centering,includehead=true,paperwidth=20.8cm, paperheight=28cm}
\ptext[1-10]
\newpage
\restoregeometry
\ptext[1-10]
\end{document}
پ.ن ۱: اصراری به استفاده از دستور newgeometry ندارم؛ فقط می‌خوام حاشیه صفحات ۳ و ۴ رو تغییر بدم و دوباره برگردم به حاشیه اولی؛ با این شرط که جای کراپ‌مارک‌ها توی همه صفحات، یکسان باشه.
پ.ن ۲: بدون استفاده از زی‌پرشین هم این مشکل وجود داره.
« آخرين ويرايش: سپتامبر 16, 2014, 12:01:48 am توسط وحید دامن‌افشان »

آفلاین فرشاد ترابی

  • مدیر تالار
  • Hero Member
  • **
  • تشکر
  • -اهدا شده: 204
  • -دریافت شده: 474
  • ارسال: 1,779
    • ديدن مشخصات
راستش از بابت مشکل شما اطلاعی ندارم. فقط خواستم یادآوری کنم که بسته جدیدی که دکتر کارن‌پهلو نوشتن را تست کردید؟ یکی از کارهاش قرار دادن خطوط برش هست.

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
فایل pdf فایلی است که من می‌گیرم. در ضمن تغییر paperwidth و paperheight در \newgeometry ممکن نیست:
Package geometry Warning: `paperwidth': not available in `\newgeometry'; skippe
d.


Package geometry Warning: `paperheight': not available in `\newgeometry'; skipp
ed.

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
پ.ن ۱: اصراری به استفاده از دستور newgeometry ندارم؛ فقط می‌خوام حاشیه صفحات ۳ و ۴ رو تغییر بدم و دوباره برگردم به حاشیه اولی؛ با این شرط که جای کراپ‌مارک‌ها توی همه صفحات، یکسان باشه.
با بسته bidi-atbegshi شما کنترل مستقیم روی مبداً گوشه‌های کاغذ داری و بنابراین این مشکل پیش نمیاد:
\documentclass[a4paper]{book}
\usepackage{ptext}
\usepackage[total={16.3cm,23.5cm},centering,includehead=true,paperwidth=20.8cm, paperheight=28cm]{geometry}
\usepackage{bidi-atbegshi}
\usepackage[preloadedlatintextfont]{xepersian}
\settextfont{XB Niloofar}
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
\put(-110,-60){\line(1,0){100}}
\put(-60,-110){\line(0,1){100}}
}
\AtBeginShipoutUpperRight{%
\put(10,-60){\line(1,0){100}}
\put(60,-110){\line(0,1){100}}
}
\AtBeginShipoutLowerLeft{%
\put(-110,60){\line(1,0){100}}
\put(-60,10){\line(0,1){100}}
}
\AtBeginShipoutLowerRight{%
\put(10,60){\line(1,0){100}}
\put(60,10){\line(0,1){100}}
}
}
\begin{document}
\chapter{مقداری متن}
\section{مقداری متن دیگر}
\ptext[1-10]
\newpage
\newgeometry{total={14.3cm,21.9cm},centering,includehead=true}
\ptext[1-10]
\newpage
\restoregeometry
\ptext[1-10]
\end{document}
« آخرين ويرايش: سپتامبر 16, 2014, 02:25:48 pm توسط vafa »

آفلاین وحید دامن‌افشان

  • Administrator
  • Hero Member
  • *****
  • تشکر
  • -اهدا شده: 452
  • -دریافت شده: 718
  • ارسال: 2,107
    • ديدن مشخصات
    • http://www.damanafshan.ir
با بسته bidi-atbegshi شما کنترل مستقیم روی مبداً گوشه‌های کاغذ داری و بنابراین این مشکل پیش نمیاد:
درسته. خیلی ممنون. فقط یه سوال داشتم:
با توجه به اینکه اندازه کاغذ رو روی a4 گذاشتم و همچنین با توجه به گزینه‌های
centering,paperwidth=20.8cm, paperheight=28cmکه تعیین کردم، می‌خوام که خطوط برش به اندازه ۱ میلی‌متر از هر دو سمت راست و چپ و به اندازه ۵ میلی‌متر از هر دو سمت بالا و پایین لبه کاغذ a4 فاصله داشته باشند. آیا روش سرراستی برای تعیین این فاصله با استفاده از دستور put وجود داره یا این فاصله‌ها رو باید با آزمون و خطای مقادیر دستور put تنظیم کنم؟

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
درسته. خیلی ممنون. فقط یه سوال داشتم:
با توجه به اینکه اندازه کاغذ رو روی a4 گذاشتم و همچنین با توجه به گزینه‌های
centering,paperwidth=20.8cm, paperheight=28cmکه تعیین کردم،
اینکه کاغذ شما a4 هست یا مقادیر شما برای paperwidth و paperheight چی هستند کوچکترین اهمیتی نداره. بسته bidi-atbegishi به اندازه‌های کاغذ به چشم یک متغیر نگاه می‌کنه و می‌تونیید هر اندازه‌ای داشته باشند.
نقل قول
می‌خوام که خطوط برش به اندازه ۱ میلی‌متر از هر دو سمت راست و چپ و به اندازه ۵ میلی‌متر از هر دو سمت بالا و پایین لبه کاغذ a4 فاصله داشته باشند. آیا روش سرراستی برای تعیین این فاصله با استفاده از دستور put وجود داره یا این فاصله‌ها رو باید با آزمون و خطای مقادیر دستور put تنظیم کنم؟
شما تنها یک محاسبه سرانگشتی باید بدانید و اینکه محیط picture چگونه کار می‌کند. کد را اول می‌نویسم و توضیحش را برای یکی از گوشه‌های کاغذ راست و یکی از گوشه‌های کاغذ سمت چپ می‌دهم. بقیه گوشه‌های کاغذ مشابه هم هستند. در این مثال همه خط‌های افقی و عمودی ۴۰ میلی‌متر طول دارند.
\documentclass[a4paper]{book}
\usepackage{ptext}
\usepackage[total={16.3cm,23.5cm},centering,includehead=true,paperwidth=20.8cm, paperheight=28cm]{geometry}
\usepackage{bidi-atbegshi}
\usepackage[preloadedlatintextfont]{xepersian}
\settextfont{XB Niloofar}
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
\setlength{\unitlength}{1mm}
\put(-41,-25){\line(1,0){40}}
\put(-21,-45){\line(0,1){40}}
}
\AtBeginShipoutUpperRight{%
\setlength{\unitlength}{1mm}
\put(1,-25){\line(1,0){40}} 
\put(21,-45){\line(0,1){40}}
}
\AtBeginShipoutLowerLeft{%
\setlength{\unitlength}{1mm}
\put(-41,25){\line(1,0){40}}
\put(-21,5){\line(0,1){40}}
}
\AtBeginShipoutLowerRight{%
\setlength{\unitlength}{1mm}
\put(1,25){\line(1,0){40}}
\put(21,5){\line(0,1){40}}
}
}
\begin{document}
\chapter{مقداری متن}
\section{مقداری متن دیگر}
\ptext[1-10]
\newpage
\newgeometry{total={14.3cm,21.9cm},centering,includehead=true}
\ptext[1-10]
\newpage
\restoregeometry
\ptext[1-10]
\end{document}
از اونجایی که اندازه‌هایی که به من دادی به میلی‌متر هستند من مقدار unitlength را از 1pt
به 1mm تغییر دادم:
\setlength{\unitlength}{1mm}

توضیح cropmark گوشه سمت چپ بالا

cropmark از یک خط افقی و یک خط عمودی تشکیل شده. برای اینکه cropmark در سمت چپ بالا کاغذ قرار بگیره دستورات رسم خط را داخل دستور
\AtBeginShipoutUpperLeft{...}
قرار می‌دهم. با این کار صفر مختصات گوشه بالای کاغذ سمت چپ است. در محیط راست به چپ مختصات مثبت افقی سمت چپ و مختصات منفی افقی سمت راست مبدا میشه. خط افقی از راست به چپ کشیده میشه و خط عمودی از پائین به بالا کشیده میشه.

خوب من می‌خواهم در گوشه بالای کاغذ سمت چپ یک خط افقی به طول ۴۰ میلی‌متر بکشم که از سمت چپ کاغذ ۱ میلی‌متر فاصله داشته باشه. از اونجایی که خط افقی از سمت راست به چپ کشیده میشه و مختصات منفی افقی در متن راست به چپ سمت راست کاغذ میشه. من باید خط افقی رو در نقطه ۴۰میلی‌متر به اضافه ۱میلی‌متر سمت راست شروع به کشیدن کنم. پس مختصات افقی میشه -41. تکلیف مختصات عمودی چی میشه؟ خوب وقتی من خط عمودی رو رسم کنم نصف خط عمودی باید پائین خط افقی و نصف دیگش بالای خط افقی باشه. پس روشنه که مختصات عمودی خط افقی باید ۵میلی‌متر به اضافه نصف طول خط که ۲۰میلی‌متر هست باشه. از اونجایی که خط عمودی از پائین به بالا رسم میشه پس باید برم پائین. بنابراین مختصات عمودی خط افقی میشه -25mm. پس کدی که خط افقی رو در گوشه چپ بالا رسم می‌کنه اینه:
\put(-41,-25){\line(1,0){40}}
خوب حالا می‌رسیم به رسم خط عمودی. خط عمودی باید از وسط خط افقی رسم بشه. پس مختصات افقیش باید نصف طول خط +۱میلی‌متر باشه. بنابراین مختصات افقی میشه -21. خوب مختصات عمودی هم روشنه، شما می‌خواهی خطی به اندازه ۴۰میلی‌متر داشته باشی که خطت تا گوشه بالای کاغذ ۵میلی‌متر فاصله داشته باشه. بنابراین مختصات عمودی میشه ۵میلیمتر+۴۰ میلی‌متر. پس مختصات عمودی میشه -45. پس کدی که خط عمودی رو رسم می‌کنه میشه
\put(-21,-45){\line(0,1){40}}

توضیح cropmark گوشه سمت راست پائین
برای اینکه cropmark در سمت راست پائین کاغذ قرار بگیره دستورات رسم خط را داخل دستور
\AtBeginShipoutLowerRight{...}
قرار می‌دهم. با این کار صفر مختصات گوشه سمت راست پائین هست. می‌خواهم خط افقی رسم کنم که از پائین ۲۵ میلی‌متر فاصله داشته باشه و از گوشه سمت راست ۱ میلی‌متر بنابراین این کد باید خط افقی رو رسم کنه:
\put(1,25){\line(1,0){40}}
برای خط عمودی هم می‌خواهم از وسط خط افقی رد بشه. بنابراین مختصات افقی ۱میلی‌متر+۲۰میلی‌متر هست و مختصات عمودی هم ۵میلی‌متر. بنابراین کد زیر خط عمودی رسم می‌کنه:
\put(21,5){\line(0,1){40}}

امیدوارم تونسته باشم موضوع رو شفاف کنم.

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
می‌خوام که خطوط برش به اندازه ۱ میلی‌متر از هر دو سمت راست و چپ و به اندازه ۵ میلی‌متر از هر دو سمت بالا و پایین لبه کاغذ a4 ...
امیدوارم که منظورت رو در جواب قبل اشتباه متوجه نشده باشم. اما اگر منظورت این بود که هم خط افقی و هم خط عمودی به اندازه ۱ میلی‌متر از هر دو سمت راست و چپ و به اندازه ۵ میلی‌متر از هر دو سمت بالا و پایین لبه کاغذ فاصله داشته باشند کد زیر جوابگو هست؛
\documentclass[a4paper]{book}
\usepackage{ptext}
\usepackage[total={16.3cm,23.5cm},centering,includehead=true,paperwidth=20.8cm, paperheight=28cm]{geometry}
\usepackage{bidi-atbegshi}
\usepackage[preloadedlatintextfont]{xepersian}
\settextfont{XB Niloofar}
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
\setlength{\unitlength}{1mm}
\put(-11,-5){\line(1,0){10}}
\put(-1,-15){\line(0,1){10}}
}
\AtBeginShipoutUpperRight{%
\setlength{\unitlength}{1mm}
\put(1,-5){\line(1,0){10}} 
\put(1,-15){\line(0,1){10}}
}
\AtBeginShipoutLowerLeft{%
\setlength{\unitlength}{1mm}
\put(-11,5){\line(1,0){10}}
\put(-1,5){\line(0,1){10}}
}
\AtBeginShipoutLowerRight{%
\setlength{\unitlength}{1mm}
\put(1,5){\line(1,0){10}}
\put(1,5){\line(0,1){10}}
}
}
\begin{document}
\chapter{مقداری متن}
\section{مقداری متن دیگر}
\ptext[1-10]
\newpage
\newgeometry{total={14.3cm,21.9cm},centering,includehead=true}
\ptext[1-10]
\newpage
\restoregeometry
\ptext[1-10]
\end{document}
در این کد من طول خط رو به ۱۰ میلی‌متر کاهش دادم تا ظاهر بهتری داشته باشه.

در کد قبلی تصور من این بود که منظورت اینه که فاصله خط افقی از سمت چپ یا راست کاغذ ۱ میلی‌متر باشه و فاصلش تا بالا یا پائین کاغذ مهم نیست. همچنین فاصله خط عمودی از بالا و پائین کاغذ ۵ میلی‌متر باشه و فاصلش از چپ و راست کاغذ مهم نیست.

امیدوارم تونسته باشم سوالت رو جواب بدم.
« آخرين ويرايش: سپتامبر 16, 2014, 11:39:53 pm توسط vafa »

آفلاین وحید دامن‌افشان

  • Administrator
  • Hero Member
  • *****
  • تشکر
  • -اهدا شده: 452
  • -دریافت شده: 718
  • ارسال: 2,107
    • ديدن مشخصات
    • http://www.damanafshan.ir
اگر منظورت این بود که هم خط افقی و هم خط عمودی به اندازه ۱ میلی‌متر از هر دو سمت راست و چپ و به اندازه ۵ میلی‌متر از هر دو سمت بالا و پایین لبه کاغذ فاصله داشته باشند کد زیر جوابگو هست؛
امیدوارم تونسته باشم سوالت رو جواب بدم.
دقیقاً منظورم همین بود. ممنون که وقت گذاشتی و کامل توضیح دادی. خیلی چیزها یاد گرفتم؛ از جمله همین محل درست قرار دادن دستور
\setlength{\unitlength}{1mm}که من به اشتباه اون رو قبل از خط
\AtBeginShipout{%استفاده می‌کردم و طبیعتاً نتیجه دلخواهم رو نمی‌گرفتم.

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
از جمله همین محل درست قرار دادن دستور
\setlength{\unitlength}{1mm}که من به اشتباه اون رو قبل از خط
\AtBeginShipout{%استفاده می‌کردم و طبیعتاً نتیجه دلخواهم رو نمی‌گرفتم.
اگر راهنمای بسته bidi-atbegshi رو نگاه کنی اونجا گفته که
\AtBeginShipoutUpperRight {⟨background material⟩}
This is a macro that puts material in the background of box \AtBeginShipoutBox.
The ⟨background material⟩ is set in an \hbox, the reference point is the upper right
corner of the output page.
The macro \AtBeginShipoutUpperRight is intended to be used in one of
the hook setting macros, such as \AtBeginShipout, \AtBeginShipoutFirst, or
\AtBeginShipoutNext.
The ⟨background material⟩ is set inside a picture environment:
\begin{picture}(0,0)
\setlength{\unitlength}{1pt}%
⟨background material⟩
\end{picture}

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
من چند سال میشه که از لاتک استفاده نکردم و دیشب هم دیروقت جواب دادم اینه که خودم رو مقداری گیج کردم و کدی که دادم خیلی ساده‌تر هم میشه نوشت. کافیه برای اینکه خط از چپ به راست کشیده شه (برای خط‌های افقی سمت‌چپ) شیب منفی بهش بدی و برای اینکه خط از بالا به پائین کشیده بشه (برای خط‌های عمودی بالا) شیب منفی داشته باشه. کد قبلی رو از نو با روش جدید نوشتم که بسیار ساده هست و اون محاسبه سرانگشتی هم که گفتم احتیاج نیست:
\documentclass[a4paper]{book}
\usepackage{ptext}
\usepackage[total={16.3cm,23.5cm},centering,includehead=true,paperwidth=20.8cm, paperheight=28cm]{geometry}
\usepackage{bidi-atbegshi}
\usepackage[preloadedlatintextfont]{xepersian}
\settextfont{XB Niloofar}
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
\setlength{\unitlength}{1mm}
\put(-1,-5){\line(-1,0){10}}
\put(-1,-5){\line(0,-1){10}}
}
\AtBeginShipoutUpperRight{%
\setlength{\unitlength}{1mm}
\put(1,-5){\line(1,0){10}} 
\put(1,-5){\line(0,-1){10}}
}
\AtBeginShipoutLowerLeft{%
\setlength{\unitlength}{1mm}
\put(-1,5){\line(-1,0){10}}
\put(-1,5){\line(0,1){10}}
}
\AtBeginShipoutLowerRight{%
\setlength{\unitlength}{1mm}
\put(1,5){\line(1,0){10}}
\put(1,5){\line(0,1){10}}
}
}
\begin{document}
\chapter{مقداری متن}
\section{مقداری متن دیگر}
\ptext[1-10]
\newpage
\newgeometry{total={14.3cm,21.9cm},centering,includehead=true}
\ptext[1-10]
\newpage
\restoregeometry
\ptext[1-10]
\end{document}
فکر می‌کنم کد به اندازه کافی خوانا باشه و احتیاجی به توضیح نداشته باشه.

 

جابجا کردن محل کراپ‌مارک‌ها در بسته crop

نویسنده وحید دامن‌افشانانجمن عمومی

پاسخ ها: 1
مشاهده: 2121
آخرين ارسال دسامبر 10, 2012, 06:04:37 pm
توسط vafa
جابجا شدن کراپ‌مارک‌های چاپ‌شده توسط بسته bidi-atbegshi در محیط multicols

نویسنده وحید دامن‌افشانانجمن زی‌تک

پاسخ ها: 3
مشاهده: 4220
آخرين ارسال سپتامبر 30, 2014, 04:55:23 am
توسط vafa
استفاده از دستور darray در بسته breqn

نویسنده سید مهدی موسویانجمن عمومی

پاسخ ها: 4
مشاهده: 4976
آخرين ارسال آوریل 23, 2011, 12:28:32 pm
توسط vafa
نداشتن pdf موقع استفاده از دستور ‪\lr{}‬

نویسنده هادی صفی‌اقدمانجمن حروف‌چینی مستندات

پاسخ ها: 4
مشاهده: 3646
آخرين ارسال ژوئیه 30, 2011, 09:54:24 am
توسط هادی صفی‌اقدم
مشکل در استفاده از دستور \lr در عنوان

نویسنده پیام شیواانجمن زی‌تک

پاسخ ها: 1
مشاهده: 2648
آخرين ارسال اكتبر 14, 2011, 07:46:27 pm
توسط vafa
بروز خطا هنگامی که از دستور \lr در ماکرو استفاده می شود.

نویسنده فرشاد ترابیانجمن حروف‌چینی مستندات

پاسخ ها: 1
مشاهده: 2592
آخرين ارسال ژوئن 27, 2012, 04:14:47 pm
توسط vafa
ایجاد نشدن فاصله با وجود استفاده از دستور newline\

نویسنده مرجانانجمن حروف‌چینی مستندات

پاسخ ها: 1
مشاهده: 3046
آخرين ارسال اوت 13, 2012, 10:28:22 pm
توسط هادی صفی‌اقدم
حذف شدن علامت خط تیره بین شماره صفحات موقع استفاده از گزینه ‎quickindex‎

نویسنده وحید دامن‌افشانانجمن زی‌تک

پاسخ ها: 4
مشاهده: 2637
آخرين ارسال اكتبر 08, 2012, 05:58:59 am
توسط vafa