乐于分享
好东西不私藏

用Overleaf编译LaTeX文档,这些排版技巧让你的作业、讲义更专业

用Overleaf编译LaTeX文档,这些排版技巧让你的作业、讲义更专业

一、基础设置:页边距与中文支持

在Overleaf中新建一个项目,先把文档框架搭好。推荐使用 XeLaTeX 或 LuaLaTeX 编译,因为它们对中文和字体支持更好。

\documentclass[12pt,a4paper]{article}\usepackage[UTF8]{ctex}           % 中文支持\usepackage[margin=2cm]{geometry} % 页边距上下左右均为2cm\usepackage{fancyhdr}             % 页眉页脚定制
  • geometry 宏包可以方便地设置页边距:margin=2cm 就是四面留白2厘米。

  • 如果想单独设置,可以用 top=2cm, bottom=2cm, left=2cm, right=2cm

二、页眉页脚定制(含横线)

很多文档需要在页眉显示章节名或课程名,页脚显示页码。用 fancyhdr 可以轻松实现。

1. 基本页眉页脚

\pagestyle{fancy}\fancyhf{}                         % 清空默认设置\fancyhead[C]{Chain Rule}          % 页眉左\fancyhead[C]{}                    % 页眉中(留空)\fancyhead[R]{}                    % 页眉右\fancyfoot[C]{\thepage}            % 页脚居中显示页码
  • [L] / [C] / [R] 分别代表左、中、右。

  • \thepage 会自动输出当前页码。

2. 页眉下方的横线(下框线)

默认情况下,fancyhdr 会在页眉下方画一条0.4pt的细线。如果你之前用 \renewcommand{\headrulewidth}{0pt} 把它去掉了,现在想恢复,只需要:

\renewcommand{\headrulewidth}{0.4pt}
如果想加粗或改成双线,可以自定义:
\renewcommand{\headrule}{%    \hrule height 1pt \vskip 2pt \hrule height 0.5pt}
这样就会在页眉文字下面先画一条1pt粗线,隔2pt后再画一条0.5pt细线,形成双下框线效果。

3. 页脚横线

页脚上方的横线用 \footrulewidth 控制,默认是0(无横线)。想开启的话:

\renewcommand{\footrulewidth}{0.4pt}

三、在题目下方留出固定行数的空白(空4行、空6行)

出练习题时,每个题目下面要留出答题区域。如果用单纯的换行 \\ 或 \par,可能会被LaTeX自动调整或分页打断。正确的做法是使用 \vspace*{高度}(带星号的版本,确保即使在一页开头也不会被吞掉)。

定义通用的留空命令

