اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

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

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

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

0 رای
39 بازدید

سلام
می‌خواهم یک قطعه شعر را در محیط 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 توسط رضا (85 امتیاز)
برچسب گذاری دوباره 25 اردیبهشت 1396 توسط وحید دامن‌افشان

1 پاسخ

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

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

پاسخ داده شده 21 اردیبهشت 1396 توسط وفا (17,429 امتیاز)
انتخاب شده 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 دستور \\ را وارد می‌کند که در حالت عمودی نباشد (در حالت افقی باشد) و بنابراین در همه موارد به درستی کار خواهد کرد.
...