Commit Graph

304 Commits

Author SHA1 Message Date
Uwe Stöhr
7b20cc5258 tex2lyx: backport new features from master
- support for bibtopic, \nameref and 2 math fonts
2014-11-10 02:23:05 +01:00
Jean-Marc Lasgouttes
a2546357eb Update chunk handling to use new inset
At the same time, rename parse_noweb to parse_chunk.
2013-06-03 12:36:35 +02:00
Georg Baum
3ebf1c9bac Fix tex2lyx include output for roundtrip
In roundtrip mode, tex2lyx produces documents with extension lyx.lyx, so that
the original files are not overwritten on re-export. This was not done for
included documents which were converted, and this broke 'make dist'.
2013-05-26 16:07:56 +02:00
Jean-Marc Lasgouttes
f04c7711b0 Fix empty width support for Box inset
* InsetBox and GuiBox: Use proper empty length instead of the broken -9.99col% trick
* some slight changes to the logic of GuiBox to make sure that values are set as needed.
* lengthToWidget(): handle properly the empty length case. All the other related Qt helpers did it already, it was probably an oversight. Also set the default_unit parameter as optional (not needed in this patch actually, but I got carried away :)
* allow generating LaTeX code for an empty length, since some broken code does that.
2013-05-24 15:44:59 +02:00
Uwe Stöhr
1b32a0502e Revert "tex2lyx/text.cpp: fix a typo spotted by clang"
This reverts commit 055b425b64.

