You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:32:03