在LaTeX的使用过程中,往往需要多个文件,甚至大量**文件相互支持和协作**,以完成最终PDF的编译。这些文件经过LaTeX编译引擎,按一定的规则编译后,生成最终的一个**独立的PDF文件**。
这与其他一些常见软件(如Word、Powerpoint等)的工作模式完全不同,在这些软件中,往往是将所有工作都集中在一个文件中进行处理。因此,LaTeX中使用到的文件的命名、组织与管理都需要有更多细节需要考虑。
##文件编码
所有*.tex、*.bib、*.sty、*.cls等纯文本文件源代码文件,请务必使用UTF-8编码。否则,可能在打开文件后或编译后的log文件中会出现著名的“烫烫烫”、“屯屯屯”、“锟斤拷”乱码问题。
##命名
###使用独立文件夹管理所有内容
由于排版一个PDF往往需要用到多个,甚至大量其他支持文件,并且在LaTeX的编译过程中也会产生`*.aux`、`*.toc`、`*.log`等辅助文件和日志文件。
因此,强烈每当开始一个新的排版任务,就建立一个**独立文件夹**来存储该任务相关的所有文件。
###文件名及其路径中不要使用空格和中文
由于LaTeX发行版是开源免费软件,类似TeXStudio的编辑器IDE也是开源免费软件,一般在处理文件名及其路径名时,往往无法正确解析带有空格和非英文的名称。因此,强烈建议在文件名及其路径中**不要使用空格和中文**。
另外,文件命名一定要具备自明性,禁止使用类似“a.tex”、“b.tex”、“c.bib”、“d.png”等这不知所云的文件命名。同时,文件名也不宜过长,个人建议使用“8.3规则”命名,即8个字符构成主文件名,3个字符构成后缀名。
建议:在多文件结构中,请将主控文件命名为main.tex。
##用子文件夹实现归类管理
为便于进行各类文件的管理和处理,应该将tex子文件、插图文件、文献数据库bib文件等**按不同类别存储在不同的文件夹中**。例如,对于一篇毕业学位论文的排版,一个建议的目录结构如下:
##文件使用
在使用这些文件时,一般需同时指定该文件的路径。需要强调的是**绝对不能使用绝对路径**,只使用当前文件夹及其子文件夹中的文件。
如果需要的文件在子文件夹中,则需要用“/”分割路径中的各级文件夹(禁止使用“\\\\”分割),如:
```tex
% 插入图片
\\includegraphics[width=0.5\\textwidth]{figs/chap01/fig01-01.png}
...
% 插入代码,用minted宏包排版C语言代码
\\inputminted{c}{codes/chap01/01helloworld.c}
```
对于插图,如果使用了graphicx宏包,则可以使用`graphicspath{{figs/}{pics/}}`指定插图所在的文件夹,如:
```tex
% 子文件中
% 插入图片
\\includegraphics[width=0.5textwidth]{chap01/fig01-01.png}
```
##多文件结构
在文档编写过程中,将复杂的内容切分成不同的子文件,然后用input或include载入子文件是一种常用的操作。这样,可以在每个子文件中仅关注少量内容,便于集中精力进行撰写,如:
```tex
% 导言区
% 载入需要的宏包
\\input{settings/packages.tex}
% 进行必要的设置
\\input{settings/format.tex}
...
\\begin{document}
\\include{contents/chap00-abs.tex}
\\include{contents/chap01-intro.tex}
...
\\include{contents/app03-resume.tex}
\\end{document}
```
同时,可以通过用“%”注释操作,将暂时不关注的input或include语句注释,以减少当前参与编译的内容,加快编译速度或是用“注释大法”缩小错误定位范围,以定位错误、分析错误和解决错误,如:
```tex
...
\\begin{document}
\\include{contents/chap00-abs.tex}
%\\ include{contents/chap01-intro.tex}
% ...
% \\include{contents/app03-resume.tex}
\\end{document}
```
注释后后,则只需要关注“chap00-abs.tex”文件中的内容,
在多文件结构的子文件中,可以使用魔法注释指定主文件,从而实现多带带打开子文件也能编译的目的,如:
```TeX
% 其它内容
...
% 魔法注释,指定主控文件为上一级文件夹中的“main.tex”文件
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "../main.tex"
%%% End:
```
显然,如果主控文件采用“main.tex”命名,在各类子文件中用魔法注释指定主控文件及路径,则可以构造一个万能的LaTeX撰写文件结构框架。以后,每创建一个新的项目,只需要将该框架拷贝一下就可以了。
Happy LaTeXing!
手动点赞
原来是在这,麻烦大佬回答一下这个问题 https://wenda.latexstudio.net/q-1269.html