drop reLyX like it is hot, and setup to use tex2lyx instead (and remerged po files + no.po small update)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10244 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2005-07-16 15:18:14 +00:00
parent 46e3547945
commit ef8e527612
76 changed files with 5494 additions and 12567 deletions

View File

@ -1,8 +1,14 @@
2005-07-16 Lars Gullik Bjønnes <larsbj@lyx.org>
* lyx.man: remove reLyX refs and ref to tex2lyx
* autogen.sh,configure.ac: remove reLyX handling
* INSTALL,INSTALL.OS2: remove some reLyX paragraphs.
2005-07-16 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* INSTALL: lib/xfonts is dead.
2005-07-15 <lgb@tandberg.net>
2005-07-15 Lars Gullik Bjønnes <larsbj@lyx.org>
* configure.ac: set AWK to gawk and subsitute
@ -29,7 +35,7 @@
* configure.ac: if the xforms frontend is added just to help gtk,
do not build the xforms binary.
2005-05-20 Lars Gullik Bjonnes <lgb@tandberg.net>
2005-05-20 Lars Gullik Bjønnes <larsbj@lyx.org>
* configure.ac: Use AM_* flags for CLAGS,CXXFLAGS where we require
the values to be properly set.

13
INSTALL
View File

@ -116,20 +116,13 @@ from:
The two following programs should be available at configuration time:
o Perl (at least 5.002) is needed for the reLyX script. reLyX will
not be installed if perl is not found. If the environment
variable PERL is set to point to some program, this value will be
used, even if the program does no exist (this can be useful if
the machine on which LyX is built is not the one where it will
run).
o LaTeX2e should be correctly setup for the user you are logged in
as. Otherwise, LyX will not be able to run a number of tests. Note
that users can run these tests manually with Edit>Reconfigure.
Finally, you will need to have python 1.5.2 or newer installed to be
able to import older LyX files with the lyx2lyx script (this script is
called automatically when opening a file).
o Python 1.5.2 or newer installed to be able to import older LyX files
with the lyx2lyx script (this script is called automatically when
opening a file).
Creating the Makefile

View File

@ -267,76 +267,7 @@ SET chktexrc=%home%
Do not copy it! You need to adapt it to your directory structure.
6) perl:
----
For LaTeX import (relyx.cmd) you need perl:
Check your local CPAN server for a recent OS/2 port or try:
http://www.perl.org
Note:
----
If perl cannot find its modules and libraries it has a hardcoded
path chosen at compile time that does not match your configuration.
You can recompile with your directory structure or exchange the path
as follows (from man perlos2):
PERLLIB_PREFIX
Specific for EMX port. Should have the form
path1;path2
or
path1 path2
If the beginning of some prebuilt path matches path1, it
is substituted with path2.
Should be used if the perl library is moved from the
default location in preference to PERL(5)LIB, since this
would not leave wrong entries in @INC. Say, if the
compiled version of perl looks for @INC in f:/perllib/lib,
and you want to install the library in h:/opt/gnu, do
set PERLLIB_PREFIX=f:/perllib/lib;h:/opt/gnu"
On my system 'f:/perllib/lib' is hardcoded and has to be exchanged
for 'd:/bin/perllib/lib'. Also like many other programs ported from
UNIX (unfortunately this is also true for many XFree/2 programs) it
uses a UNIX-like sh; you should give its path.
I recommend sh.exe of pdksh.zip; other shells have problems.
Here an example of my config.sys:
rem Not default directory of perllib/lib (here:d:\bin)
set PERLLIB_PREFIX=f:/perllib/lib;d:/bin/perllib/lib
rem Where sh.exe of pdksh.zip resides:
set PERL_SH_DIR=D:\bin
excerpt from perlos2:
After you installed the components you needed and updated
the Config.sys correspondingly, you need to hand-edit
Config.pm. This file resides somewhere deep in the
location you installed your perl library, find it out by
perl -MConfig -le "print $INC{'Config.pm'}"
You need to correct all the entries which look like file
paths (they currently start with f:/).
Warning
The automatic and manual perl installation leave
precompiled paths inside perl executables. While these
paths are overwriteable (see the section on
PERLLIB_PREFIX, the section on PERL_SH_DIR), one may get
better results by binary editing of paths inside the
executables/DLLs.
7) 'man' and 'gnugroff':
6) 'man' and 'gnugroff':
--------------------
For reading unformatted manual pages in UNIX 'roff' format like the

6
NEWS
View File

@ -1,3 +1,9 @@
What's new in version 1.4.0?
----------------------------
A long time since 1.3.0 now and a lot has happened. Alsmost the whole
core of LyX has been rewritten.
What's new in version 1.3.0?
----------------------------

View File

@ -70,7 +70,7 @@ fi
# Delete old cache directories.
# automake will stop if their contents was created by an earlier version.
rm -rf autom4te.cache lib/reLyX/autom4te.cache
rm -rf autom4te.cache
# Generate acinclude.m4
echo -n "Generate acinclude.m4... "
@ -81,7 +81,7 @@ echo "done."
# Generate the Makefiles and configure files
if ( $ACLOCAL --version ) < /dev/null > /dev/null 2>&1; then
echo "Building macros..."
for dir in . lib/reLyX ; do
for dir in . ; do
echo " $dir"
( cd $dir ; $ACLOCAL )
done
@ -105,7 +105,7 @@ fi
if ( $AUTOMAKE --version ) < /dev/null > /dev/null 2>&1; then
echo "Building Makefile templates..."
for dir in . lib/reLyX ; do
for dir in . ; do
echo " $dir"
( cd $dir ; $AUTOMAKE )
done
@ -117,7 +117,7 @@ fi
if ( $AUTOCONF --version ) < /dev/null > /dev/null 2>&1; then
echo "Building configure..."
for dir in . lib/reLyX ; do
for dir in . ; do
echo " $dir"
( cd $dir ; $AUTOCONF )
done

View File

@ -401,7 +401,7 @@ int mkstemp(char*);
])
### Finish the work.
AC_CONFIG_SUBDIRS(lib lib/reLyX)
AC_CONFIG_SUBDIRS(lib)
AC_CONFIG_FILES([Makefile m4/Makefile \
boost/Makefile \
boost/libs/Makefile \

View File

@ -1,3 +1,9 @@
2005-07-16 Lars Gullik Bjønnes <larsbj@lyx.org>
* tools/README.bin.example: remove reLyX stuff
* lyx.spec.in: remove reLyX stuff
2005-07-16 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* Win32/packaging/package_lyxwin.sh:

View File

@ -65,7 +65,6 @@ mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}/tex \
#
# Don't use %{name}.xpm, this will not work with --version-suffix
cp -a lib/images/lyx.xpm ${RPM_BUILD_ROOT}%{_datadir}/%{name}/images/
cp lib/reLyX/README README.reLyX
%clean
rm -rf ${RPM_BUILD_ROOT}
@ -86,12 +85,6 @@ echo "Configuring LyX for your system..."
cd %{_datadir}/%{name}
./configure --srcdir
# Fix reLyX perl program if the prefix is non-standard
if [ "%{_prefix}" != "/usr" ]
then
perl -pi -e "s!/usr/share/%{name}!%{_datadir}/%{name}!" %{_bindir}/reLyX
fi
%postun
# Fix the TeX file hash
#
@ -101,7 +94,7 @@ texhash
%defattr(-,root,root)
%doc ABOUT-NLS ANNOUNCE COPYING
%doc README UPGRADING ChangeLog NEWS
%doc lib/CREDITS README.reLyX
%doc lib/CREDITS
%{_bindir}/*
%{_mandir}/man?/*
%{_datadir}/locale/*/LC_MESSAGES/*

View File

@ -15,12 +15,6 @@ To use this binary distribution of LyX, please follow these steps:
you unpacked the distribution in /usr/local, your PATH environment
variable should contain "/usr/local/bin".
4) If you want to use reLyX, the LaTeX-to-LyX translator, you will
have to edit the first line of the script, which should read
#!/usr/local/bin/perl
if you have perl installed as /usr/local/bin/perl.
Note that reLyX requires at least perl version 5.002.
That's it. Happy LyXing !

View File

@ -1,3 +1,11 @@
2005-07-16 Lars Gullik Bjønnes <larsbj@lyx.org>
* syntax.default: file moved here from reLyX dir
* configure.m4: fix path search, search for tex2lyx instead of
reLyX, don't create help dir
* Makefile.am: remove reLyx stuff, add syntax.default to pkg_DATA
* Remove the reLyX dir
2005-07-15 José Matos <jamatos@lyx.org>
* Makefile.am: remove lyx2lyx references, place it only as a

View File

@ -2,7 +2,7 @@ include $(top_srcdir)/config/common.am
DISTCLEANFILES += texput.log textclass.lst packages.lst lyxrc.defaults
SUBDIRS = doc reLyX lyx2lyx
SUBDIRS = doc lyx2lyx
EXTRA_DIST = \
configure.m4 \
@ -15,7 +15,7 @@ CHMOD = chmod
# and chmod manually in install-data-hook.
dist_pkgdata_DATA = lyxrc.example CREDITS chkconfig.ltx configure \
lyxrc.defaults textclass.lst packages.lst external_templates \
encodings languages symbols
encodings languages symbols syntax.default
binddir = $(pkgdatadir)/bind
dist_bind_DATA = \

View File

@ -38,14 +38,15 @@ set dummy $ac_prog ; ac_word=$[2]
if test -n "$ac_word"; then
MSG_CHECKING([for \"$ac_word\"],[+])
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
save_PATH=$PATH ; PATH=:$PATH
for ac_dir in ${PATH} ; do
if test -x [$ac_dir/$ac_word]; then
$2="$ac_prog"
break
fi
done
IFS="$ac_save_ifs"
PATH=$save_PATH
if test -n "[$]$2"; then
ac_result=yes
@ -198,7 +199,7 @@ case `uname -s` in
esac
#### Create the build directories if necessary
for dir in bind clipart doc examples help images kbd layouts reLyX \
for dir in bind clipart doc examples images kbd layouts \
scripts templates ui ; do
test ! -d $dir && mkdir $dir
done
@ -258,12 +259,8 @@ SEARCH_PROG([for a raster image editor], RASTERIMAGE_EDITOR, gimp)
SEARCH_PROG([for a text editor], TEXT_EDITOR, xemacs gvim kedit kwrite kate nedit gedit notepad)
# Search for an installed reLyX or a ready-to-install one
save_PATH=${PATH}
PATH=${PATH}:./reLyX/
SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command, "reLyX -f \$\$i")
PATH=${save_PATH}
tex_to_lyx_command=`echo $tex_to_lyx_command | sed "s,reLyX,reLyX$version_suffix,"`
# Search for an installed tex2lyx or a ready-to-install one
SEARCH_PROG([for a LaTeX -> LyX converter],tex_to_lyx_command, "$PWD/../src/tex2lyx/tex2lyx -f \$\$i" "tex2lyx$version_suffix -f \$\$i")
SEARCH_PROG([for a Noweb -> LyX converter],literate_to_lyx_command,"noweb2lyx \$\$i \$\$o")
literate_to_lyx_command=`echo $literate_to_lyx_command | sed "s,noweb2lyx,noweb2lyx$version_suffix,"`

View File

@ -1,13 +0,0 @@
autom4te-2.53.cache
reLyX
noweb2lyx
Makefile.in
Makefile
aclocal.m4
configure
config.log
config.status
configure
reLyX.1
autom4te.cache
configure.lineno

View File

@ -1,91 +0,0 @@
There are still a couple large bugs (or features lacking) in reLyX, and new
users (i.e., everyone) will need to know them in order to know how to avoid
them. Those bugs are currently listed in the BUGS section of the reLyX man
page. This file lists only the smaller bugs. This includes bugs which appear
only rarely, and bugs which may be more common but do not affect the printed
output.
- In optional arguments, reLyX doesn't recognize a braced bracket "{]}"
as being different from a regular bracket. You'll notice this problem if
you've got a description environment item like "\item [foo {]} bar]". This
is probably simplest to fix in the LyX file after you run reLyX. If
you're very unlucky, it could mess up reLyX, in which case you'll have to
remove it from the TeX file and put it in the LyX file after you translate it.
- The underscore character '_', when used as an argument to an unknown command,
may be copied incorrectly. \foo{a_b} will be copied in TeX mode as \foo{a_{b}}.
'_' in math mode works fine. It also works fine as the argument to known
tokens, like \cite{foo_bar}, or even in translated arguments to untranslatable
commands (see the Syntax Files section of the man page). Also, if you have
an underscore in a file name, you have to use the LaTeX style of \input. That
is, write "\input{a_b}" instead of the old TeX style "\input a_b" (even though
the latter is legal LaTeX). If \includegraphics can't be copied for various
reasons (see the reLyX man page), underscore will break. Finally,
\label{foo_bar} in math mode will break.
- Complicated nesting could confuse matters. Simple nesting, including nesting
lists within lists, or having multiple paragraphs in one \item, should work.
- ' { } { } ' is a legal LaTeX way to make five spaces. reLyX will translate
it as ' ', which will show up in the LyX display, but not in the LaTeX
document. Use '~~~~~' instead. Or don't use it because it's usually bad style.
- \normalfont and \textnormal are not supported and may confuse the font stacks.
You can change "\sffamily foo \normalfont" to "\sffamily foo \rmfamily" or
even to "\textsf{foo}" to get around this problem.
- font sizing commands *usually* work. reLyX may complain about "font
confusion" when several font sizing commands are given in close proximity.
Even if it complains, it may get the sizes right.
- {\cal foo} is translated as {\mathcal{foo}}. The LyX file will display
and extra set of (red) braces, but those braces won't show up in the dvi file
or printed output.
- reLyX translates {\bf foo} to \textbf{foo}. However, it also does that in
math mode. Write \mathbf{foo} explicitly in the LyX file instead.
- period in \label or \ref will word-wrap. E.g. \ref{Dr. foo} will yield
a reference to "Dr." in the LyX file, with an extra "foo}" printed as
regular text
- \end or \begin in a \newcommand, for example, will really confuse reLyX,
because they're not being used for their regular purpose of starting or
ending an environment. Put the \newcommand in the preamble to avoid this
problem.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Changes in translation caused by features not (yet) in LyX:
- Centering (or right or left justifying) works on full paragraphs. Therefore,
if you have the following:
\begin{center}
centered text
\end{center}
NON-centered text without a blank line before it
the reLyX'ed file will put your NON-centered text into a new paragraph. To
closely approximate what you had, just select "No Indent" from the
Layout->Paragraph popup for the new paragraph.
- LyX support for tables isn't perfect. Some complicated column descriptions
(e.g., multiple lines between columns or @{} column descriptions) will not
be displayed WYSIWYG, but will be printed out correctly. These can be
entered using the "Extra" popup in LyX's table popup. reLyX should
translate these things correctly. In addition, '|' characters in the second
argument to \multicolumn will be ignored. (For example, if you have:
\begin{tabular}{|cc|}
a & b \\
\multicolumn{2}{c}
\end{tabular}
there will be lines to the right and left in all rows of the table.)
Tables must be their own paragraphs, while LaTeX allows a table to appear
in the middle of a paragraph. \clines will only work on multicolumns. However,
most tables that aren't too complicated will be translated just fine. For very
complicated tables, use a "skip" block, so that they will be copied in TeX
mode.
- Nested \input files will only work if you set \use_tempdir false in your
lyxrc file.

File diff suppressed because it is too large Load Diff

View File

@ -1,182 +0,0 @@
From 2.9.1.1 to 2.9.2.2
- very minor bug fixes (win32 first line of doc, \epsfxsize command)
- implement \textasciitilde
From 2.9.1.1 to 2.9.2.1
- noweb documents, with -n option (Kayvan Aghaiepour Sylvan)
From 2.9 to 2.9.1.1
- translate text argument to \resizebox, \scalebox, \rotatebox
- BUG: if syntax.default said to "translate" the third of three arguments to
a command, reLyX would actually translate the second.
- handle \r, \k
- Change a line to work in Windows
From 2.8.1.2 to 2.9
- Empty layouts (like slide and hollywood's fadein) are supported (reported
and pseudo-coded by Alain Castera)
- \includegraphics -- graphics and graphicx forms, to the extent that LyX
supports them
- Bug: bugfix in 2.6.1.3 meant \n in "\ERT{text\ntext}" was lost! (Now it's
converted to a space)
- REfixed the bug where thebibliography environment created an extra paragraph
- Handle \epsfig, \psfig
- Handle \epsffile, \epsfbox
- LyX now understands sqrt[]{}! Don't need to delete optional argument anymore.
- BUG: "\layout Abstract " had extra space at end; LyX didn't recognize it!
- BUG: tables with empty cells at end and no bottom line were mistranslated
- BUG: one-column tables could be mistranslated (HACK)
From 2.8.1.1 to 2.8.1.2
- Cleaned up directory stuff. "reLyX foo/bar.tex" wouldn't work if foo/bar.tex
\include'd another file
From 2.8 to 2.8.1.1
- -o option allows you to create temp & LyX file(s) in a given output directory
- support figure & figure* float
- BUG: \input and \include support was broken
- BUG: reLyX didn't notice if it was trying to write to a read-only directory,
causing bad errors. Now it dies politely.
- support \index and \printindex
- \^ and \~ are apparently legal LaTeX, so support them. Also \textless,
\textgreater, \textbar
From 2.7.2.1 to 2.8
- support \textbackslash, \listof[tables|figures|algorithms], \ensuremath
- reLyXskip environment is magical; it doesn't get put into LyX file
- support for verbatim environment and \verb command
- _ in bibliographystyle filename works
- some "kernel cleanup", including removing some hacks, and adding methods
- -h option prints usage. So does dying due to missing options, filename, etc.
- translate \sp, etc. to their LyX-supported equivalents, using new 'reLyXmt'
block in syntax.defaults file
- translate certain arguments to untranslatable commmands (e.g., argument
to \mbox{}) as regular LaTeX
From 2.7.1.1 to 2.7.2.1
- Translate common optional args to \documentclass
- support TeX style \input
From 2.6.1.3 to 2.7.1.1
- support \include{foo} and \input{foo} (but not TeX's "\input foo.tex")
- -p option translates latex fragments
- Whitespace is a lot closer to lyx
- Correctly (?) translate layouts of LatexType Command found in layout files
even if the command isn't in syntax.default. E.g., \curradr, \lyxaddress
From 2.6.1.2 to 2.6.1.3
- table bug: \multicolumn could screw up where cells were placed
- table bug: \\ \hline at end of table made broken LyX tables
- Don't print leading C-Enter for strings in TeX mode (e.g. unknown tokens)
- support optional argument to \cite
- support \hfill
- Bug: known but untranslatable tokens may need braces after them. Translate
{\oe} or \oe{} as TeX mode \oe{}.
From 2.6 to 2.6.1.2
- Bug: \@ wasn't being handled correctly.
- BUG! An 's' coming right after a comment would be deleted!
- correct support for List (won't work for things nested in List,
but that's OK because List is buggy anyway!) and (koma) Labeling layouts
- support for \bibliography and \bibliographystyle commands (slightly kludged)
- Buglet: needed to add a space after args in List, Description
- Better handling of spaces for tokens and regular text
- "Welcome message" with revision date
- \LaTeXe -> "LaTeX2e"; support \underbar, \noun
From 2.5.2.3 to 2.6
- text after \end{center|right|left} automatically starts new paragraph
- \bibitem and thebibliography (i.e., non-BibTeX bibliographies) support
- Partial fix to '_' bug. Non-math mode _ will translate correctly as long as
it's not in an argument of an unknown command
- Streamlined (non-debug) output to ~ 10 short lines
- Allow comments in optional arguments to \documentclass
- Handle @{} descriptions in tables
- Added 'slide' as a regular environment in syntax.default
- syntax file stuff broke \multicolumn & \cline. HACKED them back in.
(had to pretend in syntax file that they don't take arguments!)
- Fixed bug: *'s in regular environments are now recognized
- Buglet: font size changes in footnote caused crash
- Buglet: print \n after align commands
From 2.5.2.2 to 2.5.2.3
- Read ~/.lyx/reLyX/syntax.default (if it exists) instead of system-wide file
- Always put untranslatable text in TeX mode (never use LaTeX layout)
- LaTeX command \newline is synonomous with \\, so support it
From 2.5.1.1 to 2.5.2.2
- Look in ~/.lyx/layouts OR $lyxdir/layouts for layout files
- -s option allows user to read syntax files in addition to the default one
- "regular environments" section in syntax file (partially obsoletes -r option)
- Slight change to \latex block vs. LaTeX paragraph printing decision
From 2.5 to 2.5.1.1
- Fixed bug that made syntax.default useless in translation pass (thanks Jmarc!)
- Fix to printing things in TeX mode (improvements & removing a couple buglets)
- \thanks and \noindent supported
From 2.4 to 2.5
- Bug: \underline broke reLyX
- Try to read "foo.tex" if input file "foo" doesn't exist
- Read in a default LaTeX syntax file saying how many (required/optional)
arguments each LaTeX command takes
- Ignore optional arguments to commands for which LyX can't handle them
(e.g., \sqrt, \\)
- More intelligently add braces to (math) command args that are missing them
(e.g., x^\sqrt2 now works)
From 2.3.1.1 to 2.4
- Table support! (i.e., tabular environment, \hline, \cline, \multicolumn)
- table environment (including \caption and a tabular environment, e.g.)
- (mostly) removed extra spaces (which display in LyX, but not in dvi)
- Added support for accents, including all accents in table 3.1 of Lamport,
plus \l \L ?` and !` (last two in LaTeX mode since LyX doesn't support 'em)
- Added support for center, flushright, and flushleft environments
- Add {} to end of unknown token if necessary
- Fixed buglet: unknown token at end of paragraph didn't start new paragraph
From 2.3 to 2.3.1.1
- Don't bother translating '\ ', since ~ isn't equivalent
- Description \item commands now handled correctly (except "{]}")
- Added -c option to override the LyX file's textclass
- Fixed bug which didn't allow unknown environment nested within itself
- Ignore anything after the \end{document} command
- Fixed bug where floats (like footnote) didn't print enough \n's (which could
lead to LyX ignoring text following the footnote up to the next \n!)
From 2.2.3.1 to 2.3
- Remove LyX-generated preamble matter (JAMatos)
- read LyX layout files from LIBDIR/layouts/ (-t option no longer necessary)
From 2.2.1.3 to 2.2.3.1
- Added -r and -t options
- deal with perl5.002 bug and fixed font commands at beginning of paragraph bug
From 2.2.1.1 to 2.2.1.3
- Added -d switch
- Fixed bug: \end{environment} wasn't ending local commands
- Add braces to \frac, plus better brace-adding for ^ and _ (still not perfect)
- Wrote a man page
From 2.2 to 2.2.1.1:
- Got rid of *many* 'uninitialized value' errors due to $ or eof
- Added abstract environment
- Fixed support for {\em foo \em bar} + partial fix for {\cal A} in math mode
- Fixed bug: math mode at beginning of a paragraph was mistranslated
- Translate '\ ' as a protected space. This is probably wrong.
- Major rewrite of CleanTeX. Only changes test.relyx2 + adds space to test.lyx
but in the future it will allow better verbatim copying
From 2.1.1.1 to 2.2:
- Major code rewrite/reorganization: should not change functionality (Karger)
- CleanTeX is now a *subroutine*, not a separate executable (Karger)
- Added -f option to clobber existing .lyx file (Karger)
From 2.1 to 2.1.1.1
- Many little bug fixes (Karger)
2.1 Initial release 980118
1.1 Initial version, checked in 971210
pre1.1 work (mostly on CleanTeX) done by John Weiss.

View File

@ -1,340 +0,0 @@
# This file is part of reLyX
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
package CleanTeX;
# This package prepares a LaTeX file for translation to LyX
# - Translates some local commands (e.g., {\em blah} to {\emph{blah}})
# - Prepares math mode stuff for LyX. LyX reads LaTeX math mode directly,
# so reLyX can basically copy all math mode exactly, but LyX is a
# bit stricter than LaTeX. E.g., translate 'x^2' -> 'x^{2}
# - Removes optional arguments if LyX doesn't understand them, e.g. \\
use strict;
use Verbatim;
######
# Global variables
my $last_eaten; # last token we ate
# List of commands for which LyX doesn't support the optional argument
my @DeleteOptArg = map {"\\$_"} qw(\\ \\*
chapter section subsection subsubsection paragraph subparagraph
);
my $debug_on; # was -d option given?
######################### PARSER INVOCATION ################################
sub call_parser {
# This subroutine opens the TeX parser and processes the file.
# Arg0 is the name of the input TeX file
# Arg1 is the name of the output "clean" file
my ($InFileName, $OutFileName) = (shift,shift);
$debug_on = (defined($main::opt_d) && $main::opt_d);
my $zzz=$debug_on ? " TeX file ($InFileName --> $OutFileName)\n" :"... ";
print STDERR "Cleaning$zzz";
open (OUTFILE, ">$OutFileName") or die "problem opening $OutFileName: $!\n";
# Create the list of tokens for the parser
# Parts of the token list are swiped from TeX.pm
my %MyTokens = ( '{' => $Text::TeX::Tokens{'{'},
'}' => $Text::TeX::Tokens{'}'},
'$' => $Text::TeX::Tokens{'$'},
'$$' => $Text::TeX::Tokens{'$$'},
'\begin' => $Text::TeX::Tokens{'\begin'},
'\end' => $Text::TeX::Tokens{'\end'},
);
# Put local tokens, like \em, into %MyTokens
#Note: \cal is "local", although it's found in math mode
# (The "map" just puts a backslash in front of each word in the list)
my @LocalTokens = qw (em rm bf tt sf sc sl it
rmfamily ttfamily sffamily mdseries bfseries
upshape itshape slshape scshape cal
);
foreach (@LocalTokens) {
$MyTokens{"\\$_"} = $Text::TeX::Tokens{'\em'}
}
# Now add any commands
&ReadCommands::Merge(\%MyTokens);
# Create the fileobject
my $file = new Text::TeX::OpenFile
$InFileName,
'defaultact' => \&clean_tex,
'tokens' => \%MyTokens;
# Now actually process the file
$file->process;
close OUTFILE;
#warn "Done cleaning TeX file\n";
} # end sub call_parser
####################### MAIN TRANSLATING SUBROUTINE ########################
# Routine called by the TeX-parser to perform token-processing.
sub clean_tex {
my($eaten,$txt) = (shift,shift);
my ($outstr, $type);
# Translation table for TT::Token tokens whose translations should
# NOT have whitespace after them! See sub translate...
# Note that tokens of type TT::EndLocal are always translated to '}'. So,
# any token defined as a local token *must* be translated to something
# with a '{' (e.g., '\em' -> '\emph{') or we'll have mismatched braces
my %no_ws_transtbl = (
'\em' => '\emph{',
'\rm' => '\textrm{',
'\bf' => '\textbf{',
'\tt' => '\texttt{',
'\sf' => '\textsf{',
'\sc' => '\textsc{',
'\sl' => '\textsl{',
'\it' => '\textit{',
'\rmfamily' => '\textrm{',
'\ttfamily' => '\texttt{',
'\sffamily' => '\textsf{',
'\mdseries' => '\textmd{',
'\bfseries' => '\textbf{',
'\upshape' => '\textup{',
'\itshape' => '\textit{',
'\slshape' => '\textsl{',
'\scshape' => '\textsc{',
'\cal' => '\mathcal{',
);
# a faux "switch" statement. sets $_ for later use in pattern
# matching.
$type = ref($eaten);
$type =~ s/^Text::TeX::// or die "Non-Text::TeX object";
my $printstr = ""; # default for undefined printstrs etc.
SWITCH: for ($type) {
# Handle blank lines.
if (/Paragraph/) {
last SWITCH;
}
# Handle the end of a local font command - insert a '}'
if (/EndLocal/) {
$printstr = '}';
last SWITCH;
}
# $eaten->exact_print is undefined for previous environments
$outstr = $eaten->exact_print;
if (! defined $outstr) { # comment at end of paragraph
warn "Weird undefined token $eaten!" unless $eaten->comment;
last SWITCH;
}
# Handle LaTeX tokens
if (/^Token$/) {
my $realtok = $eaten->print; # w/out whitespace
# If a comment is its own paragraph, print nothing
last SWITCH unless defined($realtok);
# Special handling for \verb and \verb*
if ($realtok =~ /^\\verb\*?/) {
$printstr = &Verbatim::copy_verb($txt,$eaten);
last SWITCH;
}
# Translate token if necessary, or just print it
# "no_ws" is HACK to remove whitespace, so '\em ' -> '\emph{'
$printstr = &translate($outstr, \%no_ws_transtbl, "no_ws");
# Ignore optional argument(s) if necessary
$printstr .= &handle_opt_args($eaten,$txt);
last SWITCH;
}
# Tokens taking arguments, like '^'
# ADD '{' if there isn't one before the argument!
# TODO can we check whether the command is \label, \include
# and not add the braces in that case?
if (/^BegArgsToken$/) {
$printstr = $outstr;
# Ignore optional argument(s) if necessary
$printstr .= &handle_opt_args($eaten,$txt);
# Add beginning brace before the 1st argument if there isn't one
my $tok = $txt->lookAheadToken;
$printstr .= '{' unless ($tok =~ /\{/);
last SWITCH;
}
# End of one argument, beginning of next
# Note: by default ArgToken,EndArgsToken print nothing
# ADD '}' if there isn't one after the last argument
# Then read and print any optional arguments which may exist
# between this argument the next (we must do this here or we would
# add a '{' before an optional argument!)
# ADD '{' if there isn't one before the next argument!
# (just like we do in BegArgsToken and EndArgsToken)
if (/^ArgToken$/) {
$printstr = $outstr; # = ''
# Add '}' after the argument that ended if necessary
$printstr .= '}' unless $last_eaten->print eq "\}";
# Eat and print any optional arguments
$printstr .= &handle_opt_args($eaten,$txt);
# Add '{' before the next argument if necessary
my $tok = $txt->lookAheadToken;
$printstr .= '{' unless ($tok =~ /\{/);
last SWITCH;
}
# End of tokens taking arguments, like '^'
# ADD '}' if there isn't one after the last argument, i.e.,
# if the previous token *wasn't* a '}'
# Kludge: for TeX style \input command ("\input foo" with no
# braces) we need to read the whole filename, but parser will have
# read only one char. So read in the rest of the filename before
# printing the '}'.
if (/^EndArgsToken$/) {
$printstr = $outstr; # = ''
unless ($last_eaten->print eq "\}") {
my $s = $eaten->base_token;
if ($s->print eq "\\input") {
my $t = $txt->lookAheadToken;
# For one-char filename (a.tex) do nothing
if ($t =~ /^[\w.\-]/) {
my $u = $txt->eatMultiToken;
$t = $u->print;
$t =~ s/\s+//g;
$printstr .= $t;
}
# TeX \input always adds .tex ending
$printstr .= ".tex";
}
$printstr .= '}';
}
# Don't bother eating optional args coming after the last
# required arg: they'll just be copied as text
last SWITCH;
}
# Handle opening groups, like '{' and '$'.
if (/Begin::Group$/) {
$printstr = $outstr;
last SWITCH;
}
# Handle closing groups, like '}' and '$'.
if (/End::Group$/) {
$printstr = $outstr;
last SWITCH;
}
if (/Begin::Group::Args/) {
my $env = $eaten->environment;
$printstr = $outstr;
if ($env eq "verbatim" || $env eq "reLyXskip") {
# copy everything up to "\end{foo}"
$printstr .= &Verbatim::copy_verbatim($txt, $eaten);
}
last SWITCH;
}
if (/End::Group::Args/) {
$printstr = $outstr;
last SWITCH;
}
if (/Text/) {
$printstr = $outstr;
last SWITCH;
}
# The default action - print the string.
$printstr = $outstr;
} # end SWITCH:for ($type)
# Actually print the string
if (defined $printstr) {
print OUTFILE $printstr;
$last_eaten = $eaten; #save for next time
} else {warn "Undefined printstr";}
} # end sub clean_tex
#################### TRANSLATOR SUBROUTINES ###############################
sub translate {
# Replace a string (possibly with whitespace around it) with another
# Arg0 is a string, Arg1 is a reference to a hash containing translations
# If a token not in the table is passed in, do nothing
# If Arg2 is defined AND the token is known, then remove whitespace from
# the end of the translated token. This is a HACK to do '\em ' -> '\emph{'
# Return the string, possibly modified
my ($tokstr, $transref) = (shift, shift);
my $remove_ws = shift;
my %transtable = %$transref;
# remove whitespace from the string (since transtable doesn't have it)
my $stripstr = $tokstr;
$stripstr =~ s/^\s*(\S+)\s*$/$1/ or warn "couldn't strip token";
if ( exists $transtable{$stripstr} ) {
# use \Q or \, (, $, and [ will be misinterpreted
$tokstr =~ s/\Q$stripstr\E/$transtable{$stripstr}/;
# remove whitespace?
if (defined $remove_ws) {
$tokstr =~ s/\s*$//;
}
}
return $tokstr;
}
sub handle_opt_args {
# read and concatenate OR IGNORE optional arguments
# Arg0 is a BegArgsToken or ArgToken
my ($eaten,$fileobject) = (shift,shift);
my $outstr = "";
# If at end of paragraph, don't bother looking for optArgs
return "" unless $fileobject->lookAheadToken;
# Get the next argument(s) expected for this token == /^o*[rR]?$/
# If there are no args expected, just return
my $curr_args = $eaten->next_args($fileobject) or return "";
# Now print or ignore any optional arguments
# If there's an 'r' in curr_args, we're done for now
my $foo;
my $token_name = $eaten->token_name; # (needed for EndArgsToken, e.g.)
while ($curr_args =~ s/^o//) {
my $opt = $fileobject->eatOptionalArgument;
# Print any initial space before the optional argument
if ($foo = $opt->exact_print) {
if ($foo =~ /^(\s+)/) {
$outstr .= $1;
}
}
# Print the argument or ignore it
if ($opt->print) {
if (grep /^\Q$token_name\E$/, @DeleteOptArg) {
print "Optional argument '",$opt->print,
"' to macro $token_name ignored\n";
} else {
$outstr .= "[" . $opt->print . "]";
}
} # Was an optional argument found?
}
return $outstr;
} # end sub handle_opt_args
1; # return true value to calling program

View File

@ -1,130 +0,0 @@
# This file is part of reLyX
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
package LastLyX;
# This package is the last step in creating a LyX file. It:
# - rejoins the lyx preamble to the rest of the file
# - adds some information (see below)
# - determines whether reLyX needs to translate any other files (e.g.,
# files included in an \include command)
# - creates a '.lyx' file
#
# reLyX may not have enough information during the previous pass. In that case,
# it puts a "marker" in the temporary file it writes, and stores the missing
# information---when it does come upon it---in a global variable.
# So during this pass, if we see any such markers, we replace them with the
# necessary information. Examples of this include:
# - header information for tables
# - name of the bibliography style file to use
use strict;
use RelyxTable; # handle LaTeX tables
use File::Basename;
my $debug_on; # was -d option given?
sub last_lyx {
# Arg0 is input file name
# Arg1 is output file name (foo.lyx)
# Arg2 is a string containing the entire preamble
my ($InFileName, $OutFileName, $LyXPreamble) = (shift, shift, shift);
$debug_on = (defined($main::opt_d) && $main::opt_d);
my $zzz=$debug_on ? " LyX file ($InFileName --> $OutFileName)\n" :"... ";
print STDERR "Writing$zzz";
open (INFILE, "<$InFileName") or die "problem opening $InFileName: $!\n";
open (OUTFILE,">$OutFileName") or die "problem opening $OutFileName: $!\n";
# Print the preamble
print OUTFILE $LyXPreamble;
# Now print out the rest of the LyX file
# Some lines have to be changed somewhat
# Otherwise just print all lines as they appear.
# TODO In the future, we could buffer text, and then get rid of extra
# '\latex default \latex latex' or '\end_deeper \begin_deeper' pieces
# created by the translator
while (<INFILE>) {
if (/$RelyxTable::TableBeginString/o) {
# Write out the header information for the table
$_ = &print_table;
} elsif (/$BasicLyX::bibstyle_insert_string/o) {
# Replace the "insert bibstyle file here" with the actual file name
my $ins = $BasicLyX::bibstyle_insert_string;
my $fil = $BasicLyX::bibstyle_file;
if ($fil) {
s/$ins/$fil/;
} else {
warn("Don't know which bibliographystyle file to use!\n".
"Replace '$ins' in the LyX file with the bibstyle file\n");
}
} elsif (/^\Q$BasicLyX::Begin_Inset_Include\E/o) {
# tell main:: we need to translate an included (or inputted) file
m/\{(.*)\}\s*$/ or warn "weird Include command $_";
my $fil = $1;
# Change relative path to absolute path if necessary
my $abs_fil = &main::abs_file_name($fil);
print "Adding $abs_fil to file list\n" if $debug_on;
push @main::File_List, $abs_fil;
# include file.lyx, not file.tex!
my ($basename, $path, $suffix)=fileparse($fil, @main::Suffix_List);
$suffix = "" unless defined $suffix;
$path .= '/' unless $path =~ /\/$/;
my $newfile;
if ($main::opt_o) { # all files go to outputdir; no path nec.
$newfile = "$basename.lyx";
} else { # keep relative path, e.g. Just change/add suffix
($newfile = $fil) =~ s/$suffix$/.lyx/;
}
s/\Q{$fil}\E/{$newfile}/;
} # end special if for table, bibstyle, include
print OUTFILE $_;
}
close INFILE; close OUTFILE;
#warn "Done writing LyX file!\n";
} # end sub last_lyx
sub print_table {
# Print a table, from TableBeginString to TableEndString
# Also (kind of a hack) remove the last \newline in a table, if any,
# since it causes LyX to seg fault.
my $to_print=""; # string to collect the table in
my $thistable = shift(@RelyxTable::table_array);
# Collect the whole table in $to_print
my $line;
while (($line = <INFILE>) !~ /$RelyxTable::TableEndString/o) {
$to_print .= $line;
}
# Remove the last \newline, if it was created by a \\ \hline
# at the end of a table. (Note: according to Lamport, \\ at the end of
# a table is *illegal* unless followed by an \hline)
# If it was created due to an empty cell at the end of the table, though
# (latex table "a & b \\ c &", e.g.) then we need to keep it!
# HACK HACK HACK. If it's a one-column table, then we couldn't
# know while reading the table that the last row was empty, so we
# couldn't pop the last row then. So do it now. Yuck.
if ($thistable->numcols==1) {
$to_print =~ s/\\newline(?=\s*$)// && pop @{$thistable->{"rows"}}
} elsif ($thistable->{"rows"}[$thistable->numrows -1]->{"bottom_line"}) {
$to_print =~ s/\\newline(?=\s*$)//;
}
# Put the header information at the top
# We have to do this *after* reading the table because of the
# one-column table hack. Yuck.
$to_print = $thistable->print_info . $to_print;
return $to_print;
} # end sub print_table
1; # return true to main package

View File

@ -1,42 +0,0 @@
******* Files of general interest
README - General info, pointer to man page
MANIFEST - this file (hopefully)
CHANGES - changes from various versions
BUGS - bugs (note that some larger bugs are in the man page)
syntax.default - file describing LaTeX syntax
reLyX.man - man page for using reLyX
TODO - future plans
******* Files of interest to developers (maybe)
reLyXmain.pl - Executable Perl script to translate LaTeX to LyX
reLyX.in - input file to generate wrapper script 'reLyX', which gets
installed in user's path, e.g., /usr/local/bin
reLyX calls reLyXmain.pl
noweb2lyx.in - input file to generate noweb2lyx, for converting noweb
file to LyX. noweb2lyx calls reLyX. Alternatively (but
not recursively) reLyX -n calls noweb2lyx
test.ltx - test tex file
test.lyx - LyX file created by running 'reLyX.pl test.ltx'
reLyX.pod - documentation. Used to generate man page
(could be used to make HTML or text, too!)
*.pm are files containing subroutines (aka modules) which reLyX.pl calls
MakePreamble.pm - split off and translate the LaTeX preamble
CleanTeX.pm - "Clean" the TeX file
BasicLyX.pm - main translation pass
LastLyX.pm - final pass: create the LyX file
ReadCommands.pm - subs to read and use a file containing LaTeX syntax
RelyxFigure.pm - classes & methods for handling LaTeX figures
RelyxTable.pm - classes & methods for handling LaTeX tables
Verbatim.pm - subs to copy stuff exactly (e.g, \verb or unknown commands)
Text/TeX.pm - Text::TeX package which contains the TeX parser
./Text/TeX.pm was originally copied from
Text-TeX-0.01/Text/TeX.pm, but has been changed.
Text/manpage.3pm original manpage for Text::TeX
Text::TeX v0.01 was originally obtained from CPAN, but it has been
changed rather significantly. The original package was written by Ilya
Zakharevich (ilya@math.ohio-state.edu)

View File

@ -1,383 +0,0 @@
# This file is part of reLyX.
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
package MakePreamble;
# This package reads a LaTeX preamble (everything before \begin{document}
# and translates it to LaTeX.
use strict;
my $debug_on; # package-wide variable set if -d option is given
my $true_class; # which textclass to use (if -c option is given)
sub split_preamble {
# Split the file into two files, one with just the preamble
# Simply copy stuff verbatim, saving translation for later
# Skip the LyX-generated portion of the preamble, if any. (Otherwise,
# when you try to "view dvi" in LyX, there will be two copies of the
# preamble matter, which will break LyX.
my ($InFileName, $PreambleName, $OutFileName) = (shift, shift, shift);
my ($a, $b, $c);
my $forget=0;
# Was -d option given?
$debug_on = (defined($main::opt_d) && $main::opt_d);
# -c option?
$true_class = defined($main::opt_c) ? $main::opt_c : "";
my $zzz = $debug_on
? " from LaTeX file $InFileName into $PreambleName and $OutFileName"
: "";
warn "Splitting Preamble$zzz\n";
open (INFILE, "<$InFileName") or die "problem opening $InFileName: $!\n";
open (PREAMBLE, ">$PreambleName") or
die "problem opening $PreambleName: $!\n";
open (OUTFILE, ">$OutFileName") or die "problem opening $OutFileName: $!\n";
# Copy everything up to "\begin{document}" into the preamble
while (<INFILE>) {
if (s/\Q\begin{document}\E//) {
($a, $b, $c) = ($`, $&, $'); # save for later
last;
}
# In real life, there should never be Textclass specific stuff unless
# there is also LyX specific. But it can't hurt to test for both.
$forget=1 if m/%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific/ ||
m/%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific/;
print PREAMBLE $_ unless $forget;
$forget=0 if m/%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified/;
}
die "Didn't find \\begin{document} command!" unless defined $b;
# There *could* be a preamble command on the same line as \begin{doc}!
print PREAMBLE $a;
print "Put preamble into file $PreambleName\n" if $debug_on;
# Copy everything else into another file
# Ignore anything after '\end{document}
print OUTFILE $b, $c; #'\begin{document}' plus anything else on the line
while (<INFILE>) {
print OUTFILE $_;
last if $_ =~ /^[^%]*\Q\end{document}\E/;
}
print "Put rest of file into $OutFileName\n" if $debug_on;
close INFILE; close OUTFILE; close PREAMBLE;
#warn "Done splitting preamble\n";
} #end sub split_preamble
# Actually translate a LaTeX preamble (in a file) into a LyX preamble.
# Input:
# First argument is the name of the file containing *only* the preamble
# Second argument is the LyX format (e.g., "2.15")
#
# Output: document class, LyX Preamble, LaTeX preamble
# LyX premable contains the LyX options etc.
# LaTeX preamble is stuff that doesn't translate into LyX options)
#
sub translate_preamble {
my $PreambleName = shift;
my $Format = shift;
$debug_on = (defined($main::opt_d) && $main::opt_d);
my $zzz=$debug_on ? " from $PreambleName" :"";
warn "Creating LyX preamble$zzz\n";
open (PREAMBLE, "<$PreambleName");
# Translate optional args to \documentclass to LyX preamble statements
my %Option_Trans_Table = (
"10pt" => "\\paperfontsize 10",
"11pt" => "\\paperfontsize 11",
"12pt" => "\\paperfontsize 12",
"letterpaper" => "\\papersize letterpaper",
"legalpaper" => "\\papersize legalpaper",
"executivepaper" => "\\papersize executivepaper",
"a3paper" => "\\papersize a3paper",
"a4paper" => "\\papersize a4paper",
"a5paper" => "\\papersize a5paper",
"b3paper" => "\\papersize b3paper",
"b4paper" => "\\papersize b4paper",
"b5paper" => "\\papersize b5paper",
"twoside" => "\\papersides 2",
"oneside" => "\\papersides 1",
"landscape" => "\\paperorientation landscape",
"onecolumn" => "\\papercolumns 1",
"twocolumn" => "\\papercolumns 2",
);
my %Languages_Table = ();
# if the language file is available then added it to the languages table
if(-e "$main::lyxdir/languages") {
open (LANGUAGES, "<$main::lyxdir/languages");
while(<LANGUAGES>) {
next if(/^\#/); #ignore comments
my @lang_field = split(/\s+/);
$Languages_Table{$lang_field[1]} = $lang_field[1];
}
close(LANGUAGES);
}
# This is the string in which we're concatenating everything we translate
my $LyX_Preamble = "";
# It would be nice to read the defaults.lyx file but for now we don't bother
#my $default_dir = "templates/";
#my $default_name = "defaults.lyx";
#my $default_file = $dot_lyxdir . $default_dir . $default_name;
#if (-e $default_file) {
# print "Going to open default LyX file $default_file\n";
# open (DEFAULT_LYX,$default_file) or warn "can't find default lyx file!";
# if ($fmt =~ /^\s*\\lyxformat [0-9.]+/) {
# print $fmt
# } else {
# die "Need \\lyxformat command in first line of default lyx file!";
# }
# AFTER printing the preamble, we'd print other commands from defaults.lyx
# while (($line = <DEFAULT_LYX>) !~ /^.*\\layout/) {
# if ($line !~ /^\s*(\#|\\textclass\W)/) { #already printed this line
# print OUTFILE $line;
# }
# }
#}
# Write first line of the lyx file
$LyX_Preamble .= "\# The reLyX bundled with LyX 1.3 created this file.\n" .
"# For more info see http://www.lyx.org/\n";
# Print \lyxformat.
$LyX_Preamble .= "\\lyxformat $Format\n";
# Ignore everything up to the \documentclass
my $ignore = "";
while (<PREAMBLE>) {
next if /^\s*$/ || /^\s*%/; # skip whitespace or comment
# could just allow 'documentclass' and not support 2.09
last if s/^\s*\\document(style|class)//;
$ignore .= $_; # concatenate the ignored text
} # end while
warn "Uncommented text before \\documentclass command ignored!\n"if $ignore;
print "Ignored text was\n------\n$ignore------\n" if $debug_on && $ignore;
# concatenate all the extra options until the required argument to
# \documentclass, which will be in braces
until (eof(PREAMBLE) || /\{/) {
my $instr = <PREAMBLE>;
$instr =~ s/\s*%.*$//; # get rid of comments
chomp; # remove the \n on $_ prior to concatenating
$_ .= $instr;
} # end loop; check the now longer $_ for a brace
# Read optional arguments, which are now guaranteed to be on one line
# (They're read here, but printed AFTER the \\textclass command)
# Note: the below pattern match is *always* successful, so $& is always
# set, but it will be '' if there are no optional arguments. $1 will be
# whatever was inside the brackets (i.e., not including the [])
my $extra_options;
if (defined($_)) {
s/^\s*//; # there might be space before args
s/$Text::TeX::optionalArgument//;
$extra_options = $1 if $&;
}
# Read the document class, in braces, then convert it to a textclass
# However, if the user input a different class with the -c option, use that
s/\s*\{(\S+)\s*\}//;
my $class = $1;
$class = $true_class if $true_class; # override from -c option
die "no document class in file, no -c option given\n" unless $class;
$LyX_Preamble .= "\\textclass $class\n";
print "document class is $class\n" if $debug_on;
# Analyze the extra options, and remove those we know about
if ($extra_options) {
my $op;
foreach $op (keys %Option_Trans_Table) {
$extra_options =~ s/\b$op\b// && do {
$LyX_Preamble .= "$Option_Trans_Table{$op}\n";
print "Document option $op\n" if $debug_on;
}
}
$extra_options =~ s/^,+|,+(?=,)|,+$//g; # extra commas
# Analyze further the extra options for languages, the last language
# is the document language, so the order matters.
my $language ="";
foreach $op (split(/\s*,\s*/,$extra_options)) {
if (exists $Languages_Table{$op}) {
$language = $op;
$extra_options =~ s/\b$op\b//;
print "Document language $op\n" if $debug_on;
}
}
if ($language) {
$LyX_Preamble .= "\\language $language\n";
}
$extra_options =~ s/^,+|,+(?=,)|,+$//g; # extra commas
}
# Convert any remaining options to an \options command
if ($extra_options) {
$LyX_Preamble .= "\\options $extra_options\n";
print "extra options: $extra_options\n" if $debug_on;
}
# Now copy the whole preamble into the preamble of the LyX document
# (unless there is no preamble)
# Everything until the end of filehandle PREAMBLE is preamble matter
my $Latex_Preamble = $_; # there COULD be a preamble command on same line
while (<PREAMBLE>) {
$Latex_Preamble .= $_;
}
# Process $Latex_Preamble, and try to extract as much as possible to
# $Lyx_Preamble (jamatos 2001/07/21)
# Deal with counters, for now just "tocdepth" and "secnumdepth"
my %Counter_Table = (
"secnumdepth" => "\\secnumdepth",
"tocdepth" => "\\tocdepth"
);
my $ct;
foreach $ct (keys %Counter_Table) {
$Latex_Preamble =~ s/\\setcounter\{$ct\}\{(.*)\}\s*// && do {
$LyX_Preamble .= "$Counter_Table{$ct} $1\n";
}
}
if($Latex_Preamble =~ s/\\pagestyle\{(.*)\}\s*//) {
$LyX_Preamble .= "\\paperpagestyle $1\n";
}
if($Latex_Preamble =~ s/\\usepackage\[(.*)\]\{inputenc\}\s*//) {
$LyX_Preamble .= "\\inputencoding $1\n";
}
$Latex_Preamble =~ s/\\usepackage\[.*\]\{fontenc\}\s*//;
## Deal with \usepackage{} cases, no optional argument
my %Usepackage_Table = (
"amsmath" => "\\use_amsmath 1",
"amssymb" => "",
"geometry" => "\\use_geometry 1",
"babel" => "",
"pslatex" => "\\fontscheme pslatex",
"ae" => "\\fontscheme ae",
"aecompl" => "",
"times" => "\\fontscheme times",
"palatino" => "\\fontscheme palatino",
"helvet" => "\\fontscheme helvet",
"avant" => "\\fontscheme avant",
"newcent" => "\\fontscheme newcent",
"bookman" => "\\fontscheme bookman",
"a4wide" => "\\paperpackage widemarginsa4",
"a4" => "\\paperpackage a4wide",
"graphics" => "\\graphics default",
"rotating" => "",
"makeidx" => ""
);
## Babel with arguments specifing language
if($Latex_Preamble =~ s/\\usepackage\[(.*)\]\{babel\}\s*//) {
my @languages = split(',',$1);
my $lang = pop @languages;
$LyX_Preamble .= "\\language $lang\n";
}
my $up;
foreach $up (keys %Usepackage_Table) {
$Latex_Preamble =~ s/^\s*\\usepackage\{$up\}\s*// && do {
$LyX_Preamble .= "$Usepackage_Table{$up}";
$LyX_Preamble .= "\n" unless ($Usepackage_Table{$up} eq "");
}
}
# Natbib is a little more complex than that.
if ($Latex_Preamble =~ s/\\usepackage(.*)\{natbib\}\s*//) {
$LyX_Preamble .= "\\use_natbib 1\n\\use_numerical_citations ";
$LyX_Preamble .= ($1 =~ /numbers/) ? "1\n" : "0\n";
} else {
$LyX_Preamble .= "\\use_natbib 0\n\\use_numerical_citations 0\n";
}
## Handle geometry options
## The custom paper missing from the options list since it involves two parameters
my %Geometry_Options =(
'verbose' => sub { return "" },
"letterpaper" => sub { return "\\papersize letterpaper\n" },
"legalpaper" => sub { return "\\papersize legalpaper\n" },
"executivepaper"=> sub { return "\\papersize executivepaper\n" },
"a3paper" => sub { return "\\papersize a3paper\n" },
"a4paper" => sub { return "\\papersize a4paper\n" },
"a5paper" => sub { return "\\papersize a5paper\n" },
"b3paper" => sub { return "\\papersize b3paper\n" },
"b4paper" => sub { return "\\papersize b4paper\n" },
"b5paper" => sub { return "\\papersize b5paper\n" },
'tmargin=(\w*)' => sub { return "\\topmargin $1\n" },
'bmargin=(\w*)' => sub { return "\\bottommargin $1\n" },
'lmargin=(\w*)' => sub { return "\\leftmargin $1\n" },
'rmargin=(\w*)' => sub { return "\\rightmargin $1\n" },
'headsep=(\w*)' => sub { return "\\headsep $1\n" },
'footskip=(\w*)' => sub { return "\\footskip $1\n" },
'headheight=(\w*)' => sub { return "\\headheight $1\n" }
);
if( $Latex_Preamble =~ /\\geometry\{(.*)\}/) {
my $geom_options = $1;
my $op;
foreach $op (keys %Geometry_Options) {
$geom_options =~ s/$op// && do {
$LyX_Preamble .= &{$Geometry_Options{$op}}();
print "Geometry option $op\n" if $debug_on;
}
}
$geom_options =~ s/^,+|,+(?=,)|,+$//g; # extra commas
if( $geom_options =~ /\s*/) {
$Latex_Preamble =~ s/\\geometry\{(.*)\}//;
}
else {
$Latex_Preamble =~ s/\\geometry\{(.*)\}/\\geometry\{$geom_options\}/;
}
}
## Paragraph skip or indentation
if ( $Latex_Preamble =~
s/\\setlength\\parskip\{\\(.*)amount\}\s*\\setlength\\parindent\{0pt\}//) {
$LyX_Preamble .= "\\paragraph_separation skip\n";
$LyX_Preamble .= "\\defskip $1\n";
}
## Paragraph spacing
if ( $Latex_Preamble =~ s/\\(\w*)spacing//) {
$LyX_Preamble .= "\\spacing $1\n";
}
## remove LyX specific stuff
$Latex_Preamble =~ s/\\IfFileExists\{url.sty\}\{\\usepackage\{url\}\}\s*\{\\newcommand\{\\url\}\{\\texttt\}\}\s*//;
## this two need probably a more fine grained control
$Latex_Preamble =~ s/\\makeatletter\s*//;
$Latex_Preamble =~ s/\\makeatother\s*//;
$Latex_Preamble =~ s/^\s*//;
print "LaTeX preamble, consists of:\n$Latex_Preamble" if $debug_on;
if($Latex_Preamble) {
$Latex_Preamble = "\\begin_preamble\n$Latex_Preamble\\end_preamble\n";
} #just comments, whitespace. Ignore them
print "End of LaTeX preamble\n" if $debug_on;
#warn "Done creating LyX Preamble\n";
return ($class, $LyX_Preamble, $Latex_Preamble);
}
1; # return true value to calling program

