improve tex2lyx Usage display (on error...); describe option -e on man page; remove non-implemented -p and -r options

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29346 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2009-04-19 22:13:43 +00:00
parent 2d74fba556
commit 2e45185cd5
2 changed files with 67 additions and 68 deletions

View File

@ -20,14 +20,12 @@ call it from the command line only if you need to use more complicated
options.
.PP
\fBtex2lyx\fR [ \fB\-userdir\fR \fIuserdir\fR ] [ \fB\-systemdir\fR \fIsystemdir\fR ]
[\fB\-n\fR] [\ \fB\-r\fR\ \fIrenv1\fR[,\fIrenv2\fR...]] [\ \fB\-s\fR\ \fIsfile1\fR[,\fIsfile2\fR...]]
\fIinputfile\fR [ \fB\-c\fR \fItextclass\fR ]
.PP
\fBtex2lyx\fR [ \fB\-userdir\fR \fIuserdir\fR ] [ \fB\-systemdir\fR \fIsystemdir\fR ]
[\ \fB\-r\fR\ \fIrenv1\fR[,\fIrenv2\fR...]] [\ \fB\-s\fR\ \fIsfile1\fR[,\fIsfile2\fR...]]
\fIinputfiles\fR \fB\-p\fR \fB\-c\fR \fItextclass\fR
.PP
\fBtex2lyx\fR \fB\-help\fR
[ \fB\-n\fR ] [ \fB\-c\fR \fItextclass\fR ] [\ \fB\-s\fR\ \fIsfile1\fR[,\fIsfile2\fR...]]
\fIinputfile\fR
." .PP
." \fBtex2lyx\fR [ \fB\-userdir\fR \fIuserdir\fR ] [ \fB\-systemdir\fR \fIsystemdir\fR ]
." [\ \fB\-r\fR\ \fIrenv1\fR[,\fIrenv2\fR...]] [\ \fB\-s\fR\ \fIsfile1\fR[,\fIsfile2\fR...]]
." \fIinputfiles\fR \fB\-p\fR \fB\-c\fR \fItextclass\fR
.SH "OPTIONS"
.TP
.BI \-c
@ -41,31 +39,28 @@ creates a file of textclass \*(L"foo\*(R" and reads the LyX layout file for that
Force. \fBtex2lyx\fR will not run if the .lyx file it would generate already exists.
Use the \fB\-f\fR option (carefully) to clobber any existing files.
.TP
.BI \-help
Help. Print out usage information and quit.
.TP
.BI \-n
Noweb. Translate a noweb (aka literate programming) file. This should be
(almost?) equivalent to running \*(L"noweb2lyx foo.tex foo.lyx\*(R". This option
requires the \fB\-c\fR option.
.TP
.BI \-p
Partial file. The input files are LaTeX fragments, with no preamble matter or
\f(CW\ebegin{document}\fR commands. This option requires the \fB\-c\fR option, since there
are no \f(CW\edocumentclass\fR commands in the files \fBtex2lyx\fR is translating. When
using this option, you can translate more than one file, as long as all files
are the same class. The LyX file created by \fBtex2lyx\fR can be included in an
existing LyX file using the \*(L"Include LyX File\*(R" command from
LyX's Insert menu. (\fBNOTE\fR: this feature of the older \fBreLyX\fR script has
not yet been implemented in \fBtex2lyx\fR).
.TP
.BI \-r
Regular environments (see the section on \fISyntax Files\fR). If you give more than one
environment, separate them with commas (not spaces). You'll probably need to
quote the environment list, especially if it has asterisk environments (foo*)
in it. If you use this command often, considering creating a personal syntax
file. (\fBNOTE\fR: this feature of the older \fBreLyX\fR script has
not yet been implemented in \fBtex2lyx\fR).
." .TP
." .BI \-p
." Partial file. The input files are LaTeX fragments, with no preamble matter or
." \f(CW\ebegin{document}\fR commands. This option requires the \fB\-c\fR option, since there
." are no \f(CW\edocumentclass\fR commands in the files \fBtex2lyx\fR is translating. When
." using this option, you can translate more than one file, as long as all files
." are the same class. The LyX file created by \fBtex2lyx\fR can be included in an
." existing LyX file using the \*(L"Include LyX File\*(R" command from
." LyX's Insert menu. (\fBNOTE\fR: this feature of the older \fBreLyX\fR script has
." not yet been implemented in \fBtex2lyx\fR).
." .TP
." .BI \-r
." Regular environments (see the section on \fISyntax Files\fR). If you give more than one
." environment, separate them with commas (not spaces). You'll probably need to
." quote the environment list, especially if it has asterisk environments (foo*)
." in it. If you use this command often, considering creating a personal syntax
." file. (\fBNOTE\fR: this feature of the older \fBreLyX\fR script has
." not yet been implemented in \fBtex2lyx\fR).
.TP
.BI \-s
Syntax files. Input (one or more quoted, comma-separated) syntax files to read
@ -78,6 +73,9 @@ chosen. Cf. the section \f(CWFILES\fR for details.
.BI \-userdir
Specify a user directory. Normally, you shouldn't need this. Your LyX user directory is
chosen. Cf. the section \f(CWFILES\fR for details.
.TP
.BI \-help
Help. Print out usage information and quit.
.SH "DESCRIPTION"
.SS "Introduction"
\fBtex2lyx\fR will create a LyX file \fIdir/foo.lyx\fR from the LaTeX file

View File

@ -239,7 +239,7 @@ string documentclass;
string default_encoding;
string syntaxfile;
bool overwrite_files = false;
int error_code = 0;
/// return the number of arguments consumed
typedef int (*cmd_helper)(string const &, string const &);
@ -247,26 +247,33 @@ typedef int (*cmd_helper)(string const &, string const &);
int parse_help(string const &, string const &)
{
cerr << "Usage: tex2lyx [ command line switches ] <infile.tex> [<outfile.lyx>]\n"
"Command line switches (case sensitive):\n"
"\t-help summarize tex2lyx usage\n"
"\t-f Force creation of .lyx files even if they exist already\n"
"\t-userdir dir try to set user directory to dir\n"
"\t-sysdir dir try to set system directory to dir\n"
"\t-c textclass declare the textclass\n"
"\t-e encoding set the default encoding (latex name)\n"
cerr << "Usage: tex2lyx [options] infile.tex [outfile.lyx]\n"
"Options:\n"
"\t-c textclass Declare the textclass.\n"
"\t-e encoding Set the default encoding (latex name).\n"
"\t-f Force overwrite of .lyx files.\n"
"\t-help Print this message and quit.\n"
"\t-n translate a noweb (aka literate programming) file.\n"
"\t-s syntaxfile read additional syntax file" << endl;
exit(0);
"\t-s syntaxfile read additional syntax file.\n"
"\t-sysdir dir Set system directory to DIR.\n"
"\t-userdir DIR Set user directory to DIR."
<< endl;
exit(error_code);
}
void error_message(string const & message)
{
cerr << "tex2lyx: " << message << "\n\n";
error_code = 1;
parse_help(string(), string());
}
int parse_class(string const & arg, string const &)
{
if (arg.empty()) {
cerr << "Missing textclass string after -c switch" << endl;
exit(1);
}
if (arg.empty())
error_message("Missing textclass string after -c switch");
documentclass = arg;
return 1;
}
@ -274,10 +281,8 @@ int parse_class(string const & arg, string const &)
int parse_encoding(string const & arg, string const &)
{
if (arg.empty()) {
cerr << "Missing encoding string after -e switch" << endl;
exit(1);
}
if (arg.empty())
error_message("Missing encoding string after -e switch");
default_encoding = arg;
return 1;
}
@ -285,10 +290,8 @@ int parse_encoding(string const & arg, string const &)
int parse_syntaxfile(string const & arg, string const &)
{
if (arg.empty()) {
cerr << "Missing syntaxfile string after -s switch" << endl;
exit(1);
}
if (arg.empty())
error_message("Missing syntaxfile string after -s switch");
syntaxfile = internal_path(arg);
return 1;
}
@ -302,10 +305,8 @@ string cl_user_support;
int parse_sysdir(string const & arg, string const &)
{
if (arg.empty()) {
cerr << "Missing directory for -sysdir switch" << endl;
exit(1);
}
if (arg.empty())
error_message("Missing directory for -sysdir switch");
cl_system_support = internal_path(arg);
return 1;
}
@ -313,10 +314,8 @@ int parse_sysdir(string const & arg, string const &)
int parse_userdir(string const & arg, string const &)
{
if (arg.empty()) {
cerr << "Missing directory for -userdir switch" << endl;
exit(1);
}
if (arg.empty())
error_message("Missing directory for -userdir switch");
cl_user_support = internal_path(arg);
return 1;
}
@ -355,8 +354,12 @@ void easyParse(int & argc, char * argv[])
= cmdmap.find(argv[i]);
// don't complain if not found - may be parsed later
if (it == cmdmap.end())
continue;
if (it == cmdmap.end()) {
if (argv[i][0] == '-')
error_message(string("Unknown option `") + argv[i] + "'.");
else
continue;
}
string arg(to_utf8(from_local8bit((i + 1 < argc) ? argv[i + 1] : "")));
string arg2(to_utf8(from_local8bit((i + 2 < argc) ? argv[i + 2] : "")));
@ -498,12 +501,8 @@ int main(int argc, char * argv[])
easyParse(argc, argv);
if (argc <= 1) {
cerr << "Usage: tex2lyx [ command line switches ] <infile.tex> [<outfile.lyx>]\n"
"See tex2lyx -help." << endl;
return 2;
}
if (argc <= 1)
error_message("Not enough arguments.");
os::init(argc, argv);
try {
@ -554,6 +553,8 @@ int main(int argc, char * argv[])
exit(1);
}
encodings.read(enc_path, symbols_path);
if (!default_encoding.empty() && !encodings.fromLaTeXName(default_encoding))
error_message("Unknown LaTeX encoding `" + default_encoding + "'");
// The real work now.
masterFilePath = onlyPath(infilename);