阿拉伯语和乘法符号

阿拉伯语和乘法符号

由于我需要法语、阿拉伯语和数学符号,所以我的文章中有以下结构:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{arabtex}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage[arabic,french]{babel}
\usepackage{utf8}
\usepackage[T1]{fontenc}  % pour l'utilisation de 'french'


\title{Zéro}

\begin{document}

\maketitle
\setcode{utf8} 
zéro : 
\<صفر  >
\fg{} (\d{s}\u{\i}fr) 

\[ 0 \times 0 \]


\end{document}

\times除了最终输出中没有产生 乘法符号外,其他都工作正常:代码结果

答案1

我使用了用户@egreg 的答案

\DeclareRobustCommand{\timesr}{\fontfamily{artimes}\selectfont}
\let\times\relax
\DeclareMathSymbol{\times}{\mathbin}{symbols}{"02}

(见链接使用 arabi 包时插入符号 \times 和 \omega 的问题

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{arabtex}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage[arabic,french]{babel}
\usepackage{utf8}
\usepackage[T1]{fontenc}  % pour l'utilisation de 'french'
\DeclareRobustCommand{\timesr}{\fontfamily{artimes}\selectfont}
\let\times\relax
\DeclareMathSymbol{\times}{\mathbin}{symbols}{"02}

\title{Zéro}

\begin{document}

\maketitle
\setcode{utf8} 
zéro : 
\<صفر  >
\fg{} (\d{s}\u{\i}fr) 

\[ 0 \times 0 \]


\end{document}

在此处输入图片描述

答案2

我建议您在 LuaTeX 中尽可能使用 Unicode 字体,在必要时使用旧版 8 位字体。这是一个适用于 2020 年或更高版本的 LuaLaTeX 的解决方案,也可能适用于早期发行版中的 luahbtex。它可以修改为适用于 XeLaTeX。

它会检测您输入的语言,并相应地更改字体和连字符模式。输出的 PDF 将支持两种语言以及数学符号的搜索和复制。

\documentclass[12pt]{article}
\tracinglostchars=2 % Warn if the current font does not have a character!
\usepackage{tikz}
\usepackage[french, bidi=basic, layout=tabular]{babel}
\usepackage{unicode-math}
\usepackage{microtype} % Font expansion and protrusion.

\usetikzlibrary{babel} % Turn off Babel shorthands inside TikZ nodes.
\babelprovide[import=ar, onchar=ids fonts]{arabic} % Or import=ar-DZ, etc.

\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX, Renderer=HarfBuzz }

% You can substitute your fonts of choice here.  Any OpenType or TrueType
% font should work.
\babelfont{rm}
          [Ligatures=Common, Scale=1.0]{Libertinus Serif}
\babelfont[arabic]{rm}
          [Ligatures=Common]{Amiri}
\babelfont{sf}
          [Ligatures=Common]{Libertinus Sans}
% Specify \babelfont[arabic]{sf} here, if needed.
\babelfont{tt}
          {Libertinus Mono}
\babelfont[arabic]{tt}
          {ALM Fixed}
\setmathfont{Libertinus Math}

\title{Zéro}

\begin{document}

\maketitle

zéro :
«صفر»
(\d{s}\u{\i}fr) 

\[ 0 \times 0 \]


\end{document}

Libertinus/Amiri 样本

在这个例子中,我使用了 Khaled Hosny 的 Libertinus 和 Amiri 字体,它们很吸引人、兼容性强、功能全面而且免费,但您可以用任何您可以在文字处理器中使用的字体来代替。

我添加了一些其他最佳实践,例如layout=tabular使阿拉伯表格从右到左显示,\usetikzpackage(babel)以便 TikZ 绘图命令仍然有效,等等。

这假设您在以法语为主的文档中使用阿拉伯语单词或短语。如果您需要在法语和阿拉伯语的整个段落之间切换,或者在使用相同脚本的两种语言之间切换,则自动onchar=检测将无法满足您的需求。您需要使用语言标签,例如\begin{otherlanguage}{arabic}\foreignlanguage{arabic}

关于字体中拉丁文脚本未定义法语语言的警告是无害的,但你可以通过添加选项来抑制它们Language=Default,例如

\babelfont{sf}
          [Ligatures=Common, Language=Default]{Libertinus Sans}

相关内容