See my post on the list - enumitem is already described in the userGuide.
(Besides this a makefile entry was missing for the file.)
Please don't add documentation files without a discussion or a review, especially not in a beta phase.
We do now have .sfd sources for all fonts, so either we distribute all of them
with the source package or none. Since the accumulated size is not negligible,
and the are not needed to build LyX, but serve a really special purpose, we
do not add them to the source package for now.
Thanks to Enrico for doing the actual work (my fontforge omits the
TtInstrs...EndTTInstrs blocks for some reason I do not understand).
I did only check that the only difference between the old and new .ttf is the
changed position of the bracketleftbigg glyph. This does finally fix bug 6115.
Generating a ttf from cmex10.sfd would fix bug 6115, but unfortunately I am
unable to export a ttf with the same settings as the existing one, so this has
still to be done.
Since \output_changes is written again at the original position, we need to
fix those files that have been updated using the intermediate version.
The update was done by running development/tools/updatedocs.py <lyxexe> where
<lyxexe> was the path to an up to date LyX binary. All files that did contain
additional changes were reverted:
lib/doc/LFUNs.lyx
lib/doc/UserGuide.lyx
lib/doc/Shortcuts.lyx
lib/examples/de/beamer.lyx
The \SpecialChar changes are fine, these files have never been saved by LyX
after the update to 483.
Increment LyX format to 504.
With this new parameter, the user can indicate that some other parameters that
are frequently switched must not be recorded in the file (as if they were a
setting specific to the user or transient, rather than a document setting). This
will play nicer with version control systems.
See the discussion, e.g.:
http://thread.gmane.org/gmane.editors.lyx.devel/157824/focus=157993 (third
solution mentioned)
TODO:
* The interface remains to be set up. We cannot change this setting from LyX
for now.
* If save_transient_properties is false, we should read the user setting as a
per-user-per-document (session) setting (e.g. like the cursor position).
* Once the above is done, we can treat \justification the same way (but it would
be even better if \justification was moved to lyxrc).
The current behaviour of the \origin parameter replaces relative file names
with the absolute original names if a document has been moved even if the
files have been moved as well. This behaviour is annoying e.g. for editing the
LyX docs in a git checkout.
Now file names are only replaced if the referenced file sdo not exist.
The lib/unicodesymbols part is based on work by Günter Milde:
Both, \r{A} and \AA (rsp. \r{a} and \aa) are equivalent standard LICR macros
for Aring/aring as well as the deprecated "angstrom sign" character (212B).
However, with \AA for 212B and \r{A} for 00C5, tex2lyx converts \AA to the
deprecated "angstrom sign" which is missing in many fonts including the
Unicode version of Latin Modern.
I added the normalize_c() calls so that tex2lyx prefers the precomposed forms
(these are better editable in LyX) and the deprecated flag.
* missing characters in linguistics example with system fonts
* language nesting problem in fr/linguistics example
* 110f505b63 solved one failure (Basque example file)
This does not change output, only GUI.
paper: make sure that the starred sections use proper sans serif on screen.
foils: add relevant categories to layouts
The default behaviour of git for text files is to store unix line endings in
the repository, and to convert to native line endings in the local workspace.
This plays well with the LyX behaviour of storing files in native line endings.
Unfortunately it may break if files are sent around by email and submitted on
a different OS than the one they were last saved, and this did probably happen
in 6b0632eea.
These were using lyx2latex, assuming the result can be used in verbatim
insets as is, which is not the case (mostly due to \\backslash).
A new lyx2verbatim function is now used instead. Also, ERT insets are
dissolved in the gloss reversion process.
Preliminary work for addressing #7790. Thanks to Richard for providing initial
files this is based on.
Adding to TextClass:
OutlinerName <string> <string>
(the second string is translated)
e.g.:
OutlinerName thm "Definitions & Theorems"
Adding to Layout:
AddToToc <string> (default "", means no)
IsTocCaption <bool> (default 0)
e.g.:
AddToToc thm
IsTocCaption 1
Adding to InsetLayout:
AddToToc <string> (default "", means no)
IsTocCaption <bool> (default 0)
e.g.:
AddToToc literate
Adding to inset arguments:
IsTocCaption <bool> (default 0)
Pdflatex is the recommended export tool for the manuals.
Pdflatex brings the best results for hyperlinking.
Some features (e.g. rotated text) are not available in DVI or PS (dvips).
This does not affect export from command line or autotests
(where this setting is ignored and the format must aways be given explicitely).
After removing "unneded" PNG files from the repo, this manual failed.
Skaling is done to ensure that the icons are approximately one M high.
Also, the default output is set to PDF (pdflatex) as this is said to be the export
format our manuals are designed for.
Always-Babel now set in the example document.
Adapted the autotest categorization:
* fails for some developers (why?)
* wrong output with pdflatex/LuaTeX and DVI (missing landscape slides).
We do not update the local layout of our .lyx files because users
would then not be able to export to older formats. For example, if a
2.2.0 user exported a template to 2.1.x format and tried to open the
file in LyX 2.1.x, there would be an error because the file would
contain a local layout whose format is too new. The root reason for
this is that we do not convert layouts to older layout formats.
Otherwise it could easily happen that the order is changed, since rsvg_convert
seems to be more picky about invalid files (see http://www.lyx.org/trac/ticket/9891)
exist. This will allow for a proper fix for bug #8796, though that may or may
not get fixed before 2.2.0.
Also, change the InStyle tag to ModifyStyle, per a suggestion of Jurgen's.
patch. Also fix some escaping problems (\end instead of \\end).
My testing revealed some other problems with this routine: stray
\noindent tags popping up here and there. I don't have time to fix
it right now but will try to come back to it.
Some templates had the inputenc setting "default" (meaning
use the language default encoding, (not TeX's default which is 7-bit ASCII) but
don't load inputenc, leave handling of non-ASCII characters to the author).
This is no apparent problem as long as no non-ASCII character is used in the
document. It is very unsave, however, as any non-ASCII character used in the
document has the potential to either make compilation fail or be
misrepresented in the output.
No single translation has been changed, but pt_BR and pt_PT are now correctly
sorted. This removes the artifical diffs that running
make ../lib/layouttranslations
did produce previously.
Also MacOSX ReadMe files. Note that a few lib/doc files are
also "updated" because trailing spaces are removed, but their file
formats are the same because they were recently updated at 83672113.
I did "git checkout LFUNs.lyx" because this file is generated
automatically and has a special header.
Prevent loading of lmodern.sty if non-TeX fonts are set and
Define DejaVu as non-TeX font.
This ensures that non-TeX fonts are used if requested (lmodern.sty set
the 8-bit version of LatinModern if compiling with LuaTeX).
Also ensure that a font with all characters is used. (LatinModern misses small
Greek characters.)
Similar actions for other manuals and examples with Greek or Cyrillic script
will solve some more export tests with non-TeX fonts.
These were fixed manually. I tried to add an option to updatedocs.py to
open and save a file with LyX, but that did not work, since
lyx -x 'command-sequence buffer-write ; lyx-quit' does not write and does
not quit.
gen_lfuns.py does now produce the current file format, and and LFUNs.lyx was
re-created with the updated script.
There is one difference if you compare this version of LFUNs.lyx with the old
version updated by lyx2lyx: All occurences of LyX, TeX etc. in the lfun
descriptions are no longer output as logos. I do consider this as a feature,
since the old version did also output the TeX part of BibTeX as a logo, as well
as places where the names were part of some syntax, e.g. lyx::LyXRC::LyXRCTags.
lyx2lyx did not yet know about /systemlyxdir/ and set \origin to the path
where my git tree lives instead. This path is not usable except on my machine,
so better write something more usable instead.
This is a special command line switch of lyx2lyx, so it does not interfere
with normal usage. I did not try to deduce the systemlyxdir from lyx2lyx to
be on the safe side.
This is one part of bug 9744: If you toggle between TeX fonts and non-TeX
fonts, the settings of the other choice are no longer thrown away, but stored
and re-activated if you switch back. Most parts of the patch are purely
mechanical (duplicating some BufferParams members), the only non-mechanical
change is in the GUI logic.
then just perform a null conversion. This seems better than aborting
with an error. I can imagine a script that converted all files in a
certain directory to format 498, and you don't want it to be an error
if one of them is already 498.
Prior to this, what lyx2lyx would do is convert to the lowest format
in the current version. So, e.g., asked to convert 498 to 498 it would
convert to 474. That is obviously wrong.
Each way might be preferred by a different developer and the more
ways that can be described of running the tests, the higher the
chance is that developers will find a way that works well for them.
Explain why the export tests are enabled for formats that are not
expected to work well with certain document classes, modules, or
packages. The reason is that if a .lyx file goes from compiling
successfully for one format (even if that format is not officially
supported for the combination of features used), if that document
suddenly fails to compile, there is a significant chance that a bug
was introduced in LyX. In other words, there is a high signal/noise
ratio. If it is determined that a test is failing because an
expected incompatibility is exposed, then the test can be inverted.
People working on the documentation do probably want to switch this on. It
gives easy access to LyX and LaTeX logos (bug 9626), and the info and menu
separator insets.
The export tests, check_load tests, and URL tests are now documented
in the Development.lyx file. The export tests are described in
detail, such as how to run them and how to interpret the results.
These icons are for lfuns that are not very interesting for users, but quite
often used when working on the LyX documentation. Now we can create a special
LyX documentation toolbar.
Many of our documents have babel-specific preamble code. By putting
this code in a \@ifpackageloaded{babel}{}{} conditional, XeTeX and
LuaTeX compilation with polyglossia now works. This fixes some
LuaTeX tests that were broken by edd37de8 and also allows us to
uninvert some XeTeX tests.
Note that in some of the files although the preambles were fixed to
allow for polyglossia, they still do not compile without errors:
es/Math.lyx
es/Customization.lyx
de/Customization.lyx
Similar fixes might be desired in other manuals but these at least
fix regressions in the tests.
PolyglossiaOpts are case-sensitive so "latin" must be changed to
"Latin". Without this change, compiling examples/sr/Braille.lyx
with LuaTeX and system fonts gives the following error:
Package Polyglossia Error: Unknown script `latin' for Serbian
language
Many of our Spanish documents use babel-specific features in the
documents, e.g. to write "sin" in Spanish ("sen"). Because babel
seems to have good support for Spanish, I am setting the "Always
babel" for the manuals.
This fixes several LuaTeX tests with non-TeX fonts. A XeTeX test is
also reverted accordingly.
Some of my following commits will make changes to these files
(mainly just changing the preambles). This commit simply updates the
format so the diffs of the following commits are easy to read.
Since a while now we can translate the unit descriptions. For some special applications it is also necessary that the users know the LaTeX command of the relative units.
- also fix a typo in Customization.lyx
- also disable PDF-reply since this never works correctly and it could even destroy the whole PDF and exceeds the TeX capacity
- update the french version accordingly
paralist.sty extends the standard list environments by some more compact
versions. Support for this has already been requested 15 years ago, and
now I needed it myself.
* Omit commented-out lines
* Properly escape backslash
* Do not allow non-space chars after delaration
* Allow blanks before # comment character
Fixes: #9746
Greek and Times under MikTeX with auto-install may fail due to a half-installed
font package. However, the workaround in LyX stands in the way of
alternative approaches (see bug #6469).
`os.popen` is deprecated since Python-2.6. Also, this fixes the handling
of files with quotes in their names. The patch requires Python >= 2.7.
Furthermore, the patch executes the lyx2lyx script with the same
interpreter used for it, to maintain compatibility.
I also removed some lines related to Python-2.4, as it is no longer
supported anyway.
Actually photos (i.e. .jpg files) where supported previously, but for pdflatex
output an unneeded conversion to png was done. The RasterImage templates
behaves now exactly as InsetGraphics for these files: If the input format is
jpg, use that for pdflatex, else convert to png.
This is another advantage of the new logo insets: We see in LyX where they are
inserted for the output. In these two cases, the text describes keywords of
the external template configuration file language, so these should not be
typeset as logos.
The difference to bitmap graphics is that these will be included as PDF for
pdflatex, so the vector properties are retained if a suitable conversion path
exists.
This brings the external inset on par with the graphics insets as far as the
clipping option is concerned. The graphicxs package supports both: A bounding
box without units (which means that bp ia assumed), and a bounding box with
units, so we can simply output the values including the units.
Being able to compile document with zipped .eps files was a useful feature of
the graphicxs package 20 years ago, but the LyX support is no longer relevant:
- The flag is ignored if preview is on
- If pdflatex is used then uncompressing happens during the compilation anyway
- If set, the flag prevents LyX from issuing proper error messages if
something with the image is wrong
- For hard disk capacities from 20 years ago not uncompressing is a useful
feature, but for current hard disk capacities it does not matter
- The external inset does not have it, and if we want to merge both insets
one day we would need to implement it there, which is even more difficult
than in InsetGraphics
Now the minibuffer toolbar is "auto" by default. It is opened by
command-execute (M-x) and closed when the command is executed without error.
* make lyx::dispatch return a DispatchResult struct
* there is a new MINIBUFFER type of toolbar, that can be used for this use.
* remove special handling of M-x in minnibuffer; Escape can be used instead. Fix focus in this case.
* when minibuffer toolbar is "auto", make the toolbar close itself after
- a command has been executed without error
- an empty command has been executed
- the Escape key has been used
[this is actually commit fdcff02a, which was later reverted at dd61d8cf]
LaTeXFeatures defines \textcommabelow and \textcommaabove based on a
generic \LyXTextAccent and declares TextCompositeCommands for the Baltic
letters in the T1 font encoding, using \textcommaabove for the small letter g
and \textcommabelow else.
This allows overwriting of the composite definition for other font encodings.
Especially, it does not interfere with the polish/baltic font encoding L7x
(supported by LatinModern and TeXGyre fonts) that provides pre-composed
glyphs.
Greek characters with perispomeni (tilde) accent were not properly shown
in the output document, because the "textgreek" feature re-defined \~ in
a way incompatible with lgrenc.def since version 0.8 (2013-05-13)
(package greek-fontenc).
The compatibility-definition is required for older versions of the font setup
(before the move of "lgrenc.def" from "babel" to "greek-fontenc").
It is now done with "ProvideTextCommand" to not overwrite the more complete
implementation in lgrenc.def.
With the compatibility definition, combined diacritics with tilde
must be input with the tilde first (e.g. \~>, not \>~).
"unicodesymbols" is changed accordingly.
Also, some LICRs for combining Greek diacritical characters were added to
Unicodesymbols.
Add font encodings auto-set by babel.
Set font encoding for georgian to the babel default.
Remove InternalEncoding from languages that use a font encoding
compatible to T1.
Change (LaTeX input) encoding for Serbian (cyrillic) and Romanian.
See #9652 for details.
This fixes bug #9615.
The "notermination" flag tells LyX, that terminating an LICR macro with {} is
not necessary. This is normally the case for all macros with non-alphabetical
name (e.g. \{).
However, combining diacritical characters are converted to *accent macros*,
which expect an argument (the base character).
In Unicode, the base character precedes the combining character,
in LaTeX the combining character precedes the base character.
LyX changes the order of the two characters to get this right,
e.g. "x" + "combining tilde" becomes "\~{x}".
In the special case there is no preceding character (e.g. at the start of the
document or a paragraph), Unicode shows the combining diacritical character
without base character.
The replacement is currently not "terminated" (e.g. "\~"), because of the
"notermination=text" flags in "unicodesymbols".
The accent macros take the *following* character as base character, which is
clearly not intended.
In case of a paragraph consisting of just one combining diacritical character,
LaTeX compilation fails with an error.
With the patch, LyX writes the accent macros with an empty argument,
e.g. "\~{}", the output is similar to the view in the GUI with the diacritical
character on its own, not on the follwoing character.
* Take into account the filesystem encoding for the zip export on *nix
such that the representation of filenames in the zip archive is not
mangled, when possible. This only concerns the way filenames are displayed
as their creation in the filesystem was nevertheless correct.
* On Windows, try to obtain the command line parameters from the wide char
representation by directly accessing the platform APIs through ctypes.
This allows to also deal with filenames not exactly representable using
the current code page and corrects a bug resulting in silently dropping
those kind of filenames.
Now the minibuffer toolbar is "auto" by default. It is opened by
command-execute (M-x) and closed when the command is executed without error.
* make lyx::dispatch return a DispatchResult struct
* there is a new MINIBUFFER type of toolbar, that can be used for this use.
* remove special handling of M-x in minnibuffer; Escape can be used instead. Fix focus in this case.
* when minibuffer toolbar is "auto", make the toolbar close itself after
- a command has been executed without error
- an empty command has been executed
- the Escape key has been used
Instead of redefining \usepackage for avoiding the microtype package
when generating previews in dvi mode, the draft option can be used
for disabling it. This also allows to somewhat simplify the
fix_latex_file function.
These were added when the user guide was converted to latest format.
Their purpose is assuring that the vertical spacing is not changed for
old documents. Given that they also assure that the bad spacings in
nested item environments is preserved, let's simply get rid of them.
The path argument of checkProg* was added to the PATH list in a nested
loop such that the list doubles in size each time the loop is executed,
thus also slowing down detection of missing programs.
The strategy adopted in bc47054b had some drawbacks related to the way
instant preview snippets are generated. See the subthread starting at
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg187916.html
for details.
The strategy adopted in this commit is that of adding macro definitions
only for the macros actually used in a preview snippet, independently
of whether some macro was already used in a previous snippet. In this way
the snippets don't need to be changed according to whether they are
compiled as a whole or separately from each other. This fact was causing
the regeneration of a preview snippet whenever the cursor entered the
corresponding inset, even if the generated image would have not changed.
The problem of defining or redefining a macro is taken care by the
python scripts.
The escaping of symbols read from unicodesymbols was inconsistent, which lead
to wrong replacements (bug 9559). Now the escaping is consistent: unicode_reps
contains unescaped LaTeX commands, the needed escaping for LyX files is
applied in put_cmd_in_ert() and lyx2latex().
This is bug #9612. The patch is from Günter Milde. He wrote:
The patch uses the "long" macro names (\llless and \gggtr) to minimize
name-clash probability. (There is, e.g., a name clash of \lll with Babel's
polish.ldf (cf. bug #6197))
This is for people who cannot grasp the superior conventions of emacs ;)
A new argument "partial" has been added to word-upcase, word-lowcase
and word-capitalize that restores the old emacs-like behavior.
The (x)emacs bindings are updated to use the "partial" argument, and
also to bind correctly M-u and M-l (M-c is unfortunately not
available).
Fixes bug #2826.
* Provide for vector fonts only if needed.
* Make sure microtype doesn't throw a trantum in dvi mode.
* Use correct macro definition in preview insets.
In June the R-SS phrase system is replaced officially by the GHS H-P statement system in the EU.
So just in time here is support for this.
No new LaTeX package is required since the already supported package mhchem provides the statements.
The documents saved to the system directory have now the origin tag
prefix "/systemlyxdir/". This allows both saving them always using
the same virtual path irrespective of the real path and to let the
origin tag work out of the box also on MacOS.
Since lyX 2.0 we support to use the in_preamble tag. This allows to support more commands. For an unknown reason I forgot the jss.layout when I updated the other layouts once.
Fileformat change
according to the powerdot manual it uses the standard floats and indeed, the float deinitions were identic to the ones in stdfloats.inc
- powerdot-example.lyx: add a slide with floats (floats are only possible with the H placement option. (assuring this will be possible with the fix for bug#7752)
This reverts commit bede4d320b.
As JMarc notes [1], if we replaced show with toggle, we would lose some
functionality:
There is one use that is not possible with this change (as I argued
before), which is a fully keyboard-based navigation.
With LyX 2.1, I can do C-M-o and navigate with cursor in the
outline. I can do the same with advanced S&R. IN this sense,
toggling is a step back IMO.
The plan now is to find another way to close the dialog (without
using toggle), such as having ESC close it or another key bind.
Ticket #8388 will stay closed because 'show' and 'toggle' are too
close for the cost of having two separate bindings.
[1] http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg187693.html
Add a new tag HasGuiSupport to language file. Add it for all l10ns
that we currently ship. The po files that are unused are not currently
tagged as available, but this could be done, since the code later
checks that the translation is actually there.
This new information is used in GuiPrefs when populating the language
combox.
The new scheme implies that adding a new language is now a two-step
process:
* the language code has to be added to po/LINGUAS, as before;
* one of the entries of the lib/language file has to be selected as
reference and be given the "HasGuiSupport true" property.
Since Kornel's commit at e2d41970, it is now possible to update the
tex2lyx tests with CMake. Note that this is a case where a make
target in the build directory can affect the source directory, which
might not be advisable.
Old LyX version can cope with degenerated multicolumn cells spanning only one
column, so these should not cause a conversion of the whole formula to ERT.
Such columns are used to set border lines or alignment for single cells.
The math parser could not handle multicolumn grids. This is a problem because
there is no true ERT in math (everything is parsed).
Now multicolumn cells are parsed correctly. The display is also somewhat OK,
but apart from that any multicolumn related UI is missing. Since the file
format change is now done the UI can be added at any later point. The most
important part of bug 396 is now fixed: tex2lyx does not create invalid .lyx
files anymore for formulas containing \multicolumn.
I updated the tex2lyx test cases that produce correct output. tex2lyx does
still produce invalid output for the test cases which are not updated because
of the previous format change.
I don't understand why the string "shadowsize" is not already in the file because when I convert from format 474 to 489 it is added. So why is it not there when I convert from format 474 to 491.
We also get a consistent look with amsmath, so require esint or amsmath.
When resolving alternatives, do also take into account whether the package
is available. For this to work, we also need to test for amsmath.sty (which
was surprisingly not yet done).
The "save-as" part of the bug is fixed by extending the \textclass tag
such that, if a local layout file is used, its path relative to the
document directory is now stored together with the name. If a relative
path cannot be used, an absolute one is used but, in this case, the
document is not usable on a different platform.
The "copy" part is fixed by introducing a new \origin tag, which is
written when the file is saved. This tag stores the absolute path of
the document directory. If the document is manually copied to a
different location, the local layout file is retrivied by using
\origin (which is only updated on save).
This new tag may prove useful also for locating other files when the
document is manually moved to a different directory.
As in the original implementation the files needed for the layout
(for example, a latex class) had to be in the same directory as the
layout file, this directory has also to be added to TEXINPUTS.
Avoid that \newcommand[x] definitions of math macros are pushed multiple
times to the preview loader.
Redefinitions (via \renewcommand[x]) are properly handled.
If use of hyperref is detected, the postscript route is not attempted
(because we know it will fail) and the PDF route is directly chosen.
Also account for all upper case extensions for pdflatex image files.
Was forgetting this last bit from 64e0c558. Also give a message such
that the user is informed that not everything is lost if latex fails.
With this, the previews are generated also when the document directly
specifies a specific pdf output format.
This is a followup commit to 691fdea3 and restores the behavior of the
script as it was intended before 64e0c558, other than taking into account
possible inclusion of files that only pdflatex can process and the
possibility of multiple defined math macros.
The instant previews in the math manual now work again.
- enrich the examples
- add info about naming
- formatting fixes to improve the layout of the PDF
- make the document compilable also if the package insdljs is not installed
If pdftocairo is detected, it is used for generating bitmaps in the
legacy method route in preference to ghostscript. This is justified
by the fact that the conversion is 4 to 5 times faster and the
quality of the generated images is superior.
When the dvipng route is selected and latex fails, the lyxpreview2bitmap.py
script simply bails out. The failure may be due to using a specific pdf
only feature in ERT (for example, the inclusion of a pdf image).
In this case the procedure may succeed simply trying to use pdflatex
and the legacy conversion method.
The \lightning symbol is text mode only. Hence, for using it in
mathed, it must be inserted in a text mode environment such as
\mbox, \text, etc. However, as it is not marked as textmode,
LyX "helpfully" encloses it in \ensuremath everytime one tries
to put it in a text mode environment, thus defying the countermeasure.
By declaring it textmode only, LyX stops doing that and thus it can be
correctly output by simply selecting it and hitting Ctrl-M.
Control + Shift + PgDn now moves a tab to the right.
Control + Shift + PgUp now moves a tab to the left.
These keybindings are consistent with Chromium, Firefox,
Nautilus, and gnome-terminal.
Note that I allow for wrapping. This is consistent with
allowing wrapping for buffer-{next,previous}, but there
might be reasons to disable it in the future.
This template was only reported as failing to compile by LyX as of
0a6120cb. I do not know how long this template was actually failing
to compile without error. The problem was that the class requires
\doi to be defined. This might not have been a requirement in
previous versions of the class.
Thanks to Enrico for finding the problem and solution.
This is the rersult of a discussion on the list. Now all special characters
have meaningful names, and it is clear that the LyX file syntax is not LaTeX.
When closing a document with the cursor near an icon info inset, LyX
may crash on loading again the same document. This is most probably due
to the fact that compressed svg icons are first uncompressed to a
temporary file before being used. The temporary file is then deleted
but something still expects to find it in place. The exact circumstances
that lead to the crash are unknown, and maybe there is also a race entering
the picture here. However, a document that always leads to a crash can be
found attached here: http://article.gmane.org/gmane.editors.lyx.devel/154566
This commit does not fix the cause of the crash but rather avoids it.
As a bonus, the svg icons used by LyX are not uncompressed anymore before
being used, speeding up startup time. This is not a problem, because Qt
can deal with compressed svg images.
Imagemagick detects the inut file format based on contents. Therefore it does
not make sense that we prefix the to be converted file name with the extension
(assuming that the file extension matches the imagemagick format name). This
breaks formats where the extension used by LyX does not match the imagemagick
format name.
- Restore proportion between icons, such that, for example, \imath
is not confused with a lower case 'l' or \textdegree with \circ
- Use real \mathbb and \mathcal TeX icons
I'll revise also the other sets in the Math Panels toolbar along
these lines. It is important to see whether a symbol has ascendents
or descendents or what is their relative size.
- Use paths, not fonts. Have a look at the sqrt icon in the image attached
here http://thread.gmane.org/gmane.editors.lyx.devel/154179/focus=154183
to see what may happen when a font is not present on a given system.
- Make uniform the height of the parentheses.
- Move a couple of icons to the oxygen subdir (I was not sure it was Ok
replacing them. If yes, they can be simply deleted).
I did not notice that all icons in math/ are shared and in a0895046 I have
overwritten some of them. I am restoring them in the proper subdir.
Two of them, namely font.svgz and frac.svgz, give warnings that should
be addressed. Anyway, I see that these icons use fonts. They are better
substitued with paths (a menu entry in inkscape) because if the fonts
are missing on a system, the icons look different and, in general, they
may look ugly.
You have to manually delete the lib/images/svg directory as git
tracks only files.
There may be warnings on the terminal due to some faulty icons that have
to be found and corrected. Moreover, some of the icons are not rendered
too well at the default size. These ones should be properly tweaked.
Kudos to Jürgen for putting together such a large number of icons.
Most of the changes are related with dictionaries returning views instead of
lists.
xrange -> range (since xrange is gone in python 3)
The code that is special to support both python 2 and 3 is enclosed in a comment
\# Provide support for both python 2 and 3
and
\# End of code to support for both python 2 and 3
And so later it can be removed safely when python 2 is no longer supported.
We have some math macros that exist only because LyX can display them easily,
but which require user preamble code. These commands should not appear in
autocompletion, they are only there to make the formulas of users who actually
need thgese symbols and know what to put into the preamble more beautiful.
The svg files produced by vector editors may end up containing a lot
of unused elements that increase their size without any impact on
quality. For example, this occurs when copy/pasting between images
such that unused effects or shadings simply clutter the files.
Removing these elements in some cases may reduce the size to one half
or one third of the original one, leaving unmodified the image quality.
I also tweaked some existing icons to make them look better at default size.
Moreover, some text was replaced with paths, because the required font may
not exist on a system and font substitution would take place, making the
icons look different on different systems.
Both the hyphen and special phrase conversion did not exclude insets which
reference external files. This was wrong since LyX does not replace
\SpecialCharNoPassThru etc for these insets.
Previously, LyX did replace some words with typeset logos, and there was no
way to prvent this except putting them, in ERT (bug #4752). Now we have
special insets for these words, and standard text is left alone.
Thanks to Scott for testing. Command insets do not use InsetText for the
arguments, so users have to write them in LaTeX syntax (this is bug #4595).
Therefore we must leave hyphens alone in these insets.
Previously, consecutive dashes in .lyx files were combined to endash and emdash
in some cases, and in other cases they were output as is. This made the code
complicated, and resulted in inconsitencies ((bug #3647).
Now, a dash in a .lyx file is always a dash in the output, for all flavours.
The special handling is moved to the input side, so that you still get an
endash if you type two hyphens. If needed, this can be changed or made
customizable without the need to update the file format again. Many thanks
for the fruitful mailing list dicsussion, which contributed significantly to
the final version.
I am also replacing some existing icons with reworked ones that
look better at small sizes. I think that these icons are now
comparable to the png ones as regards quality at the default size.
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.