? 连享会 · 推文导航 | www.lianxh.cn
? Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 ? 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 ? 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 ? 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching ? 工具:工具软件 | Markdown | Python-R-Stata ? 课程:公开课-直播 | 计量专题 | 关于连享会
理论 + 实证:从「读懂模型」到「折腾模型」
? 理论模型构建专题
? 2022 年 4 月 23-24 日 (周六-周日)
? 郭凯明副教授 (中山大学)
? 课程主页:https://gitee.com/lianxh/emodel
作者:陈卓然 (中山大学岭南学院)
邮箱:chenzhr25@mail2.sysu.edu.cn
编者按:本文主要参考自「Paul Goldsmith-Pinkham: beamer-tips」,特此致谢!
目录
1. 可读性
2. 颜色
3. 字号、字体以及可读性
4. 图形
5. 表格
6. 一些其他的小技巧
7. 附录
8. 相关推文
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
Paul Goldsmith-Pinkham 教授在其「主页」上发布了一些使用 Latex 制作 Beamer 的小技巧,本篇推文将结合笔者使用 Latex 的经验来介绍如何做一份规范的学术论文幻灯片。关于 Latex 的下载和安装,大家可参考连享会推文「LaTeX小白入门:TeXLive 安装及使用」。关于 Beamer 的介绍,大家可参考连享会推文「连享会工具:Beamer 幻灯片制作」。
1. 可读性
在这一节,我们介绍的是如何有效地制作过渡幻灯片和提高行与行之间的间距,以增强幻灯片的可读性。首先,为了更好地分割节与节,作者建议我们使用 transitionframe
而不是 frame
。为了使用此命令,我们首先需要在导言部分设置 transitionframe
的格式。例如作者就将 transitionframe
设置为如下格式:
ewenvironment{transitionframe}{
setbeamercolor{background canvas}{bg=yellow}
egin{frame}}{
end{frame}
}
之后,我们只需使用 egin{transitionframe}
以及 end{transitionframe}
即可。
egin{transitionframe}
egin{center}
{Huge extcolor{black}{Spacing and Words}}
end{center}
end{transitionframe}
其次,为了增强每页幻灯片的可读性,作者建议我们使用 wideitemize
而不是简单的 itemize
。因为这样可以自动增加行与行之间的间距,从而使得观众可以非常轻松地了解幻灯片想要表达的意思。具体而言,可以在一页幻灯片中先使用 wideitemize
分割几个大点,然后在每个大点中如果想插入若干个小点时,则可以使用 itemize
,这样可以使得整个幻灯片错落有致。不信的话大家可以对比一下如下的两张幻灯片。
为了使用 wideitemize
,大家需要在导言部分设置一下 wideitemize
的环境,具体如下:
ewenvironment{wideitemize}{itemizeaddtolength{itemsep}{10pt}}{enditemize}
如果你希望在节与节之间放置一个路标页,则可以使用如下的代码:
AtBeginSection[]{%
egin{frame}%
frametitle{Roadmap of Talk}% 这是路标页的标题,大家可以酌情修改。
ableofcontents[currentsection] %
end{frame}%
}
然后每一节之前加上 section{name}
,这样就可以在每一节前面有一个目录,如下所示:
2. 颜色
作者建议不要使用传统的红色和蓝色,因为这样对于色盲的人们不太友好。相反作者建议我们参照如下的颜色,设计自己的颜色。
比如说作者采用的颜色为:
definecolor{blue}{RGB}{0,114,178}
definecolor{red}{RGB}{213,94,0}
definecolor{yellow}{RGB}{240,228,66}
definecolor{green}{RGB}{0,158,115}
当然各位小伙伴们如果不喜欢作者提供的颜色,可以自己调制属于自己的颜色。至于幻灯片的背景颜色,可谓是仁者见仁智者见智了。不过一般在小型的学术会议上,最好还是使用白底黑字。下面是作者提供的一种背景颜色 (类似一种米白色)。
definecolor{MyBackground}{RGB}{255,253,218}
如果说是在一个很大的礼堂里面做报告,比如说像苹果发布会一样的场合下,或许黑底白字也是一个不错的选择。如果有想要采用黑底白字,可以参考如下的代码:
{ setbeamercolor{background canvas}{bg=black}
egin{frame}
extcolor{white}{Example for an auditorium -- contrast is much higher}
end{frame}
}
3. 字号、字体以及可读性
首先千万不要为了文字而改字号,因为往往此时你已经放置太多的文字了。但是对于敲进去的文字来说,我们会很容易注意到其字号大小,往往容易被我们忽略的是图形中的字号。比如说对比下面的两张图:
至于如何调整图形中的字号大小就要根据软件的不同而不同了,这里就不过多阐述了。其次值得一提的就是字体,各位小伙伴可以根据自己的喜好来调整幻灯片的字体,只需要在导言部分敲入如下代码即可。
usepackage[default]{lato}
不过你需要选对正确的包,「
4. 图形
在 Latex 中调整图形的大小往往是一个很头疼的问题,作者给我们一个小窍门,使用如下代码:
esizebox{0.7linewidth}{!}{
includegraphics{figure1_effect.pdf}}
其中 linewidth
是一个预先定义好的值,我们只需要调整前面的倍数即可。如无例外,将图形居中呈现总是一个不错的选择。但是在有些情况下面,我们可能更希望展现一幅图形的变化,这时候就需要像 PPT 中动画一样的效果。在幻灯片中实现这样的动画效果也并不困难,只需使用如下的一行代码:
only<slidenum>
在 <>
中的数字其实就是你希望图形出场的顺序。当然除了 only
之外,也有很多类似的动画命令,比如 uncover
、onslide
、visible
、invisible
,具体内容大家可以参考这篇博客「用Beamer制作幻灯片 (卷三动画篇)」。
5. 表格
表格确实是一个非常棘手的问题,首先推荐大家使用「Table Generator」网站。但是这个网站只能做出标准的表格,对于学术上经常使用的三线表格,它是无能为力的。下面我来详细介绍一些如何制作三线表。首先,为调整好表格的位置和大小,我们采用如下的代码。注意:不要使用 table
环境,而是要使用 tabular
。
makebox[linewidth][c]{
egin{tabular}{l cc ddd}
results...
end{tabular}
接下来为创建三线表,我们需要借助 booktabs
,当然需要在导言部分引入 usepackage{booktabs}
包。所谓三线表,顾名思义要求有三条线:上线 top line、中线 middlel line,以及下线 bottom line,这三条线往往要比表中其余的线粗。booktabs
包中提供了三条命令来绘制这三条线,分别为 oprule
、midrule
、ottomrule
。此外,为了绘制只跨表中几列的横线,需要 cmidrule
命令。
尽管不是必须,但为了使三线表更为美观,我们最好在导言部分再引入一个包 dcolumn
。这个包可以更加精细地去刻画列的特征,譬如说列的宽度等。对具体内容感兴趣的小伙伴们,可参考「The dcolumn package」。简而言之,我们应该在导言部分敲入如下代码:
usepackage{dcolumn}
ewcolumntype{d}[0]{D{.}{.}{5}}
需要提及的一点是,如果有小伙伴想要跨列显示某些内容的话是不需要加载 multirow
包。但是如果希望能够跨行显示的话,那就需要在导言部分加载 multirow
包,即 usepackage{multirow}
。然后如何使用 multirow
或者 multicolumn
呢?基本语法格式是:
%multi-column
multicolumn{number of cols}{align}{text} % align: l(左),c(中),r(右)
%multi-row
usepackage{multirow}
multirow{number of rows}{width}{text}
注意在 multirow
中间的括号 width
选项中,我们通常将其设定为 *
,表示使用第三个 text
参数的自然宽度。更详细的解释,大家可以参考「Multi-column and multi-row cells in LaTeX tables」。为了让三线图能够顺利编译,我们需要在导言部分敲入如下几行代码:
usepackage{booktabs}
% usepackage{multirow}
usepackage{dcolumn}
ewcolumntype{d}[0]{D{.}{.}{5}}
下面我将使用作者提供的一个例子来给大家做详细的介绍。比如说大家希望能够画出如下的精美的三线表:
makebox[linewidth][c]{
egin{tabular}{lccddd} % 注意此处d就是按照先导部分设置dcolumn包的时候设定好的
oprule % 上线
& Mean at && multicolumn{3}{c}{Difference-in-Differences Estimates} \
cmidrule{4-6} % 此处表示绘制一条跨越4至6列的横线
& $ t=-1 $ &&multicolumn{1}{c}{1 Year} & multicolumn{1}{c}{2 Years} & multicolumn{1}{c}{3 Years} \
cmidrule{2-2} cmidrule{4-6} %分别在绘制2列和4-6列的横线
& multicolumn{1}{c}{(1)} &&multicolumn{1}{c}{(2)} & multicolumn{1}{c}{(3)} & multicolumn{1}{c}{(4)} \
cmidrule{2-6} % 绘制跨越2-6列的横线
Outcome 1 & 2.58 && 0.11 &0.08 & 0.12\
& (2.55) && (0.04) & (0.04) & (0.04)\
Outcome 2 & 60.90 && -0.73 &-1.13 & -1.58\
& (17.02) && (0.10) & (0.11) & (0.12) \
Outcome 3 & 18.98 && 0.77 &1.28 & 1.62\
& (6.74) && (0.13) & (0.13) & (0.12)\
ottomrule % 下线
end{tabular}
}
在一般在学术会议上仅仅有上述精美的三线图是不够的,你可能并不希望老师或评委们去看整张表的所有内容。但此时如果仅列示出两到三个单元格,又会显得很突兀。因此这时需要框出某些单元格,从而让老师们把目光集中在重点上面。比如说如下形式:
在 Latex 中实现这样的功能需要在导言部分引入 tikz
绘图包,并做出相应的设定。
usepackage{tikz}
usetikzlibrary{matrix,shapes,arrows,fit,tikzmark}
%%% TIKZ STUFF
ikzset{
every picture/.style={remember picture,baseline},
every node/.style={anchor=base,align=center,outer sep=1.5pt},
every path/.style={thick},
}
ewcommandmarktopleft[1]{%
ikz[overlay,remember picture]
ode (marker-#1-a) at (-.3em,.3em) {};%
}
ewcommandmarkbottomright[2]{%
ikz[overlay,remember picture]
ode (marker-#1-b) at (0em,0em) {};%
}
ikzstyle{every picture}+=[remember picture]
ikzstyle{mybox} =[draw=black, very thick, rectangle, inner sep=10pt, inner ysep=20pt]
ikzstyle{fancytitle} =[draw=black,fill=red, text=white]
%%%% END TIKZ STUFF
然后在按照前文介绍绘制三线表的时候,在想要框住的若干数字的左上角数字前面加上 marktopleft
,同时在右下角数字后面加上 markbottomright
。最后在绘制完三线表之后加入如下的设定命令:
{ ikz[overlay,remember picture,inner sep=1pt]
ode[draw=cyan,rounded corners,fit=(marker-a1-a.north west) (marker-a1-b.south east)] {};}
其中你可以根据自己喜欢的颜色来调整框的颜色,更改 draw
的选项即可。可以看到为了做到框出表中某些单元格,还是有些繁琐的,不过建议大家将其作为模板,毕竟其中很多参数的设置也并不需要做过多的调整。下面我把绘制上表所需要的全部代码贴在下面供有需要的小伙伴参考借鉴。
% preamble
usepackage{booktabs}
usepackage{dcolumn}
ewcolumntype{d}[0]{D{.}{.}{5}}
% usepackage{multirow} 如果要跨行才要用
usepackage{tikz}
usetikzlibrary{matrix,shapes,arrows,fit,tikzmark}
%%% tikz的设定
ikzset{
every picture/.style={remember picture,baseline},
every node/.style={anchor=base,align=center,outer sep=1.5pt},
every path/.style={thick},
}
ewcommandmarktopleft[1]{%
ikz[overlay,remember picture]
ode (marker-#1-a) at (-.3em,.3em) {};%
}
ewcommandmarkbottomright[2]{%
ikz[overlay,remember picture]
ode (marker-#1-b) at (0em,0em) {};%
}
ikzstyle{every picture}+=[remember picture]
ikzstyle{mybox} =[draw=black, very thick, rectangle, inner sep=10pt, inner ysep=20pt]
ikzstyle{fancytitle} =[draw=black,fill=red, text=white]
%%%% Tikz 设定完毕
% 制表所需
makebox[linewidth][c]{
egin{tabular}{l cc ddd}
oprule
& Mean at && multicolumn{3}{c}{Difference-in-Differences Estimates} \
cmidrule{4-6}
& $ t=-1 $ &&multicolumn{1}{c}{1 Year} & multicolumn{1}{c}{2 Years} & multicolumn{1}{c}{3 Years} \
cmidrule{2-2} cmidrule{4-6}
& multicolumn{1}{c}{(1)} &&multicolumn{1}{c}{(2)} & multicolumn{1}{c}{(3)} & multicolumn{1}{c}{(4)} \
cmidrule{2-6}
Outcome 1 & 2.58 && 0.11 &marktopleft{a1}0.08 & 0.12\
& (2.55) && (0.04) & (0.04) & (0.04)\
Outcome 2 & 60.90 && -0.73 &-1.13 & -1.58\
& (17.02) && (0.10) & (0.11) & (0.12)markbottomright{a1}{red} \
Outcome 3 & 18.98 && 0.77 &1.28 & 1.62\
& (6.74) && (0.13) & (0.13) & (0.12)\
ottomrule
end{tabular}
}
{ ikz[overlay,remember picture,inner sep=1pt]
ode[draw=cyan,rounded corners,fit=(marker-a1-a.north west) (marker-a1-b.south east)] {};}
end{frame}
6. 一些其他的小技巧
对于很长很长的数学公式,我们最好使用不同的颜色并加一些注释,以方便读者更容易了解公式背后的意义。比如说使用 extcolor{}
,在使用这个命令之前需要在导言部分加载 graphicx
,即 usepackage{graphics}
。
在 Latex 中也可以使用批注功能,只需在 frame 的环境之外,加上
ote
命令。当然在导言部分也需要调入 pgfpages
包。
usepackage{pgfpages}
setbeameroption{hide notes} % Only slide
%setbeameroption{show only notes} % Only notes
%setbeameroption{show notes on second screen=right} % Both
7. 附录
大家可以使用命令 appendix
来开始附录,使用这一命令后幻灯片就可以重新开始计数。其使用方法很简单,就是先在导言部分加载 appendixnumberbeamer
包,然后在想要开始附录的上一页幻灯片结束的 end{frame}
和附录第一页的幻灯片开始的 egin{frame}
之间加上 appendix
即可。具体关于 appendixnumberbeamer
的内容,大家可以参考「appendixnumberbeamer」。
最后一点小建议,大家在做学术报告的过程中或许需要将两张幻灯片之间做一个超链接,从而可以在需要的时候从某一页直接跳转到需要的那一页,然后再跳转回来。为实现这一功能,需要再 egin{frame}
后面加入 [label = name]
的选项,即 egin{frame}[label = name]
,然后在需要插入链接的地方使用如下命令:
hyperlink{name}{object}
其中的 object
可以是一些文字,也可以通过 eamergotobutton{}
来绘制一个类似按钮的小图案,点击之后就可以跳转。
8. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh latex 幻灯片, m
安装最新版lianxh
命令:
ssc install lianxh, replace
专题:专题课程 学术范儿的幻灯片制作:Beamer in Rmarkdown 专题:结果输出 Stata:输出漂亮的LaTeX表格-T222 Stata结果输出:Excel结果表变身LaTeX表格 Stata与LaTeX的完美结合 Stata结果输出:用esttab生成带组别名称的LaTeX回归表格 专题:内生性-因果推断 内生性:来源及处理方法-幻灯片下载 专题:Markdown-LaTeX 用VScode正则表达式转换Markdown和LaTeX链接 DAG-有向无环图:如何用LaTeX快速绘制?-B017- LaTeX小白入门:TeXLive安装及使用 用Markdown制作幻灯片-五分钟学会Marp(上篇)-M110a 用Markdown制作幻灯片-五分钟学会Marp(下篇)-M110b Stata+LaTex:绘制流程图 Markdown教程之LaTeX数学公式简介 Markdown常用LaTex数学公式 Markdown中书写LaTeX数学公式简介 专题:工具软件 LaTeX-如何使用Overleaf生成PPT LaTeX-如何使用 Overleaf 撰写论文 连享会工具:Beamer幻灯片制作 Word,MathType与LaTeX公式
连享会 · 文本分析 | 爬虫 | 机器学习
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
? 安装:
. ssc install lianxh
. ssc install songbl
? 使用:
. lianxh DID 倍分法
. songbl all
? 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: ?【**百度一下:**连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。
文章为用户上传,仅供非商业浏览。发布者:Lomu,转转请注明出处: https://www.daogebangong.com/articles/detail/LaTeX%20Tips%20Simple%20and%20Practical%20Beamer%20Templates.html
评论列表(196条)
测试