+ code.
+ */
+
+class otexrowstream {
+public:
+ ///
+ explicit otexrowstream(odocstream & os);
+ /// defaulted
+ ~otexrowstream();
+ ///
+ odocstream & os() { return os_; }
+ ///
+ TexRow & texrow() { return *texrow_; }
+ ///
+ unique_ptr<TexRow> releaseTexRow();
+ ///
+ void put(char_type const & c);
+ ///
+ void append(TexString ts);
+private:
+ ///
+ odocstream & os_;
+ ///
+ unique_ptr<TexRow> texrow_;
+};
+
+///
+otexrowstream & operator<<(otexrowstream &, odocstream_manip);
+///
+otexrowstream & operator<<(otexrowstream &, TexString);
+///
+otexrowstream & operator<<(otexrowstream &, docstring const &);
+///
+otexrowstream & operator<<(otexrowstream &, std::string const &);
+///
+otexrowstream & operator<<(otexrowstream &, char const *);
+///
+otexrowstream & operator<<(otexrowstream &, char);
+///
+template <typename Type>
+otexrowstream & operator<<(otexrowstream & ots, Type value);
+
+
+/** Subclass for otexrowstream.
+ This class is used to ensure that no blank lines may be inadvertently output.