我正在准备一份主要语言为阿拉伯语的文档,我正在使用 babel+Lualatex,我遵循了为非英语语言重新定义 \cref
但是,它给出了一个错误,提示“未知选项阿拉伯语”,有没有办法为 Clever ref 和 Varioref ref 定义一种新语言?这是 MWE:
\documentclass[a4paper,12pt,twoside]{book}
\usepackage[a4paper,top=2.5cm,bottom=2.5cm,margin=2.5cm,bindingoffset=0.5cm]{geometry} % Set paper layout
%======================================================================================================
%Babel Package Settings%
%======================================================================================================
\usepackage[bidi=basic,layout=lists.tabular]{babel}
\babelprovide[import=ar,mapdigits,main]{arabic}
\babelprovide[import=en,language=Default]{english}
\babelfont{rm}{Latin Modern Roman}
\babelfont[arabic]{rm}{Simplified Arabic}
\usepackage [arabic]{varioref} % add "on the preceding page", "on the following page", or on the page number to a reference
\usepackage[arabic,english]{cleveref}
%==================================================
%Start actual document %
%===================================================
\title{jhhjjhhj}
\author{}
\date{}
\begin{document}
\chapter{سييسسيبيسب}
بلبيللبيبلبي
\section{بيسيبلبيبلبيل}\label{بندددد}
البند رقم
\ref{بندددد}
صفحة
\pageref{بندددد}
البند
~\vref{بندددد}
ب
\cref{بندددد}
\end{document}
答案1
varioref
语言由(和)通过定义的选项支持cleveref
。未以这种方式设置的语言不能作为包的“选项”提供,尽管您仍然可以在文档的序言中设置它们。
如果有人为我提供正确的文本字符串,我可以在包中添加“阿拉伯语”选项,即我需要将以下定义中的文本替换为阿拉伯语单词:
\DeclareOption{arabic}
{\vref@addto\extrasarabic{%
\def\reftextfaceafter {on the \reftextvario{facing}{next} page}%
\def\reftextfacebefore{on the \reftextvario{facing}{preceding}
page}%
\def\reftextafter {on the \reftextvario{following}{next} page}%
\def\reftextbefore {on the \reftextvario{preceding}{previous} page}%
\def\reftextcurrent {on \reftextvario{this}{the current} page}%
\def\reftextfaraway#1{on page~\pageref{#1}}%
\def\reftextpagerange#1#2{on pages~\pageref{#1}--\pageref{#2}}%
\def\reftextlabelrange#1#2{\ref{#1} to~\ref{#2}}%
}}
之后\usepackage[arabic]{varioref}
就可以了。
情况cleveref
类似,但您需要与该软件包的开发人员沟通,以获得该语言的支持。
测试文档
根据评论的要求,这里有一个测试文档,我认为它适用于所有情况。
\documentclass[twoside]{article}
\usepackage{varioref}
\begin{document}
\section{A} \label{A1} \section{A2} \label{A2}
\newpage \section{B} \label{B1} \section{B2} \label{B2}
See \vref{A1} ; See \vref{A2} ; See \vrefrange{A1}{A2}
See \vref{B1} ; See \vref{B2} ; See \vrefrange{B1}{B2}
Current page: \pageref{B1} ; \pageref{B2}
See \vref{C1} ; See \vref{C2} ; See \vrefrange{C1}{C2}
See \vref{D1} ; See \vref{D2} ; See \vrefrange{D1}{D2}
Longer ranges: \vrefrange{A1}{C1} ; \vpagerefrange{B1}{D2}
\newpage \section{C} \label{C1} \section{C2} \label{C2}
\newpage \section{D} \label{D1} \section{D2} \label{D2}
\end{document}