@@ -74,25 +74,49 @@ func (c *Compiler) Compile(texFile string) (string, error) {
7474 var cmd * exec.Cmd
7575 // Create command to run
7676 var cmdErr error
77-
78- if dirOutput == "." {
79- cmdStr := fmt .Sprintf ("%s -interaction=nonstopmode -jobname=%s %s" , engine , baseNameOutput , texFile )
80- cmd = exec .Command ("sh" , "-c" , cmdStr )
81- log .Printf ("Running command: %s" , cmd .String ())
82- cmdErr = cmd .Run ()
83- if cmdErr != nil {
84- log .Printf ("Warning: LaTeX command reported errors: %s" , cmdErr )
85- // Don't return error yet - check if file was created
77+
78+ if engine != "pdflatex" {
79+ for i := 0 ; i < 2 ; i ++ {
80+ if dirOutput == "." {
81+ cmdStr := fmt .Sprintf ("%s -interaction=nonstopmode -jobname=%s %s" , engine , baseNameOutput , texFile )
82+ cmd = exec .Command ("sh" , "-c" , cmdStr )
83+ log .Printf ("Running command: %s" , cmd .String ())
84+ cmdErr = cmd .Run ()
85+ if cmdErr != nil {
86+ log .Printf ("Warning: LaTeX command reported errors: %s" , cmdErr )
87+ // Don't return error yet - check if file was created
88+ }
89+ } else {
90+ cmdStr := fmt .Sprintf ("%s -interaction=nonstopmode -jobname=%s -output-directory=%s %s" , engine , baseNameOutput , dirOutput , texFile )
91+ cmd = exec .Command ("sh" , "-c" , cmdStr )
92+ log .Printf ("Running command: %s" , cmd .String ())
93+ cmdErr = cmd .Run ()
94+ if cmdErr != nil {
95+ log .Printf ("Warning: LaTeX command reported errors: %s" , cmdErr )
96+ // Don't return error yet - check if file was created
97+ }
98+ }
8699 }
87100 } else {
88- cmdStr := fmt .Sprintf ("%s -interaction=nonstopmode -jobname=%s -output-directory=%s %s" , engine , baseNameOutput , dirOutput , texFile )
89- cmd = exec .Command ("sh" , "-c" , cmdStr )
90- log .Printf ("Running command: %s" , cmd .String ())
91- cmdErr = cmd .Run ()
92- if cmdErr != nil {
93- log .Printf ("Warning: LaTeX command reported errors: %s" , cmdErr )
94- // Don't return error yet - check if file was created
95- }
101+ if dirOutput == "." {
102+ cmdStr := fmt .Sprintf ("%s -interaction=nonstopmode -jobname=%s %s" , engine , baseNameOutput , texFile )
103+ cmd = exec .Command ("sh" , "-c" , cmdStr )
104+ log .Printf ("Running command: %s" , cmd .String ())
105+ cmdErr = cmd .Run ()
106+ if cmdErr != nil {
107+ log .Printf ("Warning: LaTeX command reported errors: %s" , cmdErr )
108+ // Don't return error yet - check if file was created
109+ }
110+ } else {
111+ cmdStr := fmt .Sprintf ("%s -interaction=nonstopmode -jobname=%s -output-directory=%s %s" , engine , baseNameOutput , dirOutput , texFile )
112+ cmd = exec .Command ("sh" , "-c" , cmdStr )
113+ log .Printf ("Running command: %s" , cmd .String ())
114+ cmdErr = cmd .Run ()
115+ if cmdErr != nil {
116+ log .Printf ("Warning: LaTeX command reported errors: %s" , cmdErr )
117+ // Don't return error yet - check if file was created
118+ }
119+ }
96120 }
97121
98122 // Normalize output path with .pdf extension
@@ -113,7 +137,7 @@ func (c *Compiler) Compile(texFile string) (string, error) {
113137 }
114138 return "" , fmt .Errorf ("error checking output file: %w" , statErr )
115139 }
116-
140+
117141 // Check if file is empty
118142 if fileInfo .Size () == 0 {
119143 return "" , errors .New ("PDF output file was created but is empty" )
@@ -213,4 +237,4 @@ var CompileCmd = &bonzai.Cmd{
213237 }
214238 return nil
215239 },
216- }
240+ }
0 commit comments