A website for self learning, collecting and sharing.
https://blog.csdn.net/haifeng_gu/article/details/108563975
在写论文时,长表格会超出页面的右边界,因此需要将长表格旋转90度横放在页面中。
解决办法
首先在导言区添加rotating宏包:\usepackage[figuresright]{rotating}
,然后,将
\begin{table}[thp]
\caption{This is the caption}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
.......
\end{tabular}
\end{table}
中的table
环境改为sidewaystable
环境:
\begin{sidewaystable}[thp]
\caption{This is the caption}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
.......
\end{tabular}
\end{sidewaystable}
\usepackage[figuresright]{rotating}
:图注在右,表头在左;使用left
则相反
参考
https://blog.csdn.net/programchangesworld/article/details/51553683
使用LaTex并排插入图片的时候,会给每一个图片编号,有时我们并不需要自动编号,所以这次就是去掉图片的编号。这里使用的是caption
和subcaption
宏包里的 \caption*{}
和 \subcaption*{}
命令,这两条命令可以使图片不用计数显示标号。
%Tex program = xelatex
%software = TexLive 2015
%本程序的作用是解决LaTex插图的问题,一是并排插入图片,二是解决图片的标号问题
%引用自(http://tieba.baidu.com/p/4582793482)
\documentclass[a4paper,UTF8]{article}
\usepackage{ctex}
\usepackage{graphicx}
\usepackage{caption,subcaption}
\begin{document}
\begin{figure}[ht]
\centering
\begin{subfigure}[t]{0.3\textwidth}
\centering
\includegraphics[width=1\textwidth]{a1.jpg}
\subcaption*{伤心图}
\end{subfigure}
\quad
\begin{subfigure}[t]{0.3\textwidth}
\centering
\includegraphics[width=1\textwidth]{a2.jpg}
\subcaption*{开心图}
\end{subfigure}
\quad
\begin{subfigure}[t]{0.3\textwidth}
\centering
\includegraphics[width=1\textwidth]{a3.jpg}
\subcaption*{帅哥图}
\end{subfigure}
\caption*{都是表情图}
\end{figure}
\end{document}
https://zhuanlan.zhihu.com/p/32925549
%导言区插入下面三行
\usepackage{graphicx} %插入图片的宏包
\usepackage{float} %设置图片浮动位置的宏包
\usepackage{subfigure} %插入多图时用子图显示的宏包
\begin{document}
\begin{figure}[H] %H为当前位置,!htb为忽略美学标准,htbp为浮动图形
\centering %图片居中
\includegraphics[width=0.7\textwidth]{DV_demand} %插入图片,[]中设置图片大小,{}中是图片文件名
\caption{Main name 2} %最终文档中希望显示的图片标题
\label{Fig.main2} %用于文内引用的标签
\end{figure}
\end{document}
编译之后,得到:
%导言区插入下面三行
\usepackage{graphicx}
\usepackage{float}
\usepackage{subfigure}
\begin{document}
Figure \ref{Fig.main} has two sub figures, fig. \ref{Fig.sub.1} is the travel demand of driving auto, and fig. \ref{Fig.sub.2} is the travel demand of park-and-ride.
\begin{figure}[H]
\centering %图片全局居中
\subfigure[name1]{
\label{Fig.sub.1}
\includegraphics[width=0.45\textwidth]{DV_demand}}
\subfigure[name2]{
\label{Fig.sub.2}
\includegraphics[width=0.45\textwidth]{P+R_demand}}
\caption{Main name}
\label{Fig.main}
\end{figure}
\end{document}
编译完成后的效果:
%导言区的此三行无变化
\usepackage{graphicx}
\usepackage{float}
\usepackage{subfigure}
%以下是新增的自定义格式更改
\usepackage[]{caption2} %新增调用的宏包
\renewcommand{\figurename}{Fig.} %重定义编号前缀词
\renewcommand{\captionlabeldelim}{.~} %重定义分隔符
%\roman是罗马数字编号,\alph是默认的字母编号,\arabic是阿拉伯数字编号,可按需替换下一行的相应位置
\renewcommand{\thesubfigure}{(\roman{subfigure})}%此外,还可设置图编号显示格式,加括号或者不加括号
\makeatletter \renewcommand{\@thesubfigure}{\thesubfigure \space}%子图编号与名称的间隔设置
\renewcommand{\p@subfigure}{} \makeatother
\begin{document}
%注意:此段中在引用中增加了主图编号的引用
Figure \ref{Fig.main} has two sub-figures, fig. \ref{Fig.main}\ref{Fig.sub.1} is the travel demand of driving auto, and fig. \ref{Fig.main}\ref{Fig.sub.2} is the travel demand of park-and-ride.
%以下code与上一小结的无变化
\begin{figure}[H]
\centering %图片全局居中
\subfigure[name1]{
\label{Fig.sub.1}
\includegraphics[width=0.45\textwidth]{DV_demand}}
\subfigure[name2]{
\label{Fig.sub.2}
\includegraphics[width=0.45\textwidth]{P+R_demand}}
\caption{Main name}
\label{Fig.main}
\end{figure}
\end{document}
编译后得到:
%导言区的此三行无变化
\usepackage{graphicx}
\usepackage{float}
%文章如果不涉及子图,以下代码可以删除,本文因需要一起示例排版,就保留了
\usepackage{subfigure}
\usepackage[]{caption2} %新增调用的宏包
\renewcommand{\figurename}{Fig.} %重定义编号前缀词
\renewcommand{\captionlabeldelim}{.~} %重定义分隔符
%\roman是罗马数字编号,\alph是默认的字母编号,\arabic是阿拉伯数字编号,可按需替换下一行的相应位置
\renewcommand{\thesubfigure}{(\roman{subfigure})}%此外,还可设置图编号显示格式,加括号或者不加括号
\makeatletter \renewcommand{\@thesubfigure}{\thesubfigure \space}%子图编号与名称的间隔设置
\renewcommand{\p@subfigure}{} \makeatother
\begin{document}
\begin{figure}[H]
\centering %图片全局居中
%并排几个图,就要写几个minipage
\begin{minipage}[b]{0.45\textwidth} %所有minipage宽度之和要小于1,否则会自动变成竖排
\centering %图片局部居中
\includegraphics[width=0.8\textwidth]{DV_demand} %此时的图片宽度比例是相对于这个minipage的,不是全局
\caption{name 1}
\label{Fig.1}
\end{minipage}
\begin{minipage}[b]{0.45\textwidth} %所有minipage宽度之和要小于1,否则会自动变成竖排
\centering %图片局部居中
\includegraphics[width=0.8\textwidth]{P+R_demand}%此时的图片宽度比例是相对于这个minipage的,不是全局
\caption{name 2}
\label{Fig.2}
\end{minipage}
\end{figure}
\end{document}
编译之后的效果:
其他可用的插入图片的宏包还有:psfig
,epsfig
,epsf
,等等。详细用法参见:LaTex学习笔记(1)–LaTeX文档插入图片的几种常用方法_小鸟kivi_新浪博客。
取消图片编号,只保留图片名称的方法:LaTeX技巧008:并排插入图片以及去掉图片编号 - ProgramChangesWorld的专栏 - CSDN博客。
有关子图编号问题,以及更多的子图样式自定义选项,参见:latex子图编号问题_百度知道。
https://zhuanlan.zhihu.com/p/34271941
先贴给大家一个万用灵药——Tables Generator,网址:Create LaTeX tables online。其实打开这个网站并尝试随便生成了几个简单的表格之后,就已经觉得没啥继续写表格排版札记的必要了。真是个扎心的开始~
但多数情况下,大家在表格排版时仍会精益求精。因此,还是继续简要介绍一些常用的表格格式设置方法:表格浮动、对齐方式、合并单元格、三线表、单元格内文字换行、表格脚注。
\documentclass[review]{elsarticle}
%表格排版需要插入的宏包以及部分自定义格式
\usepackage{multirow} %合并多行单元格的宏包
\usepackage{longtable} %不宽但很长的表格可以用longtable宏包来进行分页显示
\usepackage{array} %一般用于数学公式中对数组或矩阵的排版
\usepackage{makecell}% makecell命令对表格单元格中的数据进行一些变换的控制。我们可以使用 \ 命令进行换行,也可以使用p{(宽度)}选项控制列表的宽度
\usepackage{threeparttable} %制作三线表格
\usepackage{booktabs}%s三线表格中的上中下直线线型设置宏包,在这个包中水平线被教程\toprule、midrule、buttomrule。
%表头文字格式的详细设置
\renewcommand\theadset{\renewcommand\arraystretch{0.85}%
\setlength\extrarowheight{0pt}}%行距
\renewcommand\theadfont{\small}%字体
\renewcommand\theadalign{rt}%行列对齐
\renewcommand\theadgape{\Gape[0.5cm][2mm]}%上下垂直距离
\begin{document}
%插入表格的示范
\begin{table}[htbp] %表格的浮动环境
\centering\small
\begin{threeparttable}
\caption{Effect of Trade Openness on Environment}
\begin{tabular}{lccc} %表格环境,{}中是单元格对齐方式,l左对齐,c居中,r右对齐
\toprule %表头直线
\makecell[c]{two lines\\ example} & single column & \multicolumn{2}{c}{Multicolumn head} \\
\midrule %表中直线
$\ln(y/pop)$ & \makecell[c]{two lines \\ example} & 287.25* & 566.65 \\
\midrule %表中直线
\multirow{2}{*}{$\ln(y/pop)^2$} & $-$22.85* & $-$16.58* & $-$35.57** \\ \cline{2-4}
& $-$.29** & $-$.31* & $-$.37 \\
\midrule %表中直线
$Polity$ & $-$3.20* & $-$6.58* & $-$6.70** \\
\midrule %表中直线
$\ln(LandArea/pop)$ & $-$5.94 & $-$2.92* & $-$13.02* \\
\midrule %表中直线
Obs. & 36 & 41 & 38 \\
\midrule %表中直线
$R^2$ & 0.16 & 0.68 & 0.62 \\
\bottomrule %表底直线
\end{tabular}
\small
Note: Robust standard errors in parentheses. Intercept
included but not reported.
\begin{tablenotes}
\item[*] significant at 5\% level
\item[**] significant at 10\% level
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}
最终的显示效果如下图:
与图表排版中类似,首先我们需要调用一些常用的宏包。在上面的代码块中,我们调用了:multirow
、longtable
、array
、makecell
、threeparttable
。具体含义和提供的功能参见代码块中的对应注释。下面,将逐条解释代码块中的具体表格生成方法。
(1)表格浮动和对齐方式
在latex表格的生成中,table
是让表格浮动的环境,tabular
是构造表格的环境。一般的结构是:
\begin{table}[表格在页面上的位置,即浮动方式]
\centering
\caption{.....}\label{...}
\begin{tabular}{对齐方式}
.........
\end{tabular}
\end{table}
[]
中的参数一般为:!htbp
、H
和 htbp
,实现的效果分别为:忽略美学的自动位置、当前插入位置、浮动格式。详见 Latex强制图片位置 - CSDN博客。需要注意的是,如果选择H
作为参数,一般还需要在导言区加上 \\usepackage{float}
。
对齐方式包括:l
,左对齐;c
,居中对齐;r
,右对齐。一般在 \\begin{tabular}
后面标注。
此外,表格环境还有其他构造方式,具体参见 LaTeX技巧心得242:LaTeX编辑表格的常用宏包与示例_LaTeX_Fun_新浪博客,以及 LaTeX 编辑部 - 常用宏包 - 表格。
(2)合并单元格
两类合并方式:多行合并和多列合并。
\\multirow{合并的行数}{行宽}{文本}
,其中的 行宽
参数不可忽略,如果想设置为自动,则用 \*
代替。然后,需要注意的是,\\multirow{行数}{行宽}{文本}
要写在这些行的第一行,其他行的文本保持空白,但正常的文本分隔符 &
仍要保留。\\multicolumn{合并的列数}{对齐方式}{文本}
。此时,合并列所在的行中,文本分隔符要相应减少。例如:如果该行合并了2列,则该行的分隔符要相应减少1个。(3)三线表
三线表绘制需要在 {threeparttable}
的环境中生成,同时还需要调用 booktabs
宏包。最重要的是画出表头直线(\\toprule
)、表中直线(\\midrule
)和表底直线(\\bottomrule
)。我们在示例中实际上绘制了多条表中直线(\\midrule
)。需要注意的是,如果我们希望绘制的表中直线并不是整行,则需要在相应行结束之后用 \\cline{行数范围}
命令进行绘制。
(4)单元格内文字换行
单元格内的文字强制换行,需要调用 makecell
宏包,采用 \\makecell\[对齐方式\]{文本1 \\\\ 文本2}
对文本强制换行。其中,\\\\
是强制换行符号。参见:宏包 makecell 应用(一)系列教程。
(5)表格脚注
表格的脚注添加方式为:
\begin{tablenotes}
\item[脚注符号1] 说明文本
\item[脚注符号2] 说明文本
\end{tablenotes}
其实形式上与列表是很相似的,有多少个说明项,就添加多少个 \\item[]
。
(6)其他常见的表格排版功能
相对于生成表格而言,生成列表就非常简单了。直接贴代码吧,详细格式设置直接看注释行即可:
%导言区需要新增的宏包
\usepackage{enumerate} %列举宏包
%正文部分的代码
% 无编号,但公式符号可以对齐的做法,example1
\begin{enumerate}[align=right]
\setlength{\leftmargin}{2em} %左边界
\setlength{\parsep}{0ex} %段落间距
\setlength{\topsep}{0ex} %列表到上下文的垂直距离
\setlength{\itemsep}{0ex} %条目间距
\setlength{\labelsep}{1em} %标号和列表项之间的距离,默认0.5em
\setlength{\itemindent}{0em} %标签缩进量
\setlength{\listparindent}{0em} %段落缩进量
\item [ $c_1$] the constant travel time of driving (auto), unit: minutes per time;
\item [$c_2$] the constant travel time of taking MRT, unit: minutes per time;
\item [$\tau_1$] the unit fixed cost of driving for a traveler, unit: yuan per person per time;
\item [$\tau_2$] one-way fare of MRT for a traveler, unit: yuan per person per time;
\item [$\varsigma_1$] the unit operation cost of highway for the traffic manager, unit: yuan per person per time;
\end{enumerate}
%有编号的一般做法, example2
With numbers as below in example1:
\begin{itemize}
\item document style
\item baselineskip
\item front matter
\item keywords and MSC codes
\item theorems, definitions and proofs
\item lables of enumerations
\item citation style and labeling.
\end{itemize}
%有编号的一般做法,example 3
With numbers as below in example2:
\begin{enumerate}[(1)]
\item Group the authors per affiliation.
\item Use footnotes to indicate the affiliations.
\end{enumerate}
最终生成的效果如下,基本看起来像纯文本输入的那种。