bidi 包中的 \NewList 问题

bidi 包中的 \NewList 问题

该宏\NewList在 中定义biditools.sty(最初在 中定义lollipop)为:

\def\bidi@csarg#1#2{\expandafter#1\csname#2\endcsname}
\def\NewList:#1 {\bidi@csarg\newtoks{#1}\global\csname#1\endcsname{}}

这与 中的定义不同easylist.sty

需要注意的是,该宏\NewList未在bidixepersian包中的任何地方使用,但是,在下面的代码中它会导致失败。

\documentclass{article}
\usepackage{easylist}
\usepackage[fontsloadable]{xepersian} % option is required because
                   % xepersian 21.8 and 21.9 prevent loading fonts
                   % with the string "HM" in their font name.
\settextfont[Scale=1.44]{Amiri}
\setlatintextfont[Scale=1.44]{Psychedelia HM}
\pagestyle{empty}
\begin{document}
\begin{easylist}\NewList
§ تراز اول --- \lr{first level}
§§§ تراز سوم --- \lr{third level}
\end{easylist}
\end{document}

错误信息是:

(c:/texlive/2018/texmf-dist/tex/xelatex/xepersian/loadingorder
-xepersian.def)
(c:/texlive/2018/texmf-dist/tex/xelatex/xepersian/footnote-xep
ersian.def)
(c:/texlive/2018/texmf-dist/tex/xelatex/xepersian/article-xepe
rsian.def)) (./easylist-test.aux)
! Use of \NewList doesn't match its definition.
l.11 §
       تراز اول --- \lr{first level}
? h
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

? 

\NewList在 中注释掉宏是否安全biditools.sty?如果是,LaTeX 中是否有任何(内部或外部)命令可以代替\NewList

答案1

我不确定\NewList中定义应该做什么biditools

它的定义是,需要其后跟一个冒号。

您可以恢复定义,但如果需要easylist重新定义,这可能会导致问题。\NewList

\documentclass{article}
\usepackage{easylist}
\let\easylistNewList\NewList
\usepackage{xepersian}
\settextfont[Scale=1.44]{Amiri}
\AtBeginDocument{\let\NewList\easylistNewList}
\pagestyle{empty}
\begin{document}
\begin{easylist}\NewList
§ تراز اول
§§§ تراز سوم
\end{easylist}
\end{document}

您可能不想执行第二步,而是\let使用\easylistNewList

相关内容