更改 arabtex 中的数字格式

更改 arabtex 中的数字格式

arabtex我将在包定义的环境中获得阿拉伯数字arabtex来写阿拉伯句子。

如果我在环境中插入数字 1,2,3,....arabtex我会得到印度形式 ١,٢,٣,....

我知道我可以直接输入\LR{1,2,3,...},但我想自动获取它而不用\LR每次都将其插入里面,并且使用类似的计数器格式\thepage

nash我怀疑这与定义数字格式的字体有关,有什么建议吗

更新

我用来pdflatex编写我的文档

平均能量损失

\documentclass[a4paper,12pt]{article}
\usepackage{arabtex}
\usepackage{utf8}

\begin{document}

\setcode{utf8}

\begin{arabtex}
\huge 1 2 3 
\end{arabtex}

\end{document}

结果

在此处输入图片描述

答案1

也许是这样的?

\documentclass[a4paper,12pt]{article}
\usepackage{arabtex}
\usepackage{utf8}


\XeTeXinterchartokenstate=1
\chardef\CharNormal=0
\chardef\CharBound=255
\newXeTeXintercharclass\CharNumbers
\XeTeXcharclass`0=\CharNumbers
\XeTeXcharclass`1=\CharNumbers
\XeTeXcharclass`2=\CharNumbers
\XeTeXcharclass`3=\CharNumbers
\XeTeXcharclass`4=\CharNumbers
\XeTeXcharclass`5=\CharNumbers
\XeTeXcharclass`6=\CharNumbers
\XeTeXcharclass`7=\CharNumbers
\XeTeXcharclass`8=\CharNumbers
\XeTeXcharclass`9=\CharNumbers
\newtoks\TokSetfont
\TokSetfont={\begin{normalfont}}
\XeTeXinterchartoks\CharNormal\CharNumbers=\TokSetfont
\XeTeXinterchartoks\CharBound\CharNumbers=\TokSetfont
\XeTeXinterchartoks\CharNumbers\CharNormal={\end{normalfont}}
\XeTeXinterchartoks\CharNumbers\CharBound={\end{normalfont}}


\begin{document}

\setcode{utf8}

\begin{arabtex}
\huge 1 hello 2 3 345 
\end{arabtex}

\end{document}

灵感来自这个答案

结果如下...

在此处输入图片描述

使用 PDFLATEX 更新

以下解决方案与 pdflatex 兼容,基于l3regex包:

\documentclass[a4paper,12pt]{article}
\usepackage{arabtex}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{utf8}
\setcode{utf8}



\usepackage{expl3}
\usepackage{l3regex}
\ExplSyntaxOn
\tl_new:N \l_substituteNumbers_tl
\cs_new:Npn \substituteNumbers #1 {
    \tl_set:Nn \l_substituteNumbers_tl {#1}
    \regex_replace_all:nnN {[0-9]+} {  \c{LR}\cB {\0 \cE}  } \l_substituteNumbers_tl
    \tl_use:N \l_substituteNumbers_tl
}
\ExplSyntaxOff


\begin{document}

\substituteNumbers{%
\begin{arabtex}%
\huge 1 hello 2 3 345 
\end{arabtex}%
}%

\end{document}

您将获得以下内容:

在此处输入图片描述

我希望这个解决方案能够解决您的问题!

更新 2:枚举已修复

\documentclass[a4paper,12pt]{article}
\usepackage{arabtex}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{utf8}
\setcode{utf8}



\usepackage{expl3}
\usepackage{l3regex}
\ExplSyntaxOn
\tl_new:N \l_substituteNumbers_tl
\cs_new:Npn \substituteNumbers #1 {
    \tl_set:Nn \l_substituteNumbers_tl {#1}
    \regex_replace_all:nnN {[0-9]+} {  \c{LR}\cB {\0 \cE}  } \l_substituteNumbers_tl
    \tl_use:N \l_substituteNumbers_tl
}
\ExplSyntaxOff

\renewcommand{\theenumi}{\LR{\arabic{enumi}}}


\begin{document}

\substituteNumbers{%
\begin{arabtex}%
\huge 1 hello 2 3 345 

\begin{enumerate}
\item A 1
\item B 2
\item C 3
\item D 4
\item E 5
\end{enumerate}

\end{arabtex}%
}%

\end{document}

在此版本中,枚举环境使用阿拉伯数字,这是@salim bou 的要求。 上述代码的结果如下图所示。

在此处输入图片描述

相关内容