Numeração “literal” e numérica dos capítulos

Numeração “literal” e numérica dos capítulos

Faço outra pergunta relacionada a esta Numeração "literal" dos capítulos, mas não no conteúdo o que não foi "preciso"... Essa pergunta é exata, com um exemplo...

Este exemplo me dá os capítulos "um" e "dois" nas primeiras páginas dos capítulos (e é isso que eu quero) e nos conteúdos "1" e "dois" (e não é isso que eu quero..) . Quero obter a mesma coisa no texto mas, no conteúdo, "1" e "2".. Então como mudar o cabeçalho do capítulo, para ser numérico.. Quero "1.1" para a seção 1 e não "um .1" como no meu exemplo.

Eu escrevo todos os pacotes para prevenir eventuais conflitos porque utilizo todos esses pacotes no meu livro (de probabilidade em á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}

Responder1

Em vez de modificar a macro \thechapterusadadentroa macro \@makechapterhead, pode-se corrigir \@makechapterheaddiretamente para usá-la \words{chapter}em vez de \thechapterna composição da representação do "número" do capítulo. (O patch pode ser feito através de uma \patchcmdinstrução. Como parece que você está carregando oetoolboxde qualquer maneira, você terá acesso a \patchcmd.) Ao não tocar na definição de \thechapter, nenhuma complicação posterior resultará em termos de uso de \thechapter, por exemplo, na criação do índice analítico.

Resumindo, sugiro que em vez de

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

você executa

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

Aparte: Para que seu código fosse compilado em meu sistema (MacOSX 10.9.2, TeXLive2104/pre com todos os pacotes totalmente atualizados), tive que comentar a instrução \usepackage{titletoc}que está em seu preâmbulo. Parece que titletoctenta carregar o inputencpacote, diretamente ou através de um pacote subsidiário. Ao compilar um documento no XeLaTeX -- o que parece ser o caso aqui, já que você também está carregando polyglossia-- o inputencpacote devenãoestar carregado. XeLaTeX (e LuaLaTeX também) pode lidar com apenas um sistema de codificação de entrada: UTF8. Eu acho que até recentemente apenas uma mensagem de aviso seria emitida se você (ou um dos pacotes que você especificar) carregasse inputenc; com a atualização mais recente do TeXLive, uma mensagem de erro é gerada e a compilação trava. Vamos todos esperar que o titletocpacote seja atualizado em breve para não carregar mais inputenc(e especialmente se estiver rodando em XeLaTeX ou LuaLaTeX).

informação relacionada