«Буквальная» и числовая нумерация глав

«Буквальная» и числовая нумерация глав

Я задаю еще один вопрос, связанный с этим «Буквальная» нумерация глав, но не в содержании который не был «точным»... Этот вопрос точный, с примером...

Этот пример дает мне главы "one" и "two" на первых страницах глав (и это то, что я хочу), а в содержании "1" и "two" (и это не то, что я хочу..). Я хочу получить то же самое в тексте, но в содержании "1" и "2".. Тогда как изменить заголовок главы, чтобы он был числовым.. Я хочу, чтобы для раздела 1 было "1.1", а не "one.1", как в моем примере.

Я пишу все пакеты для предотвращения возможных конфликтов, поскольку я использую все эти пакеты в своей книге (вероятности на арабском языке)...

    \documentclass[14pt,a4paper]{extbook}%{article}%

    \usepackage{titletoc}
    \usepackage{etoolbox}
    \usepackage{multicol}
    \usepackage{amsmath,amssymb}
    \usepackage[most]{tcolorbox}
    \usepackage{boxedminipage}
    \usepackage{slashbox}
    \usepackage{titlesec}
    \usepackage{enumitem}
    \usepackage{minitoc}
    \usepackage{rotating}
    \usepackage{fmultico}
    \setlength{\columnseprule}{0.1pt}
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \usepackage{pdflscape}
    \usepackage{array}

    \usepackage{polyglossia}
    \setmainlanguage{english}
    \setotherlanguage[numerals=maghrib]{arabic}

    \makeatletter
    \let\old@makechapterhead\@makechapterhead
    \def\@makechapterhead{\def\thechapter{\words{chapter}}\old@makechapterhead}
    \makeatother

    \newcommand\words[1]{\expandafter\xwords\csname c@#1\endcsname}
    \def\xwords#1{\ifcase#1\or
    one\or          
    two\or          
    three\or            
        \else
        I need more words\fi}


    \begin{document}
    \tableofcontents
    \chapter{Simulation}
    \section{Introduction 1} 
    Simulation
    \section{Introduction 2} 
    \chapter{Simulation}
      Simulation
     \end{document}

решение1

\thechapterВместо того, чтобы изменять используемый макросвнутримакрос \@makechapterhead, можно было бы исправить \@makechapterheadнапрямую, чтобы он использовался \words{chapter}вместо того, \thechapterчтобы при наборе текста использовать представление "номера" главы. (Исправление может быть выполнено с помощью инструкции \patchcmd. Поскольку похоже, что вы загружаетеetoolbox(В любом случае, у вас будет доступ к \patchcmd.) Если не трогать определение \thechapter, то не возникнет никаких осложнений в плане использования \thechapter, например, при создании оглавления.

Подводя итог, я предлагаю вместо того, чтобы

\makeatletter
\let\old@makechapterhead\@makechapterhead
\def\@makechapterhead{\def\thechapter{\words{chapter}}\old@makechapterhead}
\makeatother

вы выполняете

% \usepackage{etoolbox} %% uncomment if 'etoolbox' isn't already being loaded
\makeatletter
\patchcmd{\@makechapterhead}{\thechapter}{\words{chapter}}{}{}
\makeatother

В стороне: Чтобы ваш код скомпилировался на моей системе (MacOSX 10.9.2, TeXLive2104/pre со всеми полностью обновленными пакетами), мне пришлось закомментировать инструкцию \usepackage{titletoc}в вашей преамбуле. Похоже, она titletocпытается загрузить inputencпакет, либо напрямую, либо через вспомогательный пакет. При компиляции документа в XeLaTeX — что, похоже, и происходит в данном случае, поскольку вы также загружаете polyglossiainputencпакет долженнетбыть загружен. XeLaTeX (и LuaLaTeX тоже, если на то пошло) может обрабатывать только одну входную кодировку: UTF8. Я думаю, что до недавнего времени, если вы (или один из указанных вами пакетов) загружали , выдавалось только предупреждающее сообщение inputenc; с последним обновлением TeXLive выдается прямое сообщение об ошибке и компиляция зависает. Давайте все надеяться, что пакет titletocскоро обновится и больше не будет загружаться inputenc(и особенно если он запущен под XeLaTeX или LuaLaTeX).

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