Commit Graph

749 Commits

Author SHA1 Message Date
Thibaut Cuvelier
ed7072985e DocBook: for computing font changes, simplify code by removing state evolution from iteration to iteration. This surely makes the code slightly slower (although the compiler should be smart enough), but (much) easier to reason about. 2022-12-27 01:58:48 +01:00
Thibaut Cuvelier
e3eddd4cf9 Add comments about variable usage. 2022-12-26 20:57:44 +01:00
Thibaut Cuvelier
8b6ec979ff Fix a typo in a comment. 2022-12-26 20:57:24 +01:00
Thibaut Cuvelier
bc73a85778 LyXHTML: switch the doctype to (X)HTML5 and only output XML entities.
This is a new take on c8e2c17a that was reverted at da67bde61a due to entities no more recognised by the browsers. Corresponding thread on the mailing list: https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg213179.html

This patch is a huge cleanup overall, by removing the distinction between HTML and XML entities (the latter arrived due to the DocBook support).

In InsetListingParams, I also changed the mechanism that relied on " to use an XML entity to be consistent with the rest of the code, mostly in case someone looks for HTML entities and wonders why they are still there.
2022-12-25 20:48:14 +01:00
Juergen Spitzmueller
1e28965589 Do not wrap forceTLR in \L with babel and unicode engines
It does not seem to be needed, the \L macro is undefined, and there
does not seem to be an alternative.
2022-12-24 09:20:02 +01:00
Thibaut Cuvelier
0e2513a0e8 Amend d4095dc0
Apostrophes were being converted inside code-like areas, like LilyPond insets. This patch fixes tests that started to fail:

  Processing `./60/lily-95ee389a.ly'
  Parsing...
  ././60/lily-95ee389a.ly:7:12: error: undefined character or shorthand: &
  \relative c
             ’’ {  g a b c}
2022-12-09 20:17:58 +01:00
Thibaut Cuvelier
d4095dc0e6 Export ' (straight) as ’ (curly) in DocBook
This is similar to what LaTeX does in its output.

See the (long) discussion in ticket #11244. Port of ad3e6c69b2 for DocBook.

This patch requires delaying entire strings instead of just characters, so that the DocBook code path can be as similar to the XHTML one as possible.
2022-12-09 01:25:34 +01:00
Richard Kimberly Heck
dfa87371f7 Use ranges 2022-12-04 12:06:48 -05:00
Yuriy Skalko
7b23c76b71 Add "semantic linefeeds" after punctuation marks.
We already had such breaks for dot.

File format change.
2022-11-28 11:58:53 +02:00
Kornel Benko
2333af615d Amend 9be6a425, Workaround for advanced search in 'uncover'-inset.
Use getInset(i)->toString() instead of getInset(i)->plaintext()
if searching, so that we get the option of 'uncover' visible to the search engine.
2022-11-04 15:34:49 +01:00
Scott Kostyshak
725168baba Fix gcc-12 warning
From Kornel:

>  /usr2/src/lyx/lyx-git/src/Paragraph.cpp:1931:1: warning: control reaches end of non-void
>  function [-Wreturn-type]
>
> This is with gcc-12, compiled in debug mode.
2022-09-24 21:05:38 -04:00
Juergen Spitzmueller
fee10d2d0d Another inset font switch fix 2022-08-17 18:04:51 +02:00
Juergen Spitzmueller
8ac177f656 Fix font tracking at fontswitch_insets
(hopefully)
2022-08-06 17:29:40 +02:00
Jean-Marc Lasgouttes
ad3e6c69b2 Export ' as ’ in HTML
This is similar to what LaTeX does in its output.

See the (long) discussion in ticket #11244.
2022-07-25 23:07:23 +02:00
Kornel Benko
6c735efb1f FindAdv: In format search could '$'-char be interpreted as math-start.
To handle this case, we use '\lyxdollar' string instead.

Also try to handle '\n' in the docstring directly instead in the
string already converted to utf8.
(The utf8-version is still there, but commented out)
2022-05-13 09:30:30 +02:00
Kornel Benko
62ab563c25 FindAdv: Use private variable for_search
Using the new inline statements
	find_effective(), find_with_non_output(), find_with_deleted(),
	find_set_feature(), find_add_feature() and find_clean_features()
makes the code a slightly better readable.
2022-05-09 22:11:38 +02:00
Kornel Benko
441b0eab23 FindAdv: Amend 64af721a
The space handling is a nightmare.
2022-05-08 22:43:56 +02:00
Kornel Benko
70a762f91c FindAdv: Small improvements 2022-05-05 15:56:15 +02:00
Kornel Benko
9f30de3c5d FindAdv: Partly revert 02c7dbb8. Handle the space in Paragraph.cpp instead. 2022-05-04 15:59:57 +02:00
Kornel Benko
c2229d388b Find: Renamend for_searchAdv to for_serach in src/OutputParams.h
Since this variable is used by quick find too, the naming was misleading
2022-04-12 18:02:12 +02:00
Kornel Benko
8338d1032d FindQuick: Amend 4bd38d8a: Remove now unneeded code 2022-04-09 09:11:38 +02:00
Kornel Benko
4bd38d8a09 FindQuick: Handle quotes special (as in findadv) 2022-04-09 08:52:24 +02:00
Kornel Benko
801768af92 FindQuick: Amend 1f7d90d6: Add some not handled quotation marks 2022-04-08 19:59:55 +02:00
Kornel Benko
1f7d90d636 Find: Advanced + Quick:
Expand list of quotes to include also '» « › ‹'
Enable quick find to search for quotes too
2022-04-08 08:40:32 +02:00
Kornel Benko
498a5cd487 FindAdv: Added possibility to search also in deactvated branches
To include content of deactivated branches to the searched region
one has to use the lyx-funcion
	search-ignore non-output-content true
2022-03-10 10:51:02 +01:00
Thibaut Cuvelier
997f0621c5 Rename LATEX debug level to OUTFILE and use it for DocBook, HTML, and XML messages. 2022-03-01 16:05:42 +01:00
Jean-Marc Lasgouttes
b365a47112 Avoid null pointer dereference
Spotted by coverity. In the real world, getInset should never return
nullptr when isInset is true.
2022-02-20 17:22:07 +01:00
Thibaut Cuvelier
3f9e21b826 CharInfo: allow to store several commands (both text and math) for each character.
Only the first one is returned by default with existing methods to guarantee compatibility with existing code.
2022-02-20 01:33:03 +01:00
Juergen Spitzmueller
f71f71d013 Amend 0789f2f2ae
Use getFont() which considers fonts_default_family adjustments
2022-02-07 16:21:20 +01:00
Juergen Spitzmueller
d66c27de66 Don't set open_font to false if lang hasn't been closed 2022-02-06 10:02:17 +01:00
Juergen Spitzmueller
28dd7b7de3 Do not set open_font true if none was open 2022-02-04 17:24:16 +01:00
Juergen Spitzmueller
cc4ed5e04b Do not try to pop from an empty stack 2022-02-04 17:23:52 +01:00
Jean-Marc Lasgouttes
0789f2f2ae Fix font inside footnote inset
An inset that resets its font (like Footnote) does not care at all
about enclosing font. Therefore the real starting point is the class
default font. This avoid cases where the footnote contents is forced
to \normalsize.

It turns out that the Greyedout note inset, did inherit font but was
declared as not doing it. This commmit changes the definition by
adding \normalfont\normalsize so that no inheritance happens.

Note that actually \normalfont resets everything but the font size.
This does not matter for footnote (which has its own font size) and
greyedout (which is fixed now), but may matter elsewhere. Also, I do
not know what the situation with HTML is.
2021-12-31 13:40:53 +01:00
Juergen Spitzmueller
a5b7eeacaa Remove remaining math cprotection test.
We'll see if someone comes up with a reproducible case, and if so,
whether ordinary protection works here as well.

See #6243
2021-12-27 11:52:25 +01:00
Juergen Spitzmueller
582fe0990f \protect xymatrix in fragile context
(\cprotect'ion not needed then).
2021-12-27 11:42:30 +01:00
Juergen Spitzmueller
596b2d16ee \protect substack in fragile context
(\cprotect'ion not needed then).
2021-12-27 11:37:59 +01:00
Juergen Spitzmueller
3e4c831f1e Remove obsolete \cprotect'ion (#6243) 2021-12-27 10:24:58 +01:00
Jean-Marc Lasgouttes
542445d07d When pasting text, keep line breaks when "parbreak is newline"
This is much easier for listings, ERT or Verbatim.

Fixes bug #8026.
2021-12-26 20:22:01 +01:00
Juergen Spitzmueller
c2f2ba57f1 Do not repeatedly call main_font_encoding()
This method impacts on performance and we store the value anyway in
the output params.
2021-12-20 12:09:12 +01:00
Juergen Spitzmueller
61b8afd893 Paragraph::needsCProtection(): use inset list
rather than checking each pos whether it's an inset or not.

This was a significant performance bottleneck (particularly getInset()
itself seems slow).
2021-12-19 15:39:49 +01:00
Juergen Spitzmueller
a9eb3c9990 Whitespace 2021-11-25 18:47:23 +01:00
Juergen Spitzmueller
5a6498c3d3 Let paragraph::requestSpellcheck() consider contained insets
if "check whole paragraph" has been requested.
2021-11-25 17:04:58 +01:00
Juergen Spitzmueller
f0126b9fdf \\noindent in a paragraph that starts with \\vspace is possible
But the \\vspace must precede \\noindent (the latter leaves vmode)
2021-10-31 11:56:53 +01:00
Juergen Spitzmueller
fbc64ea7ee Amend comment 2021-10-31 10:38:52 +01:00
Juergen Spitzmueller
456a72b62a Do not output \\noindent for paragraphs starting with a vspace
These are not indented anyway, and the extra \\noindent causes whitespace
2021-10-31 10:22:11 +01:00
Juergen Spitzmueller
18a91852e1 Properly terminate \\noindent 2021-10-31 09:58:10 +01:00
Juergen Spitzmueller
633013453e Factor out Paragraph::isPartOfTextSequence
Amends 045c25cf76
2021-10-31 09:26:57 +01:00
Juergen Spitzmueller
045c25cf76 Prevent unneeded (and wrong) \noindent
* When a paragraph is logically empty (only contains stuff which is not
  part of the text sequence

* In centered paragraphs
2021-10-30 14:19:46 +02:00
Juergen Spitzmueller
b55aea6776 Prevent unneeded cprotection in branches (#12378) 2021-10-21 10:27:05 +02:00
Juergen Spitzmueller
9eab66ebb4 Close font switches before comments 2021-09-30 12:53:41 +02:00