130 lines
3.4 KiB
Python
130 lines
3.4 KiB
Python
#!/usr/bin/python
|
|
#
|
|
import sys, os
|
|
from subprocess import Popen, PIPE
|
|
|
|
if len(sys.argv) < 2:
|
|
print ("Something is missing! Please provide filename")
|
|
exit(1)
|
|
|
|
replaces = [
|
|
{
|
|
"replace" : "\section*{Abkürzungsverzeichnis}",
|
|
"with" :"\section{Abkürzungsverzeichnis}",
|
|
},
|
|
{
|
|
"replace": "\section*{Literaturverzeichnis}\label{bibliography}}",
|
|
"with": "\section{Literaturverzeichnis}\label{bibliography}}"
|
|
},
|
|
|
|
{
|
|
"replace" : "\\addcontentsline{toc}{section}{Literaturverzeichnis}",
|
|
"with": ""
|
|
},
|
|
{
|
|
"replace" : "\\addcontentsline{toc}{section}{Abkürzungsverzeichnis}",
|
|
"with": ""
|
|
},
|
|
{
|
|
"replace" : "\hypertarget{bibliography}{%",
|
|
"with": """% --------------------------------------------------------------
|
|
% Verzeichnisse
|
|
% --------------------------------------------------------------
|
|
\pagebreak % wird benötigt um den header erst auf der folgeseite beginnen zu lassen.
|
|
\lhead{} % remove the left part of header
|
|
|
|
% Nachspann
|
|
\\renewcommand{\\thesection}{\Roman{section}}
|
|
\\renewcommand{\\theHsection}{\Roman{section}}
|
|
\setcounter{section}{1}
|
|
\pagenumbering{Roman}
|
|
\setcounter{page}{3}
|
|
|
|
\makeatletter
|
|
\\renewcommand\listoffigures{%
|
|
\section{\listfigurename}%
|
|
\@mkboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}%
|
|
\@starttoc{lof}%
|
|
}
|
|
\\renewcommand\listoftables{%
|
|
\section{\listtablename}%
|
|
\@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}%
|
|
\@starttoc{lot}%
|
|
}
|
|
\makeatother
|
|
|
|
|
|
\\rhead{LITERATURVERZEICHNIS}
|
|
|
|
|
|
\hypertarget{bibliography}{%"""
|
|
},
|
|
{
|
|
"replace" : """\end{CSLReferences}
|
|
|
|
% --------------------------------------------------------------
|
|
% Verzeichnisse
|
|
% --------------------------------------------------------------
|
|
\pagebreak % wird benötigt um den header erst auf der folgeseite beginnen zu lassen.
|
|
\lhead{} % remove the left part of header
|
|
|
|
|
|
% Nachspann
|
|
\\renewcommand{\\thesection}{\Roman{section}}
|
|
\\renewcommand{\\theHsection}{\Roman{section}}
|
|
\pagenumbering{Roman}
|
|
|
|
% Pagebreak after each Section
|
|
%\let\oldsection\section
|
|
%\\renewcommand\section{\clearpage\oldsection}
|
|
|
|
%\setcounter{section}{2}
|
|
%\setcounter{page}{2}
|
|
|
|
% --------------------------------------------------------------
|
|
% Abkürzungsverzeichnis
|
|
% --------------------------------------------------------------""",
|
|
"with": " "
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
filename = sys.argv[1]
|
|
|
|
try:
|
|
ffile = open(filename,"r")
|
|
except FileNotFoundError:
|
|
print( "Du dumm? File gibts nicht :O ...")
|
|
exit (1)
|
|
|
|
filestr = ffile.read()
|
|
|
|
outfile = open(filename + '.fixed', "w")
|
|
|
|
|
|
for replacer in replaces:
|
|
print ( "replace ", replacer["replace"] , " ---> ", replacer["with"] )
|
|
filestr = filestr.replace(replacer["replace"], replacer["with"])
|
|
|
|
|
|
print(filestr , file=outfile)
|
|
|
|
|
|
pdflatexcall = ["pdflatex","--interaction=batchmode", filename + '.fixed', "2>&1 > /dev/null"]
|
|
|
|
print ("Calling pdflatex 3 times now...")
|
|
print ("Commandline: ", pdflatexcall)
|
|
|
|
for i in range(1,5):
|
|
print ("Run #", str(i))
|
|
#os.popen(pdflatexcall)
|
|
process = Popen(pdflatexcall, stdout=PIPE)
|
|
(output, err) = process.communicate()
|
|
exit_code = process.wait()
|
|
|
|
|
|
outfile.close()
|
|
ffile.close()
|