This reverts commit cde8707 and changes "AGUTeX" back to "agutex".
The maintainer has changed "AGUTeX.cls" back to "agutex.cls" and has
confirmed (through private email) that he plans to keep the filename
all lowercase now that he is aware of case-sensitive file systems.
This branch implements string-wise metrics computation. The goal is to
have both good metrics computation (and font with proper kerning and
ligatures) and better performance than what we have with
force_paint_single_char. Moreover there has been some code
factorization in TextMetrics, where the same row-breaking algorithm
was basically implemented 3 times.
Globally, the new code is a bit shorter than the existing one, and it
is much cleaner. There is still a lot of potential for code removal,
especially in the RowPainter, which should be rewritten to use the new
Row information.
The bugs fixed and caused by this branch are tracked at ticket #9003:
http://www.lyx.org/trac/ticket/9003
What is done:
* Make TextMetrics methods operate on Row objects: breakRow and
setRowHeight instead of rowBreakPoint and rowHeight.
* Change breakRow operation to operate at strings level to compute
metrics The list of elements is stored in the row object in visual
ordering, not logical. This will eventually allow to get rid of the
Bidi class.
* rename getColumnNearX to getPosNearX (and change code accordingly).
It does not make sense to return a position relative to the start of
row, since nobody needs this.
* Re-implement cursorX and getPosNearX using row elements.
* Get rid of lyxrc.force_paint_single_char. This was a workaround that
is not necessary anymore.
* Implement proper string metrics computation (with cache). Remove
useless workarounds which disable kerning and ligatures.
* Draw also RtL text string-wise. This speeds-up drawing.
* Do not cut strings at selection boundary in RowPainter. This avoids
ligature/kerning breaking in latin text, and bad rendering problems
in Arabic.
* Remove homebrew Arabic and Hebrew support from Encoding.cpp. We now
rely on Qt to do handle complex scripts.
* Get rid of LyXRC::rtl_support, which does not have a real use case.
* Fix display of [] and {} delimiters in Arabic scripts.
For Windows: AcroRd32 and gsview (both 32 and 64 bit versions).
For Unix: qpdfview.
Qpdfview is a nice alternative to Okular for KDE users and a superior
alternative to Evince for Gnome users, due to its complete synctex
support. It only depends on Qt libraries for the graphical interface.
This variable was introduced to guard against any bad consequence of the then-new right-to-left
languages support. Let's be bold and get rid of it altogether!
Now right to left support is always enabled.
The lyx2lyx conversion for format 352 was incomplete: It should have been
added the \use_indices setting, but it relied on the fact that the default in
LyX for missing \use_indices is the same as the old format without that
setting used. However, the default might change in the future, and later
lyx2lyx conversions rely on that setting as well.
Thanks to maciejr we know now what the remaining problem was with bug 7954:
My unicode symbol fallback works fine, the problem was that a font named
"Symbol" is available on OS X, but it does not use the font-specific encoding
we expect: Almost all glyphs are at their unicode code point.
Therefore the bug is fixed by re-enabling the unicode workaround and blocking
the Symbol font on OS X.
This is needed so that the new format number is actually used. Since the
conversion is a noop I did not update the layout files (more updates will
come).
trim_eol() assumes that a line always ends either with \n, \r, or \r\n.
This assumption is always valid except for the last line of a document, since it
may miss the trailing newline. LyX does not create such documents, bu they may
result from automatic creation tools, and LyX can read them, so lyx2lyx should
be able to read them as well.
This is mainly needed to reduce the amount of ERT if you convert AMS example
documents with tex2lyx. No GUI support is needed, since \notag is equivalent
to \nonumber.
This is a follow-up of bug #8967. The implementation is self-explaining, the
only part which needs a comment is lyx2lyx: Since a 100% correct solution is
not possible, it has been decided not to switch amsmath off in the forward
conversion if no other ams command than \smash[t] and \smash[b] is used, but
to consider it a bug that older versions do not load amsmath automatically for
these commands. In the backward direction it is easy to keep the document
compilable, so just do that.
It currently does not make a difference that it is before
Adobe Reader in configure.py because as Enrico points out
on Windows the default viewer configured in the OS is used.
Beamer documents do not have a "--Separator--" layout but a
"Separator" one. Also fix a thinko causing the deletion of
"\end_layout" tags in some cases.
The algorithm used for breaking a paragraph in LaTeX export is changed
for avoiding spurious blank lines causing too much vertical space.
This change is tied to the introduction of a new inset (with two
different specializations) helping in either outputing LaTeX paragraph
breaks or separating environments in LyX. Both of the above goals were
previously achieved by the ---Separator--- layout and can now be
accomplished by the new inset in a more natural way. As an example,
after leaving an environment by hitting the Return key for two times,
a third return automatically inserts a parbreak inset, which is
equivalent to the old separator layout, i.e., it also introduces a
blank line in the output. If this blank line is not wanted, the
parbreak separator can be changed to a plain separator by a right
click of the mouse. Of course, an environment can still be separated
by the following one by using the Alt+P+Return shortcut (or the
corresponding menu key), but now the plain separator inset is used
instead of the old separator layout, such that no blank line occurs in
the LaTeX output.
Old documents are converted such that the LaTeX output remains unchanged.
As a result of this conversion, the old separator layout is replaced by
the new parbreak inset, which may also appear in places where the old
algorithm was introducing blank lines while the new one is not.
Note that not all blank lines were actually affecting the LaTeX output,
because a blank line is simply ignored by the TeX engine when it occurs
in the so called "vertical mode" (e.g., after an alignment environment).
The old ---Separator--- layout is now gone and old layout files using it
are also automatically converted.
Round trip conversions between old and new format should leave a document
unchanged. This means that the new behavior about paragraph breaking is
not "carried back" to the old format. Indeed, this would need introducing
special LaTeX commands in ERT that would accumulate in roundtrip
conversions, horribly cluttering the document. So, when converting a
modified document to old formats, the LaTeX output may slightly differ in
vertical spacing if the document is processed by an old version of LyX.
In other words, forward compatibility is guaranteed, but not backwards.
lyx2lyx sets all new math packages to off when converting from old formats.
This is correct if any command which would cause an automatic package loading
exists in the document. However, it is wrong if no command exists: This leads
to problems if later a command is added (bug #9069), which is especially
annoying for templates.
The fix consists of two parts:
1) convert_use_package() considers now the used commands like
revert_use_package(), and uses them to decide whether to set the package to
auto or off.
2) convert_undertilde() and revert_undertilde() use a slightly adjusted copy of
convert_use_package() and revert_use_package(), so that the bug is also
fixed for undertilde. We cannot use the latter functions directly, because
of "\usepackage undertilde" vs. "\use_undertilde".
When doing the lyx2lyx round trip of the 2.0.8 user guide from format
413 -> 474 -> 413 you get an invalid document, because the math packages
mhchem and undertilde are incorrectly converted.
It turned out that the old reversion code did only work for particular
package oderings. The new one works for abitrary sorted packages.
When doing the lyx2lyx round trip of the 2.0.8 user guide from format
413 -> 474 -> 413 you do not get a zero diff. The most important problem is
caused by the conversion of the argument insets to the old syntax: This
conversion adds an additional empty line (harmless), and it destroys the
document structure if the first inset in e.g. a subsection is not an argument
inset, but e.g. an index or label inset.
The fix is quite easy: Ensure that the paragraph begin is set to the first
argument inset.
revert_justification() issues a warning if the \justification parameter does
not exist, and LyX itself always writes it unconditionally as well, so add it
also in lyx2lyx when converting old documents.
Currently this does not have any user visible effect, but it decouples the
default value of BufferParams::justification from the conversion of old
documents: Now it is possible to set the default to false in LyX, and old
documents will still be converted correctly.
Compilation was failing with TeX Live 2013 because of
the format of one of the references. This commit just
changes one of the references to a different one.
As discussed. achemso.layout contains both "Chart" and "Graph", therefore it
does not make sense to use "Graph" in the "Chart" / "Graph" / "Diagram" sense,
but in the mathematical sense like in "graph theory".
Therefore I added the context [[mathematicl]].
All translations are unchanged except the german one, which is now again
"Graph" as in 2.0.0 instead of "Schaubild".
This string was not picked up by the script to generate the layouttranslations file. After deleting the file and re-running the script, this string was picked up.
- this brings back all our template files (they are no example files, would have been a regression otherwise because LyX 2.0 offers them already in "new from template")
- the thesis files will stay in the examples folder for now until we have a real fiix for bug #8643
I only left out the following:
1) chinese translation - we have no GPL statement yet, if we don't get it the
big update would need to be removed unfortunately.
2) I kept the dutch translation for "Chart", although this is ambigous, since
nl.po does not contain a translation
3) I kept the danish translation for "Note", since da.po does not contain a
translation
The review file is updated as well to contain all translations without a
documented review.
The Japanese math manual was not compiling because of some
complications with foreign language switching. This would
have been fixed after the translation from English to Japanese
is done but I want to make sure the document is compilable
for 2.1.
Now lib/layouttranslations.review contains all translations which have been
changed since the 2.0.0 release except for the ones where the commit log
mentioned that they were reviewed.
The pgf package 3.0.0 update lead to an error being given with
this document. Loading the 'etex' package fixes the problem.
For more information, see:
https://sourceforge.net/p/pgf/bugs/296/
filehook.sty is required when you use non-TeX fonts and also the non-TeX math default font
In the same context LyX requires the font "latinmodern-math.otf", but we can currently not check for it, see my post to the list
I should have had a closer look much earlier, since the fix is simple and
safe, but at that time I did not notice. The problem was that an invalid
.lyx document was created when converting unicode characters with two
backslashes in their LaTeX definition from lib/unicodesymbols to pre-unicode
LyX format.
The frame decoration IconPalette contains already \overset etc. and \sideset has the same logic like \over- and \underset. Moreover we should keep the math panel clean and avoid the listing of many very special commands
We don't need to check for every exotic package and this one is also very large. Due to nowadays new speed limit of some CTAN servers, downloading the package takes ages and therefore a fresh installation on Windows often times out. The advantage of the automatic package installation on Windows is therefore a disadvantage in case of this package.
This makes the defaults of Inset::inheritFont() and Inset::resetFontEdit()
compatible. There is no user visible change except for the Chunk inset which
does not produce invalid LaTeX after editing operations anymore.
This is the safe version for 2.1.0, for later there are still open questions:
- All insets with ResetsFont true should be audited: Is this really needed,
or do they show similar editing problems as the Chunk inset?
- Does inheritFont() need to be customizable in the layout file as well?
- Is resetFontEdit() != !inheritFont() needed at all?
I did not use change tracking for the docs, since I updated all existing
translations.
As discussed in trac. Unformatted Text is removed, since it is too similar to
Plain text, adn nobody knows why it is needed in the standard menu. The lfun
is kept, so users can easily activate it in private ui files if needed.
Changelog:
UserGuide:
- sec. 3.3.4.4: "opt" renamed to "short title"; only one short title
- sec. A.4.23: short title only visible...
- sec. A.5.4: Forward Search, clarify section reference
- sec. B: description of searching in submenus
Customization Manual:
- sec. 3.1:
- changed View->View (Other Formats)->DVI to Document>View (Other Formats)->DVI
- In second and fourth paragraph changes 2 "View" menu to "Document"
changelog:
- sec. A.3.3: menu of outline has changed -> therefore correction in
- sec. 3.7 of Tutorial
- sec. 2.5: of UserGuide
- sec. 6.2.1: of UserGuide
- sec. A.3.4: name changed to "source pane" -> therefore correction in
- sec. 2.1 of Additional
- sec. 6.12.4: of UserGuide
- sec. A.3.5: name changed to "Messages Pane"
- sec. A.3.15 -> A.3.6: Toolbar menu shifted
- sec. A.3.6 -> A.6.4: view Document menu shifted -> therefore correction in
- sec. B.20 of UserGuide (not yet in Japanese)
- sec. C.7.2 of UserGuide (not yet in Japanese)
- sec. 2.1.1 of Tutorial (not yet in Japanese)
- sec. 2.1 of Additional (not yet in Japanese)
- sec. 7.3.3.4 of Additional (not yet in Japanese)
- sec. A.3.7 -> A.6.5: view other Document menu shifted
- sec. A.3.8 -> A.6.6: Update view menu shifted
- sec. A.3.9 -> A.6.7: Update view other menu shifted
- sec. A.3.10 -> A.6.8: view master menu shifted
- sec. A.3.11 -> A.6.9: Update master menu shifted
Fedora ships these chmod 644 and has never seen a problem. The advantage
to doing this is that it better controls what version of python we are
using to launch the script, and it will reveal if we're somehow somewhere
not controlling that properly.
This simple module allows users to use the algorithm2e package at all. Before, it was not possible with LyX, since this package conflicts with LyX's own algorithm support (see also #8728)
The JASATeX class is currently unmaintained. Also, this
commit moves the system font tests from inverted to ignored
(otherwise lualatex and xelatex run in infinite loops).
and fix wrong ones. This fixes the safe part of bug #8888. The symbols
provided by mdsymbol.sty have to wait, since mdsymbol.sty provides a huge
number of symbols, I don't have the time right now to process them all, and
a partial file format update does not make sense.
Export with XeTeX and LuaTeX (with either non-tex fonts or 8-bit
compatibility mode) does not work because the loading of inputenc with
utf8x is hardcoded in europecv.cls at this time.
This commit adds a note to es/europeCV.lyx explaining the problem and
inverts the XeTeX and LuaTeX tests.
See
http://comments.gmane.org/gmane.editors.lyx.devel/145896
Thanks to Günter Milde for the advice and to Ignacio García
for the translation of the note.
This is a manual lyx2lyx fix. Some of the problematic chunks
are not correctly converted with lyx2lyx so this commit manually
converts them to ERT.
For more details, see:
http://marc.info/?t=137702744100010&r=1&w=2
paper.cls formats the description label without bold, so LyX should do the
same on screen. Note that simply removing the Series line does not help,
because Description is already defined in some include.
This is a workaround. Without this patch, export to .tex (XeTeX)
contains a sequence such as
\begin{english}
\begin{description}
[omitted, but does not contain \end{description}]
\end{english}
Thanks to Jürgen for the workaround.
polyglossia is used by default and \make@lr is only defined
by babel. Modifying the preamble fixes XeTeX export and pdfTeX
continues to work.
See the following thread for more information:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg181220.html
Thanks to Enrico for the patch.
If we call tex2lyx on a temporary file created from the clipboard, the
file is always in utf8 encoding, without any temporary changes, even if it
contains encoding changing LaTeX commands. Therefore, we must tell tex2lyx
to use a fixed utf8 encoding for the whole file, and this is done using the
new latexclipboard format. Previously, tex2lyx thought the encoding was
latin1.
As a side effect, the -e option is now also documented in the man page.
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 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.
Exporting this outdated document currently hangs on some systems.
Further, there is no natural link between AGU and DocBook
and this could be confusing to a user who is looking for
the AGU template.
This fixes several long "unusual contents found" warnings that
were being written from LyX's math parser and improves the
typesetting.
Thank you to Enrico for the fix. See here for his explanation:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg180763.html
There are still two such warnings that might indeed be serious,
one each in fr/xypic.lyx and ja/xypic.lyx. I get an assertion
from cursor movement in those insets with instant preview enabled
(on both current trunk and branch).
Now when the cursor is in e.g. a Section layout, alt-<down>
will dispatch 'outline-down'. Before, it would dispatch a
'paragraph-down', which I think makes less sense.
Now all urls we use in our provided lyx-files
(doc, examples, templates)
use urls which really exist.
(If a url was meant merely as an example,
it was not touched, but added to file 'knownInvalidURLS'.)
The 'Chapter' layout does not exist in standard article class.
I demoted all section-type layouts. Thus, "Chapter" became "Section",
"Section" became "Subsection" and "Subsection" became "Subsubsection".
Without this, the template gives a BibTeX error because
there are two \bibstyle commands in the .aux.
This would have broken backwards compatibility but RJournal.layout
has not yet been in a LyX release. Further, the journal made a
significant change (moving to a single column instead of two)
so any submitter would need to update the .sty anyway.
This fixes an option conflict error when using
RJournal.sty v0.12 (the newest).
Previous versions of the .sty also provided 'url'
so they should still work with the layout.
Manuals, examples and templates that use (traditional) bibtex should have set the bibliography processor to bibtex. Else, these documents do not compile if a user has set the processor to 'biber' in the preferences
The macro is identical to \ldots in texted, but this way, tex2lyx can import both \ldots (as InsetSpecialChar) and \dots (as unicode glyph), while retaining the original distinction (which might get relevant with some special packages or via user redefinition of one of these macros).
This provides a working examples that can be viewed directly
and makes the templates compilable out-of-the box.
When moving the example, I removed what I interpreted to be
an errant apostrophe.
This document does not export to PDF. Further, if one tries
to export to PDF on some systems, the process hangs. This commit
thus changes the default output format to xhtml and explains in a
note at the top that LyX does not currently support exporting this
document to PDF.
Note also that this document seems to be outdated and so is a
candidate for attic.
Further, this document is a candidate for being renamed. Currently
users might be confused if they are looking for the canonical way
(no need for DocBook) to write an article for AGU journals. For
that, they should use AGUTeX.lyx.
The labels for the references are now in the format
"author(year)". Without this, the following error is given:
"Bibliography not compatible with author-year citations"
Thanks to Richard for the fix.
When a user creates a new document from a template, the template
is copied but relative paths are not changed, so the resulting
.lyx file is broken. By moving documents with relative paths to
examples, the files will compile out of the box.
A long-term solution that allows for relative paths in templates
is still desired and will be discussed in #8643 or in a new ticket.
The main part of the fix (unicodesymbols) is from Jürgen. This commit fixes
tree problems:
- \; etc. were also used in text mode, but are math only
- all of those glyphs need to be forced with utf8
- actually, \; etc. are not the correct macros, since the encoded spaces are
breakable, but the math spaces are all protected. The sapce symbols are not
defined in the utf8 encodings.
LyX, lyx2lyx and tex2lyx produce now all the same version indicator consisting
only of the major and minor version. It is not decided yet whether future
development versions will add a -dev suffix, but for 2.1.0 this change fixes
the inconsistencies.
We assume chunks come at us in a certain form. If not, then
we cannot handle the conversion. In that case, we just leave
the chunks as they were and they will appear as unknown layouts.
- added bindings for 'math-delim' as a workaround
for US keyboards with Windows
- added bindings for 'word-left' and 'word-right'
- added two more sets of bindings for 'math-subscript'
and 'math-superscript'
- corrected some greek letter bindings
- insert is bound to 'math-mode'
- changed 'screen-recenter' binding to C-j
- added various other bindings
Thanks to Michael Stepner for many of the fixes and testing.
- remove the tables I once used to order all possible "Requires" features
- update the list with possible "Requires" features
- some style fixes here and there
- Additional.lyx: update description and convert some TeX code to the multicolumn inset
- multicol.module: restore the preamble settings that was accidentally removed bin the previous commit
- both files: remove \CJKindent which prevented the compilation with XeTeX, load the xeCJK package which is necessary to get text lines broken at the page margin
Both files are still compilable with pdfTeX because then xeCJk does simply nothing.
- Intro: replace TeX code by its LyX inset and alsoremove unnecessary document class option "cjk"
With LyX configured in this way, the user would only need to:
File > New from Template > EPS.lyx (or PDF-cropped.lyx):
- insert a math inset and type in an equation, or create whatever
content LaTeX can handle,
- view/export to cropped EPS/PDF.
This would allow for LyX to act as a "generator for includable graphics" (equations, commented graphics, etc).
This fixes bug #7839.
- mention that the aa class loads natbib to avoid compilation errors
- the aa package contains an outdated an customized version of natbib.sty. This file only works with aa, but breaks the compilation of many other files on your system, therefore remove the bibliography and replace it by BibTeX
- add a note about the encoding
(unless it's already there, in which case it should move to the end of the next paragraph).
Change the preference setting name (mac_like_word_movement to mac_like_cursor_movement)
to better reflect its function.
Patch and description from Bennett Helm
* 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.
- make template compilable
- update it according to the latest AEA guidelines
- add 4 missing styles to the layout:
* \keywords
* \JEL
* figurenotes environment
* tablenotes environment
Before, only PDFs were being generated so latex did not compile.
Now, both PDF and EPS files are generated.
This is not efficient but could save the user some pain, which is
the goal of templates.
An alternative would be to set the default output to use pdflatex.
The layout now takes care of \begin{article} and \end{article}
by using \AtBeginDocument and \AtEndDocument.
This cleans up the template a little by removing some ERT. The
user no longer needs to read the two notes explaining why the
ERT boxes were necessary. The user also does not need to think
about why this LaTeX environment exists.
The default citation capability of LaTeX is not a true numerical
citation engine, rather it uses a mixture of labels/numbers. Thus
we now distinguish them: "numerical" always increments the bibitem
counter and uses its value as a numerical citation label, while
"default" only uses the bibitem counter when no label is provided.
LyX file format incremented to 471.
These should be used if any new style needs to be introduced in the stable
2.1 series: If the ForceLocal flag of the style is set, it will always be
written to the document header, so that even older 2.1 versions can read
and correctly output the document.
If you have an unmounted dir, ac_dir, in your PATH, the call to
os.path.isfile( os.path.join(ac_dir, ac_word + ext) )
hangs. This is probably a python bug, but the result of configure.py
hanging and LyX freezing is really bad, hence this workaround.
According to the python docs, MacOS doesn't provide os.access();
the hasattr protection is used for this reason.
I was confused when I checked this. It looks like plainnat.bst
overwrites this default to use [Ref1, Ref2] style instead, but
when using natbib's defaults you get the (Ref1; Ref2) style.
This was suggested by Jean-Marc some time ago, and I simply forgot to apply.
With this change you do not see unusable menu entries like linkback on linux
anymore. I also added an entry for emf, since this will be quite useful on
windows.