Mercurial > dive4elements > river
changeset 8152:03ea636429ea
The relevant contents are now in artifacts/doc/datacage_ref_de.rst.
author | "Tom Gottfried <tom@intevation.de>" |
---|---|
date | Fri, 29 Aug 2014 09:25:00 +0200 |
parents | a709e6334c4a |
children | c3dfb18dcefc |
files | artifacts/doc/datacage-config-manual/Makefile artifacts/doc/datacage-config-manual/README artifacts/doc/datacage-config-manual/content.tex artifacts/doc/datacage-config-manual/datacage-config-manual.tex artifacts/doc/datacage-config-manual/figures/bsh_logo.png artifacts/doc/datacage-config-manual/figures/intevation-logo.eps artifacts/doc/datacage-config-manual/figures/intevation-logo.pdf artifacts/doc/datacage-config-manual/title.tex |
diffstat | 8 files changed, 0 insertions(+), 5129 deletions(-) [+] |
line wrap: on
line diff
--- a/artifacts/doc/datacage-config-manual/Makefile Thu Aug 28 18:42:20 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3492 +0,0 @@ -# Copyright 2004 Chris Monson (shiblon@gmail.com) -# Latest version available at http://www.bouncingchairs.net/oss -# -# This file is part of ``Chris Monson's Free Software''. -# -# ``Chris Monson's Free Software'' is free software; you can redistribute it -# and/or modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, Version 2. -# -# ``Chris Monson's Free Software'' is distributed in the hope that it will -# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with ``Chris Monson's Free Software''; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# It is also available on the web at http://www.gnu.org/copyleft/gpl.html -# -# Note that using this makefile to build your documents does NOT place them -# under the GPL unless you, the author, specifically do so. In other words, -# I, Chris Monson, the copyright holder and author of this makefile, -# consider it impossible to ``link'' to this makefile in any way covered by -# the GPL. -# -# TO OBTAIN INSTRUCTIONS FOR USING THIS FILE, RUN: -# make help -# -fileinfo := LaTeX Makefile -author := Chris Monson -version := 2.2.0-rc1 -# -# Note that the user-global version is imported *after* the source directory, -# so that you can use stuff like ?= to get proper override behavior. -.PHONY: Makefile GNUmakefile Makefile.ini $(HOME)/.latex-makefile/Makefile.ini --include Makefile.ini --include $(HOME)/.latex-makefile/Makefile.ini -# -# This can be pdflatex or latex - you can change this by adding the following line to your Makefile.ini: -# BUILD_STRATEGY := latex -BUILD_STRATEGY ?= pdflatex -# -# Sets LC_ALL=C, by default, so that the locale-aware tools, like sort, be -# # immune to changes to the locale in the user environment. -export LC_ALL ?= C -# -# -# If you specify sources here, all other files with the same suffix -# will be treated as if they were _include_ files. -#onlysources.tex ?= main.tex -#onlysources.tex.sh ?= -#onlysources.tex.pl ?= -#onlysources.tex.py ?= -#onlysources.rst ?= -#onlysources.fig ?= -#onlysources.gpi ?= -#onlysources.dot ?= -#onlysources.xvg ?= -#onlysources.svg ?= -#onlysources.eps.gz ?= -#onlysources.eps ?= -# -# If you list files here, they will be treated as _include_ files -#includes.tex ?= file1.tex file2.tex -#includes.tex.sh ?= -#includes.tex.pl ?= -#includes.tex.py ?= -#includes.rst ?= -#includes.fig ?= -#includes.gpi ?= -#includes.dot ?= -#includes.xvg ?= -#includes.svg ?= -#includes.eps.gz ?= -#includes.eps ?= -# -# If you list files or wildcards here, they will *not* be cleaned - default is -# to allow everything to be cleaned. -#neverclean ?= *.pdf -# -# Alternatively (recommended), you can add those lines to a Makefile.ini file -# and it will get picked up automatically without your having to edit this -# Makefile. -# -# KNOWN ISSUES: -# * The following occurs: -# file with: \usepackage{named}\bibliographystyle{named} -# Compile -# change to: \usepackage{apalike}\bibliographystyle{apalike} -# Compile again -- BARF! -# -# The workaround: make clean-nographics; make -# -# Note that we may not be able to fix this. LaTeX itself barfs -# on this, not the makefile. The very first invocation of LaTeX -# (when something like this has happened) reads the existing .aux -# file and discovers invalid commands like \citeauthoryear that -# are only valid in the package that was just removed. It then -# tries to parse them and explodes. It's not at all clear to me -# how to fix this. I tried removing the .aux files on the first -# run of LaTeX, but that necessarily requires more subsequent -# rebuilds on common edits. There does not appear to be a -# graceful solution to this issue. -# -# CHANGES: -# Chris Monson (2010-04-08): -# * Bumped version to 2.2.0-rc1 -# * Added back in the rst_style_file stuff that got broken when switching -# rst -> tex to use the script mechanism -# Chris Monson (2010-03-23): -# * Bumped version to 2.2.0-beta8 -# * Work on issue 76: bad backtick escape for some sed versions, failure -# to clear out the hold buffer when outputting MISSING comment. -# - Backed out 2>&1 to &> (doesn't work in sh) -# - Backed out using . to source variables -# Chris Monson (2010-03-22): -# * Bumped version to 2.2.0-beta7 -# * Issue 72: Fix latex/bibtex invocation order for annotated bib styles -# * Fixed informational output to reflect which LaTeX run we're on -# * Fixed graphic detection to include graphics that are already there in -# .d files -# * Tightened up the .d file output to only make .d depend on graphic -# *source* files. This means that building foo.d no longer -# builds all of the graphics files on which foo.tex depends. -# Had to use .SECONDEXPANSION trickery to make it work. -# * Changed get-graphics to only accept a stem. -# * Fixed build-once logic for scripted .tex to work better -# * Made get-inputs sed script more maintainable. -# * Moved Makefile.ini import up higher. -# * Changed bare stems to not recursively invoke make -# * Updated diff output to be more silent everywhere -# * Added a MISSING comment to the .d file if stuff isn't found - forces -# removal of .1st.make file, which often forces it to try again. -# * Fixed broken graphics-target function -# * Added sleep to .d file generation when stuff is missing - if it -# builds too fast, make doesn't realize it needs to be reloaded, -# and thus never discovers some deeper dependencies (especially -# evident when graphics are included from scripted include -# files). -# Chris Monson (2010-03-17): -# * Bumped version to 2.2.0-beta6 -# * Fixed bareword builds to actually work (requires static patterns) -# * Fixed colorization to work with new paragraph stuff -# Chris Monson (2010-03-17): -# * Bumped version to 2.2.0-beta5 -# * Fixed graphic detection to be much more focused - splits log file -# into paragraphs before doing pattern matching. -# * Fixed make foo to work properly (recursively calls make foo.pdf) -# * Fixed gpi -> pdf generation to not waste time building .eps *after* -# the pdf already exists. -# * Changed log copies to include MAKE_RESTARTS as part of the name. -# * Fixed missing include file detection (also makes use of the paragraph -# stuff) to detect missing scripted include files. -# Chris Monson (2010-03-16): -# * Bumped version to 2.2.0-beta4 -# * issue 70: .pdf not moved out of the way properly on first -# compilation, resulting in early error detection failure. -# * issue 74: fixed broken error on missing .aux files: the -# implementation was masking real errors. -# Chris Monson (2010-03-15): -# * Bumped version to 2.2.0-beta3 -# * issue 71: Made the tput dependency optional -# * issue 73: Made .tex targets not pull in .d files (building them from -# scripts should not require a .d) -# * issue 74: Output a much saner error when a .aux file is not produced -# (e.g., when you are typing "make" without arguments in a -# directory with included .tex files that are not named with -# ._include_.) -# Chris Monson (2010-03-11): -# * Bumped version to 2.2.0-beta2 -# * Fixed clean-graphics to get rid of intermediate .eps files that may -# be hanging around -# * Added an automatic setting to use eps terminals in pdflatex mode for -# gnuplot if it doesn't understand pdf. -# * issue 66: Removed grayscale generation via magic suffix. Grayscale -# generation is now only available via GRAY=1 -# * issue 68: Added explicit handling of LC_ALL for locale-aware tools -# like "sort" -# Chris Monson (2010-03-10): -# * Bumped version to 2.2.0-beta1 -# * Fixed success message to handle output message in different places -# * Added name of produced file to success message -# Chris Monson (2010-03-10): -# * Bumped version to 2.2.0-alpha3 -# * Added meaningful error message for wrong hyperref options -# * Added meaningful error message for incorrect graphics extensions -# Chris Monson (2010-03-09): -# * Bumped version to 2.2.0-alpha2 -# * Updated graphics handling (gnuplot and fig generate pdf natively) -# * Changed xmgrace to output monochrome natively -# Chris Monson (2010-03-09): -# * Bumped version to 2.2.0-alpha1 - major change! -# * Support pdflatex natively and by default (issue 6 - a long time coming) -# * Add ability to have a single $HOME/.latex-makefile/Makefile.ini for -# all invocations -# * Reworked graphic inclusion detection so that extensions need not be -# specified for either build strategy (e.g., -# \includegraphics{test1.eps} -> \includegrahpics{test1}) -# * Changed log format to include filenames and line numbers -# Chris Monson (2010-02-04): -# * Bumped version to 2.1.43 -# * All of the following are for issue 63 (thanks to mojoh81): -# * Added documentation about fixing Makefile.ini default target -# * Added perl and python script targets -# * Fixed run logic to allow included .tex files to be scripted (the -# run-again logic now detects missing .tex files, and the MV -# command has been switched out for a command that only invokes -# MV if the files exist) -# * Changed scripted generation to only run once per make invocation -# * Added dependency on expr -# Chris Monson (2010-01-19): -# * Bumped version to 2.1.42 -# * issue 62: Added .brf extension to cleanable files (backrefs) -# Chris Monson (2010-01-07): -# * Bumped version to 2.1.41 -# * issue 60: bad makeindex runs now error out on subsequent tries -# Chris Monson (2009-12-01): -# * Bumped version to 2.1.40 -# * issue 36: build all indices (for e.g., splitidx usage) -# * issue 59: clean up all generated files (including indices) -# Chris Monson (2009-11-23): -# * Bumped version to 2.1.39 -# * issue 57: change ps2pdf invocations to just use gs directly -# Chris Monson (2009-11-19): -# * Bumped version to 2.1.38 -# * issue 57: Added some limited support for Cygwin (spaces in filenames) -# Chris Monson (2009-11-15): -# * Bumped version to 2.1.37 -# * Removed svninfo, since this is now managed by mercurial -# * Fixed typo in changelist -# * Issue 52: added jpg->eps conversion (thanks to brubakee) -# * Issue 54: fix missing Overfull colorization due to lack of a blank -# line preceding the first error. -# * Issue 51: remove head.tmp and body.tmp in make clean invocation -# * Issue 56: maintain multiple versions of log files (for debugging) -# Chris Monson (2009-11-14): -# * Bumped version to 2.1.36 -# * Issues 53 and 49: added .brf, .mtc, and .maf to the cleanables -# Chris Monson (2009-11-05): -# * Bumped version to 2.1.35 -# * Added nomenclature support (see issue 48) -# Chris Monson (2009-10-29): -# * Bumped version to 2.1.34 -# * Fixed _out_ creation bug introduced in 2.1.33 (it was always created) -# * Fixed erroneous help output for $HOME in BINARY_TARGET_DIR -# * Changed contact email address - bring on the spam! -# Chris Monson (2009-10-21): -# * Bumped version to 2.1.33 -# * Fixed issue 46, adding support for dot2tex (thanks to fdemesmay) -# * Made all_files.* settable in Makefile.ini (using ?= instead of :=) -# * Fixed issue 47, thanks to fdemesmay: add binary copy directory, copy -# dvi, pdf, and ps if it exists -# Chris Monson (2009-09-25): -# * Bumped version to 2.1.32 -# * Fixed so that a changed lol file will cause a rebuild -# * Added .lol files to the cleanable list -# Chris Monson (2009-09-08): -# * Bumped version to 2.1.31 -# * Closed issue 43: evince doesn't notice pdf change w/out touch -# Chris Monson (2009-08-28): -# * Bumped version to 2.1.30 -# * Closed issue 39: Capture multi-line log warnings/errors to output -# Chris Monson (2009-08-26): -# * Bumped version to 2.1.29 -# * Closed issue 42: add svg support using inkscape -# Chris Monson (2009-08-17): -# * Bumped version to 2.1.28 -# * Patch from paul.biggar for issue 38: package warnings are overlooked -# Chris Monson (2009-08-07): -# * Bumped version to 2.1.27 -# * Included patch for issue 37 - removes pdf/ps files before copying, -# allowing some broken viewers to see changes properly. -# Chris Monson (2009-05-15): -# * Bumped version to 2.1.26 -# * Included patch for issue 9 from favonia - detects .fig changes for -# pstex files during regular compilation, so long as the pstex -# has been built at least once with make all-pstex. -# Chris Monson (2009-03-27): -# * Bumped version to 2.1.25 -# * Cleaned up a bunch of variable setting stuff - more stuff is now -# settable from Makefile.ini -# * Cleaned up documentation for various features, especially settable -# variables. -# * issue 28: support for png -> eps conversion (it even looks good!) -# * issue 29: support for "neverclean" files in Makefile.ini -# * issue 30: make ps2pdf14 the default - fall back when not there -# Chris Monson (2009-03-09): -# * Bumped version to 2.1.24 -# * issue 27: xmgrace support (thanks to rolandschulzhd) -# Chris Monson (2008-10-23): -# * Bumped version to 2.1.23 -# * issue 23: fixed _check_programs to not use bash string subs -# Chris Monson (2008-09-02): -# * Bumped version to 2.1.22 -# * Appled patch from Holger <yllohy@googlemail.com> to add include -# sources and some documentation updates. -# * Updated backup_patterns to be a bit more aggressive (also thanks to -# Holger) -# Chris Monson (2008-08-30): -# * Bumped version to 2.1.21 -# * Added ability to specify onlysources.* variables to indicate the only -# files that should *not* be considered includes. Thanks to Holger -# <yllohy@googlemail.com> for this patch. -# * Added an automatic include of Makefile.ini if it exists. Allows -# settings to be made outside of this makefile. -# Chris Monson (2008-05-21): -# * Bumped version to 2.1.20 -# * Added manual pstex compilation support (run make all-pstex first) -# * Removed all automatic pstex support. It was totally breaking -# everything and is very hard to incorporate into the makefile -# concept because it requires LaTeX to *fail* before it can -# determine that it needs the files. -# Chris Monson (2008-04-17): -# * Bumped version to 2.1.19 -# * Changed the pstex build hack to be on by default -# Chris Monson (2008-04-09): -# * Bumped version to 2.1.18 -# * issue 16: fixed pstex build problems, seems nondeterministic. Added -# gratuitious hack for testing: set PSTEX_BUILD_ALL_HACK=1. -# Chris Monson (2008-04-09): -# * Bumped version to 2.1.17 -# * issue 20: fixed accumulation of <pid>*.make files - wildcard was -# refusing to work on files that are very recently created. -# Chris Monson (2008-04-02): -# * Bumped version to 2.1.16 -# * issue 19: Removed the use of "type" to fix broken "echo" settings -# Chris Monson (2008-03-27): -# * Bumped version to 2.1.15 -# * issue 18: Favors binary echo over builtin, as binary understands -n -# * issue 16: Fixed handling of missing pstex_t files in the log -# * issue 9: Added .SECONDARY target for .pstex files -# Chris Monson (2008-03-21): -# * Bumped version to 2.1.14 -# * Fixed broken aux file flattening, which caused included bibs to be -# missed. -# Chris Monson (2008-03-20): -# * Bumped version to 2.1.13 -# * Changed error output colorization to show errors for missing files -# that are not graphics files. -# Chris Monson (2008-03-20): -# * Bumped version to 2.1.12 -# * Fixed a regression introduced in r28 that makes bibtex fail when -# there is no index file present -# Chris Monson (2008-03-03): -# * Bumped version to 2.1.11 -# * Fixed issue 11 (handle index files, reported by abachn) -# * Cleaned up some comments and help text -# Chris Monson (2008-01-24): -# * Bumped version to 2.1.10 -# * Fixed to work when 'sh' is a POSIX shell like 'dash' -# Chris Monson (2007-12-12): -# * Bumped version to 2.1.9 -# * Fixed documentation and dependency graph for pstex files -# Chris Monson (2007-12-12): -# * Bumped version to 2.1.8 -# * Added basic pstex_t support for fig files (Issue 9 by favonia) -# I still suggest that psfrag be used instead. -# Chris Monson (2007-10-16): -# * Bumped version to 2.1.7 -# * Removed todo item: allow other comment directives for rst conversion -# * Added ability to use global rst style file _rststyle_._include_.tex -# * Added help text to that effect -# Chris Monson (2007-05-20): -# * Bumped version to 2.1.6 -# * Changed default paper size for rst files -# * Added todo item: fix paper size for rst files -# * Added todo item: allow other comment directives for rst conversion -# Chris Monson (2007-04-02): -# * Bumped version to 2.1.5 -# * Addressed Issue 7, incorrect .gpi.d generation in subdirectories -# Chris Monson (2007-03-28): -# * Bumped version to 2.1.4 -# * Fixed syntax error in dot output -# Chris Monson (2007-03-01): -# * Bumped version to 2.1.3 -# * Added reST to the included documentation -# * Fixed graphics and script generation to be settable in the -# environment. -# Chris Monson (2007-02-23): -# * Bumped version to 2.1.2 -# * Added the ability to generate .tex files from .rst files -# Chris Monson (2006-10-17): -# * Bumped version to 2.1.1 -# * Fixed includes from subdirectories (sed-to-sed slash escape problem) -# Chris Monson (2006-10-05): -# * Bumped version to 2.1.0 (pretty serious new feature added) -# * New feature: bib files can now be anywhere on the BIBINPUTS path -# * New programs: kpsewhich (with tetex) and xargs (BSD) -# Chris Monson (2006-09-28): -# * Bumped version to 2.0.9 -# * Added ability to parse more than one bibliography -# Chris Monson (2006-06-01): -# * Bumped version to 2.0.8 -# * Added .vrb to the list of cleaned files -# Chris Monson (2006-04-26): -# * Bumped version to 2.0.7 -# * Fixed so that clean-nographics does not remove .gpi.d files -# * Removed jpg -> eps hack (not working properly -- just pre-convert) -# * Fixed so that postscript grayscale can be done with BSD sed -# Chris Monson (2006-04-25): -# * Bumped version to 2.0.6 -# * Fixed so that changed toc, lot, lof, or out causes a rebuild -# Chris Monson (2006-04-17): -# * Bumped version to 2.0.5 -# * Added jpg -> eps conversion target -# Chris Monson (2006-04-12): -# * Bumped version to 2.0.4 -# * Fixed BSD sed invocation to not use \| as a branch delimiter -# * Added a comment section on what is and is not allowed in BSD sed -# * Made paper size handling more robust while I was at it -# * Fixed postscript RGB grayscale to use a weighted average -# * Fixed postscript HSB grayscale to convert to RGB first -# * Fixed a problem with rebuilding .bbl files -# Chris Monson (2006-04-11): -# * Bumped version to 2.0.3 -# * Fixed some BSD sed problems: can't use \n in substitutions -# Chris Monson (2006-04-10): -# * Bumped version to 2.0.2 -# * Once again removed ability to create .tex files from scripts -# * \includeonly works again -# Chris Monson (2006-04-09): -# * Bumped version to 2.0.1 -# * Fixed grayscale postscript handling to be more robust -# * Added ability to generate ._gray_. files from eps and eps.gz -# * Added ability to clean ._gray_.eps files created from .eps files -# Chris Monson (2006-04-07): -# * Bumped version to 2.0.0 -# * Removed clunky ability to create included .tex files from scripts -# * Added note in the help about included tex scripting not working -# * Fixed the .eps generation to delete %.gpihead.make when finished -# * Abandoned designs to use shell variables to create sed scripts -# * Abandoned __default__.tex.sh idea: it causes recursion with %: . -# * Removed web page to-do. All items are now complete. -# * Added better grayscale conversion for dot figures (direct ps fixup). -# * Include files can now be scripted (at the expense of \includeonly). -# * Updated dependency graph to contain better node names. -# Chris Monson (2006-04-06): -# * Bumped version to 2.0b3 -# * Top level includes now fail if there is no rule to build them -# * A helpful message is printed when they do fail -# * Grayscale has been changed to be ._gray_, other phonies use _ now, too -# * Grayscale handling has been completed -# * Changed _include_stems target to _includes target. -# * Fixed _includes target to be useful by itself. -# * Removed the ability to specify clean and build targets at once -# * Verified that epsfig works fine with current code -# * Fixed included scripts so that they are added to the dep files -# * Fixed so that graphics includes don't happen if they aren't for gpi -# * Fixed dot output to allow grayscale. -# Chris Monson (2006-04-05): -# * Bumped version to 2.0b2 -# * Removed automatic -gray output. It needs fixing in a bad way. -# * Revamped dependency creation completely. -# * Fixed conditional inclusion to actually work (test.nobuild.d, test.d). -# * Fixed clean target to remove log targets -# * Added the 'monochrome' word for gray gpi output -# * Added a _check_gpi_files target that checks for common problems -# * Changed the _version target into the version target (no _) -# * Added better handling of grayscale files. Use the .gray.pdf target. -# * Fixed testing for rebuilds -# Chris Monson (2006-04-04): -# * Bumped version to 2.0b1 -# * Changed colorization of output -# * Made .auxbbl and .auxtex .make files secondary targets -# * Shortened and simplified the final latex invocation loop -# * Added version-specific output ($$i vs. $$$$i) in latex loop -# * Added a build message for the first .dvi run (Building .dvi (0)) -# * Removed some build messages that most people don't care about. -# * Simplified procedure for user-set colors -- simple text specification -# * Fixed diff output to...not output. -# * Fixed rerun bug -- detect not only when preceded with LaTeX Warning -# * Sped up gpi plotting -# * Added error handling and colorized output for gpi failure -# * Documented color changing stuff. -# * Now sort the flattened aux file to avoid false recompilation needs -# * Added clean-nographics target -# * Don't remove self.dvi file if self.aux is missing in the log -# * Clarified some code. Did some very minor adjusting. -# Chris Monson (2006-04-03): -# * Bumped version to 2.0a7 -# * Added .dvi and .ps files as secondary files. -# * Fixed handling of multiple run detection when includeonly is in use. -# * Added code to flatten .aux files. -# * Added more files as .SECONDARY prerequisites to avoid recompilation. -# * Fixed the inputs generation to be much simpler and to use pipes. -# * Added the dependency graph directly into the makefile. -# * Changed flatten-aux to remove \@writefile \relax \newlabel, etc. -# * Undid pipe changes with sed usage (BSD sed doesn't know -f-). -# * Added a _check_programs target that tells you what your system has. -# * Fixed an error in colorization that made unnecessary errors appear -# * Added view targets. -# * Updated help text. -# * Augmented cookies so that .aux can trigger .bbl and .dvi rebuilds -# * Added more informative error handling for dvips and ps2pdf -# Chris Monson (2006-04-02): -# * Bumped version to 2.0a6 -# * Added indirection to .bbl dependencies to avoid rebuilding .bbl files -# * Streamlined the diff invocation to eliminate an existence test -# * Removed special shell quote escape variables -# * Moved includes to a more prominent location -# * Fixed .inputs.make to not contain .aux files -# * Fixed embedding to use a file instead of always grepping. -# * Added *.make.temp to the list of cleanable files -# * Fixed Ruby. It should now be supported properly. -# * Now differentiate between all, default, and buildable files. -# * Fixed to bail out on serious errors. -# * Revised the handling of includable files. Still working on it. -# Chris Monson (2006-03-31): -# * Bumped version to 2.0a5 -# * Fixed a bug with LaTeX error detection (there can be spaces) -# * Added .bbl support, simplifying everything and making it more correct -# * Refactored some tests that muddy the code -# * Did a little cleanup of some shell loops that can safely be make loops -# * Added support for graphviz .dot files -# * Made _all_programs output easier to read -# * Added the ruby support that has long been advertised -# * Font embedding was screwed up for PostScript -- now implicit -# * Changed the generation of -gray.gpi files to a single command -# * Changed any make-generated file that is not included from .d to .make -# Chris Monson (2006-03-30): -# * Bumped version to 2.0a4 -# * Fixed a bug with very long graphics file names -# * Added a todo entry for epsfig support -# * Fixed a bug paper size bug: sometimes more than one entry appears -# * Fixed DVI build echoing to display the number instead of process ID -# * DVI files are now removed on first invocation if ANY file is missing -# * Added a simple grayscale approach: if a file ends with -gray.gpi, it -# is created from the corresponding .gpi file with a special -# comment ##GRAY in its header, which causes coloring to be -# turned off. -# * Fixed a bug in the handling of .tex.sh files. For some reason I had -# neglected to define file stems for scripted output. -# * Removed a trailing ; from the %.graphics dependencies -# * Added dvips embedding (I think it works, anyway) -# Chris Monson (2006-03-29): -# * Bumped version to 2.0a3 -# * Fixed error in make 3.79 with MAKEFILE_LIST usage -# * Added the presumed filename to the _version output -# * Added a vim macro for converting sed scripts to make commands -# * Added gpi dependency support (plotting external files and loading gpi) -# * Allow .gpi files to be ignored if called .include.gpi or .nobuild.gpi -# * Fixed sed invocations where \+ was used. BSD sed uses \{1,\}. -# Chris Monson (2006-03-28): -# * Bumped version to 2.0a2 -# * Added SHELL_DEBUG and VERBOSE options -# * Changed the default shell back to /bin/sh (unset, in other words) -# * Moved .PHONY declarations closer to their targets -# * Moved help text into its own define block to obtain better formatting -# * Removed need for double-entry when adding a new program invocation -# * Moved .SECONDARY declaration closer to its relevant occurrence -# * Commented things more heavily -# * Added help text about setting terminal and output in gnuplot -# * Created more fine-grained clean targets -# * Added a %.graphics target that generates all of %'s graphics -# * Killed backward-compatible graphics generation (e.g., eps.gpi=gpi.eps) -# * For now, we're just GPL 2, not 3. Maybe it will change later -# * Made the version and svninfo into variables -# Chris Monson (2006-03-27): -# * Bumped version to 2.0a1 -# * Huge, sweeping changes -- automatic dependencies - -# IMPORTANT! -# -# When adding to the following list, do not introduce any blank lines. The -# list is extracted for documentation using sed and is terminated by a blank -# line. -# -# EXTERNAL PROGRAMS: -# = ESSENTIAL PROGRAMS = -# == Basic Shell Utilities == -CAT ?= cat -CP ?= cp -f -DIFF ?= diff -ECHO ?= echo -EGREP ?= egrep -ENV ?= env -EXPR ?= expr -MV ?= mv -f -SED ?= sed -SORT ?= sort -TOUCH ?= touch -UNIQ ?= uniq -WHICH ?= which -XARGS ?= xargs -SLEEP ?= sleep -# == LaTeX (tetex-provided) == -BIBTEX ?= bibtex -DVIPS ?= dvips -LATEX ?= latex -PDFLATEX ?= pdflatex -EPSTOPDF ?= epstopdf -MAKEINDEX ?= makeindex -KPSEWHICH ?= kpsewhich -GS ?= gs -# = OPTIONAL PROGRAMS = -# == Makefile Color Output == -TPUT ?= tput -# == TeX Generation == -PERL ?= perl -PYTHON ?= python -RST2LATEX ?= rst2latex.py -# == EPS Generation == -CONVERT ?= convert # ImageMagick -DOT ?= dot # GraphViz -DOT2TEX ?= dot2tex # dot2tex - add options (not -o) as needed -FIG2DEV ?= fig2dev # XFig -GNUPLOT ?= gnuplot # GNUplot -INKSCAPE ?= inkscape # Inkscape (svg support) -XMGRACE ?= xmgrace # XMgrace -PNGTOPNM ?= pngtopnm # From NetPBM - step 1 for png -> eps -PPMTOPGM ?= ppmtopgm # From NetPBM - (gray) step 2 for png -> eps -PNMTOPS ?= pnmtops # From NetPBM - step 3 for png -> eps -GUNZIP ?= gunzip # GZipped EPS -# == Beamer Enlarged Output == -PSNUP ?= psnup -# == Viewing Stuff == -VIEW_POSTSCRIPT ?= gv -VIEW_PDF ?= xpdf -VIEW_GRAPHICS ?= display - -# Command options for embedding fonts and postscript->pdf conversion -PS_EMBED_OPTIONS ?= -dPDFSETTINGS=/printer -dEmbedAllFonts=true -dSubsetFonts=true -dMaxSubsetPct=100 -PS_COMPATIBILITY ?= 1.4 - -# Defaults for GPI -DEFAULT_GPI_EPS_FONTSIZE ?= 22 -DEFAULT_GPI_PDF_FONTSIZE ?= 12 - -# Style file for ReST -RST_STYLE_FILE ?= $(wildcard _rststyle_._include_.tex) - -# This ensures that even when echo is a shell builtin, we still use the binary -# (the builtin doesn't always understand -n) -FIXED_ECHO := $(if $(findstring -n,$(shell $(ECHO) -n)),$(shell which echo),$(ECHO)) -ECHO := $(if $(FIXED_ECHO),$(FIXED_ECHO),$(ECHO)) - -define determine-gnuplot-output-extension -$(if $(shell $(WHICH) $(GNUPLOT)), - $(if $(findstring unknown or ambiguous, $(shell $(GNUPLOT) -e "set terminal pdf" 2>&1)), - eps, pdf), - none) -endef - -GNUPLOT_OUTPUT_EXTENSION ?= $(strip $(call determine-gnuplot-output-extension)) - -# Directory into which we place "binaries" if it exists. -# Note that this can be changed on the commandline or in Makefile.ini: -# -# Command line: -# make BINARY_TARGET_DIR=$HOME/pdfs myfile.pdf -# -# Also, you can specify a relative directory (relative to the Makefile): -# make BINARY_TARGET_DIR=pdfs myfile.pdf -# -# Or, you can use Makefile.ini: -# -# BINARY_TARGET_DIR := $(HOME)/bin_out -# -BINARY_TARGET_DIR ?= _out_ - -RESTARTS := $(if $(MAKE_RESTARTS),$(MAKE_RESTARTS),0) -# SH NOTES -# -# On some systems, /bin/sh, which is the default shell, is not linked to -# /bin/bash. While bash is supposed to be sh-compatible when invoked as sh, it -# just isn't. This section details some of the things you have to stay away -# from to remain sh-compatible. -# -# * File pattern expansion does not work for {} -# * [ "$x" = "$y" ] has to be [ x"$x" x"$y" ] -# * &> for stderr redirection doesn't work, use 2>&1 instead -# -# BSD SED NOTES -# -# BSD SED is not very nice compared to GNU sed, but it is the most -# commonly-invoked sed on Macs (being based on BSD), so we have to cater to -# it or require people to install GNU sed. It seems like the GNU -# requirement isn't too bad since this makefile is really a GNU makefile, -# but apparently GNU sed is much less common than GNU make in general, so -# I'm supporting it here. -# -# Sad experience has taught me the following about BSD sed: -# -# * \+ is not understood to mean \{1,\} -# * \| is meaningless (does not branch) -# * \n cannot be used as a substitution character -# * ? does not mean \{0,1\}, but is literal -# * a\ works, but only reliably for a single line if subsequent lines -# have forward slashes in them (as is the case in postscript) -# -# For more info (on the Mac) you can consult -# -# man -M /usr/share/man re_format -# -# And look for the word "Obsolete" near the bottom. - -# -# EXTERNAL PROGRAM DOCUMENTATION SCRIPT -# - -# $(call output-all-programs,[<output file>]) -define output-all-programs - [ -f '$(this_file)' ] && \ - $(SED) \ - -e '/^[[:space:]]*#[[:space:]]*EXTERNAL PROGRAMS:/,/^$$/!d' \ - -e '/EXTERNAL PROGRAMS/d' \ - -e '/^$$/d' \ - -e '/^[[:space:]]*#/i\ '\ - -e 's/^[[:space:]]*#[[:space:]][^=]*//' \ - $(this_file) $(if $1,> '$1',) || \ - $(ECHO) "Cannot determine the name of this makefile." -endef - -# If they misspell gray, it should still work. -GRAY ?= $(call get-default,$(GREY),) - -# -# Utility Functions and Definitions -# - -# While not exactly a make function, this vim macro is useful. It takes a -# verbatim sed script and converts each line to something suitable in a command -# context. Just paste the script's contents into the editor, yank this into a -# register (starting at '0') and run the macro once for each line of the -# original script: -# -# 0i -e :s/\$/$$/eg :s/'/'"'"'/eg ^Ela'A' \:noh j - -# don't call this directly - it is here to avoid calling wildcard more than -# once in remove-files. -remove-files-helper = $(if $1,$(RM) $1,$(sh_true)) - -# $(call remove-files,file1 file2) -remove-files = $(call remove-files-helper,$(wildcard $1)) - -# Removes all cleanable files in the given list -# $(call clean-files,file1 file2 file3 ...) -# Works exactly like remove-files, but filters out files in $(neverclean) -clean-files = \ - $(call remove-files-helper,$(call cleanable-files,$(wildcard $1))) - -# Outputs all generated files to STDOUT, along with some others that are -# created by these (e.g., .idx files end up producing .ilg and .ind files). -# Discovered by reading *.fls OUTPUT lines and producing corresponding .ind -# filenames as needed. -# -# $(call get-generated-names,<source recorder file (*.fls)>) -define get-generated-names -[ -f '$1' ] && \ -$(SED) \ - -e '/^OUTPUT /{' \ - -e ' s///' \ - -e ' p' \ - -e ' s/\.idx/\.ind/p' \ - -e ' s/\.ind/\.ilg/p' \ - -e '}' \ - -e 'd' \ - '$1' \ -| $(SORT) | $(UNIQ) -endef - -# This removes files without checking whether they are there or not. This -# sometimes has to be used when the file is created by a series of shell -# commands, but there ends up being a race condition: make doesn't know about -# the file generation as quickly as the system does, so $(wildcard ...) doesn't -# work right. Blech. -# $(call remove-temporary-files,filenames) -remove-temporary-files = $(if $1,$(RM) $1,:) - -# Create an identifier from a file name -# $(call cleanse-filename,filename) -cleanse-filename = $(subst .,_,$(subst /,__,$1)) - -# Escape dots -# $(call escape-dots,str) -escape-dots = $(subst .,\\.,$1) - -# Test that a file exists -# $(call test-exists,file) -test-exists = [ -e '$1' ] - -# $(call move-files,source,destination) -move-if-exists = $(call test-exists,$1) && $(MV) '$1' '$2' - -# Copy file1 to file2 only if file2 doesn't exist or they are different -# $(call copy-if-different,sfile,dfile) -copy-if-different = $(call test-different,$1,$2) && $(CP) '$1' '$2' -copy-if-exists = $(call test-exists,$1) && $(CP) '$1' '$2' -move-if-different = $(call test-different,$1,$2) && $(MV) '$1' '$2' -replace-if-different-and-remove = \ - $(call test-different,$1,$2) \ - && $(MV) '$1' '$2' \ - || $(call remove-files,'$1') - -# Note that $(DIFF) returns success when the files are the SAME.... -# $(call test-different,sfile,dfile) -test-different = ! $(DIFF) -q '$1' '$2' >/dev/null 2>&1 -test-exists-and-different = \ - $(call test-exists,$2) && $(call test-different,$1,$2) - -# Return value 1, or value 2 if value 1 is empty -# $(call get-default,<possibly empty arg>,<default value if empty>) -get-default = $(if $1,$1,$2) - -# Copy a file and log what's going on -# $(call copy-with-logging,<source>,<target>) -define copy-with-logging -if [ -d '$2/' ]; then \ - if $(CP) '$1' '$2/'; then \ - $(ECHO) "$(C_INFO)Copied '$1' to '$2/'$(C_RESET)"; \ - else \ - $(ECHO) "$(C_ERROR)Failed to copy '$1' to '$2/'$(C_RESET)"; \ - fi; \ -fi -endef - -# Gives a reassuring message about the failure to find include files -# $(call include-message,<list of include files>) -define include-message -$(strip \ -$(if $(filter-out $(wildcard $1),$1),\ - $(shell $(ECHO) \ - "$(C_INFO)NOTE: You may ignore warnings about the"\ - "following files:" >&2;\ - $(ECHO) >&2; \ - $(foreach s,$(filter-out $(wildcard $1),$1),$(ECHO) ' $s' >&2;)\ - $(ECHO) "$(C_RESET)" >&2) -)) -endef -# Characters that are hard to specify in certain places -space := $(empty) $(empty) -colon := \: -comma := , - -# Useful shell definitions -sh_true := : -sh_false := ! : - -# Clear out the standard interfering make suffixes -.SUFFIXES: - -# Turn off forceful rm (RM is usually mapped to rm -f) -ifdef SAFE_RM -RM := rm -endif - -# Turn command echoing back on with VERBOSE=1 -ifndef VERBOSE -QUIET := @ -endif - -# Turn on shell debugging with SHELL_DEBUG=1 -# (EVERYTHING is echoed, even $(shell ...) invocations) -ifdef SHELL_DEBUG -SHELL += -x -endif - -# Get the name of this makefile (always right in 3.80, often right in 3.79) -# This is only really used for documentation, so it isn't too serious. -ifdef MAKEFILE_LIST -this_file := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -else -this_file := $(wildcard GNUmakefile makefile Makefile) -endif - -# Terminal color definitions - -REAL_TPUT := $(if $(NO_COLOR),,$(shell $(WHICH) $(TPUT))) - -# $(call get-term-code,codeinfo) -# e.g., -# $(call get-term-code,setaf 0) -get-term-code = $(if $(REAL_TPUT),$(shell $(REAL_TPUT) $1),) - -black := $(call get-term-code,setaf 0) -red := $(call get-term-code,setaf 1) -green := $(call get-term-code,setaf 2) -yellow := $(call get-term-code,setaf 3) -blue := $(call get-term-code,setaf 4) -magenta := $(call get-term-code,setaf 5) -cyan := $(call get-term-code,setaf 6) -white := $(call get-term-code,setaf 7) -bold := $(call get-term-code,bold) -uline := $(call get-term-code,smul) -reset := $(call get-term-code,sgr0) - -# -# User-settable definitions -# -LATEX_COLOR_WARNING ?= magenta -LATEX_COLOR_ERROR ?= red -LATEX_COLOR_INFO ?= green -LATEX_COLOR_UNDERFULL ?= magenta -LATEX_COLOR_OVERFULL ?= red bold -LATEX_COLOR_PAGES ?= bold -LATEX_COLOR_BUILD ?= cyan -LATEX_COLOR_GRAPHIC ?= yellow -LATEX_COLOR_DEP ?= green -LATEX_COLOR_SUCCESS ?= green bold -LATEX_COLOR_FAILURE ?= red bold - -# Gets the real color from a simple textual definition like those above -# $(call get-color,ALL_CAPS_COLOR_NAME) -# e.g., $(call get-color,WARNING) -get-color = $(subst $(space),,$(foreach c,$(LATEX_COLOR_$1),$($c))) - -# -# STANDARD COLORS -# -C_WARNING := $(call get-color,WARNING) -C_ERROR := $(call get-color,ERROR) -C_INFO := $(call get-color,INFO) -C_UNDERFULL := $(call get-color,UNDERFULL) -C_OVERFULL := $(call get-color,OVERFULL) -C_PAGES := $(call get-color,PAGES) -C_BUILD := $(call get-color,BUILD) -C_GRAPHIC := $(call get-color,GRAPHIC) -C_DEP := $(call get-color,DEP) -C_SUCCESS := $(call get-color,SUCCESS) -C_FAILURE := $(call get-color,FAILURE) -C_RESET := $(reset) - -# -# PRE-BUILD TESTS -# - -# Check that clean targets are not combined with other targets (weird things -# happen, and it's not easy to fix them) -hascleangoals := $(if $(sort $(filter clean clean-%,$(MAKECMDGOALS))),1) -hasbuildgoals := $(if $(sort $(filter-out clean clean-%,$(MAKECMDGOALS))),1) -ifneq "$(hasbuildgoals)" "" -ifneq "$(hascleangoals)" "" -$(error $(C_ERROR)Clean and build targets specified together$(C_RESET))) -endif -endif - -# -# VARIABLE DECLARATIONS -# - -# Names of sed scripts that morph gnuplot files -- only the first found is used -GNUPLOT_SED := global-gpi.sed gnuplot.sed -GNUPLOT_GLOBAL := global._include_.gpi gnuplot.global - -ifneq "$(strip $(BUILD_STRATEGY))" "pdflatex" -default_graphic_extension ?= eps -latex_build_program ?= $(LATEX) -build_target_extension ?= dvi -hyperref_driver_pattern ?= hdvips -hyperref_driver_error ?= Using dvips: specify ps2pdf in the hyperref options. -else -default_graphic_extension ?= pdf -latex_build_program ?= $(PDFLATEX) -build_target_extension ?= pdf -hyperref_driver_pattern ?= hpdf.* -hyperref_driver_error ?= Using pdflatex: specify pdftex in the hyperref options (or leave it blank). -endif - -# Files of interest -all_files.tex ?= $(wildcard *.tex) -all_files.tex.sh ?= $(wildcard *.tex.sh) -all_files.tex.pl ?= $(wildcard *.tex.pl) -all_files.tex.py ?= $(wildcard *.tex.py) -all_files.rst ?= $(wildcard *.rst) -all_files.fig ?= $(wildcard *.fig) -all_files.gpi ?= $(wildcard *.gpi) -all_files.dot ?= $(wildcard *.dot) -all_files.xvg ?= $(wildcard *.xvg) -all_files.svg ?= $(wildcard *.svg) -all_files.png ?= $(wildcard *.png) -all_files.jpg ?= $(wildcard *.jpg) -all_files.eps.gz ?= $(wildcard *.eps.gz) -all_files.eps ?= $(wildcard *.eps) - -# Utility function for obtaining all files not specified in $(neverclean) -# $(call cleanable-files,file1 file2 file3 ...) -# Returns the list of files that is not in $(wildcard $(neverclean)) -cleanable-files = $(filter-out $(wildcard $(neverclean)), $1) - -# Utility function for getting all .$1 files that are to be ignored -# * files listed in $(includes.$1) -# * files not listed in $(onlysources.$1) if it is defined -ignore_files = \ - $(includes.$1) \ - $(if $(onlysources.$1),$(filter-out $(onlysources.$1), $(all_files.$1))) - -# Patterns to never be allowed as source targets -ignore_patterns := %._include_ - -# Patterns allowed as source targets but not included in 'all' builds -nodefault_patterns := %._nobuild_ $(ignore_patterns) - -# Utility function for getting targets suitable building -# $(call filter-buildable,suffix) -filter-buildable = \ - $(filter-out $(call ignore_files,$1) \ - $(addsuffix .$1,$(ignore_patterns)),$(all_files.$1)) - -# Utility function for getting targets suitable for 'all' builds -# $(call filter-default,suffix) -filter-default = \ - $(filter-out $(call ignore_files,$1) \ - $(addsuffix .$1,$(nodefault_patterns)),$(all_files.$1)) - -# Top level sources that can be built even when they are not by default -files.tex := $(call filter-buildable,tex) -files.tex.sh := $(call filter-buildable,tex.sh) -files.tex.pl := $(call filter-buildable,tex.pl) -files.tex.py := $(call filter-buildable,tex.py) -files.rst := $(call filter-buildable,rst) -files.gpi := $(call filter-buildable,gpi) -files.dot := $(call filter-buildable,dot) -files.fig := $(call filter-buildable,fig) -files.xvg := $(call filter-buildable,xvg) -files.svg := $(call filter-buildable,svg) -files.png := $(call filter-buildable,png) -files.jpg := $(call filter-buildable,jpg) -files.eps.gz := $(call filter-buildable,eps.gz) - -# Make all pstex targets secondary. The pstex_t target requires the pstex -# target, and nothing else really depends on it, so it often gets deleted. -# This avoids that by allowing *all* fig files to be pstex targets, which is -# perfectly valid and causes no problems even if they're going to become eps -# files in the end. -.SECONDARY: $(patsubst %.fig,%.pstex,$(files.fig)) - -# Top level sources that are built by default targets -default_files.tex := $(call filter-default,tex) -default_files.tex.sh := $(call filter-default,tex.sh) -default_files.tex.pl := $(call filter-default,tex.pl) -default_files.tex.py := $(call filter-default,tex.py) -default_files.rst := $(call filter-default,rst) -default_files.gpi := $(call filter-default,gpi) -default_files.dot := $(call filter-default,dot) -default_files.fig := $(call filter-default,fig) -default_files.xvg := $(call filter-default,xvg) -default_files.svg := $(call filter-default,svg) -default_files.png := $(call filter-default,png) -default_files.jpg := $(call filter-default,jpg) -default_files.eps.gz := $(call filter-default,eps.gz) - -# Utility function for creating larger lists of files -# $(call concat-files,suffixes,[prefix]) -concat-files = $(foreach s,$1,$($(if $2,$2_,)files.$s)) - -# Useful file groupings -all_files_source := $(call concat-files,tex,all) -all_files_scripts := $(call concat-files,tex.sh tex.pl tex.py rst,all) - -.PHONY: $(all_files_scripts) - -default_files_source := $(call concat-files,tex,default) -default_files_scripts := $(call concat-files,tex.sh tex.pl tex.py rst,default) - -files_source := $(call concat-files,tex) -files_scripts := $(call concat-files,tex.sh tex.pl tex.py rst) - -# Utility function for obtaining stems -# $(call get-stems,suffix,[prefix]) -get-stems = $(sort $($(if $2,$2_,)files.$1:%.$1=%)) - -# List of all stems (including ._include_ and ._nobuild_ file stems) -all_stems.tex := $(call get-stems,tex,all) -all_stems.tex.sh := $(call get-stems,tex.sh,all) -all_stems.tex.pl := $(call get-stems,tex.pl,all) -all_stems.tex.py := $(call get-stems,tex.py,all) -all_stems.rst := $(call get-stems,rst,all) -all_stems.fig := $(call get-stems,fig,all) -all_stems.gpi := $(call get-stems,gpi,all) -all_stems.dot := $(call get-stems,dot,all) -all_stems.xvg := $(call get-stems,xvg,all) -all_stems.svg := $(call get-stems,svg,all) -all_stems.png := $(call get-stems,png,all) -all_stems.jpg := $(call get-stems,jpg,all) -all_stems.eps.gz := $(call get-stems,eps.gz,all) -all_stems.eps := $(call get-stems,eps,all) - -# List of all default stems (all default PDF targets): -default_stems.tex := $(call get-stems,tex,default) -default_stems.tex.sh := $(call get-stems,tex.sh,default) -default_stems.tex.pl := $(call get-stems,tex.pl,default) -default_stems.tex.py := $(call get-stems,tex.py,default) -default_stems.rst := $(call get-stems,rst,default) -default_stems.fig := $(call get-stems,fig,default) -default_stems.gpi := $(call get-stems,gpi,default) -default_stems.dot := $(call get-stems,dot,default) -default_stems.xvg := $(call get-stems,xvg,default) -default_stems.svg := $(call get-stems,svg,default) -default_stems.png := $(call get-stems,png,default) -default_stems.jpg := $(call get-stems,jpg,default) -default_stems.eps.gz := $(call get-stems,eps.gz,default) - -# List of all stems (all possible bare PDF targets created here): -stems.tex := $(call get-stems,tex) -stems.tex.sh := $(call get-stems,tex.sh) -stems.tex.pl := $(call get-stems,tex.pl) -stems.tex.py := $(call get-stems,tex.py) -stems.rst := $(call get-stems,rst) -stems.fig := $(call get-stems,fig) -stems.gpi := $(call get-stems,gpi) -stems.dot := $(call get-stems,dot) -stems.xvg := $(call get-stems,xvg) -stems.svg := $(call get-stems,svg) -stems.png := $(call get-stems,png) -stems.jpg := $(call get-stems,jpg) -stems.eps.gz := $(call get-stems,eps.gz) - -# Utility function for creating larger lists of stems -# $(call concat-stems,suffixes,[prefix]) -concat-stems = $(sort $(foreach s,$1,$($(if $2,$2_,)stems.$s))) - -# The most likely to be source but not finished product go first -graphic_source_extensions := fig \ - gpi \ - xvg \ - svg \ - dot \ - eps.gz - -ifneq "$(strip $(BUILD_STRATEGY))" "pdflatex" -graphic_source_extensions += png jpg -graphic_target_extensions := eps ps -else -graphic_source_extensions += eps -graphic_target_extensions := pdf png jpg mps tif -endif - -all_stems_source := $(call concat-stems,tex,all) -all_stems_script := $(call concat-stems,tex.sh tex.pl tex.py rst,all) -all_stems_graphic := $(call concat-stems,$(graphic_source_extensions),all) -all_stems_ss := $(sort $(all_stems_source) $(all_stems_script)) -all_stems_sg := $(sort $(all_stems_script)) -all_stems_ssg := $(sort $(all_stems_ss)) - -default_stems_source := $(call concat-stems,tex,default) -default_stems_script := $(call concat-stems,tex.sh tex.pl tex.py rst,default) -default_stems_ss := $(sort $(default_stems_source) $(default_stems_script)) -default_stems_sg := $(sort $(default_stems_script)) -default_stems_ssg := $(sort $(default_stems_ss)) - -stems_source := $(call concat-stems,tex) -stems_script := $(call concat-stems,tex.sh tex.pl tex.py rst) -stems_graphic := $(call concat-stems,$(graphic_source_extensions)) -stems_gg := $(sort $(stems_graphic)) -stems_ss := $(sort $(stems_source) $(stems_script)) -stems_sg := $(sort $(stems_script)) -stems_ssg := $(sort $(stems_ss)) - -# Calculate names that can generate the need for an include file. We can't -# really do this with patterns because it's too easy to screw up, so we create -# an exhaustive list. -allowed_source_suffixes := \ - pdf \ - ps \ - dvi \ - ind \ - nls \ - bbl \ - aux \ - aux.make \ - d \ - auxbbl.make \ - _graphics \ - _show -allowed_source_patterns := $(addprefix %.,$(allowed_source_suffixes)) - -allowed_graphic_suffixes := \ - pdf \ - eps \ - gpihead.make \ - gpi.d -allowed_graphic_patterns := $(addprefix %.,$(allowed_graphic_suffixes)) - -# All targets allowed to build documents -allowed_source_targets := \ - $(foreach suff,$(allowed_source_suffixes),\ - $(addsuffix .$(suff),$(stems_ssg))) - -# All targets allowed to build graphics -allowed_graphic_targets := \ - $(foreach suff,$(allowed_graphic_suffixes),\ - $(addsuffix .$(suff),$(stems_gg))) - -# All targets that build multiple documents (like 'all') -allowed_batch_source_targets := \ - all \ - all-pdf \ - all-ps \ - all-dvi \ - all-bbl \ - all-ind \ - all-gls \ - all-nls \ - show - -# All targets that build multiple graphics (independent of document) -allowed_batch_graphic_targets := \ - all-graphics \ - all-pstex \ - all-dot2tex \ - show-graphics - -# Now we figure out which stuff is available as a make target for THIS RUN. -real_goals := $(call get-default,$(filter-out _includes,$(MAKECMDGOALS)),\ - all) - -specified_source_targets := $(strip \ - $(filter $(allowed_source_targets) $(stems_ssg),$(real_goals)) \ - ) - -specified_batch_source_targets := $(strip \ - $(filter $(allowed_batch_source_targets),$(real_goals)) \ - ) - -specified_graphic_targets := $(strip \ - $(filter $(allowed_graphic_targets),$(real_goals)) \ - ) - -specified_batch_graphic_targets := $(strip \ - $(filter $(allowed_batch_graphic_targets),$(real_goals)) \ - ) - -specified_gpi_targets := $(patsubst %.gpi,%.$(default_graphic_extension),\ - $(filter $(patsubst %.$(default_graphic_extension),%.gpi,$(specified_graphic_targets)),\ - $(all_files.gpi)) \ - ) - -# Determine which .d files need including from the information gained above. -# This is done by first checking whether a batch target exists. If it does, -# then all *default* stems are used to create possible includes (nobuild need -# not apply for batch status). If no batch targets exist, then the individual -# targets are considered and appropriate includes are taken from them. -source_stems_to_include := \ - $(sort\ - $(if $(specified_batch_source_targets),\ - $(default_stems_ss),\ - $(foreach t,$(specified_source_targets),\ - $(foreach p,$(allowed_source_patterns),\ - $(patsubst $p,%,$(filter $p $(stems_ssg),$t)) \ - )) \ - )) - -# Determine which .gpi.d files are needed using the above information. We -# first check whether a batch target is specified, then check individual -# graphics that may have been specified. -graphic_stems_to_include := \ - $(sort\ - $(if $(specified_batch_graphic_targets),\ - $(default_stems.gpi),\ - $(foreach t,$(specified_gpi_targets),\ - $(foreach p,$(allowed_graphic_patterns),\ - $(patsubst $p,%,$(filter $p,$t)) \ - )) \ - )) - -# All dependencies for the 'all' targets -all_pdf_targets := $(addsuffix .pdf,$(stems_ssg)) -all_ps_targets := $(addsuffix .ps,$(stems_ssg)) -all_dvi_targets := $(addsuffix .dvi,$(stems_ssg)) -all_tex_targets := $(addsuffix .tex,$(stems_sg)) -all_d_targets := $(addsuffix .d,$(stems_ssg)) -all_graphics_targets := $(addsuffix .$(default_graphic_extension),$(stems_gg)) -intermediate_graphics_targets := $(if $(filter pdf,$(default_graphic_extension)),$(addsuffix .eps,$(stems_gg)),) -all_pstex_targets := $(addsuffix .pstex_t,$(stems.fig)) -all_dot2tex_targets := $(addsuffix .dot_t,$(stems.dot)) - -all_known_graphics := $(sort $(all_graphics_targets) $(wildcard *.$(default_graphic_extension))) - -default_pdf_targets := $(addsuffix .pdf,$(default_stems_ss)) -ifneq "$(strip $(BUILD_STRATEGY))" "pdflatex" -default_ps_targets := $(addsuffix .ps,$(default_stems_ss)) -default_dvi_targets := $(addsuffix .dvi,$(default_stems_ss)) -pre_pdf_extensions := dvi ps -endif - -# Extensions generated by LaTeX invocation that can be removed when complete -rm_ext := \ - log *.log aux $(pre_pdf_extensions) pdf blg bbl out nav snm toc lof lot lol pfg \ - fls vrb idx ind ilg glg glo gls lox nls nlo nlg brf mtc maf brf -backup_patterns := *~ *.bak *.backup body.tmp head.tmp - -graph_stem := _graph - -# All LaTeX-generated files that can be safely removed - -rm_tex := \ - $(foreach e,$(rm_ext),$(addsuffix .$e,$(all_stems_source))) \ - $(foreach e,$(rm_ext) tex,$(addsuffix .$e,$(all_stems_sg))) \ - $(addsuffix .log,$(all_ps_targets) $(all_pdf_targets)) \ - $(addsuffix .*.log,$(stems_graphic)) - -# These are the files that will affect .gpi transformation for all .gpi files. -# -# Use only the first one found. Backward compatible values are at the end. -# Note that we use foreach, even though wildcard also returns a list, to ensure -# that the order in the uppercase variables is preserved. Directory listings -# provide no such guarantee, so we avoid relying on them. -gpi_sed := $(strip \ - $(firstword $(foreach f,$(GNUPLOT_SED),$(wildcard $f)))) -gpi_global := $(strip \ - $(firstword $(foreach f,$(GNUPLOT_GLOBAL),$(wildcard $f)))) - -# -# Functions used in generating output -# - -# Outputs all source dependencies to stdout. The first argument is the file to -# be parsed, the second is a list of files that will show up as dependencies in -# the new .d file created here. -# -# NOTE: BSD sed does not understand \|, so we have to do something more -# clunky to extract suitable extensions. -# -# Also, we do a little bit of funny rewriting up front (TARGETS=) to make sure -# that we can properly backslash-escape spaces in file names (e.g, on Cygwin -# for tex distributions that have "Program Files" in their name). -# -# $(call get-inputs,<parsed file>,<target files>) -define get-inputs -$(SED) \ --e '/^INPUT/!d' \ --e 's!^INPUT \(\./\)\{0,1\}!!' \ --e 's/[[:space:]]/\\ /g' \ --e 's/\(.*\)\.aux$$/\1.tex/' \ --e '/\.tex$$/b addtargets' \ --e '/\.cls$$/b addtargets' \ --e '/\.sty$$/b addtargets' \ --e '/\.pstex_t$$/b addtargets' \ --e '/\.dot_t$$/b addtargets' \ --e 'd' \ --e ':addtargets' \ --e 's/^/$2: /' \ -$1 | $(SORT) | $(UNIQ) -endef - -# $(call get-missing-inputs,<log file>,<target files>) -define get-missing-inputs -$(SED) \ --e '$$ b para' \ --e '/^$$/b para' \ --e 'H' \ --e 'd' \ --e ':para' \ --e 'x' \ --e '/^$$/d' \ --e 's/^\n*//' \ --e '/^! LaTeX Error: File /{' \ --e ' s/^/::DOUBLE_PARAGRAPH::/' \ --e ' h' \ --e ' d' \ --e '}' \ --e 's/^::DOUBLE_PARAGRAPH:://' \ --e '/Default extension: /!d' \ --e 's/[[:space:]]\{1,\}/ /g' \ --e 's/\n\{1,\}/ /g' \ --e 's/^.*File `//' \ --e 's/'"'"' not found\..*//' \ --e '/\.tex/!s/$$/.tex/' \ --e 's/[[:space:]]/\\ /g' \ --e 'h' \ --e 's/.*/# MISSING input "&" - (presence of comment affects build)/' \ --e 'p' \ --e 's/.*//' \ --e 'x' \ --e 's/^/$2: /' \ -$1 | $(SORT) | $(UNIQ) -endef - -# Get source file for specified graphics stem. -# -# $(call graphics-source,<stem>) -define graphics-source -$(strip $(firstword \ - $(wildcard \ - $(addprefix $1.,\ - $(graphic_source_extensions))) \ - $1 \ -)) -endef - -# Get the target file for the specified graphics file/stem -# -# $(call graphics-target,<stem>) -define graphics-target -$(strip $(if $(filter $(addprefix %.,$(graphic_target_extensions)),$1), $1, - $(firstword $(patsubst $(addprefix %.,$(graphic_source_extensions) $(graphic_target_extensions)), %, $1).$(default_graphic_extension) $1.$(default_graphic_extension)))) -endef - -# Outputs all of the graphical dependencies to stdout. The first argument is -# the stem of the source file being built, the second is a list of suffixes -# that will show up as dependencies in the generated .d file. -# -# Note that we try to escape spaces in filenames where possible. We have to do -# it with three backslashes so that as the name percolates through the makefile -# it eventually ends up with the proper escaping when the build rule is found. -# Ugly, but it appears to work. Note that graphicx doesn't allow filenames -# with spaces, so this could in many ways be moot unless you're using something -# like grffile. -# -# For pdflatex, we really need the missing file to be specified without an -# extension, otherwise compilation barfs on the first missing file. Truly -# annoying, but there you have it. -# -# It turns out that the graphics errors, although they have lines with empty -# space, are only made of two paragraphs. So, we just use some sed magic to -# get everything into paragraphs, detect when it's a paragraph that interests -# us, and double it up. Then we get the filename only if we're missing -# extensions (a sign that it's graphicx complaining). -# -# $(call get-graphics,<target file stem>) -#.log,$(addprefix $*.,d $(build_target_extension) _graphics) -define get-graphics -$(SED) \ --e '$$ b para' \ --e '/^$$/b para' \ --e 'H' \ --e 'd' \ --e ':para' \ --e 'x' \ --e '/^$$/d' \ --e 's/^\n*//' \ --e '/^! LaTeX Error: File `/{' \ --e ' s/^/::DOUBLE_PARAGRAPH::/' \ --e ' h' \ --e ' d' \ --e '}' \ --e 's/^::DOUBLE_PARAGRAPH:://' \ --e '/could not locate the file with any of these extensions:/{' \ --e ' s/\n\{1,\}/ /g' \ --e ' s/[[:space:]]\{1,\}/ /g' \ --e ' s/^.*File `//' \ --e ' s/'"'"' not found\..*//' \ --e ' h' \ --e ' s/.*/# MISSING stem "&" - (presence of comment affects build)/' \ --e ' p' \ --e ' g' \ --e ' b addtargets' \ --e '}' \ --e '/.*File: \(.*\) Graphic file (type [^)]*).*/{' \ --e ' s//\1/' \ --e ' b addtargets' \ --e '}' \ --e 'd' \ --e ':addtargets' \ --e 's/[[:space:]]/\\\\\\&/g' \ --e 'h' \ --e 's/.*/-include &.gpi.d/' \ --e 'p' \ --e 'g' \ --e 's/.*/$(addprefix $1,.d): $$$$(call graphics-source,&)/' \ --e 'p' \ --e 's/.*//' \ --e 'x' \ --e 's/.*/$(addprefix $1.,$(build_target_extension) _graphics): $$$$(call graphics-target,&)/' \ --e 'p' \ --e 'd' \ -$*.log -endef - -# Checks for build failure due to pstex inclusion, and gives instructions. -# -# $(call die-on-pstexs,<parsed file>) -define die-on-pstexs -if $(EGREP) -q '^! LaTeX Error: File .*\.pstex.* not found' $1; then \ - $(ECHO) "$(C_ERROR)Missing pstex_t file(s)$(C_RESET)"; \ - $(ECHO) "$(C_ERROR)Please run$(C_RESET)"; \ - $(ECHO) "$(C_ERROR) make all-pstex$(C_RESET)"; \ - $(ECHO) "$(C_ERROR)before proceeding.$(C_RESET)"; \ - exit 1; \ -fi -endef - -# Checks for build failure due to dot2tex, and gives instructions. -# -# $(call die-on-dot2tex,<parsed file>) -define die-on-dot2tex -if $(EGREP) -q ' LaTeX Error: File .*\.dot_t.* not found' $1; then \ - $(ECHO) "$(C_ERROR)Missing dot_t file(s)$(C_RESET)"; \ - $(ECHO) "$(C_ERROR)Please run$(C_RESET)"; \ - $(ECHO) "$(C_ERROR) make all-dot2tex$(C_RESET)"; \ - $(ECHO) "$(C_ERROR)before proceeding.$(C_RESET)"; \ - exit 1; \ -fi -endef - -# Checks for the existence of a .aux file, and dies with an error message if it -# isn't there. Note that we pass the file stem in, not the full filename, -# e.g., to check for foo.aux, we call it thus: $(call die-on-no-aux,foo) -# -# $(call die-on-no-aux,<aux stem>) -define die-on-no-aux -if [ ! -e '$1.aux' ]; then \ - $(call colorize-latex-errors,$1.log); \ - exit 1; \ -fi -endef - -# Outputs all index files to stdout. Arg 1 is the source file stem, arg 2 is -# the list of targets for the discovered dependency. -# -# $(call get-log-index,<log file stem>,<target files>) -define get-log-index -$(SED) \ --e 's/^No file \(.*\.ind\)\.$$/TARGETS=\1/' \ --e 's/^No file \(.*\.[gn]ls\)\.$$/TARGETS=\1/' \ --e 's/[[:space:]]/\\&/g' \ --e '/^TARGETS=/{' \ --e ' h' \ --e ' s/^TARGETS=/$2: /p' \ --e ' g' \ --e ' s/^TARGETS=\(.*\)/\1: $1.tex/p' \ --e '}' \ --e 'd' \ -'$1.log' | $(SORT) | $(UNIQ) -endef - - -# Outputs all bibliography files to stdout. Arg 1 is the source stem, arg 2 is -# a list of targets for each dependency found. -# -# The script kills all lines that do not contain bibdata. Remaining lines have -# the \bibdata macro and delimiters removed to create a dependency list. A -# trailing comma is added, then all adjacent commas are collapsed into a single -# comma. Then commas are replaced with the string .bib[space], and the -# trailing space is killed off. Finally, all filename spaces are escaped. -# This produces a list of space-delimited .bib filenames, which is what the -# make dep file expects to see. -# -# Note that we give kpsewhich a bogus argument so that a failure of sed to -# produce output will not cause an error. -# -# $(call get-bibs,<aux file>,<targets>) -define get-bibs -$(SED) \ --e '/^\\bibdata/!d' \ --e 's/\\bibdata{\([^}]*\)}/\1,/' \ --e 's/,\{2,\}/,/g' \ --e 's/[[:space:]]/\\&/g' \ --e 's/,/.bib /g' \ --e 's/ \{1,\}$$//' \ -$1 | $(XARGS) $(KPSEWHICH) '#######' | \ -$(SED) \ --e 's/^/$2: /' | \ -\$(SORT) | $(UNIQ) -endef - -# Makes a an aux file that only has stuff relevant to the target in it -# $(call make-auxtarget-file,<flattened-aux>,<new-aux>) -define make-auxtarget-file -$(SED) \ --e '/^\\newlabel/!d' \ -$1 > $2 -endef - -# Makes an aux file that only has stuff relevant to the bbl in it -# $(call make-auxbbl-file,<flattened-aux>,<new-aux>) -define make-auxbbl-file -$(SED) \ --e '/^\\newlabel/d' \ -$1 > $2 -endef - -# Makes a .gpi.d file from a .gpi file -# $(call make-gpi-d,<.gpi>,<.gpi.d>) -define make-gpi-d -$(ECHO) '# vim: ft=make' > $2; \ -$(ECHO) 'ifndef INCLUDED_$(call cleanse-filename,$2)' >> $2; \ -$(ECHO) 'INCLUDED_$(call cleanse-filename,$2) := 1' >> $2; \ -$(call get-gpi-deps,$1,$(addprefix $(2:%.gpi.d=%).,$(GNUPLOT_OUTPUT_EXTENSION) gpi.d)) >> $2; \ -$(ECHO) 'endif' >> $2; -endef - -# Parse .gpi files for data and loaded dependencies, output to stdout -# -# The sed script here tries to be clever about obtaining valid -# filenames from the gpi file. It assumes that the plot command starts its own -# line, which is not too difficult a constraint to satisfy. -# -# This command script also generates 'include' directives for every 'load' -# command in the .gpi file. The load command must appear on a line by itself -# and the file it loads must have the suffix .gpi. If you don't want it to be -# compiled when running make graphics, then give it a suffix of ._include_.gpi. -# -# $(call get-gpi-deps,<gpi file>,<targets>) -define get-gpi-deps -$(SED) \ --e '/^[[:space:]]*s\{0,1\}plot/,/[^\\]$$/{' \ --e ' H' \ --e ' /[^\\]$$/{' \ --e ' s/.*//' \ --e ' x' \ --e ' s/\\\{0,1\}\n//g' \ --e ' s/^[[:space:]]*s\{0,1\}plot[[:space:]]*\(\[[^]]*\][[:space:]]*\)*/,/' \ --e ' s/[[:space:]]*\(['\''"][^'\''"]*['\''"]\)\{0,1\}[^,]*/\1/g' \ --e ' s/,['\''"]-\{0,1\}['\''"]//g' \ --e ' s/[,'\''"]\{1,\}/ /g' \ --e ' s!.*!$2: &!' \ --e ' p' \ --e ' }' \ --e ' d' \ --e '}' \ --e 's/^[[:space:]]*load[[:space:]]*['\''"]\([^'\''"]*\.gpi\)['\''"].*$$/-include \1.d/p' \ --e 'd' \ -$1 -endef - -# Colorizes real, honest-to-goodness LaTeX errors that can't be overcome with -# recompilation. -# -# Note that we only ignore file not found errors for things that we know how to -# build, like graphics files. -# -# $(call colorize-latex-errors,<log file>) -define colorize-latex-errors -$(SED) \ --e '$$ b para' \ --e '/^$$/b para' \ --e 'H' \ --e 'd' \ --e ':para' \ --e 'x' \ --e '/^$$/d' \ --e 's/^\n*//' \ --e '/^! LaTeX Error: File /{' \ --e ' s/^/::DOUBLE_PARAGRAPH::/' \ --e ' h' \ --e ' d' \ --e '}' \ --e 's/^::DOUBLE_PARAGRAPH:://' \ --e '/could not locate the file with any of these extensions:/d' \ --e '/Missing .begin.document/{' \ --e ' h' \ --e ' s/.*/Are you trying to build an include file?/' \ --e ' x' \ --e ' G' \ --e '}' \ --e '/ LaTeX Error: Cannot determine size/d' \ --e 's/.* LaTeX Error .*/$(C_ERROR)&$(C_RESET)/p' \ --e 's/Error: pdflatex (file .*/$(C_ERROR)& - try specifying it without an extension$(C_RESET)/p' \ --e '/.*\*hyperref using.*driver \(.*\)\*.*/{' \ --e ' s//\1/' \ --e ' /^$(hyperref_driver_pattern)$$/!{' \ --e ' s/.*//' \ --e ' p' \ --e ' s/.*/$(C_ERROR)--- Using incorrect driver for hyperref! ---$(C_RESET)/' \ --e ' p' \ --e ' s/.*/$(C_ERROR)$(hyperref_driver_error)$(C_RESET)/' \ --e ' p' \ --e ' }' \ --e ' d' \ --e '}' \ --e '/ LaTeX Error: Unknown graphics extension/{' \ --e ' s/^/ /' \ --e ' h' \ --e ' s/.*/--- Graphics extension error:/' \ --e ' G' \ --e ' h' \ --e ' s/.*/--- If you specified the extension explicitly in your .tex file, try removing it./' \ --e ' H' \ --e ' g' \ --e ' s/.*/$(C_ERROR)&$(C_RESET)/' \ --e ' p' \ --e ' s/.*//' \ --e ' h' \ --e ' b' \ --e '}' \ --e 's/.*\(\n\{0,\}! .*\)/$(C_ERROR)\1$(C_RESET)/p' \ --e 'd' \ -$1 -endef - -# Colorize Makeindex errors -define colorize-makeindex-errors -$(SED) \ --e '/^!! /{' \ --e ' N' \ --e ' s/^.*$$/$(C_ERROR)&$(C_RESET)/' \ --e ' p' \ --e '}' \ --e 'd' \ -$1 -endef - -# Colorize epstopdf errors -# -# $(call colorize-epstopdf-errors,<log file>) -define colorize-epstopdf-errors -$(SED) \ --e '/^Error:/,/^Execution stack:/{' \ --e ' /^Execution stack:/d' \ --e ' s/.*/$(C_ERROR)&$(C_RESET)/' \ --e ' p' \ --e '}' \ --e 'd' \ -$1 -endef - -# Colorize GNUplot errors -# -# $(call colorize-gnuplot-errors,<log file>) -define colorize-gnuplot-errors -$(SED) \ --e '/, line [0-9]*:/!{' \ --e ' H' \ --e ' x' \ --e ' s/.*\n\(.*\n.*\)$$/\1/' \ --e ' x' \ --e '}' \ --e '/, line [0-9]*:/{' \ --e ' H' \ --e ' /unknown.*terminal type/{' \ --e ' s/.*/--- Try changing the GNUPLOT_OUTPUT_EXTENSION variable to 'eps'./' \ --e ' H' \ --e ' }' \ --e ' /gpihead/{' \ --e ' s/.*/--- This could be a Makefile bug - contact the maintainer./' \ --e ' H' \ --e ' }' \ --e ' g' \ --e ' s/.*/$(C_ERROR)&$(C_RESET)/' \ --e ' p' \ --e '}' \ --e '/^gnuplot>/,/^$$/{' \ --e ' s/^gnuplot.*/$(C_ERROR)&/' \ --e ' s/^$$/$(C_RESET)/' \ --e ' p' \ --e '}' \ --e 'd' \ -$1 -endef - -# Colorize GraphViz errors -# -# $(call colorize-dot-errors,<log file>) -define colorize-dot-errors -$(SED) \ --e '/^Error:/,/context:/s/.*/$(C_ERROR)&$(C_RESET)/p' \ --e 's/^Warning:.*/$(C_WARNING)&$(C_RESET)/p' \ --e 'd' \ -'$1' -endef - -# Get all important .aux files from the top-level .aux file and merges them all -# into a single file, which it outputs to stdout. -# -# $(call flatten-aux,<toplevel aux>,<output file>) -define flatten-aux -$(SED) \ --e '/\\@input{\(.*\)}/{' \ --e 's//\1/' \ --e 's![.:]!\\&!g' \ --e 'h' \ --e 's!.*!\\:\\\\@input{&}:{!' \ --e 'p' \ --e 'x' \ --e 's/\\././g' \ --e 's/.*/r &/p' \ --e 's/.*/d/p' \ --e 's/.*/}/p' \ --e 'd' \ --e '}' \ --e 'd' \ -'$1' > "$1.$$$$.sed.make"; \ -$(SED) -f "$1.$$$$.sed.make" '$1' > "$1.$$$$.make"; \ -$(SED) \ --e '/^\\relax/d' \ --e '/^\\bibcite/d' \ --e 's/^\(\\newlabel{[^}]\{1,\}}\).*/\1/' \ -"$1.$$$$.make" | $(SORT) > '$2'; \ -$(call remove-temporary-files,$1.$$$$.make $1.$$$$.sed.make) -endef - -# Generate pdf from postscript -# -# Note that we don't just call ps2pdf, since there are so many versions of that -# script on various systems. Instead, we call the postscript interpreter -# directly. -# -# $(call ps2pdf,infile,outfile,[embed fonts]) -define ps2pdf - $(GS) \ - -dSAFER -dCompatibilityLevel=$(PS_COMPATIBILITY) \ - $(if $3,$(PS_EMBED_OPTIONS)) \ - -q -dNOPAUSE -dBATCH \ - -sDEVICE=pdfwrite -sstdout=%stderr \ - '-sOutputFile=$2' \ - -dSAFER -dCompatibilityLevel=$(PS_COMPATIBILITY) \ - $(if $3,$(PS_EMBED_OPTIONS)) \ - -c .setpdfwrite \ - -f '$1' -endef - -# Colorize LaTeX output. -# This uses a neat trick from the Sed & Awk Book from O'Reilly: -# 1) If a line has a single ending paren, delete it to make a blank line (so -# that we catch the first error, which is not always preceded by a blank -# line). -# 2) Ensure that the last line of the file gets appended to the hold buffer, -# and blank it out to trigger end-of-paragraph logic below. -# 3) When encountering a blank line (LaTeX output helpfully breaks output on -# newlines) -# a) swap the hold buffer (containing the paragraph) into the pattern buffer (putting a blank line into the hold buffer), -# b) remove the newline at the beginning (don't ask), -# c) apply any colorizing substitutions necessary to ensure happiness. -# d) get the newline out of the hold buffer and append it -# e) profit! (print) -# 4) Anything not colorized is deleted, unless in verbose mode. -color_tex := \ - $(SED) \ - -e '$${' \ - -e ' /^$$/!{' \ - -e ' H' \ - -e ' s/.*//' \ - -e ' }' \ - -e '}' \ - -e '/^$$/!{' \ - -e ' H' \ - -e ' d' \ - -e '}' \ - -e '/^$$/{' \ - -e ' x' \ - -e ' s/^\n//' \ - -e ' /Output written on /{' \ - -e ' s/.*Output written on \([^(]*\) (\([^)]\{1,\}\)).*/Success! Wrote \2 to \1/' \ - -e ' s/[[:digit:]]\{1,\}/$(C_PAGES)&$(C_RESET)/g' \ - -e ' s/Success!/$(C_SUCCESS)&$(C_RESET)/g' \ - -e ' s/to \(.*\)$$/to $(C_SUCCESS)\1$(C_RESET)/' \ - -e ' b end' \ - -e ' }' \ - -e ' / *LaTeX Error:.*/{' \ - -e ' s/.*\( *LaTeX Error:.*\)/$(C_ERROR)\1$(C_RESET)/' \ - -e ' b end' \ - -e ' }' \ - -e ' /.*Warning:.*/{' \ - -e ' s//$(C_WARNING)&$(C_RESET)/' \ - -e ' b end' \ - -e ' }' \ - -e ' /Underfull.*/{' \ - -e ' s/.*\(Underfull.*\)/$(C_UNDERFULL)\1$(C_RESET)/' \ - -e ' b end' \ - -e ' }' \ - -e ' /Overfull.*/{' \ - -e ' s/.*\(Overfull.*\)/$(C_OVERFULL)\1$(C_RESET)/' \ - -e ' b end' \ - -e ' }' \ - $(if $(VERBOSE),,-e ' d') \ - -e ' :end' \ - -e ' G' \ - -e '}' \ - -# Colorize BibTeX output. -color_bib := \ - $(SED) \ - -e 's/^Warning--.*/$(C_WARNING)&$(C_RESET)/' -e 't' \ - -e '/---/,/^.[^:]/{' \ - -e ' H' \ - -e ' /^.[^:]/{' \ - -e ' x' \ - -e ' s/\n\(.*\)/$(C_ERROR)\1$(C_RESET)/' \ - -e ' p' \ - -e ' s/.*//' \ - -e ' h' \ - -e ' d' \ - -e ' }' \ - -e ' d' \ - -e '}' \ - -e '/(.*error.*)/s//$(C_ERROR)&$(C_RESET)/' \ - $(if $(VERBOSE),,-e 'd') - - -# Make beamer output big enough to print on a full page. Landscape doesn't -# seem to work correctly. -enlarge_beamer = $(PSNUP) -l -1 -W128mm -H96mm -pletter - -# $(call test-run-again,<source stem>) -test-run-again = $(EGREP) -q '^(.*Rerun .*|No file $1\.[^.]+\.)$$' $1.log - -# This tests whether the build target commands should be run at all, from -# viewing the log file. -# $(call test-log-for-need-to-run,<source stem>) -define test-log-for-need-to-run -$(SED) \ --e '/^No file $(call escape-dots,$1)\.aux\./d' \ -$1.log \ -| $(EGREP) -q '^(.*Rerun .*|No file $1\.[^.]+\.|No file .+\.tex\.|LaTeX Warning: File.*)$$' -endef - -# LaTeX invocations -# -# $(call latex,<tex file>,[<extra LaTeX args>]) -run-latex = $(latex_build_program) --interaction=batchmode $(if $2,$2,) $1 > /dev/null - -# $(call latex-color-log,<LaTeX stem>) -latex-color-log = $(color_tex) $1.log - -# $(call run-makeindex,<input>,<output>,<log>,<extra flags>) -define run-makeindex -success=1; \ -if ! $(MAKEINDEX) -q $1 -t $3 -o $2 $4 > /dev/null || $(EGREP) -q '^!!' $3; then \ - $(call colorize-makeindex-errors,$3); \ - $(RM) -f '$2'; \ - success=0; \ -fi; \ -[ "$$success" = "1" ] && $(sh_true) || $(sh_false); -endef - -# This runs the given script to generate output, and it uses MAKE_RESTARTS to -# ensure that it never runs it more than once for a particular root make -# invocation. -# -# $(call run-script,<interpreter>,<input>,<output>) -define run-script -[ ! -e '$2.cookie' ] && $(ECHO) "restarts=$(RESTARTS)" > $2.cookie && $(ECHO) "level=$(MAKELEVEL)" >> $2.cookie; \ -restarts=`$(SED) -n -e 's/^restarts=//p' $2.cookie`; \ -level=`$(SED) -n -e 's/^level=//p' $2.cookie`; \ -if $(EXPR) $(MAKELEVEL) '<=' $$level '&' $(RESTARTS) '<=' $$restarts >/dev/null; then \ - $(call echo-build,$2,$3,$(RESTARTS)-$(MAKELEVEL)); \ - $1 '$2' '$3'; \ - $(ECHO) "restarts=$(RESTARTS)" > '$2.cookie'; \ - $(ECHO) "level=$(MAKELEVEL)" >> '$2.cookie'; \ -fi -endef - -# BibTeX invocations -# -# $(call run-bibtex,<tex stem>) -run-bibtex = $(BIBTEX) $1 | $(color_bib) - - -# $(call convert-eps-to-pdf,<eps file>,<pdf file>,[gray]) -# Note that we don't use the --filter flag because it has trouble with bounding boxes that way. -define convert-eps-to-pdf -$(if $3,$(CAT) '$1' | $(call kill-ps-color) > '$1.cookie',$(CP) '$1' '$1.cookie'); \ -$(EPSTOPDF) '$1.cookie' --outfile='$2' > $1.log; \ -$(call colorize-epstopdf-errors,$1.log); -endef - -# $(call convert-gpi,<gpi file>,<output file>,[gray]) -# -define convert-gpi -$(ECHO) 'set terminal $(if $(filter %.pdf,$2),pdf enhanced,postscript enhanced eps)' \ -$(if $(filter %.pdf,$2),fsize ,)$(call get-default,$(strip \ -$(firstword \ - $(shell \ - $(SED) \ - -e 's/^\#\#FONTSIZE=\([[:digit:]]\{1,\}\)/\1/p' \ - -e 'd' \ - $1 $(strip $(gpi_global)) \ - ) \ -) \ -),$(if $(filter %.pdf,$2),$(DEFAULT_GPI_PDF_FONTSIZE),$(DEFAULT_GPI_EPS_FONTSIZE))) \ -$(strip $(if $3,monochrome,$(if \ -$(shell $(EGREP) '^\#\#[[:space:]]*GRAY[[:space:]]*$$' $< $(gpi_global)),\ -,color))) > $1head.make; \ -$(ECHO) 'set output "$2"' >> $1head.make; \ -$(if $(gpi_global),$(CAT) $(gpi_global) >> $1head.make;,) \ -fnames='$1head.make $1';\ -$(if $(gpi_sed),\ - $(SED) -f '$(gpi_sed)' $$fnames > $1.temp.make; \ - fnames=$1.temp.make;,\ -) \ -success=1; \ -if ! $(GNUPLOT) $$fnames 2>$1.log; then \ - $(call colorize-gnuplot-errors,$1.log); \ - success=0; \ -fi; \ -$(if $(gpi_sed),$(call remove-temporary-files,$1.temp.make);,) \ -$(call remove-temporary-files,$1head.make); \ -[ "$$success" = "1" ] && $(sh_true) || $(sh_false); -endef - -# Creation of .eps files from .png files -# -# The intermediate step of PNM (using NetPBM) produces much nicer output than -# ImageMagick's "convert" binary. I couldn't get the right combination of -# flags to make it look nice, anyway. -# -# To handle gray scale conversion, we pipe things through ppmtopgm in the -# middle. -# -# $(call convert-png,<png file>,<eps file>) -define convert-png -$(PNGTOPNM) "$1" \ - $(if $3,| $(PPMTOPGM),) \ - | $(PNMTOPS) -noturn \ - > "$2" -endef - -# Creation of .eps files from .jpg files -# -# Thanks to brubakee for this solution. -# -# Uses Postscript level 2 to avoid file size bloat -# $(call convert-jpg,<jpg file>,<eps file>) -define convert-jpg -$(CONVERT) $(if $3,-type Grayscale,) '$1' eps2:'$2' -endef - -# Creation of .eps files from .fig files -# $(call convert-fig,<fig file>,<output file>,[gray]) -convert-fig = $(FIG2DEV) -L $(if $(filter %.pdf,$2),pdf,eps) $(if $3,-N,) $1 $2 - -# Creation of .pstex files from .fig files -# $(call convert-fig-pstex,<fig file>,<pstex file>) -convert-fig-pstex = $(FIG2DEV) -L pstex $1 $2 > /dev/null 2>&1 - -# Creation of .pstex_t files from .fig files -# $(call convert-fig-pstex-t,<fig file>,<pstex file>,<pstex_t file>) -convert-fig-pstex-t = $(FIG2DEV) -L pstex_t -p $3 $1 $2 > /dev/null 2>&1 - -# Creation of .dot_t files from .dot files -# #(call convert-dot-tex,<dot file>,<dot_t file>) -convert-dot-tex = $(DOT2TEX) '$1' > '$2' - -# Converts svg files into .eps files -# -# $(call convert-svg,<svg file>,<eps file>,[gray]) -convert-svg = $(INKSCAPE) --export-eps='$2' '$1' - -# Converts xvg files into .eps files -# -# $(call convert-xvg,<xvg file>,<eps file>,[gray]) -convert-xvg = $(XMGRACE) '$1' -printfile - -hardcopy -hdevice $(if $3,-mono,) EPS > '$2' - -# Converts .eps.gz files into .eps files -# -# $(call convert-epsgz,<eps.gz file>,<eps file>,[gray]) -convert-epsgz = $(GUNZIP) -c '$1' $(if $3,| $(call kill-ps-color)) > '$2' - -# Converts .eps files into .eps files (usually a no-op, but can make grayscale) -# -# $(call convert-eps,<in file>,<out file>,[gray]) -convert-eps = $(if $3,$(call kill-ps-color) $1 > $2) - -# The name of the file containing special postscript commands for grayscale -gray_eps_file := gray.eps.make - -# Changes sethsbcolor and setrgbcolor calls in postscript to always produce -# grayscale. In general, this is accomplished by writing new versions of those -# functions into the user dictionary space, which is looked up before the -# global or system dictionaries (userdict is one of the permanent dictionaries -# in postscript and is not read-only like systemdict). -# -# For setrgbcolor, the weighted average of the triple is computed and the -# triple is replaced with three copies of that average before the original -# procedure is called: .299R + .587G + .114B -# -# For sethsbcolor, the color is first converted to RGB, then to grayscale by -# the new setrgbcolor operator as described above. Why is this done? -# Because simply using the value component will tend to make pure colors -# white, a very undesirable thing. Pure blue should not translate to white, -# but to some level of gray. Conversion to RGB does the right thing. It's -# messy, but it works. -# -# From -# http://en.wikipedia.org/wiki/HSV_color_space#Transformation_from_HSV_to_RGB, -# HSB = HSV (Value = Brightness), and the formula used to convert to RGB is -# as follows: -# -# Hi = int(floor(6 * H)) mod 6 -# f = 6 * H - Hi -# p = V(1-S) -# q = V(1-fS) -# t = V(1-(1-f)S) -# if Hi = 0: R G B <-- V t p -# if Hi = 1: R G B <-- q V p -# if Hi = 2: R G B <-- p V t -# if Hi = 3: R G B <-- p q V -# if Hi = 4: R G B <-- t p V -# if Hi = 5: R G B <-- V p q -# -# The messy stack-based implementation is below -# $(call create-gray-eps-file,filename) -define create-gray-eps-file -$(ECHO) -n -e '\ -/OLDRGB /setrgbcolor load def\n\ -/setrgbcolor {\n\ - .114 mul exch\n\ - .587 mul add exch\n\ - .299 mul add\n\ - dup dup\n\ - OLDRGB\n\ -} bind def\n\ -/OLDHSB /sethsbcolor load def\n\ -/sethsbcolor {\n\ - 2 index % H V S H\n\ - 6 mul floor cvi 6 mod % Hi V S H\n\ - 3 index % H Hi V S H\n\ - 6 mul % 6H Hi V S H\n\ - 1 index % Hi 6H Hi V S H\n\ - sub % f Hi V S H\n\ - 2 index 1 % 1 V f Hi V S H\n\ - 4 index % S 1 V f Hi V S H\n\ - sub mul % p f Hi V S H\n\ - 3 index 1 % 1 V p f Hi V S H\n\ - 6 index % S 1 V p f Hi V S H\n\ - 4 index % f S 1 V p f Hi V S H\n\ - mul sub mul % q p f Hi V S H\n\ - 4 index 1 1 % 1 1 V q p f Hi V S H\n\ - 5 index % f 1 1 V q p f Hi V S H\n\ - sub % (1-f) 1 V q p f Hi V S H\n\ - 8 index % S (1-f) 1 V q p f Hi V S H\n\ - mul sub mul % t q p f Hi V S H\n\ - 4 -1 roll pop % t q p Hi V S H\n\ - 7 -2 roll pop pop % t q p Hi V\n\ - 5 -2 roll % Hi V t q p\n\ - dup 0 eq\n\ - {1 index 3 index 6 index}\n\ - {\n\ - dup 1 eq\n\ - {3 index 2 index 6 index}\n\ - {\n\ - dup 2 eq\n\ - {4 index 2 index 4 index}\n\ - {\n\ - dup 3 eq\n\ - {4 index 4 index 3 index}\n\ - {\n\ - dup 4 eq\n\ - {2 index 5 index 3 index}\n\ - {\n\ - dup 5 eq\n\ - {1 index 5 index 5 index}\n\ - {0 0 0}\n\ - ifelse\n\ - }\n\ - ifelse\n\ - }\n\ - ifelse\n\ - }\n\ - ifelse\n\ - }\n\ - ifelse\n\ - }\n\ - ifelse % B G R Hi V t q p\n\ - setrgbcolor\n\ - 5 {pop} repeat\n\ -} bind def\n'\ -> $1 -endef - -# This actually inserts the color-killing code into a postscript file -# $(call kill-ps-color) -define kill-ps-color -$(SED) -e '/%%EndComments/r $(gray_eps_file)' -endef - -# Converts graphviz .dot files into .eps files -# Grayscale is not directly supported by dot, so we pipe it through fig2dev in -# that case. -# $(call convert-dot,<dot file>,<eps file>,<log file>,[gray]) -define convert-dot -$(DOT) -Tps '$1' 2>'$3' $(if $4,| $(call kill-ps-color)) > $2; \ -$(call colorize-dot-errors,$3) -endef - -# Convert DVI to Postscript -# $(call make-ps,<dvi file>,<ps file>,<log file>,[<paper size>]) -make-ps = \ - $(DVIPS) -o '$2' $(if $(filter-out BEAMER,$4),-t$(firstword $4),) '$1' \ - $(if $(filter BEAMER,$4),| $(enlarge_beamer)) > $3 2>&1 - -# Convert Postscript to PDF -# $(call make-pdf,<ps file>,<pdf file>,<log file>,<embed file>) -make-pdf = \ - $(call ps2pdf,$1,$2,$(filter 1,$(shell $(CAT) '$4'))) > '$3' 2>&1 - -# Display information about what is being done -# $(call echo-build,<input file>,<output file>,[<run number>]) -echo-build = $(ECHO) "$(C_BUILD)= $1 --> $2$(if $3, ($3),) =$(C_RESET)" -echo-graphic = $(ECHO) "$(C_GRAPHIC)= $1 --> $2 =$(C_RESET)" -echo-dep = $(ECHO) "$(C_DEP)= $1 --> $2 =$(C_RESET)" - -# Display a list of something -# $(call echo-list,<values>) -echo-list = for x in $1; do $(ECHO) "$$x"; done - -# -# DEFAULT TARGET -# - -.PHONY: all -all: $(default_pdf_targets) ; - -.PHONY: all-pdf -all-pdf: $(default_pdf_targets) ; - -ifneq "$(strip $(BUILD_STRATEGY))" "pdflatex" -.PHONY: all-ps -all-ps: $(default_ps_targets) ; - -.PHONY: all-dvi -all-dvi: $(default_dvi_targets) ; -endif - -# -# VIEWING TARGET -# -.PHONY: show -show: all - $(QUIET)for x in $(default_pdf_targets); do \ - [ -e "$$x" ] && $(VIEW_PDF) $$x & \ - done - -# -# INCLUDES -# -source_includes := $(addsuffix .d,$(source_stems_to_include)) -graphic_includes := $(addsuffix .gpi.d,$(graphic_stems_to_include)) - -# Include only the dependencies used -ifneq "" "$(source_includes)" -include $(source_includes)$(call include-message,$(source_includes)) -endif -ifneq "" "$(graphic_includes)" -include $(graphic_includes)$(call include-message,$(graphic_includes)) -endif - -# -# MAIN TARGETS -# - -# Note that we don't just say %: %.pdf here - this can tend to mess up our -# includes, which detect what kind of file we are asking for. For example, -# asking to build foo.pdf is much different than asking to build foo when -# foo.gpi exists, because we look through all of the goals for *.pdf that -# matches *.gpi, then use that to determine which include files we need to -# build. -# -# Thus, we invoke make recursively with better arugments instead, restarting -# all of the appropriate machinery. -.PHONY: $(default_stems_ss) -$(default_stems_ss): %: %.pdf ; - -# This builds and displays the wanted file. -.PHONY: $(addsuffix ._show,$(stems_ssg)) -%._show: %.pdf - $(QUIET)$(VIEW_PDF) $< & - -ifneq "$(strip $(BUILD_STRATEGY))" "pdflatex" -.SECONDARY: $(all_pdf_targets) -%.pdf: %.ps %.embed.make - $(QUIET)$(call echo-build,$<,$@) - $(QUIET)$(call make-pdf,$<,$@.temp,$@.log,$*.embed.make); \ - if [ x"$$?" = x"0" ]; then \ - $(if $(VERBOSE),$(CAT) $@.log,:); \ - $(RM) -f '$@'; \ - $(MV) '$@.temp' '$@'; \ - $(TOUCH) '$@'; \ - $(call copy-with-logging,$@,$(BINARY_TARGET_DIR)); \ - else \ - $(CAT) $@.log; \ - $(call remove-temporary-files,'$@.temp'); \ - $(sh_false); \ - fi - -.SECONDARY: $(all_ps_targets) -%.ps: %.dvi %.paper.make - $(QUIET)$(call echo-build,$<,$@) - $(QUIET)$(call make-ps,$<,$@.temp,$@.log,\ - $(firstword $(shell $(CAT) $*.paper.make))); \ - if [ x"$$?" = x"0" ]; then \ - $(if $(VERBOSE),$(CAT) $@.log,:); \ - $(RM) -f '$@'; \ - $(MV) '$@.temp' '$@'; \ - $(TOUCH) '$@'; \ - $(call copy-with-logging,$@,$(BINARY_TARGET_DIR)); \ - else \ - $(CAT) $@.log; \ - $(call remove-temporary-files,'$@.temp'); \ - $(sh_false); \ - fi -endif - -# Build the final target (dvi or pdf) file. This is a very tricky rule because -# of the way that latex runs multiple times, needs graphics after the first run -# (or maybe already has them), and relies on bibliographies or indices that may -# not exist. -# -# Check the log for fatal errors. If they exist, colorize and bail. -# -# Create the .auxtarget.cookie file. (Needed for next time if not present) -# -# If any of the following are true, we must rebuild at least one time: -# -# * the .bbl was recently rebuilt -# -# check a cookie, then delete it -# -# * any of several output files was created or changed: -# -# check $*.run.cookie, then delete it -# -# * the .aux file changed in a way that necessitates attention -# -# Note that if the .auxtarget.make file doesn't exist, this means -# that we are doing a clean build, so it doesn't figure into the -# test for running again. -# -# compare against .auxtarget.make -# -# move if different, remove if not -# -# * the .log file has errors or warnings requiring at least one more run -# -# We use a loop over a single item to simplify the process of breaking -# out when we find one of the conditions to be true. -# -# If we do NOT need to run latex here, then we move the $@.1st.make file -# over to $@ because the target file has already been built by the first -# dependency run and is valid. -# -# If we do, we delete that cookie file and do the normal multiple-runs -# routine. -# -ifneq "$(strip $(BUILD_STRATEGY))" "pdflatex" -.SECONDARY: $(all_dvi_targets) -endif -%.$(build_target_extension): %.bbl %.aux %.$(build_target_extension).1st.make - $(QUIET)\ - fatal=`$(call colorize-latex-errors,$*.log)`; \ - if [ x"$$fatal" != x"" ]; then \ - $(ECHO) "$$fatal"; \ - exit 1; \ - fi; \ - $(call make-auxtarget-file,$*.aux.make,$*.auxtarget.cookie); \ - run=0; \ - for i in 1; do \ - if $(call test-exists,$*.bbl.cookie); then \ - run=1; \ - break; \ - fi; \ - if $(call test-exists,$*.run.cookie); then \ - run=1; \ - break; \ - fi; \ - if $(call \ - test-exists-and-different,$*.auxtarget.cookie,$*.auxtarget.make);\ - then \ - run=1; \ - break; \ - fi; \ - if $(call test-log-for-need-to-run,$*); then \ - run=1; \ - break; \ - fi; \ - done; \ - $(call remove-temporary-files,$*.bbl.cookie $*.run.cookie); \ - $(MV) $*.auxtarget.cookie $*.auxtarget.make; \ - if [ x"$$run" = x"1" ]; then \ - $(call remove-files,$@.1st.make); \ - for i in 2 3 4 5; do \ - $(if $(findstring 3.79,$(MAKE_VERSION)),\ - $(call echo-build,$*.tex,$@,$(RESTARTS)-$$$$i),\ - $(call echo-build,$*.tex,$@,$(RESTARTS)-$$i)\ - ); \ - $(call run-latex,$*); \ - $(CP) '$*.log' '$*.'$(RESTARTS)-$$i'.log'; \ - $(call test-run-again,$*) || break; \ - done; \ - else \ - $(MV) '$@.1st.make' '$@'; \ - fi; \ - $(call copy-with-logging,$@,$(BINARY_TARGET_DIR)); \ - $(call latex-color-log,$*) - -# Build the .bbl file. When dependencies are included, this will (or will -# not!) depend on something.bib, which we detect, acting accordingly. The -# dependency creation also produces the %.auxbbl.make file. BibTeX is a bit -# finicky about what you call the actual files, but we can rest assured that if -# a .auxbbl.make file exists, then the .aux file does, as well. The -# .auxbbl.make file is a cookie indicating whether the .bbl needs to be -# rewritten. It only changes if the .aux file changes in ways relevant to .bbl -# creation. -# -# Note that we do NOT touch the .bbl file if there is no need to -# create/recreate it. We would like to leave existing files alone if they -# don't need to be changed, thus possibly avoiding a rebuild trigger. -%.bbl: %.auxbbl.make - $(QUIET)\ - $(if $(filter %.bib,$^),\ - $(call echo-build,$(filter %.bib,$?) $*.aux,$@); \ - $(call run-bibtex,$*); \ - $(TOUCH) $@.cookie; \ - ) \ - if $(EGREP) -q 'bibstyle.(apacann|chcagoa|[^}]*annot)' '$*.aux'; then \ - $(call echo-build,** annotated extra latex **,output ignored,$(RESTARTS)-1); \ - $(call run-latex,$*); \ - $(CP) '$*.log' '$*.$(RESTARTS)-annotated.log'; \ - $(if $(filter %.bib,$^),\ - $(call echo-build,** annotated extra bibtex ** $(filter %.bib,$?) $*.aux,$@); \ - $(call run-bibtex,$*); \ - $(TOUCH) $@.cookie; \ - ) \ - $(call echo-build,** annotated extra latex **,output ignored,$(RESTARTS)-2); \ - $(call run-latex,$*); \ - fi - -# Create the index file - note that we do *not* depend on %.tex here, since -# that unnecessarily restricts the kinds of indices that we can build to those -# with exactly the same stem as the source file. Things like splitidx create -# idx files with other names. -# -# Therefore, we add the .tex dependency in the sourcestem.d file in the call to -# get index file dependencies from the logs. -%.ind: %.idx - $(QUIET)$(call echo-build,$<,$@) - $(QUIET)$(call run-makeindex,$<,$@,$*.ilg) - -# Create the glossary file -%.gls: %.glo %.tex - $(QUIET)$(call echo-build,$<,$@) - $(QUIET)$(call run-makeindex,$<,$@,$*.glg,-s nomencl.ist) - -# Create the nomenclature file -%.nls: %.nlo %.tex - $(QUIET)$(call echo-build,$<,$@) - $(QUIET)$(call run-makeindex,$<,$@,$*.nlg,-s nomencl.ist) - -# SCRIPTED LaTeX TARGETS -# -# Keep the generated .tex files around for debugging if needed. -.SECONDARY: $(all_tex_targets) - -%.tex:: %.tex.sh - $(QUIET)$(call run-script,$(SHELL),$<,$@) - -%.tex:: %.tex.py - $(QUIET)$(call run-script,$(PYTHON),$<,$@) - -%.tex:: %.tex.pl - $(QUIET)$(call run-script,$(PERL),$<,$@) - -%.tex:: %.rst $(RST_STYLE_FILE) - $(QUIET)\ - $(call run-script,$(RST2LATEX)\ - --documentoptions=letterpaper\ - $(if $(RST_STYLE_FILE),--stylesheet=$(RST_STYLE_FILE),),$<,$@) - -# -# GRAPHICS TARGETS -# -.PHONY: all-graphics -all-graphics: $(all_graphics_targets); - -ifneq "$(strip $(BUILD_STRATEGY))" "pdflatex" -.PHONY: all-pstex -all-pstex: $(all_pstex_targets); -endif - -.PHONY: all-dot2tex -all-dot2tex: $(all_dot2tex_targets); - -.PHONY: show-graphics -show-graphics: all-graphics - $(VIEW_GRAPHICS) $(all_known_graphics) - -$(gray_eps_file): - $(QUIET)$(call echo-build,$^,$@) - $(QUIET)$(call create-gray-eps-file,$@) - -ifeq "$(strip $(BUILD_STRATEGY))" "pdflatex" -%.pdf: %.eps $(if $(GRAY),$(gray_eps_file)) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-eps-to-pdf,$<,$@,$(GRAY)) - -ifeq "$(strip $(GNUPLOT_OUTPUT_EXTENSION))" "pdf" -%.pdf: %.gpi %.gpi.d $(gpi_sed) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-gpi,$<,$@,$(GRAY)) -endif - -%.pdf: %.fig - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-fig,$<,$@,$(GRAY)) - -endif - -%.eps: %.gpi %.gpi.d $(gpi_sed) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-gpi,$<,$@,$(GRAY)) - -%.eps: %.fig - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-fig,$<,$@,$(GRAY)) - -%.eps: %.dot $(if $(GRAY),$(gray_eps_file)) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-dot,$<,$@,$<.log,$(GRAY)) - -%.eps: %.xvg $(if $(GRAY),$(gray_eps_file)) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-xvg,$<,$@,$(GRAY)) - -%.eps: %.svg $(if $(GRAY),$(gray_eps_file)) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-svg,$<,$@,$(GRAY)) - -%.eps: %.jpg $(if $(GRAY),$(gray_eps_file)) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-jpg,$<,$@,$(GRAY)) - -%.eps: %.png $(if $(GRAY),$(gray_eps_file)) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-png,$<,$@,$(GRAY)) - -%.eps: %.eps.gz $(if $(GRAY),$(gray_eps_file)) - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-epsgz,$<,$@,$(GRAY)) - -%.pstex: %.fig - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-fig-pstex,$<,$@,$(GRAY)) - -%.pstex_t: %.fig %.pstex - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-fig-pstex-t,$<,$@,$*.pstex,$(GRAY)) - -%.dot_t: %.dot - $(QUIET)$(call echo-graphic,$^,$@) - $(QUIET)$(call convert-dot-tex,$<,$@) - -# -# DEPENDENCY-RELATED TARGETS. -# - -# Generate all of the information needed to get dependencies -# As a side effect, this creates a .dvi or .pdf file (depending on the build -# strategy). We need to be sure to remove it if there are errors. Errors can -# take several forms and all of them are found within the log file: -# * There was a LaTeX error -# * A needed file was not found -# * Cross references need adjustment -# -# Behavior: -# This rule is responsible for generating the following: -# %.aux -# %.d -# %.aux.make -# %.(pdf|dvi).1st.make (the .pdf or .dvi output file, moved) -# -# Steps: -# -# Run latex -# Move .pdf or .dvi somewhere else (make no judgements about success) -# Flatten the .aux file into another file -# Add source dependencies -# Add graphic dependencies -# Add bib dependencies -# -# Create cookies for various suffixes that may represent files that -# need to be read by LaTeX in order for it to function properly. -# -# Note that if some of the dependencies are discovered because they turn -# up missing in the log file, we really need the .d file to be reloaded. -# Adding a sleep command helps with this. Otherwise make is extremely -# nondeterministic, sometimes working, sometimes not. -# -# Usually we can force this by simply removing the generated pdf file and -# not creating a .1st.make file.. -# -%.$(build_target_extension).1st.make %.d %.aux %.aux.make %.fls: %.tex - $(QUIET)$(call echo-build,$<,$*.d $*.$(build_target_extension).1st.make,$(RESTARTS)-1) - $(QUIET)\ - $(call run-latex,$<,--recorder) || $(sh_true); \ - $(CP) '$*.log' '$*.$(RESTARTS)-1.log'; \ - $(call die-on-dot2tex,$*.log); \ - $(call die-on-no-aux,$*); \ - $(call flatten-aux,$*.aux,$*.aux.make); \ - $(ECHO) "# vim: ft=make" > $*.d; \ - $(ECHO) ".PHONY: $*._graphics" >> $*.d; \ - $(call get-inputs,$*.fls,$(addprefix $*.,aux aux.make d $(build_target_extension))) >> $*.d; \ - $(call get-missing-inputs,$*.log,$(addprefix $*.,aux aux.make d $(build_target_extension))) >> $*.d; \ - $(ECHO) ".SECONDEXPANSION:" >> $*.d; \ - $(call get-graphics,$*) >> $*.d; \ - $(call get-log-index,$*,$(addprefix $*.,d aux aux.make)) >> $*.d; \ - $(call get-bibs,$*.aux.make,$(addprefix $*.,bbl aux aux.make)) >> $*.d; \ - $(EGREP) -q "# MISSING" $*.d && $(SLEEP) 1 && $(RM) $*.pdf; \ - $(call move-if-exists,$*.$(build_target_extension),$*.$(build_target_extension).1st.make); \ - for s in toc out lot lof lol nav; do \ - if [ -e "$*.$$s" ]; then \ - if ! $(DIFF) -q $*.$$s $*.$$s.make >/dev/null 2>&1; then \ - $(TOUCH) $*.run.cookie; \ - fi; \ - $(CP) $*.$$s $*.$$s.make; \ - fi; \ - done - -# This is a cookie that is updated if the flattened aux file has changed in a -# way that affects the bibliography generation. -.SECONDARY: $(addsuffix .auxbbl.make,$(stems_ssg)) -%.auxbbl.make: %.aux.make - $(QUIET)\ - $(call make-auxbbl-file,$<,$@.temp); \ - $(call replace-if-different-and-remove,$@.temp,$@) - -# Build a dependency file for .gpi files. These often plot data files that -# also reside in the directory, so if a data file changes, it's nice to know -# about it. This also handles loaded .gpi files, whose filename should have -# _include_. in it. -%.gpi.d: %.gpi - $(QUIET)$(call echo-build,$<,$@) - $(QUIET)$(call make-gpi-d,$<,$@) - -# Store the paper size for this document -- note that if beamer is used we set -# it to the special BEAMER paper size. We only do this, however, if the -# special comment exists, in which case we enlarge the output with psnup. -# -# The paper size is extracted from a documentclass attribute. -%.paper.make: %.tex - $(QUIET)$(SED) \ - -e '/\\documentclass/,/}/{' \ - -e ' s/%.*//' \ - -e ' H' \ - -e ' /}/{' \ - -e ' s/.*//' \ - -e ' x' \ - -e ' /\\documentclass/!d' \ - -e ' s/[\n[:space:]]*//g' \ - -e ' s/\([,{[]\)\([[:alnum:]]\{1,\}\)paper\([],}]\)/\1%-\2-%\3/g' \ - -e ' s/\([,{[]\)\(landscape\)\([],}]\)/\1%-\2-%\3/g' \ - -e ' s/^[^%]*%-//' \ - -e ' s/-%[^%]*$$//' \ - -e ' s/-%[^%]%-/ /g' \ - -e ' p' \ - -e ' }' \ - -e ' d' \ - -e '}' \ - -e 'd' \ - $< > $@; \ - $(EGREP) -q '^[^%]*\\documentclass[^{]*{beamer}' $< && \ - (\ - $(EGREP) -q '^%%[[:space:]]*BEAMER[[:space:]]*LARGE$$' $< && \ - $(ECHO) "BEAMER" > $@ || \ - : > $@ \ - ) || $(sh_true) - -# Store embedding instructions for this document using a special comment -%.embed.make: %.tex - $(QUIET)$(EGREP) '^%%[[:space:]]*NO[[:space:]]*EMBED[[:space:]]*$$' $< \ - && $(ECHO) '' > $@ \ - || $(ECHO) '1' > $@; - -# -# HELPFUL PHONY TARGETS -# - -.PHONY: _all_programs -_all_programs: - $(QUIET)$(ECHO) "== All External Programs Used ==" - $(QUIET)$(call output-all-programs) - -.PHONY: _check_programs -_check_programs: - $(QUIET)$(ECHO) "== Checking Makefile Dependencies =="; $(ECHO) - $(QUIET) \ - $(ECHO) hi; \ - allprogs=`\ - ($(call output-all-programs)) | \ - $(SED) \ - -e 's/^[[:space:]]*//' \ - -e '/^#/d' \ - -e 's/[[:space:]]*#.*//' \ - -e '/^=/s/[[:space:]]/_/g' \ - -e '/^[[:space:]]*$$/d' \ - -e 's/^[^=].*=[[:space:]]*\([^[:space:]]\{1,\}\).*$$/\\1/' \ - `; \ - spaces=' '; \ - for p in $${allprogs}; do \ - case $$p in \ - =*) $(ECHO); $(ECHO) "$$p";; \ - *) \ - $(ECHO) -n "$$p:$$spaces" | $(SED) -e 's/^\(.\{0,20\}\).*$$/\1/'; \ - loc=`$(WHICH) $$p`; \ - if [ x"$$?" = x"0" ]; then \ - $(ECHO) "$(C_SUCCESS)Found:$(C_RESET) $$loc"; \ - else \ - $(ECHO) "$(C_FAILURE)Not Found$(C_RESET)"; \ - fi; \ - ;; \ - esac; \ - done - -.PHONY: _check_gpi_files -_check_gpi_files: - $(QUIET)$(ECHO) "== Checking all .gpi files for common errors =="; \ - $(ECHO); \ - for f in $(files.gpi); do \ - result=`$(EGREP) '^([^#]*set terminal |set output )' $$f`; \ - $(ECHO) -n "$$f: "; \ - if [ x"$$result" = x"" ]; then \ - $(ECHO) "$(C_SUCCESS)Okay$(C_RESET)"; \ - else \ - $(ECHO) "$(C_FAILURE)Warning: Problematic commands:$(C_RESET)";\ - $(ECHO) "$(C_ERROR)$$result$(C_RESET)"; \ - fi; \ - done; \ - $(ECHO) - -.PHONY: _all_stems -_all_stems: - $(QUIET)$(ECHO) "== All Stems ==" - $(QUIET)$(call echo-list,$(sort $(default_stems_ss))) - -.PHONY: _includes -_includes: - $(QUIET)$(ECHO) "== Include Stems ==" - $(QUIET)$(ECHO) "=== Sources ===" - $(QUIET)$(call echo-list,$(sort $(source_includes))) - $(QUIET)$(ECHO) "=== Graphics ===" - $(QUIET)$(call echo-list,$(sort $(graphic_includes))) - -.PHONY: _all_sources -_all_sources: - $(QUIET)$(ECHO) "== All Sources ==" - $(QUIET)$(call echo-list,$(sort $(all_files.tex))) - -.PHONY: _dependency_graph -_dependency_graph: - $(QUIET)$(ECHO) "/* LaTeX Dependency Graph */" - $(QUIET)$(call output-dependency-graph) - -.PHONY: _show_dependency_graph -_show_dependency_graph: - $(QUIET)$(call output-dependency-graph,$(graph_stem).dot) - $(QUIET)$(DOT) -Tps -o $(graph_stem).eps $(graph_stem).dot - $(QUIET)$(VIEW_POSTSCRIPT) $(graph_stem).eps - $(QUIET)$(call remove-temporary-files,$(graph_stem).*) - -.PHONY: _sources -_sources: - $(QUIET)$(ECHO) "== Sources ==" - $(QUIET)$(call echo-list,$(sort $(files.tex))) - -.PHONY: _scripts -_scripts: - $(QUIET)$(ECHO) "== Scripts ==" - $(QUIET)$(call echo-list,$(sort $(files_scripts))) - -.PHONY: _graphic_outputs -_graphic_outputs: - $(QUIET)$(ECHO) "== Graphic Outputs ==" - $(QUIET)$(call echo-list,$(sort $(all_graphics_targets))) - -.PHONY: _env -_env: -ifdef .VARIABLES - $(QUIET)$(ECHO) "== MAKE VARIABLES ==" - $(QUIET)$(call echo-list,$(foreach var,$(sort $(.VARIABLES)),'$(var)')) -endif - $(QUIET)$(ECHO) "== ENVIRONMENT ==" - $(QUIET)$(ENV) - -# -# CLEAN TARGETS -# -# clean-generated is somewhat unique - it relies on the .fls file being -# properly built so that it can determine which of the files was generated, and -# which was not. Expect it to silently fail if the .fls file is missing. -# -# This is used to, e.g., clean up index files that are generated by the LaTeX. -.PHONY: clean-generated -clean-generated: - $(QUIET)$(call clean-files,$(foreach e,$(addsuffix .fls,$(all_stems_source)),\ - $(shell $(call get-generated-names,$e)))) - -.PHONY: clean-deps -clean-deps: - $(QUIET)$(call clean-files,$(all_d_targets) *.make *.make.temp *.cookie) - -.PHONY: clean-tex -clean-tex: clean-deps - $(QUIET)$(call clean-files,$(rm_tex)) - -.PHONY: clean-graphics -# TODO: This *always* deletes pstex files, even if they were not generated by -# anything.... In other words, if you create a pstex and pstex_t pair by hand -# an drop them in here without the generating fig file, they will be deleted -# and you won't get them back. It's a hack put in here because I'm not sure we -# even want to keep pstex functionality, so my motivation is not terribly high -# for doing it right. -clean-graphics: - $(QUIET)$(call clean-files,$(all_graphics_targets) $(intermediate_graphics_targets) *.gpi.d *.pstex *.pstex_t *.dot_t) - -.PHONY: clean-backups -clean-backups: - $(QUIET)$(call clean-files,$(backup_patterns) *.temp) - -.PHONY: clean-auxiliary -clean-auxiliary: - $(QUIET)$(call clean-files,$(graph_stem).*) - -.PHONY: clean-nographics -clean-nographics: clean-tex clean-deps clean-backups clean-auxiliary ; - -.PHONY: clean -clean: clean-generated clean-tex clean-graphics clean-deps clean-backups clean-auxiliary - -# -# HELP TARGETS -# - -.PHONY: help -help: - $(help_text) - -.PHONY: version -version: - $(QUIET)\ - $(ECHO) "$(fileinfo) Version $(version)"; \ - $(ECHO) "by $(author)"; \ - -# -# HELP TEXT -# - -define help_text -# $(fileinfo) Version $(version) -# -# by $(author) -# -# Generates a number of possible output files from a LaTeX document and its -# various dependencies. Handles .bib files, \include and \input, and .eps -# graphics. All dependencies are handled automatically by running LaTeX over -# the source. -# -# USAGE: -# -# make [GRAY=1] [VERBOSE=1] [SHELL_DEBUG=1] <target(s)> -# -# STANDARD OPTIONS: -# GRAY: -# Setting this variable forces all recompiled graphics to be grayscale. -# It is useful when creating a document for printing. The default is -# to allow colors. Note that it only changes graphics that need to be -# rebuilt! It is usually a good idea to do a 'make clean' first. -# -# VERBOSE: -# This turns off all @ prefixes for commands invoked by make. Thus, -# you get to see all of the gory details of what is going on. -# -# SHELL_DEBUG: -# This enables the -x option for sh, meaning that everything it does is -# echoed to stderr. This is particularly useful for debugging -# what is going on in $$(shell ...) invocations. One of my favorite -# debugging tricks is to do this: -# -# make -d SHELL_DEBUG=1 VERBOSE=1 2>&1 | less -# -# STANDARD AUXILIARY FILES: -# -# Makefile.ini -# -# This file can contain variable declarations that override various -# aspects of the makefile. For example, one might specify -# -# neverclean := *.pdf *.ps -# onlysources.tex := main.tex -# LATEX_COLOR_WARNING := 'bold red uline' -# -# And this would override the neverclean setting to ensure that pdf -# and ps files always remain behind, set the makefile to treat all -# .tex files that are not "main.tex" as includes (and therefore not -# default targets). It also changes the LaTeX warning output to be -# red, bold, and underlined. -# -# There are numerous variables in this file that can be overridden in -# this way. Search for '?=' to find them all. -# -# Also, you can put arbitrary targets into it if, for example, you -# want your source built from something else, e.g.: -# -# generated.tex: generating_script.weird_lang depA depB -# ./generating_script.weird_lang > $$@ -# -# Note that if you are not careful, you can override the default -# target (what happens when you type "make" without arguments), so if -# you do use Makefile.ini, you probably want to start it with -# something like the following line: -# -# default: all -# -# Since the first target in any makefile is automatically the default, -# and the makefile already has a sensible "all" target, this will do -# what you want. -# -# The Makefile.ini is imported before *anything else* is done, so go -# wild with your ideas for changes to this makefile in there. It -# makes it easy to test them before submitting patches. -# -# STANDARD ENVIRONMENT VARIABLES: -# -# LATEX_COLOR_WARNING '$(LATEX_COLOR_WARNING)' -# LATEX_COLOR_ERROR '$(LATEX_COLOR_ERROR)' -# LATEX_COLOR_UNDERFULL '$(LATEX_COLOR_UNDERFULL)' -# LATEX_COLOR_OVERFULL '$(LATEX_COLOR_OVERFULL)' -# LATEX_COLOR_PAGES '$(LATEX_COLOR_PAGES)' -# LATEX_COLOR_BUILD '$(LATEX_COLOR_BUILD)' -# LATEX_COLOR_GRAPHIC '$(LATEX_COLOR_GRAPHIC)' -# LATEX_COLOR_DEP '$(LATEX_COLOR_DEP)' -# LATEX_COLOR_SUCCESS '$(LATEX_COLOR_SUCCESS)' -# LATEX_COLOR_FAILURE '$(LATEX_COLOR_FAILURE)' -# -# These may be redefined in your environment to be any of the following: -# -# black -# red -# green -# yellow -# blue -# magenta -# cyan -# white -# -# Bold or underline may be used, as well, either alone or in combination -# with colors: -# -# bold -# uline -# -# Order is not important. You may want, for example, to specify: -# -# export LATEX_COLOR_SUCCESS='bold blue uline' -# -# in your .bashrc file. I don't know why, but you may want to. -# -# STANDARD TARGETS: -# -# all: -# Make all possible documents in this directory. The documents are -# determined by scanning for .tex and .tex.sh (described in more detail -# later) and omitting any file that ends in ._include_.tex or -# ._nobuild_.tex. The output is a set of .pdf files. -# -# If you wish to omit files without naming them with the special -# underscore names, set the following near the top of the Makefile, -# or (this is recommended) within a Makefile.ini in the same directory: -# -# includes.tex := file1.tex file2.tex -# -# This will cause the files listed to be considered as include files. -# -# If you have only few source files, you can set -# -# onlysources.tex := main.tex -# -# This will cause only the source files listed to be considered in -# dependency detection. All other .tex files will be considered as -# include files. Note that these options work for *any* source type, -# so you could do something similar with includes.gpi, for example. -# Note that this works for *any valid source* target. All of the -# onlysources.* variables are commented out in the shipping version of -# this file, so it does the right thing when they simply don't exist. -# The comments are purely documentation. If you know, for example, that -# file.mycoolformat is supported by this Makefile, but don't see the -# "onlysources.mycoolformat" declared in the comments, that doesn't mean -# you can't use it. Go ahead and set "onlysources.mycoolformat" and it -# should do the right thing. -# -# show: -# Builds and displays all documents in this directory. It uses the -# environment-overridable value of VIEW_PDF (currently $(VIEW_PDF)) to -# do its work. -# -# all-graphics: -# Make all of the graphics in this directory. -# -# all-pstex (only for BUILD_STRATEGY=latex): -# Build all fig files into pstex and pstex_t files. Gray DOES NOT WORK. -# -# all-gray-pstex (only for BUILD_STRATEGY=latex): -# Build all fig files into grayscale pstex and pstex_t files. -# -# all-dot2tex: -# Build all dot files into tex files. -# -# show-graphics: -# Builds and displays all graphics in this directory. Uses the -# environment-overridable value of VIEW_GRAPHICS (currently -# $(VIEW_GRAPHICS)) to do its work. -# -# clean: -# Remove ALL generated files, leaving only source intact. -# This will *always* skip files mentioned in the "neverclean" variable, -# either in this file or specified in Makefile.ini: -# -# neverclean := *.pdf *.ps -# -# The neverclean variable works on all "clean" targets below, as well. -# -# clean-graphics: -# Remove all generated graphics files. -# -# clean-backups: -# Remove all backup files: $(backup_patterns) -# (XFig and other editors have a nasty habit of leaving them around) -# Also removes Makefile-generated .temp files -# -# clean-tex: -# Remove all files generated from LaTeX invocations except dependency -# information. Leaves graphics alone. -# -# clean-deps: -# Removes all auto-generated dependency information. -# -# clean-auxiliary: -# Removes extra files created by various targets (like the dependency -# graph output). -# -# clean-nographics: -# Cleans everything *except* the graphics files. -# -# help: -# This help text. -# -# version: -# Version information about this LaTeX makefile. -# -# DEBUG TARGETS: -# -# _all_programs: -# A list of the programs used by this makefile. -# -# _check_programs: -# Checks your system for the needed software and reports what it finds. -# -# _check_gpi_files: -# Checks the .gpi files in the current directory for common errors, such -# as specification of the terminal or output file inside of the gpi file -# itself. -# -# _dependency_graph: -# Outputs a .dot file to stdout that represents a graph of LaTeX -# dependencies. To see it, use the _show_dependency_graph target or -# direct the output to a file, run dot on it, and view the output, e.g.: -# -# make _dependency_graph > graph.dot -# dot -T ps -o graph.eps graph.dot -# gv graph.eps -# -# _show_dependency_graph: -# Makes viewing the graph simple: extracts, builds and displays the -# dependency graph given in the _dependency_graph target using the value -# of the environment-overridable VIEW_POSTSCRIPT variable (currently set -# to $(VIEW_POSTSCRIPT)). The postscript viewer is used because it -# makes it easier to zoom in on the graph, a critical ability for -# something so dense and mysterious. -# -# _all_sources: -# List all .tex files in this directory. -# -# _sources: -# Print out a list of all compilable sources in this directory. This is -# useful for determining what make thinks it will be using as the -# primary source for 'make all'. -# -# _scripts: -# Print out a list of scripts that make knows can be used to generate -# .tex files (described later). -# -# _all_stems: -# Print a list of stems. These represent bare targets that can be -# executed. Listing <stem> as a bare target will produce <stem>.pdf. -# -# _includes: -# A list of .d files that would be included in this run if _includes -# weren't specified. This target may be used alone or in conjunction -# with other targets. -# -# _graphic_outputs: -# A list of all generated .eps files -# -# _env: -# A list of environment variables and their values. If supported by -# your version of make, also a list of variables known to make. -# -# FILE TARGETS: -# -# %, %.pdf: -# Build a PDF file from the corresponding %.tex file. -# -# If BUILD_STRATEGY=pdflatex, then this builds the pdf directly. -# Otherwise, it uses this old-school but effective approach: -# -# latex -> dvips -> ps2pdf -# -# The BUILD_STRATEGY can be overridden in Makefile.ini in the same -# directory. The default is pdflatex. -# -# Reasons for using latex -> dvips include the "psfrag" package, and the -# generation of postscript instead of PDF. Arguments for using pdflatex -# include "new and shiny" and "better supported." I can't argue with -# either of those, and supporting them both didn't turn out to be that -# difficult, so there you have it. Choices. -# -# %._show: -# A phony target that builds the pdf file and then displays it using the -# environment-overridable value of VIEW_PDF ($(VIEW_PDF)). -# -# %._graphics: -# A phony target that generates all graphics on which %.pdf (or %.dvi) -# depends. -# -# %.ps (only for BUILD_STRATEGY=latex): -# Build a Postscript file from the corresponding %.tex file. -# This is done using dvips. Paper size is automatically -# extracted from the declaration -# -# \documentclass[<something>paper] -# -# or it is the system default. -# -# If using beamer (an excellent presentation class), the paper -# size is ignored. More on this later. -# -# %.dvi (only for BUILD_STRATEGY=latex): -# Build the DVI file from the corresponding %.tex file. -# -# %.ind: -# Build the index for this %.tex file. -# -# %.gls: -# Build the nomenclature glossary for this %.tex file. -# -# %.nls: -# Build the (newer) nomenclature file for this %.tex file. -# -# %.eps: -# Build an eps file from one of the following file types: -# -# .dot : graphviz -# .gpi : gnuplot -# .fig : xfig -# .xvg : xmgrace -# .svg : scalable vector graphics (goes through inkscape) -# .png : png (goes through NetPBM) -# .jpg : jpeg (goes through ImageMagick) -# .eps.gz : gzipped eps -# -# The behavior of this makefile with each type is described in -# its own section below. -# -# %.pstex{,_t} (only for BUILD_STRATEGY=latex): -# Build a .pstex_t file from a .fig file. -# -# FEATURES: -# -# Optional Binary Directory: -# If you create the _out_ directory in the same place as the makefile, -# it will automatically be used as a dumping ground for .pdf (or .dvi, -# .ps, and .pdf) output files. -# -# Alternatively, you can set the BINARY_TARGET_DIR variable, either as a -# make argument or in Makefile.ini, to point to your directory of -# choice. Note that no pathname wildcard expansion is done in the -# makefile, so make sure that the path is complete before going in -# there. E.g., if you want to specify something in your home directory, -# use $$HOME/ instead of ~/ so that the shell expands it before it gets -# to the makefile. -# -# External Program Dependencies: -# Every external program used by the makefile is represented by an -# ALLCAPS variable at the top of this file. This should allow you to -# make judgments about whether your system supports the use of this -# makefile. The list is available in the ALL_PROGRAMS variable and, -# provided that you are using GNU make 3.80 or later (or you haven't -# renamed this file to something weird like "mylatexmakefile" and like -# invoking it with make -f) can be viewed using -# -# make _all_programs -# -# Additionally, the availability of these programs can be checked -# automatically for you by running -# -# make _check_programs -# -# The programs are categorized according to how important they are and -# what function they perform to help you decide which ones you really -# need. -# -# Colorized Output: -# The output of commands is colorized to highlight things that are often -# important to developers. This includes {underfull,overfull} -# {h,v}boxes, general LaTeX Errors, each stage of document building, and -# the number of pages in the final document. The colors are obtained -# using 'tput', so colorization should work pretty well on any terminal. -# -# The colors can be customized very simply by setting any of the -# LATEX_COLOR_<CONTEXT> variables in your environment (see above). -# -# Predecessors to TeX Files: -# Given a target <target>, if no <target>.tex file exists but a -# corresponding script or predecessor file exists, then appropriate -# action will be taken to generate the tex file. -# -# Currently supported script or predecessor languages are: -# -# sh: %.tex.sh -# perl: %.tex.pl -# python: %.tex.py -# -# Calls the script using the appropriate interpreter, assuming that -# its output is a .tex file. -# -# The script is called thus: -# -# <interpreter> <script file name> <target tex file> -# -# and therefore sees exactly one parameter: the name of the .tex -# file that it is to create. -# -# Why does this feature exist? I ran into this while working on -# my paper dissertation. I wrote a huge bash script that used a -# lot of sed to bring together existing papers in LaTeX. It -# would have been nice had I had something like this to make my -# life easier, since as it stands I have to run the script and -# then build the document with make. This feature provides hooks -# for complicated stuff that you may want to do, but that I have -# not considered. It should work fine with included dependencies, -# too. -# -# Scripts are run every time make is invoked. Some trickery is -# employed to make sure that multiple restarts of make don't cause -# them to be run again. -# -# reST: %.rst -# -# Runs the reST to LaTeX converter to generate a .tex file -# If it finds a file names _rststyle_._include_.tex, uses it as -# the "stylesheet" option to rst2latex. -# -# Note that this does not track sub-dependencies in rst files. It -# assumes that the top-level rst file will change if you want a -# rebuild. -# -# Dependencies: -# -# In general, dependencies are extracted directly from LaTeX output on -# your document. This includes -# -# * Bibliography information -# * \include or \input files (honoring \includeonly, too) -# * Graphics files inserted by the graphicx package -# -# Where possible, all of these are built correctly and automatically. -# In the case of graphics files, these are generated from the following -# file types: -# -# GraphViz: .dot -# GNUPlot: .gpi -# XFig: .fig -# XMgrace: .xvg -# SVG: .svg -# PNG: .png -# JPEG: .jpg -# GZipped EPS: .eps.gz -# -# If the file exists as a .eps already, it is merely used (and will not -# be deleted by 'clean'!). -# -# LaTeX and BibTeX are invoked correctly and the "Rerun to get -# cross-references right" warning is heeded a reasonable number of -# times. In my experience this is enough for even the most troublesome -# documents, but it can be easily changed (if LaTeX has to be run after -# BibTeX more than three times, it is likely that something is moving -# back and forth between pages, and no amount of LaTeXing will fix -# that). -# -# \includeonly is honored by this system, so files that are not -# specified there will not trigger a rebuild when changed. -# -# Beamer: -# A special TeX source comment is recognized by this makefile (only when -# BUILD_STRATEGY=latex, since this invokes psnup): -# -# %%[[:space:]]*BEAMER[[:space:]]*LARGE -# -# The presence of this comment forces the output of dvips through psnup -# to enlarge beamer slides to take up an entire letter-sized page. This -# is particularly useful when printing transparencies or paper versions -# of the slides. For some reason landscape orientation doesn't appear -# to work, though. -# -# If you want to put multiple slides on a page, use this option and then -# print using mpage, a2ps, or psnup to consolidate slides. My personal -# favorite is a2ps, but your mileage may vary. -# -# When beamer is the document class, dvips does NOT receive a paper size -# command line attribute, since beamer does special things with sizes. -# -# GNUPlot Graphics: -# When creating a .gpi file, DO NOT INCLUDE the "set terminal" or "set -# output" commands! The makefile will include terminal information for -# you. Besides being unnecessary and potentially harmful, including the -# terminal definition in the .gpi file makes it harder for you, the one -# writing the document, to preview your graphics, e.g., with -# -# gnuplot -persist myfile.gpi -# -# so don't do specify a terminal or an output file in your .gpi files. -# -# When building a gpi file into an eps file, there are several features -# available to the document designer: -# -# Global Header: -# The makefile searches for the files in the variable GNUPLOT_GLOBAL -# in order: -# -# ($(GNUPLOT_GLOBAL)) -# -# Only the first found is used. All .gpi files in the directory are -# treated as though the contents of GNUPLOT_GLOBAL were directly -# included at the top of the file. -# -# NOTE: This includes special comments! (see below) -# -# Font Size: -# A special comment in a .gpi file (or a globally included file) of -# the form -# -# ## FONTSIZE=<number> -# -# will change the font size of the GPI output. If font size is -# specified in both the global file and the GPI file, the -# specification in the individual GPI file is used. -# -# Grayscale Output: -# GNUplot files also support a special comment to force them to be -# output in grayscale *no matter what*: -# -# ## GRAY -# -# This is not generally advisable, since you can always create a -# grayscale document using the forms mentioned above. But, if your -# plot simply must be grayscale even in a document that allows -# colors, this is how you do it. -# -# XFig Graphics: -# No special handling is done with XFig, except when a global -# grayscale method is used, e.g. -# -# make GRAY=1 document -# -# In these cases the .eps files is created using the -N switch to -# fig2dev to turn off color output. (Only works with eps, not pstex -# output) -# -# GraphVis Graphics: -# Color settings are simply ignored here. The 'dot' program is used -# to transform a .dot file into a .eps file. -# -# If you want, you can use the dot2tex program to convert dot files -# to tex graphics. The default is to just call dot2tex with no -# arguments, but you can change the DOT2TEX definition to include -# options as needed (in your Makefile.ini). -# -# Note that, as with pstex, the makefile cannot use latex's own -# output to discover all missing dot_t (output) files, since anytime -# TeX includes TeX, it has to bail when it can't find the include -# file. It can therefore only stop on the first missing file it -# discovers, and we can't get a large list of them out easily. -# -# So, the makefile errors out if it's missing an included dot_t -# file, then prompts the user to run this command manually: -# -# make all-dot2tex -# -# GZipped EPS Graphics: -# -# A .eps.gz file is sometimes a nice thing to have. EPS files can get -# very large, especially when created from bitmaps (don't do this if you -# don't have to). This makefile will unzip them (not in place) to -# create the appropriate EPS file. -# -endef - -# -# DEPENDENCY CHART: -# -#digraph "g" { -# rankdir=TB -# size="9,9" -# edge [fontsize=12 weight=10] -# node [shape=box fontsize=14 style=rounded] -# -# eps [ -# shape=Mrecord -# label="{{<gpi> GNUplot|<epsgz> GZip|<dot> Dot|<fig> XFig}|<eps> eps}" -# ] -# pstex [label="%.pstex"] -# pstex_t [label="%.pstex_t"] -# tex_outputs [shape=point] -# extra_tex_files [shape=point] -# gpi_data [label="<data>"] -# gpi_includes [label="_include_.gpi"] -# aux [label="%.aux"] -# fls [label="%.fls"] -# idx [label="%.idx"] -# glo [label="%.glo"] -# ind [label="%.ind"] -# log [label="%.log"] -# tex_sh [label="%.tex.sh"] -# rst [label="%.rst"] -# tex [ -# shape=record -# label="<tex> %.tex|<include> _include_.tex" -# ] -# include_aux [label="_include_.aux"] -# file_bib [label=".bib"] -# bbl [label="%.bbl"] -# dvi [label="%.dvi"] -# ps [label="%.ps"] -# pdf [label="%.pdf"] -# fig [label=".fig"] -# dot [label=".dot"] -# gpi [label=".gpi"] -# eps_gz [label=".eps.gz"] -# -# gpi_files [shape=point] -# -# rst -> tex:tex [label="reST"] -# tex_sh -> tex:tex [label="sh"] -# tex_pl -> tex:tex [label="perl"] -# tex_py -> tex:tex [label="python"] -# tex -> tex_outputs [label="latex"] -# tex_outputs -> dvi -# tex_outputs -> aux -# tex_outputs -> log -# tex_outputs -> fls -# tex_outputs -> idx -# tex_outputs -> include_aux -# aux -> bbl [label="bibtex"] -# file_bib -> bbl [label="bibtex"] -# idx -> ind [label="makeindex"] -# glo -> gls [label="makeindex"] -# nlo -> nls [label="makeindex"] -# gls -> extra_tex_files -# nls -> extra_tex_files -# ind -> extra_tex_files -# bbl -> extra_tex_files -# eps -> extra_tex_files -# extra_tex_files -> dvi [label="latex"] -# gpi_files -> eps:gpi [label="gnuplot"] -# gpi -> gpi_files -# gpi_data -> gpi_files -# gpi_includes -> gpi_files -# eps_gz -> eps:epsgz [label="gunzip"] -# fig -> eps:fig [label="fig2dev"] -# fig -> pstex [label="fig2dev"] -# fig -> pstex_t [label="fig2dev"] -# pstex -> pstex_t [label="fig2dev"] -# dot -> eps:dot [label="dot"] -# dvi -> ps [label="dvips"] -# include_aux -> bbl [label="bibtex"] -# ps -> pdf [label="ps2pdf"] -# -# edge [ color=blue label="" style=dotted weight=1 fontcolor=blue] -# fls -> tex:include [label="INPUT: *.tex"] -# fls -> file_bib [label="INPUT: *.aux"] -# aux -> file_bib [label="\\bibdata{...}"] -# include_aux -> file_bib [label="\\bibdata{...}"] -# log -> gpi [label="Graphic file"] -# log -> fig [label="Graphic file"] -# log -> eps_gz [label="Graphic file"] -# log -> dot [label="Graphic file"] -# log -> idx [label="No file *.ind"] -# log -> glo [label="No file *.gls"] -# log -> nlo [label="No file *.nls"] -# gpi -> gpi_data [label="plot '...'"] -# gpi -> gpi_includes [label="load '...'"] -# tex:tex -> ps [label="paper"] -# tex:tex -> pdf [label="embedding"] -#} - -# -# DEPENDENCY CHART SCRIPT -# -# $(call output_dependency_graph,[<output file>]) -define output-dependency-graph - if [ -f '$(this_file)' ]; then \ - $(SED) \ - -e '/^[[:space:]]*#[[:space:]]*DEPENDENCY CHART:/,/^$$/!d' \ - -e '/DEPENDENCY CHART/d' \ - -e '/^$$/d' \ - -e 's/^[[:space:]]*#//' \ - $(this_file) $(if $1,> '$1',); \ - else \ - $(ECHO) "Cannot determine the name of this makefile."; \ - fi -endef -# vim: noet sts=0 sw=8 ts=8
--- a/artifacts/doc/datacage-config-manual/README Thu Aug 28 18:42:20 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -build with `make datacage-config-manual`
--- a/artifacts/doc/datacage-config-manual/content.tex Thu Aug 28 18:42:20 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -\section{Configuration of the Datacage} - -\subsection{Tasks and Recommendation types of the datacage} - -The datacage serves two purposes. -It handles automatic 'recommendations', which are instructions -sent by the client to add newly created artifacts to the collection. -From a user perspective, these artifacts mainly represent curves or data -points in the resulting diagrams. -The second task is to let the user add already existing artifacts (i.e. -previous calculations) or new artifacts with access to related data. - -Irrelevant of the type of elements (recommendations or user picked data) the -datacage can iterate over possible artifacts by accessing its own database. -Thus, to create a list of matching entries, database queries are used. - -\subsection{Structure of the datacage configuration file meta-data.conf} - -The datacages behaviour is defined in the file conf/meta-data.xml . - -In meta-data.xml, database queries are defined as \verb!<dc:statement>! elements, -for example -\begin{lstlisting} - <dc:statement> - SELECT id AS prot_id, - description AS prot_description - FROM wsts WHERE kind = 1 AND river_id = ${river_id} - </dc:statement> -\end{lstlisting} - -As can be seen from the example, the datacage configuration file can maintain -its own stack of variables (\${river\_id} in above example). - -The database query will usually deliver one or many results, over which is -iterated using the \verb!<dc:elements>! elements. - -Information from this results can be used for two goals. -It can be taken as output, in which -case the client will either request the creation of these artifacts (considering -recommendations), or shown by the client in a the 'datacage widget', -the graphical representation of data which can be added in the current -context. The later is seen when the user clicks on the Datacage button in -a diagram. -Or information can be used to feed a second (or third...) database query. -Following above example: - -\begin{lstlisting} - <dc:statement> - SELECT id AS prot_id, - description AS prot_description - FROM wsts WHERE kind = 1 AND river_id = ${river_id} - </dc:statement> - <dc:elements> - <additional> - <dc:attribute name="name" value="${prot_description}"/> - <dc:context> - <dc:statement> - SELECT id AS prot_column_id, - name AS prot_column_name, - position AS prot_rel_pos - FROM wst_columns WHERE wst_id = ${prot_id} - ORDER by position - </dc:statement> - <!-- ... --> -\end{lstlisting} - -In both cases, an \verb!<dc:elements>! element makes database queries available. -Also -note how the variables are defined in the first query and reused in the second -query (\$\{prot\_it\}). - -Any alement not prefixed with "dc" represents a (sub-) node in the resulting -tree. The client will display these nodes and maybe subnodes in the datacage -widget - \verb!<additional>! in above example. The elements name is translated by -the client. - -While iterating the final results, \verb!<dc:attributes>! have to be specified -to define how the artifact is to be created. - -\begin{lstlisting} - <dc:elements> - <column> - <dc:attribute name="name" value="${prot_column_name}"/> - <dc:attribute name="ids" value="additionals-wstv-${prot_rel_pos}-${prot_id}"/> - <dc:attribute name="factory" value="staticwkms"/> - </column> - </dc:elements> -\end{lstlisting} - -The "name" attribute is what is to be displayed in the client, the "ids" are given -to the server and pass important information about the chosen data. -The "factory" is chosen according to the type of data displayed. - -So far, three other elements have not yet been mentioned: \verb!<dc:comment>!, -\verb!<dc:if>! and the \verb!<dc:when><dc:otherwise>! structure. -\verb!<dc:comment>! is an element to allow comments. Choose these over standard -\verb=<!-- -->= xml comments, because they are not transferred to the client. -\verb!<dc:if>! and \verb!<dc:when>! allow control (rather: definition) flow within -the configuration and work in analogy to the XSL-elements \verb!<xsl:if>! -and \verb!<xsl:when>!. - -When dealing with the behaviour specification of the datacage, multiple -interpretations for the term "context" are possible. -A \verb!<dc:context>! element essentially means a database binding. Thus each -query (\verb!<dc:statement>!) needs to be nested in its own context. -Furthermore, two types of databases with own bindings exist: -The "system" (default for \verb!<dc:context>!, \verb!<dc:context connection="system">!) -context allows queries related to the backend database with existing -data (e.g. measurements). -The "user" context (\verb!<dc:context connection="user">!) allows queries against -the database which stores information about already existing artifacts and -calculations. - -Another connotation for the term "context" is the situation from which -the datacage is queried. The standard case is a from the datacage widget. -When the user opens the datacage from the graphical client, this is done -from one of possible multiple diagrams. -When the datacage is queried, it gets as an argument the "out" of -the current artifact. The out corresponds to the diagram type. - -For example the inner block of - -\begin{lstlisting} - <dc:if test="dc:contains($artifact-outs, 'longitudinal_section')"> - <longitudinal_section> - <dc:call-macro name="annotations"/> - </longitudinal_section> - </dc:if> -\end{lstlisting} - -will only be executed if called from the datacage within a -longitudinal\_section diagram. - -In the given example another concept of the datacage configuration is -encountered: Macros. - -Macros help to avoid duplication of parts of the document. As the datacage -of some diagrams should include the same type of data, the same query should -be executed in multiple situations. - -Therefore a macro can be defined, like in - -\begin{lstlisting} - <dc:macro name="basedata_4_heightmarks-wq"> - <heightmarks> - <dc:context> - <dc:statement> - SELECT id AS prot_id, - description AS prot_description - FROM wsts WHERE kind = 4 AND river_id = ${river_id} - </dc:statement> - <dc:elements> - <!-- ... --> - </dc:macro> -\end{lstlisting} - -and invoked from another location within the document, e.g. with - -\begin{lstlisting} - - <dc:call-macro name="basedata_4_heightmarks"/> -\end{lstlisting} -. -
--- a/artifacts/doc/datacage-config-manual/datacage-config-manual.tex Thu Aug 28 18:42:20 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,199 +0,0 @@ -\documentclass[12pt]{scrartcl} - -%---------------------------------------------- -% Load packages - -\usepackage{a4} -\usepackage{times} -\usepackage[latin1]{inputenc} -\usepackage{fancyhdr} -%\usepackage{german} -%\usepackage[marvosym]{eurofont} -%\usepackage[all, light]{draftcopy} -%\usepackage{supertabular} -%\usepackage{colortbl} -%\usepackage{epsf} -\usepackage{graphicx} -\usepackage{lastpage} -%\usepackage{proposal} -\usepackage{listings} -\usepackage[hyperindex=true, bookmarks=true, breaklinks=true, -colorlinks=true, linkcolor=red,bookmarksopen]{hyperref} - -%---------------------------------------------- -% Document DATE and VERSION -% set these values when releasing a new version - -\newcommand{\documentdate}{July 05th, 2012} -\newcommand{\documentversion}{1.0} -\newcommand{\documentrevision}{FIXME SVN REV} -\newcommand{\documentID}{datacage-config-manual.tex} -%---------------------------------------------- - -%---------------------------------------------- -% Document TITLE -\newcommand{\documenttitle}{FLYS 3.0 -- Configuration of the Datacage} - - -%---------------------------------------------- -% Some parameters for layouting - -\paperwidth=21cm -\hoffset=-0.54cm -\textwidth=17cm - -\paperheight=29.7cm -\voffset=-1.5cm -\topmargin=0cm -\headheight=1cm -\textheight=24cm - -\setcounter{secnumdepth}{4} -\setcounter{tocdepth}{4} - -%---------------------------------------------- - -\begin{document} - -\lstset{ % -language=sh, -basicstyle=\ttfamily, % the size of the fonts that are used for the code -numbers=left, % where to put the line-numbers -numberstyle=\footnotesize, % the size of the fonts that are used for the line-numbers -numbersep=5pt, % how far the line-numbers are from the code -% backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color} -showspaces=false, % show spaces adding particular underscores -showstringspaces=false, % underline spaces within strings -showtabs=false, % show tabs within strings adding particular underscores -frame=single, % adds a frame around the code -tabsize=2, % sets default tabsize to 2 spaces -captionpos=b, % sets the caption-position to bottom -breaklines=true, % sets automatic line breaking -breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace -title=\lstname, % show the filename of files included with \lstinputlisting; also try caption instead of title -escapeinside={\%*}{*)} % if you want to add a comment within your code -% morekeywords={*,...} % if you want to add more keywords to the set -} - -%----------------------------------- -% HEADER/FOOTER DEFINITION - -% for some pages latex switches back to pagestyle plain :-( -\fancypagestyle{plain}{% - \fancyhf{} % clear all header and footer fields - \fancyhead[LO,RE]{\footnotesize \documenttitle\\ \leftmark} - \fancyfoot[RO,LE]{\footnotesize Intevation GmbH} % Author - \fancyfoot[CO,CE]{\footnotesize \thepage/\pageref{LastPage}} - \fancyfoot[LO,RE]{\footnotesize \documentdate - \\\documentID} - \renewcommand{\footrulewidth}{0.4pt} -} - -% and now define pagestyle fancy -\fancyhead{} % clear all fields -\fancyhead[LO]{\footnotesize \documenttitle\\ \leftmark} - -\fancyfoot{}% clear all fields -\fancyfoot[RO]{\footnotesize Intevation GmbH} % Author -\fancyfoot[CO]{\footnotesize \thepage/\pageref{LastPage}} -\fancyfoot[LO]{\footnotesize \documentdate -\\\documentID} - -\renewcommand{\footrulewidth}{0.4pt} - -% -% END Header/Footer Definition -%----------------------------------- - -%---------------------------------------------- -% MACRO DEFINITION -% -% \Fig{figure}{lof text}{caption} : -% places 'figure' and -% writes 'caption' at the bottom with leading -% 'Abbildung figno:'. 'lof text' is added to the list of -% figures. -% Example: -% \Fig{\epsfxsize30mm \epsffile{x.eps}}{the x}{the x} -% -% \FigNoEntry{}{} : -% same as above, no entry in figures list -% -% \FigCaption{} : -% line with figure caption, setting figure -% counter and figures list -% -% \Tab{table}{lot text}{caption} : -% places 'table' and writes caption on top of the table -% with leading 'Tabelle tabno:'. 'lot text' is added to -% the list of tables. -%**************************************************************************** -% Figure makro for graphics continously enumerated. -% - -\newcounter{FigCnt} -\newcounter{TabCnt} - -\newcommand{\Fig}[3]% -{ - \refstepcounter{FigCnt} - \addcontentsline{lof}{figure}% - {\protect\numberline{\arabic{FigCnt}}{#2}} - \mbox{#1} - -\nopagebreak - {Abbildung \arabic{FigCnt}: #3} - -} - -\newcommand{\FigNoEntry}[2]% -{ - \refstepcounter{FigCnt} - \mbox{#1} - -\nopagebreak - {Abbildung \arabic{FigCnt}: #2} - -} - -\newcommand{\FigCaption}[1]% -{ - \refstepcounter{FigCnt} - \addcontentsline{lof}{figure}% - {\protect\numberline{\arabic{FigCnt}}{#1}} - - %{Figure \thesection.\arabic{FigCnt}: #1} -} - -\newcommand{\Tab}[3]% -{ - \refstepcounter{TabCnt} - \addcontentsline{lot}{figure}% - {\protect\numberline{\arabic{TabCnt}}{#2}} - {Tabelle \arabic{TabCnt}: #3} -\nopagebreak - #1 - -} - -\hyphenation{Intevation} -% end macro definition - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\newcounter{schritt} -\renewcommand{\theschritt}{\Roman{schritt}} -%\makeatletter\renewcommand{\p@schritt}{Abschnitt~\thesubsubsection~}\makeatother - -%----------------------------------- -% DOCUMENT SETTINGS -\pagestyle{fancy} -\setlength{\parindent}{0cm} -\setlength{\parskip}{5pt plus 2pt minus 1pt} - -% Start actual content here -\include{title} -\newpage -\tableofcontents -\include{content} -\end{document}
--- a/artifacts/doc/datacage-config-manual/figures/intevation-logo.eps Thu Aug 28 18:42:20 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1222 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%For: Frank Koormann,,, -%%CreationDate: Thu Mar 29 14:37:25 2001 -%%Title: intevation_logo-thin.eps -%%Creator: Sketch 0.6.8 -%%Pages: 1 -%%BoundingBox: 78 68 132 94 -%%Extensions: CMYK -%%DocumentSuppliedResources: (atend) -%%EndComments - -%%BeginProlog -%%BeginResource: procset Linux-Sketch-Procset 1.0 2 -/SketchDict 100 dict def -SketchDict begin -/bd { bind def } bind def -/x { exch } bd -/xd { exch def } bd -/PI 3.14159265358979323846264338327 def -/radgrad { 180 mul PI div } bd -/skstartmatrix matrix currentmatrix def -/tmpmat matrix def -/ISOLatin1Encoding dup where -{ pop pop } -{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand -/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period -/slash /zero /one /two /three /four /five /six /seven /eight /nine /colon -/semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J -/K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash -/bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i -/j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright -/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve -/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek -/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section -/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen -/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu -/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright -/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex -/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex -/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve -/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute -/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute -/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute -/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde -/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave -/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def -} -ifelse -/arct dup where -{pop pop} -{ -/arct {arcto pop pop pop pop} bd -} -ifelse -/size 0 def -/fontname 0 def -/newfont 0 def -/sf { -/size xd -/fontname xd -fontname findfont -dup /Encoding get StandardEncoding eq -{ -dup -length dict /newfont xd -{ -1 index -/FID ne -{ newfont 3 1 roll put } -{ pop pop } -ifelse -} forall -newfont /Encoding ISOLatin1Encoding put -fontname newfont definefont -} -if -size scalefont setfont -} bd -/pusht {matrix currentmatrix} bd -/popt {setmatrix} bd -/pushc {gsave} bd -/popc {grestore} bd -/rgb {setrgbcolor} bd -/w { setlinewidth } bd -/j { setlinejoin } bd -/J { setlinecap } bd -/d { setdash } bd -/F { eofill } bd -/f { closepath F } bd -/S { -pusht -skstartmatrix setmatrix stroke -popt -} bd -/s { closepath S } bd -/m { moveto } bd -/l { lineto } bd -/c { curveto } bd -/txt { -/tmpmat tmpmat currentmatrix def -dup type /arraytype eq {concat} {translate} ifelse -0 0 m -tmpmat -} bd -/T {txt x show popt} bd -/P {txt x true charpath popt} bd -/TP {txt x dup show 0 0 m true charpath popt} bd -/C {newpath 0 360 arc} bd -/R { -2 copy m -x 2 index l -x 2 index x l -l -closepath -} bd -/ellipse { -dup type /arraytype eq -{ -pusht x concat -0 0 1.0 C -popt -} -{ -pusht 5 1 roll -4 -1 roll concat -newpath -dup 2 eq { -0 0 m -} if -3 1 roll -radgrad x -radgrad x -0 0 1 5 -2 roll -arc -0 ne { closepath } if -popt -} -ifelse -} bd -/radius1 0 def -/radius2 0 def -/factor 0 def -/rect { -dup type /arraytype eq -{ -pusht x concat -0 0 m 1 0 l 1 1 l 0 1 l closepath -popt -} -{ -/radius2 xd -/radius1 xd -pusht x concat -radius1 radius2 div 1 scale -0 radius2 m -0 1 radius2 1 radius2 arct -radius2 radius1 div -dup 1 1 index 0 radius2 arct -0 0 0 radius2 arct -0 0 0 1 radius2 arct -closepath -popt -} -ifelse -} bd -/buf 0 def -/width 0 def -/height 0 def -/skcimg { -/tmpmat tmpmat currentmatrix def -{ concat } if -/height xd -/width xd -/buf width 3 mul string def -width height scale -width height 8 -[width 0 0 height neg 0 height] -{ currentfile buf readhexstring pop } bind -false 3 colorimage -tmpmat setmatrix -} bd -/skgimg { -/tmpmat tmpmat currentmatrix def -{ concat } if -/height xd -/width xd -/buf width string def -width height scale -width height 8 -[width 0 0 height neg 0 height] -{ currentfile buf readhexstring pop } bind -image -tmpmat setmatrix -} bd -/rclip { -4 2 roll m -dup 0 x rlineto -x 0 rlineto -neg 0 x rlineto -closepath -clip -} bd -/skeps { -10 dict begin -/sk_state save def -concat -3 index neg 3 index neg translate -rclip -0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin -10 setmiterlimit [ ] 0 setdash -newpath -/sk_dict_count countdictstack def -/sk_count count 1 sub def -userdict begin -/showpage { } def -/languagelevel where -{ -pop -languagelevel 1 ne -{ -false setstrokeadjust -false setoverprint -} if -} if -} bd -/skepsend { -count sk_count sub { pop } repeat -countdictstack sk_dict_count sub { end } repeat -sk_state restore -end -} bd -/gradidx 0 def -/gradient { -3 mul array -/gradidx 0 def -} bd -/$ { -3 index gradidx 5 -1 roll put -2 index gradidx 1 add 4 -1 roll put -1 index gradidx 2 add 3 -1 roll put -/gradidx gradidx 3 add def -} bd -/! { -3 -{ -dup dup gradidx dup 3 1 roll 3 sub get put -/gradidx gradidx 1 add def -} -repeat -} bd -/gradcolor { -3 mul dup 2 add 1 exch % idx 1 idx+2 -{ -1 index exch % array array i -get % array component -exch % component array -} -for -4 1 roll -} bd -/x0 0 def /y0 0 def /x1 0 def /y1 0 def -/left 0 def /right 0 def /top 0 def /bottom 0 def -/numcolors 0 def -/axial { -/y1 xd /x1 xd /y0 xd /x0 xd -dup length 3 idiv /numcolors xd -pusht exch % ctm array -x0 x1 ne y0 y1 ne or -{ -x0 y0 translate -[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat -clippath flattenpath pathbbox -/top xd /right xd /bottom xd /left xd -newpath -0 gradcolor rgb clippath f -0 1 numcolors 1 sub -{ -dup numcolors div -3 1 roll -gradcolor rgb -exch -bottom right top R f -} -for -} -if -pop -popt -} bd -/r0 0 def /r1 0 def /dr 0 def -/radial { -/r1 xd /r0 xd /y0 xd /x0 xd -/dr r1 r0 sub def -dup length 3 idiv /numcolors xd -pusht exch % ctm array -r0 r1 ne -{ -x0 y0 translate -clippath flattenpath pathbbox -/top xd /right xd /bottom xd /left xd -newpath -dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb -clippath f -dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse -{ -dup numcolors div dr mul r0 add -3 1 roll -gradcolor rgb -exch -0 0 3 -1 roll C f -} -for -} -if -pop -popt -} bd -/max { -2 copy lt {exch} if pop -} bd -/conical { -pusht 5 1 roll -3 1 roll /y0 xd /x0 xd -x0 y0 translate -radgrad rotate -dup length 3 idiv /numcolors xd -clippath flattenpath pathbbox newpath -4 { abs 4 1 roll} repeat -3 { max } repeat -2 mul -dup scale -0 gradcolor rgb -0 0 1 0 360 arc f -1 1 numcolors 1 sub -{ -dup numcolors div 180 mul -3 1 roll -gradcolor rgb -exch -0 0 moveto -0 0 1 4 -1 roll dup neg arc -closepath f -} -for -pop -popt -} bd -/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def -/tileimage2 { -exch 4 2 roll -/height xd -/width xd -mark -/components 2 index -/PatternType 1 -/PaintType 1 -/TilingType 1 -/BBox [0 0 width height] -/XStep width -/YStep height -/PaintProc { -begin -XStep YStep 8 -matrix -imagedata -false -components -colorimage -end -} -counttomark 2 div cvi dup dict begin -{ def } repeat -pop currentdict end -dup -/imagedata -4 -1 roll -width height mul mul string -currentfile exch readhexstring pop -put -exch -makepattern -setpattern -clippath -eofill -} bd -/tileimage1 { -concat -/components xd -/height xd -/width xd -/imagedata -currentfile -width height mul components mul string -readhexstring pop -def -clippath flattenpath pathbbox -/top xd /right xd /bottom xd /left xd -left width div floor width mul -bottom height div floor height mul -translate -top bottom sub height div ceiling cvi -{ -gsave -right left sub width div ceiling cvi -{ -width height 8 matrix -components 1 eq -{ -{ imagedata } -image -} -{ -imagedata -false components -colorimage -} -ifelse -width 0 translate -} -repeat -grestore -0 height translate -} -repeat -} bd -/makepattern where -{ -pop -/tileimage /tileimage2 load def -} -{ -/tileimage /tileimage1 load def -} -ifelse -end -%%EndResource -%%EndProlog - -%%BeginSetup - -10.433 setmiterlimit -%%EndSetup - -%%Page: 1 1 -SketchDict begin -newpath -81.1479 90.3363 m -83.1262 89.4518 85.8962 89.4399 87.7755 90.732 c -88.4885 91.2221 89.1744 91.8548 89.1744 92.7451 c -89.3805 92.7446 89.5146 92.3854 89.7059 92.4617 c -90.3588 92.7216 91.0745 92.5334 91.5725 92.3012 c -91.8169 92.1873 92.0442 92.7366 92.3141 92.7358 c -92.4246 92.4106 93.2359 91.4866 93.2359 91.4372 c -95.3948 89.4748 99.2768 88.555 102.019 89.186 c -102.881 89.3844 110.268 92.0436 110.268 92.7837 c -110.735 92.6454 111.042 92.3763 111.801 92.3588 c -113.208 92.7366 l -114.425 92.9532 114.356 92.6862 114.93 92.6609 c -114.93 90.5837 114.005 87.8389 114.95 85.8136 c -115.043 85.6129 115.327 85.1931 115.474 85.044 c -119.365 81.1112 125.41 82.6691 129.868 84.5493 c -129.868 84.4181 130.124 84.2636 130.124 84.1323 c -130.124 83.9504 129.868 83.7916 129.868 83.6096 c -129.521 83.6096 129.294 83.4821 129.005 83.2726 c -126.771 81.6517 123.827 80.5003 121.756 78.5645 c -121.551 78.3735 121.558 78.1688 121.558 77.872 c -121.756 77.6246 122.036 77.2541 122.315 77.061 c -122.399 77.0029 122.564 76.8961 124.449 75.877 c -126.015 75.0309 127.68 74.6575 129.194 74.6604 c -129.194 74.475 129.046 74.2851 129.051 74.0807 c -129.052 74.0297 129.066 73.9744 129.086 73.9171 c -129.106 73.8599 129.132 73.8003 129.158 73.7411 c -129.183 73.6819 129.209 73.6226 129.227 73.5659 c -129.245 73.5087 129.255 73.4539 129.252 73.4038 c -129.238 73.1617 129.151 72.9814 129.076 72.7773 c -126.75 73.9407 124.211 75.0082 121.611 75.7449 c -120.232 76.1358 118.876 76.4938 117.501 76.7872 c -116.305 77.0426 113.981 77.2912 113.298 75.7452 c -112.578 74.1158 113.329 72.4451 113.544 70.8622 c -113.245 70.9989 113.04 71.6163 112.826 71.3291 c -112.556 70.799 l -112.21 71.5408 111.908 72.5375 111.698 73.3754 c -111.413 74.5161 110.852 75.2644 109.473 75.4597 c -107.323 75.7648 107.541 75.5249 106.808 75.0986 c -105.489 74.3316 104.447 72.6469 104.427 70.7633 c -104.103 70.8166 104.04 71.1029 103.715 71.1562 c -103.661 71.1361 103.594 71.1001 103.521 71.0624 c -103.448 71.0247 103.368 70.985 103.288 70.9575 c -103.209 70.9303 103.129 70.9147 103.056 70.9254 c -102.983 70.9359 102.916 70.9725 102.862 71.049 c -102.814 71.2619 102.513 71.4476 102.165 71.1947 c -101.229 70.799 l -101.108 71.1117 100.582 71.3382 100.316 71.5037 c -99.0659 72.2807 97.0528 71.5295 96.2781 70.5102 c -96.093 70.57 95.9079 70.6298 95.7225 70.6896 c -95.5289 70.7905 95.2567 70.9099 94.8114 70.6321 c -94.4917 70.5802 l -94.4917 70.8373 94.9407 70.8557 95.0994 71.1094 c -95.4787 71.7155 95.856 72.5599 96.434 73.236 c -97.4233 74.3934 98.3768 75.7545 97.6356 77.2578 c -97.415 77.7045 97.576 77.5078 96.6749 78.2941 c -96.1414 78.7598 95.3594 79.3486 94.7173 79.6468 c -91.9201 80.9465 88.4556 81.0936 85.1714 80.6681 c -83.4604 80.4467 81.7831 80.1902 80.3068 79.6031 c -80.2609 79.585 80.3031 79.5122 80.2535 79.5122 c -80.306 79.6936 80.6359 79.9461 80.4556 80.0496 c -80.2343 80.1389 80.2481 80.2886 80.2552 80.4833 c -80.2731 80.7971 l -80.4213 80.7971 80.3077 80.824 80.4554 80.8396 c -82.6332 81.0712 84.5517 81.7552 86.5887 82.4718 c -87.2231 82.6952 87.987 83.0019 88.527 83.452 c -88.8771 83.744 89.3216 84.2214 89.3216 84.6667 c -89.3216 85.0624 88.8949 85.959 88.6166 86.1815 c -86.4209 87.9381 80.8845 88.8736 80.8346 88.9422 c -80.7828 89.0136 l -80.7856 89.1103 81.0512 89.1729 81.1198 89.3575 c -81.1731 89.5006 81.0506 89.7858 81.1017 89.9232 c -81.1924 90.1679 81.2247 90.3363 81.1479 90.3363 c -closepath -gsave -0.9 0.9 0.9 rgb -F -grestore -0.9 0.9 0.9 rgb -0.215433 w -0 j -0 J -[] 0 d -S -newpath -108.203 84.2032 m -107.659 84.1536 106.67 83.9557 106.373 83.5107 c -106.324 83.5107 106.274 83.4611 106.274 83.4118 c -106.126 83.3622 106.027 82.9665 105.829 82.8675 c -105.829 82.1257 105.533 81.4828 106.126 80.8396 c -106.225 80.7407 l -106.423 80.6914 l -107.907 79.8999 109.341 79.9989 110.726 80.8892 c -110.776 80.9882 l -110.875 81.0375 111.072 81.3343 111.27 81.3343 c -111.27 81.8782 111.765 82.4225 111.418 83.115 c -111.32 83.3129 110.825 83.4611 110.825 83.659 c -110.726 83.659 110.132 84.0054 110.132 84.0547 c -109.935 84.0547 l -109.737 84.2525 108.401 84.2525 108.203 84.2032 c -closepath -gsave -0.8 0.8 0.8 rgb -F -grestore -0.7 0.7 0.7 rgb -0.566929 w -0 j -0 J -[] 0 d -S -newpath -129.218 74.6074 m -126.745 74.9042 123.636 75.6956 121.805 77.5256 c -121.657 77.6742 121.459 78.0203 121.459 78.2677 c -121.558 78.3171 l -121.558 78.3667 121.757 78.5634 121.805 78.6139 c -123.135 79.9966 125.128 80.6576 126.673 81.7561 c -128.047 82.7323 129.427 83.5107 129.67 83.5107 c -129.775 83.5629 130.033 83.615 130.115 83.659 c -129.109 72.8173 m -127.427 73.3119 125.912 74.363 124.229 74.9042 c -121.542 75.7684 l -120.528 76.0947 119.51 76.4014 118.523 76.5599 c -116.741 76.8465 115.229 77.6229 113.743 76.2892 c -112.805 75.4467 113.006 74.657 113.006 73.4205 c -113.121 72.9094 113.569 71.2846 113.569 70.7888 c -112.54 70.8024 m -111.897 72.0885 111.86 74.2406 110.585 75.1462 c -109.981 75.576 107.912 75.6808 107.214 75.4484 c -106.724 75.2851 106.373 74.7559 106.027 74.4095 c -105.087 73.4698 104.431 72.0363 104.431 70.7009 c -101.387 70.7216 m -100.435 71.9918 98.2462 72.4301 97.0247 71.1409 c -96.8801 71.0068 96.6052 70.7772 96.0915 70.388 c -94.588 70.6593 m -95.3302 71.0054 95.6213 71.8212 95.9603 72.5171 c -96.561 73.7499 98.571 75.6363 97.6602 77.1169 c -97.3518 77.6183 l -97.063 78.124 95.8361 79.0019 95.7069 79.1312 c -95.509 79.329 94.9892 79.5357 94.7496 79.6525 c -90.7346 81.6135 86.2429 80.9354 82.0379 80.1471 c -81.4945 80.0454 80.7354 79.496 80.1915 79.496 c -80.855 88.9875 m -81.4486 88.839 81.943 88.619 82.5326 88.4566 c -83.9216 88.0751 85.6935 87.8542 86.9841 87.1708 c -87.3753 86.9639 87.8251 86.5772 88.2209 86.3794 c -88.9627 86.0333 89.3091 85.2418 89.2595 84.4008 c -89.2595 84.2032 88.8592 83.7624 88.7155 83.6096 c -88.0678 82.9214 86.6839 82.482 85.7972 82.175 c -84.1118 81.5919 82.1369 80.7407 80.3068 80.7407 c -80.2575 80.6914 l -81.2564 90.302 m -81.7865 90.031 81.8707 90.1115 82.3007 89.9334 c -83.7949 89.3152 85.8009 89.932 87.1823 90.5344 c -88.1222 90.944 89.2116 91.7442 89.2116 92.8407 c -92.2753 92.7032 m -92.9678 91.6646 93.7564 90.8221 94.8982 90.2869 c -95.3392 90.0803 95.9901 89.7098 96.481 89.5944 c -98.5129 89.1165 100.233 88.7908 102.318 89.1987 c -102.511 89.2367 102.58 89.2282 103.109 89.3966 c -105.253 90.0783 107.678 91.2292 109.638 92.3148 c -109.697 92.3474 110.336 92.8129 110.352 92.8129 c -114.93 92.7352 m -114.815 91.7541 114.609 90.9627 114.61 90.427 c -114.611 88.8645 114.327 87.8086 114.634 86.6268 c -115.198 84.4504 118.458 82.8638 119.975 82.7193 c -123.178 82.4137 126.158 83.2958 129.076 84.3515 c -129.123 84.3682 129.274 84.4008 129.373 84.4008 c -129.423 84.4997 129.818 84.6483 129.967 84.6483 c -0.8 0.8 0.8 rgb -1 j -1 J -S -newpath -81.6246 86.9766 m -82.6698 86.9766 l -82.6698 79.2655 l -81.6246 79.2655 l -81.6246 86.9766 l -closepath -84.0446 82.4667 m -84.0446 82.7598 84.0959 83.0368 84.1988 83.297 c -84.3014 83.5575 84.4553 83.8013 84.6606 84.0286 c -84.8734 84.2486 85.1226 84.4155 85.4086 84.5292 c -85.6946 84.6429 86.0209 84.6996 86.3877 84.6996 c -86.4464 84.6996 86.5104 84.6959 86.5802 84.6885 c -86.6499 84.6811 86.725 84.6704 86.8058 84.6556 c -86.8863 84.6409 86.9688 84.6227 87.0533 84.6006 c -87.1375 84.5785 87.2236 84.5493 87.3118 84.5125 c -87.4657 84.4467 87.6123 84.3622 87.7517 84.2596 c -87.8909 84.157 88.0267 84.0323 88.1588 83.8857 c -88.2906 83.7463 88.3898 83.5739 88.4559 83.3687 c -88.5216 83.1632 88.5548 82.9285 88.5548 82.6646 c -88.5548 82.6572 88.5548 82.6481 88.5548 82.6371 c -88.5548 82.626 88.5548 82.6133 88.5548 82.5985 c -88.5548 82.5911 88.5548 82.5821 88.5548 82.571 c -88.5548 82.56 88.5548 82.5472 88.5548 82.5325 c -88.5548 79.2655 l -87.5097 79.2655 l -87.5097 82.3786 l -87.5097 82.5398 87.4858 82.6994 87.4382 82.857 c -87.3906 83.0146 87.3192 83.1632 87.2236 83.3026 c -87.1284 83.4492 87.0037 83.5592 86.8497 83.6326 c -86.6958 83.706 86.5124 83.7426 86.2998 83.7426 c -86.1017 83.7426 85.9276 83.7097 85.7771 83.6437 c -85.6269 83.5776 85.4968 83.4787 85.3868 83.3466 c -85.2768 83.2145 85.1906 83.0733 85.1283 82.9231 c -85.0659 82.7729 85.0237 82.6133 85.0016 82.4446 c -85.0016 79.2655 l -84.0446 79.2655 l -84.0446 82.4667 l -closepath -89.6767 85.8436 m -90.7108 85.8436 l -90.7108 84.5456 l -92.7126 84.5456 l -92.7126 83.5997 l -90.7108 83.5997 l -90.7108 80.9156 l -90.7108 80.813 90.7179 80.7211 90.7326 80.6406 c -90.7474 80.5598 90.7695 80.483 90.7987 80.4096 c -90.8279 80.3362 90.8922 80.2832 90.9912 80.25 c -91.0901 80.2171 91.2276 80.2007 91.4036 80.2007 c -92.6248 80.2225 l -92.6248 79.2655 l -91.3268 79.2655 l -91.3194 79.2655 91.312 79.2655 91.3047 79.2655 c -91.2973 79.2655 91.2899 79.2655 91.2826 79.2655 c -91.2755 79.2655 91.2698 79.2655 91.2661 79.2655 c -91.2624 79.2655 91.2571 79.2619 91.2497 79.2545 c -91.2423 79.2545 91.2349 79.2545 91.2276 79.2545 c -91.2205 79.2545 91.2131 79.2545 91.2057 79.2545 c -91.1984 79.2545 91.193 79.2545 91.1893 79.2545 c -91.1856 79.2545 91.18 79.2545 91.1726 79.2545 c -90.9234 79.2545 90.7071 79.2913 90.5237 79.3645 c -90.3403 79.4379 90.1901 79.5516 90.0727 79.7055 c -89.9554 79.8597 89.8655 80.0247 89.8032 80.2007 c -89.7408 80.3764 89.7023 80.5598 89.6878 80.7506 c -89.6804 80.7654 89.6767 80.7818 89.6767 80.7999 c -89.6767 80.8184 89.6767 80.8385 89.6767 80.8606 c -89.6767 80.8753 89.6767 80.8918 89.6767 80.9099 c -89.6767 80.9283 89.6767 80.9485 89.6767 80.9706 c -89.6767 80.9927 l -89.6767 85.8436 l -closepath -96.7829 83.1595 m -96.7682 83.1669 96.7534 83.1762 96.7387 83.187 c -96.7242 83.198 96.7095 83.2145 96.6948 83.2366 c -96.68 83.2513 96.6636 83.2695 96.6454 83.2916 c -96.627 83.3137 96.6069 83.3355 96.5848 83.3576 c -96.5629 83.3724 96.5388 83.3888 96.5133 83.407 c -96.4875 83.4254 96.4637 83.4455 96.4419 83.4676 c -96.4124 83.4824 96.3832 83.4988 96.3537 83.5172 c -96.3246 83.5354 96.2914 83.5518 96.2548 83.5666 c -96.1814 83.6031 96.0952 83.6289 95.9963 83.6437 c -95.8974 83.6584 95.7854 83.6655 95.6607 83.6655 c -95.3747 83.6655 95.1235 83.6142 94.9072 83.5116 c -94.6909 83.4089 94.5095 83.2587 94.3627 83.0606 c -94.2161 82.8627 94.1062 82.6535 94.0327 82.4335 c -93.9593 82.2136 93.9228 81.9862 93.9228 81.7515 c -93.9228 81.7442 93.9228 81.7368 93.9228 81.7297 c -93.9228 81.7186 l -93.9228 81.5058 93.9613 81.3025 94.0384 81.1081 c -94.1152 80.9136 94.2272 80.7285 94.3737 80.5525 c -94.5206 80.3764 94.702 80.2446 94.9183 80.1565 c -95.1346 80.0686 95.382 80.0247 95.6607 80.0247 c -95.9614 80.0247 96.2126 80.0592 96.4144 80.129 c -96.616 80.1987 96.7682 80.3033 96.8708 80.4425 c -96.9734 80.5893 97.0669 80.7617 97.1514 80.9595 c -97.2356 81.1577 97.3107 81.3813 97.3768 81.6305 c -97.3768 81.6415 l -97.3878 81.6526 l -97.3878 81.6637 l -98.3448 81.6087 l -98.3448 81.5939 98.3448 81.5812 98.3448 81.5701 c -98.3448 81.5591 98.3485 81.55 98.3559 81.5426 c -98.3559 81.5279 98.3559 81.5168 98.3559 81.5094 c -98.3559 81.5024 98.3559 81.4913 98.3559 81.4766 c -98.3559 81.4692 98.3559 81.4601 98.3559 81.4491 c -98.3559 81.438 98.3595 81.4289 98.3669 81.4216 c -98.3669 81.4068 98.3669 81.3958 98.3669 81.3887 c -98.3669 81.3813 98.3669 81.374 98.3669 81.3666 c -98.3669 81.3079 98.3632 81.2475 98.3559 81.1852 c -98.3485 81.1228 98.3374 81.0585 98.323 80.9927 c -98.3156 80.9632 98.3063 80.9303 98.2952 80.8935 c -98.2844 80.8569 98.2751 80.824 98.2677 80.7946 c -98.2532 80.758 98.2402 80.7231 98.2294 80.69 c -98.2184 80.6571 98.2056 80.6222 98.1909 80.5856 c -98.1027 80.4022 97.9854 80.2225 97.8388 80.0465 c -97.6923 79.8705 97.5126 79.7055 97.3 79.5516 c -97.0944 79.3976 96.8543 79.282 96.5794 79.2052 c -96.3044 79.1281 95.9983 79.0895 95.6607 79.0895 c -95.272 79.0895 94.9129 79.1502 94.5827 79.2709 c -94.2527 79.392 93.9559 79.5774 93.6917 79.8265 c -93.4205 80.0833 93.2189 80.3711 93.0868 80.69 c -92.9547 81.0091 92.8887 81.3629 92.8887 81.7515 c -92.8887 82.1623 92.9437 82.5254 93.0536 82.8406 c -93.1636 83.1558 93.3289 83.4274 93.5489 83.6547 c -93.7688 83.882 93.9999 84.0688 94.2417 84.2157 c -94.4837 84.3622 94.7369 84.4685 95.0008 84.5346 c -95.0303 84.542 95.0577 84.5473 95.0833 84.551 c -95.1091 84.5547 95.1366 84.5604 95.1657 84.5675 c -95.1952 84.5675 95.2227 84.5695 95.2482 84.5731 c -95.274 84.5768 95.3015 84.5822 95.3307 84.5896 c -95.3894 84.5969 95.4464 84.6023 95.5014 84.606 c -95.5564 84.6097 95.6094 84.6117 95.6607 84.6117 c -95.9614 84.6117 96.2421 84.5695 96.5023 84.485 c -96.7628 84.4008 97.0029 84.2744 97.2229 84.1057 c -97.4354 83.937 97.6279 83.75 97.8003 83.5447 c -97.9726 83.3392 98.1248 83.1192 98.2569 82.8845 c -94.6158 80.9156 l -94.1867 81.6855 l -96.7829 83.1595 l -closepath -99.6431 84.5456 m -101.282 80.3875 l -102.756 84.5456 l -103.889 84.5456 l -102.063 79.7826 l -102.019 79.6726 101.969 79.5791 101.914 79.502 c -101.859 79.4251 101.799 79.3608 101.733 79.3095 c -101.667 79.2655 101.599 79.229 101.53 79.1995 c -101.46 79.1703 101.385 79.1519 101.304 79.1445 c -101.297 79.1445 101.291 79.1445 101.287 79.1445 c -101.284 79.1445 101.278 79.1445 101.271 79.1445 c -101.264 79.1445 101.256 79.1445 101.249 79.1445 c -101.168 79.1445 101.09 79.1556 101.012 79.1777 c -100.935 79.1995 100.857 79.2327 100.776 79.2766 c -100.703 79.3353 100.637 79.403 100.578 79.4801 c -100.519 79.5569 100.468 79.6505 100.424 79.7605 c -98.5101 84.5456 l -99.6431 84.5456 l -closepath -108.388 82.3015 m -108.388 82.463 108.357 82.6223 108.294 82.7802 c -108.232 82.9378 108.139 83.0864 108.014 83.2255 c -107.889 83.3724 107.713 83.4824 107.486 83.5555 c -107.259 83.6289 106.984 83.6655 106.661 83.6655 c -106.609 83.6655 106.556 83.6618 106.501 83.6547 c -106.447 83.6473 106.386 83.6363 106.32 83.6215 c -106.254 83.6142 106.188 83.5997 106.122 83.5776 c -106.056 83.5555 105.99 83.5263 105.924 83.4897 c -105.807 83.4381 105.693 83.3667 105.583 83.2751 c -105.473 83.1833 105.367 83.0753 105.264 82.9506 c -105.169 82.8332 105.092 82.6884 105.033 82.516 c -104.974 82.3437 104.938 82.1475 104.923 81.9276 c -104.923 81.6342 104.963 81.3793 105.044 81.1631 c -105.125 80.9468 105.245 80.7654 105.407 80.6185 c -105.576 80.4793 105.75 80.3674 105.929 80.2832 c -106.109 80.1987 106.298 80.1454 106.496 80.1236 c -106.503 80.1236 106.513 80.1236 106.523 80.1236 c -106.534 80.1236 106.544 80.1236 106.551 80.1236 c -106.566 80.1162 106.578 80.1125 106.589 80.1125 c -106.6 80.1125 106.609 80.1125 106.617 80.1125 c -106.632 80.1125 106.643 80.1125 106.65 80.1125 c -106.657 80.1125 106.668 80.1125 106.683 80.1125 c -106.69 80.1125 106.699 80.1125 106.71 80.1125 c -106.721 80.1125 106.731 80.1125 106.738 80.1125 c -106.826 80.1125 106.909 80.1179 106.985 80.129 c -107.062 80.14 107.138 80.1602 107.211 80.1896 c -107.248 80.2041 107.282 80.2188 107.315 80.2336 c -107.348 80.2483 107.383 80.2628 107.42 80.2775 c -107.449 80.2996 107.482 80.3214 107.519 80.3436 c -107.556 80.3657 107.589 80.3912 107.618 80.4207 c -107.655 80.4425 107.689 80.47 107.722 80.5032 c -107.756 80.536 107.79 80.5672 107.827 80.5967 c -107.864 80.6333 107.9 80.6681 107.937 80.701 c -107.974 80.7342 108.01 80.7688 108.047 80.8056 c -108.047 79.6066 l -108.04 79.5918 108.032 79.5808 108.025 79.5737 c -108.025 79.5626 l -107.937 79.5039 107.845 79.4506 107.75 79.403 c -107.655 79.3554 107.556 79.3132 107.453 79.2766 c -107.35 79.2471 107.225 79.2233 107.079 79.2052 c -106.932 79.1867 106.764 79.1777 106.573 79.1777 c -106.566 79.1777 106.56 79.1777 106.556 79.1777 c -106.553 79.1777 106.547 79.1777 106.54 79.1777 c -106.533 79.1777 106.522 79.1777 106.507 79.1777 c -106.5 79.1777 106.492 79.1777 106.485 79.1777 c -106.478 79.1777 106.47 79.1777 106.463 79.1777 c -106.456 79.1777 106.45 79.1777 106.447 79.1777 c -106.443 79.1777 106.437 79.1777 106.43 79.1777 c -106.092 79.1777 105.779 79.238 105.49 79.3591 c -105.2 79.4801 104.934 79.6652 104.692 79.9147 c -104.45 80.1712 104.268 80.4663 104.147 80.7999 c -104.026 81.1339 103.966 81.5094 103.966 81.9276 c -103.966 82.2944 104.025 82.6354 104.142 82.9506 c -104.259 83.2658 104.435 83.5555 104.67 83.8197 c -104.904 84.0836 105.194 84.2817 105.539 84.4135 c -105.884 84.5456 106.283 84.6117 106.738 84.6117 c -107.17 84.6117 107.556 84.553 107.893 84.4357 c -108.23 84.3183 108.513 84.1423 108.74 83.9076 c -108.975 83.6729 109.149 83.4254 109.262 83.1652 c -109.376 82.9047 109.433 82.6354 109.433 82.3564 c -109.433 79.2655 l -108.388 79.2655 l -108.388 82.3015 l -closepath -110.467 85.8436 m -111.501 85.8436 l -111.501 84.5456 l -113.503 84.5456 l -113.503 83.5997 l -111.501 83.5997 l -111.501 80.9156 l -111.501 80.813 111.508 80.7211 111.523 80.6406 c -111.538 80.5598 111.56 80.483 111.589 80.4096 c -111.618 80.3362 111.683 80.2832 111.782 80.25 c -111.881 80.2171 112.018 80.2007 112.194 80.2007 c -113.415 80.2225 l -113.415 79.2655 l -112.117 79.2655 l -112.11 79.2655 112.102 79.2655 112.095 79.2655 c -112.088 79.2655 112.08 79.2655 112.073 79.2655 c -112.066 79.2655 112.06 79.2655 112.057 79.2655 c -112.053 79.2655 112.047 79.2619 112.04 79.2545 c -112.033 79.2545 112.025 79.2545 112.018 79.2545 c -112.011 79.2545 112.004 79.2545 111.996 79.2545 c -111.989 79.2545 111.983 79.2545 111.98 79.2545 c -111.976 79.2545 111.97 79.2545 111.963 79.2545 c -111.714 79.2545 111.498 79.2913 111.314 79.3645 c -111.131 79.4379 110.981 79.5516 110.863 79.7055 c -110.746 79.8597 110.656 80.0247 110.594 80.2007 c -110.531 80.3764 110.493 80.5598 110.478 80.7506 c -110.471 80.7654 110.467 80.7818 110.467 80.7999 c -110.467 80.8184 110.467 80.8385 110.467 80.8606 c -110.467 80.8753 110.467 80.8918 110.467 80.9099 c -110.467 80.9283 110.467 80.9485 110.467 80.9706 c -110.467 80.9927 l -110.467 85.8436 l -closepath -114.449 84.5456 m -115.406 84.5456 l -115.406 79.2655 l -114.449 79.2655 l -114.449 84.5456 l -closepath -114.372 85.7665 m -114.372 85.8473 114.387 85.9224 114.416 85.9922 c -114.446 86.0619 114.493 86.1223 114.559 86.1736 c -114.618 86.2175 114.682 86.2524 114.752 86.2782 c -114.821 86.3037 114.893 86.3167 114.966 86.3167 c -115.047 86.3167 115.12 86.3057 115.186 86.2836 c -115.252 86.2617 115.318 86.2249 115.384 86.1736 c -115.45 86.1223 115.5 86.0619 115.533 85.9922 c -115.566 85.9224 115.582 85.8399 115.582 85.7447 c -115.582 85.6492 115.566 85.565 115.533 85.4916 c -115.5 85.4181 115.454 85.3561 115.395 85.3045 c -115.329 85.2532 115.263 85.2166 115.197 85.1945 c -115.131 85.1727 115.062 85.1616 114.988 85.1616 c -114.915 85.1542 114.842 85.1616 114.768 85.1837 c -114.695 85.2055 114.625 85.2424 114.559 85.2937 c -114.493 85.345 114.446 85.4091 114.416 85.4862 c -114.387 85.563 114.372 85.6492 114.372 85.7447 c -114.372 85.7665 l -closepath -116.792 82.0375 m -116.792 82.4409 116.862 82.804 117.001 83.1266 c -117.14 83.4492 117.346 83.7315 117.617 83.9736 c -117.896 84.2157 118.191 84.3971 118.503 84.5181 c -118.814 84.6392 119.143 84.6996 119.487 84.6996 c -119.502 84.6996 119.518 84.6996 119.537 84.6996 c -119.555 84.6996 119.571 84.6996 119.586 84.6996 c -119.601 84.6922 119.617 84.6885 119.636 84.6885 c -119.654 84.6885 119.674 84.6885 119.696 84.6885 c -119.711 84.6885 119.727 84.6885 119.746 84.6885 c -119.764 84.6885 119.784 84.6885 119.806 84.6885 c -119.821 84.6811 119.837 84.6777 119.856 84.6777 c -119.874 84.6777 119.89 84.6777 119.905 84.6777 c -120.199 84.6335 120.479 84.5473 120.747 84.4192 c -121.014 84.2908 121.273 84.1202 121.522 83.9076 c -121.764 83.6876 121.947 83.4126 122.072 83.0827 c -122.197 82.7527 122.259 82.3675 122.259 81.9276 c -122.259 81.8984 122.259 81.8689 122.259 81.8397 c -122.259 81.8102 122.256 81.7847 122.248 81.7626 c -122.248 81.7331 122.246 81.7039 122.243 81.6747 c -122.239 81.6452 122.237 81.616 122.237 81.5865 c -122.23 81.5279 122.221 81.4692 122.21 81.4105 c -122.199 81.3518 122.186 81.2932 122.171 81.2345 c -122.105 80.9706 122.004 80.7194 121.869 80.481 c -121.733 80.2426 121.559 80.0173 121.346 79.8044 c -121.141 79.5918 120.895 79.4342 120.609 79.3316 c -120.323 79.229 120.004 79.1777 119.652 79.1777 c -119.153 79.1777 118.723 79.2454 118.36 79.3809 c -117.997 79.5167 117.701 79.7239 117.474 80.0025 c -117.247 80.2812 117.076 80.5893 116.962 80.9266 c -116.849 81.264 116.792 81.6268 116.792 82.0154 c -116.792 82.0375 l -closepath -117.837 82.0375 m -117.837 81.9789 117.837 81.9259 117.837 81.878 c -117.837 81.8303 117.841 81.781 117.848 81.7297 c -117.855 81.6781 117.865 81.6288 117.876 81.5812 c -117.887 81.5335 117.896 81.4839 117.903 81.4326 c -117.94 81.2713 117.999 81.1134 118.079 80.9595 c -118.16 80.8056 118.259 80.6588 118.376 80.5196 c -118.501 80.3801 118.655 80.2775 118.838 80.2115 c -119.022 80.1454 119.238 80.1125 119.487 80.1125 c -119.722 80.1125 119.942 80.1454 120.147 80.2115 c -120.352 80.2775 120.54 80.3764 120.708 80.5085 c -120.877 80.6406 121.003 80.8331 121.088 81.086 c -121.172 81.3391 121.214 81.6489 121.214 82.0154 c -121.214 82.2722 121.178 82.505 121.104 82.7142 c -121.031 82.9231 120.921 83.1082 120.774 83.2695 c -120.627 83.4237 120.446 83.541 120.23 83.6215 c -120.013 83.7023 119.766 83.7426 119.487 83.7426 c -119.223 83.7426 118.996 83.7077 118.805 83.638 c -118.615 83.5685 118.457 83.4603 118.332 83.3137 c -118.207 83.1742 118.107 83.024 118.03 82.8627 c -117.953 82.7011 117.899 82.5362 117.87 82.3675 c -117.863 82.3383 117.855 82.3088 117.848 82.2796 c -117.841 82.2501 117.837 82.2209 117.837 82.1915 c -117.837 82.1623 117.837 82.1328 117.837 82.1036 c -117.837 82.0741 117.837 82.0449 117.837 82.0154 c -117.837 82.0375 l -closepath -123.205 82.4667 m -123.205 82.7598 123.257 83.0368 123.359 83.297 c -123.462 83.5575 123.616 83.8013 123.821 84.0286 c -124.034 84.2486 124.283 84.4155 124.569 84.5292 c -124.855 84.6429 125.182 84.6996 125.548 84.6996 c -125.607 84.6996 125.671 84.6959 125.741 84.6885 c -125.811 84.6811 125.886 84.6704 125.966 84.6556 c -126.047 84.6409 126.129 84.6227 126.214 84.6006 c -126.298 84.5785 126.384 84.5493 126.472 84.5125 c -126.626 84.4467 126.773 84.3622 126.912 84.2596 c -127.052 84.157 127.187 84.0323 127.319 83.8857 c -127.451 83.7463 127.55 83.5739 127.616 83.3687 c -127.682 83.1632 127.715 82.9285 127.715 82.6646 c -127.715 82.6572 127.715 82.6481 127.715 82.6371 c -127.715 82.626 127.715 82.6133 127.715 82.5985 c -127.715 82.5911 127.715 82.5821 127.715 82.571 c -127.715 82.56 127.715 82.5472 127.715 82.5325 c -127.715 79.2655 l -126.67 79.2655 l -126.67 82.3786 l -126.67 82.5398 126.646 82.6994 126.599 82.857 c -126.551 83.0146 126.48 83.1632 126.384 83.3026 c -126.289 83.4492 126.164 83.5592 126.01 83.6326 c -125.856 83.706 125.673 83.7426 125.46 83.7426 c -125.262 83.7426 125.088 83.7097 124.938 83.6437 c -124.788 83.5776 124.657 83.4787 124.547 83.3466 c -124.437 83.2145 124.351 83.0733 124.289 82.9231 c -124.227 82.7729 124.184 82.6133 124.162 82.4446 c -124.162 79.2655 l -123.205 79.2655 l -123.205 82.4667 l -closepath -0 0 0 rgb -F -newpath -113.172 76.343 m -113.172 76.6049 113.208 76.8397 113.279 77.0474 c -113.35 77.2549 113.455 77.4355 113.593 77.5889 c -113.736 77.7422 113.883 77.8732 114.037 77.9817 c -114.19 78.0903 114.351 78.1745 114.519 78.2343 c -114.549 78.2456 114.58 78.2558 114.612 78.2652 c -114.644 78.2746 114.676 78.2848 114.71 78.2961 c -114.74 78.3035 114.771 78.3111 114.803 78.3185 c -114.835 78.3259 114.865 78.3315 114.895 78.3352 c -114.959 78.3465 115.02 78.3551 115.078 78.3607 c -115.136 78.3661 115.193 78.3689 115.249 78.3689 c -115.402 78.3689 115.55 78.3539 115.692 78.3242 c -115.835 78.2941 115.969 78.2513 116.096 78.1952 c -116.223 78.1391 116.349 78.0659 116.472 77.9761 c -116.596 77.8865 116.718 77.7816 116.837 77.662 c -116.484 77.2745 l -116.469 77.2821 116.454 77.2915 116.441 77.3026 c -116.428 77.3139 116.414 77.3269 116.4 77.3419 c -116.392 77.3493 116.384 77.357 116.377 77.3643 c -116.369 77.372 116.362 77.3794 116.354 77.3867 c -116.343 77.3944 116.334 77.4018 116.326 77.4094 c -116.319 77.4168 116.311 77.4242 116.304 77.4318 c -116.237 77.4879 116.164 77.5412 116.085 77.5917 c -116.007 77.6421 115.922 77.6917 115.833 77.7405 c -115.743 77.7853 115.649 77.8199 115.552 77.8443 c -115.455 77.8686 115.354 77.8808 115.249 77.8808 c -115.021 77.8808 114.819 77.8479 114.645 77.7825 c -114.472 77.717 114.325 77.6189 114.205 77.4879 c -114.089 77.3607 113.995 77.2252 113.921 77.0809 c -113.849 76.9369 113.799 76.7864 113.773 76.6293 c -113.769 76.603 113.764 76.5777 113.759 76.5534 c -113.753 76.5293 113.75 76.5037 113.75 76.4777 c -113.747 76.4516 113.745 76.4264 113.745 76.402 c -113.745 76.3776 113.745 76.3541 113.745 76.3317 c -113.745 76.1446 113.776 75.964 113.837 75.7903 c -113.899 75.6162 113.992 75.4507 114.115 75.2934 c -114.239 75.1363 114.395 75.0156 114.584 74.9314 c -114.773 74.8472 114.994 74.7996 115.249 74.7885 c -115.253 74.7885 115.255 74.7885 115.257 74.7885 c -115.259 74.7885 115.262 74.7885 115.266 74.7885 c -115.269 74.7885 115.273 74.7885 115.277 74.7885 c -115.281 74.7885 115.284 74.7885 115.288 74.7885 c -115.296 74.7885 115.301 74.7885 115.305 74.7885 c -115.309 74.7885 115.312 74.7885 115.313 74.7885 c -115.315 74.7885 115.318 74.7885 115.322 74.7885 c -115.49 74.7845 115.644 74.8072 115.782 74.8557 c -115.92 74.9044 116.042 74.9793 116.147 75.0802 c -116.255 75.1774 116.346 75.2814 116.419 75.3917 c -116.492 75.502 116.549 75.6171 116.59 75.737 c -116.601 75.7667 116.612 75.7957 116.621 75.8237 c -116.631 75.8518 116.637 75.879 116.641 75.9054 c -116.644 75.9201 116.647 75.9343 116.649 75.9473 c -116.651 75.9603 116.652 75.9745 116.652 75.9895 c -116.656 76.0006 116.659 76.0128 116.66 76.0258 c -116.662 76.0389 116.663 76.053 116.663 76.0681 c -115.294 76.0791 l -115.294 76.6123 l -117.236 76.6123 l -117.236 76.1242 l -117.213 75.8285 117.148 75.5695 117.039 75.3469 c -116.931 75.1241 116.781 74.9342 116.59 74.7772 c -116.396 74.6201 116.187 74.5031 115.964 74.4262 c -115.742 74.3497 115.503 74.3114 115.249 74.3114 c -114.95 74.3114 114.676 74.3571 114.429 74.4489 c -114.183 74.5405 113.964 74.6816 113.773 74.8727 c -113.582 75.0595 113.436 75.2758 113.335 75.5207 c -113.234 75.7659 113.18 76.0363 113.172 76.3317 c -113.172 76.343 l -closepath -117.724 76.2138 m -117.724 76.33 117.746 76.4394 117.791 76.5423 c -117.836 76.6452 117.905 76.7396 117.999 76.8258 c -118.092 76.9117 118.201 76.9763 118.324 77.0194 c -118.448 77.0622 118.586 77.0837 118.74 77.0837 c -118.848 77.0837 118.944 77.0755 119.026 77.0585 c -119.108 77.0418 119.175 77.0182 119.228 76.9885 c -119.28 76.9584 119.329 76.9219 119.374 76.8791 c -119.419 76.836 119.458 76.7864 119.492 76.7302 c -119.525 76.775 119.567 76.8173 119.615 76.8564 c -119.664 76.8958 119.722 76.9341 119.789 76.9715 c -119.857 77.0089 119.931 77.0369 120.014 77.0557 c -120.096 77.0744 120.188 77.0837 120.289 77.0837 c -120.416 77.0837 120.536 77.0661 120.648 77.0304 c -120.76 76.995 120.865 76.9397 120.962 76.8649 c -121.059 76.7937 121.133 76.7124 121.184 76.6208 c -121.234 76.5293 121.261 76.4272 121.265 76.315 c -121.265 76.3113 121.265 76.3084 121.265 76.3065 c -121.265 76.3048 121.265 76.3019 121.265 76.298 c -121.265 76.2943 121.265 76.2914 121.265 76.2897 c -121.265 76.2878 121.265 76.2849 121.265 76.2812 c -121.261 76.2775 121.26 76.2747 121.26 76.2727 c -121.26 76.271 121.26 76.2682 121.26 76.2645 c -121.26 76.2605 121.26 76.258 121.26 76.256 c -121.26 76.254 121.26 76.2512 121.26 76.2475 c -121.26 74.3562 l -120.771 74.3562 l -120.771 76.0791 l -120.771 76.0754 120.771 76.0746 120.771 76.0763 c -120.771 76.0783 120.773 76.0791 120.777 76.0791 c -120.777 76.0828 120.777 76.0856 120.777 76.0876 c -120.777 76.0896 120.777 76.0922 120.777 76.0961 c -120.777 76.1035 120.777 76.11 120.777 76.1157 c -120.777 76.1214 120.777 76.1259 120.777 76.1296 c -120.777 76.1409 120.776 76.1523 120.774 76.1633 c -120.772 76.1746 120.769 76.1877 120.766 76.2027 c -120.762 76.2138 120.759 76.226 120.757 76.2393 c -120.756 76.2523 120.753 76.2662 120.749 76.2812 c -120.734 76.326 120.712 76.3691 120.682 76.4102 c -120.651 76.4516 120.616 76.4907 120.575 76.5281 c -120.534 76.5655 120.489 76.5936 120.44 76.6123 c -120.392 76.631 120.341 76.6404 120.289 76.6404 c -120.221 76.6404 120.159 76.6282 120.101 76.6038 c -120.043 76.5797 119.989 76.5432 119.941 76.4944 c -119.892 76.4459 119.854 76.3943 119.826 76.3402 c -119.798 76.286 119.778 76.2288 119.767 76.169 c -119.763 76.1616 119.76 76.1531 119.758 76.1437 c -119.756 76.1344 119.755 76.1259 119.755 76.1185 c -119.755 76.1072 119.755 76.0978 119.755 76.0905 c -119.755 76.0828 119.755 76.0754 119.755 76.0681 c -119.755 74.3562 l -119.273 74.3562 l -119.273 76.0343 l -119.273 76.1165 119.262 76.1934 119.239 76.2645 c -119.217 76.3354 119.183 76.4008 119.138 76.4609 c -119.093 76.5208 119.037 76.5655 118.97 76.5956 c -118.903 76.6254 118.826 76.6404 118.74 76.6404 c -118.631 76.6293 118.541 76.6049 118.47 76.5675 c -118.399 76.5301 118.347 76.4797 118.313 76.4159 c -118.279 76.3524 118.254 76.2849 118.237 76.2138 c -118.22 76.1429 118.212 76.0698 118.212 75.9949 c -118.212 75.9912 118.212 75.9876 118.212 75.9839 c -118.212 75.9782 l -118.212 74.3562 l -117.724 74.3562 l -117.724 76.2138 l -closepath -122.23 78.2456 m -122.23 75.7256 l -122.23 75.576 122.249 75.4422 122.286 75.3242 c -122.324 75.2066 122.378 75.1026 122.449 75.0127 c -122.524 74.9231 122.613 74.8557 122.716 74.8109 c -122.819 74.7658 122.936 74.7434 123.067 74.7434 c -123.19 74.7434 123.3 74.7613 123.398 74.7967 c -123.495 74.8324 123.579 74.8857 123.65 74.9566 c -123.718 75.0277 123.774 75.1026 123.819 75.1811 c -123.864 75.2599 123.897 75.3401 123.92 75.4226 c -123.927 75.4413 123.932 75.4609 123.934 75.4816 c -123.936 75.502 123.939 75.5235 123.942 75.5459 c -123.946 75.5686 123.949 75.5899 123.95 75.6105 c -123.952 75.6312 123.953 75.6508 123.953 75.6695 c -123.953 75.8192 123.934 75.9501 123.894 76.0624 c -123.855 76.1746 123.798 76.2662 123.723 76.3374 c -123.649 76.4122 123.569 76.4711 123.485 76.5142 c -123.401 76.5573 123.313 76.5843 123.224 76.5956 c -123.213 76.5956 123.202 76.5956 123.193 76.5956 c -123.184 76.5956 123.175 76.5956 123.168 76.5956 c -123.164 76.5956 123.159 76.5956 123.154 76.5956 c -123.148 76.5956 123.143 76.5973 123.14 76.6013 c -123.132 76.6013 123.126 76.6013 123.123 76.6013 c -123.119 76.6013 123.115 76.6013 123.112 76.6013 c -123.056 76.6013 123.003 76.5973 122.954 76.5899 c -122.906 76.5826 122.861 76.5712 122.82 76.5562 c -122.779 76.5412 122.738 76.5253 122.699 76.5086 c -122.66 76.4918 122.62 76.474 122.578 76.4553 c -122.573 76.4496 l -122.567 76.4496 l -122.56 76.4459 122.552 76.4422 122.545 76.4383 c -122.537 76.4346 122.532 76.4329 122.528 76.4329 c -122.52 76.4289 122.514 76.4252 122.508 76.4215 c -122.503 76.4179 122.496 76.4142 122.489 76.4102 c -122.474 76.4065 122.46 76.402 122.446 76.3963 c -122.433 76.3906 122.419 76.3841 122.404 76.3768 c -122.404 76.8762 l -122.446 76.8949 122.486 76.9136 122.525 76.9323 c -122.564 76.9511 122.605 76.9678 122.646 76.9828 c -122.687 76.9978 122.728 77.0109 122.769 77.0222 c -122.81 77.0333 122.853 77.0426 122.898 77.0503 c -122.917 77.054 122.936 77.0568 122.957 77.0585 c -122.978 77.0605 122.999 77.0633 123.022 77.067 c -123.033 77.067 123.043 77.067 123.053 77.067 c -123.062 77.067 123.072 77.069 123.084 77.0727 c -123.091 77.0727 123.1 77.0727 123.112 77.0727 c -123.123 77.0727 123.134 77.0727 123.145 77.0727 c -123.321 77.0727 123.486 77.0435 123.639 76.9856 c -123.793 76.9275 123.937 76.8388 124.071 76.7189 c -124.206 76.603 124.308 76.4646 124.377 76.3036 c -124.446 76.1429 124.481 75.9615 124.481 75.7594 c -124.481 75.5723 124.451 75.3926 124.391 75.2205 c -124.331 75.0484 124.242 74.8838 124.122 74.7267 c -124.006 74.5694 123.859 74.4534 123.681 74.3786 c -123.503 74.3038 123.298 74.2664 123.067 74.2664 c -122.835 74.2664 122.633 74.3029 122.461 74.3758 c -122.288 74.4489 122.146 74.56 122.034 74.7097 c -121.922 74.8633 121.837 75.0269 121.781 75.2009 c -121.725 75.375 121.697 75.5609 121.697 75.7594 c -121.697 78.2456 l -122.23 78.2456 l -closepath -124.969 78.2904 m -125.497 78.2904 l -125.497 76.6965 l -127.181 76.6965 l -127.181 78.2904 l -127.708 78.2904 l -127.708 74.3562 l -127.181 74.3562 l -127.181 76.169 l -125.497 76.169 l -125.497 74.3562 l -124.969 74.3562 l -124.969 78.2904 l -closepath -F -%%PageTrailer -showpage -%%Trailer -end -%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2 -%%EOF
--- a/artifacts/doc/datacage-config-manual/title.tex Thu Aug 28 18:42:20 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -%----------------------------------- -% TITLE PAGE - -% FIXME BSH Logo - -\begin{figure}[ht] - \begin{minipage}[b]{0.5\linewidth} - \centering - \includegraphics[scale=0.75]{figures/bsh_logo} \\ - {\tt http://www.bsh.de/en}\\[4.0cm] - \end{minipage} - \begin{minipage}[b]{0.5\linewidth} - \centering - \includegraphics[width=0.75\textwidth]{figures/intevation-logo} - {\tt http://intevation.de/geospatial}\\[2.0cm] - \end{minipage} -\end{figure} - - \vspace{4cm} - - { - \sffamily\large - Documentation FLYS 3.0 - - \vspace{1cm} - { - \bfseries\huge - Documentation of the Datacage - } - - \vspace{1cm} - Version \documentversion~-~Date: \documentdate - -% Revision \documentrevision - } - - \vspace{4cm} - - \thispagestyle{empty} - - \vfill - - \begin{flushleft} - Authors:\\ - Felix Wolfsteller$<$felix.wolfsteller@intevation.de$>$\\ - {\bf Intevation GmbH},\\ - Neuer Graben 17, 49074 Osnabrück, Germany\\ - Tel: ++49 541 33 50 83 - 0 \\ - http://www.intevation.net/geospatial - - \end{flushleft}