blob: da7ccb96864ce1ce872fd5254e7a732c1df2441c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
====================================
The xsavebox LaTeX Package
https://gitlab.com/agrahn/xsavebox
(C) 2016--\today Alexander Grahn
====================================
This package defines commands for saving content that can be repeatedly
placed into the document without replicating DVI/PDF code in the output
file, allowing for smaller file size of the final PDF and improved content
caching for faster display in certain PDF viewers. The method makes use of
`Form XObjects' defined in the PDF specification.
The user commands are modelled after the standard LaTeX commands \savebox,
\sbox, \usebox and the `lrbox' environment.
All common TeX engines and back-ends are supported:
* pdfLaTeX, LuaLaTeX
* LaTeX --> dvips --> ps2pdf/Distiller
* (Xe)LaTeX --> (x)dvipdfmx
The user commands are:
* content saving:
\xsavebox{<name>}[<width>][<position>]{...}
\xsavebox*{<name>}[<width>][<position>]{...}
\xsbox{<name>}{...}
\begin{xlrbox}{<name>}...\end{xlrbox}
\begin{xlrbox*}{<name>}...\end{xlrbox*}
<name> is an identifier (not a command!) composed of arbitrary
non-active characters, including spaces and numbers. A command for
the declaration of <name> does not exist.
Starred `*' variants allow for colour injection (pdfLaTeX/LuaLaTeX
only).
* content insertion (referencing):
\xusebox{<name>}
\the<name>
The second, short form is useable if <name> is composed of [a-zA-Z].
The package was written in the LaTeX3 syntax.
License:
This material is subject to the LaTeX Project Public License. See
http://mirrors.ctan.org/macros/latex/base/lppl.txt
for the details of that license.
|