
\documentclass[12pt,a4paper]{mathbook_arabic}
%\newfontfamily\arabicfont[Script=Arabic]{Arial}
\addto\captionsarabic{\renewcommand{\contentsname}{الفهرس}}
% \newfontfamily\arabicfonttt[Script=Arabic]{Arial}
\usepackage{listings}
\usepackage{mathrsfs}
\definecolor{bleu}{cmyk}{0.59,0.11,0,0.59}
\definecolor{vert}{cmyk}{0.78,0,0.74,0.45}
\begin{document}
\tableofcontents
\chapter*{Intro}
some textes
\chapter{ch1}
\end{document}
ошибка при компиляции это
Файл закончился при сканировании использования @dottedtocline. \par l.68 \tableofcontents
решение1
Спасибо за ссылку на шаблон на Overleaf. Я не могу воспроизвести вашу ошибку в TeX Live 2020, хотя получаю другую: \newfontfamily\arabicfonttt
в строке 107 mathbook_arabic.sty
должно быть \newfontfamily\arabicfontsf
. Затем он повторно объявляет \newfontfamily\arabicfonttt
на следующей строке. Более старые версии fontspec
разрешали это, но современные помечают это как ошибку.
В этом шаблоне много всего, что относится к книге, для которой он был написан, и он немного устарел. Если вы можете использовать любой шаблон, который хотите, я бы посоветовал вам начать с чего-то вроде этого и изменять его по мере необходимости.
\documentclass[a4paper]{book} % Or article, scrbook, etc.
\tracinglostchars=2 % Warn if the current font does not have a character.
%% The previous sample you were using loaded the cmyk color space and manually
%% declared color names in French. This loads the standard color names used in
%% CSS, SVGs and HTML, e.g. Blue and DarkCyan. You can add HTML to allow hex
%% values.
\usepackage[svgnames]{xcolor}
%% Requires LuaHBTeX, or LuaLaTeX from 2020 or later.
\usepackage[bidi=basic, layout=sectioning]{babel}
\usepackage{unicode-math}
\usepackage{microtype}
%% You will certainly want to set more options than this, either here or with
%% \hypersetup.
\usepackage[unicode,
colorlinks]{hyperref}
%% Can substitute import=ar-DZ, import=ar-MA or import=ar-SY for import.
%% To change the numbers from Western to localized, add the maparabic option.
%% Can also change other counters, e.g. alph=alphabetic, Alph=abjad.
\babelprovide[import, main, onchar=ids fonts]{arabic}
\babelprovide[onchar=ids fonts]{english}
\defaultfontfeatures{Scale=MatchLowercase, Ligatures=TeX, Renderer=HarfBuzz}
%% You can change these to your fonts of choice.
\babelfont{rm}
[Scale=1.0, Ligatures=Common, Script=Default, Language=Default]{Libertinus Serif}
\babelfont[arabic]{rm}
{Amiri}
\babelfont{sf}
[Ligatures=Common, Script=Default, Language=Default]{Libertinus Sans}
\babelfont[arabic]{sf}
[Language=Default]{Noto Sans Arabic}
\babelfont{tt}
[Script=Default, Language=Default]{Libertinus Mono}
\babelfont[arabic]{tt}
{ALM Fixed}
\setmathfont{Libertinus Math}
\babeltags{english=english}
%% \babeltags would fail to redefine \arabic, so provide `\textArabic`, etc.
%% You are unlikely to need them, because babel will switch to Arabic whenever
%% you use the Arabic script.
\babeltags{Arabic=arabic}
\begin{document}
\chapter{A Chapter}
للُّغَة العَرَبِيّة هي أكثر اللغات السامية تحدثاً، وإحدى أكثر اللغات انتشاراً في العالم، يتحدثها أكثر من 467 مليون نسمة،
\begin{english}
Arabic (اَلْعَرَبِيَّةُ, al-ʿarabiyyah, [al ʕaraˈbijːa] or عَرَبِيّ, ʿarabīy, [ˈʕarabiː]
or [ʕaraˈbij]) is a Semitic language that first emerged in the 1st to 4th
centuries CE.
\end{english}
\end{document}
Эта версия шаблона автоматически переключается на английский язык всякий раз, когда вы печатаете латинским шрифтом, и на арабский язык всякий раз, когда вы печатаете арабским шрифтом. В этом примере используется один языковой тег, потому что символы IPA в исходном тексте, который я скопировал и вставил, не являются ни тем, ни другим, но они должны отображаться слева направо в английском шрифте. Можно было бы указать Babel считать их английскими. Вы могли бы добавить переопределения для каждого отсутствующего символа, например
\babelcharproperty{`ʕ}{locale}{english}
В качестве основных шрифтов я выбрал Amiri и Libertinus Sans Халеда Хосни. Оба они основаны на более ранних разработках и прекрасно дополняют друг друга.
Вы можете изменить их на шрифты по вашему выбору. Например, если у вас новая версия Arial, распространяемая с Windows 10, вместо старой, которая все еще поставляется с некоторыми ОС, вы можете заменить \babelfont{sf}
и три строки после нее на \babelfont{sf}{Arial}
. Шрифт автоматически масштабируется и выбирает правильные функции Script
и Language
OpenType. (На самом деле, эта Language=
функция будет выдавать вам ложные предупреждения, поэтому вы можете использовать , \babelfont{sf}[Language=Default]{Arial}
чтобы их подавить.)
Для математики я загрузил его Libertinus Math в unicode-math
. Это значит, что вам не понадобятся (и не следует использовать) никакие устаревшие пакеты математических шрифтов, такие как amssymb
. Он поддерживает \boldmath
и \boldsymbol
. Если это не то, что вам нужно, вы можете заменить \usepackage{unicode-math)
и \setmathfont
строку на
\usepackage{fontspec}
\usepackage[libertine]{newtxmath}
\usepackage{bm}
Я не меняю форматы страниц, заголовков, глав, оглавлений и т. д. по умолчанию, но вы можете сделать это с помощью пакетов по вашему выбору, например tocloft
и fancyhdr
.