Fix #10778 (issue with CJK and language nesting)

When using CJK, don't try to close a language that was never
opened before, such as when it is the main language.
This commit is contained in:
Enrico Forestieri 2017-11-08 08:44:00 +01:00
parent 3887ffb24f
commit 3628ceec48
4 changed files with 18 additions and 0 deletions

View File

@ -2486,6 +2486,7 @@ void Paragraph::latex(BufferParams const & bparams,
bool const using_begin_end = runparams.use_polyglossia ||
!lang_end_command.empty();
if (!running_lang.empty() &&
(!using_begin_end || running_lang == openLanguageName()) &&
font.language()->encoding()->package() == Encoding::CJK) {
string end_tag = subst(lang_end_command,
"$$lang",

View File

@ -527,6 +527,14 @@ void popLanguageName()
}
string const & openLanguageName()
{
OutputState * state = getOutputState();
return openLanguageName(state);
}
void latexArgInsets(Paragraph const & par, otexstream & os,
OutputParams const & runparams, Layout::LaTeXArgMap const & latexargs, string const & prefix)
{

View File

@ -39,6 +39,13 @@ void pushLanguageName(std::string const & lang, bool localswitch = false);
*/
void popLanguageName();
/** Return a reference to the last active language opened with
polyglossia or when using begin/end commands. If none or when
using babel with only a begin command, return a reference to
an empty string.
*/
std::string const & openLanguageName();
/** Export optional and required arguments of the paragraph \p par.
Non-existing required arguments are output empty: {}.
*/

View File

@ -71,6 +71,8 @@ What's new
(2013ff.) instead of vietnam.ldf that was shipped with vntex previously
(bug 10743).
- Fix issue with language nesting when using Asian languages (bug 10778).
* LYX2LYX