前言
写毕业论文的时候,代码该怎么展示一直很纠结。一开始用的Codesnap插件截图,但导师说不要过多的展示源代码,可以考虑以伪代码形式展示。Word下想要写一份规范的伪代码也不是容易的事,所以不得已还是转向了Latex。
本篇整体上参考搭建 LaTeX 舒适写作环境(VSCode)一文,可能因为安装的Latex编译器不相同,因此再配置文件上略有改动。本文配置流程在Windows 11下测试通过。
一、Latex安装
-
Latex像是一种独立的语言,所以我们需要装对应的编译器。这里推荐使用MiKTex,相对而言比较精简。使用安装程序(installer)安装会自动配置环境变量,省去我们一个步骤。 -
除Latex编译器外,建议再安装一个latexindent,VSCode中对Latex进行代码格式化(缩进)需要用到它。这里注意需要下载压缩包,不要下载那个单独的可执行文件,解压后需要手动把latexindent文件夹加入环境变量PATH中。
二、VSCode配置
- 第一步自然是安装插件,大家普遍使用Latex Workshop
- 安装之后需要我们对其进行配置,主要是设置编译选项。
ctrl+, 打开VSCode的设置面板,右上角点击“打开设置”进入settings.json配置文件。 - 在其中加入以下两对键值:(相比参考博客,我把xelatex参数中的"-pdf"删除了,否则会报错)
"latex-workshop.latex.tools": [
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
},
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
],
"latex-workshop.latex.recipes": [
{
"name": "xelatex",
"tools": [
"xelatex"
]
},
{
"name": "xelatex -> bibtex -> xelatex*2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
}
]
- 重启VSCode,新建一个
.tex 文件,你应当可以正确的进行编译、格式化等操作了。
三、常见问题
spawn xelatex ENOENT 报错。这个错误的原因是Latex Workshop找不到你latex编译器的环境变量。如果你是按照我的流程走下来,在安装完MikTex和latexindent后最好进行一次重启。如果你安装的是其他latex编译器,那么请确认好环境变量配置无误。- 在使用
\usepackage 导入模块时,可能会提示你需要安装,让其安装即可。 - 编译时遇到其他任何报错,建议打开日志看一看,多数情况是语法错误。
四、Latex示例
OK,现在我们可以尝试写一份伪代码看看效果了!
\def\SetClass{article}
\documentclass{\SetClass}
\usepackage[ruled,linesnumbered]{algorithm2e}
\begin{document}
\begin{algorithm}
% setcounter用来设置计数器起始位置,会自动加1。
% 故该示例从Algorithm 1开始
\setcounter{algocf}{0}
\SetKwFunction{QuickSort}{QuickSort}
\SetKwFunction{Partition}{Partition}
\caption{QuickSort}\label{algorithm}
\KwData{$A, low, high$}
\KwResult{sorted array $A$}
\tcp*[h]{Array A, Range-left low, Range-right high}
\uIf{$low < high$}{
$p\leftarrow \Partition{A, low, high}$\;
$\QuickSort{A, low, p-1}$\;
$\QuickSort{A, p+1, high}$\;
}
\end{algorithm}
\begin{algorithm}
\SetKwFunction{swap}{swap}
\caption{Partition}\label{algorithm}
\KwData{$A, low, high$}
\KwResult{pivot index $j$}
\tcp*[h]{Array A, Range-left low, Range-right high}
$pivot\leftarrow A[high]$\;
$i\leftarrow low$\;
\For{$j=low$ to $high-1$}{
\uIf{$A[j]<=pivot$}{
\swap{$A[i]$, $A[j]$}\;
$i\leftarrow i+1$\;
}
}
\swap{$A[i]$, $A[high]$}\;
\Return{i}\;
\end{algorithm}
\end{document}
上例在我们配置的环境中效果如下:
保存会自动进行编译,因此我们可以达到几乎实时预览的效果。除了Latex语法写起来很怪以外,整套编写环境还是很完美的。
|