latex论文排版个人向相关问题记录

很久没更新了,小论文基本都见刊了,记录下之前写论文碰上的latex一些排版问题吧,比较琐碎。

伪代码跨页问题

最开始使用algorithms包来写的伪代码,左边会有大方括号,蛮好看的。
不过使用algorithms包进行伪代码撰写,会导致伪代码无法跨页显示,自动换页自适应后会留有很大空隙,不美观。当遇到跨页问题时,改用 algorithmalgorithmic包组合。需要导入和设置的信息如下。
论文首进行定义:

\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{float}
\usepackage{lipsum}
\makeatletter
\newenvironment{breakablealgorithm}
{% \begin{breakablealgorithm}
	\begin{center}
		\refstepcounter{algorithm}% New algorithm
		\hrule height.8pt depth0pt \kern2pt% \@fs@pre for \@fs@ruled
		\renewcommand{\caption}[2][\relax]{% Make a new \caption
			{\raggedright\textbf{\ALG@name~\thealgorithm} ##2\par}%
			\ifx\relax##1\relax % #1 is \relax
			\addcontentsline{loa}{algorithm}{\protect\numberline{\thealgorithm}##2}%
			\else % #1 is not \relax
			\addcontentsline{loa}{algorithm}{\protect\numberline{\thealgorithm}##1}%
			\fi
			\kern2pt\hrule\kern2pt
		}
	}{% \end{breakablealgorithm}
		\kern2pt\hrule\relax% \@fs@post for \@fs@ruled
	\end{center}
}
\makeatother

支持自定义语法:
这边展示了对输入输出语句的自定义

\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

基本语法:
参考wiki手册。https://en.wikibooks.org/wiki/LaTeX/Algorithms#Typesetting_using_the_algorithmic_package
个人感觉相对algorithms的括号,缩进的写法更舒服。

法文格式问题(带音标字符)

参考下表,对应字母自行更换
latex论文排版个人向相关问题记录_第1张图片

参考文献显示问题

利用bib进行设定的情况,参考文献默认只有在文中被引用的情况下才会显示,所以可以放心把所有文献先整理成bib文件。

较长公式一栏放置问题

需要借助figure标签来临时一栏,figureequation嵌套使用。
示例:

\begin{figure*}[t] 
 	\centering
\begin{equation}
    \label{eq7}
    p(z|z_{\neg b},B,\alpha,\beta) \propto \left\{\begin{matrix}
(n_z+\alpha)\frac{(n_{w_i|z}+\beta)(n_{w_j|z}+\beta)}{(\sum_wn_{w|z}+M\beta)^2} \; for \; S_{b,z}=0
\\
(n_z+\alpha)\frac{((n_{w_i|z})(1+\mu)+\beta)((n_{w_j|z})(1+\mu)+\beta)}{((\sum_wn_{w|z})(1+2\mu )+M\beta)^2} \; for \; S_{b,z}=1
\end{matrix}\right.
\end{equation}
\end{figure*}

公式编辑问题

公式编辑上手是个比较难受的事,最开始熟悉语法建议先使用图形化编辑器进行。
推荐一个在线的https://latex.91maths.com/,熟悉了符号表示后就会发现还是手打快。

表格table排版分割线问题

默认是三线表,也就是列之间没有栏;列之间需要加栏,则在begin的tabular设置中在行距设置间加上 | 符号。如下:

\begin{tabular}{p{2cm}<{\centering}p{1.5cm}<{\centering}|p{2cm}<{\centering}p{1.5cm}<{\centering}}

这样就在四列中间加了一条分割线。

Overleaf工具

一个在线的latex写作平台,自带中文,能在线编译很方便,也是现在最流行的。
网址:cn.overleaf.com
组里一直用的是winEdt,其实写起来都无所谓,总能编译出来的。
Overleaf好的一点是它编译的结果是把error和warn都一条条分开展示出来,不像命令行或者winEdt那样所有输出都糊在一起看不清楚。比较推荐使用。
latex论文排版个人向相关问题记录_第2张图片
最主要的一点是根据网上某些文章说明,overleaf中不爆红基本上就能通过论文投稿系统的编译,可以参考。(不过有次投稿没爆红死活传不上去,过了俩钟头毛都没改直接编译过了,还是比较玄学)

UTF-8 Error

在投稿过程中碰到的问题,投稿系统直接把latex源代码上传,并由它的系统进行在线编译,结果本地工具能通过编译,投稿系统却会报错,下面截图源自系统编译报错,主要是因为包含了中文字符。
latex论文排版个人向相关问题记录_第3张图片
图中这个until后面不小心写了个中文顿号,引发了error。换为英文符号即可。
很重要的一点是如果在组里本地常用的ctex环境下编译,那这个error并不会出现,因为ctex是针对中文字库做了优化的。所以本地ctex环境下写完确认error后投稿前最好还是在overleaf上建个项目复制编译下过一遍,防止出现问题,尤其是对于在线进行latex直接编译生成pdf的系统而言。

修订稿highlight问题

一般revised版本会要求把修改部分标红处理,一般就是使用package color。格式为\textcolor{red}{修改内容}
需要注意的是,对图片名称进行标红处理时,不能将\caption整句放到括号中,而要把textcolor放到caption标签中进行标红,否则会出现图片编号不连贯的问题。不过这样标红不能对自动生成的图片编号标红,可能未来能找到什么更好的办法。

大表排版问题

有时候超大表会溢出页面,使用\resizebox{\linewidth}{!}{}把整个表体框住,能自适应字体大小和表大小,很方便。

表头合并问题

有时候需要多组实验数据整合成一个大表,左侧表头(感觉不该叫表头,暂时这么叫吧)相同的格可进行合并,语法比较麻烦,这里留个示例好了。

\begin{tabular}{c|ccc}
  \hline
  \multicolumn{1}{c|}{\textbf{$\boldsymbol\gamma$}} & \multirow{1}{*}{\textbf{$\boldsymbol\rho$}} & \multicolumn{1}{c}{\textbf{A}} & \multicolumn{1}{c}{\textbf{B}}\\
  \hline
  \multirow{3}{*}{3} & 0-3 & 0.921 & 0.879\\
  & 4-9 & 0.960 & 0.929\\
  & 10-15 & 0.965 & 0.941\\\hline
  \multirow{3}{*}{6} & 0-3 & 0.895 & 0.875\\
  & 4-9 & 0.950 & 0.912\\
  & 10-15 & 0.955 & 0.929\\\hline
  \multirow{3}{*}{9} & 0-3 & 0.858 & 0.842\\
  & 4-9 & 0.931 & 0.889\\
  & 10-15 & 0.939 & 0.915\\\hline
\end{tabular}

主要是tabular之后的版型设置和\multirow的设置。
\multirow后面分别表示{合并数量}{格式(居中,默认等)}{数值}

总结

主要是个人向的latex排版经验,之前写论文的时候记录了分享下。从零开始自己摸索排版还是蛮麻烦的,好在现在的期刊大多有自己的大模板,后期编辑部也会派人帮忙改格式,还蛮舒服的。

你可能感兴趣的:(杂项,机器学习,深度学习,人工智能)