Tex环境, Tex Live

建议完整安装, 可以避免自己再去安装新的包.

  • Windows
    • 不用说, 傻瓜式安装.
  • Ubuntu

    • 参见: https://stone-zeng.github.io/2018-05-13-install-texlive-ubuntu/
    • 可以考虑装到自己指定的目录里, 避免过度占用根分区空间

      编辑环境, VSCode

      可以选择的编辑环境有很多, 这里我选择VSCode, 因为这样可以避免装太多的软件, 这也是高级文本编辑工具的好处, 插件系统可以提供丰富的功能支持.
      主要使用的插件:
  • LaTeX Workshop, 提供完整的LaTeX编辑支持. 包括编译和预览支持. (VSCode可以使用标签页来预览PDF)

  • [可选,一般第一个就够了] LaTeX Snippets, 提供更多的LaTeX代码段支持

主要配置代码:

  1. // ======================== LaTeX 设置 BEGIN ========================
  2. // https://zhuanlan.zhihu.com/p/136931926
  3. // https://github.com/lartpang/myoptions/blob/master/vscode/settings.json#L72
  4. "latex-workshop.bibtex-format.tab": "tab",
  5. "latex-workshop.latex.autoBuild.run": "never",
  6. "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": false,
  7. "latex-workshop.bind.altKeymap.enabled": true,
  8. "latex-workshop.view.pdf.viewer": "tab",
  9. "latex-workshop.intellisense.package.enabled": true,
  10. "latex-workshop.intellisense.unimathsymbols.enabled": true,
  11. "latex-workshop.intellisense.update.aggressive.enabled": true,
  12. "latex-workshop.latex.autoClean.run": "onBuilt",
  13. "latex-workshop.latex.recipe.default": "lastUsed",
  14. "latex-workshop.latexindent.path": "latexindent",
  15. // 这是一些独立的编译选项,可以作为工具被编译方案调用
  16. "latex-workshop.latex.tools": [
  17. {
  18. "name": "xelatex",
  19. "command": "xelatex",
  20. "args": [
  21. "-synctex=1",
  22. "-interaction=nonstopmode",
  23. "-file-line-error",
  24. "-pdf",
  25. "%DOCFILE%"
  26. ]
  27. },
  28. {
  29. "name": "latexmk",
  30. "command": "latexmk",
  31. "args": [
  32. "-pdf",
  33. "-synctex=1",
  34. "-file-line-error", // 使报错输出文件和行号
  35. "-halt-on-error", // 使编译遇到错误时立即停止
  36. "-interaction=nonstopmode",
  37. "%DOCFILE%"
  38. ],
  39. "env": {}
  40. },
  41. {
  42. "name": "pdflatex",
  43. "command": "pdflatex",
  44. "args": [
  45. "-synctex=1",
  46. "-interaction=nonstopmode",
  47. "-file-line-error",
  48. "%DOCFILE%"
  49. ]
  50. },
  51. {
  52. "name": "bibtex",
  53. "command": "bibtex",
  54. "args": [
  55. "%DOCFILE%"
  56. ]
  57. }
  58. ],
  59. "latex-workshop.latex.recipes": [
  60. {
  61. "name": "latexmk ",
  62. "tools": [
  63. "latexmk"
  64. ]
  65. },
  66. {
  67. "name": "xelatex",
  68. "tools": [
  69. "xelatex"
  70. ]
  71. },
  72. {
  73. "name": "pdflatex",
  74. "tools": [
  75. "pdflatex"
  76. ]
  77. },
  78. {
  79. "name": "pbpp",
  80. "tools": [
  81. "pdflatex",
  82. "bibtex",
  83. "pdflatex",
  84. "pdflatex"
  85. ]
  86. },
  87. {
  88. "name": "xbxx",
  89. "tools": [
  90. "xelatex",
  91. "bibtex",
  92. "xelatex",
  93. "xelatex"
  94. ]
  95. }
  96. ],
  97. // 清空中间文件
  98. "latex-workshop.latex.clean.fileTypes": [
  99. "*.aux",
  100. "*.blg",
  101. "*.idx",
  102. "*.ind",
  103. "*.lof",
  104. "*.lot",
  105. "*.out",
  106. "*.toc",
  107. "*.acn",
  108. "*.acr",
  109. "*.alg",
  110. "*.glg",
  111. "*.glo",
  112. "*.gls",
  113. "*.ist",
  114. "*.fls",
  115. "*.log",
  116. "*.fdb_latexmk",
  117. "*.bcf",
  118. "*.run.xml",
  119. "*.synctex.gz"
  120. ],
  121. "latex-workshop.latexindent.args": [
  122. "-c",
  123. "%DIR%/",
  124. "%TMPFILE%",
  125. "-l=/home/lart/ScriptsLib/SomeConfigFiles/latexindent_cfg.yaml"
  126. ],
  127. // ======================== LaTeX 设置 END ========================

每次使用, 可以使用VSCode中, 你未来会最高频次使用的快捷键 CTRL-SHIFT-P , 输入 recipe 会出现对应的标记为如下所示:
image.png
确定后会出现:
image.png
这些对应的就是配置文件里设置的那几个 recipe , 如果有文献引用(即使用 ~~`bibtex` ), 则建议使用后两个~~(直接使用第一个latexmk,更方便). 选定后回车即可编译.
在VSCode左下角会出现对应的进度条, 全部完成后, 即可通过 CTRL-SHIFT-P 输出 pdf 选择预览功能即可在新的标签页进行pdf的预览.
image.png
预览主要基于前两个命令, 但是前两个似乎功能一致, 我也没发现差异, 所以直接选择第一个即可.
或者直接使用侧边栏中的预览功能:
image.png
(这里展示侧边栏展示的功能,基本在前面使用的快捷键唤出的指令中都有)。

格式化支持, latexindent

LaTeX Workshop本身也支持格式化, 但是太慢了, 有时候会半天没反应.
我建议直接使用下面的工具.
一般完整安装后都会带有一个包: latexindent . 这个可以对Tex文件进行格式化, 而且你也可以自定义格式化设置. 主要使用的指令是:
latexindent -w -l fileBasename .
为了在VSCode中方便的调用, 我使用的是VSCode的task功能. (其实终端直接调用更方便些)
image.png
通过配置任务, 我们编写如下内容:

  1. {
  2. // See https://go.microsoft.com/fwlink/?LinkId=733558
  3. // for the documentation about the tasks.json format
  4. "version": "2.0.0",
  5. "tasks": [
  6. {
  7. "label": "LatexFormatter",
  8. "type": "shell",
  9. "command": "latexindent -w -l ${fileBasename}",
  10. "problemMatcher": []
  11. }
  12. ]
  13. }

从而我们可以通过 CTRL-SHIFT-P -> >(输入) task :
image.png
选择弹出来的任务, 执行即可.

错误提示

虽然编译错误总是一大堆, 但是你仔细翻看, 总是会只想你文件中的特定代码块, 比如说表哥代码的最后一个花括号…
这时候就要发挥你的耐心, 仔细想想, 是不是有些符号需要在数学环境中使用, 而你直接在文本中写了等等… 这个就得看经验了…

公式与符号

这里推荐两个方便搜索各种基本符号的地方:

  • LaTeX Workshop中侧边栏里提供了符号分类搜索功能:

image.png

其他的一些公式编辑网站: