我正在寻找一个程序来递归内联\input{}
LaTeX 文件中的所有命令。通过“递归”,我的意思是迭代地进行内联,直到\input{}
最终的 LaTeX 文件中没有任何命令。
我已经遇到过flatten包。但是,出于某种原因,我的 TeXLive 发行版没有安装它。当我执行命令sudo tlmgr show flatten
时,我收到错误消息:tlmgr: cannot find flatten
. 因此,我正在寻找更标准且更易于安装的替代工具。
你为什么不直接从 CTAN(你在问题中给出的链接)下载flatten并手动安装?
编辑:应用以下补丁来修复构建错误。
commit 4d62b79c5145d2b5556487b483d92df797564a18
Author: Ken Bloom <kbloom@gmail.com>
Date: Thu May 27 12:45:49 2010 -0500
fix build errors
diff --git a/flatten.l b/flatten.l
index 85ffee5..da12d2d 100644
--- a/flatten.l
+++ b/flatten.l
@@ -62,6 +62,7 @@ char FILE_DATE[] = "October 1995";
*/
+#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
@@ -641,7 +642,7 @@ FILE *f3;
char *strsave(s)
char *s; /* string to be saved */
{
- char *p, *malloc();
+ char *p;
if ((p = malloc(strlen(s)+1)) != NULL) {
strcpy(p, s);
@@ -834,4 +835,4 @@ void initialise_senv()
strcpy(path_sep," :;"); /* path seperators */
dir_cat = '/'; /* directory catenation char */
senv_debug = 0; /* debugging off */
-} /* end INITIALISE_SENV */
\ No newline at end of file
+} /* end INITIALISE_SENV */
diff --git a/getopt.c b/getopt.c
index 5131cfa..b35cf51 100644
--- a/getopt.c
+++ b/getopt.c
@@ -6,6 +6,7 @@
/* getopt() from Don Libes "Obfuscated C" */
+#include <string.h>
#include <stdio.h>
/* getopt() -- parse command line arguments */
@@ -21,10 +22,6 @@
fprintf(stderr, s, (unsigned)strlen(s));\
fprintf(stderr, errbuf, 2);}
-extern int strcmp();
-extern char *strchr();
-extern int strlen();
-
int opterr = 1; /* getopt prints errors if this is one */
int optind = 1; /* token pointer */
int optopt; /* option character passed back to user */
diff --git a/srchenv.c b/srchenv.c
index fa3e8d8..f8acd48 100644
--- a/srchenv.c
+++ b/srchenv.c
@@ -4,6 +4,7 @@
/* strtol() from C standard library (not all compilers find this) */
+#include <string.h>
#include <stdio.h>
或者,您可以使用FLaP。它内联\input
和\include
指令,并支持使用\includeonly
. 此外,它会移动图形文件,以便生成的“合并”LaTeX 项目包含在单个平面目录中。它支持\graphicspath
和\includesvg
处理 SVG、EPS 和 PDF 图像。