softcover 0.7.5 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/softcover/builders/pdf.rb +32 -22
- data/lib/softcover/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a83ba9f61643640f01082c09127c294477feef73
|
4
|
+
data.tar.gz: a12fcfb63d60b4df9d323e8353d7439ebac6a0aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05bac2e39591b47a03eb6d53844e2d677c31a77cc273af9e51bb30105be2d55a7192362d066fc088b38c5afc96cff9c2fbe87667f705251e8a9fd7df4de3732b
|
7
|
+
data.tar.gz: b395d5d2bfe447838c9031cc7444a42541c41670e482b08af20476f5cb1784112e3bb25e2517827ad265df3c0f9d97cbff02777b30734aeef6f9d1f6f3ab15d8
|
@@ -42,40 +42,21 @@ module Softcover
|
|
42
42
|
write_pygments_file(:latex)
|
43
43
|
copy_polytexnic_sty
|
44
44
|
|
45
|
-
if options[:'find-overfull']
|
46
|
-
tmp_name = book_filename.sub('.tex', '.tmp.tex')
|
47
|
-
# The way we do things, code listings show up as "Overfull", but
|
48
|
-
# they're actually fine, so filter them out.
|
49
|
-
filter_out_listings = "grep -v 3.22281pt"
|
50
|
-
# Because each chapter typically lives in a separate file, it's
|
51
|
-
# hard to correlate Overfull line numbers with lines in the source,
|
52
|
-
# so we use grep's -A flag to provide some context instead. Authors
|
53
|
-
# can then use their text editors' search function to find the
|
54
|
-
# corresponding place in the text.
|
55
|
-
show_context = 'grep -A 3 "Overfull \\\\\\\\hbox"'
|
56
|
-
cmd = "xelatex #{tmp_name} | #{filter_out_listings} | #{show_context}"
|
57
|
-
silence_stream(STDERR) { execute cmd }
|
58
|
-
return
|
59
|
-
end
|
60
|
-
|
61
|
-
tmp_filename = Softcover::Utils.tmpify(manifest, book_filename)
|
62
|
-
build_pdf = "#{xelatex} #{tmp_filename}"
|
63
|
-
# Run the command twice (to guarantee up-to-date cross-references)
|
64
|
-
# unless explicitly overriden.
|
65
45
|
# Renaming the PDF in the command is necessary because `execute`
|
66
46
|
# below uses `exec` (except in tests, where it breaks). Since `exec`
|
67
47
|
# causes the Ruby process to end, any Ruby code after `exec`
|
68
48
|
# is ignored.
|
69
49
|
# (The reason for using `exec` is so that LaTeX errors get emitted to
|
70
50
|
# the screen rather than just hanging the process.)
|
71
|
-
|
72
|
-
cmd = "#{pdf_cmd} ; #{rename_pdf(basename)}"
|
51
|
+
cmd = "#{pdf_cmd(book_filename, options)} ; #{rename_pdf(basename)}"
|
73
52
|
# Here we use `system` when making a preview because the preview command
|
74
53
|
# needs to run after the main PDF build.
|
75
54
|
if options[:quiet] || options[:silent]
|
76
55
|
silence_stream(STDERR) do
|
77
56
|
silence { options[:preview] ? system(cmd) : execute(cmd) }
|
78
57
|
end
|
58
|
+
elsif options[:'find-overfull']
|
59
|
+
silence_stream(STDERR) { execute(cmd) }
|
79
60
|
else
|
80
61
|
options[:preview] ? system(cmd) : execute(cmd)
|
81
62
|
end
|
@@ -92,6 +73,35 @@ module Softcover
|
|
92
73
|
@xelatex ||= executable(filename, message)
|
93
74
|
end
|
94
75
|
|
76
|
+
# Returns the command to build the PDF (once).
|
77
|
+
def build_pdf(book_filename, options={})
|
78
|
+
tmp_filename = Softcover::Utils.tmpify(manifest, book_filename)
|
79
|
+
"#{xelatex} #{tmp_filename} #{options[:filters]}"
|
80
|
+
end
|
81
|
+
|
82
|
+
# Returns the full command to build the PDF.
|
83
|
+
def pdf_cmd(book_filename, options={})
|
84
|
+
if options[:once]
|
85
|
+
build_pdf(book_filename)
|
86
|
+
elsif options[:'find-overfull']
|
87
|
+
# The way we do things, code listings show up as "Overfull", but
|
88
|
+
# they're actually fine, so filter them out.
|
89
|
+
filter_out_listings = "grep -v 3.22281pt"
|
90
|
+
# Because each chapter typically lives in a separate file, it's
|
91
|
+
# hard to correlate Overfull line numbers with lines in the source,
|
92
|
+
# so we use grep's -A flag to provide some context instead. Authors
|
93
|
+
# can then use their text editors' search function to find the
|
94
|
+
# corresponding place in the text.
|
95
|
+
show_context = 'grep -A 3 "Overfull \\\\\\\\hbox"'
|
96
|
+
build_pdf(book_filename,
|
97
|
+
filters: "| #{filter_out_listings} | #{show_context}" )
|
98
|
+
else
|
99
|
+
# Run the command twice (to guarantee up-to-date cross-references).
|
100
|
+
cmd = build_pdf(book_filename)
|
101
|
+
"#{cmd} ; #{cmd}"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
95
105
|
# Returns the command to rename the temp PDF.
|
96
106
|
# The purpose is to match the original filename.
|
97
107
|
# For example, foo_bar.tex should produce foo_bar.pdf.
|
data/lib/softcover/version.rb
CHANGED