LaTeX的安装与使用

一、Ubuntu上的安装

  系统Ubuntu18,准备使用支持中文的XeLaTex。网络上有很多差不多的教程,基本上是XeLaTex版本的教程。

1. 安装

  由于texlive-full比较大,这里又有流量限制,所以就参考了这篇文章,只安装了我需要的部分:

# 1.
apt-cache search latex          # 可以看到许多包,可以看看需要安装哪些包;选择安装texlive-latex-base, 它的描述是:Tex Live: Basic LaTex packages. sudo apt install texlive-latex-base # 这样就安装好Latex了,可以直接使用。但编译中文时,由于没有安装CJK中文环境,会提示找不到CJK包
# 2.
apt-cache search cjk           # 有许多关于CJK 环境的包;如:latex-cjk-all
sudo apt install latex-cjk-all    # 安装中文环境,它的描述是:Installs all LaTex CJK packages.(Chinese,Japanese,Korea)
# 3. 有些.sty文件可能没有安装,例如:lastpage.sty. 根据Latex输出的错误信息,使用下面的命令来查找相应的包:
apt-cache search lastpage        # 注意不要加.sty文件后缀
sudo apt install texlive-latex-extra # 描述:texlive-latex-extra - TeX Live: LaTeX supplementary packages

# 完成上面的这三步,可以完全满足平时的应用需求。如果以后需要使用到新的包,可以使用上面第三步的方法来查找相应的安装包,并选择安装即可
sudo apt install texmaker      # 安装texmaker程序,它是一个图形化界面的Tex书写,编译,生成,预览集合为一体的程序。与Windows操作系统中的WinTex界面很相似
sudo apt install texlive-xete     # XeLaTex
sudo apt install texlive-publishers # Texlive-publishers-support for publishers, theses, standards, conferences, etc.


# 使用apt-cache show texlive-publishers命令可以看到它所支持的CTAN包的信息

 

  要使用XeLaTex,打开TeXMaker - options - configure texmaker - commands,将LaTeX那一行的latex改为xelatex即可

 

 
二、Windows上的安装
  使用TexLive 2021 + VSCode
 
1. 安装TexLive
  TexLive是LaTex文档的编译器,相当于Java中的JDK。可以从清华镜像下载,快一些。  ——清华镜像
  下载texlive2021.iso文件,下载完后,打开光盘镜像文件,双击 install-tl-windows.bat 即可开始安装。
其中,安装路径需为全英文路径,TexWorks是自带的tex编辑器,可以不安装。
  安装完毕后,在cmd中输入 latex --version 可以看到具体版本信息。
 
注:
上面是直接安装的,则latex只在用户的环境变量里,不在系统的环境变量中;
如果要所有用户都课用,要将 用户环境变量Path中latex的相关项 添加到 系统环境变量的Path 变量中。  ——参考博客
 
  重启VSCode.
 
2. 配置VSCode
  安装插件 LaTex Workshop。
  打开配置文件 settings.json,并在最外层花括号内加入如下内容:  ——参考知乎
"latex-workshop.latex.recipes": [{
        "name": "xelatex",
        "tools": [
            "xelatex"
        ]
    },
    {
        "name": "xelatex ->bibtex -> xelatex*2",
        "tools": [
            "xelatex",
            "bibtex",
            "xelatex",
            "xelatex"
        ]
    },
    {
        "name": "pdflatex",
        "tools": [
            "pdflatex"
        ]
    }
],
"latex-workshop.latex.tools": [{
        "name": "xelatex",
        "command": "xelatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "%DOC%"
        ]
    },
    {
        "name": "pdflatex",
        "command": "pdflatex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "%DOC%"
        ]
    },
    {
        "name": "bibtex",
        "command": "bibtex",
        "args": [
            "%DOCFILE%"
        ]
    }
],
"latex-workshop.latex.autoClean.run": "onBuilt",     // 自动清除辅助文件
"latex-workshop.latex.autoBuild.run": "never"        // 禁止保存时自动编译

 

  之后即可使用。编译的快捷键为 ctrl + alt + b,更改参考——博客

 

 

三、 语法

1. 基本语法

  控制序列:是以反斜杠\开头,以第一个空格或非字母 的字符结束的一串文字,他们并不被输出,但是他们会影响输出文档的效果
如:\documentclass{article}的控制序列是documentclass,它后面紧跟着的{article}代表这个控制序列有一个必要的参数,该参数的值为article. 这个控制序列的作用,是调用名为 “article” 的文档类

控制序列begin,这个控制序列总是与end成对出现。这两个控制序列以及他们中间的内容被称为“环境”;他们之后的第一个必要参数总是一致的,被称为环境名。只有在 “document” 环境中的内容,才会被正常输出到文档中去或是作为控制序列对文档产生影响

\begin{document}\documentclass{article}之间的部分被称为导言区。导言区中的控制序列,通常会影响到整个输出文档
 
