summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Krupcale <mkrupcale@matthewkrupcale.com>2019-03-13 22:31:07 -0400
committerMatthew Krupcale <mkrupcale@matthewkrupcale.com>2019-03-13 22:31:07 -0400
commit6f4e0e9bc7eeba99acbb2c3934a83d9dfb7bbab4 (patch)
tree6478310031eb81ca99c1a7476b03372a90491e4f
parent662dceb41496c8c0bf0f028ee42d940011ea75a4 (diff)
downloadbuild2-toolchain-generate-latex.tar.gz
build2-toolchain-generate-latex.tar.xz
build2-toolchain-generate-latex.zip
Add support for LaTeX documentation.generate-latex
* doc/.gitignore: Ignore .tex output * doc/cli.sh: Generate LaTeX man pages and documentation and run through pdflatex * doc/{doc,man}-{prologue,epilogue}.tex: Symlink to prologues and epilogues
-rw-r--r--doc/.gitignore2
-rwxr-xr-xdoc/cli.sh76
l---------doc/doc-epilogue.tex1
l---------doc/doc-prologue.tex1
l---------doc/man-epilogue.tex1
l---------doc/man-prologue.tex1
6 files changed, 68 insertions, 14 deletions
diff --git a/doc/.gitignore b/doc/.gitignore
index 585f985..271500a 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1,3 +1,5 @@
build2-toolchain-*.ps
build2-toolchain-*.pdf
build2-toolchain-*.xhtml
+build2-toolchain-*.tex
+
diff --git a/doc/cli.sh b/doc/cli.sh
index 86a7a1c..111e446 100755
--- a/doc/cli.sh
+++ b/doc/cli.sh
@@ -12,10 +12,14 @@ function error () { info "$*"; exit 1; }
while [ $# -gt 0 ]; do
case $1 in
--clean)
- rm -f build2-toolchain-intro.xhtml build2-toolchain-intro*.ps \
- build2-toolchain-intro*.pdf
- rm -f build2-toolchain-install.xhtml build2-toolchain-install*.ps \
-build2-toolchain-install*.pdf
+ rm -f build2-toolchain-intro.xhtml \
+ build2-toolchain-intro.tex \
+ build2-toolchain-intro*.ps \
+ build2-toolchain-intro*.pdf
+ rm -f build2-toolchain-install.xhtml \
+ build2-toolchain-install.tex \
+ build2-toolchain-install*.ps \
+ build2-toolchain-install*.pdf
exit 0
;;
*)
@@ -24,10 +28,21 @@ build2-toolchain-install*.pdf
esac
done
-function gen () # <name>
+function gen () # <name> <prefix> <...>
{
- local n="$1"
- shift
+ local n="$1"; shift
+ local prefix="$1"; shift
+
+ gen_html "$n" "$prefix" "${@}"
+ gen_latex "$n" "$prefix" "a4" "${@}"
+ gen_latex "$n" "$prefix" "letter" "${@}"
+}
+
+function gen_html () # <name> <prefix> <...>
+{
+ local n="$1"; shift
+ local prefix="$1"; shift
+
cli -I .. \
-v version="$(echo "$version" | sed -e 's/^\([^.]*\.[^.]*\).*/\1/')" \
-v date="$date" \
@@ -41,21 +56,54 @@ function gen () # <name>
--link-regex '%bpkg(#.+)?%../../bpkg/doc/build2-package-manager-manual.xhtml$1%' \
--link-regex '%bbot(#.+)?%../../bbot/doc/build2-build-bot-manual.xhtml$1%' \
--link-regex '%testscript(#.+)?%../../build2/doc/build2-testscript-manual.xhtml$1%' \
---output-prefix build2-toolchain- "${@}" $n.cli
+--output-prefix "$prefix" "${@}" $n.cli
+}
+
+function run_pdflatex () # <name> <paper>
+{
+ local n="$1"
+ local paper="$2"
+
+ if [ "$paper" == "letter" ]; then
+ sed -i 's/a4paper/letterpaper/' "$n.tex"
+ fi
-html2ps -f doc.html2ps:a4.html2ps -o build2-toolchain-$n-a4.ps build2-toolchain-$n.xhtml
-ps2pdf14 -sPAPERSIZE=a4 -dOptimize=true -dEmbedAllFonts=true build2-toolchain-$n-a4.ps build2-toolchain-$n-a4.pdf
+ pdflatex -output-format dvi -jobname="$n-$paper" "$n"
+ dvips "$n-$paper.dvi"
+ pdflatex -output-format pdf -jobname="$n-$paper" "$n"
+ rm -f "$n-$paper".{aux,dvi,log,out,toc}
+}
+
+function gen_latex () # <name> <prefix> <paper> <...>
+{
+ local n="$1"; shift
+ local prefix="$1"; shift
+ local paper="$1"; shift
+
+ cli -I .. \
+-v version="$(echo "$version" | sed -e 's/^\([^.]*\.[^.]*\).*/\1/')" \
+-v date="$date" \
+--generate-latex \
+--latex-prologue-file doc-prologue.tex \
+--latex-epilogue-file doc-epilogue.tex \
+--link-regex '%bbot(#.+)?%../../bbot/doc/build2-build-bot-manual-'"$paper"'.pdf$1%' \
+--link-regex '%bpkg([-.].+)?\.pdf%../../bpkg/doc/bpkg$1-'"$paper"'.pdf%' \
+--link-regex '%bpkg(#.+)?%../../bpkg/doc/build2-package-manager-manual-'"$paper"'.pdf$1%' \
+--link-regex '%bdep([-.].+)?\.pdf%../../bdep/doc/bdep$1-'"$paper"'.pdf%' \
+--link-regex '%testscript(#.+)?%../../build2/doc/build2-testscript-manual-'"$paper"'.pdf$1%' \
+--link-regex '%b([-.].+)%../../build2/doc/b-'"$paper"'$1%' \
+--link-regex '%b(#.+)?%../../build2/doc/build2-build-system-manual-'"$paper"'.pdf$1%' \
+--output-prefix "$prefix" "${@}" $n.cli
-html2ps -f doc.html2ps:letter.html2ps -o build2-toolchain-$n-letter.ps build2-toolchain-$n.xhtml
-ps2pdf14 -sPAPERSIZE=letter -dOptimize=true -dEmbedAllFonts=true build2-toolchain-$n-letter.ps build2-toolchain-$n-letter.pdf
+ run_pdflatex "$prefix$n" "$paper"
}
-gen intro
+gen intro build2-toolchain-
#gen intro1
# Auto-heading doesn't work since it is broken into multiple doc strings.
#
-gen install --html-heading-map 2=h2
+gen install build2-toolchain- --html-heading-map 2=h2
# Generate INSTALL/BOOTSTRAP/UPGRADE file in ../
#
diff --git a/doc/doc-epilogue.tex b/doc/doc-epilogue.tex
new file mode 120000
index 0000000..b17b5d1
--- /dev/null
+++ b/doc/doc-epilogue.tex
@@ -0,0 +1 @@
+style/doc-epilogue.tex \ No newline at end of file
diff --git a/doc/doc-prologue.tex b/doc/doc-prologue.tex
new file mode 120000
index 0000000..b5d4e00
--- /dev/null
+++ b/doc/doc-prologue.tex
@@ -0,0 +1 @@
+style/doc-prologue.tex \ No newline at end of file
diff --git a/doc/man-epilogue.tex b/doc/man-epilogue.tex
new file mode 120000
index 0000000..4793611
--- /dev/null
+++ b/doc/man-epilogue.tex
@@ -0,0 +1 @@
+style/man-epilogue.tex \ No newline at end of file
diff --git a/doc/man-prologue.tex b/doc/man-prologue.tex
new file mode 120000
index 0000000..258684a
--- /dev/null
+++ b/doc/man-prologue.tex
@@ -0,0 +1 @@
+style/man-prologue.tex \ No newline at end of file