-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtexToPdf.c
83 lines (68 loc) · 2.65 KB
/
texToPdf.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "texToPdf.h"
STATUS compileTexToPdf(const char* outputFileName, bool displayPdflatexStdout, bool keepTmpFiles)
{
char* texFileName = addTexExtension(outputFileName);
if (texFileName == NULL)
{
ERROR_MSG("compileTexToPdf", "Couldn't get the tex file name without extension for the pdf output. NO PDF OUTPUT WILL BE PRODUCED.");
return RETURN_FAILURE;
}
//==================Make command=================================
char* command;
if (displayPdflatexStdout)
{
command = malloc( (strlen(PDFLATEX_COMMAND)+strlen(texFileName)+1)*sizeof(char) );
sprintf(command, "%s%s", PDFLATEX_COMMAND, texFileName);
}
else
{
command = malloc( (strlen(PDFLATEX_COMMAND_REDIRECT)+strlen(texFileName)-1)*sizeof(char) );
sprintf(command, PDFLATEX_COMMAND_REDIRECT, texFileName);
}
puts("\nCompiling tex file to pdf file...");
printf("%s\n\n", command);
system(command);
free(command);
free(texFileName);
if (!keepTmpFiles)
{
//=====================Delete temporary files==========================
deleteTemporaryFiles(outputFileName);
}
return RETURN_SUCCESS;
}
void deleteTemporaryFiles(const char* outputFileName)
{
char* fileNameToDelete = malloc( (strlen(outputFileName)+5)*sizeof(char) );
sprintf(fileNameToDelete, "%s%s", outputFileName, ".aux");
if (deleteFile(fileNameToDelete) != RETURN_SUCCESS)
{
WARNING_FUNC("compileTexToPdf", "There seemed to have a problem deleting temporary .aux file");
}
sprintf(fileNameToDelete, "%s%s", outputFileName, ".out");
if (deleteFile(fileNameToDelete) != RETURN_SUCCESS)
{
WARNING_FUNC("compileTexToPdf", "There seemed to have a problem deleting temporary .out file");
}
sprintf(fileNameToDelete, "%s%s", outputFileName, ".log");
if (deleteFile(fileNameToDelete) != RETURN_SUCCESS)
{
WARNING_FUNC("compileTexToPdf", "There seemed to have a problem deleting temporary .log file");
}
sprintf(fileNameToDelete, "%s%s", outputFileName, ".nav");
if (deleteFile(fileNameToDelete) != RETURN_SUCCESS)
{
WARNING_FUNC("compileTexToPdf", "There seemed to have a problem deleting temporary .nav file");
}
sprintf(fileNameToDelete, "%s%s", outputFileName, ".snm");
if (deleteFile(fileNameToDelete) != RETURN_SUCCESS)
{
WARNING_FUNC("compileTexToPdf", "There seemed to have a problem deleting temporary .snm file");
}
sprintf(fileNameToDelete, "%s%s", outputFileName, ".toc");
if (deleteFile(fileNameToDelete) != RETURN_SUCCESS)
{
WARNING_FUNC("compileTexToPdf", "There seemed to have a problem deleting temporary .toc file");
}
free(fileNameToDelete);
}