From 6f4e0e9bc7eeba99acbb2c3934a83d9dfb7bbab4 Mon Sep 17 00:00:00 2001 From: Matthew Krupcale Date: Wed, 13 Mar 2019 22:31:07 -0400 Subject: Add support for LaTeX documentation. * 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 --- doc/.gitignore | 2 ++ doc/cli.sh | 76 ++++++++++++++++++++++++++++++++++++++++++---------- doc/doc-epilogue.tex | 1 + doc/doc-prologue.tex | 1 + doc/man-epilogue.tex | 1 + doc/man-prologue.tex | 1 + 6 files changed, 68 insertions(+), 14 deletions(-) create mode 120000 doc/doc-epilogue.tex create mode 120000 doc/doc-prologue.tex create mode 120000 doc/man-epilogue.tex create mode 120000 doc/man-prologue.tex 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 () # +function gen () # <...> { - 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 () # <...> +{ + 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 () # --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 () # +{ + 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 () # <...> +{ + 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 -- cgit