我正在使用 Lyx 用阿拉伯语撰写文档。我在章节和小节的编号方面遇到了问题。
在阿拉伯语中,文本方向是从右到左。因此,当我创建章节和子章节时,例如以下截图:
因此第 2 节是可以的,但对于子节来说它应该是“.1.2”(以便我们从右到左正确地读取它)但正如您在镜头中看到的那样它是“.2.1”。
所以请告诉我有一种方法可以解决这个问题。(请注意,我依靠这些章节和小节编号来自动创建目录)。
希望我的问题已经清楚。提前致谢
请参阅以下示例代码进行调试
% Preview source code
%% LyX 2.1.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[11pt]{report}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Arial}
\setsansfont[Mapping=tex-text]{Arial}
\setmonofont{Arial}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=2.5cm,bmargin=2.5cm,lmargin=3.5cm,rmargin=2.5cm}
\usepackage{fancyhdr}
\pagestyle{fancy}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\usepackage{float}
\usepackage{setspace}
\onehalfspacing
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\fancyhf{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
\fancyhead[L]{\nouppercase \leftmark}
\fancyhead[R]{\nouppercase \rightmark}
%\fancyfoot[L]{\scriptsize Design and Verification of MP3 Decoding Stage}
\fancyfoot[R]{\thepage}
%\fancyfoot[R]{\scriptsize Mohammed Ibrahim}
\makeatother
\usepackage{xunicode}
\usepackage{polyglossia}
\setdefaultlanguage{arabic}
\begin{document}
\section{المقدمات العامة }
\subsection{تعريفه: }
لغةً هو التحسين. اصطلاحاً هو علم يبحث في الكلمات
\subsection{موضوعه: }
الكلمات
\subsection{نسبته: }
أحد العلوم
\end{document}
答案1
我觉得这不是真正正确的做法。但至少这里有一个解决方法。它不会影响 LyX 中的显示,但应该可以正确输出。
将此添加到您的序言中:
% force numbered labels to be set RTL
\makeatletter
\def\SepMark#1{\gdef\@SepMark{\hboxR{#1}}}%
\makeatother
\SepMark{.}
平均能量损失
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{arabic}
\setmainfont{Arial}[Script=Arabic]
% force numbered labels to be set RTL
\makeatletter
\def\SepMark#1{\gdef\@SepMark{\hboxR{#1}}}%
\makeatother
\SepMark{.}
\begin{document}
\section{المقدمات العامة}
\subsection{تعريفه:}
لغةً هو التحسين. اصطلاحاً هو علم يبحث في الكلمات
\subsection{موضوعه:}
الكلمات
\subsection{نسبته:}
أحد العلوم
\end{document}
关于 LyX
在 LyX 中,您可能需要更多。在文档 --> 设置 --> LaTeX 序言中,添加
\AtBeginDocument{%
\def\SepMark#1{\gdef\@SepMark{\hboxR{#1}}}%
\SepMark{.}%
}
这\AtBeginDocument
是必需的,因为默认情况下 LyX 将添加polyglossia
后在序言中添加的代码。所以我猜想SepMark
将被修改回其默认设置。(没有必要添加\makeatletter
/\makeatother
因为 LyX 会插入它们。)