2. 插入多个子图时,默认会给子图编号为 (a), (b) ...,若要去掉这些编号可以使用    ——参考 so 最高赞解
\begin{figure}
  \captionsetup[subfigure]{labelformat=empty}      % 设置关闭子图编号
  \begin{subfigure}{.5\textwidth} \centering
    \includegraphics[height=3cm]{example-image-a}
    \caption{Test subfigure 1}              % 图注没有编号(a),为:Test subfigure 1
  \end{subfigure}%
  \begin{subfigure}{.5\textwidth} \centering
    \includegraphics[height=3cm]{example-image-b}
    \caption{Test subfigure 2}
  \end{subfigure}%
  \caption{Two subfigures}
\end{figure}

 

1)问题1:按网上的方法用includegraphics添加图片,总是失败(不显示图片),并提示xdvipdfmx:fatal:file ended prematurely
思路1:是xdvipdfmx的问题,根据网上的答案,它好像对有些东西不支持,可以替换为xdv2pdf,而xdv2pdf只有os x里面有。。。
思路2:更换更先进的lualatex(也支持Unicode),安装却提示错误,因为使用了名为dip3.3.png的图片,而它识别第一个点,导致无法识别类型后缀(lua确实更先进,XeLaTex都不知道为什么错了)
解决:将图片名更正为dip3_3.png,用lualatex或XeLaTex都可以正确生成pdf。
 
3. 首行缩进问题
  在section或subsection后面的正文第一行,默认没有缩进,如果要添加缩进,可以在正文前添加如下指令,2.0em对应2个文字宽,可以自行调节
\hspace{2.0em}正文。。。

 

4. 设置bicaption的编号前缀

下面的代码是在中文论文模式中,设置第二个题注的名字分别为英文:Table、Figure、Algorithm

\usepackage{ctex} %引入CTEX宏包
\usepackage{caption}
\usepackage{bicaption}
\captionsetup[figure][bi-second]{name=Figure} %设置图的英文编号前缀
\captionsetup[table][bi-second]{name=Table}   %设置表的英文编号前缀

%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareCaptionOption{bi-first}[]{}% 1st language
\DeclareCaptionOption{bi-second}[]{% 2nd language
    \def\tablename{Table}  % 表
    \def\figurename{Figure} % 图
    \def\algname{Algorithm} % 算法
}
\captionsetup[bi-first]{bi-first}%
\captionsetup[bi-second]{bi-second}%

  

5. 伪代码块

algorithmic 包:REQUIRE等控制词需要大写

algorithmicx 包:Require等控制词首字母大写即可

\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{color}    % 颜色包

\begin{algorithm}
    \caption{Calculate $y = x^n$} 
    \label{alg:alg1}
    \begin{algorithmic}[1]          % 给代码行添加编号
        \REQUIRE $n \geq 0 \vee x \neq 0$ % 输入
        \ENSURE $y = x^n$              % 输出
        \STATE $y \leftarrow 1$           % 初始化
        \IF{$n < 0$} 
            ... 
        \ELSE 
            ...
        \ENDIF
     \color{red}               % 后续行均标为红色
       \FOR {$a $ to $b$}
      ...
     \ENDFOR
       \color{black}             % 后续行均标为黑色
        \WHILE{$N \neq 0$} 
            ...
        \ENDWHILE
        {\color{red} \STATE ...}      % 标红当前行
    \end{algorithmic}
\end{algorithm}

若要改为中文可以用下面的命令的编译结果由 “Input” 改为 “输出:”:

\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}

 

6. 在表格底部添加注释

下面的方法是在最后添加一行,但不添加 \hline,就可以显得该行不在表格中

注意,注释行的列数应该和表中所有列数相同(也可以按情况调整),这样注释行才不会影响表格中的列宽,也不会导致竖线穿到最后一根横线

—— 因为\end{tabular} 之前的都是表格元素,所以注释本质也是表内的元素,会影响整个表格的布局  ——参考博客

\begin{table}[!htbp] \centering \footnotesize% fontsize
    \setlength{\tabcolsep}{4pt}
    \bicaption{\quad cn} {\quad en}
    \label{tab:results}
    \begin{tabular}{ccccccccc}
        \hline
        A & B & C\\
        \hline
        1 & 0 & 2  \\
        \hline
        \multicolumn{3}{l}{* Our }  % 在最后一行下面添加注释“* Our”
    \end{tabular} \\
\end{table}

 

 7. 表格内文字换行

可以用makecell命令,结合 \\ 可以直接实现换行——参考博客

或者用p{30pt}这样的命令指定列宽,超过列宽的文字也会换行——参考博客——该博客还介绍了如何将多个表格并排展示(minipage和tabular结合即可)

\begin{table}[!htbp] \centering
    \bicaption{\quad cn} {\quad en}
    \label{tab:esults}
    \begin{tabular}{ccccccccc}
        \hline
        A & B & \makecell{C/ \\ D} \\    % C/D
        1 & 0 & 2  \\
        \hline
    \end{tabular} \\
\end{table}

 

 
posted @ 2020-10-02 12:37  谷小雨  阅读(847)  评论(0编辑  收藏  举报