Ajout : doc/ (suite)
[tool/hledger.git] / doc / hledger.fr.slidy.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
4 <head>
5 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
6 <meta name="copyright" content="© 2014 (CC) BY Julien Moutinho &amp;lt;julm+hledger@autogeree.net&amp;gt;" />
7 <meta name="generator" content="AsciiDoc 8.6.9 / slidy2 backend 1.0.3" />
8 <meta name="font-size-adjustment" content="-3" />
9 <title>Informatiser une comptabilité avec confiance</title>
10 <style type="text/css">
11 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */
12
13 /* Default font. */
14 body {
15 font-family: Georgia,serif;
16 }
17
18 /* Title font. */
19 h1, h2, h3, h4, h5, h6,
20 div.title, caption.title,
21 thead, p.table.header,
22 #toctitle,
23 #author, #revnumber, #revdate, #revremark,
24 #footer {
25 font-family: Arial,Helvetica,sans-serif;
26 }
27
28 body {
29 margin: 1em 5% 1em 5%;
30 }
31
32 a {
33 color: blue;
34 text-decoration: underline;
35 }
36 a:visited {
37 color: fuchsia;
38 }
39
40 em {
41 font-style: italic;
42 color: navy;
43 }
44
45 strong {
46 font-weight: bold;
47 color: #083194;
48 }
49
50 h1, h2, h3, h4, h5, h6 {
51 color: #527bbd;
52 margin-top: 1.2em;
53 margin-bottom: 0.5em;
54 line-height: 1.3;
55 }
56
57 h1, h2, h3 {
58 border-bottom: 2px solid silver;
59 }
60 h2 {
61 padding-top: 0.5em;
62 }
63 h3 {
64 float: left;
65 }
66 h3 + * {
67 clear: left;
68 }
69 h5 {
70 font-size: 1.0em;
71 }
72
73 div.sectionbody {
74 margin-left: 0;
75 }
76
77 hr {
78 border: 1px solid silver;
79 }
80
81 p {
82 margin-top: 0.5em;
83 margin-bottom: 0.5em;
84 }
85
86 ul, ol, li > p {
87 margin-top: 0;
88 }
89 ul > li { color: #aaa; }
90 ul > li > * { color: black; }
91
92 .monospaced, code, pre {
93 font-family: "Courier New", Courier, monospace;
94 font-size: inherit;
95 color: navy;
96 padding: 0;
97 margin: 0;
98 }
99 pre {
100 white-space: pre-wrap;
101 }
102
103 #author {
104 color: #527bbd;
105 font-weight: bold;
106 font-size: 1.1em;
107 }
108 #email {
109 }
110 #revnumber, #revdate, #revremark {
111 }
112
113 #footer {
114 font-size: small;
115 border-top: 2px solid silver;
116 padding-top: 0.5em;
117 margin-top: 4.0em;
118 }
119 #footer-text {
120 float: left;
121 padding-bottom: 0.5em;
122 }
123 #footer-badges {
124 float: right;
125 padding-bottom: 0.5em;
126 }
127
128 #preamble {
129 margin-top: 1.5em;
130 margin-bottom: 1.5em;
131 }
132 div.imageblock, div.exampleblock, div.verseblock,
133 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
134 div.admonitionblock {
135 margin-top: 1.0em;
136 margin-bottom: 1.5em;
137 }
138 div.admonitionblock {
139 margin-top: 2.0em;
140 margin-bottom: 2.0em;
141 margin-right: 10%;
142 color: #606060;
143 }
144
145 div.content { /* Block element content. */
146 padding: 0;
147 }
148
149 /* Block element titles. */
150 div.title, caption.title {
151 color: #527bbd;
152 font-weight: bold;
153 text-align: left;
154 margin-top: 1.0em;
155 margin-bottom: 0.5em;
156 }
157 div.title + * {
158 margin-top: 0;
159 }
160
161 td div.title:first-child {
162 margin-top: 0.0em;
163 }
164 div.content div.title:first-child {
165 margin-top: 0.0em;
166 }
167 div.content + div.title {
168 margin-top: 0.0em;
169 }
170
171 div.sidebarblock > div.content {
172 background: #ffffee;
173 border: 1px solid #dddddd;
174 border-left: 4px solid #f0f0f0;
175 padding: 0.5em;
176 }
177
178 div.listingblock > div.content {
179 border: 1px solid #dddddd;
180 border-left: 5px solid #f0f0f0;
181 background: #f8f8f8;
182 padding: 0.5em;
183 }
184
185 div.quoteblock, div.verseblock {
186 padding-left: 1.0em;
187 margin-left: 1.0em;
188 margin-right: 10%;
189 border-left: 5px solid #f0f0f0;
190 color: #888;
191 }
192
193 div.quoteblock > div.attribution {
194 padding-top: 0.5em;
195 text-align: right;
196 }
197
198 div.verseblock > pre.content {
199 font-family: inherit;
200 font-size: inherit;
201 }
202 div.verseblock > div.attribution {
203 padding-top: 0.75em;
204 text-align: left;
205 }
206 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
207 div.verseblock + div.attribution {
208 text-align: left;
209 }
210
211 div.admonitionblock .icon {
212 vertical-align: top;
213 font-size: 1.1em;
214 font-weight: bold;
215 text-decoration: underline;
216 color: #527bbd;
217 padding-right: 0.5em;
218 }
219 div.admonitionblock td.content {
220 padding-left: 0.5em;
221 border-left: 3px solid #dddddd;
222 }
223
224 div.exampleblock > div.content {
225 border-left: 3px solid #dddddd;
226 padding-left: 0.5em;
227 }
228
229 div.imageblock div.content { padding-left: 0; }
230 span.image img { border-style: none; vertical-align: text-bottom; }
231 a.image:visited { color: white; }
232
233 dl {
234 margin-top: 0.8em;
235 margin-bottom: 0.8em;
236 }
237 dt {
238 margin-top: 0.5em;
239 margin-bottom: 0;
240 font-style: normal;
241 color: navy;
242 }
243 dd > *:first-child {
244 margin-top: 0.1em;
245 }
246
247 ul, ol {
248 list-style-position: outside;
249 }
250 ol.arabic {
251 list-style-type: decimal;
252 }
253 ol.loweralpha {
254 list-style-type: lower-alpha;
255 }
256 ol.upperalpha {
257 list-style-type: upper-alpha;
258 }
259 ol.lowerroman {
260 list-style-type: lower-roman;
261 }
262 ol.upperroman {
263 list-style-type: upper-roman;
264 }
265
266 div.compact ul, div.compact ol,
267 div.compact p, div.compact p,
268 div.compact div, div.compact div {
269 margin-top: 0.1em;
270 margin-bottom: 0.1em;
271 }
272
273 tfoot {
274 font-weight: bold;
275 }
276 td > div.verse {
277 white-space: pre;
278 }
279
280 div.hdlist {
281 margin-top: 0.8em;
282 margin-bottom: 0.8em;
283 }
284 div.hdlist tr {
285 padding-bottom: 15px;
286 }
287 dt.hdlist1.strong, td.hdlist1.strong {
288 font-weight: bold;
289 }
290 td.hdlist1 {
291 vertical-align: top;
292 font-style: normal;
293 padding-right: 0.8em;
294 color: navy;
295 }
296 td.hdlist2 {
297 vertical-align: top;
298 }
299 div.hdlist.compact tr {
300 margin: 0;
301 padding-bottom: 0;
302 }
303
304 .comment {
305 background: yellow;
306 }
307
308 .footnote, .footnoteref {
309 font-size: 0.8em;
310 }
311
312 span.footnote, span.footnoteref {
313 vertical-align: super;
314 }
315
316 #footnotes {
317 margin: 20px 0 20px 0;
318 padding: 7px 0 0 0;
319 }
320
321 #footnotes div.footnote {
322 margin: 0 0 5px 0;
323 }
324
325 #footnotes hr {
326 border: none;
327 border-top: 1px solid silver;
328 height: 1px;
329 text-align: left;
330 margin-left: 0;
331 width: 20%;
332 min-width: 100px;
333 }
334
335 div.colist td {
336 padding-right: 0.5em;
337 padding-bottom: 0.3em;
338 vertical-align: top;
339 }
340 div.colist td img {
341 margin-top: 0.3em;
342 }
343
344 @media print {
345 #footer-badges { display: none; }
346 }
347
348 #toc {
349 margin-bottom: 2.5em;
350 }
351
352 #toctitle {
353 color: #527bbd;
354 font-size: 1.1em;
355 font-weight: bold;
356 margin-top: 1.0em;
357 margin-bottom: 0.1em;
358 }
359
360 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
361 margin-top: 0;
362 margin-bottom: 0;
363 }
364 div.toclevel2 {
365 margin-left: 2em;
366 font-size: 0.9em;
367 }
368 div.toclevel3 {
369 margin-left: 4em;
370 font-size: 0.9em;
371 }
372 div.toclevel4 {
373 margin-left: 6em;
374 font-size: 0.9em;
375 }
376
377 span.aqua { color: aqua; }
378 span.black { color: black; }
379 span.blue { color: blue; }
380 span.fuchsia { color: fuchsia; }
381 span.gray { color: gray; }
382 span.green { color: green; }
383 span.lime { color: lime; }
384 span.maroon { color: maroon; }
385 span.navy { color: navy; }
386 span.olive { color: olive; }
387 span.purple { color: purple; }
388 span.red { color: red; }
389 span.silver { color: silver; }
390 span.teal { color: teal; }
391 span.white { color: white; }
392 span.yellow { color: yellow; }
393
394 span.aqua-background { background: aqua; }
395 span.black-background { background: black; }
396 span.blue-background { background: blue; }
397 span.fuchsia-background { background: fuchsia; }
398 span.gray-background { background: gray; }
399 span.green-background { background: green; }
400 span.lime-background { background: lime; }
401 span.maroon-background { background: maroon; }
402 span.navy-background { background: navy; }
403 span.olive-background { background: olive; }
404 span.purple-background { background: purple; }
405 span.red-background { background: red; }
406 span.silver-background { background: silver; }
407 span.teal-background { background: teal; }
408 span.white-background { background: white; }
409 span.yellow-background { background: yellow; }
410
411 span.big { font-size: 2em; }
412 span.small { font-size: 0.6em; }
413
414 span.underline { text-decoration: underline; }
415 span.overline { text-decoration: overline; }
416 span.line-through { text-decoration: line-through; }
417
418 div.unbreakable { page-break-inside: avoid; }
419
420
421 /*
422 * xhtml11 specific
423 *
424 * */
425
426 div.tableblock {
427 margin-top: 1.0em;
428 margin-bottom: 1.5em;
429 }
430 div.tableblock > table {
431 border: 3px solid #527bbd;
432 }
433 thead, p.table.header {
434 font-weight: bold;
435 color: #527bbd;
436 }
437 p.table {
438 margin-top: 0;
439 }
440 /* Because the table frame attribute is overriden by CSS in most browsers. */
441 div.tableblock > table[frame="void"] {
442 border-style: none;
443 }
444 div.tableblock > table[frame="hsides"] {
445 border-left-style: none;
446 border-right-style: none;
447 }
448 div.tableblock > table[frame="vsides"] {
449 border-top-style: none;
450 border-bottom-style: none;
451 }
452
453
454 /*
455 * html5 specific
456 *
457 * */
458
459 table.tableblock {
460 margin-top: 1.0em;
461 margin-bottom: 1.5em;
462 }
463 thead, p.tableblock.header {
464 font-weight: bold;
465 color: #527bbd;
466 }
467 p.tableblock {
468 margin-top: 0;
469 }
470 table.tableblock {
471 border-width: 3px;
472 border-spacing: 0px;
473 border-style: solid;
474 border-color: #527bbd;
475 border-collapse: collapse;
476 }
477 th.tableblock, td.tableblock {
478 border-width: 1px;
479 padding: 4px;
480 border-style: solid;
481 border-color: #527bbd;
482 }
483
484 table.tableblock.frame-topbot {
485 border-left-style: hidden;
486 border-right-style: hidden;
487 }
488 table.tableblock.frame-sides {
489 border-top-style: hidden;
490 border-bottom-style: hidden;
491 }
492 table.tableblock.frame-none {
493 border-style: hidden;
494 }
495
496 th.tableblock.halign-left, td.tableblock.halign-left {
497 text-align: left;
498 }
499 th.tableblock.halign-center, td.tableblock.halign-center {
500 text-align: center;
501 }
502 th.tableblock.halign-right, td.tableblock.halign-right {
503 text-align: right;
504 }
505
506 th.tableblock.valign-top, td.tableblock.valign-top {
507 vertical-align: top;
508 }
509 th.tableblock.valign-middle, td.tableblock.valign-middle {
510 vertical-align: middle;
511 }
512 th.tableblock.valign-bottom, td.tableblock.valign-bottom {
513 vertical-align: bottom;
514 }
515
516
517 /*
518 * manpage specific
519 *
520 * */
521
522 body.manpage h1 {
523 padding-top: 0.5em;
524 padding-bottom: 0.5em;
525 border-top: 2px solid silver;
526 border-bottom: 2px solid silver;
527 }
528 body.manpage h2 {
529 border-style: none;
530 }
531 body.manpage div.sectionbody {
532 margin-left: 3em;
533 }
534
535 @media print {
536 body.manpage div#toc { display: none; }
537 }
538 </style>
539 <style type="text/css">
540 /* slidy.css
541
542 Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
543 W3C liability, trademark, document use and software licensing
544 rules apply, see:
545
546 http://www.w3.org/Consortium/Legal/copyright-documents
547 http://www.w3.org/Consortium/Legal/copyright-software
548 */
549
550 /*
551 SJR: 2010-09-29: Modified for AsciiDoc slidy backend.
552 Mostly just commented out stuff that is handled by AsciiDoc's CSS files.
553 */
554
555 body
556 {
557 margin: 0 0 0 0;
558 padding: 0 0 0 0;
559 width: 100%;
560 height: 100%;
561 color: black;
562 background-color: white;
563 /*
564 font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;
565 */
566 font-size: 14pt;
567 }
568
569 div.toolbar {
570 position: fixed; z-index: 200;
571 top: auto; bottom: 0; left: 0; right: 0;
572 height: 1.2em; text-align: right;
573 padding-left: 1em;
574 padding-right: 1em;
575 font-size: 60%;
576 color: red;
577 background-color: rgb(240,240,240);
578 border-top: solid 1px rgb(180,180,180);
579 }
580
581 div.toolbar span.copyright {
582 color: black;
583 margin-left: 0.5em;
584 }
585
586 div.initial_prompt {
587 position: absolute;
588 z-index: 1000;
589 bottom: 1.2em;
590 width: 90%;
591 background-color: rgb(200,200,200);
592 opacity: 0.35;
593 cursor: pointer;
594 }
595
596 div.initial_prompt p.help {
597 text-align: center;
598 }
599
600 div.initial_prompt p.close {
601 text-align: right;
602 font-style: italic;
603 }
604
605 div.slidy_toc {
606 position: absolute;
607 z-index: 300;
608 width: 60%;
609 max-width: 30em;
610 height: 30em;
611 overflow: auto;
612 top: auto;
613 right: auto;
614 left: 4em;
615 bottom: 4em;
616 padding: 1em;
617 background: rgb(240,240,240);
618 border-style: solid;
619 border-width: 2px;
620 font-size: 60%;
621 }
622
623 div.slidy_toc .toc_heading {
624 text-align: center;
625 width: 100%;
626 margin: 0;
627 margin-bottom: 1em;
628 border-bottom-style: solid;
629 border-bottom-color: rgb(180,180,180);
630 border-bottom-width: 1px;
631 }
632
633 div.slide {
634 z-index: 20;
635 margin: 0 0 0 0;
636 padding-top: 0;
637 padding-bottom: 0;
638 padding-left: 20px;
639 padding-right: 20px;
640 border-width: 0;
641 clear: both;
642 top: 0;
643 bottom: 0;
644 left: 0;
645 right: 0;
646 line-height: 120%;
647 background-color: transparent;
648 }
649
650 div.background {
651 display: none;
652 }
653
654 div.handout {
655 margin-left: 20px;
656 margin-right: 20px;
657 }
658
659 div.slide.titlepage {
660 text-align: center;
661 }
662
663 div.slide.titlepage.h1 {
664 padding-top: 10%;
665 }
666
667 div.slide h1 {
668 padding-left: 0;
669 padding-right: 20pt;
670 padding-top: 4pt;
671 padding-bottom: 4pt;
672 margin-top: 0;
673 margin-left: 0;
674 margin-right: 60pt;
675 margin-bottom: 0.5em;
676 display: block;
677 font-size: 160%;
678 line-height: 1.2em;
679 background: transparent;
680 }
681
682 div.toc {
683 position: absolute;
684 top: auto;
685 bottom: 4em;
686 left: 4em;
687 right: auto;
688 width: 60%;
689 max-width: 30em;
690 height: 30em;
691 border: solid thin black;
692 padding: 1em;
693 background: rgb(240,240,240);
694 color: black;
695 z-index: 300;
696 overflow: auto;
697 display: block;
698 visibility: visible;
699 }
700
701 div.toc-heading {
702 width: 100%;
703 border-bottom: solid 1px rgb(180,180,180);
704 margin-bottom: 1em;
705 text-align: center;
706 }
707
708 /*
709 pre {
710 font-size: 80%;
711 font-weight: bold;
712 line-height: 120%;
713 padding-top: 0.2em;
714 padding-bottom: 0.2em;
715 padding-left: 1em;
716 padding-right: 1em;
717 border-style: solid;
718 border-left-width: 1em;
719 border-top-width: thin;
720 border-right-width: thin;
721 border-bottom-width: thin;
722 border-color: #95ABD0;
723 color: #00428C;
724 background-color: #E4E5E7;
725 }
726 */
727
728 /*
729 li pre { margin-left: 0; }
730
731 blockquote { font-style: italic }
732
733 img { background-color: transparent }
734
735 p.copyright { font-size: smaller }
736 */
737
738 .center { text-align: center }
739 .footnote { font-size: smaller; margin-left: 2em; }
740
741 /*
742 a img { border-width: 0; border-style: none }
743 */
744
745 a:visited { color: navy }
746 a:link { color: navy }
747 a:hover { color: red; text-decoration: underline }
748 a:active { color: red; text-decoration: underline }
749
750 a {text-decoration: none}
751 .navbar a:link {color: white}
752 .navbar a:visited {color: yellow}
753 .navbar a:active {color: red}
754 .navbar a:hover {color: red}
755
756 /*
757 ul { list-style-type: square; }
758 ul ul { list-style-type: disc; }
759 ul ul ul { list-style-type: circle; }
760 ul ul ul ul { list-style-type: disc; }
761 li { margin-left: 0.5em; margin-top: 0.5em; }
762 li li { font-size: 85%; font-style: italic }
763 li li li { font-size: 85%; font-style: normal }
764 */
765
766 div dt
767 {
768 margin-left: 0;
769 margin-top: 1em;
770 margin-bottom: 0.5em;
771 font-weight: bold;
772 }
773 div dd
774 {
775 margin-left: 2em;
776 margin-bottom: 0.5em;
777 }
778
779
780 /*
781 p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {
782 margin-left: 1em;
783 margin-right: 1em;
784 }
785 */
786
787 p.subhead { font-weight: bold; margin-top: 2em; }
788
789 .smaller { font-size: smaller }
790 .bigger { font-size: 130% }
791
792 /*
793 td,th { padding: 0.2em }
794 */
795
796 ul {
797 margin: 0.5em 1.5em 0.5em 1.5em;
798 padding: 0;
799 }
800
801 ol {
802 margin: 0.5em 1.5em 0.5em 1.5em;
803 padding: 0;
804 }
805
806 ul { list-style-type: square; }
807 ul ul { list-style-type: disc; }
808 ul ul ul { list-style-type: circle; }
809 ul ul ul ul { list-style-type: disc; }
810
811 /*
812 ul li {
813 list-style: square;
814 margin: 0.1em 0em 0.6em 0;
815 padding: 0 0 0 0;
816 line-height: 140%;
817 }
818
819 ol li {
820 margin: 0.1em 0em 0.6em 1.5em;
821 padding: 0 0 0 0px;
822 line-height: 140%;
823 list-style-type: decimal;
824 }
825
826 li ul li {
827 font-size: 85%;
828 font-style: italic;
829 list-style-type: disc;
830 background: transparent;
831 padding: 0 0 0 0;
832 }
833 li li ul li {
834 font-size: 85%;
835 font-style: normal;
836 list-style-type: circle;
837 background: transparent;
838 padding: 0 0 0 0;
839 }
840 li li li ul li {
841 list-style-type: disc;
842 background: transparent;
843 padding: 0 0 0 0;
844 }
845
846 li ol li {
847 list-style-type: decimal;
848 }
849
850
851 li li ol li {
852 list-style-type: decimal;
853 }
854 */
855
856 /*
857 setting class="outline" on ol or ul makes it behave as an
858 ouline list where blocklevel content in li elements is
859 hidden by default and can be expanded or collapsed with
860 mouse click. Set class="expand" on li to override default
861 */
862
863 ol.outline li:hover { cursor: pointer }
864 ol.outline li.nofold:hover { cursor: default }
865
866 ul.outline li:hover { cursor: pointer }
867 ul.outline li.nofold:hover { cursor: default }
868
869 ol.outline { list-style:decimal; }
870 ol.outline ol { list-style-type:lower-alpha }
871
872 ol.outline li.nofold {
873 padding: 0 0 0 20px;
874 background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
875 }
876 ol.outline li.unfolded {
877 padding: 0 0 0 20px;
878 background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
879 }
880 ol.outline li.folded {
881 padding: 0 0 0 20px;
882 background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
883 }
884 ol.outline li.unfolded:hover {
885 padding: 0 0 0 20px;
886 background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
887 }
888 ol.outline li.folded:hover {
889 padding: 0 0 0 20px;
890 background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
891 }
892
893 ul.outline li.nofold {
894 padding: 0 0 0 20px;
895 background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;
896 }
897 ul.outline li.unfolded {
898 padding: 0 0 0 20px;
899 background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;
900 }
901 ul.outline li.folded {
902 padding: 0 0 0 20px;
903 background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;
904 }
905 ul.outline li.unfolded:hover {
906 padding: 0 0 0 20px;
907 background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;
908 }
909 ul.outline li.folded:hover {
910 padding: 0 0 0 20px;
911 background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;
912 }
913
914 /* for slides with class "title" in table of contents */
915 a.titleslide { font-weight: bold; font-style: italic }
916
917 /*
918 hide images for work around for save as bug
919 where browsers fail to save images used by CSS
920 */
921 img.hidden { display: none; visibility: hidden }
922 div.initial_prompt { display: none; visibility: hidden }
923
924 div.slide {
925 visibility: visible;
926 position: inherit;
927 }
928 div.handout {
929 border-top-style: solid;
930 border-top-width: thin;
931 border-top-color: black;
932 }
933
934 @media screen {
935 .hidden { display: none; visibility: visible }
936
937 div.slide.hidden { display: block; visibility: visible }
938 div.handout.hidden { display: block; visibility: visible }
939 div.background { display: none; visibility: hidden }
940 body.single_slide div.initial_prompt { display: block; visibility: visible }
941 body.single_slide div.background { display: block; visibility: visible }
942 body.single_slide div.background.hidden { display: none; visibility: hidden }
943 body.single_slide .invisible { visibility: hidden }
944 body.single_slide .hidden { display: none; visibility: hidden }
945 body.single_slide div.slide { position: absolute }
946 body.single_slide div.handout { display: none; visibility: hidden }
947 }
948
949 @media print {
950 .hidden { display: block; visibility: visible }
951
952 /*
953 div.slide pre { font-size: 60%; padding-left: 0.5em; }
954 */
955 div.toolbar { display: none; visibility: hidden; }
956 div.slidy_toc { display: none; visibility: hidden; }
957 div.background { display: none; visibility: hidden; }
958 div.slide { page-break-before: always }
959 /* :first-child isn't reliable for print media */
960 div.slide.first-slide { page-break-before: avoid }
961 }
962
963
964 /* SJR: AsciiDoc slidy backend tweaks */
965
966 ol, ul {
967 margin: 0.8em 1.5em 0.8em 1.8em;
968 }
969 li > ul, li > ol {
970 margin-top: 0.5em;
971 }
972
973 .outline > li.folded,
974 .outline > li.unfolded {
975 color: #527bbd;
976 }
977 ul > li{ color: #aaa; }
978 ul > li > *, ol > li > * { color: black; }
979
980 li {
981 margin-top: 0.5em;
982 margin-bottom: 0.5em;
983 }
984
985 /* jmi hack */
986 @media screen {
987 body.single_slide .invisible { opacity: 0.15; visibility: visible; }
988 /*img.invisible { opacity: 0.1; visibility: visible; } */
989 img.invisible { visibility: hidden !important }
990 }
991 a {text-decoration: underline;}
992 </style>
993 <style type="text/css" title="slidy_color_set_none">
994 /* empty color set styles */
995 </style>
996 <style type="text/css" title="slidy_color_set_yellow">
997 /* rainbow color styles */
998 body { background-color: #ffffaa;}
999 a:link, a:visited, a:hover, a:active { color: blue; text-decoration: underline }
1000 a:hover { color: red; text-decoration: underline }
1001 div.slide { color: black;}
1002 div.slide h1,h2,h3,h4,h5,h6 { color: orange;}
1003 em { color: green;}
1004 tt { color: green;}
1005 div.sidebarblock, div.literalblock, div.listingblock, div.exampleblock, div.title { color: red;}
1006 div.quoteblock, div.verseblock { color: black; }
1007 div.admonitionblock { color: red;}
1008 </style>
1009 <style type="text/css" title="slidy_color_set_green">
1010 /* blue color styles */
1011 body { background-color: #449900;}
1012 a:link, a:visited, a:hover, a:active { color: fuchsia; text-decoration: underline }
1013 a:hover { color: red; text-decoration: underline }
1014 div.slide { color: yellow;}
1015 div.slide h1,h2,h3,h4,h5,h6 { color: lime;}
1016 em { color: orange;}
1017 tt { color: orange;}
1018 div.sidebarblock, div.literalblock, div.listingblock, div.exampleblock, div.title { color: #44ff00;}
1019 div.quoteblock, div.verseblock { color: black; }
1020 div.admonitionblock { color: #88ff55;}
1021 </style>
1022 <style type="text/css" title="slidy_color_set_blue">
1023 /* blue color styles */
1024 body { background-color: navy;}
1025 a:link, a:visited, a:hover, a:active { color: yellow; text-decoration: underline }
1026 a:hover { color: red; text-decoration: underline }
1027 div.slide { background-color: navy; color: aqua;}
1028 div.slide h1,h2,h3,h4,h5,h6 { color: aqua;}
1029 em { color: blue;}
1030 tt { color: blue;}
1031 div.sidebarblock, div.literalblock, div.listingblock, div.exampleblock, div.title { color: teal;}
1032 div.admonitionblock { color: teal;}
1033 </style>
1034 <style type="text/css" title="slidy_color_set_black">
1035 /* black color set styles */
1036 body { background-color: black !important; }
1037 a:link, a:visited, a:hover, a:active { color: gray; text-decoration: underline }
1038 a:hover { color: red; text-decoration: underline }
1039 div.slide { color: silver !important; }
1040 span, caption, th { color: silver !important; }
1041 div.slide h1,h2,h3,h4,h5,h6 { color: white;}
1042 em, strong { color: #999999;}
1043 tt { color: blue;}
1044 div.sidebarblock, div.literalblock, div.listingblock, div.exampleblock, div.title { color: black; }
1045 div.admonitionblock, div.quoteblock, div.verseblock { color: white; }
1046 div.cover.slide, div.cover.slide h1 { background-color: black; }
1047 </style>
1048 <style type="text/css">
1049 html body {
1050 color:#343434;
1051 font-family:serif;
1052 font-size:10px;
1053 margin:0 0;
1054 padding:0 0 0 0;
1055 }
1056 /* titres */
1057 h1, h2, h3, h4, h5, h6 {
1058 font-family: serif;
1059 }
1060 div.slide h1 {
1061 margin: 0 0 0 0 !important;
1062 }
1063 #revnumber {
1064 font-family: serif;
1065 font-size:inherit;
1066 font-weight:bold;
1067 }
1068 /* sections */
1069 .article {
1070 }
1071 .article > .sect1,
1072 .article > .sect2,
1073 .article > .sect3 {
1074 -moz-box-sizing:border-box;
1075 -webkit-box-sizing:border-box;
1076 box-sizing:border-box;
1077 clear:both;
1078 display:table;
1079 float:left;
1080 margin:0 auto 0 auto;
1081 padding:0 1em 0 1em;
1082 width:100%;
1083 }
1084 .article > .sect1:last-child {
1085 margin-bottom:2ex;
1086 }
1087 .article > .sect1 * {
1088 clear:both;
1089 }
1090 .article > .refnamediv > *,
1091 .article > .sect1 > *,
1092 .article > .refsynopsisdiv > * {
1093 }
1094 .article > .sect1 > .sect2 > * {
1095 margin-left:1em;
1096 }
1097 .article > .sect1 > .sect2 > .sect3 > * {
1098 margin-left:2em;
1099 }
1100 /* text */
1101 a:empty {
1102 margin:0 0 0 0;
1103 padding:0 0 0 0;
1104 }
1105 .article em {
1106 color:#000080;
1107 }
1108 .article .emphasis {
1109 text-decoration:underline;
1110 }
1111 .article p {
1112 margin:0 0 0 0;
1113 max-width:34em;
1114 padding:1ex 0 0 0;
1115 text-align:justify;
1116 }
1117 .article h2 + p {
1118 margin-top:0;
1119 padding-top:0.25ex;
1120 }
1121 .article h3 + p,
1122 .article h3 + p[title] {
1123 margin-top:0;
1124 padding-top:0;
1125 }
1126 /* citations */
1127 .article code,
1128 .article code.literal {
1129 background-color:#EEEEEE;
1130 color:inherit !important;
1131 font-family:monospace,Courier;
1132 white-space:pre;
1133 font-size:90%;
1134 }
1135 .article pre {
1136 /*background-color: #ffffff;*/
1137 font-family:monospace,Courier;
1138 line-height:1.3; /* TODO: 1.2 ? */
1139 color: #000000;
1140 font-family: monospace;
1141 line-height: 1.13;
1142 overflow: auto;
1143 white-space: pre;
1144 }
1145 .article pre.literallayout {
1146 border-left:1ex solid navy;
1147 margin-left:0;
1148 padding-left:1ex;
1149 }
1150 .article .screen {
1151 border-width:0px 0px 0px 5px;
1152 color:black;
1153 display:inline-block;
1154 margin:0.5ex 0 0.5ex 0;
1155 }
1156 .article .programlisting {
1157 color:black;
1158 margin-left:2em;
1159 margin-right:2em;
1160 }
1161 .article .listitem > .simpara {
1162 display:inline;
1163 margin-bottom:0;
1164 }
1165 /* titles */
1166 .article > .sect1 > h2 {
1167 border-bottom:2px solid black;
1168 /*box-shadow:0px 1px 00px #888888;*/
1169 color:green;
1170 font-family:monospace,Arial,sans-serif;
1171 font-size:120%;
1172 /*font-variant:small-caps;*/
1173 line-height:1.2;
1174 margin:1ex 0 0.5ex 0;
1175 padding:0 0 0.5ex 0;
1176 }
1177 .article > .refnamediv > h2,
1178 .article > .refsynopsisdiv > h2 {
1179 font-variant:small-caps;
1180 }
1181 .article > .sect1 > .sect2 > h3 {
1182 color:DarkGreen;
1183 font-family:monospace,Arial,sans-serif;
1184 font-size:100%;
1185 padding:1.5ex 0 0.5ex 0;
1186 margin:0 0 0 0;
1187 }
1188 .article > .sect1 > h2 + .sect2 > h3 {
1189 padding-top:0;
1190 }
1191 .article > .sect1 > .sect2 > h3:before,
1192 .article .toc .sect2:before {
1193 color:black;
1194 content:"► ";
1195 font-family:monospace,Arial,sans-serif;
1196 float:left;
1197 }
1198 .article > .sect1 > .sect2 > .sect3 > h4 {
1199 color:DarkGreen;
1200 font-family:monospace,Arial,sans-serif;
1201 font-size:100%;
1202 padding:1em 0 0 0;
1203 margin:0 0 0 0;
1204 }
1205 .article > .sect1 > .sect2 > .sect3 > h4:before,
1206 .article .toc .sect3:before {
1207 color:black;
1208 content:"►► ";
1209 font-family:monospace,Arial,sans-serif;
1210 float:left;
1211 }
1212 .article li.listitem > p.simpara:first-child {
1213 margin-top:0;
1214 }
1215 .article p .formalpara-title {
1216 /* XXX: there is a docbook-xsl bug here:
1217 * https://lists.oasis-open.org/archives/docbook-apps/201107/msg00003.html
1218 */
1219 color:black;
1220 font-weight:bold;
1221 line-height:1.4;
1222 margin:0 0 0 0;
1223 padding:0 0 0 0;
1224 text-align:left;
1225 }
1226 .article p[title] {
1227 margin:1ex 0 0 0;
1228 max-width:none;
1229 padding:0 0 0 0;
1230 }
1231 .article span.citerefentry > span.articletitle {
1232 white-space:nowrap;
1233 }
1234 /* lists */
1235 .article .hdlist p {
1236 padding:0 0 0.5ex 0;
1237 }
1238 .article .hdlist td.hdlist1 {
1239 text-align:right;
1240 vertical-align:top;
1241 }
1242 .article .hdlist td.hdlist1,
1243 .article .hdlist td.hdlist1 {
1244 text-align:right;
1245 }
1246 .article .hdlist td.hdlist2 {
1247 text-align:left;
1248 padding:0 0 0 0;
1249 vertical-align:middle;
1250 }
1251 .article .hdlist td.hdlist2 > .listingblock {
1252 margin-top: 0;
1253 }
1254 .article .hdlist.math td.hdlist1,
1255 .article .hdlist.math td.hdlist2 {
1256 vertical-align:middle !important;
1257 }
1258 .article .calloutlist p {
1259 padding:0 0 0 0;
1260 }
1261 .article .calloutlist td {
1262 padding:0 0 0 0;
1263 }
1264 .article .calloutlist td p {
1265 }
1266 .article .calloutlist td:first-child {
1267 padding-right:1em;
1268 }
1269 .article .calloutlist td:first-child p {
1270 text-align:right;
1271 }
1272 .article .itemizedlist,
1273 .article .orderedlist {
1274 padding:0 0 0 0;
1275 margin:0 0 0 0;
1276 }
1277 .article .itemizedlist ul,
1278 .article .orderedlist ol {
1279 padding:0 0 0 0;
1280 margin:0 0 0 1.5em;
1281 list-style-position:outside;
1282 }
1283 .article .itemizedlist ul li,
1284 .article .orderedlist ol li {
1285 margin:0 0 0 0;
1286 max-width:51em;
1287 padding:0 0 0 0;
1288 }
1289 .article .dlist {
1290 padding:0 0 0 0;
1291 margin:0 0 0 0;
1292 }
1293 .article .dlist dl {
1294 list-style-position:outside;
1295 margin:0 0 0 0;
1296 padding:0.5ex 0 0 0;
1297 }
1298 .article .dlist dl dt {
1299 margin:0 0 0 0;
1300 padding-left:1px;
1301 }
1302 .article .dlist dl dd {
1303 border-left:1px dotted black;
1304 margin:0.5ex 0 0.5ex 0.9ex;
1305 max-width:51em;
1306 padding-left:1.1ex;
1307 text-align:justify;
1308 }
1309 .article .dlist dl dd > p:first-child {
1310 padding-top:0;
1311 }
1312 .article .dlist dl dd > p:last-child {
1313 padding-bottom:0;
1314 }
1315 .article .dlist dt:before,
1316 .article .toc dt:before {
1317 color:black;
1318 content:"▪ ";
1319 font-family:monospace,Arial,sans-serif;
1320 float:left;
1321 }
1322 .article h2 + .itemizedlist ul,
1323 .article h2 + .orderedlist ol,
1324 .article h2 + .dlist dl {
1325 padding-top:0;
1326 }
1327 /* fhs */
1328 .article a[href^="#fhs:"] {
1329 white-space:pre;
1330 }
1331 .article .toc a[href^="#fhs:"] {
1332 white-space:normal;
1333 }
1334 /* sidebar */
1335 .article .sidebar {
1336 -moz-box-sizing:border-box;
1337 -webkit-box-sizing:border-box;
1338 background:none repeat scroll 0 0 #FFFFEE;
1339 border:1px solid #C0C0C0;
1340 box-sizing:border-box;
1341 clear:both;
1342 float:left;
1343 height:96%;
1344 left:0;
1345 margin:1em 0 0 1em;
1346 overflow:auto;
1347 padding:1ex 1em 1ex 1em;
1348 position:fixed;
1349 top:0;
1350 width:30em;
1351 }
1352 .article .sidebar .refnamediv {
1353 margin:0 0 1ex 0;
1354 }
1355 .article .sidebar .refnamediv h2 {
1356 border-bottom:2px solid black;
1357 color:green;
1358 font-family:monospace,Arial,sans-serif;
1359 font-size:120%;
1360 font-variant:small-caps;
1361 border-bottom:0 solid black;
1362 margin:0 0 0.5ex 0;
1363 padding:0 0 0 0;
1364 }
1365 .article .sidebar .refnamediv p {
1366 margin:0 0 0 0;
1367 padding:0 0 0 0;
1368 text-align:justify;
1369 }
1370 /* location */
1371 .article .location {
1372 margin:0 0 0 0;
1373 }
1374 .article .location .location-title {
1375 display:inline-block;
1376 }
1377 .article .location .location-path {
1378 display:inline-block;
1379 margin-left:1em;
1380 margin-bottom:0.5ex;
1381 }
1382 .article .location .location-path a {
1383 display:inline-block;
1384 }
1385 .article .location .location-path .dir {
1386 color:blue;
1387 font-weight:bold;
1388 }
1389 .article .location .location-path .dir .slash {
1390 color:black;
1391 }
1392 .article .location .location-path .file {
1393 font-weight:bold;
1394 }
1395 /* language */
1396 .article .language {
1397 margin:0 0 0 0;
1398 }
1399 .article .language .language-title {
1400 display:inline-block;
1401 }
1402 .article .language .language-list {
1403 display:inline-block;
1404 font-weight:bold;
1405 margin-left:1em;
1406 }
1407 .article .language .language-list .lang-available {
1408 color:blue;
1409 }
1410 .article .language .language-list .lang-current {
1411 color:black;
1412 }
1413 /* toc */
1414 .article .toc {
1415 }
1416 .article .toc dl {
1417 clear:left;
1418 margin-left:0;
1419 padding-left:0;
1420 }
1421 .article .toc dl dd {
1422 border-left:1px dotted #333;
1423 margin-bottom:1px;
1424 margin-left:0.1ex;
1425 padding-left:1.9ex;
1426 }
1427 .article .toc dl dt span.refsynopsisdiv {
1428 }
1429 .article .toc .sect1:before {
1430 color:black;
1431 content:"§ ";
1432 font-family:monospace,Arial,sans-serif;
1433 float:left;
1434 }
1435 .article .toc .toc-title,
1436 .article .language .language-title,
1437 .article .location .location-title {
1438 border-bottom:0 solid black;
1439 color:green;
1440 font-size:120%;
1441 font-variant:small-caps;
1442 font-weight:bold;
1443 margin-bottom:0.5ex;
1444 }
1445 div.slidy_toc,
1446 body > div.slidy_toc,
1447 .article div.slidy_toc {
1448 background: none repeat scroll 0 0 #F0F0F0;
1449 border-style: solid;
1450 border-width: 2px;
1451 font-size: 100%;
1452 height: 80%;
1453 left: auto !important;
1454 bottom: auto !important;
1455 right: 0 !important;
1456 max-width: none !important;
1457 width: 50% !important;
1458 overflow: auto;
1459 padding: 1em;
1460 position: absolute;
1461 top: 0;
1462 z-index: 300;
1463 }
1464 .article div.toc-heading {
1465 border-bottom: 1px solid #B4B4B4;
1466 font-weight: bold;
1467 margin-bottom: 1em;
1468 text-align: center;
1469 width: 100%;
1470 }
1471 /* incremental preview */
1472 body.single_slide .invisible {
1473 opacity: 0.15;
1474 visibility: visible;
1475 }
1476 img.invisible {
1477 visibility: hidden !important;
1478 }
1479 /* image */
1480 .imageblock img {
1481 border:1px solid black;
1482 display:block;
1483 margin:0 auto 0 auto;
1484 }
1485 /* block */
1486 div.admonitionblock,
1487 div.exampleblock,
1488 div.imageblock,
1489 div.listingblock,
1490 div.literalblock,
1491 div.quoteblock,
1492 div.sidebarblock,
1493 div.verseblock {
1494 margin-bottom:1ex;
1495 }
1496 div.admonitionblock {
1497 margin-top:1ex;
1498 }
1499 div.tableblock td {
1500 padding:0 1ex 0 1ex;
1501 }
1502 /* splash */
1503 div.hledgersplash > div.imageblock {
1504 /*border:black solid 1px;*/
1505 left:-50%;
1506 position:relative;
1507 }
1508 /* vim syntax */
1509 pre .Error { color: #8080ff; background-color: #ffffff; }
1510 pre .PreProc { color: #ff6060; text-decoration: underline; font-weight: bold; }
1511 pre .Special { color: #8080ff; font-weight: bold; }
1512 pre .Constant { color: #ff40ff; text-decoration: none; }
1513 pre .Statement { color: #B8860B; font-weight: bold; }
1514 pre .Identifier { color: #ffff00; text-decoration: underline; }
1515 pre .Comment { color: #4169e1; font-weight: bold; }
1516 /* vim syntax: hledger */
1517 pre .hledgerNumberOdd { color: #0000ff; background-color: #e5e5e5; font-weight: bold; }
1518 pre .hledgerPostingAmountOdd { color: #eead0e; background-color: #e5e5e5; font-weight: bold; }
1519 pre .hledgerAccountSeparatorOdd { color: #eead0e; background-color: #e5e5e5; font-weight: bold; }
1520 pre .hledgerPostingAccountOdd { color: #4d4d4d; background-color: #e5e5e5; }
1521 pre .hledgerNumber { color: #0000ff; background-color: #90ee90; font-weight: bold; }
1522 pre .hledgerPostingAmount { color: #eead0e; background-color: #90ee90; font-weight: bold; }
1523 pre .hledgerAccountSeparator { color: #eead0e; background-color: #90ee90; font-weight: bold; }
1524 pre .hledgerPostingAccount { color: #4d4d4d; background-color: #90ee90; }
1525 pre .hledgerTagValue { color: #ff0000; }
1526 pre .hledgerTag { color: #ffa500; font-weight: bold; }
1527 pre .hledgerTransactionComment { color: #4169e1; font-weight: bold; }
1528 pre .hledgerTransaction { font-weight: bold; }
1529 pre .hledgerTransactionDate { background-color: #eedd82; font-weight: bold; }
1530 pre .hledgerDirective { font-weight: bold; }
1531 pre .hledgerInclude { font-weight: bold; }
1532 pre .hledgerComment { color: #4169e1; font-weight: bold; }
1533 </style>
1534 <script type="text/javascript">
1535 /*<![CDATA[*/
1536 /* slidy.js
1537
1538 Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.
1539 W3C liability, trademark, document use and software licensing
1540 rules apply, see:
1541
1542 http://www.w3.org/Consortium/Legal/copyright-documents
1543 http://www.w3.org/Consortium/Legal/copyright-software
1544
1545 Defines single name "w3c_slidy" in global namespace
1546 Adds event handlers without trampling on any others
1547
1548 JMI: Dynamic features added
1549 */
1550
1551 // the slidy object implementation
1552 var w3c_slidy = {
1553 // classify which kind of browser we're running under
1554 ns_pos: (typeof window.pageYOffset!='undefined'),
1555 khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),
1556 opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),
1557 ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),
1558 iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),
1559 ie: (typeof document.all != "undefined" && !this.opera),
1560 ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),
1561 ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),
1562 ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),
1563 ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),
1564 keyboardless: (this.ipad || this.iphone),
1565
1566 // are we running as XHTML? (doesn't work on Opera)
1567 is_xhtml: /xml/.test(document.contentType),
1568
1569 slide_number: 0, // integer slide count: 0, 1, 2, ...
1570 slide_number_element: null, // element containing slide number
1571 slides: [], // set to array of slide div's
1572 notes: [], // set to array of handout div's
1573 backgrounds: [], // set to array of background div's
1574 toolbar: null, // element containing toolbar
1575 title: null, // document title
1576 last_shown: null, // last incrementally shown item
1577 eos: null, // span element for end of slide indicator
1578 toc: null, // table of contents
1579 outline: null, // outline element with the focus
1580 selected_text_len: 0, // length of drag selection on document
1581 view_all: 0, // 1 to view all slides + handouts
1582 want_toolbar: true, // user preference to show/hide toolbar
1583 mouse_click_enabled: true, // enables left click for next slide
1584 scroll_hack: 0, // IE work around for position: fixed
1585 disable_slide_click: false, // used by clicked anchors
1586
1587 lang: "en", // updated to language specified by html file
1588
1589 help_anchor: null, // used for keyboard focus hack in showToolbar()
1590 help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",
1591 help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +
1592 "or Pg Up and Pg Dn. Use S and B to change font size.",
1593 // jmi
1594 help_keymap:
1595 "PGDN\t: nextSlide\n" +
1596 "PGUP\t: previousSlide\n" +
1597 "HOME\t: firstSlide\n" +
1598 "END \t: lastSlide\n" +
1599 "SPACE\t: nextContent\n" +
1600 "-> \t: nextContent\n" +
1601 "<- \t: previousContent\n" +
1602 "A \t: toggleAllSlides\n" +
1603 "F \t: toggleFooter\n" +
1604 "K \t: toggleMouseClick\n" +
1605 "I \t: toggleIncremental\n" +
1606 "L \t: toggleColorSet\n" +
1607 "T, C\t: tableOfContents\n" +
1608 "B \t: biggerFontSize\n" +
1609 "S \t: smallerFontSize\n" +
1610 "M \t: key mapping\n",
1611
1612 size_index: 0,
1613 size_adjustment: 0,
1614 sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",
1615 "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),
1616
1617 // needed for efficient resizing
1618 last_width: 0,
1619 last_height: 0,
1620
1621
1622 // Needed for cross browser support for relative width/height on
1623 // object elements. The work around is to save width/height attributes
1624 // and then to recompute absolute width/height dimensions on resizing
1625 objects: [],
1626
1627 //jmi
1628 incremental_display: true,
1629
1630 // attach initialiation event handlers
1631 set_up: function () {
1632 var init = function() { w3c_slidy.init(); };
1633 if (typeof window.addEventListener != "undefined")
1634 window.addEventListener("load", init, false);
1635 else
1636 window.attachEvent("onload", init);
1637 },
1638
1639 hide_slides: function () {
1640 if (document.body && !w3c_slidy.initialized)
1641 document.body.style.visibility = "hidden";
1642 else
1643 setTimeout(w3c_slidy.hide_slides, 50);
1644 },
1645
1646 // hack to persuade IE to compute correct document height
1647 // as needed for simulating fixed positioning of toolbar
1648 ie_hack: function () {
1649 window.resizeBy(0,-1);
1650 window.resizeBy(0, 1);
1651 },
1652
1653 init: function () {
1654 //alert("slidy starting test 10");
1655 document.body.style.visibility = "visible";
1656 this.init_localization();
1657 this.add_toolbar();
1658 this.wrap_implicit_slides();
1659 this.collect_slides();
1660 this.collect_notes();
1661 this.collect_backgrounds();
1662 this.objects = document.body.getElementsByTagName("object");
1663 this.patch_anchors();
1664 this.slide_number = this.find_slide_number(location.href);
1665 window.offscreenbuffering = true;
1666 this.size_adjustment = this.find_size_adjust();
1667 this.time_left = this.find_duration();
1668 this.hide_image_toolbar(); // suppress IE image toolbar popup
1669 this.init_outliner(); // activate fold/unfold support
1670 this.title = document.title;
1671 // jmi
1672 this.color_sets = new Array();
1673 this.init_color_sets();
1674
1675 // work around for opera bug
1676 this.is_xhtml = (document.body.tagName == "BODY" ? false : true);
1677
1678 if (this.slides.length > 0)
1679 {
1680 var slide = this.slides[this.slide_number];
1681
1682 if (this.slide_number > 0)
1683 {
1684 this.set_visibility_all_incremental("visible");
1685 this.last_shown = this.previous_incremental_item(null);
1686 this.set_eos_status(true);
1687 }
1688 else
1689 {
1690 this.last_shown = null;
1691 this.set_visibility_all_incremental("hidden");
1692 this.set_eos_status(!this.next_incremental_item(this.last_shown));
1693 }
1694
1695 this.set_location();
1696 this.add_class(this.slides[0], "first-slide");
1697 w3c_slidy.show_slide(slide);
1698 }
1699
1700 this.toc = this.table_of_contents();
1701
1702 this.add_initial_prompt();
1703
1704 // bind event handlers without interfering with custom page scripts
1705 // Tap events behave too weirdly to support clicks reliably on
1706 // iPhone and iPad, so exclude these from click handler
1707
1708 if (!this.keyboardless)
1709 this.add_listener(document.body, "click", this.mouse_button_click);
1710
1711 this.add_listener(document, "keydown", this.key_down);
1712 this.add_listener(document, "keypress", this.key_press);
1713 this.add_listener(window, "resize", this.resized);
1714 this.add_listener(window, "scroll", this.scrolled);
1715 this.add_listener(window, "unload", this.unloaded);
1716
1717 // this seems to be a debugging hack
1718 //if (!document.body.onclick)
1719 // document.body.onclick = function () { };
1720
1721 this.single_slide_view();
1722
1723 //this.set_location();
1724
1725 this.resized();
1726
1727 if (this.ie7)
1728 setTimeout(w3c_slidy.ie_hack, 100);
1729
1730 this.show_toolbar();
1731
1732 // for back button detection
1733 setInterval(function () { w3c_slidy.check_location(); }, 200);
1734 w3c_slidy.initialized = true;
1735 },
1736
1737 // create div element with links to each slide
1738 table_of_contents: function () {
1739 var toc = this.create_element("div");
1740 this.add_class(toc, "slidy_toc hidden");
1741 //toc.setAttribute("tabindex", "0");
1742
1743 var heading = this.create_element("div");
1744 this.add_class(heading, "toc-heading");
1745 heading.innerHTML = this.localize("Table of Contents");
1746
1747 toc.appendChild(heading);
1748 var previous = null;
1749
1750 for (var i = 0; i < this.slides.length; ++i)
1751 {
1752 var title = this.has_class(this.slides[i], "title");
1753 var num = document.createTextNode((i + 1) + ". ");
1754
1755 toc.appendChild(num);
1756
1757 var a = this.create_element("a");
1758 a.setAttribute("href", "#(" + (i+1) + ")");
1759
1760 if (title)
1761 this.add_class(a, "titleslide");
1762
1763 var name = document.createTextNode(this.slide_name(i));
1764 a.appendChild(name);
1765 a.onclick = w3c_slidy.toc_click;
1766 a.onkeydown = w3c_slidy.toc_key_down;
1767 a.previous = previous;
1768
1769 if (previous)
1770 previous.next = a;
1771
1772 toc.appendChild(a);
1773
1774 if (i == 0)
1775 toc.first = a;
1776
1777 if (i < this.slides.length - 1)
1778 {
1779 var br = this.create_element("br");
1780 toc.appendChild(br);
1781 }
1782
1783 previous = a;
1784 }
1785
1786 toc.focus = function () {
1787 if (this.first)
1788 this.first.focus();
1789 }
1790
1791 toc.onmouseup = w3c_slidy.mouse_button_up;
1792
1793 toc.onclick = function (e) {
1794 e||(e=window.event);
1795
1796 if (w3c_slidy.selected_text_len <= 0)
1797 w3c_slidy.hide_table_of_contents(true);
1798
1799 w3c_slidy.stop_propagation(e);
1800
1801 if (e.cancel != undefined)
1802 e.cancel = true;
1803
1804 if (e.returnValue != undefined)
1805 e.returnValue = false;
1806
1807 return false;
1808 };
1809
1810 document.body.insertBefore(toc, document.body.firstChild);
1811 return toc;
1812 },
1813
1814 is_shown_toc: function () {
1815 return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");
1816 },
1817
1818 show_table_of_contents: function () {
1819 w3c_slidy.remove_class(w3c_slidy.toc, "hidden");
1820 var toc = w3c_slidy.toc;
1821 toc.focus();
1822
1823 if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)
1824 setTimeout(w3c_slidy.ie_hack, 100);
1825 },
1826
1827 hide_table_of_contents: function (focus) {
1828 w3c_slidy.add_class(w3c_slidy.toc, "hidden");
1829
1830 if (focus && !w3c_slidy.opera)
1831 w3c_slidy.help_anchor.focus();
1832 },
1833
1834 toggle_table_of_contents: function () {
1835 if (w3c_slidy.is_shown_toc())
1836 w3c_slidy.hide_table_of_contents(true);
1837 else
1838 w3c_slidy.show_table_of_contents();
1839 },
1840
1841 // called on clicking toc entry
1842 toc_click: function (e) {
1843 if (!e)
1844 e = window.event;
1845
1846 var target = w3c_slidy.get_target(e);
1847
1848 if (target && target.nodeType == 1)
1849 {
1850 var uri = target.getAttribute("href");
1851
1852 if (uri)
1853 {
1854 //alert("going to " + uri);
1855 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
1856 w3c_slidy.hide_slide(slide);
1857 w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
1858 slide = w3c_slidy.slides[w3c_slidy.slide_number];
1859 w3c_slidy.last_shown = null;
1860 w3c_slidy.set_location();
1861 w3c_slidy.set_visibility_all_incremental("hidden");
1862 w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
1863 w3c_slidy.show_slide(slide);
1864 //target.focus();
1865
1866 try
1867 {
1868 if (!w3c_slidy.opera)
1869 w3c_slidy.help_anchor.focus();
1870 }
1871 catch (e)
1872 {
1873 }
1874 }
1875 }
1876
1877 w3c_slidy.hide_table_of_contents(true);
1878 if (w3c_slidy.ie7) w3c_slidy.ie_hack();
1879 w3c_slidy.stop_propagation(e);
1880 return w3c_slidy.cancel(e);
1881 },
1882
1883 // called onkeydown for toc entry
1884 toc_key_down: function (event) {
1885 var key;
1886
1887 if (!event)
1888 var event = window.event;
1889
1890 // kludge around NS/IE differences
1891 if (window.event)
1892 key = window.event.keyCode;
1893 else if (event.which)
1894 key = event.which;
1895 else
1896 return true; // Yikes! unknown browser
1897
1898 // ignore event if key value is zero
1899 // as for alt on Opera and Konqueror
1900 if (!key)
1901 return true;
1902
1903 // check for concurrent control/command/alt key
1904 // but are these only present on mouse events?
1905
1906 if (event.ctrlKey || event.altKey)
1907 return true;
1908
1909 if (key == 13)
1910 {
1911 var uri = this.getAttribute("href");
1912
1913 if (uri)
1914 {
1915 //alert("going to " + uri);
1916 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
1917 w3c_slidy.hide_slide(slide);
1918 w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);
1919 slide = w3c_slidy.slides[w3c_slidy.slide_number];
1920 w3c_slidy.last_shown = null;
1921 w3c_slidy.set_location();
1922 w3c_slidy.set_visibility_all_incremental("hidden");
1923 w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
1924 w3c_slidy.show_slide(slide);
1925 //target.focus();
1926
1927 try
1928 {
1929 if (!w3c_slidy.opera)
1930 w3c_slidy.help_anchor.focus();
1931 }
1932 catch (e)
1933 {
1934 }
1935 }
1936
1937 w3c_slidy.hide_table_of_contents(true);
1938
1939 if (self.ie7)
1940 w3c_slidy.ie_hack();
1941
1942 return w3c_slidy.cancel(event);
1943 }
1944
1945 if (key == 40 && this.next)
1946 {
1947 this.next.focus();
1948 return w3c_slidy.cancel(event);
1949 }
1950
1951 if (key == 38 && this.previous)
1952 {
1953 this.previous.focus();
1954 return w3c_slidy.cancel(event);
1955 }
1956
1957 return true;
1958 },
1959
1960
1961 // ### OBSOLETE ###
1962 before_print: function () {
1963 this.show_all_slides();
1964 this.hide_toolbar();
1965 alert("before print");
1966 },
1967
1968 // ### OBSOLETE ###
1969 after_print: function () {
1970 if (!this.view_all)
1971 {
1972 this.single_slide_view();
1973 this.show_toolbar();
1974 }
1975 alert("after print");
1976 },
1977
1978 // ### OBSOLETE ###
1979 print_slides: function () {
1980 this.before_print();
1981 window.print();
1982 this.after_print();
1983 },
1984
1985 // ### OBSOLETE ?? ###
1986 toggle_view: function () {
1987 if (this.view_all)
1988 {
1989 this.single_slide_view();
1990 this.show_toolbar();
1991 this.view_all = 0;
1992 }
1993 else
1994 {
1995 this.show_all_slides();
1996 this.hide_toolbar();
1997 this.view_all = 1;
1998 }
1999 },
2000
2001 // prepare for printing ### OBSOLETE ###
2002 show_all_slides: function () {
2003 this.remove_class(document.body, "single_slide");
2004 this.set_visibility_all_incremental("visible");
2005 },
2006
2007 // restore after printing ### OBSOLETE ###
2008 single_slide_view: function () {
2009 this.add_class(document.body, "single_slide");
2010 this.set_visibility_all_incremental("visible");
2011 this.last_shown = this.previous_incremental_item(null);
2012 },
2013
2014 // suppress IE's image toolbar pop up
2015 hide_image_toolbar: function () {
2016 if (!this.ns_pos)
2017 {
2018 var images = document.getElementsByTagName("IMG");
2019
2020 for (var i = 0; i < images.length; ++i)
2021 images[i].setAttribute("galleryimg", "no");
2022 }
2023 },
2024
2025 unloaded: function (e) {
2026 //alert("unloaded");
2027 },
2028
2029 // Safari and Konqueror don't yet support getComputedStyle()
2030 // and they always reload page when location.href is updated
2031 is_KHTML: function () {
2032 var agent = navigator.userAgent;
2033 return (agent.indexOf("KHTML") >= 0 ? true : false);
2034 },
2035
2036 // find slide name from first h1 element
2037 // default to document title + slide number
2038 slide_name: function (index) {
2039 var name = null;
2040 var slide = this.slides[index];
2041
2042 var heading = this.find_heading(slide);
2043
2044 if (heading)
2045 name = this.extract_text(heading);
2046
2047 if (!name)
2048 name = this.title + "(" + (index + 1) + ")";
2049
2050 name.replace(/\&/g, "&amp;");
2051 name.replace(/\</g, "&lt;");
2052 name.replace(/\>/g, "&gt;");
2053
2054 return name;
2055 },
2056
2057 // find first h1 element in DOM tree
2058 find_heading: function (node) {
2059 if (!node || node.nodeType != 1)
2060 return null;
2061
2062 if (node.nodeName == "H1" || node.nodeName == "h1")
2063 return node;
2064
2065 var child = node.firstChild;
2066
2067 while (child)
2068 {
2069 node = this.find_heading(child);
2070
2071 if (node)
2072 return node;
2073
2074 child = child.nextSibling;
2075 }
2076
2077 return null;
2078 },
2079
2080 // recursively extract text from DOM tree
2081 extract_text: function (node) {
2082 if (!node)
2083 return "";
2084
2085 // text nodes
2086 if (node.nodeType == 3)
2087 return node.nodeValue;
2088
2089 // elements
2090 if (node.nodeType == 1)
2091 {
2092 node = node.firstChild;
2093 var text = "";
2094
2095 while (node)
2096 {
2097 text = text + this.extract_text(node);
2098 node = node.nextSibling;
2099 }
2100
2101 return text;
2102 }
2103
2104 return "";
2105 },
2106
2107 // find copyright text from meta element
2108 find_copyright: function () {
2109 var name, content;
2110 var meta = document.getElementsByTagName("meta");
2111
2112 for (var i = 0; i < meta.length; ++i)
2113 {
2114 name = meta[i].getAttribute("name");
2115 content = meta[i].getAttribute("content");
2116
2117 if (name == "copyright")
2118 return content;
2119 }
2120
2121 return null;
2122 },
2123
2124 find_size_adjust: function () {
2125 var name, content, offset;
2126 var meta = document.getElementsByTagName("meta");
2127
2128 for (var i = 0; i < meta.length; ++i)
2129 {
2130 name = meta[i].getAttribute("name");
2131 content = meta[i].getAttribute("content");
2132
2133 if (name == "font-size-adjustment")
2134 return 1 * content;
2135 }
2136
2137 return 1;
2138 },
2139
2140 // <meta name="duration" content="20" /> for 20 minutes
2141 find_duration: function () {
2142 var name, content, offset;
2143 var meta = document.getElementsByTagName("meta");
2144
2145 for (var i = 0; i < meta.length; ++i)
2146 {
2147 name = meta[i].getAttribute("name");
2148 content = meta[i].getAttribute("content");
2149
2150 if (name == "duration")
2151 return 60000 * content;
2152 }
2153
2154 return null;
2155 },
2156
2157 replace_by_non_breaking_space: function (str) {
2158 for (var i = 0; i < str.length; ++i)
2159 str[i] = 160;
2160 },
2161
2162 // ### CHECK ME ### is use of "li" okay for text/html?
2163 // for XHTML do we also need to specify namespace?
2164 init_outliner: function () {
2165 var items = document.getElementsByTagName("li");
2166
2167 for (var i = 0; i < items.length; ++i)
2168 {
2169 var target = items[i];
2170
2171 if (!this.has_class(target.parentNode, "outline"))
2172 continue;
2173
2174 target.onclick = this.outline_click;
2175 /* ### more work needed for IE6
2176 if (!this.ns_pos)
2177 {
2178 target.onmouseover = this.hover_outline;
2179 target.onmouseout = this.unhover_outline;
2180 }
2181 */
2182 if (this.foldable(target))
2183 {
2184 target.foldable = true;
2185 target.onfocus = function () {w3c_slidy.outline = this;};
2186 target.onblur = function () {w3c_slidy.outline = null;};
2187
2188 if (!target.getAttribute("tabindex"))
2189 target.setAttribute("tabindex", "0");
2190
2191 if (this.has_class(target, "expand"))
2192 this.unfold(target);
2193 else
2194 this.fold(target);
2195 }
2196 else
2197 {
2198 this.add_class(target, "nofold");
2199 target.visible = true;
2200 target.foldable = false;
2201 }
2202 }
2203 },
2204
2205 foldable: function (item) {
2206 if (!item || item.nodeType != 1)
2207 return false;
2208
2209 var node = item.firstChild;
2210
2211 while (node)
2212 {
2213 if (node.nodeType == 1 && this.is_block(node))
2214 return true;
2215
2216 node = node.nextSibling;
2217 }
2218
2219 return false;
2220 },
2221
2222 // ### CHECK ME ### switch to add/remove "hidden" class
2223 fold: function (item) {
2224 if (item)
2225 {
2226 this.remove_class(item, "unfolded");
2227 this.add_class(item, "folded");
2228 }
2229
2230 var node = item ? item.firstChild : null;
2231
2232 while (node)
2233 {
2234 if (node.nodeType == 1 && this.is_block(node)) // element
2235 {
2236 w3c_slidy.add_class(node, "hidden");
2237 }
2238
2239 node = node.nextSibling;
2240 }
2241
2242 item.visible = false;
2243 },
2244
2245 // ### CHECK ME ### switch to add/remove "hidden" class
2246 unfold: function (item) {
2247 if (item)
2248 {
2249 this.add_class(item, "unfolded");
2250 this.remove_class(item, "folded");
2251 }
2252
2253 var node = item ? item.firstChild : null;
2254
2255 while (node)
2256 {
2257 if (node.nodeType == 1 && this.is_block(node)) // element
2258 {
2259 w3c_slidy.remove_class(node, "hidden");
2260 }
2261
2262 node = node.nextSibling;
2263 }
2264
2265 item.visible = true;
2266 },
2267
2268 outline_click: function (e) {
2269 if (!e)
2270 e = window.event;
2271
2272 var rightclick = false;
2273 var target = w3c_slidy.get_target(e);
2274
2275 while (target && target.visible == undefined)
2276 target = target.parentNode;
2277
2278 if (!target)
2279 return true;
2280
2281 if (e.which)
2282 rightclick = (e.which == 3);
2283 else if (e.button)
2284 rightclick = (e.button == 2);
2285
2286 if (!rightclick && target.visible != undefined)
2287 {
2288 if (target.foldable)
2289 {
2290 if (target.visible)
2291 w3c_slidy.fold(target);
2292 else
2293 w3c_slidy.unfold(target);
2294 }
2295
2296 w3c_slidy.stop_propagation(e);
2297 e.cancel = true;
2298 e.returnValue = false;
2299 }
2300
2301 return false;
2302 },
2303
2304 add_initial_prompt: function () {
2305 var prompt = this.create_element("div");
2306 prompt.setAttribute("class", "initial_prompt");
2307
2308 var p1 = this.create_element("p");
2309 prompt.appendChild(p1);
2310 p1.setAttribute("class", "help");
2311
2312 if (this.keyboardless)
2313 p1.innerHTML = "Tap footer to move to next slide";
2314 else
2315 p1.innerHTML = "Space or Right Arrow to move to next " +
2316 "slide, M to see keys mapping, click help below for more details";
2317
2318 this.add_listener(prompt, "click", function (e) {
2319 document.body.removeChild(prompt);
2320 w3c_slidy.stop_propagation(e);
2321
2322 if (e.cancel != undefined)
2323 e.cancel = true;
2324
2325 if (e.returnValue != undefined)
2326 e.returnValue = false;
2327
2328 return false;
2329 });
2330
2331 document.body.appendChild(prompt);
2332 this.initial_prompt = prompt;
2333 setTimeout(function() {document.body.removeChild(prompt);}, 5000);
2334 },
2335
2336 add_toolbar: function () {
2337 var counter, page;
2338
2339 this.toolbar = this.create_element("div");
2340 this.toolbar.setAttribute("class", "toolbar");
2341
2342 // a reasonably behaved browser
2343 if (this.ns_pos || !this.ie6)
2344 {
2345 var right = this.create_element("div");
2346 right.setAttribute("style", "float: right; text-align: right");
2347
2348 counter = this.create_element("span")
2349 counter.innerHTML = this.localize("slide") + " n/m";
2350 right.appendChild(counter);
2351 this.toolbar.appendChild(right);
2352
2353 var left = this.create_element("div");
2354 left.setAttribute("style", "text-align: left");
2355
2356 // global end of slide indicator
2357 this.eos = this.create_element("span");
2358 this.eos.innerHTML = "* ";
2359 left.appendChild(this.eos);
2360
2361 var help = this.create_element("a");
2362 help.setAttribute("href", this.help_page);
2363 help.setAttribute("title", this.localize(this.help_text));
2364 help.innerHTML = this.localize("help?");
2365 left.appendChild(help);
2366 this.help_anchor = help; // save for focus hack
2367
2368 var gap1 = document.createTextNode(" ");
2369 left.appendChild(gap1);
2370
2371 var contents = this.create_element("a");
2372 contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");
2373 contents.setAttribute("title", this.localize("table of contents"));
2374 contents.innerHTML = this.localize("contents?");
2375 left.appendChild(contents);
2376
2377 var gap2 = document.createTextNode(" ");
2378 left.appendChild(gap2);
2379
2380 var copyright = this.find_copyright();
2381
2382 if (copyright)
2383 {
2384 var span = this.create_element("span");
2385 span.className = "copyright";
2386 span.innerHTML = copyright;
2387 left.appendChild(span);
2388 }
2389
2390 this.toolbar.setAttribute("tabindex", "0");
2391 this.toolbar.appendChild(left);
2392 }
2393 else // IE6 so need to work around its poor CSS support
2394 {
2395 this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");
2396 this.toolbar.style.zIndex = "200";
2397 this.toolbar.style.width = "99.9%";
2398 this.toolbar.style.height = "1.2em";
2399 this.toolbar.style.top = "auto";
2400 this.toolbar.style.bottom = "0";
2401 this.toolbar.style.left = "0";
2402 this.toolbar.style.right = "0";
2403 this.toolbar.style.textAlign = "left";
2404 this.toolbar.style.fontSize = "60%";
2405 this.toolbar.style.color = "red";
2406 this.toolbar.borderWidth = 0;
2407 this.toolbar.className = "toolbar";
2408 this.toolbar.style.background = "rgb(240,240,240)";
2409
2410 // would like to have help text left aligned
2411 // and page counter right aligned, floating
2412 // div's don't work, so instead use nested
2413 // absolutely positioned div's.
2414
2415 var sp = this.create_element("span");
2416 sp.innerHTML = "&nbsp;&nbsp;*&nbsp;";
2417 this.toolbar.appendChild(sp);
2418 this.eos = sp; // end of slide indicator
2419
2420 var help = this.create_element("a");
2421 help.setAttribute("href", this.help_page);
2422 help.setAttribute("title", this.localize(this.help_text));
2423 help.innerHTML = this.localize("help?");
2424 this.toolbar.appendChild(help);
2425 this.help_anchor = help; // save for focus hack
2426
2427 var gap1 = document.createTextNode(" ");
2428 this.toolbar.appendChild(gap1);
2429
2430 var contents = this.create_element("a");
2431 contents.setAttribute("href", "javascript:toggleTableOfContents()");
2432 contents.setAttribute("title", this.localize("table of contents".localize));
2433 contents.innerHTML = this.localize("contents?");
2434 this.toolbar.appendChild(contents);
2435
2436 var gap2 = document.createTextNode(" ");
2437 this.toolbar.appendChild(gap2);
2438
2439 var copyright = this.find_copyright();
2440
2441 if (copyright)
2442 {
2443 var span = this.create_element("span");
2444 span.innerHTML = copyright;
2445 span.style.color = "black";
2446 span.style.marginLeft = "0.5em";
2447 this.toolbar.appendChild(span);
2448 }
2449
2450 counter = this.create_element("div")
2451 counter.style.position = "absolute";
2452 counter.style.width = "auto"; //"20%";
2453 counter.style.height = "1.2em";
2454 counter.style.top = "auto";
2455 counter.style.bottom = 0;
2456 counter.style.right = "0";
2457 counter.style.textAlign = "right";
2458 counter.style.color = "red";
2459 counter.style.background = "rgb(240,240,240)";
2460
2461 counter.innerHTML = this.localize("slide") + " n/m";
2462 this.toolbar.appendChild(counter);
2463 }
2464
2465 // ensure that click isn't passed through to the page
2466 this.toolbar.onclick =
2467 function (e) {
2468 if (!e)
2469 e = window.event;
2470
2471 var target = e.target;
2472
2473 if (!target && e.srcElement)
2474 target = e.srcElement;
2475
2476 // work around Safari bug
2477 if (target && target.nodeType == 3)
2478 target = target.parentNode;
2479
2480 w3c_slidy.stop_propagation(e);
2481
2482 if (target && target.nodeName.toLowerCase() != "a")
2483 w3c_slidy.mouse_button_click(e);
2484 };
2485
2486 this.slide_number_element = counter;
2487 this.set_eos_status(false);
2488 document.body.appendChild(this.toolbar);
2489 },
2490
2491 // wysiwyg editors make it hard to use div elements
2492 // e.g. amaya loses the div when you copy and paste
2493 // this function wraps div elements around implicit
2494 // slides which start with an h1 element and continue
2495 // up to the next heading or div element
2496 wrap_implicit_slides: function () {
2497 var i, heading, node, next, div;
2498 var headings = document.getElementsByTagName("h1");
2499
2500 if (!headings)
2501 return;
2502
2503 for (i = 0; i < headings.length; ++i)
2504 {
2505 heading = headings[i];
2506
2507 if (heading.parentNode != document.body)
2508 continue;
2509
2510 node = heading.nextSibling;
2511
2512 div = document.createElement("div");
2513 this.add_class(div, "slide");
2514 document.body.replaceChild(div, heading);
2515 div.appendChild(heading);
2516
2517 while (node)
2518 {
2519 if (node.nodeType == 1 && // an element
2520 (node.nodeName == "H1" ||
2521 node.nodeName == "h1" ||
2522 node.nodeName == "DIV" ||
2523 node.nodeName == "div"))
2524 break;
2525
2526 next = node.nextSibling;
2527 node = document.body.removeChild(node);
2528 div.appendChild(node);
2529 node = next;
2530 }
2531 }
2532 },
2533
2534 // return new array of all slides
2535 collect_slides: function () {
2536 var slides = new Array();
2537 var divs = document.body.getElementsByTagName("div");
2538
2539 for (var i = 0; i < divs.length; ++i)
2540 {
2541 div = divs.item(i);
2542
2543 if (this.has_class(div, "slide"))
2544 {
2545 // add slide to collection
2546 slides[slides.length] = div;
2547
2548 // hide each slide as it is found
2549 this.add_class(div, "hidden");
2550
2551 // add dummy <br/> at end for scrolling hack
2552 var node1 = document.createElement("br");
2553 div.appendChild(node1);
2554 var node2 = document.createElement("br");
2555 div.appendChild(node2);
2556 }
2557 else if (this.has_class(div, "background"))
2558 { // work around for Firefox SVG reload bug
2559 // which otherwise replaces 1st SVG graphic with 2nd
2560 div.style.display = "block";
2561 }
2562 }
2563
2564 this.slides = slides;
2565 },
2566
2567 // return new array of all <div class="handout">
2568 collect_notes: function () {
2569 var notes = new Array();
2570 var divs = document.body.getElementsByTagName("div");
2571
2572 for (var i = 0; i < divs.length; ++i)
2573 {
2574 div = divs.item(i);
2575
2576 if (this.has_class(div, "handout"))
2577 {
2578 // add note to collection
2579 notes[notes.length] = div;
2580
2581 // and hide it
2582 this.add_class(div, "hidden");
2583 }
2584 }
2585
2586 this.notes = notes;
2587 },
2588
2589 // return new array of all <div class="background">
2590 // including named backgrounds e.g. class="background titlepage"
2591 collect_backgrounds: function () {
2592 var backgrounds = new Array();
2593 var divs = document.body.getElementsByTagName("div");
2594
2595 for (var i = 0; i < divs.length; ++i)
2596 {
2597 div = divs.item(i);
2598
2599 if (this.has_class(div, "background"))
2600 {
2601 // add background to collection
2602 backgrounds[backgrounds.length] = div;
2603
2604 // and hide it
2605 this.add_class(div, "hidden");
2606 }
2607 }
2608
2609 this.backgrounds = backgrounds;
2610 },
2611
2612 // set click handlers on all anchors
2613 patch_anchors: function () {
2614 var self = w3c_slidy;
2615 var handler = function (event) {
2616 // compare this.href with location.href
2617 // for link to another slide in this doc
2618
2619 if (self.page_address(this.href) == self.page_address(location.href))
2620 {
2621 // yes, so find new slide number
2622 var newslidenum = self.find_slide_number(this.href);
2623
2624 if (newslidenum != self.slide_number)
2625 {
2626 var slide = self.slides[self.slide_number];
2627 self.hide_slide(slide);
2628 self.slide_number = newslidenum;
2629 slide = self.slides[self.slide_number];
2630 self.show_slide(slide);
2631 self.set_location();
2632 }
2633 }
2634 else
2635 w3c_slidy.stop_propagation(event);
2636
2637 // else if (this.target == null)
2638 // location.href = this.href;
2639
2640 this.blur();
2641 self.disable_slide_click = true;
2642 };
2643
2644 var anchors = document.body.getElementsByTagName("a");
2645
2646 for (var i = 0; i < anchors.length; ++i)
2647 {
2648 if (window.addEventListener)
2649 anchors[i].addEventListener("click", handler, false);
2650 else
2651 anchors[i].attachEvent("onclick", handler);
2652 }
2653 },
2654
2655 // ### CHECK ME ### see which functions are invoked via setTimeout
2656 // either directly or indirectly for use of w3c_slidy vs this
2657 show_slide_number: function () {
2658 var timer = w3c_slidy.get_timer();
2659 w3c_slidy.slide_number_element.innerHTML = timer + w3c_slidy.localize("slide") + " " +
2660 (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;
2661 },
2662
2663 // every 200mS check if the location has been changed as a
2664 // result of the user activating the Back button/menu item
2665 // doesn't work for Opera < 9.5
2666 check_location: function () {
2667 var hash = location.hash;
2668
2669 if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))
2670 w3c_slidy.goto_slide(0);
2671 else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")
2672 {
2673 var num = parseInt(location.hash.substr(2));
2674
2675 if (!isNaN(num))
2676 w3c_slidy.goto_slide(num-1);
2677 }
2678
2679 if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)
2680 {
2681 w3c_slidy.show_slide_number();
2682
2683 if (w3c_slidy.time_left > 0)
2684 w3c_slidy.time_left -= 200;
2685 }
2686 },
2687
2688 get_timer: function () {
2689 var timer = "";
2690 if (w3c_slidy.time_left)
2691 {
2692 var mins, secs;
2693 secs = Math.floor(w3c_slidy.time_left/1000);
2694 mins = Math.floor(secs / 60);
2695 secs = secs % 60;
2696 timer = (mins ? mins+"m" : "") + secs + "s ";
2697 }
2698
2699 return timer;
2700 },
2701
2702 // this doesn't push location onto history stack for IE
2703 // for which a hidden iframe hack is needed: load page into
2704 // the iframe with script that set's parent's location.hash
2705 // but that won't work for standalone use unless we can
2706 // create the page dynamically via a javascript: URL
2707 set_location: function () {
2708 var uri = w3c_slidy.page_address(location.href);
2709 var hash = "#(" + (w3c_slidy.slide_number+1) + ")";
2710
2711 if (w3c_slidy.slide_number >= 0)
2712 uri = uri + hash;
2713
2714 if (w3c_slidy.ie && !w3c_slidy.ie8)
2715 w3c_slidy.push_hash(hash);
2716
2717 if (uri != location.href) // && !khtml
2718 location.href = uri;
2719
2720 if (this.khtml)
2721 hash = "(" + (w3c_slidy.slide_number+1) + ")";
2722
2723 if (!this.ie && location.hash != hash && location.hash != "")
2724 location.hash = hash;
2725
2726 document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
2727 w3c_slidy.show_slide_number();
2728 },
2729
2730 page_address: function (uri) {
2731 var i = uri.indexOf("#");
2732
2733 if (i < 0)
2734 i = uri.indexOf("%23");
2735
2736 // check if anchor is entire page
2737
2738 if (i < 0)
2739 return uri; // yes
2740
2741 return uri.substr(0, i);
2742 },
2743
2744 // only used for IE6 and IE7
2745 on_frame_loaded: function (hash) {
2746 location.hash = hash;
2747 var uri = w3c_slidy.page_address(location.href);
2748 location.href = uri + hash;
2749 },
2750
2751 // history hack with thanks to Bertrand Le Roy
2752 push_hash: function (hash) {
2753 if (hash == "") hash = "#(1)";
2754 window.location.hash = hash;
2755
2756 var doc = document.getElementById("historyFrame").contentWindow.document;
2757 },
2758
2759 // find current slide based upon location
2760 // first find target anchor and then look
2761 // for associated div element enclosing it
2762 // finally map that to slide number
2763 find_slide_number: function (uri) {
2764 // first get anchor from page location
2765
2766 var i = uri.indexOf("#");
2767
2768 // check if anchor is entire page
2769 if (i < 0)
2770 return 0; // yes
2771
2772 var anchor = unescape(uri.substr(i+1));
2773
2774 // now use anchor as XML ID to find target
2775 var target = document.getElementById(anchor);
2776
2777 if (!target)
2778 {
2779 // does anchor look like "(2)" for slide 2 ??
2780 // where first slide is (1)
2781 var re = /\((\d)+\)/;
2782
2783 if (anchor.match(re))
2784 {
2785 var num = parseInt(anchor.substring(1, anchor.length-1));
2786
2787 if (num > this.slides.length)
2788 num = 1;
2789
2790 if (--num < 0)
2791 num = 0;
2792
2793 return num;
2794 }
2795
2796 // accept [2] for backwards compatibility
2797 re = /\[(\d)+\]/;
2798
2799 if (anchor.match(re))
2800 {
2801 var num = parseInt(anchor.substring(1, anchor.length-1));
2802
2803 if (num > this.slides.length)
2804 num = 1;
2805
2806 if (--num < 0)
2807 num = 0;
2808
2809 return num;
2810 }
2811
2812 // oh dear unknown anchor
2813 return 0;
2814 }
2815
2816 // search for enclosing slide
2817
2818 while (true)
2819 {
2820 // browser coerces html elements to uppercase!
2821 if (target.nodeName.toLowerCase() == "div" &&
2822 this.has_class(target, "slide"))
2823 {
2824 // found the slide element
2825 break;
2826 }
2827
2828 // otherwise try parent element if any
2829
2830 target = target.parentNode;
2831
2832 if (!target)
2833 {
2834 return 0; // no luck!
2835 }
2836 };
2837
2838 for (i = 0; i < slides.length; ++i)
2839 {
2840 if (slides[i] == target)
2841 return i; // success
2842 }
2843
2844 // oh dear still no luck
2845 return 0;
2846 },
2847
2848 previous_slide: function (incremental) {
2849 if (!w3c_slidy.view_all)
2850 {
2851 var slide;
2852
2853 //jmi
2854 if (!w3c_slidy.incremental_display) {incremental = false;}
2855
2856 if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)
2857 {
2858 w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);
2859 w3c_slidy.set_eos_status(false);
2860 }
2861 else if (w3c_slidy.slide_number > 0)
2862 {
2863 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2864 w3c_slidy.hide_slide(slide);
2865
2866 w3c_slidy.slide_number = w3c_slidy.slide_number - 1;
2867 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2868 w3c_slidy.set_visibility_all_incremental("visible");
2869 w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
2870 w3c_slidy.set_eos_status(true);
2871 w3c_slidy.show_slide(slide);
2872 }
2873
2874 w3c_slidy.set_location();
2875
2876 if (!w3c_slidy.ns_pos)
2877 w3c_slidy.refresh_toolbar(200);
2878 }
2879 },
2880
2881 next_slide: function (incremental) {
2882 if (!w3c_slidy.view_all)
2883 {
2884 var slide, last = w3c_slidy.last_shown;
2885 //jmi
2886 if (!w3c_slidy.incremental_display) {incremental = false;}
2887
2888 if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)
2889 w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);
2890
2891 if ((!incremental || w3c_slidy.last_shown == null) &&
2892 w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
2893 {
2894 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2895 w3c_slidy.hide_slide(slide);
2896
2897 w3c_slidy.slide_number = w3c_slidy.slide_number + 1;
2898 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2899 w3c_slidy.last_shown = null;
2900 w3c_slidy.set_visibility_all_incremental("hidden");
2901 w3c_slidy.show_slide(slide);
2902 }
2903 else if (!w3c_slidy.last_shown)
2904 {
2905 if (last && incremental)
2906 w3c_slidy.last_shown = last;
2907 }
2908
2909 w3c_slidy.set_location();
2910
2911 w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
2912
2913 if (!w3c_slidy.ns_pos)
2914 w3c_slidy.refresh_toolbar(200);
2915 }
2916 },
2917
2918 // to first slide with nothing revealed
2919 // i.e. state at start of presentation
2920 first_slide: function () {
2921 if (!w3c_slidy.view_all)
2922 {
2923 var slide;
2924
2925 if (w3c_slidy.slide_number != 0)
2926 {
2927 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2928 w3c_slidy.hide_slide(slide);
2929
2930 w3c_slidy.slide_number = 0;
2931 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2932 w3c_slidy.last_shown = null;
2933 w3c_slidy.set_visibility_all_incremental("hidden");
2934 w3c_slidy.show_slide(slide);
2935 }
2936
2937 w3c_slidy.set_eos_status(
2938 !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
2939 w3c_slidy.set_location();
2940 }
2941 },
2942
2943 // goto last slide with everything revealed
2944 // i.e. state at end of presentation
2945 last_slide: function () {
2946 if (!w3c_slidy.view_all)
2947 {
2948 var slide;
2949
2950 w3c_slidy.last_shown = null; //revealNextItem(lastShown);
2951
2952 if (w3c_slidy.last_shown == null &&
2953 w3c_slidy.slide_number < w3c_slidy.slides.length - 1)
2954 {
2955 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2956 w3c_slidy.hide_slide(slide);
2957 w3c_slidy.slide_number = w3c_slidy.slides.length - 1;
2958 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2959 w3c_slidy.set_visibility_all_incremental("visible");
2960 w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
2961
2962 w3c_slidy.show_slide(slide);
2963 }
2964 else
2965 {
2966 w3c_slidy.set_visibility_all_incremental("visible");
2967 w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);
2968 }
2969
2970 w3c_slidy.set_eos_status(true);
2971 w3c_slidy.set_location();
2972 }
2973 },
2974
2975
2976 // ### check this and consider add/remove class
2977 set_eos_status: function (state) {
2978 if (this.eos)
2979 this.eos.style.color = (state ? "rgb(240,240,240)" : "red");
2980 },
2981
2982 // first slide is 0
2983 goto_slide: function (num) {
2984 //alert("going to slide " + (num+1));
2985 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
2986 w3c_slidy.hide_slide(slide);
2987 w3c_slidy.slide_number = num;
2988 slide = w3c_slidy.slides[w3c_slidy.slide_number];
2989 w3c_slidy.last_shown = null;
2990 w3c_slidy.set_visibility_all_incremental("hidden");
2991 w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));
2992 document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";
2993 w3c_slidy.show_slide(slide);
2994 w3c_slidy.show_slide_number();
2995 },
2996
2997
2998 show_slide: function (slide) {
2999 this.sync_background(slide);
3000 window.scrollTo(0,0);
3001 this.remove_class(slide, "hidden");
3002 },
3003
3004 hide_slide: function (slide) {
3005 this.add_class(slide, "hidden");
3006 },
3007
3008 // show just the backgrounds pertinent to this slide
3009 // when slide background-color is transparent
3010 // this should now work with rgba color values
3011 sync_background: function (slide) {
3012 var background;
3013 var bgColor;
3014
3015 if (slide.currentStyle)
3016 bgColor = slide.currentStyle["backgroundColor"];
3017 else if (document.defaultView)
3018 {
3019 var styles = document.defaultView.getComputedStyle(slide,null);
3020
3021 if (styles)
3022 bgColor = styles.getPropertyValue("background-color");
3023 else // broken implementation probably due Safari or Konqueror
3024 {
3025 //alert("defective implementation of getComputedStyle()");
3026 bgColor = "transparent";
3027 }
3028 }
3029 else
3030 bgColor == "transparent";
3031
3032 if (bgColor == "transparent" ||
3033 bgColor.indexOf("rgba") >= 0 ||
3034 bgColor.indexOf("opacity") >= 0)
3035 {
3036 var slideClass = this.get_class_list(slide);
3037
3038 for (var i = 0; i < this.backgrounds.length; i++)
3039 {
3040 background = this.backgrounds[i];
3041
3042 var bgClass = this.get_class_list(background);
3043
3044 if (this.matching_background(slideClass, bgClass))
3045 this.remove_class(background, "hidden");
3046 else
3047 this.add_class(background, "hidden");
3048 }
3049 }
3050 else // forcibly hide all backgrounds
3051 this.hide_backgrounds();
3052 },
3053
3054 hide_backgrounds: function () {
3055 for (var i = 0; i < this.backgrounds.length; i++)
3056 {
3057 background = this.backgrounds[i];
3058 this.add_class(background, "hidden");
3059 }
3060 },
3061
3062 // compare classes for slide and background
3063 matching_background: function (slideClass, bgClass) {
3064 var i, count, pattern, result;
3065
3066 // define pattern as regular expression
3067 pattern = /\w+/g;
3068
3069 // check background class names
3070 result = bgClass.match(pattern);
3071
3072 for (i = count = 0; i < result.length; i++)
3073 {
3074 if (result[i] == "hidden")
3075 continue;
3076
3077 if (result[i] == "background")
3078 continue;
3079
3080 ++count;
3081 }
3082
3083 if (count == 0) // default match
3084 return true;
3085
3086 // check for matches and place result in array
3087 result = slideClass.match(pattern);
3088
3089 // now check if desired name is present for background
3090 for (i = count = 0; i < result.length; i++)
3091 {
3092 if (result[i] == "hidden")
3093 continue;
3094
3095 if (this.has_token(bgClass, result[i]))
3096 return true;
3097 }
3098
3099 return false;
3100 },
3101
3102 resized: function () {
3103 var width = 0;
3104
3105 if ( typeof( window.innerWidth ) == 'number' )
3106 width = window.innerWidth; // Non IE browser
3107 else if (document.documentElement && document.documentElement.clientWidth)
3108 width = document.documentElement.clientWidth; // IE6
3109 else if (document.body && document.body.clientWidth)
3110 width = document.body.clientWidth; // IE4
3111
3112 var height = 0;
3113
3114 if ( typeof( window.innerHeight ) == 'number' )
3115 height = window.innerHeight; // Non IE browser
3116 else if (document.documentElement && document.documentElement.clientHeight)
3117 height = document.documentElement.clientHeight; // IE6
3118 else if (document.body && document.body.clientHeight)
3119 height = document.body.clientHeight; // IE4
3120
3121 if (height && (width/height > 1.05*1024/768))
3122 {
3123 width = height * 1024.0/768;
3124 }
3125
3126 // IE fires onresize even when only font size is changed!
3127 // so we do a check to avoid blocking < and > actions
3128 if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)
3129 {
3130 if (width >= 1100)
3131 w3c_slidy.size_index = 5; // 4
3132 else if (width >= 1000)
3133 w3c_slidy.size_index = 4; // 3
3134 else if (width >= 800)
3135 w3c_slidy.size_index = 3; // 2
3136 else if (width >= 600)
3137 w3c_slidy.size_index = 2; // 1
3138 else if (width)
3139 w3c_slidy.size_index = 0;
3140
3141 // add in font size adjustment from meta element e.g.
3142 // <meta name="font-size-adjustment" content="-2" />
3143 // useful when slides have too much content ;-)
3144
3145 if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&
3146 w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)
3147 w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;
3148
3149 // enables cross browser use of relative width/height
3150 // on object elements for use with SVG and Flash media
3151 w3c_slidy.adjust_object_dimensions(width, height);
3152
3153 if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])
3154 {
3155 document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
3156 }
3157
3158 w3c_slidy.last_width = width;
3159 w3c_slidy.last_height = height;
3160
3161 // force reflow to work around Mozilla bug
3162 if (w3c_slidy.ns_pos)
3163 {
3164 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
3165 w3c_slidy.hide_slide(slide);
3166 w3c_slidy.show_slide(slide);
3167 }
3168
3169 // force correct positioning of toolbar
3170 w3c_slidy.refresh_toolbar(200);
3171 }
3172 },
3173
3174 scrolled: function () {
3175 if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)
3176 {
3177 w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();
3178 // hide toolbar
3179 w3c_slidy.toolbar.style.display = "none";
3180
3181 // make it reappear later
3182 if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)
3183 {
3184 setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);
3185 w3c_slidy.scrollhack = 1;
3186 }
3187 }
3188 },
3189
3190 hide_toolbar: function () {
3191 w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");
3192 window.focus();
3193 },
3194
3195 // used to ensure IE refreshes toolbar in correct position
3196 refresh_toolbar: function (interval) {
3197 if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)
3198 {
3199 w3c_slidy.hide_toolbar();
3200 setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);
3201 }
3202 },
3203
3204 // restores toolbar after short delay
3205 show_toolbar: function () {
3206 if (w3c_slidy.want_toolbar)
3207 {
3208 w3c_slidy.toolbar.style.display = "block";
3209
3210 if (!w3c_slidy.ns_pos)
3211 {
3212 // adjust position to allow for scrolling
3213 var xoffset = w3c_slidy.scroll_x_offset();
3214 w3c_slidy.toolbar.style.left = xoffset;
3215 w3c_slidy.toolbar.style.right = xoffset;
3216
3217 // determine vertical scroll offset
3218 //var yoffset = scrollYOffset();
3219
3220 // bottom is doc height - window height - scroll offset
3221 //var bottom = documentHeight() - lastHeight - yoffset
3222
3223 //if (yoffset > 0 || documentHeight() > lastHeight)
3224 // bottom += 16; // allow for height of scrollbar
3225
3226 w3c_slidy.toolbar.style.bottom = 0; //bottom;
3227 }
3228
3229 w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");
3230 }
3231
3232 w3c_slidy.scrollhack = 0;
3233
3234
3235 // set the keyboard focus to the help link on the
3236 // toolbar to ensure that document has the focus
3237 // IE doesn't always work with window.focus()
3238 // and this hack has benefit of Enter for help
3239
3240 try
3241 {
3242 if (!w3c_slidy.opera)
3243 w3c_slidy.help_anchor.focus();
3244 }
3245 catch (e)
3246 {
3247 }
3248 },
3249
3250 // invoked via F key
3251 toggle_toolbar: function () {
3252 if (!w3c_slidy.view_all)
3253 {
3254 if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))
3255 {
3256 w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")
3257 w3c_slidy.want_toolbar = 1;
3258 }
3259 else
3260 {
3261 w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")
3262 w3c_slidy.want_toolbar = 0;
3263 }
3264 }
3265 },
3266
3267 scroll_x_offset: function () {
3268 if (window.pageXOffset)
3269 return self.pageXOffset;
3270
3271 if (document.documentElement &&
3272 document.documentElement.scrollLeft)
3273 return document.documentElement.scrollLeft;
3274
3275 if (document.body)
3276 return document.body.scrollLeft;
3277
3278 return 0;
3279 },
3280
3281 scroll_y_offset: function () {
3282 if (window.pageYOffset)
3283 return self.pageYOffset;
3284
3285 if (document.documentElement &&
3286 document.documentElement.scrollTop)
3287 return document.documentElement.scrollTop;
3288
3289 if (document.body)
3290 return document.body.scrollTop;
3291
3292 return 0;
3293 },
3294
3295 // looking for a way to determine height of slide content
3296 // the slide itself is set to the height of the window
3297 optimize_font_size: function () {
3298 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
3299
3300 //var dh = documentHeight(); //getDocHeight(document);
3301 var dh = slide.scrollHeight;
3302 var wh = getWindowHeight();
3303 var u = 100 * dh / wh;
3304
3305 alert("window utilization = " + u + "% (doc "
3306 + dh + " win " + wh + ")");
3307 },
3308
3309 // from document object
3310 get_doc_height: function (doc) {
3311 if (!doc)
3312 doc = document;
3313
3314 if (doc && doc.body && doc.body.offsetHeight)
3315 return doc.body.offsetHeight; // ns/gecko syntax
3316
3317 if (doc && doc.body && doc.body.scrollHeight)
3318 return doc.body.scrollHeight;
3319
3320 alert("couldn't determine document height");
3321 },
3322
3323 get_window_height: function () {
3324 if ( typeof( window.innerHeight ) == 'number' )
3325 return window.innerHeight; // Non IE browser
3326
3327 if (document.documentElement && document.documentElement.clientHeight)
3328 return document.documentElement.clientHeight; // IE6
3329
3330 if (document.body && document.body.clientHeight)
3331 return document.body.clientHeight; // IE4
3332 },
3333
3334 document_height: function () {
3335 var sh, oh;
3336
3337 sh = document.body.scrollHeight;
3338 oh = document.body.offsetHeight;
3339
3340 if (sh && oh)
3341 {
3342 return (sh > oh ? sh : oh);
3343 }
3344
3345 // no idea!
3346 return 0;
3347 },
3348
3349 smaller: function () {
3350 if (w3c_slidy.size_index > 0)
3351 {
3352 --w3c_slidy.size_index;
3353 }
3354
3355 w3c_slidy.toolbar.style.display = "none";
3356 document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
3357 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
3358 w3c_slidy.hide_slide(slide);
3359 w3c_slidy.show_slide(slide);
3360 setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
3361 },
3362
3363 bigger: function () {
3364 if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)
3365 {
3366 ++w3c_slidy.size_index;
3367 }
3368
3369 w3c_slidy.toolbar.style.display = "none";
3370 document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];
3371 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
3372 w3c_slidy.hide_slide(slide);
3373 w3c_slidy.show_slide(slide);
3374 setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);
3375 },
3376
3377 // enables cross browser use of relative width/height
3378 // on object elements for use with SVG and Flash media
3379 // with thanks to Ivan Herman for the suggestion
3380 adjust_object_dimensions: function (width, height) {
3381 for( var i = 0; i < w3c_slidy.objects.length; i++ )
3382 {
3383 var obj = this.objects[i];
3384 var mimeType = obj.getAttribute("type");
3385
3386 if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")
3387 {
3388 if ( !obj.initialWidth )
3389 obj.initialWidth = obj.getAttribute("width");
3390
3391 if ( !obj.initialHeight )
3392 obj.initialHeight = obj.getAttribute("height");
3393
3394 if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )
3395 {
3396 var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));
3397 var newW = width * (w/100.0);
3398 obj.setAttribute("width",newW);
3399 }
3400
3401 if ( obj.initialHeight &&
3402 obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )
3403 {
3404 var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));
3405 var newH = height * (h/100.0);
3406 obj.setAttribute("height", newH);
3407 }
3408 }
3409 }
3410 },
3411
3412 // needed for Opera to inhibit default behavior
3413 // since Opera delivers keyPress even if keyDown
3414 // was cancelled
3415 key_press: function (event) {
3416 if (!event)
3417 event = window.event;
3418
3419 if (!w3c_slidy.key_wanted)
3420 return w3c_slidy.cancel(event);
3421
3422 return true;
3423 },
3424
3425 // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes
3426 key_down: function (event) {
3427 var key, target, tag;
3428
3429 w3c_slidy.key_wanted = true;
3430
3431 if (!event)
3432 event = window.event;
3433
3434 // kludge around NS/IE differences
3435 if (window.event)
3436 {
3437 key = window.event.keyCode;
3438 target = window.event.srcElement;
3439 }
3440 else if (event.which)
3441 {
3442 key = event.which;
3443 target = event.target;
3444 }
3445 else
3446 return true; // Yikes! unknown browser
3447
3448 // ignore event if key value is zero
3449 // as for alt on Opera and Konqueror
3450 if (!key)
3451 return true;
3452
3453 // avoid interfering with keystroke
3454 // behavior for non-slidy chrome elements
3455 if (!w3c_slidy.slidy_chrome(target) &&
3456 w3c_slidy.special_element(target))
3457 return true;
3458
3459 // check for concurrent control/command/alt key
3460 // but are these only present on mouse events?
3461
3462 if (event.ctrlKey || event.altKey || event.metaKey)
3463 return true;
3464
3465 // dismiss table of contents if visible
3466 if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)
3467 {
3468 w3c_slidy.hide_table_of_contents(true);
3469
3470 if (key == 27 || key == 84 || key == 67)
3471 return w3c_slidy.cancel(event);
3472 }
3473
3474 if (key == 34) // Page Down
3475 {
3476 if (w3c_slidy.view_all)
3477 return true;
3478
3479 w3c_slidy.next_slide(false);
3480 return w3c_slidy.cancel(event);
3481 }
3482 else if (key == 33) // Page Up
3483 {
3484 if (w3c_slidy.view_all)
3485 return true;
3486
3487 w3c_slidy.previous_slide(false);
3488 return w3c_slidy.cancel(event);
3489 }
3490 else if (key == 32) // space bar
3491 {
3492 w3c_slidy.next_slide(true);
3493 return w3c_slidy.cancel(event);
3494 }
3495 else if (key == 37) // Left arrow
3496 {
3497 w3c_slidy.previous_slide(!event.shiftKey);
3498 return w3c_slidy.cancel(event);
3499 }
3500 else if (key == 36) // Home
3501 {
3502 w3c_slidy.first_slide();
3503 return w3c_slidy.cancel(event);
3504 }
3505 else if (key == 35) // End
3506 {
3507 w3c_slidy.last_slide();
3508 return w3c_slidy.cancel(event);
3509 }
3510 else if (key == 39) // Right arrow
3511 {
3512 w3c_slidy.next_slide(!event.shiftKey);
3513 return w3c_slidy.cancel(event);
3514 }
3515 else if (key == 13) // Enter
3516 {
3517 if (w3c_slidy.outline)
3518 {
3519 if (w3c_slidy.outline.visible)
3520 w3c_slidy.fold(w3c_slidy.outline);
3521 else
3522 w3c_slidy.unfold(w3c_slidy.outline);
3523
3524 return w3c_slidy.cancel(event);
3525 }
3526 }
3527 else if (key == 188) // < for smaller fonts
3528 {
3529 w3c_slidy.smaller();
3530 return w3c_slidy.cancel(event);
3531 }
3532 else if (key == 190) // > for larger fonts
3533 {
3534 w3c_slidy.bigger();
3535 return w3c_slidy.cancel(event);
3536 }
3537 else if (key == 189 || key == 109) // - for smaller fonts
3538 {
3539 w3c_slidy.smaller();
3540 return w3c_slidy.cancel(event);
3541 }
3542 else if (key == 187 || key == 191 || key == 107) // = + for larger fonts
3543 {
3544 w3c_slidy.bigger();
3545 return w3c_slidy.cancel(event);
3546 }
3547 else if (key == 83) // S for smaller fonts
3548 {
3549 w3c_slidy.smaller();
3550 return w3c_slidy.cancel(event);
3551 }
3552 else if (key == 66) // B for larger fonts
3553 {
3554 w3c_slidy.bigger();
3555 return w3c_slidy.cancel(event);
3556 }
3557 else if (key == 90) // Z for last slide
3558 {
3559 w3c_slidy.last_slide();
3560 return w3c_slidy.cancel(event);
3561 }
3562 else if (key == 70) // F for toggle toolbar
3563 {
3564 w3c_slidy.toggle_toolbar();
3565 return w3c_slidy.cancel(event);
3566 }
3567 else if (key == 65) // A for toggle view single/all slides
3568 {
3569 w3c_slidy.toggle_view();
3570 return w3c_slidy.cancel(event);
3571 }
3572 else if (key == 75) // toggle action of left click for next page
3573 {
3574 w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;
3575 var alert_msg = (w3c_slidy.mouse_click_enabled ?
3576 "enabled" : "disabled") + " mouse click advance";
3577
3578 alert(w3c_slidy.localize(alert_msg));
3579 return w3c_slidy.cancel(event);
3580 }
3581 else if (key == 84 || key == 67) // T or C for table of contents
3582 {
3583 if (w3c_slidy.toc)
3584 w3c_slidy.toggle_table_of_contents();
3585
3586 return w3c_slidy.cancel(event);
3587 }
3588 else if (key == 72) // H for help
3589 {
3590 window.location = w3c_slidy.help_page;
3591 return w3c_slidy.cancel(event);
3592 }
3593 //jmi
3594 else if (key == 73) // I to toggle incremental display
3595 {
3596 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
3597 w3c_slidy.hide_slide(slide);
3598 if (w3c_slidy.incremental_display) { w3c_slidy.set_visibility_all_incremental("visible"); }
3599 w3c_slidy.incremental_display = !w3c_slidy.incremental_display ;
3600 w3c_slidy.last_shown = null ;
3601 w3c_slidy.set_visibility_all_incremental("hidden");
3602 //this.set_eos_status(true);
3603 w3c_slidy.show_slide(slide);
3604 return w3c_slidy.cancel(event);
3605 }
3606 else if (key == 76) // L to toggle color-set
3607 {
3608 w3c_slidy.toggle_color_set();
3609 return w3c_slidy.cancel(event);
3610 }
3611 else if (key == 77) // display help_keymap
3612 {
3613 alert(w3c_slidy.help_keymap);
3614 return w3c_slidy.cancel(event);
3615 }
3616 //jmi end
3617 //else alert("key code is "+ key);
3618 return true;
3619 },
3620
3621 // safe for both text/html and application/xhtml+xml
3622 create_element: function (name) {
3623 if (this.xhtml && (typeof document.createElementNS != 'undefined'))
3624 return document.createElementNS("http://www.w3.org/1999/xhtml", name)
3625
3626 return document.createElement(name);
3627 },
3628
3629 get_element_style: function (elem, IEStyleProp, CSSStyleProp) {
3630 if (elem.currentStyle)
3631 {
3632 return elem.currentStyle[IEStyleProp];
3633 }
3634 else if (window.getComputedStyle)
3635 {
3636 var compStyle = window.getComputedStyle(elem, "");
3637 return compStyle.getPropertyValue(CSSStyleProp);
3638 }
3639 return "";
3640 },
3641
3642 // the string str is a whitespace separated list of tokens
3643 // test if str contains a particular token, e.g. "slide"
3644 has_token: function (str, token) {
3645 if (str)
3646 {
3647 // define pattern as regular expression
3648 var pattern = /\w+/g;
3649
3650 // check for matches
3651 // place result in array
3652 var result = str.match(pattern);
3653
3654 // now check if desired token is present
3655 for (var i = 0; i < result.length; i++)
3656 {
3657 if (result[i] == token)
3658 return true;
3659 }
3660 }
3661
3662 return false;
3663 },
3664
3665 get_class_list: function (element) {
3666 if (typeof element.className != 'undefined')
3667 return element.className;
3668
3669 return element.getAttribute("class");
3670 },
3671
3672 has_class: function (element, name) {
3673 if (element.nodeType != 1)
3674 return false;
3675
3676 var regexp = new RegExp("(^| )" + name + "\W*");
3677
3678 if (typeof element.className != 'undefined')
3679 return regexp.test(element.className);
3680
3681 return regexp.test(element.getAttribute("class"));
3682 },
3683
3684 remove_class: function (element, name) {
3685 var regexp = new RegExp("(^| )" + name + "\W*");
3686 var clsval = "";
3687
3688 if (typeof element.className != 'undefined')
3689 {
3690 clsval = element.className;
3691
3692 if (clsval)
3693 {
3694 clsval = clsval.replace(regexp, "");
3695 element.className = clsval;
3696 }
3697 }
3698 else
3699 {
3700 clsval = element.getAttribute("class");
3701
3702 if (clsval)
3703 {
3704 clsval = clsval.replace(regexp, "");
3705 element.setAttribute("class", clsval);
3706 }
3707 }
3708 },
3709
3710 add_class: function (element, name) {
3711 if (!this.has_class(element, name))
3712 {
3713 if (typeof element.className != 'undefined')
3714 element.className += " " + name;
3715 else
3716 {
3717 var clsval = element.getAttribute("class");
3718 clsval = clsval ? clsval + " " + name : name;
3719 element.setAttribute("class", clsval);
3720 }
3721 }
3722 },
3723
3724 // HTML elements that can be used with class="incremental"
3725 // note that you can also put the class on containers like
3726 // up, ol, dl, and div to make their contents appear
3727 // incrementally. Upper case is used since this is what
3728 // browsers report for HTML node names (text/html).
3729 incremental_elements: null,
3730 okay_for_incremental: function (name) {
3731 if (!this.incremental_elements)
3732 {
3733 var inclist = new Array();
3734 inclist["p"] = true;
3735 inclist["pre"] = true;
3736 inclist["li"] = true;
3737 inclist["blockquote"] = true;
3738 inclist["dt"] = true;
3739 inclist["dd"] = true;
3740 inclist["h2"] = true;
3741 inclist["h3"] = true;
3742 inclist["h4"] = true;
3743 inclist["h5"] = true;
3744 inclist["h6"] = true;
3745 inclist["span"] = true;
3746 inclist["address"] = true;
3747 inclist["table"] = true;
3748 inclist["tr"] = true;
3749 inclist["th"] = true;
3750 inclist["td"] = true;
3751 inclist["img"] = true;
3752 inclist["object"] = true;
3753 this.incremental_elements = inclist;
3754 }
3755 return this.incremental_elements[name.toLowerCase()];
3756 },
3757
3758 next_incremental_item: function (node) {
3759 var br = this.is_xhtml ? "br" : "BR";
3760 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
3761
3762 for (;;)
3763 {
3764 node = w3c_slidy.next_node(slide, node);
3765
3766 if (node == null || node.parentNode == null)
3767 break;
3768
3769 if (node.nodeType == 1) // ELEMENT
3770 {
3771 if (node.nodeName == br)
3772 continue;
3773
3774 if (w3c_slidy.has_class(node, "incremental")
3775 && w3c_slidy.okay_for_incremental(node.nodeName))
3776 return node;
3777
3778 if (w3c_slidy.has_class(node.parentNode, "incremental")
3779 && !w3c_slidy.has_class(node, "non-incremental"))
3780 return node;
3781 }
3782 }
3783
3784 return node;
3785 },
3786
3787 previous_incremental_item: function (node) {
3788 var br = this.is_xhtml ? "br" : "BR";
3789 var slide = w3c_slidy.slides[w3c_slidy.slide_number];
3790
3791 for (;;)
3792 {
3793 node = w3c_slidy.previous_node(slide, node);
3794
3795 if (node == null || node.parentNode == null)
3796 break;
3797
3798 if (node.nodeType == 1)
3799 {
3800 if (node.nodeName == br)
3801 continue;
3802
3803 if (w3c_slidy.has_class(node, "incremental")
3804 && w3c_slidy.okay_for_incremental(node.nodeName))
3805 return node;
3806
3807 if (w3c_slidy.has_class(node.parentNode, "incremental")
3808 && !w3c_slidy.has_class(node, "non-incremental"))
3809 return node;
3810 }
3811 }
3812
3813 return node;
3814 },
3815
3816 // set visibility for all elements on current slide with
3817 // a parent element with attribute class="incremental"
3818 set_visibility_all_incremental: function (value) {
3819 var node = this.next_incremental_item(null);
3820
3821 //jmi
3822 if (!w3c_slidy.incremental_display) {value = "visible";}
3823
3824 if (value == "hidden")
3825 {
3826 while (node)
3827 {
3828 w3c_slidy.add_class(node, "invisible");
3829 node = w3c_slidy.next_incremental_item(node);
3830 }
3831 }
3832 else // value == "visible"
3833 {
3834 while (node)
3835 {
3836 w3c_slidy.remove_class(node, "invisible");
3837 node = w3c_slidy.next_incremental_item(node);
3838 }
3839 }
3840 },
3841
3842 // reveal the next hidden item on the slide
3843 // node is null or the node that was last revealed
3844 reveal_next_item: function (node) {
3845 node = w3c_slidy.next_incremental_item(node);
3846
3847 if (node && node.nodeType == 1) // an element
3848 w3c_slidy.remove_class(node, "invisible");
3849
3850 return node;
3851 },
3852
3853 // exact inverse of revealNextItem(node)
3854 hide_previous_item: function (node) {
3855 if (node && node.nodeType == 1) // an element
3856 w3c_slidy.add_class(node, "invisible");
3857
3858 return this.previous_incremental_item(node);
3859 },
3860
3861 // left to right traversal of root's content
3862 next_node: function (root, node) {
3863 if (node == null)
3864 return root.firstChild;
3865
3866 if (node.firstChild)
3867 return node.firstChild;
3868
3869 if (node.nextSibling)
3870 return node.nextSibling;
3871
3872 for (;;)
3873 {
3874 node = node.parentNode;
3875
3876 if (!node || node == root)
3877 break;
3878
3879 if (node && node.nextSibling)
3880 return node.nextSibling;
3881 }
3882
3883 return null;
3884 },
3885
3886 // right to left traversal of root's content
3887 previous_node: function (root, node) {
3888 if (node == null)
3889 {
3890 node = root.lastChild;
3891
3892 if (node)
3893 {
3894 while (node.lastChild)
3895 node = node.lastChild;
3896 }
3897
3898 return node;
3899 }
3900
3901 if (node.previousSibling)
3902 {
3903 node = node.previousSibling;
3904
3905 while (node.lastChild)
3906 node = node.lastChild;
3907
3908 return node;
3909 }
3910
3911 if (node.parentNode != root)
3912 return node.parentNode;
3913
3914 return null;
3915 },
3916
3917 previous_sibling_element: function (el) {
3918 el = el.previousSibling;
3919
3920 while (el && el.nodeType != 1)
3921 el = el.previousSibling;
3922
3923 return el;
3924 },
3925
3926 next_sibling_element: function (el) {
3927 el = el.nextSibling;
3928
3929 while (el && el.nodeType != 1)
3930 el = el.nextSibling;
3931
3932 return el;
3933 },
3934
3935 first_child_element: function (el) {
3936 var node;
3937
3938 for (node = el.firstChild; node; node = node.nextSibling)
3939 {
3940 if (node.nodeType == 1)
3941 break;
3942 }
3943
3944 return node;
3945 },
3946
3947 first_tag: function (element, tag) {
3948 var node;
3949
3950 if (!this.is_xhtml)
3951 tag = tag.toUpperCase();
3952
3953 for (node = element.firstChild; node; node = node.nextSibling)
3954 {
3955 if (node.nodeType == 1 && node.nodeName == tag)
3956 break;
3957 }
3958
3959 return node;
3960 },
3961
3962 hide_selection: function () {
3963 if (window.getSelection) // Firefox, Chromium, Safari, Opera
3964 {
3965 var selection = window.getSelection();
3966
3967 if (selection.rangeCount > 0)
3968 {
3969 var range = selection.getRangeAt(0);
3970 range.collapse (false);
3971 }
3972 }
3973 else // Internet Explorer
3974 {
3975 var textRange = document.selection.createRange ();
3976 textRange.collapse (false);
3977 }
3978 },
3979
3980 get_selected_text: function () {
3981 try
3982 {
3983 if (window.getSelection)
3984 return window.getSelection().toString();
3985
3986 if (document.getSelection)
3987 return document.getSelection().toString();
3988
3989 if (document.selection)
3990 return document.selection.createRange().text;
3991 }
3992 catch (e)
3993 {
3994 }
3995
3996 return "";
3997 },
3998
3999 // make note of length of selected text
4000 // as this evaluates to zero in click event
4001 mouse_button_up: function (e) {
4002 w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;
4003 },
4004
4005 // right mouse button click is reserved for context menus
4006 // it is more reliable to detect rightclick than leftclick
4007 mouse_button_click: function (e) {
4008 var rightclick = false;
4009 var leftclick = false;
4010 var middleclick = false;
4011 var target;
4012
4013 if (!e)
4014 var e = window.event;
4015
4016 if (e.target)
4017 target = e.target;
4018 else if (e.srcElement)
4019 target = e.srcElement;
4020
4021 // work around Safari bug
4022 if (target.nodeType == 3)
4023 target = target.parentNode;
4024
4025 if (e.which) // all browsers except IE
4026 {
4027 leftclick = (e.which == 1);
4028 middleclick = (e.which == 2);
4029 rightclick = (e.which == 3);
4030 }
4031 else if (e.button)
4032 {
4033 // Konqueror gives 1 for left, 4 for middle
4034 // IE6 gives 0 for left and not 1 as I expected
4035
4036 if (e.button == 4)
4037 middleclick = true;
4038
4039 // all browsers agree on 2 for right button
4040 rightclick = (e.button == 2);
4041 }
4042 else
4043 leftclick = true;
4044
4045 if (w3c_slidy.selected_text_len > 0)
4046 {
4047 w3c_slidy.stop_propagation(e);
4048 e.cancel = true;
4049 e.returnValue = false;
4050 return false;
4051 }
4052
4053 // dismiss table of contents
4054 w3c_slidy.hide_table_of_contents(false);
4055
4056 // check if target is something that probably want's clicks
4057 // e.g. a, embed, object, input, textarea, select, option
4058 var tag = target.nodeName.toLowerCase();
4059
4060 if (w3c_slidy.mouse_click_enabled && leftclick &&
4061 !w3c_slidy.special_element(target) &&
4062 !target.onclick)
4063 {
4064 w3c_slidy.next_slide(true);
4065 w3c_slidy.stop_propagation(e);
4066 e.cancel = true;
4067 e.returnValue = false;
4068 return false;
4069 }
4070
4071 return true;
4072 },
4073
4074 special_element: function (e) {
4075 var tag = e.nodeName.toLowerCase();
4076
4077 return e.onkeydown ||
4078 e.onclick ||
4079 tag == "a" ||
4080 tag == "embed" ||
4081 tag == "object" ||
4082 tag == "video" ||
4083 tag == "audio" ||
4084 tag == "input" ||
4085 tag == "textarea" ||
4086 tag == "select" ||
4087 tag == "option";
4088 },
4089
4090 slidy_chrome: function (el) {
4091 while (el)
4092 {
4093 if (el == w3c_slidy.toc ||
4094 el == w3c_slidy.toolbar ||
4095 w3c_slidy.has_class(el, "outline"))
4096 return true;
4097
4098 el = el.parentNode;
4099 }
4100
4101 return false;
4102 },
4103
4104 get_key: function (e)
4105 {
4106 var key;
4107
4108 // kludge around NS/IE differences
4109 if (typeof window.event != "undefined")
4110 key = window.event.keyCode;
4111 else if (e.which)
4112 key = e.which;
4113
4114 return key;
4115 },
4116
4117 get_target: function (e) {
4118 var target;
4119
4120 if (!e)
4121 e = window.event;
4122
4123 if (e.target)
4124 target = e.target;
4125 else if (e.srcElement)
4126 target = e.srcElement;
4127
4128 if (target.nodeType != 1)
4129 target = target.parentNode;
4130
4131 return target;
4132 },
4133
4134 // does display property provide correct defaults?
4135 is_block: function (elem) {
4136 var tag = elem.nodeName.toLowerCase();
4137
4138 return tag == "ol" || tag == "ul" || tag == "p" ||
4139 tag == "li" || tag == "table" || tag == "pre" ||
4140 tag == "h1" || tag == "h2" || tag == "h3" ||
4141 tag == "h4" || tag == "h5" || tag == "h6" ||
4142 tag == "blockquote" || tag == "address";
4143 },
4144
4145 add_listener: function (element, event, handler) {
4146 if (window.addEventListener)
4147 element.addEventListener(event, handler, false);
4148 else
4149 element.attachEvent("on"+event, handler);
4150 },
4151
4152 // used to prevent event propagation from field controls
4153 stop_propagation: function (event) {
4154 event = event ? event : window.event;
4155 event.cancelBubble = true; // for IE
4156
4157 if (event.stopPropagation)
4158 event.stopPropagation();
4159
4160 return true;
4161 },
4162
4163 cancel: function (event) {
4164 if (event)
4165 {
4166 event.cancel = true;
4167 event.returnValue = false;
4168
4169 if (event.preventDefault)
4170 event.preventDefault();
4171 }
4172
4173 w3c_slidy.key_wanted = false;
4174 return false;
4175 },
4176 // jmi
4177 init_color_sets: function(){
4178 if (this.color_sets.length == 0){
4179 // initialize color_sets array
4180 var tmp = document.styleSheets;
4181 var j = 0;
4182 for (var i=0;i<tmp.length;i++) {
4183 var css_name = null ;
4184 if (tmp[i].title) {
4185 css_name = tmp[i].title ;
4186 }
4187 if ((tmp[i].href) && (tmp[i].href.indexOf('.css') != -1)) {
4188 css_name = tmp[i].href.substring(tmp[i].href.lastIndexOf('/')+1,tmp[i].href.indexOf('.css')) ;
4189 }
4190 if ((css_name) && (css_name.indexOf('color_set') > 0)) {
4191 this.color_sets[j] = tmp[i];
4192 this.color_sets[j++].disabled = true;
4193 }
4194 }
4195 if (this.color_sets.length > 0){ this.color_sets[0].disabled = false; }
4196 }
4197 },
4198 toggle_color_set: function(){
4199 // toggle to the next color_set
4200 if (this.color_sets.length > 0){
4201 var i = 0;
4202 while ((i < this.color_sets.length) && (this.color_sets[i].disabled == true)) { i = i + 1 ; }
4203 if (i == this.color_sets.length) { i = i - 1; }
4204 this.color_sets[i].disabled = true ;
4205 this.color_sets[(i + 1) % (this.color_sets.length)].disabled = false ;
4206 }
4207 },
4208
4209 // for each language define an associative array
4210 // and also the help text which is longer
4211
4212 strings_es: {
4213 "slide":"pág.",
4214 "help?":"Ayuda",
4215 "contents?":"Índice",
4216 "table of contents":"tabla de contenidos",
4217 "Table of Contents":"Tabla de Contenidos",
4218 "restart presentation":"Reiniciar presentación",
4219 "restart?":"Inicio"
4220 },
4221 help_es:
4222 "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +
4223 "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",
4224
4225 strings_ca: {
4226 "slide":"pàg..",
4227 "help?":"Ajuda",
4228 "contents?":"Índex",
4229 "table of contents":"taula de continguts",
4230 "Table of Contents":"Taula de Continguts",
4231 "restart presentation":"Reiniciar presentació",
4232 "restart?":"Inici"
4233 },
4234 help_ca:
4235 "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +
4236 "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",
4237
4238 strings_cs: {
4239 "slide":"snímek",
4240 "help?":"nápověda",
4241 "contents?":"obsah",
4242 "table of contents":"obsah prezentace",
4243 "Table of Contents":"Obsah prezentace",
4244 "restart presentation":"znovu spustit prezentaci",
4245 "restart?":"restart"
4246 },
4247 help_cs:
4248 "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +
4249 "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +
4250 "dá zvětšit a zmenšit pomocí kláves B a S.",
4251
4252 strings_nl: {
4253 "slide":"pagina",
4254 "help?":"Help?",
4255 "contents?":"Inhoud?",
4256 "table of contents":"inhoudsopgave",
4257 "Table of Contents":"Inhoudsopgave",
4258 "restart presentation":"herstart presentatie",
4259 "restart?":"Herstart?"
4260 },
4261 help_nl:
4262 "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +
4263 "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",
4264
4265 strings_de: {
4266 "slide":"Seite",
4267 "help?":"Hilfe",
4268 "contents?":"Übersicht",
4269 "table of contents":"Inhaltsverzeichnis",
4270 "Table of Contents":"Inhaltsverzeichnis",
4271 "restart presentation":"Präsentation neu starten",
4272 "restart?":"Neustart"
4273 },
4274 help_de:
4275 "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +
4276 "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",
4277
4278 strings_pl: {
4279 "slide":"slajd",
4280 "help?":"pomoc?",
4281 "contents?":"spis treści?",
4282 "table of contents":"spis treści",
4283 "Table of Contents":"Spis Treści",
4284 "restart presentation":"Restartuj prezentację",
4285 "restart?":"restart?"
4286 },
4287 help_pl:
4288 "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +
4289 "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",
4290
4291 strings_fr: {
4292 "slide":"page",
4293 "help?":"Aide",
4294 "contents?":"Index",
4295 "table of contents":"table des matières",
4296 "Table of Contents":"Table des matières",
4297 "restart presentation":"Recommencer l'exposé",
4298 "restart?":"Début"
4299 },
4300 help_fr:
4301 "Naviguez avec la souris, la barre d'espace, les flèches " +
4302 "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +
4303 "les touches S et B pour modifier la taille de la police, M pour l'association des touches.",
4304
4305 strings_hu: {
4306 "slide":"oldal",
4307 "help?":"segítség",
4308 "contents?":"tartalom",
4309 "table of contents":"tartalomjegyzék",
4310 "Table of Contents":"Tartalomjegyzék",
4311 "restart presentation":"bemutató újraindítása",
4312 "restart?":"újraindítás"
4313 },
4314 help_hu:
4315 "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +
4316 "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +
4317 "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +
4318 "a szöveg méretét.",
4319
4320 strings_it: {
4321 "slide":"pag.",
4322 "help?":"Aiuto",
4323 "contents?":"Indice",
4324 "table of contents":"indice",
4325 "Table of Contents":"Indice",
4326 "restart presentation":"Ricominciare la presentazione",
4327 "restart?":"Inizio"
4328 },
4329 help_it:
4330 "Navigare con mouse, barra spazio, frecce sinistra/destra o " +
4331 "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",
4332
4333 strings_el: {
4334 "slide":"σελίδα",
4335 "help?":"βοήθεια;",
4336 "contents?":"περιεχόμενα;",
4337 "table of contents":"πίνακας περιεχομένων",
4338 "Table of Contents":"Πίνακας Περιεχομένων",
4339 "restart presentation":"επανεκκίνηση παρουσίασης",
4340 "restart?":"επανεκκίνηση;"
4341 },
4342 help_el:
4343 "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +
4344 "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +
4345 "το μέγεθος της γραμματοσειράς.",
4346
4347 strings_ja: {
4348 "slide":"スライド",
4349 "help?":"ヘルプ",
4350 "contents?":"目次",
4351 "table of contents":"目次を表示",
4352 "Table of Contents":"目次",
4353 "restart presentation":"最初から再生",
4354 "restart?":"最初から"
4355 },
4356 help_ja:
4357 "マウス左クリック ・ スペース ・ 左右キー " +
4358 "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",
4359
4360 strings_zh: {
4361 "slide":"幻灯片",
4362 "help?":"帮助?",
4363 "contents?":"内容?",
4364 "table of contents":"目录",
4365 "Table of Contents":"目录",
4366 "restart presentation":"重新启动展示",
4367 "restart?":"重新启动?"
4368 },
4369 help_zh:
4370 "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +
4371 "用 S, B 改变字体大小.",
4372
4373 strings_ru: {
4374 "slide":"слайд",
4375 "help?":"помощь?",
4376 "contents?":"содержание?",
4377 "table of contents":"оглавление",
4378 "Table of Contents":"Оглавление",
4379 "restart presentation":"перезапустить презентацию",
4380 "restart?":"перезапуск?"
4381 },
4382 help_ru:
4383 "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +
4384 "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",
4385
4386 strings_sv: {
4387 "slide":"sida",
4388 "help?":"hjälp",
4389 "contents?":"innehåll",
4390 "table of contents":"innehållsförteckning",
4391 "Table of Contents":"Innehållsförteckning",
4392 "restart presentation":"visa presentationen från början",
4393 "restart?":"börja om"
4394 },
4395 help_sv:
4396 "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +
4397 "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +
4398 "Använd tangenterna S och B för att ändra textens storlek.",
4399
4400 strings: { },
4401
4402 localize: function (src) {
4403 if (src == "")
4404 return src;
4405
4406 // try full language code, e.g. en-US
4407 var s, lookup = w3c_slidy.strings[w3c_slidy.lang];
4408
4409 if (lookup)
4410 {
4411 s = lookup[src];
4412
4413 if (s)
4414 return s;
4415 }
4416
4417 // strip country code suffix, e.g.
4418 // try en if undefined for en-US
4419 var lg = w3c_slidy.lang.split("-");
4420
4421 if (lg.length > 1)
4422 {
4423 lookup = w3c_slidy.strings[lg[0]];
4424
4425 if (lookup)
4426 {
4427 s = lookup[src];
4428
4429 if (s)
4430 return s;
4431 }
4432 }
4433
4434 // otherwise string as is
4435 return src;
4436 },
4437
4438 init_localization: function () {
4439 var i18n = w3c_slidy;
4440 var help_text = w3c_slidy.help_text;
4441
4442 // each such language array is declared in the localize array
4443 // this is used as in w3c_slidy.localize("foo");
4444 this.strings = {
4445 "es":this.strings_es,
4446 "ca":this.strings_ca,
4447 "cs":this.strings_cs,
4448 "nl":this.strings_nl,
4449 "de":this.strings_de,
4450 "pl":this.strings_pl,
4451 "fr":this.strings_fr,
4452 "hu":this.strings_hu,
4453 "it":this.strings_it,
4454 "el":this.strings_el,
4455 "jp":this.strings_ja,
4456 "zh":this.strings_zh,
4457 "ru":this.strings_ru,
4458 "sv":this.strings_sv
4459 },
4460
4461 i18n.strings_es[help_text] = i18n.help_es;
4462 i18n.strings_ca[help_text] = i18n.help_ca;
4463 i18n.strings_cs[help_text] = i18n.help_cs;
4464 i18n.strings_nl[help_text] = i18n.help_nl;
4465 i18n.strings_de[help_text] = i18n.help_de;
4466 i18n.strings_pl[help_text] = i18n.help_pl;
4467 i18n.strings_fr[help_text] = i18n.help_fr;
4468 i18n.strings_hu[help_text] = i18n.help_hu;
4469 i18n.strings_it[help_text] = i18n.help_it;
4470 i18n.strings_el[help_text] = i18n.help_el;
4471 i18n.strings_ja[help_text] = i18n.help_ja;
4472 i18n.strings_zh[help_text] = i18n.help_zh;
4473 i18n.strings_ru[help_text] = i18n.help_ru;
4474 i18n.strings_sv[help_text] = i18n.help_sv;
4475
4476 w3c_slidy.lang = document.body.parentNode.getAttribute("lang");
4477
4478 if (!w3c_slidy.lang)
4479 w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");
4480
4481 if (!w3c_slidy.lang)
4482 w3c_slidy.lang = "en";
4483 }
4484 };
4485
4486 // hack for back button behavior
4487 if (w3c_slidy.ie6 || w3c_slidy.ie7)
4488 {
4489 document.write("<iframe id='historyFrame' " +
4490 "src='javascript:\"<html"+"></"+"html>\"' " +
4491 "height='1' width='1' " +
4492 "style='position:absolute;left:-800px'></iframe>");
4493 }
4494
4495 // attach event listeners for initialization
4496 w3c_slidy.set_up();
4497
4498 // hide the slides as soon as body element is available
4499 // to reduce annoying screen mess before the onload event
4500 setTimeout(w3c_slidy.hide_slides, 50);
4501
4502 /*]]>*/
4503 </script>
4504 <script type="text/javascript">
4505 /*<![CDATA[*/
4506 /*
4507 LaTeXMathML.js
4508 ==============
4509
4510 This file, in this form, is due to Douglas Woodall, June 2006.
4511 It contains JavaScript functions to convert (most simple) LaTeX
4512 math notation to Presentation MathML. It was obtained by
4513 downloading the file ASCIIMathML.js from
4514 http://www1.chapman.edu/~jipsen/mathml/asciimathdownload/
4515 and modifying it so that it carries out ONLY those conversions
4516 that would be carried out in LaTeX. A description of the original
4517 file, with examples, can be found at
4518 www1.chapman.edu/~jipsen/mathml/asciimath.html
4519 ASCIIMathML: Math on the web for everyone
4520
4521 Here is the header notice from the original file:
4522
4523 ASCIIMathML.js
4524 ==============
4525 This file contains JavaScript functions to convert ASCII math notation
4526 to Presentation MathML. The conversion is done while the (X)HTML page
4527 loads, and should work with Firefox/Mozilla/Netscape 7+ and Internet
4528 Explorer 6+MathPlayer (http://www.dessci.com/en/products/mathplayer/).
4529 Just add the next line to your (X)HTML page with this file in the same folder:
4530 (script type="text/javascript" src="ASCIIMathML.js")(/script)
4531 This is a convenient and inexpensive solution for authoring MathML.
4532
4533 Version 1.4.7 Dec 15, 2005, (c) Peter Jipsen http://www.chapman.edu/~jipsen
4534 Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
4535 For changes see http://www.chapman.edu/~jipsen/mathml/asciimathchanges.txt
4536 If you use it on a webpage, please send the URL to jipsen@chapman.edu
4537
4538 This program is free software; you can redistribute it and/or modify
4539 it under the terms of the GNU General Public License as published by
4540 the Free Software Foundation; either version 2 of the License, or (at
4541 your option) any later version.
4542
4543 This program is distributed in the hope that it will be useful,
4544 but WITHOUT ANY WARRANTY; without even the implied warranty of
4545 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4546 General Public License (at http://www.gnu.org/copyleft/gpl.html)
4547 for more details.
4548
4549 LaTeXMathML.js (ctd)
4550 ==============
4551
4552 The instructions for use are the same as for the original
4553 ASCIIMathML.js, except that of course the line you add to your
4554 file should be
4555 (script type="text/javascript" src="LaTeXMathML.js")(/script)
4556 Or use absolute path names if the file is not in the same folder
4557 as your (X)HTML page.
4558 */
4559
4560 var checkForMathML = true; // check if browser can display MathML
4561 var notifyIfNoMathML = true; // display note if no MathML capability
4562 var alertIfNoMathML = false; // show alert box if no MathML capability
4563 // was "red":
4564 var mathcolor = ""; // change it to "" (to inherit) or any other color
4565 // was "serif":
4566 var mathfontfamily = ""; // change to "" to inherit (works in IE)
4567 // or another family (e.g. "arial")
4568 var showasciiformulaonhover = true; // helps students learn ASCIIMath
4569 /*
4570 // Commented out by DRW -- not now used -- see DELIMITERS (twice) near the end
4571 var displaystyle = false; // puts limits above and below large operators
4572 var decimalsign = "."; // change to "," if you like, beware of `(1,2)`!
4573 var AMdelimiter1 = "`", AMescape1 = "\\\\`"; // can use other characters
4574 var AMdelimiter2 = "$", AMescape2 = "\\\\\\$", AMdelimiter2regexp = "\\$";
4575 var doubleblankmathdelimiter = false; // if true, x+1 is equal to `x+1`
4576 // for IE this works only in <!-- -->
4577 //var separatetokens;// has been removed (email me if this is a problem)
4578 */
4579 var isIE = document.createElementNS==null;
4580
4581 if (document.getElementById==null)
4582 alert("This webpage requires a recent browser such as \nMozilla/Netscape 7+ or Internet Explorer 6+MathPlayer")
4583
4584 // all further global variables start with "AM"
4585
4586 function AMcreateElementXHTML(t) {
4587 if (isIE) return document.createElement(t);
4588 else return document.createElementNS("http://www.w3.org/1999/xhtml",t);
4589 }
4590
4591 function AMnoMathMLNote() {
4592 var nd = AMcreateElementXHTML("h3");
4593 nd.setAttribute("align","center")
4594 nd.appendChild(AMcreateElementXHTML("p"));
4595 nd.appendChild(document.createTextNode("To view the "));
4596 var an = AMcreateElementXHTML("a");
4597 an.appendChild(document.createTextNode("LaTeXMathML"));
4598 an.setAttribute("href","http://www.maths.nott.ac.uk/personal/drw/lm.html");
4599 nd.appendChild(an);
4600 nd.appendChild(document.createTextNode(" notation use Internet Explorer 6+"));
4601 an = AMcreateElementXHTML("a");
4602 an.appendChild(document.createTextNode("MathPlayer"));
4603 an.setAttribute("href","http://www.dessci.com/en/products/mathplayer/download.htm");
4604 nd.appendChild(an);
4605 nd.appendChild(document.createTextNode(" or Netscape/Mozilla/Firefox"));
4606 nd.appendChild(AMcreateElementXHTML("p"));
4607 return nd;
4608 }
4609
4610 function AMisMathMLavailable() {
4611 if (navigator.appName.slice(0,8)=="Netscape")
4612 if (navigator.appVersion.slice(0,1)>="5") return null;
4613 else return AMnoMathMLNote();
4614 else if (navigator.appName.slice(0,9)=="Microsoft")
4615 try {
4616 var ActiveX = new ActiveXObject("MathPlayer.Factory.1");
4617 return null;
4618 } catch (e) {
4619 return AMnoMathMLNote();
4620 }
4621 else return AMnoMathMLNote();
4622 }
4623
4624 // character lists for Mozilla/Netscape fonts
4625 var AMcal = ["\uD835\uDC9C", "\uD835\uDC9D", "\uD835\uDC9E", "\uD835\uDC9F", "\uD835\uDCA0", "\uD835\uDCA1", "\uD835\uDCA2", "\uD835\uDCA3", "\uD835\uDCA4", "\uD835\uDCA5", "\uD835\uDCA6", "\uD835\uDCA7", "\uD835\uDCA8", "\uD835\uDCA9", "\uD835\uDCAA", "\uD835\uDCAB", "\uD835\uDCAC", "\uD835\uDCAD", "\uD835\uDCAE", "\uD835\uDCAF", "\uD835\uDCB0", "\uD835\uDCB1", "\uD835\uDCB2", "\uD835\uDCB3", "\uD835\uDCB4", "\uD835\uDCB5"];
4626 var AMfrk = ["\uD835\uDD04", "\uD835\uDD05", "\uD835\uDD06", "\uD835\uDD07", "\uD835\uDD08", "\uD835\uDD09", "\uD835\uDD0A", "\uD835\uDD0B", "\uD835\uDD0C", "\uD835\uDD0D", "\uD835\uDD0E", "\uD835\uDD0F", "\uD835\uDD10", "\uD835\uDD11", "\uD835\uDD12", "\uD835\uDD13", "\uD835\uDD14", "\uD835\uDD15", "\uD835\uDD16", "\uD835\uDD17", "\uD835\uDD18", "\uD835\uDD19", "\uD835\uDD1A", "\uD835\uDD1B", "\uD835\uDD1C", "\uD835\uDD1D"];
4627 var AMbbb = ["\uD835\uDD38", "\uD835\uDD39", "\uD835\uDD3A", "\uD835\uDD3B", "\uD835\uDD3C", "\uD835\uDD3D", "\uD835\uDD3E", "\uD835\uDD3F", "\uD835\uDD40", "\uD835\uDD41", "\uD835\uDD42", "\uD835\uDD43", "\uD835\uDD44", "\uD835\uDD45", "\uD835\uDD46", "\uD835\uDD47", "\uD835\uDD48", "\uD835\uDD49", "\uD835\uDD4A", "\uD835\uDD4B", "\uD835\uDD4C", "\uD835\uDD4D", "\uD835\uDD4E", "\uD835\uDD4F", "\uD835\uDD50", "\uD835\uDD51"];
4628
4629 var CONST = 0, UNARY = 1, BINARY = 2, INFIX = 3, LEFTBRACKET = 4,
4630 RIGHTBRACKET = 5, SPACE = 6, UNDEROVER = 7, DEFINITION = 8,
4631 TEXT = 9, BIG = 10, LONG = 11, STRETCHY = 12, MATRIX = 13; // token types
4632
4633 var AMsqrt = {input:"\\sqrt", tag:"msqrt", output:"sqrt", ttype:UNARY},
4634 AMnot = {input:"\\not", tag:"mnot", output:"not", ttype:UNARY},
4635 AMroot = {input:"\\root", tag:"mroot", output:"root", ttype:BINARY},
4636 AMfrac = {input:"\\frac", tag:"mfrac", output:"/", ttype:BINARY},
4637 AMover = {input:"\\stackrel", tag:"mover", output:"stackrel", ttype:BINARY},
4638 AMatop = {input:"\\atop", tag:"mfrac", output:"", ttype:INFIX},
4639 AMchoose = {input:"\\choose", tag:"mfrac", output:"", ttype:INFIX},
4640 AMsub = {input:"_", tag:"msub", output:"_", ttype:INFIX},
4641 AMsup = {input:"^", tag:"msup", output:"^", ttype:INFIX},
4642 AMtext = {input:"\\mathrm", tag:"mtext", output:"text", ttype:TEXT},
4643 AMmbox = {input:"\\mbox", tag:"mtext", output:"mbox", ttype:TEXT};
4644
4645 // Commented out by DRW to prevent 1/2 turning into a 2-line fraction
4646 // AMdiv = {input:"/", tag:"mfrac", output:"/", ttype:INFIX},
4647 // Commented out by DRW so that " prints literally in equations
4648 // AMquote = {input:"\"", tag:"mtext", output:"mbox", ttype:TEXT};
4649
4650 // List of negations obtained from http://frodo.elon.edu/tutorial/tutorial.pdf
4651 var AMRelationNegations = {
4652 "\u003C":"\u226E", "\u003E":"\u226F", "\u2264":"\u2270", "\u2265":"\u2271",
4653 "\u003D":"\u2260", "\u2261":"\u2262", "\u227A":"\u2280", "\u227B":"\u2281",
4654 "\u227C":"\u22E0", "\u227D":"\u22E1", "\u223C":"\u2241", "\u2243":"\u2244",
4655 "\u2282":"\u2284", "\u2283":"\u2285", "\u2286":"\u2288", "\u2287":"\u2289",
4656 "\u2248":"\u2249", "\u2245":"\u2247", "\u2291":"\u22E2", "\u2292":"\u22E3",
4657 "\u224D":"\u226D"
4658 }
4659
4660 var AMsymbols = [
4661 //Greek letters
4662 {input:"\\alpha", tag:"mi", output:"\u03B1", ttype:CONST},
4663 {input:"\\beta", tag:"mi", output:"\u03B2", ttype:CONST},
4664 {input:"\\gamma", tag:"mi", output:"\u03B3", ttype:CONST},
4665 {input:"\\delta", tag:"mi", output:"\u03B4", ttype:CONST},
4666 {input:"\\epsilon", tag:"mi", output:"\u03B5", ttype:CONST},
4667 {input:"\\varepsilon", tag:"mi", output:"\u025B", ttype:CONST},
4668 {input:"\\zeta", tag:"mi", output:"\u03B6", ttype:CONST},
4669 {input:"\\eta", tag:"mi", output:"\u03B7", ttype:CONST},
4670 {input:"\\theta", tag:"mi", output:"\u03B8", ttype:CONST},
4671 {input:"\\vartheta", tag:"mi", output:"\u03D1", ttype:CONST},
4672 {input:"\\iota", tag:"mi", output:"\u03B9", ttype:CONST},
4673 {input:"\\kappa", tag:"mi", output:"\u03BA", ttype:CONST},
4674 {input:"\\lambda", tag:"mi", output:"\u03BB", ttype:CONST},
4675 {input:"\\mu", tag:"mi", output:"\u03BC", ttype:CONST},
4676 {input:"\\nu", tag:"mi", output:"\u03BD", ttype:CONST},
4677 {input:"\\xi", tag:"mi", output:"\u03BE", ttype:CONST},
4678 {input:"\\pi", tag:"mi", output:"\u03C0", ttype:CONST},
4679 {input:"\\varpi", tag:"mi", output:"\u03D6", ttype:CONST},
4680 {input:"\\rho", tag:"mi", output:"\u03C1", ttype:CONST},
4681 {input:"\\varrho", tag:"mi", output:"\u03F1", ttype:CONST},
4682 {input:"\\varsigma", tag:"mi", output:"\u03C2", ttype:CONST},
4683 {input:"\\sigma", tag:"mi", output:"\u03C3", ttype:CONST},
4684 {input:"\\tau", tag:"mi", output:"\u03C4", ttype:CONST},
4685 {input:"\\upsilon", tag:"mi", output:"\u03C5", ttype:CONST},
4686 {input:"\\phi", tag:"mi", output:"\u03C6", ttype:CONST},
4687 {input:"\\varphi", tag:"mi", output:"\u03D5", ttype:CONST},
4688 {input:"\\chi", tag:"mi", output:"\u03C7", ttype:CONST},
4689 {input:"\\psi", tag:"mi", output:"\u03C8", ttype:CONST},
4690 {input:"\\omega", tag:"mi", output:"\u03C9", ttype:CONST},
4691 {input:"\\Gamma", tag:"mo", output:"\u0393", ttype:CONST},
4692 {input:"\\Delta", tag:"mo", output:"\u0394", ttype:CONST},
4693 {input:"\\Theta", tag:"mo", output:"\u0398", ttype:CONST},
4694 {input:"\\Lambda", tag:"mo", output:"\u039B", ttype:CONST},
4695 {input:"\\Xi", tag:"mo", output:"\u039E", ttype:CONST},
4696 {input:"\\Pi", tag:"mo", output:"\u03A0", ttype:CONST},
4697 {input:"\\Sigma", tag:"mo", output:"\u03A3", ttype:CONST},
4698 {input:"\\Upsilon", tag:"mo", output:"\u03A5", ttype:CONST},
4699 {input:"\\Phi", tag:"mo", output:"\u03A6", ttype:CONST},
4700 {input:"\\Psi", tag:"mo", output:"\u03A8", ttype:CONST},
4701 {input:"\\Omega", tag:"mo", output:"\u03A9", ttype:CONST},
4702
4703 //fractions
4704 {input:"\\frac12", tag:"mo", output:"\u00BD", ttype:CONST},
4705 {input:"\\frac14", tag:"mo", output:"\u00BC", ttype:CONST},
4706 {input:"\\frac34", tag:"mo", output:"\u00BE", ttype:CONST},
4707 {input:"\\frac13", tag:"mo", output:"\u2153", ttype:CONST},
4708 {input:"\\frac23", tag:"mo", output:"\u2154", ttype:CONST},
4709 {input:"\\frac15", tag:"mo", output:"\u2155", ttype:CONST},
4710 {input:"\\frac25", tag:"mo", output:"\u2156", ttype:CONST},
4711 {input:"\\frac35", tag:"mo", output:"\u2157", ttype:CONST},
4712 {input:"\\frac45", tag:"mo", output:"\u2158", ttype:CONST},
4713 {input:"\\frac16", tag:"mo", output:"\u2159", ttype:CONST},
4714 {input:"\\frac56", tag:"mo", output:"\u215A", ttype:CONST},
4715 {input:"\\frac18", tag:"mo", output:"\u215B", ttype:CONST},
4716 {input:"\\frac38", tag:"mo", output:"\u215C", ttype:CONST},
4717 {input:"\\frac58", tag:"mo", output:"\u215D", ttype:CONST},
4718 {input:"\\frac78", tag:"mo", output:"\u215E", ttype:CONST},
4719
4720 //binary operation symbols
4721 {input:"\\pm", tag:"mo", output:"\u00B1", ttype:CONST},
4722 {input:"\\mp", tag:"mo", output:"\u2213", ttype:CONST},
4723 {input:"\\triangleleft",tag:"mo", output:"\u22B2", ttype:CONST},
4724 {input:"\\triangleright",tag:"mo",output:"\u22B3", ttype:CONST},
4725 {input:"\\cdot", tag:"mo", output:"\u22C5", ttype:CONST},
4726 {input:"\\star", tag:"mo", output:"\u22C6", ttype:CONST},
4727 {input:"\\ast", tag:"mo", output:"\u002A", ttype:CONST},
4728 {input:"\\times", tag:"mo", output:"\u00D7", ttype:CONST},
4729 {input:"\\div", tag:"mo", output:"\u00F7", ttype:CONST},
4730 {input:"\\circ", tag:"mo", output:"\u2218", ttype:CONST},
4731 //{input:"\\bullet", tag:"mo", output:"\u2219", ttype:CONST},
4732 {input:"\\bullet", tag:"mo", output:"\u2022", ttype:CONST},
4733 {input:"\\oplus", tag:"mo", output:"\u2295", ttype:CONST},
4734 {input:"\\ominus", tag:"mo", output:"\u2296", ttype:CONST},
4735 {input:"\\otimes", tag:"mo", output:"\u2297", ttype:CONST},
4736 {input:"\\bigcirc", tag:"mo", output:"\u25CB", ttype:CONST},
4737 {input:"\\oslash", tag:"mo", output:"\u2298", ttype:CONST},
4738 {input:"\\odot", tag:"mo", output:"\u2299", ttype:CONST},
4739 {input:"\\land", tag:"mo", output:"\u2227", ttype:CONST},
4740 {input:"\\wedge", tag:"mo", output:"\u2227", ttype:CONST},
4741 {input:"\\lor", tag:"mo", output:"\u2228", ttype:CONST},
4742 {input:"\\vee", tag:"mo", output:"\u2228", ttype:CONST},
4743 {input:"\\cap", tag:"mo", output:"\u2229", ttype:CONST},
4744 {input:"\\cup", tag:"mo", output:"\u222A", ttype:CONST},
4745 {input:"\\sqcap", tag:"mo", output:"\u2293", ttype:CONST},
4746 {input:"\\sqcup", tag:"mo", output:"\u2294", ttype:CONST},
4747 {input:"\\uplus", tag:"mo", output:"\u228E", ttype:CONST},
4748 {input:"\\amalg", tag:"mo", output:"\u2210", ttype:CONST},
4749 {input:"\\bigtriangleup",tag:"mo",output:"\u25B3", ttype:CONST},
4750 {input:"\\bigtriangledown",tag:"mo",output:"\u25BD", ttype:CONST},
4751 {input:"\\dag", tag:"mo", output:"\u2020", ttype:CONST},
4752 {input:"\\dagger", tag:"mo", output:"\u2020", ttype:CONST},
4753 {input:"\\ddag", tag:"mo", output:"\u2021", ttype:CONST},
4754 {input:"\\ddagger", tag:"mo", output:"\u2021", ttype:CONST},
4755 {input:"\\lhd", tag:"mo", output:"\u22B2", ttype:CONST},
4756 {input:"\\rhd", tag:"mo", output:"\u22B3", ttype:CONST},
4757 {input:"\\unlhd", tag:"mo", output:"\u22B4", ttype:CONST},
4758 {input:"\\unrhd", tag:"mo", output:"\u22B5", ttype:CONST},
4759
4760
4761 //BIG Operators
4762 {input:"\\sum", tag:"mo", output:"\u2211", ttype:UNDEROVER},
4763 {input:"\\prod", tag:"mo", output:"\u220F", ttype:UNDEROVER},
4764 {input:"\\bigcap", tag:"mo", output:"\u22C2", ttype:UNDEROVER},
4765 {input:"\\bigcup", tag:"mo", output:"\u22C3", ttype:UNDEROVER},
4766 {input:"\\bigwedge", tag:"mo", output:"\u22C0", ttype:UNDEROVER},
4767 {input:"\\bigvee", tag:"mo", output:"\u22C1", ttype:UNDEROVER},
4768 {input:"\\bigsqcap", tag:"mo", output:"\u2A05", ttype:UNDEROVER},
4769 {input:"\\bigsqcup", tag:"mo", output:"\u2A06", ttype:UNDEROVER},
4770 {input:"\\coprod", tag:"mo", output:"\u2210", ttype:UNDEROVER},
4771 {input:"\\bigoplus", tag:"mo", output:"\u2A01", ttype:UNDEROVER},
4772 {input:"\\bigotimes", tag:"mo", output:"\u2A02", ttype:UNDEROVER},
4773 {input:"\\bigodot", tag:"mo", output:"\u2A00", ttype:UNDEROVER},
4774 {input:"\\biguplus", tag:"mo", output:"\u2A04", ttype:UNDEROVER},
4775 {input:"\\int", tag:"mo", output:"\u222B", ttype:CONST},
4776 {input:"\\oint", tag:"mo", output:"\u222E", ttype:CONST},
4777
4778 //binary relation symbols
4779 {input:":=", tag:"mo", output:":=", ttype:CONST},
4780 {input:"\\lt", tag:"mo", output:"<", ttype:CONST},
4781 {input:"\\gt", tag:"mo", output:">", ttype:CONST},
4782 {input:"\\ne", tag:"mo", output:"\u2260", ttype:CONST},
4783 {input:"\\neq", tag:"mo", output:"\u2260", ttype:CONST},
4784 {input:"\\le", tag:"mo", output:"\u2264", ttype:CONST},
4785 {input:"\\leq", tag:"mo", output:"\u2264", ttype:CONST},
4786 {input:"\\leqslant", tag:"mo", output:"\u2264", ttype:CONST},
4787 {input:"\\ge", tag:"mo", output:"\u2265", ttype:CONST},
4788 {input:"\\geq", tag:"mo", output:"\u2265", ttype:CONST},
4789 {input:"\\geqslant", tag:"mo", output:"\u2265", ttype:CONST},
4790 {input:"\\equiv", tag:"mo", output:"\u2261", ttype:CONST},
4791 {input:"\\ll", tag:"mo", output:"\u226A", ttype:CONST},
4792 {input:"\\gg", tag:"mo", output:"\u226B", ttype:CONST},
4793 {input:"\\doteq", tag:"mo", output:"\u2250", ttype:CONST},
4794 {input:"\\prec", tag:"mo", output:"\u227A", ttype:CONST},
4795 {input:"\\succ", tag:"mo", output:"\u227B", ttype:CONST},
4796 {input:"\\preceq", tag:"mo", output:"\u227C", ttype:CONST},
4797 {input:"\\succeq", tag:"mo", output:"\u227D", ttype:CONST},
4798 {input:"\\subset", tag:"mo", output:"\u2282", ttype:CONST},
4799 {input:"\\supset", tag:"mo", output:"\u2283", ttype:CONST},
4800 {input:"\\subseteq", tag:"mo", output:"\u2286", ttype:CONST},
4801 {input:"\\supseteq", tag:"mo", output:"\u2287", ttype:CONST},
4802 {input:"\\subsetneq", tag:"mo", output:"\u228A", ttype:CONST},
4803 {input:"\\supsetneq", tag:"mo", output:"\u228B", ttype:CONST},
4804 {input:"\\sqsubset", tag:"mo", output:"\u228F", ttype:CONST},
4805 {input:"\\sqsupset", tag:"mo", output:"\u2290", ttype:CONST},
4806 {input:"\\sqsubseteq", tag:"mo", output:"\u2291", ttype:CONST},
4807 {input:"\\sqsupseteq", tag:"mo", output:"\u2292", ttype:CONST},
4808 {input:"\\sim", tag:"mo", output:"\u223C", ttype:CONST},
4809 {input:"\\simeq", tag:"mo", output:"\u2243", ttype:CONST},
4810 {input:"\\approx", tag:"mo", output:"\u2248", ttype:CONST},
4811 {input:"\\cong", tag:"mo", output:"\u2245", ttype:CONST},
4812 {input:"\\Join", tag:"mo", output:"\u22C8", ttype:CONST},
4813 {input:"\\bowtie", tag:"mo", output:"\u22C8", ttype:CONST},
4814 {input:"\\in", tag:"mo", output:"\u2208", ttype:CONST},
4815 {input:"\\ni", tag:"mo", output:"\u220B", ttype:CONST},
4816 {input:"\\owns", tag:"mo", output:"\u220B", ttype:CONST},
4817 {input:"\\propto", tag:"mo", output:"\u221D", ttype:CONST},
4818 {input:"\\vdash", tag:"mo", output:"\u22A2", ttype:CONST},
4819 {input:"\\dashv", tag:"mo", output:"\u22A3", ttype:CONST},
4820 {input:"\\models", tag:"mo", output:"\u22A8", ttype:CONST},
4821 {input:"\\perp", tag:"mo", output:"\u22A5", ttype:CONST},
4822 {input:"\\smile", tag:"mo", output:"\u2323", ttype:CONST},
4823 {input:"\\frown", tag:"mo", output:"\u2322", ttype:CONST},
4824 {input:"\\asymp", tag:"mo", output:"\u224D", ttype:CONST},
4825 {input:"\\notin", tag:"mo", output:"\u2209", ttype:CONST},
4826
4827 //matrices
4828 {input:"\\begin{eqnarray}", output:"X", ttype:MATRIX, invisible:true},
4829 {input:"\\begin{array}", output:"X", ttype:MATRIX, invisible:true},
4830 {input:"\\\\", output:"}&{", ttype:DEFINITION},
4831 {input:"\\end{eqnarray}", output:"}}", ttype:DEFINITION},
4832 {input:"\\end{array}", output:"}}", ttype:DEFINITION},
4833
4834 //grouping and literal brackets -- ieval is for IE
4835 {input:"\\big", tag:"mo", output:"X", atval:"1.2", ieval:"2.2", ttype:BIG},
4836 {input:"\\Big", tag:"mo", output:"X", atval:"1.6", ieval:"2.6", ttype:BIG},
4837 {input:"\\bigg", tag:"mo", output:"X", atval:"2.2", ieval:"3.2", ttype:BIG},
4838 {input:"\\Bigg", tag:"mo", output:"X", atval:"2.9", ieval:"3.9", ttype:BIG},
4839 {input:"\\left", tag:"mo", output:"X", ttype:LEFTBRACKET},
4840 {input:"\\right", tag:"mo", output:"X", ttype:RIGHTBRACKET},
4841 {input:"{", output:"{", ttype:LEFTBRACKET, invisible:true},
4842 {input:"}", output:"}", ttype:RIGHTBRACKET, invisible:true},
4843
4844 {input:"(", tag:"mo", output:"(", atval:"1", ttype:STRETCHY},
4845 {input:"[", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
4846 {input:"\\lbrack", tag:"mo", output:"[", atval:"1", ttype:STRETCHY},
4847 {input:"\\{", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
4848 {input:"\\lbrace", tag:"mo", output:"{", atval:"1", ttype:STRETCHY},
4849 {input:"\\langle", tag:"mo", output:"\u2329", atval:"1", ttype:STRETCHY},
4850 {input:"\\lfloor", tag:"mo", output:"\u230A", atval:"1", ttype:STRETCHY},
4851 {input:"\\lceil", tag:"mo", output:"\u2308", atval:"1", ttype:STRETCHY},
4852
4853 // rtag:"mi" causes space to be inserted before a following sin, cos, etc.
4854 // (see function AMparseExpr() )
4855 {input:")", tag:"mo",output:")", rtag:"mi",atval:"1",ttype:STRETCHY},
4856 {input:"]", tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
4857 {input:"\\rbrack",tag:"mo",output:"]", rtag:"mi",atval:"1",ttype:STRETCHY},
4858 {input:"\\}", tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
4859 {input:"\\rbrace",tag:"mo",output:"}", rtag:"mi",atval:"1",ttype:STRETCHY},
4860 {input:"\\rangle",tag:"mo",output:"\u232A", rtag:"mi",atval:"1",ttype:STRETCHY},
4861 {input:"\\rfloor",tag:"mo",output:"\u230B", rtag:"mi",atval:"1",ttype:STRETCHY},
4862 {input:"\\rceil", tag:"mo",output:"\u2309", rtag:"mi",atval:"1",ttype:STRETCHY},
4863
4864 // "|", "\\|", "\\vert" and "\\Vert" modified later: lspace = rspace = 0em
4865 {input:"|", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
4866 {input:"\\|", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
4867 {input:"\\vert", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
4868 {input:"\\Vert", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
4869 {input:"\\mid", tag:"mo", output:"\u2223", atval:"1", ttype:STRETCHY},
4870 {input:"\\parallel", tag:"mo", output:"\u2225", atval:"1", ttype:STRETCHY},
4871 {input:"/", tag:"mo", output:"/", atval:"1.01", ttype:STRETCHY},
4872 {input:"\\backslash", tag:"mo", output:"\u2216", atval:"1", ttype:STRETCHY},
4873 {input:"\\setminus", tag:"mo", output:"\\", ttype:CONST},
4874
4875 //miscellaneous symbols
4876 {input:"\\!", tag:"mspace", atname:"width", atval:"-0.167em", ttype:SPACE},
4877 {input:"\\,", tag:"mspace", atname:"width", atval:"0.167em", ttype:SPACE},
4878 {input:"\\>", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
4879 {input:"\\:", tag:"mspace", atname:"width", atval:"0.222em", ttype:SPACE},
4880 {input:"\\;", tag:"mspace", atname:"width", atval:"0.278em", ttype:SPACE},
4881 {input:"~", tag:"mspace", atname:"width", atval:"0.333em", ttype:SPACE},
4882 {input:"\\quad", tag:"mspace", atname:"width", atval:"1em", ttype:SPACE},
4883 {input:"\\qquad", tag:"mspace", atname:"width", atval:"2em", ttype:SPACE},
4884 //{input:"{}", tag:"mo", output:"\u200B", ttype:CONST}, // zero-width
4885 {input:"\\prime", tag:"mo", output:"\u2032", ttype:CONST},
4886 {input:"'", tag:"mo", output:"\u02B9", ttype:CONST},
4887 {input:"''", tag:"mo", output:"\u02BA", ttype:CONST},
4888 {input:"'''", tag:"mo", output:"\u2034", ttype:CONST},
4889 {input:"''''", tag:"mo", output:"\u2057", ttype:CONST},
4890 {input:"\\ldots", tag:"mo", output:"\u2026", ttype:CONST},
4891 {input:"\\cdots", tag:"mo", output:"\u22EF", ttype:CONST},
4892 {input:"\\vdots", tag:"mo", output:"\u22EE", ttype:CONST},
4893 {input:"\\ddots", tag:"mo", output:"\u22F1", ttype:CONST},
4894 {input:"\\forall", tag:"mo", output:"\u2200", ttype:CONST},
4895 {input:"\\exists", tag:"mo", output:"\u2203", ttype:CONST},
4896 {input:"\\Re", tag:"mo", output:"\u211C", ttype:CONST},
4897 {input:"\\Im", tag:"mo", output:"\u2111", ttype:CONST},
4898 {input:"\\aleph", tag:"mo", output:"\u2135", ttype:CONST},
4899 {input:"\\hbar", tag:"mo", output:"\u210F", ttype:CONST},
4900 {input:"\\ell", tag:"mo", output:"\u2113", ttype:CONST},
4901 {input:"\\wp", tag:"mo", output:"\u2118", ttype:CONST},
4902 {input:"\\emptyset", tag:"mo", output:"\u2205", ttype:CONST},
4903 {input:"\\infty", tag:"mo", output:"\u221E", ttype:CONST},
4904 {input:"\\surd", tag:"mo", output:"\\sqrt{}", ttype:DEFINITION},
4905 {input:"\\partial", tag:"mo", output:"\u2202", ttype:CONST},
4906 {input:"\\nabla", tag:"mo", output:"\u2207", ttype:CONST},
4907 {input:"\\triangle", tag:"mo", output:"\u25B3", ttype:CONST},
4908 {input:"\\therefore", tag:"mo", output:"\u2234", ttype:CONST},
4909 {input:"\\angle", tag:"mo", output:"\u2220", ttype:CONST},
4910 //{input:"\\\\ ", tag:"mo", output:"\u00A0", ttype:CONST},
4911 {input:"\\diamond", tag:"mo", output:"\u22C4", ttype:CONST},
4912 //{input:"\\Diamond", tag:"mo", output:"\u25CA", ttype:CONST},
4913 {input:"\\Diamond", tag:"mo", output:"\u25C7", ttype:CONST},
4914 {input:"\\neg", tag:"mo", output:"\u00AC", ttype:CONST},
4915 {input:"\\lnot", tag:"mo", output:"\u00AC", ttype:CONST},
4916 {input:"\\bot", tag:"mo", output:"\u22A5", ttype:CONST},
4917 {input:"\\top", tag:"mo", output:"\u22A4", ttype:CONST},
4918 {input:"\\square", tag:"mo", output:"\u25AB", ttype:CONST},
4919 {input:"\\Box", tag:"mo", output:"\u25A1", ttype:CONST},
4920 {input:"\\wr", tag:"mo", output:"\u2240", ttype:CONST},
4921
4922 //standard functions
4923 //Note UNDEROVER *must* have tag:"mo" to work properly
4924 {input:"\\arccos", tag:"mi", output:"arccos", ttype:UNARY, func:true},
4925 {input:"\\arcsin", tag:"mi", output:"arcsin", ttype:UNARY, func:true},
4926 {input:"\\arctan", tag:"mi", output:"arctan", ttype:UNARY, func:true},
4927 {input:"\\arg", tag:"mi", output:"arg", ttype:UNARY, func:true},
4928 {input:"\\cos", tag:"mi", output:"cos", ttype:UNARY, func:true},
4929 {input:"\\cosh", tag:"mi", output:"cosh", ttype:UNARY, func:true},
4930 {input:"\\cot", tag:"mi", output:"cot", ttype:UNARY, func:true},
4931 {input:"\\coth", tag:"mi", output:"coth", ttype:UNARY, func:true},
4932 {input:"\\csc", tag:"mi", output:"csc", ttype:UNARY, func:true},
4933 {input:"\\deg", tag:"mi", output:"deg", ttype:UNARY, func:true},
4934 {input:"\\det", tag:"mi", output:"det", ttype:UNARY, func:true},
4935 {input:"\\dim", tag:"mi", output:"dim", ttype:UNARY, func:true}, //CONST?
4936 {input:"\\exp", tag:"mi", output:"exp", ttype:UNARY, func:true},
4937 {input:"\\gcd", tag:"mi", output:"gcd", ttype:UNARY, func:true}, //CONST?
4938 {input:"\\hom", tag:"mi", output:"hom", ttype:UNARY, func:true},
4939 {input:"\\inf", tag:"mo", output:"inf", ttype:UNDEROVER},
4940 {input:"\\ker", tag:"mi", output:"ker", ttype:UNARY, func:true},
4941 {input:"\\lg", tag:"mi", output:"lg", ttype:UNARY, func:true},
4942 {input:"\\lim", tag:"mo", output:"lim", ttype:UNDEROVER},
4943 {input:"\\liminf", tag:"mo", output:"liminf", ttype:UNDEROVER},
4944 {input:"\\limsup", tag:"mo", output:"limsup", ttype:UNDEROVER},
4945 {input:"\\ln", tag:"mi", output:"ln", ttype:UNARY, func:true},
4946 {input:"\\log", tag:"mi", output:"log", ttype:UNARY, func:true},
4947 {input:"\\max", tag:"mo", output:"max", ttype:UNDEROVER},
4948 {input:"\\min", tag:"mo", output:"min", ttype:UNDEROVER},
4949 {input:"\\Pr", tag:"mi", output:"Pr", ttype:UNARY, func:true},
4950 {input:"\\sec", tag:"mi", output:"sec", ttype:UNARY, func:true},
4951 {input:"\\sin", tag:"mi", output:"sin", ttype:UNARY, func:true},
4952 {input:"\\sinh", tag:"mi", output:"sinh", ttype:UNARY, func:true},
4953 {input:"\\sup", tag:"mo", output:"sup", ttype:UNDEROVER},
4954 {input:"\\tan", tag:"mi", output:"tan", ttype:UNARY, func:true},
4955 {input:"\\tanh", tag:"mi", output:"tanh", ttype:UNARY, func:true},
4956
4957 //arrows
4958 {input:"\\gets", tag:"mo", output:"\u2190", ttype:CONST},
4959 {input:"\\leftarrow", tag:"mo", output:"\u2190", ttype:CONST},
4960 {input:"\\to", tag:"mo", output:"\u2192", ttype:CONST},
4961 {input:"\\rightarrow", tag:"mo", output:"\u2192", ttype:CONST},
4962 {input:"\\leftrightarrow", tag:"mo", output:"\u2194", ttype:CONST},
4963 {input:"\\uparrow", tag:"mo", output:"\u2191", ttype:CONST},
4964 {input:"\\downarrow", tag:"mo", output:"\u2193", ttype:CONST},
4965 {input:"\\updownarrow", tag:"mo", output:"\u2195", ttype:CONST},
4966 {input:"\\Leftarrow", tag:"mo", output:"\u21D0", ttype:CONST},
4967 {input:"\\Rightarrow", tag:"mo", output:"\u21D2", ttype:CONST},
4968 {input:"\\Leftrightarrow", tag:"mo", output:"\u21D4", ttype:CONST},
4969 {input:"\\iff", tag:"mo", output:"~\\Longleftrightarrow~", ttype:DEFINITION},
4970 {input:"\\Uparrow", tag:"mo", output:"\u21D1", ttype:CONST},
4971 {input:"\\Downarrow", tag:"mo", output:"\u21D3", ttype:CONST},
4972 {input:"\\Updownarrow", tag:"mo", output:"\u21D5", ttype:CONST},
4973 {input:"\\mapsto", tag:"mo", output:"\u21A6", ttype:CONST},
4974 {input:"\\longleftarrow", tag:"mo", output:"\u2190", ttype:LONG},
4975 {input:"\\longrightarrow", tag:"mo", output:"\u2192", ttype:LONG},
4976 {input:"\\longleftrightarrow", tag:"mo", output:"\u2194", ttype:LONG},
4977 {input:"\\Longleftarrow", tag:"mo", output:"\u21D0", ttype:LONG},
4978 {input:"\\Longrightarrow", tag:"mo", output:"\u21D2", ttype:LONG},
4979 {input:"\\Longleftrightarrow", tag:"mo", output:"\u21D4", ttype:LONG},
4980 {input:"\\longmapsto", tag:"mo", output:"\u21A6", ttype:CONST},
4981 // disaster if LONG
4982
4983 //commands with argument
4984 AMsqrt, AMnot, AMroot, AMfrac, AMover, AMsub, AMsup, AMtext, AMmbox, AMatop, AMchoose,
4985
4986 //AMdiv, AMquote,
4987
4988 //diacritical marks
4989 {input:"\\acute", tag:"mover", output:"\u00B4", ttype:UNARY, acc:true},
4990 //{input:"\\acute", tag:"mover", output:"\u0317", ttype:UNARY, acc:true},
4991 //{input:"\\acute", tag:"mover", output:"\u0301", ttype:UNARY, acc:true},
4992 //{input:"\\grave", tag:"mover", output:"\u0300", ttype:UNARY, acc:true},
4993 //{input:"\\grave", tag:"mover", output:"\u0316", ttype:UNARY, acc:true},
4994 {input:"\\grave", tag:"mover", output:"\u0060", ttype:UNARY, acc:true},
4995 {input:"\\breve", tag:"mover", output:"\u02D8", ttype:UNARY, acc:true},
4996 {input:"\\check", tag:"mover", output:"\u02C7", ttype:UNARY, acc:true},
4997 {input:"\\dot", tag:"mover", output:".", ttype:UNARY, acc:true},
4998 {input:"\\ddot", tag:"mover", output:"..", ttype:UNARY, acc:true},
4999 //{input:"\\ddot", tag:"mover", output:"\u00A8", ttype:UNARY, acc:true},
5000 {input:"\\mathring", tag:"mover", output:"\u00B0", ttype:UNARY, acc:true},
5001 {input:"\\vec", tag:"mover", output:"\u20D7", ttype:UNARY, acc:true},
5002 {input:"\\overrightarrow",tag:"mover",output:"\u20D7", ttype:UNARY, acc:true},
5003 {input:"\\overleftarrow",tag:"mover", output:"\u20D6", ttype:UNARY, acc:true},
5004 {input:"\\hat", tag:"mover", output:"\u005E", ttype:UNARY, acc:true},
5005 {input:"\\widehat", tag:"mover", output:"\u0302", ttype:UNARY, acc:true},
5006 {input:"\\tilde", tag:"mover", output:"~", ttype:UNARY, acc:true},
5007 //{input:"\\tilde", tag:"mover", output:"\u0303", ttype:UNARY, acc:true},
5008 {input:"\\widetilde", tag:"mover", output:"\u02DC", ttype:UNARY, acc:true},
5009 {input:"\\bar", tag:"mover", output:"\u203E", ttype:UNARY, acc:true},
5010 {input:"\\overbrace", tag:"mover", output:"\uFE37", ttype:UNARY, acc:true}, //Changed unicode overbrace
5011 {input:"\\overbracket", tag:"mover", output:"\u23B4", ttype:UNARY, acc:true}, //old overbrace = overbracket
5012 {input:"\\overline", tag:"mover", output:"\u00AF", ttype:UNARY, acc:true},
5013 {input:"\\underbrace", tag:"munder", output:"\uFE38", ttype:UNARY, acc:true}, //Changed unicode underbrace
5014 {input:"\\underbracket",tag:"munder", output:"\u23B5", ttype:UNARY, acc:true}, //old underbrace = underbracket
5015 {input:"\\underline", tag:"munder", output:"\u00AF", ttype:UNARY, acc:true},
5016 //{input:"underline", tag:"munder", output:"\u0332", ttype:UNARY, acc:true},
5017
5018 //typestyles and fonts
5019 {input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true", ttype:UNARY},
5020 {input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false", ttype:UNARY},
5021 {input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1", ttype:UNARY},
5022 {input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2", ttype:UNARY},
5023 {input:"\\textrm", tag:"mstyle", output:"\\mathrm", ttype: DEFINITION},
5024 {input:"\\mathbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
5025 {input:"\\textbf", tag:"mstyle", atname:"mathvariant", atval:"bold", ttype:UNARY},
5026 {input:"\\mathit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
5027 {input:"\\textit", tag:"mstyle", atname:"mathvariant", atval:"italic", ttype:UNARY},
5028 {input:"\\mathtt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
5029 {input:"\\texttt", tag:"mstyle", atname:"mathvariant", atval:"monospace", ttype:UNARY},
5030 {input:"\\mathsf", tag:"mstyle", atname:"mathvariant", atval:"sans-serif", ttype:UNARY},
5031 {input:"\\mathbb", tag:"mstyle", atname:"mathvariant", atval:"double-struck", ttype:UNARY, codes:AMbbb},
5032 {input:"\\mathcal",tag:"mstyle", atname:"mathvariant", atval:"script", ttype:UNARY, codes:AMcal},
5033 {input:"\\mathfrak",tag:"mstyle",atname:"mathvariant", atval:"fraktur",ttype:UNARY, codes:AMfrk},
5034 {input:"\\textcolor",tag:"mstyle",atname:"mathvariant", atval:"mathcolor", ttype:BINARY},
5035 {input:"\\colorbox",tag:"mstyle",atname:"mathvariant", atval:"background", ttype:BINARY}
5036 ];
5037
5038 function compareNames(s1,s2) {
5039 if (s1.input > s2.input) return 1
5040 else return -1;
5041 }
5042
5043 var AMnames = []; //list of input symbols
5044
5045 function AMinitSymbols() {
5046 AMsymbols.sort(compareNames);
5047 for (i=0; i<AMsymbols.length; i++) AMnames[i] = AMsymbols[i].input;
5048 }
5049
5050 var AMmathml = "http://www.w3.org/1998/Math/MathML";
5051
5052 function AMcreateElementMathML(t) {
5053 if (isIE) return document.createElement("m:"+t);
5054 else return document.createElementNS(AMmathml,t);
5055 }
5056
5057 function AMcreateMmlNode(t,frag) {
5058 // var node = AMcreateElementMathML(name);
5059 if (isIE) var node = document.createElement("m:"+t);
5060 else var node = document.createElementNS(AMmathml,t);
5061 node.appendChild(frag);
5062 return node;
5063 }
5064
5065 function newcommand(oldstr,newstr) {
5066 AMsymbols = AMsymbols.concat([{input:oldstr, tag:"mo", output:newstr,
5067 ttype:DEFINITION}]);
5068 }
5069
5070 function AMremoveCharsAndBlanks(str,n) {
5071 //remove n characters and any following blanks
5072 var st;
5073 st = str.slice(n);
5074 for (var i=0; i<st.length && st.charCodeAt(i)<=32; i=i+1);
5075 return st.slice(i);
5076 }
5077
5078 function AMposition(arr, str, n) {
5079 // return position >=n where str appears or would be inserted
5080 // assumes arr is sorted
5081 if (n==0) {
5082 var h,m;
5083 n = -1;
5084 h = arr.length;
5085 while (n+1<h) {
5086 m = (n+h) >> 1;
5087 if (arr[m]<str) n = m; else h = m;
5088 }
5089 return h;
5090 } else
5091 for (var i=n; i<arr.length && arr[i]<str; i++);
5092 return i; // i=arr.length || arr[i]>=str
5093 }
5094
5095 function AMgetSymbol(str) {
5096 //return maximal initial substring of str that appears in names
5097 //return null if there is none
5098 var k = 0; //new pos
5099 var j = 0; //old pos
5100 var mk; //match pos
5101 var st;
5102 var tagst;
5103 var match = "";
5104 var more = true;
5105 for (var i=1; i<=str.length && more; i++) {
5106 st = str.slice(0,i); //initial substring of length i
5107 j = k;
5108 k = AMposition(AMnames, st, j);
5109 if (k<AMnames.length && str.slice(0,AMnames[k].length)==AMnames[k]){
5110 match = AMnames[k];
5111 mk = k;
5112 i = match.length;
5113 }
5114 more = k<AMnames.length && str.slice(0,AMnames[k].length)>=AMnames[k];
5115 }
5116 AMpreviousSymbol=AMcurrentSymbol;
5117 if (match!=""){
5118 AMcurrentSymbol=AMsymbols[mk].ttype;
5119 return AMsymbols[mk];
5120 }
5121 AMcurrentSymbol=CONST;
5122 k = 1;
5123 st = str.slice(0,1); //take 1 character
5124 if ("0"<=st && st<="9") tagst = "mn";
5125 else tagst = (("A">st || st>"Z") && ("a">st || st>"z")?"mo":"mi");
5126 /*
5127 // Commented out by DRW (not fully understood, but probably to do with
5128 // use of "/" as an INFIX version of "\\frac", which we don't want):
5129 //}
5130 //if (st=="-" && AMpreviousSymbol==INFIX) {
5131 // AMcurrentSymbol = INFIX; //trick "/" into recognizing "-" on second parse
5132 // return {input:st, tag:tagst, output:st, ttype:UNARY, func:true};
5133 //}
5134 */
5135 return {input:st, tag:tagst, output:st, ttype:CONST};
5136 }
5137
5138
5139 /*Parsing ASCII math expressions with the following grammar
5140 v ::= [A-Za-z] | greek letters | numbers | other constant symbols
5141 u ::= sqrt | text | bb | other unary symbols for font commands
5142 b ::= frac | root | stackrel binary symbols
5143 l ::= { | \left left brackets
5144 r ::= } | \right right brackets
5145 S ::= v | lEr | uS | bSS Simple expression
5146 I ::= S_S | S^S | S_S^S | S Intermediate expression
5147 E ::= IE | I/I Expression
5148 Each terminal symbol is translated into a corresponding mathml node.*/
5149
5150 var AMpreviousSymbol,AMcurrentSymbol;
5151
5152 function AMparseSexpr(str) { //parses str and returns [node,tailstr,(node)tag]
5153 var symbol, node, result, result2, i, st,// rightvert = false,
5154 newFrag = document.createDocumentFragment();
5155 str = AMremoveCharsAndBlanks(str,0);
5156 symbol = AMgetSymbol(str); //either a token or a bracket or empty
5157 if (symbol == null || symbol.ttype == RIGHTBRACKET)
5158 return [null,str,null];
5159 if (symbol.ttype == DEFINITION) {
5160 str = symbol.output+AMremoveCharsAndBlanks(str,symbol.input.length);
5161 symbol = AMgetSymbol(str);
5162 if (symbol == null || symbol.ttype == RIGHTBRACKET)
5163 return [null,str,null];
5164 }
5165 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5166 switch (symbol.ttype) {
5167 case SPACE:
5168 node = AMcreateElementMathML(symbol.tag);
5169 node.setAttribute(symbol.atname,symbol.atval);
5170 return [node,str,symbol.tag];
5171 case UNDEROVER:
5172 if (isIE) {
5173 if (symbol.input.substr(0,4) == "\\big") { // botch for missing symbols
5174 str = "\\"+symbol.input.substr(4)+str; // make \bigcup = \cup etc.
5175 symbol = AMgetSymbol(str);
5176 symbol.ttype = UNDEROVER;
5177 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5178 }
5179 }
5180 return [AMcreateMmlNode(symbol.tag,
5181 document.createTextNode(symbol.output)),str,symbol.tag];
5182 case CONST:
5183 var output = symbol.output;
5184 if (isIE) {
5185 if (symbol.input == "'")
5186 output = "\u2032";
5187 else if (symbol.input == "''")
5188 output = "\u2033";
5189 else if (symbol.input == "'''")
5190 output = "\u2033\u2032";
5191 else if (symbol.input == "''''")
5192 output = "\u2033\u2033";
5193 else if (symbol.input == "\\square")
5194 output = "\u25A1"; // same as \Box
5195 else if (symbol.input.substr(0,5) == "\\frac") {
5196 // botch for missing fractions
5197 var denom = symbol.input.substr(6,1);
5198 if (denom == "5" || denom == "6") {
5199 str = symbol.input.replace(/\\frac/,"\\frac ")+str;
5200 return [node,str,symbol.tag];
5201 }
5202 }
5203 }
5204 node = AMcreateMmlNode(symbol.tag,document.createTextNode(output));
5205 return [node,str,symbol.tag];
5206 case LONG: // added by DRW
5207 node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
5208 node.setAttribute("minsize","1.5");
5209 node.setAttribute("maxsize","1.5");
5210 node = AMcreateMmlNode("mover",node);
5211 node.appendChild(AMcreateElementMathML("mspace"));
5212 return [node,str,symbol.tag];
5213 case STRETCHY: // added by DRW
5214 if (isIE && symbol.input == "\\backslash")
5215 symbol.output = "\\"; // doesn't expand, but then nor does "\u2216"
5216 node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
5217 if (symbol.input == "|" || symbol.input == "\\vert" ||
5218 symbol.input == "\\|" || symbol.input == "\\Vert") {
5219 node.setAttribute("lspace","0em");
5220 node.setAttribute("rspace","0em");
5221 }
5222 node.setAttribute("maxsize",symbol.atval); // don't allow to stretch here
5223 if (symbol.rtag != null)
5224 return [node,str,symbol.rtag];
5225 else
5226 return [node,str,symbol.tag];
5227 case BIG: // added by DRW
5228 var atval = symbol.atval;
5229 if (isIE)
5230 atval = symbol.ieval;
5231 symbol = AMgetSymbol(str);
5232 if (symbol == null)
5233 return [null,str,null];
5234 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5235 node = AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output));
5236 if (isIE) { // to get brackets to expand
5237 var space = AMcreateElementMathML("mspace");
5238 space.setAttribute("height",atval+"ex");
5239 node = AMcreateMmlNode("mrow",node);
5240 node.appendChild(space);
5241 } else { // ignored in IE
5242 node.setAttribute("minsize",atval);
5243 node.setAttribute("maxsize",atval);
5244 }
5245 return [node,str,symbol.tag];
5246 case LEFTBRACKET: //read (expr+)
5247 if (symbol.input == "\\left") { // left what?
5248 symbol = AMgetSymbol(str);
5249 if (symbol != null) {
5250 if (symbol.input == ".")
5251 symbol.invisible = true;
5252 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5253 }
5254 }
5255 result = AMparseExpr(str,true,false);
5256 if (symbol==null ||
5257 (typeof symbol.invisible == "boolean" && symbol.invisible))
5258 node = AMcreateMmlNode("mrow",result[0]);
5259 else {
5260 node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
5261 node = AMcreateMmlNode("mrow",node);
5262 node.appendChild(result[0]);
5263 }
5264 return [node,result[1],result[2]];
5265 case MATRIX: //read (expr+)
5266 if (symbol.input == "\\begin{array}") {
5267 var mask = "";
5268 symbol = AMgetSymbol(str);
5269 str = AMremoveCharsAndBlanks(str,0);
5270 if (symbol == null)
5271 mask = "l";
5272 else {
5273 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5274 if (symbol.input != "{")
5275 mask = "l";
5276 else do {
5277 symbol = AMgetSymbol(str);
5278 if (symbol != null) {
5279 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5280 if (symbol.input != "}")
5281 mask = mask+symbol.input;
5282 }
5283 } while (symbol != null && symbol.input != "" && symbol.input != "}");
5284 }
5285 result = AMparseExpr("{"+str,true,true);
5286 // if (result[0]==null) return [AMcreateMmlNode("mo",
5287 // document.createTextNode(symbol.input)),str];
5288 node = AMcreateMmlNode("mtable",result[0]);
5289 mask = mask.replace(/l/g,"left ");
5290 mask = mask.replace(/r/g,"right ");
5291 mask = mask.replace(/c/g,"center ");
5292 node.setAttribute("columnalign",mask);
5293 node.setAttribute("displaystyle","false");
5294 if (isIE)
5295 return [node,result[1],null];
5296 // trying to get a *little* bit of space around the array
5297 // (IE already includes it)
5298 var lspace = AMcreateElementMathML("mspace");
5299 lspace.setAttribute("width","0.167em");
5300 var rspace = AMcreateElementMathML("mspace");
5301 rspace.setAttribute("width","0.167em");
5302 var node1 = AMcreateMmlNode("mrow",lspace);
5303 node1.appendChild(node);
5304 node1.appendChild(rspace);
5305 return [node1,result[1],null];
5306 } else { // eqnarray
5307 result = AMparseExpr("{"+str,true,true);
5308 node = AMcreateMmlNode("mtable",result[0]);
5309 if (isIE)
5310 node.setAttribute("columnspacing","0.25em"); // best in practice?
5311 else
5312 node.setAttribute("columnspacing","0.167em"); // correct (but ignored?)
5313 node.setAttribute("columnalign","right center left");
5314 node.setAttribute("displaystyle","true");
5315 node = AMcreateMmlNode("mrow",node);
5316 return [node,result[1],null];
5317 }
5318 case TEXT:
5319 if (str.charAt(0)=="{") i=str.indexOf("}");
5320 else i = 0;
5321 if (i==-1)
5322 i = str.length;
5323 st = str.slice(1,i);
5324 if (st.charAt(0) == " ") {
5325 node = AMcreateElementMathML("mspace");
5326 node.setAttribute("width","0.33em"); // was 1ex
5327 newFrag.appendChild(node);
5328 }
5329 newFrag.appendChild(
5330 AMcreateMmlNode(symbol.tag,document.createTextNode(st)));
5331 if (st.charAt(st.length-1) == " ") {
5332 node = AMcreateElementMathML("mspace");
5333 node.setAttribute("width","0.33em"); // was 1ex
5334 newFrag.appendChild(node);
5335 }
5336 str = AMremoveCharsAndBlanks(str,i+1);
5337 return [AMcreateMmlNode("mrow",newFrag),str,null];
5338 case UNARY:
5339 result = AMparseSexpr(str);
5340 if (result[0]==null) return [AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)),str];
5341 if (typeof symbol.func == "boolean" && symbol.func) { // functions hack
5342 st = str.charAt(0);
5343 // if (st=="^" || st=="_" || st=="/" || st=="|" || st==",") {
5344 if (st=="^" || st=="_" || st==",") {
5345 return [AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)),str,symbol.tag];
5346 } else {
5347 node = AMcreateMmlNode("mrow",AMcreateMmlNode(symbol.tag,document.createTextNode(symbol.output)));
5348 if (isIE) {
5349 var space = AMcreateElementMathML("mspace");
5350 space.setAttribute("width","0.167em");
5351 node.appendChild(space);
5352 }
5353 node.appendChild(result[0]);
5354 return [node,result[1],symbol.tag];
5355 }
5356 }
5357 if (symbol.input == "\\sqrt") { // sqrt
5358 if (isIE) { // set minsize, for \surd
5359 var space = AMcreateElementMathML("mspace");
5360 space.setAttribute("height","1.2ex");
5361 space.setAttribute("width","0em"); // probably no effect
5362 node = AMcreateMmlNode(symbol.tag,result[0])
5363 // node.setAttribute("minsize","1"); // ignored
5364 // node = AMcreateMmlNode("mrow",node); // hopefully unnecessary
5365 node.appendChild(space);
5366 return [node,result[1],symbol.tag];
5367 } else
5368 return [AMcreateMmlNode(symbol.tag,result[0]),result[1],symbol.tag];
5369 } else if (typeof symbol.acc == "boolean" && symbol.acc) { // accent
5370 node = AMcreateMmlNode(symbol.tag,result[0]);
5371 var output = symbol.output;
5372 if (isIE) {
5373 if (symbol.input == "\\hat")
5374 output = "\u0302";
5375 else if (symbol.input == "\\widehat")
5376 output = "\u005E";
5377 else if (symbol.input == "\\bar")
5378 output = "\u00AF";
5379 else if (symbol.input == "\\grave")
5380 output = "\u0300";
5381 else if (symbol.input == "\\tilde")
5382 output = "\u0303";
5383 }
5384 var node1 = AMcreateMmlNode("mo",document.createTextNode(output));
5385 if (symbol.input == "\\vec" || symbol.input == "\\check")
5386 // don't allow to stretch
5387 node1.setAttribute("maxsize","1.2");
5388 // why doesn't "1" work? \vec nearly disappears in firefox
5389 if (isIE && symbol.input == "\\bar")
5390 node1.setAttribute("maxsize","0.5");
5391 if (symbol.input == "\\underbrace" || symbol.input == "\\underline")
5392 node1.setAttribute("accentunder","true");
5393 else
5394 node1.setAttribute("accent","true");
5395 node.appendChild(node1);
5396 if (symbol.input == "\\overbrace" || symbol.input == "\\underbrace")
5397 node.ttype = UNDEROVER;
5398 return [node,result[1],symbol.tag];
5399 } else if (symbol.input == "\\not") { // not
5400 // added by infinity0 on 2009-12-15 to implement \not command
5401 text = result[0].childNodes[0].nodeValue;
5402 if (typeof text == "string" && text.length == 1 && text in AMRelationNegations) {
5403 result[0].childNodes[0].nodeValue = AMRelationNegations[text];
5404 return [AMcreateMmlNode(symbol.tag,result[0]),result[1],symbol.tag];
5405 }
5406 return [AMcreateMmlNode("mo",document.createTextNode("\\")),"not " + str,symbol.tag];
5407 } else { // font change or displaystyle command
5408 if (!isIE && typeof symbol.codes != "undefined") {
5409 for (i=0; i<result[0].childNodes.length; i++)
5410 if (result[0].childNodes[i].nodeName=="mi" || result[0].nodeName=="mi") {
5411 st = (result[0].nodeName=="mi"?result[0].firstChild.nodeValue:
5412 result[0].childNodes[i].firstChild.nodeValue);
5413 var newst = [];
5414 for (var j=0; j<st.length; j++)
5415 if (st.charCodeAt(j)>64 && st.charCodeAt(j)<91)
5416 { newst = newst + symbol.codes[st.charCodeAt(j)-65] }
5417 // String.fromCharCode(symbol.codes[st.charCodeAt(j)-65]); alert(newst); }
5418 else newst = newst + st.charAt(j);
5419 if (result[0].nodeName=="mi")
5420 result[0]=AMcreateElementMathML("mo").
5421 appendChild(document.createTextNode(newst));
5422 else result[0].replaceChild(AMcreateElementMathML("mo").
5423 appendChild(document.createTextNode(newst)),result[0].childNodes[i]);
5424 }
5425 }
5426 node = AMcreateMmlNode(symbol.tag,result[0]);
5427 node.setAttribute(symbol.atname,symbol.atval);
5428 if (symbol.input == "\\scriptstyle" ||
5429 symbol.input == "\\scriptscriptstyle")
5430 node.setAttribute("displaystyle","false");
5431 return [node,result[1],symbol.tag];
5432 }
5433 case BINARY:
5434 result = AMparseSexpr(str);
5435 if (result[0]==null) return [AMcreateMmlNode("mo",document.createTextNode(symbol.input)),str,null];
5436 result2 = AMparseSexpr(result[1]);
5437 if (result2[0]==null) return [AMcreateMmlNode("mo",document.createTextNode(symbol.input)),str,null];
5438 //added by J. Knisley to allow \textcolor and \colorbox within equations
5439 if (symbol.input=="\\textcolor" || symbol.input=="\\colorbox") {
5440 var tclr = str.match(/\{s*([#\w]+)\s*\}/); //get's color from beginning of str
5441 str = str.replace(/\{s*[#\w]+\s*\}/,"");
5442 if(tclr!=null) {
5443 if(IsColorName.test(tclr[1].toLowerCase())) {
5444 tclr=LaTeXColor[tclr[1].toLowerCase()];
5445 } else {
5446 tclr=tclr[1]; // no checking for valid color!!
5447 }
5448 node = AMcreateElementMathML("mstyle");
5449 node.setAttribute(symbol.atval,tclr);
5450 node.appendChild(result2[0]);
5451 return [node,result2[1],symbol.tag];
5452 }
5453 }
5454 if (symbol.input=="\\root" || symbol.input=="\\stackrel") newFrag.appendChild(result2[0]);
5455 newFrag.appendChild(result[0]);
5456 if (symbol.input=="\\frac") newFrag.appendChild(result2[0]);
5457 return [AMcreateMmlNode(symbol.tag,newFrag),result2[1],symbol.tag];
5458 case INFIX:
5459 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5460 return [AMcreateMmlNode("mo",document.createTextNode(symbol.output)),
5461 str,symbol.tag];
5462 default:
5463 return [AMcreateMmlNode(symbol.tag, //its a constant
5464 document.createTextNode(symbol.output)),str,symbol.tag];
5465 }
5466 }
5467
5468 function AMparseIexpr(str) {
5469 var symbol, sym1, sym2, node, result, tag, underover;
5470 str = AMremoveCharsAndBlanks(str,0);
5471 sym1 = AMgetSymbol(str);
5472 result = AMparseSexpr(str);
5473 node = result[0];
5474 str = result[1];
5475 tag = result[2];
5476 symbol = AMgetSymbol(str);
5477 if (symbol.ttype == INFIX) {
5478 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5479 result = AMparseSexpr(str);
5480 if (result[0] == null) // show box in place of missing argument
5481 result[0] = AMcreateMmlNode("mo",document.createTextNode("\u25A1"));
5482 str = result[1];
5483 tag = result[2];
5484 if (symbol.input == "_" || symbol.input == "^") {
5485 sym2 = AMgetSymbol(str);
5486 tag = null; // no space between x^2 and a following sin, cos, etc.
5487 // This is for \underbrace and \overbrace
5488 underover = ((sym1.ttype == UNDEROVER) || (node.ttype == UNDEROVER));
5489 // underover = (sym1.ttype == UNDEROVER);
5490 if (symbol.input == "_" && sym2.input == "^") {
5491 str = AMremoveCharsAndBlanks(str,sym2.input.length);
5492 var res2 = AMparseSexpr(str);
5493 str = res2[1];
5494 tag = res2[2]; // leave space between x_1^2 and a following sin etc.
5495 node = AMcreateMmlNode((underover?"munderover":"msubsup"),node);
5496 node.appendChild(result[0]);
5497 node.appendChild(res2[0]);
5498 } else if (symbol.input == "_") {
5499 node = AMcreateMmlNode((underover?"munder":"msub"),node);
5500 node.appendChild(result[0]);
5501 } else {
5502 node = AMcreateMmlNode((underover?"mover":"msup"),node);
5503 node.appendChild(result[0]);
5504 }
5505 node = AMcreateMmlNode("mrow",node); // so sum does not stretch
5506 } else {
5507 node = AMcreateMmlNode(symbol.tag,node);
5508 if (symbol.input == "\\atop" || symbol.input == "\\choose")
5509 node.setAttribute("linethickness","0ex");
5510 node.appendChild(result[0]);
5511 if (symbol.input == "\\choose")
5512 node = AMcreateMmlNode("mfenced",node);
5513 }
5514 }
5515 return [node,str,tag];
5516 }
5517
5518 function AMparseExpr(str,rightbracket,matrix) {
5519 var symbol, node, result, i, tag,
5520 newFrag = document.createDocumentFragment();
5521 do {
5522 str = AMremoveCharsAndBlanks(str,0);
5523 result = AMparseIexpr(str);
5524 node = result[0];
5525 str = result[1];
5526 tag = result[2];
5527 symbol = AMgetSymbol(str);
5528 if (node!=undefined) {
5529 if ((tag == "mn" || tag == "mi") && symbol!=null &&
5530 typeof symbol.func == "boolean" && symbol.func) {
5531 // Add space before \sin in 2\sin x or x\sin x
5532 var space = AMcreateElementMathML("mspace");
5533 space.setAttribute("width","0.167em");
5534 node = AMcreateMmlNode("mrow",node);
5535 node.appendChild(space);
5536 }
5537 newFrag.appendChild(node);
5538 }
5539 } while ((symbol.ttype != RIGHTBRACKET)
5540 && symbol!=null && symbol.output!="");
5541 tag = null;
5542 if (symbol.ttype == RIGHTBRACKET) {
5543 if (symbol.input == "\\right") { // right what?
5544 str = AMremoveCharsAndBlanks(str,symbol.input.length);
5545 symbol = AMgetSymbol(str);
5546 if (symbol != null && symbol.input == ".")
5547 symbol.invisible = true;
5548 if (symbol != null)
5549 tag = symbol.rtag;
5550 }
5551 if (symbol!=null)
5552 str = AMremoveCharsAndBlanks(str,symbol.input.length); // ready to return
5553 var len = newFrag.childNodes.length;
5554 if (matrix &&
5555 len>0 && newFrag.childNodes[len-1].nodeName == "mrow" && len>1 &&
5556 newFrag.childNodes[len-2].nodeName == "mo" &&
5557 newFrag.childNodes[len-2].firstChild.nodeValue == "&") { //matrix
5558 var pos = []; // positions of ampersands
5559 var m = newFrag.childNodes.length;
5560 for (i=0; matrix && i<m; i=i+2) {
5561 pos[i] = [];
5562 node = newFrag.childNodes[i];
5563 for (var j=0; j<node.childNodes.length; j++)
5564 if (node.childNodes[j].firstChild.nodeValue=="&")
5565 pos[i][pos[i].length]=j;
5566 }
5567 var row, frag, n, k, table = document.createDocumentFragment();
5568 for (i=0; i<m; i=i+2) {
5569 row = document.createDocumentFragment();
5570 frag = document.createDocumentFragment();
5571 node = newFrag.firstChild; // <mrow> -&-&...&-&- </mrow>
5572 n = node.childNodes.length;
5573 k = 0;
5574 for (j=0; j<n; j++) {
5575 if (typeof pos[i][k] != "undefined" && j==pos[i][k]){
5576 node.removeChild(node.firstChild); //remove &
5577 row.appendChild(AMcreateMmlNode("mtd",frag));
5578 k++;
5579 } else frag.appendChild(node.firstChild);
5580 }
5581 row.appendChild(AMcreateMmlNode("mtd",frag));
5582 if (newFrag.childNodes.length>2) {
5583 newFrag.removeChild(newFrag.firstChild); //remove <mrow> </mrow>
5584 newFrag.removeChild(newFrag.firstChild); //remove <mo>&</mo>
5585 }
5586 table.appendChild(AMcreateMmlNode("mtr",row));
5587 }
5588 return [table,str];
5589 }
5590 if (typeof symbol.invisible != "boolean" || !symbol.invisible) {
5591 node = AMcreateMmlNode("mo",document.createTextNode(symbol.output));
5592 newFrag.appendChild(node);
5593 }
5594 }
5595 return [newFrag,str,tag];
5596 }
5597
5598 function AMparseMath(str) {
5599 var result, node = AMcreateElementMathML("mstyle");
5600 //added by J. Knisley to allow limited implementation of \color
5601 var cclr = str.match(/\\color\s*\{s*([#\w]+)\s*\}/);
5602 str = str.replace(/\\color\s*\{s*[#\w]+\s*\}/g,"");
5603 if(cclr!=null) {
5604 if(IsColorName.test(cclr[1].toLowerCase())) {
5605 cclr=LaTeXColor[cclr[1].toLowerCase()];
5606 } else {
5607 cclr=cclr[1]; // no checking for valid color!!
5608 }
5609 node.setAttribute("mathcolor",cclr);
5610 } else {
5611 if (mathcolor != "") node.setAttribute("mathcolor",mathcolor);
5612 };
5613 if (mathfontfamily != "") node.setAttribute("fontfamily",mathfontfamily);
5614 node.appendChild(AMparseExpr(str.replace(/^\s+/g,""),false,false)[0]);
5615 node = AMcreateMmlNode("math",node);
5616 if (showasciiformulaonhover) //fixed by djhsu so newline
5617 node.setAttribute("title",str.replace(/\s+/g," "));//does not show in Gecko
5618 if (false ) { //&& mathfontfamily != "" && (isIE || mathfontfamily != "serif")) {
5619 var fnode = AMcreateElementXHTML("font");
5620 fnode.setAttribute("face",mathfontfamily);
5621 fnode.appendChild(node);
5622 return fnode;
5623 }
5624 return node;
5625 }
5626
5627 function AMstrarr2docFrag(arr, linebreaks) {
5628 var newFrag=document.createDocumentFragment();
5629 var expr = false;
5630 for (var i=0; i<arr.length; i++) {
5631 if (expr) newFrag.appendChild(AMparseMath(arr[i]));
5632 else {
5633 var arri = (linebreaks ? arr[i].split("\n\n") : [arr[i]]);
5634 newFrag.appendChild(AMcreateElementXHTML("span").
5635 appendChild(document.createTextNode(arri[0])));
5636 for (var j=1; j<arri.length; j++) {
5637 newFrag.appendChild(AMcreateElementXHTML("p"));
5638 newFrag.appendChild(AMcreateElementXHTML("span").
5639 appendChild(document.createTextNode(arri[j])));
5640 }
5641 }
5642 expr = !expr;
5643 }
5644 return newFrag;
5645 }
5646
5647 function AMprocessNodeR(n, linebreaks) {
5648 var mtch, str, arr, frg, i;
5649 if (n.childNodes.length == 0) {
5650 if ((n.nodeType!=8 || linebreaks) &&
5651 n.parentNode.nodeName!="form" && n.parentNode.nodeName!="FORM" &&
5652 n.parentNode.nodeName!="textarea" && n.parentNode.nodeName!="TEXTAREA" &&
5653 n.parentNode.nodeName!="pre" && n.parentNode.nodeName!="PRE") {
5654 str = n.nodeValue;
5655 if (!(str == null)) {
5656 str = str.replace(/\r\n\r\n/g,"\n\n");
5657 str = str.replace(/\x20+/g," ");
5658 str = str.replace(/\s*\r\n/g," ");
5659 // DELIMITERS:
5660 mtch = (str.indexOf("\$")==-1 ? false : true);
5661 str = str.replace(/([^\\])\$/g,"$1 \$");
5662 str = str.replace(/^\$/," \$"); // in case \$ at start of string
5663 arr = str.split(" \$");
5664 for (i=0; i<arr.length; i++)
5665 arr[i]=arr[i].replace(/\\\$/g,"\$");
5666 if (arr.length>1 || mtch) {
5667 if (checkForMathML) {
5668 checkForMathML = false;
5669 var nd = AMisMathMLavailable();
5670 AMnoMathML = nd != null;
5671 if (AMnoMathML && notifyIfNoMathML)
5672 if (alertIfNoMathML)
5673 alert("To view the ASCIIMathML notation use Internet Explorer 6 +\nMathPlayer (free from www.dessci.com)\n\
5674 or Firefox/Mozilla/Netscape");
5675 else AMbody.insertBefore(nd,AMbody.childNodes[0]);
5676 }
5677 if (!AMnoMathML) {
5678 frg = AMstrarr2docFrag(arr,n.nodeType==8);
5679 var len = frg.childNodes.length;
5680 n.parentNode.replaceChild(frg,n);
5681 return len-1;
5682 } else return 0;
5683 }
5684 }
5685 } else return 0;
5686 } else if (n.nodeName!="math") {
5687 for (i=0; i<n.childNodes.length; i++)
5688 i += AMprocessNodeR(n.childNodes[i], linebreaks);
5689 }
5690 return 0;
5691 }
5692
5693 function AMprocessNode(n, linebreaks, spanclassAM) {
5694 var frag,st;
5695 if (spanclassAM!=null) {
5696 frag = document.getElementsByTagName("span")
5697 for (var i=0;i<frag.length;i++)
5698 if (frag[i].className == "AM")
5699 AMprocessNodeR(frag[i],linebreaks);
5700 } else {
5701 try {
5702 st = n.innerHTML;
5703 } catch(err) {}
5704 // DELIMITERS:
5705 if (st==null || st.indexOf("\$")!=-1)
5706 AMprocessNodeR(n,linebreaks);
5707 }
5708 if (isIE) { //needed to match size and font of formula to surrounding text
5709 frag = document.getElementsByTagName('math');
5710 for (var i=0;i<frag.length;i++) frag[i].update()
5711 }
5712 }
5713
5714 /* Below is LaTeX pre-processing to produce CSS supported */
5715 /* standard latex structures*/
5716 /* Jeff Knisley (knisleyj@etsu.edu)
5717 /* Supported in part by the Howard Hughes Medical Institute */
5718 /* as part of the Symbiosis Project: HHMI #52005872 */
5719
5720 var inAppendix = false;
5721 var sectionCntr = 0;
5722 var IEcommentWarning = true;
5723 var biblist = [];
5724 var bibcntr = 0;
5725
5726 var LaTeXCounter = [];
5727 LaTeXCounter["definition"] = 0;
5728 LaTeXCounter["proposition"] = 0;
5729 LaTeXCounter["lemma"] = 0;
5730 LaTeXCounter["theorem"] = 0;
5731 LaTeXCounter["corollary"] = 0;
5732 LaTeXCounter["example"] = 0;
5733 LaTeXCounter["exercise"] = 0;
5734 LaTeXCounter["subsection"] = 0;
5735 LaTeXCounter["subsubsection"] = 0;
5736 LaTeXCounter["figure"] = 0;
5737 LaTeXCounter["equation"] = 0;
5738 LaTeXCounter["table"] = 0;
5739 LaTeXCounter["label"] = 0;
5740
5741 var LaTeXColor = [];
5742 LaTeXColor["greenyellow"] = "#D9FF4F";
5743 LaTeXColor["yellow"] = "#FFFF00";
5744 LaTeXColor["goldenrod"] = "#FFE529";
5745 LaTeXColor["dandelion"] = "#FFB529";
5746 LaTeXColor["apricot"] = "#FFAD7A";
5747 LaTeXColor["peach"] = "#FF804D";
5748 LaTeXColor["melon"] = "#FF8A80";
5749 LaTeXColor["yelloworange"] = "#FF9400";
5750 LaTeXColor["orange"] = "#FF6321";
5751 LaTeXColor["burntorange"] = "#FF7D00";
5752 LaTeXColor["bittersweet"] = "#C20300";
5753 LaTeXColor["redorange"] = "#FF3B21";
5754 LaTeXColor["mahogany"] = "#A60000";
5755 LaTeXColor["maroon"] = "#AD0000";
5756 LaTeXColor["brickred"] = "#B80000";
5757 LaTeXColor["red"] = "#FF0000";
5758 LaTeXColor["orangered"] = "#FF0080";
5759 LaTeXColor["rubinered"] = "#FF00DE";
5760 LaTeXColor["wildstrawberry"] = "#FF0A9C";
5761 LaTeXColor["salmon"] = "#FF789E";
5762 LaTeXColor["carnationpink"] = "#FF5EFF";
5763 LaTeXColor["magenta"] = "#FF00FF";
5764 LaTeXColor["violetred"] = "#FF30FF";
5765 LaTeXColor["rhodamine"] = "#FF2EFF";
5766 LaTeXColor["mulberry"] = "#A314FA";
5767 LaTeXColor["redviolet"] = "#9600A8";
5768 LaTeXColor["fuchsia"] = "#7303EB";
5769 LaTeXColor["lavender"] = "#FF85FF";
5770 LaTeXColor["thistle"] = "#E069FF";
5771 LaTeXColor["orchid"] = "#AD5CFF";
5772 LaTeXColor["darkorchid"] = "#9933CC";
5773 LaTeXColor["purple"] = "#8C24FF";
5774 LaTeXColor["plum"] = "#8000FF";
5775 LaTeXColor["violet"] = "#361FFF";
5776 LaTeXColor["royalpurple"] = "#401AFF";
5777 LaTeXColor["blueviolet"] = "#1A0DF5";
5778 LaTeXColor["periwinkle"] = "#6E73FF";
5779 LaTeXColor["cadetblue"] = "#616EC4";
5780 LaTeXColor["cornflowerblue"] = "#59DEFF";
5781 LaTeXColor["midnightblue"] = "#007091";
5782 LaTeXColor["navyblue"] = "#0F75FF";
5783 LaTeXColor["royalblue"] = "#0080FF";
5784 LaTeXColor["blue"] = "#0000FF";
5785 LaTeXColor["cerulean"] = "#0FE3FF";
5786 LaTeXColor["cyan"] = "#00FFFF";
5787 LaTeXColor["processblue"] = "#0AFFFF";
5788 LaTeXColor["skyblue"] = "#61FFE0";
5789 LaTeXColor["turquoise"] = "#26FFCC";
5790 LaTeXColor["tealblue"] = "#1FFAA3";
5791 LaTeXColor["aquamarine"] = "#2EFFB2";
5792 LaTeXColor["bluegreen"] = "#26FFAB";
5793 LaTeXColor["emerald"] = "#00FF80";
5794 LaTeXColor["junglegreen"] = "#03FF7A";
5795 LaTeXColor["seagreen"] = "#4FFF80";
5796 LaTeXColor["green"] = "#00FF00";
5797 LaTeXColor["forestgreen"] = "#00E000";
5798 LaTeXColor["pinegreen"] = "#00BF29";
5799 LaTeXColor["limegreen"] = "#80FF00";
5800 LaTeXColor["yellowgreen"] = "#8FFF42";
5801 LaTeXColor["springgreen"] = "#BDFF3D";
5802 LaTeXColor["olivegreen"] = "#009900";
5803 LaTeXColor["rawsienna"] = "#8C0000";
5804 LaTeXColor["sepia"] = "#4D0000";
5805 LaTeXColor["brown"] = "#660000";
5806 LaTeXColor["tan"] = "#DB9470";
5807 LaTeXColor["gray"] = "#808080";
5808 LaTeXColor["grey"] = "#808080";
5809 LaTeXColor["black"] = "#000000";
5810 LaTeXColor["white"] = "#FFFFFF";
5811
5812 var IsColorName = /^(?:greenyellow|yellow|goldenrod|dandelion|apricot|peach|melon|yelloworange|orange|burntorange|bittersweet|redorange|mahogany|maroon|brickred|red|orangered|rubinered|wildstrawberry|salmon|carnationpink|magenta|violetred|rhodamine|mulberry|redviolet|fuchsia|lavender|thistle|orchid|darkorchid|purple|plum|violet|royalpurple|blueviolet|periwinkle|cadetblue|cornflowerblue|midnightblue|navyblue|royalblue|blue|cerulean|cyan|processblue|skyblue|turquoise|tealblue|aquamarine|bluegreen|emerald|junglegreen|seagreen|green|forestgreen|pinegreen|limegreen|yellowgreen|springgreen|olivegreen|rawsienna|sepia|brown|tan|gray|grey|black|white)$/;
5813 var IsCounter = /^(?:definition|proposition|lemma|theorem|corollary|example|exercise|subsection|subsubsection|figure|equation|table)$/ ;
5814 var IsLaTeXElement = /^(?:displayequation|title|author|address|date|abstract|keyword|section|subsection|subsubsection|ref|cite|thebibliography|definition|proposition|lemma|theorem|corollary|example|exercise|itemize|enumerate|enddefinition|endproposition|endlemma|endtheorem|endcorollary|endexample|endexercise|enditemize|endenumerate|LaTeXMathMLlabel|LaTeXMathML|smallskip|medskip|bigskip|quote|quotation|endquote|endquotation|center|endcenter|description|enddescription|inlinemath)$/;
5815 var IsTextOnlyArea = /^(?:form|textarea|pre)$/i;
5816 var tableid = 0;
5817
5818 function makeNumberString(cntr) {
5819 if(sectionCntr > 0) {
5820 if(inAppendix) {
5821 return "A"+sectionCntr+"."+cntr;
5822 } else {
5823 return sectionCntr+"."+cntr;
5824 }
5825 } else {
5826 return ""+cntr;
5827 }
5828 };
5829
5830
5831 function LaTeXpreProcess(thebody) {
5832 var TheBody = thebody;
5833 if(TheBody.hasChildNodes()) {
5834 if(!(IsLaTeXElement.test(TheBody.className)))
5835 {
5836 for(var i=0; i<TheBody.childNodes.length; i++) {
5837 LaTeXpreProcess(TheBody.childNodes[i]) }
5838 }
5839 }
5840 else {
5841 if( TheBody.nodeType==3 &&
5842 !(IsTextOnlyArea.test(TheBody.parentNode.nodeName) ) )
5843 {
5844 var str = TheBody.nodeValue;
5845 if( !(str==null)) {
5846
5847 str = str.replace(/\\%/g, "<per>"); // % sign
5848 str = str.replace(/%[^\n]*(?=\n)/g,"");
5849 str = str.replace(/%[^\r]*(?=\r)/g,""); //Used by Explorer
5850 str = str.replace(/%[^\n]*$/,"") // End of text segment comment
5851
5852 if(isIE && str.match(/%/g) != null && IEcommentWarning) {
5853 alert("Comments may not have parsed properly. Try putting in <pre class='LaTeX><div>..</div></pre> structure.");
5854 IEcommentWarning = false;
5855 }
5856 str = str.replace(/<per>/g,"%");
5857
5858 //if(str.match(/XXX[\s\S]*/)!=null) {
5859 // var tmp = str.match(/XXX[\s\S]*/)[0];
5860 // var tmpstr = tmp.charCodeAt(7)+"::"+tmp.charCodeAt(8)+"::"+tmp.charCodeAt(9)+"::"+tmp.charCodeAt(10)+"::"+tmp.charCodeAt(11)+"::"+tmp.charCodeAt(12)+"::"+tmp.charCodeAt(13);
5861 // alert(tmpstr);
5862 //}
5863
5864 //spacing that in LaTeXMathML may cause problems because of our approach. We use purely unicode
5865 // First we remove singleton / symbols
5866 str = str.replace(/([^\\])\\(\s)/g,"$1\u00A0$2"); // must be a space after \ for it to make an nbsp
5867
5868 str = str.replace(/\\quad/g,"\u2001");
5869 str = str.replace(/\\qquad/g,"\u2001\u2001");
5870 str = str.replace(/\\enspace/g,"\u2002");
5871 str = str.replace(/\\;/g,"\u2004");
5872 str = str.replace(/\\:/g,"\u2005");
5873 str = str.replace(/\\,/g,"\u2006");
5874 str = str.replace(/\\thinspace/g,"\u200A");
5875 str = str.replace(/([^\\])~/g,"$1\u00A0");
5876 str = str.replace(/\\~/g,"~");
5877
5878 //Added \[ ... \] and $$..$$ functionality.
5879 str = str.replace(/\\\[/g," <DEQ> $\\displaystyle{");
5880 str = str.replace(/\\\]/g,"}$ <DEQ> ");
5881 str = str.replace(/\$\$/g,"${$<DEQ>$}$");
5882
5883 // Separate replacements for begin .. end to (eventually) allow LaTeX equations with html codes mixed in
5884 // (as is the case for theorem, etc.
5885 // all variations of spaces with \begin{array} .. \end{array} -- not displayed, however
5886 str = str.replace(/\\begin\s*\{s*array\s*\}/g,"\\begin{array}");
5887 str = str.replace(/\\end\s*\{s*array\s*\}/g,"\\end{array}");
5888
5889 // all variations of spaces with \begin{eqnarray} .. \end{eqnarray}
5890 str = str.replace(/\\begin\s*\{s*eqnarray\s*\}/g," <DEQ>eqno$\\begin{eqnarray}");
5891 str = str.replace(/\\end\s*\{s*eqnarray\s*\}/g,"\\end{eqnarray}$<DEQ> ");
5892
5893 // all variations of spaces with \begin{eqnarray*} .. \end{eqnarray*}
5894 str = str.replace(/\\begin\s*\{s*eqnarray\*\s*\}/g," <DEQ>$\\begin{eqnarray}");
5895 str = str.replace(/\\end\s*\{s*eqnarray\*\s*\}/g,"\\end{eqnarray}$<DEQ> ");
5896
5897 // all variations of spaces with \begin{displaymath} .. \end{displaymath}
5898 str = str.replace(/\\begin\s*\{s*displaymath\s*\}/g," <DEQ> $\\displaystyle{");
5899 str = str.replace(/\\end\s*\{s*displaymath\s*\}/g,"}$ <DEQ> ");
5900
5901 // all variations of spaces with \begin{equation*} .. \end{equation*}
5902 str = str.replace(/\\begin\s*\{s*equation\s*\*\s*\}/g," <DEQ> $\\displaystyle{");
5903 str = str.replace(/\\end\s*\{s*equation\s*\*\s*\}/g,"}$ <DEQ> ");
5904
5905 // all variations of spaces with \begin{equation} .. \end{equation}
5906 str = str.replace(/\\begin\s*\{s*equation\s*\}/g," <DEQ>eqno$\\displaystyle{");
5907 str = str.replace(/\\end\s*\{s*equation\s*\}/g,"}$ <DEQ> ");
5908
5909
5910
5911 //now parse to translate <DEQ> structures to <table class = 'dispeq'> stuff
5912 //and to identify non-display math content (sections, etc).
5913
5914 str = str.split("<DEQ>");
5915 // var ntype = TheBody.nodeType;
5916 var newFrag = document.createDocumentFragment();
5917
5918 for(var i=0;i<str.length;i++) {
5919 if(i % 2) {
5920 //odd = table of type displayequation
5921 var DEQtable = document.createElement("table");
5922 DEQtable.className='displayequation';
5923 var DEQtbody = document.createElement("tbody");
5924
5925 var DEQtr = document.createElement("tr");
5926 var DEQtdeq = document.createElement("td");
5927 DEQtdeq.className='eq';
5928
5929 // AfterFix to repair for $$...$$
5930 str[i] = str[i].replace(/\$\}$/g,"$\\displaystyle{");
5931 str[i] = str[i].replace(/\$\{$/g,"}");
5932
5933 //check for equation number via either label or eqno at beginning -- \nonumber is removed
5934 var lbl = str[i].match(/\\label\s*\{s*(\w+)\s*\}/);
5935 var ISeqno = str[i].match(/^eqno/);
5936
5937 // append nodes into row
5938 str[i] = str[i].replace(/^eqno/," ");
5939 str[i] = str[i].replace(/\\label\s*\{s*\w+\s*\}/," ");
5940 DEQtdeq.appendChild(document.createTextNode( str[i] ) );
5941 DEQtr.appendChild(DEQtdeq);
5942
5943 str[i] = str[i].replace(/\\nonumber/g,"");
5944
5945 if(ISeqno!=null || lbl !=null) {
5946 var DEQtdno = document.createElement("td");
5947 DEQtdno.className='eqno';
5948 LaTeXCounter["equation"]++;
5949 var eqnoString = makeNumberString(LaTeXCounter["equation"]);
5950
5951 var DEQanchor = document.createElement("a");
5952 if(lbl!=null) { DEQanchor.id = lbl[1] };
5953 DEQanchor.className = "eqno";
5954 var anchorSpan = document.createElement("span");
5955 anchorSpan.className = "eqno";
5956 anchorSpan.style.display = "none";
5957 anchorSpan.appendChild(document.createTextNode(eqnoString));
5958 DEQanchor.appendChild(anchorSpan);
5959 DEQtdno.appendChild(DEQanchor);
5960 var DEQspan = document.createElement("span");
5961 DEQspan.className = "eqno";
5962 DEQspan.appendChild(document.createTextNode("("+eqnoString+")" ));
5963 DEQtdno.appendChild(DEQspan);
5964 DEQtr.appendChild(DEQtdno);
5965 }
5966 DEQtbody.appendChild(DEQtr);
5967 DEQtable.appendChild(DEQtbody);
5968 newFrag.appendChild(DEQtable);
5969 }
5970 else {
5971 //even = this is text, where we may have sections, labels, subsections, and so on
5972
5973 // AfterFix to repair for $$...$$
5974 str[i] = str[i].replace(/\$\}$/g,"");
5975 str[i] = str[i].replace(/\$\{$/g,"");
5976
5977 //Some stuff we just want to remove
5978 str[i] = str[i].replace(/\\maketitle/g,"");
5979 str[i] = str[i].replace(/\\begin\s*\{s*document\s*\}/g,"");
5980 str[i] = str[i].replace(/\\end\s*\{s*document\s*\}/g,"");
5981 str[i] = str[i].replace(/\\documentclass[^\}]*?\}/g,"");
5982 str[i] = str[i].replace(/\\usepackage[^\}]*?\}/g,""); //ignores packages and their options
5983 str[i] = str[i].replace(/\\noindent/g,"");
5984 str[i] = str[i].replace(/\\notag/g,"");
5985
5986 //Next: labels, ref's, hrefs, urls, and cites
5987 str[i] = str[i].replace(/\\ref\s*\{s*(\w+)\}/g," \\[ref\\]$1\\[ ");
5988 str[i] = str[i].replace (/\\url\s*\{s*([^\}n]+)\}/g," \\[url\\]$1\\[ ");
5989 str[i] = str[i].replace(/\\href\s*\{s*([^\}]+)\}s*\{s*([^\}]+)\}/g," \\[href\\]$1\\]$2\\[ ");
5990 str[i] = str[i].replace(/\\cite\s*\{s*(\w+)\}/g," \\[cite\\]$1\\[ ");
5991
5992 //Miscellaneous stuff!!
5993 str[i] = str[i].replace(/\\qed/g,"\u220E");
5994 str[i] = str[i].replace(/\\endproof/g,"\u220E");
5995 str[i] = str[i].replace(/\\proof/g,"\\textbf{Proof: }");
5996
5997 //breaks and skips
5998 str[i] = str[i].replace(/\\n(?=\s)/g, " \\[br\\] \\[ ");
5999 str[i] = str[i].replace(/\\newline/g," \\[br\\] \\[ ");
6000 str[i] = str[i].replace(/\\linebreak/g," \\[br\\] \\[ ");
6001 str[i] = str[i].replace(/\\smallskip/g," \\[logicalbreak\\]smallskip\\[ ");
6002 str[i] = str[i].replace(/\\medskip/g," \\[logicalbreak\\]medskip\\[ ");
6003 str[i] = str[i].replace(/\\bigskip/g," \\[logicalbreak\\]bigskip\\[ ");
6004 str[i] = str[i].replace(/[\n\r]+[ \f\n\r\t\v\u2028\u2029]*[\n\r]+/g," \\[logicalbreak\\]LaTeXMathML\\[ "); // extra return replaced by <p>
6005 if(isIE) {
6006 str[i] = str[i].replace(/\r/g," "); // replace \r by a space to aid spacing!
6007 }
6008
6009
6010 //items and appendix
6011 str[i] = str[i].replace(/\\bibitem\s*([^\{]*\{s*\w*\s*\})/g," \\[bibitem\\]$1\\[ ");
6012 str[i] = str[i].replace(/\\bibitem\s*/g," \\[bibitem\\] \\[ ");
6013 str[i] = str[i].replace(/\\item\s*\[\s*(\w+)\s*\]/g," \\[alistitem\\]$1\\[ ");
6014 str[i] = str[i].replace(/\\item\s*/g," \\[alistitem\\] \\[ ");
6015 str[i] = str[i].replace(/\\appendix/g," \\[appendix\\] \\[ ");
6016
6017
6018 // \includegraphics[][]{image} -- no processing of options. This treatment is DANGEROUS. It assumes no html will be
6019 // placed within the \begin{figure} ... \end{figure} structure, and the [\s\S] character class could lead to strange matches
6020 str[i] = str[i].replace(/\\begin\s*\{s*figure\s*\}([\s\S]+?)\\end\s*\{s*figure\s*\}/g," \\[figure\\]$1\\[ ");
6021 str[i] = str[i].replace(/\\begin\s*\{s*table\s*\}([\s\S]+?)\\end\s*\{s*table\s*\}/g," \\[table\\]$1\\[ ");
6022 //str[i] = str[i].replace(/\\begin\s*\{s*array\s*\}([\s\S]+?)\\end\s*\{s*array\s*\}/g," \\[array\\]$1\\[ ");
6023 //goal is to protect array \\ from being converted into linebreaks
6024
6025 //This construction allows css classes for divs for these elements, but the CSS will have to be supplied through a
6026 //css file or (script) .. (/script) in the header. (It makes sense to me that style files in LaTeX should correspond
6027 //to css and/or xslt when translating to mathml, but \ref's are a problem).
6028 str[i] = str[i].replace(/\\begin\s*\{s*theorem\s*\}/g," \\[theorem\\]Theorem \\[ ");
6029 str[i] = str[i].replace(/\\end\s*\{s*theorem\s*\}/g," \\[endtheorem\\] \\[ ");
6030
6031 str[i] = str[i].replace(/\\begin\s*\{s*definition\s*\}/g," \\[definition\\]Definition \\[ ");
6032 str[i] = str[i].replace(/\\end\s*\{s*definition\s*\}/g," \\[enddefinition\\] \\[ ");
6033
6034 str[i] = str[i].replace(/\\begin\s*\{s*lemma\s*\}/g," \\[lemma\\]Lemma \\[ ");
6035 str[i] = str[i].replace(/\\end\s*\{s*lemma\s*\}/g," \\[endlemma\\] \\[ ");
6036
6037 str[i] = str[i].replace(/\\begin\s*\{s*corollary\s*\}/g," \\[corollary\\]Corollary \\[ ");
6038 str[i] = str[i].replace(/\\end\s*\{s*corollary\s*\}/g," \\[endcorollary\\] \\[ ");
6039
6040 str[i] = str[i].replace(/\\begin\s*\{s*proposition\s*\}/g," \\[proposition\\]Proposition \\[ ");
6041 str[i] = str[i].replace(/\\end\s*\{s*proposition\s*\}/g," \\[endproposition\\] \\[ ");
6042
6043 str[i] = str[i].replace(/\\begin\s*\{s*example\s*\}/g," \\[example\\]Example \\[ ");
6044 str[i] = str[i].replace(/\\end\s*\{s*example\s*\}/g," \\[endexample\\] \\[ ");
6045
6046 str[i] = str[i].replace(/\\begin\s*\{s*exercise\s*\}/g," \\[exercise\\]Exercise \\[ ");
6047 str[i] = str[i].replace(/\\end\s*\{s*exercise\s*\}/g," \\[endexercise\\] \\[ ");
6048
6049 str[i] = str[i].replace(/\\begin\s*\{s*thebibliography\s*\}s*\{s*\w+\s*\}/g," \\[thebibliography\\]References \\[ ");
6050 str[i] = str[i].replace(/\\begin\s*\{s*thebibliography\s*\}/g," \\[thebibliography\\]References \\[ ");
6051 str[i] = str[i].replace(/\\end\s*\{s*thebibliography\s*\}/g," \\[endthebibliography\\]References \\[ ");
6052
6053
6054 str[i] = str[i].replace(/\\begin\s*\{s*proof\s*\}/g," \\[proof\\]Proof: \\[ ");
6055 if(isIE) { //IE is just so weird
6056 str[i] = str[i].replace(/\\end\s*\{s*proof\s*\}/g,"\u220E \\[endproof\\] \\[ ");
6057 } else {
6058 str[i] = str[i].replace(/\\end\s*\{s*proof\s*\}/g," \\[endproof\\] \\[ ");
6059 }
6060
6061 //The frontmatter -- all translated to div's to be handled by CSS
6062 str[i] = str[i].replace(/\\title\s*\{s*([^\}]+)\}/g," \\[title\\] \\[$1 \\[endtitle\\] \\[ ");
6063 str[i] = str[i].replace(/\\author\s*\{s*([^\}]+)\}/g," \\[author\\] \\[$1 \\[endauthor\\] \\[ ");
6064 str[i] = str[i].replace(/\\address\s*\{s*([^\}]+)\}/g," \\[address\\] \\[$1 \\[endaddress\\] \\[ ");
6065 str[i] = str[i].replace(/\\date\s*\{s*([^\}]+)\}/g," \\[date\\] \\[$1 \\[enddate\\] \\[ ");
6066 str[i] = str[i].replace(/\\begin\s*\{s*keyword\s*\}/g," \\[keyword\\] \\[ ");
6067 str[i] = str[i].replace(/\\end\s*\{s*keyword\s*\}/g," \\[endkeyword\\] \\[ ");
6068 str[i] = str[i].replace(/\\begin\s*\{s*abstract\s*\}/g," \\[abstract\\] \\[ ");
6069 str[i] = str[i].replace(/\\end\s*\{s*abstract\s*\}/g," \\[endabstract\\] \\[ ");
6070
6071 //The rest of the environments -- Users can even "make up their own" -- but it avoids the array and tabular environments
6072 str[i] = str[i].replace(/\\begin\s*\{s*(?!array|tabular)(\w+)\s*\}/g," \\[$1\\] \\[ ");
6073 str[i] = str[i].replace(/\\end\s*\{s*(?!array|tabular)(\w+)\s*\}/g," \\[end$1\\] \\[ ");
6074
6075 //Next, we look at section--subsection stuff. This is nested -- this would be so much better if LaTeX used
6076 //some type of \begin{sectionhead}...\end{sectionhead} structure
6077 var sectionIndex = str[i].search(/\\section\s*\{s*[\s\S]+\}/);
6078
6079 while(sectionIndex >= 0) {
6080 str[i] = str[i].replace(/\\section\s*\{/ ," \\[section\\]");
6081 var delimcnt = 1;
6082 for(var ii=sectionIndex;ii<str[i].length;ii++) {
6083 if(str[i].charAt(ii) == "{") { delimcnt++ };
6084 if(str[i].charAt(ii) == "}") { delimcnt-- };
6085 if(delimcnt == 0) {
6086 str[i] = str[i].substring(0,ii)+"\\[ "+str[i].substring(ii+1,str[i].length) ;
6087 break;
6088 }
6089 };
6090 sectionIndex = str[i].search(/\\section\s*\{s*[\s\S]+\}/); //look for next
6091 }
6092
6093 sectionIndex = str[i].search(/\\subsection\s*\{s*[\s\S]+\}/);
6094
6095 while(sectionIndex >= 0) {
6096 str[i] = str[i].replace(/\\subsection\s*\{/ ," \\[subsection\\]");
6097 var delimcnt = 1;
6098 for(var ii=sectionIndex;ii<str[i].length;ii++) {
6099 if(str[i].charAt(ii) == "{") { delimcnt++ };
6100 if(str[i].charAt(ii) == "}") { delimcnt-- };
6101 if(delimcnt == 0) {
6102 str[i] = str[i].substring(0,ii)+"\\[ "+str[i].substring(ii+1,str[i].length) ;
6103 break;
6104 }
6105 };
6106 sectionIndex = str[i].search(/\\subsection\s*\{s*[\s\S]+\}/); //look for next
6107 }
6108
6109 sectionIndex = str[i].search(/\\subsubsection\s*\{s*[\s\S]+\}/);
6110
6111 while(sectionIndex >= 0) {
6112 str[i] = str[i].replace(/\\subsubsection\s*\{/ ," \\[subsubsection\\]");
6113 var delimcnt = 1;
6114 for(var ii=sectionIndex;ii<str[i].length;ii++) {
6115 if(str[i].charAt(ii) == "{") { delimcnt++ };
6116 if(str[i].charAt(ii) == "}") { delimcnt-- };
6117 if(delimcnt == 0) {
6118 str[i] = str[i].substring(0,ii)+"\\[ "+str[i].substring(ii+1,str[i].length) ;
6119 break;
6120 }
6121 };
6122 sectionIndex = str[i].search(/\\subsubsection\s*\{s*[\s\S]+\}/); //look for next
6123 }
6124
6125 var CatToNextEven = "";
6126 //split into alternating text elements and "marked" elements
6127 var strtmp = str[i].split("\\[");
6128 //document.write(strtmp[0]);
6129
6130 for(var j=0;j<strtmp.length;j++) {
6131 if(j % 2) {
6132 //odd = split on \\]
6133 var strtmparray = strtmp[j].split("\\]");
6134 switch (strtmparray[0]) {
6135 case "section":
6136 var nodeTmp = document.createElement("H2");
6137 nodeTmp.className = 'section';
6138 //reset counters
6139 sectionCntr++;
6140 for (var div in LaTeXCounter) { LaTeXCounter[div] = 0 };
6141 //Create Title of section
6142 var nodeAnchor = document.createElement("a");
6143 if(inAppendix) {
6144 nodeAnchor.className='appendixsection';
6145 } else {
6146 nodeAnchor.className='section';
6147 }
6148 var nodeNumString = makeNumberString("");
6149 var anchorSpan = document.createElement("span");
6150 anchorSpan.className = "section";
6151 anchorSpan.style.display = "none";
6152 anchorSpan.appendChild(document.createTextNode(nodeNumString));
6153 nodeAnchor.appendChild(anchorSpan);
6154 nodeTmp.appendChild(nodeAnchor);
6155
6156 var nodeSpan = document.createElement("span");
6157 nodeSpan.className = 'section';
6158 nodeSpan.appendChild(document.createTextNode(nodeNumString+" "));
6159 nodeTmp.appendChild(nodeSpan);
6160 nodeTmp.appendChild(document.createTextNode( strtmparray[1] ) );
6161 newFrag.appendChild(nodeTmp);
6162 break;
6163 case "subsection":
6164 var nodeTmp = document.createElement("H3");
6165 nodeTmp.className = 'subsection';
6166 //counters
6167 LaTeXCounter["subsection"]++;
6168 LaTeXCounter["subsubsection"]=0;
6169 //Create Title of section
6170 var nodeAnchor = document.createElement("a");
6171 nodeAnchor.className = 'subsection';
6172 var nodeNumString = makeNumberString(LaTeXCounter["subsection"]);
6173 var anchorSpan = document.createElement("span");
6174 anchorSpan.className = "subsection";
6175 anchorSpan.style.display = "none";
6176 anchorSpan.appendChild(document.createTextNode(nodeNumString));
6177 nodeAnchor.appendChild(anchorSpan);
6178 nodeTmp.appendChild(nodeAnchor);
6179 var nodeSpan = document.createElement("span");
6180 nodeSpan.className = 'subsection';
6181 nodeSpan.appendChild(document.createTextNode(nodeNumString+". "));
6182 nodeTmp.appendChild(nodeSpan);
6183 nodeTmp.appendChild(document.createTextNode( strtmparray[1] ) );
6184 newFrag.appendChild(nodeTmp);
6185 break;
6186 case "subsubsection":
6187 var nodeTmp = document.createElement("H4");
6188 nodeTmp.className = 'subsubsection';
6189 //counters
6190 LaTeXCounter["subsubsection"]++;
6191 //Create Title of section
6192 var nodeAnchor = document.createElement("a");
6193 nodeAnchor.className = 'subsubsection';
6194 var nodeNumString = makeNumberString(LaTeXCounter["subsection"]+"."+LaTeXCounter["subsubsection"]);
6195 var anchorSpan = document.createElement("span");
6196 anchorSpan.className = "subsubsection";
6197 anchorSpan.style.display = "none";
6198 anchorSpan.appendChild(document.createTextNode(nodeNumString));
6199 nodeAnchor.appendChild(anchorSpan);
6200 nodeTmp.appendChild(nodeAnchor);
6201 var nodeSpan = document.createElement("span");
6202 nodeSpan.className = 'subsubsection';
6203 nodeSpan.appendChild(document.createTextNode(nodeNumString+". "));
6204 nodeTmp.appendChild(nodeSpan);
6205 nodeTmp.appendChild(document.createTextNode( strtmparray[1] ) );
6206 newFrag.appendChild(nodeTmp);
6207 break;
6208 case "href":
6209 var nodeTmp = document.createElement("a");
6210 nodeTmp.className = 'LaTeXMathML';
6211 nodeTmp.href = strtmparray[1];
6212 nodeTmp.appendChild(document.createTextNode( strtmparray[2]));
6213 newFrag.appendChild(nodeTmp);
6214 break;
6215 case "url":
6216 var nodeTmp = document.createElement("a");
6217 nodeTmp.className = 'LaTeXMathML';
6218 nodeTmp.href = strtmparray[1];
6219 nodeTmp.appendChild(document.createTextNode( strtmparray[1]));
6220 newFrag.appendChild(nodeTmp);
6221 break;
6222 case "figure":
6223 var nodeTmp = document.createElement("table");
6224 nodeTmp.className = 'figure';
6225 var FIGtbody = document.createElement("tbody");
6226
6227 var FIGlbl = strtmparray[1].match(/\\label\s*\{s*(\w+)\s*\}/);
6228 strtmparray[1]=strtmparray[1].replace(/\\label\s*\{w+\}/g,"");
6229
6230 var capIndex = strtmparray[1].search(/\\caption\s*\{[\s\S]+\}/);
6231 var FIGcap = "";
6232
6233 if(capIndex >= 0) { // caption may contain other { } structures -- but not displaymath!!
6234 var tmp = strtmparray[1];
6235 var delimcnt = 0;
6236 var capstart = -1;
6237 for(var pos=capIndex;pos<tmp.length;pos++) {
6238 if(tmp.charAt(pos) == "{") { delimcnt++ };
6239 if(tmp.charAt(pos) == "}") { delimcnt-- };
6240 if(delimcnt == 1 && capstart<0) { capstart = pos+1 };
6241 if(delimcnt == 0 && capstart>0) {
6242 capend = pos-1;
6243 FIGcap = tmp.substring(capstart,pos);
6244 break
6245 }
6246 }
6247 }
6248
6249 var FIGtr2 = document.createElement("tr");
6250 var FIGtd2 = document.createElement("td");
6251 FIGtd2.className="caption";
6252
6253
6254 var FIGanchor = document.createElement("a");
6255 FIGanchor.className = "figure";
6256 if(FIGlbl!=null) { FIGanchor.id = FIGlbl[1]; }
6257 LaTeXCounter["figure"]++;
6258 var fignmbr = makeNumberString(LaTeXCounter["figure"]);
6259 var anchorSpan = document.createElement("span");
6260 anchorSpan.className = "figure";
6261 anchorSpan.style.display = "none";
6262 anchorSpan.appendChild(document.createTextNode(fignmbr));
6263 FIGanchor.appendChild(anchorSpan);
6264 FIGtd2.appendChild(FIGanchor);
6265
6266 var FIGspan = document.createElement("span");
6267 FIGspan.className = "figure"; //For CSS counters, comment this line
6268 FIGspan.appendChild(document.createTextNode("Figure "+fignmbr+". " ) );
6269 FIGtd2.appendChild(FIGspan);
6270 FIGtd2.appendChild(document.createTextNode(""+FIGcap));
6271 FIGtr2.appendChild(FIGtd2);
6272 FIGtbody.appendChild(FIGtr2);
6273 var IsSpecial = false;
6274
6275 var FIGinfo = strtmparray[1].match(/\\includegraphics\s*\{([^\}]+)\}/);
6276 if(FIGinfo==null) { //options not processed, for now
6277 FIGinfo = strtmparray[1].match(/\\includegraphics\s*\[[^\]]*\]\s*\{s*([^\}]+)\s*\}/);
6278 }
6279 if(FIGinfo==null) {
6280 FIGinfo = strtmparray[1].match(/\\special\s*\{s*([^\}]+)\}/);
6281 IsSpecial=true //Hook: Later can include "special" graphics commands
6282 };
6283
6284 if(FIGinfo!=null) { //Caption will be above the image
6285 var FIGtr1 = document.createElement("tr");
6286 var FIGtd1 = document.createElement("td");
6287 FIGtd1.className="image";
6288 var FIGimg = document.createElement("img");
6289 var FIGsrc = FIGinfo[1]; //options not processed, for now
6290 FIGimg.src = FIGsrc;
6291 FIGimg.alt = "Figure "+FIGsrc+" did not load";
6292 FIGimg.title = "Figure "+fignmbr+". "+FIGcap;
6293 FIGimg.id = "figure"+fignmbr;
6294 FIGtd1.appendChild(FIGimg);
6295 FIGtr1.appendChild(FIGtd1);
6296 FIGtbody.appendChild(FIGtr1);
6297 }
6298 nodeTmp.appendChild(FIGtbody);
6299 newFrag.appendChild(nodeTmp);
6300 break;
6301 case "table":
6302 var nodeTmp = document.createElement("table");
6303 if(strtmparray[1].search(/\\centering/) >= 0) {
6304 nodeTmp.className = 'LaTeXtable centered';
6305 nodeTmp.align = "center";
6306 } else {
6307 nodeTmp.className = 'LaTeXtable';
6308 };
6309 tableid++;
6310 nodeTmp.id = "LaTeXtable"+tableid; //unique id for each table
6311
6312 var TABlbl = strtmparray[1].match(/\\label\s*\{s*(\w+)\s*\}/);
6313 strtmparray[1]=strtmparray[1].replace(/\\label\s*\{w+\}/g,"");
6314
6315 var capIndex = strtmparray[1].search(/\\caption\s*\{[\s\S]+\}/);
6316 var TABcap = "";
6317
6318 if(capIndex >= 0) { // caption may contain other { } structures -- but not displaymath!!
6319 var tmp = strtmparray[1];
6320 var delimcnt = 0;
6321 var capstart = -1;
6322 for(var pos=capIndex;pos<tmp.length;pos++) {
6323 if(tmp.charAt(pos) == "{") { delimcnt++ };
6324 if(tmp.charAt(pos) == "}") { delimcnt-- };
6325 if(delimcnt == 1 && capstart<0) { capstart = pos+1 };
6326 if(delimcnt == 0 && capstart>0) {
6327 capend = pos-1;
6328 TABcap = tmp.substring(capstart,pos);
6329 break
6330 }
6331 }
6332 }
6333
6334 if(TABcap!="") {
6335 var TABtbody = document.createElement("tbody");
6336 var TABcaption = document.createElement("caption");
6337 TABcaption.className="LaTeXtable centered";
6338 var TABanchor = document.createElement("a");
6339 TABanchor.className = "LaTeXtable";
6340 if(TABlbl!=null) { TABanchor.id = TABlbl[1]; }
6341 LaTeXCounter["table"]++;
6342 var tabnmbr = makeNumberString(LaTeXCounter["table"]);
6343 var anchorSpan = document.createElement("span");
6344 anchorSpan.className = "LaTeXtable";
6345 anchorSpan.style.display = "none";
6346 anchorSpan.appendChild(document.createTextNode(tabnmbr));
6347 TABanchor.appendChild(anchorSpan);
6348 TABcaption.appendChild(TABanchor);
6349
6350 var TABspan = document.createElement("span");
6351 TABspan.className = "LaTeXtable"; //For CSS counters, comment this line
6352 TABspan.appendChild(document.createTextNode("Table "+tabnmbr+". " ) );
6353 TABcaption.appendChild(TABspan);
6354 TABcaption.appendChild(document.createTextNode(""+TABcap));
6355 nodeTmp.appendChild(TABcaption);
6356 }
6357 var TABinfo = strtmparray[1].match(/\\begin\s*\{s*tabular\s*\}([\s\S]+)\\end\s*\{s*tabular\s*\}/);
6358 if(TABinfo!=null) {
6359 var TABtbody = document.createElement('tbody');
6360 var TABrow = null;
6361 var TABcell = null;
6362 var row=0;
6363 var col=0;
6364
6365 var TABalign = TABinfo[1].match(/^\s*\{([^\}]+)\}/);
6366 TABinfo = TABinfo[1].replace(/^\s*\{[^\}]+\}/,"");
6367 TABinfo = TABinfo.replace(/\\hline/g,""); //no horizontal bars
6368 TABalign[1] = TABalign[1].replace(/\|/g,""); //no vertical bars
6369 TABalign[1] = TABalign[1].replace(/\s/g,"");
6370 TABinfo = TABinfo.split("\\\\"); // into rows
6371 for(row=0;row<TABinfo.length;row++) {
6372 TABrow = document.createElement("tr");
6373 TABinfo[row] = TABinfo[row].split("&");
6374 for(col=0;col<TABinfo[row].length;col++) {
6375 TABcell = document.createElement("td");
6376 switch (TABalign[1].charAt(col)) {
6377 case "l":
6378 TABcell.style.textAlign = "left";
6379 break;
6380 case "c":
6381 TABcell.style.textAlign = "center";
6382 break;
6383 case "r":
6384 TABcell.style.textAlign = "right";
6385 break;
6386 default :
6387 TABcell.style.textAlign = "left";
6388 };
6389 TABcell.appendChild(document.createTextNode(TABinfo[row][col]));
6390 TABrow.appendChild(TABcell);
6391 }
6392 TABtbody.appendChild(TABrow);
6393 }
6394 nodeTmp.appendChild(TABtbody);
6395 }
6396 newFrag.appendChild(nodeTmp);
6397 break;
6398 case "logicalbreak":
6399 var nodeTmp = document.createElement("p");
6400 nodeTmp.className = strtmparray[1];
6401 nodeTmp.appendChild(document.createTextNode("\u00A0"));
6402 newFrag.appendChild(nodeTmp);
6403 break;
6404 case "appendix":
6405 inAppendix=true;
6406 sectionCntr=0;
6407 break;
6408 case "alistitem":
6409 var EndDiv = document.createElement("div");
6410 EndDiv.className = "endlistitem";
6411 newFrag.appendChild(EndDiv);
6412 var BegDiv = document.createElement("div");
6413 BegDiv.className = "listitem";
6414 if(strtmparray[1]!=" ") {
6415 var BegSpan = document.createElement("span");
6416 BegSpan.className="listitemmarker";
6417 var boldBegSpan = document.createElement("b");
6418 boldBegSpan.appendChild(document.createTextNode(strtmparray[1]+" "));
6419 BegSpan.appendChild(boldBegSpan);
6420 BegDiv.appendChild(BegSpan);
6421 }
6422 newFrag.appendChild(BegDiv);
6423 break;
6424 case "br":
6425 newFrag.appendChild(document.createElement("br"));
6426 break;
6427 case "bibitem":
6428 newFrag.appendChild(document.createElement("br"));
6429 var nodeTmp = document.createElement("a");
6430 nodeTmp.className = 'bibitem';
6431 var nodeSpan = document.createElement("span");
6432 nodeSpan.className = 'bibitem';
6433
6434 bibcntr++;
6435
6436 var lbl = strtmparray[1].match(/\{s*(\w+)\s*\}/);
6437 strtmparray[1] = strtmparray[1].replace(/\s*\{s*\w+\s*\}/g,"");
6438 strtmparray[1] = strtmparray[1].replace(/^\s*\[/,"");
6439 strtmparray[1] = strtmparray[1].replace(/\s*\]$/,"");
6440 strtmparray[1] = strtmparray[1].replace(/^\s+|\s+$/g,"");
6441 //We create a list of id's for the bibitems -- it seemed important at one time??
6442 if(lbl==null) {
6443 biblist[bibcntr] = "bibitem"+bibcntr
6444 } else {
6445 biblist[bibcntr] = lbl[1];
6446 };
6447 nodeTmp.name = biblist[bibcntr];
6448 nodeTmp.id = biblist[bibcntr];
6449 // We place content into <a> -- access it with \cite, thus allowing appropriate labels!
6450 if(strtmparray[1]!="") {
6451 nodeSpan.appendChild(document.createTextNode(strtmparray[1]));
6452 } else {
6453 nodeSpan.appendChild(document.createTextNode("["+bibcntr+"]"));
6454 }
6455 nodeTmp.appendChild(nodeSpan);
6456 newFrag.appendChild(nodeTmp);
6457 break;
6458 case "cite":
6459 var nodeTmp = document.createElement("a");
6460 nodeTmp.className = 'cite';
6461 nodeTmp.name = 'cite';
6462 nodeTmp.href = "#"+strtmparray[1];
6463 newFrag.appendChild(nodeTmp);
6464 break;
6465 case "ref":
6466 var nodeTmp = document.createElement("a");
6467 nodeTmp.className = 'ref';
6468 nodeTmp.name = 'ref';
6469 nodeTmp.href = "#"+strtmparray[1];
6470 newFrag.appendChild(nodeTmp);
6471 break;
6472 default :
6473 var nodeTmp = document.createElement("div");
6474 nodeTmp.className = strtmparray[0];
6475 if( IsCounter.test(strtmparray[0]) ) {
6476 LaTeXCounter[strtmparray[0]]++;
6477 var nodeAnchor = document.createElement("a");
6478 nodeAnchor.className = strtmparray[0];
6479 var divnum = makeNumberString(LaTeXCounter[strtmparray[0]]);
6480 var anchorSpan = document.createElement("span");
6481 anchorSpan.className = strtmparray[0];
6482 anchorSpan.appendChild(document.createTextNode(divnum));
6483 anchorSpan.style.display="none";
6484 nodeAnchor.appendChild(anchorSpan);
6485 nodeTmp.appendChild(nodeAnchor);
6486
6487 var nodeSpan = document.createElement("span");
6488 nodeSpan.className = strtmparray[0];
6489 nodeSpan.appendChild(document.createTextNode(strtmparray[1]+" "+divnum+". "));
6490 nodeTmp.appendChild(nodeSpan);
6491 }
6492 if(isIE) { //remove if IE supports :before and :after
6493 if(strtmparray[0]==("thebibliography"||"abstract"||"keyword"||"proof")) {
6494 var nodeSpan = document.createElement("span");
6495 nodeSpan.className = strtmparray[0];
6496 nodeSpan.appendChild(document.createTextNode(strtmparray[1]));
6497 nodeTmp.appendChild(nodeSpan);
6498 }
6499 } //end of IE :before and :after fixes
6500 if(strtmparray[0]=="endenumerate" || strtmparray[0]=="enditemize" || strtmparray[0]=="enddescription") {
6501 var endDiv = document.createElement("div");
6502 endDiv.className = "endlistitem";
6503 newFrag.appendChild(endDiv);
6504 }
6505 newFrag.appendChild(nodeTmp);
6506 if(strtmparray[0]=="enumerate" || strtmparray[0]=="itemize" || strtmparray[0]=="description") {
6507 var endDiv = document.createElement("div");
6508 endDiv.className = "listitem";
6509 newFrag.appendChild(endDiv);
6510 }
6511 }
6512 } else {
6513 //even = text, labels, bf, and italics, and linebreaks, and math -- we now remove the math
6514 strtmp[j] = strtmp[j].replace(/\\\$/g,"<per>");
6515 strtmp[j] = strtmp[j].replace(/\$([^\$]+)\$/g," \\[$1\\[ ");
6516 strtmp[j] = strtmp[j].replace(/<per>/g,"\\$");
6517 strtmp[j] = strtmp[j].replace(/\\begin\s*\{s*math\s*\}([\s\S]+?)\\end\s*\{s*math\s*\}/g," \\[$1\\[ ");
6518
6519 var strtmptmp = strtmp[j].split("\\[");
6520
6521 for(var jjj=0;jjj<strtmptmp.length;jjj++) {
6522 if(jjj % 2) { //odd = math
6523 var nodeTmp = document.createElement("span");
6524 nodeTmp.className = 'inlinemath';
6525 nodeTmp.appendChild(document.createTextNode("$"+strtmptmp[jjj]+"$"));
6526 newFrag.appendChild(nodeTmp);
6527 } else {
6528 //all other tags will be mapped to span's (most should be font-face tags) with class-names matching the tag name.
6529 //Exceptions will be textcolor, colorbox, textbf, textit, and emph. These cannot include any html tags.
6530 var TagIndex = strtmptmp[jjj].search(/\\\w+/);
6531 var tmpIndex = TagIndex;
6532 while(tmpIndex>-1) {
6533 if(/^\\textcolor/.test(strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length))) {
6534 strtmptmp[jjj] = strtmptmp[jjj].replace(/\\textcolor\s*\{s*(\w+)\s*\}s*/," \\[textcolor\\]$1\\]|");
6535 } else {
6536 if(/^\\colorbox/.test(strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length))) {
6537 strtmptmp[jjj] = strtmptmp[jjj].replace(/\\colorbox\s*\{s*(\w+)\s*\}s*/," \\[colorbox\\]$1\\]|");
6538 } else {
6539 strtmptmp[jjj] = strtmptmp[jjj].substring(0,TagIndex)+strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length).replace(/\\\s*(\w+)\s*/," \\[$1\\]|");
6540 }
6541 }
6542 TagIndex +=strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length).search(/\|/);
6543 TagIndex++;
6544 strtmptmp[jjj] = strtmptmp[jjj].replace(/\\\]\|/,"\\] ");
6545 if(strtmptmp[jjj].charAt(TagIndex) == "{") {
6546 strtmptmp[jjj] = strtmptmp[jjj].substring(0,TagIndex)+strtmptmp[jjj].substring(TagIndex+1,strtmptmp[jjj].length);
6547 var delimcnt = 1;
6548 for(var kk = TagIndex;kk<strtmptmp[jjj].length;kk++) {
6549 if(strtmptmp[jjj].charAt(kk) == "{") { delimcnt++ };
6550 if(strtmptmp[jjj].charAt(kk) == "}") { delimcnt-- };
6551 if(delimcnt==0) { break; }
6552 }
6553 strtmptmp[jjj] = strtmptmp[jjj].substring(0,kk)+"\\[ "+strtmptmp[jjj].substring(kk+1,strtmptmp[jjj].length);
6554 TagIndex = kk+3;
6555 } else {
6556 strtmptmp[jjj] = strtmptmp[jjj].substring(0,TagIndex)+"\\[ "+strtmptmp[jjj].substring(TagIndex+1,strtmptmp[jjj].length);
6557 TagIndex = TagIndex + 3;
6558 }
6559 if(TagIndex<strtmptmp[jjj].length) {
6560 tmpIndex = strtmptmp[jjj].substring(TagIndex,strtmptmp[jjj].length).search(/\\\w+/);
6561 }
6562 else {
6563 tmpIndex = -1 };
6564 TagIndex += tmpIndex;
6565 }
6566
6567
6568 strtmptmp[jjj] = strtmptmp[jjj].replace(/\\\\\s*\\\\/g,"\\\\");
6569 strtmptmp[jjj] = strtmptmp[jjj].replace(/\\\\/g," \\[br\\] \\[ ");
6570 strtmptmp[jjj] = strtmptmp[jjj].replace(/\\label\s*\{s*(\w+)\s*\}/g," \\[label\\]$1\\[ ");
6571 var strlbls = strtmptmp[jjj].split("\\[");
6572
6573 for(var jj=0;jj<strlbls.length;jj++) {
6574 if(jj % 2) { //odd = labels, boldface, and breaks
6575 var strtmparray = strlbls[jj].split("\\]");
6576 switch(strtmparray[0]) {
6577 case "textcolor":
6578 var nodeTmp = document.createElement("span");
6579 nodeTmp.className = 'LaTeXColor';
6580 if(IsColorName.test(strtmparray[1].toLowerCase())) {
6581 nodeTmp.style.color=LaTeXColor[strtmparray[1].toLowerCase()];
6582 } else {
6583 nodeTmp.style.color=strtmparray[1];
6584 };
6585 nodeTmp.appendChild(document.createTextNode(strtmparray[2]));
6586 newFrag.appendChild(nodeTmp);
6587 break;
6588 case "colorbox":
6589 var nodeTmp = document.createElement("span");
6590 nodeTmp.className = 'LaTeXColor';
6591 if(IsColorName.test(strtmparray[1].toLowerCase())) {
6592 nodeTmp.style.background=LaTeXColor[strtmparray[1].toLowerCase()];
6593 } else {
6594 nodeTmp.style.background=strtmparray[1];
6595 };
6596 nodeTmp.appendChild(document.createTextNode(strtmparray[2]));
6597 newFrag.appendChild(nodeTmp);
6598 break;
6599 case "br":
6600 newFrag.appendChild(document.createElement("br"));
6601 break;
6602 case "label" :
6603 var nodeTmp = document.createElement("a");
6604 nodeTmp.className = 'LaTeXMathMLlabel';
6605 var lblid = strtmparray[1].match(/\s*(\w+)\s*/);
6606 if(lblid != null) { nodeTmp.id = lblid[1] };
6607 nodeTmp.style.display = "none";
6608
6609 LaTeXCounter['label']++;
6610 var lblnum = makeNumberString(LaTeXCounter['label']);
6611
6612 var anchorSpan = document.createElement("span");
6613 anchorSpan.className = 'LaTeXMathMLlabel';
6614 anchorSpan.appendChild(document.createTextNode(lblnum));
6615 anchorSpan.style.display="none";
6616 nodeTmp.appendChild(anchorSpan);
6617 newFrag.appendChild(nodeTmp);
6618 break;
6619 default :
6620 var nodeTmp = document.createElement("span");
6621 nodeTmp.className = strtmparray[0];
6622 nodeTmp.appendChild(document.createTextNode(strtmparray[1]))
6623 newFrag.appendChild(nodeTmp);
6624 }
6625 } else {
6626 newFrag.appendChild(document.createTextNode(strlbls[jj]));
6627 }
6628 }
6629 }
6630 }
6631 } // end else for even splits of strtmp
6632 }
6633 }
6634 }; //else sections and labels
6635 TheBody.parentNode.replaceChild(newFrag,TheBody);
6636 } //str nodevalue is not empty
6637 }
6638 } // split off recursion
6639 return TheBody;
6640 }
6641
6642 function LaTeXDivsAndRefs(thebody) {
6643 var TheBody = thebody;
6644
6645 var EndDivClass = null;
6646 var AllDivs = TheBody.getElementsByTagName("div");
6647 var lbl2id = "";
6648 var lblnode = null;
6649 for(var i=AllDivs.length-1;i>=0;i--) {
6650 EndDivClass = AllDivs[i].className.match(/end\w+/ );
6651 if(EndDivClass!=null) {
6652 EndDivClass = EndDivClass[0];
6653 var DivClass = EndDivClass.substring(3,EndDivClass.length);
6654 var EndDivNode = AllDivs[i];
6655 break;
6656 }
6657 }
6658 while(EndDivClass!=null) {
6659 // TrackBack to Beginning, appending to newfrag as we go
6660 var newFrag = document.createDocumentFragment();
6661 var RootNode = EndDivNode.parentNode;
6662 var ClassCount = 1; // because of EndDivNode
6663 while(EndDivNode.previousSibling!=null && ClassCount>0) {
6664 switch(EndDivNode.previousSibling.className) {
6665 case EndDivClass:
6666 ClassCount++;
6667 newFrag.insertBefore(EndDivNode.previousSibling,newFrag.firstChild);
6668 break;
6669 case DivClass:
6670 if(EndDivNode.previousSibling.nodeName=="DIV") {
6671 ClassCount-- ;
6672 //Must check to see if we need a label here!
6673 if(lbl2id !="" ) {
6674 EndDivNode.previousSibling.id = lbl2id;
6675 lbl2id = ""
6676 }
6677 if(ClassCount==0) {
6678 RootNode = EndDivNode.previousSibling;
6679 } else {
6680 newFrag.insertBefore(EndDivNode.previousSibling,newFrag.firstChild);
6681 }
6682 };
6683 break;
6684 case 'LaTeXMathMLlabel':
6685 lbl2id = EndDivNode.previousSibling.id;
6686 EndDivNode.parentNode.removeChild(EndDivNode.previousSibling);
6687 break;
6688 default:
6689 newFrag.insertBefore(EndDivNode.previousSibling,newFrag.firstChild);
6690 }
6691 }
6692 RootNode.appendChild(newFrag);
6693 EndDivNode.parentNode.removeChild(EndDivNode);
6694
6695 //Look for more end div items
6696 AllDivs = TheBody.getElementsByTagName("DIV");
6697 for(i=AllDivs.length-1;i>=0;i--) {
6698 EndDivClass = AllDivs[i].className.match(/end\w+/ );
6699 if(EndDivClass!=null) {
6700 ClassCount = 0;
6701 EndDivClass = EndDivClass[0];
6702 DivClass = EndDivClass.substring(3,EndDivClass.length);
6703 EndDivNode = AllDivs[i];
6704 RootNode = EndDivNode.parentNode;
6705 break;
6706 }
6707 }
6708 } // end while!
6709
6710
6711
6712
6713 var AllDivs = TheBody.getElementsByTagName("div"); //Convert itemize and enumerate to html lists:
6714 var DIV2LI = null;
6715
6716 for(var i=0;i<AllDivs.length;i++) {
6717 if( AllDivs[i].className=="itemize" || AllDivs[i].className=="enumerate" || AllDivs[i].className=="description") {
6718 if(AllDivs[i].className=="itemize") {
6719 RootNode = document.createElement("UL");
6720 } else {
6721 RootNode = document.createElement("OL");
6722 }
6723 RootNode.className = 'LaTeXMathML';
6724 if(AllDivs[i].hasChildNodes()) { AllDivs[i].removeChild(AllDivs[i].firstChild) };
6725 while(AllDivs[i].hasChildNodes()) {
6726 if(AllDivs[i].firstChild.hasChildNodes()) {
6727 DIV2LI = document.createElement("LI");
6728 while(AllDivs[i].firstChild.hasChildNodes()) {
6729 DIV2LI.appendChild(AllDivs[i].firstChild.firstChild);
6730 }
6731 if(DIV2LI.firstChild.className=="listitemmarker") {
6732 DIV2LI.style.listStyleType = "none";
6733 }
6734 RootNode.appendChild(DIV2LI)
6735 }
6736 AllDivs[i].removeChild(AllDivs[i].firstChild);
6737 }
6738 AllDivs[i].appendChild(RootNode);
6739 }
6740 }
6741
6742 // From here to 'end for AllAnchors is necessary only because CSS3 is not implemented yet.
6743 // Once CSS3 target-text is available, this can be done using CSS
6744 var AllAnchors = TheBody.getElementsByTagName("a");
6745 for(var i=0;i<AllAnchors.length;i++) {
6746 if(AllAnchors[i].className == "ref" || AllAnchors[i].className == "cite" ) {
6747 var label = AllAnchors[i].href.match(/\#(\w+)/);
6748 if(label!=null) {
6749 var labelNode = document.getElementById(label[1]);
6750 if(labelNode!=null) {
6751 var TheSpans = labelNode.getElementsByTagName("SPAN");
6752 if(TheSpans!=null) {
6753 var refNode = TheSpans[0].cloneNode(true);
6754 refNode.style.display="inline"
6755 refNode.className = AllAnchors[i].className;
6756 AllAnchors[i].appendChild(refNode);
6757 //break;
6758 }
6759 }
6760 }
6761 }
6762 } // end for AllAnchors
6763
6764 // Eventually: Collapsible Sections
6765
6766 return TheBody;
6767 }
6768
6769 var AMbody;
6770 var AMnoMathML = false, AMtranslated = false;
6771
6772 function translate(spanclassAM) {
6773 if (!AMtranslated) { // run this only once
6774 AMtranslated = true;
6775 AMinitSymbols();
6776 var LaTeXContainers = [];
6777 var AllContainers = document.getElementsByTagName('*');
6778 var ExtendName = "";
6779
6780 for (var k = 0,l=0; k < AllContainers.length; k++) {
6781 ExtendName = " "+AllContainers[k].className+" ";
6782 if(ExtendName.match(/\sLaTeX\s/)!=null) {
6783 LaTeXContainers[l] = AllContainers[k];
6784 l++;
6785 }
6786 };
6787 if(LaTeXContainers.length>0) {
6788 for(var m=0;m<LaTeXContainers.length;m++) {
6789 AMbody = LaTeXContainers[m];
6790 try {
6791 AMbody = LaTeXDivsAndRefs(LaTeXpreProcess(AMbody)); //
6792 } catch(err) {
6793 alert("Unknown Error: Defaulting to Original LaTeXMathML");
6794 }
6795 if(AMbody.tagName=="PRE") {
6796 var PreChilds = document.createDocumentFragment();
6797 var DivChilds = document.createElement("DIV");
6798 while(AMbody.hasChildNodes()) {
6799 DivChilds.appendChild(AMbody.firstChild);
6800 }
6801 PreChilds.appendChild(DivChilds);
6802 AMbody.parentNode.replaceChild(PreChilds,AMbody);
6803 AMbody = DivChilds; //Leaves empty pre -- may be useful??
6804
6805 }
6806 AMprocessNode(AMbody, false, spanclassAM);
6807 }
6808 } else { //Default to entire page
6809 AMbody = document.getElementsByTagName("body")[0];
6810 try {
6811 AMbody = LaTeXDivsAndRefs(LaTeXpreProcess(AMbody)); //
6812 } catch(err) {
6813 alert("Unknown Error: Defaulting to Original LaTeXMathML");
6814 }
6815 AMprocessNode(AMbody, false, spanclassAM);
6816 }
6817 }
6818 }
6819
6820 if (isIE) {
6821 // avoid adding MathPlayer info explicitly to each webpage
6822 document.write("<object id=\"mathplayer\"\
6823 classid=\"clsid:32F66A20-7614-11D4-BD11-00104BD3F987\"></object>");
6824 document.write("<?import namespace=\"m\" implementation=\"#mathplayer\"?>");
6825 }
6826
6827 // GO1.1 Generic onload by Brothercake
6828 // http://www.brothercake.com/
6829 //onload function (replaces the onload="translate()" in the <body> tag)
6830 function generic()
6831 {
6832 translate();
6833 };
6834 //setup onload function
6835 if(typeof window.addEventListener != 'undefined')
6836 {
6837 //.. gecko, safari, konqueror and standard
6838 window.addEventListener('load', generic, false);
6839 }
6840 else if(typeof document.addEventListener != 'undefined')
6841 {
6842 //.. opera 7
6843 document.addEventListener('load', generic, false);
6844 }
6845 else if(typeof window.attachEvent != 'undefined')
6846 {
6847 //.. win/ie
6848 window.attachEvent('onload', generic);
6849 }
6850 //** remove this condition to degrade older browsers
6851 else
6852 {
6853 //.. mac/ie5 and anything else that gets this far
6854 //if there's an existing onload function
6855 if(typeof window.onload == 'function')
6856 {
6857 //store it
6858 var existing = onload;
6859 //add new onload handler
6860 window.onload = function()
6861 {
6862 //call existing onload function
6863 existing();
6864 //call generic onload function
6865 generic();
6866 };
6867 }
6868 else
6869 {
6870 //setup onload function
6871 window.onload = generic;
6872 }
6873 }
6874 /*]]>*/
6875 </script>
6876 </head>
6877 <body class="article">
6878 <div id="header" class="slide hledgersplash">
6879 <h1>Informatiser une comptabilité avec confiance</h1>
6880 <span id="author">git://git.autogeree.net/tool/hledger</span><br />
6881 <span id="revnumber">version 61f2b02</span>
6882 <br /><span id="revremark"></span>
6883 </div>
6884 </div></div>
6885 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
6886 </div><div class="slide">
6887
6888 <div class="sect1">
6889 <h1 id="_le_code_ledger_code_un_format_de_journal_comptable_ouvert_et_simple">1. Le <code>.ledger</code> : un format de journal comptable ouvert.. et simple</h1>
6890 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="1. Le <code>.ledger</code> : un format de journal comptable ouvert.. et simple";slidefootnotes="";/*]]>*/</script>
6891 <div class="sectionbody">
6892 <div class="listingblock incremental">
6893 <div class="content"><pre>
6894 <span class="hledgerTransactionDate">2014/05/01</span> <span class="hledgerTransactionDescription">Stand manif</span>
6895 <span class="hledgerPostingAccount"> Don</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">Anonyme</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">42</span>
6896 <span class="hledgerPostingAccountOdd"> Caisse</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerPostingAccountOdd">Grève</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">42</span>
6897
6898 <span class="hledgerTransactionDate">2014/05/08</span> <span class="hledgerTransactionDescription">Propagande</span>
6899 <span class="hledgerPostingAccount"> Caisse</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">Grève</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">7</span>
6900 <span class="hledgerPostingAccountOdd"> Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerPostingAccountOdd">Impression</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerPostingAccountOdd">Tracts</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">7</span>
6901
6902 <span class="Comment">; Répéter ad nauseam</span>
6903 </pre></div></div>
6904 <div class="tableblock">
6905 <table rules="all"
6906 width="100%"
6907 frame="border"
6908 cellspacing="0" cellpadding="4">
6909 <col width="50%" />
6910 <col width="50%" />
6911 <tbody class="incremental">
6912 <tr>
6913 <td align="left" valign="top"><div><h3 id="_les_plus" class="float">Les plus</h3>
6914 <div class="hdlist"><table><tbody class=" incremental">
6915 <tr>
6916 <td class="hdlist1">
6917 Transparent
6918 <br />
6919 </td>
6920 <td class="hdlist2">
6921 <p style="margin-top: 0;">
6922 Visibilité de <strong>toutes</strong> les informations.
6923 </p>
6924 </td>
6925 </tr>
6926 <tr>
6927 <td class="hdlist1">
6928 Pérenne
6929 <br />
6930 </td>
6931 <td class="hdlist2">
6932 <p style="margin-top: 0;">
6933 Compréhensible sans logiciel particulier pour l’exploiter.
6934 </p>
6935 </td>
6936 </tr>
6937 <tr>
6938 <td class="hdlist1">
6939 Modifiable
6940 <br />
6941 </td>
6942 <td class="hdlist2">
6943 <p style="margin-top: 0;">
6944 Pas de verrou de validation (plus ou moins illusoire).
6945 </p>
6946 </td>
6947 </tr>
6948 <tr>
6949 <td class="hdlist1">
6950 Accès
6951 <br />
6952 </td>
6953 <td class="hdlist2">
6954 <p style="margin-top: 0;">
6955 Pas de changement d’interface non-consenti.
6956 </p>
6957 </td>
6958 </tr>
6959 <tr>
6960 <td class="hdlist1">
6961 Versionnable
6962 <br />
6963 </td>
6964 <td class="hdlist2">
6965 <p style="margin-top: 0;">
6966 Suivi des modifications, fusion des contributions, et sauvegarde simples.
6967 </p>
6968 </td>
6969 </tr>
6970 <tr>
6971 <td class="hdlist1">
6972 Écrit
6973 <br />
6974 </td>
6975 <td class="hdlist2">
6976 <p style="margin-top: 0;">
6977 Langage pour s’exprimer clairement (par ex. dans un courriel ou une présentation).
6978 </p>
6979 </td>
6980 </tr>
6981 <tr>
6982 <td class="hdlist1">
6983 Hors-ligne
6984 <br />
6985 </td>
6986 <td class="hdlist2">
6987 <p style="margin-top: 0;">
6988 Pas besoin de réseau.
6989 </p>
6990 </td>
6991 </tr>
6992 <tr>
6993 <td class="hdlist1">
6994 Interopérable
6995 <br />
6996 </td>
6997 <td class="hdlist2">
6998 <p style="margin-top: 0;">
6999 Pas spécifique à un éditeur logiciel particulier
7000 (sauf fonctionnalité expérimentale).
7001 </p>
7002 <div class="hdlist"><table><tbody class=" incremental">
7003 <tr>
7004 <td class="hdlist1">
7005 ledger
7006 <br />
7007 </td>
7008 <td class="hdlist2">
7009 <p style="margin-top: 0;">
7010 <a href="http://ledger-cli.org/">http://ledger-cli.org/</a>
7011 </p>
7012 </td>
7013 </tr>
7014 <tr>
7015 <td class="hdlist1">
7016 hledger
7017 <br />
7018 </td>
7019 <td class="hdlist2">
7020 <p style="margin-top: 0;">
7021 <a href="http://hledger.org/">http://hledger.org/</a>
7022 </p>
7023 </td>
7024 </tr>
7025 <tr>
7026 <td class="hdlist1">
7027 beancount
7028 <br />
7029 </td>
7030 <td class="hdlist2">
7031 <p style="margin-top: 0;">
7032 <a href="http://furius.ca/beancount/">http://furius.ca/beancount/</a>
7033 </p>
7034 </td>
7035 </tr>
7036 <tr>
7037 <td class="hdlist1">
7038 penny
7039 <br />
7040 </td>
7041 <td class="hdlist2">
7042 <p style="margin-top: 0;">
7043 <a href="https://massysett.github.io/penny/">https://massysett.github.io/penny/</a>
7044 </p>
7045 </td>
7046 </tr>
7047 <tr>
7048 <td class="hdlist1">
7049 abandon
7050 <br />
7051 </td>
7052 <td class="hdlist2">
7053 <p style="margin-top: 0;">
7054 <a href="https://github.com/hrj/abandon/">https://github.com/hrj/abandon/</a>
7055 </p>
7056 </td>
7057 </tr>
7058 </tbody></table></div>
7059 </td>
7060 </tr>
7061 </tbody></table></div></div></td>
7062 <td align="left" valign="top"><div><h3 id="_les_moins" class="float">Les moins</h3>
7063 <div class="hdlist"><table><tbody class=" incremental">
7064 <tr>
7065 <td class="hdlist1">
7066 Modifiable
7067 <br />
7068 </td>
7069 <td class="hdlist2">
7070 <p style="margin-top: 0;">
7071 Mais, comme c&#8217;est un fichier, un verrou-validant<br />
7072 peut être mis par une <strong>signature cryptographique</strong>.
7073 </p>
7074 <div class="listingblock incremental">
7075 <div class="content"><pre>
7076 % gpg <span class="Special">--detach-sign</span> <span class="PreProc">$fichier</span>.ledger
7077 % gpg <span class="Special">--verify</span> <span class="PreProc">$fichier</span>.ledger.sig
7078 </pre></div></div>
7079 </td>
7080 </tr>
7081 <tr>
7082 <td class="hdlist1">
7083 Textuel
7084 <br />
7085 </td>
7086 <td class="hdlist2">
7087 <p style="margin-top: 0;">
7088 Préférable de ne pas avoir peur des caractères,
7089 voire de bien savoir utiliser un éditeur de texte structuré.
7090 </p>
7091 </td>
7092 </tr>
7093 <tr>
7094 <td class="hdlist1">
7095 Contrainte minimale
7096 <br />
7097 </td>
7098 <td class="hdlist2">
7099 <p style="margin-top: 0;">
7100 « <em>N&#8217;a pas été conçu pour empêcher ses utilisateurs de commettre des actes stupides,
7101 car cela les empêcherait aussi de réaliser des actes ingénieux.</em> »
7102 </p>
7103 <div class="listingblock incremental">
7104 <div class="content"><pre>
7105 <span class="hledgerTransactionDate">2102/03/21</span> <span class="hledgerTransactionDescription">Chèque </span><span class="hledgerTransactionComment">; Erreur de date</span>
7106 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Finance</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Etablissement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Valeur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Chèque_à_encaisser</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">145</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span>
7107 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Finance</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Etablissement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Banque</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">001</span><span class="hledgerPostingAccountOdd">.Courant</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">145</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">00</span>
7108 </pre></div></div>
7109 <div class="admonitionblock incremental">
7110 <table><tr>
7111 <td class="icon">
7112 <img src="./icons/note.png" alt="Note" />
7113 </td>
7114 <td class="content">Mais possibilité de vérifications d’invariants conventionnels avec des scripts.</td>
7115 </tr></table>
7116 </div>
7117 </td>
7118 </tr>
7119 </tbody></table></div></div></td>
7120 </tr>
7121 </tbody>
7122 </table>
7123 </div>
7124 </div></div>
7125 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7126 </div><div class="slide">
7127
7128 <div class="sect1">
7129 <h1 id="_code_hledger_code_un_outil_libre_et_convivial">2. <code>hledger</code> : un outil libre.. et convivial</h1>
7130 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="2. <code>hledger</code> : un outil libre.. et convivial";slidefootnotes="";/*]]>*/</script>
7131 <div class="sectionbody">
7132 <div class="listingblock incremental">
7133 <div class="content"><pre>
7134 % hledger balance <span class="Statement">'</span><span class="Constant">^6</span><span class="Statement">'</span> <span class="Statement">'</span><span class="Constant">^7</span><span class="Statement">'</span> <span class="Special">--depth</span> <span class="Constant">2</span> <span class="Special">-f</span> Paris.2011.hledger
7135 <span class="Constant">770</span>,<span class="Constant">58</span>6.Charge
7136 <span class="Constant">248</span>,<span class="Constant">87</span>0.Achat
7137 <span class="Constant">441</span>,<span class="Constant">46</span>1.Service
7138 <span class="Constant">55</span>,<span class="Constant">25</span>2.Autre_service
7139 <span class="Constant">25</span>,<span class="Constant">00</span>5.Gestion
7140 <span class="Constant">-726</span>,<span class="Constant">00</span>7.Produit
7141 <span class="Constant">-700</span>,<span class="Constant">00</span>0.Vente
7142 <span class="Constant">-26</span>,<span class="Constant">00</span>5.Autre_gestion_courante
7143 ‑-------------------
7144 <span class="Constant">44</span>,<span class="Constant">58</span>
7145 </pre></div></div>
7146 <div class="tableblock">
7147 <table rules="all"
7148 width="100%"
7149 frame="border"
7150 cellspacing="0" cellpadding="4">
7151 <col width="50%" />
7152 <col width="50%" />
7153 <tbody class="incremental">
7154 <tr>
7155 <td align="left" valign="top"><div><h3 id="_les_plus" class="float">Les plus</h3>
7156 <div class="dlist"><dl class=" incremental">
7157 <dt class="hdlist1">
7158 Philosophie Unix
7159 </dt>
7160 <dd>
7161 <ul class=" incremental">
7162 <li>
7163 <span>
7164 « <em>Écrivez des programmes qui effectuent une seule chose et qui le font bien.</em> »
7165 </span>
7166 </li>
7167 <li>
7168 <span>
7169 « <em>Écrivez des programmes qui collaborent.</em> »
7170 </span>
7171 </li>
7172 <li>
7173 <span>
7174 « <em>Écrivez des programmes pour gérer des flux de texte,<br />
7175 car c&#8217;est une interface universelle.</em> »
7176 </span>
7177 </li>
7178 </ul>
7179 </dd>
7180 <dt class="hdlist1">
7181 Utilisation, Étude, Modification, Duplication
7182 </dt>
7183 <dd>
7184 <p>
7185 Permises techniquement et légalement<br />
7186 (« logiciel libre » sous <code>GNU/GPLv3</code>)
7187 </p>
7188 </dd>
7189 <dt class="hdlist1">
7190 Rigueur
7191 </dt>
7192 <dd>
7193 <p>
7194 Programmé en <a href="http://fr.wikipedia.org/wiki/Haskell">Haskell</a>
7195 </p>
7196 <div class="hdlist"><table><tbody class=" incremental">
7197 <tr>
7198 <td class="hdlist1">
7199 Fonctionnel pur
7200 <br />
7201 </td>
7202 <td class="hdlist2">
7203 <p style="margin-top: 0;">
7204 Aucune mutation de données externes à une fonction (sans effet de bord).
7205 </p>
7206 </td>
7207 </tr>
7208 <tr>
7209 <td class="hdlist1">
7210 Typage statique
7211 <br />
7212 </td>
7213 <td class="hdlist2">
7214 <p style="margin-top: 0;">
7215 Vérification des erreurs de type avant l’exécution du programme.
7216 </p>
7217 </td>
7218 </tr>
7219 <tr>
7220 <td class="hdlist1">
7221 Typage fort
7222 <br />
7223 </td>
7224 <td class="hdlist2">
7225 <p style="margin-top: 0;">
7226 Aucune conversion implicite de types de données.
7227 </p>
7228 </td>
7229 </tr>
7230 </tbody></table></div>
7231 </dd>
7232 <dt class="hdlist1">
7233 Relisible
7234 </dt>
7235 <dd>
7236 <p>
723713 000 lignes de Haskell (ou 160 écrans de 80 lignes)<br />
7238 (plus ≈1 800 lignes pour <code>hledger-web</code>).
7239 </p>
7240 <div class="admonitionblock incremental">
7241 <table><tr>
7242 <td class="icon">
7243 <img src="./icons/note.png" alt="Note" />
7244 </td>
7245 <td class="content">À équivalence fonctionnelle,
7246 OpenERPv7 ≈80 000 lignes de Python (≈1 000 écrans).</td>
7247 </tr></table>
7248 </div>
7249 </dd>
7250 <dt class="hdlist1">
7251 Ancienneté
7252 </dt>
7253 <dd>
7254 <p>
7255 Depuis 2007 (≈7 ans).
7256 </p>
7257 </dd>
7258 <dt class="hdlist1">
7259 Portable
7260 </dt>
7261 <dd>
7262 <p>
7263 GNU/Linux, Apple/MacOS, Microsoft/Windows
7264 </p>
7265 </dd>
7266 <dt class="hdlist1">
7267 Ligne de commande
7268 </dt>
7269 <dd>
7270 <p>
7271 Contrôle l’ordinateur avec le langage.
7272 </p>
7273 <div class="listingblock incremental">
7274 <div class="content"><pre>
7275 % hledger add <span class="Special">-f</span> <span class="PreProc">$fichier</span>.hledger
7276 % hledger balance <span class="Special">-f</span> <span class="PreProc">$fichier</span>.hledger
7277 </pre></div></div>
7278 </dd>
7279 <dt class="hdlist1">
7280 Interface Web
7281 </dt>
7282 <dd>
7283 <div class="listingblock incremental">
7284 <div class="content"><pre>
7285 % hledger-web <span class="Special">--server</span> <span class="Special">-f</span> <span class="PreProc">$fichier</span>.hledger
7286 % firefox <span class="Statement">&quot;</span><span class="Constant"><a href="http://localhost:5000">http://localhost:5000</a></span><span class="Statement">&quot;</span>
7287 </pre></div></div>
7288 </dd>
7289 <dt class="hdlist1">
7290 Support
7291 </dt>
7292 <dd>
7293 <p>
72941 développeur à mi-temps-libéré
7295 </p>
7296 <ul class=" incremental">
7297 <li>
7298 <span>
7299 Simon Michael (sm) &lt;<a href="mailto:simon@joyful.com">simon@joyful.com</a>&gt;
7300 </span>
7301 <div class="admonitionblock incremental">
7302 <table><tr>
7303 <td class="icon">
7304 <img src="./icons/note.png" alt="Note" />
7305 </td>
7306 <td class="content">Dons @ <a href="https://www.gittip.com/simonmichael/">https://www.gittip.com/simonmichael/</a></td>
7307 </tr></table>
7308 </div>
7309 <div class="hdlist"><table><tbody class=" incremental">
7310 <tr>
7311 <td class="hdlist1">
7312 Messagerie instantanée
7313 <br />
7314 </td>
7315 <td class="hdlist2">
7316 <p style="margin-top: 0;">
7317 <a href="irc://irc.freenode.net#ledger">irc://irc.freenode.net#ledger</a>
7318 </p>
7319 </td>
7320 </tr>
7321 <tr>
7322 <td class="hdlist1">
7323 Liste de discussion
7324 <br />
7325 </td>
7326 <td class="hdlist2">
7327 <p style="margin-top: 0;">
7328 &lt;<a href="mailto:hledger+subscribe@googlegroups.com">hledger+subscribe@googlegroups.com</a>&gt;
7329 </p>
7330 </td>
7331 </tr>
7332 </tbody></table></div>
7333 </li>
7334 </ul>
7335 </dd>
7336 <dt class="hdlist1">
7337 Extensible
7338 </dt>
7339 <dd>
7340 <div class="listingblock incremental">
7341 <div class="content"><pre>
7342 % ghc hledger-fait-ce-que-je-veux.hs
7343 % ./hledger-fait-ce-que-je-veux <span class="Special">-f</span> <span class="PreProc">$fichier</span>.hledger
7344 </pre></div></div>
7345 </dd>
7346 </dl></div></div></td>
7347 <td align="left" valign="top"><div><h3 id="_les_moins" class="float">Les moins</h3>
7348 <div class="dlist"><dl class=" incremental">
7349 <dt class="hdlist1">
7350 Pas tout en un
7351 </dt>
7352 <dd>
7353 <p>
7354 Fait de la comptabilité, <strong>et juste</strong> de la comptabilité ;
7355 pas un logiciel intégré type ERP (Enterprise Resource Planning)
7356 du genre type <a href="https://www.odoo.com/">Odoo</a> (ancien OpenERP) :
7357 Comptabilité + Point de vente + Facturation + Paye + Gestion de stock + Adhésion + Calendrier + Wiki + &#8230;
7358 </p>
7359 </dd>
7360 <dt class="hdlist1">
7361 En ligne de commande
7362 </dt>
7363 <dd>
7364 <p>
7365 Peur <strong>irrationnelle</strong> mais fréquente,
7366 d’être libre et d’avoir le pouvoir sur la machine,
7367 au lieu d’être captif d’une interface.
7368 </p>
7369 <div class="admonitionblock incremental">
7370 <table><tr>
7371 <td class="icon">
7372 <img src="./icons/note.png" alt="Note" />
7373 </td>
7374 <td class="content">L’interface Web est simple, et s’améliore.</td>
7375 </tr></table>
7376 </div>
7377 </dd>
7378 <dt class="hdlist1">
7379 Read The Fucking Manual
7380 </dt>
7381 <dd>
7382 <p>
7383 De même que maîtriser un plan comptable néçessite
7384 en plus de le parcourir de <strong>s’informer</strong> sur son utilisation,<br />
7385 de même maîtriser un langage et un logiciel en ligne de commande nécessite
7386 de <strong>s’informer</strong> sur sa syntaxe, sa sémantique et son utilisation.
7387 </p>
7388 <div class="admonitionblock incremental">
7389 <table><tr>
7390 <td class="icon">
7391 <img src="./icons/note.png" alt="Note" />
7392 </td>
7393 <td class="content"><a href="http://hledger.org/manual/">http://hledger.org/manual/</a>.</td>
7394 </tr></table>
7395 </div>
7396 </dd>
7397 </dl></div></div></td>
7398 </tr>
7399 </tbody>
7400 </table>
7401 </div>
7402 </div></div>
7403 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7404 </div><div class="slide">
7405
7406 <div class="sect1">
7407 <h1 id="_langage_d_un_fichier_code_ledger_code">3. Langage d’un fichier <code>.ledger</code></h1>
7408 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="3. Langage d’un fichier <code>.ledger</code>";slidefootnotes="";/*]]>*/</script>
7409 <div class="sectionbody">
7410 <div class="paragraph">
7411 <div class="incremental">
7412 <p>Un <code>.ledger</code> est un fichier de texte brut respectant une syntaxe préçise
7413 qui forme une succession d’écritures comptables, classées librement.</p>
7414 </div>
7415 </div>
7416 </div></div>
7417 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7418
7419 <div class="sect2">
7420 <h1 id="_définition_informelle">3.1. Définition informelle</h1>
7421 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="3.1. Définition informelle";slidefootnotes="";/*]]>*/</script>
7422 <div class="sectionbody">
7423 <div class="listingblock incremental">
7424 <div class="title">Fichier <code>data/exemple-syntaxe.ledger</code></div>
7425 <div class="content"><pre>
7426 <span class="hledgerDirective">D 1000.00</span><span class="Comment">; directive préçisant le format par défaut des montants</span>
7427
7428 <span class="hledgerTransactionDate">2014/01/01</span> <span class="hledgerTransactionDescription">Libellé de l’écriture </span><span class="hledgerTransactionComment">; </span><span class="hledgerTag">UN_TAG:</span><span class="hledgerTransactionComment">, </span><span class="hledgerTag">Autre_tag:</span><span class="hledgerTagValue">Avec_Valeur</span>
7429 <span class="hledgerPostingAccount"> A</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">AA</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">42</span> <span class="hledgerTransactionComment">; flux créditant</span>
7430 <span class="hledgerPostingAccountOdd"> B</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerPostingAccountOdd">BB</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerPostingAccountOdd">BBB</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">40</span> <span class="hledgerTransactionComment">; flux débitant</span>
7431 <span class="hledgerPostingAccount"> B</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">A</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">2</span> <span class="hledgerTransactionComment">; flux débitant ventilé</span>
7432
7433 <span class="hledgerTransactionDate">2014/01/02</span> <span class="hledgerTransactionDescription">Libellé d’une autre écriture</span>
7434 <span class="hledgerPostingAccount"> A</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">AA</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">100</span> <span class="hledgerTransactionComment">; </span><span class="hledgerTag">UN_TAG_de_flux:</span>
7435 <span class="hledgerPostingAccountOdd"> B</span><span class="hledgerPostingAmountOdd"> -</span><span class="hledgerNumberOdd">100</span> <span class="hledgerTransactionComment">; </span><span class="hledgerTag">ATTENTION:</span><span class="hledgerTagValue"> au moins deux espaces requises entre le compte et le montant</span>
7436
7437 <span class="Comment">; Répéter ad nauseam</span>
7438 </pre></div></div>
7439 <div class="title">Conventions usuelles</div><ul class=" incremental">
7440 <li>
7441 <span>
7442 Classement des écritures par date
7443 </span>
7444 </li>
7445 <li>
7446 <span>
7447 Classement des flux par signe, puis compte
7448 </span>
7449 </li>
7450 </ul>
7451 </div></div>
7452 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7453 </div><div class="slide">
7454
7455 <div class="sect2">
7456 <h1 id="_définition_formelle">3.2. Définition formelle</h1>
7457 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="3.2. Définition formelle";slidefootnotes="";/*]]>*/</script>
7458 <div class="sectionbody">
7459 <div class="tableblock">
7460 <table rules="all"
7461 width="100%"
7462 frame="border"
7463 cellspacing="0" cellpadding="4">
7464 <col width="50%" />
7465 <col width="50%" />
7466 <thead>
7467 <tr>
7468 <th align="center" valign="top">Syntaxe (grammaire <a href="https://fr.wikipedia.org/wiki/Forme_de_Backus-Naur">BNF</a>)</th>
7469 <th align="center" valign="top">Informations (signatures fonctionnelles)</th>
7470 </tr>
7471 </thead>
7472 <tbody class="incremental">
7473 <tr>
7474 <td align="left" valign="top"><div><div class="listingblock incremental">
7475 <div class="content"><pre>
7476 journal ::= (écriture | commentaire | <span class="Constant">&quot;&quot;</span> | <span class="Constant">&quot;&quot;</span>)*
7477 </pre></div></div></div></td>
7478 <td align="left" valign="top"><div><div class="hdlist math"><table><tbody class=" incremental math">
7479 <tr>
7480 <td class="hdlist1">
7481 <strong>journal</strong>
7482 <br />
7483 </td>
7484 <td class="hdlist2">
7485 <p style="margin-top: 0;">
7486 <span class=" LaTeX ">$
7487 :\&gt;f:\textcolor{#D2691E}{\textbf{fichier}} →
7488 \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack$</span>
7489 </p>
7490 </td>
7491 </tr>
7492 </tbody></table></div></div></td>
7493 </tr>
7494 <tr>
7495 <td align="left" valign="top"><div><div class="listingblock incremental">
7496 <div class="content"><pre>
7497 écriture ::= date <span class="Constant">&quot;&quot;</span> <span class="Constant">&quot;&quot;</span>* libellé commentaire <span class="Constant">&quot;&quot;</span>
7498 (<span class="Constant">&quot;&quot;</span> flux <span class="Constant">&quot;&quot;</span>)*
7499 date ::= (année <span class="Constant">&quot;/&quot;</span>)? mois <span class="Constant">&quot;/&quot;</span> jour
7500 libellé ::= (· - (<span class="Constant">&quot;;&quot;</span>|<span class="Constant">&quot;&quot;</span>))*
7501 </pre></div></div></div></td>
7502 <td align="left" valign="top"><div><div class="hdlist math"><table><tbody class=" incremental math">
7503 <tr>
7504 <td class="hdlist1">
7505 <strong>date</strong>
7506 <br />
7507 </td>
7508 <td class="hdlist2">
7509 <p style="margin-top: 0;">
7510 <span class=" LaTeX ">$
7511 :\&gt;e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} →
7512 (\textcolor{#083194}{\textbf{ann\acute{e}e}}:\textcolor{#D2691E}{\textbf{ℕ}},~
7513 \textcolor{#083194}{\textbf{mois}}:\{\textcolor{#D2691E}{\textbf{01}},...,\textcolor{#D2691E}{\textbf{12}}\},~
7514 \textcolor{#083194}{\textbf{jour}}:\{\textcolor{#D2691E}{\textbf{01}},...,\textcolor{#D2691E}{\textbf{31}}\})$</span>
7515 </p>
7516 </td>
7517 </tr>
7518 <tr>
7519 <td class="hdlist1">
7520 <strong>libellé</strong>
7521 <br />
7522 </td>
7523 <td class="hdlist2">
7524 <p style="margin-top: 0;">
7525 <span class=" LaTeX ">$
7526 :\&gt;e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} →
7527 \textcolor{#D2691E}{\textbf{texte}}$</span>
7528 </p>
7529 </td>
7530 </tr>
7531 <tr>
7532 <td class="hdlist1">
7533 <strong>commentaire</strong>
7534 <br />
7535 </td>
7536 <td class="hdlist2">
7537 <p style="margin-top: 0;">
7538 <span class=" LaTeX ">$
7539 :\&gt;e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} →
7540 \textcolor{#D2691E}{\textbf{texte}}$</span>
7541 </p>
7542 </td>
7543 </tr>
7544 <tr>
7545 <td class="hdlist1">
7546 <strong>tags</strong>
7547 <br />
7548 </td>
7549 <td class="hdlist2">
7550 <p style="margin-top: 0;">
7551 <span class=" LaTeX ">$
7552 :\&gt;e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} →
7553 \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack
7554 \ =\ \textbf{tags}~(\textbf{commentaire}~e)$</span>
7555 </p>
7556 </td>
7557 </tr>
7558 <tr>
7559 <td class="hdlist1">
7560 <strong>flux</strong>
7561 <br />
7562 </td>
7563 <td class="hdlist2">
7564 <p style="margin-top: 0;">
7565 <span class=" LaTeX ">$
7566 :\&gt;e:\textcolor{#D2691E}{\textbf{\acute{e}criture}} →
7567 \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack$</span>
7568 </p>
7569 </td>
7570 </tr>
7571 </tbody></table></div></div></td>
7572 </tr>
7573 <tr>
7574 <td align="left" valign="top"><div><div class="listingblock incremental">
7575 <div class="content"><pre>
7576 flux ::= compte <span class="Constant">&quot;␣␣&quot;</span> <span class="Constant">&quot;&quot;</span>* (<span class="Constant">&quot;-&quot;</span> crédit | débit) (<span class="Constant">&quot;&quot;</span>|<span class="Constant">&quot;&quot;</span>)* commentaire
7577 compte ::= nom ( <span class="Constant">&quot;:&quot;</span> nom )*
7578 nom ::= (· - (<span class="Constant">&quot;:&quot;</span>|<span class="Constant">&quot;&quot;</span>)) (· - (<span class="Constant">&quot;:&quot;</span>|<span class="Constant">&quot;&quot;</span>))*
7579 crédit ::= quantité
7580 débit ::= quantité
7581 </pre></div></div></div></td>
7582 <td align="left" valign="top"><div><div class="hdlist math"><table><tbody class=" incremental math">
7583 <tr>
7584 <td class="hdlist1">
7585 <strong>compte</strong>
7586 <br />
7587 </td>
7588 <td class="hdlist2">
7589 <p style="margin-top: 0;">
7590 <span class=" LaTeX ">$
7591 :\&gt;f:\textcolor{#D2691E}{\textbf{flux}} →
7592 \lbrack\textcolor{#D2691E}{\textbf{nom}}\rbrack$</span>
7593 </p>
7594 </td>
7595 </tr>
7596 <tr>
7597 <td class="hdlist1">
7598 <strong>montant</strong>
7599 <br />
7600 </td>
7601 <td class="hdlist2">
7602 <p style="margin-top: 0;">
7603 <span class=" LaTeX ">$
7604 :\&gt;f:\textcolor{#D2691E}{\textbf{flux}} → \textcolor{#D2691E}{ℚ} = \displaystyle{
7605 \left\{\begin{array}{ll} -~(\textbf{cr\acute{e}dit}~f) &amp; \mathit{\mbox{si défini}} \\
7606 (\textbf{d\acute{e}bit}~f) &amp; \mathit{\mbox{sinon}}
7607 \end{array}\right}$</span>
7608 </p>
7609 </td>
7610 </tr>
7611 <tr>
7612 <td class="hdlist1">
7613 <strong>tags</strong>
7614 <br />
7615 </td>
7616 <td class="hdlist2">
7617 <p style="margin-top: 0;">
7618 <span class=" LaTeX ">$
7619 :\&gt;f:\textcolor{#D2691E}{\textbf{flux}} →
7620 \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack
7621 \ =\ \textbf{tags}~(\textbf{commentaire}~f)$</span>
7622 </p>
7623 </td>
7624 </tr>
7625 </tbody></table></div></div></td>
7626 </tr>
7627 <tr>
7628 <td align="left" valign="top"><div><div class="listingblock incremental">
7629 <div class="content"><pre>
7630 commentaire ::= ( <span class="Constant">&quot;;&quot;</span> (tag <span class="Constant">&quot;:&quot;</span> valeur? | ·)* )
7631 ( (<span class="Constant">&quot;&quot;</span>|<span class="Constant">&quot;&quot;</span>)* <span class="Constant">&quot;;&quot;</span> (tag <span class="Constant">&quot;:&quot;</span> valeur? | ·)* )*
7632 </pre></div></div></div></td>
7633 <td align="left" valign="top"><div><div class="hdlist math"><table><tbody class=" incremental math">
7634 <tr>
7635 <td class="hdlist1">
7636 <strong>tags</strong>
7637 <br />
7638 </td>
7639 <td class="hdlist2">
7640 <p style="margin-top: 0;">
7641 <span class=" LaTeX ">$
7642 :\&gt;m:\textcolor{#D2691E}{\textbf{commentaire}} →
7643 \lbrack\textcolor{#D2691E}{\textbf{tag}}\rbrack$</span>
7644 </p>
7645 </td>
7646 </tr>
7647 <tr>
7648 <td class="hdlist1">
7649 <strong>tag</strong>
7650 <br />
7651 </td>
7652 <td class="hdlist2">
7653 <p style="margin-top: 0;">
7654 <span class=" LaTeX ">$
7655 :\&gt;(\textcolor{#083194}{\textbf{tag}}:\textcolor{#D2691E}{\textbf{texte}},%
7656 ~\textcolor{#083194}{\textbf{valeur}}:\textcolor{#D2691E}{\textbf{\mbox{texte}}\&gt;?})$</span>
7657 </p>
7658 </td>
7659 </tr>
7660 </tbody></table></div></div></td>
7661 </tr>
7662 </tbody>
7663 </table>
7664 </div>
7665 </div></div>
7666 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7667 </div><div class="slide">
7668
7669 <div class="sect1">
7670 <h1 id="_commandes_code_hledger_code">4. Commandes <code>hledger</code></h1>
7671 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="4. Commandes <code>hledger</code>";slidefootnotes="";/*]]>*/</script>
7672 <div class="sectionbody">
7673 <div class="listingblock incremental">
7674 <div class="title">Syntaxe quasiment commune à toutes les commandes <code>hledger</code></div>
7675 <div class="content"><pre>
7676 % hledger <span class="PreProc">$commande</span> <span class="PreProc">$options</span> <span class="PreProc">$filtre</span> <span class="Special">-f</span> <span class="PreProc">$fichier</span>.ledger
7677 </pre></div></div>
7678 </div></div>
7679 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7680
7681 <div class="sect2">
7682 <h1 id="_afficher_le_plan_comptable_code_accounts_code">4.1. Afficher le plan comptable (<code>accounts</code>)</h1>
7683 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="4.1. Afficher le plan comptable (<code>accounts</code>)";slidefootnotes="";/*]]>*/</script>
7684 <div class="sectionbody">
7685 <div class="tableblock">
7686 <table rules="all"
7687 width="100%"
7688 frame="border"
7689 cellspacing="0" cellpadding="4">
7690 <col width="50%" />
7691 <col width="50%" />
7692 <tbody class="incremental">
7693 <tr>
7694 <td align="left" valign="top"><div><div class="listingblock incremental">
7695 <div class="content"><pre>
7696 % hledger accounts <span class="Special">--tree</span> <span class="Special">-f</span> data/exemple-syntaxe.ledger
7697 A
7698 AA
7699 B
7700 A
7701 BB
7702 BBB
7703 </pre></div></div>
7704 <div class="listingblock incremental">
7705 <div class="content"><pre>
7706 % hledger accounts <span class="Special">--flat</span> <span class="Special">-f</span> data/exemple-syntaxe.ledger
7707 A:AA
7708 B
7709 B:A
7710 B:BB:BBB
7711 </pre></div></div></div></td>
7712 <td align="left" valign="top"><div><div class="dlist"><dl class=" incremental">
7713 <dt class="hdlist1">
7714 <strong>comptes</strong>
7715 </dt>
7716 <dd>
7717 <p>
7718 <span class=" LaTeX ">$:\&gt;\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack → \{\textcolor{#D2691E}{\textbf{compte}}\}$</span><br />
7719 = « <em>ensemble des comptes vers lesquels fluent les écritures</em> »<br />
7720 <span class=" LaTeX ">$=\{\ (\textbf{compte}\&gt;f)\ |\ f ← (\textbf{flux}\&gt;e)\ |\ e ← \mathbb E\ \}$</span>
7721 </p>
7722 </dd>
7723 <dt class="hdlist1">
7724 <strong>compte_parent</strong>
7725 </dt>
7726 <dd>
7727 <p>
7728 <span class=" LaTeX ">$:\&gt;c : \textcolor{#D2691E}{\textbf{compte}} → \textcolor{#D2691E}{\textbf{compte}}\&gt;?$</span><br />
7729 <span class=" LaTeX ">$=\&gt;c_{\lbrack0,\cdots,|c|-2\rbrack}\ \mbox{si}\ |c| \ge 2$</span>
7730 </p>
7731 </dd>
7732 <dt class="hdlist1">
7733 <strong>hiérachie_de_compte</strong>
7734 </dt>
7735 <dd>
7736 <p>
7737 <span class=" LaTeX ">$:\&gt;\mathbb c : \textcolor{#D2691E}{\textbf{compte}} → \lbrack\textcolor{#D2691E}{\textbf{compte}}\rbrack$</span><br />
7738
7739 <span class=" LaTeX ">$=\&gt;\lbrack{\ c\ :\ \lbrack{\ c\ |\ c ← (\mathbf{compte\mbox{_}parent}\&gt;{c})}\ \rbrack}\ \rbrack$</span>
7740 </p>
7741 </dd>
7742 </dl></div></div></td>
7743 </tr>
7744 </tbody>
7745 </table>
7746 </div>
7747 </div></div>
7748 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7749 </div><div class="slide">
7750
7751 <div class="sect2">
7752 <h1 id="_écrire_des_écritures_code_add_code">4.2. Écrire des écritures (<code>add</code>)</h1>
7753 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="4.2. Écrire des écritures (<code>add</code>)";slidefootnotes="";/*]]>*/</script>
7754 <div class="sectionbody">
7755 <div class="listingblock incremental">
7756 <div class="title">Sélection d’un modèle selon le libellé</div>
7757 <div class="content"><pre>
7758 % hledger add <span class="Special">-f</span> /tmp/test.ledger
7759 Adding transactions to journal file /tmp/test.ledger
7760 Any command line arguments will be used as defaults.
7761 Use tab key to complete, readline keys to edit, enter to accept defaults.
7762 An optional <span class="PreProc">(</span><span class="Special">CODE</span><span class="PreProc">)</span> may follow transaction dates.
7763 An optional ; COMMENT may follow descriptions or amounts.
7764 If you make a mistake, enter <span class="Statement">&lt;</span> at any prompt to restart the transaction.
7765 To end a transaction, enter<span class="Statement"> . </span>when prompted.
7766 To quit, enter<span class="Statement"> . </span>at a date prompt or press control-d or control-c.
7767 Date <span class="Statement">[</span><span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">30</span><span class="Statement">]</span>: <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01</span>
7768 Description: Libellé de l’écriture ; UN_TAG:, Autre_tag:Avec_Valeur
7769 Account <span class="Constant">1</span>: A:AA
7770 Amount <span class="Constant">1</span>: <span class="Constant">-42</span>
7771 Account <span class="Constant">2</span>: B:BB:BBB
7772 Amount <span class="Constant">2</span> <span class="Statement">[</span>42.0<span class="Statement">]</span>: <span class="Constant">40</span>
7773 Account <span class="Constant">3</span>: B:A
7774 Amount <span class="Constant">3</span> <span class="Statement">[</span>2.0<span class="Statement">]</span>:
7775 Account <span class="Constant">4</span> <span class="PreProc">(</span><span class="Special">or . or enter to finish this transaction</span><span class="PreProc">)</span>: .
7776 <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01</span> Libellé de l’écriture ; UN_TAG:, Autre_tag:Avec_Valeur
7777 A:AA <span class="Constant">-42</span>
7778 B:BB:BBB <span class="Constant">40</span>
7779 B:A 2.0
7780
7781 Save this transaction to the journal ? <span class="Statement">[</span>y<span class="Statement">]</span>: y
7782 Saved.
7783 Starting the next transaction <span class="PreProc">(</span><span class="Special">. or ctrl-D/ctrl-C to quit</span><span class="PreProc">)</span>
7784 Date <span class="Statement">[</span><span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01</span><span class="Statement">]</span>:
7785 Description: Libellé d’une autre écriture
7786 Using this similar transaction <span class="Statement">for </span>defaults:
7787 <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01</span> Libellé de l’écriture <span class="Statement">;</span> UN_TAG:, Autre_tag:Avec_Valeur
7788 A:AA <span class="Constant">-42</span>
7789 B:BB:BBB <span class="Constant">40</span>
7790 B:A 2.0
7791
7792 Account <span class="Constant">1</span> <span class="Statement">[</span>A:AA<span class="Statement">]</span>:
7793 Amount <span class="Constant">1</span> <span class="Statement">[</span>-42.0<span class="Statement">]</span>: <span class="Constant">100</span>
7794 Account <span class="Constant">2</span> <span class="Statement">[</span>B:BB:BBB<span class="Statement">]</span>: B
7795 Amount <span class="Constant">2</span> <span class="Statement">[</span>-100.0<span class="Statement">]</span>:
7796 Account <span class="Constant">3</span> <span class="Statement">(</span>or<span class="Statement"> . </span>to finish this transaction<span class="Statement">)</span> <span class="Statement">[</span>B:A<span class="Statement">]</span>: .
7797 <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01</span> Libellé d’une autre écriture
7798 A:AA <span class="Constant">100</span>
7799 B -100.0
7800
7801 Save this transaction to the journal ? <span class="Statement">[</span>y<span class="Statement">]</span>: y
7802 Saved.
7803 Starting the next transaction <span class="Statement">(</span>. or ctrl-D/ctrl-C to quit<span class="Statement">)</span>
7804 Date <span class="Statement">[</span><span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01</span><span class="Statement">]</span>: .
7805 </pre></div></div>
7806 <div class="listingblock incremental">
7807 <div class="title">Complètement automatique des comptes</div>
7808 <div class="content"><pre>
7809 % hledger add <span class="Special">-f</span> data/exemple-plan-comptable.ledger
7810 Adding transactions to journal file /home/julm/admin/cyber.coop/src/tool/hledger/doc/data/exemple-plan-comptable.ledger
7811 Any command line arguments will be used as defaults.
7812 Use tab key to complete, readline keys to edit, enter to accept defaults.
7813 An optional <span class="PreProc">(</span><span class="Special">CODE</span><span class="PreProc">)</span> may follow transaction dates.
7814 An optional ; COMMENT may follow descriptions or amounts.
7815 If you make a mistake, enter <span class="Statement">&lt;</span> at any prompt to restart the transaction.
7816 To end a transaction, enter<span class="Statement"> . </span>when prompted.
7817 To quit, enter<span class="Statement"> . </span>at a date prompt or press control-d or control-c.
7818 Date <span class="Statement">[</span><span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">30</span><span class="Statement">]</span>: yesterday
7819 Description: Trololo
7820 Account <span class="Constant">1</span>: 1.Capital:
7821 1.Capital:0.Fonds 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement
7822 1.Capital:0.Fonds:2.SDR 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:1.État
7823 1.Capital:0.Fonds:2.SDR:4.Apport 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:2.Région
7824 1.Capital:0.Fonds:2.SDR:6.Sub_invest_BR 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:3.Département
7825 1.Capital:0.Fonds:3.ADR 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:4.Commune
7826 1.Capital:0.Fonds:3.ADR:4.Apport 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:5.Collectivité_publique
7827 1.Capital:0.Fonds:3.ADR:6.Sub_invest_BR 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:6.Entreprise_publique
7828 1.Capital:0.Fonds:6.Réserve 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:7.Organisme_privé
7829 1.Capital:0.Fonds:6.Réserve:3.Statutaire 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:1.Equipement:8.Autre
7830 1.Capital:0.Fonds:6.Réserve:8.Autre 1.Capital:3.Sub_invest_BNR:9.Compte_résultat:2.Autre
7831 1.Capital:1.Report 1.Capital:5.Provision_risque&amp;charge
7832 1.Capital:1.Report:0.Bénéfice 1.Capital:5.Provision_risque&amp;charge:1.Risque
7833 1.Capital:1.Report:5.Financeur 1.Capital:5.Provision_risque&amp;charge:5.Impôt
7834 1.Capital:1.Report:9.Déficit 1.Capital:5.Provision_risque&amp;charge:8.Autre
7835 1.Capital:2.Résultat 1.Capital:5.Provision_risque&amp;charge:8.Autre:2.Congés_à_payer
7836 1.Capital:2.Résultat:0.Bénéfice 1.Capital:6.Emprunt,Dette
7837 1.Capital:2.Résultat:9.Déficit 1.Capital:6.Emprunt,Dette:4.Etablissement_crédit
7838 1.Capital:3.Sub_invest_BNR 1.Capital:6.Emprunt,Dette:5.Dépôt,Caution
7839 1.Capital:3.Sub_invest_BNR:1.Equipement 1.Capital:6.Emprunt,Dette:8.Autre
7840 1.Capital:3.Sub_invest_BNR:1.Equipement:1.État 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt
7841 1.Capital:3.Sub_invest_BNR:1.Equipement:2.Région 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:1.Bénévole
7842 1.Capital:3.Sub_invest_BNR:1.Equipement:3.Département 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:2.Salarié-e
7843 1.Capital:3.Sub_invest_BNR:1.Equipement:4.Commune 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:3.Cyclofficine
7844 1.Capital:3.Sub_invest_BNR:1.Equipement:5.Collectivité_publique 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:4.Autre
7845 1.Capital:3.Sub_invest_BNR:1.Equipement:6.Entreprise_publique 1.Capital:6.Emprunt,Dette:8.Autre:7.Dette
7846 1.Capital:3.Sub_invest_BNR:1.Equipement:7.Organisme_privé 1.Capital:9.Fonds_dédiés
7847 1.Capital:3.Sub_invest_BNR:1.Equipement:8.Autre 1.Capital:9.Fonds_dédiés:4.Sub_exploit
7848 1.Capital:3.Sub_invest_BNR:8.Autre 1.Capital:9.Fonds_dédiés:5.Don_affecté
7849 1.Capital:3.Sub_invest_BNR:9.Compte_résultat
7850 Account <span class="Constant">1</span>: 1.Capital:6.Emprunt,Dette
7851 1.Capital:6.Emprunt,Dette 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:4.Autre
7852 1.Capital:6.Emprunt,Dette:4.Etablissement_crédit 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:1.Bénévole 1.Capital:6.Emprunt,Dette:8.Autre:7.Dette
7853 1.Capital:6.Emprunt,Dette:5.Dépôt,Caution 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:2.Salarié-e
7854 1.Capital:6.Emprunt,Dette:8.Autre 1.Capital:6.Emprunt,Dette:8.Autre:1.Emprunt:3.Cyclofficine
7855 Account <span class="Constant">1</span>: 1.Capital:6.Emprunt,Dette:4.Etablissement_crédit
7856 Amount <span class="Constant">1</span>: <span class="Constant">-666</span> ; Don’t panic
7857 Account <span class="Constant">2</span>: 5.Finance:
7858 5.Finance:1.Etablissement 5.Finance:1.Etablissement:2.Banque:002.Livret 5.Finance:8.Virement
7859 5.Finance:1.Etablissement:1.Valeur 5.Finance:3.Caisse 5.Finance:8.Virement:0.Interne
7860 5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser 5.Finance:3.Caisse:1.Siège 5.Finance:8.Virement:1.Fonds
7861 5.Finance:1.Etablissement:2.Banque:001.Courant 5.Finance:3.Caisse:2.Atelier
7862 Account <span class="Constant">2</span>: 5.Finance:1.Etablissement:2.Banque:001.Courant
7863 Amount <span class="Constant">2</span> <span class="Statement">[</span>666.0<span class="Statement">]</span>:
7864 Account <span class="Constant">3</span> <span class="PreProc">(</span><span class="Special">or . or enter to finish this transaction</span><span class="PreProc">)</span>: .
7865 <span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">29</span> Trololo
7866 1.Capital:6.Emprunt,Dette:4.Etablissement_crédit <span class="Constant">-666</span> ; Don’t panic
7867 5.Finance:1.Etablissement:2.Banque:001.Courant 666.0
7868
7869 Save this transaction to the journal ? <span class="Statement">[</span>y<span class="Statement">]</span>: y
7870 Saved.
7871 Starting the next transaction <span class="PreProc">(</span><span class="Special">. or ctrl-D/ctrl-C to quit</span><span class="PreProc">)</span>
7872 Date <span class="Statement">[</span><span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">29</span><span class="Statement">]</span>: .
7873 </pre></div></div>
7874 </div></div>
7875 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7876 </div><div class="slide">
7877
7878 <div class="sect2">
7879 <h1 id="_filtrer_des_écritures_code_print_code">4.3. Filtrer des écritures (<code>print</code>)</h1>
7880 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="4.3. Filtrer des écritures (<code>print</code>)";slidefootnotes="";/*]]>*/</script>
7881 <div class="sectionbody">
7882 <div class="paragraph">
7883 <div class="incremental">
7884 <p><code>hledger</code> permet de filtrer les écritures selon leurs données
7885 (date, libellé, comptes, montants, tags, &#8230;) ;
7886 des expressions rationnelles peuvent être utilisées à cette fin.</p>
7887 </div>
7888 </div>
7889 <div class="admonitionblock incremental">
7890 <table><tr>
7891 <td class="icon">
7892 <img src="./icons/note.png" alt="Note" />
7893 </td>
7894 <td class="content">Cf. manuel : <a href="http://hledger.org/manual#query-arguments">http://hledger.org/manual#query-arguments</a></td>
7895 </tr></table>
7896 </div>
7897 <div class="hdlist"><div class="title">Afficher des « journaux auxiliaires » (exemples approximatifs)</div><table><tbody class=" incremental">
7898 <tr>
7899 <td class="hdlist1">
7900 <strong>Banque</strong>
7901 <br />
7902 </td>
7903 <td class="hdlist2">
7904 <div class="listingblock incremental">
7905 <div class="content"><pre>
7906 hledger <span class="Statement">print</span><span class="Constant"> -f </span><span class="PreProc">$fichier</span><span class="Constant">.ledger </span><span class="Statement">'</span><span class="Constant">^5.Finance:1.Etablissement:2.Banque:</span><span class="Statement">'</span>
7907 </pre></div></div>
7908 </td>
7909 </tr>
7910 <tr>
7911 <td class="hdlist1">
7912 <strong>Achats</strong>
7913 <br />
7914 </td>
7915 <td class="hdlist2">
7916 <div class="listingblock incremental">
7917 <div class="content"><pre>
7918 hledger <span class="Statement">print</span><span class="Constant"> -f </span><span class="PreProc">$fichier</span><span class="Constant">.ledger </span><span class="Statement">'</span><span class="Constant">^(2.Immobilisation:1.Corporelle:|6.Charge:(0.Achat|1.Service|2.Autre_service):)</span><span class="Statement">'</span>
7919 </pre></div></div>
7920 </td>
7921 </tr>
7922 <tr>
7923 <td class="hdlist1">
7924 <strong>Vente</strong>
7925 <br />
7926 </td>
7927 <td class="hdlist2">
7928 <div class="listingblock incremental">
7929 <div class="content"><pre>
7930 hledger <span class="Statement">print</span><span class="Constant"> -f </span><span class="PreProc">$fichier</span><span class="Constant">.ledger </span><span class="Statement">'</span><span class="Constant">^7.Produit:0.Vente:</span><span class="Statement">'</span>
7931 </pre></div></div>
7932 </td>
7933 </tr>
7934 <tr>
7935 <td class="hdlist1">
7936 <strong>Caisse</strong>
7937 <br />
7938 </td>
7939 <td class="hdlist2">
7940 <div class="listingblock incremental">
7941 <div class="content"><pre>
7942 hledger <span class="Statement">print</span><span class="Constant"> -f </span><span class="PreProc">$fichier</span><span class="Constant">.ledger </span><span class="Statement">'</span><span class="Constant">^5.Finance:3.Caisse:</span><span class="Statement">'</span>
7943 </pre></div></div>
7944 </td>
7945 </tr>
7946 <tr>
7947 <td class="hdlist1">
7948 <strong>Paye</strong>
7949 <br />
7950 </td>
7951 <td class="hdlist2">
7952 <div class="listingblock incremental">
7953 <div class="content"><pre>
7954 hledger <span class="Statement">print</span><span class="Constant"> -f </span><span class="PreProc">$fichier</span><span class="Constant">.ledger </span><span class="Statement">'</span><span class="Constant">6.Charge:(3.Impôt:(1.|3.):|4.Personnel:)</span><span class="Statement">'</span>
7955 </pre></div></div>
7956 </td>
7957 </tr>
7958 <tr>
7959 <td class="hdlist1">
7960 <strong>À NouVeau</strong>
7961 <br />
7962 </td>
7963 <td class="hdlist2">
7964 <div class="listingblock incremental">
7965 <div class="content"><pre>
7966 hledger <span class="Statement">print</span><span class="Constant"> -f </span><span class="PreProc">$fichier</span><span class="Constant">.ledger tag:ANV</span>
7967 </pre></div></div>
7968 </td>
7969 </tr>
7970 <tr>
7971 <td class="hdlist1">
7972 <strong>Opération_Diverses</strong>
7973 <br />
7974 </td>
7975 <td class="hdlist2">
7976 <div class="listingblock incremental">
7977 <div class="content"><pre>
7978 hledger <span class="Statement">print</span><span class="Constant"> -f </span><span class="PreProc">$fichier</span><span class="Constant">.ledger tag:OD</span>
7979 </pre></div></div>
7980 </td>
7981 </tr>
7982 </tbody></table></div>
7983 </div></div>
7984 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
7985 </div><div class="slide">
7986
7987 <div class="sect2">
7988 <h1 id="_calculer_des_soldes_code_balance_code">4.4. Calculer des soldes (<code>balance</code>)</h1>
7989 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="4.4. Calculer des soldes (<code>balance</code>)";slidefootnotes="";/*]]>*/</script>
7990 <div class="sectionbody">
7991 <div class="tableblock">
7992 <table rules="all"
7993 width="100%"
7994 frame="border"
7995 cellspacing="0" cellpadding="4">
7996 <col width="50%" />
7997 <col width="50%" />
7998 <tbody class="incremental">
7999 <tr>
8000 <td align="left" valign="top"><div><div class="listingblock incremental">
8001 <div class="title">Balance de toutes les écritures</div>
8002 <div class="content"><pre>
8003 % hledger balance <span class="Special">-f</span> data/exemple-syntaxe.ledger
8004 58.00€ A:AA
8005 -58.00€ B
8006 2.00€ A
8007 40.00€ BB:BBB
8008 ‑-------------------
8009 <span class="Constant">0</span>
8010 </pre></div></div>
8011 <div class="admonitionblock incremental">
8012 <table><tr>
8013 <td class="icon">
8014 <img src="./icons/note.png" alt="Note" />
8015 </td>
8016 <td class="content">Toutes les écritures devant avoir leur balance nulle,
8017 cette balance sur toutes les écritures est également nulle.</td>
8018 </tr></table>
8019 </div>
8020 <div class="listingblock incremental">
8021 <div class="title">Balance sur des comptes filtrés par expression rationnelle</div>
8022 <div class="content"><pre>
8023 % hledger balance <span class="Statement">'</span><span class="Constant">A</span><span class="Statement">'</span> <span class="Special">-f</span> data/exemple-syntaxe.ledger
8024 58.00€ A:AA
8025 2.00€ B:A
8026 ‑-------------------
8027 60.00
8028 </pre></div></div>
8029 <div class="listingblock incremental">
8030 <div class="title">Balance sur un compte racine</div>
8031 <div class="content"><pre>
8032 % hledger balance <span class="Statement">'</span><span class="Constant">^A</span><span class="Statement">'</span> <span class="Special">-f</span> data/exemple-syntaxe.ledger
8033 58.00€ A:AA
8034 ‑-------------------
8035 58.00
8036 </pre></div></div>
8037 <div class="listingblock incremental">
8038 <div class="title">Sans accumulation des soldes d’une période à l’autre</div>
8039 <div class="content"><pre>
8040 % hledger balance <span class="Special">--daily</span> <span class="Special">-f</span> data/exemple-syntaxe.ledger
8041 Balance changes <span class="Error">in</span> <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01-2014</span>/<span class="Constant">01</span>/<span class="Constant">02</span>:
8042
8043 || <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01-2014</span>/<span class="Constant">01</span>/<span class="Constant">01</span> <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">02-2014</span>/<span class="Constant">01</span>/<span class="Constant">02</span>
8044<span class="Statement">=========</span>++<span class="Statement">===============================================</span>
8045 A:AA || -42.00100.00
8046 B || <span class="Constant">0</span> -100.00
8047 B:A || 2.00<span class="Constant">0</span>
8048 B:BB:BBB || 40.00<span class="Constant">0</span>
8049 ‑---------++-----------------------------------------------
8050 || <span class="Constant">0</span> <span class="Constant">0</span>
8051 </pre></div></div>
8052 <div class="listingblock incremental">
8053 <div class="title">Avec accumulation des soldes d’une période à l’autre</div>
8054 <div class="content"><pre>
8055 % hledger balance <span class="Special">--daily</span> <span class="Special">--historical</span> <span class="Special">-f</span> data/exemple-syntaxe.ledger
8056 Ending balances <span class="PreProc">(</span><span class="Special">historical</span><span class="PreProc">)</span> <span class="Error">in</span> <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01-2014</span>/<span class="Constant">01</span>/<span class="Constant">02</span>:
8057
8058 || <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">01</span> <span class="Constant">2014</span>/<span class="Constant">01</span>/<span class="Constant">02</span>
8059<span class="Statement">=========</span>++<span class="Statement">=========================</span>
8060 A:AA || -42.0058.00
8061 B || <span class="Constant">0</span> -100.00
8062 B:A || 2.002.00
8063 B:BB:BBB || 40.0040.00
8064 ‑---------++-------------------------
8065 || <span class="Constant">0</span> <span class="Constant">0</span>
8066 </pre></div></div></div></td>
8067 <td align="left" valign="top"><div><div class="hdlist"><table><tbody class=" incremental">
8068 <tr>
8069 <td class="hdlist1">
8070 <strong>balance</strong>
8071 <br />
8072 </td>
8073 <td class="hdlist2">
8074 <p style="margin-top: 0;">
8075 <span class=" LaTeX ">$:\&gt;\mathbb F : \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack → ℚ$</span><br />
8076 = « <em>somme des montants des flux</em> »<br />
8077 <span class=" LaTeX ">$=\&gt;{(\ m\ |\ m ← m + (\textbf{montant}\&gt;f)\ |\ f ← \mathbb F\ |\ m ← 0\ )$</span><br />
8078 </p>
8079 </td>
8080 </tr>
8081 <tr>
8082 <td class="hdlist1">
8083 <strong>solde_de_compte</strong>
8084 <br />
8085 </td>
8086 <td class="hdlist2">
8087 <p style="margin-top: 0;">
8088 <span class=" LaTeX ">$:\&gt;\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack → c : \textcolor{#D2691E}{\textbf{compte}} → ℚ$</span><br />
8089 <span class=" LaTeX ">$=\&gt;{\textbf{balance}\&gt;\lbrack{\ f\ |\ f ← (\textbf{flux}\&gt;e),\ c\&gt;≼\&gt;(\textbf{compte}\&gt;f)\ |\ e ← \mathbb E\ }\rbrack$</span><br />
8090 </p>
8091 </td>
8092 </tr>
8093 <tr>
8094 <td class="hdlist1">
8095 <strong>solde</strong>
8096 <br />
8097 </td>
8098 <td class="hdlist2">
8099 <p style="margin-top: 0;">
8100 <span class=" LaTeX ">$:\&gt;\mathbb E : \lbrack\textcolor{#D2691E}{\textbf{\acute{e}criture}}\rbrack →
8101 \lbrack\textcolor{#D2691E}{\textbf{flux}}\rbrack$</span><br />
8102 <span class=" LaTeX ">$=\&gt;\displaystyle{\left\lbrack
8103 \begin{array}{l}
8104 (\textcolor{#083194}{\textbf{compte}}=c´, \textcolor{#083194}{\textbf{montant}}=m) \\
8105 |\ m ← (\mathbf{\mbox{solde_de_compte}}\,\mathbb E\,c´) \\
8106 |\ c´ ← (\mathbf{plan\mbox{_}comptable}\,c) \\
8107 |\ c ← (\mathbf{comptes}\,\mathbb E)
8108 \end{array}}\right\rbrack$</span>
8109 </p>
8110 </td>
8111 </tr>
8112 </tbody></table></div></div></td>
8113 </tr>
8114 </tbody>
8115 </table>
8116 </div>
8117 </div></div>
8118 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8119 </div><div class="slide">
8120
8121 <div class="sect2">
8122 <h1 id="_suivre_un_compte_code_register_code">4.5. Suivre un compte (<code>register</code>)</h1>
8123 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="4.5. Suivre un compte (<code>register</code>)";slidefootnotes="";/*]]>*/</script>
8124 <div class="sectionbody">
8125 <div class="listingblock incremental">
8126 <div class="title">Suivi de la somme des crédits du compte <code>5112</code></div>
8127 <div class="content"><pre>
8128 % hledger register <span class="Special">-f</span> Paris.2011.hledger <span class="Statement">'</span><span class="Constant">amt:&lt;0</span><span class="Statement">'</span> <span class="Statement">'</span><span class="Constant">^5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser</span><span class="Statement">'</span>
8129 <span class="Constant">2011</span>/<span class="Constant">05</span>/<span class="Constant">23</span> Remise chq <span class="Constant">0994029</span> ..Chèque_à_encaisser <span class="Constant">-100</span>,<span class="Constant">00</span><span class="Constant">-100</span>,<span class="Constant">00</span>
8130 <span class="Constant">2011</span>/<span class="Constant">09</span>/<span class="Constant">29</span> Remise chq <span class="Constant">1101801</span> ..Chèque_à_encaisser <span class="Constant">-20</span>,<span class="Constant">00</span><span class="Constant">-120</span>,<span class="Constant">00</span>
8131 <span class="Constant">2011</span>/<span class="Constant">11</span>/<span class="Constant">18</span> Remise chq <span class="Constant">1101802</span> ..Chèque_à_encaisser <span class="Constant">-2000</span>,<span class="Constant">00</span><span class="Constant">-2120</span>,<span class="Constant">00</span>
8132 </pre></div></div>
8133 <div class="listingblock incremental">
8134 <div class="title">Suivi de la somme des débits du compte <code>5112</code></div>
8135 <div class="content"><pre>
8136 % hledger register <span class="Special">-f</span> Paris.2011.hledger <span class="Statement">'</span><span class="Constant">amt:&gt;0</span><span class="Statement">'</span> <span class="Statement">'</span><span class="Constant">^5.Finance:1.Etablissement:1.Valeur:2.Chèque_à_encaisser</span><span class="Statement">'</span>
8137 <span class="Constant">2011</span>/<span class="Constant">05</span>/<span class="Constant">15</span> Prêt ..Chèque_à_encaisser <span class="Constant">100</span>,<span class="Constant">00</span><span class="Constant">100</span>,<span class="Constant">00</span>
8138 <span class="Constant">2011</span>/<span class="Constant">09</span>/<span class="Constant">20</span> Cotisations ..Chèque_à_encaisser <span class="Constant">20</span>,<span class="Constant">00</span><span class="Constant">120</span>,<span class="Constant">00</span>
8139 <span class="Constant">2011</span>/<span class="Constant">11</span>/<span class="Constant">10</span> Prêt ..Chèque_à_encaisser <span class="Constant">2000</span>,<span class="Constant">00</span><span class="Constant">2120</span>,<span class="Constant">00</span>
8140 </pre></div></div>
8141 </div></div>
8142 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8143 </div><div class="slide">
8144
8145 <div class="sect2">
8146 <h1 id="_calculer_les_écritures_de_clôture_et_ouverture_code_equity_code">4.6. Calculer les écritures de clôture et ouverture (<code>equity</code>)</h1>
8147 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="4.6. Calculer les écritures de clôture et ouverture (<code>equity</code>)";slidefootnotes="";/*]]>*/</script>
8148 <div class="sectionbody">
8149 <div class="paragraph">
8150 <div class="incremental">
8151 <p><code>hledger-equity</code> calcule une balance de comptes
8152 et en fait deux écritures, respectivement :</p>
8153 </div>
8154 </div>
8155 <div class="hdlist"><table><tbody class=" incremental">
8156 <tr>
8157 <td class="hdlist1">
8158 de clôture
8159 <br />
8160 </td>
8161 <td class="hdlist2">
8162 <p style="margin-top: 0;">
8163 pour les solder à zéro en fin d’exercice ;
8164 </p>
8165 </td>
8166 </tr>
8167 <tr>
8168 <td class="hdlist1">
8169 d’ouverture
8170 <br />
8171 </td>
8172 <td class="hdlist2">
8173 <p style="margin-top: 0;">
8174 pour les réinitialiser à leur solde du précédent exercice.
8175 </p>
8176 </td>
8177 </tr>
8178 </tbody></table></div>
8179 <div class="tableblock">
8180 <table rules="all"
8181 width="100%"
8182 frame="border"
8183 cellspacing="0" cellpadding="4">
8184 <col width="50%" />
8185 <col width="50%" />
8186 <tbody class="incremental">
8187 <tr>
8188 <td align="left" valign="top"><div><div class="listingblock incremental">
8189 <div class="content"><pre>
8190 % hledger-equity <span class="Special">-f</span> data/exemple-syntaxe.ledger
8191 <span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">30</span>
8192 A:AA -58.00
8193 B 100.00
8194 B:A -2.00
8195 B:BB:BBB -40.00
8196 equity:closing balances <span class="Constant">0</span>
8197
8198 <span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">30</span>
8199 A:AA 58.00
8200 B -100.00
8201 B:A 2.00
8202 B:BB:BBB 40.00
8203 equity:opening balances <span class="Constant">0</span>
8204 </pre></div></div>
8205 <div class="listingblock incremental">
8206 <div class="content"><pre>
8207 % hledger-equity <span class="Special">-f</span> data/exemple-syntaxe.ledger <span class="Statement">'</span><span class="Constant">^A</span><span class="Statement">'</span>
8208 <span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">30</span>
8209 A:AA -58.00
8210 equity:closing balances 58.00
8211
8212 <span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">30</span>
8213 A:AA 58.00
8214 equity:opening balances -58.00
8215 </pre></div></div>
8216 <div class="listingblock incremental">
8217 <div class="content"><pre>
8218 % hledger-equity <span class="Special">-f</span> data/exemple-syntaxe.ledger <span class="Statement">'</span><span class="Constant">^B</span><span class="Statement">'</span>
8219 <span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">30</span>
8220 B 100.00
8221 B:A -2.00
8222 B:BB:BBB -40.00
8223 equity:closing balances -58.00
8224
8225 <span class="Constant">2014</span>/<span class="Constant">07</span>/<span class="Constant">30</span>
8226 B -100.00
8227 B:A 2.00
8228 B:BB:BBB 40.00
8229 equity:opening balances 58.00
8230 </pre></div></div></div></td>
8231 <td align="left" valign="top"><div><div class="listingblock incremental">
8232 <div class="title">Solde des compte de gestion</div>
8233 <div class="content"><pre>
8234 % hledger-equity '^6' '^7' -f Paris.2011.hledger
8235 <span class="hledgerTransactionDate">2014/07/29</span>
8236 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Non_stocké</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre_Matière,Fourniture</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Atelier</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">248</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">87</span><span class="hledgerPostingAmount"></span>
8237 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Location</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilière</span><span class="hledgerPostingAmountOdd"> -</span><span class="hledgerNumberOdd">441</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">46</span><span class="hledgerPostingAmountOdd"></span>
8238 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Communication</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Catalogue,Imprimé</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">24</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span><span class="hledgerPostingAmount"></span>
8239 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Service_bancaire</span><span class="hledgerPostingAmountOdd"> -</span><span class="hledgerNumberOdd">31</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">25</span><span class="hledgerPostingAmountOdd"></span>
8240 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Divers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Cotisation_(vie_statutaire)</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">25</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span><span class="hledgerPostingAmount"></span>
8241 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Vente</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Prest'action</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">700</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">00</span><span class="hledgerPostingAmountOdd"></span>
8242 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_gestion_courante</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Cotisation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">20</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span><span class="hledgerPostingAmount"></span>
8243 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Autre_gestion_courante</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Divers</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">00</span><span class="hledgerPostingAmountOdd"></span>
8244 <span class="hledgerPostingAccount"> equity</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">closing balances</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">44</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">58</span><span class="hledgerPostingAmount"></span>
8245
8246 <span class="hledgerTransactionDate">2014/07/29</span>
8247 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Non_stocké</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre_Matière,Fourniture</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Atelier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">248</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">87</span><span class="hledgerPostingAmount"></span>
8248 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Location</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilière</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">441</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">46</span><span class="hledgerPostingAmountOdd"></span>
8249 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Communication</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Catalogue,Imprimé</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">24</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span><span class="hledgerPostingAmount"></span>
8250 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Service_bancaire</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">31</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">25</span><span class="hledgerPostingAmountOdd"></span>
8251 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Divers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Cotisation_(vie_statutaire)</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">25</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span><span class="hledgerPostingAmount"></span>
8252 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Vente</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Prest'action</span><span class="hledgerPostingAmountOdd"> -</span><span class="hledgerNumberOdd">700</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">00</span><span class="hledgerPostingAmountOdd"></span>
8253 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_gestion_courante</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Cotisation</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">20</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span><span class="hledgerPostingAmount"></span>
8254 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Autre_gestion_courante</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Divers</span><span class="hledgerPostingAmountOdd"> -</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">00</span><span class="hledgerPostingAmountOdd"></span>
8255 <span class="hledgerPostingAccount"> equity</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">opening balances</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">44</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">58</span><span class="hledgerPostingAmount"></span>
8256 </pre></div></div></div></td>
8257 </tr>
8258 </tbody>
8259 </table>
8260 </div>
8261 </div></div>
8262 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8263 </div><div class="slide">
8264
8265 <div class="sect2">
8266 <h1 id="_observer_des_statistiques_code_stats_code_code_activity_code">4.7. Observer des statistiques (<code>stats</code>, <code>activity</code>)</h1>
8267 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="4.7. Observer des statistiques (<code>stats</code>, <code>activity</code>)";slidefootnotes="";/*]]>*/</script>
8268 <div class="sectionbody">
8269 <div class="tableblock">
8270 <table rules="all"
8271 width="100%"
8272 frame="border"
8273 cellspacing="0" cellpadding="4">
8274 <col width="50%" />
8275 <col width="50%" />
8276 <tbody class="incremental">
8277 <tr>
8278 <td align="left" valign="top"><div><div class="listingblock incremental">
8279 <div class="title">Statistiques annuelles</div>
8280 <div class="content"><pre>
8281 % hledger stats <span class="Special">--period</span> yearly <span class="Special">-f</span> Paris.2012.hledger
8282 Main journal file : Paris.2012.hledger
8283 Included journal files : Paris.Plan_comptable.hledger
8284 Cyclofficine.Plan_comptable.hledger
8285 Transactions span : <span class="Constant">2012-01-01</span> to <span class="Constant">2013-01-01</span> <span class="PreProc">(</span><span class="Constant">366</span><span class="Special"> days</span><span class="PreProc">)</span>
8286 Last transaction : <span class="Constant">2012-12-31</span> <span class="PreProc">(</span><span class="Constant">576</span><span class="Special"> days ago</span><span class="PreProc">)</span>
8287 Transactions : <span class="Constant">210</span> <span class="PreProc">(</span><span class="Special">0.6 per day</span><span class="PreProc">)</span>
8288 Transactions last <span class="Constant">30</span> days: <span class="Constant">0</span> <span class="PreProc">(</span><span class="Special">0.0 per day</span><span class="PreProc">)</span>
8289 Transactions last <span class="Constant">7</span> days : <span class="Constant">0</span> <span class="PreProc">(</span><span class="Special">0.0 per day</span><span class="PreProc">)</span>
8290 Payees/descriptions : <span class="Constant">144</span>
8291 Accounts : <span class="Constant">448</span> <span class="PreProc">(</span><span class="Special">depth </span><span class="Constant">6</span><span class="PreProc">)</span>
8292 Commodities : <span class="Constant">1</span> <span class="PreProc">(</span><span class="Special"></span><span class="PreProc">)</span>
8293 </pre></div></div></div></td>
8294 <td align="left" valign="top"><div><div class="listingblock incremental">
8295 <div class="title">Jours de l’année avec au moins 5 flux</div>
8296 <div class="content"><pre>
8297 hledger activity <span class="Special">--period</span> daily <span class="Special">-f</span> Paris.2012.hledger | grep <span class="Statement">'</span><span class="Constant">\*\{5\}</span><span class="Statement">'</span>
8298 <span class="Constant">2012-01-01</span> ***********
8299 <span class="Constant">2012-02-29</span> ******
8300 <span class="Constant">2012-03-23</span> ******
8301 <span class="Constant">2012-03-31</span> *********
8302 <span class="Constant">2012-04-03</span> ******
8303 <span class="Constant">2012-04-30</span> ********
8304 <span class="Constant">2012-05-03</span> ****************
8305 <span class="Constant">2012-05-11</span> ********
8306 <span class="Constant">2012-05-14</span> ****************
8307 <span class="Constant">2012-05-31</span> **********
8308 <span class="Constant">2012-06-11</span> ******************
8309 <span class="Constant">2012-06-30</span> *************
8310 <span class="Constant">2012-07-13</span> *********
8311 <span class="Constant">2012-07-17</span> ******
8312 <span class="Constant">2012-07-30</span> ******
8313 <span class="Constant">2012-07-31</span> ***********
8314 <span class="Constant">2012-08-31</span> ******
8315 <span class="Constant">2012-09-26</span> ********
8316 <span class="Constant">2012-09-30</span> ******
8317 <span class="Constant">2012-11-13</span> ********
8318 <span class="Constant">2012-11-30</span> *****
8319 <span class="Constant">2012-12-31</span> *************
8320 </pre></div></div></div></td>
8321 </tr>
8322 </tbody>
8323 </table>
8324 </div>
8325 </div></div>
8326 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8327 </div><div class="slide">
8328
8329 <div class="sect1">
8330 <h1 id="_exercice_comptable">5. Exercice comptable</h1>
8331 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="5. Exercice comptable";slidefootnotes="";/*]]>*/</script>
8332 <div class="sectionbody">
8333 </div></div>
8334 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8335
8336 <div class="sect2">
8337 <h1 id="_plan_comptable_d_une_association">5.1. Plan comptable d’une association</h1>
8338 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="5.1. Plan comptable d’une association";slidefootnotes="";/*]]>*/</script>
8339 <div class="sectionbody">
8340 <div class="admonitionblock incremental">
8341 <table><tr>
8342 <td class="icon">
8343 <img src="./icons/note.png" alt="Note" />
8344 </td>
8345 <td class="content">Brouillon de documentation @ <a href="https://wiki.cyclocoop.org/Comptabilité/Document/Plan_comptable/">https://wiki.cyclocoop.org/Comptabilité/Document/Plan_comptable/</a></td>
8346 </tr></table>
8347 </div>
8348 <div class="listingblock incremental">
8349 <div class="content"><pre>
8350 <span class="Comment">; Plan comptable d’une Cyclofficine</span>
8351 <span class="Comment">; =================================</span>
8352 <span class="Comment">;</span>
8353 <span class="Comment">; == Utilisation</span>
8354 <span class="Comment">; Doit être inclus ainsi dans un FICHIER.hledger l’utilisant :</span>
8355 <span class="Comment">; ----</span>
8356 <span class="Comment">; !include Plan_comptable.hledger</span>
8357 <span class="Comment">; ----</span>
8358 <span class="Comment">; ATTENTION: rien n’empêche techniquement un FICHIER.hledger</span>
8359 <span class="Comment">; de rajouter des comptes après cette inclusion.</span>
8360
8361 <span class="Comment">; Définir un Plan comptable dans hledger</span>
8362 <span class="Comment">; consiste à faire une écriture dont tous les montants sont nuls</span>
8363 <span class="Comment">; et qui recense tous les comptes qui vont à priori être utilisés.</span>
8364
8365 <span class="Comment">; ATTENTION: par convention ici chaque compte doit respecter la syntaxe :</span>
8366 <span class="Comment">; ----</span>
8367 <span class="Comment">; A.ZZZ:B.YYY:C.XXX 0 ; ABC. INTITULÉ OFFICIEL DU COMPTE</span>
8368 <span class="Comment">; ----</span>
8369
8370 <span class="hledgerDirective">D 1.000,00</span><span class="Comment">; NOTE: précise le format de la devise.</span>
8371
8372 <span class="hledgerTransactionDate">01/01</span> <span class="hledgerTransactionDescription">Initialisation des comptes</span>
8373 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1. COMPTES DE CAPITAUX</span>
8374 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fonds</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 10. Fonds associatifs et reserves</span>
8375 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fonds</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.SDR</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 102. Fonds associatifs sans droit de reprise (SDR)</span>
8376 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fonds</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.SDR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Apport</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1024. Apports SDR</span>
8377 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fonds</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.SDR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Sub_invest_BR</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1026. Subventions d’investissement (biens renouvelables) SDR</span>
8378 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fonds</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.ADR</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 103. Fonds associatifs avec droit de reprise (ADR)</span>
8379 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fonds</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.ADR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Apport</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1034. Apports ADR</span>
8380 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fonds</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.ADR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Sub_invest_BR</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1036. Subventions d’investissement (biens renouvelables) ADR</span>
8381 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fonds</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Réserve</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 106. Réserves</span>
8382 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fonds</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Réserve</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Statutaire</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1063. Réserves statutaires ou contractuelles</span>
8383 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fonds</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Réserve</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1068. Autres réserves (dont réserves pour projet associatif)</span>
8384 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Report</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 11. Report à nouveau</span>
8385 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Report</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Bénéfice</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 110. Report à nouveau (solde créditeur/bénéfice)</span>
8386 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Report</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Financeur</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 115. Résultats sous contrôle de tiers financeurs</span>
8387 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Report</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Déficit</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 119. Report à nouveau (solde débiteur/perte)</span>
8388 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Résultat</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 12. Résultat net de l’exercice</span>
8389 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Résultat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Bénéfice</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 120. Résultat de l’exercice (excédent/bénéfice)</span>
8390 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Résultat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Déficit</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 129. Résultat de l’exercice (déficit/perte)</span>
8391 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 13. Subventions d’investissements (biens non renouvelables) ADR</span>
8392 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 131. Subventions d’équipement</span>
8393 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.État</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1311. État</span>
8394 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Région</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1312. Région</span>
8395 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Département</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1313. Département</span>
8396 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Commune</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1314. Commune</span>
8397 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Collectivité_publique</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1315. Collectivités publiques</span>
8398 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Entreprise_publique</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1316. Entreprises publiques</span>
8399 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Organisme_privé</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1317. Entreprises et organismes privés</span>
8400 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1318. Autres</span>
8401 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 138. Autres subventions d’investissement</span>
8402 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Compte_résultat</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 139. Subventions d’investissements inscrites au compte de résultat</span>
8403 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Compte_résultat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1391. Subvention d'équipement</span>
8404 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Compte_résultat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.État</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 13911. État</span>
8405 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Compte_résultat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Région</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 13912. Région</span>
8406 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Compte_résultat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Département</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 13913. Département</span>
8407 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Compte_résultat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Commune</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 13914. Commune</span>
8408 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Compte_résultat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Collectivité_publique</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 13915. Collectivités publiques</span>
8409 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Compte_résultat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Entreprise_publique</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 13916. Entreprises publiques</span>
8410 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Compte_résultat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Organisme_privé</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 13917. Entreprises et organismes privés</span>
8411 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sub_invest_BNR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Compte_résultat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 13918. Autres</span>
8412 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sub_invest_BNR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Compte_résultat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1392. Autres subventions d'investissement</span>
8413 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Provision_risque&amp;charge</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 15. Provisions pour risques et charges</span>
8414 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Provision_risque&amp;charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Risque</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 151. Provisions pour risques</span>
8415 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Provision_risque&amp;charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 155. Provisions pour impôts</span>
8416 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Provision_risque&amp;charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 158. Autres provisions pour charges</span>
8417 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Provision_risque&amp;charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Congés_à_payer</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1582. Provisions pour congés à payer</span>
8418 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Emprunt,Dette</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 16. Emprunts et dettes assimilees</span>
8419 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Emprunt,Dette</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Etablissement_crédit</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 164. Emprunts auprès des établissements de crédit</span>
8420 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Emprunt,Dette</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Dépôt,Caution</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 165. Dépôts et cautionnements reçus</span>
8421 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Emprunt,Dette</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 168. Autres emprunts et dettes assimilées</span>
8422 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Emprunt,Dette</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Emprunt</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 1681. Autres emprunts</span>
8423 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Emprunt,Dette</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Emprunt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Bénévole</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 16811. Bénévoles</span>
8424 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Emprunt,Dette</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Emprunt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Salarié-e</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 16812. Salarié-e-s</span>
8425 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Emprunt,Dette</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Emprunt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Cyclofficine</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 16813. Cyclofficine</span>
8426 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Emprunt,Dette</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Emprunt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 16814. Autre</span>
8427 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Emprunt,Dette</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Dette</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 1687. Autres dettes</span>
8428 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Fonds_dédiés</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 19. Fonds dédiés</span>
8429 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Capital</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Fonds_dédiés</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Sub_exploit</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 194. Fonds dédiés sur subventions de fonctionnement</span>
8430 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Capital</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Fonds_dédiés</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Don_affecté</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 195. Fonds dédiés sur dons manuels affectés</span>
8431 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 2. COMPTES D'IMMOBILISATIONS</span>
8432 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Corporelle</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 21. Immobilisations corporelles</span>
8433 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Corporelle</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Equipement</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 215. Installations techniques, matériel et outillage industriels</span>
8434 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Corporelle</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 218. Autres immobilisations corporelles</span>
8435 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Corporelle</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Travaux</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 2181. Installation générale, agencement, aménagement divers</span>
8436 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Corporelle</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Transport</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 2182. Matériel de transport</span>
8437 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Corporelle</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Matériel_bureau&amp;info</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 2183. Matériel de bureau et matériel informatique</span>
8438 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Corporelle</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Mobilier</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 2184. Mobilier</span>
8439 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Concession</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 22. Immobilisations mises en concession</span>
8440 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Concession</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Immo_grévées_droits</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 228. Immobilisations grevées de droits</span>
8441 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Concession</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Droits_propriétaire</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 229. Droits des propriétaires</span>
8442 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Participation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 26.Participations et créances rattachées à des participations</span>
8443 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Participation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Titre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 261. Titres de participation</span>
8444 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Participation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Titre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 2618. Autres titres</span>
8445 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Financière</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 27. Autres immobilisations financières</span>
8446 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Financière</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Prêt</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 274. Prêts</span>
8447 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Financière</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Prêt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Au_personnel</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 2743. Prêts au personnel</span>
8448 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Financière</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Prêt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 2748. Autres prêts</span>
8449 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Financière</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Dépôt,Caution</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 275. Dépôts et cautionnements versés</span>
8450 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Amortissement</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 28. Amortissements des immobilisations</span>
8451 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Amortissement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Immo_corp</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 281. Amortissements des immobilisations corporelles</span>
8452 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Amortissement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Immo_corp</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Equipement</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 2815. Installations techniques, matériel et outillage industriels (même ventilation que celle du_compte_215)</span>
8453 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Amortissement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Immo_corp</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 2818. Autres immobilisations corporelles</span>
8454 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4. COMPTES TIERS</span>
8455 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 40. Fournisseurs et comptes rattachés</span>
8456 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 401. Fournisseurs</span>
8457 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Bien,Prestation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4011. Fournisseurs - achats de biens ou de prestations de services</span>
8458 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Retenue_garantie</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4017. Fournisseurs - Retenue de garantie</span>
8459 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Effets_à_payer</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 403. Fournisseurs - effets à payer</span>
8460 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 404. Fournisseurs d’immobilisations</span>
8461 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4041. Fournisseurs - Achats d'immobilisations</span>
8462 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Retenue_garantie</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4047. Fournisseurs d'immobilisations - Retenue de garantie</span>
8463 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Immo_effets_à_payer</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 405. Fournisseurs d’immobilisations - Effets à payer</span>
8464 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Facture_non_parvenue</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 408. Fournisseurs - Factures non parvenues</span>
8465 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Facture_non_parvenue</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Bien,Prestation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4081. Fournisseurs - Achats de biens ou prestations de service</span>
8466 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Facture_non_parvenue</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Immobilisation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4084. Fournisseurs - Achats d'immobilisations</span>
8467 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Débiteur</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 409. Fournisseurs débiteurs</span>
8468 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Fournisseur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Débiteur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Accompte</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4091. Fournisseurs - Avances et accomptes versés sur commandes</span>
8469 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Fournisseur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Débiteur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre_avoir</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4097. Autres avoirs</span>
8470 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Client</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 41. Usagers et comptes rattachés</span>
8471 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Client</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Client</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 411. Clients</span>
8472 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Client</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Client</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Bien,Prestation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4111. Clients - Vente de biens et prestations de service</span>
8473 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Client</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Client</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Retenue_garantie</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4117. Clients - Retenue de garantie</span>
8474 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Client</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Effets_à_recevoir</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 413. Clients - Effets à recevoir</span>
8475 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Client</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Produit_non_facturé</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 418. Clients - Produits non encore facturés</span>
8476 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Client</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Créditeur</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 419. Clients créditeurs</span>
8477 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Client</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Créditeur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Accompte</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4191. Clients - Avances et accomptes versés sur commandes</span>
8478 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Client</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Créditeur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre_avoir</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4197. Clients - Autres avoirs</span>
8479 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 42. Personnel et comptes rattachés</span>
8480 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Rémunération</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 421. Rémunérations dues</span>
8481 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Rémunération</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">011801</span><span class="hledgerPostingAccount">.S_Arca</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 421011801. S. Arca</span>
8482 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Rémunération</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">030101</span><span class="hledgerPostingAccountOdd">.G_Caprarelli</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 421030101. G. Caprarelli</span>
8483 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Rémunération</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">060101</span><span class="hledgerPostingAccount">.T_Favier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 421060101. T.Favier</span>
8484 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Rémunération</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">131501</span><span class="hledgerPostingAccountOdd">.A_Morin</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 421131501. A. Morin</span>
8485 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Rémunération</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">161501</span><span class="hledgerPostingAccount">.S_Popek</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 421161501. S. Popek</span>
8486 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Avances</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 425. Personnel - Avances et accomptes</span>
8487 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.CP&amp;PR</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 428. Personnel - Charges à payer et produits à recevoir</span>
8488 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.CP&amp;PR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Congés_à_payer</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4282. Dettes provisionnées pour congés à payer</span>
8489 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.CP&amp;PR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Autre_charge_à_payer</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4286. Autres charges à payer</span>
8490 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.CP&amp;PR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit_à_recevoir</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4287. Produits à recevoir</span>
8491 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Caisse_sociale</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 43. Securite sociale et autres organismes sociaux</span>
8492 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Caisse_sociale</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.URSSAF</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 431. URSSAF</span>
8493 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Caisse_sociale</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 437. Autres organismes sociaux</span>
8494 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Caisse_sociale</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.B</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">V</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4373. Caisse de retraite</span>
8495 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Caisse_sociale</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4378. Autres organismes sociaux</span>
8496 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Caisse_sociale</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.AG</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">R</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 43781. Prévoyance</span>
8497 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Caisse_sociale</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.CP&amp;PR</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 438. Charges à payer et produits à recevoir</span>
8498 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Caisse_sociale</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.CP&amp;PR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Cotisation_congé_à_payer</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4382. Cotisations sociales sur congés à payer</span>
8499 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Caisse_sociale</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.CP&amp;PR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Autre_charge_à_payer</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4386. Autres charges à payer</span>
8500 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Caisse_sociale</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.CP&amp;PR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit_à_recevoir</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4387. Produits à recevoir</span>
8501 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 44. État et autres collectivites publiques</span>
8502 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sub_à_recevoir</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 441. Subventions à recevoir</span>
8503 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sub_à_recevoir</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Investissement</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4411. Subventions d'investissement</span>
8504 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sub_à_recevoir</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exploitation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4417. Subventions d'exploitation</span>
8505 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sub_à_recevoir</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Equilibre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4418. Subvention d'équilibre</span>
8506 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sub_à_recevoir</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Avance_sur_sub</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4419. Avances sur subventions</span>
8507 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Opération_particulière</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 443. Opérations particulières avec l’État, les collectivités publiques, les organismes internationaux</span>
8508 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Impôt_sur_bénéfice</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 444. État- Impôts sur les bénéfices</span>
8509 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Impôt_sur_bénéfice</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Sur_société</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4445. État - Impôt sur les sociétés</span>
8510 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre_impôt</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 447.Autres impôts, taxes et versements assimilés</span>
8511 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre_impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_rémunération_(État)</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4471. Impôts, taxes et versements assimilés sur rémunérations (administration des impôts)</span>
8512 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre_impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_rémunération_(État)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Taxe_salaire</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 44711. Taxe sur les salaires</span>
8513 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre_impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_rémunération_(État)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Formation_pro</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 44712. Participation des employeurs à la formation professionnelle continue</span>
8514 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre_impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_rémunération_(État)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 44718. Autres impôts, taxes et versements assimilés</span>
8515 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre_impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sur_rémunération_(Organisme)</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4473. Impôts, taxes et versements sur rémunérations (autres organismes)</span>
8516 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre_impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sur_rémunération_(Organisme)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Formation_pro</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 44733. Participation des employeurs à la formation professionnelle continue</span>
8517 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre_impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_(État)</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4475. Autres impôts, taxes et versements assimilés (administration des impôts)</span>
8518 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre_impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre_(Organisme)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4477. Autres impôts, taxes et versements assimilés (autres organismes)</span>
8519 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.CP&amp;PR</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 448. État - Charges à payer et produits à recevoir</span>
8520 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.CP&amp;PR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Charge_fiscale_sur_congés_à_payer</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4482. Charges fiscales sur congés à payer</span>
8521 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.État,collectivité</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.CP&amp;PR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge_à_payer</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4486. Autres charges à payer</span>
8522 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.État,collectivité</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.CP&amp;PR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit_à_recevoir</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4487. Produits à recevoir</span>
8523 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Divers_créditeur_débiteur</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 46. Débiteurs divers et créditeurs divers</span>
8524 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Divers_créditeur_débiteur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 467. Autres comptes débiteurs ou créditeurs</span>
8525 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Divers_créditeur_débiteur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">001</span><span class="hledgerPostingAccount">.Bénévole</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 467001. Bénévoles</span>
8526 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Divers_créditeur_débiteur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">002</span><span class="hledgerPostingAccountOdd">.Salarié-e</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 647002. Salariés</span>
8527 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Divers_créditeur_débiteur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.CP&amp;PR</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 468. Divers - Charges à payer et produits à recevoir</span>
8528 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Divers_créditeur_débiteur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.CP&amp;PR</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge_à_payer</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 4686.Charges à payer</span>
8529 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Divers_créditeur_débiteur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.CP&amp;PR</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit_à_recevoir</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 4687. Produits à recevoir</span>
8530 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Régularisation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 48. Comptes de régularisation</span>
8531 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Régularisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge_constatée_d'avance</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 486. Charges constatées d’avance</span>
8532 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Régularisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit_constaté_d'avance</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 487. Produits constatés d’avance</span>
8533 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Finance</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 5. COMPTES FINANCIERS</span>
8534 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Finance</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Etablissement</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 51. Banques, établissements financiers et assimilés</span>
8535 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Finance</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Etablissement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Valeur</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 511. Valeurs à l’encaissement</span>
8536 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Finance</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Etablissement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Valeur</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Chèque_à_encaisser</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 5112. Chèques à encaisser</span>
8537 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Finance</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Etablissement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Banque</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">001</span><span class="hledgerPostingAccount">.Courant</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 512001. Crédit Coopératif - Compte courant</span>
8538 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Finance</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Etablissement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Banque</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">002</span><span class="hledgerPostingAccountOdd">.Livret</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 512002. Crédit coopératif - Livret</span>
8539 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Finance</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Caisse</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 53. Caisse</span>
8540 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Finance</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Caisse</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Siège</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 531. Caisse du siège</span>
8541 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Finance</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Caisse</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Atelier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 532. Caisse des lieux d’activités</span>
8542 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Finance</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Virement</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 58. Virements internes</span>
8543 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Finance</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Virement</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Interne</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 580. Virements internes</span>
8544 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Finance</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Virement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Fonds</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 581. Virements de fonds</span>
8545 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6. COMPTES D'ACHATS</span>
8546 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 60. Achats (sauf 603)</span>
8547 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Stocké-Matière_Prem,Fourniture</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 601. Achats stockés - Matières premières et fournitures</span>
8548 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Stocké-Matière_Prem,Fourniture</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Matière</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6011. Matières</span>
8549 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Stocké-Matière_Prem,Fourniture</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Fourniture</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6012. Fournitures</span>
8550 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Stocké-Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 602. Achats stockés - Autres approvisionnements</span>
8551 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Stocké-Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Matière_consommable</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6021. Matières consommables</span>
8552 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Stocké-Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Fourniture_consommable</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6022. Fournitures consommables</span>
8553 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Stocké-Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Fourniture_consommable</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Combustible</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 60221. Combustibles</span>
8554 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Stocké-Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Fourniture_consommable</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Nettoyage</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 60222. Produits d’entretien</span>
8555 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Stocké-Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Fourniture_consommable</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Atelier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 60223. Fournitures d’atelier</span>
8556 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Stocké-Autre</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Fourniture_consommable</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Bureau</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 60225. Fournitures de bureau</span>
8557 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Variation_stocks</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 603. Variation des stocks (approvisionnements et marchandises)</span>
8558 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Etude,Prestation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 604. Achats d’études et prestations de services</span>
8559 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Matériel,Equipement,Travaux</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 605. Achats de matériels, équipements et travaux</span>
8560 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Non_stocké</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 606. Achats non stockés de matières et fournitures</span>
8561 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Non_stocké</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Non_stockable</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6061. Fournitures non stockables (eau, énergie..)</span>
8562 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Non_stocké</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Fourniture</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6063. Fournitures d’entretien et de petit équipement</span>
8563 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Non_stocké</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Fourniture</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Produit_entretien</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 60631. Produits d'entretien</span>
8564 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Non_stocké</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Fourniture</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Travaux</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 60632. Fournitures pour travaux</span>
8565 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Non_stocké</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Fourniture</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Equipement_atelier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 60633. Equipement d'atelier</span>
8566 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Non_stocké</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Fourniture</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Outillage</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 60634. Outillage</span>
8567 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Non_stocké</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Fourniture</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Mobilier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 60635. Mobilier</span>
8568 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Non_stocké</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Fourniture</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Matériel_informatique</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 60636. Matériel informatique</span>
8569 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Non_stocké</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Consommable_bureau</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6064. Fournitures de bureau</span>
8570 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Non_stocké</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre_Matière,Fourniture</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6068. Autres matières et fournitures</span>
8571 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Non_stocké</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre_Matière,Fourniture</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Atelier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 60681. Consommables, fournitures atelier et vélos</span>
8572 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Non_stocké</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre_Matière,Fourniture</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 60688. Autre matières et fournitures</span>
8573 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Marchandise</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 607. Achats de marchandises</span>
8574 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Achat</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Frais_accessoire</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 608. Frais accessoires d’achats</span>
8575 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Achat</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Remise</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 609. Rabais, remises et ristournes obtenus sur achats</span>
8576 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 61. Services extérieurs</span>
8577 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sous-traitance</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 611. Sous-traitance générale</span>
8578 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Location</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 613. Locations</span>
8579 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Location</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Immobilière</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6132. Locations immobilières</span>
8580 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Location</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Mobilière</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6135. Locations mobilières</span>
8581 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Charge_locative</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 614. Charges locatives et de copropriété</span>
8582 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Entretien_Réparation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 615. Entretien et réparations</span>
8583 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Entretien_Réparation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Bien_immobilier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6152. Sur biens immobiliers</span>
8584 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Entretien_Réparation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Bien_mobilier</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6155. Sur biens mobiliers</span>
8585 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Entretien_Réparation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Maintenance</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6156. Maintenance</span>
8586 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Assurance</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 616. Primes d’assurance</span>
8587 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Divers</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 618. Divers</span>
8588 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerPostingAccountOdd">Remise</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 619. Rabais, remises et ristournes obtenus sur services extérieurs</span>
8589 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 62. Autres services extérieurs</span>
8590 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Personnel_extérieur</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 621. Personnel extérieur à l’association</span>
8591 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Personnel_extérieur</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Mise_à_dispo</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6214. Personnel détaché ou prêté à l’association</span>
8592 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Intermédiaire</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 622. Rémunérations d’intermédiaires et honoraires</span>
8593 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Intermédiaire</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Honoraire</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6226. Honoraires</span>
8594 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Intermédiaire</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Frais_d'acte</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6227. Frais d’actes et de contentieux</span>
8595 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Intermédiaire</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Divers</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6228. Divers</span>
8596 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Communication</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 623. Publicité, publications, relations publiques</span>
8597 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Communication</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Annonce</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6231. Annonces et insertions</span>
8598 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Communication</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Foire,Expo</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6233. Foires et expositions</span>
8599 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Communication</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">Cadeau</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6234. Cadeaux</span>
8600 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Communication</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Catalogue,Imprimé</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6236. Catalogues et imprimés</span>
8601 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Communication</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Publication</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6237. Publications</span>
8602 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Communication</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Divers(pourboire,dons_courants)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6238. Divers (pourboires, dons courants..)</span>
8603 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Frais</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 625. Déplacements, missions et réceptions</span>
8604 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Frais</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Déplacement</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6251. Voyages et déplacements</span>
8605 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Frais</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Mission</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6256. Missions</span>
8606 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Frais</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Réception</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6257. Réceptions</span>
8607 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Poste,Télécommunication</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 626. Frais postaux et frais de télécommunications</span>
8608 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Poste,Télécommunication</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Internet</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6261. Liaisons informatiques ou spécialisées</span>
8609 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Poste,Télécommunication</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Timbre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6263. Affranchissements</span>
8610 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Service_bancaire</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 627. Services bancaires et assimilés</span>
8611 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Divers</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 628. Divers</span>
8612 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Divers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Cotisation_(activité_économique)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6281. Cotisations (liées à l’activité économique)</span>
8613 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_service</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Divers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Frais_recrutement_personnel</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6284. Frais de recrutement du personnel</span>
8614 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_service</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Remise</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 629. Rabais, remises et ristournes obtenus sur autres services extérieurs</span>
8615 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 63. Impôts, taxes et versements assimilés</span>
8616 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_rémunération_(État)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 631. Impôts, taxes et versements assimilés sur rémunérations (administration des impôts)</span>
8617 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_rémunération_(État)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Taxe_salaire</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6311. Taxe sur les salaires</span>
8618 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_rémunération_(État)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Formation_pro</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6313. Participation des employeurs à la formation professionnelle continue</span>
8619 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_rémunération_(État)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6318. Autres</span>
8620 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sur_rémunération_(Organisme)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 633. Impôts, taxes et versements assimilés sur rémunérations (autres organismes)</span>
8621 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Sur_rémunération_(Organisme)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Formation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6333. Participation des employeurs à la formation professionnelle continue</span>
8622 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Sur_rémunération_(Organisme)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6338. Autres</span>
8623 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_(État)</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 635. Autres impôts, taxes et versements assimilés (administration des impôts)</span>
8624 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Autre_(État)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Direct_(sauf_bénéfice)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6351. Impôts directs (sauf impôts sur les bénéfices)</span>
8625 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_(État)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Direct_(sauf_bénéfice)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Taxe_foncière</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 63512. Taxes foncières</span>
8626 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Autre_(État)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Direct_(sauf_bénéfice)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Autre_impôts_locaux</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 63513. Autres impôts locaux</span>
8627 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_(État)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Direct_(sauf_bénéfice)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 63518. Autres impôts directs</span>
8628 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Impôt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Autre_(État)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Indirect</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6353. Impôts indirects</span>
8629 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Impôt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre_(Organisme)</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 637. Autres impôts, taxes et versements assimilés (autres organismes)</span>
8630 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 64. Charges de personnel</span>
8631 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Rémunération</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 641. Rémunérations du personnel</span>
8632 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Rémunération</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Salaire</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6411. Salaires, appointements</span>
8633 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Rémunération</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Congés</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6412. Congés payés</span>
8634 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Rémunération</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Prime</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6413. Primes et gratifications</span>
8635 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Rémunération</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Indémnité</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6414. Indemnités et avantages divers</span>
8636 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Rémunération</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Remb_transport</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6416. Remboursement transport</span>
8637 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Cotisation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 645. Cotisations de sécurité sociale et de prévoyance</span>
8638 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Cotisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.URSSAF</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6451. Cotisations à l’URSSAF</span>
8639 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Cotisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Mutuelle</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6452. Cotisations aux mutuelles</span>
8640 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Cotisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">3</span><span class="hledgerPostingAccountOdd">.Retraite</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6453. Cotisations aux caisses de retraite</span>
8641 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Cotisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Pôle_emploi</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6454. Cotisations aux ASSEDIC</span>
8642 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Cotisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre_organisme</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6458. Cotisations aux autres organismes sociaux</span>
8643 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Cotisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre_organisme</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Prévoyance</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 64581. Caisse de Prévoyance</span>
8644 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Autre_cotisation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 647. Autres charges sociales</span>
8645 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Autre_cotisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Médecine_travail</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6475. Médecine de travail, pharmacie</span>
8646 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Personnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre_charge_personnel</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 648. Autres charges de personnel</span>
8647 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre_charge_personnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Cotisation_sur_rémunération_à_payer</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6488. Cotisations sur rémunérations à payer</span>
8648 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Gestion</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 65. Autres charges de gestion courantes</span>
8649 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Redevance_pour_concession,brevet,licence,procédé,droit</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 651. Redevances pour concessions, brevets, licences, procédés, logiciels, droits et valeurs similaires</span>
8650 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Gestion</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Subvention_versée</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 657. Subventions versées par l’organisme</span>
8651 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Divers</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 658. Charges diverses de gestion courante</span>
8652 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Gestion</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Divers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Cotisation_(vie_statutaire)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6586. Cotisations (liées à la vie statutaire)</span>
8653 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Financière</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 66. Charges financières</span>
8654 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Financière</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Intérêt</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 661. Charges d’intérêts</span>
8655 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Financière</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Intérêt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Emprunt,Dette</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6611. Intérêts des emprunts et dettes</span>
8656 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Financière</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Intérêt</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Bancaire</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6616. Intérêts bancaires</span>
8657 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Financière</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Intérêt</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre_dette</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6618. Intérêts des autres dettes</span>
8658 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Financière</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 668. Autres charges financières</span>
8659 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnelle</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 67. Charges exceptionnelles</span>
8660 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exceptionnelle</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_gestion</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 671. Charges exceptionnelles sur opérations de gestion</span>
8661 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnelle</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Pénalité_sur_marché</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6711. Pénalités sur marchés (et dédits payés sur achats et ventes)</span>
8662 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exceptionnelle</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_gestion</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Pénalité,Amende</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6712. Pénalités, amendes fiscales ou pénales</span>
8663 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnelle</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Don,Libéralité</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6713. Dons, libéralités</span>
8664 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exceptionnelle</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_gestion</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Rappel_impôt_(sauf_bénéfice)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6717. Rappels d’impôts (autres qu’impôts sur les bénéfices)</span>
8665 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnelle</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6718. Autres charges exceptionnelles sur opérations de gestion</span>
8666 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exceptionnelle</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 678. Autres charges exceptionnelles</span>
8667 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnelle</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Diverse</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6788. Charges exceptionnelles diverses</span>
8668 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 68. Dotations aux amortissements, dépréciations, provisions et engagements</span>
8669 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Dotation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Charge_d'exploitation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 681. Dotations aux amortissements et aux provisions - Charges d'exploitation</span>
8670 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Charge_d'exploitation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Amortissement_immobilisation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6811. Dotations aux amortissements des immobilisations incorporelles et corporelles</span>
8671 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Dotation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Charge_d'exploitation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Amortissement_immobilisation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Incorporelle</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 68111. Immobilisations incorporelles</span>
8672 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Charge_d'exploitation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Amortissement_immobilisation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Corporelle</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 68112. Immobilisations corporelles</span>
8673 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Dotation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Charge_d'exploitation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Provision_d'exploitation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6815. Dotations aux provisions pour risques et charges d’exploitation</span>
8674 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Charge_d'exploitation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Dépréciation_actif</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6817. Dotations aux provisions pour dépréciation des actifs circulants</span>
8675 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Dotation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Charge_d'exploitation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Dépréciation_actif</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Stocks,En-cours</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 68173. Stocks et en-cours</span>
8676 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Charge_d'exploitation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Dépréciation_actif</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Créance</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 68174. Créances</span>
8677 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Dotation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge_financière</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 686. Dotations aux amortissements et aux provisions - Charges financières</span>
8678 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge_financière</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Provision_financière</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6865. Dotations aux provisions pour risques et charges financiers</span>
8679 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Dotation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge_financière</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Dépréciation_élément_financier</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6866. Dotations aux provisions pour dépréciation des éléments financiers</span>
8680 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge_financière</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6868. Autres dotations</span>
8681 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Dotation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Charge_exceptionnelle</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 687. Dotations aux amortissements et aux provisions - Charges exceptionnelles</span>
8682 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Engagement_à_réaliser</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 689. Engagements à réaliser sur ressources affectées</span>
8683 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Dotation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Engagement_à_réaliser</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Sur_subvention_attribuée</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 6894. Engagements à réaliser sur subventions attribuées</span>
8684 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Dotation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Engagement_à_réaliser</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Sur_don_affecté</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 6895. Engagements à réaliser sur dons manuels affectés</span>
8685 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Impôt_sur_bénéfice</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 69. Impôts sur les bénéfices</span>
8686 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Impôt_sur_bénéfice</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Impôt_sur_société</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 695.Impôts sur les sociétés</span>
8687 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7. COMPTES DE PRODUITS</span>
8688 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Vente</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 70. ventes de produits finis, prestations de services, marchandises</span>
8689 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Vente</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Produit_fini</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 701. Ventes de produits finis</span>
8690 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Vente</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Produit_fini</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Vélo</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 7011. Vélos</span>
8691 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Vente</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Produit_fini</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7012. Autres</span>
8692 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Vente</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Prest'action</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 706. Prestations de services</span>
8693 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Vente</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Marchandise</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 707. Ventes de marchandises</span>
8694 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Vente</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Activité_annexe</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 708. Produits des activités annexes</span>
8695 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Vente</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Activité_annexe</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Location</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7083. Locations diverses</span>
8696 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Vente</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Activité_annexe</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Mise_à_dispo</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 7084. Mise à disposition de personnel facturée</span>
8697 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Vente</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Activité_annexe</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7088. Autres produits d’activités annexes</span>
8698 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Production_stockée</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 71. Production stockée (ou déstockage)</span>
8699 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Production_immobilisée</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 72. Production immobilisée</span>
8700 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Subvention_d'exploitation</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 74. Subventions d’exploitation</span>
8701 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Subvention_d'exploitation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.État</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 741. État</span>
8702 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Subvention_d'exploitation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Région</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 742. Région</span>
8703 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Subvention_d'exploitation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Département</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 743. Département</span>
8704 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Subvention_d'exploitation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Commune</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 744. Commune</span>
8705 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Subvention_d'exploitation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Collectivité_publique</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 745. Collectivités publiques</span>
8706 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Subvention_d'exploitation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Entreprise_publique</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 746. Entreprises publiques</span>
8707 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Subvention_d'exploitation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Organisme_privé</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 747. Entreprises et organismes privés</span>
8708 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Subvention_d'exploitation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 748. Autres</span>
8709 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_gestion_courante</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 75. Autres produits de gestion courante</span>
8710 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Autre_gestion_courante</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Collecte</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 754. Collectes</span>
8711 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_gestion_courante</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Cotisation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 756. Cotisations</span>
8712 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Autre_gestion_courante</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Divers</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 758. Produits divers de gestion courante</span>
8713 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Autre_gestion_courante</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Divers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Don</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7581. Dons manuels</span>
8714 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit.</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Financier</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 76. Produits financiers</span>
8715 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit.</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Financier</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Participation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 761. Produits des participations</span>
8716 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit.</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Financier</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Participation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Titre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 7611. Revenus des titres de participations</span>
8717 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit.</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Financier</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Autre_immobilisation_financière</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 762. Produits des autres immobilisations financières</span>
8718 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit.</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Financier</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Autre_immobilisation_financière</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Prêt</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 7624. Revenus des prêts</span>
8719 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit.</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Financier</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Autre_créance</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 763. Revenus des autres créances</span>
8720 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit.</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Financier</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 768. Autres produits financiers</span>
8721 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit.</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnel</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 77. Produits exceptionnels</span>
8722 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit.</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exceptionnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_gestion</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 771. Produits exceptionnels sur opérations de gestion</span>
8723 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit.</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">3</span><span class="hledgerPostingAccount">.Libéralité_reçue</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7713. Libéralités perçues</span>
8724 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit.</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exceptionnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Sur_gestion</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Subvention_d'équilibre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 7715. Subvention d’équilibre</span>
8725 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit.</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Sur_gestion</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Autre</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7718. Autres produits exceptionnels sur opérations de gestion</span>
8726 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit.</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exceptionnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Sur_exercice_antérieur</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 772. Produits sur exercices antérieurs (à reclasser)</span>
8727 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit.</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnel</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Quote-part_subvention_investissement_virée_au_résultat</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 777. Quote-part des subventions d’investissement virée au résultat de l’exercice</span>
8728 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit.</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Exceptionnel</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Autre</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 778. Autres produits exceptionnels</span>
8729 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Reprise</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 78. Reprises sur amortissements et provisions</span>
8730 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Reprise</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Amortissement,Provision_(exploitation)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 781. Reprises sur amortissements et provisions (à inscrire dans les produits d’exploitation)</span>
8731 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Reprise</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Amortissement,Provision_(exploitation)</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Amort_immo_incorp&amp;corpl</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7811. Reprises sur amortissements des immobilisations incorporelles et corporelles</span>
8732 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Reprise</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Amortissement,Provision_(exploitation)</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Provision_risque&amp;charge</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 7815. Reprises sur provisions pour risques et charges d’exploitation</span>
8733 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Reprise</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Provision_(financier)</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 786. Reprises sur provisions (à inscrire dans les produits financiers)</span>
8734 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Reprise</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Provision_(exceptionnel)</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 787. Reprises sur provisions (à inscrire dans les produits exceptionnels)</span>
8735 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Reprise</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Report_ressource_N-</span><span class="hledgerNumber">1</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 789. Report des ressources non utilisées des exercices antérieurs</span>
8736 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Reprise</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Report_ressource_N-</span><span class="hledgerNumberOdd">1</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Sur_subvention_attribuée</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 7894. Sur subventions attribués</span>
8737 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Reprise</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Report_ressource_N-</span><span class="hledgerNumber">1</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">5</span><span class="hledgerPostingAccount">.Sur_don_reçus</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 7895. Sur dons manuels reçus</span>
8738 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Transfert_charge</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 79. Transferts de charges</span>
8739 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Transfert_charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Exploitation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 791. Transferts de charges d’exploitation</span>
8740 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Produit</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">9</span><span class="hledgerPostingAccountOdd">.Transfert_charge</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Financière</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 796. Transferts de charges financières</span>
8741 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">9</span><span class="hledgerPostingAccount">.Transfert_charge</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Exceptionnelle</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 797. Transferts de charges exceptionnelles</span>
8742 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Spécial</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 8. COMPTES SPÉCIAUX</span>
8743 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Spécial</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Emploi_contribution_volontaire</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 86. Emplois des contributions volontaires en nature</span>
8744 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Spécial</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Emploi_contribution_volontaire</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Mise_à_dispo_bien</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 861. Mise à disposition gratuite de biens</span>
8745 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Spécial</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Emploi_contribution_volontaire</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">2</span><span class="hledgerPostingAccount">.Prestation</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 862. Prestations</span>
8746 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Spécial</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">6</span><span class="hledgerPostingAccountOdd">.Emploi_contribution_volontaire</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Bénévolat</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 864. Personnel bénévole</span>
8747 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Spécial</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Contribution_volontaire</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 87. Contributions volontaires en nature</span>
8748 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Spécial</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Contribution_volontaire</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">0</span><span class="hledgerPostingAccountOdd">.Bénévolat</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 870. Bénévolat</span>
8749 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">8</span><span class="hledgerPostingAccount">.Spécial</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Contribution_volontaire</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Prestation_en_nature</span><span class="hledgerPostingAmount"> </span><span class="hledgerNumber">0</span> <span class="hledgerTransactionComment">; 871. Prestations en nature</span>
8750 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">8</span><span class="hledgerPostingAccountOdd">.Spécial</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">7</span><span class="hledgerPostingAccountOdd">.Contribution_volontaire</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Don_en_nature</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">0</span> <span class="hledgerTransactionComment">; 875. Dons en nature</span>
8751
8752 <span class="Comment">; NOTE: pour le complètement, possibilité d’utiliser :</span>
8753 <span class="Comment">; vim&#0058; iskeyword+=.,38,39,40,41,44,45,58</span>
8754 </pre></div></div>
8755 </div></div>
8756 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8757 </div><div class="slide">
8758
8759 <div class="sect2">
8760 <h1 id="_comptabiliser_en_partie_double">5.2. Comptabiliser en partie double</h1>
8761 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="5.2. Comptabiliser en partie double";slidefootnotes="";/*]]>*/</script>
8762 <div class="sectionbody">
8763 <div class="tableblock">
8764 <table rules="all"
8765 width="100%"
8766 frame="border"
8767 cellspacing="0" cellpadding="4">
8768 <col width="50%" />
8769 <col width="50%" />
8770 <tbody class="incremental">
8771 <tr>
8772 <td align="left" valign="top"><div><div class="dlist"><dl class=" incremental">
8773 <dt class="hdlist1">
8774 Balance nulle de toute écriture
8775 </dt>
8776 <dd>
8777 <p>
8778 <code>hledger</code> n’accepte aucune écriture qui ne respecte
8779 pas cette contrainte de la tâche comptable :<br />
8780 </p>
8781 <div class="paragraph">
8782 <div class="incremental">
8783 <p>« <em>Pour toute écriture, tout ce qui est <em><span class="black">débité</span></em> (<code>+</code>) dans ses comptes<br />
8784 est forcément <em><span class="black">crédité</span></em> (<code>-</code>) dans ses autres comptes,<br />
8785 et réciproquement.</em> »</p>
8786 </div>
8787 </div>
8788 <ul class=" incremental">
8789 <li>
8790 <span>
8791 Formellement : <span class=" LaTeX ">$\forall e : \textcolor{#D2691E}{\textbf{\acute{e}criture}},
8792 \ \textbf{balance}\&gt;(\textbf{flux}\&gt;{e}) = 0$</span>
8793 </span>
8794 <div class="listingblock incremental">
8795 <div class="content"><pre>
8796 <span class="hledgerTransactionDate">2014/04/12</span>
8797 <span class="hledgerPostingAccount"> Compte</span><span class="hledgerAccountSeparator">:</span><span class="hledgerPostingAccount">Crédité</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">1234</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">56</span>
8798 <span class="hledgerPostingAccountOdd"> Compte</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerPostingAccountOdd">Débité</span> <span class="hledgerTransactionComment">; 1234,56 (montant inféré)</span>
8799 </pre></div></div>
8800 </li>
8801 </ul>
8802 </dd>
8803 </dl></div></div></td>
8804 <td align="left" valign="top"><div><div class="dlist"><dl class=" incremental">
8805 <dt class="hdlist1">
8806 Relation de Chasles par écritures d’<strong><span class="black">engagement</span></strong> et de <strong><span class="black">paiement</span></strong>
8807 </dt>
8808 <dd>
8809 <p>
8810 <code>hledger</code> laisse l’humain s’occuper de ce principe de la tâche comptable
8811 qui traduit la réalité temporelle des mouvements d’argent.
8812 </p>
8813 <div class="listingblock incremental">
8814 <div class="content"><pre>
8815 <span class="hledgerTransactionDate">01/01</span> <span class="hledgerTransactionDescription">Prestation </span><span class="hledgerTransactionComment">; Écriture d’engagement (pièce </span><span class="hledgerTag">comptable :</span><span class="hledgerTagValue"> facture)</span>
8816 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">7</span><span class="hledgerPostingAccount">.Produit</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">0</span><span class="hledgerPostingAccount">.Vente</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">6</span><span class="hledgerPostingAccount">.Prest'action</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">700</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span>
8817 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">4</span><span class="hledgerPostingAccountOdd">.Tiers</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Client</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Client</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Bien,Prestation</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">007</span><span class="hledgerPostingAccountOdd">.Mairie_du_XI</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">700</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">00</span>
8818 <span class="hledgerTransactionDate">01/14</span> <span class="hledgerTransactionDescription">Virement </span><span class="hledgerTransactionComment">; Écriture de paiement (pièce </span><span class="hledgerTag">comptable :</span><span class="hledgerTagValue"> relevé de compte)</span>
8819 <span class="hledgerPostingAccount"> </span><span class="hledgerNumber">4</span><span class="hledgerPostingAccount">.Tiers</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Client</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Client</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">1</span><span class="hledgerPostingAccount">.Bien,Prestation</span><span class="hledgerAccountSeparator">:</span><span class="hledgerNumber">007</span><span class="hledgerPostingAccount">.Mairie_du_XI</span><span class="hledgerPostingAmount"> -</span><span class="hledgerNumber">700</span><span class="hledgerPostingAmount">,</span><span class="hledgerNumber">00</span>
8820 <span class="hledgerPostingAccountOdd"> </span><span class="hledgerNumberOdd">5</span><span class="hledgerPostingAccountOdd">.Finance</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">1</span><span class="hledgerPostingAccountOdd">.Etablissement</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">2</span><span class="hledgerPostingAccountOdd">.Banque</span><span class="hledgerAccountSeparatorOdd">:</span><span class="hledgerNumberOdd">001</span><span class="hledgerPostingAccountOdd">.Courant</span><span class="hledgerPostingAmountOdd"> </span><span class="hledgerNumberOdd">700</span><span class="hledgerPostingAmountOdd">,</span><span class="hledgerNumberOdd">00</span>
8821 </pre></div></div>
8822 </dd>
8823 </dl></div></div></td>
8824 </tr>
8825 </tbody>
8826 </table>
8827 </div>
8828 </div></div>
8829 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8830 </div><div class="slide">
8831
8832 <div class="sect3">
8833 <h1 id="_soldes_nuls_souhaitables">5.2.1. Soldes nuls souhaitables</h1>
8834 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect3";nexttitle="5.2.1. Soldes nuls souhaitables";slidefootnotes="";/*]]>*/</script>
8835 <div class="sectionbody">
8836 <ul class=" incremental">
8837 <li>
8838 <span>
8839 Écritures des recettes
8840 </span>
8841 <ol class="arabic incremental">
8842 <li>
8843 <span>
8844 <span class=" LaTeX ">$\sum{\mbox{ventes}} + \sum{\mbox{dons}} = \sum{\mbox{espèces entrées en caisse}} + \sum{\mbox{Chèques à encaisser}}$</span><br />
8845 (Total des ventes + dons == Total d’espèces entrée en caisse + chèques à encaisser (5112))
8846 </span>
8847 </li>
8848 <li>
8849 <span>
8850 Total chèques à encaisser (5112) == Total remises de chèques à la banque (512) (+/- argent non déposé en banque)
8851 </span>
8852 <div class="admonitionblock incremental">
8853 <table><tr>
8854 <td class="icon">
8855 <img src="./icons/note.png" alt="Note" />
8856 </td>
8857 <td class="content">vérifier qu’il ne reste plus de chèque comptabilisés dans le tiroir</td>
8858 </tr></table>
8859 </div>
8860 </li>
8861 <li>
8862 <span>
8863 Solde du compte caisse (531) == Total entrées espèces en caisse - Total des sorties
8864 (remises d’espèces en banque - sorties d’achats - erreur de caisse)
8865 </span>
8866 </li>
8867 </ol>
8868 </li>
8869 <li>
8870 <span>
8871 Écritures de paye
8872 </span>
8873 <div class="paragraph">
8874 <div class="incremental">
8875 <p>TODO</p>
8876 </div>
8877 </div>
8878 </li>
8879 </ul>
8880 </div></div>
8881 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8882 </div><div class="slide">
8883
8884 <div class="sect1">
8885 <h1 id="_import_et_export_avec_code_hledger_code">6. Import et export avec <code>hledger</code></h1>
8886 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="6. Import et export avec <code>hledger</code>";slidefootnotes="";/*]]>*/</script>
8887 <div class="sectionbody">
8888 <ul class=" incremental">
8889 <li>
8890 <span>
8891 <a href="https://github.com/eval/total_recall">https://github.com/eval/total_recall</a>
8892 </span>
8893 </li>
8894 <li>
8895 <span>
8896 <a href="https://github.com/quentinsf/icsv2ledger">https://github.com/quentinsf/icsv2ledger</a>
8897 </span>
8898 </li>
8899 </ul>
8900 </div></div>
8901 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8902 </div><div class="slide">
8903
8904 <div class="sect2">
8905 <h1 id="_feuilles_de_calculs_des_documents_comptables">6.1. Feuilles de calculs des documents comptables</h1>
8906 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="6.1. Feuilles de calculs des documents comptables";slidefootnotes="";/*]]>*/</script>
8907 <div class="sectionbody">
8908 </div></div>
8909 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8910
8911 <div class="sect3">
8912 <h1 id="_bilan_financier">6.1.1. Bilan financier</h1>
8913 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect3";nexttitle="6.1.1. Bilan financier";slidefootnotes="";/*]]>*/</script>
8914 <div class="sectionbody">
8915 <div class="paragraph">
8916 <div class="incremental">
8917 <p>TODO</p>
8918 </div>
8919 </div>
8920 </div></div>
8921 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8922
8923 <div class="sect3">
8924 <h1 id="_comptes_de_résultats">6.1.2. Comptes de résultats</h1>
8925 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect3";nexttitle="6.1.2. Comptes de résultats";slidefootnotes="";/*]]>*/</script>
8926 <div class="sectionbody">
8927 <div class="paragraph">
8928 <div class="incremental">
8929 <p>TODO</p>
8930 </div>
8931 </div>
8932 </div></div>
8933 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8934 </div><div class="slide">
8935
8936 <div class="sect1">
8937 <h1 id="_installer_code_hledger_code">7. Installer <code>hledger</code></h1>
8938 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="7. Installer <code>hledger</code>";slidefootnotes="";/*]]>*/</script>
8939 <div class="sectionbody">
8940 <ul class=" incremental">
8941 <li>
8942 <span>
8943 <a href="http://hledger.org/installing">http://hledger.org/installing</a>
8944 </span>
8945 </li>
8946 </ul>
8947 <div class="listingblock incremental">
8948 <div class="title">Debian/jessie</div>
8949 <div class="content"><pre>
8950 % sudo apt-get install hledger hledger-web
8951 </pre></div></div>
8952 </div></div>
8953 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8954
8955 <div class="sect2">
8956 <h1 id="_via_code_cabal_code">7.1. Via <code>cabal</code></h1>
8957 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="7.1. Via <code>cabal</code>";slidefootnotes="";/*]]>*/</script>
8958 <div class="sectionbody">
8959 <ul class=" incremental">
8960 <li>
8961 <span>
8962 <a href="http://www.haskell.org/cabal/">http://www.haskell.org/cabal/</a>
8963 </span>
8964 </li>
8965 </ul>
8966 <div class="listingblock incremental">
8967 <div class="title">Debian/wheezy</div>
8968 <div class="content"><pre>
8969 % <span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">'</span><span class="Constant">PATH=&quot;$HOME/.cabal/bin:$PATH&quot;</span><span class="Statement">'</span><span class="Constant"> </span><span class="Statement">&gt;&gt;</span>~/.profile
8970 <span class="Comment"># NOTE: rajoute dans le chemins des exécutables</span>
8971 <span class="Comment"># les exécutables installés par cabal</span>
8972 % <span class="Statement">exit</span> <span class="Comment"># NOTE: recharge ~/.profile</span>
8973
8974 % sudo apt-get install ghc cabal-install <span class="Statement">\</span>
8975 libncurses5-dev libtinfo-dev zlib1g-dev
8976 % cabal update
8977 % cabal install cabal <span class="Comment"># NOTE: met à jour cabal</span>
8978 % cabal install happy <span class="Comment"># NOTE: anticipe une dépendance exécutable</span>
8979 % cabal install hledger
8980 % cabal install alex <span class="Comment"># NOTE: anticipe une dépendance exécutable</span>
8981 % cabal install warp-2.0.3.4 hledger-web
8982 <span class="Comment"># NOTE: aide cabal à sélectionner un warp qui fonctionne</span>
8983 </pre></div></div>
8984 <div class="listingblock incremental">
8985 <div class="title">Mise-à-jour</div>
8986 <div class="content"><pre>
8987 % cabal install <span class="Special">--reinstall</span> hledger hledger-web
8988 </pre></div></div>
8989 </div></div>
8990 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
8991
8992 <div class="sect3">
8993 <h1 id="_version_de_développement">7.1.1. Version de développement</h1>
8994 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect3";nexttitle="7.1.1. Version de développement";slidefootnotes="";/*]]>*/</script>
8995 <div class="sectionbody">
8996 <div class="listingblock incremental">
8997 <div class="content"><pre>
8998 % git clone <a href="http://github.com/simonmichael/hledger.git">http://github.com/simonmichael/hledger.git</a> ~/src/hledger
8999 % <span class="Statement">cd</span> ~/src/hledger
9000 % cabal install <span class="Special">--reinstall</span> <span class="Special">--force-reinstalls</span> <span class="Statement">\</span>
9001 ./hledger-lib ./hledger ./hledger-web
9002 </pre></div></div>
9003 </div></div>
9004 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
9005 </div><div class="slide">
9006
9007 <div class="sect2">
9008 <h1 id="_utiliser_un_éditeur_de_texte_structuré_code_vim_code">7.2. Utiliser un éditeur de texte structuré (<code>vim</code>)</h1>
9009 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect2";nexttitle="7.2. Utiliser un éditeur de texte structuré (<code>vim</code>)";slidefootnotes="";/*]]>*/</script>
9010 <div class="sectionbody">
9011 <div class="dlist"><dl class=" incremental">
9012 <dt class="hdlist1">
9013 Coloration syntaxique sur mesure
9014 </dt>
9015 <dd>
9016 <ul class=" incremental">
9017 <li>
9018 <span>
9019 <code>hledger.vim</code>
9020 </span>
9021 <div class="listingblock incremental">
9022 <div class="title">~/.vimrc</div>
9023 <div class="content"><pre>
9024 <span class="Statement">autocmd</span> <span class="Type">BufNewFile</span>,<span class="Type">BufRead</span> *.hledger,*.ledger <span class="Statement">setfiletype</span> hledger
9025 </pre></div></div>
9026 </li>
9027 </ul>
9028 </dd>
9029 <dt class="hdlist1">
9030 Complètement automatique des comptes (<code>&lt;Tab&gt;</code>)
9031 </dt>
9032 <dd>
9033 <ul class=" incremental">
9034 <li>
9035 <span>
9036 <a href="https://github.com/Shougo/neocomplete.vim">https://github.com/Shougo/neocomplete.vim</a>
9037 </span>
9038 </li>
9039 <li>
9040 <span>
9041 <a href="https://github.com/Shougo/neocomplcache.vim">https://github.com/Shougo/neocomplcache.vim</a>
9042 </span>
9043 <div class="admonitionblock incremental">
9044 <table><tr>
9045 <td class="icon">
9046 <img src="./icons/note.png" alt="Note" />
9047 </td>
9048 <td class="content">Besoin de rajouter <code>vim/autoload/neocomplcache/filters/sorter_bytes.vim</code>.</td>
9049 </tr></table>
9050 </div>
9051 <div class="listingblock incremental">
9052 <div class="title">~/.vimrc</div>
9053 <div class="content"><pre>
9054 <span class="Statement">autocmd</span> <span class="Type">Filetype</span> hledger <span class="Statement">set</span> <span class="PreProc">iskeyword</span>+=.<span class="Statement">,</span>38<span class="Statement">,</span>39<span class="Statement">,</span>40<span class="Statement">,</span>41<span class="Statement">,</span>44<span class="Statement">,</span>45<span class="Statement">,</span>58 &quot;
9055 </pre></div></div>
9056 </li>
9057 </ul>
9058 </dd>
9059 <dt class="hdlist1">
9060 Alignement automatique des montants
9061 </dt>
9062 <dd>
9063 <ul class=" incremental">
9064 <li>
9065 <span>
9066 <a href="https://github.com/junegunn/vim-easy-align">https://github.com/junegunn/vim-easy-align</a>
9067 </span>
9068 <div class="listingblock incremental">
9069 <div class="title">~/.vimrc</div>
9070 <div class="content"><pre>
9071 <span class="Statement">let</span> <span class="Identifier">g</span>:easy_align_ignore_groups <span class="Statement">=</span> [<span class="Constant">'Comment'</span>, <span class="Constant">'String'</span>, <span class="Constant">'hledgerTransaction'</span>]
9072 </pre></div></div>
9073 </li>
9074 </ul>
9075 </dd>
9076 </dl></div>
9077 </div></div>
9078 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
9079
9080 <div class="sect3">
9081 <h1 id="_suivre_les_modifications_à_plusieurs_et_ou_à_distance_code_git_code">7.2.1. Suivre les modifications à plusieurs et/ou à distance (<code>git</code>)</h1>
9082 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect3";nexttitle="7.2.1. Suivre les modifications à plusieurs et/ou à distance (<code>git</code>)";slidefootnotes="";/*]]>*/</script>
9083 <div class="sectionbody">
9084 <div class="paragraph">
9085 <div class="incremental">
9086 <p>TODO</p>
9087 </div>
9088 </div>
9089 </div></div>
9090 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
9091 </div><div class="slide">
9092
9093 <div class="sect1">
9094 <h1 id="_hledger_web">8. hledger-web</h1>
9095 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="8. hledger-web";slidefootnotes="";/*]]>*/</script>
9096 <div class="sectionbody">
9097 <ul class=" incremental">
9098 <li>
9099 <span>
9100 <a href="http://localhost:5000">http://localhost:5000</a>
9101 </span>
9102 <div class="paragraph">
9103 <div class="incremental">
9104 <p>TODO</p>
9105 </div>
9106 </div>
9107 </li>
9108 </ul>
9109 </div></div>
9110 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
9111 </div><div class="slide">
9112
9113 <div class="sect1">
9114 <h1 id="_scripter_code_hledger_code">9. Scripter <code>hledger</code></h1>
9115 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="9. Scripter <code>hledger</code>";slidefootnotes="";/*]]>*/</script>
9116 <div class="sectionbody">
9117 <div class="listingblock incremental">
9118 <div class="title">Installer un script <code>hledger</code></div>
9119 <div class="content"><pre>
9120 % <span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">'</span><span class="Constant">PATH=&quot;$HOME/src/hledger/extra:$PATH&quot;</span><span class="Statement">'</span><span class="Constant"> </span><span class="Statement">&gt;&gt;</span>~/.profile
9121 % <span class="Statement">exit</span> <span class="Comment"># NOTE: recharge ~/.profile</span>
9122 % ghc ~/src/hledger/extra/hledger-SCRIPT.hs
9123 </pre></div></div>
9124 <div class="title">Idées de scripts</div><ul class=" incremental">
9125 <li>
9126 <span>
9127 Vérifier l’ordre des dates.
9128 </span>
9129 </li>
9130 <li>
9131 <span>
9132 Chercher des écritures doublonnes.
9133 </span>
9134 </li>
9135 </ul>
9136 </div></div>
9137 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
9138 </div><div class="slide">
9139
9140 <div class="sect1">
9141 <h1 id="_merci">10. Merci</h1>
9142 <script type="text/javascript">/*<![CDATA[*/subslide=1;nextclass="sect1";nexttitle="10. Merci";slidefootnotes="";/*]]>*/</script>
9143 <div class="sectionbody">
9144 <div class="imageblock incremental">
9145 <div class="content">
9146 <img src="data/Luca_Pacioli_(Gemaelde).jpeg" alt="data/Luca_Pacioli_(Gemaelde).jpeg" />
9147 </div>
9148 <div class="title">Figure 1. Luca Pacioli</div>
9149 </div>
9150 <div class="background hledgersplash" style="position: absolute; left: 50%; top: 10%;">
9151 <div class="imageblock incremental">
9152 <div class="content">
9153 <img src="data/hledger.splash.png" alt="hledgersplash" />
9154 </div>
9155 </div>
9156 </div>
9157 <div id="footer" style="position: absolute; left: 5%; top: 80%; width: 90%;">
9158 <div id="footer-text">
9159 Version 61f2b02<br />
9160 Dernière mise à jour 2014-07-30 07:52:47 CEST
9161 </div>
9162 </div>
9163 </div></div>
9164 <script type="text/javascript">/*<![CDATA[*/if (slidefootnotes != ''){document.write("<hr/><p>"+slidefootnotes+"</p>");}/*]]>*/</script>
9165 </div>
9166 <script type="text/javascript">
9167 /*<![CDATA[*/
9168 // move the div class="background" elements immediately
9169 // as document.body children
9170 var re = new RegExp("(^| )background\W*");
9171 var divs = document.body.getElementsByTagName("div");
9172 for (var i = (divs.length - 1); i >= 0 ; --i)
9173 {
9174 div = divs.item(i);
9175 if ( re.test(div.getAttribute("class")) )
9176 {
9177 div2 = div.cloneNode(true);
9178 div.parentNode.removeChild(div);
9179 document.body.appendChild(div2);
9180 }
9181 }
9182 /*]]>*/
9183 </script>
9184 </body>
9185 </html>