编辑

编辑

我必须遵循类似于 MLA 样式的某种格式。必须有 1/2 英寸的页眉顶部边距(页眉是“论文 #1:...”部分)。必须有 1 英寸的正文顶部边距(正文以“姓名姓氏”开头)。并且必须有 1 英寸的左侧、右侧和底部边距。页眉必须包含作业名称和字数。正文中的页眉必须包含姓名、老师姓名、班级和课时以及日期。在后续页面上,只应包含右侧页眉,并且必须采用“姓氏页码”的形式。顶部到页眉必须有 1/2 英寸的边距,顶部到文本必须有 1 英寸的边距(这会导致最多的问题)。当然,左侧、右侧和底部的边距也必须为 1 英寸。所有内容都必须双倍行距。

我设法以某种方式使我的 LaTeX 文档遵循该格式,但效果并不好。这\vspace*{0.2in}东西特别讨厌,但不知为何它却有效。我甚至不知道为什么是 0.2in。我刚刚试验了一下,这个似乎有效。

现在有很多事情可以改进。最明显的是边距。我觉得必须有更好的方法来做到这一点,我觉得我目前实现这一点的方法既不灵活也不可靠:它最终会崩溃(例如当我计划使用时biblatex)。能够使用诸如\name{...}和之类的命令来设置标题信息\assignment{...},也许能够使用来制作标题,这\makeheader{}将是一个很酷的功能,但不是必需的。但是,将格式放在单独的包中导入(如包mla)将是一个更好的功能,但同样不是必需的。

如果有人能告诉我如何让标题变得美观且可靠,我会很高兴。

\documentclass[12pt]{article}
\usepackage{lipsum}
\usepackage[left=1in, right=1in, top=0.5in, bottom=1in, headheight=0in, headsep=0in]{geometry}
\usepackage{setspace}
\usepackage{ragged2e}
\usepackage{fancyhdr}
\usepackage{fontspec}

\fancypagestyle{firststyle}
{
   \fancyhf{}
   \fancyhead[R]{\doublespacing Argumentative Essay \#1: Lorem Ipsum\\
WordCount:999}
}

\fancypagestyle{pagenum}
{
    \fancyhf{}
    \fancyhead[R]{\doublespacing Surname \thepage\\}
}

\pagestyle{pagenum}

\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\setlength{\parindent}{0.5in}

\setmainfont {URW Bookman L}

\RaggedRight
\parindent=0.5in
\doublespacing
\thispagestyle{firststyle}
\begin{document}
\vspace*{0.2in}
\noindent Name Surname\\
\noindent Mr. Smith\\
\noindent AP Language - 7\textsuperscript{th} Pd.\\
\noindent 4 March 2015\\
\centerline{Lorem Ipsum}

\lipsum{}

\end{document}

示例输出:

在此处输入图片描述

答案1

如果您想通过设置让文档信息设置更加容易,那么键值接口可能是一个不错的选择。

\documentclass[12pt]{article}
\usepackage{lipsum}
\usepackage[
  showframe, % <-- to help visualize
  left=1in, right=1in, top=1in, bottom=1in,
  headheight=40pt, headsep=0in]{geometry}
\usepackage{setspace}
\usepackage{ragged2e}
\usepackage{fancyhdr}
\usepackage{xcolor}
\usepackage{fontspec}
\usepackage[grid,
      gridcolor=red!20,
      subgridcolor=green!20,
      %texcoord,
      gridunit=in]{eso-pic} % <-- to help visualize


\fancypagestyle{pagenum}
{
    \fancyhf{}
    \fancyhead[R]{\doublespacing Surname \thepage\\}
}

\pagestyle{pagenum}

\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\setlength{\parindent}{0.5in}
\setmainfont {URW Bookman L}

\usepackage{xparse}
\ExplSyntaxOn
\keys_define:nn {mla}
{
  gname   .tl_set:N = \l_mla_gname_tl,  % given name(s)
  sname   .tl_set:N = \l_mla_sname_tl,  % surname
  course  .tl_set:N = \l_mla_course_tl,
  date    .tl_set:N = \l_mla_date_tl,
  title   .tl_set:N = \l_mla_title_tl,
  wc      .tl_set:N = \l_mla_wc_tl,
  gname   .initial:n = John {~} James,
  sname   .initial:n = Smith,
  course  .initial:n = ??,
  date    .initial:n = ??,
  title   .initial:n = ??,
  wc      .initial:n = ??,
}



\NewDocumentCommand{\titleinfo}{ m }
 {
  \keys_set:nn { mla } { #1 }
 }


\NewDocumentCommand{\printtitle} {O{-0.5in}}
{
  \vspace*{\dimexpr#1 - \baselineskip\relax}%
  \group_begin:
  \parskip 0pt
  \parindent 0pt
  Name {~} Surname  \hfill \l_mla_title_tl
  \newline
   \l_mla_gname_tl {~} \l_mla_sname_tl \hfill \l_mla_wc_tl
  \newline
  \l_mla_course_tl
  \newline
  \l_mla_date_tl
  \group_end:
}

\ExplSyntaxOff


\titleinfo{
% gname=, sname=, course=, title=,
wc=999, date=4 March 2015
}



\RaggedRight
\parindent=0.5in
\doublespacing
\begin{document}
\thispagestyle{empty}

\printtitle % <-- print the document data


\centerline{Lorem Ipsum}

\lipsum{}

\end{document}

为了获得第一页左侧和右侧的不同高度,您可以使用此代码(请注意,我\RenewDocumentCommand在这里使用了):

\newlength\raiseright     
\setlength\raiseright{\dimexpr 1in - \baselineskip\relax}  

\RenewDocumentCommand{\printtitle} {}      
{%          
  \group_begin:
  \parskip 0pt  
  \parindent 0pt      
  \vspace*{-\raiseright}\hfill \l_mla_title_tl \par 
  \hfill \l_mla_wc_tl \par    
  \vspace*{-.5\baselineskip}%    
  Name {~} Surname     
  \newline     
  \l_mla_gname_tl {~} \l_mla_sname_tl     
  \newline    
  \l_mla_course_tl     
  \newline  
  \l_mla_date_tl  
  \group_end:  
}

答案2

对于混乱:

阅读控制台输出。软件包通常会尝试告诉您有用的信息。

例如,fancyhdr在没有进化成机器人的情况下,软件几乎可以让你大吃一惊。它拼命地试图引起你的注意:

Package Fancyhdr Warning: \headheight is too small (39.36879pt): 
 Make it at least 39.5248pt.
 We now make it that large for the rest of the document.
 This may cause the page layout to be inconsistent, however.

它会告诉你 (1) 事情会变得一团糟 (2) 为什么会变得一团糟 以及 (3) 如何避免这种混乱。你有。在当前配置下,headheight=0pt你至少需要。headheight=40pt

但这里真正的问题是,它fancyhdr旨在创建连续的页眉和页脚。不要使用它在第一页上创建文档标题。而是使用\maketitletitlepage环境(如果适用)。这个titling包在这里可能会有所帮助。

firststyle所以根本不要使用。只需定义pagenum。这将为您提供headheight控制台输出的更合理的值。在您传递的选项中使用该值(向上舍入)geometry。然后使用titling(或类似)处理第一页的标题。

编辑

这是实现上述建议的一种方式。我可能没有完全理解您的要求,但希望这足以让您入门。请注意,您可以轻松地将配置包装到包文件中,或使用\input{}它将其作为标准前言输入。

虽然使用起来titling有些少。第一页的标题和标题在 处自动生成\begin{document}。输出的内容使用多个命令指定。每个命令都带有一个强制参数。

\firstnames{}% e.g. Edward Mickleston Henry Patrick
\surname{}% e.g. Barrow-Tottenhals
\instructor{}% e.g. Prof.\ Dumbledore
\assignmenttype{}% e.g. Communicative Doodles
\assignmentnumber{}% e.g. 3,948.567
\subject{}% e.g. English Literature, History of French Snails, The Totalitarian State (Classified)

代码:

\documentclass[12pt]{article}
\usepackage{lipsum}
\usepackage{calc,titling}
\usepackage[left=1in, right=1in, top=1in, bottom=1in, headheight=24pt, headsep=.5in-24pt]{geometry}
\usepackage{setspace}
\usepackage{ragged2e}
\usepackage{fancyhdr}
\usepackage{fontspec}

\fancypagestyle{pagenum}{%
    \fancyhf{}%
    \fancyhead[R]{\doublespacing \mysurname{} \thepage}}
\pagestyle{pagenum}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\setlength{\parindent}{0.5in}
\RaggedRight
\parindent=0.5in
\doublespacing

\setmainfont {URW Bookman L}

\newcommand*\myfirstnames{}
\newcommand*\mysurname{}
\newcommand*\myassignmenttype{Short Answers}% set a default
\newcommand*\myassignmentnumber{}
\newcommand*\myinstructor{}
\newcommand*\mysubject{}
\newcommand*\firstnames[1]{\renewcommand*\myfirstnames{#1}}
\newcommand*\surname[1]{\renewcommand*\mysurname{#1}}
\newcommand*\assignmenttype[1]{\renewcommand*\myassignmenttype{#1}}
\newcommand*\assignmentnumber[1]{\renewcommand*\myassignmentnumber{#1}}
\newcommand*\instructor[1]{\renewcommand*\myinstructor{#1}}
\newcommand*\subject[1]{\renewcommand*\mysubject{#1}}
\AtBeginDocument{%
  \author{\myfirstnames{} \mysurname}%
  \newsavebox{\firstpageheader}%
  \sbox{\firstpageheader}{%
    \begin{minipage}[T]{\textwidth}%
      \RaggedLeft\normalfont\normalsize \myassignmenttype{} \#\myassignmentnumber: \thetitle\par\thedate\par\mbox{}
    \end{minipage}}%
  \newlength\firstpageheaderheight%
  \settototalheight{\firstpageheaderheight}{\usebox{\firstpageheader}}%
  \thispagestyle{empty}%
  \vspace*{-.5in}%
  \noindent\usebox{\firstpageheader}
  \noindent
  \begin{minipage}[T]{\textwidth}
    \RaggedRight
    \myfirstnames{} \mysurname{}\par
    \myinstructor\par
    \mysubject\par
    \thedate\par
    \centering\thetitle\par\mbox{}
  \end{minipage}}

\title{Lorem Ipsum}
\firstnames{Aardent Ivanovitch}
\surname{Eegleberg}
\date{4 March, 2015}
\assignmenttype{Argumentative Essay}
\assignmentnumber{1}
\instructor{Mr.\ Smith}
\subject{AP Language - 7\textsuperscript{th} Pd.}

\begin{document}

\lipsum[1-20]

\end{document}

当然,结果可想而知是糟糕的。不过,这是需求所致,不是我的错(或你的错)!

但是,您应该向您的老师提供采用默认布局(或采用 KOMA 课程之一)排版的家庭作业副本作为替代方案......

印刷恐怖

相关内容