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 的要求。 上述代码的结果如下图所示。