With this commit, info insets leave the dark backstage room of an opaque
and quite hidden dev-only feature and come frontstage.
In the UI, they present themselves as "Fields" since this is what people
know from word processors. Other user-related fields that could be
implemented next: time, user name (I plan to do that for 2.4).
Since this supersedes date-insert, I removed Insert > Date from
the menu and propose to ditch date-insert and the corresponding rc.
The lyx2lyx reversion routine has lots of room for improvement and
attractive tasks for pythons (file timestamp, switch of localization).
Please feel invited!
This is a file format change.
The checkProg() function was separating a command from its parameters
by splitting at the first space. This was a problem if the command
was specified with a full path containing spaces. Now the checkProg()
function separates a command from the parameters by splitting at the
first non-quoted space. So, it suffices quoting a path to solve the
issue.
This effectively enables linebreaks, multipars and layout changes in
non-fixed width (i.e., standard) table columns.
Fixes: #6577
TODO: metrics are wrong (too wide) on screen with linebreaks.
Each source file is to be copied to the test directory
Created files are to be compared to the corresponding expected file (if it is not set to "undef")
This is an extra command used for sidenote citations. Since we do not
provide \cite with natbib (which tufte uses) as a choice, we use the
new AddToCiteEngine feature to add it.
File format change.
Fixes: #11150
Now layout files and modules can extend the cite engines or completely
overwrite them, and modify the cite formats.
Any CiteEngine definition in a layout/module will completely overwrite
those by cite engine files.
AddToCiteEngine will extend them (add if they do not exist yet).
Any CiteFormat definition in a layout will be preferred to those in cite
engines. CiteFormat definitions that are not touched by the former are
still active, though (so, as opposed to CiteEngine, a CiteFormat does
not completely overwrite those by the engine files).
Layout format change.
LyX on Mac uses a user directory with version suffix. On change of the version suffix the existence of the directories with previous versions is checked and the latest one is used for a copy on first configure run. For 2.4 the candidate list starts with 2.3 now as it should.
It is now possible in the float settings (doc dialog) to specify a global
(inner) alignment for floats, and in the float settings, this can be
overridden (just as with float placement)
Fixes: #8665
File format change.
"Benutzerdefiniert" means "user defined", which is not what "custom"
means here (custom insets/text styles are usually not user defined,
but provided by a class/module).
This revives a ten year old idea (and patch) by Dov.
You can now mark in the character dialog text and exclude it from spell
checking.
Fixes: #1042
File format change
Remaining issue: The instant spell checking marks are not immediately
removed, but only after some editing.
Combining accent charactrs were not supported at the time the Russian
documentation was written. Eventual display problems with some GUI
fonts are still less distracting than ERT.
I'm open to putting this elsewhere on the toolbar, or even on a
different toolbar. Also, we need decent icons. These ones are not
intended seriously but were just borrowed for testing purposes.
Anyone have good ideas about icons?
We have a couple of converters (using Sweave and knitr to "tangle"
an intermediate file) that are used for exporting code chunks
contained in a .lyx file. Since the code is just exported to a text
file and is not executed, needauth is not necessary.
A Note inset contained two example files. The linguistics example
file caused terminal messages like
step: Counter does not exist: examplei
An alternative to removing the example file would be to add the
module, but it is not clear we want example files in the merged
file anyway.
Otherwise utf8 inputenc chokes.
It is also possible to enter those accented chars directly, but this
results in display problems in the workarea (the line is shifted downwards).
The objective is to identify common operations and place them
in functions in order to improve the readability and correctness of the code.
is_document_option(document, option):
Find if _option_ is a document option (\\options in the header).
insert_document_option(document, option):
Insert _option_ as a document option.
remove_document_option(document, option):
Remove _option_ as a document option.
A feature can now be required only for specific input or font encodings:
- <feature>=enc1;enc2... Require the feature <feature> only if the
character is used in one if the specified font
or input encodings.
- <feature>!=enc1;enc2... Require the feature <feature> only if the
character is used in a font or input encoding
that is not among the specified.
The fixes are simple and on line with the changes made during
the 2.3 development. It was an oversight to leave them out.
With this commit all the python scripts should be supported by
python 2 and 3.
Following a request by Günter, we consider the document fonts (only rm
for now) when selecting an appropriate font encoding.
See #9741
The new default font encoding setting "auto" does
* consider the font encoding needed by the language(s), which can now
have fallback alternatives
* Consider which font encoding is provided by the document font
Thus, cm now will result in OT1 fontenc, if the language can deal with
that.
The font_enc pref is ditched: it is no longer needed.
The automatism is still very basic and is subject to extension.
File format and prefs format change.
Use the command as defined by Babel. This allows us to use the (more
advanced) Babel command if provided instead of rolling our own.
I add a dummy file format change in case it turns out we need to
do something here for old documents (e.g. with user preamble definitions)
This allows (some) verbatim contents in macros, such as \url's with
specific chars (#, % etc.) in section headings or footnotes (#449)
or comments in captions (#9313).
The mentioned two bugs are fixed by this commit.
Note that the implementation is still rather basic and might need
extension for other cases.
This is mandatory for some features (such as bookmarks,pdfusetitle)
to work, and only a handful of drivers can be auto-detected by hyperref.
Fixes: #6418
With advent of qt5 glyphs on codepoints 10, 12, 13 can't be shown anymore.
In this patch we copy the glyph pairs to new codepoints:
dotsint: 19->41 (this one was already moved by Goerg, now moving to the same block)
oint: 11->43
oiint:13->45
I couldn't find fix where both qt4 & qt5 would show correct results,
so this patch fixes qt5 situation, but breaks qt4, which hopefully
won't be needed for master.
Testing and debuging is somewhat tricky, becuse qt sometimes prefer to
load global fonts in /usr/share while ignoring the local git tree.
To be continued in other fonts.
Related reports:
https://www.lyx.org/trac/ticket/8493https://bugreports.qt.io/browse/QTBUG-66266
- new file
- it is just a start and put into git to assure that we keep a compilable version
- Hatim will bit by bit translate it
- can be removed if it should not be ready before the next major release
Since CheckTeX itself processes the tex file, a synchronous run with
a TeX process can lead to all sorts of conflicts, including crashes.
Fixes: #7434.
Don't insert empty line when translating QuoteInsets to literal
quotes.
Fix regexp pattern in re/convert_dashligatures.
Adjust logic in re/convert_dash(ligatur)es.
When we switched from r'...' to b'...', this required strings used
as input to re.compile to be double-escaped. It's not an issue with
"\s", because "\s" has no special meaning in a string.
Also, printing in binary mode did not output a line ending.
* use unicode.transform() instead of loop over replacements
* telling variable names
* remove trailing whitespace
* documentation update
* don't set use_ligature_dashes if both dash types are found
* remove spurious warning, normalize indentation, and use
Python idioms in revert_baselineskip()
Use the LaTeX internal character representation (LICR) macros
provided by lgrenc.def (since version 0.8 from 2013-05-13)
in lib/unicodesymbols. This fixes the PDF bookmarks (except for the
legacy input encoding iso-8859-7) and solves the problem of a missing
"v" character in Libertine LGR fonts (see lyx-users from 2018-01-29).
The ctest unicodesymbols/008-greek-and-coptic_iso8859-7_pdf2" now fails
(due to #9681). This is not a regression, as it is already
"unreliable" (wrong output, Latin character instead of Greek).
Drop compatibility definition of \~ as perispomeni accent
(that was required with lgrenc.def < 0.8).
In Spanish and French, dashes around parenthetical statements
are treated similar to brackets: line breaks are not allowed
on the inner side. Use of "breakable" dashes risks accidential
line breaks after the "opening" dash.
(Ligature dashes allow line breaks even if a no-break space follows.)
Fix cases where lyx2lyx adds changes with every round cycle
uncovered by recent ctest change.
Add optional `delete` argument to parser_tools.get*value():
If True, delete the matching line.
More efficient "allowbreak" con/reversion.
New lyx2lyx parser tools find_complete_lines() (replaces find_slice),
del_complete_lines(), and find_across_lines(). Default value 0
for start argument in utility functions.
Rework the implementation of dash-conversion.
Fix failure of revert_dashes() found by lyx2lyx ctests
using an efficient function to find a given sequence of lines
in a list of lines.
Some optimizations using Python idioms instead of C-like code.
Insert ligature breaks between hyphens where
they are separate in 2.2 but ligated by TeX in 2.1.
This fixes output with LyX 2.1 and prevents -- and --- becoming
en and em dash in the LyX source after a round-trip to 2.1
and back.
Solves lyx2lyx ctest failures with a warning about
possible line-break changes.