
나는 이것과 관련된 또 다른 질문을한다 장의 "문자 그대로" 번호 매기기(내용에는 없음) "정확"하지 않은 질문입니다... 이 질문은 예를 들어 정확한 질문입니다...
이 예에서는 장의 첫 페이지에 "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
\patchcmd
etoolbox어쨌든 패키지에 액세스할 수 있습니다 \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
로드하려고 시도한 것 같습니다 . inputenc
XeLaTeX에서 문서를 컴파일할 때(여기에서도 마찬가지인 것 같습니다. 로드 중이므로 polyglossia
) inputenc
패키지는 다음과 같아야 합니다.~ 아니다로드됩니다. XeLaTeX(그리고 LuaLaTeX도 마찬가지)는 UTF8이라는 하나의 입력 인코딩 시스템만 처리할 수 있습니다. 나는 아주 최근까지 당신(또는 당신이 지정한 패키지 중 하나)이 로드된 경우 경고 메시지만 발행되었다고 생각합니다 inputenc
. TeXLive에 대한 최신 업데이트를 사용하면 완전한 오류 메시지가 생성되고 컴파일이 중단됩니다. titletoc
패키지가 곧 업그레이드되어 더 이상 로드되지 않기를 바랍니다 inputenc
(특히 XeLaTeX 또는 LuaLaTeX에서 실행되는 경우에는 더욱 그렇습니다).