This requires much more work and i don't have time to do this now
2013-05-06 01:54:17 +02:00
Uwe Stöhr
055b425b64 tex2lyx/text.cpp: fix a typo spotted by clang 2013-05-06 01:35:38 +02:00
Georg Baum
c61ef8b205 Support \caption* (bug #3209)
This was a low hanging fruit which would have to wait for a long time because
of a file format change if it was not implemented before 2.1.
2013-03-22 22:23:38 +01:00
Uwe Stöhr
9aeb084a22 tex2lyx: we support now \framebox without options
-> this is \fbox

- also update the tex2lyx example file result
2013-03-22 02:00:25 +01:00
Uwe Stöhr
22ad7e4369 support for \mbox and \fbox
- fileformat change
- it was a pity that LyX did not yet support a simple rectangular frame without a defined width but LyX did this for e.g. oval frames
- \fbox and \mbox often occur in TeX files and can now be imported
2013-03-22 01:33:58 +01:00
Georg Baum
284f991519 Forgot this in f2d2b7cc7d 2013-02-24 19:43:13 +01:00
Georg Baum
f650c242d0 Found one more nested if to remove 2013-02-24 19:12:56 +01:00
Georg Baum
4ad910c3a6 Try to fix MSVC compile error
We did hit again the MSVC limit of 128 nested if clauses. This change reduces
the number of nested if clauses by 6 which is hopefully enough.
2013-02-24 19:00:17 +01:00
Georg Baum
f2d2b7cc7d Fix some texl2yx accent bugs
This fixes bug #8554 and some recently introduced busg:
- Encodings::fromLaTeXCommand() can now handle all combining characters,
  not only the one letter ones
- The remainder returned from Encodings::fromLaTeXCommand() must never be
  thrown away in tex2lyx, but output as ERT
- No special case for combining diacritical marks needed anymore in parse_text()
- No special cases for accents and IPA combining diacritical marks needed
  anymore in parse_text()
- special tipa short cuts may only be recognized if the tipa package is loaded
- Use requirements returned by Encodings::fromLaTeXCommand() instead of
  hardcoded registering of tipa and tipax
- Get rid of the name2 variable in parse_text(): We must use name, otherwise
  the extra stuff that might have been put into name vanishes
2013-02-24 15:44:16 +01:00
Georg Baum
b59547ebd5 Improve texl2yx refstyle support
- Convert prettyref to the autopackage mechanism
- Do not load refstyle automatically if some refstyle preamble code of LyX
  is found, since LyX will only load the package if an actual reference
  command is used. This is needed for mixed refstyle/prettyref documents.
- Only recognize refstyle commands if refstyle was detected in the preamble
- Only recognize prettyref commands if prettyref was detected in the preamble
- Add a mixed refstyle/prettyref test case
2013-02-22 21:59:23 +01:00
Jean-Marc Lasgouttes
aa3bbfc984 Fix parsing of literate chunks (bug 7838)
* use verbatimStuff for parsing chunks and make try to follow closely the sweave sytax constraints.
 * merge the two cases for parsing << (noweb or quote)
 * \verb|ff| requires that its parameter is on a single line.
2013-02-22 15:53:40 +01:00
Jean-Marc Lasgouttes
e5a9199927 Improvements to Parser::verbatimStuff
* return a Parser:Arg pair to indicate whether parsing was successful
 * add new parameter to restrict parsing to the current line
2013-02-22 15:53:40 +01:00
Uwe Stöhr
22101c1044 tex2lyx/text.cpp: whitespace only 2013-02-22 01:21:17 +01:00
Uwe Stöhr
2ba1360509 tex2lyx/text.cpp: logic fix for previous commit
- continue; is here not necessary
2013-02-22 01:18:45 +01:00
Uwe Stöhr
a47e61e666 tex2lyx: support further characters
- support for Cyrillic characters
- support for \textifsymbol and \ascii (fixes bug #8556)
- support for \ding
- tex2lyx/text.cpp: correct an indentation and use "name2" because "name" is already defined in this clause
2013-02-22 01:11:30 +01:00
Uwe Stöhr
8254e84f8f Merge branch 'master' of git.lyx.org:lyx 2013-02-21 23:13:57 +01:00
Uwe Stöhr
e7c75296d6 tex2lyx/text.cpp: correction for TIPA character support
- for all TIPA characters the tipa and tipx package must always be registered because these characters are also allowed outside a TIPA inset
- include \textvertline because we again reached the maximum number of if statements allowed by MSCV (so safe at least one for now)
2013-02-21 23:13:05 +01:00
Georg Baum
84e176851d Add a note about ERT environment
The LyX file format only supports one CJK font mapping per document.
Therefore all CJK environments which use a different mapping than the main
one are output in ERT. THis is now explained in the test case, and also the
converion to ERT is improved (although it is still wrong e.g. for paragraphs).
2013-02-21 22:31:22 +01:00
Jean-Marc Lasgouttes
3d2dcab03f Handle properly insets which have the PassThru property
This fixes in particular bug 5312:
  % escape in \url{} treated as TeX comment start by importer
2013-02-19 12:04:41 +01:00
Uwe Stöhr
6deb2b7680 tex2lyx: support further TIPA characters
- support for \textdoublevertline, \textvertline, \textglobfall
- support \!o and \!b and \!d and \!g and \!G and \!j
- support  and \*k and \*r and \*t and \*w
- register the package "tipa" if \textipa is detected in an equation
- add a \textipa equation to the testfile

(I failed to implement support for the TIPA character "\t*{ }" and the command "\=*".)
2013-02-19 00:07:24 +01:00
Uwe Stöhr
9027802114 tex2lyx: a fix for the \tone support
- the package tone must explicitly be registered because there can be a single tone that is not found via unicodesymbols
2013-02-18 14:07:13 +01:00
Uwe Stöhr
112abd1978 tex2lyx: add a missing TIPA mark 2013-02-18 05:03:18 +01:00
Uwe Stöhr
2e5ba6f3f2 tex2lyx: support for TIPA \tone
- also simplify the code a bit
- test-insets.tex: add missing preamble code
2013-02-18 04:50:18 +01:00
Uwe Stöhr
b25016b613 tex2lyx: more support for TIPA
- support for the combining diacritical marks
- support for \texttoptiebar and \textbottomtiebar
- test-insets.lyx: add complete testcase
- TODO.txt: update what still needs to be done
2013-02-18 03:23:34 +01:00
Uwe Stöhr
c27976d372 tex2lyx: support for IPA environment 2013-02-17 22:39:56 +01:00
Uwe Stöhr
1d6573a330 tex2lyx: support for multiple indices and subindices 2013-02-17 06:18:42 +01:00
Uwe Stöhr
a2022d457b tex2lyx: support bibtex inset with \phantomsection
This is an addendum to [72a44b3c/lyxgit] because depending on the environment, LyX adds a \phantomsection before \addcontentsline.

- also update the test file
2013-02-17 04:17:02 +01:00
Uwe Stöhr
ec09560cb8 tex2lyx: support for the \textipa inset 2013-02-17 02:11:54 +01:00
Georg Baum
5f3cd55f1d Fix dangerous parser use
Jean-Marc discovered a possible data loss caused by Parser::getChar().
This is now fixed, and Parser::getChar() is removed, since it is no longer
needed and easy to use it in the wrong way.
2013-02-16 17:48:42 +01:00
Uwe Stöhr
72a44b3c75 tex2lyx: support for \addcontentsline in BibTeX inset 2013-02-16 05:51:23 +01:00
Uwe Stöhr
f2eb5004de tex2lyx: adapt refstyle support aft the fix for bug #8536 2013-02-04 21:37:14 +01:00
Jean-Marc Lasgouttes
bac4fe7843 Continue support for verbatim
This is a refactoring commit, which may introduce minor regressions, but should go in the right direction.

 * introduce Parser::verbatimEnvironment, which is a wrapper around verbatimStuff
 * introduce output_ert, which inserts a string as ERT; this allows to factor out several code instances.
 * rename handle_ert to output_ert_inset: this creates an inset and then calls output_ert
 * remove handle_comment (use handle_ert instead)
 * remove handle_backaspace (unused now)
 * use the new methods in handle_listing

TODO:
 * use for other verbatim-like cases (Sweave chunk, url...)
 * maybe implement Parser::unparse to reparse tokens already parsed with the wrong catcodes (if needed)
2013-02-04 15:14:30 +01:00
Jean-Marc Lasgouttes
be42f1398d Fix bug #5408: tex2lyx cannot handle verbatim code
- Implement catcode setting in Parser
- add a new Parser::verbatimStuff method that reads verbatim contents
- use this method to parse "verbatim" environment.
- use it to parse \verb too.
- rename Parser::verbatimEnvironment to ertEnvironment.

TODO:
- use for other verbatim-like cases (Sweave chunk, lstlisting...)
- factor out the function that outputs ERT (including line breaks)
- maybe implement Parser::unparse (if needed)
2013-02-04 10:25:58 +01:00
Uwe Stöhr
49c887761a tex2lyx: support refstyle and its commands
fixes #4288
2013-02-04 01:41:56 +01:00
Julien Rioux
0601336c24 Respect the encoding passed to tex2lyx on the command line.
Fixup for #8218, fixes #8518.
2013-01-23 00:25:00 +01:00
Julien Rioux
2eea1590b1 Separation of the various names for encodings.
Provide functions for translating to the LyX name
of an encoding from either a LaTeX name or an Iconv
name, with the possibility to specify the package.
This is in anticipation of changing to use the LyX
name of the encoding in the .lyx file format and
allowing multiple lib/encodings entries to have
the same LaTeX name (but different packages!).

The tex2lyx parser needs to worry about the iconv
name of the input encoding, so store that instead
of the latex name.
2013-01-22 23:43:18 +01:00
Kornel Benko
75483b612c Rename misleading function name from_gmtime() to form_asctime_utc() 2013-01-09 13:45:58 +01:00
Kornel Benko
e04523f77b Make change tracking in export to latex be independent of timezone 2013-01-07 15:46:47 +01:00
Georg Baum
9c33bddffa Let tex2lyx really produce format 458. 2012-12-31 18:22:05 +01:00
Georg Baum
ee3ce572a0 Fix import of shift-jis and big5 CJK texts.
These encodings were not defined, since they must not be used as document
encodings (the characters {, } and \ may appear in high bytes, and latex
would be confused). However, they are supported by CJK.sty (which uses a
preprocessor to circumvent the limitations of the latex executable). These
encodings are now defined, but used for import in tex2lyx only.
The test case CJK.tex contained fake tests for shift-jis and big5 (the
japanese and chinese characters were entered using the utf8 encoding), and
therefore the wrong interpretation of these encoding looked as if it worked.
The comments about missing iconv support of shift-jis and big5 were wrong as
well (otherwise shift-jis-plain would not work either).
2012-12-30 20:52:50 +01:00
Georg Baum
de5e348727 Fix bug #8468: Wrong import of UTF8 CJK.
Actually, the test case showed several problems:
- ERT insets did use layout "Standard", not "Plain Layout"
- The font scale was read correctly, but tex2lyx claimed that it did ignore
  the option "scaled=0.95"
- If a third argument of the CJK environment was given, it caused the whole
  environment to be put in ERT with a broken encoding. This is now fixed for
  the bug test case by using the \font_cjk header variable, but the encoding
  problem still exists for unsupported encodings. I'll file a separate bug
  for that.
- The CJKutf8 package was not handled in the preamble parsing. Therefore the
  chinese comment in the preamble was read with a wrong encoding, and guessing
  the document language did not work.
The new file CJKutf8.tex was created by copying and modifying CJK.tex, but
unfortunately it is impossible to tell git to inherit the history of CJK.tex
for the new file (search the web for git svn copy if you want to know details).
2012-12-30 20:52:49 +01:00
Georg Baum
c51449cac6 Fix tex2lyx bug #8466: special file names.
Special characters as created by latex_path() where not converted corectly
from LaTeX macros by tex2lyx. Now this is done, even for file names containing
double quotes which are not used for quoting spaces. These file names are not
legal on windows, and will causes probelms in DVI files, but if they occur
tex2lyx does not produce invalid .lyx files.
2012-12-30 20:52:49 +01:00
Georg Baum
8693f5a91e Fix bug #8422.
Both problems where caused by the fact that tex2lyx did not handle
natbib/jurabib citations correctly if natbib/jurabib was loaded by the
document class. Therefore it tried to parse the standard \cite syntax, and
did not recognize \citet and \citep.
2012-12-28 20:08:42 +01:00
Jean-Marc Lasgouttes
f775add258 Whitespace only 2012-12-14 12:33:39 +01:00
Jean-Marc Lasgouttes
4f6c0b5202 Fix # 8414: Use the noweb module instead of literate-* article layouts
Now that we have module support for literate programming, it is possible to do a noweb cleanup. This is basically a patch from Kayvan Sylvan:

- get rid of literate-xxx classes
- rename Scrap to Chunk, since this is the name noweb doc uses (Scrap is from nuweb)
- update lyx file format and add lyx2lyx support for gettting rid of literate-xxx classes
- update documentation

On the top of it, update tex2lyx to
- avoid creating files with literate-xxx class
- fix conflict between parsing << as a quote and parsing it as a Chunk
- create Chunk layouts instead of Scrap ones.
2012-11-28 14:11:47 +01:00
Juergen Spitzmueller
973481a4ff typos 2012-11-20 13:30:52 +01:00