我正在使用以下代码,这导致行距问题。前四个可能很长,所以它们是分开的,但我需要将后四个分成两列。问题是这两种类型之间的行距。
请建议一种方法来消除这个明显的问题。
\documentclass[10pt,a4paper,oneside]{article}
\usepackage[a4paper,left=0.9in,right=0.9in,top=1in,bottom=1in]{geometry}
\usepackage{graphicx}
\usepackage{titlesec}
\usepackage{longtable}
\usepackage{array}
\usepackage{float}
\usepackage{booktabs}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\thispagestyle{empty}
\begin{minipage}{.95\textwidth}
\textbf{Student Name:} James Weber Bond\\
\textbf{Father's Name:} Brooke Bond\\
\textbf{Programme:} Self Destruction with Specialization in Running Around\\
\textbf{Enrollment Number:} IMX2014053\\
\end{minipage}
\begin{minipage}{0.5\textwidth}
\textbf{Date of Birth:} 25/6/1965\\
\textbf{Date of Admission:} 25/6/1985\\
\end{minipage}
\begin{minipage}{0.5\textwidth}
\textbf{Period of Programme:} 5 years\\
\textbf{Duration of Programme:} 7 years\\
\end{minipage}
\end{document}
编辑:包含完整源代码
答案1
这里的问题是第一个小页面最后一行的双反斜杠。它会插入一个您不想要的空行。
由于小页面一个接一个地排列得尽可能紧密,第一个小页面的最后一行没有降部(字母“p”或“q”基线以下的部分),这意味着它与下面的内容太接近;请在行\strut
末添加以进行补偿。
对于您所使用的文档类,如果小页面位于行首,则会按默认段落缩进进行缩进。通过在行首使用 可以避免这种情况\noindent
。此外,由于您已将第二组中两个小页面的宽度定义为正好是文本宽度的一半,因此通过在第二行开始新行时在它们之间插入的空格
\begin{minipage}
将向您发出行过满警告。通过插入 来消除此问题%
,使该空格被忽略。
您使用的包中,唯一相关的包(对于此示例)是
\geometry
。对于这个答案,所有其他包都被省略了。
这是“最终”代码:
\documentclass[10pt,a4paper,oneside]{article}
\usepackage[a4paper,left=0.9in,right=0.9in,top=1in,bottom=1in]{geometry}
\begin{document}
\thispagestyle{empty}
\noindent
\begin{minipage}{.95\textwidth}
\textbf{Student Name:} James Weber Bond\\
\textbf{Father's Name:} Brooke Bond\\
\textbf{Programme:} Self Destruction with Specialization in Running Around\\
\textbf{Enrollment Number:} IMX2014053\strut
\end{minipage}
\noindent
\begin{minipage}{0.5\textwidth}
\textbf{Date of Birth:} 25/6/1965\\
\textbf{Date of Admission:} 25/6/1985
\end{minipage}%
\begin{minipage}{0.5\textwidth}
\textbf{Period of Programme:} 5 years\\
\textbf{Duration of Programme:} 7 years
\end{minipage}
\end{document}
答案2
我提出了一种非常不同的方法来实现学生的表格:
\documentclass[10pt,a4paper,oneside]{article}
\usepackage[a4paper,left=0.9in,right=0.9in,top=1in,bottom=1in]{geometry}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\student}{m}
{
\keys_set:nn { xinit/student } { #1 }
\xinit_student:
}
\keys_define:nn { xinit/student }
{
student .tl_set:N = \l_xinit_student_tl,
father .tl_set:N = \l_xinit_father_tl,
programme .tl_set:N = \l_xinit_programme_tl,
enrollment .tl_set:N = \l_xinit_enrollment_tl,
birth .tl_set:N = \l_xinit_birth_tl,
admission .tl_set:N = \l_xinit_admission_tl,
period .tl_set:N = \l_xinit_period_tl,
duration .tl_set:N = \l_xinit_duration_tl,
student .value_required:n = true,
father .value_required:n = true,
programme .value_required:n = true,
enrollment .value_required:n = true,
birth .value_required:n = true,
admission .value_required:n = true,
period .value_required:n = true,
duration .value_required:n = true,
}
\cs_new_protected:Nn \xinit_student:
{
\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ll@{}}
\multicolumn{2}{@{}l@{}}{\textbf{Student~Name}:~\l_xinit_student_tl} \\
\multicolumn{2}{@{}l@{}}{\textbf{Father's~Name}:~\l_xinit_father_tl} \\
\multicolumn{2}{@{}l@{}}{\textbf{Programme}:~\l_xinit_programme_tl} \\
\multicolumn{2}{@{}l@{}}{\textbf{Enrollment~Number}:~\l_xinit_enrollment_tl} \\
\textbf{Date~of~Birth}:~\l_xinit_birth_tl &
\textbf{Period~of~Programme}:~\l_xinit_period_tl \\
\textbf{Date~of~Admission}:~\l_xinit_admission_tl &
\textbf{Duration~of~Programme}:~\l_xinit_duration_tl
\end{tabular*}
}
\ExplSyntaxOff
\begin{document}
\student{
student = James Weber Bond,
father = Brooke Bond,
programme = Self Destruction with Specialization in Running Around,
enrollment = IMX2014053,
birth = 25/6/1965,
admission = 25/6/1985,
period = 5 years,
duration = 7 years,
}
\end{document}
通过修改函数,\xinit_student:
您可以轻松移动项目。键值对方法使输入数据变得更容易,因为顺序并不固定。