}
-docstring Paragraph::expandLabel(Layout const & layout,
+docstring Paragraph::expandLabel(Layout const & layout,
+ BufferParams const & bparams) const
+{
+ return expandParagraphLabel(layout, bparams, true);
+}
+
+
+docstring Paragraph::expandDocBookLabel(Layout const & layout,
+ BufferParams const & bparams) const
+{
+ return expandParagraphLabel(layout, bparams, false);
+}
+
+
+docstring Paragraph::expandParagraphLabel(Layout const & layout,
BufferParams const & bparams, bool process_appendix) const
{
DocumentClass const & tclass = bparams.documentClass();
docstring parent(fmt, i + 1, j - i - 1);
docstring label = from_ascii("??");
if (tclass.hasLayout(parent))
- docstring label = expandLabel(tclass[parent], bparams,
+ docstring label = expandParagraphLabel(tclass[parent], bparams,
process_appendix);
fmt = docstring(fmt, 0, i) + label
+ docstring(fmt, j + 1, docstring::npos);
unsigned int column = 0;
if (body_pos > 0) {
- os << '[';
- column += 1;
+ // the optional argument is kept in curly brackets in
+ // case it contains a ']'
+ os << "[{";
+ column += 2;
basefont = getLabelFont(bparams, outerfont);
} else {
basefont = getLayoutFont(bparams, outerfont);
runparams);
runningChange = Change(Change::UNCHANGED);
- os << "] ";
- column +=2;
+ os << "}] ";
+ column +=3;
}
if (style.isCommand()) {
os << '{';
// Needed if there is an optional argument but no contents.
if (body_pos > 0 && body_pos == size()) {
- os << "]~";
+ os << "}]~";
return_value = false;
}