我想将 fbox 添加到每个部分、小节和小子节的编号中,使其看起来如下所示,但对于
Arabic language \usepackage{polyglossia}
当我添加以下命令时
\renewcommand\thesection{\fbox{\Roman{section}}}
\renewcommand\thesubsection{\fbox{\arabic{subsection}}}
\renewcommand\thesubsubsection{\fbox{\alph{subsubsection}}}
我得到了结果,但对于多语阿拉伯语模式不起作用。它看起来像
\documentclass[12pt]{amsart}
\usepackage[a4paper,margin=0.5in]{geometry}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand\thesection{\fbox{\Roman{section}}}
\renewcommand\thesubsection{\fbox{\arabic{subsection}}}
\renewcommand\thesubsubsection{\fbox{\alph{subsubsection}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Amiri}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\section{اتصال}
\subsection{اتصال في نقطة}
\subsection{اتصال في مجال}
\subsubsection{مبرهنة القيم الوسيطية}
\section{اشتقاق}
\subsection{اشتقاق في نقطة}
\subsubsection{اشتقاق في المجال}
\end{document}
您能帮我使用 polyglossia 包修复阿拉伯语的问题吗?谢谢
答案1
您可能应该\renewcommands
在加载语言包之后执行此操作,否则它们可能会被撤消。
另外,我可能会尝试使用titlesec
包来自定义标题格式。使用该explicit
选项可以为您提供更多灵活性。但是,由于阿拉伯语是从右到左的,因此您需要反转命令中的顺序。
我自己看不懂阿拉伯语,所以我不知道这是否是您想要的,但我最好的猜测是这样的。您可能想要调整字体大小(此处\large
)以及对齐方式(\flushleft
),等等。
\documentclass[12pt]{amsart}
\usepackage[a4paper,margin=0.5in]{geometry}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[explicit]{titlesec}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Amiri}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand\thesection{\fbox{\Roman{section}}}
\renewcommand\thesubsection{\fbox{\arabic{subsection}}}
\renewcommand\thesubsubsection{\fbox{\begin{english}\textit{\alph{subsubsection}}\end{english}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\titleformat{\section}[hang]{\flushleft\large}{#1\ \thesection}{0pt}{}
\titleformat{\subsection}[hang]{\flushleft\large}{#1\ \thesubsection}{0pt}{}
\titleformat{\subsubsection}[hang]{\flushleft\large}{#1\ \thesubsubsection}{0pt}{}
\begin{document}
\section{اتصال}
\subsection{اتصال في نقطة}
\subsection{اتصال في مجال}
\subsubsection{مبرهنة القيم الوسيطية}
\section{اشتقاق}
\subsection{اشتقاق في نقطة}
\subsubsection{اشتقاق في المجال}
\end{document}
答案2
这是一个解决方案,它使用了我多年前从《The LaTeX Companion》一书中学到的方法。它不重新定义宏\thesection
、\thesubsection
等。相反,它使用非常低级的 LaTeX 宏\section@cntformat
、\subsection@cntformat
等在节标题中的节、小节和小小节编号周围绘制矩形框。这种方法的一个主要优点是您可以创建对节、小节等的交叉引用没有(大概)出现了不需要的框架框。
% !TEX TS-program = xelatex
\documentclass[12pt]{amsart}
\usepackage[a4paper,margin=0.5in]{geometry}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2]{Amiri}
% Method proposed in "The LaTeX Companion", 2nd ed.:
\makeatletter
\def\@seccntformat#1{\@ifundefined{#1@cntformat}%
{\csname the#1\endcsname\space}% default
{\csname #1@cntformat\endcsname}}% enable individual control
\newcommand\section@cntformat{\fbox{\thesection}\space} % section
\newcommand\subsection@cntformat{\fbox{\thesubsection}\space} % subsection
\newcommand\subsubsection@cntformat{\fbox{\thesubsubsection}\space} % subsection
\makeatother
\begin{document}
\section{اتصال}
\subsection{اتصال في نقطة}
\subsection{اتصال في مجال}
\subsubsection{مبرهنة القيم الوسيطية}
\section{اشتقاق}
\subsection{اشتقاق في نقطة}
\subsubsection{اشتقاق في المجال}
\end{document}
.
如果您希望在框架框中包含尾随(“点”),只需更改
\newcommand\section@cntformat{\fbox{\thesection}\space}
到
\newcommand\section@cntformat{\fbox{\thesection.}\space}
\subsection@cntformat
对于和也类似\subsection@cntformat
。
顺便,没有选项numerals=maghrib
,将获得以下结果: