mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
DocBook: implement InsetBox titles.
This commit is contained in:
parent
3711a38b9c
commit
50f011e062
192
autotests/export/docbook/A0_Poster_Simple.lyx
Normal file
192
autotests/export/docbook/A0_Poster_Simple.lyx
Normal file
@ -0,0 +1,192 @@
|
||||
#LyX 2.4 created this file. For more info see https://www.lyx.org/
|
||||
\lyxformat 598
|
||||
\begin_document
|
||||
\begin_header
|
||||
\save_transient_properties true
|
||||
\origin unavailable
|
||||
\textclass a0poster
|
||||
\begin_preamble
|
||||
% Adjust padding in boxes
|
||||
\setlength\fboxsep{12pt}
|
||||
% Added by lyx2lyx
|
||||
\setlength{\parskip}{\bigskipamount}
|
||||
\setlength{\parindent}{0pt}
|
||||
\end_preamble
|
||||
\options a0,portrait
|
||||
\use_default_options false
|
||||
\maintain_unincluded_children no
|
||||
\language english
|
||||
\language_package default
|
||||
\inputencoding utf8
|
||||
\fontencoding auto
|
||||
\font_roman "palatino" "default"
|
||||
\font_sans "default" "default"
|
||||
\font_typewriter "courier" "default"
|
||||
\font_math "auto" "auto"
|
||||
\font_default_family default
|
||||
\use_non_tex_fonts false
|
||||
\font_sc false
|
||||
\font_roman_osf false
|
||||
\font_sans_osf false
|
||||
\font_typewriter_osf false
|
||||
\font_sf_scale 100 100
|
||||
\font_tt_scale 100 100
|
||||
\use_microtype false
|
||||
\use_dash_ligatures false
|
||||
\graphics default
|
||||
\default_output_format default
|
||||
\output_sync 0
|
||||
\bibtex_command default
|
||||
\index_command default
|
||||
\paperfontsize default
|
||||
\spacing single
|
||||
\use_hyperref false
|
||||
\papersize default
|
||||
\use_geometry true
|
||||
\use_package amsmath 1
|
||||
\use_package amssymb 1
|
||||
\use_package cancel 1
|
||||
\use_package esint 1
|
||||
\use_package mathdots 1
|
||||
\use_package mathtools 1
|
||||
\use_package mhchem 1
|
||||
\use_package stackrel 1
|
||||
\use_package stmaryrd 1
|
||||
\use_package undertilde 1
|
||||
\cite_engine basic
|
||||
\cite_engine_type default
|
||||
\biblio_style plain
|
||||
\use_bibtopic false
|
||||
\use_indices false
|
||||
\paperorientation portrait
|
||||
\suppress_date false
|
||||
\justification true
|
||||
\use_refstyle 0
|
||||
\use_minted 0
|
||||
\use_lineno 0
|
||||
\index Index
|
||||
\shortcut idx
|
||||
\color #008000
|
||||
\end_index
|
||||
\leftmargin 1cm
|
||||
\topmargin 1cm
|
||||
\rightmargin 1cm
|
||||
\bottommargin 1cm
|
||||
\secnumdepth 0
|
||||
\tocdepth 0
|
||||
\paragraph_separation indent
|
||||
\paragraph_indentation default
|
||||
\is_math_indent 0
|
||||
\math_numbering_side default
|
||||
\quotes_style english
|
||||
\dynamic_quotes 0
|
||||
\papercolumns 1
|
||||
\papersides 1
|
||||
\paperpagestyle empty
|
||||
\tablestyle default
|
||||
\tracking_changes false
|
||||
\output_changes false
|
||||
\change_bars false
|
||||
\postpone_fragile_content false
|
||||
\html_math_output 0
|
||||
\html_css_as_file 0
|
||||
\html_be_strict false
|
||||
\docbook_table_output 0
|
||||
\end_header
|
||||
|
||||
\begin_body
|
||||
|
||||
\begin_layout Standard
|
||||
\align center
|
||||
\begin_inset Box Shadowbox
|
||||
position "c"
|
||||
hor_pos "c"
|
||||
has_inner_box 1
|
||||
inner_pos "c"
|
||||
use_parbox 1
|
||||
use_makebox 0
|
||||
width "98col%"
|
||||
special "none"
|
||||
height "5cm"
|
||||
height_special "none"
|
||||
thickness "0.4pt"
|
||||
separation "3pt"
|
||||
shadowsize "4pt"
|
||||
framecolor "black"
|
||||
backgroundcolor "none"
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
\noindent
|
||||
\align center
|
||||
|
||||
\series bold
|
||||
\noun on
|
||||
\begin_inset Flex Most Giant Snippet
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
\noindent
|
||||
|
||||
\series bold
|
||||
\noun on
|
||||
Poster Heading
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
\begin_inset Box Boxed
|
||||
position "t"
|
||||
hor_pos "c"
|
||||
has_inner_box 1
|
||||
inner_pos "t"
|
||||
use_parbox 0
|
||||
use_makebox 0
|
||||
width "98col%"
|
||||
special "none"
|
||||
height "1in"
|
||||
height_special "totalheight"
|
||||
thickness "0.4pt"
|
||||
separation "3pt"
|
||||
shadowsize "4pt"
|
||||
framecolor "black"
|
||||
backgroundcolor "none"
|
||||
status open
|
||||
|
||||
\begin_layout Section
|
||||
Summary
|
||||
\end_layout
|
||||
|
||||
\begin_layout Itemize
|
||||
For multiple columns, use the
|
||||
\begin_inset Quotes eld
|
||||
\end_inset
|
||||
|
||||
Multiple Columns
|
||||
\begin_inset Quotes erd
|
||||
\end_inset
|
||||
|
||||
module as documented in
|
||||
\family sans
|
||||
Help\SpecialChar menuseparator
|
||||
Additional Features
|
||||
\family default
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\end_body
|
||||
\end_document
|
16
autotests/export/docbook/A0_Poster_Simple.xml
Normal file
16
autotests/export/docbook/A0_Poster_Simple.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- This DocBook file was created by LyX 2.4.0dev
|
||||
See http://www.lyx.org/ for more information -->
|
||||
<article xml:lang="en_US" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.2">
|
||||
<sidebar role='shadowbox'>
|
||||
Poster Heading
|
||||
</sidebar>
|
||||
<sidebar role='boxed'>
|
||||
<title>Summary</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>For multiple columns, use the “Multiple Columns” module as documented in <emphasis role='sans'>Help⇒Additional Features</emphasis>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sidebar>
|
||||
</article>
|
@ -26,6 +26,7 @@
|
||||
#include "LaTeXFeatures.h"
|
||||
#include "Lexer.h"
|
||||
#include "MetricsInfo.h"
|
||||
#include "output_docbook.h"
|
||||
#include "output_xhtml.h"
|
||||
#include "TexRow.h"
|
||||
#include "texstream.h"
|
||||
@ -727,7 +728,21 @@ void InsetBox::docbook(XMLStream & xs, OutputParams const & runparams) const
|
||||
LYXERR0("Assertion failed: box layout " + getLayout().name() + " missing DocBookWrapperTag.");
|
||||
}
|
||||
|
||||
InsetText::docbook(xs, runparams);
|
||||
// If the box starts with a sectioning item, use as box title.
|
||||
auto current_par = paragraphs().begin();
|
||||
if (current_par->layout().category() == from_utf8("Sectioning")) {
|
||||
// Only generate the first paragraph.
|
||||
current_par = makeAny(text(), buffer(), xs, runparams, paragraphs().begin());
|
||||
}
|
||||
|
||||
xs.startDivision(false);
|
||||
// Don't call InsetText::docbook, as this would generate all paragraphs in the inset, not the ones we are
|
||||
// interested in. The best solution would be to call docbookParagraphs with an updated OutputParams object to only
|
||||
// generate paragraphs after the title, but it leads to strange crashes, as if text().paragraphs() then returns
|
||||
// a smaller set of paragrphs.
|
||||
while (current_par != paragraphs().end())
|
||||
current_par = makeAny(text(), buffer(), xs, runparams, current_par);
|
||||
xs.endDivision();
|
||||
|
||||
if (!getLayout().docbookwrappertag().empty()) {
|
||||
if (!xs.isLastTagCR())
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "BufferParams.h"
|
||||
#include "Font.h"
|
||||
#include "InsetList.h"
|
||||
#include "output_docbook.h"
|
||||
#include "Paragraph.h"
|
||||
#include "ParagraphList.h"
|
||||
#include "ParagraphParameters.h"
|
||||
@ -347,13 +348,6 @@ void closeParTag(XMLStream & xs, Paragraph const * par, Paragraph const * nextpa
|
||||
}
|
||||
|
||||
|
||||
ParagraphList::const_iterator makeAny(Text const &,
|
||||
Buffer const &,
|
||||
XMLStream &,
|
||||
OutputParams const &,
|
||||
ParagraphList::const_iterator);
|
||||
|
||||
|
||||
void makeBibliography(
|
||||
Text const & text,
|
||||
Buffer const & buf,
|
||||
@ -714,35 +708,6 @@ void makeCommand(
|
||||
}
|
||||
|
||||
|
||||
ParagraphList::const_iterator makeAny(Text const &text,
|
||||
Buffer const &buf,
|
||||
XMLStream &xs,
|
||||
OutputParams const &runparams,
|
||||
ParagraphList::const_iterator par)
|
||||
{
|
||||
switch (par->layout().latextype) {
|
||||
case LATEX_COMMAND:
|
||||
makeCommand(text, buf, xs, runparams, par);
|
||||
break;
|
||||
case LATEX_ENVIRONMENT:
|
||||
makeEnvironment(text, buf, xs, runparams, par);
|
||||
break;
|
||||
case LATEX_LIST_ENVIRONMENT:
|
||||
case LATEX_ITEM_ENVIRONMENT:
|
||||
// Only case when makeAny() might consume more than one paragraph.
|
||||
return makeListEnvironment(text, buf, xs, runparams, par);
|
||||
case LATEX_PARAGRAPH:
|
||||
makeParagraph(text, buf, xs, runparams, par);
|
||||
break;
|
||||
case LATEX_BIB_ENVIRONMENT:
|
||||
makeBibliography(text, buf, xs, runparams, par);
|
||||
break;
|
||||
}
|
||||
++par;
|
||||
return par;
|
||||
}
|
||||
|
||||
|
||||
bool isLayoutSectioning(Layout const & lay)
|
||||
{
|
||||
return lay.category() == from_utf8("Sectioning");
|
||||
@ -862,6 +827,35 @@ DocBookInfoTag getParagraphsWithInfo(ParagraphList const ¶graphs,
|
||||
} // end anonymous namespace
|
||||
|
||||
|
||||
ParagraphList::const_iterator makeAny(Text const &text,
|
||||
Buffer const &buf,
|
||||
XMLStream &xs,
|
||||
OutputParams const &runparams,
|
||||
ParagraphList::const_iterator par)
|
||||
{
|
||||
switch (par->layout().latextype) {
|
||||
case LATEX_COMMAND:
|
||||
makeCommand(text, buf, xs, runparams, par);
|
||||
break;
|
||||
case LATEX_ENVIRONMENT:
|
||||
makeEnvironment(text, buf, xs, runparams, par);
|
||||
break;
|
||||
case LATEX_LIST_ENVIRONMENT:
|
||||
case LATEX_ITEM_ENVIRONMENT:
|
||||
// Only case when makeAny() might consume more than one paragraph.
|
||||
return makeListEnvironment(text, buf, xs, runparams, par);
|
||||
case LATEX_PARAGRAPH:
|
||||
makeParagraph(text, buf, xs, runparams, par);
|
||||
break;
|
||||
case LATEX_BIB_ENVIRONMENT:
|
||||
makeBibliography(text, buf, xs, runparams, par);
|
||||
break;
|
||||
}
|
||||
++par;
|
||||
return par;
|
||||
}
|
||||
|
||||
|
||||
xml::FontTag docbookStartFontTag(xml::FontTypes type)
|
||||
{
|
||||
return xml::FontTag(from_utf8(fontToDocBookTag(type)), from_utf8(fontToAttribute(type)), type);
|
||||
|
@ -16,6 +16,7 @@
|
||||
#define OUTPUT_DOCBOOK_H
|
||||
|
||||
#include "LayoutEnums.h"
|
||||
#include "ParagraphList.h"
|
||||
|
||||
#include "support/docstream.h"
|
||||
#include "support/strfwd.h"
|
||||
@ -27,18 +28,23 @@ class Buffer;
|
||||
class OutputParams;
|
||||
class Text;
|
||||
|
||||
///
|
||||
std::string const fontToDocBookTag(xml::FontTypes type);
|
||||
///
|
||||
/// generates an xml::StartTag for the given style
|
||||
xml::FontTag docbookStartFontTag(xml::FontTypes type);
|
||||
///
|
||||
/// generates an xml::EndTag for the given style
|
||||
xml::EndFontTag docbookEndFontTag(xml::FontTypes type);
|
||||
|
||||
///
|
||||
void docbookParagraphs(Text const & text,
|
||||
Buffer const & buf,
|
||||
XMLStream & os,
|
||||
OutputParams const & runparams);
|
||||
/// output a series of paragraphs into the XMLStream
|
||||
void docbookParagraphs(Text const &,
|
||||
Buffer const &,
|
||||
XMLStream &,
|
||||
OutputParams const &);
|
||||
|
||||
/// output a single paragraph into the XMLStream
|
||||
ParagraphList::const_iterator makeAny(Text const &,
|
||||
Buffer const &,
|
||||
XMLStream &,
|
||||
OutputParams const &,
|
||||
ParagraphList::const_iterator);
|
||||
|
||||
} // namespace lyx
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user