更新答案

更新答案

我想将分散在各个部分或章节中(或例如在单独的框内)的诗歌视为一个单元,并一起调整它们的长度。我该怎么做?

*我发现第一次运行后,诗歌长度存储在辅助文件中。在第二次运行期间,它会将所有诗歌的长度调整为 1,因此如果可以在第二次运行中进行一些更改,以便所有环境traditionalpoem(分散在整个文本中)使用最大长度,问题就消失了。此致

\documentclass{article}
\usepackage{tcolorbox}
\usepackage{bidipoem}
\tcbuselibrary{breakable}
\newtcolorbox[auto counter, use counter=section, list type=section, list inside=toc]{sectionbox}[1]{colback=red!5!white, colframe=red!75!black, fonttitle=\bfseries, title={\thetcbcounter\ #1}, list entry={\thetcbcounter\quad #1}, breakable}
\usepackage{xepersian}
\settextfont{Yas}

\begin{document}
  \begin{sectionbox}{مورد اول}
        شغل یا مقام و ثروت می‌سنجیم که همه آن‌ها فرم و ظاهر هستند و به‌هیچ‌وجه نمی‌توانند معیار سنجش حضوری باشند که فرم و نهایتی ندارد. در این رابطه، بیت زیر از مولانا بسیار روشن گر است.
    \begin{traditionalpoem}
        چنان گشت و چنین گشت، چنان راست نیاید&
        مدانید که چونید، مدانید که چندید\\
    \end{traditionalpoem}
\end{sectionbox}

\begin{sectionbox}{مورد دوم}
    پس چطور می‌توان از شب در مورد روز سؤال کرد و یا از پشه میزان قدرت باد را پرسید؟!    
    \begin{traditionalpoem}

        شب گریزد، چون‌که نور آید ز دور&
        پس چه داند ظلمت شب، حال نور؟\\
        پشه بگریزد ز باد بادها&
        پس چه داند پشه ذوق بادها؟\\
    \end{traditionalpoem}

\end{sectionbox}

\end{document}

在此处输入图片描述

更新: 按照大卫的天才回答,我在扩展文件时遇到了不稳定性:如果最长的诗歌行没有放在文本的开头(如下面的代码所示,它被放在第二个框内),第一个框的前三行就会错位。

\documentclass{article}
\usepackage{tcolorbox}
\usepackage{bidipoem}
\tcbuselibrary{breakable}
\newtcolorbox[auto counter, use counter=section, list type=section, list inside=toc]{sectionbox}[1]{colback=red!5!white, colframe=red!75!black, fonttitle=\bfseries, title={\thetcbcounter\ #1}, list entry={\thetcbcounter\quad #1}, breakable}
\usepackage{xepersian}
\settextfont{Yas}

\usepackage{etoolbox}
\makeatletter
\newdimen\max@poem@width
\patchcmd{\@endtraditionalpoem}
  {\poem@write@aux{poem@width@\romannumeral\c@poem@no}{\new@poem@width}}
  {\ifdim\new@poem@width>\max@poem@width
     \global\max@poem@width\new@poem@width
   \fi
   \poem@write@aux{poem@width@\romannumeral\c@poem@no}{\max@poem@width}}
  {}
  {}
\makeatother
\renewcommand\poemcolsepskip{1cm}
\begin{document}


\begin{sectionbox}{مورد دوم}
    پس چطور می‌توان از شب در مورد روز سؤال کرد و یا از پشه میزان قدرت باد را پرسید؟!    
    \begin{traditionalpoem}

  خبری است نورسیده تو مگر خبر نداری‌&
  جگر حسود خون شد تو مگر جگر نداری\\
  قمری است رونموده پَرِ نور برگشوده&
  دل و چشم وام بستان ز کسی اگر نداری\\
  عجب از کمانِ پنهان، شب و روز تیر پران&
  بسپار جان به تیرش چه کنی سپر نداری\\
  مسِ هستی‌ات چو موسی نه ز کیمیاش زر شد&
  چه غم است اگر چو قارون به جوال زر نداری\\
  به درونِ توست مصری که تویی شکرستانش&
  چه غم است اگر ز بیرون مدد شکر نداری\\
  شده‌ای غلام صورت به مثال بت پرستان&
  تو چو یوسُفی ولیکن به درون نظر نداری\\
  به خدا جمالِ خود را چو در آینه ببینی&
  بت خویش هم تو باشی به کسی گذر نداری\\
  خِردا نه ظالمی تو که ورا چو ماه گویی&
  ز چه روش ماه گویی، تو مگر بصر نداری\\
  سر توست چون چراغی بگرفته شش فتیله&
  همه شش ز چیست روشن اگر آن شرر نداری\\
  تن توست همچو اُشتر که بَرَد به کعبهٔ دل&
  ز خری به حج نرفتی، نه از آنک خر نداری\\
  تو به کعبه گر نرفتی، بِکِشاندت سعادت&
  مگریز ای فضولی که ز حق عَبَر نداری\\
    \end{traditionalpoem}

\end{sectionbox}


 \begin{sectionbox}{مورد اول}
    شغل یا مقام و ثروت می‌سنجیم که همه آن‌ها فرم و ظاهر هستند و به‌هیچ‌وجه نمی‌توانند معیار سنجش حضوری باشند که فرم و نهایتی ندارد. در این رابطه، بیت زیر از مولانا بسیار روشن گر است.

    \begin{traditionalpoem}
        قدرت باد را پرسید روی تو کس ندید و هزارت رقیب هست&
        در غنچه‌ای هنوز و صدت عندلیب هست\\
        هرچند دورم از تو که دور از تو کس مباد&
        لیکن امید وصل توام عن‌قریب هست\\
        گر آمدم به کوی تو چندان غریب نیست&
        چون من درین دیار فراوان غریب هست\\
        عاشق که شد که یار به حالش نظر نکرد&
        ای خواجه درد نیست وگرنه طبیب هست\\
        در عشق خانقاه و خرابات فرق نیست&
        هر جا که هست پرتو روی حبیب هست\\
        آنجا که کار صومعه را جلوه می‌دهند&
        ناقوسِ دیر و راهب و نام صلیب هست\\
        فریاد حافظ این‌همه آخر به هرزه نیست&
        هم قصه‌ای غریب و حدیثی عجیب هست\\
    \end{traditionalpoem}
\end{sectionbox}
\end{document}

在此处输入图片描述

答案1

更新答案

此次更新处理了更新后的问题。

这个想法是将最大诗歌宽度写入文档末尾的辅助文件,以便在下次运行开始时对其进行初始化。xelatex需要运行三次。

平均能量损失

\documentclass{article}
\usepackage{tcolorbox}
\usepackage{bidipoem}
\tcbuselibrary{breakable}
\newtcolorbox[auto counter, use counter=section, list type=section, list inside=toc]{sectionbox}[1]{colback=red!5!white, colframe=red!75!black, fonttitle=\bfseries, title={\thetcbcounter\ #1}, list entry={\thetcbcounter\quad #1}, breakable}
\usepackage{xepersian}
\settextfont{Yas}

\usepackage{etoolbox}
\makeatletter
\def\max@poem@width{0pt}
\patchcmd{\@endtraditionalpoem}
  {\poem@write@aux{poem@width@\romannumeral\c@poem@no}{\new@poem@width}}
  {\ifdim\new@poem@width>\max@poem@width
     \xdef\max@poem@width{\new@poem@width}%
   \fi
   \poem@write@aux{poem@width@\romannumeral\c@poem@no}{\max@poem@width}}
  {}
  {}
\AtEndDocument{%
  \poem@write@aux{max@poem@width}{\max@poem@width}}
\makeatother
\renewcommand\poemcolsepskip{1cm}
\begin{document}


\begin{sectionbox}{مورد دوم}
    پس چطور می‌توان از شب در مورد روز سؤال کرد و یا از پشه میزان قدرت باد را پرسید؟!    
    \begin{traditionalpoem}

  خبری است نورسیده تو مگر خبر نداری‌&
  جگر حسود خون شد تو مگر جگر نداری\\
  قمری است رونموده پَرِ نور برگشوده&
  دل و چشم وام بستان ز کسی اگر نداری\\
  عجب از کمانِ پنهان، شب و روز تیر پران&
  بسپار جان به تیرش چه کنی سپر نداری\\
  مسِ هستی‌ات چو موسی نه ز کیمیاش زر شد&
  چه غم است اگر چو قارون به جوال زر نداری\\
  به درونِ توست مصری که تویی شکرستانش&
  چه غم است اگر ز بیرون مدد شکر نداری\\
  شده‌ای غلام صورت به مثال بت پرستان&
  تو چو یوسُفی ولیکن به درون نظر نداری\\
  به خدا جمالِ خود را چو در آینه ببینی&
  بت خویش هم تو باشی به کسی گذر نداری\\
  خِردا نه ظالمی تو که ورا چو ماه گویی&
  ز چه روش ماه گویی، تو مگر بصر نداری\\
  سر توست چون چراغی بگرفته شش فتیله&
  همه شش ز چیست روشن اگر آن شرر نداری\\
  تن توست همچو اُشتر که بَرَد به کعبهٔ دل&
  ز خری به حج نرفتی، نه از آنک خر نداری\\
  تو به کعبه گر نرفتی، بِکِشاندت سعادت&
  مگریز ای فضولی که ز حق عَبَر نداری\\
    \end{traditionalpoem}

\end{sectionbox}


 \begin{sectionbox}{مورد اول}
    شغل یا مقام و ثروت می‌سنجیم که همه آن‌ها فرم و ظاهر هستند و به‌هیچ‌وجه نمی‌توانند معیار سنجش حضوری باشند که فرم و نهایتی ندارد. در این رابطه، بیت زیر از مولانا بسیار روشن گر است.

    \begin{traditionalpoem}
        قدرت باد را پرسید روی تو کس ندید و هزارت رقیب هست&
        در غنچه‌ای هنوز و صدت عندلیب هست\\
        هرچند دورم از تو که دور از تو کس مباد&
        لیکن امید وصل توام عن‌قریب هست\\
        گر آمدم به کوی تو چندان غریب نیست&
        چون من درین دیار فراوان غریب هست\\
        عاشق که شد که یار به حالش نظر نکرد&
        ای خواجه درد نیست وگرنه طبیب هست\\
        در عشق خانقاه و خرابات فرق نیست&
        هر جا که هست پرتو روی حبیب هست\\
        آنجا که کار صومعه را جلوه می‌دهند&
        ناقوسِ دیر و راهب و نام صلیب هست\\
        فریاد حافظ این‌همه آخر به هرزه نیست&
        هم قصه‌ای غریب و حدیثی عجیب هست\\
    \end{traditionalpoem}
\end{sectionbox}
\end{document}

MWE 输出

原始答案

虽然我不懂波斯语,也不懂这些诗歌的意思,但我认为这会满足你的要求。

我只是修补\@endtraditionalpoem以确保将全局最大宽度写入辅助文件,而不是特定诗歌的最大宽度。

将此添加到您的序言中:

\usepackage{etoolbox}
\makeatletter
\newdimen\max@poem@width
\patchcmd{\@endtraditionalpoem}
  {\poem@write@aux{poem@width@\romannumeral\c@poem@no}{\new@poem@width}}
  {\ifdim\new@poem@width>\max@poem@width
     \global\max@poem@width\new@poem@width
   \fi
   \poem@write@aux{poem@width@\romannumeral\c@poem@no}{\max@poem@width}}
  {}
  {}
\makeatother

平均能量损失

\documentclass{article}
\usepackage{tcolorbox}
\usepackage{bidipoem}
\tcbuselibrary{breakable}
\newtcolorbox[auto counter, use counter=section, list type=section, list inside=toc]{sectionbox}[1]{colback=red!5!white, colframe=red!75!black, fonttitle=\bfseries, title={\thetcbcounter\ #1}, list entry={\thetcbcounter\quad #1}, breakable}
\usepackage{xepersian}
\settextfont{Yas}

\usepackage{etoolbox}
\makeatletter
\newdimen\max@poem@width
\patchcmd{\@endtraditionalpoem}
  {\poem@write@aux{poem@width@\romannumeral\c@poem@no}{\new@poem@width}}
  {\ifdim\new@poem@width>\max@poem@width
     \global\max@poem@width\new@poem@width
   \fi
   \poem@write@aux{poem@width@\romannumeral\c@poem@no}{\max@poem@width}}
  {}
  {}
\makeatother

\begin{document}
  \begin{sectionbox}{مورد اول}
        شغل یا مقام و ثروت می‌سنجیم که همه آن‌ها فرم و ظاهر هستند و به‌هیچ‌وجه نمی‌توانند معیار سنجش حضوری باشند که فرم و نهایتی ندارد. در این رابطه، بیت زیر از مولانا بسیار روشن گر است.

    \begin{traditionalpoem}
        چنان گشت و چنین گشت، چنان راست نیاید&
        مدانید که چونید، مدانید که چندید \\
    \end{traditionalpoem}
\end{sectionbox}

\begin{sectionbox}{مورد دوم}
    پس چطور می‌توان از شب در مورد روز سؤال کرد و یا از پشه میزان قدرت باد را پرسید؟!    
    \begin{traditionalpoem}

        شب گریزد، چون‌که نور آید ز دور&
        پس چه داند ظلمت شب، حال نور؟\\
        پشه بگریزد ز باد بادها&
        پس چه داند پشه ذوق بادها؟\\
    \end{traditionalpoem}

\end{sectionbox}

\end{document}

MWE 输出

相关内容