我正在尝试在 scrbook 类文档中创建自定义标题页。代码如下:
\documentclass[openany]{scrbook}
\title{Sample LaTeX Book With Custome Title Page}
\author{Eva}
\date{\today}
\usepackage{blindtext}
\begin{document}
\begin{titlepage}
\begin{tabular}{|l|c|l|}
\hline
Name & : & \textbf{\author} \\
\hline
Submission Date & : & \textbf{\date} \\
\hline
\end{tabular}
\end{titlepage}
\blinddocument
\end{document}
问题是第三列(我的名字和日期应该出现的地方)保持空白。我尝试在第三列中保留 @author 而不是 \author。但是当我这样做时,第三列中出现了单词“author”,而不是我的名字。我遗漏了什么?
答案1
您可以使用内部的存储宏,由\author{…}
和使用\date{…}
(也由\maketitle
)。因为它们有内部名称使用@
,你要么必须使用\makeatletter
和\makeatother
或者\csname …\endcsname
:
\documentclass[openany]{scrbook}
\title{Sample LaTeX Book With Custome Title Page}
\author{Eva}
\date{\today}
\usepackage{blindtext}
\begin{document}
\begin{titlepage}
\begin{tabular}{|l|c|l|}
\hline
Name & : & \textbf{\csname @author\endcsname} \\
\hline
Submission Date & : & \textbf{\csname @date\endcsname} \\
\hline
\end{tabular}
\end{titlepage}
\blinddocument
\end{document}
但我认为不让它变得简单(并避免内部宏)没有任何意义:
\documentclass[openany]{scrbook}
\usepackage{blindtext}
\begin{document}
\begin{titlepage}
\begin{tabular}{|l|c|l|}
\hline
Name & : & \textbf{Eva} \\
\hline
Submission Date & : & \textbf{\today} \\
\hline
\end{tabular}
\end{titlepage}
\blinddocument
\end{document}
两个示例的结果都是:
我认为这是相当丑陋的,所以我宁愿使用类似的东西:
\documentclass[openany]{scrbook}
\usepackage{blindtext}
\usepackage{array}
\begin{document}
\begin{titlepage}
\fbox{\begin{tabular}{l<{:}l}
Name & \textbf{Eva} \\
Submission Date & \textbf{\today} \\
\end{tabular}}
\end{titlepage}
\blinddocument
\end{document}
或甚至没有\fbox
。