„Wörtliche“ und numerische Nummerierung der Kapitel

„Wörtliche“ und numerische Nummerierung der Kapitel

Ich stelle eine weitere Frage, die mit dieser zusammenhängt „Wörtliche“ Nummerierung der Kapitel, aber nicht im Inhalt was nicht „präzise“ war … Diese Frage ist genau die richtige, mit einem Beispiel …

Dieses Beispiel gibt mir die Kapitel „eins“ und „zwei“ auf den ersten Seiten der Kapitel (und das ist, was ich will) und im Inhalt „1“ und „zwei“ (und das ist nicht, was ich will...). Ich will dasselbe im Text erreichen, aber im Inhalt „1“ und „2“. Wie ändere ich dann die Kapitelüberschrift, sodass sie numerisch ist? Ich will „1.1“ für Abschnitt 1 und nicht „eins.1“ wie in meinem Beispiel.

Ich schreibe alle Pakete, um eventuelle Konflikte zu vermeiden, da ich alle diese Pakete in meinem Buch (über Wahrscheinlichkeitsrechnung auf Arabisch) verwende ...

    \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}

Antwort1

Anstatt das \thechapterverwendete Makro zu änderninnendas Makro \@makechapterheadkönnte man direkt patchen, \@makechapterheadum es zu verwenden, \words{chapter}anstatt es \thechapterbeim Setzen der Darstellung der Kapitel-"Nummer" zu verwenden. (Das Patchen kann über eine \patchcmdAnweisung erfolgen. Da es so aussieht, als ob Sie dasAbonnierenPaket ohnehin verwenden, haben Sie Zugriff auf \patchcmd.) Indem die Definition von nicht verändert wird \thechapter, entstehen keine nachgelagerten Komplikationen hinsichtlich der Verwendung von \thechapter, beispielsweise bei der Erstellung des Inhaltsverzeichnisses.

Zusammenfassend schlage ich vor, dass statt

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

du führst aus

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

Beiseite: Um Ihren Code auf meinem System (MacOSX 10.9.2, TeXLive2104/pre mit allen Paketen auf dem neuesten Stand) kompilieren zu können, musste ich die Anweisung \usepackage{titletoc}in Ihrer Präambel auskommentieren. Es sieht so aus, als titletocwürde versucht, das Paket entweder direkt oder über ein untergeordnetes Paket zu laden inputenc. Beim Kompilieren eines Dokuments unter XeLaTeX – was hier der Fall zu sein scheint, da Sie auch laden polyglossia– sollte das inputencPaketnichtgeladen werden. XeLaTeX (und LuaLaTeX übrigens auch) kann nur mit einem einzigen Eingabecodierungssystem umgehen: UTF8. Ich glaube, bis vor kurzem wurde nur eine Warnmeldung ausgegeben, wenn Sie (oder eines der von Ihnen angegebenen Pakete) geladen haben inputenc; mit dem neuesten Update von TeXLive wird eine direkte Fehlermeldung generiert und die Kompilierung hängt sich auf. Hoffen wir alle, dass das titletocPaket bald aktualisiert wird, sodass es nicht mehr geladen wird inputenc(und vor allem nicht, wenn es unter XeLaTeX oder LuaLaTeX läuft).

verwandte Informationen