۴۰ ٪ تخفیف برای خرید محصولات غیرفیزیکی فروشگاه پارسی‌لاتک با وارد کردن کد تخفیف kermanshah. مبلغ ۶۰ ٪ باقیمانده عيناً به زلزله‌زدگان اهدا می‌شود.
اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

محبوب‌ترین برچسب‌ها

رفع خطا جدول مراجع ریاضی‌نویسی شکل شماره‌گذاری xepersian فهرست مطالب منابع فونت bidi parsilatex تک‌لایو اسلاید پانویس زی‌پرشین بیب‌تک بیمر پاورقی نماد tikz ویرایشگر biditexmaker سربرگ هدر قالب bibtex رسم شکل واژه‌نامه اندازه فونت ارجاع‌دهی texstudio beamer ماتریس bidipresentation عنوان فصل رسم جدول عنوان شکل اسلاید فارسی فرمول‌نویسی حاشیه گراف زیرنویس شکل محیط قضیه حروف‌چینی کد اعمال نشدن تغییرات در پی‌دی‌اف رنگ عدم اجرا مکان شکل متن لاتین و فارسی tabriz_thesis شماره صفحه فارسی‌تک فهرست اشکال شماره فصل tikzpicture listings align فرمول خروجی بسته نیم‌فاصله فاصله‌گذاری enumerate itemize biditools texlive2015 سوال امتحانی فرمول چندضابطه‌ای نمودار نمایه شماره‌گذاری صفحات glossaries biditufte-book کپشن الگوریتم کادر texlive2016 تصویر شماره پاورقی فونت فارسی و انگلیسی پیوست‌ hyperref texmaker خطا دیاگرام چپ‌چینی فصل‌نویسی تنظیم جدول میک‌تک اندیس لاتک شماره فرمول تک لایو 2015 به‌روزرسانی بسته aimc46 lollipop سوال چهارگزینه‌ای کاما xindy iust-thesis ماکرونویسی جستجوی معکوس تورفتگی texworks subfigure پوستر فرمول طولانی multicol فهرست جداول pdf زیرنویس فاصله بین خطوط عنوان بخش حروف‌چینی چندستونی tex-programming قرآن میکروسافت ورد header winedt قالب پایان‌نامه آکولاد فلش شماره گذاری فاصله سطرها اعداد فارسی شکست خط صفر توخالی بیرون‌زدگی شمارنده فصل اوبونتو محیط ریاضی جایابی تصویر caption کمک مالی فاصله خطوط فهرست نمادها غلط‌گیری املایی kashida tabriz-thesis fancyhdr عکس پانویس پاراگرافی شماره قسمت شماره‌گذاری فرمول bidihl قالب کتاب پاراگراف‌بندی pgfplots وسط‌چینی افقی هایپرلینک الگوریتم‌ پیکان رسم کادر equation جدول افقی جداکننده قسمت رسم نمودار توابع فونت ایتالیک نوشتافت رسم گراف پانویس افقی algorithm2e فونت بولد بولد متلب tabular extrafootnotefeatures text baselineskip متن فارسی و انگلیسی tcolorbox فرمول چندخطی neveshtuft شکستن جدول بازیابی اطلاعات آپدیت texlive شعر ایتالیک cite زیرشکل لوگو sumatra bidipoem matlab eps xelatex fontspec texlive2014 شمارنده قلم زیرنویس لاتین tex ltrfootnote computeautoilg نصب تک‌لایو متن دوستونه عنوان جدول عدم نمایش در خروجی
4 نفر آنلاین
0 عضو و 4 مهمان در سایت حاضرند
بازدید امروز: 1971
بازدید دیروز: 7496
بازدید کل: 3692868

نوشتن شعر در محیط epigraph و خطای There's no line here to end.

0 رای
40 بازدید

سلام
می‌خواهم یک قطعه شعر را در محیط epigraph بنویسم. کد زیر خطا می‌دهد. دلیل آنرا می‌دانید؟

