Install latexindent.pl

latexindent.pl is a perl script to beautify/tidy/format/indent (add horizontal leading space to) code within environments, commands, after headings and within special code blocks. It has the ability to align delimiters in environments and commands, and can modify line breaks including text wrapping and one-sentence-per-line. It can also perform string-based and regex-based substitutions/replacements. The script is customisable through its YAML interface.

latexindent.pl是一个Perl脚本,用于美化/整理/格式化/缩进(在环境、命令、标题后以及特殊代码块内添加水平前导空格)代码。它具有对环境和命令中的定界符进行对齐的功能,可以修改换行符,通过文本换行实现每行一个句子。它还可以执行基于字符串或正则表达式的替换。该脚本可通过其YAML文件接口进行定制。

安装过程参考此文档。本文记录在Ubuntu 20.04系统上安装和使用latexindent的过程。

安装

安装perl和必要的

1
2
3
4
5
6
7
sudo apt install perl
sudo cpan -i App::cpanminus
sudo cpanm YAML::Tiny
sudo cpanm File::HomeDir
sudo cpanm Unicode::GCString
sudo cpanm Log::Log4perl
sudo cpanm Log::Dispatch::File

上述命令执行完毕后latexindent就安装好了,检查一下:

1
latexindent -v

latexindent_version

同样提供without perl的安装选项,请参考文档的这一部分。也可以用condadocker安装,请自行查阅文档。

效果

文档中给了效果演示。以下内容为了验证在本机上正确安装latexindent

原始文档长这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
\section{引言}

\begin{frame}
\frametitle{\textbf{引言}}
\begin{block}{\textbf{研究背景}}
\begin{itemize}
\item 短信息(SMS)成为现代通讯的重要组成部分
\item 很多组织或网站使用短信息作为身份验证的辅助通道
\item 现代短消息的发送,在抵达终端之前不接触蜂窝网络
\end{itemize}
\end{block}

\begin{block}{\textbf{主要工作}}
\begin{itemize}
\item 对SMS数据进行迄今为止最大的挖掘分析
\item 评估良性短消息服务的安全态势
\item 刻画通过SMS网关进行的恶意行为
\end{itemize}
\end{block}
\end{frame}

使用latexindent格式化后的效果像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
\section{引言}

\begin{frame}
\frametitle{\textbf{引言}}
\begin{block}{\textbf{研究背景}}
\begin{itemize}
\item 短信息(SMS)成为现代通讯的重要组成部分
\item 很多组织或网站使用短信息作为身份验证的辅助通道
\item 现代短消息的发送,在抵达终端之前不接触蜂窝网络
\end{itemize}
\end{block}

\begin{block}{\textbf{主要工作}}
\begin{itemize}
\item 对SMS数据进行迄今为止最大的挖掘分析
\item 评估良性短消息服务的安全态势
\item 刻画通过SMS网关进行的恶意行为
\end{itemize}
\end{block}
\end{frame}

更多命令参数请参考这里

集成在VScode中

to be continued…