We output the \inputencoding command before the section if possible, and we
ignore all encoding changes in the section. Commands from the unicodesymbols
file will be used for characters that can't be encoded in the current
encoding instead of switching the encoding.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17827 a592a061-630c-0410-9148-cb99ea01b6c8
support.
LyXRC::font_norm stays for now, since it is still used for the kbmap stuff.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17566 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/insetcaption.C
(InsetCaption::latex): Copy back encoding to runparams_in
* src/insets/insetfoot.C
(InsetFoot::latex): ditto
* src/insets/insetnote.C
(InsetNote::latex): ditto
* src/exporter.C
(Exporter::Export): Create runparams with document encoding
* src/converter.C
(bool Converters::convert): ditto
* src/buffer.C
(Buffer::writeLaTeXSource): Copy back encoding to runparams_in
(Buffer::runChktex): Create runparams with document encoding
(Buffer::changeRefsIfUnique): ditto
* src/outputparams.[Ch]
(encoding): New member
* src/lyxfont.C
(LyXFont::latexWriteStartChanges): Don't switch the encoding anymore.
This is now done in Paragraph::simpleTeXOnePar.
(LyXFont::latexWriteEndChanges): Ditto
* src/output_latex.C
(TeXOnePar): Ditto
* src/paragraph.C
(Paragraph::simpleTeXOnePar): Switch the encoding between font
changes if needed.
* All other files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17470 a592a061-630c-0410-9148-cb99ea01b6c8
(Paragraph::Pimpl::simpleTeXSpecialChars): Get rid of the 'font'
argument, since the caller ensures that it is equal to 'running_font'.
* src/paragraph.C
(Paragraph::simpleTeXOnePar): Adjust to change above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17437 a592a061-630c-0410-9148-cb99ea01b6c8
fix LaTeX output wrt change tracking - a file with changes and CT output disabled
should result in the same TeX file as a file with all changes accepted
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17126 a592a061-630c-0410-9148-cb99ea01b6c8
method is unused and would make LyX crash (no CT support etc)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17113 a592a061-630c-0410-9148-cb99ea01b6c8
read from a text file.
* src/encoding.[Ch]
(Encoding::latexChar): New, output a character to LaTeX
(Encoding::validate): New, add needed preamble stuff for a character
(Encodings::read): Read new unicodesymbols file
(Encodings::isCombiningChar): New, is a character a combining char?
* src/paragraph_pimpl.C
(isEncoding): Delete, no longer needed
(getEncoding): New, get the real encoding of a font
(Paragraph::Pimpl::latexSurrogatePair): New, output a surrogate pair
to LaTeX
(Paragraph::Pimpl::simpleTeXBlanks): Use latexSurrogatePair if needed
(Paragraph::Pimpl::simpleTeXSpecialChars): Ditto, and replace several
hardcoded characters with a call of encoding.latexChar()
(Paragraph::Pimpl::validate): replace several hardcoded characters
with a call of encoding.validate()
* src/support/debugstream.h
(basic_debugstream::disable): New, disable the stream completely
(basic_debugstream::enable): New, reenable the stream
* src/lyx_main.[Ch]: Adjust to changes above
* src/paragraph.C: Ditto
* lib/unicodesymbols: New file with UCS4 -> LaTeX command mapping.
It is far from complete yet, but contains most accents on latin
characters.
* lib/Makefile.am: add lib/unicodesymbols
* development/scons/scons_manifest.py: ditto
* development/tools/unicodesymbols.py: Helper script to update
lib/unicodesymbols with new symbols
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16920 a592a061-630c-0410-9148-cb99ea01b6c8
* src/BufferView.C:
* src/text3.C:
* src/text.C: merge methods acceptChange() and rejectChange() to acceptOrRejectChange() because they share a lot of tricky code
* src/text.C: yet another revision of acceptOrRejectChange()
* src/paragraph.C:
* src/paragraph.h:
* src/paragraph_pimpl.C:
* src/paragraph_pimpl.h:
* src/insets/insettabular.C:
* src/insets/insettabular.h:
* src/insets/insettext.C:
* src/insets/insettext.h:
* src/insets/insetbase.h: pass BufferParams to acceptChanges() and rejectChanges() (needed for paragraph merging)
* src/insets/insettext.C: handle end-of-par in acceptChanges() and rejectChanges()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16830 a592a061-630c-0410-9148-cb99ea01b6c8
* src/paragraph.C: stripLeadingSpaces(); return boolean indicating
whether any character has been deleted - either physically or logically
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16798 a592a061-630c-0410-9148-cb99ea01b6c8
(forceDefaultParagraphs): Fix comment: Not all text classes have a
"Standard" layout. What was meant here is the default layout of the
text class.
* src/paragraph.C
(Paragraph::simpleTeXOnePar): ditto
* src/output_latex.C
(latexParagraphs): ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16738 a592a061-630c-0410-9148-cb99ea01b6c8
encodings) more fine grained: From paragraph level to individual character
level. The inputenc package supports that since at least 2000.
* src/insets/insetbase.h
(latex): Document the differences between output to a string stream
and a file stream
* src/buffer.h
(writeLaTeXSource): ditto
* src/output_latex.h
(latexParagraphs): ditto
(switchEncoding): new function to change the encoding of a stream
(and output \inputencoding commands)
* src/paragraph_pimpl.C
(Paragraph::Pimpl::simpleTeXSpecialC): Adjust to latexWriteEndChanges
changes
* src/support/docstream.[Ch]
(setEncoding, operator<<): New stream modifier that changes the
encoding of file streams
* src/lyxfont.[Ch]
(LyXFont::latexWriteStartChanges): Change stream encoding if needed
(LyXFont::latexWriteEndChanges): Change stream encoding if needed
* src/lyxfont.h
(public:):
* src/paragraph.C
(Paragraph::simpleTeXOnePar): Adjust to latexWriteStartChanges and latexWriteEndChanges changes
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
* src/output_latex.C
(TeXOnePar): Remove the ugly hack to for wencoding changes and use
switchEncoding instead. A nice side effect is that the old hack would
not work if the main language encoding is latin1 and a character
would be mapped to a cedilla in the "fake ucs4" encoding, because
iconv refuses to convert such a character to latin1, although it
exists in latin1 (it wants to attach it to a base character).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16633 a592a061-630c-0410-9148-cb99ea01b6c8
- ParagraphMetrics: new class gathering everything related to metrics.
- Paragraph: now derives from ParagraphMetrics.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16335 a592a061-630c-0410-9148-cb99ea01b6c8
- writeout \begin and \end alignment tags on their own lines (bug 3010).
(patch from Gregor Gorjanc and me).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16164 a592a061-630c-0410-9148-cb99ea01b6c8
* src/buffer.C
(Buffer::insertStringAsLines): Uncomment isPrintable test
* src/support/lstrings.C
(compare_no_case): Use char_type and not int for the docstring version
(ascii_tolower): Convert to a template
(compare_ascii_no_case): Do not use a template anymore, because we
need int for the string version and char_type for the docstring
version as intermediate type
(lowercase): Use towlower if possible
(uppercase): Use towupper if possible
* src/support/textutils.h
(isLetterChar): Use iswalpha if possible
(isPrintable): Use iswprint if possible
(isPrintableNonspace): Use iswprint and iswspace if possible
(isDigit): Use iswdigit if possible
* src/paragraph.C
(Paragraph::asString): remove obsolete FIXME
(Paragraph::transformChar): add FIXME
* configure.ac: Add definition of LIBC_WCTYPE_USES_UCS4 to config.h
* development/cmake/config.h.cmake: ditto
* development/scons/SConstruct: ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15893 a592a061-630c-0410-9148-cb99ea01b6c8
* src/paragraph.C
(Paragraph::changeLanguage): Don't forget the dummy font change at
the end of the paragraph when changing the language. This does not
affect the other place where this code is used:
Buffer::changeLanguage.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15890 a592a061-630c-0410-9148-cb99ea01b6c8
* src/paragraph_pimpl.C:
* src/paragraph_pimpl.h:
* src/paragraph.C: get rid of unused method setContentsFromPar()
and remove another change tracking FIXME at the same time
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15676 a592a061-630c-0410-9148-cb99ea01b6c8
Better change time handling. Quote from Changes.C:
Class Change has a changetime field that specifies the exact time at which
a specific change was made. The change time is used as a guidance for the
user while editing his document. Presently, it is not considered for LaTeX
export. To avoid that every keystroke results in a separate change, a
tolerance interval of 5 minutes is used. That means if there are two adjacent
changes that only differ in their change time with abs(ct1 - ct2) < 300 sec,
they will be merged (and the later change time is preserved).
Technically, the check for equality (or similarity) is made in
operator==(...). The merging of similar changes happens in method merge().
Resolve FIXMEs for LyX & LaTeX output.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15569 a592a061-630c-0410-9148-cb99ea01b6c8
* src/*.C:
* src/insets/*.C: implement rejectChanges() in analogy to
acceptChanges();
* src/paragraph_pimpl.C: add assertions for pos, start, and
end parameters
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15542 a592a061-630c-0410-9148-cb99ea01b6c8
* src/paragraph.h: rename erase() to eraseChars()
for consistency with eraseChar()
* src/paragraph_pimpl.h: dito; merge the two erase() methods
* src/*.C: adjust properly
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15478 a592a061-630c-0410-9148-cb99ea01b6c8