\newcommand{\blanklines}[1]{%    \par\nobreak    \vspace*{#1\baselineskip}%    \par\nobreak}
  • #1\baselineskip#1 是要空的行数,\baselineskip 是当前行距(默认约12pt)。

  • \nobreak 提示LaTeX尽量不要在这里断页,保证空白和题目在同一页(但不强制,如果实在放不下会自动分页)。

然后定义两个方便的命令:

\newcommand{\problem}[2]{%    \textbf{#1.} \ensuremath{#2} \par    \blanklines{4}   % 留4行空白}\newcommand{\hardproblem}[2]{%    \textbf{#1.} \ensuremath{#2} \par    \blanklines{6}   % 留6行空白(难题多给点空间)}
使用示例:
\problem{1}{y = \sqrt[3]{1 + 4x}}\hardproblem{31}{y = \sin(\tan 2x)}

四、左右两栏排列,自动跨页(用 longtable)

常规的 tabular 或 minipage 无法自动跨页。这时候需要 longtable 宏包。

\usepackage{longtable}\usepackage{array}
设置一个两栏的 longtable,每栏宽度为页面宽度的48%,中间留4%作为间距:
\setlength{\LTleft}{0pt}\setlength{\LTright}{0pt}\begin{longtable}{@{} p{0.48\linewidth} @{\hspace{0.04\linewidth}} p{0.48\linewidth} @{}}
  • @{} 去掉列两边的默认间距,让表格紧贴版心。

  • p{0.48\linewidth} 是定宽列,内容自动换行。

  • @{\hspace{0.04\linewidth}} 在两列之间插入水平间距。

然后在表格里一行一行写题目,用 & 分隔两列,\\ 换行:

\problem{1}{y = \sqrt[3]{1 + 4x}} & \problem{2}{y = (2x^3 + 5)^4} \\\problem{3}{y = \tan \pi x}       & \problem{4}{y = \sin(\cot x)} \\% ... 更多题目\end{longtable}
longtable 会自动在页面底部断开,并在下一页继续,不需要手动干预。

五、将答案单独放在最后一页,分两栏显示

题目占多页,答案另起一页,并且分两栏以节省空间。

\newpage\begin{center}    \Large \textbf{参考答案}\end{center}\vspace{0.5cm}\usepackage{multicol}\setlength{\columnsep}{1cm}\begin{multicols}{2}\begin{enumerate}\item $\frac{4}{3(1+4x)^{2/3}}$\item $24x^2(2x^3+5)^3$% ... 其他答案\end{enumerate}\end{multicols}
  • \newpage 强制分页。

  • multicols 环境自动将内容平衡分栏。

六、完整代码示例(可复制的Overleaf模板)

把上面所有技巧整合起来,就是一个完整的练习题文档。你可以直接在Overleaf中新建项目,粘贴以下代码,选择 XeLaTeX 编译。

% 链式法则求导练习题(带页眉页脚、留白、两栏、答案页)\documentclass[12pt,a4paper]{article}\usepackage[UTF8]{ctex}\usepackage{amsmath,amssymb}\usepackage[margin=2cm, headheight=15pt, headsep=0.8cm, footskip=0.8cm]{geometry}\usepackage{fancyhdr}\usepackage{longtable}\usepackage{array}\usepackage{multicol}% 页眉页脚\pagestyle{fancy}\fancyhf{}\fancyhead[L]{Chain Rule}\fancyfoot[C]{\thepage}\renewcommand{\headrulewidth}{0.4pt}   % 页眉下横线\renewcommand{\footrulewidth}{0pt}% 留空白命令\newcommand{\blanklines}[1]{%    \par\nobreak    \vspace*{#1\baselineskip}%    \par\nobreak}\newcommand{\problem}[2]{%    \textbf{#1.} \ensuremath{#2} \par    \blanklines{4}%}\newcommand{\hardproblem}[2]{%    \textbf{#1.} \ensuremath{#2} \par    \blanklines{6}%}\begin{document}\begin{center}    \Large \textbf{链式法则求导练习题}\\    \normalsize 运用链式法则求下列函数的导数。\end{center}\setlength{\LTleft}{0pt}\setlength{\LTright}{0pt}\begin{longtable}{@{} p{0.48\linewidth} @{\hspace{0.04\linewidth}} p{0.48\linewidth} @{}}\problem{1}{y = \sqrt[3]{1+4x}} & \problem{2}{y = (2x^3+5)^4} \\\problem{3}{y = \tan \pi x} & \problem{4}{y = \sin(\cot x)} \\% ...... 继续添加题目 ......\hardproblem{31}{y = \sin(\tan 2x)} & \hardproblem{32}{y = \sec^2(m\theta)} \\\end{longtable}\newpage\begin{center}\Large \textbf{参考答案}\end{center}\setlength{\columnsep}{1cm}\begin{multicols}{2}\begin{enumerate}\item $\frac{4}{3(1+4x)^{2/3}}$\item $24x^2(2x^3+5)^3$% ...... 其余答案 ......\end{enumerate}\end{multicols}\end{document}

掌握了这些技巧,你就能用Overleaf快速制作出结构清晰、适合打印的练习题、作业纸甚至试卷了。快去试试吧!

以下为今天用overleaf编译生成的练习题。

遇到问题看不懂怎么办?  

可以直接在下方留言

或者手动搜索微信号:Shirley_

或者扫描下方二维码

你如果在看就点击右边的“在看”,

如果你再看请坚持点“在看”!

点“在看”你会变“好看”

一次点“在看”,一次好运!

谢谢大家!