本文记录了使用TeX
的一些心得,多参考自它处,分享给TeXers,欢迎大家交流。
TeXStudio部分
我喜欢的魔法注释:
% !TeX TXS-program:compile = txs:///latexmk/{}[-xelatex -synctex=1 -interaction=nonstopmode %.tex]
用于XeLaTeX
的编译方式% !TeX TXS-program:compile = txs:///latexmk/{}[-pdf -synctex=1 -interaction=nonstopmode %.tex]
用于pdfLaTeX
的编译方式% !TeX TS-program = pdflatex
,等号后面可以换成xelatex
等% !TeX root = ./your.tex
指定主文件% !TeX encoding = UTF-8
指定编码方式% !TeX spellcheck = en_US
指定语法检查的语言
参考资料 :OsbertWang/install_latex
VsCode部分
VsCode的LaTeX
插件LaTeX Workshop
已经很优秀了,之前的魔法注释还不支持指定参数,现在已经可以了。
首先可以给它的配置文件里面先加上默认的魔法注释,如下:
1 | "latex-workshop.latex.magic.args": [ |
这时候在主文件开头加上魔法注释% !TEX program = pdflatex
,运行时相当于pdflatex.exe -synctex=1 -interaction=nonstopmode -file-line-error "yourfile".tex
。
如果你还要用bibtex
编译参考文献的话在上一个魔法注释下面再加一个魔法注释% !BIB program = bibtex
,如果用的时biber
后面的参数也可以改成biber
。
但是你可能想让不同的文档编译时可以带不同的参数,这时候还可以再加一个魔法注释% !TEX options = -synctex=1 -interaction=nonstopmode -file-line-error "%DOC%"
,等号后面的参数可以自己按需求修改。
看到这里texify
和latexmk
用户两眼就发亮了。这样的话就不需要配置文件,直接用魔法注释实现你想要的编译。
下面来说明这两种的魔法注释怎么写。
对于texify
:
想用xelatex的话这么配置魔法注释
1
2% !TEX program = texify
% !TEX options = --synctex --pdf --engine=xetex --tex-option=\"-interaction=nonstopmode\" --tex-option=\"-file-line-error\" "%DOC%.tex"只用普通的pdflatex的话用下面这个魔法注释
1
2% !TEX program = texify
% !TEX options = --synctex --pdf --tex-option=\"-interaction=nonstopmode\" --tex-option=\"-file-line-error\" "%DOC%.tex"对于latexmk用户也是类似的
指定用pdflatex编译
1
2% !TEX program = latexmk
% !TEX options = -synctex=1 -interaction=nonstopmode -file-line-error -pdf "%DOC%"指定用xelatex编译
1
2% !TEX program = latexmk
% !TEX options = -synctex=1 -interaction=nonstopmode -file-line-error -xelatex "%DOC%"现阶段的魔法注释还有一定的缺点,也就是说
% !TEX options = .....
是把默认的魔法注释参数覆盖,而不是在上面添加参数。如果是添加参数的话,它可以写的更精简,而不是一大串,这样就可以在后面加上-pdf -xelatex --shell-escape
这类参数,极大方便大家的使用。
还有提醒的一点就是,目前阶段它的工作还不稳定,我断断续续测试过一段时间,发现一些问题。例如用latexmk
的魔法注释选择自己的参数时,需要在latexmk
后面加上一个空格,否则编译结果只出.dvi
文件。
我想大家应该也很难记住这么复杂的魔法注释,但是如果你和我一样很喜欢用的话,下面我提供一个用snippet
解决这个问题的简单方案。关于snippet
如何使用,最好的参考地址肯定是官方文档啦。
为了方便对魔法注释感兴趣用户的使用,我下面分享一下自己写的。如果你有更好的欢迎分享。
当然我写的未必符合你个人的使用爱好,请自己根据喜好调整。
代码段的设置可以放入用户自定义的tex.json
文件中,那样需要另外开启提示功能。也可以直接扔到该插件内部的latex.json
文件中。
对于使用latexmk
编译的用户,可以选用这个:
1 | "latexmk": { |
MiKTex
用户如果喜欢用texify
的,可以参考这个:
1 | "texify": { |
用普通编译方式的可以选择这个:
1 | "general": { |
下面给一个MWE:
1 | % !TEX program = texify |
1 | %这是shortbib.bib文件 |
如果你想用配置文件的话,下面我提供texify
和latexmk
的配置。至于其它的可以参考这里的配置。如果愿意看插件作者的英文文档当然更好啦。
1 | "latex-workshop.latex.tools": [ |
参考资料: James-Yu/LaTeX-Workshop/Compile#building-the-document
有趣的宏包
therefore
地址在这里输入\Threrfore 会得到同义的表达optidef
minted
展示代码很合适的宏包,编译时要加参数--shell-escape
filecontents
一个tex文件里面存放多个“文件”。
宏包加载的美学
geometry
的加载需要在fancyhdr
宏包前,否则会出现页眉的长度与页面内容的宽度不同。
你用的其它宏包没有特殊说明加载位置的话,hyperref
常常最后加载,否则很容易出现问题。
cleveref
宏包要在hyperref
宏包之后加载。
一些小命令
好看的圆圈注脚制作
1 | \usepackage{pifont} |
参考资料: LaTeX入门,刘海洋
。
普通的带圈数字制作
1 | \usepackage{tikz} |
参考资料: stackexchange
把Bib文件也放在主文件里,方便做MWE
1 | % !TeX TS-program = pdflatex |
参考资料: stackexchange
简单的中英文字体配置简单示例
1 | % !TeX TS-program = xelatex |
参考资源: stone-zeng.github.io
用tex把图片转化成pdf(并不能提高图片的质量)
1 | \documentclass{standalone} |