X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNomencl.cpp;h=880f0fff52aec86df97c015b3ef9995e00c6af15;hb=83f214d636bff1c7eee6b99eb3293f064591429a;hp=1613542db38dad187f9d8e19f321a5be6d8dab10;hpb=3391fed36a574fb729f243888258d1b6d45b0251;p=lyx.git diff --git a/src/insets/InsetNomencl.cpp b/src/insets/InsetNomencl.cpp index 1613542db3..880f0fff52 100644 --- a/src/insets/InsetNomencl.cpp +++ b/src/insets/InsetNomencl.cpp @@ -65,9 +65,12 @@ ParamInfo const & InsetNomencl::findInfo(string const & /* cmdName */) if (param_info_.empty()) { param_info_.add("prefix", ParamInfo::LATEX_OPTIONAL); param_info_.add("symbol", ParamInfo::LATEX_REQUIRED, - ParamInfo::HANDLING_LATEXIFY); + ParamInfo::ParamHandling(ParamInfo::HANDLING_LATEXIFY + | ParamInfo::HANDLING_INDEX_ESCAPE)); param_info_.add("description", ParamInfo::LATEX_REQUIRED, - ParamInfo::HANDLING_LATEXIFY); + ParamInfo::ParamHandling(ParamInfo::HANDLING_LATEXIFY + | ParamInfo::HANDLING_INDEX_ESCAPE)); + param_info_.add("literal", ParamInfo::LYX_INTERNAL); } return param_info_; } @@ -134,6 +137,7 @@ int InsetNomencl::docbookGlossary(odocstream & os) const void InsetNomencl::validate(LaTeXFeatures & features) const { features.require("nomencl"); + InsetCommand::validate(features); } @@ -160,7 +164,7 @@ InsetPrintNomencl::InsetPrintNomencl(Buffer * buf, InsetCommandParams const & p) ParamInfo const & InsetPrintNomencl::findInfo(string const & /* cmdName */) { - // The symbol width is set via nomencl's \nomlabelwidth in + // The symbol width is set via nomencl's \nomlabelwidth in // InsetPrintNomencl::latex and not as optional parameter of // \printnomenclature static ParamInfo param_info_; @@ -212,26 +216,26 @@ docstring InsetPrintNomencl::xhtml(XHTMLStream &, OutputParams const & op) const InsetCommand const * ic = inset->asInsetCommand(); if (!ic) return docstring(); - + // FIXME We need a link to the paragraph here, so we // need some kind of struct. docstring const symbol = ic->getParam("symbol"); docstring const desc = ic->getParam("description"); docstring const prefix = ic->getParam("prefix"); docstring const sortas = prefix.empty() ? symbol : prefix; - + entries[sortas] = NomenclEntry(symbol, desc, &par); } - + if (entries.empty()) return docstring(); - + // we'll use our own stream, because we are going to defer everything. // that's how we deal with the fact that we're probably inside a standard // paragraph, and we don't want to be. odocstringstream ods; XHTMLStream xs(ods); - + InsetLayout const & il = getLayout(); string const & tag = il.htmltag(); docstring toclabel = translateIfPossible(from_ascii("Nomenclature"), @@ -239,12 +243,12 @@ docstring InsetPrintNomencl::xhtml(XHTMLStream &, OutputParams const & op) const xs << html::StartTag("div", "class='nomencl'") << html::StartTag(tag, "class='nomencl'") - << toclabel + << toclabel << html::EndTag(tag) << html::CR() << html::StartTag("dl") << html::CR(); - + EntryMap::const_iterator eit = entries.begin(); EntryMap::const_iterator const een = entries.end(); for (; eit != een; ++eit) { @@ -360,8 +364,11 @@ docstring nomenclWidest(Buffer const & buffer, OutputParams const & runparams) if (inset->lyxCode() != NOMENCL_CODE) continue; nomencl = static_cast(inset); - docstring const symbol = - nomencl->getParam("symbol"); + // Use proper formatting. We do not escape makeindex chars here + docstring const symbol = nomencl ? + nomencl->params().prepareCommand(runparams, nomencl->getParam("symbol"), + ParamInfo::HANDLING_LATEXIFY) + : docstring(); // This is only an approximation, // but the best we can get. int const wx = use_gui ? @@ -374,19 +381,9 @@ docstring nomenclWidest(Buffer const & buffer, OutputParams const & runparams) } } // return the widest (or an empty) string - if (symb.empty()) - return symb; - - // we have to encode the string properly - pair latex_symb = - runparams.encoding->latexString(symb, runparams.dryrun); - if (!latex_symb.second.empty()) - LYXERR0("Omitting uncodable characters '" - << latex_symb.second - << "' in nomencl widest string!"); - return latex_symb.first; + return symb; } -} // namespace anon +} // namespace void InsetPrintNomencl::latex(otexstream & os, OutputParams const & runparams_in) const @@ -420,6 +417,7 @@ void InsetPrintNomencl::latex(otexstream & os, OutputParams const & runparams_in void InsetPrintNomencl::validate(LaTeXFeatures & features) const { + features.useInsetLayout(getLayout()); features.require("nomencl"); }