我正在尝试使用 Babel 在 pdflatex 中处理阿拉伯语和希伯来语(两者都是英语的次要语言)。我之前只用 Babel 处理阿拉伯语
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[arabic,hebrew,english]{babel}
\usepackage{hyperref}
\usepackage{times}
\usepackage{latexsym}
\usepackage{booktabs}
\usepackage{url}
\begin{document}
\AR{أهلاً}
%\foreignlanguage{hebrew}{שלום}
\end{document}
但我不知道如何将其扩展到希伯来语。每当我尝试添加希伯来语(取消注释上面的行)时,它都会给我一个希伯来语编码错误。如果我切换到 utf8x,它会给我一个阿拉伯语编码错误。
根据建议,我尝试切换到 xelatex 和 polyglossia。这可以显示阿拉伯语和希伯来语,但是当我使用 hyperref 添加我需要的样式文件时,它会中断。以下是最小的工作示例:
\documentclass[11pt,a4paper]{article}
\usepackage[hyperref]{sty_file}
\usepackage{times}
\usepackage{latexsym}
\usepackage{booktabs}
\usepackage{url}
\usepackage{polyglossia}
\setdefaultlanguage{english}
%\setotherlanguage{arabic}
%\setotherlanguage{hebrew}
%\newfontfamily\arabicfont{Amiri}[Script=Arabic]
%\newfontfamily\hebrewfont{Noto Sans Hebrew}[Script=Hebrew]
\title{Hebrew Arabic Test}
\begin{document}
\maketitle
English
%\begin{Arabic}
%أهلاً
%\end{Arabic}
%\begin{hebrew}
%שלום
%\end{hebrew}
\end{document}
一旦取消注释第一行注释,我的样式就会被破坏。将样式文件粘贴到这里会很麻烦,但它包含在背面文件。
有什么想法吗?我尝试了在这个 stack exchange 上找到的所有其他方法,但都没有成功。:/ 谢谢!
答案1
更新
这出现适用于此简单示例。样式表按与从 加载的包冲突的顺序加载多个包polyglossia
,并且还使用了一些需要为 重新定义的 NFSS 字体命令fontspec
。
它必须在 XeLaTeX 中编译。
\documentclass[11pt,a4paper]{article}
%\usepackage{times}
\usepackage{fontspec}
\RequirePackage{xcolor}
\RequirePackage{hyperref}
\RequirePackage{natbib}
\usepackage{polyglossia}
\setmainfont{TeX Gyre Termes}[
SizeFeatures = {
{Size=-10, OpticalSize=8 },
{Size= 10, OpticalSize=10},
{Size= 11, OpticalSize=11},
{Size= 12-13, OpticalSize=12},
{Size= 14-18, OpticalSize=14},
{Size= 18-, OpticalSize=18}}
]
\defaultfontfeatures{Scale=MatchUppercase}
\setmainlanguage{english}
\setotherlanguage{arabic}
\setotherlanguage{hebrew}
\newfontfamily\arabicfont{Amiri}[Script=Arabic]
\newfontfamily\hebrewfont{Noto Sans Hebrew}[Script=Hebrew]
\usepackage[hyperref]{sty_file}
%% sty_file defines the legacy font command:
% \font\naaclhv = phvb at 8pt
%% This is Helvetica Bold.
\makeatletter
\newfontface\@hv{TeX Gyre Heros Bold}[Scale=1.0, OpticalSize=8]
\renewcommand\naaclhv{\fontsize{8}{8}\@hv}
\makeatother
\usepackage{booktabs}
\usepackage{url}
\title{Hebrew Arabic Test}
\begin{document}
\maketitle
English
\begin{Arabic}
أهلاً
\end{Arabic}
\begin{hebrew}
שלום
\end{hebrew}
\end{document}
以前的
以下在 XeLaTeX 中对我有用:
\documentclass[preview]{standalone}
%\usepackage[hyperref]{sty_file}
%\usepackage{times}
\usepackage{latexsym}
\usepackage{booktabs}
\usepackage{url}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{arabic}
\setotherlanguage{hebrew}
\setmainfont{TeX Gyre Termes}
%\defaultfontfeatures{Scale=MatchUppercase} % Should uncomment this.
\newfontfamily\arabicfont{Amiri}[Script=Arabic]
\newfontfamily\hebrewfont{Noto Sans Hebrew}[Script=Hebrew]
\title{Hebrew Arabic Test}
\begin{document}
\maketitle
English
\begin{Arabic}
أهلاً
\end{Arabic}
\begin{hebrew}
שלום
\end{hebrew}
\end{document}
以前的
感谢您发布样式表的链接。它在fontspec
很多方面都不兼容。有些问题可以轻松修复;例如,\font\naaclhv = phvb at 8pt
可以通过在之后添加以下内容来修补此行:
\makeatletter
\newfontface\@hv{TeX Gyre Heros Bold}[Scale=1.0, OpticalSize=8]
\renewcommand\naaclhv{\fontsize{8}{8}\@hv}
\makeatother
这使得这句话,“机密审查副本。请勿分发。” 可以正常显示。同样,您可以times
用 TeX Gyre Termes 或 Times New Roman 替换。
然而,您需要重写样式表的大部分内容才能让您的提交按您希望的方式工作,从其开始\maketitle
,并且您真的应该询问期刊本身如何进行。
答案2
您尝试过使用 Bidi 吗?您只需进入:\setRL 并输入(或复制粘贴)阿拉伯语和希伯来语即可。您可以通过简单的命令 \LR{latin text} 在 RL 语言中间插入基于拉丁语的语言。将 RL 切换到 LR,再将 LR 切换到 RL 可逆转该过程。请参阅 CTAN 上的 do-it-yourself-tex 以获取一些说明性示例。