]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetLabel.cpp
de.po
[lyx.git] / src / insets / InsetLabel.cpp
index 768d8293dce23fe625d354419ac5f0b75899870a..6d5c0b6ddde9a1f1392772dbd52515caf5b0e4e2 100644 (file)
@@ -28,6 +28,7 @@
 #include "output_xhtml.h"
 #include "ParIterator.h"
 #include "sgml.h"
+#include "texstream.h"
 #include "Text.h"
 #include "TextClass.h"
 #include "TocBackend.h"
@@ -82,10 +83,11 @@ void InsetLabel::uniqueLabel(docstring & label) const
 }
 
 
-void InsetLabel::updateLabel(docstring const & new_label)
+void InsetLabel::updateLabel(docstring const & new_label, bool const active)
 {
        docstring label = new_label;
-       uniqueLabel(label);
+       if (active)
+               uniqueLabel(label);
        setParam("name", label);
 }
 
@@ -293,6 +295,22 @@ void InsetLabel::doDispatch(Cursor & cur, FuncRequest & cmd)
 }
 
 
+void InsetLabel::latex(otexstream & os, OutputParams const & runparams_in) const
+{
+       OutputParams runparams = runparams_in;
+       docstring command = getCommand(runparams);
+       // In macros with moving arguments, such as \section,
+       // we store the label and output it after the macro (#2154)
+       if (runparams_in.postpone_fragile_stuff)
+               runparams_in.post_macro += command;
+       else {
+               if (runparams.moving_arg)
+                       os << "\\protect";
+               os << command;
+       }
+}
+
+
 int InsetLabel::plaintext(odocstringstream & os,
         OutputParams const &, size_t) const
 {