summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-07-05 22:09:45 +0000
committerKarl Berry <karl@freefriends.org>2015-07-05 22:09:45 +0000
commitb0f3c5dbdee94cfa9a26b96c6d2f41370392df64 (patch)
treed0cf93aa29ceac864cd09bb63a2eb6b0da68aa83 /Master/texmf-dist/scripts
parent71f3d121e83be4220bb0b2c160b0f7f33670650c (diff)
tex4ebook (5jul15)
git-svn-id: svn://tug.org/texlive/trunk@37771 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts')
-rwxr-xr-xMaster/texmf-dist/scripts/tex4ebook/tex4ebook154
1 files changed, 154 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/tex4ebook/tex4ebook b/Master/texmf-dist/scripts/tex4ebook/tex4ebook
new file mode 100755
index 00000000000..c43bc330583
--- /dev/null
+++ b/Master/texmf-dist/scripts/tex4ebook/tex4ebook
@@ -0,0 +1,154 @@
+#!/usr/bin/env texlua
+kpse.set_program_name("luatex")
+require("lapp-mk4")
+-- require("ebookutils")
+local ebookutils = require "mkutils"
+
+-- Setting
+local latex_cmd="latex"
+local copy_cmd="copy"
+local move_cmd="move"
+local env_param="%%"
+local htlatex_call=""
+-- These correspond to htlatex parameters
+local tex4ht_sty_par=""
+local tex4ht_par=""
+local t4ht_par=""
+local latex_par=""
+local output_formats={epub=true,mobi=true,epub3=true}
+local executor=nil
+local tidy = false
+local include_fonts = false
+local arg_message = [[
+tex4ebook - ebook generation support for LaTeX
+Usage:
+tex4ebook [switches] inputfile ["tex4ht.sty op." "tex4ht op." "t4ht op" "latex op"]
+-c,--config (default xhtml) Custom config file
+-e,--build-file (default nil) If build file is different than `filename`.mk4
+-f,--format (default epub) Output format. Supported values: epub, epub3, mobi
+-l,--lua Runs htlualatex instead of htlatex
+-m,--mode (default default) Switch which can be used in the makefile
+-r,--resolution (default 167)
+-s,--shell-escape Enable shell escape in htlatex run
+-t,--tidy Run html tidy on html output. May result in wrong spacing!
+]]
+
+-- This option is no longer available, all files must be unicode
+-- -u,--utf8
+local args=lapp(arg_message)
+
+if args[1] == nil then
+ print(arg_message)
+ return
+else
+ input_file=args[1]
+end
+
+if args.lua then
+ print("Mame lua")
+ latex_cmd="dvilualatex"
+end
+
+--if args.utf8 then
+tex4ht_sty_par=tex4ht_sty_par .. ", charset=utf-8"
+tex4ht_par=tex4ht_par .. " -cmozhtf -utf8"
+--end
+
+if args["shell-escape"] then
+ latex_par = latex_par .. " -shell-escape"
+end
+
+if args["include-fonts"] then
+ include_fonts = true
+end
+
+-- local mathml = ","
+-- if args["mathml"] then
+-- -- mathml = ",mathml,"
+-- tex4ht_sty_par = tex4ht_sty_par .. ",mathml"
+-- end
+local mode = args.mode or "default"
+
+if os.type=="unix" then
+ env_param="$"
+ copy_cmd="cp"
+ move_cmd="mv"
+ t4ht_dir_format="%s/"
+else
+ env_param="%%"
+ copy_cmd="copy"
+ move_cmd="move"
+ t4ht_dir_format="%s"
+end
+
+if args.tidy then
+ tidy = true
+else
+ tidy = false
+end
+-- Env file copying
+
+--[[if not ebookutils.file_exists("tex4ht.env") then
+local env_file = kpse.find_file("epub2.env")
+ebookutils.copy_filter(env_file,"tex4ht.env",function(s) return s % {
+move = move_cmd,
+copy = copy_cmd,
+resolution = args.resolution
+} end)
+end--]]
+
+--print ("nazdar ${world}" % {world="svete"})
+--print(args.config)
+
+local input = ebookutils.remove_extension(input_file)
+local config=ebookutils.remove_extension(args.config)
+local tex4ht_sty_par = config ..tex4ht_sty_par..","+args.format
+--local sty_args = args[2] and ", " .. args[2] or ""
+local sty_args = ""
+if args[2] then
+ sty_args = "," .. args[2]
+end
+local tex4ht_sty_par = tex4ht_sty_par + sty_args --args[2]
+local tex4ht_par = tex4ht_par +args[3]
+local t4ht_par = t4ht_par + args[4]
+local latex_par = latex_par + args[5]
+local params = {
+ htlatex=latex_cmd
+ ,input=input
+ ,format=args.format
+ ,latex_par=latex_par
+ ,tex4ht_sty_par=tex4ht_sty_par
+ ,tex4ht_par=tex4ht_par
+ ,t4ht_par=t4ht_par
+ ,mode = mode
+ ,t4ht_dir_format=t4ht_dir_format
+ ,tidy = tidy
+ ,include_fonts = include_fonts
+ ,resolution=args.resolution
+ ,mathml=mathml
+ ,packages="\\RequirePackage{tex4ebook}"
+}
+
+if output_formats[args.format] then
+ executor=require("exec_"..args.format)
+ params=executor.prepare(params)
+else
+ print("Unknown output format: "..args.format)
+ return
+end
+
+local build_file = input.. ".mk4"
+
+if args["build-file"] and args["build-file"] ~= "nil" then
+ build_file = args["build-file"]
+end
+
+local config_file = ebookutils.load_config(nil, build_file)
+
+params["config_file"] = config_file
+--config_file.Make:run()
+print("${htlatex} ${input} \"${tex4ht_sty_par}\" \"${tex4ht_par}\" \"${t4ht_par}\" \"${latex_par}\"" % params)
+executor.run(input,params)
+executor.writeContainer()
+executor.clean()
+--print(args[1])