-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlatexFunctions.R
115 lines (89 loc) · 3.6 KB
/
latexFunctions.R
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#############################################################
# ExecuteJMetal ::R functions::
#
# Author: Lucas Prestes [email protected]
#
#############################################################
# LATEX FUNCTIONS
#############################################################
latexCreate <- function(name){
write("", name,append=FALSE)
return (name)
}
latexHeader <- function(OutputFile) {
write("\\documentclass{article}\n", OutputFile, append=TRUE)
write("\\usepackage[a4paper,left=2.0cm,top=2.5cm,bottom=2.5cm,includeheadfoot,width=16cm]{geometry}\n", OutputFile, append=TRUE)
write("\\usepackage{amssymb}", OutputFile, append=TRUE)
write("\\usepackage{colortbl}", OutputFile, append=TRUE)
write("\\usepackage[table*]{xcolor}", OutputFile, append=TRUE)
write("\\xdefinecolor{gray95}{gray}{0.65}", OutputFile, append=TRUE)
write("\\xdefinecolor{gray25}{gray}{0.8}\n", OutputFile, append=TRUE)
write("\\title{Tests}\n", OutputFile, append=TRUE)
write("\\begin{document}", OutputFile, append=TRUE)
write("\\maketitle\n", OutputFile, append=TRUE)
write("\\section{Tables}\n", OutputFile, append=TRUE)
}
latexNewSection <- function(file, section){
write("\n\\newpage",file,append=TRUE)
write(paste("\\section{",section,"}\n",sep=""), file, append=TRUE)
}
latexTail <- function(file) {
write("\\end{document}", file, append=TRUE)
}
latexTableHeader <- function(OutputFile, caption, label, tabularString, latexTableFirstLine) {
write("\\begin{table}[!h]", OutputFile, append=TRUE)
write(paste("\\caption{",caption,"}",sep=""), OutputFile, append=TRUE)
write(paste("\\label{Table:",label,"}",sep=""), OutputFile, append=TRUE)
write("\\centering", OutputFile, append=TRUE)
write("\\begin{scriptsize}", OutputFile, append=TRUE)
write(paste("\\begin{tabular}{",tabularString,"}",sep=""), OutputFile, append=TRUE)
write(latexTableFirstLine, OutputFile, append=TRUE)
write("\\hline ", OutputFile, append=TRUE)
}
latexWinnerTableLine <- function(file, line, best){
str <- paste(line[1]," & ",sep="")
for(i in 1:(length(best)-1)){
if(best[i]){
str <- paste(str, "\\cellcolor{gray95}", line[i+1], " & ",sep="")
}else{
str <- paste(str, line[i+1], " & ",sep="")
}
}
if(best[length(best)]){
str <- paste(str, "\\cellcolor{gray95}", line[length(best)+1], "\\\\")
}else{
str <- paste(str, line[length(best)+1], "\\\\",sep="")
}
write(str, file, append=TRUE)
}
latexTableTail <- function(file) {
write("\\hline", file, append=TRUE)
write("\\end{tabular}", file, append=TRUE)
write("\\end{scriptsize}", file, append=TRUE)
write("\\end{table}\n\n", file, append=TRUE)
}
latexWinnersTable <- function(file, problem, algorithms){
instances <- setBenchmark(problem)
winners <- countWinners(algorithms,instances)
caption <- paste("Winners in \\emph{benchmark} ",problem,sep="")
label <- paste("Table:winners.",problem, sep="")
#latexTableHeader(file, problem, caption, label, "llll","Algorithm & HV & IGD & $\\epsilon$\\\\")
latexTableHeader(file, caption, label, "llll","Algorithm & HV & IGD & $\\epsilon$\\\\")
for(w in 1:nrow(winners)){
cat(w,":",ncol(winners))
best <- c(winners[w,2]==max(winners[,2]),winners[w,3]==max(winners[,3]),winners[w,4]==max(winners[,4]))
print(best)
latexWinnerTableLine(file,winners[w,], best)
}
latexTableTail(file)
}
# Pass the algorithms and benchmarks to put in the tables
winnerTables <- function(algorithms, benchmarks){
file <- latexCreate("result_winner_tables.tex")
latexHeader(file)
latexNewSection(file, "Winner Tables")
for(benchmark in benchmarks){
latexWinnersTable(file, benchmark, algorithms)
}
latexTail(file)
}