我正在用阿拉伯语写一本概率书,我想用 包titleps
制作不同的精美页眉,在我的文件中我用它titletoc
来制作部分目录。一切都很好,直到我把 包titleps
和 一起titlesec
使用titletoc
。当我输入命令 时\tableofcontents
,编译并没有结束,但似乎进入了一个无限循环……我试过使用titlesec
和titletoc
,并用 获得内容\tableofcontents
,一切都很顺利,但使用这三个包时就不行了。为什么会发生这种情况?我怎样才能同时写入内容和部分内容,并同时使用titleps
?
这是在 Windows 8.1 上与 Texmaker 一起使用的 WME,我将阿拉伯语名称替换为拉丁语名称,以观察编译效果。不要担心从右到左的文本,因为这里的主要语言是阿拉伯语,一种从右到左的语言……
\documentclass[14pt,a4paper]{extbook}
\usepackage{titlesec}
\usepackage{titletoc}
\usepackage{etoolbox}
\usepackage{multicol}
\usepackage{titleps}
\setlength{\columnseprule}{0.1pt}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2,AutoFakeSlant=-0.02]{Traditional Arabic}
\setsansfont[Script=Arabic,Scale=1.5]{Traditional Arabic}
\gappto\captionsarabic{\renewcommand{\chaptername}{Chaptername}}
\gappto\captionsarabic{\renewcommand{\contentsname}{Contents}}
\begin{document}
\titlecontents{lsection}
[2.3em]{\small}{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{}
\titlecontents{lsubsection}
[4.6em]{\small}{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{}
\newpagestyle{Mystyle}{
\setheadrule{.1pt}% Header rule
\sethead[\thepage\hspace*{14pt}
Titlebook]% even left
[]% even centre
[\sectiontitle \hspace*{5pt} .\thesection]% even right
{}% odd left
{}% odd centre
{\chaptertitle
\hspace*{14pt}
\thepage}% odd right
}
\pagestyle{Mystyle}
% \tableofcontents
\chapter{Chapter 1}
\startcontents[chapters]
{\large\bf Minicontents}
\vspace*{5pt}
\hrule \vspace*{-10pt}
\begin{multicols}{2}
\printcontents[chapters]{l}{1}{\setcounter{tocdepth}{1}}
\end{multicols}
\vspace*{-5pt} \hrule
\section{Section 1}
\section{Section 2}
\newpage
\section{Section 3}
\section{Section 4}
\end{document}
编译生成此 pdf 文件,当我取消注释时% \tableofcontents
,编译永远不会停止。我只想将命令放在\tableofcontents
文件的开头!
我尝试过将内容向下一层,通过将章节转换为节,将节转换为小节,现在一切都好了!编译没有问题,它给出了内容、部分内容并使用了 titleps 包……但我当然需要向上一层,因为我的书里有章节!……我认为,这个事实可能会给 Latex 程序员一些想法。我给出以下 MWE
\documentclass[14pt,a4paper]{extbook}
\usepackage{titlesec}
\usepackage{titletoc}
\usepackage{etoolbox}
\usepackage{multicol}
\usepackage{titleps}
\setlength{\columnseprule}{0.1pt}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2,AutoFakeSlant=-0.02]{Traditional Arabic}
\setsansfont[Script=Arabic,Scale=1.5]{Traditional Arabic}
\gappto\captionsarabic{\renewcommand{\contentsname}{Contents}}
\begin{document}
\titlecontents{lsection}
[2.3em]{\small}{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{}
\titlecontents{lsubsection}
[4.6em]{\small}{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{}
\newpagestyle{Mystyle}{
\setheadrule{.1pt}% Header rule
\sethead[\thepage\hspace*{14pt}
Titlebook]% even left
[]% even centre
[\sectiontitle \hspace*{5pt} .\thesection]% even right
{}% odd left
{}% odd centre
{\sectiontitle
\hspace*{14pt}
\thepage}% odd right
}
\pagestyle{Mystyle}
\tableofcontents
\section{section 1}
\startcontents[sections]
{\large\bf Minicontents}
\vspace*{5pt}
\hrule \vspace*{-10pt}
\begin{multicols}{2}
\printcontents[sections]{l}{1}{\setcounter{tocdepth}{2}}
\end{multicols}
\vspace*{-5pt} \hrule
\subsection{subsection 1}
\subsection{subsection 2}
\newpage
\subsection{subsection 3}
\subsection{subsection 4}
\end{document}
输出结果如下。我想要相同的输出,但输出内容是“chapter”而不是“section”