summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lpic
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/lpic
Initial commit
Diffstat (limited to 'macros/latex/contrib/lpic')
-rw-r--r--macros/latex/contrib/lpic/README26
-rw-r--r--macros/latex/contrib/lpic/instructions-differential.eps382
-rw-r--r--macros/latex/contrib/lpic/instructions-differential.pdfbin0 -> 7804 bytes
-rw-r--r--macros/latex/contrib/lpic/instructions.pdfbin0 -> 99926 bytes
-rw-r--r--macros/latex/contrib/lpic/instructions.tex326
-rw-r--r--macros/latex/contrib/lpic/lpic.sty724
6 files changed, 1458 insertions, 0 deletions
diff --git a/macros/latex/contrib/lpic/README b/macros/latex/contrib/lpic/README
new file mode 100644
index 0000000000..eb14d555dc
--- /dev/null
+++ b/macros/latex/contrib/lpic/README
@@ -0,0 +1,26 @@
+This README for lpic package
+
+
+The package lpic defines convenient interface to put any
+LaTeX material on top of included graphics.
+LaTeX material could also be rotated and typeset on top of a white
+box overshadowing graphics. Coordinates of LaTeX boxes are
+given relative to the original, unscaled graphics, when graphics is
+rescaled, LaTeX annotations stay at their right places (unless you
+do something extreme). In a draft mode it allows to draw a coordinate
+grid over the picture for easy adjustment of positions of the annotations.
+
+Author: Rostislav Matveyev
+
+Copyright 2010 R. Matveyev
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+Files: lpic.sty instructions.tex instructions.pdf instructions-differential.eps
+ instructions-differential.pdf README \ No newline at end of file
diff --git a/macros/latex/contrib/lpic/instructions-differential.eps b/macros/latex/contrib/lpic/instructions-differential.eps
new file mode 100644
index 0000000000..24271b083d
--- /dev/null
+++ b/macros/latex/contrib/lpic/instructions-differential.eps
@@ -0,0 +1,382 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: differential.eps
+%%Creator: fig2dev Version 3.2 Patchlevel 3c
+%%CreationDate: Thu Dec 21 16:43:54 2006
+%%For: matveyev@misun113 (Dr. Slava Matveyev)
+%%BoundingBox: 0 0 371 342
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 342 moveto 0 0 lineto 371 0 lineto 371 342 lineto closepath clip newpath
+-27.0 341.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+ /DrawEllipse {
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc 0 0 1 startangle endangle arc
+ closepath
+ savematrix setmatrix
+ } def
+
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+%%Page: 1 1
+10 setmiterlimit
+ 0.06299 0.06299 sc
+%
+% Fig objects follow
+%
+7.500 slw
+ [60] 0 sd
+% Ellipse
+n 4950 450 45 45 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
+ [] 0 sd
+ [60] 0 sd
+% Ellipse
+n 990 450 45 45 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
+ [] 0 sd
+ [60] 0 sd
+% Ellipse
+n 1215 1485 45 45 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
+ [] 0 sd
+ [60] 0 sd
+% Ellipse
+n 4950 5059 45 45 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
+ [] 0 sd
+% Polyline
+gs clippath
+2205 1500 m 2295 1500 l 2295 1387 l 2250 1477 l 2205 1387 l cp
+2295 435 m 2205 435 l 2205 548 l 2250 458 l 2295 548 l cp
+eoclip
+n 2250 450 m
+ 2250 1485 l gs col0 s gr gr
+
+% arrowhead
+n 2295 548 m 2250 458 l 2205 548 l 2250 578 l 2295 548 l
+ cp gs col7 1.00 shd ef gr col0 s
+% arrowhead
+n 2205 1387 m 2250 1477 l 2295 1387 l 2250 1357 l 2205 1387 l
+ cp gs col7 1.00 shd ef gr col0 s
+% Polyline
+2 slj
+gs clippath
+926 -21 m 867 -8 l 900 139 l 904 16 l 959 126 l cp
+eoclip
+n 900 5400 m 900 5399 l 901 5396 l 902 5390 l 904 5382 l 907 5369 l
+ 911 5352 l 916 5331 l 922 5304 l 929 5272 l 938 5234 l
+ 948 5192 l 959 5143 l 971 5090 l 983 5032 l 997 4970 l
+ 1012 4904 l 1027 4835 l 1043 4762 l 1059 4688 l 1075 4612 l
+ 1091 4535 l 1108 4457 l 1124 4379 l 1140 4301 l 1155 4223 l
+ 1171 4147 l 1185 4072 l 1199 3998 l 1213 3926 l 1226 3855 l
+ 1238 3786 l 1250 3719 l 1261 3654 l 1271 3590 l 1281 3528 l
+ 1290 3468 l 1298 3410 l 1306 3353 l 1313 3298 l 1319 3244 l
+ 1325 3191 l 1330 3139 l 1334 3088 l 1338 3038 l 1341 2988 l
+ 1344 2940 l 1346 2891 l 1348 2843 l 1349 2795 l 1350 2748 l
+ 1350 2700 l 1350 2652 l 1349 2605 l 1348 2557 l 1346 2509 l
+ 1344 2460 l 1341 2412 l 1338 2362 l 1334 2312 l 1330 2261 l
+ 1325 2209 l 1319 2156 l 1313 2102 l 1306 2047 l 1298 1990 l
+ 1290 1932 l 1281 1872 l 1271 1810 l 1261 1746 l 1250 1681 l
+ 1238 1614 l 1226 1545 l 1213 1474 l 1199 1402 l 1185 1328 l
+ 1171 1253 l 1155 1177 l 1140 1099 l 1124 1021 l 1108 943 l
+ 1091 865 l 1075 788 l 1059 712 l 1043 638 l 1027 565 l
+ 1012 496 l 997 430 l 983 368 l 971 310 l 959 257 l
+ 948 208 l 938 166 l 929 128 l 922 96 l 916 69 l
+ 911 48 l 907 31 l 904 18 l
+ 900 0 l gs col0 s gr gr
+
+% arrowhead
+0 slj
+n 959 126 m 904 16 l 900 139 l 959 126 l cp gs 0.00 setgray ef gr col0 s
+% Polyline
+2 slj
+30.000 slw
+n 1575 3825 m 1577 3825 l 1582 3824 l 1590 3823 l 1604 3821 l 1623 3818 l
+ 1648 3815 l 1678 3810 l 1714 3805 l 1756 3799 l 1802 3793 l
+ 1851 3785 l 1903 3778 l 1957 3770 l 2012 3762 l 2066 3754 l
+ 2120 3746 l 2172 3738 l 2223 3730 l 2272 3723 l 2319 3716 l
+ 2363 3709 l 2405 3702 l 2444 3696 l 2481 3690 l 2516 3684 l
+ 2550 3678 l 2581 3673 l 2611 3667 l 2639 3662 l 2666 3657 l
+ 2692 3651 l 2717 3646 l 2742 3641 l 2773 3634 l 2803 3628 l
+ 2832 3620 l 2861 3613 l 2889 3606 l 2918 3598 l 2945 3589 l
+ 2973 3581 l 3000 3572 l 3027 3562 l 3054 3552 l 3080 3542 l
+ 3106 3531 l 3132 3520 l 3157 3508 l 3182 3496 l 3206 3483 l
+ 3230 3471 l 3253 3457 l 3276 3444 l 3299 3430 l 3321 3416 l
+ 3343 3401 l 3365 3386 l 3387 3371 l 3409 3355 l 3429 3340 l
+ 3449 3325 l 3469 3309 l 3490 3293 l 3512 3276 l 3534 3258 l
+ 3556 3239 l 3579 3219 l 3603 3198 l 3627 3177 l 3651 3155 l
+ 3676 3132 l 3700 3108 l 3725 3084 l 3750 3059 l 3775 3034 l
+ 3800 3008 l 3824 2982 l 3848 2955 l 3872 2929 l 3895 2902 l
+ 3918 2875 l 3939 2848 l 3961 2822 l 3981 2795 l 4001 2768 l
+ 4020 2742 l 4039 2715 l 4057 2688 l 4075 2661 l 4091 2636 l
+ 4106 2610 l 4122 2583 l 4137 2556 l 4152 2528 l 4167 2500 l
+ 4181 2471 l 4196 2442 l 4210 2411 l 4224 2381 l 4238 2349 l
+ 4252 2317 l 4266 2285 l 4279 2252 l 4292 2219 l 4305 2186 l
+ 4317 2153 l 4329 2119 l 4340 2086 l 4352 2053 l 4362 2021 l
+ 4373 1988 l 4383 1956 l 4392 1925 l 4402 1894 l 4410 1863 l
+ 4419 1833 l 4427 1804 l 4435 1775 l 4442 1746 l 4449 1718 l
+ 4456 1690 l 4464 1660 l 4471 1631 l 4478 1601 l 4485 1571 l
+ 4492 1540 l 4499 1510 l 4506 1479 l 4514 1447 l 4521 1416 l
+ 4529 1384 l 4536 1352 l 4544 1320 l 4553 1287 l 4561 1255 l
+ 4569 1223 l 4578 1191 l 4587 1159 l 4596 1127 l 4605 1097 l
+ 4615 1066 l 4624 1036 l 4634 1007 l 4644 979 l 4655 951 l
+ 4665 923 l 4676 897 l 4687 871 l 4699 845 l 4711 820 l
+ 4723 795 l 4736 770 l 4749 746 l 4763 721 l 4779 696 l
+ 4795 671 l 4812 645 l 4830 619 l 4850 591 l 4871 562 l
+ 4894 533 l 4918 501 l 4944 469 l 4972 435 l 5001 400 l
+ 5031 364 l 5062 327 l 5094 290 l 5125 254 l 5156 219 l
+ 5185 185 l 5213 154 l 5237 127 l 5258 103 l 5276 83 l
+ 5289 68 l 5299 57 l 5305 50 l 5308 47 l
+ 5310 45 l gs col0 s gr
+% Polyline
+7.500 slw
+gs clippath
+6307 5342 m 6321 5284 l 6173 5250 l 6284 5306 l 6160 5308 l cp
+eoclip
+n 450 5400 m 452 5400 l 457 5399 l 465 5398 l 479 5396 l 497 5394 l
+ 522 5391 l 552 5387 l 587 5383 l 627 5378 l 670 5372 l
+ 717 5366 l 765 5360 l 815 5354 l 865 5347 l 914 5341 l
+ 963 5335 l 1009 5329 l 1055 5323 l 1098 5318 l 1139 5312 l
+ 1178 5307 l 1216 5302 l 1251 5298 l 1285 5293 l 1317 5289 l
+ 1349 5285 l 1379 5281 l 1408 5277 l 1437 5273 l 1465 5269 l
+ 1493 5265 l 1520 5261 l 1548 5257 l 1575 5253 l 1603 5249 l
+ 1632 5245 l 1660 5241 l 1689 5237 l 1719 5232 l 1749 5228 l
+ 1780 5223 l 1811 5219 l 1843 5214 l 1876 5209 l 1909 5204 l
+ 1942 5199 l 1976 5193 l 2011 5188 l 2045 5183 l 2080 5177 l
+ 2116 5171 l 2151 5166 l 2187 5160 l 2223 5154 l 2259 5148 l
+ 2296 5143 l 2332 5137 l 2369 5131 l 2406 5125 l 2443 5119 l
+ 2480 5113 l 2519 5106 l 2558 5100 l 2589 5095 l 2622 5089 l
+ 2655 5084 l 2689 5079 l 2724 5073 l 2759 5067 l 2796 5062 l
+ 2834 5056 l 2873 5050 l 2912 5044 l 2953 5038 l 2995 5032 l
+ 3037 5026 l 3081 5020 l 3125 5014 l 3170 5009 l 3216 5003 l
+ 3262 4998 l 3310 4992 l 3357 4987 l 3405 4982 l 3453 4977 l
+ 3502 4973 l 3550 4969 l 3599 4965 l 3647 4961 l 3695 4958 l
+ 3744 4955 l 3792 4953 l 3839 4950 l 3886 4949 l 3933 4947 l
+ 3980 4946 l 4026 4945 l 4072 4945 l 4118 4945 l 4163 4946 l
+ 4208 4947 l 4253 4948 l 4298 4950 l 4338 4952 l 4379 4955 l
+ 4421 4957 l 4462 4961 l 4504 4965 l 4547 4969 l 4590 4974 l
+ 4635 4979 l 4680 4985 l 4727 4991 l 4775 4998 l 4825 5006 l
+ 4877 5014 l 4930 5023 l 4985 5033 l 5042 5043 l 5101 5054 l
+ 5161 5066 l 5224 5078 l 5288 5091 l 5354 5104 l 5421 5118 l
+ 5490 5132 l 5558 5146 l 5627 5161 l 5695 5175 l 5763 5190 l
+ 5828 5204 l 5892 5218 l 5952 5231 l 6008 5244 l 6061 5256 l
+ 6108 5266 l 6150 5276 l 6187 5284 l 6218 5291 l 6243 5297 l
+ 6263 5301 l 6278 5305 l
+ 6300 5310 l gs col0 s gr gr
+
+% arrowhead
+0 slj
+n 6160 5308 m 6284 5306 l 6173 5250 l 6160 5308 l cp gs 0.00 setgray ef gr col0 s
+% Polyline
+2 slj
+gs clippath
+3120 4095 m 3120 4005 l 2974 4005 l 3094 4050 l 2974 4095 l cp
+eoclip
+n 1575 4500 m 1577 4500 l 1583 4500 l 1592 4500 l 1607 4500 l 1628 4500 l
+ 1655 4500 l 1687 4500 l 1725 4500 l 1767 4500 l 1812 4500 l
+ 1859 4500 l 1908 4500 l 1956 4500 l 2004 4500 l 2051 4500 l
+ 2095 4500 l 2138 4500 l 2178 4500 l 2216 4500 l 2251 4500 l
+ 2284 4500 l 2315 4500 l 2343 4500 l 2370 4500 l 2395 4500 l
+ 2419 4500 l 2441 4500 l 2462 4500 l 2483 4500 l 2509 4500 l
+ 2534 4500 l 2559 4500 l 2582 4500 l 2604 4499 l 2625 4498 l
+ 2645 4497 l 2664 4496 l 2681 4494 l 2697 4492 l 2712 4490 l
+ 2725 4487 l 2736 4483 l 2746 4479 l 2754 4474 l 2760 4469 l
+ 2765 4463 l 2768 4457 l 2770 4450 l 2771 4442 l 2770 4434 l
+ 2768 4425 l 2763 4413 l 2757 4400 l 2749 4385 l 2740 4369 l
+ 2729 4352 l 2717 4334 l 2704 4315 l 2691 4295 l 2676 4275 l
+ 2662 4255 l 2648 4235 l 2635 4216 l 2623 4198 l 2611 4181 l
+ 2601 4165 l 2593 4150 l 2585 4137 l 2580 4125 l 2577 4116 l
+ 2575 4108 l 2574 4100 l 2574 4093 l 2575 4087 l 2578 4081 l
+ 2581 4076 l 2586 4071 l 2592 4067 l 2598 4063 l 2606 4060 l
+ 2615 4058 l 2624 4056 l 2634 4054 l 2645 4053 l 2656 4052 l
+ 2668 4051 l 2680 4050 l 2692 4050 l 2704 4050 l 2717 4050 l
+ 2730 4050 l 2746 4050 l 2763 4050 l 2782 4050 l 2802 4050 l
+ 2823 4050 l 2847 4050 l 2874 4050 l 2903 4050 l 2934 4050 l
+ 2966 4050 l 2998 4050 l 3029 4050 l 3056 4050 l 3077 4050 l
+
+ 3105 4050 l gs col5 s gr gr
+
+% arrowhead
+0 slj
+n 2974 4095 m 3094 4050 l 2974 4005 l 2974 4095 l cp gs col7 1.00 shd ef gr col5 s
+% Polyline
+n 1350 4725 m
+ 1350 90 l gs col3 s gr
+% Polyline
+n 900 4950 m
+ 6300 4950 l gs col3 s gr
+% Polyline
+30.000 slw
+n 5190 1141 m
+ 2883 4358 l gs col5 s gr
+% Polyline
+7.500 slw
+gs clippath
+4083 660 m 4023 660 l 4023 811 l 4053 691 l 4083 811 l cp
+eoclip
+n 4053 3832 m
+ 4053 675 l gs col3 s gr gr
+
+% arrowhead
+n 4083 811 m 4053 691 l 4023 811 l 4083 811 l cp gs col3 1.00 shd ef gr col3 s
+% Polyline
+gs clippath
+6045 2730 m 6045 2670 l 5894 2670 l 6014 2700 l 5894 2730 l cp
+eoclip
+n 2475 2700 m
+ 6030 2700 l gs col3 s gr gr
+
+% arrowhead
+n 5894 2730 m 6014 2700 l 5894 2670 l 5894 2730 l cp gs col3 1.00 shd ef gr col3 s
+% Polyline
+30.000 slw
+gs clippath
+4965 5085 m 4965 4815 l 4544 4815 l 4904 4950 l 4544 5085 l cp
+eoclip
+n 4050 4950 m
+ 4950 4950 l gs col3 s gr gr
+
+% arrowhead
+n 4544 5085 m 4904 4950 l 4544 4815 l col3 s
+% Polyline
+gs clippath
+4965 2835 m 4965 2565 l 4544 2565 l 4904 2700 l 4544 2835 l cp
+eoclip
+n 4050 2700 m
+ 4950 2700 l gs col3 s gr gr
+
+% arrowhead
+n 4544 2835 m 4904 2700 l 4544 2565 l col3 s
+% Polyline
+gs clippath
+4185 1470 m 3915 1470 l 3915 1891 l 4050 1531 l 4185 1891 l cp
+eoclip
+n 4050 2700 m
+ 4050 1485 l gs col3 s gr gr
+
+% arrowhead
+n 4185 1891 m 4050 1531 l 3915 1891 l col3 s
+% Polyline
+gs clippath
+1485 1470 m 1215 1470 l 1215 1891 l 1350 1531 l 1485 1891 l cp
+eoclip
+n 1350 2700 m
+ 1350 1485 l gs col3 s gr gr
+
+% arrowhead
+n 1485 1891 m 1350 1531 l 1215 1891 l col3 s
+% Polyline
+7.500 slw
+ [60] 0 sd
+n 4950 4950 m
+ 4950 1485 l gs col3 s gr [] 0 sd
+% Polyline
+ [60] 0 sd
+n 4950 1485 m
+ 1350 1485 l gs col3 s gr [] 0 sd
+% Polyline
+ [60] 0 sd
+n 4950 1485 m
+ 4950 450 l gs col0 s gr [] 0 sd
+% Polyline
+ [60] 0 sd
+n 4950 450 m
+ 990 450 l gs col0 s gr [] 0 sd
+ [60] 0 sd
+% Ellipse
+n 4950 1485 45 45 0 360 DrawEllipse gs col3 1.00 shd ef gr gs col0 s gr
+ [] 0 sd
+ [60] 0 sd
+% Ellipse
+n 4050 4950 45 45 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
+ [] 0 sd
+ [60] 0 sd
+% Ellipse
+n 1350 2700 45 45 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr
+ [] 0 sd
+% Polyline
+ [15 15] 15 sd
+n 1350 1485 m
+ 1215 1485 l gs col3 1.00 shd ef gr gs col0 s gr [] 0 sd
+% Polyline
+ [15 15] 15 sd
+n 4950 4950 m
+ 4950 5085 l gs col3 1.00 shd ef gr gs col0 s gr [] 0 sd
+$F2psEnd
+rs
diff --git a/macros/latex/contrib/lpic/instructions-differential.pdf b/macros/latex/contrib/lpic/instructions-differential.pdf
new file mode 100644
index 0000000000..3f2cbfb6c2
--- /dev/null
+++ b/macros/latex/contrib/lpic/instructions-differential.pdf
Binary files differ
diff --git a/macros/latex/contrib/lpic/instructions.pdf b/macros/latex/contrib/lpic/instructions.pdf
new file mode 100644
index 0000000000..bcd9971690
--- /dev/null
+++ b/macros/latex/contrib/lpic/instructions.pdf
Binary files differ
diff --git a/macros/latex/contrib/lpic/instructions.tex b/macros/latex/contrib/lpic/instructions.tex
new file mode 100644
index 0000000000..4aec016772
--- /dev/null
+++ b/macros/latex/contrib/lpic/instructions.tex
@@ -0,0 +1,326 @@
+%% Copyright 2010 R. Matveyev
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is R. Matveyev.
+%
+% This work consists of the files:
+% lpic.sty instructions.tex
+% instructions.pdf instructions-differential.eps
+% instructions-differential.pdf README
+
+
+\documentclass[10pt]{amsart}
+\usepackage{lpic}
+\setlength{\topmargin}{0mm}
+\setlength{\textheight}{210mm}
+\def\cmd#1{\texttt{$\backslash$#1}}
+\let\tex=\TeX
+\let\latex=\LaTeX
+\def\pdflatex{pdf\LaTeX}
+\title{Package \texttt{lpic.sty}. \latex{} over included graphics.}
+\author{R. Matveyev}
+
+
+
+\begin{document}
+\maketitle
+
+The package \textbf{\texttt{lpic}} defines convenient interface to put any
+\latex{} material on top of included graphics.
+\latex{} material could also be rotated and typeset on top of a white
+box overshadowing graphics. Since coordinates of \latex{} boxes are
+given relative to the original, unscaled graphics, when graphics is
+rescaled, \latex{} annotations stay at their right places (unless you
+do something extreme). In a draft mode it allows to draw a coordinate
+grid over the picture for easy adjustment of positions of the annotations.
+
+\section{Usage}
+
+Package defines an environment \texttt{lpic} and \cmd{lbl}.
+The environment \vspace{2mm}\par\noindent
+\cmd{begin}\{\texttt{lpic}\}[{\sc OPTIONS}]
+ \{$<${\sc filename}$>${\sc DIMENSIONS}\}
+ \begin{quote}
+ \cmd{lbl}[{\sc POSITION}]
+ \{{\sc x-coord,y-coord[,angle];\latex{} material}\}\\
+ \vdots
+ \end{quote}
+ \cmd{end}\{\texttt{lpic}\} \vspace{2mm}\par\noindent
+produces a \tex\ box with included graphics and the \latex{} material on
+top of it.
+
+\begin{itemize}
+\item[$<${\sc filename}$>$] is a name of external
+ graphics in \texttt{PS, EPS} or \texttt{PDF} format. There is no need
+ to give the extension of the file, appropriate format will be
+ chosen, depending whether \latex{} or \pdflatex is run on the
+ document. Convention is the same as for \texttt{epsfig} package.
+ \vspace{2mm}
+\item[{\sc DIMENSIONS}] is one of the following:
+ \begin{enumerate}
+ \item empty string
+ \item \texttt{() }
+ \item \texttt{(,) }
+ \item \texttt{(X) }
+ \item \texttt{(X,) }
+ \item \texttt{(,Y) }
+ \item \texttt{(X,Y) }
+ \end{enumerate}
+ where each \texttt{X} and \texttt{Y} is either a positive decimal (with
+ decimal point, not coma!) or length (currently only numerical
+ constant lengths work). Decimal number is interpreted as a scale
+ coefficient and length is interpreted as the desired horisontal or
+ vertical dimension of the figure.
+
+ If neither \texttt{X} nor \texttt{Y} are supplied (cases 1, 2, 3), then
+ the original unscaled picture is included. If only one of \texttt{X} and
+ \texttt{Y} is given (cases 4, 5, 6), then picture is scaled
+ homotetically. If both are present (case 7), then graphics is
+ scaled vertically and horisontally, according to given parameters.\\
+ For example: \\
+ \cmd{begin}\{\texttt{lpic}\}\{\texttt{tessalation}\} -- means include
+ graphics in the file \texttt{tessalation} at the original size.\\
+ \cmd{begin}\{\texttt{lpic}\}\{\texttt{tessalation(0.5)}\} -- means
+ include graphics at the half the original size.\\
+ \cmd{begin}\{\texttt{lpic}\}\{\texttt{tessalation(0.5,3)}\} -- means
+ include graphics shrinking twice in the horisontal direction and
+ stretching 3 times in the vertical direction.\\
+ \cmd{begin}\{\texttt{lpic}\}\{\texttt{tessalation(,10cm)}\} -- include
+ graphics homotetically scaled, so that height is equal to 10cm.\\
+ \cmd{begin}\{\texttt{lpic}\}\{\texttt{tessalation(150mm)}\} -- include
+ graphics homotetically scaled, so that width is equal to 150mm.\\
+ \cmd{begin}\{\texttt{lpic}\}\{\texttt{tessalation(150mm,0.7)}\} --
+ include graphics scaled, so that width is equal to 150mm and
+ height is 0.7 of the original.
+
+ \vspace{2mm}
+ \item[\sc OPTIONS] is a coma separated list of options (no spaces).
+ Option are processed
+ sequentially, thus options to the right override preceding ones.
+ Parameter in \texttt{()} is optional, if omitted then some default
+ value is taken.
+
+ Options are:
+ \item[\texttt{l(length)}] -- the size of the left margin beyond
+ bounding box of graphics (default
+ 0mm). Negative values are also acceptable.
+ \item[\texttt{r(length)}] - right margin
+ \item[\texttt{t(lenght)}] - top margin
+ \item[\texttt{b(length)}] -- bottom margin
+ \item[\texttt{grid(step)}] -- Draw a grid over the picture of
+ step \texttt{step*}\cmd{lpunitlength} and
+ thickness \cmd{lpgridthickness}. Parameter
+ \texttt{step} must be an integer and defaults to 5.
+ \item[\texttt{coords(step)}] -- write coordinates with the step
+ \texttt{step*}\cmd{lpunitlength}. Parameter step
+ must be an integer and defaults to 10.
+ \item[\texttt{frames(length)}] -- draw boxes of thickness {\tt
+ length} over \latex{} material. Default value is
+ 0.01mm
+ \item[\texttt{frame(length)}] -- draw a box around the whole
+ thing (margins included). \texttt{length} is the
+ thickness of the lines. Default value is
+ 0.7mm.
+ \item[\texttt{figframe(length)}] -- draw a box around the
+ included graphics. \texttt{length} is the
+ thickness of the lines. Default value is
+ 0.2mm.
+ \item[\texttt{draft}] -- draw whatever is convenient for
+ adjusting the positions of \latex{}
+ material. That includes grid, coordinates, all
+ types of frames.
+ \item[\texttt{clean}] -- remove all auxiliary stuff.
+ \item[\texttt{nolbl}] -- don't typeset any \latex{} material.
+ \item[\texttt{nofigure}] -- don't include the graphics, just an
+ empty box of appropriate size
+
+\end{itemize}
+ \vspace{2mm}\par\noindent
+ Inside of \texttt{lpic} environment one can issue \cmd{lbl} command
+ with the following syntax:\vspace{2mm}\par
+ \texttt{\cmd{lbl}[{\sc OPTIONS}]%
+ \{{\sc COORDINATES; any \latex{} material}\}}
+ \vspace{2mm}\par\noindent
+ \latex{} material is put in a box, rotated if necessary and printed
+ in appropriate place. White rectangular background, which overshadows part of graphics could also be created.
+
+\begin{itemize}
+\item[\sc COORDINATES] are either pair or a triple of decimals. The
+ first two numbers are coordinates of the point, where \latex{} material
+ should be placed and the third is an angle of rotation applied to
+ the box containing the material. Coordinates are measured in the
+ coordinate system in the original, unscaled picture, with the unit
+ equal to \cmd{lpunitlength} (default 1mm). So, if the picture is
+ scaled, all the boxes containing \latex{} will hopefully stay at their
+ appropriate places.
+\item[\sc OPTIONS] is optional and consists of at most three letters,
+ one from the set {\tt\{t,b\}}, one from {\tt\{r,l\}} and one from {\tt\{w,W\}}
+ in any
+ order. \texttt{[t$|$b,l$|$r]} options give a reference point in a box containing \latex{}
+ text. Coordinates refer to this reference point. Rotation is also
+ centered at this point. Thus, there are total 9 possibilities
+ referring to 9 evenly spaced points in the rectangle.
+ If one of \texttt{[w$|$W]} is given then \latex is put on top of white box.
+ The size of the box is equal to the size of the box containing the material in case of \texttt{w}
+ and margins \cmd{lpbgsep}-wide are added in case of \texttt{W}.
+ Note that \texttt{xdvi} apparently renders postscript after dvi, so any postscript covers dvi material.
+ Thus, if you use background, you will not be able to see your \latex{} in \texttt{xdvi}.
+ but once postscript file is created, \latex{} will show.
+\end{itemize}
+
+
+\section{ADJUSTABLE PARAMETERS}
+
+ \begin{itemize}
+ \item[\cmd{lpunitlength}] (1mm) Units in the unscaled coordinate
+ system.
+ \item[\cmd{lpmarginright}] (0mm)
+ \item[\cmd{lpmarginleft}] (0mm)
+ \item[\cmd{lpmargintop}] (0mm)
+ \item[\cmd{lpmarginbottom}] (0mm) Default sizes of margins.
+ \item[\cmd{lpbgsep}] (\cmd{fboxsep}) Margins for the white background.
+ \item[\cmd{lpgridthickness}] (0.01mm) Thickness of the grid lines.
+ \item[\cmd{lpframethickness}] (0.7mm) Thickness of the frame around
+ the whole box.
+ \item[\cmd{lplblframethickness}] (0.01mm) Thickness of the frame
+ around labels.
+ \item[\cmd{lpfigframethickness}] (0.2mm) Thickness of the frame
+ around included graphics.
+ \item[\tt lpgridstep] (5) Counter containing the step to draw grid lines
+ \item[\tt lpcoordstep] (10) Counter containing the step to draw coordinates
+ \end{itemize}
+
+\newpage
+\section{Example}
+\def\T{\operatorname{\mathrm T}}
+\def\d{\operatorname{\mathrm d}}
+\def\o{\ensuremath{\text{\tiny$\operatorname{\mathcal O}$}}}
+\def\R{\mathbb R}
+
+Provided the file \texttt{instructions-differential.eps} or \texttt{instructions-differential.pdf}
+contains the graphics one can include it in the document, drawing a
+grid and putting \latex{} on top of it.
+
+\begin{verbatim}
+\begin{lpic}[l(10mm),r(5mm),t(5mm),b(10mm),draft]{instructions-differential(0.7,0.6)}
+\lbl[t]{80,9;$x_0$}
+\lbl[b]{87,11;$\delta x$}
+\lbl[t]{101,7,-7;$x_0+\delta x$}
+\lbl[b]{120,11;$\T_{x_0}X$}
+\lbl[t]{88,59;$\delta x$}
+\lbl[b]{120,61;$\T_{x_0}X$}
+\lbl[tl]{120,3,-10;$X=\R$}
+\lbl[r]{79,74;$\d f(\delta x)$}
+\lbl[r]{79,102;$\T_{f(x_0)}Y$}
+\lbl[lb]{21,115;$\T_{f(x_0)}Y$}
+\lbl[l]{22,74;$\d f(\delta x)$}
+\lbl[r]{16,88;$f(x_0)+\d f(\delta x)$}
+\lbl[r]{19,60;$f(x_0)$}
+\lbl[r]{11,110;$f(x_0+\delta x)$}
+\lbl[l]{42,99;$\o(\delta x)$}
+\lbl[b]{10,121;$Y=\R$}
+\lbl[br]{47,21;Graph of $\d f$}
+\lbl[bl]{26,36,13;Graph of $y=f(x)$}
+\end{lpic}
+\end{verbatim}
+
+\vspace{5mm}
+
+\begin{lpic}[l(10mm),r(5mm),t(5mm),b(10mm),draft]{instructions-differential(0.7,0.6)}
+\lbl[t]{80,9;$x_0$}
+\lbl[b]{87,11;$\delta x$}
+\lbl[t]{101,7,-7;$x_0+\delta x$}
+\lbl[b]{120,11;$\T_{x_0}X$}
+\lbl[t]{88,59;$\delta x$}
+\lbl[b]{120,61;$\T_{x_0}X$}
+\lbl[tl]{120,3,-10;$X=\R$}
+\lbl[r]{79,74;$\d f(\delta x)$}
+\lbl[r]{79,102;$\T_{f(x_0)}Y$}
+\lbl[lb]{21,115;$\T_{f(x_0)}Y$}
+\lbl[l]{22,74;$\d f(\delta x)$}
+\lbl[r]{16,88;$f(x_0)+\d f(\delta x)$}
+\lbl[r]{19,60;$f(x_0)$}
+\lbl[r]{11,110;$f(x_0+\delta x)$}
+\lbl[l]{42,99;$\o(\delta x)$}
+\lbl[b]{10,121;$Y=\R$}
+\lbl[br]{47,21;Graph of $\d f$}
+\lbl[bl]{26,36,13;Graph of $y=f(x)$}
+\end{lpic}
+
+\vspace{5mm}
+When all label on the picture are adjusted one can get a ``clean''
+picture by either removing \texttt{draft} option or adding \texttt{clean}.
+
+\begin{verbatim}
+\begin{lpic}[l(10mm),r(5mm),t(5mm),b(10mm),draft,clean]{instructions-differential(0.7,0.6)}
+...
+\end{lpic}
+\end{verbatim}
+
+\begin{lpic}[l(10mm),r(5mm),t(5mm),b(10mm),draft,clean]{instructions-differential(0.7,0.6)}
+\lbl[t]{80,9;$x_0$}
+\lbl[b]{87,11;$\delta x$}
+\lbl[t]{101,7,-7;$x_0+\delta x$}
+\lbl[b]{120,11;$\T_{x_0}X$}
+\lbl[t]{88,59;$\delta x$}
+\lbl[b]{120,61;$\T_{x_0}X$}
+\lbl[tl]{120,3,-10;$X=\R$}
+\lbl[r]{79,74;$\d f(\delta x)$}
+\lbl[r]{79,102;$\T_{f(x_0)}Y$}
+\lbl[lb]{21,115;$\T_{f(x_0)}Y$}
+\lbl[l]{22,74;$\d f(\delta x)$}
+\lbl[r]{16,88;$f(x_0)+\d f(\delta x)$}
+\lbl[r]{19,60;$f(x_0)$}
+\lbl[r]{11,110;$f(x_0+\delta x)$}
+\lbl[l]{42,99;$\o(\delta x)$}
+\lbl[b]{10,121;$Y=\R$}
+\lbl[br]{47,21;Graph of $\d f$}
+\lbl[bl]{26,36,13;Graph of $y=f(x)$}
+\end{lpic}
+
+Now if the picture is rescaled, \latex{} boxes also shift to
+appropriate positions. However, the angles are the visible angles in
+the final output and
+sometimes they have to be adjusted after rescaling of the included graphics.
+\begin{verbatim}
+\begin{lpic}[l(10mm),r(5mm),t(5mm),b(10mm),draft,clean]{instructions-differential(0.8,0.4)}
+...
+\end{lpic}
+\end{verbatim}
+
+\begin{lpic}[l(10mm),r(5mm),t(5mm),b(10mm),draft,clean]{instructions-differential(0.8,0.4)}
+\lbl[t]{80,9;$x_0$}
+\lbl[b]{87,11;$\delta x$}
+\lbl[t]{101,7,-7;$x_0+\delta x$}
+\lbl[b]{120,11;$\T_{x_0}X$}
+\lbl[t]{88,59;$\delta x$}
+\lbl[b]{120,61;$\T_{x_0}X$}
+\lbl[tl]{120,3,-10;$X=\R$}
+\lbl[r]{79,74;$\d f(\delta x)$}
+\lbl[r]{79,102;$\T_{f(x_0)}Y$}
+\lbl[lb]{21,115;$\T_{f(x_0)}Y$}
+\lbl[l]{22,74;$\d f(\delta x)$}
+\lbl[r]{16,88;$f(x_0)+\d f(\delta x)$}
+\lbl[r]{19,60;$f(x_0)$}
+\lbl[r]{11,110;$f(x_0+\delta x)$}
+\lbl[l]{42,99;$\o(\delta x)$}
+\lbl[b]{10,121;$Y=\R$}
+\lbl[br]{47,21;Graph of $\d f$}
+\lbl[bl]{26,36,13;Graph of $y=f(x)$}
+\end{lpic}
+
+
+\vspace{5mm}
+
+\end{document}
+
+
diff --git a/macros/latex/contrib/lpic/lpic.sty b/macros/latex/contrib/lpic/lpic.sty
new file mode 100644
index 0000000000..923f44e8e9
--- /dev/null
+++ b/macros/latex/contrib/lpic/lpic.sty
@@ -0,0 +1,724 @@
+%% lpic.sty
+%% Copyright 2010 R. Matveyev
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is R. Matveyev.
+%
+% This work consists of the files:
+% lpic.sty instructions.tex
+% instructions.pdf instructions-differential.eps
+% instructions-differential.pdf README
+
+% lpic.sty V0.8, 23.12.2010
+%
+
+\ProvidesPackage{lpic}
+ [2010/12/23, version 0.8]
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{epsfig}
+\RequirePackage{rotating}
+\RequirePackage{calc}
+\RequirePackage{ifthen}
+\RequirePackage{color}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% debugging stuff
+%
+
+\newcommand{\lp@skipthis}[1]{\relax}
+\newcommand{\lp@msg}[1]{\message{^^J! lpic message: #1^^J}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Counters, lengths, boxes
+%
+
+% Adjustable parameters
+\newlength{\lpunitlength}\setlength{\lpunitlength}{1mm}
+
+\newlength{\lpmarginright}\setlength{\lpmarginright}{0mm}
+\newlength{\lpmarginleft}\setlength{\lpmarginleft}{0mm}
+\newlength{\lpmargintop}\setlength{\lpmargintop}{0mm}
+\newlength{\lpmarginbottom}\setlength{\lpmarginbottom}{0mm}
+
+\newlength{\lpbgboxsep}\setlength{\lpbgboxsep}{\fboxsep}
+
+\newlength{\lpgridthickness}\setlength{\lpgridthickness}{0.01mm}
+\newlength{\lpframethickness}\setlength{\lpframethickness}{0.7mm}
+\newlength{\lplblframethickness}\setlength{\lplblframethickness}{0.01mm}
+\newlength{\lpfigframethickness}\setlength{\lpfigframethickness}{0.2mm}
+
+\newcounter{lpgridstep}\setcounter{lpgridstep}{5}
+\newcounter{lpcoordstep}\setcounter{lpcoordstep}{10}
+
+% Internal parameters
+\newlength{\lp@marginright}
+\newlength{\lp@marginleft}
+\newlength{\lp@margintop}
+\newlength{\lp@marginbottom}
+\newlength{\lp@xsizeorig}
+\newlength{\lp@ysizeorig}
+\newlength{\lp@xtotalsizeorig}
+\newlength{\lp@ytotalsizeorig}
+\newlength{\lp@gridstep}
+\newlength{\lp@coordstep}
+\newlength{\lp@coordx}
+\newlength{\lp@coordy}
+
+\newcounter{lp@xtotalsize}
+\newcounter{lp@ytotalsize}
+\newcounter{lp@xorigin}
+\newcounter{lp@yorigin}
+\newcounter{lp@coordx}
+\newcounter{lp@coordy}
+
+\newsavebox{\lp@pictbox} %box to save (ps or pdf)-figure
+
+% Temp stuff
+\newlength{\lp@tmpa}
+\newlength{\lp@tmpb}
+\newlength{\lp@tmpc}
+\newlength{\lp@tmpd}
+\newlength{\lp@tmpx}
+\newlength{\lp@tmpy}
+\newlength{\lp@tmpdx}
+\newlength{\lp@tmpdy}
+
+\newcounter{lp@tmpa}
+\newcounter{lp@tmpb}
+\newcounter{lp@tmpc}
+\newcounter{lp@tmpd}
+\newcounter{lp@tmpe}
+\newcounter{lp@tmpf}
+\newcounter{lp@tmpx}
+\newcounter{lp@tmpy}
+\newcounter{lp@tmpdx}
+\newcounter{lp@tmpdy}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Procedure to check whether argument is a number or length
+% we need a way to check whether given argument is a number or
+% length \lp@ifnumber{arg}{true cmds}{false cmds}
+
+\def\lp@substring#1 in #2;%
+ {%
+ \def\lp@check##1#1##2ENDOFTHEARGS%
+ {\edef\lp@foundsubstring{\lp@foundsubstring##2}}%
+ \expandafter\lp@check#2#1ENDOFTHEARGS%
+ }
+
+\def\lp@ifsubstring#1 in #2;#3#4%
+ {%
+ \edef\lp@foundsubstring{}%
+ \lp@substring #1 in #2;%
+ \ifthenelse{\equal{x}{x\lp@foundsubstring}}{#4}{#3}%
+ }
+
+\newcommand{\lp@ifnumber}[3]%
+ {%
+ \edef\lp@foundsubstring{}%
+ \lp@substring pt in #1;%
+ \lp@substring pc in #1;%
+ \lp@substring in in #1;%
+ \lp@substring bp in #1;%
+ \lp@substring cm in #1;%
+ \lp@substring mm in #1;%
+ \lp@substring dd in #1;%
+ \lp@substring cc in #1;%
+ \lp@substring sp in #1;%
+ \lp@substring em in #1;%
+ \lp@substring ex in #1;%
+ \ifthenelse{\equal{\lp@foundsubstring}{}}{#2}{#3}%
+ }
+
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Save scaled picture in \lp@pictbox, calculate its sizes, calculate
+% sizes and the origin of the whole picture box and define procedure
+% for calculating coordinates
+% \lp@dimens defines \lp@xtotalsize!, \lp@ytotalsize!, \lp@xorig!,
+% \lp@yorig!, \lp@xcoord{original_length_in_\lp@units},
+% \lp@ycoord{original_length_in_\lp@units}
+%
+
+\newcommand{\lp@dimens}
+{%
+ % Save unscaled pict and calculate sizes
+ \sbox{\lp@pictbox}{\epsfig{figure=\lp@epsfile}}%
+ \settowidth{\lp@xsizeorig}{\usebox{\lp@pictbox}}% Original x-size
+ \settoheight{\lp@ysizeorig}{\usebox{\lp@pictbox}}% Original y-size
+ %
+ % Are we given absolute dimensions or scale coefficients?
+ \ifthenelse{\equal{\lp@xscale}{}}%
+ % x scale is not given
+ {%
+ %\lp@msg{x=\lp@xscale, y=\lp@yscale}
+ \ifthenelse{\equal{\lp@yscale}{}}
+ % x - no, y - no
+ {%
+ \edef\lp@xnum{1cm}\edef\lp@xdenom{1cm}%
+ \edef\lp@ynum{1cm}\edef\lp@ydenom{1cm}%
+ }%
+ % x - no, y - yes
+ {%
+ \lp@ifnumber{\lp@yscale}
+ {%
+ \edef\lp@ynum{\lp@yscale cm}\edef\lp@ydenom{1cm}%
+ \edef\lp@xnum{\lp@yscale cm}\edef\lp@xdenom{1cm}%
+ }%
+ {%
+ \edef\lp@ynum{\lp@yscale}\def\lp@ydenom{\lp@ysizeorig}%
+ \edef\lp@xnum{\lp@yscale}\def\lp@xdenom{\lp@ysizeorig}%
+ }%
+ }%
+ }%
+ % x is given
+ {%
+ \ifthenelse{\equal{\lp@yscale}{}}
+ % x - yes, y - no
+ {%
+ \lp@ifnumber{\lp@xscale}
+ {%
+ \edef\lp@ynum{\lp@xscale cm}\edef\lp@ydenom{1cm}%
+ \edef\lp@xnum{\lp@xscale cm}\edef\lp@xdenom{1cm}%
+ }%
+ {%
+ \edef\lp@ynum{\lp@xscale}\def\lp@ydenom{\lp@xsizeorig}%
+ \edef\lp@xnum{\lp@xscale}\def\lp@xdenom{\lp@xsizeorig}%
+ }%
+ }%
+ % x - yes, y - yes
+ {%
+ \lp@ifnumber{\lp@xscale}
+ {%
+ \edef\lp@xnum{\lp@xscale cm}\edef\lp@xdenom{1cm}%
+ }
+ {%
+ \edef\lp@xnum{\lp@xscale}\def\lp@xdenom{\lp@xsizeorig}%
+ }
+ \lp@ifnumber{\lp@yscale}
+ {%
+ \edef\lp@ynum{\lp@yscale cm}\edef\lp@ydenom{1cm}%
+ }
+ {%
+ \edef\lp@ynum{\lp@yscale}\def\lp@ydenom{\lp@ysizeorig}%
+ }%
+
+ }%
+ }%
+ %\lp@msg{xscale=\lp@xnum/\lp@xdenom, yscale=\lp@ynum/\lp@ydenom}
+ \setlength{\lp@tmpx}{\lp@xsizeorig * \ratio{\lp@xnum}{\lp@xdenom}}% x-size in the doc
+ \setlength{\lp@tmpy}{\lp@ysizeorig * \ratio{\lp@ynum}{\lp@ydenom}}% y-size in the doc
+ % Save scaled picture
+ \sbox{\lp@pictbox}%
+ {\epsfig{figure=\lp@epsfile, width=\lp@tmpx, height=\lp@tmpy}}%
+ % Calculate sizes and coordinates of the origin of the whole pict
+ \setlength{\lp@tmpa}{\lp@tmpx + \lpmarginleft + \lpmarginright}%
+ \setcounter{lp@xtotalsize}{\lp@tmpa / \unitlength}%
+ \def\lp@xtotalsize{\value{lp@xtotalsize}}%
+ \setlength{\lp@tmpa}{\lp@tmpy + \lpmargintop + \lpmarginbottom}%
+ \setcounter{lp@ytotalsize}{\lp@tmpa / \unitlength}%
+ \def\lp@ytotalsize{\value{lp@ytotalsize}}%
+ \setcounter{lp@xorigin}{-\lpmarginleft / \unitlength}%
+ \def\lp@xorigin{\value{lp@xorigin}}%
+ \setcounter{lp@yorigin}{-\lpmarginbottom / \unitlength}%
+ \def\lp@yorigin{\value{lp@yorigin}}%
+ % Redefine margins in units of the original
+ \setlength{\lp@marginleft}{\lpmarginleft / \ratio{\lp@xnum}{\lp@xdenom}}%
+ \setlength{\lp@marginright}{\lpmarginright / \ratio{\lp@xnum}{\lp@xdenom}}%
+ \setlength{\lp@margintop}{\lpmargintop / \ratio{\lp@ynum}{\lp@ydenom}}%
+ \setlength{\lp@marginbottom}{\lpmarginbottom / \ratio{\lp@ynum}{\lp@ydenom}}%
+ \setlength{\lp@xtotalsizeorig}%
+ {\lp@xsizeorig + \lp@marginleft + \lp@marginright}%
+ \setlength{\lp@ytotalsizeorig}%
+ {\lp@ysizeorig + \lp@margintop + \lp@marginbottom}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Define \lp@put(x,y)[position]{object}
+% \lp@multiput(x,y)(deltax,deltay)[position]{count}{object}
+% where (x,y)(deltax,deltay) are lengths in the original unscaled eps
+% picture.
+%
+\def\lp@put(#1,#2)[#3]#4%
+{{%
+ \setlength{\lp@tmpx}{( #1 ) * \ratio{\lp@xnum}{\lp@xdenom}}%
+ \setlength{\lp@tmpy}{( #2 ) * \ratio{\lp@ynum}{\lp@ydenom}}%
+ \setcounter{lp@tmpx}{\lp@tmpx / \unitlength}%
+ \setcounter{lp@tmpy}{\lp@tmpy / \unitlength}%
+ \put(\value{lp@tmpx},\value{lp@tmpy})%
+ {\makebox(0,0)[#3]{#4}}%
+}}
+
+\def\lp@multiput(#1,#2)(#3,#4)(#5)[#6]#7%
+{{%
+ \setlength{\lp@tmpx}{( #1 ) * \ratio{\lp@xnum}{\lp@xdenom}}%
+ \setlength{\lp@tmpy}{( #2 ) * \ratio{\lp@ynum}{\lp@ydenom}}%
+ \setcounter{lp@tmpx}{\lp@tmpx / \unitlength}%
+ \setcounter{lp@tmpy}{\lp@tmpy / \unitlength}%
+ \setlength{\lp@tmpdx}{( #3 ) * \ratio{\lp@xnum}{\lp@xdenom}}%
+ \setlength{\lp@tmpdy}{( #4 ) * \ratio{\lp@ynum}{\lp@ydenom}}%
+ \setcounter{lp@tmpdx}{\lp@tmpdx / \unitlength}%
+ \setcounter{lp@tmpdy}{\lp@tmpdy / \unitlength}%
+ \multiput(\value{lp@tmpx},\value{lp@tmpy})%
+ (\value{lp@tmpdx},\value{lp@tmpdy})%
+ {#5}%
+ {\makebox(0,0)[#6]{#7}}%
+}}
+
+\def\lp@hline#1%
+{{%
+ \setlength{\lp@tmpa}{#1}%
+ \setlength{\lp@tmpa}{\lp@tmpa * \ratio{\lp@xnum}{\lp@xdenom}}%
+ \setcounter{lp@tmpa}{\lp@tmpa / \unitlength}%
+ \line(1,0){\value{lp@tmpa}}%
+}}
+
+\def\lp@vline#1%
+{{%
+ \setlength{\lp@tmpa}{#1}%
+ \setlength{\lp@tmpa}{\lp@tmpa * \ratio{\lp@ynum}{\lp@ydenom}}%
+ \setcounter{lp@tmpa}{\lp@tmpa / \unitlength}%
+ \line(0,1){\value{lp@tmpa}}%
+}}
+
+% \lp@put.....
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Drawing commands
+%
+
+% \lp@pictframecmd draws a frame around all of the picture including
+% margins. \lpframethickness -- thickness of the lines
+\newcommand{\lp@pictframecmd}
+{\begingroup%
+ \linethickness{\lpframethickness}%
+ \lp@put(-\lp@marginleft,-\lp@marginbottom)[l]
+ {\lp@hline{\lp@xsizeorig+\lp@marginleft+\lp@marginright}}%
+ \lp@put(-\lp@marginleft,-\lp@marginbottom)[b]
+ {\lp@vline{\lp@ysizeorig+\lp@margintop+\lp@marginbottom}}%
+ \lp@put(\lp@xsizeorig+\lp@marginright,\lp@ysizeorig+\lp@margintop)[r]
+ {\lp@hline{\lp@xsizeorig+\lp@marginleft+\lp@marginright}}%
+ \lp@put(\lp@xsizeorig+\lp@marginright,\lp@ysizeorig+\lp@margintop)[t]
+ {\lp@vline{\lp@ysizeorig+\lp@margintop+\lp@marginbottom}}%
+\endgroup}
+
+% \lp@gridcmd draws a grid with the step \value{lpgridstep} x
+% \lpunitlength wrt original and lines \lpgridthickness thick
+\newcommand{\lp@gridcmd}
+{%
+\begingroup%
+ \linethickness{\lpgridthickness} %
+ \setlength{\lp@gridstep}{\lpunitlength * \value{lpgridstep}}%
+ \setcounter{lp@tmpa}{\lp@marginleft / \lp@gridstep}%
+ \setlength{\lp@tmpa}{-\lp@gridstep * \value{lp@tmpa}}%
+ \setcounter{lp@tmpb}
+ {(\lp@xsizeorig-\lp@tmpa+\lp@marginright ) / %
+ \lp@gridstep + 1}%
+ \lp@multiput(\lp@tmpa,-\lp@marginbottom)%
+ (\lp@gridstep,0mm)%
+ (\value{lp@tmpb})%
+ [b]%
+ {\lp@vline{\lp@ysizeorig+\lp@margintop+\lp@marginbottom}}%
+ \setcounter{lp@tmpa}{\lp@marginbottom / \lp@gridstep}%
+ \setlength{\lp@tmpa}{-\lp@gridstep * \value{lp@tmpa}}%
+ \setcounter{lp@tmpb}
+ {(\lp@ysizeorig-\lp@tmpa+\lp@margintop ) / %
+ \lp@gridstep + 1}%
+ \lp@multiput(-\lp@marginleft,\lp@tmpa)%
+ (0mm,\lp@gridstep)%
+ (\value{lp@tmpb})%
+ [l]%
+ {\lp@hline{\lp@xsizeorig+\lp@marginleft+\lp@marginright}}%
+\endgroup%
+}
+
+% \lp@coordscmd draws coordinates on all four sides of the picture
+% with the step \lpunitlength * \value{lpcoordstep}
+\newcommand{\lp@coordscmd}
+{\begingroup%
+ \setlength{\lp@coordstep}{\lpunitlength * \value{lpcoordstep}}%
+ \setcounter{lp@tmpa}{\lp@marginleft / \lp@coordstep}
+ \setlength{\lp@tmpa}{-\lp@coordstep * \value{lp@tmpa}}
+ \setcounter{lp@tmpb}
+ {(\lp@xsizeorig-\lp@tmpa+\lp@marginright) / \lp@coordstep+1}
+ \setcounter{lp@tmpc}{\lp@tmpa / \lpunitlength}
+ \lp@multiput(\lp@tmpa,-\lp@marginbottom-\lpframethickness-0.1mm)%
+ (\lp@coordstep,0mm)%
+ (\value{lp@tmpb})%
+ [t]%
+ {%
+ {\tiny\bf\arabic{lp@tmpc}}%
+ \addtocounter{lp@tmpc}{\value{lpcoordstep}}%
+ }%
+ \setcounter{lp@tmpc}{\lp@tmpa / \lpunitlength}
+ \lp@multiput(\lp@tmpa,\lp@ysizeorig+\lp@margintop+\lpframethickness)%
+ (\lp@coordstep,0mm)%
+ (\value{lp@tmpb})%
+ [b]%
+ {%
+ {\tiny\bf\arabic{lp@tmpc}}%
+ \addtocounter{lp@tmpc}{\value{lpcoordstep}}%
+ }%
+ \setcounter{lp@tmpa}{\lp@marginbottom / \lp@coordstep}
+ \setlength{\lp@tmpa}{-\lp@coordstep * \value{lp@tmpa}}
+ \setcounter{lp@tmpb}
+ {(\lp@ysizeorig-\lp@tmpa+\lp@margintop)/\lp@coordstep+1}
+ \setcounter{lp@tmpc}{\lp@tmpa / \lpunitlength}
+ \lp@multiput(-\lp@marginleft-\lpframethickness,\lp@tmpa)%
+ (0mm,\lp@coordstep)%
+ (\value{lp@tmpb})%
+ [r]%
+ {%
+ {\tiny\bf\arabic{lp@tmpc}}%
+ \addtocounter{lp@tmpc}{\value{lpcoordstep}}%
+ }%
+ \setcounter{lp@tmpc}{\lp@tmpa / \lpunitlength}
+ \lp@multiput(\lp@xsizeorig+\lp@marginright+\lpframethickness,\lp@tmpa)%
+ (0mm,\lp@coordstep)%
+ (\value{lp@tmpb})%
+ [l]%
+ {%
+ {\tiny\bf\arabic{lp@tmpc}}%
+ \addtocounter{lp@tmpc}{\value{lpcoordstep}}%
+ }%
+\endgroup}
+
+
+% \lp@lblframecmd draws a frame around each label \lplblframethickness
+% thick
+\newcommand{\lp@lblframecmd}[1]
+{\begingroup%
+ \setlength{\linethickness}{\lplblframethickness}%
+ \frame{#1}%
+\endgroup}
+
+% \lp@figframecmd draws a frame around eps figure \lpfigframethickness
+% thick
+\newcommand{\lp@figframecmd}[1]
+{\begingroup%
+ \setlength{\linethickness}{\lpfigframethickness}%
+ \frame{#1}%
+\endgroup}
+
+%
+\newcommand{\lp@putepsfigurecmd}
+{%
+ \put(0,0){\makebox(0,0)[bl]{\lp@figframe{\usebox{\lp@pictbox}}}}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% options
+
+% Print nothing but the picture and labels
+\def\lpopt@clean
+{%
+ \let\lp@lblframe=\relax%
+ \let\lp@figframe=\relax%
+ \let\lp@pictframe=\relax%
+ \let\lp@coords=\relax%
+ \let\lp@grid=\relax%
+ \let\lbl=\lbl@cmd%
+ \let\lp@putepsfigure=\lp@putepsfigurecmd%
+}
+
+% Set margins
+\def\lpopt@l#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setlength{\lpmarginleft}{#1}}
+ {}%
+}
+\def\lpopt@r#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setlength{\lpmarginright}{#1}}
+ {}%
+}
+\def\lpopt@t#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setlength{\lpmargintop}{#1}}
+ {}%
+}
+\def\lpopt@b#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setlength{\lpmarginbottom}{#1}}
+ {}%
+}
+
+% Print frame around whole picture margins included
+\def\lpopt@frame#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setlength{\lpframethickness}{#1}}{}%
+\let\lp@pictframe=\lp@pictframecmd%
+}
+
+% Print frame around eps figure
+\def\lpopt@figframe#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setlength{\lpfigframethickness}{#1}}{}%
+ \let\lp@figframe=\lp@figframecmd%
+}
+
+% Draw frames around labels
+\def\lpopt@frames#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setlength{\lplblframethickness}{#1}}{}%
+ \let\lp@lblframe=\lp@lblframecmd%
+}
+
+% Write coordinates on all four sides of the picture
+% argument=step
+\def\lpopt@coords#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setcounter{lpcoordstep}{#1}}{}%
+ \let\lp@coords=\lp@coordscmd%
+}
+
+% Draw a grid, argument=step
+\def\lpopt@grid#1%
+{%
+ \ifthenelse{\not\equal{#1}{}}
+ {\setcounter{lpgridstep}{#1}}{}%
+ \let\lp@grid=\lp@gridcmd%
+}
+
+% Ignore all the labels
+\def\lpopt@nolbl{\renewcommand{\lbl}[2][]{\relax}}
+
+% Don't insert epsfigure
+\def\lpopt@nofigure{\let\lp@putepsfigure=\relax}
+
+% Draw what is usually convenient for adjusting the labels
+\def\lpopt@draft
+{%
+\lpopt@figframe{}\relax%
+\lpopt@frame{}\relax%
+\lpopt@coords{}\relax%
+\lpopt@grid{}\relax%
+\lpopt@frames{}\relax%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Option processing commands
+%
+%
+
+% Should be called \exec@option{name(arg)} or
+% \exec@option{name}. It executes \name and passes
+% arg if present as an argument.
+% That is \name should have at most one argument.
+
+\def\exec@optionmisc#1(#2)#3ENDOFTHEARGS%
+{%
+ \csname#1\endcsname{#2}\relax%
+}
+\newcommand{\exec@option}[1]
+{%
+ \exec@optionmisc#1()ENDOFTHEARGS%
+}
+
+
+% Called with a coma-separated list of options, and then executes
+% each ``name'' prefixed with the value of \option@prefix. It passes
+% this command the argument if present. Each option is either
+% ``name'' or ``name(arg)''. ``arg'' should not contain comas or
+% should be enclosed in {}.
+\def\process@optionsmisc#1,#2ENDOFTHEARGS%
+{%
+ %\lp@msg{1=#1, 2=#2}
+ \ifthenelse{\not\equal{#1}{}}%
+ {%
+ \exec@option{\option@prefix#1}%
+ \process@optionsmisc#2ENDOFTHEARGS%
+ }%
+ {}%
+}
+\newcommand\process@options[1]
+{%
+ \process@optionsmisc#1,,ENDOFTHEARGS%
+}
+
+
+% Next command process ``filename'' argument.
+% Defines \lp@epsfile, \lp@xscale, \lp@yscale
+% Syntaxis is one of the following
+% \lp@getscaleandfile{FILE}
+% \lp@getscaleandfile{FILE()}
+% \lp@getscaleandfile{FILE(,)}
+% \lp@getscaleandfile{FILE(x)}
+% \lp@getscaleandfile{FILE(x,)}
+% \lp@getscaleandfile{FILE(,y)}
+% \lp@getscaleandfile{FILE(x,y)}
+
+\def\lp@getname#1(#2ENDOFTHEARGS{\edef\lp@epsfile{#1}\edef\lp@string{#2}}
+\def\lp@getscales#1)#2ENDOFTHEARGS{\edef\lp@string{#1}}
+\def\lp@getxscale#1,#2ENDOFTHEARGS{\edef\lp@xscale{#1}\edef\lp@string{#2}}
+\def\lp@getyscale#1,#2ENDOFTHEARGS{\edef\lp@yscale{#1}\edef\lp@string{#2}}
+
+\def\lp@getscaleandfile#1%
+{%
+ \edef\lp@epsfile{}%
+ \edef\lp@xscale{}%
+ \edef\lp@yscale{}%
+ \edef\lp@string{#1}%
+ \expandafter\lp@getname\lp@string(ENDOFTHEARGS%
+ \expandafter\lp@getscales\lp@string)ENDOFTHEARGS%
+ \expandafter\lp@getxscale\lp@string,ENDOFTHEARGS%
+ \expandafter\lp@getyscale\lp@string,ENDOFTHEARGS%
+ %\lp@msg{file=\lp@epsfile, x=\lp@xscale, y=\lp@yscale}%
+}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \begin{lpic}[coma separated options]{filename[(xscale[,yscale])]},
+% \lbl[position]{xcoord,ycoord;object}
+% ....
+% \end{lpic}
+% Where options are clean, draft, grid, frame, frames, coords, nolbl
+% Position is at most two of the following t,b,l,r
+\newenvironment{lpic}[2][clean]
+{\begingroup%
+ %Process options
+ \edef\option@prefix{lpopt@}%
+ \setlength{\unitlength}{1sp}%
+ \lpopt@clean%
+ \process@options{#1}%
+ % read scale and filename from the second argument
+ \expandafter\lp@getscaleandfile{#2}%
+ % Calculate parameters
+ \lp@dimens%
+ % Start picture environment
+ \begin{picture}(\lp@xtotalsize,\lp@ytotalsize)
+ (\lp@xorigin,\lp@yorigin)%
+ %insert picture. We do it before any LaTeX, so that white bg rectangles are on top
+ \lp@putepsfigure%
+}
+{%
+ %draw a frame around the whole picture
+ \lp@pictframe
+ % draw grid
+ \lp@grid
+ % draw coordinates
+ \lp@coords
+ \end{picture}%
+\endgroup}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \lbl[position]{<xcoord>,<ycoord>[,angle];object}
+%
+
+% read coordinates and the angle from the argument of \lbl
+\def\lp@getxya#1,#2,#3,#4ENDOFTHEARGS%
+{%
+ \setlength{\lp@tmpx}{\lpunitlength * \real{#1} * \ratio{\lp@xnum}{\lp@xdenom}}%
+ \setcounter{lp@tmpx}{\lp@tmpx / \unitlength}%
+ \setlength{\lp@tmpy}{\lpunitlength * \real{#2} * \ratio{\lp@ynum}{\lp@ydenom}}%
+ \setcounter{lp@tmpy}{\lp@tmpy / \unitlength}%
+ \def\lp@angle{#3}%
+}
+
+% disassemble the arg of \lbl
+\def\lp@getdata#1;#2#3ENDOFTHEARGS%
+{%
+ \lp@getxya#1,,,ENDOFTHEARGS%
+ \def\lp@lbldata{#2#3}%
+}
+
+\newcommand{\lp@getcoords}[1]
+{%
+ \lp@getdata#1ENDOFTHEARGS%
+}
+
+%\setlength{\lpbgboxsep}{10mm}
+
+\newcommand{\lbl@cmd}[2][]
+{\begingroup%
+ % Set the defaults
+ \def\lp@lblbox{\makebox(0,0)[#1]} %
+ \def\lp@bgbox{\relax} % No background
+ \setcounter{lp@tmpdx}{0} % No shifting
+ \setcounter{lp@tmpdy}{0}
+ % Dissasemble the second argument
+ \lp@getcoords{#2}%
+ % Let's see whether angle is supplied
+ \ifthenelse{\equal{\lp@angle}{}}
+ {\let\lp@rotatelbl=\relax}
+ {\def\lp@rotatelbl{\turnbox{\lp@angle}}}%
+ % What options are given?
+ % ``W'' put white background with margins
+ \lp@ifsubstring W in #1;%
+ {%
+ \setlength{\lp@tmpa}{0.152mm}
+ \setcounter{lp@tmpdx}{( \lpbgboxsep + \lp@tmpa ) / \unitlength}%
+ \setcounter{lp@tmpdy}{( \lpbgboxsep + \lp@tmpa ) / \unitlength}%
+ \def\lp@bgbox##1{%
+ \begingroup%
+ \setlength{\fboxsep}{\lpbgboxsep}%
+ \colorbox{white}{##1}
+ \endgroup%
+ }%
+ }%
+ {}%
+ % ``w'' put white background without margins
+ \lp@ifsubstring w in #1;%
+ {%
+ \def\lp@bgbox##1{%
+ \begingroup%
+ \setlength{\fboxsep}{0mm}%
+ \colorbox{white}{##1}%
+ \endgroup%
+ }%
+ }%
+ {}%
+ % Positioning
+ \lp@ifsubstring t in #1;{\addtocounter{lp@tmpy}{\value{lp@tmpdy}}}{}%
+ \lp@ifsubstring b in #1;{\addtocounter{lp@tmpy}{-\value{lp@tmpdy}}}{}%
+ \lp@ifsubstring l in #1;{\addtocounter{lp@tmpx}{-\value{lp@tmpdx}}}{}%
+ \lp@ifsubstring r in #1;{\addtocounter{lp@tmpx}{\value{lp@tmpdx}}}{}%
+ % Put the material
+ \put(\value{lp@tmpx},\value{lp@tmpy})%
+ {\lp@rotatelbl{\lp@lblbox{\lp@bgbox{\lp@lblframe{\lp@lbldata}}}}}%
+\endgroup}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PS definitions for the white bg
+%\special{! TeXDict
+% begin
+% /whitebgbox{% Needs : x0 y0 x1 y1.
+% newpath 2 copy moveto 3 copy pop exch lineto 4 copy pop pop
+% lineto 4 copy exch pop exch pop lineto closepath 1 setgray fill} bind def
+% end
+%}