View File

@ -1,37 +0,0 @@
AUTOMAKE_OPTIONS = foreign
DISTCLEANFILES= *.orig *.rej *~ *.bak reLyX reLyX.1 config.log config.status
MAINTAINERCLEANFILES = $(srcdir)/Makefile.in $(srcdir)/configure
man_MANS = reLyX.1
EXTRA_DIST = BUGS BasicLyX.pm CHANGES CleanTeX.pm LastLyX.pm MANIFEST \
MakePreamble.pm ReadCommands.pm RelyxTable.pm reLyX.pod \
reLyXmain.pl syntax.default test.ltx test.lyx reLyX.man \
RelyxFigure.pm Verbatim.pm Text
bin_SCRIPTS = reLyX noweb2lyx
relyxdatadir = $(pkgdatadir)/reLyX
relyxdata_DATA = \
BasicLyX.pm \
CleanTeX.pm \
LastLyX.pm \
MakePreamble.pm \
ReadCommands.pm \
RelyxFigure.pm \
RelyxTable.pm \
Verbatim.pm \
reLyXmain.pl \
README \
BUGS \
CHANGES \
reLyX.pod \
syntax.default
relyxtextdir = $(pkgdatadir)/reLyX/Text
relyxtext_DATA = \
Text/manpage.3pm \
Text/TeX.pm
reLyX.1:
cp -p $(srcdir)/reLyX.man reLyX.1

View File

@ -1,25 +0,0 @@
********************************************************************************
* reLyX -- a LaTeX to LyX translator *
********************************************************************************
The purpose of reLyX is to translate *well-behaved* LaTeX into LyX.
Its main goals are:
1) Get through a well-behaved LaTeX2e file without crashing
2) Translate a lot of that file.
3) Localize the parts that can't be translated and copy them in TeX mode
It seems to achieve these main goals pretty well on most files.
reLyX is in its early stages, so it still has some bugs and lacking features.
There are many improvements that can and will be made to reLyX in the
near future. However, we wanted to get reLyX out there early on, to make
it easier for new LyX users who want to translate their existing LaTeX files.
reLyX uses a modified version of the Perl TeX parser Text::TeX package written
by Ilya Zakharevich (ilya@math.ohio-state.edu). The original Text::TeX is
available on CPAN.
There are lots more details in the man pages, so try 'man reLyX'
Amir Karger
karger@post.harvard.edu

View File

