From b713b919756fd420063e7defc30bfc21996de636 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Sun, 20 Sep 2020 14:44:14 +0200 Subject: PDF docs: generate LaTeX header file from source The LaTeX header file used when creating PDF documentation depends on the doxygen and latex versions, respectively. The old header file 'documentation/src/fltk-book.tex.in' had been generated manually and needed to be updated for new doxygen versions which made the PDF documentation generation dependent on the doxygen/latex versions on the build system. The new LaTeX header file 'fltk-book.tex' is generated by doxygen, i.e. taking into account the doxygen and latex versions on the build system and "edited" to include the page title defined in the new file 'documentation/src/fltk-title.tex.in'. This makes the PDF documentation independent of the doxygen and latex versions of the build system. --- documentation/make_header | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 documentation/make_header (limited to 'documentation/make_header') diff --git a/documentation/make_header b/documentation/make_header new file mode 100755 index 000000000..44af365dc --- /dev/null +++ b/documentation/make_header @@ -0,0 +1,58 @@ +#!/bin/sh +# +# Create a new LaTeX header file for doxygen PDF docs +# +# Note: this LaTeX file depends on Doxygen and LaTeX versions, resp. +# and needs therefore to be created with current Doxygen and LaTeX +# versions on the build system. +# +# Usage: +# +# $ sh make_header input-file output-file +# +# where 'input-file' is the pure (LaTeX) title page (template) +# and 'output-file' is the generated (LaTeX) title page (template) +# to be used by `make' or `cmake` to generate the final LaTeX page +# header (combined doxygen template + FLTK title page). +# +#======================================================================= +# This script requires a posix shell and uses the following commands: +# cat, rm and sed and (obviously) doxygen +#======================================================================= + +# input and output file names +FLTK_HEAD="$1" +DOXY_HEAD="$2" +# temp file +DOXY_TEMP="doxy-header.tex.$$" + +if test x$FLTK_HEAD = x; then + echo "usage: $0 fltk-header-file output-file" + exit 1 +fi + +if test x$DOXY_HEAD = x; then + echo "usage: $0 fltk-header-file output-file" + exit 1 +fi + +# Create the doxygen LaTeX header template and replace the LaTeX +# code between (and including) the lines containing +# - 'begin{titlepage}' and +# - 'end{titlepage}' +# with our PDF document title page (LaTeX code) and write the +# result to $DOXY_HEAD. + +doxygen -w latex $DOXY_TEMP /dev/null /dev/null + +# combine three parts of these files to the output file +# using '( ... ) > $DOXY_HEAD' to write (concatenate) +# all three parts to one file + +( sed -e'/begin{titlepage}/,$d' < $DOXY_TEMP + cat $FLTK_HEAD + sed -e'1,/end{titlepage}/d' < $DOXY_TEMP +) > $DOXY_HEAD + +# cleanup +rm -f $DOXY_TEMP -- cgit v1.2.3