\documentclass{book}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{epigraph}
\usepackage{bidipoem}
\usepackage[extrafootnotefeatures]{xepersian}
\settextfont[Scale=1]{XB Niloofar}
\setlatintextfont[Scale=.95]{Times New Roman}
\setdigitfont[Scale=.9]{Yas}
\defpersianfont\mysmallfont[Scale=.9]{XB Niloofar}
\defpersianfont\chapfont[Scale=3.3]{XB Niloofar}
\defpersianfont\norfont[Scale=1]{XB Niloofar}

\newcommand{\BZ}[2]
{
    \epigraph{
        \justifying
        \noindent
        \textit{{#1}}
    }{#2}
}


\begin{document}

\BZ{
\begin{traditionalpoem}
خرد باید و دانش و راستی  & که کژی بکوبد در کاستی \\
که دانش به شب پاسبان منست  & خرد تاج بیدار جان منست 
\end{traditionalpoem}
}{فردوسی}
سوال شده 21 اردیبهشت 1396 توسط رضا (87 امتیاز)
برچسب گذاری دوباره 25 اردیبهشت 1396 توسط وحید دامن‌افشان

1 پاسخ

+1 رای
 
بهترین پاسخ

برای توضیح کلی خطا اینجا رو ببینید. اتفاقی که می‌افته اینه که بسته epigraph در انتهای آرگومان نخست دستور \epigraph یک \\ وارد می‌کند حال انکه آرگومان نخست دستور محیط traditionalpoem است که احتیاجی به رفتن به سطر بعد نداره زیرا که سطری وجود نداره در پایان این محیط که \\ بخواد اون رو پایان بده. برای حل مشکل کافیه یک \leavevmode در تعریف دستور \BZ پس از \textit{#1} (یعنی درست در انتهای آرگومان نخست دستور \BZ) وارد کنید هر چند با این کار دو سطر خالی در انتهای شعر وجود خواهد داشت که یکی را محیط traditionalpoem وارد کرده و دیگری توسط دستور \epigraph وارد شده. اگر دو سطر خالی را نمی‌پسندید باید یا تعریف دستور \epigraph را تغییر دهید و یا دستور تازه‌ای تعریف کنید تا آن \\ حذف شده باشد.

پاسخ داده شده 21 اردیبهشت 1396 توسط وفا (18,372 امتیاز)
انتخاب شده 21 اردیبهشت 1396 توسط رضا
سلام، ممنون از پاسخ مفصلتان، اگر درست فهمیده باشم منظورتان این هست که در پایان traditionalpoem سر پاراگراف می‌رود (با اینکه بیت آخر \\ ندارد) و epigraph هم می‌خواهد سرخط جدید برود که این خطا تولید می‌شود. می‌شود بفرمایید چطور تعریف دستور \epigraph را عوض کنم؟ یا یک خط به بالا برگردم (گرچه این راه خوبی نیست، این نوشته بالای صفحه هست و شعر هم کوتاه است)
قبل از \begin{document} کد زیر را قرار بدهید:

\makeatletter
\bidi@patchcmd{\@epitext}{\\}{}{}{}
\makeatother

در اینصورت نیازی به اون \leavevmode ی که در پاسخم گفتم نیست. در واقع در دو جا (تنها در بسته epigraph) دستور \\ وارد می‌شود: یکی در دستور \@epitext که در دستور \epigraph استفاده شده و دیگری هم داخل خود دستور \epigraph وجود دارد. در واقع یکی از اینها اضافه است که باگ بسته epigraph می‌باشد و همین \\ اضافه باعث ایجاد خطا در نمونه شما می‌شود.
خیلی عالی، ممنون
اگر می‌خواهید که دستور \epigraph در سایر موارد (آرگومان نخست آن محیط traditionalpoem نباشد) تعریف زیر بهتر است:

\makeatletter
\bidi@patchcmd{\@epitext}{\\}{\ifvmode\else\\\fi}{}{}
\makeatother

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