目前,我正在使用 Listings 包将我的 XML 文本插入文档中。
例如代码:
\begin{lstlisting}
<Product Title="نوکیا" Type="گوشی">
\end{lstlisting}
这里的问题是房源不支持阿拉伯字体。因此无法显示“نوکیا”和“گوشی”。有什么解决方案可以让 Listings 包支持阿拉伯字体吗?
答案1
解决方案之一是这样的。首先像这样定义你的 listingstyle\begin{document}
如果您的主要语言是波斯语,那么:
\documentclass[11pt]{book}
\usepackage{listings}
\usepackage{xepersian}
\lstdefinestyle{MyXML}{
language=XML,
escapeinside={\%*}{*)},
morekeywords={encoding,
xs:schema,xs:element,xs:complexType,xs:sequence,xs:attribute}
}
然后在您的列表代码中使用此代码
مقاله من فارسی میباشد
\begin{latin}
\begin{lstlisting}[style=MyXML]
<Product Title="%*\rl{نوکیا}*)" Type="%*\rl{گوشی}*)">
\end{lstlisting}
\end{latin}
انتهای مقاله
这是我的输出
如果您的主要语言是英语,那么:
\documentclass[11pt]{article}
\usepackage{setspace}
\usepackage{listings}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{farsi}
\newfontfamily\farsifont[Script=Arabic,Scale=1.1]{Scheherazade}
\lstdefinestyle{MyXML}{
language=XML,
escapeinside={\%*}{*)},
morekeywords={encoding,
xs:schema,xs:element,xs:complexType,xs:sequence,xs:attribute}
}
然后在您的文章中:
My Article is In English Language
\begin{lstlisting}[style=MyXML]
<Product Title="%*\textfarsi{نوکیا}*)" Type="%*\textfarsi{گوشی}*)">
\end{lstlisting}
End of Article
和输出
答案2
我认为用包创建文档很容易。阿拉伯语单词/句子在和arabtex
之间输入。因此,我们需要为包定义字符。\<
>
escapeinside
listings
\documentclass{article}
\usepackage{arabtex}
\usepackage{utf8}
\usepackage{listings}
\lstset{escapeinside=``}
\begin{document}
\setcode{utf8}
\begin{lstlisting}
<Product Title="`\<نوکیا>`" Type="`\<گوشی>`">
\end{lstlisting}
\end{document}