장의 "문자 그대로" 및 숫자 번호 매기기

장의 "문자 그대로" 및 숫자 번호 매기기

나는 이것과 관련된 또 다른 질문을한다 장의 "문자 그대로" 번호 매기기(내용에는 없음) "정확"하지 않은 질문입니다... 이 질문은 예를 들어 정확한 질문입니다...

이 예에서는 장의 첫 페이지에 "1"과 "2" 장을 제공하고(이것이 제가 원하는 것입니다) 내용에는 "1"과 "2" 장을 제공합니다(이것은 제가 원하는 것이 아닙니다..) . 텍스트에서는 같은 것을 얻고 싶지만 내용에서는 "1"과 "2".. 그러면 챕터 헤드를 숫자로 변경하는 방법.. 섹션 1에 대해 "1"이 아닌 "1.1"을 원합니다. 내 예에서와 같이 .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\patchcmdetoolbox어쨌든 패키지에 액세스할 수 있습니다 \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로드하려고 시도한 것 같습니다 . inputencXeLaTeX에서 문서를 컴파일할 때(여기에서도 마찬가지인 것 같습니다. 로드 중이므로 polyglossia) inputenc패키지는 다음과 같아야 합니다.~ 아니다로드됩니다. XeLaTeX(그리고 LuaLaTeX도 마찬가지)는 UTF8이라는 하나의 입력 인코딩 시스템만 처리할 수 있습니다. 나는 아주 최근까지 당신(또는 당신이 지정한 패키지 중 하나)이 로드된 경우 경고 메시지만 발행되었다고 생각합니다 inputenc. TeXLive에 대한 최신 업데이트를 사용하면 완전한 오류 메시지가 생성되고 컴파일이 중단됩니다. titletoc패키지가 곧 업그레이드되어 더 이상 로드되지 않기를 바랍니다 inputenc(특히 XeLaTeX 또는 LuaLaTeX에서 실행되는 경우에는 더욱 그렇습니다).

관련 정보