使用 LaTeX 来制作一张海报

这几天被要求做一张海报,看了一眼大家好像都用 PowerPoint 在做,也有用 Photoshop、Illustrator 做的。本来觉得反正也没做出啥成果来,内容都没有,随便应付一下随便做做得了。

结果真开始动手之后,发现 Adobe 系的不支持公式,粘来粘去实在不爽。还是打开了 TeXstudio ……

其实 LaTeX 做海报是有不少模板的,比如 beamerposter 啦什么的。然而这些基本都是 A0 这类标准尺寸的海报,学校要求的尺寸则比较奇葩,尝试过在这上面做改动,然而在折腾 LaTeX 模板方面我还是 too young,搞出了各种随随便便的问题。后来一想,反正是我自己用用,workable 就行了,干脆用个 article 类然后自己瞎搞得了……

嘛,话不多说了,贴代码。注意这里使用 XeTeX 编译的,因为读字体方便。下面是导言区主要代码。其中主要定义了纸张大小、基本字号、文本框,顺便做了文本框里不能用 Figure 环境的替代方案。

\documentclass{article}

% 页面大小
\usepackage[paperwidth=80cm, paperheight=160cm, margin=5cm]{geometry}

% 大字
\usepackage{scrextend}
\changefontsizes[44pt]{36pt}
% 大行距
\usepackage{setspace}
\linespread{1.15}

% 配色
\usepackage{xcolor}
\definecolor{myblk}{RGB}{61,61,59}
\definecolor{mynavy}{HTML}{4c5870}
\definecolor{mywhite}{HTML}{ebedec}
\definecolor{mygray}{HTML}{a2a9af}
\color{myblk}
\pagecolor{mygray}

% 定义文本框
\usepackage{tcolorbox}
\tcbuselibrary{skins, breakable, theorems}
\newtcolorbox{block}[2][]{
	colback=mywhite,
	colframe=mynavy,
	coltitle=mywhite,
	coltext=myblk,
	fonttitle = \bfseries\Large,
	boxsep=1ex,
	left skip=1ex,
	right skip=1ex,
	title=#2, #1}

% 多列环境
\usepackage{multicol}

% 设置主字体
\setmainfont{Adobe Garamond Pro}
%\setmainfont{Courier New}

% 设置参考文献
\usepackage[sort&compress,numbers,super,square,comma]{natbib}
\bibliographystyle{gbt7714-2005}
\setlength\bibsep{0ex}
\renewcommand\refname{}

% 预览填空用
\usepackage{lipsum}

% 在 Figure 外用 Caption
\usepackage{capt-of}

然后,所有内容往 Block 里写,注意 Figure 环境不能用,如果要插图的话:

\begin{block}{} % Title Block
	% A BIG TITLE ON THE TOP !!
\end{block}
\begin{block}{PART I}
	\begin{minipage}{\linewidth}
		\vspace{3ex}
		\includegraphics[width=\linewidth]{Figure/Poster/process-flow.eps}
		\captionof{figure}{Processing Flow Diagram}\label{fig:process-flow}
		\vspace{2ex}
	\end{minipage}
\end{block}

虽然用了很多 \vspace 啦 minipage 啦非常 trick 的做法,不过至少是能用了,反正就一页不是吗(滑稽

发表评论