
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 \thechapter
verwendete Makro zu änderninnendas Makro \@makechapterhead
könnte man direkt patchen, \@makechapterhead
um es zu verwenden, \words{chapter}
anstatt es \thechapter
beim Setzen der Darstellung der Kapitel-"Nummer" zu verwenden. (Das Patchen kann über eine \patchcmd
Anweisung 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 titletoc
wü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 inputenc
Paketnichtgeladen 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 titletoc
Paket bald aktualisiert wird, sodass es nicht mehr geladen wird inputenc
(und vor allem nicht, wenn es unter XeLaTeX oder LuaLaTeX läuft).