我想使用下的utf8
和包,但这似乎不太可能发生(arabtex
memoir
documentclass
先前的讨论)。有什么好的替代方案吗,不需要音译,而且可以与 T1 编码配合使用?
\documentclass[a4paper,oneside,12pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage{arabtex}
\usepackage{utf8}
\begin{document}
بسم الله الرحمن الرحيم
\end{document}
这将产生一个错误:
("C:\Program Files\MiKTeX\tex\latex\arabtex\arabtex.sty"
("C:\Program Files\MiKTeX\tex\latex\arabtex\aconfig.sty")
("C:\Program Files\MiKTeX\tex\latex\arabtex\arabaux.sty")
! Class memoir Error: Font command \it is not supported.
See the memoir class documentation for explanation.
Type H <return> for immediate help.
...
l.551 \settransfont {\rm \it }
% standard font for transliteration
答案1
您可以通过在之后写入来恢复“旧”字体命令的功能\documentclass[<options>]{memoir}
,
\makeatletter
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\makeatother
然而,正如扬尼斯所说,
\documentclass[<options>,oldfontcommands]{memoir}
无需额外代码即可完成此操作。这里<options>
代表您要传递给的所有其他选项memoir
,在您的例子中将其称为
\documentclass[a4paper,oneside,12pt,oldfontcommands]{memoir}
答案2
如果您不介意切换到其他引擎,以下内容应该可以与 XeTeX(xelatex)一起使用,并且您可以访问任何阿拉伯语 OpenType 字体:
\documentclass[a4paper,oneside,12pt]{memoir}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic]{Amiri} % or any other font
\begin{document}
\textarabic{بسم الله الرحمن الرحيم}
\begin{Arabic}
بسم الله الرحمن الرحيم
\end{Arabic}
\end{document}
答案3
Khaled 的答案在很多情况下都很好用,但对我来说,当我写阿拉伯语时,总会与一个或多个包发生冲突。如果我不想用阿拉伯语输入整个文本,我在一个 TexShop 模板中找到的解决方案是:
\newfontfamily{\A}{Geeza Pro} %or any other font
{\A بسم الله الرحمن الرحيم}