From e76c89b4c5023e1ed378208f5678795a4bb25349 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 12 Dec 2016 22:53:44 +0000 Subject: ptex2pdf (12dec16) git-svn-id: svn://tug.org/texlive/trunk@42687 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/ptex2pdf/README | 171 ---------------------- Master/texmf-dist/doc/latex/ptex2pdf/README.md | 179 ++++++++++++++++++++++++ Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua | 104 +++++++++----- 3 files changed, 248 insertions(+), 206 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/ptex2pdf/README create mode 100644 Master/texmf-dist/doc/latex/ptex2pdf/README.md (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/ptex2pdf/README b/Master/texmf-dist/doc/latex/ptex2pdf/README deleted file mode 100644 index 55b96e1c5ea..00000000000 --- a/Master/texmf-dist/doc/latex/ptex2pdf/README +++ /dev/null @@ -1,171 +0,0 @@ -# ptex2pdf[.lua] # - -**Author:** Norbert Preining -**Website:** http://www.preining.info/blog/software-projects/ptex2pdf/ (in Japanese) -**License:** GPLv2 - -Convert Japanese TeX documents to pdf - -## Description ## - -Main purpose of the script is easy support of Japanese typesetting -engines in TeXworks. As TeXworks typesetting setup does not allow -for multistep processing, this script runs one of the ptex based -programs (ptex, uptex, eptex, platex, uplatex) followed by dvipdfmx. - -## Usage ## - -````` -[texlua] ptex2pdf[.lua] { option | basename[.tex] } ... -options: -v version - -h help - --help print full help (installation, TeXworks setup) - -e use eptex class of programs - -u use uptex class of programs - -l use latex based formats - -s stop at dvi - -i retain intermediate files - -ot '' extra options for TeX - -od '' extra options for dvipdfmx -````` - -## Installation ## - -Copy the file ptex2pdf.lua into a directory where scripts are found, -that is for example - - `TLROOT/texmf-dist/scripts/ptex2pdf/` - -(where `TLROOT` is for example the root of your TeX Live installation) - -### Unix ### - -create a link in one of the bin dirs to the above file, in the -TeX Live case: - - `TLROOT/bin/ARCH/ptex2pdf -> ../../texmf-dist/scripts/ptex2pdf/ptex2pdf.lua` - -### Windows ### -create a copy of runscript.exe as ptex2pdf.exe, in the TeX Live case: - - `copy TLROOT/bin/win32/runscript.exe TLROOT/bin/win32/ptex2pdf.exe` - -## TeXworks setup ## - -Under Preferences > Typesetting add new entries, for example: - -for ptex files: - -| Setting | Value | -|-------------|------------------| -| Name: | pTeX to pdf | -| Program: | ptex2pdf | -| Arguments: | -ot | -| | $synctexoption | -| | $fullname | - - -for platex files: - -| Setting | Value | -|-------------|----------------| -| Name: | pLaTeX to pdf | -| Program: | ptex2pdf | -| Arguments: | -l | -| | -ot | -| | $synctexoption | -| | $fullname | - -for uptex files: - -| Setting | Value | -|-------------|----------------| -| Name: | upTeX to pdf | -| Program: | ptex2pdf | -| Arguments: | -u | -| | -ot | -| | $synctexoption | -| | $fullname | - -for uplatex files: - -| Setting | Value | -|-------------|----------------| -| Name: | upLaTeX to pdf | -| Program: | ptex2pdf | -| Arguments: | -l | -| | -u | -| | -ot | -| | $synctexoption | -| | $fullname | - -If you need special kanji encodings for one of these programs, -add the respective `-kanji` option after the `$synctexoption`. Example: - -for platex files in SJIS encoding: - -| Setting | Value | -|-------------|-----------------------------| -| Name: | pLaTeX/SJIS to pdf | -| Program: | ptex2pdf | -| Arguments: | -l | -| | -ot | -| | $synctexoption -kanji=sjis | -| | $fullname | - - -## Development place ## - -http://github.com/norbusan/ptex2pdf - -## Changelog ## - -- version 0.1 2013-03-08 NP - Initial release on blog -- version 0.2 2013-03-10 NP - import into git repository - support passing options on to tex and dvipdfm - add README with TeXworks config options -- version 0.3 2013-05-01 NP - include the readme in the lua code - fix program name for -e -u -- version 0.4 2013-05-07 NP - quote the filename with ", so that special chars do survive - add an example for TeXworks for files with different kanji encoding -- version 0.5 2014-11-05 NP - on Windows: set command_line_encoding to utf8 when running uptex - (patch by Akira Kakuto) -- version 0.6 2015-03-08 NP - cygwin didn't like the (accidentally inserted) spaces after the - texlua in the shebang line, and stopped working with - "no such program: "texlua " ..." -- version 0.7 2015-04-29 - move to github as gitorious will be closed, adapt help output - to generate github flavored markdown - check for files using kpathsea instead of opening directly, to allow - for input of files found by kpathsea (closes github issue 1) -- version 0.8 2015-06-15 - file name checks: first search for arg as is, then try .tex and .ltx - (closes github issue: 3) - -## Copyright and License ## - -Originally based on musixtex.lua from Bob Tennent. - -(c) Copyright 2012 Bob Tennent rdt@cs.queensu.ca -(c) Copyright 2013-2015 Norbert Preining norbert@preining.info - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -Public License for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - diff --git a/Master/texmf-dist/doc/latex/ptex2pdf/README.md b/Master/texmf-dist/doc/latex/ptex2pdf/README.md new file mode 100644 index 00000000000..efbd5a6f15a --- /dev/null +++ b/Master/texmf-dist/doc/latex/ptex2pdf/README.md @@ -0,0 +1,179 @@ +# ptex2pdf[.lua] # + +**Author:** Norbert Preining +**Website:** http://www.preining.info/blog/software-projects/ptex2pdf/ (in Japanese) +**License:** GPLv2 + +Convert Japanese TeX documents to pdf + +## Description ## + +Main purpose of the script is easy support of Japanese typesetting +engines in TeXworks. As TeXworks typesetting setup does not allow +for multistep processing, this script runs one of the ptex based +programs (ptex, uptex, eptex, platex, uplatex) followed by dvipdfmx. + +## Usage ## + +````` +[texlua] ptex2pdf[.lua] { option | basename[.tex] } ... +options: -v version + -h help + -help print full help (installation, TeXworks setup) + -e use eptex class of programs + -u use uptex class of programs + -l use latex based formats + -s stop at dvi + -i retain intermediate files + -ot '' extra options for TeX + -od '' extra options for dvipdfmx + -output-directory '' directory for created files +````` + +## Installation ## + +Copy the file ptex2pdf.lua into a directory where scripts are found, +that is for example + + `TLROOT/texmf-dist/scripts/ptex2pdf/` + +(where `TLROOT` is for example the root of your TeX Live installation) + +### Unix ### + +create a link in one of the bin dirs to the above file, in the +TeX Live case: + + `TLROOT/bin/ARCH/ptex2pdf -> ../../texmf-dist/scripts/ptex2pdf/ptex2pdf.lua` + +### Windows ### +create a copy of runscript.exe as ptex2pdf.exe, in the TeX Live case: + + `copy TLROOT/bin/win32/runscript.exe TLROOT/bin/win32/ptex2pdf.exe` + +## TeXworks setup ## + +Under Preferences > Typesetting add new entries, for example: + +for ptex files: + +| Setting | Value | +|-------------|------------------| +| Name: | pTeX to pdf | +| Program: | ptex2pdf | +| Arguments: | -ot | +| | $synctexoption | +| | $fullname | + + +for platex files: + +| Setting | Value | +|-------------|----------------| +| Name: | pLaTeX to pdf | +| Program: | ptex2pdf | +| Arguments: | -l | +| | -ot | +| | $synctexoption | +| | $fullname | + +for uptex files: + +| Setting | Value | +|-------------|----------------| +| Name: | upTeX to pdf | +| Program: | ptex2pdf | +| Arguments: | -u | +| | -ot | +| | $synctexoption | +| | $fullname | + +for uplatex files: + +| Setting | Value | +|-------------|----------------| +| Name: | upLaTeX to pdf | +| Program: | ptex2pdf | +| Arguments: | -l | +| | -u | +| | -ot | +| | $synctexoption | +| | $fullname | + +If you need special kanji encodings for one of these programs, +add the respective `-kanji` option after the `$synctexoption`. Example: + +for platex files in SJIS encoding: + +| Setting | Value | +|-------------|-----------------------------| +| Name: | pLaTeX/SJIS to pdf | +| Program: | ptex2pdf | +| Arguments: | -l | +| | -ot | +| | $synctexoption -kanji=sjis | +| | $fullname | + + +## Development place ## + +http://github.com/texjporg/ptex2pdf + +## Changelog ## + +- version 0.1 2013-03-08 NP + Initial release on blog +- version 0.2 2013-03-10 NP + import into git repository + support passing options on to tex and dvipdfm + add README with TeXworks config options +- version 0.3 2013-05-01 NP + include the readme in the lua code + fix program name for -e -u +- version 0.4 2013-05-07 NP + quote the filename with ", so that special chars do survive + add an example for TeXworks for files with different kanji encoding +- version 0.5 2014-11-05 NP + on Windows: set command_line_encoding to utf8 when running uptex + (patch by Akira Kakuto) +- version 0.6 2015-03-08 NP + cygwin didn't like the (accidentally inserted) spaces after the + texlua in the shebang line, and stopped working with + "no such program: "texlua " ..." +- version 0.7 2015-04-29 + move to github as gitorious will be closed, adapt help output + to generate github flavored markdown + check for files using kpathsea instead of opening directly, to allow + for input of files found by kpathsea (closes github issue 1) +- version 0.8 2015-06-15 + file name checks: first search for arg as is, then try .tex and .ltx + (closes github issue: 3) +- version 0.9 2016-12-12 + allow for files in sub-directories + add -output-directory option + update copyright and development place (now in texjp) + support 'flag=val' to specify option values + only allow one (1) filename argument + +## Copyright and License ## + +Originally based on musixtex.lua from Bob Tennent. + +(c) Copyright 2016 by Japanese TeX Development Community +(c) Copyright 2013-2016 Norbert Preining norbert@preining.info +(c) Copyright 2012 Bob Tennent rdt@cs.queensu.ca + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + diff --git a/Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua b/Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua index 3b0c5b5d62b..b2c983f24ee 100755 --- a/Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua +++ b/Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua @@ -1,7 +1,7 @@ #!/usr/bin/env texlua NAME = "ptex2pdf[.lua]" -VERSION = "0.8" +VERSION = "0.9" AUTHOR = "Norbert Preining" AUTHOREMAIL = "norbert@preining.info" SHORTDESC = "Convert Japanese TeX documents to pdf" @@ -15,20 +15,22 @@ USAGE = [[ [texlua] ptex2pdf[.lua] { option | basename[.tex] } ... options: -v version -h help - --help print full help (installation, TeXworks setup) + -help print full help (installation, TeXworks setup) -e use eptex class of programs -u use uptex class of programs -l use latex based formats -s stop at dvi -i retain intermediate files -ot '' extra options for TeX - -od '' extra options for dvipdfmx]] + -od '' extra options for dvipdfmx + -output-directory '' directory for created files]] LICENSECOPYRIGHT = [[ Originally based on musixtex.lua from Bob Tennent. +(c) Copyright 2016 by Japanese TeX Development Community +(c) Copyright 2013-2016 Norbert Preining norbert@preining.info (c) Copyright 2012 Bob Tennent rdt@cs.queensu.ca -(c) Copyright 2013-2015 Norbert Preining norbert@preining.info This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -129,37 +131,43 @@ for platex files in SJIS encoding: | | $fullname | ]] -DEVELPLACE = "http://github.com/norbusan/ptex2pdf" +DEVELPLACE = "http://github.com/texjporg/ptex2pdf" CHANGELOG = [[ -- version 0.1 2013-03-08 NP +- version 0.1 2013-03-08 NP Initial release on blog -- version 0.2 2013-03-10 NP - import into git repository - support passing options on to tex and dvipdfm - add README with TeXworks config options -- version 0.3 2013-05-01 NP - include the readme in the lua code - fix program name for -e -u -- version 0.4 2013-05-07 NP - quote the filename with ", so that special chars do survive - add an example for TeXworks for files with different kanji encoding -- version 0.5 2014-11-05 NP - on Windows: set command_line_encoding to utf8 when running uptex - (patch by Akira Kakuto) -- version 0.6 2015-03-08 NP - cygwin didn't like the (accidentally inserted) spaces after the - texlua in the shebang line, and stopped working with - "no such program: "texlua " ..." -- version 0.7 2015-04-29 - move to github as gitorious will be closed, adapt help output - to generate github flavored markdown - check for files using kpathsea instead of opening directly, to allow - for input of files found by kpathsea (closes github issue 1) -- version 0.8 2015-06-15 - file name checks: first search for arg as is, then try .tex and .ltx - (closes github issue: 3) +- version 0.2 2013-03-10 NP + import into git repository + support passing options on to tex and dvipdfm + add README with TeXworks config options +- version 0.3 2013-05-01 NP + include the readme in the lua code + fix program name for -e -u +- version 0.4 2013-05-07 NP + quote the filename with ", so that special chars do survive + add an example for TeXworks for files with different kanji encoding +- version 0.5 2014-11-05 NP + on Windows: set command_line_encoding to utf8 when running uptex + (patch by Akira Kakuto) +- version 0.6 2015-03-08 NP + cygwin didn't like the (accidentally inserted) spaces after the + texlua in the shebang line, and stopped working with + "no such program: "texlua " ..." +- version 0.7 2015-04-29 + move to github as gitorious will be closed, adapt help output + to generate github flavored markdown + check for files using kpathsea instead of opening directly, to allow + for input of files found by kpathsea (closes github issue 1) +- version 0.8 2015-06-15 + file name checks: first search for arg as is, then try .tex and .ltx + (closes github issue: 3) +- version 0.9 2016-12-12 + allow for files in sub-directories + add -output-directory option + update copyright and development place (now in texjp) + support 'flag=val' to specify option values + only allow one (1) filename argument ]] @@ -249,25 +257,34 @@ intermediate = 1 use_eptex = 0 use_uptex = 0 use_latex = 0 +outputdir = "." filename = "" bname = "" exit_code = 0 narg = 1 repeat this_arg = arg[narg] + -- replace double dash by single dash at the beginning + this_arg = string.gsub(this_arg, "^%-%-", "-") + if this_arg == "-v" then whoami() os.exit(0) - elseif this_arg == "--readme" then + elseif this_arg == "-readme" then makereadme() os.exit(0) - elseif this_arg == "--print-version" then + elseif this_arg == "-output-directory" then + narg = narg+1 + outputdir = arg[narg] + elseif (string.sub(this_arg, 1, 18) == "-output-directory=") then + outputdir = string.sub(this_arg, 19, -1) + elseif this_arg == "-print-version" then print(VERSION) os.exit(0) elseif this_arg == "-h" then help() os.exit(0) - elseif this_arg == "--help" then + elseif this_arg == "-help" then fullhelp() os.exit(0) elseif this_arg == "-e" then @@ -283,11 +300,20 @@ repeat elseif this_arg == "-ot" then narg = narg+1 texopts = arg[narg] + elseif (string.sub(this_arg, 1, 4) == "-ot=") then + texopts = string.sub(this_arg, 5, -1) elseif this_arg == "-od" then narg = narg+1 dvipdfopts = arg[narg] + elseif (string.sub(this_arg, 1, 4) == "-od=") then + dvipdfopts = string.sub(this_arg, 5, -1) else - filename = this_arg + if filename == "" then + filename = this_arg + else + print("Multiple filename arguments, only one can be processed, exiting.") + os.exit(1) + end end --if this_arg == ... narg = narg+1 until narg > #arg @@ -354,6 +380,9 @@ else -- if it has already an extension, we need to drop it to get the dvi name bname = string.gsub(filename, "^(.*)%.[^.]+$", "%1") end + -- filename may contain "/" or "\", but the intermediate output is written + -- in current directory, so we need to drop it + bname = string.gsub(bname, "^.*[/\\](.*)$", "%1") end -- we are still here, so we found a file @@ -363,6 +392,11 @@ if use_uptex == 1 then os.setenv('command_line_encoding', 'utf8') end end +if (outputdir ~= ".") then + texopts = "-output-directory \"" .. outputdir .. "\" " .. texopts + bname = outputdir .. "/" .. bname + dvipdfopts = "-o \"" .. bname .. ".pdf\"" +end print("Processing ".. filename) if (os.execute(tex .. " " .. texopts .. " \"" .. filename .. "\"") == 0) and (dvipdf == "" or (os.execute(dvipdf .. " " .. dvipdfopts .. " \"" .. bname .. ".dvi" .. "\"") == 0)) then -- cgit v1.2.3