Ошибка с оглавлением в арабском шаблоне

Ошибка с оглавлением в арабском шаблоне
\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и LanguageOpenType. (На самом деле, эта 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.

Связанный контент