传统数轴的此代码存在问题

传统数轴的此代码存在问题

我想排版编号行的诗歌。使用以下代码:

\documentclass[a4paper,12pt]{article}
\usepackage[colorlinks=true]{hyperref}
\usepackage{xepersian}
\settextfont[Scale=1.2]{Yas}
\usepackage{bidipoem}
\renewcommand\poemcolsepskip{1cm}
\newcount\LineNumber \newcount\templinenumber
\newdimen\linenumberskip \linenumberskip=-0.75em
\chardef\linestep=1
\def\poemlinenumber{%
\advance\LineNumber1
\templinenumber=\LineNumber
\computelinenumber
}
\def\computelinenumber{%
\ifnum\templinenumber>\linestep
    \advance\templinenumber-\linestep
    \expandafter\computelinenumber
    \else
    \ifnum\templinenumber=\linestep
    \leavevmode\rlap{\kern\linenumberskip\footnotesize\the\LineNumber}%
    \fi
    \fi
   }
   \newenvironment{numberedtraditionalpoem}
   {\everypar{\poemlinenumber}
    \begin{traditionalpoem}}
   {\end{traditionalpoem}}

   \begin{document}
   \begin{numberedtraditionalpoem}
  ازدست و زبان که برآید & کزعهده ی شکرش بدرآید\\
   ازدست و زبان که برآید & کزعهده ی شکرش بدرآید
 \end{numberedtraditionalpoem}
 \end{document}

问题是诗歌之间的文字。像诗歌 Numberd 这样的文字。请帮忙。

答案1

类似的问题昨晚在 ParsiLaTeX 论坛上被问到这个问题。

这几乎是用户提问内容的粗略翻译(从波斯语到英语)(我认为两个用户是同一个人,注意通用名称ata):

我如何将一些普通文本(不是诗歌)放入numberedtraditionalpoem不编号的文本中?

解决方案是定义\interpoemtext类似于包\intertext的命令amsmath

\documentclass[a4paper,12pt]{article}
\usepackage[colorlinks=true]{hyperref}
\usepackage{xepersian}
\settextfont[Scale=1.2]{Yas}
\usepackage{bidipoem}
\renewcommand\poemcolsepskip{1cm}
\newcount\LineNumber \newcount\templinenumber
\newdimen\linenumberskip \linenumberskip=-0.75em
\chardef\linestep=1
\def\poemlinenumber{%
    \advance\LineNumber1
    \templinenumber=\LineNumber
    \computelinenumber
}
\def\computelinenumber{%
    \ifnum\templinenumber>\linestep
    \advance\templinenumber-\linestep
    \expandafter\computelinenumber
    \else
    \ifnum\templinenumber=\linestep
    \leavevmode\rlap{\kern\linenumberskip\footnotesize\the\LineNumber}%
    \fi
    \fi
}
\newenvironment{numberedtraditionalpoem}
{\everypar{\poemlinenumber}
    \begin{traditionalpoem}}
{\end{traditionalpoem}}
\makeatletter
\newbox\interpoemtext@box
\newcommand{\interpoemtext}{\PackageError{bidipoem}{Invalid use of \string\interpoemtext}\@eha}
\def\interpoemtext@{%
  \def\interpoemtext##1{%
    \ifvmode\else\\\@empty\fi
    \noalign{%
      \penalty\postdisplaypenalty\vskip\belowdisplayskip
      \setbox\interpoemtext@box\vbox{\normalbaselines
      \everypar{}
       \parfillskip=0pt plus 1fil
        \ifdim\linewidth=\columnwidth
        \else \parshape\@ne \@totalleftmargin \linewidth
        \fi
        \noindent##1\par}%
        \unvbox\interpoemtext@box%
      \penalty\predisplaypenalty\vskip\abovedisplayskip%
    }%
}}
\bidi@preto{\@traditionalpoem}{\interpoemtext@}
\makeatother
\begin{document}
\begin{numberedtraditionalpoem}
ازدست و زبان که برآید & کزعهده ی شکرش بدرآید\\
\interpoemtext{%
ین یک متن آزمایشی است.این یک متن آزمایشی است.این یک متن آزمایشی است.این یک متن آزمایشی است.%
}
ازدست و زبان که برآید & کزعهده ی شکرش بدرآید
\end{numberedtraditionalpoem}

\end{document}

这将产生以下输出:

在此处输入图片描述

我猜这就是问题所问的。

答案2

感谢@VafaKhalighi。这里还有另一种方法,即使用两个环境 并用替换计数器numberedtraditionalpoem的定义,在这种情况下,计数器的值可以在环境之外使用。\LineNumber\newcounter{LineNumber}numberedtraditionalpoem

要重置计数器只需添加 \setcounter{LineNumber}{0}

代码

\documentclass[a4paper,12pt]{article}
\usepackage[colorlinks=true]{hyperref}
\usepackage{xepersian}
\settextfont[Scale=1.2]{Amiri}
\usepackage{bidipoem}

\renewcommand\poemcolsepskip{1cm}
\newcounter{LineNumber} \newcount\templinenumber
\newdimen\linenumberskip \linenumberskip=-0.75em
\chardef\linestep=1
\def\poemlinenumber{%
\addtocounter{LineNumber}{1}
\templinenumber=\value{LineNumber}
\computelinenumber
}
\def\computelinenumber{%
\ifnum\templinenumber>\linestep
    \advance\templinenumber-\linestep
    \expandafter\computelinenumber
    \else
    \ifnum\templinenumber=\linestep
    \leavevmode\rlap{\kern\linenumberskip\footnotesize\theLineNumber}%
    \fi
    \fi
   }
   \newenvironment{numberedtraditionalpoem}
   {\everypar{\poemlinenumber}
    \begin{traditionalpoem}}
   {\end{traditionalpoem}}

\begin{document}

\begin{numberedtraditionalpoem}
  ازدست و زبان که برآید & کزعهده ی شکرش بدرآید\\
   ازدست و زبان که برآید & کزعهده ی شکرش بدرآید
\end{numberedtraditionalpoem}

ین یک متن آزمایشی است.این یک متن آزمایشی است.این یک متن آزمایشی است.این یک متن آزمایشی است.

\begin{numberedtraditionalpoem}
  ازدست و زبان که برآید & کزعهده ی شکرش بدرآید\\
   ازدست و زبان که برآید & کزعهده ی شکرش بدرآید
\end{numberedtraditionalpoem} 

\setcounter{LineNumber}{0} 
\bigskip

\begin{numberedtraditionalpoem}
  ازدست و زبان که برآید & کزعهده ی شکرش بدرآید\\
   ازدست و زبان که برآید & کزعهده ی شکرش بدرآید
\end{numberedtraditionalpoem} 

\end{document}

在此处输入图片描述

相关内容