|
@@ -4,26 +4,28 @@ ResourceWriter = require "./ResourceWriter"
|
|
|
SafeReader = require "./SafeReader"
|
|
SafeReader = require "./SafeReader"
|
|
|
logger = require "logger-sharelatex"
|
|
logger = require "logger-sharelatex"
|
|
|
|
|
|
|
|
-# for \tikzexternalize to work the main file needs to match the
|
|
|
|
|
|
|
+# for \tikzexternalize or pstool to work the main file needs to match the
|
|
|
# jobname. Since we set the -jobname to output, we have to create a
|
|
# jobname. Since we set the -jobname to output, we have to create a
|
|
|
# copy of the main file as 'output.tex'.
|
|
# copy of the main file as 'output.tex'.
|
|
|
|
|
|
|
|
module.exports = TikzManager =
|
|
module.exports = TikzManager =
|
|
|
|
|
|
|
|
- checkMainFile: (compileDir, mainFile, resources, callback = (error, usesTikzExternalize) ->) ->
|
|
|
|
|
|
|
+ checkMainFile: (compileDir, mainFile, resources, callback = (error, needsMainFile) ->) ->
|
|
|
# if there's already an output.tex file, we don't want to touch it
|
|
# if there's already an output.tex file, we don't want to touch it
|
|
|
for resource in resources
|
|
for resource in resources
|
|
|
if resource.path is "output.tex"
|
|
if resource.path is "output.tex"
|
|
|
logger.log compileDir: compileDir, mainFile: mainFile, "output.tex already in resources"
|
|
logger.log compileDir: compileDir, mainFile: mainFile, "output.tex already in resources"
|
|
|
return callback(null, false)
|
|
return callback(null, false)
|
|
|
- # if there's no output.tex, see if we are using tikz/pgf in the main file
|
|
|
|
|
|
|
+ # if there's no output.tex, see if we are using tikz/pgf or pstool in the main file
|
|
|
ResourceWriter.checkPath compileDir, mainFile, (error, path) ->
|
|
ResourceWriter.checkPath compileDir, mainFile, (error, path) ->
|
|
|
return callback(error) if error?
|
|
return callback(error) if error?
|
|
|
SafeReader.readFile path, 65536, "utf8", (error, content) ->
|
|
SafeReader.readFile path, 65536, "utf8", (error, content) ->
|
|
|
return callback(error) if error?
|
|
return callback(error) if error?
|
|
|
usesTikzExternalize = content?.indexOf("\\tikzexternalize") >= 0
|
|
usesTikzExternalize = content?.indexOf("\\tikzexternalize") >= 0
|
|
|
- logger.log compileDir: compileDir, mainFile: mainFile, usesTikzExternalize:usesTikzExternalize, "checked for tikzexternalize"
|
|
|
|
|
- callback null, usesTikzExternalize
|
|
|
|
|
|
|
+ usesPsTool = content.indexOf("{pstool}") >= 0
|
|
|
|
|
+ logger.log compileDir: compileDir, mainFile: mainFile, usesTikzExternalize:usesTikzExternalize, usesPsTool: usesPsTool, "checked for packages needing main file as output.tex"
|
|
|
|
|
+ needsMainFile = (usesTikzExternalize || usesPsTool)
|
|
|
|
|
+ callback null, needsMainFile
|
|
|
|
|
|
|
|
injectOutputFile: (compileDir, mainFile, callback = (error) ->) ->
|
|
injectOutputFile: (compileDir, mainFile, callback = (error) ->) ->
|
|
|
ResourceWriter.checkPath compileDir, mainFile, (error, path) ->
|
|
ResourceWriter.checkPath compileDir, mainFile, (error, path) ->
|