When we export the file to latex, we use the redefinition_ variable to check whether we should output newcommand or renewcommand. This variable was set by the MathMacroTemplate::metrics() function, and this caused problem when the export is running in a different thread as the GUI.
In general, the metrics() functions should not change the Buffer; we have updateBuffer/updateMacros for that purpose.
Not all accessors did update the data previously. Therefore it could happen
that document export from the command line would output \newcommand, and from
GUI it would output \renewcommand for the same macro, simply because in the
GUI case the data was updated as a side effect of the GUI thread reading some
other member.
I also removed the mutable flag for requires_, since this member is always
set on construction and does not need any lazy update.
The bug was introduced with commit [47f7d447/lyxgit], where the unnecessary trailing bracket in CJK environments was suppresed, but not the preceding bracket (which is only output if CJK is a secondary language).
This is the result of the discussion on the list "2.1.0 Blocker". Thanks to
all contributors!
The main idea is to use thread-local storage for all static variables.
This solution does not need any mutex. For more details, see the comment in
unicode.h.
It is no longer needed, and it had a comment that it needed review...
Now anybody who tries to make a copy again is forced to think about it,
instead of trying and using possibly wrong semantics by accident.
dvipdfmx emits a lot of warnings and Koji suggests ps2pdf.
Thanks to Koji for the advice.
Note that on Debian, I installed the following packages
to be able to compile with ps2pdf:
fonts-takao-mincho
fonts-ipafont-nonfree-jisx0208
fonts-ipaexfont-mincho
These workarounds are no longer necessary because of unicodesymbols
and further they break compilation with XeTeX as well as pdfTeX
with TeX input encoding set to ascii or utf8.
Thanks to Günter Milde for the fix.
The reason for adding this option is to kill a warning with automake 1.14. However, the "make distclean" target does not work with the subdir-objects options for older versions of automake. To still allow older versions of automake, we remove this option and live with the warning when using automake 1.14.
This reverts commit 03343bd4e6.
The autogenerated icons are in most cases ugly, do not conform to the
style of the other icons, and do not respect relative dimensions and
positions. The math icons have a vertical dimension of 19 pixel, defining
a grid that has to be respected for obtaining correct alignment.
The only autogenerated icons that remain are those of the Misc (extra)
toolbar. I plan to also replace them in the near future.
Automake version 1.14 warns that subdir-objects needs to be
enabled to avoid future incompatibilities. However, this causes problems
for objects that are compiled twice (for LyX and tex2lyx) with different
defines (e.g., TEX2LYX and NO_LAYOUT_CSS). Therefore, we need to properly
fix the code without using these defines.
See also:
- commit 16cdf70d (Jul 26, 2013),
- commit 3698fde0 (Aug 19, 2013), and
- http://marc.info/?l=lyx-devel&m=137673178123427&w=2.