structure AppOptions:
sig
structure DviDriver:
sig
datatype driver = DVIPDFMX | DVIPS | DVISVGM
val fromString: string -> driver option
end
datatype bibtex_or_biber = BIBTEX of string | BIBER of string
structure WatchEngine:
sig
datatype engine = FSWATCH | INOTIFYWAIT | AUTO
val fromString: string -> engine option
end
structure ColorMode:
sig
datatype mode = datatype Message.mode
val fromString: string -> mode option
end
structure SourceDateEpoch:
sig
datatype time = NOW | RAW of string
val fromString: string -> time option
end
type initial_options =
{ engine: string option
, engine_executable: string option
, output: string option
, fresh: bool (* default: false *)
, max_iterations: int option
, start_with_draft: bool
, watch: WatchEngine.engine option
, color: ColorMode.mode option
, change_directory: bool option
, includeonly: string option
, make_depends: string option
, print_output_directory: bool (* default: false *)
, package_support: {minted: bool, epstopdf: bool, pdfx: bool}
, check_driver: DviDriver.driver option (* dvipdfmx | dvips | dvisvgm *)
, source_date_epoch: SourceDateEpoch.time option
, synctex: string option (* should be int? *)
, file_line_error: bool
, interaction: InteractionMode.interaction option (* batchmode | nonstopmode | scrollmode | errorstopmode *)
, halt_on_error: bool
, shell_escape: ShellEscape.shell_escape option
, jobname: string option
, fmt: string option
, output_directory: string option
, output_format: OutputFormat.format option (* pdf | dvi *)
, tex_extraoptions: string list
, dvipdfmx_extraoptions: string list
, makeindex: string option
, bibtex_or_biber: bibtex_or_biber option
, makeglossaries: string option
, config_file: string option
}
type options =
{ engine: TeXEngine.engine
, engine_executable: string option
, output: string
, fresh: bool
, max_iterations: int
, start_with_draft: bool
, watch: WatchEngine.engine option
, change_directory: bool
, includeonly: string option
, make_depends: string option
, print_output_directory: bool
, package_support: {minted: bool, epstopdf: bool, pdfx: bool}
, check_driver: CheckDriver.driver option
, source_date_epoch: SourceDateEpoch.time option
, synctex: string option
, file_line_error: bool
, interaction: InteractionMode.interaction
, halt_on_error: bool
, shell_escape: ShellEscape.shell_escape option
, jobname: string
, fmt: string option
, output_directory: string
, output_format: OutputFormat.format
, tex_extraoptions: string list
, dvipdfmx_extraoptions: string list
, makeindex: string option
, bibtex_or_biber: bibtex_or_biber option
, makeglossaries: string option
}
val init: initial_options
end =
struct
structure DviDriver =
struct
datatype driver = DVIPDFMX | DVIPS | DVISVGM
fun fromString "dvipdfmx" = SOME DVIPDFMX
| fromString "dvips" = SOME DVIPS
| fromString "dvisvgm" = SOME DVISVGM
| fromString _ = NONE
end
datatype bibtex_or_biber = BIBTEX of string | BIBER of string
structure WatchEngine =
struct
datatype engine = FSWATCH | INOTIFYWAIT | AUTO
fun fromString "fswatch" = SOME FSWATCH
| fromString "inotifywait" = SOME INOTIFYWAIT
| fromString "auto" = SOME AUTO
| fromString _ = NONE
end
structure ColorMode =
struct
datatype mode = datatype Message.mode
fun fromString "always" = SOME ALWAYS
| fromString "auto" = SOME AUTO
| fromString "never" = SOME NEVER
| fromString _ = NONE
end
structure SourceDateEpoch =
struct
datatype time = NOW | RAW of string
fun fromString "now" = SOME NOW
| fromString s =
if String.size s > 0 andalso CharVector.all Char.isDigit s then
SOME (RAW s)
else
NONE
end
type initial_options =
{ engine: string option
, engine_executable: string option
, output: string option
, fresh: bool (* default: false *)
, max_iterations: int option
, start_with_draft: bool
, watch: WatchEngine.engine option
, color: ColorMode.mode option
, change_directory: bool option
, includeonly: string option
, make_depends: string option
, print_output_directory: bool (* default: false *)
, package_support: {minted: bool, epstopdf: bool, pdfx: bool}
, check_driver: DviDriver.driver option (* dvipdfmx | dvips | dvisvgm *)
, source_date_epoch: SourceDateEpoch.time option
, synctex: string option (* should be int? *)
, file_line_error: bool
, interaction: InteractionMode.interaction option (* batchmode | nonstopmode | scrollmode | errorstopmode *)
, halt_on_error: bool
, shell_escape: ShellEscape.shell_escape option
, jobname: string option
, fmt: string option
, output_directory: string option
, output_format: OutputFormat.format option (* pdf | dvi *)
, tex_extraoptions: string list
, dvipdfmx_extraoptions: string list
, makeindex: string option
, bibtex_or_biber: bibtex_or_biber option
, makeglossaries: string option
, config_file: string option
}
type options =
{ engine: TeXEngine.engine
, engine_executable: string option
, output: string
, fresh: bool
, max_iterations: int
, start_with_draft: bool
, watch: WatchEngine.engine option
, change_directory: bool
, includeonly: string option
, make_depends: string option
, print_output_directory: bool
, package_support: {minted: bool, epstopdf: bool, pdfx: bool}
, check_driver: CheckDriver.driver option
, source_date_epoch: SourceDateEpoch.time option
, synctex: string option
, file_line_error: bool
, interaction: InteractionMode.interaction
, halt_on_error: bool
, shell_escape: ShellEscape.shell_escape option
, jobname: string
, fmt: string option
, output_directory: string
, output_format: OutputFormat.format
, tex_extraoptions: string list
, dvipdfmx_extraoptions: string list
, makeindex: string option
, bibtex_or_biber: bibtex_or_biber option
, makeglossaries: string option
}
val init: initial_options =
{ engine = NONE
, engine_executable = NONE
, output = NONE
, fresh = false
, max_iterations = NONE
, start_with_draft = false
, watch = NONE
, color = NONE
, change_directory = NONE
, includeonly = NONE
, make_depends = NONE
, print_output_directory = false
, package_support = {minted = false, epstopdf = false, pdfx = false}
, check_driver = NONE
, source_date_epoch = NONE
, synctex = NONE
, file_line_error = true
, interaction = NONE
, halt_on_error = true
, shell_escape = NONE
, jobname = NONE
, fmt = NONE
, output_directory = NONE
, output_format = NONE
, tex_extraoptions = []
, dvipdfmx_extraoptions = []
, makeindex = NONE
, bibtex_or_biber = NONE
, makeglossaries = NONE
, config_file = NONE
}
end;