如何在RMarkdown LaTeX PDF中正确显示英文与阿拉伯语?
解决RMarkdown英文PDF文档中阿拉伯语文本连写与排版问题
你遇到的核心问题是:英文为主的PDF文档里,表格内阿拉伯语无法正常连写;全局切换阿拉伯语为默认语言会导致全文档变成从右到左排版,格式混乱;用polyglossia后阿拉伯语字母顺序颠倒且仍不连写。根源在于LaTeX默认不会自动识别字符串中的阿拉伯语并处理其连写规则,必须手动标记阿拉伯语文本让LaTeX正确解析。
以下是可行的解决方案:
1. 调整YAML头部配置
保留英文为默认语言,同时正确配置polyglossia支持阿拉伯语,确保字体兼容阿拉伯语连写:
--- output: pdf_document: latex_engine: xelatex geometry: margin=1.7cm params: branch: "" month: "March" year: "2024" header-includes: - \usepackage{pdflscape} - \newcommand{\blandscape}{\begin{landscape}} - \newcommand{\elandscape}{\end{landscape}} - \usepackage{longtable} - \usepackage{hyperref} - \usepackage{fontspec} - \setmainfont{Amiri} # Amiri字体原生支持阿拉伯语连写 - \usepackage{polyglossia} - \setdefaultlanguage{english} - \setotherlanguage{arabic} ---
2. 修改R代码:标记阿拉伯语文本并关闭转义
用LaTeX的\textarabic{}包裹所有阿拉伯语内容,同时在生成kable时设置escape = FALSE,避免LaTeX命令被转义:
# Quantity Sold ```{r} library(tidyverse) library(knitr) library(kableExtra) library(tinytex) # 用\textarabic{}包裹每段阿拉伯语文本 mt <- data.frame( Product = c( "\\textarabic{متين} GERMA-C2TE", "\\textarabic{لاصق} GERMA-Glue", "\\textarabic{لاصق} GERMA-C1", "Alumacer/ 000CRU3 - CRUCETAS PVC 3 mm (300/\\textarabic{كيس})" ), mpg = c(1,5,14,2), cyl = c(20,54,67,83), hp = c(130,200,201,145) ) final_kable <- mt %>% knitr::kable( "latex", booktabs = T, longtable = T, align = c("l","r","r","r"), col.names = c("Cars","mpg","cyl","hp"), escape = FALSE # 关键:允许LaTeX命令生效 ) %>% kableExtra::kable_styling( latex_options = c("scale_down"), position = "left", full_width = F, font_size = 9 ) %>% # 分组标签同样用\textarabic{}包裹 kableExtra::pack_rows(group_label = "\\textarabic{الكل / الستيلات}", start_row = 1, end_row = 2) %>% kableExtra::pack_rows(group_label = "\\textarabic{الكل / تيكا}", start_row = 3, end_row = 4) final_kable
## 关键说明 - `\textarabic{}`:让LaTeX识别包裹内容为阿拉伯语,自动处理连写规则和字母顺序,不会影响文档整体排版方向。 - `escape = FALSE`:kable默认会转义特殊字符,必须关闭此选项才能让`\textarabic{}`命令被LaTeX正确解析。 - 字体选择:Amiri是专为阿拉伯语设计的开源字体,完美支持阿拉伯语连写,不要替换为不兼容的字体。 修改后,阿拉伯语会正常连写,同时整个文档保持英文的左到右排版,表格内的混合语言内容也能正确显示。 内容的提问来源于stack exchange,提问作者Abdu Kikhia
相关产品推荐
相关产品推荐

