book标题页前面多出了一页如何解决?

发布于 2024-09-14 19:13:46

4a3f2870d3a586925e2447b37f816cd6.png

如图, 在编译测试代码后生成的标题页前多出了一页, 已知将"// [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}

查看更多

关注者
0
被浏览
534
浮生如梦
浮生如梦 4天前
这家伙很懒,什么也没写!

你的问题是由 \vspace*{9\baselineskip} 这一行引起的。这个命令会在标题的最后插入大量的垂直空间,这就导致标题页面下移,实际上超出了页面可见的区域,因此第一页看起来是空白的,而内容出现在第二页。

要解决这个问题,你可以考虑减少或删除这个垂直间距,具体可以尝试以下几种方法:

  1. 移除或减少 \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}
        }
  2. 使用 \vfill 替代
    如果你想让标题居中,同时控制页面的上下布局,可以使用 \vfill,它会根据页面的可用空间自动调整。

    修改后的代码:

    \title{ 
        \normalsize \textsc{test}
            \\ [2.0cm]
            \HRule{1.5pt} \\
            \LARGE \textbf{\uppercase{testtitle}}
            \HRule{2.0pt} \\ [0.6cm] \LARGE{testsubtitle} \vfill
        }

这样做会自动将标题和副标题根据页面高度进行调整,不会出现第一页为空的情况。

尝试以上修改,应该可以解决你的问题。如果需要进一步调整布局,可以根据需要调节间距。

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览