26.10.2014 Views

TikZ and pgf

TikZ and pgf

TikZ and pgf

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• The <strong>pgf</strong>pict2e frontend reimplements the st<strong>and</strong>ard L A TEX {picture} environment <strong>and</strong> comm<strong>and</strong>s<br />

like \line or \vector using the <strong>pgf</strong> basic layer. This layer is not really “necessary” since<br />

the pict2e.sty package does at least as good a job at reimplementing the {picture} environment.<br />

Rather, the idea behind this package is to have a simple demonstration of how a frontend<br />

can be implemented.<br />

It would be possible to implement a <strong>pgf</strong>tricks frontend that maps pstricks comm<strong>and</strong>s to <strong>pgf</strong><br />

comm<strong>and</strong>s. However, I have not done this <strong>and</strong> even if fully implemented, many things that work in<br />

pstricks will not work, namely whenever some pstricks comm<strong>and</strong> relies too heavily on PostScript<br />

trickery. Nevertheless, such a package might be useful in some situations.<br />

As a user of <strong>pgf</strong> you will use the comm<strong>and</strong>s of a frontend plus perhaps some comm<strong>and</strong>s of the basic<br />

layer. For this reason, this manual explains the frontends first, then the basic layer, <strong>and</strong> finally the system<br />

layer.<br />

1.2 Comparison with Other Graphics Packages<br />

There were two main motivations for creating <strong>pgf</strong>:<br />

1. The st<strong>and</strong>ard L A TEX {picture} environment is not powerful enough to create anything but really<br />

simple graphics. This is certainly not due to a lack of knowledge or imagination on the part of L A TEX’s<br />

designer(s). Rather, this is the price paid for the {picture} environment’s portability: It works<br />

together with all backend drivers.<br />

2. The {pstricks} package is certainly powerful enough to create any conceivable kind of graphic, but<br />

it is not portable at all. Most importantly, it does not work with pdftex nor with any other driver<br />

that produces anything but PostScript code.<br />

The <strong>pgf</strong> package is a trade-off between portability <strong>and</strong> expressive power. It is not as portable as<br />

{picture} <strong>and</strong> perhaps not quite as powerful as {pspicture}. However, it is more powerful than {picture}<br />

<strong>and</strong> more portable than {pspicture}.<br />

1.3 Utilities: Page Management<br />

The <strong>pgf</strong> package include a special subpackage called <strong>pgf</strong>pages, which is used to assemble several pages into<br />

a single page. This package is not really about creating graphics, but it is part of <strong>pgf</strong> nevertheless, mostly<br />

because its implementation uses <strong>pgf</strong> heavily.<br />

The subpackage <strong>pgf</strong>pages provides comm<strong>and</strong>s for assembling several “virtual pages” into a single “physical<br />

page.” The idea is that whenever TEX has a page ready for “shipout,” <strong>pgf</strong>pages interrupts this shipout<br />

<strong>and</strong> instead stores the page to be shipped out in a special box. When enough “virtual pages” have been<br />

accumulated in this way, they are scaled down <strong>and</strong> arranged on a “physical page,” which then really shipped<br />

out. This mechanism allows you to create “two page on one page” versions of a document directly inside<br />

L A TEX without the use of any external programs.<br />

However, <strong>pgf</strong>pages can do quite a lot more than that. You can use it to put logos <strong>and</strong> watermark on<br />

pages, print up to 16 pages on one page, add borders to pages, <strong>and</strong> more.<br />

1.4 How to Read This Manual<br />

This manual describes both the design of the <strong>pgf</strong> system <strong>and</strong> its usage. The organization is very roughly<br />

according to “user-friendliness.” The comm<strong>and</strong>s <strong>and</strong> subpackages that are easiest <strong>and</strong> most frequently used<br />

are described first, more low-level <strong>and</strong> esoteric features are discussed later.<br />

If you have not yet installed <strong>pgf</strong>, please read the installation first. Second, it might be a good idea to<br />

read the tutorial. Finally, you might wish to skim through the description of <strong>TikZ</strong>. Typically, you will not<br />

need to read the sections on the basic layer. You will only need to read the part on the system layer if you<br />

intend to write your own frontend or if you wish to port <strong>pgf</strong> to a new driver.<br />

The “public” comm<strong>and</strong>s <strong>and</strong> environments provided by the <strong>pgf</strong> package are described throughout the<br />

text. In each such description, the described comm<strong>and</strong>, environment or option is printed in red. Text shown<br />

in green is optional <strong>and</strong> can be left out.<br />

12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!