如图, 在编译测试代码后生成的标题页前多出了一页, 已知将"// [2.0cm]"这行命令注释掉的话问题可以解决, 但需要把textsc{}内的内容在标题页置顶(如图中TEST的位置), 请问该如何解决?
测试代码:
\documentclass[12pt]{book}
\usepackage{ctex}
\usepackage{setspace}
\usepackage{geometry}
\newcommand{\HRule}[1]{\rule{\linewidth}{#1}}
\setstretch{1.2}
\geometry{
textheight=9in,
textwidth=5.5in,
top=1in,
headheight=12pt,
headsep=25pt,
footskip=30pt
}
\title{
\normalsize \textsc{test}
\\ [2.0cm]
\HRule{1.5pt} \\
\LARGE \textbf{\uppercase{testtitle}
\HRule{2.0pt} \\ [0.6cm] \LARGE{testsubtitle} \vspace*{9\baselineskip}}
}
\author{\textbf{Author} \\
testname \\
testplace \\
\date{\today}
}
\begin{document}
\maketitle
\end{document}
你的问题是由 \vspace*{9\baselineskip}
这一行引起的。这个命令会在标题的最后插入大量的垂直空间,这就导致标题页面下移,实际上超出了页面可见的区域,因此第一页看起来是空白的,而内容出现在第二页。
要解决这个问题,你可以考虑减少或删除这个垂直间距,具体可以尝试以下几种方法:
移除或减少 \vspace*
的大小:
将 \vspace*{9\baselineskip}
这一行删除或者减少到合适的值,比如 \vspace*{2\baselineskip}
。
修改后的代码:
\title{
\normalsize \textsc{test}
\\ [2.0cm]
\HRule{1.5pt} \\
\LARGE \textbf{\uppercase{testtitle}}
\HRule{2.0pt} \\ [0.6cm] \LARGE{testsubtitle}
}
使用 \vfill
替代:
如果你想让标题居中,同时控制页面的上下布局,可以使用 \vfill
,它会根据页面的可用空间自动调整。
修改后的代码:
\title{
\normalsize \textsc{test}
\\ [2.0cm]
\HRule{1.5pt} \\
\LARGE \textbf{\uppercase{testtitle}}
\HRule{2.0pt} \\ [0.6cm] \LARGE{testsubtitle} \vfill
}
这样做会自动将标题和副标题根据页面高度进行调整,不会出现第一页为空的情况。
尝试以上修改,应该可以解决你的问题。如果需要进一步调整布局,可以根据需要调节间距。