Richard Heck [Mon, 20 Jun 2016 15:06:31 +0000 (11:06 -0400)]
Add new module:
Provides two new styles:
1. An "In Premable" style that puts whatever is entered into it into the preamble.
This can be used, if one wishes, to include preamble code in the body of the
LyX document.
2. An "In Title" style that will put its contents into the body of the LaTeX
document, but before \maketitle is issued. This is useful for making branches
and notes in title-related material. (If you put these in a Standard layout,
this signals to LyX to output \maketitle, which may then come too early.)
Due to the ForceLocal machinery, no format change is needed.
Richard Heck [Mon, 20 Jun 2016 14:21:22 +0000 (10:21 -0400)]
Fix bug #10153: There's a mechanism in XHTML output that defers the
output of tags until we know they're needed. In the case of HTML
tables, empty cells should of course be output, so we need to force
the tags to be output.
Georg Baum [Sun, 19 Jun 2016 19:23:25 +0000 (21:23 +0200)]
Remove external date inset
The external date inset was implemented as a demonstrator for external insets
in general. It was never intended for production code. Now that we have several
external insets defined we do not need the demonstrator anymore. This fixes
bugs #4398 and #9948.
Georg Baum [Sun, 19 Jun 2016 14:28:02 +0000 (16:28 +0200)]
Ajust instructions to qt 5
Building with MSVC and qt4 is an esoteric special case nowadays. People who
are able to do this will also figure out how to call cmake. The standard case
is qt 5, and this was not yet documented.
Georg Baum [Sun, 19 Jun 2016 11:26:48 +0000 (13:26 +0200)]
Describe how to set env vars for the MSVC compiler
The old instructions did assume that the MSVC bin directory was in the PATH.
This is not recommended, since it gets in the way if you want to compile for
32 and 64 bit. Therefore it is now described how to configure without the
PATH dependency.
Georg Baum [Sun, 19 Jun 2016 10:55:00 +0000 (12:55 +0200)]
Update MSVC build instructions
We recommend MSVC 2015 now, because of better C++11 support and MSVC 2010 is
not available anymore. Also update several pathsdue tro changed dependency
packages.
Georg Baum [Thu, 16 Jun 2016 20:05:56 +0000 (22:05 +0200)]
Use unicode cmdline args consistently
Previously the commandline arguments were processed in an operating system
dependent encoding if running under python 2. Now they are converted to
unicode during the parsing, using the more modern argpase instead of optparse.
The individual conversion methods do no longer need to know anything about
commandline encoding. This fixes a bug similar to #10218 if running under
python 2 which I probably introduced during the python 3 conversion.
Georg Baum [Thu, 16 Jun 2016 18:39:32 +0000 (20:39 +0200)]
Remove InsetMathXYArrow
This was dead code that did never work, and most of it was boilerplate that
you can steel in 15 minutes from any existing math inset. Apart from that it
did contain a pointer to InsetXYMatrix which would create the same problems
we saw with the macros.
Georg Baum [Wed, 15 Jun 2016 20:21:21 +0000 (22:21 +0200)]
Fix boost packaging
icu.{hpp,cpp} is not needed and cannot be compiled since it depends on libicu.
The other two files are currently not used, but could be in principle, so I
added them to the build.
Detect clang version in autoconf (and use it a bit)
The version is read by checking the macros __clang_major__,
__clang_minor__ and __clang_patchlevel__. Hopefully they will have
coherent values everywhere.
For now, the version is used to set warnings a bit more reasonably for
older clang versions, which do not support -Wdeprecated-register and
some others that are used in pragmas in boost.
This removes many warnings when compiling with clang 3.3.
Guillaume Munch [Tue, 7 Jun 2016 21:58:55 +0000 (22:58 +0100)]
Remove a conversion to_utf8() inside FontSetChanger
This requires to change many docstrings into std::strings. The logic behind that
is that they represent a fixed set of math fonts, and therefore “string” means
here “poor man's enum” rather than text (this is consistent with MetricsBase).
Profiling of scrolling inside a document over macro-instensive areas:
Before the patch:
44,1% BufferView::updateMetrics()
-> 34,8% InsetMathHull::metrics()
-> 9,8% FontSetChanger::FontSetChanger()
28,4% BufferView::draw()
After the patch:
35,3% BufferView::updateMetrics()
-> 27,2% InsetMathHull::metrics
-> 0,4% FontSetChanger::FontSetChanger()
47,5% BufferView::draw()
FontSetChanger::FontSetChanger() is made 41x less expensive (with reference
BV::draw()) just by removing this conversion. The remaining 0,4% could be
squished by replacing the strings with a proper enum, but this is premature. Of
course, this only treats the symptoms: there is no good reason that this
function is called 45500 times over the time of 40 repaints.
Guillaume Munch [Sat, 4 Jun 2016 09:49:21 +0000 (10:49 +0100)]
Simplify the TexRow information for mathed output
Replace the manual manipulation of a stack of RowEntries with a Changer
function. When I introduced the stack of RowEntries, I did not know about the
Changer mechanism.
Guillaume Munch [Sun, 22 May 2016 21:48:28 +0000 (22:48 +0100)]
Change tracking cue: paint over labels in text and prepare for further work
* Inset::canTrackChange() had two meanings: can it deal with change tracking?
Will it paint its own CT status? The latter information is now given by
Inset::canPaintChange().
* Line thickness computation is moved from RowPainter to MetricsBase.
* Painting function for Changes moved to lyx::Change. (One new, that strikes
diagonally.)
Guillaume Munch [Mon, 23 May 2016 21:30:23 +0000 (22:30 +0100)]
RefChanger
RefChanger temporarily assigns a value to a non-const reference of any
kind. RefChanger provides a flexible and uniform generalisation of the various
scope guards previously derived from the old Changer class in MetricsInfo.h.
As before, a temporary assignment lasts as long as the Changer object lives. But
the new Changer is movable. In particular, contorsions are no longer needed to
change a private field. Special code can be moved into the appropriate classes,
and it is no longer necessary to create a new class for each specific use.
Georg Baum [Sun, 12 Jun 2016 19:21:15 +0000 (21:21 +0200)]
Make lyx2lyx infrastructure python3 ready
The LyX class works now with python 3. Certain file format conversions may
still fail (convert_multiencoding() is a hot candidate), but this will need
to be fixed in the individual modules.
Scott Kostyshak [Sat, 11 Jun 2016 21:05:28 +0000 (17:05 -0400)]
Add a comment and FIXME that lualatex can make DVI
The command 'lualatex' can produce a DVI with the option
--output-format=dvi
It is best to keep things as is because it is better to guess a PDF
than to guess a DVI (we do not use that feature of the 'lualatex'
command internally; we use 'dvilualatex' instead). However, we
should ideally get this information in a more robust way.
Günter Milde [Sat, 11 Jun 2016 11:54:33 +0000 (13:54 +0200)]
fix #10199 Non-encodable characters with XeTeX and utf8-plain
XeTeX with TeX fonts is only safe with ASCII input encoding (see #9740)
and we therefore force "ascii" when exporting with XeTeX and 8-bit TeX-fonts.
However, "utf8-plain" is a "power-user" option, which allows to switch off LyX's
encoding of the LaTeX file:
keep this also for "XeTeX with TeX fonts".
The user is responsible to ensure all characters can be processed and are
correctly shown in the output. The provided test sample shows the problems
with this encoding without special measures (like loading fontspec in the
user-preamble or a document class).