逐字逐句使用阿拉伯文字

逐字逐句使用阿拉伯文字

我尝试为语言学家制定指南。其中一部分涉及使用包排版从右到左的文本bidi。我想使用verbatim代码,但波斯字符在环境中无法正确打印verbatim。但以下代码不起作用。我还查看了解决方案类似的问题,但这也不起作用。

\documentclass{article}

\usepackage{fontspec}
\newfontfamily\Parsifont[Script=Arabic]{XB Niloofar}
\usepackage{bidi}
\newcommand{\PRL}[1]{\RL{\Parsifont #1}}

\begin{document}

\PRL{او مرد را دوست نخواهد داشت.}

\begin{verbatim}
\usepackage{fontspec}\newfontfamily\Parsifont[Script=Arabic]{XB Niloofar}
\usepackage{bidi}
\newcommand{\PRL}[1]{\RL{\Parsifont #1}}

\PRL{او مرد را دوست نخواهد داشت.}
\end{verbatim}


\end{document}

这是根据其他建议的解决方案进行的第二次尝试:

\documentclass{article}

\usepackage{fontspec}
\newfontfamily\Parsifont[Script=Arabic]{XB Niloofar}

\usepackage{fancyvrb}
\usepackage{xepersian}

\usepackage{bidi}
\newcommand{\PRL}[1]{\RL{\Parsifont #1}}


\DefineVerbatimEnvironment{rtlverbatim}{Verbatim}{commandchars=+\[\]}

\begin{document}

\PRL{او مرد را دوست نخواهد داشت.}

\begin{latin}
\begin{verbatim}
\usepackage{fontspec}\newfontfamily\Parsifont[Script=Arabic]{XB Niloofar}
\usepackage{bidi}
\newcommand{\PRL}[1]{\RL{\Parsifont #1}}

\PRL{او مرد را دوست نخواهد داشت.}
\end{verbatim}
\end{latin}


\end{document}

答案1

您没有正确理解解决方案的概念

  1. 您应该使用新定义的逐字环境rtlverbatim
  2. 波斯语文本应该被包围+PRL[...]才能在逐字环境中正确显示。

您可能还想为逐字波斯语文本定义单独的波斯语字体。请参阅XePersian文档以查看效果。

你的示例应该像这样修改:

\documentclass{article}

\usepackage{fontspec}
\newfontfamily\Parsifont[Script=Arabic]{XB Niloofar}

\usepackage{fancyvrb}
\usepackage{xepersian}

\newcommand{\PRL}[1]{\RL{\Parsifont #1}}


\DefineVerbatimEnvironment{rtlverbatim}{Verbatim}{commandchars=+\[\]}

\begin{document}

\PRL{او مرد را دوست نخواهد داشت.}

\begin{latin}
\begin{rtlverbatim}
\usepackage{fontspec}\newfontfamily\Parsifont[Script=Arabic]{XB Niloofar}
\usepackage{bidi}
\newcommand{\PRL}[1]{\RL{\Parsifont #1}}

\PRL{+PRL[او مرد را دوست نخواهد داشت.]}
\end{rtlverbatim}
\end{latin}


\end{document}

相关内容