重新定义 \maketitle 以在页面中放入最多的信息

重新定义 \maketitle 以在页面中放入最多的信息

我目前正在编写包含所有课程内容的 LaTeX 文章,以便将其放在很少的几页上,而不是老师给我们的练习、演示等厚厚的东西。

它的目标是非常简短,以便我可以在口试之前看到它。我已经尝试通过以下方式改进它:

\marginparwidth 0pt
\oddsidemargin 0pt
\evensidemargin 0pt
\marginparsep 0pt
\topmargin 0pt
\textwidth 6.5in
\textheight 8.5in

我在文档类中指定了一个小字体大小:

\documentclass[a4paper, 10pt]{article}

效果确实不错。但是,该\maketitle命令在第一页上创建的标题位置很低,这有点尴尬。

有办法解决这个问题吗?顺便问一下,你还有其他小技巧可以减少文本占用的空间,同时又保持文本的易读性吗?

答案1

除非您使用类似选项,否则extsizes不会8pt执行任何操作。

\maketitle是在文章类中定义的一个相当简单的命令,你可以简单地去

\vspace*{-2cm}\maketitle

但更好的方法是重新定义它以使用紧凑的布局,一个极端的版本可能是

\makeatletter

\def\maketitle{%
\par\textbf{\@title}%
\par{\@author}%
\par}

\makeatother

答案2

除了自定义标题和章节、小边距和小字体之外,您还可以稍微减少行距(如果您能读懂的话,可以是 0.9 甚至 0.8),并使用标题颜色和两列选项稍微提高可读性(每行有这么多小字符,一列更难跟踪)。

虽然乍一看并不明显,但microtype在这种情况下可以帮助提高可读性,甚至增加一点文本密度。这是一个 MWE:

\documentclass[twocolumn,8pt]{article}
\usepackage[    % Much better micro typography
protrusion=true, % adjust to your eye needs 
expansion=true,
tracking=true,
kerning=true,
spacing=true,
letterspace=50, % well spaced smallcaps
shrink=40,      % may be 20 or less is good   
factor=1000]    % may be less that 1000 
{microtype} 

\usepackage[margin=1cm,bmargin=1.4cm]{geometry} % little margins 
\usepackage{lipsum} % dummy text

\usepackage{setspace} 
\setstretch{0.8}      % same as \linespread{.8} 

\usepackage{color}

\makeatletter         
\def\@maketitle{   % custom maketitle 
{\Large \bfseries \color{red} \@title}
{\scshape Teacher:} \@author ~ at  \@date \par 
\smallskip \hrule \bigskip }

% custom section 
\renewcommand{\section}{\@startsection
{section}%                   % the name
{1}%                         % the level
{0mm}%                       % the indent
{-0.5\baselineskip}%            % the before skip
{0.5\baselineskip}%          % the after skip
{\bfseries\color{blue}}} % the style

\makeatother


% 
\title{Howto obtain very highly condensed texts}
\author{Peter Grumpy}
\date{\today}

\begin{document}
\maketitle
\section{Lore ipsum}
\lipsum[1]
\section{Nam dui ligula}
\lipsum[2-14]

\end{document}

平均能量损失

答案3

将大量内容放到页面上的一种方法是使用savetrees包。这会减少边距、缩小字体等等,以便将尽可能多的内容放在每页上:有各种设置可以“控制”完成多少内容。

答案4

一种简单但蛮力的方法是scrartcl使用KOMA脚本-bundle 具有非常高的 DIV 因子、headings=small-option 和一些\vspace{-\baselineskip}。除了\vspace-command,您还可以将\maketitle-command 重新定义为大卫·卡莱尔建议。

具有以下条件的 MWE \vspace

\documentclass[9pt,DIV=23,headings=small]{scrartcl}
\usepackage{lipsum}
\begin{document}
\title{\vspace{-3,5\baselineskip}Compact}
\author{L.\,Ipsum}
\date{\vspace{-.5\baselineskip}\today}
\maketitle
\thispagestyle{empty} % Remove page number
\vspace{-1.5\baselineskip}\lipsum[1-12] % Move the body text up

\end{document}

使用 <code>\vspace</code>

重新定义的 MWE\maketitlemulticol

\documentclass[9pt,DIV=23,headings=small]{scrartcl}
\usepackage{lipsum}
\usepackage[grid]{multicol}

\makeatletter
\def\maketitle{%
\bgroup\par\centering\textbf{\huge\@title}%
\par{\@author}%
\par\egroup}
\makeatother

\setlength{\premulticols}{.5\baselineskip}

\begin{document}

\title{Compact}
\author{L.\,Ipsum}
\maketitle
\thispagestyle{empty}
\vspace{-\baselineskip}\begin{multicols}{2}
\lipsum[1-12]
\end{multicols}

\end{document}

使用重新定义的 <code>\maketitle</code>

相关内容