
hago otra pregunta relacionada con esta Numeración "literal" de capítulos pero no de contenidos lo cual no era "preciso"... Esta pregunta es la exacta, con un ejemplo...
Este ejemplo me da los capítulos "uno" y "dos" en las primeras páginas de los capítulos (y esto es lo que quiero), y en los contenidos "1" y "dos" (y esto no es lo que quiero...) . Quiero obtener lo mismo en el texto pero, en el contenido, "1" y "2". Entonces, cómo cambiar el título del capítulo para que sea numérico. Quiero que sea "1.1" para la sección 1, no "uno". .1" como en mi ejemplo.
Escribo todos los paquetes para prevenir eventuales conflictos porque uso todos estos paquetes en mi libro (de probabilidad en árabe)...
\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}
Respuesta1
En lugar de modificar la macro \thechapter
que se utilizaadentrola macro \@makechapterhead
, se podría parchear \@makechapterhead
directamente para hacerla usar \words{chapter}
en lugar de \thechapter
cuando se escribe la representación del "número" del capítulo. (El parche se puede realizar mediante una \patchcmd
instrucción. Como parece que estás cargando elcaja de herramientaspaquete de todos modos, tendrá acceso a \patchcmd
.) Al no tocar la definición de \thechapter
, no se producen complicaciones posteriores en términos de usos de \thechapter
, por ejemplo, la creación de la tabla de contenidos.
Resumiendo, sugiero que en lugar de
\makeatletter
\let\old@makechapterhead\@makechapterhead
\def\@makechapterhead{\def\thechapter{\words{chapter}}\old@makechapterhead}
\makeatother
tu ejecutas
% \usepackage{etoolbox} %% uncomment if 'etoolbox' isn't already being loaded
\makeatletter
\patchcmd{\@makechapterhead}{\thechapter}{\words{chapter}}{}{}
\makeatother
Aparte: Para poder compilar su código en mi sistema (MacOSX 10.9.2, TeXLive2104/pre con todos los paquetes completamente actualizados), tuve que comentar la instrucción \usepackage{titletoc}
que está en su preámbulo. Parece que titletoc
intenta cargar el inputenc
paquete, ya sea directamente o mediante un paquete subsidiario. Al compilar un documento bajo XeLaTeX (que parece ser el caso aquí, ya que también lo estás cargando polyglossia
), el inputenc
paquete deberíanoser cargado. XeLaTeX (y también LuaLaTeX) puede manejar solo un sistema de codificación de entrada: UTF8. Creo que hasta hace poco sólo se emitía un mensaje de advertencia si usted (o uno de los paquetes que usted especifica) cargaba inputenc
; con la actualización más reciente de TeXLive se genera un mensaje de error absoluto y la compilación se bloquea. Esperemos que el titletoc
paquete se actualice pronto para que ya no se cargue inputenc
(y especialmente si se ejecuta bajo XeLaTeX o LuaLaTeX).