As discussed on the list, but I did not need to create two new pdf formats
since any given document either uses TeX fonts or not. For the same reason
I also added an additional converter to PDF (cropped).
Writing these policies down makes it easier for newcommers to
understand guidelines and the intuition behind them.
The two policies this commit adds were responses by Georg and Richard
to two threads on the mailing list. The policies are titled
"When to set a fixed milestone" and
"Can we add rc entries in stable branch?".
After the str-metrics merge, the kludge for displaying symbols whose
code point corresponds to a soft-hyphen was not working anymore.
The solution is replicating the offending glyphs with index 0x00ad
at a different index. They were replicated at 0x00ac, whose glyph
was missing in all affected fonts.
However, this would not work by alone because, if a system font with
same family name exists, it would be picked up instead of the right one
(at least on non-Windows platforms). For this reason, the style of the
fonts has been changed from "Regular" to "Lyx", so that we can discriminate
the right font. However, this requires using at least Qt 4.8. If an
older Qt is used *and* a system font with same family name is already
available, the affected glyphs will all turn out on screen as the
"logical not" symbol.
I have also set the executable flag on the font files, because on Windows
they are loaded only in this case.
This solves #9229.
* \caption does not need to be protected in general
* the contents of \caption arguments need to be protected, though.
All styles related to caoption inset have been audited and updated.
The special casing of captions in longtables has been removed, since there is no special case.
Fixes bug: #9177
This is a part of bug #9372. The remaining part (\ne) is not easy to fix,
since \ne is a predefined macro internally, so the HTML output is done for
the expanded macro, and we have no machinery to assign a HTML output to a
complete macro.
The reason being the backslashes in the path. Note that escaping
does not work here because the path is being interpreted multiple
times (how many times I don't know) and that would be fragile.
For this same reason, the change is not limited to Windows.
This allows to address two main issues
* \thanks does only accept one paragraph, while \footnote allows several (ticket #2666)
* footnotes in titling environments were not numbered on screen.
Moreover, the code reduces hardcoding of features, which is always a good thing.
There are several pieces in this commit:
* new numbering type \fnsymbol for counters
* the Foot inset changes its layoutName() to Foot:InTitle when inside a paragraph with InTitle property. This is set when running updateBuffer.
* Foot:intitle uses the \thanks command, does not allow multiple paragraphs and marks its contents as moving argument.
* The InsetLayouts for Foot now have properLaTeXName/Type, so that InsetFoot::latex can be removed; further code simplification is probably possible.
Fixes: #2666
C-M-a is bound to the global "select all". The
reason for this change is that selecting an inset
is a more common operation that selecting an entire
document.
This patch is the result of discussion on #7727.
This makes the script usable on windows and speeds it up by an order of
magnitude, since no new process needs to be forked for each layout file.
It also does not conevrt .old files again.
This is a patch I originally sent to lyx-devel in 2012 with subject
'Load footmisc.sty instead of using copied code from obsolete stblftnt.sty'.
It now takes all comments into account: It works also if the user loads the
package herself, it can be disabled by providing the footmisc feature in a
layout, and it does not use the ugly \AtBeginDocument{}.
Fix a crash reported in #7727. This happened because cur.pos() was reset before cur.pit(). In this case, cur.lastpos() will usually be wrong.
Fix bad behaviour when selecting at top level with several paragraphs.
Update documentation.
- the example was designed to follow the style of the other LyX documentation files, e.g. not to insert options as one big TeX-code inset.
- fix some typos
- (I cannot save files with LyX 2.2 atm due to bug #9234)
this module was not usable since the preamble stuff was missing and also almost all options. But many PDF-comment types are quite useless without options.
These are SVGs from the Tango icon set as well as some theme-independent self-made icons. Many icons are missing. This set s a wild mixture of Tango, old KDE icons and some self-made icons drawing on (to me) unknown models.
I leave the task to finish this set (and thus the SVG icons generally) to others.
These are automatically generated via the generate_symbols_svg script. Some were modified manually afterwards.
These certainly need some manual care, and a number of icons are missing (cannot be created automatically). But it is a start.
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.