summaryrefslogtreecommitdiff
path: root/source/luametatex/source/tex/texlocalboxes.h
blob: 6c37ea1ae71e849e379f3698f01ef4f4108195db (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
/*
    See license.txt in the root of this project.
*/

# ifndef LMT_LOCALBOXES_H
# define LMT_LOCALBOXES_H

/*tex Todo: determine when to update (grouping, copying) or when to replace. */

extern halfword   tex_get_local_boxes             (halfword location);
extern void       tex_set_local_boxes             (halfword b, halfword location);
extern halfword   tex_use_local_boxes             (halfword p, halfword location);
extern void       tex_update_local_boxes          (halfword b, halfword index, halfword location);
extern void       tex_replace_local_boxes         (halfword par, halfword b, halfword index, halfword location);
extern void       tex_reset_local_boxes           (halfword index, halfword location);

extern void       tex_add_local_boxes             (halfword p);
extern void       tex_scan_local_boxes_keys       (quarterword *options, halfword *index);
extern halfword   tex_valid_box_index             (halfword n);

/*tex Helpers, just in case we decide to be more sparse. */

extern scaled     tex_get_local_left_width        (halfword p);
extern scaled     tex_get_local_right_width       (halfword p);

extern void       tex_set_local_left_width        (halfword p, scaled width);
extern void       tex_set_local_right_width       (halfword p, scaled width);

extern halfword   tex_get_local_interline_penalty (halfword p);
extern halfword   tex_get_local_broken_penalty    (halfword p);

extern void       tex_set_local_interline_penalty (halfword p, halfword penalty);
extern void       tex_set_local_broken_penalty    (halfword p, halfword penalty);

# endif