关于分开编写多个LaTeX⽂件的⼀点微⼩的总结【转载请注明出处】
2016/11/05
⽅法1:
按照这个⽹址()的说明,使⽤ \include
⽅法2:
在编写LaTeX⽂档的时候,由于⽂档的ction较多,或者ction的编写时间各不相同,我们可能碰到如下问题:
1、由于想分开编写各个ction
2、preamble太多,想专门弄⼀个⽂件放preamble
3、想⽤bibtex来⽣成参考⽂献
我分别参考了这个⼏个⽹页:,再结合⾃⼰的上⼿体会,给出下⾯这个(还凑合的)解决⽅案。
我们⾸先建⽴⼀个⽂件夹“project”,在下⾯分别创建“”⽂件“ctions”⽂件夹。在“”⾥⾯写⼊:
\documentclass[fleqn]{article}
\upackage{subfiles}
一年级认字\upackage{D:/My_Preamble} %必须是绝对路径,才能让各个ction*.tex在单独编译时使⽤到
短信诈骗
\title{This is title}
\author{Jay Chou}
\date{\today}
\begin{document}
\maketitle
Hello World!gequ
\subfile{ctions/ction1}
\subfile{ctions/ction2}
\bibliographystyle{unsrt}
\bibliography{D:/My_Reference} %必须是绝对路径。但各个ction*.tex单独编译时使⽤不到(这是⼀个缺点)
\end{document}
“”⽂件这样编写(⽂件名中不能有空格否则编译时会出错),并放到“ctions”⽂件夹⾥:
\documentclass[../]{subfiles} %两个点代表返回上⼀级菜单
恭贺新婚祝词
\newcommand{\AAA}{\textbf{abcdefg}} % 这个'\AAA'命令只在这个tex⽂件⾥起作⽤
\begin{document}
%From there on, type whatever you want.
\ction{This is ction 1}
Hello, this is ction 1.
\end{document}
其他的ction的tex⽂件照着这个格式写就⾏了。“My_preamble.sty”⽂件如下编写,并放到D盘⽬录下:
\ProvidesPackage{msqmypreamble}
\upackage{amsmath, amssymb, amsthm}
\upackage{cite}
%\upackage{graphicx, graphics} % Allows including images
% etc
% etc
% etc
%\tlength{\vofft}{-2.0cm}
%\tlength{\parskip}{0.2cm}
\newtheorem{thm}{Theorem} \tcounter{thm}{0}
\newcommand{\defn}{\overt{\Delta}{=}}
\newcommand{\st}{\textrm{~s.t.~}}
\newcommand{\supp}{\mathop{\rm supp}}
% etc
% etc
% etc
现在,把各个ction共同的preamble都写到“My_Preamble.sty”⽂件中,然后将这个⽂件放到⼀个路径下,然后在“”⽂件中像4⾏那样使⽤这个sty。为什么必须是绝对路径,这是为了让之后的各个“ction*.tex”⽂件也能找到这个⽂件在哪,从⽽使⽤⾥⾯的命令。在各
个“ction*.tex”⽂件中,你可以再附加⼀个本ction独有的preamble,就想第三⾏的“\AAA”那样。但这个“\AAA”只能在本tex⽂件中使⽤。
红薯英文然后是bibtex。各个“ction*.tex”在单独编译的时候⽆法找到参考⽂件,即使在“”中bib⽂件的路径是绝对路径。这算是⼀个⼩瑕疵(很惭愧)。将bib⽂件单独拿出来放在⼀个地⽅的作⽤是使得每次收集bibtex信息可以集中在⼀起。
之后,我们可以编译这个“”⽂件,得到包含各个ction的总⽂件,也可以单独编译各个“ction*.tex”⽂件,并且各个“ction*.tex”⽂件可以使⽤My_Preamble这个preamble,很⽅便。但不⾜之处是,单独编译各个“ction*.tex”⽂件时,若⽂件中应⽤了bib⽂件中的条⽬,输出结果是显⽰不出来的,之后在编译总⽂件时才能正确显⽰。
关于label的引⽤:各个“ction*.tex”内部最好不要使⽤同名的label标号(例如 \label{eq:1} ),使⽤相同的标号会冲突的。同时,各
个“ction*.tex”之间可以相互应⽤对⽅的标号,当编译“”时,这些相互引⽤的标号就会显⽰出来(单独编译某个“ction*.tex”显⽰不出来)。
最后是这个“subfiles.sty”⽂件,它的内容如下:
%% This is file `subfiles.sty',
%% generated with the docstrip utility.
亚运会开幕式
%%
%% The original source files were:
%%
%% subfiles.dtx (with options: `package')
%%
%% Copyright 2002 Federico Garcia
%%
采幽
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{subfiles}[2002/06/08 Federico Garcia]
\DeclareOption*{\PackageWarning{\CurrentOption ignored}}
\ProcessOptions
英语春节小报\RequirePackage{verbatim}
\newcommand{\skip@preamble}{%
\let\document\relax\let\enddocument\relax%
\newenvironment{document}{}{}%
\renewcommand{\documentclass}[2][subfiles]{}}
\newcommand\subfile[1]{\begingroup\skip@preamble\input{#1}\endgroup}
\endinput
%%
%% End of file `subfiles.sty'.
创建个txt⽂件,把如上代码复制进去,然后把txt⽂件的⽂件名改为“subfiles.sty”,放到装“”的⽂件就可以使⽤了。
写了这么多,应该能 +1s 吧,蛤蛤蛤!