@ -1,428 +0,0 @@
# This file is part of reLyX
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
package ReadCommands;
# Read a file containing LaTeX commands and their syntax
# Also, read a file containing LyX layouts and their LaTeX equivalents
use strict;
# Variables needed by other modules
# ToLayout is a ref to a hash which contains LyX layouts & LaTeX equivalents
# regular_env is a list of environments that have "reLyXable" LaTeX in them
# math_trans is a hash of math commands and what they're translated to
use vars qw($ToLayout @regular_env %math_trans);
# CommandHash is the hash of LaTeX commands and their syntaxes which
# this package builds.
my %CommandHash;
# Name of the environment containing names of regular environments :)
my $regenv_name = "reLyXre";
# Name of environment containing translations of math commands
my $math_trans_name = "reLyXmt";
# Variables set when in the above environments
my ($in_regular_env, $in_math_trans);
my @Environments = qw($regenv_name $math_trans_name);
# This word in a command's argument (in the syntax file) means that reLyX
# should translate that argument as regular LaTeX
my $Translate_Word = "translate";
######################### READ COMMAND SYNTAX ################################
sub read_syntax_files {
# This subroutine calls the TeX parser & translator to read LaTeX syntax file(s)
# It sets the list of "regular" environments, environments which aren't known
# by reLyX, but which contain text that reLyX can translate.
# It also reads math commands which should be translated (e.g., \sp -> ^)
#
# @_ contains the syntax file(s) to read
my @syntaxfiles = @_;
# Before anything else, set the package-wide variables based on the
# user-given flags
# opt_d is set to 1 if '-d' option given, else (probably) undefined
my $debug_on = (defined($main::opt_d) && $main::opt_d);
# opt_r is a group of environments to copy like regular text
# If opt_r wasn't given, then there are no such special environments
@regular_env = (defined $main::opt_r ? (split(/,/, $main::opt_r)) : () );
# The only important commands to pass are \begin and \end, so that the
# parser realizes they start/end environments, as opposed to being
# regular old tokens.
my %MyTokens = ( '{' => $Text::TeX::Tokens{'{'},
'}' => $Text::TeX::Tokens{'}'},
'\begin' => $Text::TeX::Tokens{'\begin'},
'\end' => $Text::TeX::Tokens{'\end'},
);
my $InFileName;
foreach $InFileName (@syntaxfiles) {
die "could not find syntax file $InFileName" unless -e $InFileName;
my $zzz=$debug_on ? "from $InFileName " :"";
warn "Reading LaTeX command syntax $zzz\n";
# Open the file to turn into LyX.
my $infile = new Text::TeX::OpenFile $InFileName,
'defaultact' => \&read_commands,
'tokens' => \%MyTokens;
# When we start (each file), we're not reading regular environments yet
$in_regular_env = 0;
# Process the file
$infile->process;
}
if ($debug_on) {
print "Regular environments: @regular_env\n";
my @mathkeys = keys(%math_trans);
print " Math command | translation\n" if @mathkeys;
foreach (@mathkeys) { printf("%20s %s\n",$_,$math_trans{$_}) }
}
#warn "Done reading commands\n";
return;
} # end subroutine call_parser
sub read_commands {
# This subroutine is called by Text::TeX::process
# Arg0 is the token we just ate
# Arg1 is the file object we're reading from
#
# We create a hash, where each command is a key. The value is just a string
# of zero or more 'o' and 'r' characters. Each 'o' stands for an optional
# argument, 'r' stands for a required argument. 'R' stands for a required
# argument whose text will be regular LaTeX, e.g., the argument to \mbox{}
# In addition, the $regenv_name environment contains
# regular environments, like those input with the -r option.
# Note that if a command is found more than once, then it wil be overwritten.
# This is a feature. This way, a user-defined syntax file can overwrite the
# argument list found in the default syntax file.
my ($token,$fileobject) = (shift,shift);
my $type = ref($token);
$type =~ s/^Text::TeX::// or die "unknown token type $type from Text::TeX";
#print $token->exact_print, unless $type eq "Paragraph";
#print $token->comment if $token->comment;
# Because there's no token list, ALL tokens will be
# Paragraph, Text, or Token
SWITCH: for ($type) {
# Handle blank lines.
if (/Paragraph/) {
# don't do anything
last SWITCH;
} elsif (/^Token/) {
# Comment in its own paragraph... skip
last SWITCH unless defined($token->print);
if ($in_math_trans) { # read translations of math commands
my $key = $token->print;
# Translation is whatever's in the argument to the token
# (There might be multiple tokens in there)
my @vals = $fileobject->eatBalanced->contents;
my $val = join ("", map {$_->exact_print} @vals);
$math_trans{$key} = $val;
} else { # regular portion of syntax file
my ($dum2);
my $args = "";
# read while there are arguments
while (($dum2 = $fileobject->lookAheadToken) &&
($dum2 =~ /^[[{]$/)) {
if ($dum2 eq '[') { #eat optional argument - assumed simple
$fileobject->eatOptionalArgument;
$args .= "o";
} else {
my $tok = $fileobject->eatBalanced or warn "bad group";
if ($tok->exact_print eq $Translate_Word) {
$args .= "R";
} else {
$args .= "r";
}
} # end if $dummy = [{
} # done reading command
$CommandHash{$token->print} = $args;
} # in math trans env or regular token?
last SWITCH;
} elsif (/^Begin::Group::Args/) {
my $env = $token->environment;
CASE: {
$in_regular_env = 1, last CASE if $env eq $regenv_name;
$in_math_trans = 1, last CASE if $env eq $math_trans_name;
warn "Unknown environment $env in syntax file";
}
} elsif (/^End::Group::Args/) {
my $env = $token->environment;
CASE: {
$in_regular_env = 0, last CASE if $env eq $regenv_name;
$in_math_trans = 0, last CASE if $env eq $math_trans_name;
warn "Unknown environment $env in syntax file";
}
} elsif (/^Text/) {
# don't do anything unless we're reading environments
if ($in_regular_env) {
my @new_envs = (split(/\s+/, $token->print));
@new_envs = grep ($_, @new_envs); # remove empty elements
push @regular_env,@new_envs;
}
last SWITCH;
} else {
die "unexpected token type $type";
}
} # end SWITCH
} # end sub read_commands
sub Merge {
# This sub creates a token list (which could be used to call a Text::TeX
# parser) from %CommandHash, and merges it with the input token list
# If a command takes any required arguments, it will be a report_args,
# but if it just takes an optional argument, it can stay a regular old token.
# In either case, we insert a new field, "relyx_args", into the token list,
# which is the expected order of arguments for that command. Even if there
# are no args, we insert an empty relyx_args, so that we can differentiate
# between a truly unknown token and a known token which takes no args.
#
# We don't allow a new command to override a command that already exists in
# OldHash, i.e., one that was defined explicitly in the calling sub.
#
# Arg0 is a (reference to an) existing token list
my $OldHashRef = shift;
foreach (keys %CommandHash) {
my $val = $CommandHash{$_};
my ($entry, $count, @foo);
if (!exists $OldHashRef->{$_}) {
if ($count = scalar(@foo = ($val =~ /r/gi))) {
# TeX.pm will make this a TT::BegArgsToken and $count-1
# TT::ArgTokens, followed by a TT::EndArgsToken
$OldHashRef->{$_} = {"Type" => 'report_args',
"count" => $count,
"relyx_args" => $val};
} else { # only non-required args
# Make it a regular TT::Token, but write relyx_args
# (even if $val is "")
$OldHashRef->{$_} = {"relyx_args" => $val};
}
}
} # end foreach
} # end sub Merge
############################ READ LAYOUTS ####################################
sub read_layout_files {
# This subroutine reads a textclass-specific layout file and all files
# included in that file.
# It sets up the layout hash table. For each environment, it describes which
# layout that environment refers to. It does the same for macros which
# begin LyX layouts (e.g., \section)
# If we read a command that's not already in CommandHash, it means that this
# layout has some commands that aren't in syntax.default. If so, we ASSUME
# that the command takes just one required argument, and put it in
# CommandHash, so that &Merge will eventually put these commands into the
# token lists.
#
# TODO: we actually need to allow more sophisticated stuff. E.g. \foilhead
# is converted to Foilhead or ShortFoilHead (foils.layout) depending on whether
# the command has "r" or "or" arguments. Reading LatexParam (if it exists)
# can help us with this.
# Default is "r". Just unshift other args as you read them, since latexparam
# is put in between macro & the argument
# TODO: We need to store ToLayout s.t. we can have > 1 layout per command.
# Maybe by default just have one layout, but if (ref(layout)) then read
# more args & thereby figure out which layout?
#
# Arg0 is the name of the documentclass
use FileHandle;
use File::Basename;
my $doc_class = shift;
my @filestack;
my $fh;
my $line;
# ToLayout{latexname} stores layout; so ReversHash{layout} = latexname
my %ReverseHash;
my $debug_on = (defined($main::opt_d) && $main::opt_d);
# look for layout file in $HOME/.lyx first, then system layouts directory
my $searchname = "$doc_class.layout";
my @searchdirs = ();
my $personal_layout = "$main::dot_lyxdir/layouts";
push(@searchdirs,$personal_layout) if -e $personal_layout;
my $system_layout = "$main::lyxdir/layouts";
# I guess this won't exist if running reLyX without installing...
# Of course, in that case, this will probably break
push(@searchdirs,$system_layout) if -e $system_layout;
my @foundfiles = grep(-e "$_/$searchname", @searchdirs) or
die "Cannot find layout file $searchname in dir(s) @searchdirs";
my $LayoutFileName = "$foundfiles[0]/$searchname"; # take first one we found
$fh = new FileHandle;
$fh->open ("<$LayoutFileName");
my $zzz=$debug_on ? "$LayoutFileName" :"";
warn "Reading layout file $zzz\n";
push @filestack, $fh;
# Read the layout file!
my ($lyxname, $latexname, $latextype, $latexparam, $keepempty);
my $fname;
while() {
# Read a line. If eof, pop the filestack to return to the file
# that included this file *or* finish if the stack's empty
unless (defined ($line = <$fh>)) {
$fh->close;
pop @filestack;
last unless ($#filestack+1); # finish when stack is empty
$fh = $filestack[-1];
next; # read another line from the "calling" file
}
# Skip blank lines
next if $line =~ /^\s*$/;
# Split the line. Use limit 2 since there may be whitespace in 2nd term
my ($field_name, $field_stuff) = split(' ', $line, 2);
$field_name = lc($field_name); # LyX is case insensitive for fields
if (defined($field_stuff)) {
$field_stuff =~ s/^\"(.*)\"/$1/;
chomp ($field_stuff);
# Since split is limited to 2 fields, there may be extra whitespace
# at end. LyX breaks on a "\layout Abstract " command!
$field_stuff =~ s/\s*$//;
}
# This set of ifs deals with lines outside a style definition
if ($field_name eq "style") { # start a style definition
$lyxname = $field_stuff;
# Styles in LyX have spaces, but _ in layout files
$lyxname =~ s/_/ /g;
$latexname = ""; # make sure these variables are unset
$latextype = "";
$latexparam = "";
$keepempty = 0;
} elsif ($field_name eq "input") { #include a file
$searchname = $field_stuff;
@foundfiles = grep(-e "$_/$searchname", @searchdirs) or
die "Cannot find layout file $searchname in dir(s) @searchdirs";
$fname = "$foundfiles[0]/$searchname"; # take first one we found
$fh = new FileHandle;
push @filestack, $fh;
$fh->open("<$fname");
print "Reading included layout file $fname\n" if $debug_on;
}
next unless $lyxname; # not w/in style definition
# This set of ifs deals with lines within a Style definition
if ($field_name eq "latexname") {
$latexname = $field_stuff;
next;
} elsif ($field_name eq "latexparam") {
#$dum = $field_stuff;
$latexparam = $field_stuff;
next;
} elsif ($field_name eq "latextype") {
$latextype = $field_stuff;
next;
} elsif ($field_name eq "keepempty") {
$keepempty = $field_stuff;
next;
} elsif ($field_name eq "copystyle") { # copy an existing style
# "if" is necessary in case someone tries "CopyStyle Standard"
if (exists $ReverseHash{$field_stuff}) {
my $layref = $ReverseHash{$field_stuff};
$latexname = $layref->{"name"};
$latextype = $layref->{"type"};
$latexparam = $layref->{"param"};
$keepempty = $layref->{"keepempty"};
}
# When you get to the end of a definition, create hash table entries
# (if you've found the right information)
} elsif ($field_name eq "end") {
if ($latextype and $latexname) {
# Create reverse hash entry (needed for CopyStyle)
# Do it before making modifications to $latexname, e.g.
$ReverseHash{$lyxname} = {"name" => $latexname,
"type" => $latextype,
"param" => $latexparam,
"keepempty" => $keepempty,
};
my ($nest, $skip) = (0,0);
for ($latextype) { # make $_=$latextype
if (/^Command/) {
# Macros need a '\' before them. Environments don't
$latexname = '\\' . $latexname;
# Create the command if it wasn't in syntax.default
unless (exists $CommandHash{$latexname}) {
$CommandHash{$latexname} = "r";
}
} elsif (/^Environment/) {
$nest = 1;
} elsif (/Item_Environment/i || /List_Environment/) {
$nest = 1;
# layout Standard has LatexType Paragraph. It shouldn't
# have any hash entry at all
} elsif (/^Paragraph$/) {
$skip = 1;
} else {
warn "unknown LatexType $latextype" .
"for $latexname (layout $lyxname)!\n";
}
# Handle latexparam, if any
# if ($dum =~ s/^"(.*)"/$1/) { # newer layout file syntax
# while ($dum =~ /^[[{]/) {
# $dum =~ s/\[.*?\]// && ($latexargs = "o$latexargs") or
# $dum =~ s/\{.*?\}// && ($latexargs = "r$latexargs");
# }
# warn "leftover LatexParam stuff $dum" if $dum;
# } else { # 0.12.0
# if ($latextype eq "Command") {optarg}
# else {req. arg}
# }
} #end for
# Create the hash entry
unless ($skip) {
$ToLayout->{$latexname} = {"layout" => $lyxname,
"nestable" => $nest,
"keepempty" => $keepempty};
}
# Now that we've finished the style, unset $lyxname so that
# we'll skip lines until the next style definition
$lyxname = "";
} # end if ($latextype and $latexname)
} # end if on $line
} #end while
## Print every known layout
# print " LatexName Layout Keepempty?\n";
# foreach (sort keys %$ToLayout) {
# printf "%20s%15s %1d\n",$_,$ToLayout->{$_}{'layout'},
# $ToLayout->{$_}{'keepempty'};
# };
#warn "Done reading layout files\n";
return;
} # end sub read_layout_files
1; # return TRUE to calling routine

View File

@ -1,291 +0,0 @@
# This file is part of reLyX
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
package RelyxFigure;
# This is a package to read LaTeX figures and print out LyX figures
# We declare here the sub-packages found in this package.
# This allows the parser to understand "indirect object" form of subroutines
#{
#package RelyxTable::Table;
#package RelyxTable::Column;
#package RelyxTable::Row;
#}
use strict;
# Variables used by other packages
use vars qw($EpsfYsize $EpsfXsize %HW_types);
# Debugging on?
my $debug_on;
# This means "display in monochrome" and "do translations", but who cares?
# It's just here because this is the default that LyX outputs.
my $Default_Flags = 9;
# Names for width_type & height_type fields.
%HW_types = (
"def" => 0,
"cm" => 1,
"in" => 2,
"per_page" => 3, # percent of the page
"per_col" => 4, # percent of a column (illegal for height_type)
);
# Parse \epsfxsize or \epsfysize command
# Return 0 if we can't convert the length (in which case we have to type
# the \epsf[xy]size command in tex mode).
sub parse_epsfsize {
# Command & length have already been "stringified" (they're not tokens)
my ($command, $length) = (shift,shift);
if ($command eq '\\epsfxsize') {
$EpsfXsize = $length;
my @dummy = &convert_length($EpsfXsize) || return 0;
} elsif ($command eq '\\epsfysize') {
$EpsfYsize = $length;
my @dummy = &convert_length($EpsfYsize) || return 0;
}
return 1;
} # end sub RelyxFIgure::Figure::parse_epsfig
sub convert_length {
# test if it's a valid LyX width/height.
# (But assume a person won't try to set width to \textheight,
# and that they won't have negative or otherwise weird lengths)
# Then convert to width & width_type (or height/height_type)
# Return empty list on error
my $size = shift;
# A length can be (optional plus followed by) (num)(unit) where
# num is a float number (possibly with European command) and unit
# is a size unit, either in,cm,pt etc. or \textwidth etc.
my %unit_convert = ( # 1 inch = 25.4 mm
"mm" => 25.4, "pt" => 72.27, "bp" => 72, "pc" => 72.27/12,
"dd" => 72.27*1157/1238, "cc" => 72.27*1157/(1238*12),
);
my ($number, $type);
if ($size =~ /^\+?([\d.,]+)(cm|in)$/) {
($number, $type) = ($1, $2);
$number =~ s/,/./; # Allow european numbers!
# print "length is $number '$type'";
} elsif ($size =~ /^\+?([\d.,]+)(mm|pt|bp|pc|dd|cc)$/) {
($number, $type) = ($1, $2);
$number =~ s/,/./;
$number = $number / $unit_convert{$type};
$type = "in";
} elsif ($size =~ /^\+?([\d.,]*)\s*\\text(height|width)$/) {
$number = $1 || 1;
$number =~ s/,/./;
$number *= 100;
$type = "per_page";
} elsif ($size =~ /^\+?([\d.,]*)\s*\\columnwidth$/) {
$number = $1 || 1;
$number =~ s/,/./;
$number *= 100;
$type = "per_col";
} else {
print "\ncannot translate length '$size' in Figure; ",
"copying in TeX mode\n" if $debug_on;
}
if ($number) {
return ($number, $type);
} else {
return ();
}
} # end sub convert_length
sub parse_keyval {
# Parse a string containing comma-separated "key=value" pairs
# Compare the keys with a list of known keys.
# If we know all keys, return a hash containing keys/values
# Else return undef.
my ($string, @known_keys) = @_;
my @fields = split(/\s*,\s*/,$string);
my %fighash;
foreach (@fields) { # split "key=val" into fighash{key}=val
my ($key,$val) = split(/\s*=\s*/,$_);
$val = "" unless defined $val; # e.g., 'clip='
$fighash{$key} = $val;
unless (grep /^$key$/, @known_keys) {
print "\nUntranslatable key '$key' to figure;",
" copying in TeX mode\n" if $debug_on;
return undef;
}
}
return \%fighash;
} # end sub parse_keyval
{
package RelyxFigure::Figure;
# reLyX figure class
# Fields:
# file - file name
# width - width
# height - height
# width_type - is width in cm, % of pagewidth, etc.?
# height_type - is height in cm, % of pagewidth, etc.?
# angle - rotate fig through angle
# flags - various flags for LyX display. Not important
sub new {
my $class = shift;
my $thisfig;
$thisfig->{'file'} = "";
$thisfig->{'width'} = 0;
$thisfig->{'height'} = 0;
$thisfig->{'width_type'} = "def";
$thisfig->{'height_type'} = "def";
$thisfig->{'angle'} = 0;
$thisfig->{'flags'} = $Default_Flags;
# This seems like a convenient place to declare this...
$debug_on= (defined($main::opt_d) && $main::opt_d);
bless $thisfig, $class;
} # end sub RelyxFigure::Figure::new
sub parse_pscommand {
# this sub is given the various arguments to a command & adds that
# information to the figure object.
# Return 0 if it can't read the command, or if LyX can't handle it. Else 1.
#
# command is the name of the postscript command
# optargs are optional arguments (TT:Tokens). For many of the commands,
# only one optarg is allowed. And of course, they may be empty tokens.
# reqarg is usually the filename (for (e)psfig, it's more)
#
# Currently, LyX can't handle bounding box, so we always return 0 if one
# is given.
my ($self, $command, $optarg1, $optarg2, $reqarg) = @_;
my (@known_keys, $filename, $keyval_string, %fighash);
for ($command) {
if (/^\\epsf(file|box)?$/) {
# syntax: \epsffile[bounding box]{filename.eps}
# epsffile is an older version of epsfbox
return 0 if $optarg1->print; # bounding box was given. Panic!
$filename = &recursive_print($reqarg);
# fighash key shouldn't exist if no size was given
$fighash{'height'} = $RelyxFigure::EpsfYsize
if $RelyxFigure::EpsfYsize;
$fighash{'width'} = $RelyxFigure::EpsfXsize
if $RelyxFigure::EpsfXsize;
# Once you use \epsf[xy]size, they get reset
$RelyxFigure::EpsfXsize = $RelyxFigure::EpsfYsize = "";
$keyval_string = ""; # no key/value pairs for this command
} elsif (/^\\e?psfig$/) {
# "silent" key doesn't do anything
@known_keys = qw(file figure rotate angle height width silent);
$keyval_string = &recursive_print($reqarg);
my $fighashref =
&RelyxFigure::parse_keyval($keyval_string, @known_keys);
return 0 unless defined $fighashref; # found unknown key...
%fighash = %$fighashref;
$filename = $fighash{'file'} || $fighash{'figure'} || warn
"no filename found in figure argument '$keyval_string'";
} elsif (/^\\includegraphics$/) {
# 0 optargs can be either graphics or graphicx. Doesn't
# matter, matter, it's just the filename.
# 1 optarg can either be graphicx (if arg contains '=') or
# graphics (optarg is upper right; lower left is 0,0).
# 2 optargs is graphics with bounding box.
# Optional arguments are always returned as single tokens,
# not groups. So we can use the print method instead of
# recursive_print.
$keyval_string = $optarg1->print;
if ($keyval_string) {
if ($keyval_string =~ /=/) { # graphicx form
$keyval_string =~ s/\[(.*)\]/$1/; # remove '[' and ']'
@known_keys = qw(rotate angle height width);
my $fighashref = &RelyxFigure::parse_keyval(
$keyval_string, @known_keys);
return 0 unless defined $fighashref; # found unknown key
%fighash = %$fighashref;
} else { # graphics form with bounding box
print "\nLyX cannot support bounding box; ",
"copying Figure in TeX mode\n" if $debug_on;
return 0;
}
}
$filename = &recursive_print($reqarg);
}
} # end switch on command name
# Now set fields in the Figure object
$self->{'file'} = $filename;
$self->{'angle'} = $fighash{'rotate'} if exists $fighash{'rotate'};
$self->{'angle'} = $fighash{'angle'} if exists $fighash{'angle'};
if (exists $fighash{'height'}) {
my @heights = &RelyxFigure::convert_length($fighash{'height'});
return 0 unless @heights; # unconvertable length!
($self->{'height'},$self->{'height_type'}) = @heights;
}
if (exists $fighash{'width'}) {
my @widths = &RelyxFigure::convert_length($fighash{'width'});
return 0 unless @widths; # unconvertable length!
($self->{'width'},$self->{'width_type'}) = @widths;
}
return 1; # if we got here, we parsed correctly and LyX can handle it.
} # end sub RelyxFigure::Figure::parse_pscommand
sub recursive_print {
# if arg is a group, print its contents (i.e., ignore '{' and '}')
# otherwise, print arg
my $tok = shift;
my $filename = "";
my $type = ref($tok);
$type =~ s/Text::TeX::// or warn "weird group";
if ($type eq 'Group') {
foreach ($tok->contents) {$filename .= &recursive_print($_)}
} else {
$filename .= $tok->exact_print
}
return $filename;
}
sub print_info {
# LyX figure command -- return what to print; don't actually print it
my $self = shift;
my $to_print = "\n\\begin_inset Figure\n";
# (LyX fig. command has eps size here. But we don't know that, so
# we dont print it out.)
$to_print .= "file $self->{'file'}\n";
my ($size, $type) = ("","");
($size, $type) = ($self->{'width'},
$RelyxFigure::HW_types{$self->{'width_type'}});
$to_print .= "width $type $size\n" if $size;
($size, $type) = ("","");
($size, $type) = ($self->{'height'},
$RelyxFigure::HW_types{$self->{'height_type'}});
$to_print .= "height $type $size\n" if $size;
$to_print .= "angle $self->{'angle'}\n" if $self->{'angle'};
$to_print .= "flags $self->{'flags'}\n";
$to_print .= "\n\\end_inset \n\n";
} # end sub RelyxFigure::Figure::print
} # end of package RelyxFigure::Figure
1; # return true to calling package

View File

@ -1,603 +0,0 @@
# This file is part of reLyX
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
package RelyxTable;
# This is a package to read LaTeX tables and print out LyX tables
# We declare here the sub-packages found in this package.
# This allows the parser to understand "indirect object" form of subroutines
{
package RelyxTable::Table;
package RelyxTable::Column;
package RelyxTable::Row;
}
use strict;
# Variables used by other packages
use vars qw(@table_array $TableBeginString $TableEndString);
# @table_array is the list of all arrays
# $TableBeginString is a string to write during one pass so that a later
# pass knows to put the table info there
# $TableEndString is written at the end of the table so that we know
# the table is done
$TableBeginString = '%%%%%Insert reLyX table here!';
$TableEndString = '%%%%%End of reLyX table!';
# Debugging on?
my $debug_on;
# Are we currently inside a table?
# If we are, return the table
sub in_table {
return "" unless defined(@table_array); # no tables exist
my $thistable = $table_array[-1];
if ($thistable->{"active"}) {
return (bless $thistable, "RelyxTable::Table");
} else {
return "";
}
}
# Global variables###############
# LyX' enums corresponding to table alignments
my %TableAlignments = ("l" => 2, "r" => 4, "c" => 8);
# LyX' enums corresponding to multicol types
# normal (non-multicol) cell, beginning of a multicol, part of a multicol
my %MulticolumnTypes = ("normal" => 0, "begin" => 1, "part" => 2);
# Subroutines used by tables and rows, e.g.
sub parse_cols {
# parse a table's columns' description
# Returns an array where each element is one column description
# arg0 is the description -- a Text::TeX::Group
my $groupref = shift;
my (@cols, @new_cols);
my ($tok, $description, $i);
# tokens in the group, not including '{' and '}'
my @group = $groupref->contents;
# Loop over the token(s) in the group
my $first = ""; my $tempfirst;
while (@group) {
$tok = shift(@group);
# Each $tok will consist of /^[clr|]*[mp*@]?$/
# (Except first may have | and/or @ expressions before it)
# p*@ will end the $tok since after it comes a group in braces
# @ will be a TT::Token, everything else will be in TT::Text
$description = $tok->print;
# Chop off left lines for first column if any
($tempfirst = $description) =~ s/(\|*).*/$1/;
if ($#cols == -1) { # |'s before any column description
$first .= $tempfirst;
} else {
$cols[-1] .= $tempfirst; # add it to end of current col
}
# Greedy searches, so only 0th column can possibly have left line
@new_cols = ($description =~ /[clr]\|*/g);
push @cols, @new_cols;
# parse a 'p', an 'm', a '*' or a '@' as necessary
# use exact_print in case there's weird stuff in the @ descriptions
$description = substr($description,-1);
# The m and p descriptors have identical form.
if ($description eq 'p' || $description eq 'm') {
$tok = shift(@group);
my $des = $description . $tok->exact_print; # 'p{foo}' or 'm{foo}'
push @cols, $des;
} elsif ($description eq '@') {
$tok = shift(@group);
my $atdes = $description . $tok->exact_print;
if ($#cols == -1) { # it's an @ before any column description
$first .= $atdes;
} else {
$cols[-1] .= $atdes; # add it to end of current col
}
} elsif ($description eq '*') {
$tok = shift(@group); # TT::Group with number of repeats in it
my $rep = $tok->contents->print;
$tok = shift(@group); # Group to repeat $rep times
@new_cols = &parse_cols($tok);
foreach $i (1 .. $rep) {
push @cols, @new_cols;
}
}
} # end loop over description tokens
# this handles description like {|*{3}{c}}
$cols[0] = $first . $cols[0];
return @cols;
} # end sub parse_cols
################################################################################
# This package handles tables for reLyX
{
package RelyxTable::Table;
# Table class
# Fields:
# columns - array containing references to RelyxTable::Columns
# rows - array containing references to RelyxTable::Rows
# active - are we currently reading this table?
# Fields for printout
# is_long_table
# rotate
# endhead
# end_first_head
# endfoot
# end_last_foot
# Subroutines to read and create the table
sub new {
# 'new' takes an argument containing the LaTeX table description string,
# which is a Text::TeX::Group token
my $class = shift; # should be "table"
my $description = shift;
my $thistable;
# This seems like a convenient place to declare this...
$debug_on= (defined($main::opt_d) && $main::opt_d);
# Initialize fields - including ones we don't support yet
$thistable->{"is_long_table"} = 0;
$thistable->{"rotate"} = 0;
$thistable->{"endhead"} = 0;
$thistable->{"end_first_head"} = 0;
$thistable->{"endfoot"} = 0;
$thistable->{"end_last_foot"} = 0;
$thistable->{"active"} = 1;
bless $thistable, $class;
# Parse the column descriptions: return an array, where each
# element is a (regular text) single column description
my @cols = &RelyxTable::parse_cols($description);
my $colref;
my $col_description;
foreach $col_description (@cols) {
$colref = new RelyxTable::Column $col_description;
push @{$thistable->{"columns"}}, $colref;
}
# put the table into the table array
push @RelyxTable::table_array, $thistable;
# Now that it's blessed, put the 0th row into the table
$thistable->addrow;
return $thistable;
} # end sub new
sub addrow {
# add a row to the table
# Since we're starting the row, we're in the 0th column
my $thistable = shift;
my $row = new RelyxTable::Row;
push (@{$thistable->{"rows"}}, $row);
# Also initialize the cells for this row
my $col;
foreach $col (@{$thistable->{"columns"}}) {
push (@{$row->{"cells"}}, RelyxTable::Cell->new($row, $col));
}
} # end sub addrow
sub nextcol {
# Go to next column - this just involves calling RT::Row->nextcol
# on the current row
my $thistable = shift;
my $row = $thistable->current_row;
$row->nextcol;
} # end of sub nextcol
sub hcline {
# interpret an '\hline' or '\cline' command
# (It's cline if there's an arg1)
# hline:
# Add a bottom line to the row *before* the current row, unless it's
# the top row. In that case, add a top line to the current (top) row
# Change the row and all the cells that make up the row
# cline:
# Change the cells from the row in the range given in arg1
my $thistable = shift;
my $range = shift;
my $is_cline = defined($range);
my ($rownum, $line_str, $lastrow, $cell);
if ($lastrow = $thistable->numrows - 1) { # not top row
$rownum = $lastrow - 1;
$line_str = "bottom_line";
} else {
$rownum = $lastrow;
$line_str = "top_line";
}
my $row = $thistable->{"rows"}[$rownum];
# Add a row line (only) if it's a \hline command
unless ($is_cline) {
$row->{"$line_str"} +=1;
if (defined($main::opt_d) && $row->{"$line_str"} == 2) {
print "\nToo many \\hline's";
}
}
# Figure out which rows to change
my ($r1, $r2);
if ($is_cline) {
$range =~ /(\d+)-(\d+)/ or warn "weird \\cline range";
# LaTeX numbers columns from 1, we number from 0
($r1, $r2) = ($1 - 1, $2 - 1);
} else {
$r1 = 0;
$r2 = $thistable->numcols - 1;
}
my $i;
foreach $i ($r1 .. $r2) {
$cell = $row->{"cells"}[$i];
$cell->{"$line_str"} +=1; # change the cells in the row
}
} # end sub hline
sub multicolumn {
# interpret a \multicolumn command
# This really just needs to call RT::Row->multicolumn for the correct row
my $thistable = shift;
my $row = $thistable->current_row;
$row->multicolumn(@_);
} # end sub multicolumn
sub done_reading {
# Finished reading a table
my $thistable = shift;
# If we just had \hlines at the end, it's not a real row
# But if numcols==1, curr_col *has* to be zero!
# HACK HACK HACK. If numcols==1 but we need to subtract a row, we
# won't know until LastLyX. At that point, we'll subtract a row.
my $row = $thistable->current_row;
if ($thistable->numcols > 1 && $row->{"curr_col"} == 0) {
pop @{$thistable->{"rows"}}
}
# We're no longer reading this table
$thistable->{"active"} = 0;
if ($debug_on) {
print "\nDone with table ",$#RelyxTable::table_array,", which has ",
$thistable->numrows," rows and ",
$thistable->numcols," columns";
print"\nNumber of rows may be 1 too high" if $thistable->numcols==1;
}
} # end sub done_reading
# Subroutines to print out the table once it's created
sub print_info {
# print the header information for this table
my $thistable = shift;
my $to_print = "";
$to_print .= "\n\\LyXTable\nmulticol5\n";
my @arr = ($thistable->numrows,
$thistable->numcols,
$thistable->{"is_long_table"},
$thistable->{"rotate"},
$thistable->{"endhead"},
$thistable->{"end_first_head"},
$thistable->{"endfoot"},
$thistable->{"end_last_foot"}
);
$to_print .= join(" ",@arr);
$to_print .= "\n";
# Print row info
my $row;
foreach $row (@{$thistable->{"rows"}}) {
$to_print .= $row->print_info;
}
# Print column info
my $col;
foreach $col (@{$thistable->{"columns"}}) {
$to_print .= $col->print_info;
}
# Print cell info
my $cell;
foreach $row (@{$thistable->{"rows"}}) {
my $count = 0;
foreach $col (@{$thistable->{"columns"}}) {
$cell = $row->{"cells"}[$count];
$count++;
$to_print .= $cell->print_info;
}
}
$to_print .= "\n";
return $to_print;
} # end sub print_info
# Convenient subroutines
sub numrows {
my $thistable = shift;
return $#{$thistable->{"rows"}} + 1;
} # end sub numrows
sub numcols {
my $thistable = shift;
return $#{$thistable->{"columns"}} + 1;
} # end sub numrows
sub current_row {
# Return the current row blessed as an RT::Row
my $thistable = shift;
my $row = $thistable->{"rows"}[-1];
bless $row, "RelyxTable::Row"; #... and return it
} # end sub current_row
} # end package RelyxTable::Table
################################################################################
{
# Column class
package RelyxTable::Column;
# Fields:
# alignment - left, right, or center (l, r, or c)
# right_line- How many lines this column has to its right
# left_line - How many lines this column has to its left
# (only first column can have left lines!)
# pwidth - width argument to a 'p' alignment command -- e.g., 10cm
# special - special column description that lyx can't handle
sub new {
my $class = shift;
my $description = shift;
my $col;
# Initially zero everything, since we set different
# fields for @ and non-@ columns
$col->{"alignment"} = "c"; # default
$col->{"left_line"} = 0;
$col->{"right_line"} = 0;
$col->{"pwidth"} = "";
$col->{"special"} = "";
# LyX does not know about '@' or 'm' column descriptors so, to
# ensure that the LaTeX -> LyX -> LaTeX cycle is invariant,
# these descriptors are placed in the 'special' field.
if ($description =~ /\@/ || $description =~ /^m/ ) {
$col->{"special"} = $description;
print "\n'$description' column won't display WYSIWYG in LyX\n"
if $debug_on;
}
# '@' columns really can't be displayed WYSIWYG in LyX,
# but we can get visual feedback on 'm' columns.
if (!($description =~ /\@/)) {
# left line?
$description =~ s/^\|*//;
$col->{"left_line"} = length($&);
# main column description
$description =~ s/^[clrpm]//;
if ($& eq 'p' || $& eq 'm') {
$description =~ s/^\{(.+)\}//; # eat the width
$col->{"pwidth"} = $1; # width without braces
# note: alignment is not applicable for 'p' columns
} else {
$col->{"alignment"} = $&;
}
# right line?
$description =~ s/^\|*//;
$col->{"right_line"} = length($&);
}
bless $col, $class; #... and return it
} # end sub new
sub print_info {
# print out header information for this column
# Note that we need to put "" around pwidth and special for multicol5 format
my $col = shift;
my $to_print = "";
my @arr = ($TableAlignments{$col->{"alignment"}},
$col->{"left_line"},
$col->{"right_line"},
'"' . $col->{"pwidth"} . '"',
'"' . $col->{"special"} . '"'
);
$to_print .= join(" ",@arr);
$to_print .= "\n";
return $to_print;
}
} # end package RelyxTable::Column
################################################################################
{
package RelyxTable::Row;
# Fields:
# top_line - does this row have a top line?
# bottom_line - does this row have a bottom line?
# curr_col - which column we're currently dealing with
# cells - array containing references to this row's cells
sub new {
my $class = shift;
my $row;
$row->{"top_line"} = 0;
$row->{"bottom_line"} = 0;
$row->{"is_cont_row"} = 0;
$row->{"newpage"} = 0;
$row->{"curr_col"} = 0;
bless $row, $class;
} # end sub new
sub nextcol {
# Go to next column on the current row
my $row = shift;
my $i = $row->{"curr_col"};
$i++;
# What if it was a multicolumn?
# $rcells holds a reference to the array of cells
my $rcells = \@{$row->{"cells"}};
# Paranoia check that we're not attempting to access beyond the
# end of the array in case reLyX failed to parse the number of
# columns correctly.
$i++ while ($i < @{$rcells} &&
${$rcells}[$i]->{"multicolumn"} eq "part");
$row->{"curr_col"} = $i;
} # end of sub nextcol
sub multicolumn {
# interpret a \multicolumn command
# Arg0 is the row that the multicolumn is in
# Arg 1 is the first argument to \multicolumn, simply a number (no braces)
# Arg 2 is the second argument, which is a TT::Group column specification
my $row = shift;
my ($num_cols, $coldes) = (shift, shift);
# parse_cols warns about @{} expressions, which aren't WYSIWYG
# and turns the description into a simple string
my @dum = &RelyxTable::parse_cols($coldes);
# LaTeX multicolumn description can only describe one column...
warn "Strange multicolumn description $coldes" if $#dum;
my $description = $dum[0];
# Set the first cell
my $firstcell = $row->{"curr_col"};
my $cell = $row->{"cells"}[$firstcell];
$cell->{"multicolumn"} = "begin";
# Simple descriptions use alignment field, others use special
# Special isn't WYSIWYG in LyX -- currently, LyX can't display
# '|' or @{} stuff in multicolumns
if ($description =~ /^[clr]$/) {
$cell->{"alignment"} = $description;
} else {
$cell->{"special"} = $description;
print "\n'$description' multicolumn won't display WYSIWYG in LyX\n"
if $debug_on;
}
# Set other cells
my $i;
foreach $i (1 .. $num_cols-1) {
$cell = $row->{"cells"}[$firstcell + $i];
$cell->{"multicolumn"} = "part";
}
} # end sub multicolumn
sub print_info {
# print information for this column
my $row = shift;
my $to_print = "";
my @arr = ($row->{"top_line"},
$row->{"bottom_line"},
$row->{"is_cont_row"},
$row->{"newpage"}
);
$to_print .= join(" ",@arr);
$to_print .= "\n";
return $to_print;
} # end sub print_info
} # end package RelyxTable::Row
################################################################################
{
package RelyxTable::Cell;
# Fields:
# multicolumn - 0 (regular cell), 1 (beg. of multicol), 2 (part of multicol)
# alignment - alignment of this cell
# top_line - does the cell have a line on the top?
# bottom_line - does the cell have a line on the bottom?
# has_cont_row-
# rotate - rotate cell?
# line_breaks - cell has line breaks in it (???)
# special - does this multicol have a special description (@ commands?)
# pwidth - pwidth of this cell for a parbox command (for linebreaks)
sub new {
# args 1 and 2 are the parent row and column of this cell
my $class = shift;
my ($parent_row, $parent_col) = (shift, shift);
my $cell;
$cell->{"multicolumn"} = "normal"; # by default, it isn't a multicol
$cell->{"alignment"} = "l"; # doesn't really matter: will be reset soon
$cell->{"top_line"} = 0;
$cell->{"bottom_line"} = 0;
$cell->{"has_cont_row"} = 0;
$cell->{"rotate"} = 0;
$cell->{"line_breaks"} = 0;
$cell->{"special"} = "";
$cell->{"pwidth"} = "";
# Have to bless $cell here, so that we can call methods on it
bless $cell, $class;
# The cell should inherit characteristics from its parent row & col
$cell->row_inherit($parent_row);
$cell->col_inherit($parent_col);
return $cell;
} # end sub new
sub row_inherit {
# Inherit fields from parent row
my ($cell, $row) = (shift, shift);
$cell->{"top_line"} = $row->{"top_line"};
$cell->{"bottom_line"} = $row->{"bottom_line"};
} # end sub row_inherit
sub col_inherit {
# Inherit field(s) from parent column
my ($cell, $col) = (shift, shift);
$cell->{"alignment"} = $col->{"alignment"};
}
sub print_info {
# print information for this cell
# Note that we need to put "" around pwidth and special for multicol5 format
my $cell = shift;
my $to_print = "";
my @arr = ($MulticolumnTypes{$cell->{"multicolumn"}},
$TableAlignments{$cell->{"alignment"}},
$cell->{"top_line"},
$cell->{"bottom_line"},
$cell->{"has_cont_row"},
$cell->{"rotate"},
$cell->{"line_breaks"},
'"' . $cell->{"special"} . '"',
'"' . $cell->{"pwidth"} . '"',
);
$to_print .= join(" ",@arr);
$to_print .= "\n";
return $to_print;
}
} # end package RelyxTable::Cell
1; # return "true" to calling routine

View File

@ -1,27 +0,0 @@
TODO file for reLyX
SHORT TERM:
- Bug fixes
- translate common options from preamble (some \usepackage commands)
- copy all unknown environments exactly, not just reLyXskip and verbatim
- \url, especially \url||
MEDIUM TERM:
- support more stuff from preamble, like \newtheorem
- full table support (i.e., longtable and sideways environment in tables)
- minipages
- list environments (like minipage) in syntax.default, along with the
number of arguments they take.
- better understanding of when we're in math mode. Will (finally!) fix the
underscore bugs, allow macro translation and perhaps environment translation,
as well as translating \bf in math mode correctly.
LONGER TERM:
- graphicx? (in LyX 1.1 and later)
- other LaTeX packages
- "sloppy" and "fussy" translations. User chooses either to translate as much
as possible, which may cause incorrect translations, or to guarantee that
(dvi) output will be exactly the same as the TeX file, which may leave
more untranslated TeX (ERT).
- macro expansion using "tme, a TeX macro expander" by Jonathan Thornburg
- better handling of spaces and comments (involves fixing the parser)

File diff suppressed because it is too large Load Diff

View File

@ -1,344 +0,0 @@
.rn '' }`
''' $RCSfile: manpage.3pm,v $$Revision: 1.2 $$Date: 2004/10/28 14:35:19 $
'''
''' $Log: manpage.3pm,v $
''' Revision 1.2 2004/10/28 14:35:19 leeming
''' Whitespace, only whitespace. Part II.
'''
''' Revision 1.1.1.1 1999/09/27 18:44:35 larsbj
''' This is the new LyX development branch, it is based upon version
''' 1.0.4pre8 and will from now on be used for both development and stable branches.
'''
'''
''' Revision 1.1.1.1 1998/04/20 21:14:36 larsbj
''' repository moved due to corrupted repository on other machine
'''
''' Revision 1.1.2.1 1998/03/02 16:12:47 larsbj
''' two patches added to 0.12.1pre2
'''
''' Revision 1.1.2.1 1998/02/07 02:27:30 larsbj
''' patch from jean-marc, and a fix to libdir detection by lgb
'''
''' Revision 1.1 1997/10/26 10:22:04 larsbj
''' lots of small changes
'''
''' Revision 1.1 1997/10/17 16:52:21 larsbj
''' changes
'''
'''
.de Sh
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp
.if t .sp .5v
.if n .sp
..
.de Ip
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.de Vb
.ft CW
.nf
.ne \\$1
..
.de Ve
.ft R
.fi
..
'''
'''
''' Set up \*(-- to give an unbreakable dash;
''' string Tr holds user defined translation string.
''' Bell System Logo is used as a dummy character.
'''
.tr \(*W-|\(bv\*(Tr
.ie n \{\
.ds -- \(*W-
.ds PI pi
.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
.ds L" ""
.ds R" ""
.ds L' '
.ds R' '
'br\}
.el\{\
.ds -- \(em\|
.tr \*(Tr
.ds L" ``
.ds R" ''
.ds L' `
.ds R' '
.ds PI \(*p
'br\}
.\" If the F register is turned on, we'll generate
.\" index entries out stderr for the following things:
.\" TH Title
.\" SH Header
.\" Sh Subsection
.\" Ip Item
.\" X<> Xref (embedded
.\" Of course, you have to process the output yourself
.\" in some meaninful fashion.
.if \nF \{
.de IX
.tm Index:\\$1\t\\n%\t"\\$2"
..
.nr % 0
.rr F
.\}
.TH TEX 1 "perl 5.003, patch 07" "30/Oct/96" "User Contributed Perl Documentation"
.IX Title "TEX 1"
.UC
.IX Name "Text::TeX - Perl module for parsing of C<TeX>."
.if n .hy 0
.if n .na
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.de CQ \" put $1 in typewriter font
.ft CW
'if n "\c
'if t \\&\\$1\c
'if n \\&\\$1\c
'if n \&"
\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
'.ft R
..
.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
. \" AM - accent mark definitions
.bd B 3
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds ? ?
. ds ! !
. ds /
. ds q
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.ds oe o\h'-(\w'o'u*4/10)'e
.ds Oe O\h'-(\w'O'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds v \h'-1'\o'\(aa\(ga'
. ds _ \h'-1'^
. ds . \h'-1'.
. ds 3 3
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
. ds oe oe
. ds Oe OE
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
.IX Header "NAME"
Text::TeX -- Perl module for parsing of \f(CWTeX\fR.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.PP
.Vb 1
\& use Text::TeX;
.Ve
.Vb 12
\& sub report {
\& my($eaten,$txt) = (shift,shift);
\& print "Comment: `", $eaten->[1], "'\en" if defined $eaten->[1];
\& print "@{$txt->{waitfors}} ", ref $eaten, ": `", $eaten->[0], "'";
\& if (defined $eaten->[3]) {
\& my @arr = @{ $eaten->[3] };
\& foreach (@arr) {
\& print " ", $_->print;
\& }
\& }
\& print "\en";
\& }
.Ve
.Vb 3
\& my $file = new Text::TeX::OpenFile 'test.tex',
\& 'defaultact' => \e&report;
\& $file->process;
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
A new \f(CWTeX\fR parser is created by
.PP
.Vb 1
\& $file = new Text::TeX::OpenFile $filename, attr1 => $val1, ...;
.Ve
$filename may be \f(CWundef\fR, in this case the text to parse may be
specified in the attribute \f(CWstring\fR.
.PP
Recognized attributes are:
.Ip "\f(CWstring\fR" 12
.IX Item "\f(CWstring\fR"
contains the text to parse before parsing \f(CW$filename\fR.
.Ip "\f(CWdefaultact\fR" 12
.IX Item "\f(CWdefaultact\fR"
denotes a procedure to submit \f(CWoutput tokens\fR to.
.Ip "\f(CWtokens\fR" 12
.IX Item "\f(CWtokens\fR"
gives a hash of \f(CWdescriptors\fR for \f(CWinput token\fR. A sane default is
provided.
.PP
A call to the method \f(CWprocess\fR launches the parser.
.Sh "Tokenizer"
.IX Subsection "Tokenizer"
When the parser is running, it processes input stream by splitting it
into \f(CWinput tokens\fR using some \fIheuristics\fR similar to the actual
rules of TeX tokenizer. However, since it does not use \fIthe exact
rules\fR, the resulting tokens may be wrong if some advanced TeX command
are used, say, the character classes are changed.
.PP
This should not be of any concern if the stream in question is a
\*(L"user\*(R" file, but is important for \*(L"packages\*(R".
.Sh "Digester"
.IX Subsection "Digester"
The processed \f(CWinput tokens\fR are handled to the digester, which
handles them according to the provided \f(CWtokens\fR attribute.
.Sh "\f(CWtokens\fR attribute"
.IX Subsection "\f(CWtokens\fR attribute"
This is a hash reference which describes how the \f(CWinput tokens\fR
should be handled. A key to this hash is a literal like \f(CW^\fR or
\f(CW\efraction\fR. A value should be another hash reference, with the
following keys recognized:
.Ip "class" 7
.IX Item "class"
Into which class to bless the token. Several predefined classes are
provided. The default is \f(CWText::TeX::Token\fR.
.Ip "Type" 7
.IX Item "Type"
What kind of special processing to do with the input after the
\f(CWclass\fR methods are called. Recognized \f(CWType\fRs are:
.Ip "report_args" 17
.IX Item "report_args"
When the token of this \f(CWType\fR is encountered, it is converted into
\f(CWText::Tex::BegArgsToken\fR. Then the arguments are processed as usual,
and an \f(CWoutput token\fR of type \f(CWText::Tex::ArgToken\fR is inserted
between them. Finally, after all the arguments are processed, an
\f(CWoutput token\fR \f(CWText::Tex::EndArgsToken\fR is inserted.
.Sp
The first element of these simulated \f(CWoutput tokens\fR is an array
reference with the first element being the initial \f(CWoutput token\fR
which generated this sequence. The second element of the internal
array is the number of arguments required by the \f(CWinput token\fR. The
\f(CWText::Tex::ArgToken\fR token has a third element, which is the ordinal
of the argument which ends immediately before this token.
.Sp
If requested, a token \f(CWText::Tex::LookAhead\fR may be returned instead
of \f(CWText::Tex::EndArgsToken\fR. The additional elements of
\f(CW$token-\fR[0]> are: the reference to the corresponding \f(CWlookahead\fR
attribute, the relevant key (text of following token) and the
corresponding value.
.Sp
In such a case the input token which was looked-ahead would generate
an output token of type \f(CWText::Tex::BegArgsTokenLookedAhead\fR (if it
usually generates \f(CWText::Tex::BegArgsToken\fR).
.Ip "local" 17
.IX Item "local"
Means that these macro introduces a local change, which should be
undone at the end of enclosing block. At the end of the block an
output event \f(CWText::TeX::EndLocal\fR is delivered, with \f(CW$token-\fR[0]>
being the output token for the \fIlocal\fR event starting.
.Sp
Useful for font switching.
.PP
Some additional keys may be recognized by the code for the particular
\f(CWclass\fR.
.Ip "\f(CWcount\fR" 12
.IX Item "\f(CWcount\fR"
number of arguments to the macro.
.Ip "\f(CWwaitfor\fR" 12
.IX Item "\f(CWwaitfor\fR"
gives the matching token for a \fIstarting delimiter\fR token.
.Ip "\f(CWeatargs\fR" 12
.IX Item "\f(CWeatargs\fR"
number of tokens to swallow literally and put into the relevant slot
of the \f(CWoutput token\fR. The surrounding braces are stripped.
.Ip "\f(CWselfmatch\fR" 12
.IX Item "\f(CWselfmatch\fR"
is used with \f(CWeatargs==1\fR. Denotes that the matching token is also
\f(CWeatargs==1\fR, and the swallowed tokens should coinside (like with
\f(CW\ebegin{blah} ... \eend{blah}\fR).
.Ip "\f(CWlookahead\fR" 12
.IX Item "\f(CWlookahead\fR"
is a hash with keys being texts of tokens which need to be treated
specially after the end of arguments for the current token. If the
corresponding text follows the token indeed, a token
\f(CWText::Tex::LookAhead\fR is returned instead of
\f(CWText::Tex::EndArgsToken\fR.
.Sh "Symbol font table"
.IX Subsection "Symbol font table"
The hash \f(CW%Text::TeX::xfont\fR contains the translation table from TeX
tokens into the corresponding font elements. The values are array
references of the form \f(CW[fontname, char]\fR, Currently the only font
supported is \f(CWsymbol\fR.
.SH "AUTHOR"
.IX Header "AUTHOR"
Ilya Zakharevich, ilya@math.ohio-state.edu
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\fIperl\fR\|(1).
.rn }` ''

View File

@ -1,129 +0,0 @@
####################### VERBATIM COPYING SUBROUTINES ########################
# This file is part of reLyX.
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
#
# Subs for copying stuff verbatim from a TeX file instead of parsing it.
# These subs use the rather low-level TT:OpenFile::paragraph method, because
# the higher level methods assume you've parsed, and verbatim stuff might be
# parsed normally.
package Verbatim;
use strict;
my $debug_on; # package-wide variable set if -d option is given
sub copy_verb {
# This subroutine handles a \verb token. Text is guaranteed to be on one line.
# \verb must be followed by a non-letter, then copy anything until the next
# occurrence of that character.
my ($fileobject, $token) = @_;
my $verb = $token->exact_print; # "\verb" or "\verb*"
my $textref = $fileobject->paragraph;
# eat e.g., !text $\% text!
if ($$textref =~ s/^([^A-Za-z*]).*?\1//) {
$verb .= $&;
} else { warn "unable to parse \\verb"; $verb .="||" }
return $verb;
}
sub copy_verbatim {
# Was -d option given?
$debug_on = (defined($main::opt_d) && $main::opt_d);
# This subroutine eats text verbatim until a certain text is reached
# The end text itself is not eaten; this is necessary so that
# environments are properly nested (otherwise, TeX.pm complains)
# It returns a string containing the text
#
# Arg 0 is the Text::TeX::OpenFile file object, arg 1 is the beginning token
my $fileobject = shift;
my $begin_token = shift;
my %endtokentbl = ( '\(' => '\)',
'\[' => '\]',
'$' => '$',
'$$' => '$$' );
my $type = ref($begin_token);
$type =~ s/^Text::TeX:://o or die "unknown token type $type?!";
# Figure out beginning & end text of this token or environment
# Beginning text so we know if you have an environment nested within itself
# End text so we know when to finish copying OR when to 'pop' a level
# if an environment is nested within itself
# Because the searches will generally be matching expressions with backslashes
# and other meta-characters, we put \Q\E around (pieces of) the expressions
my ($begin_text, $end_text);
if ($type =~ /^Token$/) { # \( or \[
$begin_text = $begin_token->print; # e.g., '\('
die "unknown begin_text" unless exists $endtokentbl{$begin_text};
$end_text = "\Q$endtokentbl{$begin_text}\E";
# actually, begin_text shouldn't be nec. since you can't nest math
$begin_text = "\Q$begin_text\E"; # quote slashes, etc.
} elsif (/^Begin::Group::Args$/) { # \begin{foo}
# \s* to allow, e.g., '\begin {foo}'
$begin_text = $begin_token->print;
$begin_text = "\Q$begin_text\E";
$begin_text =~ s/begin/begin\\s*/;
($end_text = $begin_text) =~ s/begin/end/;
} else {
die "copy_verbatim called with unknown token type $type!";
}
#print "\nsub copy_verbatim going to copy until $end_text\n" if $debug_on;
# Actual copying
my $textref; # reference to stuff we read in to print
my $to_print = ""; #text to print
# we're automatically "nested" once since we had the original \begin
my $nest_count = 1;
# (Eat and) Print out paragraphs until you find $end_text
# paragraph returns "" if it's time to get a new paragraph -- if that
# happens, we want to continue, but we can't dereference $textref
# Call paragraph with an argument so that it gets a new paragraph if
# it gets to the end of a paragraph
# Allow nesting of this environment!
while (defined ($textref = $fileobject->paragraph(1))) {
next unless $textref; # new paragraph; keep going
# If we match begin or end text, eat everything up to it
# Make sure to handle (nested) begin & end texts in order, so we can
# differentiate \begin \begin \end \end from \begin \end \begin \end
if ($$textref =~ /$end_text/ && $` !~ /$begin_text/) {
# Note that $` will be from the last *successful* match,
# namely the end_text match
--$nest_count;
$to_print .= $`; # print until the \end command
if ($nest_count) {
$to_print .= $&; # print the end text too
$$textref = $'; # leave the rest in the paragraph
} else {
# Leave end text (and anything after it) for TeX.pm
$$textref = $& . $';
last; # done copying since there's no more nesting
}
# If we match beginning text, we have a nested environment
} elsif ($$textref =~ /$begin_text/ && $` !~ /$end_text/) {
$to_print .= $`; # print up to and
$to_print .= $&; # INCLUDING the begin text
$$textref = $'; # leave the rest in the paragraph
++$nest_count;
# If we didn't match begin OR end text, just eat the whole paragraph
} else {
$to_print .= $$textref;
$$textref = "";
} # end if $$textref
} #end while
die "eof without finding matching text $end_text" if (!defined $textref);
# return the string
#print "Exiting sub copy_verbatim\n" if $debug_on;
return $to_print;
} # end copy_verbatim
1; # return true to calling routine

View File

@ -1,141 +0,0 @@
dnl Usage: RELYX_WARNING(message) Displays the warning "message" and sets
dnl the flag lyx_warning to yes.
AC_DEFUN([RELYX_WARNING],[
relyx_warning_txt="$relyx_warning_txt
== $1
"
relyx_warning=yes])
dnl Usage: RELYX_ERROR(message) Displays the error "message" and sets
dnl the flag lyx_error to yes.
AC_DEFUN([RELYX_ERROR],[
relyx_error_txt="$relyx_error_txt
== $1
"
relyx_error=yes])
dnl RELYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
dnl
define([RELYX_SEARCH_PROG],[dnl
case "`uname -s 2> /dev/null`" in
OS/2)
PATH=`echo -E "$PATH" | sed 's+\\\\+/+g'`
PATH_IFS=';'
;;
*)
PATH_IFS=':'
;;
esac
for ac_prog in $2 ; do
# Extract the first word of "$ac_prog", so it can be a program name with
# args.
set dummy $ac_prog ; ac_word=$[2]
if test ! -n "[$]$1"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}$PATH_IFS"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f [$ac_dir/$ac_word] -o -f [$ac_dir/$ac_word$ac_exeext]; then
$1="$ac_prog"
break
fi
done
IFS="$ac_save_ifs"
fi
if test -n "[$]$1"; then
ac_result=yes
else
ac_result=no
fi
ifelse($3,,,[$3])
test -n "[$]$1" && break
done
])
dnl Usage RELYX_PROG_PERL_OK
AC_DEFUN([RELYX_PROG_PERL_OK],[
if echo 'require 5.002;exit' | $ac_dir/$ac_prog 2>&5
then
PERL=$ac_dir/$ac_prog
else
PERL=
fi])
dnl Usage RELYX_CHECK_PERL
AC_DEFUN([RELYX_CHECK_PERL],[
AC_MSG_CHECKING([for perl >= 5.002])
RELYX_SEARCH_PROG(PERL, perl perl5 perl5.6.1 perl5.6.0 perl5.005 perl5.004 perl5.003 perl5.002,
RELYX_PROG_PERL_OK
)
if test -n "$PERL" ; then
AC_MSG_RESULT($PERL)
else
PERL="/bin/echo reLyX has been disabled because perl version 5.002 has
not \
been found.\nTo reenable it, edit "
AC_MSG_RESULT(no)
RELYX_WARNING(dnl
Configure has not been able to find a version 5.002 or better of Perl.
reLyX has been setup to only display a warning message.
Set variable PERL to some value to install a working reLyX.)
fi
AC_SUBST(PERL)])
dnl Usage: RELYX_CHECK_ERRORS Displays a warning message if a RELYX_ERROR
dnl has occured previously.
AC_DEFUN([RELYX_CHECK_ERRORS],[
if test x$relyx_error = xyes; then
cat <<EOF
**** The following problems have been detected by configure.
**** Please check the messages below before running 'make'.
**** (see the section 'Problems' in the INSTALL file)
$relyx_error_txt
$relyx_warning_txt
deleting cache $cache_file
EOF
rm -f $cache_file
else
if test x$relyx_warning = xyes; then
cat <<EOF
=== The following minor problems have been detected by configure.
=== Please check the messages below before running 'make'.
=== (see the section 'Problems' in the INSTALL file)
$relyx_warning_txt
EOF
fi
fi])
dnl Check what kind of packaging should be used at install time.
dnl The default is autodetected.
AC_DEFUN([RELYX_USE_PACKAGING],
[AC_MSG_CHECKING([what packaging should be used])
AC_ARG_WITH(packaging,
[ --with-packaging=THIS Use THIS packaging for installation:
Possible values: posix, windows, macosx],
[lyx_use_packaging="$withval"], [
case $host in
*-apple-darwin*) lyx_use_packaging=macosx ;;
*-pc-mingw32*) lyx_use_packaging=windows;;
*) lyx_use_packaging=posix;;
esac])
AC_MSG_RESULT($lyx_use_packaging)
case $lyx_use_packaging in
macosx) default_prefix="/Applications/LyX.app"
bindir='${prefix}/Contents/MacOS'
libdir='${prefix}/Contents/Resources'
datadir='${prefix}/Contents/Resources'
mandir='${prefix}/Contents/Resources/man' ;;
windows) default_prefix="C:/Program Files/LyX"
bindir='${prefix}/bin'
libdir='${prefix}/Resources'
datadir='${prefix}/Resources'
mandir='${prefix}/Resources/man' ;;
posix) default_prefix=$ac_default_prefix ;;
*) RELYX_ERROR([Unknown packaging type $lyx_use_packaging]) ;;
esac
])

View File

@ -1,59 +0,0 @@
dnl Process with autoconf to generate configure script -*- sh -*-
AC_INIT
AC_CONFIG_SRCDIR(reLyX.in)
AC_PREREQ(2.52)
AC_CONFIG_AUX_DIR(../../config)
dnl PACKAGE=reLyX
dnl Do this to install in $datadir/lyx/reLyX instead of $datadir/reLyX/reLyX
AM_MAINTAINER_MODE
AC_CANONICAL_TARGET
AC_ARG_WITH(version-suffix,
[ --with-version-suffix[=<version>] install lyx files as lyx<version>],
[lyxname="lyx$withval"
program_suffix=$withval],
[lyxname=lyx])
dnl must make a macro that gets the reLyX version
VERSION=2.0
AM_INIT_AUTOMAKE($lyxname, $VERSION)
# if reLyX has already been generated in this directory, delete it first
test -x reLyX && rm -f reLyX
### Check how the files should be packaged
RELYX_USE_PACKAGING
# fix the value of the prefixes.
test "x$prefix" = xNONE && prefix=$default_prefix
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
if echo $prefix |grep ' ' >/dev/null 2>/dev/null ; then
RELYX_WARNING([The installation prefix \"${prefix}\" contains a space, which
causes problems with the Makefiles. The installation will be done in
directory \"`pwd`/installprefix\" instead. Please move its contents to
the right place after installation.])
prefix=`pwd`/installprefix
fi
# we need to expand ${datadir} to put it into the reLyX wrapper.
LYX_DIR=`eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
AC_SUBST(LYX_DIR)
# Work around a problem in automake 1.4: when invoking install-strip,
# INSTALL_PROGRAM is changed to 'install -s', and since
# INSTALL_SCRIPT==INSTALL_PROGRAM, we get errors with fileutils-4.0
# which returns an error condition when stripping fails.
INSTALL_SCRIPT='${INSTALL}'
dnl Checks for programs.
AC_PROG_INSTALL
RELYX_CHECK_PERL
dnl Finish the work
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([reLyX], [chmod 755 reLyX])
AC_CONFIG_FILES([noweb2lyx], [chmod 755 noweb2lyx])
AC_OUTPUT
RELYX_CHECK_ERRORS

View File

@ -1,316 +0,0 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2004-02-15.20
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
transformbasename=
transform_arg=
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=
dst=
dir_arg=
usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 -d DIRECTORIES...
In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
In the second, create the directory path DIR.
Options:
-b=TRANSFORMBASENAME
-c copy source (using $cpprog) instead of moving (using $mvprog).
-d create directories instead of installing files.
-g GROUP $chgrp installed files to GROUP.
-m MODE $chmod installed files to MODE.
-o USER $chown installed files to USER.
-s strip installed files (using $stripprog).
-t=TRANSFORM
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while test -n "$1"; do
case $1 in
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
-c) instcmd=$cpprog
shift
continue;;
-d) dir_arg=true
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
--help) echo "$usage"; exit 0;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
--version) echo "$0 $scriptversion"; exit 0;;
*) # When -d is used, all remaining arguments are directories to create.
test -n "$dir_arg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg"
shift # fnord
fi
shift # arg
dstarg=$arg
done
break;;
esac
done
if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src ;;
esac
if test -n "$dir_arg"; then
dst=$src
src=
if test -d "$dst"; then
instcmd=:
chmodcmd=
else
instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dstarg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dstarg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst ;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
dst=$dst/`basename "$src"`
fi
fi
# This sed command emulates the dirname command.
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# Skip lots of stat calls in the usual case.
if test ! -d "$dstdir"; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS=$oIFS
pathcomp=
while test $# -ne 0 ; do
pathcomp=$pathcomp$1
shift
if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp" || lasterr=$?
# mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This
# is OK.
test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }
fi
pathcomp=$pathcomp/
done
fi
if test -n "$dir_arg"; then
$doit $instcmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
else
# If we're going to rename the final executable, determine the name now.
if test -z "$transformarg"; then
dstfile=`basename "$dst"`
else
dstfile=`basename "$dst" $transformbasename \
| sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename.
test -z "$dstfile" && dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
# Move or copy the file name to the temp name
$doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
# Now remove or move aside any old file at destination location. We
# try this two ways since rm can't unlink itself on some systems and
# the destination file might be busy for other reasons. In this case,
# the final cleanup might fail but the new file should still install
# successfully.
{
if test -f "$dstdir/$dstfile"; then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| {
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi || { (exit 1); exit; }
done
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit
}
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@ -1,360 +0,0 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
scriptversion=2003-09-02.23
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# 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, 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., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Send bug reports to <bug-automake@gnu.org>."
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
aclocal*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
# We have makeinfo, but it failed.
exit 1
fi
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
tar)
shift
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@ -1,150 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
scriptversion=2004-02-15.20
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain.
#
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
errstatus=0
dirmode=""
usage="\
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
Create each directory DIR (with mode MODE, if specified), including all
leading file name components.
Report bugs to <bug-automake@gnu.org>."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
echo "$usage"
exit 0
;;
-m) # -m PERM arg
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
dirmode=$1
shift
;;
--version)
echo "$0 $scriptversion"
exit 0
;;
--) # stop option processing
shift
break
;;
-*) # unknown option
echo "$usage" 1>&2
exit 1
;;
*) # first non-opt arg
break
;;
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
# mkdir -p a/c at the same time, both will detect that a is missing,
# one will create a, then the other will try to create a and die with
# a "File exists" error. This is a problem when calling mkinstalldirs
# from a parallel make. We use --version in the probe to restrict
# ourselves to GNU mkdir, which is thread-safe.
case $dirmode in
'')
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
# directories to create, and then abort because `.' already
# exists.
test -d ./-p && rmdir ./-p
test -d ./--version && rmdir ./--version
fi
;;
*)
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
test ! -d ./--version; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
else
# Clean up after NextStep and OpenStep mkdir.
for d in ./-m ./-p ./--version "./$dirmode";
do
test -d $d && rmdir $d
done
fi
;;
esac
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=""
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@ -1,130 +0,0 @@
#!@PERL@
#
# Copyright (C) 1999 Kayvan A. Sylvan <kayvan@sylvan.com>
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
#
# Written with assistance from:
# Edmar Wienskoski Jr. <edmar-w-jr@technologist.com>
# Amir Karger <karger@post.harvard.edu>
#
# $Id: noweb2lyx.in,v 1.3 2005/06/09 09:58:02 leeming Exp $
#
# NOTE: This file was automatically generated from noweb2lyx.lyx using noweb.
#
&usage() if ($#ARGV < 1); # zero or one argument
if ($ARGV[0] eq "-pre") {
&usage unless ($#ARGV == 2);
$input_file = $ARGV[1]; $output_file = $ARGV[2]; $pre_only = 1;
} elsif ($ARGV[0] eq "-post") {
&usage unless ($#ARGV == 2);
$input_file = $ARGV[1]; $output_file = $ARGV[2]; $post_only = 1;
} else {
&usage unless ($#ARGV == 1);
$input_file = $ARGV[0]; $output_file = $ARGV[1];
$pre_only = 0; $post_only = 0;
}
sub setup_files {
my($in, $out) = @_;
open(INPUT, "<$in") || die "Can not read $in: $!\n";
open(OUTPUT, ">$out") || die "Can not write $out: $!\n";
}
sub usage() {
print "Usage: noweb2lyx [-pre | -post] input-file output-file
If -pre is specified, only pre-processes the input-file for reLyX.
Similarly, in the case of -post, post-processes reLyX output.
In case of bugs, Email Kayvan Sylvan <kayvan\@sylvan.com>.\n";
exit;
}
if (!$post_only) {
if ($pre_only) {
&setup_files($input_file, $output_file);
} else {
$relyx_file = "temp$$";
&setup_files($input_file, $relyx_file);
}
inputline: while(<INPUT>)
{
if (/^\s*\<\<.*\>\>=/) { # Beginning of a noweb scrap
$savedScrap = $_;
$endLine = "";
scrapline: while (<INPUT>) {
last scrapline if /^@\s+/;
$savedScrap .= $_;
};
switch: {
if (/^@\s+$/) {$savedScrap .= $_; last switch; }
if (/^@\s+%def.*$/) {$savedScrap .= $_; last switch; }
if (/^@\s+(.*)$/) {$savedScrap .= "@\n"; $endLine = "$1\n"; }
}
print OUTPUT "\\begin{reLyXskip}\n";
print OUTPUT $savedScrap;
print OUTPUT "\\end{reLyXskip}\n\n";
print OUTPUT "$endLine";
} elsif (/^@\s+(.*)/) { # Beginning of a documentation chunk
print OUTPUT $1; # We do not need the ``@'' part
} elsif (/\[\[.+\]\]/) { # noweb quoted code
s/\[\[.+?\]{2,}/{$&}/g;
print OUTPUT;
} else {
print OUTPUT; # Just let the line pass through
}
}
close(INPUT);
close(OUTPUT);
}
if ((!$pre_only) && (!$post_only)) {
open(INPUT, "<$relyx_file") ||
die "Can not read $relyx_file: $!\n";
$class = "article"; # default if none found
parse: while(<INPUT>) {
if (/\\docu[m]entclass{(.*)}/) {
$class = $1;
last parse;
}
}
close(INPUT);
$doc_class = "literate-" . $class;
die "reLyX returned non-zero: $!\n"
if (system("reLyX -c $doc_class $relyx_file"));
}
if (!$pre_only) {
if ($post_only) {
&setup_files("$input_file", "$output_file");
} else {
&setup_files("$relyx_file.lyx", "$output_file");
}
line: while(<INPUT>)
{
if (/\\latex latex/) { # Beginning of some latex code
if (($line = <INPUT>) =~ /^\s*<</) { # code scrap
$savedScrap = "\\layout Scrap\n\n$line";
codeline: while (<INPUT>) {
$savedScrap .= $_;
last codeline if /^@\s+/;
};
print OUTPUT $savedScrap;
slurp: while (<INPUT>) {
last slurp if /\\latex /;
next slurp if /\\newline/;
next slurp if /^\s*$/;
warn "confused by line: $_";
}
} else {
# print the \latex latex line + next line
print OUTPUT "$_$line";
}
next line;
}
if (/\[\[.+\]\]/) { # special code for [[var]]
s/\[\[.+?\]{2,}/\n\\latex latex\n$&\n\\latex default\n/g;
print OUTPUT;
next line;
}
print OUTPUT; # default
}
close(INPUT);
close(OUTPUT);
}
system("rm -f $relyx_file*") unless ($post_only || $pre_only);

View File

@ -1,81 +0,0 @@
#!@PERL@
# This file is part of reLyX
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
############################# reLyX wrapper
use strict;
use File::Basename;
use Cwd 'abs_path';
$^W = 1; # same as 'perl -w'
# Variables to make global, so subroutines can use them
use vars qw($lyxdir $lyxname);
my (@maybe_dir);
my $mainscript;
my $relyxdir;
# Do this in a BEGIN block so it's done before the 'use lib' below
BEGIN{
# Variables may not be assigned before the BEGIN block
$mainscript = "reLyXmain.pl";
# This points to LyX library dir, e.g. /usr/local/share/lyx
$lyxdir = "@LYX_DIR@";
# This is just "." if you compiled from the source directory
my $srcdir = "@srcdir@";
# This is the name of the program, usually just "lyx"
$lyxname = "@PACKAGE@";
# The name under which reLyX was invoked
my $name = $0;
# resolve any links to dirname
while (defined (readlink($name))) {$name = readlink($name)};
my $dir = &dirname($name);
# Create a list of possible directories to look in. Non-existent directories
# are OK, but empty or undefined values will make 'use lib' complain
# case 1: for developers, e.g. - reLyX and $mainscript in same directory
push @maybe_dir, "$dir";
# case 2: ran make but not make install.
push @maybe_dir, "$dir/$srcdir";
# case 3: environment variable LYX_DIR_14x has been set
if (exists $ENV{LYX_DIR_14x}) { push @maybe_dir, "$ENV{LYX_DIR_14x}/reLyX"};
# case 4: e.g., reLyX in /opt/bin, $mainscript in /opt/share/lyx/reLyX
push @maybe_dir, "$dir/../share/$lyxname/reLyX"; # case 4
# case 5: LyX/Mac -- reLyX is in a MacOS X application bundle
push @maybe_dir, "$dir/../Resources/LyX/reLyX"; # case 5
# case 6: configure figured out where $mainscript is
push @maybe_dir, "$lyxdir/reLyX";
# Decide which one is the real directory, based on the existence of
# "$dir/$mainscript"
my $found=0;
foreach $dir (@maybe_dir) {
if( -e "$dir/$mainscript" ) {
$lyxdir = abs_path("$dir/..");
$relyxdir = abs_path($dir);
$found = 1;
last;
}
}
if(!$found) {
print "reLyX directory not found.\n";
exit(1);
} else { ##just for debug purpose, remove for stable version
print "reLyX directory is: $relyxdir\n";
}
} # end BEGIN block
# Now put those directories into @INC
use lib $relyxdir;
# Now run the script. Perl will look in @INC to find the script (and
# other modules that $mainscript calls)
require $mainscript; # require includes and runs the code...
exit;
############################ end reLyX wrapper

View File

@ -1,723 +0,0 @@
=head1 NAME
B<reLyX> - translate well-behaved LaTeX into LyX
=head1 SYNOPSIS
The simplest way to use B<reLyX> is via the File->Import command in LyX. (This
option is available starting with version 1.0.0.) That runs B<reLyX> on
the given file and loads the resulting file into LyX. You should try that
first, and call it from the command line only if you need to use more
complicated options.
B<reLyX> [ B<-c> I<textclass> ] [ B<-df> ] [ B<-o> I<outputdir> ] [B<-n>]
S<[ B<-r> I<renv1>[,I<renv2>...]]> S<[ B<-s> I<sfile1>[,I<sfile2>...]]>
F<inputfile>
B<reLyX> B<-p> B<-c> I<textclass> [ B<-df> ] [ B<-o> I<outputdir> ]
S<[ B<-r> I<renv1>[,I<renv2>...]]> S<[ B<-s> I<sfile1>[,I<sfile2>...]]>
F<inputfiles>
B<reLyX> B<-h>
=head1 OPTIONS
=over 4
=item B<-c>
Class. By default, when B<reLyX> sees a C<\documentclass{foo}> command, it
creates a file of textclass "foo" and reads the LyX layout file for that class
(something like /usr/local/share/lyx/layouts/foo.layout OR
B<HOME>/.lyx/layouts/foo.layout). Use B<-c> to declare a different textclass
(and read a different layout file).
=item B<-d>
Debug. By default, B<reLyX> gives sparse output and deletes the temporary files
which were created during translation. Using the B<-d> flag will create much
more output (both to stdout and stderr) and leave the temporary files around.
=item B<-f>
Force. B<reLyX> will not run if the .lyx file it would generate already exists
Use the B<-f> option (carefully) to clobber any existing files.
=item B<-h>
Help. Print out usage information and quit.
=item B<-n>
Noweb. Translate a noweb (aka literate programming) file. This should be
(almost?) equivalent to running "noweb2lyx foo.tex foo.lyx". This option
requires the B<-c> option.
=item B<-o>
Output directory. With this option, all temporary files and LyX output files
(for the given input file, for any included files, or for any file fragments
given with the B<-p> option) will be put into I<outputdir>. Otherwise, for
each file F<dir/foo.tex>, the temporary files and the LyX output file will be
created in F<dir>. This can be useful if a file includes files from other
directories which you want to consolidate in one directory, or if you don't
have write permission on the directory the LaTeX files are in.
=item B<-p>
Partial file. The input files are LaTeX fragments, with no preamble matter or
C<\begin{document}> commands. This option requires the B<-c> option, since there
are no C<\documentclass> commands in the files B<reLyX> 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 B<reLyX> can be included in an
existing LyX file using the "Include LyX File" command from LyX's Insert menu.
=item B<-r>
Regular environments (see L<"Syntax Files">). 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.
=item B<-s>
Syntax files. Input (one or more quoted, comma-separated) syntax files to read
in addition to the default. (see L<"Syntax Files"> for details).
=back
=head1 DESCRIPTION
=head2 Introduction
B<reLyX> will create a LyX file F<dir/foo.lyx> from the LaTeX file
F<dir/foo.tex> (unless the B<-o> option is used).
Suffixes .tex, .ltx and .latex are supported. If F<inputfile>
does not exist and does not have one of these suffixes, B<reLyX> will try to
translate F<inputfile.tex>. (This is similar to the behavior of LaTeX.)
The purpose of B<reLyX> is to translate I<well-behaved> LaTeX2e into LyX. If
your LaTeX file doesn't compile---or if you do weird things, like redefining
standard LaTex commands---it may choke. LaTeX209 will often be translated
correctly, but it's not guaranteed.
B<reLyX> has some bugs and lacks a few features. However, its main goals are:
=over 4
=item *
Get through a well-behaved LaTeX2e file without crashing
=item *
Translate a lot of that file.
=item *
Localize the parts that can't be translated and copy them in TeX mode
=back 4
It achieves these main goals pretty well on most files.
There are many improvements that can and will be made to B<reLyX> in the
future. However, we wanted to get B<reLyX> out there early on, to make
it easier for new LyX users to read in their existing LaTeX files.
=head2 Usage
Here's a more lengthy description of what you should do to translate a LaTeX
document into LyX.
=over 4
=item *
Run B<reLyX>.
B<reLyX> will inform you of its progress and give any warnings to stderr, so if
you don't want any output at all, try (in csh) 'reLyX foo.tex >& /dev/null'.
You should NOT redirect standard output to F<foo.lyx>.
=item *
Run LyX (version 0.12 or 1.0 or later) on the resulting .lyx file.
In theory, most of the file will have been translated, and anything that's
untranslatable will be highlighted in red (TeX mode). In theory, LyX will be
able to read in the file, and to create printed documents from it, because all
that untranslated red stuff will be passed directly back to LaTeX, which LyX
uses as a backend. Unfortunately, reality doesn't always reflect theory. If
B<reLyX> crashes, or LyX cannot read the generated LyX file, see L</BUGS>,
or the F<BUGS> file.
=item *
Change things that are highlighted in red (TeX mode) by hand in LyX.
As mentioned above, you should be able to print out the LyX file even without
doing this. However, changing a command in TeX mode to the corresponding LyX
object will allow you to take advantage of LyX's WYSIWYM editing.
B<reLyX> is not guaranteed to create a LyX file which generates exactly the same
output as the LaTeX file, but it should come close. B<relyX> will generally err
on the side of translating less to ensure that dvi or ps files are accurate,
even though this leads to more "evil red text" and less WYSIWYM.
=item *
PROOFREAD THE DOCUMENT!!
I'm sure you were planning on doing this anyway, but it's particularly
important after translating a LaTeX document. B<reLyX> is, at least now, better
at "macro-translating" (translating the whole document) than
"micro-translating" (translating every little detail). For example, you may see
extra spaces or deleted spaces. Space handling has improved, but it's
not perfect.
=back
=head2 What reLyX Can Handle
B<reLyX> understands many LaTeX commands. It will translate:
=over 4
=item *
regular text, including mini-commands like ~, '', C<\@>, C<\TeX>, as well as
accented characters like C<\'{a}>, and the special cases ?` and !`
=item *
title commands like C<\author>, C<\date>, C<\title>, C<\thanks> and the
abstract environment
=item *
heading commands like C<\section> including starred commands (C<\section*>)
=item *
Environments: quote, quotation, and verse; center, flushright, and flushleft
=item *
itemize, enumerate, and description environments, and their C<\item> commands.
Also, well-behaved nested lists
=item *
cross-referencing commands: C<\ref>, C<\pageref>, C<\label>, and C<\cite>
=item *
C<\footnote> and C<\margin>
=item *
font-changing commands including C<\em>, C<\emph>, C<\textit>, and
corresponding commands to change family, size, series, and shape
=item *
C<\input{foo}> (or C<\input{foo.blah}>) and C<\include{foo}>. Plain TeX
C<\input> command "C<\input foo.tex>" is also supported.
=item *
tabular environment, and commands that go inside it like C<\hline>, C<\cline>,
and C<\multicolumn> (but see below)
=item *
float environments table and table*, as well as C<\caption> commands within
them
=item *
float environments figure and figure*, as well as graphics inclusion commands
\epsf, \epsffile, \epsfbox, \epsfxsize, \epsfig, \psfig, and \includegraphics.
Both the graphics and graphicx forms of \includegraphics are supported.
Note, however, that many figures will not be translatable into LyX. See
the section on "What LyX Can't Handle" below.
=item *
thebibliography environment and C<\bibitem> command, as well as BibTeX's
C<\bibliography> and C<\bibliographystyle> commands
=item *
miscellaneous commands: C<\hfill>, C<\>C<\>, C<\noindent>, C<\ldots>...
=item *
documentclass-specific environments (and some commands) which can be
translated to LyX layouts
=item *
arguments to certain untranslatable commands (e.g. C<\mbox>)
=back
Some of this support may not be 100% yet. See below for details
B<reLyX> copies math (almost) verbatim from your LaTeX file. Luckily, LyX reads
in LaTeX math, so (almost) any math which is supported by LyX should work just
fine. A few math commands which are not supported by LyX will be replaced with
their equivalents, e.g., C<\to> is converted to C<\rightarrow>. See
L<"Syntax Files"> for more details.
B<reLyX> will also copy any preamble commands (i.e., anything before
C<\begin{document}>) verbatim, so fancy stuff you've got in your preamble
should be conserved in dvi and printed documents, although it will not of
course show up in the LyX window. Check Layout->LaTeX Preamble to make sure.
=head2 What reLyX Can't Handle --- But it's OK
=over 4
=item *
tabular* tables
=item *
minipages
=item *
spacing commands (C<\vspace>, C<\pagebreak>, C<\par>, ...)
=item *
C<\centering>, C<\raggedleft>, C<\raggedright>
=item *
C<\verb> and verbatim environment. B<reLyX> is careful to copy I<exactly> in
this case, including comments and whitespace.
=item *
some unknown (e.g., user-defined) environments and commands
=back
B<reLyX> copies unknown commands, along with their arguments, verbatim into the
LyX file. Also, if it sees a C<\begin{foo}> where it doesn't recognize the
"foo" environment, it will copy verbatim until it sees C<\end{foo}> (unless
you use the B<-r> option). Hopefully, then, most of these unknown commands
won't cause B<reLyX> to break; they'll merely require you to do some editing
once you've loaded the file up in LyX. That should be less painful than
editing either the .tex or the .lyx file using a text editor.
=head2 What reLyX Handles Badly --- aka BUGS
Since B<reLyX> is relatively new, it's got a number of problems. As it
matures, these bugs will be squished.
If B<reLyX> is choking on something, or LyX can't read it after B<reLyX>
translates it, the best thing to do is to put C<\begin{reLyXskip}> before the
offending text, and C<\end{reLyXskip}> after it. I call this a "skip" block.
B<reLyX> will copy this block exactly, in TeX mode. Then edit the resulting
LyX file, and translate the unknown stuff by hand. The reLyXskip environment
is magical; the C<\begin> and C<\end> commands will not be put into the LyX
file.
=over 4
=item *
"Exact" copying of unknown environments and commands isn't quite exact.
Specifically, newlines and comments may be lost. This will yield ugly LyX, but
in almost all cases the output will be the same. However, certain parts of the
file will be copied perfectly, including whitespace and comments. This
includes: the LaTeX preamble, verbatim environments and C<\verb> commands, and
skip blocks.
=item *
B<reLyX> translates only a few options to the C<\documentclass> command.
(Specifically 1[012]pt, [letter|legal|executive|a4|a5|b5]paper,
[one|two]side, landscape, and [one|two]column.) Other options are placed in
the "options" field in the Layout->Document popup.
More importantly, B<reLyX> doesn't translate C<\usepackage> commands, margin
commands, C<\newcommands>, or, in fact, anything else from the preamble. It
simply copies them into the LaTeX preamble. If you have margin commands in
your preamble, then the LyX file will generate the right margins. However,
these margins will override any margins you set in the LyX Layout->Paper
popup. So you should remove the options from the preamble
(Layout->Latex Preamble) to be safe. The same goes for setting your language
with babel, C<\inputencoding>, C<\pagestyle>, etc.
=item *
The foil class has a couple bugs. B<reLyX> may do weird things with optional
arguments to C<\foilhead> commands. Also, it may handle C<\begin{dinglist}>
incorrectly (although the stuff in the environment should translate normally).
=back
Less significant bugs can be found in the F<BUGS> file.
B<reLyX> is hopefully rather robust. As mentioned above, it may not translate
your file perfectly, but it shouldn't crash. If it does crash---and the
problem is not one of those mentioned above or in the F<BUGS> file---see
L<"Bug Reports">.
=head2 What LyX Can't Handle
LyX itself is missing a couple features, such that even if B<reLyX> translates
things perfectly, LyX may still have trouble reading it. If you really need
these features, you can export your final document as LaTeX, and put them
back in. See F<BUGS> for more details on these bugs.
=over 4
=item *
For a number of commands, LyX does not support the optional argument. Examples
include C<\chapter> (and other sectioning commands), and C<\\>.
B<reLyX> will automatically discard the optional arguments with a warning to
stdout. LyX also ignores the width argument for the thebibliography
environment.
=item *
Centering (or right or left justifying) works on full paragraphs.
=item *
LyX support for tables isn't perfect. For complicated tables, use a "skip"
block, so that they will be copied in TeX mode.
=item *
The LyX math editor can't handle the AMS-LaTeX math environments align, split,
etc. So those environments will be copied in TeX mode. You can change
equation* environments to the exactly equivalent displaymath, and then they
will be translated correctly.
=item *
Lyx does not support clipping or bounding boxes for included graphics files.
Therefore, many graphics inclusion commands will be untranslatable, and
copied in TeX mode. In certain cases, you might be able to translate the
command by hand within LyX---for example, if you included a bounding box but
the bounding box is already in the .eps file.
LyX only allows figures to have sizes in in,cm, or percentages of \textwidth
or \textheight (or \columnwidth). B<reLyX> will translate from other units, like
pt or mm, but it cannot translate other lengths (e.g. if you wanted to scale a
figure to size \topmargin for some reason). B<reLyX> will copy figures with
untranslatable sizes in TeX mode. Again, you might be able to fix that within
LyX.
=back
=head2 The Future of reLyX
In the future, more commands and environments will be supported by B<reLyX>.
Bugs will be eradicated.
See the TODO file for details.
=head1 EXAMPLES
reLyX B<-df> B<-o> "my/dir" B<-r> "myenv" foo.tex > foo.debug
The above will create a file my/dir/foo.lyx from foo.tex, overwriting if
necessary. When it finds a C<\begin{myenv} ... \end{myenv}> block, it will
translate the stuff within the block, but copy the C<\begin> and C<\end>
commands in TeX mode. Finally, I'm going to keep the temporary files around
(they will also be in my/dir/) and output lots of debugging information into
the file foo.debug.
reLyX B<-n> B<-c> "literate-article" foo.tex
The above will change a noweb document into a LyX literate-article
document. A user would do this if the noweb document had documentclass
article.
=head1 NOTES
=head2 Bug Reports
If B<reLyX> is crashing or otherwise acting strangely---in ways
other than those described in L<"BUGS"> or the F<BUGS> file---then please run
B<reLyX -d>. That will allow you to figure out where in the reLyXing process
it crashed. That, in turn, will allow you to write a better bug report, which
will allow the developers to fix it more quickly and easily.
Bug reports should be sent to the LyX developers' mailing list. Its address
is currently lyx-devel@lists.lyx.org, but you can check the LyX home page,
http://www.lyx.org if that bounces. If you are running B<reLyX> on a huge file,
please do not send all of the output in your bug report. Just include the last
ten or twenty lines of output, along with the piece of the LaTeX file it
crashed on. Or, even better, attach a small but complete file which causes
the same problem as your original file.
=head2 Implementation Details:
B<reLyX> makes several "passes" in order to translate a TeX file. On each pass,
it creates one or two files.
=over 4
=item Pass 0
Before doing anything, read the syntax file (or files).
=item Pass 1a
Split preamble (anything before a C<\begin{document}> command) off the rest
of the file. It saves the two pieces in separate files. This is necessary
because there may be very strange stuff in a preamble. It also ignores
anything after the C<\end{document}>, on the assumption that it isn't LaTeX.
=item Pass 1b
Translate the preamble. Currently, that just means translating the
C<\documentclass> command and copying the rest exactly into the LyX preamble.
Once you know what class the document is, read the LyX layout file for that
class.
=item Pass 2
"Clean" the TeX file, generating slightly stricter LaTeX. This includes:
=over 8
=item *
Change, e.g., x^2 to the equivalent but clearer x^{2}
=item *
Removing optional arguments that LyX can't handle (e.g., from C<\chapter>)
=item *
Changing C<{\em foo}> to C<\emph{foo}>, etc. This is necessary because LyX
always writes out the non-local forms anyway. This should very rarely make a
difference.
=back
=item Pass 3
Translate LaTeX text, commands, and environments to LyX.
=item Pass 4
Put the two pieces back together, and do some final tweaking, to generate the
LyX file
=back
If there are any C<\input> or C<\include> commands, B<reLyX> will loop back to
the beginning and translate those. It assumes that the included files are the
same class as the main file, and that they have no preamble matter. (If you
have an C<\input> command in the preamble of a file, the command will be
copied exactly into the LaTeX preamble portion of the LyX file, so the
included file won't be translated.) So when translating included files, it
skips passes 0 and 1.
If B<reLyX> doesn't find a file you wanted to include, it will give a warning,
but will continue to translate any files it does find.
=head2 Layout Files
B<reLyX> reads a LyX layout file to know how to handle LaTeX environments and
commands which get translated to LyX layouts. This file will include all
"normal" non-math environments (i.e., including quote and itemize, but not
tabular, minipage, and some other fancy environments), and commands like
C<\section> and C<\title>. If you want to reLyX a class that doesn't have an
existing layout file, then you'll have to create a layout file. But you have
to do this anyway, in order to LyX the file, since LyX depends on layout files
to know how to display and process its files. Check the LyX documentation for
help with this task (which can be hard or easy, depending on the class you
want to create a layout file for.) If your class is quite similar to a class
that has a layout file, then consider using the B<-c> option.
=head2 Syntax Files
B<reLyX> always reads at least one syntax file, called the default syntax file.
B<reLyX> will read your personal syntax file if it exists; otherwise it will
read the system-wide file. B<reLyX> will read additional syntax files if you
specify them with the B<-s> option. (These extra files should have the same
format as the default file, but will tend to be shorter, since they only have
to specify extra commands not found in the default file.) A syntax file tells
B<reLyX> a few things.
First, it describes the syntax of each command, that is, how many required
arguments and how many optional arguments the command takes. Knowing this
makes it easier for B<reLyX> to copy (in TeX mode) commands that it doesn't
know how to translate. The syntax file simply has a command, followed by
braces or brackets describing its arguments in the correct order. For example,
a syntax file entry C<\bibitem[]{}> means that the C<\bibitem> command takes
an optional argument followed by a required one, while the entry C<\bf>
means that the C<\bf> command takes no arguments at all. When B<reLyX>
encounters a token that it doesn't know how to translate into LyX, it will
copy the token---along with the correct number of arguments---exactly. If the
token is not in the syntax file, then B<reLyX> just copies as many arguments
as it finds. This means that it may copy too much. But since the user can
specify additional syntax files, that shouldn't happen often.
Some commands that cannot be translated to LyX, like C<\mbox>, have as one of
their arguments regular LaTeX text. If the string "translate" is put into an
argument of an (untranslatable) command in the syntax file, then B<reLyX> will
translate that argument instead of copying it verbatim. So, for example, the
default syntax file has C<\raisebox{}[][]{translate}>. This means that the
C<\raisebox> command and the first argument (and optional arguments if they
exist) are copied in TeX mode, but the last argument (which may contain math,
complicated LaTeX, other untranslatable commands, etc.) will be translated
into LyX. You can't use "translate" on optional arguments.
User-defined syntax files are allowed to define new commands and
their syntax, or override the number of arguments for a command given in the
default syntax file. (E.g., if you're using a style that gives an extra
argument to some command...) However, this will only be useful for commands
copied in TeX mode. Commands which are actually translated by B<reLyX> (like
C<\item>) have their argument syntax hard-coded. The hard-coded commands are
identified in the default syntax file.
Second, the syntax file describes any "regular environments". Usually, an
entire unknown environment will be copied in TeX mode. If you define a regular
environment "foo", though, then only the C<\begin{foo}> and C<\end{foo}>
commands will be copied in TeX mode; the text within the environment will be
treated (i.e., translated) by B<reLyX> as regular LaTeX, rather than being
copied into TeX mode. Don't try to declare "tabbing" and "picture" as regular
environments, as the text within those environments will confuse B<reLyX>; use
this capability for new environments you create that have plain text or math
or simple commands in them. You also can't declare unknown math environments
(like equation*) as regular environments, either, since the LyX math editor
won't understand them. The names of regular environments appear,
whitespace-separated, between C<\begin{reLyXre}> and C<\end{reLyXre}>
statements in the syntax file. (If you have a regular environment which you
won't use very often, you can use the B<-r> option rather than writing a
syntax file.)
=head2 Miscellaneous
You need Perl version 5.002 or later to run B<reLyX>. <plug> If you don't have
Perl, you should get it anyway (at http://www.perl.com), because it's a really
useful tool for pretty much anything. </plug>
=head1 DIAGNOSTICS
B<reLyX> should always explain why it crashes, if it crashes. Some diagnostics
may be very technical, though, if they come from the guts of the code.
B<reLyX> gives much more information while running if you use the B<-d> option,
but you shouldn't need that unless something goes wrong.
When it's finished, B<reLyX> will tell you if it finished successfully or
died due to some error.
=head1 WARNINGS
Always keep a copy of your original LaTeX files either under a different
name or in a different directory. There are a couple ways in which using LyX
could lead to overwriting the original LaTeX file.
If you import foo.tex to create foo.lyx, then edit foo.lyx and want to
re-export it, note that it will overwrite the original foo.tex. (LyX will ask
you if you want to overwrite it.)
If you have the \use_tempdir variable set to false in your lyxrc, then LyX
will create its temporary files in your current directory, which means your
LaTeX original may be overwritten (without a warning from LyX) when you "view
dvi" or print the LyX document.
=head1 FILES
=over 4
=item F<MY_LYXDIR>/layouts/*.layout
User's personal layout files for document classes
=item F<MY_LYXDIR>/reLyX/syntax.default
User's personal syntax file
=item F<LIBDIR>/layouts/*.layout
System-wide layout files for document classes
=item F<LIBDIR>/reLyX/syntax.default
System-wide LaTeX syntax file
=back
F<LIBDIR> is the system-wide LyX directory, usually something like
/usr/local/share/lyx/. F<MY_LYXDIR> is your personal LyX directory, something
like .lyx/ in your home directory.
=head1 SEE ALSO
lyx(1), latex(1)
=head1 AUTHORS
Copyright (c) 1998-9 Amir Karger (karger@post.harvard.edu)
Code contributors:
=over 4
=item *
John Weiss wrote the original CleanTeX pass.
=item *
Etienne Grossmann
=item *
JosE<eacute> AbE<iacute>lio Oliveira Matos
=item *
David Suarez de Lis
=item *
Kayvan Aghaiepour Sylvan added noweb stuff and wrote noweb2lyx
=back
Other contributors:
=over 4
=item *
Jean-Marc Lasgouttes worked on the wrapper script and offered lots of bug
reports, advice, and feature suggestions.
=item *
Asger K. Alstrup Nielsen and Marc Pavese provided advice.
=item *
Various members of the LyX developers' and users' lists provided bug reports
and feature suggestions.
=back
B<reLyX> uses a modified version the Perl TeX parser Text::TeX package written
by Ilya Zakharevich (ilya@math.ohio-state.edu), available on CPAN.

View File

@ -1,363 +0,0 @@
#!/usr/bin/perl -w
#
# Main code for reLyX - the LaTeX to LyX translator
#
# reLyX is Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
#
# This code usually gets called by the reLyX wrapper executable
#
# $Id: reLyXmain.pl,v 1.6 2004/10/28 14:35:19 leeming Exp $
#
require 5.002; # Perl 5.001 doesn't work. Perl 4 REALLY doesn't work.
# Standard Perl Library modules
use strict; # must define all variables, no barewords, no hard references
# Variables from other files, like Getopt::Std, OR vars that need to be global
# $opt_f etc. - command line options set by Getop::Std::getopts
# $dot_lyxdir - the user's personal .lyx directory
# $Success - keep track of whether reLyX finished successfully or died
# @File_List - the list of files to translate. Initially this is just
# the file input by the user, but \input or \include commands
# will add to it.
use vars qw($opt_c $opt_d $opt_f $opt_h $opt_n $opt_o $opt_p $opt_r $opt_s
$dot_lyxdir
$Success
@File_List
@Suffix_List
$LyXFormat
);
use Cwd; # getcwd etc.
use Getopt::Std; # read in command-line options
use File::Basename; # &basename and &dirname
# Modules containing subroutines for reLyX
# Note that @INC must include the directory that these modules are in. The
# reLyX wrapper takes care of that.
use Text::TeX; # TeX parser package
use ReadCommands; # package to read LaTeX commands' syntax from a file
use MakePreamble; # package to split off LaTeX preamble & translate it to LyX
use CleanTeX; # package to clean TeX file for Lyxifying
use BasicLyX; # package to translate clean TeX to Basic LyX
use LastLyX; # package to print out LyX file once all translation is done
# Hack to allow running reLyX without the wrapper
if (!defined($lyxdir)) {$lyxdir = "/usr/local/share/lyx"}
if (!defined($lyxname)) {$lyxname = "lyx"}
# there's a use vars in the wrapper, so we only need these if running w/out it
use vars qw($lyxdir $lyxname);
# variables that a user might want to change
@Suffix_List = '\.(ltx|latex|tex)'; # allowed suffixes for LaTeX file
$LyXFormat = "2.15"; #What to print in \lyxformat command in .lyx file
my $syntaxname = "syntax.default"; # name of the default syntax file
$dot_lyxdir = $ENV{'HOME'} . "/.$lyxname"; # personal .lyx directory
# This variable tells us if the program died or exited happily
BEGIN{$Success = 0}
##############################################################################
# MAIN
#
# Print welcome message including version info
my $version_info = '$Date: 2004/10/28 14:35:19 $'; # RCS puts checkin date here
$version_info =~ s&.*?(\d+/\d+/\d+).*&$1&; # take out just the date info
warn "reLyX, the LaTeX to LyX translator. Revision date $version_info\n\n";
# Usage information
my $Usage_Short = <<"ENDSHORTUSAGE";
USAGE:
$0 [ -c textclass ] [ -fd ] [ -o outputdir ]
[ -r renv1[,renv2...]] [ -s sfile1[,sfile2...]] inputfile
$0 -p -c textclass [ -fd ] [ -o outputdir ]
[ -r renv1[,renv2...]] [ -s sfile1[,sfile2...]] inputfile(s)
$0 -h (to get more usage information)
ENDSHORTUSAGE
my $Usage_Long = $Usage_Short . <<"ENDLONGUSAGE";
-c which textclass this file is (required with -p)
Overrides \\documentclass command, if one exists
-d print lots of debug information & save temporary files
-f force destruction of existing lyx file or temporary files
-h print this message and quit
-n convert a noweb file to a literate document (requires -c)
-o output all LyX files to directory "outputdir"
Otherwise, LyX file is created in directory the LaTeX file is in
-p translate LaTeX fragments or include files (requires -c)
I.e., files without \\documentclass commands
-r give reLyX a (list of) regular environment(s)
-s give reLyX a (list of) additional syntax file(s) to read
man reLyX for lots of usage information
ENDLONGUSAGE
# Read command line
# Get Options: set $opt_f etc. based on command line options
getopts('c:dfhno:pr:s:') or die "Illegal option!$Usage_Short";
if ($opt_h) {print $Usage_Long; $Success=1; exit}
die "No LaTeX file was input on the command line$Usage_Short" unless @ARGV;
# Make each file in the file list an absolute file name (e.g., staring with '/')
@File_List = map {&abs_file_name($_)} @ARGV;
# If noweb files, then we need to pre-process each file
if (defined $opt_n) {
die "-n option requires -c!$Usage_Short" unless defined $opt_c;
foreach (@File_List) {
system("noweb2lyx", "-pre", "$_", "$_.pre$$");
$_ .= ".pre$$";
}
}
# -p option allows multiple input files
if (defined $opt_p) {
die "-p option requires -c!$Usage_Short" unless defined $opt_c;
} else {
die "Only one input file allowed unless using -p option$Usage_Short"
unless @ARGV == 1;
}
# Make sure outputdir given with -o option is valid
# Make it an absolute path, too!
if (defined($opt_o)) {
die "directory $opt_o doesn't exist!\n$Usage_Short"
unless defined(-d $opt_o);
die "$opt_o isn't a directory!\n$Usage_Short" unless -d $opt_o;
$opt_o = &my_fast_abs_path($opt_o);
# may not have trailing slash.
$opt_o .= '/' unless $opt_o =~ /\/$/;
}
# Read file(s) containing LaTeX commands and their syntax
# Read personal syntax.default, or system-wide if there isn't a personal one
# Then read other syntax files, given by the -s option
my $default_file = "$dot_lyxdir/reLyX/$syntaxname";
if (! -f $default_file) {
$default_file = "$lyxdir/reLyX/$syntaxname";
die "cannot find default syntax file $default_file" unless -f $default_file;
}
my @syntaxfiles = ($default_file);
push (@syntaxfiles, (split(/,/,$opt_s))) if defined $opt_s;
&ReadCommands::read_syntax_files(@syntaxfiles);
########### Main loop over files (include files will be added to @File_List)
my $count=0; #number of files we've done
my @deletelist = (); # files to delete when we're done (if no '-d' flag)
my $Doc_Class; # LaTeX documentclass
my $LyX_Preamble = ""; # LyX Preamble not including Latex preamble part
my $Latex_Preamble = "";
my $File;
while ($File = shift(@File_List)) {
# TODO we should always die (or something) if temp files exist & !opt_f
my $OutFileName;
my $filenum = 0; #numbering for temporary files
# May need to add ".tex" to input file name.
# PathBase is the output file name without ".lyx". It's used for building
# temporary files' file names, too.
# Finally, make sure the file is valid, directory is writable, etc.
# Sub returns (undef, undef, undef) if something goes wrong.
my ($InFileDir, $InFileName, $PathBase) = &test_file($File);
# Change to the input file's directory, so that if the input file has an
# \include{../foo} in it, we'll find the included file.
# Did something go wrong?
unless (defined($InFileDir) && chdir($InFileDir)) {
# main file must be ok; for included files or file fragments, just warn
next if ($count || $opt_p);
die "\n"; # printed error already
}
# OK. Start parsing the file!
print STDERR "In Directory $InFileDir\n" if $opt_d;
print STDERR "($InFileName: ";
# Read preamble and calculate document class if necessary
# (It's necessary when we're doing the first file.)
unless ($count) {
if ($opt_p) { # it's a partial file
$Doc_Class = $opt_c;
} else {
# Split the preamble off of the rest of the file
my $PreambleName = $PathBase . ".relyx" . ++$filenum;
$OutFileName = $PathBase . ".relyx" . ++$filenum;
push @deletelist, $OutFileName, $PreambleName;
&MakePreamble::split_preamble($InFileName,
$PreambleName, $OutFileName);
$InFileName = $OutFileName;
# Now read and translate the LaTeX preamble into LyX
# Return document's class so we know which layout file(s) to read
# Also return LyX preamble in a string, for later
($Doc_Class, $LyX_Preamble, $Latex_Preamble) =
&MakePreamble::translate_preamble($PreambleName, $LyXFormat);
} # end partial file if
# Read file(s) containing the valid LyX layouts for this documentclass
# and their LaTeX command/environment equivalents
&ReadCommands::read_layout_files($Doc_Class);
}
# Clean the TeX file (not including its preamble)
$OutFileName = $PathBase . ".relyx" . ++$filenum;
push @deletelist, $OutFileName;
&CleanTeX::call_parser($InFileName, $OutFileName);
# Now convert basic constructs in the cleaned TeX file to LyX constructs
$InFileName = $OutFileName;
$OutFileName = $PathBase . ".relyx" . ++$filenum;
push @deletelist, $OutFileName;
&BasicLyX::call_parser($InFileName, $OutFileName);
# Final cleanup step for noweb files
if (defined $opt_n) {
$InFileName = $OutFileName;
$OutFileName = $PathBase . ".relyx" . ++$filenum;
push @deletelist, $OutFileName;
system("noweb2lyx", "-post", $InFileName, $OutFileName);
}
# Finally, print out the actual LyX file including the preamble
# For the *first* file, print out the LaTeX preamble too
$InFileName = $OutFileName;
if (defined $opt_n) {
push @deletelist, $PathBase;
$PathBase =~ s/.pre$$//;
}
$OutFileName = $PathBase . ".lyx";
my $preamble = $count ? $LyX_Preamble : $LyX_Preamble . $Latex_Preamble;
&LastLyX::last_lyx($InFileName, $OutFileName, $preamble);
warn ")\n";
} continue {
$count++;
} # END MAIN WHILE LOOP
# Cleanup
unless ($opt_d) {
warn "Deleting temp files\n";
unlink @deletelist;
}
$Success = 1;
exit;
# If we "die", output a sad message
END{
if ($Success) {
warn "Finished successfully!\n";
} else {
warn "Exited due to fatal Error!\n";
}
}
##################### SUBROUTINES ###########################################
# Input: File (including absolute path)
# Output: input file directory (absolute path)
# input file name (".tex" added if necessary) without path
# PathBase, the output file name (including path) without ".lyx" ending
# Returns (undef, undef, undef) if something breaks
#
# Only allow certain suffixes
# Test for things, like writability of output directory, existence of
# .lyx file we would be creating...
sub test_file {
my $File = shift;
my @return_error = (undef, undef, undef);
# Get file names, set up for making different temporary files
# fileparse_set_fstype("MSDOS") for DOS support!
my ($in_basename, $in_path, $suffix) = fileparse($File, @Suffix_List);
#$path .= '/' unless $path =~ /\/$/; # fix BUG in perl5.002 fileparse!
# Try adding .tex to filename if you can't find the file the user input
unless (-f $File) {
if (! $suffix) { # didn't have a valid suffix. Try adding one
if (-f "$File.tex") {
$suffix = ".tex";
} else {
warn "\nCan't find input file $File or $File.tex\n";
return @return_error;
}
} else { # it had a valid suffix, but the file doesn't exist
warn "\nCan't find input file $File\n";
return @return_error;
}
}
my $in_filename = $in_basename . $suffix;
# Make sure directory is valid
# Note that we chdir to an input file's directory before translating it.
# Therefore, unless the -o option is given, we want to output files in '.'
#
# TODO if file foo.tex includes a/bar.tex and b/bar.tex, then with the
# -o option things will get ugly. We could test for that and create a name
# (like relyx-1-12345-bar.tex) for the second (and later!) bar.tex file(s)
my $out_path = defined $opt_o ? $opt_o : "./";
unless (-w $out_path) { # Note: "" isn't writable!
warn "\nDirectory $out_path isn't writable!\n";
return @return_error;
}
$out_path =~ s(^./)(); # "foo" is more readable than "./foo"
# This will be used for creating LyX file as well as temp files
my $PathBase = $out_path . $in_basename;
# Check for files that already exist
my $lname = $PathBase . ".lyx";
if (-e $lname) {
if (-d $lname) {
warn "\nLyX file $lname already exists and is a directory.\n";
return @return_error;
} elsif ($opt_f) {
warn "Will overwrite file $lname\n" if $opt_d;
} else {
warn "\nLyX file $lname already exists. Use -f to overwrite\n";
return @return_error;
}
}
return ($in_path, $in_filename, $PathBase);
} # end sub test_file
sub abs_file_name {
my $File = shift;
my ($basename, $path, $suffix) = fileparse($File, @Suffix_List);
my $realpath = &my_fast_abs_path($path);
# add / at end
$realpath .= '/' unless $realpath =~ /\/$/;
my $name = "$realpath$basename$suffix";
return $name;
}
# Stole this from Cwd.pm. Can't use the Cwd:: function cuz it's not in 5.003
# I could test $] >5.004 or something, but why bother?
sub my_fast_abs_path {
my $cwd = fastcwd();
my $path = shift || '.';
chdir($path) || die "Cannot chdir to $path:$!";
my $realpath = fastcwd();
chdir($cwd) || die "Cannot chdir back to $cwd:$!";
$realpath;
}
1; # return "true" to the wrapper

View File

@ -1,262 +0,0 @@
#This file was created by <karger> Sun Mar 5 12:54:24 2000
#LyX 1.0 (C) 1995-1999 Matthias Ettrich and the LyX Team
\lyxformat 2.15
\textclass article
\paperfontsize 11
\begin_preamble
%some comments
%comments
\def\blah{\blahblah}
% And more comments
%more comments
\end_preamble
\layout Title
Test Document
\layout Standard
\begin_inset LatexCommand \tableofcontents
\end_inset
\layout Section
First Section
\layout Standard
This
\size large
a
\size small
b
\size tiny
c
\size small
\size large
\size huge
d
\size large
\size default
is some text.
\latex latex
\backslash framebox[3in][s]{
\latex default
What are you doing
\SpecialChar \ldots{}
Dave
\latex latex
}
\latex default
.
This is more text.
\layout Section*
MySection
\layout Standard
\begin_inset LatexCommand \label{sec:mysection}
\end_inset
This is some
\begin_inset Quotes eld
\end_inset
quoted
\begin_inset Quotes erd
\end_inset
text in a new section.
I
\emph on
am
\begin_float footnote
\layout Standard
This is a great footnote because:
\layout Itemize
The footnote is not
\emph on
emphasized
\emph default
.
\layout Itemize
The text is
\layout Standard
How cool is that!?
\end_float
\emph on
emphasizing
\begin_inset Quotes eld
\end_inset
text.
\layout Standard
\emph on
I keep
\begin_inset Quotes erd
\end_inset
emphasizing
\emph default
.
This
\protected_separator
is text in a new par\SpecialChar \-
agraph.
\newline
It has
\SpecialChar \ldots{}
an
\begin_inset Formula \( \alpha \)
\end_inset
in it, which is OK\SpecialChar \@.
I can type special characters
\begin_float footnote
\layout Standard
i.e., characters which must be escaped
\end_float
like & and #.
\layout Standard
_ is a neat token.
Now I
\family sans
want
\family typewriter
to
\family sans
write
\family default
some math in a displayed equation.
\begin_inset Formula \begin{eqnarray*}
q^{(i)}_{O} & = & q^{water}_{O}+dq_{O}\times (P_{deg}^{(i-1)}-P_{deg}^{(i)})\\
q_{H}^{(i)} & = & q^{water}_{H}+dq_{H}\times (P_{deg}^{(i-1)}-P_{deg}^{(i)})\\
q_{p}^{(i)} & = & q^{water}_{H}+dq_{H}\times (P_{deg}^{(i-1)}-P^{(i+1)}_{deg})
\end{eqnarray*}
\end_inset
\layout Standard
Here's an itemized list
\layout Itemize
this is an item
\begin_deeper
\layout Enumerate
this is a numbered item
\begin_deeper
\layout Standard
But now I want to write some text.
\end_deeper
\layout Enumerate
this is another numbered item
\begin_deeper
\layout Standard
More text
\end_deeper
\end_deeper
\begin_deeper
\layout Standard
Yet more text
\end_deeper
\layout Itemize
this is another unnumbered item
\begin_deeper
\layout Standard
Final text
\end_deeper
\layout Section
New Section
\layout Standard
Here's a
\emph on
quotation:
\layout Quotation
\emph on
Hello there how are you?
\layout Quotation
\emph on
I am fine.
Thanks
\layout Standard
\emph on
This
\emph default
is a reference to section
\begin_inset LatexCommand \ref{sec:mysection}
\end_inset
on page
\begin_inset LatexCommand \pageref{sec:mysection}
\end_inset
.
\layout Standard
\LyXTable
multicol5
2 2 0 0 0 0 0 0
0 0 0 0
0 0 0 0
2 0 0 "" ""
2 0 0 "" ""
0 2 0 0 0 0 0 "" ""
0 2 0 0 0 0 0 "" ""
0 2 0 0 0 0 0 "" ""
0 2 0 0 0 0 0 "" ""
foo
\newline
bar
\newline
bar
\newline
foo
\layout Standard
Final Text.
\the_end

View File

@ -1,7 +1,7 @@
% This is the default list of commands for reLyX to read
% It tells reLyX many arguments each command takes, and which of them
% This is the default list of commands for tex conversion programs to read
% It tells how many arguments each command takes, and which of them
% (if any) are optional.
% It is taken from the list of commands written by John Weiss 970311
% It is taken from the list of commands written by John Weiss 970311 for reLyX
% plus the math commands from math_hash.C
%
% Also had to add textrm etc. commands and many size commands (like \small)

View File

@ -179,7 +179,7 @@ strings in other languages.
.I LIBDIR
is the system directory. This is usually /usr/local/share/lyx on UNIX and %X11ROOT%\\XFree86\\lib\\X11\\lyx on OS/2 with XFree.
.SH SEE ALSO
reLyX(1), latex(1), xforms(5).
tex2lyx(1), latex(1).
Full documentation in either native \fBLyX\fR or postscript format.
.SH BUGS/LIMITATIONS
@ -192,10 +192,10 @@ http://bugzilla.lyx.org/. Don't forget to mention which version you
are having problems with!
\fBLaTeX\fR import is still not perfect and may produce buggy *.lyx
files. Consult the \fBreLyX\fR documentation.
files. Consult the \fBtex2lyx\fR documentation.
.SH AUTHORS
Copyright
Copyright
.Cr
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 by Matthias Ettrich
(ettrich@informatik.uni-tuebingen.de) and the rest of the \fBLyX

View File

@ -1,8 +1,9 @@
2005-07-16 <lgb@tandberg.net>
2005-07-16 Lars Gullik Bjønnes <larsbj@lyx.org>
* no.po: update a bit
2005-07-15 <lgb@tandberg.net>
* *.po: remerge
2005-07-15 Lars Gullik Bjønnes <larsbj@lyx.org>
* Makefile.in.in: use AWK variable

403
po/bg.po

File diff suppressed because it is too large Load Diff

384
po/ca.po

File diff suppressed because it is too large Load Diff

384
po/cs.po

File diff suppressed because it is too large Load Diff

382
po/da.po

File diff suppressed because it is too large Load Diff

372
po/de.po
View File

@ -77,7 +77,7 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX 1.4.0\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
"POT-Creation-Date: 2005-06-28 14:09+0200\n"
"POT-Creation-Date: 2005-07-15 20:51+0200\n"
"PO-Revision-Date: 2005-06-04 20:56+0200\n"
"Last-Translator: Michael Schmitt <Michael.Schmitt@teststep.org>\n"
"Language-Team: German <de@li.org>\n"
@ -2046,7 +2046,7 @@ msgstr "Seitenumbruch nach der aktuellen Zeile|#S"
#: src/frontends/xforms/forms/form_tabular.fd:1638
#: src/frontends/xforms/forms/form_tabular.fd:1656
#: src/frontends/qt2/ui/QParagraphDialogBase.ui:60
#: src/frontends/qt2/QDocument.C:166 src/text.C:2166
#: src/frontends/qt2/QDocument.C:166 src/text.C:2202
msgid "Double"
msgstr "Doppelt"
@ -2581,7 +2581,7 @@ msgstr "&Dummy"
#: src/frontends/qt2/ui/QDocumentDialogBase.ui:214 src/buffer_funcs.C:91
#: src/buffer_funcs.C:117 src/buffer_funcs.C:158 src/bufferlist.C:84
#: src/bufferlist.C:183 src/lyx_cb.C:115 src/lyx_cb.C:168 src/lyxfunc.C:623
#: src/lyxfunc.C:785 src/lyxfunc.C:1793 src/lyxvc.C:168
#: src/lyxfunc.C:785 src/lyxfunc.C:1791 src/lyxvc.C:168
msgid "&Cancel"
msgstr "&Abbrechen"
@ -3623,7 +3623,7 @@ msgstr "Gro
msgid "Relations"
msgstr "Relationen"
#: src/frontends/qt2/ui/QMathDialogBase.ui:511 lib/languages:31
#: src/frontends/qt2/ui/QMathDialogBase.ui:511 lib/languages:32
#: src/frontends/gtk/Dialogs.C:338 src/frontends/xforms/Dialogs.C:314
msgid "Greek"
msgstr "Griechisch"
@ -3747,7 +3747,7 @@ msgid "Print as grey text"
msgstr "Als grauen Text drucken"
#: src/frontends/qt2/ui/QParagraphDialogBase.ui:48
#: src/frontends/qt2/QDocument.C:162 src/text.C:2160
#: src/frontends/qt2/QDocument.C:162 src/text.C:2196
msgid "Single"
msgstr "Einfach"
@ -5257,7 +5257,7 @@ msgstr "Fall #:"
#: lib/layouts/spie.layout:19 lib/layouts/agu_stdsections.inc:29
#: lib/layouts/aguplus.inc:27 lib/layouts/db_stdsections.inc:27
#: lib/layouts/numarticle.inc:12 lib/layouts/numreport.inc:20
#: lib/layouts/numrevtex.inc:5 lib/layouts/scrclass.inc:59
#: lib/layouts/numrevtex.inc:5 lib/layouts/scrclass.inc:60
#: lib/layouts/stdsections.inc:50 lib/layouts/svjour.inc:52
msgid "Section"
msgstr "Abschnitt"
@ -5275,7 +5275,7 @@ msgstr "Abschnitt"
#: lib/layouts/revtex4.layout:54 lib/layouts/siamltex.layout:58
#: lib/layouts/agu_stdsections.inc:39 lib/layouts/aguplus.inc:41
#: lib/layouts/db_stdsections.inc:35 lib/layouts/numarticle.inc:21
#: lib/layouts/numrevtex.inc:14 lib/layouts/scrclass.inc:66
#: lib/layouts/numrevtex.inc:14 lib/layouts/scrclass.inc:67
#: lib/layouts/stdsections.inc:71 lib/layouts/svjour.inc:61
msgid "Subsection"
msgstr "Unterabschnitt"
@ -5291,7 +5291,7 @@ msgstr "Unterabschnitt"
#: lib/layouts/revtex.layout:56 lib/layouts/revtex4.layout:62
#: lib/layouts/siamltex.layout:64 lib/layouts/agu_stdsections.inc:49
#: lib/layouts/db_stdsections.inc:43 lib/layouts/numarticle.inc:30
#: lib/layouts/numrevtex.inc:23 lib/layouts/scrclass.inc:73
#: lib/layouts/numrevtex.inc:23 lib/layouts/scrclass.inc:74
#: lib/layouts/stdsections.inc:84 lib/layouts/svjour.inc:70
msgid "Subsubsection"
msgstr "Unterunterabschn."
@ -5329,7 +5329,7 @@ msgstr "Unterunterabschn.*"
#: lib/layouts/siamltex.layout:142 lib/layouts/spie.layout:71
#: lib/layouts/svglobal.layout:28 lib/layouts/svjog.layout:33
#: lib/layouts/agu_stdtitle.inc:191 lib/layouts/amsdefs.inc:124
#: lib/layouts/db_stdstruct.inc:10 lib/layouts/scrclass.inc:214
#: lib/layouts/db_stdstruct.inc:10 lib/layouts/scrclass.inc:215
#: lib/layouts/stdstruct.inc:11 lib/layouts/stdstruct.inc:26
#: lib/layouts/svjour.inc:252 src/output_plaintext.C:155
msgid "Abstract"
@ -5367,7 +5367,7 @@ msgstr "Stichw
#: lib/layouts/scrreprt.layout:10 lib/layouts/scrreprt.layout:12
#: lib/layouts/siamltex.layout:182 lib/layouts/aguplus.inc:168
#: lib/layouts/aguplus.inc:170 lib/layouts/amsdefs.inc:225
#: lib/layouts/scrclass.inc:221 lib/layouts/stdstruct.inc:38
#: lib/layouts/scrclass.inc:222 lib/layouts/stdstruct.inc:38
#: lib/layouts/svjour.inc:326 src/frontends/qt2/QDocumentDialog.C:82
msgid "Bibliography"
msgstr "Literaturverzeichnis"
@ -5437,7 +5437,7 @@ msgstr "Beschreibung"
#: lib/layouts/aa.layout:54 lib/layouts/aapaper.layout:56
#: lib/layouts/aastex.layout:84 lib/layouts/egs.layout:126
#: lib/layouts/scrclass.inc:38 lib/layouts/stdlists.inc:68
#: lib/layouts/scrclass.inc:39 lib/layouts/stdlists.inc:68
#: lib/ui/stdtoolbars.ui:68
msgid "List"
msgstr "Liste"
@ -5459,7 +5459,7 @@ msgstr "Liste"
#: lib/layouts/scrlttr2.layout:276 lib/layouts/siamltex.layout:108
#: lib/layouts/svprobth.layout:34 lib/layouts/agu_stdtitle.inc:244
#: lib/layouts/amsdefs.inc:59 lib/layouts/db_stdtitle.inc:12
#: lib/layouts/scrclass.inc:144 lib/layouts/stdtitle.inc:11
#: lib/layouts/scrclass.inc:145 lib/layouts/stdtitle.inc:11
#: lib/layouts/svjour.inc:129
msgid "Title"
msgstr "Titel"
@ -5484,7 +5484,7 @@ msgstr "Untertitel"
#: lib/layouts/revtex.layout:97 lib/layouts/revtex4.layout:114
#: lib/layouts/siamltex.layout:125 lib/layouts/svprobth.layout:51
#: lib/layouts/agu_stdtitle.inc:165 lib/layouts/amsdefs.inc:80
#: lib/layouts/db_stdtitle.inc:20 lib/layouts/scrclass.inc:152
#: lib/layouts/db_stdtitle.inc:20 lib/layouts/scrclass.inc:153
#: lib/layouts/stdtitle.inc:30 lib/layouts/svjour.inc:182
msgid "Author"
msgstr "Autor"
@ -5520,7 +5520,7 @@ msgstr "Post"
#: lib/layouts/scrlettr.layout:172 lib/layouts/scrlttr2.layout:244
#: lib/layouts/siamltex.layout:136 lib/layouts/agu_stdtitle.inc:236
#: lib/layouts/amsdefs.inc:100 lib/layouts/db_stdtitle.inc:34
#: lib/layouts/scrclass.inc:159 lib/layouts/stdtitle.inc:49
#: lib/layouts/scrclass.inc:160 lib/layouts/stdtitle.inc:49
#: lib/layouts/svjour.inc:230
msgid "Date"
msgstr "Datum"
@ -5578,7 +5578,7 @@ msgstr "Thesaurus"
#: lib/layouts/revtex4.layout:70 lib/layouts/siamltex.layout:70
#: lib/layouts/agu_stdsections.inc:59 lib/layouts/aguplus.inc:55
#: lib/layouts/db_stdsections.inc:51 lib/layouts/numarticle.inc:39
#: lib/layouts/numrevtex.inc:32 lib/layouts/scrclass.inc:80
#: lib/layouts/numrevtex.inc:32 lib/layouts/scrclass.inc:81
#: lib/layouts/stdsections.inc:96 lib/layouts/svjour.inc:79
msgid "Paragraph"
msgstr "Paragraph"
@ -6064,7 +6064,7 @@ msgstr ""
#: lib/layouts/paper.layout:31 lib/layouts/scrartcl.layout:20
#: lib/layouts/seminar.layout:24 lib/layouts/agu_stdsections.inc:11
#: lib/layouts/db_stdsections.inc:11 lib/layouts/numarticle.inc:4
#: lib/layouts/numreport.inc:6 lib/layouts/scrclass.inc:44
#: lib/layouts/numreport.inc:6 lib/layouts/scrclass.inc:45
#: lib/layouts/stdsections.inc:10
msgid "Part"
msgstr "Teil"
@ -6397,7 +6397,7 @@ msgstr "Datum"
#: lib/layouts/linuxdoc.layout:153 lib/layouts/llncs.layout:77
#: lib/layouts/memoir.layout:69 lib/layouts/paper.layout:80
#: lib/layouts/agu_stdsections.inc:69 lib/layouts/db_stdsections.inc:59
#: lib/layouts/numarticle.inc:48 lib/layouts/scrclass.inc:87
#: lib/layouts/numarticle.inc:48 lib/layouts/scrclass.inc:88
#: lib/layouts/stdsections.inc:104 lib/layouts/svjour.inc:88
msgid "Subparagraph"
msgstr "Unterparagraph"
@ -7529,7 +7529,7 @@ msgstr "SGML"
#: lib/layouts/llncs.layout:38 lib/layouts/memoir.layout:44
#: lib/layouts/scrbook.layout:15 lib/layouts/agu_stdsections.inc:20
#: lib/layouts/db_stdsections.inc:19 lib/layouts/numreport.inc:11
#: lib/layouts/scrclass.inc:51 lib/layouts/stdsections.inc:30
#: lib/layouts/scrclass.inc:52 lib/layouts/stdsections.inc:30
msgid "Chapter"
msgstr "Kapitel"
@ -7823,7 +7823,7 @@ msgid "Title:"
msgstr "Titel"
#: lib/layouts/scrlettr.layout:207 lib/layouts/scrlttr2.layout:284
#: lib/layouts/scrclass.inc:166
#: lib/layouts/scrclass.inc:167
msgid "Subject"
msgstr "Betreff"
@ -8643,63 +8643,63 @@ msgstr "Unterunterabschn."
msgid " \\alph{paragraph}."
msgstr ""
#: lib/layouts/scrclass.inc:96
#: lib/layouts/scrclass.inc:97
msgid "Addpart"
msgstr "Teil (Inhaltsverz.)"
#: lib/layouts/scrclass.inc:102
#: lib/layouts/scrclass.inc:103
msgid "Addchap"
msgstr "Kapitel (Inhaltsverz.)"
#: lib/layouts/scrclass.inc:108
#: lib/layouts/scrclass.inc:109
msgid "Addsec"
msgstr "Abschnitt (Inhaltsverz.)"
#: lib/layouts/scrclass.inc:114
#: lib/layouts/scrclass.inc:115
msgid "Addchap*"
msgstr "Kapitel* (Inhaltsverz.)"
#: lib/layouts/scrclass.inc:120
#: lib/layouts/scrclass.inc:121
msgid "Addsec*"
msgstr "Abschnitt* (Inhaltsverz.)"
#: lib/layouts/scrclass.inc:126
#: lib/layouts/scrclass.inc:127
msgid "Minisec"
msgstr "Miniabschnitt"
#: lib/layouts/scrclass.inc:172
#: lib/layouts/scrclass.inc:173
msgid "Publishers"
msgstr "Verleger"
#: lib/layouts/scrclass.inc:178 lib/layouts/svjour.inc:121
#: lib/layouts/scrclass.inc:179 lib/layouts/svjour.inc:121
msgid "Dedication"
msgstr "Widmung"
#: lib/layouts/scrclass.inc:184
#: lib/layouts/scrclass.inc:185
msgid "Titlehead"
msgstr "Titelkopf"
#: lib/layouts/scrclass.inc:195
#: lib/layouts/scrclass.inc:196
msgid "Uppertitleback"
msgstr "Innenseite oben"
#: lib/layouts/scrclass.inc:201
#: lib/layouts/scrclass.inc:202
msgid "Lowertitleback"
msgstr "Innenseite unten"
#: lib/layouts/scrclass.inc:207
#: lib/layouts/scrclass.inc:208
msgid "Extratitle"
msgstr "Zusatztitel"
#: lib/layouts/scrclass.inc:229
#: lib/layouts/scrclass.inc:230
msgid "Captionabove"
msgstr "Legende oben"
#: lib/layouts/scrclass.inc:235
#: lib/layouts/scrclass.inc:236
msgid "Captionbelow"
msgstr "Legende unten"
#: lib/layouts/scrclass.inc:241
#: lib/layouts/scrclass.inc:242
msgid "Dictum"
msgstr "Spruch"
@ -8858,119 +8858,119 @@ msgstr "Estnisch"
msgid "Finnish"
msgstr "Finnisch"
#: lib/languages:25
#: lib/languages:26
msgid "French"
msgstr "Französisch"
#: lib/languages:26
#: lib/languages:27
msgid "Galician"
msgstr "Galizisch"
#: lib/languages:29
#: lib/languages:30
msgid "German"
msgstr "Deutsch"
#: lib/languages:30
#: lib/languages:31
msgid "German (new spelling)"
msgstr "Deutsch (neue Rechtschreibung)"
#: lib/languages:32
#: lib/languages:33
msgid "Hebrew"
msgstr "Hebräisch"
#: lib/languages:34
#: lib/languages:35
msgid "Irish"
msgstr "Irisch"
#: lib/languages:35
#: lib/languages:36
msgid "Italian"
msgstr "Italienisch"
#: lib/languages:36
#: lib/languages:37
msgid "Kazakh"
msgstr "Kasachisch"
#: lib/languages:39
#: lib/languages:40
msgid "Lithuanian"
msgstr "Litauisch"
#: lib/languages:40
#: lib/languages:41
msgid "Latvian"
msgstr "Lettisch"
#: lib/languages:41
#: lib/languages:42
msgid "Icelandic"
msgstr "Isländisch"
#: lib/languages:42
#: lib/languages:43
msgid "Magyar"
msgstr "Ungarisch"
#: lib/languages:43
#: lib/languages:44
msgid "Norsk"
msgstr "Norwegisch"
#: lib/languages:44
#: lib/languages:45
msgid "Nynorsk"
msgstr "Neu-Norwegisch"
#: lib/languages:45
#: lib/languages:46
msgid "Polish"
msgstr "Polnisch"
#: lib/languages:46
#: lib/languages:47
msgid "Portugese"
msgstr "Portugiesisch"
#: lib/languages:47
#: lib/languages:48
msgid "Romanian"
msgstr "Rumänisch"
#: lib/languages:48
#: lib/languages:49
msgid "Russian"
msgstr "Russisch"
#: lib/languages:49
#: lib/languages:50
msgid "Scottish"
msgstr "Schottisch"
#: lib/languages:50
#: lib/languages:51
msgid "Serbian"
msgstr "Serbisch"
#: lib/languages:51
#: lib/languages:52
msgid "Serbo-Croatian"
msgstr "Serbokroatisch"
#: lib/languages:52
#: lib/languages:53
msgid "Spanish"
msgstr "Spanisch"
#: lib/languages:53
#: lib/languages:54
msgid "Slovak"
msgstr "Slowakisch"
#: lib/languages:54
#: lib/languages:55
msgid "Slovene"
msgstr "Slowenisch"
#: lib/languages:55
#: lib/languages:56
msgid "Swedish"
msgstr "Schwedisch"
#: lib/languages:56
#: lib/languages:57
msgid "Thai"
msgstr "Thailändisch"
#: lib/languages:57
#: lib/languages:58
msgid "Turkish"
msgstr "Türkisch"
#: lib/languages:58
#: lib/languages:59
msgid "Ukrainian"
msgstr "Ukrainisch"
#: lib/languages:61
#: lib/languages:62
msgid "Welsh"
msgstr "Walisisch"
@ -10444,54 +10444,54 @@ msgstr "Parsen"
msgid "Formatting document..."
msgstr "Formatieren des Dokuments..."
#: src/BufferView_pimpl.C:702
#: src/BufferView_pimpl.C:703
#, c-format
msgid "Saved bookmark %1$d"
msgstr "Lesezeichen %1$d gespeichert"
#: src/BufferView_pimpl.C:735
#: src/BufferView_pimpl.C:736
#, c-format
msgid "Moved to bookmark %1$d"
msgstr "Zu Lesezeichen %1$d gewechselt"
#: src/BufferView_pimpl.C:794
#: src/BufferView_pimpl.C:795
msgid "Select LyX document to insert"
msgstr "Wählen Sie das einzufügende LyX-Dokument"
#: src/BufferView_pimpl.C:796 src/frontends/controllers/ControlBibtex.C:48
#: src/BufferView_pimpl.C:797 src/frontends/controllers/ControlBibtex.C:48
#: src/frontends/controllers/ControlBibtex.C:59
#: src/frontends/controllers/ControlExternal.C:160
#: src/frontends/controllers/ControlGraphics.C:94
#: src/frontends/controllers/ControlInclude.C:90 src/lyx_cb.C:133
#: src/lyxfunc.C:1634 src/lyxfunc.C:1671 src/lyxfunc.C:1746
#: src/lyxfunc.C:1632 src/lyxfunc.C:1669 src/lyxfunc.C:1744
msgid "Documents|#o#O"
msgstr "Dokumente|#k"
#: src/BufferView_pimpl.C:798 src/lyxfunc.C:1673 src/lyxfunc.C:1748
#: src/BufferView_pimpl.C:799 src/lyxfunc.C:1671 src/lyxfunc.C:1746
msgid "Examples|#E#e"
msgstr "Beispiele|#B"
#: src/BufferView_pimpl.C:803 src/lyx_cb.C:141 src/lyxfunc.C:1641
#: src/lyxfunc.C:1678
#: src/BufferView_pimpl.C:804 src/lyx_cb.C:141 src/lyxfunc.C:1639
#: src/lyxfunc.C:1676
msgid "LyX Documents (*.lyx)"
msgstr "LyX-Dokumente (*.lyx)"
#: src/BufferView_pimpl.C:813 src/lyxfunc.C:1688 src/lyxfunc.C:1766
#: src/lyxfunc.C:1780 src/lyxfunc.C:1796
#: src/BufferView_pimpl.C:814 src/lyxfunc.C:1686 src/lyxfunc.C:1764
#: src/lyxfunc.C:1778 src/lyxfunc.C:1794
msgid "Canceled."
msgstr "Abgebrochen."
#: src/BufferView_pimpl.C:823
#: src/BufferView_pimpl.C:824
#, c-format
msgid "Inserting document %1$s..."
msgstr "Füge Dokument %1$s ein..."
#: src/BufferView_pimpl.C:834
#: src/BufferView_pimpl.C:835
#, c-format
msgid "Document %1$s inserted."
msgstr "Dokument %1$s ist eingefügt."
#: src/BufferView_pimpl.C:835
#: src/BufferView_pimpl.C:836
#, c-format
msgid "Could not insert document %1$s"
msgstr "Das Dokument %1$s konnte nicht eingefügt werden"
@ -10861,7 +10861,7 @@ msgstr "Unbekannte Dokumentklasse"
msgid "Using the default document class, because the class %1$s is unknown."
msgstr ""
#: src/buffer.C:443 src/text.C:335
#: src/buffer.C:443 src/text.C:339
#, c-format
msgid "Unknown token: %1$s %2$s\n"
msgstr "Unbekanntes Token: %1$s %2$s\n"
@ -11088,7 +11088,7 @@ msgstr "Die Dokumentklasse ist nicht verf
msgid "LyX will not be able to produce output."
msgstr "LyX wird keine Ausgabe erzeugen können."
#: src/bufferview_funcs.C:281
#: src/bufferview_funcs.C:285
msgid "No more insets"
msgstr "Keine weiteren Einfügungen"
@ -11279,7 +11279,7 @@ msgstr ""
msgid "Over-write file?"
msgstr "Datei überschreiben?"
#: src/exporter.C:77 src/lyx_cb.C:168 src/lyxfunc.C:1793
#: src/exporter.C:77 src/lyx_cb.C:168 src/lyxfunc.C:1791
msgid "&Over-write"
msgstr "&Überschreiben"
@ -11572,22 +11572,45 @@ msgstr "Es wurde keine Protokolldatei der Versionskontrolle gefunden."
msgid "Choose bind file"
msgstr "Wählen Sie eine Tastaturkürzel-Datei"
#: src/frontends/controllers/ControlPrefs.C:125
msgid "LyX bind files (*.bind)"
msgstr ""
#: src/frontends/controllers/ControlPrefs.C:131
msgid "Choose UI file"
msgstr "Wählen Sie eine 'UI'-Datei"
#: src/frontends/controllers/ControlPrefs.C:132
#, fuzzy
msgid "LyX UI files (*.ui)"
msgstr "Alle Dateien (*)"
#: src/frontends/controllers/ControlPrefs.C:138
msgid "Choose keyboard map"
msgstr "Wählen Sie eine Tastaturtabelle"
#: src/frontends/controllers/ControlPrefs.C:139
#, fuzzy
msgid "LyX keyboard maps (*.kmap)"
msgstr "&Tastaturtabelle verwenden"
#: src/frontends/controllers/ControlPrefs.C:145
msgid "Choose personal dictionary"
msgstr "Wählen Sie ein persönliches Wörterbuch"
#: src/frontends/controllers/ControlPrefs.C:146
#, fuzzy
msgid "*.ispell"
msgstr "ispell"
#: src/frontends/controllers/ControlPrint.C:73
msgid "Print to file"
msgstr "Ausgabe in Datei"
#: src/frontends/controllers/ControlPrint.C:74
msgid "PostScript files (*.ps)"
msgstr ""
#: src/frontends/controllers/ControlSpellchecker.C:111
msgid "The spell-checker could not be started"
msgstr "Die Rechtschreibprüfung konnte nicht gestartet werden"
@ -11796,7 +11819,7 @@ msgstr "AMS Operatoren"
msgid "Box Settings"
msgstr "Box-Einstellungen"
#: src/frontends/gtk/GChanges.C:33 src/frontends/qt2/QChanges.C:33
#: src/frontends/gtk/GChanges.C:33 src/frontends/qt2/QChanges.C:36
#: src/frontends/xforms/FormChanges.C:32
msgid "Merge Changes"
msgstr "Änderungen zusammenfassen"
@ -11982,12 +12005,12 @@ msgstr "TeX-Informationen|X"
msgid "Table of Contents"
msgstr "Inhaltsverzeichnis"
#: src/frontends/gtk/GToc.C:117 src/frontends/xforms/FormErrorList.C:83
#: src/frontends/gtk/GToc.C:116 src/frontends/xforms/FormErrorList.C:83
#: src/frontends/xforms/FormToc.C:103 src/frontends/xforms/FormToc.C:121
msgid "*** No Lists ***"
msgstr "*** Keine Listen ***"
#: src/frontends/gtk/GToc.C:136
#: src/frontends/gtk/GToc.C:135
msgid "*** No Items ***"
msgstr "*** Keine Einträge ***"
@ -12056,6 +12079,18 @@ msgstr "BibTeX-Literaturverzeichnis"
msgid "Branch Settings"
msgstr "Zweig-Einstellungen"
#: src/frontends/qt2/QChanges.C:66
#, fuzzy, c-format
msgid ""
"Change by %1$s\n"
"\n"
msgstr "Geändert durch:"
#: src/frontends/qt2/QChanges.C:68
#, c-format
msgid "Change made at %1$s\n"
msgstr ""
#: src/frontends/qt2/QCommandBuffer.C:79
msgid "Previous command"
msgstr "Vorheriger Befehl"
@ -12132,7 +12167,7 @@ msgstr "mit
msgid "fancy"
msgstr "ausgefallen"
#: src/frontends/qt2/QDocument.C:164 src/text.C:2163
#: src/frontends/qt2/QDocument.C:164 src/text.C:2199
msgid "OneHalf"
msgstr "Eineinhalb"
@ -12284,30 +12319,34 @@ msgid "Bold\t\\mathbf"
msgstr "Fett\t\\mathbf"
#: src/frontends/qt2/QMathDialog.C:142
msgid "Bold symbol\t\\boldsymbol"
msgstr ""
#: src/frontends/qt2/QMathDialog.C:143
msgid "Sans serif\t\\mathsf"
msgstr "Serifenfrei\t\\mathsf"
#: src/frontends/qt2/QMathDialog.C:143
#: src/frontends/qt2/QMathDialog.C:144
msgid "Italic\t\\mathit"
msgstr "Kursiv\t\\mathit"
#: src/frontends/qt2/QMathDialog.C:144
#: src/frontends/qt2/QMathDialog.C:145
msgid "Typewriter\t\\mathtt"
msgstr "Schreibmaschine\t\\mathtt"
#: src/frontends/qt2/QMathDialog.C:145
#: src/frontends/qt2/QMathDialog.C:146
msgid "Blackboard\t\\mathbb"
msgstr "Blackboard\t\\mathbb"
#: src/frontends/qt2/QMathDialog.C:146
#: src/frontends/qt2/QMathDialog.C:147
msgid "Fraktur\t\\mathfrak"
msgstr "Fraktur\t\\mathfrak"
#: src/frontends/qt2/QMathDialog.C:147
#: src/frontends/qt2/QMathDialog.C:148
msgid "Calligraphic\t\\mathcal"
msgstr "Kalligraphisch\t\\mathcal"
#: src/frontends/qt2/QMathDialog.C:148
#: src/frontends/qt2/QMathDialog.C:149
msgid "Normal text mode\t\\textrm"
msgstr "Normaler Textmodus\t\\textrm"
@ -13734,10 +13773,20 @@ msgstr "wurde eingef
msgid "Opened inset"
msgstr "Einfügung geöffnet"
#: src/insets/insetbibtex.C:95
#: src/insets/insetbibtex.C:104
msgid "BibTeX Generated Bibliography"
msgstr "BibTeX-erzeugtes Literaturverzeichnis"
#: src/insets/insetbibtex.C:189
msgid "Export Warning!"
msgstr ""
#: src/insets/insetbibtex.C:190
msgid ""
"There are spaces in the paths to your BibTeX databases.\n"
"BibTeX will be unable to find them."
msgstr ""
#: src/insets/insetbox.C:57
msgid "Boxed"
msgstr ""
@ -13770,6 +13819,11 @@ msgstr "Box-Einf
msgid "Opened Branch Inset"
msgstr "Zweig-Einfügung geöffnet"
#: src/insets/insetbranch.C:97
#, fuzzy
msgid "Branch: "
msgstr "Zweig:|#Z"
#: src/insets/insetcaption.C:77
msgid "Opened Caption Inset"
msgstr "Legenden-Einfügung geöffnet"
@ -13842,12 +13896,12 @@ msgid ""
"into the temporary directory."
msgstr ""
#: src/insets/insetgraphics.C:689
#: src/insets/insetgraphics.C:693
#, c-format
msgid "No conversion of %1$s is needed after all"
msgstr ""
#: src/insets/insetgraphics.C:787
#: src/insets/insetgraphics.C:791
#, c-format
msgid "Graphics file: %1$s"
msgstr "Grafikdatei: %1$s"
@ -13956,11 +14010,11 @@ msgstr "PrettyRef: "
msgid "Opened table"
msgstr "Tabelle geöffnet"
#: src/insets/insettabular.C:1561
#: src/insets/insettabular.C:1552
msgid "Error setting multicolumn"
msgstr "Fehler beim Festlegen der Mehrfachspalte"
#: src/insets/insettabular.C:1562
#: src/insets/insettabular.C:1553
msgid "You cannot set multicolumn vertically."
msgstr ""
@ -14179,11 +14233,11 @@ msgstr "&Umbenennen"
msgid "Choose a filename to save document as"
msgstr "Wählen Sie einen Dateinamen für das Dokument"
#: src/lyx_cb.C:135 src/lyxfunc.C:1636
#: src/lyx_cb.C:135 src/lyxfunc.C:1634
msgid "Templates|#T#t"
msgstr "Vorlagen|#V"
#: src/lyx_cb.C:165 src/lyxfunc.C:1790
#: src/lyx_cb.C:165 src/lyxfunc.C:1788
#, c-format
msgid ""
"The document %1$s already exists.\n"
@ -14191,7 +14245,7 @@ msgid ""
"Do you want to over-write that document?"
msgstr ""
#: src/lyx_cb.C:167 src/lyxfunc.C:1792
#: src/lyx_cb.C:167 src/lyxfunc.C:1790
msgid "Over-write document?"
msgstr "Dokument überschreiben?"
@ -14573,7 +14627,7 @@ msgstr "Erstellung"
msgid "ChkTeX"
msgstr "ChkTeX"
#: src/lyxfunc.C:981 src/text3.C:1254
#: src/lyxfunc.C:981 src/text3.C:1241
msgid "Missing argument"
msgstr "Fehlendes Argument"
@ -14605,43 +14659,43 @@ msgstr ""
msgid "Unable to save document defaults"
msgstr ""
#: src/lyxfunc.C:1476
#: src/lyxfunc.C:1477
msgid "Converting document to new document class..."
msgstr "Das Dokument wird an die neue Dokumentklasse angepasst..."
#: src/lyxfunc.C:1483
#: src/lyxfunc.C:1484
msgid "Class switch"
msgstr ""
#: src/lyxfunc.C:1632
#: src/lyxfunc.C:1630
msgid "Select template file"
msgstr "Wählen Sie eine Vorlagendatei"
#: src/lyxfunc.C:1669
#: src/lyxfunc.C:1667
msgid "Select document to open"
msgstr "Wählen Sie das zu öffnende Dokument"
#: src/lyxfunc.C:1710
#: src/lyxfunc.C:1708
#, c-format
msgid "Opening document %1$s..."
msgstr "Öffne Dokument %1$s..."
#: src/lyxfunc.C:1714
#: src/lyxfunc.C:1712
#, c-format
msgid "Document %1$s opened."
msgstr "Dokument %1$s ist geöffnet."
#: src/lyxfunc.C:1716
#: src/lyxfunc.C:1714
#, c-format
msgid "Could not open document %1$s"
msgstr "Das Dokument %1$s konnte nicht geöffnet werden"
#: src/lyxfunc.C:1741
#: src/lyxfunc.C:1739
#, c-format
msgid "Select %1$s file to import"
msgstr "Wählen Sie die einzufügende %1$s-Datei"
#: src/lyxfunc.C:1851
#: src/lyxfunc.C:1849
msgid "Welcome to LyX!"
msgstr "Willkommen bei LyX!"
@ -15210,7 +15264,7 @@ msgstr "Zur gespeicherten Version des Dokuments zur
msgid " Macro: %1$s: "
msgstr " Makro: %1$s: "
#: src/mathed/math_amsarrayinset.C:110 src/mathed/math_hullinset.C:1137
#: src/mathed/math_amsarrayinset.C:110 src/mathed/math_hullinset.C:1153
#: src/mathed/math_splitinset.C:73 src/mathed/math_substackinset.C:69
#, c-format
msgid "Can't add vertical grid lines in '%1$s'"
@ -15221,67 +15275,67 @@ msgstr ""
msgid "No vertical grid lines in '%1$s'"
msgstr ""
#: src/mathed/math_gridinset.C:1252
#: src/mathed/math_gridinset.C:1272
msgid "Only one row"
msgstr ""
#: src/mathed/math_gridinset.C:1258
#: src/mathed/math_gridinset.C:1278
msgid "Only one column"
msgstr ""
#: src/mathed/math_gridinset.C:1266
#: src/mathed/math_gridinset.C:1286
msgid "No hline to delete"
msgstr ""
#: src/mathed/math_gridinset.C:1275
#: src/mathed/math_gridinset.C:1295
msgid "No vline to delete"
msgstr ""
#: src/mathed/math_gridinset.C:1293
#: src/mathed/math_gridinset.C:1313
#, c-format
msgid "Unknown tabular feature '%1$s'"
msgstr ""
#: src/mathed/math_hullinset.C:1012 src/mathed/math_hullinset.C:1021
#: src/mathed/math_hullinset.C:1026 src/mathed/math_hullinset.C:1035
msgid "No number"
msgstr "Keine Nummer"
#: src/mathed/math_hullinset.C:1012 src/mathed/math_hullinset.C:1021
#: src/mathed/math_hullinset.C:1026 src/mathed/math_hullinset.C:1035
msgid "Number"
msgstr "Nummer"
#: src/mathed/math_hullinset.C:1036
#: src/mathed/math_hullinset.C:1050
msgid "Enter new label to insert:"
msgstr "Name der einzufügenden Marke:"
#: src/mathed/math_hullinset.C:1037
#: src/mathed/math_hullinset.C:1051
msgid "Enter label:"
msgstr "Marke eingeben:"
#: src/mathed/math_hullinset.C:1110
#: src/mathed/math_hullinset.C:1126
#, c-format
msgid "Can't change number of rows in '%1$s'"
msgstr ""
#: src/mathed/math_hullinset.C:1120
#: src/mathed/math_hullinset.C:1136
#, c-format
msgid "Can't change number of columns in '%1$s'"
msgstr ""
#: src/mathed/math_hullinset.C:1130
#: src/mathed/math_hullinset.C:1146
#, c-format
msgid "Can't add horizontal grid lines in '%1$s'"
msgstr ""
#: src/mathed/math_hullinset.C:1233 src/text3.C:166
#: src/mathed/math_hullinset.C:1249 src/text3.C:167
msgid "Math editor mode"
msgstr "Mathe-Editor-Modus"
#: src/mathed/math_nestinset.C:755
#: src/mathed/math_nestinset.C:763
msgid "create new math text environment ($...$)"
msgstr ""
#: src/mathed/math_nestinset.C:758
#: src/mathed/math_nestinset.C:766
msgid "entered math text mode (textrm)"
msgstr ""
@ -15374,15 +15428,15 @@ msgid ""
"Trying to use the default instead.\n"
msgstr ""
#: src/text.C:210
#: src/text.C:214
msgid "Unknown Inset"
msgstr "Unbekannte Einfügung"
#: src/text.C:334
#: src/text.C:338
msgid "Unknown token"
msgstr "Unbekanntes Token"
#: src/text.C:1165
#: src/text.C:1173
msgid ""
"You cannot insert a space at the beginning of a paragraph. Please read the "
"Tutorial."
@ -15390,55 +15444,55 @@ msgstr ""
"Sie können am Anfang eines Absatzes kein Leerzeichen einfügen. Bitte lesen "
"Sie das Tutorium."
#: src/text.C:1176
#: src/text.C:1184
msgid "You cannot type two spaces this way. Please read the Tutorial."
msgstr ""
"Sie können zwei Leerzeichen nicht auf diese Weise eingeben. Bitte lesen Sie "
"das Tutorium."
#: src/text.C:2129
#: src/text.C:2165
msgid "Change: "
msgstr "Änderung: "
#: src/text.C:2133
#: src/text.C:2169
msgid " at "
msgstr " am "
#: src/text.C:2144
#: src/text.C:2180
#, c-format
msgid "Font: %1$s"
msgstr "Schrift: %1$s"
#: src/text.C:2151
#: src/text.C:2187
#, c-format
msgid ", Depth: %1$d"
msgstr ", Tiefe: %1$d"
#: src/text.C:2157
#: src/text.C:2193
msgid ", Spacing: "
msgstr ", Abstand: "
#: src/text.C:2169
#: src/text.C:2205
msgid "Other ("
msgstr "Andere ("
#: src/text.C:2178
#: src/text.C:2214
msgid ", Inset: "
msgstr ", Einfügung: "
#: src/text.C:2179
#: src/text.C:2215
msgid ", Paragraph: "
msgstr ", Absatz: "
#: src/text.C:2180
#: src/text.C:2216
msgid ", Id: "
msgstr ", Id: "
#: src/text.C:2181
#: src/text.C:2217
msgid ", Position: "
msgstr ", Position: "
#: src/text2.C:503
#: src/text2.C:519
msgid ""
"No font change defined. Use Character under the Layout menu to define font "
"change."
@ -15446,11 +15500,11 @@ msgstr ""
"Es wurde keine Schriftänderung definiert. Benutzen Sie dafür das Menü Format-"
">Zeichen..."
#: src/text2.C:545
#: src/text2.C:561
msgid "Nothing to index!"
msgstr "Nichts zu indizieren!"
#: src/text2.C:547
#: src/text2.C:563
msgid "Cannot index more than one paragraph!"
msgstr "Es ist nicht möglich, mehr als einen Absatz zu indizieren!"
@ -15470,14 +15524,48 @@ msgstr "Format "
msgid " not known"
msgstr " unbekannt"
#: src/text3.C:1359 src/text3.C:1371
#: src/text3.C:1346 src/text3.C:1358
msgid "Character set"
msgstr "Zeichensatz"
#: src/text3.C:1504
#: src/text3.C:1491
msgid "Paragraph layout set"
msgstr "Absatzformat festgelegt"
#: src/toc.C:64 src/toc.C:133
msgid "TOC"
msgstr ""
#: src/vspace.C:487
#, fuzzy
msgid "Default skip"
msgstr "Standard-Abstand:|#d"
#: src/vspace.C:490
#, fuzzy
msgid "Small skip"
msgstr "Klein"
#: src/vspace.C:493
#, fuzzy
msgid "Medium skip"
msgstr "Mittel"
#: src/vspace.C:496
#, fuzzy
msgid "Big skip"
msgstr "Groß"
#: src/vspace.C:499
#, fuzzy
msgid "Vertical fill"
msgstr "&Vertikal:"
#: src/vspace.C:506
#, fuzzy
msgid "protected"
msgstr "&Schützen:"
#, fuzzy
#~ msgid "Recieved:"
#~ msgstr "Empfangen"

386
po/es.po

File diff suppressed because it is too large Load Diff

385
po/eu.po

File diff suppressed because it is too large Load Diff

387
po/fi.po

File diff suppressed because it is too large Load Diff

390
po/fr.po

File diff suppressed because it is too large Load Diff

378
po/he.po

File diff suppressed because it is too large Load Diff

384
po/hu.po

File diff suppressed because it is too large Load Diff

384
po/it.po

File diff suppressed because it is too large Load Diff

384
po/nl.po

File diff suppressed because it is too large Load Diff

382
po/nn.po

File diff suppressed because it is too large Load Diff

375
po/pl.po
View File

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
"POT-Creation-Date: 2005-06-28 14:09+0200\n"
"POT-Creation-Date: 2005-07-15 20:51+0200\n"
"PO-Revision-Date: 2005-03-31 00:28+0200\n"
"Last-Translator: Tomasz £uczak <tlu@technodat.com.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
@ -1980,7 +1980,7 @@ msgstr "Z
#: src/frontends/xforms/forms/form_tabular.fd:1638
#: src/frontends/xforms/forms/form_tabular.fd:1656
#: src/frontends/qt2/ui/QParagraphDialogBase.ui:60
#: src/frontends/qt2/QDocument.C:166 src/text.C:2166
#: src/frontends/qt2/QDocument.C:166 src/text.C:2202
msgid "Double"
msgstr "Podwójna"
@ -2516,7 +2516,7 @@ msgstr ""
#: src/frontends/qt2/ui/QDocumentDialogBase.ui:214 src/buffer_funcs.C:91
#: src/buffer_funcs.C:117 src/buffer_funcs.C:158 src/bufferlist.C:84
#: src/bufferlist.C:183 src/lyx_cb.C:115 src/lyx_cb.C:168 src/lyxfunc.C:623
#: src/lyxfunc.C:785 src/lyxfunc.C:1793 src/lyxvc.C:168
#: src/lyxfunc.C:785 src/lyxfunc.C:1791 src/lyxvc.C:168
msgid "&Cancel"
msgstr "&Anuluj"
@ -3566,7 +3566,7 @@ msgstr "Du
msgid "Relations"
msgstr "Relacje"
#: src/frontends/qt2/ui/QMathDialogBase.ui:511 lib/languages:31
#: src/frontends/qt2/ui/QMathDialogBase.ui:511 lib/languages:32
#: src/frontends/gtk/Dialogs.C:338 src/frontends/xforms/Dialogs.C:314
msgid "Greek"
msgstr "Greka"
@ -3690,7 +3690,7 @@ msgid "Print as grey text"
msgstr "Drukuj jako szary tekst"
#: src/frontends/qt2/ui/QParagraphDialogBase.ui:48
#: src/frontends/qt2/QDocument.C:162 src/text.C:2160
#: src/frontends/qt2/QDocument.C:162 src/text.C:2196
msgid "Single"
msgstr "Pojedyñczy"
@ -5219,7 +5219,7 @@ msgstr "Zmiana:"
#: lib/layouts/spie.layout:19 lib/layouts/agu_stdsections.inc:29
#: lib/layouts/aguplus.inc:27 lib/layouts/db_stdsections.inc:27
#: lib/layouts/numarticle.inc:12 lib/layouts/numreport.inc:20
#: lib/layouts/numrevtex.inc:5 lib/layouts/scrclass.inc:59
#: lib/layouts/numrevtex.inc:5 lib/layouts/scrclass.inc:60
#: lib/layouts/stdsections.inc:50 lib/layouts/svjour.inc:52
msgid "Section"
msgstr "Sekcja"
@ -5237,7 +5237,7 @@ msgstr "Sekcja"
#: lib/layouts/revtex4.layout:54 lib/layouts/siamltex.layout:58
#: lib/layouts/agu_stdsections.inc:39 lib/layouts/aguplus.inc:41
#: lib/layouts/db_stdsections.inc:35 lib/layouts/numarticle.inc:21
#: lib/layouts/numrevtex.inc:14 lib/layouts/scrclass.inc:66
#: lib/layouts/numrevtex.inc:14 lib/layouts/scrclass.inc:67
#: lib/layouts/stdsections.inc:71 lib/layouts/svjour.inc:61
msgid "Subsection"
msgstr "Podsekcja"
@ -5253,7 +5253,7 @@ msgstr "Podsekcja"
#: lib/layouts/revtex.layout:56 lib/layouts/revtex4.layout:62
#: lib/layouts/siamltex.layout:64 lib/layouts/agu_stdsections.inc:49
#: lib/layouts/db_stdsections.inc:43 lib/layouts/numarticle.inc:30
#: lib/layouts/numrevtex.inc:23 lib/layouts/scrclass.inc:73
#: lib/layouts/numrevtex.inc:23 lib/layouts/scrclass.inc:74
#: lib/layouts/stdsections.inc:84 lib/layouts/svjour.inc:70
msgid "Subsubsection"
msgstr "Podpodsekcja"
@ -5291,7 +5291,7 @@ msgstr "Podpodsekcja*"
#: lib/layouts/siamltex.layout:142 lib/layouts/spie.layout:71
#: lib/layouts/svglobal.layout:28 lib/layouts/svjog.layout:33
#: lib/layouts/agu_stdtitle.inc:191 lib/layouts/amsdefs.inc:124
#: lib/layouts/db_stdstruct.inc:10 lib/layouts/scrclass.inc:214
#: lib/layouts/db_stdstruct.inc:10 lib/layouts/scrclass.inc:215
#: lib/layouts/stdstruct.inc:11 lib/layouts/stdstruct.inc:26
#: lib/layouts/svjour.inc:252 src/output_plaintext.C:155
msgid "Abstract"
@ -5331,7 +5331,7 @@ msgstr "S
#: lib/layouts/scrreprt.layout:10 lib/layouts/scrreprt.layout:12
#: lib/layouts/siamltex.layout:182 lib/layouts/aguplus.inc:168
#: lib/layouts/aguplus.inc:170 lib/layouts/amsdefs.inc:225
#: lib/layouts/scrclass.inc:221 lib/layouts/stdstruct.inc:38
#: lib/layouts/scrclass.inc:222 lib/layouts/stdstruct.inc:38
#: lib/layouts/svjour.inc:326 src/frontends/qt2/QDocumentDialog.C:82
msgid "Bibliography"
msgstr "Bibliografia"
@ -5401,7 +5401,7 @@ msgstr "Opis"
#: lib/layouts/aa.layout:54 lib/layouts/aapaper.layout:56
#: lib/layouts/aastex.layout:84 lib/layouts/egs.layout:126
#: lib/layouts/scrclass.inc:38 lib/layouts/stdlists.inc:68
#: lib/layouts/scrclass.inc:39 lib/layouts/stdlists.inc:68
#: lib/ui/stdtoolbars.ui:68
msgid "List"
msgstr "Lista"
@ -5423,7 +5423,7 @@ msgstr "Lista"
#: lib/layouts/scrlttr2.layout:276 lib/layouts/siamltex.layout:108
#: lib/layouts/svprobth.layout:34 lib/layouts/agu_stdtitle.inc:244
#: lib/layouts/amsdefs.inc:59 lib/layouts/db_stdtitle.inc:12
#: lib/layouts/scrclass.inc:144 lib/layouts/stdtitle.inc:11
#: lib/layouts/scrclass.inc:145 lib/layouts/stdtitle.inc:11
#: lib/layouts/svjour.inc:129
msgid "Title"
msgstr "Tytu³"
@ -5448,7 +5448,7 @@ msgstr "Podtytu
#: lib/layouts/revtex.layout:97 lib/layouts/revtex4.layout:114
#: lib/layouts/siamltex.layout:125 lib/layouts/svprobth.layout:51
#: lib/layouts/agu_stdtitle.inc:165 lib/layouts/amsdefs.inc:80
#: lib/layouts/db_stdtitle.inc:20 lib/layouts/scrclass.inc:152
#: lib/layouts/db_stdtitle.inc:20 lib/layouts/scrclass.inc:153
#: lib/layouts/stdtitle.inc:30 lib/layouts/svjour.inc:182
msgid "Author"
msgstr "Autor"
@ -5484,7 +5484,7 @@ msgstr ""
#: lib/layouts/scrlettr.layout:172 lib/layouts/scrlttr2.layout:244
#: lib/layouts/siamltex.layout:136 lib/layouts/agu_stdtitle.inc:236
#: lib/layouts/amsdefs.inc:100 lib/layouts/db_stdtitle.inc:34
#: lib/layouts/scrclass.inc:159 lib/layouts/stdtitle.inc:49
#: lib/layouts/scrclass.inc:160 lib/layouts/stdtitle.inc:49
#: lib/layouts/svjour.inc:230
msgid "Date"
msgstr "Data"
@ -5542,7 +5542,7 @@ msgstr "S
#: lib/layouts/revtex4.layout:70 lib/layouts/siamltex.layout:70
#: lib/layouts/agu_stdsections.inc:59 lib/layouts/aguplus.inc:55
#: lib/layouts/db_stdsections.inc:51 lib/layouts/numarticle.inc:39
#: lib/layouts/numrevtex.inc:32 lib/layouts/scrclass.inc:80
#: lib/layouts/numrevtex.inc:32 lib/layouts/scrclass.inc:81
#: lib/layouts/stdsections.inc:96 lib/layouts/svjour.inc:79
msgid "Paragraph"
msgstr "Akapit"
@ -6022,7 +6022,7 @@ msgstr ""
#: lib/layouts/paper.layout:31 lib/layouts/scrartcl.layout:20
#: lib/layouts/seminar.layout:24 lib/layouts/agu_stdsections.inc:11
#: lib/layouts/db_stdsections.inc:11 lib/layouts/numarticle.inc:4
#: lib/layouts/numreport.inc:6 lib/layouts/scrclass.inc:44
#: lib/layouts/numreport.inc:6 lib/layouts/scrclass.inc:45
#: lib/layouts/stdsections.inc:10
msgid "Part"
msgstr "Czê¶æ"
@ -6353,7 +6353,7 @@ msgstr "Data"
#: lib/layouts/linuxdoc.layout:153 lib/layouts/llncs.layout:77
#: lib/layouts/memoir.layout:69 lib/layouts/paper.layout:80
#: lib/layouts/agu_stdsections.inc:69 lib/layouts/db_stdsections.inc:59
#: lib/layouts/numarticle.inc:48 lib/layouts/scrclass.inc:87
#: lib/layouts/numarticle.inc:48 lib/layouts/scrclass.inc:88
#: lib/layouts/stdsections.inc:104 lib/layouts/svjour.inc:88
msgid "Subparagraph"
msgstr "Podakapit"
@ -7491,7 +7491,7 @@ msgstr "SGML"
#: lib/layouts/llncs.layout:38 lib/layouts/memoir.layout:44
#: lib/layouts/scrbook.layout:15 lib/layouts/agu_stdsections.inc:20
#: lib/layouts/db_stdsections.inc:19 lib/layouts/numreport.inc:11
#: lib/layouts/scrclass.inc:51 lib/layouts/stdsections.inc:30
#: lib/layouts/scrclass.inc:52 lib/layouts/stdsections.inc:30
msgid "Chapter"
msgstr "Rozdzia³"
@ -7786,7 +7786,7 @@ msgid "Title:"
msgstr "Tytu³"
#: lib/layouts/scrlettr.layout:207 lib/layouts/scrlttr2.layout:284
#: lib/layouts/scrclass.inc:166
#: lib/layouts/scrclass.inc:167
msgid "Subject"
msgstr "Temat"
@ -8623,63 +8623,63 @@ msgstr "Podpodsekcja"
msgid " \\alph{paragraph}."
msgstr ""
#: lib/layouts/scrclass.inc:96
#: lib/layouts/scrclass.inc:97
msgid "Addpart"
msgstr ""
#: lib/layouts/scrclass.inc:102
#: lib/layouts/scrclass.inc:103
msgid "Addchap"
msgstr ""
#: lib/layouts/scrclass.inc:108
#: lib/layouts/scrclass.inc:109
msgid "Addsec"
msgstr ""
#: lib/layouts/scrclass.inc:114
#: lib/layouts/scrclass.inc:115
msgid "Addchap*"
msgstr ""
#: lib/layouts/scrclass.inc:120
#: lib/layouts/scrclass.inc:121
msgid "Addsec*"
msgstr ""
#: lib/layouts/scrclass.inc:126
#: lib/layouts/scrclass.inc:127
msgid "Minisec"
msgstr ""
#: lib/layouts/scrclass.inc:172
#: lib/layouts/scrclass.inc:173
msgid "Publishers"
msgstr "Wydawcy"
#: lib/layouts/scrclass.inc:178 lib/layouts/svjour.inc:121
#: lib/layouts/scrclass.inc:179 lib/layouts/svjour.inc:121
msgid "Dedication"
msgstr "Dedykacja"
#: lib/layouts/scrclass.inc:184
#: lib/layouts/scrclass.inc:185
msgid "Titlehead"
msgstr ""
#: lib/layouts/scrclass.inc:195
#: lib/layouts/scrclass.inc:196
msgid "Uppertitleback"
msgstr ""
#: lib/layouts/scrclass.inc:201
#: lib/layouts/scrclass.inc:202
msgid "Lowertitleback"
msgstr ""
#: lib/layouts/scrclass.inc:207
#: lib/layouts/scrclass.inc:208
msgid "Extratitle"
msgstr ""
#: lib/layouts/scrclass.inc:229
#: lib/layouts/scrclass.inc:230
msgid "Captionabove"
msgstr "PodpisPowy¿ej"
#: lib/layouts/scrclass.inc:235
#: lib/layouts/scrclass.inc:236
msgid "Captionbelow"
msgstr "PodpisPoni¿ej"
#: lib/layouts/scrclass.inc:241
#: lib/layouts/scrclass.inc:242
msgid "Dictum"
msgstr ""
@ -8841,119 +8841,119 @@ msgstr "Esto
msgid "Finnish"
msgstr "Fiñski"
#: lib/languages:25
#: lib/languages:26
msgid "French"
msgstr "Francuski"
#: lib/languages:26
#: lib/languages:27
msgid "Galician"
msgstr "Galicyjski"
#: lib/languages:29
#: lib/languages:30
msgid "German"
msgstr "Niemiecki"
#: lib/languages:30
#: lib/languages:31
msgid "German (new spelling)"
msgstr "Niemiecki (nowa ortografia)"
#: lib/languages:32
#: lib/languages:33
msgid "Hebrew"
msgstr "Hebrajski"
#: lib/languages:34
#: lib/languages:35
msgid "Irish"
msgstr "Irlandzki"
#: lib/languages:35
#: lib/languages:36
msgid "Italian"
msgstr "W³oski"
#: lib/languages:36
#: lib/languages:37
msgid "Kazakh"
msgstr "Kazachski"
#: lib/languages:39
#: lib/languages:40
msgid "Lithuanian"
msgstr "Litewski"
#: lib/languages:40
#: lib/languages:41
msgid "Latvian"
msgstr "£otewski"
#: lib/languages:41
#: lib/languages:42
msgid "Icelandic"
msgstr "Islandzki"
#: lib/languages:42
#: lib/languages:43
msgid "Magyar"
msgstr "Wêgierski"
#: lib/languages:43
#: lib/languages:44
msgid "Norsk"
msgstr "Norweski"
#: lib/languages:44
#: lib/languages:45
msgid "Nynorsk"
msgstr "Norweski (Nynorsk)"
#: lib/languages:45
#: lib/languages:46
msgid "Polish"
msgstr "Polski"
#: lib/languages:46
#: lib/languages:47
msgid "Portugese"
msgstr "Portugalski"
#: lib/languages:47
#: lib/languages:48
msgid "Romanian"
msgstr "Rumuñski"
#: lib/languages:48
#: lib/languages:49
msgid "Russian"
msgstr "Rosyjski"
#: lib/languages:49
#: lib/languages:50
msgid "Scottish"
msgstr "Szkocki"
#: lib/languages:50
#: lib/languages:51
msgid "Serbian"
msgstr "Serbski"
#: lib/languages:51
#: lib/languages:52
msgid "Serbo-Croatian"
msgstr "Serbsko-Chorwacki"
#: lib/languages:52
#: lib/languages:53
msgid "Spanish"
msgstr "Hiszpañski"
#: lib/languages:53
#: lib/languages:54
msgid "Slovak"
msgstr "S³owacki"
#: lib/languages:54
#: lib/languages:55
msgid "Slovene"
msgstr "S³oweñski"
#: lib/languages:55
#: lib/languages:56
msgid "Swedish"
msgstr "Szwedzki"
#: lib/languages:56
#: lib/languages:57
msgid "Thai"
msgstr "Tajski"
#: lib/languages:57
#: lib/languages:58
msgid "Turkish"
msgstr "Turecki"
#: lib/languages:58
#: lib/languages:59
msgid "Ukrainian"
msgstr "Ukraiñski"
#: lib/languages:61
#: lib/languages:62
msgid "Welsh"
msgstr "Walijski"
@ -10445,54 +10445,54 @@ msgstr ""
msgid "Formatting document..."
msgstr "Formatowanie dokumentu"
#: src/BufferView_pimpl.C:702
#: src/BufferView_pimpl.C:703
#, c-format
msgid "Saved bookmark %1$d"
msgstr "Zapisano zak³adkê %1$d"
#: src/BufferView_pimpl.C:735
#: src/BufferView_pimpl.C:736
#, c-format
msgid "Moved to bookmark %1$d"
msgstr "Przeniesiono do zak³adki %1$d"
#: src/BufferView_pimpl.C:794
#: src/BufferView_pimpl.C:795
msgid "Select LyX document to insert"
msgstr "Wybierz dokument LyX-a do wstawienia"
#: src/BufferView_pimpl.C:796 src/frontends/controllers/ControlBibtex.C:48
#: src/BufferView_pimpl.C:797 src/frontends/controllers/ControlBibtex.C:48
#: src/frontends/controllers/ControlBibtex.C:59
#: src/frontends/controllers/ControlExternal.C:160
#: src/frontends/controllers/ControlGraphics.C:94
#: src/frontends/controllers/ControlInclude.C:90 src/lyx_cb.C:133
#: src/lyxfunc.C:1634 src/lyxfunc.C:1671 src/lyxfunc.C:1746
#: src/lyxfunc.C:1632 src/lyxfunc.C:1669 src/lyxfunc.C:1744
msgid "Documents|#o#O"
msgstr "Dokumenty|#o"
#: src/BufferView_pimpl.C:798 src/lyxfunc.C:1673 src/lyxfunc.C:1748
#: src/BufferView_pimpl.C:799 src/lyxfunc.C:1671 src/lyxfunc.C:1746
msgid "Examples|#E#e"
msgstr "Przyk³ady|#P"
#: src/BufferView_pimpl.C:803 src/lyx_cb.C:141 src/lyxfunc.C:1641
#: src/lyxfunc.C:1678
#: src/BufferView_pimpl.C:804 src/lyx_cb.C:141 src/lyxfunc.C:1639
#: src/lyxfunc.C:1676
msgid "LyX Documents (*.lyx)"
msgstr "Dokumenty LyX-a (*.lyx)"
#: src/BufferView_pimpl.C:813 src/lyxfunc.C:1688 src/lyxfunc.C:1766
#: src/lyxfunc.C:1780 src/lyxfunc.C:1796
#: src/BufferView_pimpl.C:814 src/lyxfunc.C:1686 src/lyxfunc.C:1764
#: src/lyxfunc.C:1778 src/lyxfunc.C:1794
msgid "Canceled."
msgstr "Zaniechane."
#: src/BufferView_pimpl.C:823
#: src/BufferView_pimpl.C:824
#, c-format
msgid "Inserting document %1$s..."
msgstr "Wstawianie dokumentu %1$s"
#: src/BufferView_pimpl.C:834
#: src/BufferView_pimpl.C:835
#, c-format
msgid "Document %1$s inserted."
msgstr "Wstawiono dokument %1$s"
#: src/BufferView_pimpl.C:835
#: src/BufferView_pimpl.C:836
#, c-format
msgid "Could not insert document %1$s"
msgstr "Nie mo¿na wstawiæ dokumentu %1$s"
@ -10864,7 +10864,7 @@ msgstr "Nieznana klasa dokumentu"
msgid "Using the default document class, because the class %1$s is unknown."
msgstr "U¿yto domy¶lnej klasy dokumentu, poniewa¿ klasa %1$s jest nieznana."
#: src/buffer.C:443 src/text.C:335
#: src/buffer.C:443 src/text.C:339
#, c-format
msgid "Unknown token: %1$s %2$s\n"
msgstr "Nieznany token %1$s %2$s\n"
@ -11092,7 +11092,7 @@ msgstr "Niedost
msgid "LyX will not be able to produce output."
msgstr "LyX nie jest zdolny do wyprodukowania wyniku"
#: src/bufferview_funcs.C:281
#: src/bufferview_funcs.C:285
msgid "No more insets"
msgstr "Brak innych wstawek"
@ -11286,7 +11286,7 @@ msgstr ""
msgid "Over-write file?"
msgstr "Zast±piæ plik?"
#: src/exporter.C:77 src/lyx_cb.C:168 src/lyxfunc.C:1793
#: src/exporter.C:77 src/lyx_cb.C:168 src/lyxfunc.C:1791
msgid "&Over-write"
msgstr "&Zastêpowanie"
@ -11578,22 +11578,45 @@ msgstr "Nie znaleziono historii kontroli wersji"
msgid "Choose bind file"
msgstr "Wybierz plik skrótów"
#: src/frontends/controllers/ControlPrefs.C:125
msgid "LyX bind files (*.bind)"
msgstr ""
#: src/frontends/controllers/ControlPrefs.C:131
msgid "Choose UI file"
msgstr "Wybierz plik menu"
#: src/frontends/controllers/ControlPrefs.C:132
#, fuzzy
msgid "LyX UI files (*.ui)"
msgstr "Wszystkie pliki (*)"
#: src/frontends/controllers/ControlPrefs.C:138
msgid "Choose keyboard map"
msgstr "Wybierz mapê klawiatury"
#: src/frontends/controllers/ControlPrefs.C:139
#, fuzzy
msgid "LyX keyboard maps (*.kmap)"
msgstr "U¿yj mapy &klawiatury"
#: src/frontends/controllers/ControlPrefs.C:145
msgid "Choose personal dictionary"
msgstr "Wybierz s³ownik osobisty"
#: src/frontends/controllers/ControlPrefs.C:146
#, fuzzy
msgid "*.ispell"
msgstr "ispell"
#: src/frontends/controllers/ControlPrint.C:73
msgid "Print to file"
msgstr "Drukuj do pliku"
#: src/frontends/controllers/ControlPrint.C:74
msgid "PostScript files (*.ps)"
msgstr ""
#: src/frontends/controllers/ControlSpellchecker.C:111
msgid "The spell-checker could not be started"
msgstr "Nie mo¿na uruchomiæ sprawdzania pisowni"
@ -11803,7 +11826,7 @@ msgstr "Operatory AMS"
msgid "Box Settings"
msgstr "Ustawienia pude³ka"
#: src/frontends/gtk/GChanges.C:33 src/frontends/qt2/QChanges.C:33
#: src/frontends/gtk/GChanges.C:33 src/frontends/qt2/QChanges.C:36
#: src/frontends/xforms/FormChanges.C:32
msgid "Merge Changes"
msgstr "£±czenie zmian"
@ -11989,12 +12012,12 @@ msgstr "Konfiguracja TeX-a|X"
msgid "Table of Contents"
msgstr "Spis tre¶ci"
#: src/frontends/gtk/GToc.C:117 src/frontends/xforms/FormErrorList.C:83
#: src/frontends/gtk/GToc.C:116 src/frontends/xforms/FormErrorList.C:83
#: src/frontends/xforms/FormToc.C:103 src/frontends/xforms/FormToc.C:121
msgid "*** No Lists ***"
msgstr "*** Brak spisu ***"
#: src/frontends/gtk/GToc.C:136
#: src/frontends/gtk/GToc.C:135
msgid "*** No Items ***"
msgstr "*** Brak elementów ***"
@ -12065,6 +12088,18 @@ msgstr "Bibliografia"
msgid "Branch Settings"
msgstr "Ustawienia ga³êzi"
#: src/frontends/qt2/QChanges.C:66
#, fuzzy, c-format
msgid ""
"Change by %1$s\n"
"\n"
msgstr "Zmieniony przez:"
#: src/frontends/qt2/QChanges.C:68
#, c-format
msgid "Change made at %1$s\n"
msgstr ""
#: src/frontends/qt2/QCommandBuffer.C:79
msgid "Previous command"
msgstr "Poprzednie polecenie"
@ -12141,7 +12176,7 @@ msgstr "headings"
msgid "fancy"
msgstr "fancy"
#: src/frontends/qt2/QDocument.C:164 src/text.C:2163
#: src/frontends/qt2/QDocument.C:164 src/text.C:2199
msgid "OneHalf"
msgstr "Pó³tora"
@ -12296,30 +12331,34 @@ msgid "Bold\t\\mathbf"
msgstr "Pogrubiona\t\\mathbf"
#: src/frontends/qt2/QMathDialog.C:142
msgid "Bold symbol\t\\boldsymbol"
msgstr ""
#: src/frontends/qt2/QMathDialog.C:143
msgid "Sans serif\t\\mathsf"
msgstr "Bezszeryfowa\t\\mathsf"
#: src/frontends/qt2/QMathDialog.C:143
#: src/frontends/qt2/QMathDialog.C:144
msgid "Italic\t\\mathit"
msgstr "Kursywa\t\\mathit"
#: src/frontends/qt2/QMathDialog.C:144
#: src/frontends/qt2/QMathDialog.C:145
msgid "Typewriter\t\\mathtt"
msgstr "Maszynowa\t\\mathtt"
#: src/frontends/qt2/QMathDialog.C:145
#: src/frontends/qt2/QMathDialog.C:146
msgid "Blackboard\t\\mathbb"
msgstr ""
#: src/frontends/qt2/QMathDialog.C:146
#: src/frontends/qt2/QMathDialog.C:147
msgid "Fraktur\t\\mathfrak"
msgstr ""
#: src/frontends/qt2/QMathDialog.C:147
#: src/frontends/qt2/QMathDialog.C:148
msgid "Calligraphic\t\\mathcal"
msgstr "Kaligraficzna\t\\mathcal"
#: src/frontends/qt2/QMathDialog.C:148
#: src/frontends/qt2/QMathDialog.C:149
msgid "Normal text mode\t\\textrm"
msgstr "Normalny tryb tekstowy\t\\textrm"
@ -13730,11 +13769,21 @@ msgstr "zaimportowany."
msgid "Opened inset"
msgstr "Otwarta wstawka"
#: src/insets/insetbibtex.C:95
#: src/insets/insetbibtex.C:104
#, fuzzy
msgid "BibTeX Generated Bibliography"
msgstr "Odno¶niki wygenerowane przez BibTeXa"
#: src/insets/insetbibtex.C:189
msgid "Export Warning!"
msgstr ""
#: src/insets/insetbibtex.C:190
msgid ""
"There are spaces in the paths to your BibTeX databases.\n"
"BibTeX will be unable to find them."
msgstr ""
#: src/insets/insetbox.C:57
msgid "Boxed"
msgstr "Pude³ko"
@ -13767,6 +13816,11 @@ msgstr "Otwarta wstawka pude
msgid "Opened Branch Inset"
msgstr "Otwarta wstawka ga³êzi"
#: src/insets/insetbranch.C:97
#, fuzzy
msgid "Branch: "
msgstr "Ga³±¼"
#: src/insets/insetcaption.C:77
msgid "Opened Caption Inset"
msgstr "Otwarta wstawka podpisu"
@ -13841,12 +13895,12 @@ msgstr ""
"%1$s\n"
"do katalogu tymczasowego."
#: src/insets/insetgraphics.C:689
#: src/insets/insetgraphics.C:693
#, c-format
msgid "No conversion of %1$s is needed after all"
msgstr ""
#: src/insets/insetgraphics.C:787
#: src/insets/insetgraphics.C:791
#, c-format
msgid "Graphics file: %1$s"
msgstr "Plik rysunku: %1$s"
@ -13957,11 +14011,11 @@ msgstr ""
msgid "Opened table"
msgstr "Otwarta tabela"
#: src/insets/insettabular.C:1561
#: src/insets/insettabular.C:1552
msgid "Error setting multicolumn"
msgstr "B³±d ustawienia wielokolumnowej komórki"
#: src/insets/insettabular.C:1562
#: src/insets/insettabular.C:1553
msgid "You cannot set multicolumn vertically."
msgstr "Nie mo¿na ustawiæ wielokolumnowej komórki pionowo"
@ -14176,11 +14230,11 @@ msgstr "&Zmie
msgid "Choose a filename to save document as"
msgstr "Wprowad¼ nazwê pliku pod jak± dokument ma byæ zapisany"
#: src/lyx_cb.C:135 src/lyxfunc.C:1636
#: src/lyx_cb.C:135 src/lyxfunc.C:1634
msgid "Templates|#T#t"
msgstr "Szablony|#S"
#: src/lyx_cb.C:165 src/lyxfunc.C:1790
#: src/lyx_cb.C:165 src/lyxfunc.C:1788
#, c-format
msgid ""
"The document %1$s already exists.\n"
@ -14191,7 +14245,7 @@ msgstr ""
"\n"
"Czy chcesz go zast±piæ?"
#: src/lyx_cb.C:167 src/lyxfunc.C:1792
#: src/lyx_cb.C:167 src/lyxfunc.C:1790
msgid "Over-write document?"
msgstr "Zastapiæ dokument?"
@ -14566,7 +14620,7 @@ msgstr ""
msgid "ChkTeX"
msgstr "ChkTeX"
#: src/lyxfunc.C:981 src/text3.C:1254
#: src/lyxfunc.C:981 src/text3.C:1241
msgid "Missing argument"
msgstr "Brakuje argumentu"
@ -14598,43 +14652,43 @@ msgstr "Ustawienia domy
msgid "Unable to save document defaults"
msgstr "Nie mo¿na zapisaæ ustawieñ domy¶lnych"
#: src/lyxfunc.C:1476
#: src/lyxfunc.C:1477
msgid "Converting document to new document class..."
msgstr "Konwersja dokumentu do nowej klasy"
#: src/lyxfunc.C:1483
#: src/lyxfunc.C:1484
msgid "Class switch"
msgstr ""
#: src/lyxfunc.C:1632
#: src/lyxfunc.C:1630
msgid "Select template file"
msgstr "Wybierz plik szablonu"
#: src/lyxfunc.C:1669
#: src/lyxfunc.C:1667
msgid "Select document to open"
msgstr "Wybierz dokument do otwarcia"
#: src/lyxfunc.C:1710
#: src/lyxfunc.C:1708
#, c-format
msgid "Opening document %1$s..."
msgstr "Otwieranie dokumentu %1$s"
#: src/lyxfunc.C:1714
#: src/lyxfunc.C:1712
#, c-format
msgid "Document %1$s opened."
msgstr "Dokument %1$s jest ju¿ otwarty."
#: src/lyxfunc.C:1716
#: src/lyxfunc.C:1714
#, c-format
msgid "Could not open document %1$s"
msgstr "Nie mo¿na otworzyæ dokumentu %1$s"
#: src/lyxfunc.C:1741
#: src/lyxfunc.C:1739
#, c-format
msgid "Select %1$s file to import"
msgstr "Wybierz dokument %1$s do importu"
#: src/lyxfunc.C:1851
#: src/lyxfunc.C:1849
msgid "Welcome to LyX!"
msgstr "Witaj w LyXie!"
@ -15148,7 +15202,7 @@ msgstr "Przywr
msgid " Macro: %1$s: "
msgstr "Makro: %1$s: "
#: src/mathed/math_amsarrayinset.C:110 src/mathed/math_hullinset.C:1137
#: src/mathed/math_amsarrayinset.C:110 src/mathed/math_hullinset.C:1153
#: src/mathed/math_splitinset.C:73 src/mathed/math_substackinset.C:69
#, c-format
msgid "Can't add vertical grid lines in '%1$s'"
@ -15159,67 +15213,67 @@ msgstr ""
msgid "No vertical grid lines in '%1$s'"
msgstr ""
#: src/mathed/math_gridinset.C:1252
#: src/mathed/math_gridinset.C:1272
msgid "Only one row"
msgstr "Tylko jeden wiersz"
#: src/mathed/math_gridinset.C:1258
#: src/mathed/math_gridinset.C:1278
msgid "Only one column"
msgstr "Tylko jedna kolumna"
#: src/mathed/math_gridinset.C:1266
#: src/mathed/math_gridinset.C:1286
msgid "No hline to delete"
msgstr "Brak pionowej linii do usuniêcia"
#: src/mathed/math_gridinset.C:1275
#: src/mathed/math_gridinset.C:1295
msgid "No vline to delete"
msgstr "Brak poziomej linii do usuniêcia"
#: src/mathed/math_gridinset.C:1293
#: src/mathed/math_gridinset.C:1313
#, c-format
msgid "Unknown tabular feature '%1$s'"
msgstr ""
#: src/mathed/math_hullinset.C:1012 src/mathed/math_hullinset.C:1021
#: src/mathed/math_hullinset.C:1026 src/mathed/math_hullinset.C:1035
msgid "No number"
msgstr "Bez numeracji"
#: src/mathed/math_hullinset.C:1012 src/mathed/math_hullinset.C:1021
#: src/mathed/math_hullinset.C:1026 src/mathed/math_hullinset.C:1035
msgid "Number"
msgstr "Numeracja"
#: src/mathed/math_hullinset.C:1036
#: src/mathed/math_hullinset.C:1050
msgid "Enter new label to insert:"
msgstr "Podaj now± etykietê do wstawienia:"
#: src/mathed/math_hullinset.C:1037
#: src/mathed/math_hullinset.C:1051
msgid "Enter label:"
msgstr "Podaj etykietê:"
#: src/mathed/math_hullinset.C:1110
#: src/mathed/math_hullinset.C:1126
#, c-format
msgid "Can't change number of rows in '%1$s'"
msgstr ""
#: src/mathed/math_hullinset.C:1120
#: src/mathed/math_hullinset.C:1136
#, c-format
msgid "Can't change number of columns in '%1$s'"
msgstr ""
#: src/mathed/math_hullinset.C:1130
#: src/mathed/math_hullinset.C:1146
#, c-format
msgid "Can't add horizontal grid lines in '%1$s'"
msgstr ""
#: src/mathed/math_hullinset.C:1233 src/text3.C:166
#: src/mathed/math_hullinset.C:1249 src/text3.C:167
msgid "Math editor mode"
msgstr "Tryb edytora matematycznego"
#: src/mathed/math_nestinset.C:755
#: src/mathed/math_nestinset.C:763
msgid "create new math text environment ($...$)"
msgstr ""
#: src/mathed/math_nestinset.C:758
#: src/mathed/math_nestinset.C:766
msgid "entered math text mode (textrm)"
msgstr "podano matematyczny tryb tekstowy (textrm)"
@ -15298,69 +15352,69 @@ msgid ""
"Trying to use the default instead.\n"
msgstr ""
#: src/text.C:210
#: src/text.C:214
msgid "Unknown Inset"
msgstr "Nieznana wstawka"
#: src/text.C:334
#: src/text.C:338
msgid "Unknown token"
msgstr "Nieznany token"
#: src/text.C:1165
#: src/text.C:1173
msgid ""
"You cannot insert a space at the beginning of a paragraph. Please read the "
"Tutorial."
msgstr ""
"Nie mo¿na wstawiæ spacji na pocz±tku akapitu. Przeczytaj, proszê, Samouczek."
#: src/text.C:1176
#: src/text.C:1184
msgid "You cannot type two spaces this way. Please read the Tutorial."
msgstr ""
"Nie mo¿na wstawiæ dwu spacji w ten sposób. Przeczytaj, proszê, Samouczek."
#: src/text.C:2129
#: src/text.C:2165
msgid "Change: "
msgstr "Zmiana: "
#: src/text.C:2133
#: src/text.C:2169
msgid " at "
msgstr " na "
#: src/text.C:2144
#: src/text.C:2180
#, c-format
msgid "Font: %1$s"
msgstr "Czcionka: %1$s"
#: src/text.C:2151
#: src/text.C:2187
#, c-format
msgid ", Depth: %1$d"
msgstr ", G³êboko¶æ: %1$d"
#: src/text.C:2157
#: src/text.C:2193
msgid ", Spacing: "
msgstr ", Odstêp: "
#: src/text.C:2169
#: src/text.C:2205
msgid "Other ("
msgstr "Inny ("
#: src/text.C:2178
#: src/text.C:2214
msgid ", Inset: "
msgstr ""
#: src/text.C:2179
#: src/text.C:2215
msgid ", Paragraph: "
msgstr ", Akapit: "
#: src/text.C:2180
#: src/text.C:2216
msgid ", Id: "
msgstr ", Id: "
#: src/text.C:2181
#: src/text.C:2217
msgid ", Position: "
msgstr ", Pozycja: "
#: src/text2.C:503
#: src/text2.C:519
msgid ""
"No font change defined. Use Character under the Layout menu to define font "
"change."
@ -15368,11 +15422,11 @@ msgstr ""
"Operacja zmiany czcionki nie jest zdefiniowana. Podaj j± w menu Formatowanie/"
"Czcionki."
#: src/text2.C:545
#: src/text2.C:561
msgid "Nothing to index!"
msgstr "Brak obiektów do indeksowania!"
#: src/text2.C:547
#: src/text2.C:563
msgid "Cannot index more than one paragraph!"
msgstr "Nie mo¿na indeksowaæ wiêcej ni¿ jednego akapitu"
@ -15392,14 +15446,48 @@ msgstr "Ustawienia "
msgid " not known"
msgstr " nieznane"
#: src/text3.C:1359 src/text3.C:1371
#: src/text3.C:1346 src/text3.C:1358
msgid "Character set"
msgstr "Kodowanie"
#: src/text3.C:1504
#: src/text3.C:1491
msgid "Paragraph layout set"
msgstr "Styl akapitu ustawiony"
#: src/toc.C:64 src/toc.C:133
msgid "TOC"
msgstr ""
#: src/vspace.C:487
#, fuzzy
msgid "Default skip"
msgstr "Domy¶lny odstêp:|#m"
#: src/vspace.C:490
#, fuzzy
msgid "Small skip"
msgstr "Ma³y odstêp"
#: src/vspace.C:493
#, fuzzy
msgid "Medium skip"
msgstr "¦redni odstêp"
#: src/vspace.C:496
#, fuzzy
msgid "Big skip"
msgstr "Du¿y odstêp"
#: src/vspace.C:499
#, fuzzy
msgid "Vertical fill"
msgstr "&Pionowe:"
#: src/vspace.C:506
#, fuzzy
msgid "protected"
msgstr "Twarda spacja|T"
#~ msgid "ASCII roff:|#r"
#~ msgstr "ASCII roff:|#r"
@ -15721,9 +15809,6 @@ msgstr "Styl akapitu ustawiony"
#~ msgid "BibTeX Database"
#~ msgstr "Baza danych BibTeX"
#~ msgid "Branch"
#~ msgstr "Ga³±¼"
#~ msgid "Add the selected entry to the current citation reference."
#~ msgstr "Dodaj wybrany klucz do bie¿±cego cytowania"

388
po/pt.po

File diff suppressed because it is too large Load Diff

385
po/ro.po

File diff suppressed because it is too large Load Diff

389
po/ru.po

File diff suppressed because it is too large Load Diff

385
po/sk.po

File diff suppressed because it is too large Load Diff

387
po/sl.po

File diff suppressed because it is too large Load Diff

384
po/sv.po

File diff suppressed because it is too large Load Diff

384
po/tr.po

File diff suppressed because it is too large Load Diff

384
po/wa.po

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,7 @@
2005-07-16 Lars Gullik Bjønnes <larsbj@lyx.org>
* lyx_main.C (init): change some reLyX reference to tex2lyx
2005-07-16 Juergen Vigna <jug@lyx.org>
* dociterator.C (DocIterator): initialize boundary

View File

@ -1,9 +1,13 @@
2005-07-16 Lars Gullik Bjønnes <larsbj@lyx.org>
* FormPreferences.h: remove a reLyX reference
2005-07-16 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* xfont_loader.C (getFontinfo): do not call addFontPath.
(addFontPath): remove.
2005-07-13 <lgb@tandberg.net>
2005-07-13 Lars Gullik Bjønnes <larsbj@lyx.org>
* forms/Makefile.am (distclean-local): pretend success also if
srcdir != builddir

View File

@ -79,7 +79,7 @@ private:
/// Converters tabfolder
boost::scoped_ptr<FD_preferences_inner_tab> converters_tab_;
/// reLyX and other import/input stuff
/// import/input stuff
boost::scoped_ptr<FD_preferences_inner_tab> inputs_tab_;
/// HCI configuration
boost::scoped_ptr<FD_preferences_inner_tab> look_n_feel_tab_;

View File

@ -482,7 +482,7 @@ void LyX::init(bool gui)
#if !defined (USE_POSIX_PACKAGING)
// Add the directory containing the LyX executable to the path
// so that LyX can find things like reLyX.
// so that LyX can find things like tex2lyx.
if (package().build_support().empty())
prependEnvPath("PATH", package().binary_dir());
#endif

View File

@ -5,6 +5,7 @@ Makefile.in
*.lo
libtexparser.la
tex2lyx
tex2lyx.1
FloatList.C
Floating.C
boost.C

View File

@ -1,3 +1,11 @@
2005-07-16 Lars Gullik Bjønnes <larsbj@lyx.org>
* .cvsignore: add tex2lyx.1
* tex2lyx.C (main): dont search for syntax.default in reLyX dir
* test.ltx: new test file
* tex2lyx.man: new file
* Makefile.am: add man file directives
2005-07-15 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* text.C (parse_environment): handle context of unknown environments

View File

@ -2,7 +2,7 @@ include $(top_srcdir)/config/common.am
EXTRA_DIST = pch.h test-structure.tex test-insets.tex
DISTCLEANFILES += $(LINKED_SOURCES)
DISTCLEANFILES += tex2lyx.1 $(LINKED_SOURCES)
#noinst_LTLIBRARIES = libtexparser.la
#
@ -12,6 +12,8 @@ DISTCLEANFILES += $(LINKED_SOURCES)
#
#tex2lyx_LDADD = libtexparser.la
man_MANS = tex2lyx.1
bin_PROGRAMS = tex2lyx
AM_CPPFLAGS += $(PCH_FLAGS) -I$(srcdir)/.. $(BOOST_INCLUDES)
@ -65,3 +67,6 @@ $(LINKED_SOURCES) :
rm_link_files:
rm -f $(LINKED_SOURCES)
tex2lyx.1:
cp -p $(srcdir)/tex2lyx.man tex2lyx.1

View File

@ -217,7 +217,7 @@ void read_environment(Parser & p, string const & begin,
/*!
* Read a list of TeX commands from a reLyX compatible syntax file.
* Since this list is used after all commands that have a LyX counterpart
* are handled, it does not matter that the "syntax.default" file from reLyX
* are handled, it does not matter that the "syntax.default" file
* has almost all of them listed. For the same reason the reLyX-specific
* reLyXre environment is ignored.
*/
@ -491,7 +491,7 @@ int main(int argc, char * argv[])
lyx::support::init_package(argv[0], cl_system_support, cl_user_support,
lyx::support::top_build_dir_is_two_levels_up);
string const system_syntaxfile = lyx::support::LibFileSearch("reLyX", "syntax.default");
string const system_syntaxfile = lyx::support::LibFileSearch("", "syntax.default");
if (system_syntaxfile.empty()) {
cerr << "Error: Could not find syntax file \"syntax.default\"." << endl;
exit(1);

View File

@ -1,15 +1,9 @@
.rn '' }`
''' $RCSfile: reLyX.man,v $$Revision: 1.4 $$Date: 2004/10/28 14:35:19 $
''' $RCSfile: tex2lyx.man,v $$Revision: 1.1 $$Date: 2005/07/16 15:18:14 $
'''
''' $Log: reLyX.man,v $
''' Revision 1.4 2004/10/28 14:35:19 leeming
''' Whitespace, only whitespace. Part II.
'''
''' Revision 1.3 2002/10/28 09:52:39 poenitz
''' the relyx changes
'''
''' Revision 1.2 2000/03/29 23:02:36 karger
''' Very minor changes (sorry kayvan!)
''' $Log: tex2lyx.man,v $
''' Revision 1.1 2005/07/16 15:18:14 larsbj
''' drop reLyX like it is hot, and setup to use tex2lyx instead (and remerged po files + no.po small update)
'''
'''
.de Sh
@ -102,7 +96,7 @@
.nr % 0
.rr F
.\}
.TH RELYX 1 "Version 2.9.2.2 2.9.2.2" "11/Aug/99" "User Contributed Perl Documentation"
.TH TEX2LYX 1 "Version 2.9.2.2 2.9.2.2" "16/Jul/2005" ""
.UC
.if n .hy 0
.if n .na
@ -197,36 +191,35 @@
.\}
.rm #[ #] #H #V #F C
.SH "NAME"
\fBreLyX\fR \- translate well-behaved LaTeX into LyX
\fBtex2lyx\fR \- translate well-behaved LaTeX into LyX
.SH "SYNOPSIS"
The simplest way to use \fBreLyX\fR is via the File->Import command in LyX. (This
option is available starting with version 1.0.0.) That runs \fBreLyX\fR on
the given file and loads the resulting file into LyX. You should try that
first, and call it from the command line only if you need to use more
complicated options.
The simplest way to use \fBtex2lyx\fR is via the File->Import command
in LyX. That runs \fBtex2lyx\fR on the given file and loads the
resulting file into LyX. You should try that first, and call it from
the command line only if you need to use more complicated options.
.PP
\fBreLyX\fR [ \fB\-c\fR \fItextclass\fR ] [ \fB\-df\fR ] [ \fB\-o\fR \fIoutputdir\fR ] [\fB\-n\fR]
\fBtex2lyx\fR [ \fB\-c\fR \fItextclass\fR ] [ \fB\-df\fR ] [ \fB\-o\fR \fIoutputdir\fR ] [\fB\-n\fR]
[\ \fB\-r\fR\ \fIrenv1\fR[,\fIrenv2\fR...]] [\ \fB\-s\fR\ \fIsfile1\fR[,\fIsfile2\fR...]]
\fIinputfile\fR
.PP
\fBreLyX\fR \fB\-p\fR \fB\-c\fR \fItextclass\fR [ \fB\-df\fR ] [ \fB\-o\fR \fIoutputdir\fR ]
\fBtex2lyx\fR \fB\-p\fR \fB\-c\fR \fItextclass\fR [ \fB\-df\fR ] [ \fB\-o\fR \fIoutputdir\fR ]
[\ \fB\-r\fR\ \fIrenv1\fR[,\fIrenv2\fR...]] [\ \fB\-s\fR\ \fIsfile1\fR[,\fIsfile2\fR...]]
\fIinputfiles\fR
.PP
\fBreLyX\fR \fB\-h\fR
\fBtex2lyx\fR \fB\-h\fR
.SH "OPTIONS"
.Ip "\fB\-c\fR" 4
Class. By default, when \fBreLyX\fR sees a \f(CW\edocumentclass{foo}\fR command, it
Class. By default, when \fBtex2lyx\fR sees a \f(CW\edocumentclass{foo}\fR command, it
creates a file of textclass \*(L"foo\*(R" and reads the LyX layout file for that class
(something like /usr/local/share/lyx/layouts/foo.layout \s-1OR\s0
\fB\s-1HOME\s0\fR/.lyx/layouts/foo.layout). Use \fB\-c\fR to declare a different textclass
(and read a different layout file).
.Ip "\fB\-d\fR" 4
Debug. By default, \fBreLyX\fR gives sparse output and deletes the temporary files
Debug. By default, \fBtex2lyx\fR gives sparse output and deletes the temporary files
which were created during translation. Using the \fB\-d\fR flag will create much
more output (both to stdout and stderr) and leave the temporary files around.
.Ip "\fB\-f\fR" 4
Force. \fBreLyX\fR will not run if the .lyx file it would generate already exists
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.
.Ip "\fB\-h\fR" 4
Help. Print out usage information and quit.
@ -245,9 +238,9 @@ have write permission on the directory the LaTeX files are in.
.Ip "\fB\-p\fR" 4
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 \fBreLyX\fR is translating. When
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 \fBreLyX\fR can be included in an
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.
.Ip "\fB\-r\fR" 4
Regular environments (see the section on \fISyntax Files\fR). If you give more than one
@ -260,19 +253,19 @@ Syntax files. Input (one or more quoted, comma-separated) syntax files to read
in addition to the default. (see the section on \fISyntax Files\fR for details).
.SH "DESCRIPTION"
.Sh "Introduction"
\fBreLyX\fR will create a LyX file \fIdir/foo.lyx\fR from the LaTeX file
\fBtex2lyx\fR will create a LyX file \fIdir/foo.lyx\fR from the LaTeX file
\fIdir/foo.tex\fR (unless the \fB\-o\fR option is used).
.PP
Suffixes .tex, .ltx and .latex are supported. If \fIinputfile\fR
does not exist and does not have one of these suffixes, \fBreLyX\fR will try to
does not exist and does not have one of these suffixes, \fBtex2lyx\fR will try to
translate \fIinputfile.tex\fR. (This is similar to the behavior of LaTeX.)
.PP
The purpose of \fBreLyX\fR is to translate \fIwell-behaved\fR LaTeX2e into LyX. If
The purpose of \fBtex2lyx\fR is to translate \fIwell-behaved\fR LaTeX2e into LyX. If
your LaTeX file doesn't compile---or if you do weird things, like redefining
standard LaTex commands---it may choke. LaTeX209 will often be translated
correctly, but it's not guaranteed.
.PP
\fBreLyX\fR has some bugs and lacks a few features. However, its main goals are:
\fBtex2lyx\fR has some bugs and lacks a few features. However, its main goals are:
.Ip "\(bu" 4
Get through a well-behaved LaTeX2e file without crashing
.Ip "\(bu" 4
@ -282,17 +275,17 @@ Localize the parts that can't be translated and copy them in TeX mode
.PP
It achieves these main goals pretty well on most files.
.PP
There are many improvements that can and will be made to \fBreLyX\fR in the
future. However, we wanted to get \fBreLyX\fR out there early on, to make
There are many improvements that can and will be made to \fBtex2lyx\fR in the
future. However, we wanted to get \fBtex2lyx\fR out there early on, to make
it easier for new LyX users to read in their existing LaTeX files.
.Sh "Usage"
Here's a more lengthy description of what you should do to translate a LaTeX
document into LyX.
.Ip "\(bu" 4
Run \fBreLyX\fR.
Run \fBtex2lyx\fR.
.Sp
\fBreLyX\fR will inform you of its progress and give any warnings to stderr, so if
you don't want any output at all, try (in csh) \*(L'reLyX foo.tex >& /dev/null\*(R'.
\fBtex2lyx\fR will inform you of its progress and give any warnings to stderr, so if
you don't want any output at all, try (in csh) \*(L'tex2lyx foo.tex >& /dev/null\*(R'.
You should \s-1NOT\s0 redirect standard output to \fIfoo.lyx\fR.
.Ip "\(bu" 4
Run LyX (version 0.12 or 1.0 or later) on the resulting .lyx file.
@ -302,7 +295,7 @@ untranslatable will be highlighted in red (TeX mode). In theory, LyX will be
able to read in the file, and to create printed documents from it, because all
that untranslated red stuff will be passed directly back to LaTeX, which LyX
uses as a backend. Unfortunately, reality doesn't always reflect theory. If
\fBreLyX\fR crashes, or LyX cannot read the generated LyX file, see the \f(CWBUGS\fR entry elsewhere in this document or the \fI\s-1BUGS\s0\fR file.
\fBtex2lyx\fR crashes, or LyX cannot read the generated LyX file, see the \f(CWBUGS\fR entry elsewhere in this document or the \fI\s-1BUGS\s0\fR file.
.Ip "\(bu" 4
Change things that are highlighted in red (TeX mode) by hand in LyX.
.Sp
@ -310,7 +303,7 @@ As mentioned above, you should be able to print out the LyX file even without
doing this. However, changing a command in TeX mode to the corresponding LyX
object will allow you to take advantage of LyX's \s-1WYSIWYM\s0 editing.
.Sp
\fBreLyX\fR is not guaranteed to create a LyX file which generates exactly the same
\fBtex2lyx\fR is not guaranteed to create a LyX file which generates exactly the same
output as the LaTeX file, but it should come close. \fBrelyX\fR will generally err
on the side of translating less to ensure that dvi or ps files are accurate,
even though this leads to more \*(L"evil red text\*(R" and less \s-1WYSIWYM\s0.
@ -318,13 +311,13 @@ even though this leads to more \*(L"evil red text\*(R" and less \s-1WYSIWYM\s0.
\s-1PROOFREAD\s0 \s-1THE\s0 \s-1DOCUMENT\s0!!
.Sp
I'm sure you were planning on doing this anyway, but it's particularly
important after translating a LaTeX document. \fBreLyX\fR is, at least now, better
important after translating a LaTeX document. \fBtex2lyx\fR is, at least now, better
at \*(L"macro-translating\*(R" (translating the whole document) than
\*(L"micro-translating\*(R" (translating every little detail). For example, you may see
extra spaces or deleted spaces. Space handling has improved, but it's
not perfect.
.Sh "What reLyX Can Handle"
\fBreLyX\fR understands many LaTeX commands. It will translate:
.Sh "What tex2lyx Can Handle"
\fBtex2lyx\fR understands many LaTeX commands. It will translate:
.Ip "\(bu" 4
regular text, including mini-commands like ~, \*(L'\*(R', \f(CW\e@\fR, \f(CW\eTeX\fR, as well as
accented characters like \f(CW\e'{a}\fR, and the special cases ?` and !`
@ -373,17 +366,17 @@ arguments to certain untranslatable commands (e.g. \f(CW\embox\fR)
.PP
Some of this support may not be 100% yet. See below for details
.PP
\fBreLyX\fR copies math (almost) verbatim from your LaTeX file. Luckily, LyX reads
\fBtex2lyx\fR copies math (almost) verbatim from your LaTeX file. Luckily, LyX reads
in LaTeX math, so (almost) any math which is supported by LyX should work just
fine. A few math commands which are not supported by LyX will be replaced with
their equivalents, e.g., \f(CW\eto\fR is converted to \f(CW\erightarrow\fR. See
the section on \fISyntax Files\fR for more details.
.PP
\fBreLyX\fR will also copy any preamble commands (i.e., anything before
\fBtex2lyx\fR will also copy any preamble commands (i.e., anything before
\f(CW\ebegin{document}\fR) verbatim, so fancy stuff you've got in your preamble
should be conserved in dvi and printed documents, although it will not of
course show up in the LyX window. Check Layout->LaTeX Preamble to make sure.
.Sh "What reLyX Can't Handle --- But it's \s-1OK\s0"
.Sh "What tex2lyx Can't Handle --- But it's \s-1OK\s0"
.Ip "\(bu" 4
tabular* tables
.Ip "\(bu" 4
@ -393,27 +386,27 @@ spacing commands (\f(CW\evspace\fR, \f(CW\epagebreak\fR, \f(CW\epar\fR, ...)
.Ip "\(bu" 4
\f(CW\ecentering\fR, \f(CW\eraggedleft\fR, \f(CW\eraggedright\fR
.Ip "\(bu" 4
\f(CW\everb\fR and verbatim environment. \fBreLyX\fR is careful to copy \fIexactly\fR in
\f(CW\everb\fR and verbatim environment. \fBtex2lyx\fR is careful to copy \fIexactly\fR in
this case, including comments and whitespace.
.Ip "\(bu" 4
some unknown (e.g., user-defined) environments and commands
.PP
\fBreLyX\fR copies unknown commands, along with their arguments, verbatim into the
\fBtex2lyx\fR copies unknown commands, along with their arguments, verbatim into the
LyX file. Also, if it sees a \f(CW\ebegin{foo}\fR where it doesn't recognize the
\*(L"foo\*(R" environment, it will copy verbatim until it sees \f(CW\eend{foo}\fR (unless
you use the \fB\-r\fR option). Hopefully, then, most of these unknown commands
won't cause \fBreLyX\fR to break; they'll merely require you to do some editing
won't cause \fBtex2lyx\fR to break; they'll merely require you to do some editing
once you've loaded the file up in LyX. That should be less painful than
editing either the .tex or the .lyx file using a text editor.
.Sh "What reLyX Handles Badly --- aka \s-1BUGS\s0"
Since \fBreLyX\fR is relatively new, it's got a number of problems. As it
.Sh "What tex2lyx Handles Badly --- aka \s-1BUGS\s0"
Since \fBtex2lyx\fR is relatively new, it's got a number of problems. As it
matures, these bugs will be squished.
.PP
If \fBreLyX\fR is choking on something, or LyX can't read it after \fBreLyX\fR
translates it, the best thing to do is to put \f(CW\ebegin{reLyXskip}\fR before the
offending text, and \f(CW\eend{reLyXskip}\fR after it. I call this a \*(L"skip\*(R" block.
\fBreLyX\fR will copy this block exactly, in TeX mode. Then edit the resulting
LyX file, and translate the unknown stuff by hand. The reLyXskip environment
If \fBtex2lyx\fR is choking on something, or LyX can't read it after \fBtex2lyx\fR
translates it, the best thing to do is to put \f(CW\ebegin{tex2lyxskip}\fR before the
offending text, and \f(CW\eend{tex2lyxskip}\fR after it. I call this a \*(L"skip\*(R" block.
\fBtex2lyx\fR will copy this block exactly, in TeX mode. Then edit the resulting
LyX file, and translate the unknown stuff by hand. The tex2lyxskip environment
is magical; the \f(CW\ebegin\fR and \f(CW\eend\fR commands will not be put into the LyX
file.
.Ip "\(bu" 4
@ -424,12 +417,12 @@ file will be copied perfectly, including whitespace and comments. This
includes: the LaTeX preamble, verbatim environments and \f(CW\everb\fR commands, and
skip blocks.
.Ip "\(bu" 4
\fBreLyX\fR translates only a few options to the \f(CW\edocumentclass\fR command.
\fBtex2lyx\fR translates only a few options to the \f(CW\edocumentclass\fR command.
(Specifically 1[012]pt, [letter|legal|executive|a4|a5|b5]paper,
[one|two]side, landscape, and [one|two]column.) Other options are placed in
the \*(L"options\*(R" field in the Layout->Document popup.
.Sp
More importantly, \fBreLyX\fR doesn't translate \f(CW\eusepackage\fR commands, margin
More importantly, \fBtex2lyx\fR doesn't translate \f(CW\eusepackage\fR commands, margin
commands, \f(CW\enewcommands\fR, or, in fact, anything else from the preamble. It
simply copies them into the LaTeX preamble. If you have margin commands in
your preamble, then the LyX file will generate the right margins. However,
@ -438,25 +431,25 @@ popup. So you should remove the options from the preamble
(Layout->Latex Preamble) to be safe. The same goes for setting your language
with babel, \f(CW\einputencoding\fR, \f(CW\epagestyle\fR, etc.
.Ip "\(bu" 4
The foil class has a couple bugs. \fBreLyX\fR may do weird things with optional
The foil class has a couple bugs. \fBtex2lyx\fR may do weird things with optional
arguments to \f(CW\efoilhead\fR commands. Also, it may handle \f(CW\ebegin{dinglist}\fR
incorrectly (although the stuff in the environment should translate normally).
.PP
Less significant bugs can be found in the \fI\s-1BUGS\s0\fR file.
.PP
\fBreLyX\fR is hopefully rather robust. As mentioned above, it may not translate
\fBtex2lyx\fR is hopefully rather robust. As mentioned above, it may not translate
your file perfectly, but it shouldn't crash. If it does crash---and the
problem is not one of those mentioned above or in the \fI\s-1BUGS\s0\fR file---see
the section on \fIBug Reports\fR.
.Sh "What LyX Can't Handle"
LyX itself is missing a couple features, such that even if \fBreLyX\fR translates
LyX itself is missing a couple features, such that even if \fBtex2lyx\fR translates
things perfectly, LyX may still have trouble reading it. If you really need
these features, you can export your final document as LaTeX, and put them
back in. See \fI\s-1BUGS\s0\fR for more details on these bugs.
.Ip "\(bu" 4
For a number of commands, LyX does not support the optional argument. Examples
include \f(CW\echapter\fR (and other sectioning commands), and \f(CW\e\e\fR.
\fBreLyX\fR will automatically discard the optional arguments with a warning to
\fBtex2lyx\fR will automatically discard the optional arguments with a warning to
stdout. LyX also ignores the width argument for the thebibliography
environment.
.Ip "\(bu" 4
@ -477,18 +470,18 @@ command by hand within LyX---for example, if you included a bounding box but
the bounding box is already in the .eps file.
.Sp
LyX only allows figures to have sizes in in,cm, or percentages of \etextwidth
or \etextheight (or \ecolumnwidth). \fBreLyX\fR will translate from other units, like
or \etextheight (or \ecolumnwidth). \fBtex2lyx\fR will translate from other units, like
pt or mm, but it cannot translate other lengths (e.g. if you wanted to scale a
figure to size \etopmargin for some reason). \fBreLyX\fR will copy figures with
figure to size \etopmargin for some reason). \fBtex2lyx\fR will copy figures with
untranslatable sizes in TeX mode. Again, you might be able to fix that within
LyX.
.Sh "The Future of reLyX"
In the future, more commands and environments will be supported by \fBreLyX\fR.
.Sh "The Future of tex2lyx"
In the future, more commands and environments will be supported by \fBtex2lyx\fR.
Bugs will be eradicated.
.PP
See the \s-1TODO\s0 file for details.
.SH "EXAMPLES"
reLyX \fB\-df\fR \fB\-o\fR \*(L"my/dir\*(R" \fB\-r\fR \*(L"myenv\*(R" foo.tex > foo.debug
tex2lyx \fB\-df\fR \fB\-o\fR \*(L"my/dir\*(R" \fB\-r\fR \*(L"myenv\*(R" foo.tex > foo.debug
.PP
The above will create a file my/dir/foo.lyx from foo.tex, overwriting if
necessary. When it finds a \f(CW\ebegin{myenv} ... \eend{myenv}\fR block, it will
@ -497,28 +490,28 @@ commands in TeX mode. Finally, I'm going to keep the temporary files around
(they will also be in my/dir/) and output lots of debugging information into
the file foo.debug.
.PP
reLyX \fB\-n\fR \fB\-c\fR \*(L"literate-article\*(R" foo.tex
tex2lyx \fB\-n\fR \fB\-c\fR \*(L"literate-article\*(R" foo.tex
.PP
The above will change a noweb document into a LyX literate-article
document. A user would do this if the noweb document had documentclass
article.
.SH "NOTES"
.Sh "Bug Reports"
If \fBreLyX\fR is crashing or otherwise acting strangely---in ways
If \fBtex2lyx\fR is crashing or otherwise acting strangely---in ways
other than those described in the section on \fI\s-1BUGS\s0\fR or the \fI\s-1BUGS\s0\fR file---then please run
\fBreLyX \-d\fR. That will allow you to figure out where in the reLyXing process
\fBtex2lyx \-d\fR. That will allow you to figure out where in the tex2lyxing process
it crashed. That, in turn, will allow you to write a better bug report, which
will allow the developers to fix it more quickly and easily.
.PP
Bug reports should be sent to the LyX developers\*(R' mailing list. Its address
is currently lyx-devel@lists.lyx.org, but you can check the LyX home page,
http://www.lyx.org if that bounces. If you are running \fBreLyX\fR on a huge file,
http://www.lyx.org if that bounces. If you are running \fBtex2lyx\fR on a huge file,
please do not send all of the output in your bug report. Just include the last
ten or twenty lines of output, along with the piece of the LaTeX file it
crashed on. Or, even better, attach a small but complete file which causes
the same problem as your original file.
.Sh "Implementation Details:"
\fBreLyX\fR makes several \*(L"passes\*(R" in order to translate a TeX file. On each pass,
\fBtex2lyx\fR makes several \*(L"passes\*(R" in order to translate a TeX file. On each pass,
it creates one or two files.
.Ip "Pass 0" 4
Before doing anything, read the syntax file (or files).
@ -549,7 +542,7 @@ Translate LaTeX text, commands, and environments to LyX.
Put the two pieces back together, and do some final tweaking, to generate the
LyX file
.PP
If there are any \f(CW\einput\fR or \f(CW\einclude\fR commands, \fBreLyX\fR will loop back to
If there are any \f(CW\einput\fR or \f(CW\einclude\fR commands, \fBtex2lyx\fR will loop back to
the beginning and translate those. It assumes that the included files are the
same class as the main file, and that they have no preamble matter. (If you
have an \f(CW\einput\fR command in the preamble of a file, the command will be
@ -557,14 +550,14 @@ copied exactly into the LaTeX preamble portion of the LyX file, so the
included file won't be translated.) So when translating included files, it
skips passes 0 and 1.
.PP
If \fBreLyX\fR doesn't find a file you wanted to include, it will give a warning,
If \fBtex2lyx\fR doesn't find a file you wanted to include, it will give a warning,
but will continue to translate any files it does find.
.Sh "Layout Files"
\fBreLyX\fR reads a LyX layout file to know how to handle LaTeX environments and
\fBtex2lyx\fR reads a LyX layout file to know how to handle LaTeX environments and
commands which get translated to LyX layouts. This file will include all
\*(L"normal\*(R" non-math environments (i.e., including quote and itemize, but not
tabular, minipage, and some other fancy environments), and commands like
\f(CW\esection\fR and \f(CW\etitle\fR. If you want to reLyX a class that doesn't have an
\f(CW\esection\fR and \f(CW\etitle\fR. If you want to tex2lyx a class that doesn't have an
existing layout file, then you'll have to create a layout file. But you have
to do this anyway, in order to LyX the file, since LyX depends on layout files
to know how to display and process its files. Check the LyX documentation for
@ -572,31 +565,31 @@ help with this task (which can be hard or easy, depending on the class you
want to create a layout file for.) If your class is quite similar to a class
that has a layout file, then consider using the \fB\-c\fR option.
.Sh "Syntax Files"
\fBreLyX\fR always reads at least one syntax file, called the default syntax file.
\fBreLyX\fR will read your personal syntax file if it exists; otherwise it will
read the system-wide file. \fBreLyX\fR will read additional syntax files if you
\fBtex2lyx\fR always reads at least one syntax file, called the default syntax file.
\fBtex2lyx\fR will read your personal syntax file if it exists; otherwise it will
read the system-wide file. \fBtex2lyx\fR will read additional syntax files if you
specify them with the \fB\-s\fR option. (These extra files should have the same
format as the default file, but will tend to be shorter, since they only have
to specify extra commands not found in the default file.) A syntax file tells
\fBreLyX\fR a few things.
\fBtex2lyx\fR a few things.
.PP
First, it describes the syntax of each command, that is, how many required
arguments and how many optional arguments the command takes. Knowing this
makes it easier for \fBreLyX\fR to copy (in TeX mode) commands that it doesn't
makes it easier for \fBtex2lyx\fR to copy (in TeX mode) commands that it doesn't
know how to translate. The syntax file simply has a command, followed by
braces or brackets describing its arguments in the correct order. For example,
a syntax file entry \f(CW\ebibitem[]{}\fR means that the \f(CW\ebibitem\fR command takes
an optional argument followed by a required one, while the entry \f(CW\ebf\fR
means that the \f(CW\ebf\fR command takes no arguments at all. When \fBreLyX\fR
means that the \f(CW\ebf\fR command takes no arguments at all. When \fBtex2lyx\fR
encounters a token that it doesn't know how to translate into LyX, it will
copy the token---along with the correct number of arguments---exactly. If the
token is not in the syntax file, then \fBreLyX\fR just copies as many arguments
token is not in the syntax file, then \fBtex2lyx\fR just copies as many arguments
as it finds. This means that it may copy too much. But since the user can
specify additional syntax files, that shouldn't happen often.
.PP
Some commands that cannot be translated to LyX, like \f(CW\embox\fR, have as one of
their arguments regular LaTeX text. If the string \*(L"translate\*(R" is put into an
argument of an (untranslatable) command in the syntax file, then \fBreLyX\fR will
argument of an (untranslatable) command in the syntax file, then \fBtex2lyx\fR will
translate that argument instead of copying it verbatim. So, for example, the
default syntax file has \f(CW\eraisebox{}[][]{translate}\fR. This means that the
\f(CW\eraisebox\fR command and the first argument (and optional arguments if they
@ -608,7 +601,7 @@ User-defined syntax files are allowed to define new commands and
their syntax, or override the number of arguments for a command given in the
default syntax file. (E.g., if you're using a style that gives an extra
argument to some command...) However, this will only be useful for commands
copied in TeX mode. Commands which are actually translated by \fBreLyX\fR (like
copied in TeX mode. Commands which are actually translated by \fBtex2lyx\fR (like
\f(CW\eitem\fR) have their argument syntax hard-coded. The hard-coded commands are
identified in the default syntax file.
.PP
@ -616,28 +609,28 @@ Second, the syntax file describes any \*(L"regular environments\*(R". Usually,
entire unknown environment will be copied in TeX mode. If you define a regular
environment \*(L"foo\*(R", though, then only the \f(CW\ebegin{foo}\fR and \f(CW\eend{foo}\fR
commands will be copied in TeX mode; the text within the environment will be
treated (i.e., translated) by \fBreLyX\fR as regular LaTeX, rather than being
treated (i.e., translated) by \fBtex2lyx\fR as regular LaTeX, rather than being
copied into TeX mode. Don't try to declare \*(L"tabbing\*(R" and \*(L"picture\*(R" as regular
environments, as the text within those environments will confuse \fBreLyX\fR; use
environments, as the text within those environments will confuse \fBtex2lyx\fR; use
this capability for new environments you create that have plain text or math
or simple commands in them. You also can't declare unknown math environments
(like equation*) as regular environments, either, since the LyX math editor
won't understand them. The names of regular environments appear,
whitespace-separated, between \f(CW\ebegin{reLyXre}\fR and \f(CW\eend{reLyXre}\fR
whitespace-separated, between \f(CW\ebegin{tex2lyxre}\fR and \f(CW\eend{tex2lyxre}\fR
statements in the syntax file. (If you have a regular environment which you
won't use very often, you can use the \fB\-r\fR option rather than writing a
syntax file.)
.Sh "Miscellaneous"
You need Perl version 5.002 or later to run \fBreLyX\fR. <plug> If you don't have
You need Perl version 5.002 or later to run \fBtex2lyx\fR. <plug> If you don't have
Perl, you should get it anyway (at http://www.perl.com), because it's a really
useful tool for pretty much anything. </plug>
.SH "DIAGNOSTICS"
\fBreLyX\fR should always explain why it crashes, if it crashes. Some diagnostics
\fBtex2lyx\fR should always explain why it crashes, if it crashes. Some diagnostics
may be very technical, though, if they come from the guts of the code.
\fBreLyX\fR gives much more information while running if you use the \fB\-d\fR option,
\fBtex2lyx\fR gives much more information while running if you use the \fB\-d\fR option,
but you shouldn't need that unless something goes wrong.
.PP
When it's finished, \fBreLyX\fR will tell you if it finished successfully or
When it's finished, \fBtex2lyx\fR will tell you if it finished successfully or
died due to some error.
.SH "WARNINGS"
Always keep a copy of your original LaTeX files either under a different
@ -655,11 +648,11 @@ dvi\*(R" or print the LyX document.
.SH "FILES"
.Ip "\fI\s-1MY_LYXDIR\s0\fR/layouts/*.layout" 4
User's personal layout files for document classes
.Ip "\fI\s-1MY_LYXDIR\s0\fR/reLyX/syntax.default" 4
.Ip "\fI\s-1MY_LYXDIR\s0\fR/syntax.default" 4
User's personal syntax file
.Ip "\fI\s-1LIBDIR\s0\fR/layouts/*.layout" 4
System-wide layout files for document classes
.Ip "\fI\s-1LIBDIR\s0\fR/reLyX/syntax.default" 4
.Ip "\fI\s-1LIBDIR\s0\fR/lib/syntax.default" 4
System-wide LaTeX syntax file
.PP
\fI\s-1LIBDIR\s0\fR is the system-wide LyX directory, usually something like
@ -691,13 +684,10 @@ Asger K. Alstrup Nielsen and Marc Pavese provided advice.
.Ip "\(bu" 4
Various members of the LyX developers\*(R' and users\*(R' lists provided bug reports
and feature suggestions.
.PP
\fBreLyX\fR uses a modified version the Perl TeX parser Text::TeX package written
by Ilya Zakharevich (ilya@math.ohio-state.edu), available on \s-1CPAN\s0.
.rn }` ''
.IX Title "RELYX 1"
.IX Name "B<reLyX> - translate well-behaved LaTeX into LyX"
.IX Name "B<tex2lyx> - translate well-behaved LaTeX into LyX"
.IX Header "NAME"
@ -743,7 +733,7 @@ by Ilya Zakharevich (ilya@math.ohio-state.edu), available on \s-1CPAN\s0.
.IX Item "\(bu"
.IX Subsection "What reLyX Can Handle"
.IX Subsection "What tex2lyx Can Handle"
.IX Item "\(bu"
@ -777,7 +767,7 @@ by Ilya Zakharevich (ilya@math.ohio-state.edu), available on \s-1CPAN\s0.
.IX Item "\(bu"
.IX Subsection "What reLyX Can't Handle --- But it's \s-1OK\s0"
.IX Subsection "What tex2lyx Can't Handle --- But it's \s-1OK\s0"
.IX Item "\(bu"
@ -791,7 +781,7 @@ by Ilya Zakharevich (ilya@math.ohio-state.edu), available on \s-1CPAN\s0.
.IX Item "\(bu"
.IX Subsection "What reLyX Handles Badly --- aka \s-1BUGS\s0"
.IX Subsection "What tex2lyx Handles Badly --- aka \s-1BUGS\s0"
.IX Item "\(bu"
@ -811,7 +801,7 @@ by Ilya Zakharevich (ilya@math.ohio-state.edu), available on \s-1CPAN\s0.
.IX Item "\(bu"
.IX Subsection "The Future of reLyX"
.IX Subsection "The Future of tex2lyx"
.IX Header "EXAMPLES"
@ -853,11 +843,11 @@ by Ilya Zakharevich (ilya@math.ohio-state.edu), available on \s-1CPAN\s0.
.IX Item "\fI\s-1MY_LYXDIR\s0\fR/layouts/*.layout"
.IX Item "\fI\s-1MY_LYXDIR\s0\fR/reLyX/syntax.default"
.IX Item "\fI\s-1MY_LYXDIR\s0\fR/syntax.default"
.IX Item "\fI\s-1LIBDIR\s0\fR/layouts/*.layout"
.IX Item "\fI\s-1LIBDIR\s0\fR/reLyX/syntax.default"
.IX Item "\fI\s-1LIBDIR\s0\fR/lib/syntax.default"
.IX Header "SEE ALSO"

View File

@ -843,6 +843,7 @@ pos_type LyXText::getColumnNearX(pit_type const pit,
tmpx += singleWidth(par, end - 1);
c = end - 1;
}
// Air gap above display inset:
if (row.pos() < end && c >= end && end < par.size()
&& par.isInset(end) && par.getInset(end)->display()) {