Kate-the-Empress.epub: onefile.tex
pandoc -t epub --standalone -o $@ $+
-Kate-the-Empress.fb2.zip: onefile.zip
- ./Tex2fb2 fb2meta.xml onefile.tex >Kate-the-Empress.fb2
+Kate-the-Empress.fb2.zip: Kate-the-Empress.fb2
zip Kate-the-Empress.fb2.zip Kate-the-Empress.fb2
- rm Kate-the-Empress.fb2
+
+Kate-the-Empress.fb2: onefile.tex Tex2fb2 fb2meta.xml
+ ./Tex2fb2 fb2meta.xml onefile.tex >Kate-the-Empress.fb2
+
+fb2lint: Kate-the-Empress.fb2 $(wildcard *.xsd)
+ xmllint --schema FictionBook2.1.xsd Kate-the-Empress.fb2 >/dev/null 2>$@
onefile.tex: joinfiles.awk $(wildcard *.tex)
awk -f joinfiles.awk book.tex > $@
s/(\s)\s+/$1/g;
#replace TeX ligatures ~ --- << >> \% with appropriate unicode symbols
s/~/\xA0/g;
-s/---/-/g;
+s/---/—/g;
s/<</«/g;
s/>>/»/g;
s/\\%/%/g;
}
print "</body>\n";
## print footnotes
-print "<body id=\"notes\">\n$footnotes\n</body>" if $footnotes;
+print "<body>\n$footnotes\n</body>" if $footnotes;
print "</FictionBook>";
sub add_to_section {
my $data = shift;
return if ($#sections<0) ;
+ if ($data =~ /^\s*<section>/ && $sections[$#sections]->{data} !~ /^\s*<section>/) {
+ $sections[$#sections]->{data} = tag($sections[$#sections]->{data},"section")."\n";
+ }
$sections[$#sections]->{data}.=$data;
}
if ($str->{title}) {
$content = tag($str->{title},"title");
}
- $content .= $str->{data};
+ if ($str->{data} =~ /^\s*$/s) {
+ $content .= "<p>\n</p>";
+ } else {
+ $content .= $str->{data};
+ }
if ($#sections >=0) {
add_to_section(tag($content,$tag)."\n");
} else {
sub tag {
my ($content,$name) = @_;
- return "" if $content =~ /^\s*$/s;
+ $content =~s/^\s+//s;
+ return "" unless $content;
return "<$name>$content</$name>";
}
него одного.</p>
</annotation>
<date value="2014-01-01">1994-2014</date>
-<coverpage />
<lang>ru</lang>
</title-info>
<document-info>
+<author><first-name>Виктор</first-name><last-name>Вагнер</last-name></author>
<program-used>Perl</program-used>
+<date value="2013-11-12">12.11.2013</date>
<src-url>http://www.wagner.pp.ru/~vitus/fiction</src-url>
+<id>00000</id>
+<version>0.8</version>
</document-info>
+
</description>