This is an addendum to [72a44b3c/lyxgit] because depending on the environment, LyX adds a \phantomsection before \addcontentsline.
- also update the test file
This is an important part of the tests. If updating the test cases is really a
problem there are two better solutions than not testing the format: Convert
the references with lyx2lyx on the fly, or remove the hard coupling of tex2lyx
and LyX versions again. Both increase additional possible error sources, but
these errors could at least be detected. If the test machinery is made blind
for versions, file format errors are impossible to detect.
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).
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).
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.
The fix is basically mechanical, the additional code for fraction like insets
with three arguments was stolen from \unitfrac. As any math package,
stackrel.sty needs a buffer parameter to switch it off.
I also added the two stackrel flavours to the toolbar.
The stmaryrd package adds support for lots of math symbols, using a font
designed to accompany the computer modern fonts. The changes in detail:
- Fix generate_symbols_list.py to work with stmaryrd.sty. It loooks like it
was automatically translated from a perl version and never used.
- Generate the new symbols in lib/symbols using generate_symbols_list.py and
add some manual adjustments
- Generate stmary10.ttf by a simple ttf export from stmary10.sfd with fontforge
- Add license info for stmary10.ttf
- Create a test file with all symbols from stmaryrd.sty. Actually it would be
nice to have this for the other fonts as well.
- The mechanics: lyx2lyx, tex2lyx, font machinery etc.
Actually tex2lyx can handle modules since some time (#5702), but not
theorems (#5776). Now the following issues are fixed:
- Modules that depend on other modules can be loaded, since the dependencies
are loaded first
- Default moduls of the text class are loaded correctly
- \newtheorem is recognized as a command that defines new environments and
treated similar to \newenvironment
The listings inset does automatically load the color package if any parameter
contains \color. As mentioned in bug #8066 tex2lyx needs to be aware of this,
so the \usepckage{color} is automatically skipped in these cases.
s is a valid horizontal position for framebox (as well as for makebox, which
was already parsed correctly). There was even a test case, but with a wrong
reference.
The previous output was read correctly by LyX as well, but the new version is
more similar to the files written by LyX. Also update TODO with recent file
format changes.
The old fix was incomplete (\verb~\~ was translated to \verb~~ in roundtrip).
The real cause for this bug (and also the mistranslation of \href{...}{\}})
was the misbehaviour of Token::character() (see comment in Parser.h): This
method even returns a character if the category is catEscape, and this is not
wanted in most (all?) cases.
It is invoked by 'make check' (automake only, it would be nice if someone
could add it to cmake as well), or by calling
python src/tex2lyx/test/runtests.py <path to tex2lyx binary>
by hand. Currently, it does not compare the output (this comes later).
The added .lyx files are from tex2lyx around mid of april, so that you
can see the regressions of the current version if you run the test
yourself (simply run git diff afterwards).
The home made test runner is quite stupid, but better than nothing.
Feel free to improve it or replace it with something better, as long
as running it stays as simple as now.
- tex2lyx/text.cpp:
- fix bug that swallowed valid braces
- the encoding is "Bg5" not "BIG5"
- add and update comments
- CJK.tex: add an example for the Bg5 encoding
Preamble.cpp:
- support the font scaling
- improve coding style
text.cpp: - improve logic/coding style
XeTeX-polyglossia.tex:
- add scaling
- change document so that it is compilable using the Libertine font
- bugfix for the parsing of polyglossia's paragraph environments
- new support for polyglossia's language change commands \textxxx
- XeTeX-polyglossia.tex: add more testcases and add a missing \end
This is a part of bug #8081: Translate cells in
\begin{sideways}...\end{sideways} to native syntax. The turn environment
comes in a later commit, since this one os suitable for backporting.
This is not needed, since LyX supports comments in math. Data loss with math
comments containing a backslash in LyX has been fixed as well.
The test case was found in bug #8104.
I introduced this bug in r40091 where support for empty dates was added.
I also noticed that the title_layout_found flag was not properly passed down
to all variants of parse_text*. Since this is rather a global variable I
placed it into the preamble class.
The test case of bug #8104 shows other problems as well, but those are no
regressions and will be fixed separately.
OK for branch?
- Parser.cpp: - new function to parse verbatim environments
- test/test-structure.tex: updated example
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40850 a592a061-630c-0410-9148-cb99ea01b6c8
A complete fix is currently impossible because LyX assumes that all longtable
captions are in the first head.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40361 a592a061-630c-0410-9148-cb99ea01b6c8
Of course this will only work if output_changes was true when creating the
.tex file.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40139 a592a061-630c-0410-9148-cb99ea01b6c8
- update preamble to the features used in the file
- add some floats
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40024 a592a061-630c-0410-9148-cb99ea01b6c8
(the tex2lyx support in branch for \printnomenclature is currently broken so this must be backported to branch for 2.0.2, OK Richard?)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39960 a592a061-630c-0410-9148-cb99ea01b6c8
- support for box background color, document fontcolor and background color (note_fontcolor was already supported)
- add colors and a nested box to the testfile
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39949 a592a061-630c-0410-9148-cb99ea01b6c8
406: Convert noweb layouts to new syntax (untested, see bug #7838)
407: Nothing to do (empty lyx2lyx conversion)
408: Activated the already existing script inset code
409: Nothing to do (tex2lyx does not support XeTeX)
410: Nothing to do (the old code already used the new layouts)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39923 a592a061-630c-0410-9148-cb99ea01b6c8
parser discards all needed packages like calc.sty or framed.sty, so the
resulting document would be uncompilable with those boxes as ERT.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37287 a592a061-630c-0410-9148-cb99ea01b6c8
- Add missing babel synonyms (taken from a standard TeXLive 2010 install).
Some synonyms might still be missing (if they are defined not by babel
itself, but additional packages). Adding these is now simple: Only
known_languages and known_coded_languages need to be touched.
- Translate babel language name arguments of \foreignlanguage and
\selectlanguage to LyX names.
- Translate second argument of \foreignlanguage to LyX.
- Cleanup mixed language names in the preamble parser: Now all checks are
done with LyX names, not a mix of babel and LyX names. This sets correct
quotes even if the language as given as an alias.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37188 a592a061-630c-0410-9148-cb99ea01b6c8
misinterpreting "\}" as "}" when it occured inside a pair of unescaped
braces, like in "\code{@\{*\}r||p\{1in\}@\{*\}}".
The reason for this bug is that Token::character() behaves differently in
tex2lyx than in mathed. See the comment in Parser.h for a more general fix.
For now I played on the safe side and only changed those places where I
definitely know that the old code was wrong.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37117 a592a061-630c-0410-9148-cb99ea01b6c8
- Replace special verbatim commands by standard LaTeX, since it would be
extremely difficult to make tex2lyx understand them)
- Comment duplicated \bibliography{xampl}, since LaTeX cannot handle two
\bibliography calls
- Fix a regression with spaces after commands, introduced in r36943
- Parse \multicolumn with space/comments between two arguments correctly
- Parse optional arguments correctly if there are space or comments between
the command and the argument
- Remove duplicate "LyX" phrase handling (I overlooked that in r37052)
- Add new commands created with \let to the list of known commands. This is
needed to parse the arguments correctly
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37064 a592a061-630c-0410-9148-cb99ea01b6c8
The automatic replacement in LyX is pretty broken (see bug 4752).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37055 a592a061-630c-0410-9148-cb99ea01b6c8
331: Set the caption flag for longtable caption rows
332: Nothing to do (empty lyx2lyx conversion)
333: Nothing to do (tex2lyx did already use the new style names because it
uses the current layout files)
334: Nothing to do (tex2lyx did already produce the new format, since it
used the LaTeX paper names also in the output and did not suffer from
bug 4868)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37012 a592a061-630c-0410-9148-cb99ea01b6c8
- support for \nocite (since format 309)
- add \nocite{*} option to testfile
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36960 a592a061-630c-0410-9148-cb99ea01b6c8
320: Support protected hfill
Detect other horizontal spaces that are already part of format 319
Add forgotton use_parbox tag to boxes (confuses lyx2lyx, but no lyx)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36949 a592a061-630c-0410-9148-cb99ea01b6c8
311: Nothing to do (tex2lyx produced already the new format, because it
uses the current layout files. This is also a reason why it should
not lag behind too much with the format.)
312: Nothing to do (empty lyx2lyx conversion)
313: Nothing to do (tex2lyx does not know about modules)
314-315: Nothing to do (empty lyx2lyx conversion)
316: Nothing to do (tex2lyx does not know subfigures)
317-318: Nothing to do (empty lyx2lyx conversion)
319: Convert horizontal spaces to new format (and convert some newly
supported spaces)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36948 a592a061-630c-0410-9148-cb99ea01b6c8
299-302: Nothing to do (empty lyx2lyx conversion)
303: Nothing to do (tex2lyx did not use the serbocroation language)
304: Convert framed and greyed out notes to box insets
305-310: Nothing to do (empty lyx2lyx conversion)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36947 a592a061-630c-0410-9148-cb99ea01b6c8
298: All math macros are exported with \\global to LaTeX now, so a \\global
in front of a math macro has to be recognized. Since the math macros do
no longer use the same syntax in .lyx and .tex (which is a mistake IMHO)
an exact match is no longer possible except for \global\long\def.
Bugfix this time: \\providecommand was errornously recognized as math macro
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36946 a592a061-630c-0410-9148-cb99ea01b6c8
- Make test-insets.tex and test-structure.tex compilable
- Avoid duplicate definition of \lyxarrow in test-insets.lyx
- Prevent subscript package from being ignored in test-insets.lyx
- Prevent commands listed with optional arg in syntax.default from being
concatenated with the next word if no optional arg is given
- Handle spaces and comments inbetween a command an "{}" consistently
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36943 a592a061-630c-0410-9148-cb99ea01b6c8
278: Nothing to do, tex2lyx writes already an \end_deeper for each \begin_deeper
279-280: Nothing to do, tex2lyx does not produce character styles yet
281-282: Nothing to do (empty lyx2lyx conversion)
283: Nothing to do, tex2lyx does not produce character styles yet
284-286: Nothing to do (empty lyx2lyx conversion)
287: Nothing to do, tex2lyx does not produce wrapped figures yet
288: Use new syntax for command inset
This time, the (not format related) bug fix is to parse the starred jurabib
and natbib citation commands correctly.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36927 a592a061-630c-0410-9148-cb99ea01b6c8
since they are usually invalid in text mode (partial fix of bug 6797).
Also, prepare proper translation of \\slash{} and \nobreakdash.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36840 a592a061-630c-0410-9148-cb99ea01b6c8
Since separators are not allowed by the current .lyx version written by
tex2lyx, an empty note is used instead.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36838 a592a061-630c-0410-9148-cb99ea01b6c8
This is overridden by any subsequent inputenc command.
The current encoding is also passed down to \input or \included files.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28295 a592a061-630c-0410-9148-cb99ea01b6c8
as accents. Time will tell how robust this is.
All support for InsetLatexAccent has been removed.
I did not do the support for \inputencoding yet, because it is more difficult
to get right...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27596 a592a061-630c-0410-9148-cb99ea01b6c8