File: Person.m4

package info (click to toggle)
texlive-base 2024.20250309-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,058,192 kB
  • sloc: perl: 44,903; sh: 5,008; makefile: 4,278; javascript: 3,034; ruby: 2,428; tcl: 2,131; xml: 1,874; python: 1,385; pascal: 1,249; cpp: 549; awk: 512; lisp: 447; ansic: 103; sed: 8
file content (45 lines) | stat: -rw-r--r-- 1,373 bytes parent folder | download | duplicates (5)
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
.PS
# person.m4
gen_init

divert(-1)
                                    `person(
                                       hght=expr;wdth=expr;fill="colorname")
                                     e.g. person(hght=1;fill="gray")'
define(`person',
 `[ pushkeys_(`$1',hght:linewid;wdth:m4hght*2/5;fill:"black":N)dnl
  bodywid = m4wdth/2
  bodyrad = bodywid/8
  bodyht = (m4hght - bodywid - bodywid/16 + bodyrad*2)/2
  tmplth = linethick; linethick = 0
  Head: circle diam bodywid colored m4fill
  Body: box rad bodyrad ht bodyht wid bodywid colored m4fill  \
   with .n at Head.s+(0,-Head.diam/16)
  armwid = bodywid/3
  Armleft: box wid armwid rad armwid/2 ht Body.ht-bodyrad colored m4fill \
    with .w at Body.e + (armwid/2,0) 
  Armright: box same with .e at Body.w + (-armwid/2,0) 
  Legleft: box wid bodywid/2.5 rad armwid/2 ht Body.ht colored m4fill \
    with .n at (Body.w,Body.s)+(bodywid/5,bodyrad*2)
  Legright: box same with .n at (Body.e,Body.s)+(-bodywid/5,bodyrad*2)
  linethick_(tmplth) popdef(`m4hght',`m4wdth',`m4fill') ]')

divert(0)dnl

  linewid = 3*linewid
  movewid = 0.2

  setrgb(0.54,0.81,0.94,babyblue)
  person(fill="babyblue")
  move
  person(wdth=linewid*3/4;fill="babyblue")
  move
  person(wdth=linewid;fill="babyblue")
  move
  person
  move
  resetrgb
  person(hght=1;fill="gray")

  line up linewid with .c at last [].e+(linewid/10,0)
.PE