Floatpage
This commit is contained in:
parent
9dcf87915e
commit
bb05a3c913
2 changed files with 40 additions and 10 deletions
|
@ -168,10 +168,10 @@
|
|||
\fi
|
||||
}}
|
||||
|
||||
% Obecny plovouci objekt: \float{objekt}{popisek}{optional-id}
|
||||
\def\float#1#2#3{\floatinsert{
|
||||
\medskip
|
||||
\centerline{#1}
|
||||
% Obecny plovouci objekt: \float{objekt}{popisek}{mezera pred}{mezera po}
|
||||
\def\figure#1#2#3#4{
|
||||
\medskip#3
|
||||
\centerline{#1}#4
|
||||
\medskip
|
||||
\smallskip
|
||||
{
|
||||
|
@ -189,7 +189,13 @@
|
|||
#2
|
||||
}}
|
||||
\fi
|
||||
}}}
|
||||
}}
|
||||
|
||||
\def\floatpage#1{
|
||||
\pageinsert
|
||||
\vbox to \vsize{#1}
|
||||
\endinsert
|
||||
}
|
||||
|
||||
% Dva floaty vedle sebe: \float{objekt1}{popisek1}{id1}{objekt2}{popisek2}{id2}
|
||||
\def\twofloats#1#2#3#4#5#6{\floatinsert{
|
||||
|
|
|
@ -24,6 +24,8 @@ class UCWTexGenerator(OutputGenerator):
|
|||
self.imageProcessor = imageProcessor
|
||||
self._bold = 0
|
||||
self._italic = 0
|
||||
|
||||
self._floatpages = {}
|
||||
super().__init__(output_file, *args, **kwargs)
|
||||
|
||||
def escape_special_chars(self, text: str) -> str:
|
||||
|
@ -159,9 +161,8 @@ class UCWTexGenerator(OutputGenerator):
|
|||
self.write(e.text)
|
||||
self.write(r"`")
|
||||
|
||||
def generate_Figure(self, e: Figure):
|
||||
self.ensure_empty(2)
|
||||
self.writeln(r"\float{")
|
||||
def generate_nonfloat_Figure(self, e: Figure):
|
||||
self.writeln(r"\figure{")
|
||||
self.indent_more()
|
||||
self.generate(e.content)
|
||||
self.indent_less()
|
||||
|
@ -177,8 +178,31 @@ class UCWTexGenerator(OutputGenerator):
|
|||
self.indent_less()
|
||||
self.writeln("}")
|
||||
self.indent_less()
|
||||
self.writeln(r"}{}")
|
||||
self.ensure_empty(2)
|
||||
self.writeln(r"}{}{}")
|
||||
|
||||
|
||||
def generate_Figure(self, e: Figure):
|
||||
if "floatpage" in e.attributes:
|
||||
fp = e.attributes["floatpage"]
|
||||
flush = fp[-1]=="!"
|
||||
if flush:
|
||||
fp = fp[:-1]
|
||||
self._floatpages.setdefault(fp, [])
|
||||
self._floatpages[fp].append(e)
|
||||
if flush:
|
||||
self.writeln(r"\floatpage{")
|
||||
self.writeln(r"\vfill")
|
||||
for x in self._floatpages[fp]:
|
||||
self.generate_nonfloat_Figure(x)
|
||||
self.writeln(r"\vfill")
|
||||
self.writeln(r"}")
|
||||
del self._floatpages[fp]
|
||||
else:
|
||||
self.ensure_empty(2)
|
||||
self.writeln(r"\floatinsert{")
|
||||
self.generate_nonfloat_Figure(e)
|
||||
self.writeln(r"}")
|
||||
self.ensure_empty(2)
|
||||
|
||||
def generate_Emph(self, e: Emph):
|
||||
if self._bold > 0:
|
||||
|
|
Loading…
Reference in a new issue