texlive[42687] trunk: ptex2pdf (12dec16)

commits+karl at tug.org commits+karl at tug.org
Mon Dec 12 23:53:44 CET 2016


Revision: 42687
          http://tug.org/svn/texlive?view=revision&revision=42687
Author:   karl
Date:     2016-12-12 23:53:44 +0100 (Mon, 12 Dec 2016)
Log Message:
-----------
ptex2pdf (12dec16)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/ptex2pdf/ptex2pdf.lua
    trunk/Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/ptex2pdf/README.md

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/ptex2pdf/README

Modified: trunk/Build/source/texk/texlive/linked_scripts/ptex2pdf/ptex2pdf.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/ptex2pdf/ptex2pdf.lua	2016-12-12 22:52:09 UTC (rev 42686)
+++ trunk/Build/source/texk/texlive/linked_scripts/ptex2pdf/ptex2pdf.lua	2016-12-12 22:53:44 UTC (rev 42687)
@@ -1,7 +1,7 @@
 #!/usr/bin/env texlua
 
 NAME = "ptex2pdf[.lua]"
-VERSION = "0.8"
+VERSION = "0.9"
 AUTHOR = "Norbert Preining"
 AUTHOREMAIL = "norbert at preining.info"
 SHORTDESC = "Convert Japanese TeX documents to pdf"
@@ -15,7 +15,7 @@
 [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
@@ -22,13 +22,15 @@
          -s  stop at dvi
          -i  retain intermediate files
          -ot '<opts>' extra options for TeX
-         -od '<opts>' extra options for dvipdfmx]]
+         -od '<opts>' extra options for dvipdfmx
+         -output-directory '<dir>' 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 at preining.info  
 (c) Copyright 2012 Bob Tennent rdt at cs.queensu.ca  
-(c) Copyright 2013-2015 Norbert Preining norbert at 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 @@
 |             | $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,6 +257,7 @@
 use_eptex = 0
 use_uptex = 0
 use_latex = 0
+outputdir = "."
 filename = ""
 bname = ""
 exit_code = 0
@@ -255,19 +264,27 @@
 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 @@
   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 @@
     -- 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 @@
     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 

Deleted: trunk/Master/texmf-dist/doc/latex/ptex2pdf/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ptex2pdf/README	2016-12-12 22:52:09 UTC (rev 42686)
+++ trunk/Master/texmf-dist/doc/latex/ptex2pdf/README	2016-12-12 22:53:44 UTC (rev 42687)
@@ -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 '<opts>' extra options for TeX
-         -od '<opts>' 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 at cs.queensu.ca  
-(c) Copyright 2013-2015 Norbert Preining norbert at 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.
-

Added: trunk/Master/texmf-dist/doc/latex/ptex2pdf/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ptex2pdf/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/ptex2pdf/README.md	2016-12-12 22:53:44 UTC (rev 42687)
@@ -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 '<opts>' extra options for TeX
+         -od '<opts>' extra options for dvipdfmx
+         -output-directory '<dir>' 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 at preining.info  
+(c) Copyright 2012 Bob Tennent rdt at 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.
+

Modified: trunk/Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua	2016-12-12 22:52:09 UTC (rev 42686)
+++ trunk/Master/texmf-dist/scripts/ptex2pdf/ptex2pdf.lua	2016-12-12 22:53:44 UTC (rev 42687)
@@ -1,7 +1,7 @@
 #!/usr/bin/env texlua
 
 NAME = "ptex2pdf[.lua]"
-VERSION = "0.8"
+VERSION = "0.9"
 AUTHOR = "Norbert Preining"
 AUTHOREMAIL = "norbert at preining.info"
 SHORTDESC = "Convert Japanese TeX documents to pdf"
@@ -15,7 +15,7 @@
 [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
@@ -22,13 +22,15 @@
          -s  stop at dvi
          -i  retain intermediate files
          -ot '<opts>' extra options for TeX
-         -od '<opts>' extra options for dvipdfmx]]
+         -od '<opts>' extra options for dvipdfmx
+         -output-directory '<dir>' 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 at preining.info  
 (c) Copyright 2012 Bob Tennent rdt at cs.queensu.ca  
-(c) Copyright 2013-2015 Norbert Preining norbert at 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 @@
 |             | $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,6 +257,7 @@
 use_eptex = 0
 use_uptex = 0
 use_latex = 0
+outputdir = "."
 filename = ""
 bname = ""
 exit_code = 0
@@ -255,19 +264,27 @@
 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 @@
   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 @@
     -- 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 @@
     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 



More information about the tex-live-commits mailing list