tex2lyx: support width setting of \printnomenclature

(the tex2lyx support in branch for \printnomenclature is currently broken so this must be backported to branch for 2.0.2, OK Richard?)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39960 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Uwe Stöhr 2011-10-25 00:11:02 +00:00
parent 981e958b9d
commit 8f2791ed20
3 changed files with 24 additions and 2 deletions

View File

@ -55,8 +55,6 @@ Format LaTeX feature LyX feature
354 \printindex*, \printsubindex* InsetIndex 354 \printindex*, \printsubindex* InsetIndex
358 custom bibtex command \bibtex_command 358 custom bibtex command \bibtex_command
358 custom makeindex command \index_command 358 custom makeindex command \index_command
359 set_width InsetCommand nomencl_print
360 width InsetCommand nomencl_print
363 horizontal longtable alignment InsetTabular 363 horizontal longtable alignment InsetTabular
364 branch file name suffix \filename_suffix 364 branch file name suffix \filename_suffix
366 relative lengths for parskip \defskip 366 relative lengths for parskip \defskip

View File

@ -379,6 +379,11 @@ with $a^2+b^2=c^2$ math}.
\printindex{} \printindex{}
\printnomenclature hello
\settowidth{\nomlabelwidth}{URL2}
\printnomenclature{} \printnomenclature{}
\printnomenclature[0.02\linewidth]{}
\end{document} \end{document}

View File

@ -2702,8 +2702,27 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
} }
else if (t.cs() == "printnomenclature") { else if (t.cs() == "printnomenclature") {
string width = "";
string width_type = "";
context.check_layout(os); context.check_layout(os);
begin_command_inset(os, "nomencl_print", "printnomenclature"); begin_command_inset(os, "nomencl_print", "printnomenclature");
// case of a custom width
if (p.hasOpt()) {
width = p.getArg('[', ']');
width = translate_len(width);
width_type = "custom";
}
// case of no custom width
// the case of no custom width but the width set
// via \settowidth{\nomlabelwidth}{***} cannot be supported
// because the user could have set anything, not only the width
// of the longest label (which would be width_type = "auto")
string label = convert_command_inset_arg(p.getArg('{', '}'));
if (label.empty() && width_type.empty())
width_type = "none";
os << "set_width \"" << width_type << "\"\n";
if (width_type == "custom")
os << "width \"" << width << '\"';
end_inset(os); end_inset(os);
skip_spaces_braces(p); skip_spaces_braces(p);
} }