我想删除强制插入的分页符\tableofcontents
,到目前为止,我在浏览论坛/StackExchange 时没有取得太大成功。[我添加了页面边框只是为了显示页面分隔]
在我发布的示例图像中,我希望第 2 页的内容紧接着出现在中心State of Uttar Pradesh and Others
(第 1 页给出)。
我正在使用 XeTeX,这是我的代码中的相关部分。
我编写了一个名为的自定义类文件vakalatnama.cls
,其中包含:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{vakalatnama}[2020/09/15 Vakalatnama template for Indian courts]
\LoadClass{article}
\RequirePackage{xparse}
\RequirePackage[driver=xetex,a4paper,noheadfoot,includeheadfoot,nomarginpar,top=1.5in,bottom=1.5in,left=1.75in,right=1.0in]{geometry}
\RequirePackage{xunicode}
% \RequirePackage{xltxtra}
% Make entries in the index table as links
\RequirePackage[linktocpage=true]{hyperref}
% Set font to Times New Roman
\RequirePackage{fontspec}
\setmainfont{Times New Roman}
% line spacing = 1.5
\RequirePackage[onehalfspacing]{setspace}
\RequirePackage[parfill]{parskip}
% Format section title to have numbers in Table of Contents, but not in document
\RequirePackage{titlesec}
\titleformat{\section}{\center \normalfont \bfseries}{}{0pt}{\newpage}
\setcounter{section}{1}
\RequirePackage{fontenc}
\hyphenation{con-sti-tu-tion-al}
% Set title of Table of Contents from Contents -> Particulars. '*' implies that
% the argument must not be in multiple paragraphs i.e. /long
\renewcommand*{\contentsname}{
\centering{\underline{\textsc{\large{Index}}}} \\
\parbox{25pt}{\textbf{Si. No.}} \hfill \underline{\textbf{Particulars}} \hfill \underline{\textbf{Page}}
}
\newcommand{\dhc}{Delhi High Court}
\newcommand{\sci}{Supreme Court of India}
\newcommand{\petitioner}[1]{\newcommand{\@petitioner}{#1}}
\newcommand{\respondent}[1]{\newcommand{\respndt}{#1}}
\newcommand{\court}[1]{\newcommand{\crt}{#1}}
\newcommand{\jurisdiction}[1]{\newcommand{\jurisdctn}{#1}}
\newcommand{\petitiontype}[1]{\newcommand{\ptntype}{#1}}
\NewDocumentCommand {\setname} {O{Shri} m m} { % Title (default=Shri), first, last
\newcommand {\tfname} {#1 #2 #3} % Full name with title
\newcommand {\fname} {#2 #3} % first + last name
\newcommand {\tlname} {#1 #3} % title + last name
}
\newcommand{\advocate}[2][Shri]{
\newcommand{\adv}{#2}
\newcommand{\fulladv}{#1 #2}
}
\newcommand{\clientdetails}[1]{\newcommand{\clntdtls}{#1}}
\newcommand{\caseNumbers}[2]{
\newcommand{\fullcasenumber}{#1 of #2}
\newcommand{\shortcasenumber}{#1/#2}
}
\newcommand{\caseTitle}{
\begin{center}
\textsc{In the \crt{}} \newline
\textsc{\jurisdctn{}} \newline
\textsc{\ptntype{} \fullcasenumber{}} \newline
\end{center}
}
\newcommand{\inmatterof}{%
% \begin {flushleft}
\begin{tabular}{l c r}
\multicolumn{3}{l}{\underline{\textsc{In the matter of:}}} \tabularnewline
\tabularnewline
\@petitioner & \ldots & Petitioner \tabularnewline
& -- \textsc{versus} -- & \tabularnewline
\respndt & \ldots & Respondent \tabularnewline
\end{tabular}
% \end{flushleft}
}
\newcommand{\parties}{%
\begin {center}
\begin{tabular}{l c r}
\@petitioner & \ldots & Appellant/Petitioner \\ %\tabularnewline
{} & -- \textsc{Between/And} -- & {} \\ %\tabularnewline
\respndt & \ldots & Defendant/Respondent/Opposite Party \\ % \tabularnewline
\end{tabular}
\end{center}
}
\newcommand{\tophead}{%Roll the Court Name, petition etc into a single command
\caseTitle{}
\inmatterof{}
}
\ProcessOptions\relax
\endinput
并且有一个单独的 tex 文件,cover.tex
其中包含:
\tophead{}
\tableofcontents
\vfill*
\textbf{Advocate for the Respondent: \respndt{}}
还有第三个文件,main.tex
它仅提供这些函数的参数,这是我用于编译的文件。其内容main.tex
如下:
\documentclass{vakalatnama}
\setcounter{tocdepth}{1}
\begin{document}
\petitioner{Test Petitioner}
\court{Supreme Court Of India}
\respondent{State of Uttar Pradesh and Others}
\jurisdiction{Criminal Appellate Jurisdiction}
\petitiontype{SLP (Civil)}
\caseNumbers{1152}{2000}
\input{cover.tex}
\section{yyy}
\section{zzz}
\end{document}
我会非常非常非常感谢您的帮助。
答案1
请注意,将格式放在宏中是不好的做法\zzzname
,它们专门用于将文本名称与格式分开,因此可以轻松翻译它们而不必复制格式,但是我并不建议在这里进行更改。
行首的空格被删除,这包括\hfill
这就是为什么索引向右对齐的原因。\hspace*
是一种\hspace
可以防止这种情况发生的变体:
\par\noindent\hspace*{\fill}Index\hspace*{\fill}\\*
将使文本居中。
\tableofcontents
在article
课堂上是\section*
所以受到你的声明的影响
\titleformat{\section}{\center \normalfont \bfseries}{}{0pt}{\newpage}
强制打开新页面。如果您希望后面的部分有此内容,但不在前言部分,请使用
\newcommand\secpagebreak{}
\titleformat{\section}{\centering \normalfont \bfseries}{}{0pt}{\secpagebreak}
所以它开始什么都不做,然后在某个时候
\renewcommand\secpagebreak{\clearpage}
因此接下来的部分将从新的一页开始(并使用\clearpage
而不是仅仅 来防止浮动图形流过该点\newpage
)。