Section 4.1 The publication file
When illustrating a large project such as a book, you will likely want to create diagrams that have a consistent style. PreFigure constructs some components with default values for the attributes. For instance, a
<graph>
is stroked blue by default and a <point>
is filled red. You may, however, wish to change these default behaviors with a publication file, as shown in Listing 4.1.1
<prefigure>
<graph stroke="green"/>
<point style="diamond" size="5" fill="blue" outline="yes"/>
<macros>
\newcommand{\deriv}[2]{\displaystyle \frac{d#1}{d#2}}
\newcommand{\real}{\Bbb R}
</macros>
</prefigure>
The publication file begins with a
<prefigure>
element whose children describe desired default behaviors for a few graphical components. For instance, this publication file asks that a <graph>
be stroked green and that a <point>
has a few default attributes. Notice that the publication file also includes a list of LaTeX macros, given in the <macros>
element, that can be used in labels.To illustrate, Figure 4.1.2 contains a diagram created using this publication file with Listing 4.1.3 showing the PreFigure source.
<diagram dimensions="(300,300)" margins="5">
<definition>f(x)=exp(x/3)*cos(x)</definition>
<coordinates bbox="(-4,-4,4,4)">
<grid-axes ylabel="\real^2"/>
<graph function="f"/>
<repeat parameter="k=-3..3">
<point p="(k,f(k))"/>
</repeat>
<label p="(2,2)" clear-background="yes">
<m>\deriv{y}{x}</m>
</label>
<point p="(-2,2)" fill="red" size="4"/>
</coordinates>
</diagram>
Because the publication file sets the
@stroke
attribute of <graph>
to be green, the graph of the function is stroked green by default. The <point>
s on the graph are also created using the attributes given in the publication file. Notice that any attributes given in one of these tags, such as the <point>
that is filled red, take precedence over the values in the publication file. This example also demonstrates the use of LaTeX macros in the labels.To apply the publication file
pub_file.xml
to a diagram, use the -p
switch when compiling:prefig build -p pub_file.xml foo.xml
A good way to get started using a publication file for a large project is to say
prefig new
which has the effect of copying an empty publication
pf_publication.xml
and the diagcess tools into the current directory. If you do not specify a publication file in a build
command, PreFigure will look for a pf_publication.xml
in the current directory or a parent directory. To disable the use of any publication file, use the -i
or --ignore_publication
flag with the build command:prefig build -i foo.xml