我正在尝试使用 XeLaTeX 和 arabxetex 在 LaTeX 中排版《古兰经》。对于章节页面,我希望左侧显示英文文本,右侧显示阿拉伯文文本。结果应该是这样的:
以下是我目前所掌握的信息:
\documentclass{book}
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\usepackage[paperwidth = 6 in,paperheight = 9 in,margin = 0.75 in,bindingoffset = 0.125 in]{geometry}
% Use the Quran version of the Amiri font
\newfontfamily\arabicfont[Script=Arabic]{Amiri Quran}
% Use "Surah" instead of "Chapter"
\renewcommand\chaptername{Surah}
% English on the left, Arabic on the right
\usepackage{titlesec}
\usepackage[fullvoc]{arabxetex}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter \hfill \textarab{سورة \surahnum}}{0pt}{\Huge}
\titlespacing*{\chapter}{0pt}{-20pt}{40pt}
\title{}
\author{}
\date{}
\begin{document}
\maketitle
\newcommand\surahnum{1}
\newcommand\surahname{الفاتحة}
\chapter{Al-Faatiha}
\end{document}
这是输出:
缺少的是 surah 英文名称右侧的 surah(章节)的阿拉伯语名称。可以使用以下命令访问 surah 的阿拉伯语名称\textarab{\surahname}
当然我可以这样做:
\chapter{Al-Faatiha \hfill \textarab{\surahname}}
但这也改变了各处章节名称的外观,我只希望这里显示阿拉伯语版本。是否可以使用 titlesec 添加文本后章节名称?我可以在它前面添加文字,像这样:
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter \hfill \textarab{سورة \surahnum}}{0pt}{\Huge\hfill\textarab{\surahname}}
\titlespacing*{\chapter}{0pt}{-20pt}{40pt}
我需要\hfill\textarab{\surahname}
来后章节名称,而不是前。
答案1
您可以titlesec
使用选项加载。然后您可以在正确的位置explicit
插入标题:#1
\documentclass{book}
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\usepackage[paperwidth = 6 in,paperheight = 9 in,margin = 0.75 in,bindingoffset = 0.125 in]{geometry}
% Use the Quran version of the Amiri font
\newfontfamily\arabicfont[Script=Arabic]{Amiri Quran}
% Use "Surah" instead of "Chapter"
\renewcommand\chaptername{Surah}
% English on the left, Arabic on the right
\usepackage[explicit]{titlesec}
\usepackage[fullvoc]{arabxetex}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries}
{\chaptertitlename\ \thechapter \hfill \textarab{سورة \surahnum}}
{0pt}
{\Huge #1\hfill\textarab{\surahname}}
\titlespacing*{\chapter}{0pt}{-20pt}{40pt}
\title{}
\author{}
\date{}
\begin{document}
\maketitle
\newcommand\surahnum{1}
\newcommand\surahname{الفاتحة}
\chapter{Al-Faatiha}
\end{document}
答案2
您还可以为阿拉伯语标题创建一个“假”章节命令并将其设置为twocolumn
:
\documentclass[oneside,twocolumn]{book}
\usepackage[fullvoc]{arabxetex}
\newfontfamily\arabicfont[Script=Arabic]{Amiri Quran}
\usepackage[transen]{quran}
\renewcommand\chaptername{Surah}
% fake chapter command
\newcommand{\chapterarab}[1]{%
\vspace*{-120pt}
{\huge\textarab{سورة \thechapter}\par\vspace*{20pt}
\Huge\textarab{#1}\par\vspace*{30pt}}}
\begin{document}
\chapter{Al-Faatiha}
\quransurahen[1]
\newpage % column break
\begin{arab}[utf]
\chapterarab{الفاتحة}
\quransurah[1]
\end{arab}
\end{document}