From 40640698f732bd4177769642a93b0f956a3f62fc Mon Sep 17 00:00:00 2001 From: Aubin DORIVAL Date: Fri, 20 Dec 2024 16:58:27 +0100 Subject: [PATCH] latex --- rapport/Doxfile | 2 +- rapport/{rapport => }/html/annotated.html | 0 rapport/{rapport => }/html/bc_s.png | 0 rapport/{rapport => }/html/bc_sd.png | 0 rapport/{rapport => }/html/classes.html | 0 rapport/{rapport => }/html/clipboard.js | 0 rapport/{rapport => }/html/closed-folder.png | 0 rapport/{rapport => }/html/closed.png | 0 rapport/{rapport => }/html/cookie.js | 0 .../dir_6549bedf82156dc06df95cefb015444e.html | 0 .../dir_d44c64559bbebec7f509842c48db8b23.html | 0 rapport/{rapport => }/html/display_8c.html | 0 .../{rapport => }/html/display_8c__incl.map | 0 .../{rapport => }/html/display_8c__incl.md5 | 0 .../{rapport => }/html/display_8c__incl.png | 0 ...f451a9d0fd4d2325d9f03d7cda4a189_cgraph.map | 0 ...f451a9d0fd4d2325d9f03d7cda4a189_cgraph.md5 | 0 ...f451a9d0fd4d2325d9f03d7cda4a189_cgraph.png | 0 ...a2b2da875550c614a407ec735ff9d9_icgraph.map | 0 ...a2b2da875550c614a407ec735ff9d9_icgraph.md5 | 0 ...a2b2da875550c614a407ec735ff9d9_icgraph.png | 0 .../{rapport => }/html/display_8h_source.html | 0 rapport/{rapport => }/html/doc.svg | 0 rapport/{rapport => }/html/docd.svg | 0 rapport/{rapport => }/html/document.png | 0 rapport/{rapport => }/html/doxygen-style.css | 0 rapport/{rapport => }/html/doxygen.css | 0 rapport/{rapport => }/html/doxygen.svg | 0 rapport/{rapport => }/html/doxygen_crawl.html | 0 rapport/{rapport => }/html/dynsections.js | 0 rapport/{rapport => }/html/files.html | 0 rapport/{rapport => }/html/folderclosed.svg | 0 rapport/{rapport => }/html/folderclosedd.svg | 0 rapport/{rapport => }/html/folderopen.svg | 0 rapport/{rapport => }/html/folderopend.svg | 0 rapport/{rapport => }/html/function_8c.html | 0 .../{rapport => }/html/function_8c__incl.map | 0 .../{rapport => }/html/function_8c__incl.md5 | 0 .../{rapport => }/html/function_8c__incl.png | 0 ...387ddb7cde4f9d45198b0c131a60878_cgraph.map | 0 ...387ddb7cde4f9d45198b0c131a60878_cgraph.md5 | 0 ...387ddb7cde4f9d45198b0c131a60878_cgraph.png | 0 ...c9ba7a24383f1b20dcedfcb570aab5_icgraph.map | 0 ...c9ba7a24383f1b20dcedfcb570aab5_icgraph.md5 | 0 ...c9ba7a24383f1b20dcedfcb570aab5_icgraph.png | 0 ...10e69716d92eadf2ed0b3942cb9d4d_icgraph.map | 0 ...10e69716d92eadf2ed0b3942cb9d4d_icgraph.md5 | 0 ...10e69716d92eadf2ed0b3942cb9d4d_icgraph.png | 0 ...8903fbb7302d98ef0f3e2e6b35b99a_icgraph.map | 0 ...8903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 | 0 ...8903fbb7302d98ef0f3e2e6b35b99a_icgraph.png | 0 ...df2bc0c692d3397837706a6852ac36_icgraph.map | 0 ...df2bc0c692d3397837706a6852ac36_icgraph.md5 | 0 ...df2bc0c692d3397837706a6852ac36_icgraph.png | 0 ...155bb183b0c26d19758d8d065baf14f_cgraph.map | 0 ...155bb183b0c26d19758d8d065baf14f_cgraph.md5 | 0 ...155bb183b0c26d19758d8d065baf14f_cgraph.png | 0 ...55bb183b0c26d19758d8d065baf14f_icgraph.map | 0 ...55bb183b0c26d19758d8d065baf14f_icgraph.md5 | 0 ...55bb183b0c26d19758d8d065baf14f_icgraph.png | 0 ...51249b2f7941ca06e6a614e071dd444_cgraph.map | 0 ...51249b2f7941ca06e6a614e071dd444_cgraph.md5 | 0 ...51249b2f7941ca06e6a614e071dd444_cgraph.png | 0 ...1249b2f7941ca06e6a614e071dd444_icgraph.map | 0 ...1249b2f7941ca06e6a614e071dd444_icgraph.md5 | 0 ...1249b2f7941ca06e6a614e071dd444_icgraph.png | 0 ...93ca31d854d91eedf3babda7511407d_cgraph.map | 0 ...93ca31d854d91eedf3babda7511407d_cgraph.md5 | 0 ...93ca31d854d91eedf3babda7511407d_cgraph.png | 0 ...3ca31d854d91eedf3babda7511407d_icgraph.map | 0 ...3ca31d854d91eedf3babda7511407d_icgraph.md5 | 0 ...3ca31d854d91eedf3babda7511407d_icgraph.png | 0 .../html/function_8h_source.html | 0 rapport/{rapport => }/html/globals.html | 0 rapport/{rapport => }/html/globals_func.html | 0 rapport/{rapport => }/html/graph_legend.html | 0 rapport/{rapport => }/html/graph_legend.md5 | 0 rapport/{rapport => }/html/graph_legend.png | 0 rapport/{rapport => }/html/index.html | 0 rapport/{rapport => }/html/jquery.js | 0 rapport/{rapport => }/html/main_8c.html | 0 rapport/{rapport => }/html/main_8c__incl.map | 0 rapport/{rapport => }/html/main_8c__incl.md5 | 0 rapport/{rapport => }/html/main_8c__incl.png | 0 rapport/{rapport => }/html/menu.js | 0 rapport/{rapport => }/html/menudata.js | 0 rapport/{rapport => }/html/minus.svg | 0 rapport/{rapport => }/html/minusd.svg | 0 rapport/{rapport => }/html/nav_f.png | 0 rapport/{rapport => }/html/nav_fd.png | 0 rapport/{rapport => }/html/nav_g.png | 0 rapport/{rapport => }/html/nav_h.png | 0 rapport/{rapport => }/html/nav_hd.png | 0 rapport/{rapport => }/html/navtree.css | 0 rapport/{rapport => }/html/off_sync.png | 0 rapport/{rapport => }/html/on_sync.png | 0 rapport/{rapport => }/html/open.png | 0 rapport/{rapport => }/html/opened-folder.png | 0 rapport/{rapport => }/html/plus.svg | 0 rapport/{rapport => }/html/plusd.svg | 0 rapport/{rapport => }/html/read_8c.html | 0 rapport/{rapport => }/html/read_8c__incl.map | 0 rapport/{rapport => }/html/read_8c__incl.md5 | 0 rapport/{rapport => }/html/read_8c__incl.png | 0 .../{rapport => }/html/read_8h_source.html | 0 rapport/{rapport => }/html/resize.js | 0 rapport/{rapport => }/html/search/all_0.js | 0 rapport/{rapport => }/html/search/all_1.js | 0 rapport/{rapport => }/html/search/all_2.js | 0 rapport/{rapport => }/html/search/all_3.js | 0 rapport/{rapport => }/html/search/all_4.js | 0 rapport/{rapport => }/html/search/all_5.js | 0 rapport/{rapport => }/html/search/all_6.js | 0 rapport/{rapport => }/html/search/all_7.js | 0 rapport/{rapport => }/html/search/all_8.js | 0 rapport/{rapport => }/html/search/all_9.js | 0 rapport/{rapport => }/html/search/all_a.js | 0 rapport/{rapport => }/html/search/all_b.js | 0 rapport/{rapport => }/html/search/all_c.js | 0 rapport/{rapport => }/html/search/all_d.js | 0 .../{rapport => }/html/search/classes_0.js | 0 .../{rapport => }/html/search/classes_1.js | 0 .../{rapport => }/html/search/classes_2.js | 0 rapport/{rapport => }/html/search/close.svg | 0 rapport/{rapport => }/html/search/files_0.js | 0 rapport/{rapport => }/html/search/files_1.js | 0 rapport/{rapport => }/html/search/files_2.js | 0 rapport/{rapport => }/html/search/files_3.js | 0 .../{rapport => }/html/search/functions_0.js | 0 .../{rapport => }/html/search/functions_1.js | 0 .../{rapport => }/html/search/functions_2.js | 0 .../{rapport => }/html/search/functions_3.js | 0 .../{rapport => }/html/search/functions_4.js | 0 .../{rapport => }/html/search/functions_5.js | 0 .../{rapport => }/html/search/functions_6.js | 0 .../{rapport => }/html/search/functions_7.js | 0 .../{rapport => }/html/search/functions_8.js | 0 .../{rapport => }/html/search/functions_9.js | 0 .../{rapport => }/html/search/functions_a.js | 0 rapport/{rapport => }/html/search/mag.svg | 0 rapport/{rapport => }/html/search/mag_d.svg | 0 rapport/{rapport => }/html/search/mag_sel.svg | 0 .../{rapport => }/html/search/mag_seld.svg | 0 rapport/{rapport => }/html/search/search.css | 0 rapport/{rapport => }/html/search/search.js | 0 .../{rapport => }/html/search/searchdata.js | 0 rapport/{rapport => }/html/splitbar.png | 0 rapport/{rapport => }/html/splitbard.png | 0 rapport/{rapport => }/html/structScore.html | 0 rapport/{rapport => }/html/structVecteur.html | 0 .../html/structessential__sdl.html | 0 rapport/{rapport => }/html/sync_off.png | 0 rapport/{rapport => }/html/sync_on.png | 0 rapport/{rapport => }/html/tab_a.png | 0 rapport/{rapport => }/html/tab_ad.png | 0 rapport/{rapport => }/html/tab_b.png | 0 rapport/{rapport => }/html/tab_bd.png | 0 rapport/{rapport => }/html/tab_h.png | 0 rapport/{rapport => }/html/tab_hd.png | 0 rapport/{rapport => }/html/tab_s.png | 0 rapport/{rapport => }/html/tab_sd.png | 0 rapport/{rapport => }/html/tabs.css | 0 rapport/{rapport => }/latex/annotated.tex | 0 rapport/{rapport => }/latex/display_8c.tex | 9 +- .../{rapport => }/latex/display_8c__incl.md5 | 0 .../{rapport => }/latex/display_8c__incl.pdf | Bin 9995 -> 9995 bytes ...f451a9d0fd4d2325d9f03d7cda4a189_cgraph.md5 | 0 ...f451a9d0fd4d2325d9f03d7cda4a189_cgraph.pdf | Bin 7595 -> 7596 bytes ...a2b2da875550c614a407ec735ff9d9_icgraph.md5 | 0 ...a2b2da875550c614a407ec735ff9d9_icgraph.pdf | Bin 7596 -> 7596 bytes .../{rapport => }/latex/display_8h_source.tex | 0 rapport/{rapport => }/latex/files.tex | 0 rapport/{rapport => }/latex/function_8c.tex | 36 +- .../{rapport => }/latex/function_8c__incl.md5 | 0 .../{rapport => }/latex/function_8c__incl.pdf | Bin 9893 -> 9893 bytes ...387ddb7cde4f9d45198b0c131a60878_cgraph.md5 | 0 ...387ddb7cde4f9d45198b0c131a60878_cgraph.pdf | Bin 9364 -> 9364 bytes ...c9ba7a24383f1b20dcedfcb570aab5_icgraph.md5 | 0 ...c9ba7a24383f1b20dcedfcb570aab5_icgraph.pdf | Bin 6895 -> 6895 bytes ...10e69716d92eadf2ed0b3942cb9d4d_icgraph.md5 | 0 ...10e69716d92eadf2ed0b3942cb9d4d_icgraph.pdf | Bin 8197 -> 8197 bytes ...8903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 | 0 ...8903fbb7302d98ef0f3e2e6b35b99a_icgraph.pdf | Bin 6912 -> 6912 bytes ...df2bc0c692d3397837706a6852ac36_icgraph.md5 | 0 ...df2bc0c692d3397837706a6852ac36_icgraph.pdf | Bin 7287 -> 7288 bytes ...155bb183b0c26d19758d8d065baf14f_cgraph.md5 | 0 ...155bb183b0c26d19758d8d065baf14f_cgraph.pdf | Bin 7685 -> 7685 bytes ...55bb183b0c26d19758d8d065baf14f_icgraph.md5 | 0 ...55bb183b0c26d19758d8d065baf14f_icgraph.pdf | Bin 6876 -> 6877 bytes ...51249b2f7941ca06e6a614e071dd444_cgraph.md5 | 0 ...51249b2f7941ca06e6a614e071dd444_cgraph.pdf | Bin 7474 -> 7476 bytes ...1249b2f7941ca06e6a614e071dd444_icgraph.md5 | 0 ...1249b2f7941ca06e6a614e071dd444_icgraph.pdf | Bin 7490 -> 7494 bytes ...93ca31d854d91eedf3babda7511407d_cgraph.md5 | 0 ...93ca31d854d91eedf3babda7511407d_cgraph.pdf | Bin 7572 -> 7572 bytes ...3ca31d854d91eedf3babda7511407d_icgraph.md5 | 0 ...3ca31d854d91eedf3babda7511407d_icgraph.pdf | Bin 6763 -> 6764 bytes .../latex/function_8h_source.tex | 0 rapport/{rapport => }/latex/main_8c.tex | 0 rapport/{rapport => }/latex/main_8c__incl.md5 | 0 rapport/{rapport => }/latex/main_8c__incl.pdf | Bin 9709 -> 9708 bytes rapport/{rapport => }/latex/read_8c.tex | 0 rapport/{rapport => }/latex/read_8c__incl.md5 | 0 rapport/{rapport => }/latex/read_8c__incl.pdf | Bin 8549 -> 8549 bytes .../{rapport => }/latex/read_8h_source.tex | 0 rapport/latex/refman.aux | 152 + rapport/latex/refman.idx | 44 + rapport/latex/refman.ilg | 6 + rapport/latex/refman.ind | 101 + rapport/latex/refman.log | 1094 +++++++ rapport/latex/refman.pdf | Bin 0 -> 239124 bytes rapport/latex/refman.tex | 17 +- rapport/latex/refman.toc | 42 + rapport/{rapport => }/latex/structScore.tex | 0 rapport/{rapport => }/latex/structVecteur.tex | 0 .../latex/structessential__sdl.tex | 0 .../dir_c29cd72601f3278b0ca6974116605d87.html | 102 - ...451a9d0fd4d2325d9f03d7cda4a189_icgraph.map | 5 - ...451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 | 1 - ...451a9d0fd4d2325d9f03d7cda4a189_icgraph.png | 3 - ...c0265ee608800f8daba2540c65c5b0_icgraph.map | 5 - ...c0265ee608800f8daba2540c65c5b0_icgraph.md5 | 1 - ...c0265ee608800f8daba2540c65c5b0_icgraph.png | 3 - ...me_2dukantic_2floppy_2sokoban_2README.html | 130 - .../html/md_doxygen__theme_2README.html | 130 - rapport/rapport/html/pages.html | 104 - rapport/rapport/html/search/all_10.js | 9 - rapport/rapport/html/search/all_11.js | 4 - rapport/rapport/html/search/all_12.js | 4 - rapport/rapport/html/search/all_e.js | 4 - rapport/rapport/html/search/all_f.js | 9 - rapport/rapport/html/search/pages_0.js | 6 - rapport/rapport/html/search/pages_1.js | 4 - rapport/rapport/html/search/pages_2.js | 4 - rapport/rapport/html/search/pages_3.js | 5 - rapport/rapport/latex/Makefile | 42 - ...451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 | 1 - ...451a9d0fd4d2325d9f03d7cda4a189_icgraph.pdf | Bin 7378 -> 0 bytes ...c0265ee608800f8daba2540c65c5b0_icgraph.md5 | 1 - ...c0265ee608800f8daba2540c65c5b0_icgraph.pdf | Bin 7515 -> 0 bytes rapport/rapport/latex/doxygen.sty | 713 ----- rapport/rapport/latex/etoc_doxygen.sty | 2178 -------------- rapport/rapport/latex/longtable_doxygen.sty | 459 --- ...ome_2dukantic_2floppy_2sokoban_2README.tex | 32 - .../latex/md_doxygen__theme_2README.tex | 25 - rapport/rapport/latex/refman.tex | 232 -- rapport/rapport/latex/tabu_doxygen.sty | 2557 ----------------- 247 files changed, 1486 insertions(+), 6790 deletions(-) rename rapport/{rapport => }/html/annotated.html (100%) rename rapport/{rapport => }/html/bc_s.png (100%) rename rapport/{rapport => }/html/bc_sd.png (100%) rename rapport/{rapport => }/html/classes.html (100%) rename rapport/{rapport => }/html/clipboard.js (100%) rename rapport/{rapport => }/html/closed-folder.png (100%) rename rapport/{rapport => }/html/closed.png (100%) rename rapport/{rapport => }/html/cookie.js (100%) rename rapport/{rapport => }/html/dir_6549bedf82156dc06df95cefb015444e.html (100%) rename rapport/{rapport => }/html/dir_d44c64559bbebec7f509842c48db8b23.html (100%) rename rapport/{rapport => }/html/display_8c.html (100%) rename rapport/{rapport => }/html/display_8c__incl.map (100%) rename rapport/{rapport => }/html/display_8c__incl.md5 (100%) rename rapport/{rapport => }/html/display_8c__incl.png (100%) rename rapport/{rapport => }/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.map (100%) rename rapport/{rapport => }/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.md5 (100%) rename rapport/{rapport => }/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.png (100%) rename rapport/{rapport => }/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.map (100%) rename rapport/{rapport => }/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 (100%) rename rapport/{rapport => }/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.png (100%) rename rapport/{rapport => }/html/display_8h_source.html (100%) rename rapport/{rapport => }/html/doc.svg (100%) rename rapport/{rapport => }/html/docd.svg (100%) rename rapport/{rapport => }/html/document.png (100%) rename rapport/{rapport => }/html/doxygen-style.css (100%) rename rapport/{rapport => }/html/doxygen.css (100%) rename rapport/{rapport => }/html/doxygen.svg (100%) rename rapport/{rapport => }/html/doxygen_crawl.html (100%) rename rapport/{rapport => }/html/dynsections.js (100%) rename rapport/{rapport => }/html/files.html (100%) rename rapport/{rapport => }/html/folderclosed.svg (100%) rename rapport/{rapport => }/html/folderclosedd.svg (100%) rename rapport/{rapport => }/html/folderopen.svg (100%) rename rapport/{rapport => }/html/folderopend.svg (100%) rename rapport/{rapport => }/html/function_8c.html (100%) rename rapport/{rapport => }/html/function_8c__incl.map (100%) rename rapport/{rapport => }/html/function_8c__incl.md5 (100%) rename rapport/{rapport => }/html/function_8c__incl.png (100%) rename rapport/{rapport => }/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.map (100%) rename rapport/{rapport => }/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.png (100%) rename rapport/{rapport => }/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.map (100%) rename rapport/{rapport => }/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.png (100%) rename rapport/{rapport => }/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.map (100%) rename rapport/{rapport => }/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.png (100%) rename rapport/{rapport => }/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.map (100%) rename rapport/{rapport => }/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.png (100%) rename rapport/{rapport => }/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.map (100%) rename rapport/{rapport => }/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.png (100%) rename rapport/{rapport => }/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.map (100%) rename rapport/{rapport => }/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.png (100%) rename rapport/{rapport => }/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.map (100%) rename rapport/{rapport => }/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.png (100%) rename rapport/{rapport => }/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.map (100%) rename rapport/{rapport => }/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.png (100%) rename rapport/{rapport => }/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.map (100%) rename rapport/{rapport => }/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.png (100%) rename rapport/{rapport => }/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.map (100%) rename rapport/{rapport => }/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.png (100%) rename rapport/{rapport => }/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.map (100%) rename rapport/{rapport => }/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.md5 (100%) rename rapport/{rapport => }/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.png (100%) rename rapport/{rapport => }/html/function_8h_source.html (100%) rename rapport/{rapport => }/html/globals.html (100%) rename rapport/{rapport => }/html/globals_func.html (100%) rename rapport/{rapport => }/html/graph_legend.html (100%) rename rapport/{rapport => }/html/graph_legend.md5 (100%) rename rapport/{rapport => }/html/graph_legend.png (100%) rename rapport/{rapport => }/html/index.html (100%) rename rapport/{rapport => }/html/jquery.js (100%) rename rapport/{rapport => }/html/main_8c.html (100%) rename rapport/{rapport => }/html/main_8c__incl.map (100%) rename rapport/{rapport => }/html/main_8c__incl.md5 (100%) rename rapport/{rapport => }/html/main_8c__incl.png (100%) rename rapport/{rapport => }/html/menu.js (100%) rename rapport/{rapport => }/html/menudata.js (100%) rename rapport/{rapport => }/html/minus.svg (100%) rename rapport/{rapport => }/html/minusd.svg (100%) rename rapport/{rapport => }/html/nav_f.png (100%) rename rapport/{rapport => }/html/nav_fd.png (100%) rename rapport/{rapport => }/html/nav_g.png (100%) rename rapport/{rapport => }/html/nav_h.png (100%) rename rapport/{rapport => }/html/nav_hd.png (100%) rename rapport/{rapport => }/html/navtree.css (100%) rename rapport/{rapport => }/html/off_sync.png (100%) rename rapport/{rapport => }/html/on_sync.png (100%) rename rapport/{rapport => }/html/open.png (100%) rename rapport/{rapport => }/html/opened-folder.png (100%) rename rapport/{rapport => }/html/plus.svg (100%) rename rapport/{rapport => }/html/plusd.svg (100%) rename rapport/{rapport => }/html/read_8c.html (100%) rename rapport/{rapport => }/html/read_8c__incl.map (100%) rename rapport/{rapport => }/html/read_8c__incl.md5 (100%) rename rapport/{rapport => }/html/read_8c__incl.png (100%) rename rapport/{rapport => }/html/read_8h_source.html (100%) rename rapport/{rapport => }/html/resize.js (100%) rename rapport/{rapport => }/html/search/all_0.js (100%) rename rapport/{rapport => }/html/search/all_1.js (100%) rename rapport/{rapport => }/html/search/all_2.js (100%) rename rapport/{rapport => }/html/search/all_3.js (100%) rename rapport/{rapport => }/html/search/all_4.js (100%) rename rapport/{rapport => }/html/search/all_5.js (100%) rename rapport/{rapport => }/html/search/all_6.js (100%) rename rapport/{rapport => }/html/search/all_7.js (100%) rename rapport/{rapport => }/html/search/all_8.js (100%) rename rapport/{rapport => }/html/search/all_9.js (100%) rename rapport/{rapport => }/html/search/all_a.js (100%) rename rapport/{rapport => }/html/search/all_b.js (100%) rename rapport/{rapport => }/html/search/all_c.js (100%) rename rapport/{rapport => }/html/search/all_d.js (100%) rename rapport/{rapport => }/html/search/classes_0.js (100%) rename rapport/{rapport => }/html/search/classes_1.js (100%) rename rapport/{rapport => }/html/search/classes_2.js (100%) rename rapport/{rapport => }/html/search/close.svg (100%) rename rapport/{rapport => }/html/search/files_0.js (100%) rename rapport/{rapport => }/html/search/files_1.js (100%) rename rapport/{rapport => }/html/search/files_2.js (100%) rename rapport/{rapport => }/html/search/files_3.js (100%) rename rapport/{rapport => }/html/search/functions_0.js (100%) rename rapport/{rapport => }/html/search/functions_1.js (100%) rename rapport/{rapport => }/html/search/functions_2.js (100%) rename rapport/{rapport => }/html/search/functions_3.js (100%) rename rapport/{rapport => }/html/search/functions_4.js (100%) rename rapport/{rapport => }/html/search/functions_5.js (100%) rename rapport/{rapport => }/html/search/functions_6.js (100%) rename rapport/{rapport => }/html/search/functions_7.js (100%) rename rapport/{rapport => }/html/search/functions_8.js (100%) rename rapport/{rapport => }/html/search/functions_9.js (100%) rename rapport/{rapport => }/html/search/functions_a.js (100%) rename rapport/{rapport => }/html/search/mag.svg (100%) rename rapport/{rapport => }/html/search/mag_d.svg (100%) rename rapport/{rapport => }/html/search/mag_sel.svg (100%) rename rapport/{rapport => }/html/search/mag_seld.svg (100%) rename rapport/{rapport => }/html/search/search.css (100%) rename rapport/{rapport => }/html/search/search.js (100%) rename rapport/{rapport => }/html/search/searchdata.js (100%) rename rapport/{rapport => }/html/splitbar.png (100%) rename rapport/{rapport => }/html/splitbard.png (100%) rename rapport/{rapport => }/html/structScore.html (100%) rename rapport/{rapport => }/html/structVecteur.html (100%) rename rapport/{rapport => }/html/structessential__sdl.html (100%) rename rapport/{rapport => }/html/sync_off.png (100%) rename rapport/{rapport => }/html/sync_on.png (100%) rename rapport/{rapport => }/html/tab_a.png (100%) rename rapport/{rapport => }/html/tab_ad.png (100%) rename rapport/{rapport => }/html/tab_b.png (100%) rename rapport/{rapport => }/html/tab_bd.png (100%) rename rapport/{rapport => }/html/tab_h.png (100%) rename rapport/{rapport => }/html/tab_hd.png (100%) rename rapport/{rapport => }/html/tab_s.png (100%) rename rapport/{rapport => }/html/tab_sd.png (100%) rename rapport/{rapport => }/html/tabs.css (100%) rename rapport/{rapport => }/latex/annotated.tex (100%) rename rapport/{rapport => }/latex/display_8c.tex (98%) rename rapport/{rapport => }/latex/display_8c__incl.md5 (100%) rename rapport/{rapport => }/latex/display_8c__incl.pdf (94%) rename rapport/{rapport => }/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.md5 (100%) rename rapport/{rapport => }/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.pdf (92%) rename rapport/{rapport => }/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 (100%) rename rapport/{rapport => }/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.pdf (93%) rename rapport/{rapport => }/latex/display_8h_source.tex (100%) rename rapport/{rapport => }/latex/files.tex (100%) rename rapport/{rapport => }/latex/function_8c.tex (96%) rename rapport/{rapport => }/latex/function_8c__incl.md5 (100%) rename rapport/{rapport => }/latex/function_8c__incl.pdf (94%) rename rapport/{rapport => }/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.pdf (98%) rename rapport/{rapport => }/latex/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.pdf (92%) rename rapport/{rapport => }/latex/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.pdf (98%) rename rapport/{rapport => }/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.pdf (91%) rename rapport/{rapport => }/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.pdf (90%) rename rapport/{rapport => }/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.pdf (98%) rename rapport/{rapport => }/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.pdf (92%) rename rapport/{rapport => }/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.pdf (90%) rename rapport/{rapport => }/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.pdf (90%) rename rapport/{rapport => }/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.pdf (93%) rename rapport/{rapport => }/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.md5 (100%) rename rapport/{rapport => }/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.pdf (92%) rename rapport/{rapport => }/latex/function_8h_source.tex (100%) rename rapport/{rapport => }/latex/main_8c.tex (100%) rename rapport/{rapport => }/latex/main_8c__incl.md5 (100%) rename rapport/{rapport => }/latex/main_8c__incl.pdf (93%) rename rapport/{rapport => }/latex/read_8c.tex (100%) rename rapport/{rapport => }/latex/read_8c__incl.md5 (100%) rename rapport/{rapport => }/latex/read_8c__incl.pdf (94%) rename rapport/{rapport => }/latex/read_8h_source.tex (100%) create mode 100644 rapport/latex/refman.aux create mode 100644 rapport/latex/refman.idx create mode 100644 rapport/latex/refman.ilg create mode 100644 rapport/latex/refman.ind create mode 100644 rapport/latex/refman.log create mode 100644 rapport/latex/refman.pdf create mode 100644 rapport/latex/refman.toc rename rapport/{rapport => }/latex/structScore.tex (100%) rename rapport/{rapport => }/latex/structVecteur.tex (100%) rename rapport/{rapport => }/latex/structessential__sdl.tex (100%) delete mode 100644 rapport/rapport/html/dir_c29cd72601f3278b0ca6974116605d87.html delete mode 100644 rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.map delete mode 100644 rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 delete mode 100644 rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.png delete mode 100644 rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.map delete mode 100644 rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.md5 delete mode 100644 rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.png delete mode 100644 rapport/rapport/html/md__2home_2dukantic_2floppy_2sokoban_2README.html delete mode 100644 rapport/rapport/html/md_doxygen__theme_2README.html delete mode 100644 rapport/rapport/html/pages.html delete mode 100644 rapport/rapport/html/search/all_10.js delete mode 100644 rapport/rapport/html/search/all_11.js delete mode 100644 rapport/rapport/html/search/all_12.js delete mode 100644 rapport/rapport/html/search/all_e.js delete mode 100644 rapport/rapport/html/search/all_f.js delete mode 100644 rapport/rapport/html/search/pages_0.js delete mode 100644 rapport/rapport/html/search/pages_1.js delete mode 100644 rapport/rapport/html/search/pages_2.js delete mode 100644 rapport/rapport/html/search/pages_3.js delete mode 100644 rapport/rapport/latex/Makefile delete mode 100644 rapport/rapport/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 delete mode 100644 rapport/rapport/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.pdf delete mode 100644 rapport/rapport/latex/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.md5 delete mode 100644 rapport/rapport/latex/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.pdf delete mode 100644 rapport/rapport/latex/doxygen.sty delete mode 100644 rapport/rapport/latex/etoc_doxygen.sty delete mode 100644 rapport/rapport/latex/longtable_doxygen.sty delete mode 100644 rapport/rapport/latex/md__2home_2dukantic_2floppy_2sokoban_2README.tex delete mode 100644 rapport/rapport/latex/md_doxygen__theme_2README.tex delete mode 100644 rapport/rapport/latex/refman.tex delete mode 100644 rapport/rapport/latex/tabu_doxygen.sty diff --git a/rapport/Doxfile b/rapport/Doxfile index a759ec0..370dd14 100644 --- a/rapport/Doxfile +++ b/rapport/Doxfile @@ -74,7 +74,7 @@ PROJECT_ICON = # entered, it will be relative to the location where Doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = rapport +OUTPUT_DIRECTORY = . # If the CREATE_SUBDIRS tag is set to YES then Doxygen will create up to 4096 # sub-directories (in 2 levels) under the output directory of each output format diff --git a/rapport/rapport/html/annotated.html b/rapport/html/annotated.html similarity index 100% rename from rapport/rapport/html/annotated.html rename to rapport/html/annotated.html diff --git a/rapport/rapport/html/bc_s.png b/rapport/html/bc_s.png similarity index 100% rename from rapport/rapport/html/bc_s.png rename to rapport/html/bc_s.png diff --git a/rapport/rapport/html/bc_sd.png b/rapport/html/bc_sd.png similarity index 100% rename from rapport/rapport/html/bc_sd.png rename to rapport/html/bc_sd.png diff --git a/rapport/rapport/html/classes.html b/rapport/html/classes.html similarity index 100% rename from rapport/rapport/html/classes.html rename to rapport/html/classes.html diff --git a/rapport/rapport/html/clipboard.js b/rapport/html/clipboard.js similarity index 100% rename from rapport/rapport/html/clipboard.js rename to rapport/html/clipboard.js diff --git a/rapport/rapport/html/closed-folder.png b/rapport/html/closed-folder.png similarity index 100% rename from rapport/rapport/html/closed-folder.png rename to rapport/html/closed-folder.png diff --git a/rapport/rapport/html/closed.png b/rapport/html/closed.png similarity index 100% rename from rapport/rapport/html/closed.png rename to rapport/html/closed.png diff --git a/rapport/rapport/html/cookie.js b/rapport/html/cookie.js similarity index 100% rename from rapport/rapport/html/cookie.js rename to rapport/html/cookie.js diff --git a/rapport/rapport/html/dir_6549bedf82156dc06df95cefb015444e.html b/rapport/html/dir_6549bedf82156dc06df95cefb015444e.html similarity index 100% rename from rapport/rapport/html/dir_6549bedf82156dc06df95cefb015444e.html rename to rapport/html/dir_6549bedf82156dc06df95cefb015444e.html diff --git a/rapport/rapport/html/dir_d44c64559bbebec7f509842c48db8b23.html b/rapport/html/dir_d44c64559bbebec7f509842c48db8b23.html similarity index 100% rename from rapport/rapport/html/dir_d44c64559bbebec7f509842c48db8b23.html rename to rapport/html/dir_d44c64559bbebec7f509842c48db8b23.html diff --git a/rapport/rapport/html/display_8c.html b/rapport/html/display_8c.html similarity index 100% rename from rapport/rapport/html/display_8c.html rename to rapport/html/display_8c.html diff --git a/rapport/rapport/html/display_8c__incl.map b/rapport/html/display_8c__incl.map similarity index 100% rename from rapport/rapport/html/display_8c__incl.map rename to rapport/html/display_8c__incl.map diff --git a/rapport/rapport/html/display_8c__incl.md5 b/rapport/html/display_8c__incl.md5 similarity index 100% rename from rapport/rapport/html/display_8c__incl.md5 rename to rapport/html/display_8c__incl.md5 diff --git a/rapport/rapport/html/display_8c__incl.png b/rapport/html/display_8c__incl.png similarity index 100% rename from rapport/rapport/html/display_8c__incl.png rename to rapport/html/display_8c__incl.png diff --git a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.map b/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.map similarity index 100% rename from rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.map rename to rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.map diff --git a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.md5 b/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.md5 similarity index 100% rename from rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.md5 rename to rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.md5 diff --git a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.png b/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.png similarity index 100% rename from rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.png rename to rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.png diff --git a/rapport/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.map b/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.map similarity index 100% rename from rapport/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.map rename to rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.map diff --git a/rapport/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 b/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 similarity index 100% rename from rapport/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 rename to rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 diff --git a/rapport/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.png b/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.png similarity index 100% rename from rapport/rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.png rename to rapport/html/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.png diff --git a/rapport/rapport/html/display_8h_source.html b/rapport/html/display_8h_source.html similarity index 100% rename from rapport/rapport/html/display_8h_source.html rename to rapport/html/display_8h_source.html diff --git a/rapport/rapport/html/doc.svg b/rapport/html/doc.svg similarity index 100% rename from rapport/rapport/html/doc.svg rename to rapport/html/doc.svg diff --git a/rapport/rapport/html/docd.svg b/rapport/html/docd.svg similarity index 100% rename from rapport/rapport/html/docd.svg rename to rapport/html/docd.svg diff --git a/rapport/rapport/html/document.png b/rapport/html/document.png similarity index 100% rename from rapport/rapport/html/document.png rename to rapport/html/document.png diff --git a/rapport/rapport/html/doxygen-style.css b/rapport/html/doxygen-style.css similarity index 100% rename from rapport/rapport/html/doxygen-style.css rename to rapport/html/doxygen-style.css diff --git a/rapport/rapport/html/doxygen.css b/rapport/html/doxygen.css similarity index 100% rename from rapport/rapport/html/doxygen.css rename to rapport/html/doxygen.css diff --git a/rapport/rapport/html/doxygen.svg b/rapport/html/doxygen.svg similarity index 100% rename from rapport/rapport/html/doxygen.svg rename to rapport/html/doxygen.svg diff --git a/rapport/rapport/html/doxygen_crawl.html b/rapport/html/doxygen_crawl.html similarity index 100% rename from rapport/rapport/html/doxygen_crawl.html rename to rapport/html/doxygen_crawl.html diff --git a/rapport/rapport/html/dynsections.js b/rapport/html/dynsections.js similarity index 100% rename from rapport/rapport/html/dynsections.js rename to rapport/html/dynsections.js diff --git a/rapport/rapport/html/files.html b/rapport/html/files.html similarity index 100% rename from rapport/rapport/html/files.html rename to rapport/html/files.html diff --git a/rapport/rapport/html/folderclosed.svg b/rapport/html/folderclosed.svg similarity index 100% rename from rapport/rapport/html/folderclosed.svg rename to rapport/html/folderclosed.svg diff --git a/rapport/rapport/html/folderclosedd.svg b/rapport/html/folderclosedd.svg similarity index 100% rename from rapport/rapport/html/folderclosedd.svg rename to rapport/html/folderclosedd.svg diff --git a/rapport/rapport/html/folderopen.svg b/rapport/html/folderopen.svg similarity index 100% rename from rapport/rapport/html/folderopen.svg rename to rapport/html/folderopen.svg diff --git a/rapport/rapport/html/folderopend.svg b/rapport/html/folderopend.svg similarity index 100% rename from rapport/rapport/html/folderopend.svg rename to rapport/html/folderopend.svg diff --git a/rapport/rapport/html/function_8c.html b/rapport/html/function_8c.html similarity index 100% rename from rapport/rapport/html/function_8c.html rename to rapport/html/function_8c.html diff --git a/rapport/rapport/html/function_8c__incl.map b/rapport/html/function_8c__incl.map similarity index 100% rename from rapport/rapport/html/function_8c__incl.map rename to rapport/html/function_8c__incl.map diff --git a/rapport/rapport/html/function_8c__incl.md5 b/rapport/html/function_8c__incl.md5 similarity index 100% rename from rapport/rapport/html/function_8c__incl.md5 rename to rapport/html/function_8c__incl.md5 diff --git a/rapport/rapport/html/function_8c__incl.png b/rapport/html/function_8c__incl.png similarity index 100% rename from rapport/rapport/html/function_8c__incl.png rename to rapport/html/function_8c__incl.png diff --git a/rapport/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.map b/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.map rename to rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.map diff --git a/rapport/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 b/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 rename to rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 diff --git a/rapport/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.png b/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.png rename to rapport/html/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.png diff --git a/rapport/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.map b/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.map rename to rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.map diff --git a/rapport/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.md5 b/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.md5 rename to rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.md5 diff --git a/rapport/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.png b/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.png rename to rapport/html/function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.png diff --git a/rapport/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.map b/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.map rename to rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.map diff --git a/rapport/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.md5 b/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.md5 rename to rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.md5 diff --git a/rapport/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.png b/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.png rename to rapport/html/function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.png diff --git a/rapport/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.map b/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.map rename to rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.map diff --git a/rapport/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 b/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 rename to rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 diff --git a/rapport/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.png b/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.png rename to rapport/html/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.png diff --git a/rapport/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.map b/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.map rename to rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.map diff --git a/rapport/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 b/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 rename to rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 diff --git a/rapport/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.png b/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.png rename to rapport/html/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.png diff --git a/rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.map b/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.map rename to rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.map diff --git a/rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 b/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 rename to rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 diff --git a/rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.png b/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.png rename to rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.png diff --git a/rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.map b/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.map rename to rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.map diff --git a/rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 b/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 rename to rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 diff --git a/rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.png b/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.png rename to rapport/html/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.png diff --git a/rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.map b/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.map rename to rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.map diff --git a/rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.md5 b/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.md5 rename to rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.md5 diff --git a/rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.png b/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.png rename to rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.png diff --git a/rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.map b/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.map rename to rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.map diff --git a/rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 b/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 rename to rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 diff --git a/rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.png b/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.png rename to rapport/html/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.png diff --git a/rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.map b/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.map rename to rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.map diff --git a/rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 b/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 rename to rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 diff --git a/rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.png b/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.png rename to rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.png diff --git a/rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.map b/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.map similarity index 100% rename from rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.map rename to rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.map diff --git a/rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.md5 b/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.md5 similarity index 100% rename from rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.md5 rename to rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.md5 diff --git a/rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.png b/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.png similarity index 100% rename from rapport/rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.png rename to rapport/html/function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.png diff --git a/rapport/rapport/html/function_8h_source.html b/rapport/html/function_8h_source.html similarity index 100% rename from rapport/rapport/html/function_8h_source.html rename to rapport/html/function_8h_source.html diff --git a/rapport/rapport/html/globals.html b/rapport/html/globals.html similarity index 100% rename from rapport/rapport/html/globals.html rename to rapport/html/globals.html diff --git a/rapport/rapport/html/globals_func.html b/rapport/html/globals_func.html similarity index 100% rename from rapport/rapport/html/globals_func.html rename to rapport/html/globals_func.html diff --git a/rapport/rapport/html/graph_legend.html b/rapport/html/graph_legend.html similarity index 100% rename from rapport/rapport/html/graph_legend.html rename to rapport/html/graph_legend.html diff --git a/rapport/rapport/html/graph_legend.md5 b/rapport/html/graph_legend.md5 similarity index 100% rename from rapport/rapport/html/graph_legend.md5 rename to rapport/html/graph_legend.md5 diff --git a/rapport/rapport/html/graph_legend.png b/rapport/html/graph_legend.png similarity index 100% rename from rapport/rapport/html/graph_legend.png rename to rapport/html/graph_legend.png diff --git a/rapport/rapport/html/index.html b/rapport/html/index.html similarity index 100% rename from rapport/rapport/html/index.html rename to rapport/html/index.html diff --git a/rapport/rapport/html/jquery.js b/rapport/html/jquery.js similarity index 100% rename from rapport/rapport/html/jquery.js rename to rapport/html/jquery.js diff --git a/rapport/rapport/html/main_8c.html b/rapport/html/main_8c.html similarity index 100% rename from rapport/rapport/html/main_8c.html rename to rapport/html/main_8c.html diff --git a/rapport/rapport/html/main_8c__incl.map b/rapport/html/main_8c__incl.map similarity index 100% rename from rapport/rapport/html/main_8c__incl.map rename to rapport/html/main_8c__incl.map diff --git a/rapport/rapport/html/main_8c__incl.md5 b/rapport/html/main_8c__incl.md5 similarity index 100% rename from rapport/rapport/html/main_8c__incl.md5 rename to rapport/html/main_8c__incl.md5 diff --git a/rapport/rapport/html/main_8c__incl.png b/rapport/html/main_8c__incl.png similarity index 100% rename from rapport/rapport/html/main_8c__incl.png rename to rapport/html/main_8c__incl.png diff --git a/rapport/rapport/html/menu.js b/rapport/html/menu.js similarity index 100% rename from rapport/rapport/html/menu.js rename to rapport/html/menu.js diff --git a/rapport/rapport/html/menudata.js b/rapport/html/menudata.js similarity index 100% rename from rapport/rapport/html/menudata.js rename to rapport/html/menudata.js diff --git a/rapport/rapport/html/minus.svg b/rapport/html/minus.svg similarity index 100% rename from rapport/rapport/html/minus.svg rename to rapport/html/minus.svg diff --git a/rapport/rapport/html/minusd.svg b/rapport/html/minusd.svg similarity index 100% rename from rapport/rapport/html/minusd.svg rename to rapport/html/minusd.svg diff --git a/rapport/rapport/html/nav_f.png b/rapport/html/nav_f.png similarity index 100% rename from rapport/rapport/html/nav_f.png rename to rapport/html/nav_f.png diff --git a/rapport/rapport/html/nav_fd.png b/rapport/html/nav_fd.png similarity index 100% rename from rapport/rapport/html/nav_fd.png rename to rapport/html/nav_fd.png diff --git a/rapport/rapport/html/nav_g.png b/rapport/html/nav_g.png similarity index 100% rename from rapport/rapport/html/nav_g.png rename to rapport/html/nav_g.png diff --git a/rapport/rapport/html/nav_h.png b/rapport/html/nav_h.png similarity index 100% rename from rapport/rapport/html/nav_h.png rename to rapport/html/nav_h.png diff --git a/rapport/rapport/html/nav_hd.png b/rapport/html/nav_hd.png similarity index 100% rename from rapport/rapport/html/nav_hd.png rename to rapport/html/nav_hd.png diff --git a/rapport/rapport/html/navtree.css b/rapport/html/navtree.css similarity index 100% rename from rapport/rapport/html/navtree.css rename to rapport/html/navtree.css diff --git a/rapport/rapport/html/off_sync.png b/rapport/html/off_sync.png similarity index 100% rename from rapport/rapport/html/off_sync.png rename to rapport/html/off_sync.png diff --git a/rapport/rapport/html/on_sync.png b/rapport/html/on_sync.png similarity index 100% rename from rapport/rapport/html/on_sync.png rename to rapport/html/on_sync.png diff --git a/rapport/rapport/html/open.png b/rapport/html/open.png similarity index 100% rename from rapport/rapport/html/open.png rename to rapport/html/open.png diff --git a/rapport/rapport/html/opened-folder.png b/rapport/html/opened-folder.png similarity index 100% rename from rapport/rapport/html/opened-folder.png rename to rapport/html/opened-folder.png diff --git a/rapport/rapport/html/plus.svg b/rapport/html/plus.svg similarity index 100% rename from rapport/rapport/html/plus.svg rename to rapport/html/plus.svg diff --git a/rapport/rapport/html/plusd.svg b/rapport/html/plusd.svg similarity index 100% rename from rapport/rapport/html/plusd.svg rename to rapport/html/plusd.svg diff --git a/rapport/rapport/html/read_8c.html b/rapport/html/read_8c.html similarity index 100% rename from rapport/rapport/html/read_8c.html rename to rapport/html/read_8c.html diff --git a/rapport/rapport/html/read_8c__incl.map b/rapport/html/read_8c__incl.map similarity index 100% rename from rapport/rapport/html/read_8c__incl.map rename to rapport/html/read_8c__incl.map diff --git a/rapport/rapport/html/read_8c__incl.md5 b/rapport/html/read_8c__incl.md5 similarity index 100% rename from rapport/rapport/html/read_8c__incl.md5 rename to rapport/html/read_8c__incl.md5 diff --git a/rapport/rapport/html/read_8c__incl.png b/rapport/html/read_8c__incl.png similarity index 100% rename from rapport/rapport/html/read_8c__incl.png rename to rapport/html/read_8c__incl.png diff --git a/rapport/rapport/html/read_8h_source.html b/rapport/html/read_8h_source.html similarity index 100% rename from rapport/rapport/html/read_8h_source.html rename to rapport/html/read_8h_source.html diff --git a/rapport/rapport/html/resize.js b/rapport/html/resize.js similarity index 100% rename from rapport/rapport/html/resize.js rename to rapport/html/resize.js diff --git a/rapport/rapport/html/search/all_0.js b/rapport/html/search/all_0.js similarity index 100% rename from rapport/rapport/html/search/all_0.js rename to rapport/html/search/all_0.js diff --git a/rapport/rapport/html/search/all_1.js b/rapport/html/search/all_1.js similarity index 100% rename from rapport/rapport/html/search/all_1.js rename to rapport/html/search/all_1.js diff --git a/rapport/rapport/html/search/all_2.js b/rapport/html/search/all_2.js similarity index 100% rename from rapport/rapport/html/search/all_2.js rename to rapport/html/search/all_2.js diff --git a/rapport/rapport/html/search/all_3.js b/rapport/html/search/all_3.js similarity index 100% rename from rapport/rapport/html/search/all_3.js rename to rapport/html/search/all_3.js diff --git a/rapport/rapport/html/search/all_4.js b/rapport/html/search/all_4.js similarity index 100% rename from rapport/rapport/html/search/all_4.js rename to rapport/html/search/all_4.js diff --git a/rapport/rapport/html/search/all_5.js b/rapport/html/search/all_5.js similarity index 100% rename from rapport/rapport/html/search/all_5.js rename to rapport/html/search/all_5.js diff --git a/rapport/rapport/html/search/all_6.js b/rapport/html/search/all_6.js similarity index 100% rename from rapport/rapport/html/search/all_6.js rename to rapport/html/search/all_6.js diff --git a/rapport/rapport/html/search/all_7.js b/rapport/html/search/all_7.js similarity index 100% rename from rapport/rapport/html/search/all_7.js rename to rapport/html/search/all_7.js diff --git a/rapport/rapport/html/search/all_8.js b/rapport/html/search/all_8.js similarity index 100% rename from rapport/rapport/html/search/all_8.js rename to rapport/html/search/all_8.js diff --git a/rapport/rapport/html/search/all_9.js b/rapport/html/search/all_9.js similarity index 100% rename from rapport/rapport/html/search/all_9.js rename to rapport/html/search/all_9.js diff --git a/rapport/rapport/html/search/all_a.js b/rapport/html/search/all_a.js similarity index 100% rename from rapport/rapport/html/search/all_a.js rename to rapport/html/search/all_a.js diff --git a/rapport/rapport/html/search/all_b.js b/rapport/html/search/all_b.js similarity index 100% rename from rapport/rapport/html/search/all_b.js rename to rapport/html/search/all_b.js diff --git a/rapport/rapport/html/search/all_c.js b/rapport/html/search/all_c.js similarity index 100% rename from rapport/rapport/html/search/all_c.js rename to rapport/html/search/all_c.js diff --git a/rapport/rapport/html/search/all_d.js b/rapport/html/search/all_d.js similarity index 100% rename from rapport/rapport/html/search/all_d.js rename to rapport/html/search/all_d.js diff --git a/rapport/rapport/html/search/classes_0.js b/rapport/html/search/classes_0.js similarity index 100% rename from rapport/rapport/html/search/classes_0.js rename to rapport/html/search/classes_0.js diff --git a/rapport/rapport/html/search/classes_1.js b/rapport/html/search/classes_1.js similarity index 100% rename from rapport/rapport/html/search/classes_1.js rename to rapport/html/search/classes_1.js diff --git a/rapport/rapport/html/search/classes_2.js b/rapport/html/search/classes_2.js similarity index 100% rename from rapport/rapport/html/search/classes_2.js rename to rapport/html/search/classes_2.js diff --git a/rapport/rapport/html/search/close.svg b/rapport/html/search/close.svg similarity index 100% rename from rapport/rapport/html/search/close.svg rename to rapport/html/search/close.svg diff --git a/rapport/rapport/html/search/files_0.js b/rapport/html/search/files_0.js similarity index 100% rename from rapport/rapport/html/search/files_0.js rename to rapport/html/search/files_0.js diff --git a/rapport/rapport/html/search/files_1.js b/rapport/html/search/files_1.js similarity index 100% rename from rapport/rapport/html/search/files_1.js rename to rapport/html/search/files_1.js diff --git a/rapport/rapport/html/search/files_2.js b/rapport/html/search/files_2.js similarity index 100% rename from rapport/rapport/html/search/files_2.js rename to rapport/html/search/files_2.js diff --git a/rapport/rapport/html/search/files_3.js b/rapport/html/search/files_3.js similarity index 100% rename from rapport/rapport/html/search/files_3.js rename to rapport/html/search/files_3.js diff --git a/rapport/rapport/html/search/functions_0.js b/rapport/html/search/functions_0.js similarity index 100% rename from rapport/rapport/html/search/functions_0.js rename to rapport/html/search/functions_0.js diff --git a/rapport/rapport/html/search/functions_1.js b/rapport/html/search/functions_1.js similarity index 100% rename from rapport/rapport/html/search/functions_1.js rename to rapport/html/search/functions_1.js diff --git a/rapport/rapport/html/search/functions_2.js b/rapport/html/search/functions_2.js similarity index 100% rename from rapport/rapport/html/search/functions_2.js rename to rapport/html/search/functions_2.js diff --git a/rapport/rapport/html/search/functions_3.js b/rapport/html/search/functions_3.js similarity index 100% rename from rapport/rapport/html/search/functions_3.js rename to rapport/html/search/functions_3.js diff --git a/rapport/rapport/html/search/functions_4.js b/rapport/html/search/functions_4.js similarity index 100% rename from rapport/rapport/html/search/functions_4.js rename to rapport/html/search/functions_4.js diff --git a/rapport/rapport/html/search/functions_5.js b/rapport/html/search/functions_5.js similarity index 100% rename from rapport/rapport/html/search/functions_5.js rename to rapport/html/search/functions_5.js diff --git a/rapport/rapport/html/search/functions_6.js b/rapport/html/search/functions_6.js similarity index 100% rename from rapport/rapport/html/search/functions_6.js rename to rapport/html/search/functions_6.js diff --git a/rapport/rapport/html/search/functions_7.js b/rapport/html/search/functions_7.js similarity index 100% rename from rapport/rapport/html/search/functions_7.js rename to rapport/html/search/functions_7.js diff --git a/rapport/rapport/html/search/functions_8.js b/rapport/html/search/functions_8.js similarity index 100% rename from rapport/rapport/html/search/functions_8.js rename to rapport/html/search/functions_8.js diff --git a/rapport/rapport/html/search/functions_9.js b/rapport/html/search/functions_9.js similarity index 100% rename from rapport/rapport/html/search/functions_9.js rename to rapport/html/search/functions_9.js diff --git a/rapport/rapport/html/search/functions_a.js b/rapport/html/search/functions_a.js similarity index 100% rename from rapport/rapport/html/search/functions_a.js rename to rapport/html/search/functions_a.js diff --git a/rapport/rapport/html/search/mag.svg b/rapport/html/search/mag.svg similarity index 100% rename from rapport/rapport/html/search/mag.svg rename to rapport/html/search/mag.svg diff --git a/rapport/rapport/html/search/mag_d.svg b/rapport/html/search/mag_d.svg similarity index 100% rename from rapport/rapport/html/search/mag_d.svg rename to rapport/html/search/mag_d.svg diff --git a/rapport/rapport/html/search/mag_sel.svg b/rapport/html/search/mag_sel.svg similarity index 100% rename from rapport/rapport/html/search/mag_sel.svg rename to rapport/html/search/mag_sel.svg diff --git a/rapport/rapport/html/search/mag_seld.svg b/rapport/html/search/mag_seld.svg similarity index 100% rename from rapport/rapport/html/search/mag_seld.svg rename to rapport/html/search/mag_seld.svg diff --git a/rapport/rapport/html/search/search.css b/rapport/html/search/search.css similarity index 100% rename from rapport/rapport/html/search/search.css rename to rapport/html/search/search.css diff --git a/rapport/rapport/html/search/search.js b/rapport/html/search/search.js similarity index 100% rename from rapport/rapport/html/search/search.js rename to rapport/html/search/search.js diff --git a/rapport/rapport/html/search/searchdata.js b/rapport/html/search/searchdata.js similarity index 100% rename from rapport/rapport/html/search/searchdata.js rename to rapport/html/search/searchdata.js diff --git a/rapport/rapport/html/splitbar.png b/rapport/html/splitbar.png similarity index 100% rename from rapport/rapport/html/splitbar.png rename to rapport/html/splitbar.png diff --git a/rapport/rapport/html/splitbard.png b/rapport/html/splitbard.png similarity index 100% rename from rapport/rapport/html/splitbard.png rename to rapport/html/splitbard.png diff --git a/rapport/rapport/html/structScore.html b/rapport/html/structScore.html similarity index 100% rename from rapport/rapport/html/structScore.html rename to rapport/html/structScore.html diff --git a/rapport/rapport/html/structVecteur.html b/rapport/html/structVecteur.html similarity index 100% rename from rapport/rapport/html/structVecteur.html rename to rapport/html/structVecteur.html diff --git a/rapport/rapport/html/structessential__sdl.html b/rapport/html/structessential__sdl.html similarity index 100% rename from rapport/rapport/html/structessential__sdl.html rename to rapport/html/structessential__sdl.html diff --git a/rapport/rapport/html/sync_off.png b/rapport/html/sync_off.png similarity index 100% rename from rapport/rapport/html/sync_off.png rename to rapport/html/sync_off.png diff --git a/rapport/rapport/html/sync_on.png b/rapport/html/sync_on.png similarity index 100% rename from rapport/rapport/html/sync_on.png rename to rapport/html/sync_on.png diff --git a/rapport/rapport/html/tab_a.png b/rapport/html/tab_a.png similarity index 100% rename from rapport/rapport/html/tab_a.png rename to rapport/html/tab_a.png diff --git a/rapport/rapport/html/tab_ad.png b/rapport/html/tab_ad.png similarity index 100% rename from rapport/rapport/html/tab_ad.png rename to rapport/html/tab_ad.png diff --git a/rapport/rapport/html/tab_b.png b/rapport/html/tab_b.png similarity index 100% rename from rapport/rapport/html/tab_b.png rename to rapport/html/tab_b.png diff --git a/rapport/rapport/html/tab_bd.png b/rapport/html/tab_bd.png similarity index 100% rename from rapport/rapport/html/tab_bd.png rename to rapport/html/tab_bd.png diff --git a/rapport/rapport/html/tab_h.png b/rapport/html/tab_h.png similarity index 100% rename from rapport/rapport/html/tab_h.png rename to rapport/html/tab_h.png diff --git a/rapport/rapport/html/tab_hd.png b/rapport/html/tab_hd.png similarity index 100% rename from rapport/rapport/html/tab_hd.png rename to rapport/html/tab_hd.png diff --git a/rapport/rapport/html/tab_s.png b/rapport/html/tab_s.png similarity index 100% rename from rapport/rapport/html/tab_s.png rename to rapport/html/tab_s.png diff --git a/rapport/rapport/html/tab_sd.png b/rapport/html/tab_sd.png similarity index 100% rename from rapport/rapport/html/tab_sd.png rename to rapport/html/tab_sd.png diff --git a/rapport/rapport/html/tabs.css b/rapport/html/tabs.css similarity index 100% rename from rapport/rapport/html/tabs.css rename to rapport/html/tabs.css diff --git a/rapport/rapport/latex/annotated.tex b/rapport/latex/annotated.tex similarity index 100% rename from rapport/rapport/latex/annotated.tex rename to rapport/latex/annotated.tex diff --git a/rapport/rapport/latex/display_8c.tex b/rapport/latex/display_8c.tex similarity index 98% rename from rapport/rapport/latex/display_8c.tex rename to rapport/latex/display_8c.tex index 3f02d7b..0825574 100644 --- a/rapport/rapport/latex/display_8c.tex +++ b/rapport/latex/display_8c.tex @@ -11,7 +11,8 @@ {\ttfamily \#include $<$SDL2/\+SDL\+\_\+ttf.\+h$>$}\newline {\ttfamily \#include $<$stdio.\+h$>$}\newline {\ttfamily \#include $<$stdlib.\+h$>$}\newline -Graphe des dépendances par inclusion de display.\+c\+:\nopagebreak +Graphe des dépendances par inclusion de display.\+c\+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -60,7 +61,8 @@ Cette fonction affiche l\textquotesingle{}image dans la fenetre de l\textquotesi \begin{DoxyReturn}{Renvoie} Void \end{DoxyReturn} -Voici le graphe des appelants de cette fonction \+:\nopagebreak +Voici le graphe des appelants de cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -169,7 +171,8 @@ La fonction affiche a l\textquotesingle{}aide de SDL la zone de jeu. \begin{DoxyReturn}{Renvoie} Void \end{DoxyReturn} -Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak +Voici le graphe d\textquotesingle{}appel pour cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/rapport/rapport/latex/display_8c__incl.md5 b/rapport/latex/display_8c__incl.md5 similarity index 100% rename from rapport/rapport/latex/display_8c__incl.md5 rename to rapport/latex/display_8c__incl.md5 diff --git a/rapport/rapport/latex/display_8c__incl.pdf b/rapport/latex/display_8c__incl.pdf similarity index 94% rename from rapport/rapport/latex/display_8c__incl.pdf rename to rapport/latex/display_8c__incl.pdf index dd5eb17a4b1d56ae5ab6bcbdf2d0fd0c392d6aa6..9d4a036e583c8c38f0f3a878e13fa124e250f77a 100644 GIT binary patch delta 562 zcmV-20?qx4PK!>kyCZ*(n=lZ)`&Z1NRTEVL+XO;Z(Mp@7TCKLNC`r{rwOYBvO;8hz zj9E4RzGDm&lv6)Wo_U_J-#pKl0VOjCDTyFp5#bENn34dZfRhlSm=R849#FzL#FP^b z3mOm}0At~dESKQ#E~NxN5eHcj0Pr94eFa~E1BDcx8fdNR!T^6Gx3`0gyP{C0+1}RQ zOar~oiysa#y3R}@v~2P$^r;s6MCFCChtC-I7!QGk)C-Y)8?njK$b}3XIy$u{MLCGdYB<`83wf>GSR+&!i>QOP2t5NBxh4ot83H?K8RO zun^$Dv=seERI(xLxc+9EXtl31sbP|dTq|H6i#-mLqcMMFb>sUDdeEXg=2_(_eV9(& z*k~!Nnj2vxOg1;1a_m@6S%mB2EoE;gosP-cF@)Fc$aM45GyEX;xmc;6NYoa}Sj2!w zVLzpXk+!SiKH*-gy1eRx1|77)PK%-{?Pb}egC788lbyH5sEvHdGnwA62F;L4*CiFq z`#XmnU*RS1)bygAkY?~3Wuvjaj@4QiaZ-o2a{P@3g^%BG@XWse^#(V|v)m;w0nAPs A?EnA( delta 562 zcmV-20?qx4PK!>kyCZ*#+b|Hl>sQR7r3nRFk|W1i!onsg%d%~8os=HRvZ#)lm?oBy z<)!)e)ralc6KZqIuK=@efYxoKjFl6xLptWpD4FrGP-VQ46%2H|<-ZtN~ zgWebA507ZoAjH-CS+k#Fo#9_4>Ejj zN|*DeI(%%-rWqT@K(L)0YZHh%lLBkar?GZkpLZv5MlGpcx)i8C>VFjMln|M0ugPDB zg}^LKOEG*jN;<-x>u;v1lKUnX3MM%(lmrrxB%m-kYF&TTH(}_|gW}b($m>9=!*uG` zMhR}!+;A;mvbmv{nu(>DFt)(#EhcX;o{q`dHH6pg%5?kFGyEX-1z*XZhNx|nkeC3C zS-+*F7IvzVzTjTTrn;H~hYrSIr+8Uc_GkH}gCD@iCOU6zvNqzS$VGO)8Vo}w{FKx% z@BcZR_}V4BPHq{3H);=jJsUG(Nt=!8QK^_n>i$Es}M2T;IJz*7&cRaYAz==OG!aaY&M^xJ>i?%DLvr>g!nAVzn> z&p}^1UgoN*jVn&FG++>ALBfD08YLx`XA?1upiD z2~(+h#I_KAD;~y`4Po}StlH+t&p%TU9L(wXhNpznXIk!W@JcHn0Z9W2vx6~BdlQB|y4SopRH6-( z-p}WQ=vs0|)7f6>nrru!A=gze8HLpWIYi{^a?ft~|4NV5VR&65eA8JeI>etjZRC00j&MJoVICb+rM4Zf_?QcXh2yzr26#o=s1Es_I_@V{|7> z&b9389QC#1Wv;5)xWh@71`MJsNEpzB{DoQOH&`$TD5Nk$nd4|eA;x~`4wg#?9QMM5 zsZ>33TL`}u596POFne28ZFA)3pQ#8A=5&0+Q^M&pEqR(S#;{nBn8!GgB8k|`OIBuc zS8uy_N36EsO!$9p{jrR<!4@N4L_>A@7TVfNyFEvO@jRcU|Z+p3T19&b98cL tVQmU!Ze){=91;OIlc5~g3?figW(5NS0F~_ulaqxV9|$%IB_%~qMhf)T4~75$ diff --git a/rapport/rapport/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 b/rapport/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 similarity index 100% rename from rapport/rapport/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 rename to rapport/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.md5 diff --git a/rapport/rapport/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.pdf b/rapport/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.pdf similarity index 93% rename from rapport/rapport/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.pdf rename to rapport/latex/display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.pdf index 806724746076ed671d43bd248e62f59051693f63..7f90c2cd1c617cc9990ecd5b1fba6f951843fc78 100644 GIT binary patch delta 492 zcmVU5N`QV)d&E>=R(%- z11Mm~;iZMvx+yIXbbmjJcqmJ4TlcQ{Wn1V|QU2}_YZ_s<+^Byx&O=`tF1NZUtxq0d zU|EpFKo&HJCw829ulskUb0usS;2^SK-s(ILuv~h>+kHpE7P`D)I|#q!Pq&jZVfI!Q zb#>;~pQ#8=_Hus17l$Y&Jd^k!BS{&JWp=V=<*ei7<5^u$-{L^o7DyNWpMbqlD%U;R9jhJ!Cv#she0C(U zUa~&J)@a!XWnd!>xkZ=8j?- z5lXSsCnDJgOx|NWpSJ0@2j2Bc-((+p`>bTaSNe}@5xZZH5eiv0tX652Uy8+W{n6;A z`bXRr9cjBaysRrIYuC@3TYlEZeq#4{Mgvb(8wvXt&_A<&94-NVuj>E+ delta 492 zcmVV$Ex}3ZTleemD z>Z3US%w%+Mr{fzj+a;WcT;ZKc6lIjFe21Azr4orCSw0Q%e(aE9v4JrCcTbE*1}?s| zCqGc|W5@z!!6bjc2J_{Xv!0iaM}0y=i&x6lK>GOq1Z=I=g&ElHSq%_)nTLw;vnPoS zk_{Qw)~Hr$3lk|yYk))~izrME&ehFb9Czs6iuzE>CNg$Eo%U*5Edr4%;WSKEcNEiv zP>KoXJYgR&d5`h*w#~3T@NQ80BKx(s&svpYVgC3QvHxEfp^)d-)vBBhOEJ4%f3&8p z{}H!CN7`1w_stx iyKTMYweM#soH&~OFtL9;qk(T#8wvXt&`Gm?94-OZTI!4d diff --git a/rapport/rapport/latex/display_8h_source.tex b/rapport/latex/display_8h_source.tex similarity index 100% rename from rapport/rapport/latex/display_8h_source.tex rename to rapport/latex/display_8h_source.tex diff --git a/rapport/rapport/latex/files.tex b/rapport/latex/files.tex similarity index 100% rename from rapport/rapport/latex/files.tex rename to rapport/latex/files.tex diff --git a/rapport/rapport/latex/function_8c.tex b/rapport/latex/function_8c.tex similarity index 96% rename from rapport/rapport/latex/function_8c.tex rename to rapport/latex/function_8c.tex index 445cad1..8722302 100644 --- a/rapport/rapport/latex/function_8c.tex +++ b/rapport/latex/function_8c.tex @@ -11,7 +11,8 @@ {\ttfamily \#include $<$stdio.\+h$>$}\newline {\ttfamily \#include $<$stdlib.\+h$>$}\newline {\ttfamily \#include $<$time.\+h$>$}\newline -Graphe des dépendances par inclusion de function.\+c\+:\nopagebreak +Graphe des dépendances par inclusion de function.\+c\+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -70,14 +71,16 @@ La fonction permet de savoir si une boite est dans une situation ou le joueur ne \begin{DoxyReturn}{Renvoie} True si la la boite est bloquer, sinon false. \end{DoxyReturn} -Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak +Voici le graphe d\textquotesingle{}appel pour cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=234pt]{function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph} \end{center} \end{figure} -Voici le graphe des appelants de cette fonction \+:\nopagebreak +Voici le graphe des appelants de cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -104,7 +107,8 @@ La fontction permet de savoir si le joueur peut ce deplacer dans une direction. \begin{DoxyReturn}{Renvoie} 0 Si c\textquotesingle{}est un mur devant le joueur, 1 si c\textquotesingle{}est vide devant le joueur, 2 si c\textquotesingle{}est une boite mais qu\textquotesingle{}on peux la pousser ,3 si le joueur pousse une boite sur un point d\textquotesingle{}interer, 4 si le joueur bouge sur un point d\textquotesingle{}interer, 5 si le joueur peux pousser une boite mais le joueur se place sur un point d\textquotesingle{}interer et 6 si le joeuur pousse une boite sur un point d\textquotesingle{}interer et que le joueu est aussi sur un point d\textquotesingle{}interer. \end{DoxyReturn} -Voici le graphe des appelants de cette fonction \+:\nopagebreak +Voici le graphe des appelants de cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -179,7 +183,8 @@ La fonction permet de faire la boucle de jeu. \begin{DoxyReturn}{Renvoie} Void \end{DoxyReturn} -Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak +Voici le graphe d\textquotesingle{}appel pour cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -206,14 +211,16 @@ La fonction renvois si la partie est perdante. \begin{DoxyReturn}{Renvoie} True si c\textquotesingle{}est perdu, false si c\textquotesingle{}est pas perdu a cette instant. \end{DoxyReturn} -Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak +Voici le graphe d\textquotesingle{}appel pour cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=312pt]{function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph} \end{center} \end{figure} -Voici le graphe des appelants de cette fonction \+:\nopagebreak +Voici le graphe des appelants de cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -242,7 +249,8 @@ Cette fonction verrifie si la partie est gagnante. \begin{DoxyReturn}{Renvoie} True si le joueur a remplis tout les points d\textquotesingle{}interer, false si ce n\textquotesingle{}est pas le cas . \end{DoxyReturn} -Voici le graphe des appelants de cette fonction \+:\nopagebreak +Voici le graphe des appelants de cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -273,14 +281,16 @@ Cette fonction effectue les deplacements du joueur et des boites en fonction de \begin{DoxyReturn}{Renvoie} Void \end{DoxyReturn} -Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak +Voici le graphe d\textquotesingle{}appel pour cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=242pt]{function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph} \end{center} \end{figure} -Voici le graphe des appelants de cette fonction \+:\nopagebreak +Voici le graphe des appelants de cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -307,7 +317,8 @@ La fonction fait une addition de vecteur, (x1+x2, y1+y2). \begin{DoxyReturn}{Renvoie} vect Un vecteur de l\textquotesingle{}addition de one et two. \end{DoxyReturn} -Voici le graphe des appelants de cette fonction \+:\nopagebreak +Voici le graphe des appelants de cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode @@ -332,7 +343,8 @@ Cette fonction renvois transforme le forma time en texte. (min\+:sec) \begin{DoxyReturn}{Renvoie} char Le string du texte. \end{DoxyReturn} -Voici le graphe des appelants de cette fonction \+:\nopagebreak +Voici le graphe des appelants de cette fonction \+: +\nopagebreak \begin{figure}[H] \begin{center} \leavevmode diff --git a/rapport/rapport/latex/function_8c__incl.md5 b/rapport/latex/function_8c__incl.md5 similarity index 100% rename from rapport/rapport/latex/function_8c__incl.md5 rename to rapport/latex/function_8c__incl.md5 diff --git a/rapport/rapport/latex/function_8c__incl.pdf b/rapport/latex/function_8c__incl.pdf similarity index 94% rename from rapport/rapport/latex/function_8c__incl.pdf rename to rapport/latex/function_8c__incl.pdf index 97885642c9c7110806a09e2a544c01f3472cf241..01095726220bef5ba07833d5bef1db9eb019e828 100644 GIT binary patch delta 549 zcmV+=0^0qhO{Gn+U?YEzn=lZ)`&Z1NRTEVL+kit>(Mp@7TCKLNSdyxTYPE8So1i8b z8MA8sefd*Qi>>~ zX@qD5ghVk~EFj#TYXM=#_o6`n5Z;%&2EG9W3^_bHXeHZ913`b+*Mo|is*>7WZ`$wL zK_AQNr$@AE3!QN#T%Cm;TE5F+Wt~v9N)SJ9dRGWz}OF2*2ca{mFzddGn*KT+UN^cxq&;3K1Oi={U7nMyO3(ZoumO zYOFBG->Ijs)f0bWBqZ3%B-qIu9oXDUXMH%*-{B^km^$(g2JFhFKJxRQ>i^uHj0k&= zfnYl&HYO1DA%&z1AIF|~Up^eg33Z$$1X6$Pr>oN^ooVnri`*^%cc5 zCX`~r%ya%8lXn#GD0WV#rspiVY-FW{ou>3saI0in zzZwIF4yItMc-7SQW5v0L@4(n5`qRo}t;KU$i2Qar7=~QsQR7r3nRFk}btq!onsg%d%}ros=HRvZ#)lm}V^_ z%S-d`s}DQ1*;7Amqo*0`y*D!^fKdtzBMu2p5hcJlMhS325d+Q%q8MfbBT8YGQA8oj z5=0XqBuUX?0rBo!ONck(AR7b#@qM{(;44tTki&zAR;sNG5OjZiJ*c>;DrNljw*6*2 z^uDZq1jOjJFdLzzuXE6+R_r&btc?FS=h2M8oJEvD!ucQ~B#l^~5DtMvE(;S%9UQ87 zcXtDeg$rEVu`5iesvg@y{5iktPd0?ftM6^)a~`wfW20JK$mnREPE(ge%w!CvO*z~@0a@57P)4!7CF){%cOU|%-%Nu2*w|Ht;pig5QB z2zFEAVggAYQea*9F!n6?^6n&`P{-+F*#>C%)c+{hX(@BnwI{T}LDsUKVtj9%^n?S~ z-%K}J?b||Xm=vPa3P?n)Y>wGmOx|ET9g}q{2d}&J=y&D9@Ppi!VyS*wqS!l~*`9ND*~rRBH%-~4;8v@) zelZ3f9ZbPai>j&JW5v0L@4(t7`_sy1t>trB$ozIW7=~PiDQRGKd2=}Fjr|k(QFNQ( n#ys`T^064dfz?VFaZ-m)x&8ADgpYeTX!9?Q?laA^bR{tXyR{Nh diff --git a/rapport/rapport/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 b/rapport/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 similarity index 100% rename from rapport/rapport/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 rename to rapport/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.md5 diff --git a/rapport/rapport/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.pdf b/rapport/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.pdf similarity index 98% rename from rapport/rapport/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.pdf rename to rapport/latex/function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.pdf index e2bd63ec3af51e706c7a3f6e400a47ebbf392907..580479009e31434bd4142de17240d6915c20f514 100644 GIT binary patch delta 170 zcmV;b09F5#Nt8*jt|EV|u(jV&_?FV^<4dIipL{bE<6~vMzsZj=tlVw$Ctir+M`$b? zf$q!ybr(~}GrFJfzHN4!v#`zDgQ$IM-Fmx8oB1!J`U63{aqQip)qVWD@^SJ0_8>qP zaog-#AGcV`?KeG4NL&18m2*c*U@04kj8^4u)6=GX)Blx$-T)nX3oyqo(Vzd$b?&)Y Y4vdy*_mj;>uQ+g=zW~CEvq~dM0oiz5^Z)<= delta 170 zcmV;b09F5#Nt8*jt|EUdr4;--3g1$CeSE1@;FE8LVtlO3_c!@5hLyW*{=^GW{0NO@ zBhY>MzwTlRc}DjW-nY$ea~8H)dl0pcty^z5X*2(2RDU3dH;%nKw7QRq>*E${x&5Yx32BS}ta9#12`ptJkI~6SKq$vOLy*Kgo82!-l~=Kc{

D>j6$5ogh7%fgduR`WIl&*^LA1Y=3=KB0s!G-RW|Sg z7*HtSrGu8btt}wAy&Xl|)wQ;rd);nr2YspPUp-f(Pq^tBabuB+Pmej6()8p4+3F z$ona9&zUz7qQQTBxhAbA=JP=v$CZ=HUuuZe(+Ga%Ev{3T19&Z(?c+GBO}AAa7!7 w3LqdLG&un_ljIpI0ysI75gMut2{J(PEdv7pfa(gjlgJt$2sa8PB}Gq03dP+B>i_@% delta 534 zcmV+x0_pwlHSaaB=of$0atVbd8Kra^nUk>(qYOn>6SKq$vOLy*Kgo82!-m0}p3}WO z&k2E&6gVZALxMR;AmKSd0Vx%PQAo3tFyI*{3_+kEvl+yj*OP{LC3m_Z01!V_WdlEe z0fhpdJ7{6r+5wWgyHUh_T^rZA*X`DI(5I^Y)g#Wf%B`f;U0i>FzP7SlnW}anc}gM4 zql^P0M*Pa=dGPvwU%JrB^#LA2WWnk^_b{6UBiKVn%2lR5V{3@N6_4kWH(~PjrLDU= zKZT0+?s#}3St7Es+-9oO=}TUw9CNXy3KNt!RAgcr68O18j`ZQDKbWp zb8mj2_@2_~b(>**;N2kgS@%nCpLJQux%uN;r2b=^L7rY;cB^(eY{kvx`hzv?=^u4F zbR_P^%DOp)QtI^#KZ2)ApHB;aYpH)%N*53Fk&cCKOly^HfM05kH@5N5sN1lx;oZ7k z^V;{bkWL=VZkX7=p3%V9s*QyG3q9iI*^|T>AOSU#+$rb)Y#rPqzCHtV=p`Eyji1wt6c-Z^<)gzu{|%-@{tB;-77 z>aHmRE&4mk-P+sG!<%X))@mxegjS`$Nq=PfwEGy(UF+`Z<-ibO8CQ6)z<9bl3GfRZ Lis{X>&K@@b34&O3 delta 157 zcmV;O0Al}zK!rfCKOTQk`jhyA;d920_XCgb2Rs|@`tjo5M*BYal{>3{P|%D%fk@Aj z-o7qX8)9}N-wt@w)ZO|~nkMZ|mR>im+N|SZ<gmO^&K@@bf8tei diff --git a/rapport/rapport/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 b/rapport/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 similarity index 100% rename from rapport/rapport/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 rename to rapport/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.md5 diff --git a/rapport/rapport/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.pdf b/rapport/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.pdf similarity index 91% rename from rapport/rapport/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.pdf rename to rapport/latex/function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.pdf index 7d974169c8a7ca12027d93a8b13d606450694c59..fe4d4c4e10ff03baec48927f0794b11c6844e6ec 100644 GIT binary patch delta 608 zcmV-m0-ybWHh?y;`4@l3atVbd8KrbBo|CZ;qYOn>6SKq$vOLy*Kgo82!-l~=Kc{

D>j6$5ogh7%fgduR`WIl&*^LA1Y=3=KB0s!G-RW|Sg z7*HtSrGu8btt}wAy&Xl|)wQ;rd);nr2YspPUp-f(Pq^tBabuB+Pmej6()8p4+3F z$ona9&zUz7qQQTBxhAbA=JP=v$?;x9KScZJ^iC@ zhmOSE7*RJTUrN56;RkSZsq^2`om#2il~l$3Vx(iC8r>SH8b~fR#~a(YYt(I+-|%i- zuX*kJSqdu-dN)k$ZqI1oYt=@={sl_9=H!#q86W{Rll2)Z0XUPv7aEg08b((o%sUEz zKoA4a%=iNlEL3D~w#Trrv$M4GYF(qYOn>6SKq$vOLy*Kgo82!-m0}p3}WO z&k2E&6gVZALxMR;AmKSd0Vx%PQAo3tFyI*{3_+kEvl+yj*OP{LC3m_Z01!V_WdlEe z0fhpdJ7{6r+5wWgyHUh_T^rZA*X`DI(5I^Y)g#Wf%B`f;U0i>FzP7SlnW}anc}gM4 zql^P0M*Pa=dGPvwU%JrB^#LA2WWnk^_b{6UBiKVn%2lR5V{3@N6_4kWH(~PjrLDU= zKZT0+?s#}3St7Es+-9oO=}TUw9CNXy3KNt!RAgcr68O18j`ZQDKbWp zb8mj2_@2_~b(>**;N2kgS@%nCpLJQux%uN;r2b<}K%QP-cB^(eY{kvx`hzv?=^u4F zbR_P^%DOp)QtI^#KZ2)ApHB;aYpH)%N*53Fk&cCKOly^HfM05kH@5N5sN1lx;oZ7k z^V;{bkWL=VZkX7=p3%V9s*QyG3qZ=|+>_NAAOSU#_8BVzIWUu}0v?k=8bMfNU|{(F zpNWBofdNFYfe2<0!N|zi#lXPGzz-xCOF*(*K$hrd5cfNfV5$ZZ;!PmdL?9s?0U`>3 vgvccj@e*Pl3y5F>5v(ABol)``P*(CU0|Nlls0>4s*%}`RGYTaoMNdWw2dE-W diff --git a/rapport/rapport/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 b/rapport/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 similarity index 100% rename from rapport/rapport/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 rename to rapport/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.md5 diff --git a/rapport/rapport/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.pdf b/rapport/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.pdf similarity index 90% rename from rapport/rapport/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.pdf rename to rapport/latex/function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.pdf index 761220fe01ba9a7aab21641691d77c5d6adca8da..dc6f785ad24b17f1852fe327e4e97401ebd5e355 100644 GIT binary patch delta 614 zcmV-s0-62yIQTfQ6d8YAYuhjsefO`pu#F`QVqN)5DxuIMqm*tVb29cY%1|UFF-z=V z%VYiblVm4N+K0jDlaJ4puFgHWR|q7CAt6Bu5lsV%knkjkAdRyifs|W{Ko%zfrNA%? zC~#x}jQ}ytg7Fx_<>Ns^I2Rk;1OO1;7pj3DK!HFG51yJ zE90q8Mfs~^Ox;Q|7q#~L9QCyoYF-tkamg{xMhQfGlqG=dIZk-Lz=BRduBGX=`5> ztdz(S#F%7i=n{X}@?DO}0-OuqtwEOgKTqgOPi#fK35ZXIcx-F7(dTY-6e4|XGibyz zrB<0#I$m=XC&<}~NQ_XVgk|iXW_)S)wjviNfW$SD!wAt4Qb>CEaA{y?(#M_N2ff~t ze{-N+s@K@CthLUo{;s+^aTM73=_Q8u)?zQX)B2=zURQsrmAZz36h&PDj*yKg47SD` znyWDM?4}lnZ6TXcRd0sFZi;FxoY6C3Gz?}}l+YL{C79YT|3L6PA;U|tZYtqjKS9TF zIw}0DRUszTA1l-q8pRwqKaFf@v}-JOT7Fws?cqg(c=oJ6mbECGgF8w-9_c%{BFZ7p>J+3C#lrf=+1<(t$EiSKytYkKK!r)nyU*j1apZu>Ny zm3?`GXP5jJ=s`U#lSmsN0XdUt8=VD5W8w;IlM5U|1MLeOlTaKV2sR2OB}Gq03e!m; A-T(jq delta 613 zcmV-r0-F8!IQKZP6d8X}Yuhjoe)q39*v1kDu}-#Zxr9QKj8eLd%*oipC_|By#4NFc zEsyozPm-N9X&(loZ=b$9N#A|C69NfhU?fN&qDepzSjK_~k~j?*B$=fMq%jL91&(Pz zAwwR}2oRGr7>^-bJ{~lLbFtA)007~Ap&IxB6bR(-;HhcVmIi+?xV}EyaZ{F+@!>_g zGM@TWl)pO0)U7mgQER`?QD0l3=2cM|cR0rBh(VN%QU=JMW0v&^7IXq~Els!02RVnB z^r0IVj~#Hh7bZQ2PM}eK6USfD}E%t&ttxrnlb)|n=scRTWQPdUS2>FP@U~9~w zxe7ziZfbGZ7P1*t^=3Hirl{7!89ft5!(etr35}6bf{a=Cf#7>WhL>X9RKmM{f{x>K zQutY`LQJYZR;Vj9iZjTv)5w-ayT;4=)EwF3#mBs+sRogn#E-|^npyT z`|<_P9{DfcAw4CNNgE&mIFo7{odq{z;|PqC3>-oO;tLv+Q5+u#H3}sqMNdWwu@oXG diff --git a/rapport/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 b/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 similarity index 100% rename from rapport/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 rename to rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.md5 diff --git a/rapport/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.pdf b/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.pdf similarity index 98% rename from rapport/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.pdf rename to rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.pdf index 8164499f0767ff9f6aba3b9a08abeffc6e6147d0..0a30767ae7084aa0e7223a6289d3cfc0a316b914 100644 GIT binary patch delta 159 zcmV;Q0AT-xJcT^4K^%YO$Lt+tZz-MZryMRocr#p9(} z_IfN^7q%*++X?4&)oq?_vS{7eW7oAQn@#wbeHhIb;NiJZJM~d#?q^}$;{0T1J1tyO zb+vU3WZQ4Nd|dS+wr#vFqBD%_e-zK8)rI@bKKIo%*OV_p`8WaelJ1offXC zy4t!1vh6o_&r#!l6mg@6a~BSgh-6iKr~8!q+)hnv?yB`rzyA&!?3BOX&z+Y41}tco Nqmuy_6SLtQBmo9QSWW-{ diff --git a/rapport/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 b/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 similarity index 100% rename from rapport/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 rename to rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.md5 diff --git a/rapport/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.pdf b/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.pdf similarity index 92% rename from rapport/rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.pdf rename to rapport/latex/function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.pdf index 963661f095f384894faa2c6470c5b6eb1b08ced4..c95f5d57e34cec7af15919e0b8a0238490174c57 100644 GIT binary patch delta 502 zcmVSpd4g3HG6bg9mprvVR2S{#jM-g{*ZCvMG zw_DdipQ`#-k2u>Zw~|(OaRK_;%5r6@+J)pPg+xSo28bACS9T_X*T4JHg;uT)@P7~@ z3s&#BgZVrd!5%tNt}^u*TSNS9m*IY8hC%mrldv{)SPOB4ZS1{wqFEd{620y3MdY@NSU$tox<6 z&$_JS!u;_qQvWa}K#0q3)lP@4m|c!PSks>VQMW@!;%=<0n^P#IUeE9&ct5)I`ETh@ z-Rs|#(#6AKq+_8Q(^{n)$SyU<8{7D6)NNSU@NQkNdF}gIN+%CyH%#nr&uHLl)kebp s1xvH$<&&@(AOSX$(HYnbFi=+V76StStt$&OleHQj2sjEQB}Gq03Uzey+5i9m delta 501 zcmV+8`rtl z?bdbBr>g$dBhI$Ut)$gmT!6l|vRs*}b|HC6A<3hR10qKJ%I10S`hQ=#(8~1z9)Ch) z!RkHtFq;J<*h5FkRi-{;Yly!UkLQy&Vecz7dOBC@jFW~$WbOJ1fN zbFrlg6O=bpWMUc;__;%l`5MCb-#s%P8OZq39{ohYPeBCEf{Bm}=JPdaJux2-`bdTz zFPyCa`}qF^Y^>IW8R+h54G?&phkuIklV>RzG#fIktSMWiEliZGtO1NrL<}Z-=T6OS z9Czr>%G175O=RqDI_>4QS_YPu(rK71Zy9ANGDeYeZ+@Wop3>=cn_+$6-5~W@_e*b| zby>-|`Quxp{$nhMJiqK#?R40Ro6GeFYueL4>UQWz+>MoWa|)%@>luCoPd=AEpBDbs zQva@$E*|D19Shx<)+*fqztkLWY~!C%w_#z!yLG+hweM#kojjP`FtL9+*$n*k^GSohlsjD^0Pr8Ow1RIy0Yd_h4YVlg+yH+;*Vm(rn>;T}<6hMp z(?B1x{6~wJvQ}m(OWou-=yNU8Ws&8^ZB7{RB1@0EFA;%9FBXFLG1h8HBwCp^webp@ z5p}K`n9ZEw?2eo=S&{eH3j8n0eZR6MOkQv6yovc9D{pU(hgUKRc!*UfQpUF1kfod| z$t2sx+mK5htEqq6z)Ilun6JPo@zsiCk^j?${!N$Ai*3sS~{U`rO`0Cy`q=~gi=hn{fl>)yv2BW zPSy=7yy=FjpRj@9N1bMJUi`E~U7?f(wkh~9#<|h1(c&Tgt}N=)A05)5qXt=*GOteV zEcM*O_h3U+)BS2;qi*$6rgU;QAN4|_tD-KIt{@uD91lTdpRcA%-O#uR2pVDexx6i_ zg*5U|?7G73b2X~_{0c|6{0kZbK`)a993TNXlO`N2lb;zHlWZJFSi1>;Ko|qy{C7T1 z6ve_9T;~9eN#y*~Sg{0F*!p6_X1c9|$!HB_%~qMhZA#Qg#3U delta 707 zcmV;!0zCb+II98nCR2oR+ZF@Y$= zEJTz6AyJ5CGw|2XCk_5m?sSC!z<^oG{{rmY#555(gf=IK-llu~thW(aN-`jW@O# zVduJm*~}Tv?#L;V6?u=X!2gom_a|$@irVIBX+cb+?EwD%E<%!2bm^Cl7Y27h_ z0Kcd=Ej&Lz;c)Jr6+ORbZlySny@90YcyI*R^-)wq8l+;aWRbXgW@t#ks z;*rRsFxeY(s;+#$L3gD*?K4$*MY)?!+r=uibVA=sqhWG;MKKKsrI>JT&3Bl*#dvy7 z)-5W$>6WVBuz}%6on~@g{Io<}qm%`9D8#VFxzTRWq9OjSEb7xA6Vjlg0a=$auTJh? z>bZyS!Ky;0`_sZk-Rh@I>Ev!cnuSDHMO`XgK{)(#yabhfzM3g@OXD^mXoMB#^0urN z(#S)x>l(Mu)u`|DD;(YOFAv*6CzA#oAOSd&CmbvRF_WMf8Ix@sNLM`yfG`vT;JntK zilR7Z5xTj1C2!$jyoIy3a&@Q)E+2t}0La;)2SgBsFi{F;E&zss*rQ#?6mQ}V@sedH pek4;XRx+RB`kyP|MJ*ajk!{+550o_t6O#=c9|$xGB_%~qMheDuPssoP diff --git a/rapport/rapport/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 b/rapport/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 similarity index 100% rename from rapport/rapport/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 rename to rapport/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.md5 diff --git a/rapport/rapport/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.pdf b/rapport/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.pdf similarity index 90% rename from rapport/rapport/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.pdf rename to rapport/latex/function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.pdf index f5c2537fd4c689d8b0cc1df6991605d2c51f8701..e0f53aefd641d11f972b1a61759136ba3c6eff4b 100644 GIT binary patch delta 651 zcmV;60(AYtI>tJ%6B>V?e0;8Sb?(u_Oy0)Z4BEVZcGQUN;G*P|UbWmzd3 zUbmUD)Tg5S)iJ7WgeGXo6nMF~|@<-o1M`88cNK6wMjNlKD0_)+!rGcGE9}n{A z^m@=^J>$B2TUFEHiHB1CA>I%@s*rhPp zD|KqFJkPSbnxFQCXxysaO{d)i)sh>dmt0AhEUze`0aAZTFx21V1Ht!%OfSWniG+9k z^bDhPR`^-w1)o>HwNO*2uf-?Hd0a~+O=HF9<+pX!o?bMFWk>z7sd?F)%u(WLpzlDN zCWpU;UbU2ug^=m(eAEi5Y^t^vvVrJ)=D6t_{Y=>=HA7-M-ufC|y4$H*aK#VRuCH4^ zOQW(cZ*T~7$$tPsT06Fr6&xS|Ig>UVECDllwwy$OIo6a(PA^B+VjJ%pI`z6B>Wtj?dM{xku+3fj9v$;)LK+>QDrhpyNXr_zr_G(G-CwK!;L@ z(RU~$7&z1i#L#zUGw?P~Ckft)?_}cufOlWy4g3HK1X6gg)S_xj1?XH~k9ORYWuNNrBOE)l^8DMZPN~oeL2W}1CxAboK(hw$Zw{2t*mupT~K8rYfi@gR>* zulMZV3TSuKYi!umQl?e^R^6Kz3iRys61{tEu@&5DeO9`vtGpGmhKb-sT>-inyA&pS zrB2P2=UH}F^V7Z%ja${b>9m`mT5@Cbk}C<5Dw6ophaRa*<$Kyv=_@UbMee2)S zsO`%a96bi|A2>QYu9FuWAOSa%I2;Vidu|vC>X}F26;v(aw^pb883+Z=p h{?EBcL?J2*Guy!32Mq@c3zHum9|$lCB_%~qMhcOaHBJBk diff --git a/rapport/rapport/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 b/rapport/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 similarity index 100% rename from rapport/rapport/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 rename to rapport/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.md5 diff --git a/rapport/rapport/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.pdf b/rapport/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.pdf similarity index 93% rename from rapport/rapport/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.pdf rename to rapport/latex/function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.pdf index 89bcb462e0ea000079ef1aa0eca82cf686913412..67001dac60de4e9e75ff779c07174ddf2708946e 100644 GIT binary patch delta 437 zcmV;m0ZRUqJCr-HU>XVQ^qfw*d+s@7lW7`ie{zf&a5m#H5QN<_+6d+k*rk0w)yi~1 z79)rN=bh^Y=5uE_yGu)%yexWb1L2qSuHRV`Ca)ix!k_t`sM*1sj;|zV*(2F0q?jNX zrGh7vbHpS|Vj>k~Q+I(a-rcd-faBn+rN<)w#|ZfgBh;5ph5O=!4Xjx7UTcjRq1b!v zf1wDyC?oL>Bh3WIEE7aaOOMXbj*5t=oyel>pNxEJPPQ!PM}U#jlCv?;-Xsur=EIo9 zmZ|qgeG0mKFC?yQ^L@}u1Z*p<)3R$=+ZYFd9icA8@ZNIl6K-?;o$0zNvqtF(CQ9a2 z33!H+8G*^cm~(viyNqpNw3AnIIe%M~&G`?7cyu6;Z6%BP z?A}t(J$wh2HQn!)_S8y00euk36w#8cc7S f)lwRHEcadE_V+ZXd)&f7mwy4KNj+k-Y8)y7Jrvv~ delta 437 zcmV;m0ZRUqJCr-HU>XVg^qfw*d+s@5lW7`ie{hT$a5m#H5QN=tv=Gd1u)p^DR4da3 zS&Se8oOiApn9rTz>@F>3^0Mf$4TN9PyMAR&n7n>$3cu%jqGktkI=+&eWshX1kYa*l zlnS0u&JmL=iHTH{P2B;ucz4EP1CE2QmL7}zA0y;1j8I=X74C}@Hn3vRd#yEQgktZt zf14uoqKw2lj5HG*vrG^zEj>CzJ1Qcgb|Qii`#84dJA~gN zG#w}F1{2Wm;JX@*_{7Sh(`wk*;cZs z&+abu+{1TZS=0S$X?LykQ?7J+yBKI8)pglaO4q~-vb;Br&kui!h_su?0{7C8ax=p`6@L`bp ztox<6CskHrq5rrRse2gXkY$(Ms;%-{F}obUH@ZFjqi%(U8{4>R)NPpG@NQkNdF}gI3M&qJH%#nq&uHLl z)kebp1xmW+Vpm1eBG`WMBXQvUUoF3T19&b98cLVQmU!Ze(v_Y6^37 WVRCeMa%E-;HZ?Fc3MC~)PeuwCas7b+ delta 505 zcmV+ z8`rtl?bdbBr>g$dBhI$Ut)$gmT!6l|vRs*}b|HC6A<3hR10qKJ%I10S`hQ=#(8~1z z9)Ch)!RkHtFq;J<*h5FkRi-{;Yly!UkLQy&Vecz7dOBC@jFW~$Wb zOJ1fNbFrlg6O=bpWMUc;__;%l`5MCb-#s%P8OZq39{ohYPeBCEf{Bm}=JPdaJux2- z`bdTzFPyCa`}qF^Y^>IW8R+h54G?&phkuIklV>RzG#fIktSMWiEliZGtO1NrL<}Z- z=T6OS9Czr>%G175O=RqDI_>4QS_YPu(rK71Zy9ANGDeYeZ+@Wop3>=cn_+$6-5~W@ z_e*b|by>-|`Quxp{$or)o?mvWb~<$br0`%(v#KpMFmio8 zh`1@sO55XQ`$b#R+oJsDEV^!Uy~t{1g=#B^2V#`&3No~4U%E_nrB+U zXnw^h4;bf^Nqi@-DSJif_&jB^yWnNFXZodc%JZFC7umG>f$37bC2kEa!_#IfwK84F z=qcc~uG&?@MHgA?povy>RyGIov;5eb?*NOZdToYYbM?K*ReC!ev{R~FpEZ!2{y7|( z1~QleQ!v0XLJ^B;yR@ bKv|W03=9DExC>5`#w8yJI0_{tMNdWw-dH+l delta 642 zcmV-|0)74LOYKXrWFmiUkCQ+U{=UCrK4@%X0{g-)aA_{Nw&rp%*!CWo~YfEgQ zfyLN=@4f(1dtdZogal@0XJDRrW`+Pp0dR~2Ff336Twp{QM3f=@j0EBkGmb)tqX1C~ z1T%(c07PF%tCUbgIgmiaXf^|Xb2>`!SLs$Z2mt*1B5&X`P{4nXz=Jg{s(Dn5w z;-)MsWsleG7iCRvi}IVZsJhM6Dy^lBGo}x1ny;#&ROaJ^g+Ms=I8a8skpHHL*uIRD z6I~jK%v2vNV(qQbaMB&#z-(p&BXFv~EKQ&Gos_}oDufZVxq>G^~e}|u5;-^7iV8z_iOt2srNrVKZ63)RXXXvT(aZ%zK z;J>z|_4&u>*%Roa&=a&LorT0BmzpDfaDAc=^qK7g7CyHRYMJJLT88)SL1QuJSkIIh z79$g2y-0!gB7?9KAI_`jD)nYB52(v+DB=pJ`|5uQ*wlYgCRN9AOSd&)+FN$ c6F^y&`wR>K^}`ELlf@+;2ssKRB}Gq03IPNoT?OQGG+p>_mgVo9gHV*7+ z-N<&tb`XE59>$XiVe#t6(7KxE{Pf(*LDeEU>C1U(tIVLbaJ>UN?^h#*LBjN(hKm`& z<}u_}BpVV)Lim4lt&&&b{aIX4ATo(m0`dL-Y1k_vDjD?kI$8*fvEjz}(TWjF3STId zJPfr^u&8;XB#?;Y5rxG`>#o0vV}~9U?@mqKM^YV^OYg4|+)A(+--aSKPeuq(f~Q(-YPGO?kWKaXN)FvW9y)Yp z;a>5!@9bUm%LqS!(Myb{jj7s-UrjBl`}NGoN_dBRNT)mJJKCEc$L*2bX}h58T3F9# d!!>$?B| delta 487 zcmVP)Lh7pw-Hxrj2Oh z%5f0;_t>!$Qh{}UFo$H35JrKg3&J4HC}9Y>Em$rg z-o0ET#DzG>mHBqPgxRYfUDMY*=f~$(b-I$#(VS0nS7irvg{v*NdB0jIEE1;w)Sc}J zE>9tMBDoMD3E_X!wMt%z_a}KKfygLQ0qFbx)3DQ0mMZA$b#xF|W5bK_qZ1>T6mBTA z+IN-IFsnqZ6<~yU#9($b=F;B8agQFfxE$-Mjg&sj=iXl}g_B|pO}8)bI(R!6J#zaf_qAB5-9|@=jgf8-va$YNtM2lThdny6 zaHmDnUff&N%K$%s)k_YiwXNF7Uv(wR`_;tAQhJA5NXIv)JKEYGr{5#D({4fewXmMg dS{QLshcL4JUnUb@+ct6b4}A0EKeIU?ECH9y^soQ` diff --git a/rapport/rapport/latex/read_8h_source.tex b/rapport/latex/read_8h_source.tex similarity index 100% rename from rapport/rapport/latex/read_8h_source.tex rename to rapport/latex/read_8h_source.tex diff --git a/rapport/latex/refman.aux b/rapport/latex/refman.aux new file mode 100644 index 0000000..279f2b6 --- /dev/null +++ b/rapport/latex/refman.aux @@ -0,0 +1,152 @@ +\relax +\providecommand\babel@aux[2]{} +\@nameuse{bbl@beforestart} +\catcode `:\active +\catcode `;\active +\catcode `!\active +\catcode `?\active +\providecommand \oddpage@label [2]{} +\@writefile{toc}{\@ifundefined {etoctocstyle}{\let \etoc@startlocaltoc \@gobble \let \etoc@settocdepth \@gobble \let \etoc@depthtag \@gobble \let \etoc@setlocaltop \@gobble }{}} +\babel@aux{french}{} +\@writefile{toc}{\contentsline {chapter}{\numberline {1}Index des structures de données}{1}{}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {1.1}Structures de données}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {2}Index des fichiers}{3}{}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {2.1}Liste des fichiers}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {3}Documentation des structures de données}{5}{}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {3.1}Référence de la structure essential\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}\_\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}sdl}{5}{}\protected@file@percent } +\newlabel{structessential__sdl}{{3.1}{5}{}{}{}} +\newlabel{structessential__sdl_aaa8e409e04dcf575ef63fd5fb3db06f9}{{3.1}{5}{}{}{}} +\newlabel{structessential__sdl_a966da7a60c4ea3ba301e26ccc5efe452}{{3.1}{5}{}{}{}} +\newlabel{structessential__sdl_a1fc16d5a293af23f808d39c99852502b}{{3.1}{5}{}{}{}} +\newlabel{structessential__sdl_a9c66015289031d34002024c46e89205e}{{3.1}{5}{}{}{}} +\newlabel{structessential__sdl_a34f11ece16600fa6c518deae6321c324}{{3.1}{5}{}{}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.2}Référence de la structure Score}{5}{}\protected@file@percent } +\newlabel{structScore}{{3.2}{5}{}{}{}} +\newlabel{structScore_afa69ea5c1e63b6c39dbfabd46b3cd326}{{3.2}{5}{}{}{}} +\newlabel{structScore_aa01b88964a111cdf0f5c4f57c6b99604}{{3.2}{5}{}{}{}} +\newlabel{structScore_a574993641041cfcbd6b58f376da63676}{{3.2}{5}{}{}{}} +\newlabel{structScore_a9202e14285ba5c068d496c798825c7fb}{{3.2}{5}{}{}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.3}Référence de la structure Vecteur}{6}{}\protected@file@percent } +\newlabel{structVecteur}{{3.3}{6}{}{}{}} +\newlabel{structVecteur_a6150e0515f7202e2fb518f7206ed97dc}{{3.3}{6}{}{}{}} +\newlabel{structVecteur_a0a2f84ed7838f07779ae24c5a9086d33}{{3.3}{6}{}{}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {4}Documentation des fichiers}{7}{}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}display.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}h}{7}{}\protected@file@percent } +\newlabel{display_8h_source}{{4.1}{7}{}{}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.2}function.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}h}{7}{}\protected@file@percent } +\newlabel{function_8h_source}{{4.2}{7}{}{}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.3}read.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}h}{8}{}\protected@file@percent } +\newlabel{read_8h_source}{{4.3}{8}{}{}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.4}Référence du fichier display.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}c}{8}{}\protected@file@percent } +\newlabel{display_8c}{{4.4}{8}{}{}{}} +\gdef \LT@i {\LT@entry + {3}{46.81032pt}\LT@entry + {3}{144.46304pt}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4.1}Documentation des fonctions}{9}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1.1}displayImage()}{9}{}\protected@file@percent } +\newlabel{display_8c_a81a2b2da875550c614a407ec735ff9d9}{{4.4.1.1}{9}{}{}{}} +\gdef \LT@ii {\LT@entry + {3}{63.04623pt}\LT@entry + {3}{163.64185pt}} +\gdef \LT@iii {\LT@entry + {3}{63.04623pt}\LT@entry + {3}{200.3251pt}} +\gdef \LT@iv {\LT@entry + {3}{63.04623pt}\LT@entry + {3}{117.98592pt}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1.2}displayTextSDL()}{10}{}\protected@file@percent } +\newlabel{display_8c_af8c0265ee608800f8daba2540c65c5b0}{{4.4.1.2}{10}{}{}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1.3}getMaxSize()}{10}{}\protected@file@percent } +\newlabel{display_8c_ab9c0348d4cff3f20344d763945c96b40}{{4.4.1.3}{10}{}{}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1.4}initSDL()}{10}{}\protected@file@percent } +\newlabel{display_8c_a46638b64faa8239921eab8c3817847f4}{{4.4.1.4}{10}{}{}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1.5}screenDisplay()}{11}{}\protected@file@percent } +\newlabel{display_8c_a99b9f82dcee1c08efb2101826d2f6b44}{{4.4.1.5}{11}{}{}{}} +\gdef \LT@v {\LT@entry + {3}{28.66687pt}\LT@entry + {3}{136.79523pt}} +\gdef \LT@vi {\LT@entry + {3}{63.04623pt}\LT@entry + {3}{261.32559pt}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1.6}screenDisplayGameSDL()}{12}{}\protected@file@percent } +\newlabel{display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189}{{4.4.1.6}{12}{}{}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.5}Référence du fichier function.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}c}{12}{}\protected@file@percent } +\newlabel{function_8c}{{4.5}{12}{}{}{}} +\newlabel{function_8c_a74650c59d33ff53d62ca3a3f8f56a68c}{{4.5}{13}{}{}{}} +\gdef \LT@vii {\LT@entry + {3}{49.54645pt}\LT@entry + {3}{199.23586pt}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.1}Description détaillée}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.2}Documentation des fonctions}{14}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.1}blockBox()}{14}{}\protected@file@percent } +\newlabel{function_8c_ac51249b2f7941ca06e6a614e071dd444}{{4.5.2.1}{14}{}{}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.2}canIGoDirection()}{14}{}\protected@file@percent } +\newlabel{function_8c_a76df2bc0c692d3397837706a6852ac36}{{4.5.2.2}{14}{}{}{}} +\gdef \LT@viii {\LT@entry + {3}{105.6064pt}\LT@entry + {3}{343.19702pt}} +\gdef \LT@ix {\LT@entry + {3}{19.29791pt}\LT@entry + {3}{222.31146pt}} +\gdef \LT@x {\LT@entry + {3}{25.3097pt}\LT@entry + {3}{103.52318pt}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.3}creatArea2D()}{15}{}\protected@file@percent } +\newlabel{function_8c_af81182d12b72ee349a71d6685217b097}{{4.5.2.3}{15}{}{}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.4}free2D()}{15}{}\protected@file@percent } +\newlabel{function_8c_af19c482f0f97b30cbb0253356ed1724b}{{4.5.2.4}{15}{}{}{}} +\gdef \LT@xi {\LT@entry + {3}{63.04623pt}\LT@entry + {3}{275.48282pt}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.5}inGameLoop()}{16}{}\protected@file@percent } +\newlabel{function_8c_a2387ddb7cde4f9d45198b0c131a60878}{{4.5.2.5}{16}{}{}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.6}islose()}{16}{}\protected@file@percent } +\newlabel{function_8c_ac155bb183b0c26d19758d8d065baf14f}{{4.5.2.6}{16}{}{}{}} +\gdef \LT@xii {\LT@entry + {3}{35.3175pt}\LT@entry + {3}{163.81259pt}} +\gdef \LT@xiii {\LT@entry + {3}{58.32104pt}\LT@entry + {3}{221.60031pt}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.7}isWin()}{17}{}\protected@file@percent } +\newlabel{function_8c_a618903fbb7302d98ef0f3e2e6b35b99a}{{4.5.2.7}{17}{}{}{}} +\gdef \LT@xiv {\LT@entry + {3}{57.3133pt}\LT@entry + {3}{279.98279pt}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.8}move()}{18}{}\protected@file@percent } +\newlabel{function_8c_ac93ca31d854d91eedf3babda7511407d}{{4.5.2.8}{18}{}{}{}} +\gdef \LT@xv {\LT@entry + {3}{27.8117pt}\LT@entry + {3}{86.74762pt}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.9}plusVect()}{19}{}\protected@file@percent } +\newlabel{function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d}{{4.5.2.9}{19}{}{}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.2.10}timeToText()}{19}{}\protected@file@percent } +\newlabel{function_8c_a51c9ba7a24383f1b20dcedfcb570aab5}{{4.5.2.10}{19}{}{}{}} +\gdef \LT@xvi {\LT@entry + {3}{29.80064pt}\LT@entry + {3}{139.27042pt}} +\@writefile{toc}{\contentsline {section}{\numberline {4.6}Référence du fichier main.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}c}{20}{}\protected@file@percent } +\newlabel{main_8c}{{4.6}{20}{}{}{}} +\newlabel{main_8c_aa7f4c4d31124c28a9336ac84241cb2a0}{{4.6}{20}{}{}{}} +\newlabel{main_8c_a3e022139041191876c2fa02a3c51549f}{{4.6}{20}{}{}{}} +\newlabel{main_8c_ae66f6b31b5ad750f1fe042a706a4e3d4}{{4.6}{21}{}{}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.1}Description détaillée}{21}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.7}Référence du fichier read.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}c}{21}{}\protected@file@percent } +\newlabel{read_8c}{{4.7}{21}{}{}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.7.1}Description détaillée}{21}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.7.2}Documentation des fonctions}{21}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.2.1}fileToTab2D()}{21}{}\protected@file@percent } +\newlabel{read_8c_a223592601b10fb9487363ff4bb417d5d}{{4.7.2.1}{21}{}{}{}} +\gdef \LT@xvii {\LT@entry + {3}{58.32104pt}\LT@entry + {3}{231.10452pt}} +\@writefile{toc}{\contentsline {chapter}{Index}{23}{}\protected@file@percent } +\gdef \@abspage@last{27} diff --git a/rapport/latex/refman.idx b/rapport/latex/refman.idx new file mode 100644 index 0000000..68967b9 --- /dev/null +++ b/rapport/latex/refman.idx @@ -0,0 +1,44 @@ +\indexentry{essential\_sdl@{essential\_sdl}}{5} +\indexentry{Score@{Score}}{5} +\indexentry{Vecteur@{Vecteur}}{6} +\indexentry{display.h@{display.h}}{7} +\indexentry{function.h@{function.h}}{7} +\indexentry{read.h@{read.h}}{8} +\indexentry{display.c@{display.c}}{8} +\indexentry{display.c@{display.c}!displayImage@{displayImage}}{9} +\indexentry{displayImage@{displayImage}!display.c@{display.c}}{9} +\indexentry{display.c@{display.c}!displayTextSDL@{displayTextSDL}}{9} +\indexentry{displayTextSDL@{displayTextSDL}!display.c@{display.c}}{9} +\indexentry{display.c@{display.c}!getMaxSize@{getMaxSize}}{10} +\indexentry{getMaxSize@{getMaxSize}!display.c@{display.c}}{10} +\indexentry{display.c@{display.c}!initSDL@{initSDL}}{10} +\indexentry{initSDL@{initSDL}!display.c@{display.c}}{10} +\indexentry{display.c@{display.c}!screenDisplay@{screenDisplay}}{10} +\indexentry{screenDisplay@{screenDisplay}!display.c@{display.c}}{10} +\indexentry{display.c@{display.c}!screenDisplayGameSDL@{screenDisplayGameSDL}}{12} +\indexentry{screenDisplayGameSDL@{screenDisplayGameSDL}!display.c@{display.c}}{12} +\indexentry{function.c@{function.c}}{12} +\indexentry{function.c@{function.c}!blockBox@{blockBox}}{14} +\indexentry{blockBox@{blockBox}!function.c@{function.c}}{14} +\indexentry{function.c@{function.c}!canIGoDirection@{canIGoDirection}}{14} +\indexentry{canIGoDirection@{canIGoDirection}!function.c@{function.c}}{14} +\indexentry{function.c@{function.c}!creatArea2D@{creatArea2D}}{15} +\indexentry{creatArea2D@{creatArea2D}!function.c@{function.c}}{15} +\indexentry{function.c@{function.c}!free2D@{free2D}}{15} +\indexentry{free2D@{free2D}!function.c@{function.c}}{15} +\indexentry{function.c@{function.c}!inGameLoop@{inGameLoop}}{15} +\indexentry{inGameLoop@{inGameLoop}!function.c@{function.c}}{15} +\indexentry{function.c@{function.c}!islose@{islose}}{16} +\indexentry{islose@{islose}!function.c@{function.c}}{16} +\indexentry{function.c@{function.c}!isWin@{isWin}}{17} +\indexentry{isWin@{isWin}!function.c@{function.c}}{17} +\indexentry{function.c@{function.c}!move@{move}}{18} +\indexentry{move@{move}!function.c@{function.c}}{18} +\indexentry{function.c@{function.c}!plusVect@{plusVect}}{19} +\indexentry{plusVect@{plusVect}!function.c@{function.c}}{19} +\indexentry{function.c@{function.c}!timeToText@{timeToText}}{19} +\indexentry{timeToText@{timeToText}!function.c@{function.c}}{19} +\indexentry{main.c@{main.c}}{20} +\indexentry{read.c@{read.c}}{21} +\indexentry{read.c@{read.c}!fileToTab2D@{fileToTab2D}}{21} +\indexentry{fileToTab2D@{fileToTab2D}!read.c@{read.c}}{21} diff --git a/rapport/latex/refman.ilg b/rapport/latex/refman.ilg new file mode 100644 index 0000000..73e32b0 --- /dev/null +++ b/rapport/latex/refman.ilg @@ -0,0 +1,6 @@ +This is makeindex, version 2.17 [TeX Live 2024] (kpathsea + Thai support). +Scanning input file refman.idx....done (44 entries accepted, 0 rejected). +Sorting entries....done (239 comparisons). +Generating output file refman.ind....done (101 lines written, 0 warnings). +Output written in refman.ind. +Transcript written in refman.ilg. diff --git a/rapport/latex/refman.ind b/rapport/latex/refman.ind new file mode 100644 index 0000000..d97bd01 --- /dev/null +++ b/rapport/latex/refman.ind @@ -0,0 +1,101 @@ +\begin{theindex} + + \item {blockBox} + \subitem {function.c}, 14 + + \indexspace + + \item {canIGoDirection} + \subitem {function.c}, 14 + \item {creatArea2D} + \subitem {function.c}, 15 + + \indexspace + + \item {display.c}, 8 + \subitem {displayImage}, 9 + \subitem {displayTextSDL}, 9 + \subitem {getMaxSize}, 10 + \subitem {initSDL}, 10 + \subitem {screenDisplay}, 10 + \subitem {screenDisplayGameSDL}, 12 + \item {display.h}, 7 + \item {displayImage} + \subitem {display.c}, 9 + \item {displayTextSDL} + \subitem {display.c}, 9 + + \indexspace + + \item {essential\_sdl}, 5 + + \indexspace + + \item {fileToTab2D} + \subitem {read.c}, 21 + \item {free2D} + \subitem {function.c}, 15 + \item {function.c}, 12 + \subitem {blockBox}, 14 + \subitem {canIGoDirection}, 14 + \subitem {creatArea2D}, 15 + \subitem {free2D}, 15 + \subitem {inGameLoop}, 15 + \subitem {islose}, 16 + \subitem {isWin}, 17 + \subitem {move}, 18 + \subitem {plusVect}, 19 + \subitem {timeToText}, 19 + \item {function.h}, 7 + + \indexspace + + \item {getMaxSize} + \subitem {display.c}, 10 + + \indexspace + + \item {inGameLoop} + \subitem {function.c}, 15 + \item {initSDL} + \subitem {display.c}, 10 + \item {islose} + \subitem {function.c}, 16 + \item {isWin} + \subitem {function.c}, 17 + + \indexspace + + \item {main.c}, 20 + \item {move} + \subitem {function.c}, 18 + + \indexspace + + \item {plusVect} + \subitem {function.c}, 19 + + \indexspace + + \item {read.c}, 21 + \subitem {fileToTab2D}, 21 + \item {read.h}, 8 + + \indexspace + + \item {Score}, 5 + \item {screenDisplay} + \subitem {display.c}, 10 + \item {screenDisplayGameSDL} + \subitem {display.c}, 12 + + \indexspace + + \item {timeToText} + \subitem {function.c}, 19 + + \indexspace + + \item {Vecteur}, 6 + +\end{theindex} diff --git a/rapport/latex/refman.log b/rapport/latex/refman.log new file mode 100644 index 0000000..48d4def --- /dev/null +++ b/rapport/latex/refman.log @@ -0,0 +1,1094 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/Arch Linux) (preloaded format=pdflatex 2024.12.20) 20 DEC 2024 16:57 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**refman +(./refman.tex +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-02-20> +(/usr/share/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2022/02/03 v1.0f TeX engine tests +) +(/usr/share/texmf-dist/tex/latex/base/book.cls +Document Class: book 2023/05/17 v1.4n Standard LaTeX document class +(/usr/share/texmf-dist/tex/latex/base/bk10.clo +File: bk10.clo 2023/05/17 v1.4n Standard LaTeX file (size option) +) +\c@part=\count188 +\c@chapter=\count189 +\c@section=\count190 +\c@subsection=\count191 +\c@subsubsection=\count192 +\c@paragraph=\count193 +\c@subparagraph=\count194 +\c@figure=\count195 +\c@table=\count196 +\abovecaptionskip=\skip48 +\belowcaptionskip=\skip49 +\bibindent=\dimen140 +) +(/usr/share/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2022/04/13 v1.1d Standard LaTeX ifthen package (DPC) +) +(/usr/share/texmf-dist/tex/latex/tools/array.sty +Rollback for package 'array' requested -> date 2016-10-06. + Best approximation is the release introduced on 2016-10-06. + +(/usr/share/texmf-dist/tex/latex/tools/array-2016-10-06.sty +Package: array 2016/10/06 v2.4d Tabular extension package (FMi) +\col@sep=\dimen141 +\extrarowheight=\dimen142 +\NC@list=\toks17 +\extratabsurround=\skip50 +\backup@length=\skip51 +)) +(/usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty +package info suppressed +) (./doxygen.sty +Package: doxygen + +(/usr/share/texmf-dist/tex/latex/base/alltt.sty +Package: alltt 2021/01/29 v2.0g defines alltt environment +) +(/usr/share/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2023/07/08 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count197 +\calc@Bcount=\count198 +\calc@Adimen=\dimen143 +\calc@Bdimen=\dimen144 +\calc@Askip=\skip52 +\calc@Bskip=\skip53 +LaTeX Info: Redefining \setlength on input line 80. +LaTeX Info: Redefining \addtolength on input line 81. +\calc@Ccount=\count199 +\calc@Cskip=\skip54 +) +(/usr/share/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count266 +\float@exts=\toks18 +\float@box=\box51 +\@float@everytoks=\toks19 +\@floatcapt=\box52 +) +(/usr/share/texmf-dist/tex/latex/tools/verbatim.sty +Package: verbatim 2023-11-06 v1.5v LaTeX2e package for verbatim enhancements +\every@verbatim=\toks20 +\verbatim@line=\toks21 +\verbatim@in@stream=\read2 +) +(/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2023/11/15 v3.01 LaTeX color extensions (UK) + +(/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 274. + +(/usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex +) +(/usr/share/texmf-dist/tex/latex/graphics/mathcolor.ltx) +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1350. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1354. +Package xcolor Info: Model `RGB' extended on input line 1366. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1368. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1370. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1371. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1372. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1373. +) +(/usr/share/texmf-dist/tex/latex/colortbl/colortbl.sty +Package: colortbl 2024/02/20 v1.0g Color table columns (DPC) +\everycr=\toks22 +\minrowclearance=\skip55 +\rownum=\count267 +) +(./longtable_doxygen.sty +Package: longtable_doxygen 2014/10/28 v4.11 Multi-page Table package (DPC) - fr +ozen version for doxygen +\LTleft=\skip56 +\LTright=\skip57 +\LTpre=\skip58 +\LTpost=\skip59 +\LTchunksize=\count268 +\LTcapwidth=\dimen145 +\LT@head=\box53 +\LT@firsthead=\box54 +\LT@foot=\box55 +\LT@lastfoot=\box56 +\LT@cols=\count269 +\LT@rows=\count270 +\c@LT@tables=\count271 +\c@LT@chunks=\count272 +\LT@p@ftn=\toks23 +) (./tabu_doxygen.sty +Package: tabu_doxygen 2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen ve +rsion for doxygen + +(/usr/share/texmf-dist/tex/latex/varwidth/varwidth.sty +Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages +\@vwid@box=\box57 +\sift@deathcycles=\count273 +\@vwid@loff=\dimen146 +\@vwid@roff=\dimen147 +) +\c@taburow=\count274 +\tabu@nbcols=\count275 +\tabu@cnt=\count276 +\tabu@Xcol=\count277 +\tabu@alloc=\count278 +\tabu@nested=\count279 +\tabu@target=\dimen148 +\tabu@spreadtarget=\dimen149 +\tabu@naturalX=\dimen150 +\tabucolX=\dimen151 +\tabu@Xsum=\dimen152 +\extrarowdepth=\dimen153 +\abovetabulinesep=\dimen154 +\belowtabulinesep=\dimen155 +\tabustrutrule=\dimen156 +\tabu@thebody=\toks24 +\tabu@footnotes=\toks25 +\tabu@box=\box58 +\tabu@arstrutbox=\box59 +\tabu@hleads=\box60 +\tabu@vleads=\box61 +\tabu@cellskip=\skip60 +) +(/usr/share/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2024/01/20 4.5c verbatim text (tvz,hv) + +(/usr/share/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2022/05/29 v1.15 key=value parser (DPC) +\KV@toks@=\toks26 +) +\FV@CodeLineNo=\count280 +\FV@InFile=\read3 +\FV@TabBox=\box62 +\c@FancyVerbLine=\count281 +\FV@StepNumber=\count282 +\FV@OutFile=\write3 +) +(/usr/share/texmf-dist/tex/latex/tools/tabularx.sty +Package: tabularx 2023/07/08 v2.11c `tabularx' package (DPC) +\TX@col@width=\dimen157 +\TX@old@table=\dimen158 +\TX@old@col=\dimen159 +\TX@target=\dimen160 +\TX@delta=\dimen161 +\TX@cols=\count283 +\TX@ftn=\toks27 +) +(/usr/share/texmf-dist/tex/latex/tools/multicol.sty +Package: multicol 2023/03/30 v1.9f multicolumn formatting (FMi) +\c@tracingmulticols=\count284 +\mult@box=\box63 +\multicol@leftmargin=\dimen162 +\c@unbalance=\count285 +\c@collectmore=\count286 +\doublecol@number=\count287 +\multicoltolerance=\count288 +\multicolpretolerance=\count289 +\full@width=\dimen163 +\page@free=\dimen164 +\premulticols=\dimen165 +\postmulticols=\dimen166 +\multicolsep=\skip61 +\multicolbaselineskip=\skip62 +\partial@page=\box64 +\last@line=\box65 +\mc@boxedresult=\box66 +\maxbalancingoverflow=\dimen167 +\mult@rightbox=\box67 +\mult@grightbox=\box68 +\mult@firstbox=\box69 +\mult@gfirstbox=\box70 +\@tempa=\box71 +\@tempa=\box72 +\@tempa=\box73 +\@tempa=\box74 +\@tempa=\box75 +\@tempa=\box76 +\@tempa=\box77 +\@tempa=\box78 +\@tempa=\box79 +\@tempa=\box80 +\@tempa=\box81 +\@tempa=\box82 +\@tempa=\box83 +\@tempa=\box84 +\@tempa=\box85 +\@tempa=\box86 +\@tempa=\box87 +\@tempa=\box88 +\@tempa=\box89 +\@tempa=\box90 +\@tempa=\box91 +\@tempa=\box92 +\@tempa=\box93 +\@tempa=\box94 +\@tempa=\box95 +\@tempa=\box96 +\@tempa=\box97 +\@tempa=\box98 +\@tempa=\box99 +\@tempa=\box100 +\@tempa=\box101 +\@tempa=\box102 +\@tempa=\box103 +\@tempa=\box104 +\@tempa=\box105 +\@tempa=\box106 +\c@minrows=\count290 +\c@columnbadness=\count291 +\c@finalcolumnbadness=\count292 +\last@try=\dimen168 +\multicolovershoot=\dimen169 +\multicolundershoot=\dimen170 +\mult@nat@firstbox=\box107 +\colbreak@box=\box108 +\mc@col@check@num=\count293 +) +(/usr/share/texmf-dist/tex/latex/multirow/multirow.sty +Package: multirow 2021/03/15 v2.8 Span multiple rows of a table +\multirow@colwidth=\skip63 +\multirow@cntb=\count294 +\multirow@dima=\skip64 +\bigstrutjot=\dimen171 +) +(/usr/share/texmf-dist/tex/latex/hanging/hanging.sty +Package: hanging 2009/09/02 v1.2b hanging paragraphs and punctuation +\h@ngcommawd=\skip65 +\h@ngfstopwd=\skip66 +\h@ngquotewd=\skip67 +\h@ngdquotewd=\skip68 +\h@ngquerywd=\skip69 +\h@ngexclwd=\skip70 +\h@ngcolonwd=\skip71 +\h@ngscolonwd=\skip72 +) +(/usr/share/texmf-dist/tex/generic/iftex/ifpdf.sty +Package: ifpdf 2019/10/25 v3.4 ifpdf legacy package. Use iftex instead. +) +(/usr/share/texmf-dist/tex/latex/adjustbox/adjustbox.sty +Package: adjustbox 2022/10/17 v1.3a Adjusting TeX boxes (trim, clip, ...) + +(/usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2022/06/16 v2.9 package option processing (HA) + +(/usr/share/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(/usr/share/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks28 +\XKV@tempa@toks=\toks29 +) +\XKV@depth=\count295 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +(/usr/share/texmf-dist/tex/latex/adjustbox/adjcalc.sty +Package: adjcalc 2012/05/16 v1.1 Provides advanced setlength with multiple back +-ends (calc, etex, pgfmath) +) +(/usr/share/texmf-dist/tex/latex/adjustbox/trimclip.sty +Package: trimclip 2020/08/19 v1.2 Trim and clip general TeX material + +(/usr/share/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2021/08/11 v1.11 sin cos tan (DPC) +) +(/usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 107. +) +\Gin@req@height=\dimen172 +\Gin@req@width=\dimen173 +) +(/usr/share/texmf-dist/tex/latex/collectbox/collectbox.sty +Package: collectbox 2022/10/17 v0.4c Collect macro arguments as boxes +\collectedbox=\box109 +) +\tc@llx=\dimen174 +\tc@lly=\dimen175 +\tc@urx=\dimen176 +\tc@ury=\dimen177 +Package trimclip Info: Using driver 'tc-pdftex.def'. + +(/usr/share/texmf-dist/tex/latex/adjustbox/tc-pdftex.def +File: tc-pdftex.def 2019/01/04 v2.2 Clipping driver for pdftex +)) +\adjbox@Width=\dimen178 +\adjbox@Height=\dimen179 +\adjbox@Depth=\dimen180 +\adjbox@Totalheight=\dimen181 +\adjbox@pwidth=\dimen182 +\adjbox@pheight=\dimen183 +\adjbox@pdepth=\dimen184 +\adjbox@ptotalheight=\dimen185 + +(/usr/share/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty +Package: ifoddpage 2022/10/18 v1.2 Conditionals for odd/even page detection +\c@checkoddpage=\count296 +)) +(/usr/share/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks30 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/share/texmf-dist/tex/latex/stackengine/stackengine.sty +Package: stackengine 2021/07/22 v4.11\ Stacking text and objects in convenient +ways + +(/usr/share/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count297 +) + +! LaTeX Error: File `listofitems.sty' not found. + +Type X to quit or to proceed, +or enter new name. (Default extension: sty) + +Enter file name: +\c@@stackindex=\count298 +\@boxshift=\skip73 +\stack@tmplength=\skip74 +\temp@stkl=\skip75 +\@stackedboxwidth=\skip76 +\@addedbox=\box110 +\@anchorbox=\box111 +\@insetbox=\box112 +\se@backgroundbox=\box113 +\stackedbox=\box114 +\@centerbox=\box115 +\c@ROWcellindex@=\count299 +) (/usr/share/texmf-dist/tex/latex/enumitem/enumitem.sty +Package: enumitem 2019/06/20 v3.9 Customized lists +\labelindent=\skip77 +\enit@outerparindent=\dimen186 +\enit@toks=\toks31 +\enit@inbox=\box116 +\enit@count@id=\count300 +\enitdp@description=\count301 +) +(/usr/share/texmf-dist/tex/generic/alphalph/alphalph.sty +Package: alphalph 2019/12/09 v2.6 Convert numbers to letters (HO) + +(/usr/share/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +)) + +! LaTeX Error: File `ulem.sty' not found. + +Type X to quit or to proceed, +or enter new name. (Default extension: sty) + +Enter file name: +\xrefbox=\box117 +\xreflength=\skip78 +\CodeWidthChar=\skip79 +\CodeHeightChar=\skip80 +\DoxyCodeWidth=\skip81 +\c@DoxyEnumeratei=\count302 +\c@DoxyEnumerateii=\count303 +\c@DoxyEnumerateiii=\count304 +\c@DoxyEnumerateiv=\count305 +\c@DoxyEnumeratev=\count306 +\c@DoxyEnumeratevi=\count307 +\c@DoxyEnumeratevii=\count308 +\c@DoxyEnumerateviii=\count309 +\c@DoxyEnumerateix=\count310 +\c@DoxyEnumeratex=\count311 +\c@DoxyEnumeratexi=\count312 +\c@DoxyEnumeratexii=\count313 +\enitdp@DoxyEnumerate=\count314 +\enitdp@DoxyItemize=\count315 +\c@subsubsubsection=\count316 +\c@subsubsubsubsection=\count317 +\c@subsubsubsubsubsection=\count318 +\c@subsubsubsubsubsubsection=\count319 +) (/usr/share/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2021/02/14 v1.3d Input encoding file +\inpenc@prehook=\toks32 +\inpenc@posthook=\toks33 +) +(/usr/share/texmf-dist/tex/latex/base/makeidx.sty +Package: makeidx 2021/10/04 v1.0m Standard LaTeX package +) +(/usr/share/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2020/02/02 v2.0n Standard LaTeX package +) +(/usr/share/texmf-dist/tex/latex/wasysym/wasysym.sty +Package: wasysym 2020/01/19 v2.4 Wasy-2 symbol support package +\symwasy=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `wasy' in version `bold' +(Font) U/wasy/m/n --> U/wasy/b/n on input line 93. +) +(/usr/share/texmf-dist/tex/generic/iftex/ifxetex.sty +Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. +) +(/usr/share/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2024/02/07 v24.2 The Babel package +\babel@savecnt=\count320 +\U@D=\dimen187 +\l@unhyphenated=\language7 + +(/usr/share/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@readstream=\read4 +\bbl@dirlevel=\count321 + +(/usr/share/texmf-dist/tex/generic/babel-french/french.ldf +Language: french 2024-02-29 v3.5s French support from the babel system +Package babel Info: Hyphen rules for 'acadian' set to \l@french +(babel) (\language6). Reported on input line 91. +Package babel Info: Hyphen rules for 'canadien' set to \l@french +(babel) (\language6). Reported on input line 92. +\FB@stdchar=\count322 +Package babel Info: Making : an active character on input line 420. +Package babel Info: Making ; an active character on input line 421. +Package babel Info: Making ! an active character on input line 422. +Package babel Info: Making ? an active character on input line 423. +\FBguill@level=\count323 +\FBold@everypar=\toks34 +\FB@Mht=\dimen188 +\mc@charclass=\count324 +\mc@charfam=\count325 +\mc@charslot=\count326 +\std@mcc=\count327 +\dec@mcc=\count328 +\FB@parskip=\dimen189 +\listindentFB=\dimen190 +\descindentFB=\dimen191 +\labelindentFB=\dimen192 +\labelwidthFB=\dimen193 +\leftmarginFB=\dimen194 +\parindentFFN=\dimen195 +\FBfnindent=\dimen196 +)) +(/usr/share/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex +Package babel Info: Importing font and identification data for french +(babel) from babel-fr.ini. Reported on input line 11. +) +(/usr/share/texmf-dist/tex/latex/carlisle/scalefnt.sty) +(/usr/share/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) +(/usr/share/texmf-dist/tex/latex/psnfss/helvet.sty +Package: helvet 2020/03/25 PSNFSS-v9.3 (WaS) +) +(/usr/share/texmf-dist/tex/latex/psnfss/courier.sty +Package: courier 2020/03/25 PSNFSS-v9.3 (WaS) +) +(/usr/share/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + +(/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +) +\Gm@cnth=\count329 +\Gm@cntv=\count330 +\c@Gm@tempcnt=\count331 +\Gm@bindingoffset=\dimen197 +\Gm@wd@mp=\dimen198 +\Gm@odd@mp=\dimen199 +\Gm@even@mp=\dimen256 +\Gm@layoutwidth=\dimen257 +\Gm@layoutheight=\dimen258 +\Gm@layouthoffset=\dimen259 +\Gm@layoutvoffset=\dimen260 +\Gm@dimlist=\toks35 +) +(/usr/share/texmf-dist/tex/latex/changepage/changepage.sty +Package: changepage 2009/10/20 v1.0c check page and change page layout +\c@cp@cntr=\count332 +\cp@tempcnt=\count333 +LaTeX Info: Redefining \checkoddpage on input line 59. +) +(/usr/share/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +Package: fancyhdr 2022/11/09 v4.1 Extensive control of page headers and footers + +\f@nch@headwidth=\skip82 +\f@nch@O@elh=\skip83 +\f@nch@O@erh=\skip84 +\f@nch@O@olh=\skip85 +\f@nch@O@orh=\skip86 +\f@nch@O@elf=\skip87 +\f@nch@O@erf=\skip88 +\f@nch@O@olf=\skip89 +\f@nch@O@orf=\skip90 +) +(/usr/share/texmf-dist/tex/latex/natbib/natbib.sty +Package: natbib 2010/09/13 8.31b (PWD, AO) +\bibhang=\skip91 +\bibsep=\skip92 +LaTeX Info: Redefining \cite on input line 694. +\c@NAT@ctr=\count334 +) +(/usr/share/texmf-dist/tex/latex/tocloft/tocloft.sty +Package: tocloft 2017/08/31 v2.3i parameterised ToC, etc., typesetting +Package tocloft Info: The document has chapter divisions on input line 51. +\cftparskip=\skip93 +\cftbeforetoctitleskip=\skip94 +\cftaftertoctitleskip=\skip95 +\cftbeforepartskip=\skip96 +\cftpartnumwidth=\skip97 +\cftpartindent=\skip98 +\cftbeforechapskip=\skip99 +\cftchapindent=\skip100 +\cftchapnumwidth=\skip101 +\cftbeforesecskip=\skip102 +\cftsecindent=\skip103 +\cftsecnumwidth=\skip104 +\cftbeforesubsecskip=\skip105 +\cftsubsecindent=\skip106 +\cftsubsecnumwidth=\skip107 +\cftbeforesubsubsecskip=\skip108 +\cftsubsubsecindent=\skip109 +\cftsubsubsecnumwidth=\skip110 +\cftbeforeparaskip=\skip111 +\cftparaindent=\skip112 +\cftparanumwidth=\skip113 +\cftbeforesubparaskip=\skip114 +\cftsubparaindent=\skip115 +\cftsubparanumwidth=\skip116 +\cftbeforeloftitleskip=\skip117 +\cftafterloftitleskip=\skip118 +\cftbeforefigskip=\skip119 +\cftfigindent=\skip120 +\cftfignumwidth=\skip121 +\c@lofdepth=\count335 +\c@lotdepth=\count336 +\cftbeforelottitleskip=\skip122 +\cftafterlottitleskip=\skip123 +\cftbeforetabskip=\skip124 +\cfttabindent=\skip125 +\cfttabnumwidth=\skip126 +) +\@indexfile=\write4 +\openout4 = `refman.idx'. + + +Writing index file refman.idx +(/usr/share/texmf-dist/tex/latex/newunicodechar/newunicodechar.sty +Package: newunicodechar 2018/04/08 v1.2 Defining Unicode characters +) +(/usr/share/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2023/08/05 v3.6o Customizing captions (AR) + +(/usr/share/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2023/07/31 v2.4d caption3 kernel (AR) +\caption@tempdima=\dimen261 +\captionmargin=\dimen262 +\caption@leftmargin=\dimen263 +\caption@rightmargin=\dimen264 +\caption@width=\dimen265 +\caption@indent=\dimen266 +\caption@parindent=\dimen267 +\caption@hangindent=\dimen268 +Package caption Info: Standard document class detected. +Package caption Info: french babel package is loaded. +) +\c@caption@flags=\count337 +\c@continuedfloat=\count338 +Package caption Info: changepage package is loaded. +\caption@adjustwidth@hsize=\dimen269 +\caption@adjustwidth@linewidth=\dimen270 +Package caption Info: float package is loaded. +Package caption Info: longtable package is loaded. + +(/usr/share/texmf-dist/tex/latex/caption/ltcaption.sty +Package: ltcaption 2021/01/08 v1.4c longtable captions (AR) +)) +(/usr/share/texmf-dist/tex/latex/etoc/etoc.sty +Package: etoc 2023/10/29 v1.2d Completely customisable TOCs (JFB) + +(/usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) + +(/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) +) +(/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) +)) +\Etoc@toctoks=\toks36 +\c@etoc@tocid=\count339 +\etoc@framed@titlebox=\box118 +\etoc@framed@contentsbox=\box119 +) +LaTeX Font Info: Trying to load font information for T1+phv on input line 18 +9. + +(/usr/share/texmf-dist/tex/latex/psnfss/t1phv.fd +File: t1phv.fd 2020/03/25 scalable font definitions for T1/phv. +) +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 8.99994pt on input line 189. + +(/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2024-02-20 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count340 +\l__pdf_internal_box=\box120 +) (./refman.aux) +\openout1 = `refman.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 189. +LaTeX Font Info: ... okay on input line 189. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 189. +LaTeX Font Info: ... okay on input line 189. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 189. +LaTeX Font Info: ... okay on input line 189. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 189. +LaTeX Font Info: ... okay on input line 189. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 189. +LaTeX Font Info: ... okay on input line 189. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 189. +LaTeX Font Info: ... okay on input line 189. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 189. +LaTeX Font Info: ... okay on input line 189. +(/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count341 +\scratchdimen=\dimen271 +\scratchbox=\box121 +\nofMPsegments=\count342 +\nofMParguments=\count343 +\everyMPshowfont=\toks37 +\MPscratchCnt=\count344 +\MPscratchDim=\dimen272 +\MPnumerator=\count345 +\makeMPintoPDFobject=\count346 +\everyMPtoPDFconversion=\toks38 +) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +85. + +(/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +LaTeX Info: Redefining \degres on input line 189. + + +Package french.ldf Warning: Please load the "natbib" package +(french.ldf) BEFORE babel/french; reported on input line 189. + +Package french.ldf Info: Setting StandardItemizeEnv=true for +(french.ldf) compatibility with enumitem package, +(french.ldf) reported on input line 189. +Package french.ldf Info: Setting StandardEnumerateEnv=true for +(french.ldf) compatibility with enumitem package, +(french.ldf) reported on input line 189. +LaTeX Info: Redefining \up on input line 189. +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: a4paper +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: twoside +* h-part:(L,W,R)=(71.13188pt, 455.24411pt, 71.13188pt) +* v-part:(T,H,B)=(71.13188pt, 702.78308pt, 71.13188pt) +* \paperwidth=597.50787pt +* \paperheight=845.04684pt +* \textwidth=455.24411pt +* \textheight=702.78308pt +* \oddsidemargin=-1.1381pt +* \evensidemargin=-1.1381pt +* \topmargin=-31.2056pt +* \headheight=12.0pt +* \headsep=18.06749pt +* \topskip=10.0pt +* \footskip=25.29494pt +* \marginparwidth=125.0pt +* \marginparsep=7.0pt +* \columnsep=10.0pt +* \skip\footins=9.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidetrue +* \@mparswitchtrue +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. +\Etoc@tf=\read5 +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 12.9599pt on input line 196. +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 10.79993pt on input line 198. +[1 + + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf-dist/fonts +/enc/dvips/base/8r.enc}] [2 + +] +\tf@toc=\write5 +\openout5 = `refman.toc'. + +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 8.99994pt on input line 204. +LaTeX Font Info: Trying to load font information for U+msa on input line 204 +. + +(/usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 204 +. + +(/usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Trying to load font information for U+wasy on input line 20 +4. + +(/usr/share/texmf-dist/tex/latex/wasysym/uwasy.fd +File: uwasy.fd 2020/01/19 v2.4 Wasy-2 symbol font definitions +) +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 6.29996pt on input line 204. +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 6.29996pt on input line 204. + [1] [2 + +] +Chapitre 1. +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 18.66588pt on input line 207. +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 18.66588pt on input line 207. +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 22.39185pt on input line 207. +(./annotated.tex +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 12.9599pt on input line 1. +) [1 + +] [2 + +] +Chapitre 2. +(./files.tex) [3] [4 + +] +Chapitre 3. +(./structessential__sdl.tex) (./structScore.tex) (./structVecteur.tex [5]) +[6] +Chapitre 4. +(./display_8h_source.tex +LaTeX Font Info: Trying to load font information for T1+pcr on input line 4. + + (/usr/share/texmf-dist/tex/latex/psnfss/t1pcr.fd +File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. +)) +(./function_8h_source.tex [7 + +]) (./read_8h_source.tex) (./display_8c.tex <./display_8c__incl.pdf> + +File: display_8c__incl.pdf Graphic file (type pdf) + +Package pdftex.def Info: display_8c__incl.pdf used on input line 19. +(pdftex.def) Requested size: 350.0pt x 79.88802pt. +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 8.09995pt on input line 26. +LaTeX Font Info: Font shape `T1/phv/m/it' in size <9> not available +(Font) Font shape `T1/phv/m/sl' tried instead on input line 26. +LaTeX Font Info: Font shape `T1/phv/m/sl' will be +(Font) scaled to size 8.09995pt on input line 26. +LaTeX Font Info: Trying to load font information for TS1+phv on input line 2 +6. + (/usr/share/texmf-dist/tex/latex/psnfss/ts1phv.fd +File: ts1phv.fd 2020/03/25 scalable font definitions for TS1/phv. +) +LaTeX Font Info: Font shape `TS1/phv/m/it' in size <9> not available +(Font) Font shape `TS1/phv/m/sl' tried instead on input line 26. +LaTeX Font Info: Font shape `TS1/phv/m/sl' will be +(Font) scaled to size 8.09995pt on input line 26. + [8] +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 10.79993pt on input line 39. +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 7.19995pt on input line 43. +LaTeX Font Info: Font shape `T1/pcr/m/it' in size <8> not available +(Font) Font shape `T1/pcr/m/sl' tried instead on input line 44. +LaTeX Font Info: Font shape `TS1/phv/m/n' will be +(Font) scaled to size 8.99994pt on input line 48. + +Underfull \hbox (badness 10000) detected at line 61 +[][][] + [] + + <./display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.pdf> + +File: display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.pdf Graphic file (ty +pe pdf) + +Package pdftex.def Info: display_8c_a81a2b2da875550c614a407ec735ff9d9_icgraph.p +df used on input line 69. +(pdftex.def) Requested size: 312.0pt x 99.00406pt. +LaTeX Font Info: Font shape `T1/pcr/m/it' in size <7> not available +(Font) Font shape `T1/pcr/m/sl' tried instead on input line 76. + [9] +Underfull \hbox (badness 10000) detected at line 95 +[][][] + [] + + +Underfull \hbox (badness 10000) detected at line 113 +[][][] + [] + + +Underfull \hbox (badness 10000) detected at line 131 +[][][] + [] + +[10] [11] +Underfull \hbox (badness 10000) detected at line 151 +[][][] + [] + + +Underfull \hbox (badness 10000) detected at line 171 +[][][] + [] + + <./display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.pdf> + +File: display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.pdf Graphic file (typ +e pdf) + +Package pdftex.def Info: display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_cgraph.pd +f used on input line 179. +(pdftex.def) Requested size: 312.0pt x 99.00406pt. +) +(./function_8c.tex <./function_8c__incl.pdf> + +File: function_8c__incl.pdf Graphic file (type pdf) + +Package pdftex.def Info: function_8c__incl.pdf used on input line 19. +(pdftex.def) Requested size: 350.0pt x 85.16843pt. + [12] [13] +Underfull \hbox (badness 10000) detected at line 71 +[][][] + [] + + <./function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.pdf> + +File: function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.pdf Graphic file (ty +pe pdf) + +Package pdftex.def Info: function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph.p +df used on input line 79. +(pdftex.def) Requested size: 234.0pt x 135.99933pt. + <./function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.pdf> + +File: function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph.pdf Graphic file (t +ype pdf) + +Package pdftex.def Info: function_8c_ac51249b2f7941ca06e6a614e071dd444_icgraph. +pdf used on input line 87. +(pdftex.def) Requested size: 321.0pt x 99.00406pt. + [14] +Underfull \hbox (badness 10000) detected at line 107 +[][][] + [] + + <./function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.pdf> + +File: function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph.pdf Graphic file (t +ype pdf) + +Package pdftex.def Info: function_8c_a76df2bc0c692d3397837706a6852ac36_icgraph. +pdf used on input line 115. +(pdftex.def) Requested size: 349.0pt x 99.00708pt. + +Underfull \hbox (badness 10000) detected at line 133 +[][][] + [] + + +Underfull \hbox (badness 10000) detected at line 153 +[][][] + [] + +[15] +Underfull \hbox (badness 10000) detected at line 183 +[][][] + [] + + <./function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.pdf> + +File: function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.pdf Graphic file (ty +pe pdf) + +Package pdftex.def Info: function_8c_a2387ddb7cde4f9d45198b0c131a60878_cgraph.p +df used on input line 191. +(pdftex.def) Requested size: 350.0pt x 155.39815pt. + [16] +Underfull \hbox (badness 10000) detected at line 211 +[][][] + [] + + <./function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.pdf> + +File: function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.pdf Graphic file (ty +pe pdf) + +Package pdftex.def Info: function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph.p +df used on input line 219. +(pdftex.def) Requested size: 312.0pt x 136.00557pt. + <./function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.pdf> + +File: function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph.pdf Graphic file (t +ype pdf) + +Package pdftex.def Info: function_8c_ac155bb183b0c26d19758d8d065baf14f_icgraph. +pdf used on input line 227. +(pdftex.def) Requested size: 229.0pt x 99.00557pt. + +Underfull \hbox (badness 10000) detected at line 249 +[][][] + [] + + <./function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.pdf> + +File: function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph.pdf Graphic file (t +ype pdf) + +Package pdftex.def Info: function_8c_a618903fbb7302d98ef0f3e2e6b35b99a_icgraph. +pdf used on input line 257. +(pdftex.def) Requested size: 228.0pt x 99.00406pt. + [17] +Underfull \hbox (badness 10000) detected at line 281 +[][][] + [] + + <./function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.pdf> + +File: function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.pdf Graphic file (ty +pe pdf) + +Package pdftex.def Info: function_8c_ac93ca31d854d91eedf3babda7511407d_cgraph.p +df used on input line 289. +(pdftex.def) Requested size: 242.0pt x 135.99933pt. + <./function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.pdf> + +File: function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph.pdf Graphic file (t +ype pdf) + +Package pdftex.def Info: function_8c_ac93ca31d854d91eedf3babda7511407d_icgraph. +pdf used on input line 297. +(pdftex.def) Requested size: 228.0pt x 99.00406pt. + [18] +Underfull \hbox (badness 10000) detected at line 317 +[][][] + [] + + <./function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.pdf> + +File: function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph.pdf Graphic file (t +ype pdf) + +Package pdftex.def Info: function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d_icgraph. +pdf used on input line 325. +(pdftex.def) Requested size: 350.0pt x 116.669pt. + [19] +Underfull \hbox (badness 10000) detected at line 343 +[][][] + [] + + <./function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.pdf> + +File: function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph.pdf Graphic file (t +ype pdf) + +Package pdftex.def Info: function_8c_a51c9ba7a24383f1b20dcedfcb570aab5_icgraph. +pdf used on input line 351. +(pdftex.def) Requested size: 252.0pt x 99.00253pt. +) (./main_8c.tex <./main_8c__incl.pdf> + +File: main_8c__incl.pdf Graphic file (type pdf) + +Package pdftex.def Info: main_8c__incl.pdf used on input line 15. +(pdftex.def) Requested size: 350.0pt x 146.7597pt. +) (./read_8c.tex [20] <./read_8c__incl.pdf> + +File: read_8c__incl.pdf Graphic file (type pdf) + +Package pdftex.def Info: read_8c__incl.pdf used on input line 11. +(pdftex.def) Requested size: 350.0pt x 120.29486pt. + [21] +Underfull \hbox (badness 10000) detected at line 48 +[][][] + [] + +) [22] (./refman.ind +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 22.39185pt on input line 1. + [23 + + + +]) (./refman.aux) + *********** +LaTeX2e <2023-11-01> patch level 1 +L3 programming layer <2024-02-20> + *********** + ) +Here is how much of TeX's memory you used: + 13389 strings out of 476047 + 222396 string characters out of 5792625 + 1942187 words of memory out of 5000000 + 35219 multiletter control sequences out of 15000+600000 + 613279 words of font info for 105 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 101i,15n,117p,614b,653s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on refman.pdf (27 pages, 239124 bytes). +PDF statistics: + 291 PDF objects out of 1000 (max. 8388607) + 186 compressed objects within 2 object streams + 0 named destinations out of 1000 (max. 500000) + 86 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/rapport/latex/refman.pdf b/rapport/latex/refman.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cee9430fcb0f38e90b4324965be2cc2b3c329556 GIT binary patch literal 239124 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

&Qwl1g>EIVgc;R7FqkJn0;&D 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

a6Z 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 VeeQYzL>wwADGGS>NFA;L_%A-kNrV6Z literal 0 HcmV?d00001 diff --git a/rapport/latex/refman.tex b/rapport/latex/refman.tex index 506834d..14b7318 100644 --- a/rapport/latex/refman.tex +++ b/rapport/latex/refman.tex @@ -204,7 +204,22 @@ \clearemptydoublepage \pagenumbering{arabic} %--- Begin generated contents --- -\input{md_README} +\chapter{Index des structures de données} +\input{annotated} +\chapter{Index des fichiers} +\input{files} +\chapter{Documentation des structures de données} +\input{structessential__sdl} +\input{structScore} +\input{structVecteur} +\chapter{Documentation des fichiers} +\input{display_8h_source} +\input{function_8h_source} +\input{read_8h_source} +\input{display_8c} +\input{function_8c} +\input{main_8c} +\input{read_8c} %--- End generated contents --- % Index \backmatter diff --git a/rapport/latex/refman.toc b/rapport/latex/refman.toc new file mode 100644 index 0000000..57b4e09 --- /dev/null +++ b/rapport/latex/refman.toc @@ -0,0 +1,42 @@ +\@ifundefined {etoctocstyle}{\let \etoc@startlocaltoc \@gobble \let \etoc@settocdepth \@gobble \let \etoc@depthtag \@gobble \let \etoc@setlocaltop \@gobble }{} +\babel@toc {french}{}\relax +\contentsline {chapter}{\numberline {1}Index des structures de données}{1}{}% +\contentsline {section}{\numberline {1.1}Structures de données}{1}{}% +\contentsline {chapter}{\numberline {2}Index des fichiers}{3}{}% +\contentsline {section}{\numberline {2.1}Liste des fichiers}{3}{}% +\contentsline {chapter}{\numberline {3}Documentation des structures de données}{5}{}% +\contentsline {section}{\numberline {3.1}Référence de la structure essential\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}\_\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}sdl}{5}{}% +\contentsline {section}{\numberline {3.2}Référence de la structure Score}{5}{}% +\contentsline {section}{\numberline {3.3}Référence de la structure Vecteur}{6}{}% +\contentsline {chapter}{\numberline {4}Documentation des fichiers}{7}{}% +\contentsline {section}{\numberline {4.1}display.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}h}{7}{}% +\contentsline {section}{\numberline {4.2}function.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}h}{7}{}% +\contentsline {section}{\numberline {4.3}read.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}h}{8}{}% +\contentsline {section}{\numberline {4.4}Référence du fichier display.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}c}{8}{}% +\contentsline {subsection}{\numberline {4.4.1}Documentation des fonctions}{9}{}% +\contentsline {subsubsection}{\numberline {4.4.1.1}displayImage()}{9}{}% +\contentsline {subsubsection}{\numberline {4.4.1.2}displayTextSDL()}{10}{}% +\contentsline {subsubsection}{\numberline {4.4.1.3}getMaxSize()}{10}{}% +\contentsline {subsubsection}{\numberline {4.4.1.4}initSDL()}{10}{}% +\contentsline {subsubsection}{\numberline {4.4.1.5}screenDisplay()}{11}{}% +\contentsline {subsubsection}{\numberline {4.4.1.6}screenDisplayGameSDL()}{12}{}% +\contentsline {section}{\numberline {4.5}Référence du fichier function.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}c}{12}{}% +\contentsline {subsection}{\numberline {4.5.1}Description détaillée}{14}{}% +\contentsline {subsection}{\numberline {4.5.2}Documentation des fonctions}{14}{}% +\contentsline {subsubsection}{\numberline {4.5.2.1}blockBox()}{14}{}% +\contentsline {subsubsection}{\numberline {4.5.2.2}canIGoDirection()}{14}{}% +\contentsline {subsubsection}{\numberline {4.5.2.3}creatArea2D()}{15}{}% +\contentsline {subsubsection}{\numberline {4.5.2.4}free2D()}{15}{}% +\contentsline {subsubsection}{\numberline {4.5.2.5}inGameLoop()}{16}{}% +\contentsline {subsubsection}{\numberline {4.5.2.6}islose()}{16}{}% +\contentsline {subsubsection}{\numberline {4.5.2.7}isWin()}{17}{}% +\contentsline {subsubsection}{\numberline {4.5.2.8}move()}{18}{}% +\contentsline {subsubsection}{\numberline {4.5.2.9}plusVect()}{19}{}% +\contentsline {subsubsection}{\numberline {4.5.2.10}timeToText()}{19}{}% +\contentsline {section}{\numberline {4.6}Référence du fichier main.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}c}{20}{}% +\contentsline {subsection}{\numberline {4.6.1}Description détaillée}{21}{}% +\contentsline {section}{\numberline {4.7}Référence du fichier read.\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}c}{21}{}% +\contentsline {subsection}{\numberline {4.7.1}Description détaillée}{21}{}% +\contentsline {subsection}{\numberline {4.7.2}Documentation des fonctions}{21}{}% +\contentsline {subsubsection}{\numberline {4.7.2.1}fileToTab2D()}{21}{}% +\contentsline {chapter}{Index}{23}{}% diff --git a/rapport/rapport/latex/structScore.tex b/rapport/latex/structScore.tex similarity index 100% rename from rapport/rapport/latex/structScore.tex rename to rapport/latex/structScore.tex diff --git a/rapport/rapport/latex/structVecteur.tex b/rapport/latex/structVecteur.tex similarity index 100% rename from rapport/rapport/latex/structVecteur.tex rename to rapport/latex/structVecteur.tex diff --git a/rapport/rapport/latex/structessential__sdl.tex b/rapport/latex/structessential__sdl.tex similarity index 100% rename from rapport/rapport/latex/structessential__sdl.tex rename to rapport/latex/structessential__sdl.tex diff --git a/rapport/rapport/html/dir_c29cd72601f3278b0ca6974116605d87.html b/rapport/rapport/html/dir_c29cd72601f3278b0ca6974116605d87.html deleted file mode 100644 index 9c4ecc7..0000000 --- a/rapport/rapport/html/dir_c29cd72601f3278b0ca6974116605d87.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - -Sokoban: Répertoire de référence de doxygen_theme - - - - - - - - - - - - - - - -
-
-
Répertoire de référence de doxygen_theme
-
-
-
- - -
- - diff --git a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.map b/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.map deleted file mode 100644 index 5799fe8..0000000 --- a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 b/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 deleted file mode 100644 index 414ee03..0000000 --- a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -5c7df87aed9197953bc0ef9ba6ebf1d1 \ No newline at end of file diff --git a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.png b/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.png deleted file mode 100644 index 9f1023b..0000000 --- a/rapport/rapport/html/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8d7dca388bcfd50926025e1fb24986931c0defd631b32cb2b5630a2579170a9 -size 4596 diff --git a/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.map b/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.map deleted file mode 100644 index 9da3a36..0000000 --- a/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.md5 b/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.md5 deleted file mode 100644 index d8b4916..0000000 --- a/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -26b911bdbc589534481588e06927dbcd \ No newline at end of file diff --git a/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.png b/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.png deleted file mode 100644 index 1c2bb2f..0000000 --- a/rapport/rapport/html/display_8c_af8c0265ee608800f8daba2540c65c5b0_icgraph.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c10b2e0cc6eabf176b9adaf39056efd0aef0b85e002d22333465f02f6403804a -size 4219 diff --git a/rapport/rapport/html/md__2home_2dukantic_2floppy_2sokoban_2README.html b/rapport/rapport/html/md__2home_2dukantic_2floppy_2sokoban_2README.html deleted file mode 100644 index 38c7816..0000000 --- a/rapport/rapport/html/md__2home_2dukantic_2floppy_2sokoban_2README.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - -Sokoban: To Do List - - - - - - - - - - - - - - -
-
- - - - - - -
-
Sokoban -
-
-
- - - - - - - - - - -
-
- - -
-
-
-
-
-
Chargement...
-
Recherche...
-
Aucune correspondance
-
-
-
-
- -
-
-
-
To Do List
-
-
-

-

-Principale

-
    -
  • (1) chargement et affichage d'un plateau de jeu
  • -
-
    -
  • (2) Positionnement et gestion du personnage
  • -
-
    -
  • (3) Positionnement des points a couvrir
  • -
-
    -
  • (4) Positionnement des caisse et leurs déplacements
  • -
-

-Pour aller plus loin

-
    -
  • (1) Txt to map # mur, P player, C caisse, I boutons
  • -
  • (2) Affichage du scord en fonction du temps passé, nbr mouvement player , nbr caisse bien placées
  • -
-
    -
  • (3) Gestion de niveaux et de difficultés
  • -
-
    -
  • (5) Detection de partie perdu
  • -
  • (6) Strategie de résolution
  • -
-
    -
  • (7) Conception des niveaux pour garentir la faisabilité d'un plateau
  • -
-
-
- - -
- - diff --git a/rapport/rapport/html/md_doxygen__theme_2README.html b/rapport/rapport/html/md_doxygen__theme_2README.html deleted file mode 100644 index dad1ac4..0000000 --- a/rapport/rapport/html/md_doxygen__theme_2README.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - -Sokoban: Doxygen Theme - Flat Design - - - - - - - - - - - - - - -
-
- - - - - - -
-
Sokoban -
-
-
- - - - - - - - - - -
-
- - -
-
-
-
-
-
Chargement...
-
Recherche...
-
Aucune correspondance
-
-
-
-
- -
-
-
-
Doxygen Theme - Flat Design
-
-
-

-

See Example 1, Example 2

-

-Sample image 1

-

-

-Sample image 2

-

-

-Requirements

-

Doxygen 1.8.20

-

-How to use

-
    -
  1. Download Doxywizard
  2. -
  3. Go to Expert > HTML > HTML_EXTRA_STYLESHEET

    -

    Add src/doxygen-style.css

    -
  4. -
  5. Go to Expert > HTML > HTML_EXTRA_FILES

    -

    Add all the images from the src/img folder

    -
  6. -
-

-How to change the color pattern and style

-
    -
  1. Open src/doxygen-style.css
  2. -
  3. Modifiy variables in .root.
  4. -
-

-License

-

This project is licensed under [MIT](LICENSE) license.

-
-
- - -
- - diff --git a/rapport/rapport/html/pages.html b/rapport/rapport/html/pages.html deleted file mode 100644 index b68e1c1..0000000 --- a/rapport/rapport/html/pages.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -Sokoban: Pages associées - - - - - - - - - - - - - - -
-
- - - - - - -
-
Sokoban -
-
-
- - - - - - - - -
-
- - -
-
- - -
-
-
-
-
-
Chargement...
-
Recherche...
-
Aucune correspondance
-
-
-
-
- -
-
Pages associées
-
-
-
Liste de toutes les pages de documentation associées :
-
- - -
- - diff --git a/rapport/rapport/html/search/all_10.js b/rapport/rapport/html/search/all_10.js deleted file mode 100644 index e253a22..0000000 --- a/rapport/rapport/html/search/all_10.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['the_20color_20pattern_20and_20style_0',['How to change the color pattern and style',['../md_doxygen__theme_2README.html#autotoc_md5',1,'']]], - ['theme_20flat_20design_1',['Doxygen Theme - Flat Design',['../md_doxygen__theme_2README.html',1,'']]], - ['timetotext_2',['timeToText',['../function_8c.html#a51c9ba7a24383f1b20dcedfcb570aab5',1,'function.c']]], - ['to_20change_20the_20color_20pattern_20and_20style_3',['How to change the color pattern and style',['../md_doxygen__theme_2README.html#autotoc_md5',1,'']]], - ['to_20do_20list_4',['To Do List',['../md__2home_2dukantic_2floppy_2sokoban_2README.html',1,'']]], - ['to_20use_5',['How to use',['../md_doxygen__theme_2README.html#autotoc_md4',1,'']]] -]; diff --git a/rapport/rapport/html/search/all_11.js b/rapport/rapport/html/search/all_11.js deleted file mode 100644 index b3a3531..0000000 --- a/rapport/rapport/html/search/all_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['use_0',['How to use',['../md_doxygen__theme_2README.html#autotoc_md4',1,'']]] -]; diff --git a/rapport/rapport/html/search/all_12.js b/rapport/rapport/html/search/all_12.js deleted file mode 100644 index e5c87fe..0000000 --- a/rapport/rapport/html/search/all_12.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['vecteur_0',['Vecteur',['../structVecteur.html',1,'']]] -]; diff --git a/rapport/rapport/html/search/all_e.js b/rapport/rapport/html/search/all_e.js deleted file mode 100644 index 8c62032..0000000 --- a/rapport/rapport/html/search/all_e.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['requirements_0',['Requirements',['../md_doxygen__theme_2README.html#autotoc_md3',1,'']]] -]; diff --git a/rapport/rapport/html/search/all_f.js b/rapport/rapport/html/search/all_f.js deleted file mode 100644 index 3f0c007..0000000 --- a/rapport/rapport/html/search/all_f.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['sample_20image_201_0',['Sample image 1',['../md_doxygen__theme_2README.html#autotoc_md1',1,'']]], - ['sample_20image_202_1',['Sample image 2',['../md_doxygen__theme_2README.html#autotoc_md2',1,'']]], - ['score_2',['Score',['../structScore.html',1,'']]], - ['screendisplay_3',['screenDisplay',['../display_8c.html#a99b9f82dcee1c08efb2101826d2f6b44',1,'display.c']]], - ['screendisplaygamesdl_4',['screenDisplayGameSDL',['../display_8c.html#a6f451a9d0fd4d2325d9f03d7cda4a189',1,'display.c']]], - ['style_5',['How to change the color pattern and style',['../md_doxygen__theme_2README.html#autotoc_md5',1,'']]] -]; diff --git a/rapport/rapport/html/search/pages_0.js b/rapport/rapport/html/search/pages_0.js deleted file mode 100644 index b164360..0000000 --- a/rapport/rapport/html/search/pages_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['design_0',['Doxygen Theme - Flat Design',['../md_doxygen__theme_2README.html',1,'']]], - ['do_20list_1',['To Do List',['../md__2home_2dukantic_2floppy_2sokoban_2README.html',1,'']]], - ['doxygen_20theme_20flat_20design_2',['Doxygen Theme - Flat Design',['../md_doxygen__theme_2README.html',1,'']]] -]; diff --git a/rapport/rapport/html/search/pages_1.js b/rapport/rapport/html/search/pages_1.js deleted file mode 100644 index b8bfbbb..0000000 --- a/rapport/rapport/html/search/pages_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['flat_20design_0',['Doxygen Theme - Flat Design',['../md_doxygen__theme_2README.html',1,'']]] -]; diff --git a/rapport/rapport/html/search/pages_2.js b/rapport/rapport/html/search/pages_2.js deleted file mode 100644 index 7c3e042..0000000 --- a/rapport/rapport/html/search/pages_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['list_0',['To Do List',['../md__2home_2dukantic_2floppy_2sokoban_2README.html',1,'']]] -]; diff --git a/rapport/rapport/html/search/pages_3.js b/rapport/rapport/html/search/pages_3.js deleted file mode 100644 index b2b800e..0000000 --- a/rapport/rapport/html/search/pages_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['theme_20flat_20design_0',['Doxygen Theme - Flat Design',['../md_doxygen__theme_2README.html',1,'']]], - ['to_20do_20list_1',['To Do List',['../md__2home_2dukantic_2floppy_2sokoban_2README.html',1,'']]] -]; diff --git a/rapport/rapport/latex/Makefile b/rapport/rapport/latex/Makefile deleted file mode 100644 index 8e14614..0000000 --- a/rapport/rapport/latex/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -LATEX_CMD?=pdflatex -MKIDX_CMD?=makeindex -BIBTEX_CMD?=bibtex -LATEX_COUNT?=8 -MANUAL_FILE?=refman - -all: $(MANUAL_FILE).pdf - -pdf: $(MANUAL_FILE).pdf - -$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex - $(LATEX_CMD) $(MANUAL_FILE) || \ - if [ $$? != 0 ] ; then \ - \echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \ - false; \ - fi - $(MKIDX_CMD) $(MANUAL_FILE).idx - $(LATEX_CMD) $(MANUAL_FILE) || \ - if [ $$? != 0 ] ; then \ - \echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \ - false; \ - fi - latex_count=$(LATEX_COUNT) ; \ - while grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - $(LATEX_CMD) $(MANUAL_FILE) || \ - if [ $$? != 0 ] ; then \ - \echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \ - false; \ - fi; \ - latex_count=`expr $$latex_count - 1` ;\ - done - $(MKIDX_CMD) $(MANUAL_FILE).idx - $(LATEX_CMD) $(MANUAL_FILE) || \ - if [ $$? != 0 ] ; then \ - \echo "Please consult $(MANUAL_FILE).log to see the error messages" ; \ - false; \ - fi - -clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf diff --git a/rapport/rapport/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 b/rapport/rapport/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 deleted file mode 100644 index 4f614cd..0000000 --- a/rapport/rapport/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.md5 +++ /dev/null @@ -1 +0,0 @@ -026b58e1df7cfb6438d99aafc045587f \ No newline at end of file diff --git a/rapport/rapport/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.pdf b/rapport/rapport/latex/display_8c_a6f451a9d0fd4d2325d9f03d7cda4a189_icgraph.pdf deleted file mode 100644 index b6d7c5acecdeba6d144887881ffc28166f57a18b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7378 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 vlok&RO44tk\labelwidth}{% - \begin{minipage}{\textwidth}% - \setlength{\parindent}{0pt}% - \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% - \end{minipage}% - }{% - \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% - }% -} - -%---------- Commands used by doxygen LaTeX output generator ---------- - -% Used by
 ... 
-\newenvironment{DoxyPre}{% - \small% - \begin{alltt}% -}{% - \end{alltt}% - \normalsize% -} -% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. -\newlength{\CodeWidthChar} -\newlength{\CodeHeightChar} -\settowidth{\CodeWidthChar}{?} -\settoheight{\CodeHeightChar}{?} -% Necessary for hanging indent -\newlength{\DoxyCodeWidth} - -\newcommand\DoxyCodeLine[1]{ - \ifthenelse{\equal{\detokenize{#1}}{}} - { - \vspace*{\baselineskip} - } - { - \hangpara{\DoxyCodeWidth}{1}{#1}\par - } -} - -\newcommand\NiceSpace{% - \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% -} - -% Used by @code ... @endcode -\newenvironment{DoxyCode}[1]{% - \par% - \scriptsize% - \normalfont\ttfamily% - \rightskip0pt plus 1fil% - \settowidth{\DoxyCodeWidth}{000000}% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% - \setlength{\parskip}{0ex plus 0ex minus 0ex}% - \ifthenelse{\equal{#1}{0}} - { - {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% - } - { - {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% - } - -}{% - \normalfont% - \normalsize% - \settowidth{\CodeWidthChar}{?}% - \settoheight{\CodeHeightChar}{?}% -} - -% Redefining not defined characters, i.e. "Replacement Character" in tex output. -\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% - \textcolor{white}{\sffamily\bfseries\small ?}}{% - \rotatebox{45}{$\blacksquare$}}}} - -% Used by @example, @include, @includelineno and @dontinclude -\newenvironment{DoxyCodeInclude}[1]{% - \DoxyCode{#1}% -}{% - \endDoxyCode% -} - -% Used by @verbatim ... @endverbatim -\newenvironment{DoxyVerb}{% - \par% - \footnotesize% - \verbatim% -}{% - \endverbatim% - \normalsize% -} - -% Used by @verbinclude -\newenvironment{DoxyVerbInclude}{% - \DoxyVerb% -}{% - \endDoxyVerb% -} - -% Used by numbered lists (using '-#' or
    ...
) -\setlistdepth{12} -\newlist{DoxyEnumerate}{enumerate}{12} -\setlist[DoxyEnumerate,1]{label=\arabic*.} -\setlist[DoxyEnumerate,2]{label=(\enumalphalphcnt*)} -\setlist[DoxyEnumerate,3]{label=\roman*.} -\setlist[DoxyEnumerate,4]{label=\enumAlphAlphcnt*.} -\setlist[DoxyEnumerate,5]{label=\arabic*.} -\setlist[DoxyEnumerate,6]{label=(\enumalphalphcnt*)} -\setlist[DoxyEnumerate,7]{label=\roman*.} -\setlist[DoxyEnumerate,8]{label=\enumAlphAlphcnt*.} -\setlist[DoxyEnumerate,9]{label=\arabic*.} -\setlist[DoxyEnumerate,10]{label=(\enumalphalphcnt*)} -\setlist[DoxyEnumerate,11]{label=\roman*.} -\setlist[DoxyEnumerate,12]{label=\enumAlphAlphcnt*.} - -% Used by bullet lists (using '-', @li, @arg, or
    ...
) -\setlistdepth{12} -\newlist{DoxyItemize}{itemize}{12} -\setlist[DoxyItemize]{label=\textperiodcentered} - -\setlist[DoxyItemize,1]{label=\textbullet} -\setlist[DoxyItemize,2]{label=\normalfont\bfseries \textendash} -\setlist[DoxyItemize,3]{label=\textasteriskcentered} -\setlist[DoxyItemize,4]{label=\textperiodcentered} - -% Used for check boxes -\newcommand{\DoxyUnchecked}{$\square$} -\newcommand{\DoxyChecked}{\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \checkmark}}$\square$} - -% Used by description lists (using
...
) -\newenvironment{DoxyDescription}{% - \description% -}{% - \enddescription% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if caption is specified) -\newenvironment{DoxyImage}{% - \begin{figure}[H]% - \centering% -}{% - \end{figure}% -} - -% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc -% (only if no caption is specified) -\newenvironment{DoxyImageNoCaption}{% - \begin{center}% -}{% - \end{center}% -} - -% Used by @image -% (only if inline is specified) -\newenvironment{DoxyInlineImage}{% -}{% -} - -% Used by @attention -\newenvironment{DoxyAttention}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @important -\newenvironment{DoxyImportant}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @author and @authors -\newenvironment{DoxyAuthor}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @date -\newenvironment{DoxyDate}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @invariant -\newenvironment{DoxyInvariant}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @note -\newenvironment{DoxyNote}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @post -\newenvironment{DoxyPostcond}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @pre -\newenvironment{DoxyPrecond}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @copyright -\newenvironment{DoxyCopyright}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @remark -\newenvironment{DoxyRemark}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @return and @returns -\newenvironment{DoxyReturn}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @since -\newenvironment{DoxySince}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @see -\newenvironment{DoxySeeAlso}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @version -\newenvironment{DoxyVersion}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @warning -\newenvironment{DoxyWarning}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by @par and @paragraph -\newenvironment{DoxyParagraph}[1]{% - \begin{DoxyDesc}{#1}% -}{% - \end{DoxyDesc}% -} - -% Used by parameter lists -\newenvironment{DoxyParams}[2][]{% - \tabulinesep=1mm% - \par% - \ifthenelse{\equal{#1}{}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description - {\ifthenelse{\equal{#1}{1}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc - } - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for fields of simple structs -\newenvironment{DoxyFields}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% - \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for fields simple class style enums -\newenvironment{DoxyEnumFields}[2][]{% - \tabulinesep=1mm% - \par% - \ifthenelse{\equal{#1}{2}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}}% - {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,r]|X[-1,l]|}}% with init value - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for parameters within a detailed function description -\newenvironment{DoxyParamCaption}{% - \renewcommand{\item}[3][]{\\ \hspace*{2.0cm} ##1 {\em ##2}##3}% -}{% -} - -% Used by return value lists -\newenvironment{DoxyRetVals}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used by exception lists -\newenvironment{DoxyExceptions}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used by template parameter lists -\newenvironment{DoxyTemplParams}[1]{% - \tabulinesep=1mm% - \par% - \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endfirsthead% - \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% - \hline% - \endhead% -}{% - \end{longtabu*}% - \vspace{6pt}% -} - -% Used for member lists -\newenvironment{DoxyCompactItemize}{% - \begin{itemize}% - \setlength{\itemsep}{-3pt}% - \setlength{\parsep}{0pt}% - \setlength{\topsep}{0pt}% - \setlength{\partopsep}{0pt}% -}{% - \end{itemize}% -} - -% Used for member descriptions -\newenvironment{DoxyCompactList}{% - \begin{list}{}{% - \setlength{\leftmargin}{0.5cm}% - \setlength{\itemsep}{0pt}% - \setlength{\parsep}{0pt}% - \setlength{\topsep}{0pt}% - \renewcommand{\makelabel}{\hfill}% - }% -}{% - \end{list}% -} - -% Used for reference lists (@bug, @deprecated, @todo, etc.) -\newenvironment{DoxyRefList}{% - \begin{list}{}{% - \setlength{\labelwidth}{10pt}% - \setlength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \renewcommand{\makelabel}{\xreflabel}% - }% -}{% - \end{list}% -} - -% Used by @bug, @deprecated, @todo, etc. -\newenvironment{DoxyRefDesc}[1]{% - \begin{list}{}{% - \renewcommand\makelabel[1]{\textbf{##1}}% - \settowidth\labelwidth{\makelabel{#1}}% - \setlength\leftmargin{\labelwidth+\labelsep}% - }% -}{% - \end{list}% -} - -% Used by parameter lists and simple sections -\newenvironment{Desc} -{\begin{list}{}{% - \settowidth{\labelwidth}{20pt}% - \setlength{\parsep}{0pt}% - \setlength{\itemsep}{0pt}% - \setlength{\leftmargin}{\labelwidth+\labelsep}% - \renewcommand{\makelabel}{\entrylabel}% - } -}{% - \end{list}% -} - -% Used by tables -\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% -\newenvironment{TabularC}[1]% -{\tabulinesep=1mm -\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% -{\end{longtabu*}\par}% - -\newenvironment{TabularNC}[1]% -{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% -{\end{tabu}\par}% - -% Used for member group headers -\newenvironment{Indent}{% - \begin{list}{}{% - \setlength{\leftmargin}{0.5cm}% - }% - \item[]\ignorespaces% -}{% - \unskip% - \end{list}% -} - -% Used when hyperlinks are turned on -\newcommand{\doxylink}[2]{% - \mbox{\hyperlink{#1}{#2}}% -} - -% Used when hyperlinks are turned on -% Third argument is the SectionType, see the doxygen internal -% documentation for the values (relevant: Page ... Subsubsection). -\newcommand{\doxysectlink}[3]{% - \mbox{\hyperlink{#1}{#2}}% -} -% Used when hyperlinks are turned off -\newcommand{\doxyref}[3]{% - \textbf{#1} (\textnormal{#2}\,\pageref{#3})% -} - -% Used when hyperlinks are turned off -% Fourth argument is the SectionType, see the doxygen internal -% documentation for the values (relevant: Page ... Subsubsection). -\newcommand{\doxysectref}[4]{% - \textbf{#1} (\textnormal{#2}\,\pageref{#3})% -} - -% Used to link to a table when hyperlinks are turned on -\newcommand{\doxytablelink}[2]{% - \ref{#1}% -} - -% Used to link to a table when hyperlinks are turned off -\newcommand{\doxytableref}[3]{% - \ref{#3}% -} - -% Used by @addindex -\newcommand{\lcurly}{\{} -\newcommand{\rcurly}{\}} - -% Colors used for syntax highlighting -\definecolor{comment}{rgb}{0.5,0.0,0.0} -\definecolor{keyword}{rgb}{0.0,0.5,0.0} -\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} -\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} -\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} -\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} -\definecolor{charliteral}{rgb}{0.0,0.5,0.5} -\definecolor{xmlcdata}{rgb}{0.0,0.0,0.0} -\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} -\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} -\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} -\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} - -% Color used for table heading -\newcommand{\tableheadbgcolor}{lightgray}% - -% Version of hypertarget with correct landing location -\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} - -% possibility to have sections etc. be within the margins -% unfortunately had to copy part of book.cls and add \raggedright -\makeatletter -\newcounter{subsubsubsection}[subsubsection] -\newcounter{subsubsubsubsection}[subsubsubsection] -\newcounter{subsubsubsubsubsection}[subsubsubsubsection] -\newcounter{subsubsubsubsubsubsection}[subsubsubsubsubsection] -\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}} -\renewcommand{\thesubsubsubsubsection}{\thesubsubsubsection.\arabic{subsubsubsubsection}} -\renewcommand{\thesubsubsubsubsubsection}{\thesubsubsubsubsection.\arabic{subsubsubsubsubsection}} -\renewcommand{\thesubsubsubsubsubsubsection}{\thesubsubsubsubsubsection.\arabic{subsubsubsubsubsubsection}} -\newcommand{\subsubsubsectionmark}[1]{} -\newcommand{\subsubsubsubsectionmark}[1]{} -\newcommand{\subsubsubsubsubsectionmark}[1]{} -\newcommand{\subsubsubsubsubsubsectionmark}[1]{} -\def\toclevel@subsubsubsection{4} -\def\toclevel@subsubsubsubsection{5} -\def\toclevel@subsubsubsubsubsection{6} -\def\toclevel@subsubsubsubsubsubsection{7} -\def\toclevel@paragraph{8} -\def\toclevel@subparagraph{9} - -\newcommand\doxysection{\@startsection {section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\raggedright\normalfont\Large\bfseries}} -\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\large\bfseries}} -\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubsubsubsection{\@startsection{subsubsubsection}{4}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubsubsubsubsection{\@startsection{subsubsubsubsection}{5}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubsubsubsubsubsection{\@startsection{subsubsubsubsubsection}{6}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubsubsubsubsubsubsection{\@startsection{subsubsubsubsubsubsection}{7}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxyparagraph{\@startsection{paragraph}{8}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} -\newcommand\doxysubparagraph{\@startsection{subparagraph}{9}{\parindent}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\raggedright\normalfont\normalsize\bfseries}} - -\newcommand\l@subsubsubsection{\@dottedtocline{4}{10.0em}{7.8em}} -\newcommand\l@subsubsubsubsection{\@dottedtocline{5}{13.0em}{9.4em}} -\newcommand\l@subsubsubsubsubsection{\@dottedtocline{6}{15.0em}{11em}} -\newcommand\l@subsubsubsubsubsubsection{\@dottedtocline{7}{18.0em}{12.6em}} -\renewcommand\l@paragraph{\@dottedtocline{8}{21.0em}{14.2em}} -\renewcommand\l@subparagraph{\@dottedtocline{9}{24.0em}{15.8em}} -\makeatother -% the sectsty doesn't look to be maintained but gives, in our case, some warning like: -% LaTeX Warning: Command \underline has changed. -% Check if current package is valid. -% unfortunately had to copy the relevant part -\newcommand*{\doxypartfont} [1] - {\gdef\SS@partnumberfont{\SS@sectid{0}\SS@nopart\SS@makeulinepartchap#1} - \gdef\SS@parttitlefont{\SS@sectid{0}\SS@titlepart\SS@makeulinepartchap#1}} -\newcommand*{\doxychapterfont} [1] - {\gdef\SS@chapnumfont{\SS@sectid{1}\SS@nopart\SS@makeulinepartchap#1} - \gdef\SS@chaptitlefont{\SS@sectid{1}\SS@titlepart\SS@makeulinepartchap#1}} -\newcommand*{\doxysectionfont} [1] - {\gdef\SS@sectfont{\SS@sectid{2}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxysubsectionfont} [1] - {\gdef\SS@subsectfont{\SS@sectid{3}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxysubsubsectionfont} [1] - {\gdef\SS@subsubsectfont{\SS@sectid{4}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxyparagraphfont} [1] - {\gdef\SS@parafont{\SS@sectid{5}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxysubparagraphfont} [1] - {\gdef\SS@subparafont{\SS@sectid{6}\SS@rr\SS@makeulinesect#1}} -\newcommand*{\doxyminisecfont} [1] - {\gdef\SS@minisecfont{\SS@sectid{7}\SS@rr\SS@makeulinepartchap#1}} -\newcommand*{\doxyallsectionsfont} [1] {\doxypartfont{#1}% - \doxychapterfont{#1}% - \doxysectionfont{#1}% - \doxysubsectionfont{#1}% - \doxysubsubsectionfont{#1}% - \doxyparagraphfont{#1}% - \doxysubparagraphfont{#1}% - \doxyminisecfont{#1}}% -% Define caption that is also suitable in a table -% for usage with hyperlinks -\makeatletter -\def\doxyfigcaption{% -\H@refstepcounter{figure}% -\@dblarg{\@caption{figure}}} - -% for usage without hyperlinks -\def\doxyfigcaptionnolink{% -\refstepcounter{figure}% -\@dblarg{\@caption{figure}}} -\makeatother - -% Define alpha enumarative names for counters > 26 -\makeatletter -\def\enumalphalphcnt#1{\expandafter\@enumalphalphcnt\csname c@#1\endcsname} -\def\@enumalphalphcnt#1{\alphalph{#1}} -\def\enumAlphAlphcnt#1{\expandafter\@enumAlphAlphcnt\csname c@#1\endcsname} -\def\@enumAlphAlphcnt#1{\AlphAlph{#1}} -\makeatother -\AddEnumerateCounter{\enumalphalphcnt}{\@enumalphalphcnt}{aa} -\AddEnumerateCounter{\enumAlphAlphcnt}{\@enumAlphAlphcnt}{AA} diff --git a/rapport/rapport/latex/etoc_doxygen.sty b/rapport/rapport/latex/etoc_doxygen.sty deleted file mode 100644 index 5f7e127..0000000 --- a/rapport/rapport/latex/etoc_doxygen.sty +++ /dev/null @@ -1,2178 +0,0 @@ -%% -%% This is file etoc_doxygen.sty -%% -%% Apart from this header notice and the renaming from etoc to -%% etoc_doxygen (also in \ProvidesPackage) it is an identical -%% copy of -%% -%% etoc.sty -%% -%% at version 1.2b of 2023/07/01. -%% -%% This file has been provided to Doxygen team courtesy of the -%% author for benefit of users having a LaTeX installation not -%% yet providing version 1.2a or later of etoc, whose -%% deeplevels feature is required. -%% -%% The original source etoc.dtx (only of the latest version at -%% any given time) is available at -%% -%% https://ctan.org/pkg/etoc -%% -%% and contains the terms for copying and modification as well -%% as author contact information. -%% -%% In brief any modified versions of this file must be renamed -%% with new filenames distinct from etoc.sty. -%% -%% Package: etoc -%% Version: 1.2b -%% License: LPPL 1.3c -%% Copyright (C) 2012-2023 Jean-Francois B. -\NeedsTeXFormat{LaTeX2e}[2003/12/01] -\ProvidesPackage{etoc_doxygen}[2023/07/01 v1.2b Completely customisable TOCs (JFB)] -\newif\ifEtoc@oldLaTeX -\@ifl@t@r\fmtversion{2020/10/01} - {} - {\Etoc@oldLaTeXtrue - \PackageInfo{etoc}{Old LaTeX (\fmtversion) detected!\MessageBreak - Since 1.1a (2023/01/14), etoc prefers LaTeX at least\MessageBreak - as recent as 2020-10-01, for reasons of the .toc file,\MessageBreak - and used to require it (from 1.1a to 1.2).\MessageBreak - This etoc (1.2b) does not *require* it, but has not been\MessageBreak - tested thoroughly on old LaTeX (especially if document\MessageBreak - does not use hyperref) and retrofitting was done only\MessageBreak - on basis of author partial remembrances of old context.\MessageBreak - Reported}} -\RequirePackage{kvoptions} -\SetupKeyvalOptions{prefix=Etoc@} -\newif\ifEtoc@lof -\DeclareVoidOption{lof}{\Etoc@loftrue - \PackageInfo{etoc}{Experimental support for \string\locallistoffigures.\MessageBreak - Barely tested, use at own risk}% -} -\newif\ifEtoc@lot -\DeclareVoidOption{lot}{\Etoc@lottrue - \PackageInfo{etoc}{Experimental support for \string\locallistoftables.\MessageBreak - Barely tested, use at own risk}% -} -\@ifclassloaded{memoir}{ -\PackageInfo{etoc} - {As this is with memoir class, all `...totoc' options\MessageBreak - are set true by default. Reported} -\DeclareBoolOption[true]{maintoctotoc} -\DeclareBoolOption[true]{localtoctotoc} -\DeclareBoolOption[true]{localloftotoc} -\DeclareBoolOption[true]{locallottotoc} -}{ -\DeclareBoolOption[false]{maintoctotoc} -\DeclareBoolOption[false]{localtoctotoc} -\DeclareBoolOption[false]{localloftotoc} -\DeclareBoolOption[false]{locallottotoc} -} -\DeclareBoolOption[true]{ouroboros} -\DeclareBoolOption[false]{deeplevels} -\DeclareDefaultOption{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}} -\ProcessKeyvalOptions* -\DisableKeyvalOption[action=error,package=etoc]{etoc}{lof} -\DisableKeyvalOption[action=error,package=etoc]{etoc}{lot} -\DisableKeyvalOption[action=error,package=etoc]{etoc}{deeplevels} -\def\etocsetup#1{\setkeys{etoc}{#1}} -\def\etocifmaintoctotoc{\ifEtoc@maintoctotoc - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\def\etociflocaltoctotoc{\ifEtoc@localtoctotoc - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\def\etociflocalloftotoc{\ifEtoc@localloftotoc - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\def\etociflocallottotoc{\ifEtoc@locallottotoc - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\RequirePackage{multicol} -\def\etoc@{\etoc@} -\long\def\Etoc@gobtoetoc@ #1\etoc@{} -\newtoks\Etoc@toctoks -\def\Etoc@par{\par} -\def\etocinline{\def\Etoc@par{}} -\let\etocnopar\etocinline -\def\etocdisplay{\def\Etoc@par{\par}} -\let\Etoc@global\@empty -\def\etocglobaldefs{\let\Etoc@global\global\let\tof@global\global} -\def\etoclocaldefs {\let\Etoc@global\@empty\let\tof@global\@empty} -\newif\ifEtoc@numbered -\newif\ifEtoc@hyperref -\newif\ifEtoc@parskip -\newif\ifEtoc@tocwithid -\newif\ifEtoc@standardlines -\newif\ifEtoc@etocstyle -\newif\ifEtoc@classstyle -\newif\ifEtoc@keeporiginaltoc -\newif\ifEtoc@skipprefix -\newif\ifEtoc@isfirst -\newif\ifEtoc@localtoc -\newif\ifEtoc@skipthisone -\newif\ifEtoc@stoptoc -\newif\ifEtoc@notactive -\newif\ifEtoc@mustclosegroup -\newif\ifEtoc@isemptytoc -\newif\ifEtoc@checksemptiness -\def\etocchecksemptiness {\Etoc@checksemptinesstrue } -\def\etocdoesnotcheckemptiness {\Etoc@checksemptinessfalse } -\newif\ifEtoc@notocifnotoc -\def\etocnotocifnotoc {\Etoc@checksemptinesstrue\Etoc@notocifnotoctrue } -\newcounter{etoc@tocid} -\def\Etoc@tocext{toc} -\def\Etoc@lofext{lof} -\def\Etoc@lotext{lot} -\let\Etoc@currext\Etoc@tocext -\def\etocifislocal{\ifEtoc@localtoc\expandafter\@firstoftwo\else - \expandafter\@secondoftwo\fi - } -\def\etocifislocaltoc{\etocifislocal{\ifx\Etoc@currext\Etoc@tocext - \expandafter\@firstoftwo\else - \expandafter\@secondoftwo\fi}% - {\@secondoftwo}% - } -\def\etocifislocallof{\etocifislocal{\ifx\Etoc@currext\Etoc@lofext - \expandafter\@firstoftwo\else - \expandafter\@secondoftwo\fi}% - {\@secondoftwo}% - } -\def\etocifislocallot{\etocifislocal{\ifx\Etoc@currext\Etoc@lotext - \expandafter\@firstoftwo\else - \expandafter\@secondoftwo\fi}% - {\@secondoftwo}% - } -\expandafter\def\csname Etoc@-3@@\endcsname {-\thr@@} -\expandafter\def\csname Etoc@-2@@\endcsname {-\tw@} -\expandafter\let\csname Etoc@-1@@\endcsname \m@ne -\expandafter\let\csname Etoc@0@@\endcsname \z@ -\expandafter\let\csname Etoc@1@@\endcsname \@ne -\expandafter\let\csname Etoc@2@@\endcsname \tw@ -\expandafter\let\csname Etoc@3@@\endcsname \thr@@ -\expandafter\chardef\csname Etoc@4@@\endcsname 4 -\expandafter\chardef\csname Etoc@5@@\endcsname 5 -\expandafter\chardef\csname Etoc@6@@\endcsname 6 -\ifEtoc@deeplevels - \expandafter\chardef\csname Etoc@7@@\endcsname 7 - \expandafter\chardef\csname Etoc@8@@\endcsname 8 - \expandafter\chardef\csname Etoc@9@@\endcsname 9 - \expandafter\chardef\csname Etoc@10@@\endcsname 10 - \expandafter\chardef\csname Etoc@11@@\endcsname 11 - \expandafter\chardef\csname Etoc@12@@\endcsname 12 -\fi -\expandafter\let\expandafter\Etoc@maxlevel - \csname Etoc@\ifEtoc@deeplevels12\else6\fi @@\endcsname -\edef\etocthemaxlevel{\number\Etoc@maxlevel} -\@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}} -\let\Etoc@none@@ \Etoc@minf -\expandafter\let\expandafter\Etoc@all@@ - \csname Etoc@\ifEtoc@deeplevels11\else5\fi @@\endcsname -\let\Etoc@dolevels\@empty -\def\Etoc@newlevel #1{\expandafter\def\expandafter\Etoc@dolevels\expandafter - {\Etoc@dolevels\Etoc@do{#1}}} -\ifdefined\expanded - \def\etocsetlevel#1#2{\expanded{\noexpand\etoc@setlevel{#1}{#2}}}% -\else - \def\etocsetlevel#1#2{{\edef\Etoc@tmp{\noexpand\etoc@setlevel{#1}{#2}}\expandafter}\Etoc@tmp}% -\fi -\def\etoc@setlevel#1#2{% - \edef\Etoc@tmp{\the\numexpr#2}% - \if1\ifnum\Etoc@tmp>\Etoc@maxlevel0\fi\unless\ifnum\Etoc@minf<\Etoc@tmp;\fi1% - \ifEtoc@deeplevels - \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,% - .7,.8,.9,.10,.11,.12,}% - \else - \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,}% - \fi - \ifin@\else\if\@car#1\@nil @\in@true\fi\fi - \ifin@ - \PackageWarning{etoc} - {Sorry, but `#1' is forbidden as level name.\MessageBreak - \if\@car#1\@nil @% - (because of the @ as first character)\MessageBreak\fi - Reported}% - \else - \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}% - \expandafter\let\csname Etoc@#1@@\expandafter\endcsname - \csname Etoc@\Etoc@tmp @@\endcsname - \expandafter\edef\csname Etoc@@#1@@\endcsname - {\expandafter\noexpand\csname Etoc@#1@@\endcsname}% - \expandafter\edef\csname toclevel@@#1\endcsname - {\expandafter\noexpand\csname toclevel@#1\endcsname}% - \fi - \else - \PackageWarning{etoc} - {Argument `\detokenize{#2}' of \string\etocsetlevel\space should - represent one of\MessageBreak - \ifnum\Etoc@minf=-\thr@@-2, \fi-1, 0, 1, 2, \ifEtoc@deeplevels ...\else3, 4\fi, - \the\numexpr\Etoc@maxlevel-1, or \number\Etoc@maxlevel\space - but evaluates to \Etoc@tmp.\MessageBreak - The level of `#1' will be set to \number\Etoc@maxlevel.\MessageBreak - Tables of contents will ignore `#1' as long\MessageBreak - as its level is \number\Etoc@maxlevel\space (=\string\etocthemaxlevel).% - \MessageBreak - Reported}% - \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}% - \expandafter\let\csname Etoc@#1@@\endcsname\Etoc@maxlevel - \fi -} -\def\etoclevel#1{\csname Etoc@#1@@\endcsname} -\def\etocthelevel#1{\number\csname Etoc@#1@@\endcsname} -\def\etocifunknownlevelTF#1{\@ifundefined{Etoc@#1@@}} -\@ifclassloaded{memoir}{\etocsetlevel{book}{-2}}{} -\etocsetlevel{part}{-1} -\etocsetlevel{chapter}{0} -\etocsetlevel{section}{1} -\etocsetlevel{subsection}{2} -\etocsetlevel{subsubsection}{3} -\etocsetlevel{paragraph}{4} -\etocsetlevel{subparagraph}{5} -\ifdefined\c@chapter - \etocsetlevel{appendix}{0} -\else - \etocsetlevel{appendix}{1} -\fi -\def\Etoc@do#1{\@namedef{l@@#1}{\csname l@#1\endcsname}} -\Etoc@dolevels -\let\Etoc@figure@@\Etoc@maxlevel -\let\Etoc@table@@ \Etoc@maxlevel -\let\Etoc@gobblethreeorfour\@gobblefour -\ifdefined\@gobblethree - \let\Etoc@gobblethree\@gobblethree -\else - \long\def\Etoc@gobblethree#1#2#3{}% -\fi -\AtBeginDocument{% -\@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}% -\@ifpackageloaded{hyperref} - {\Etoc@hyperreftrue} - {\ifEtoc@oldLaTeX - \let\Etoc@gobblethreeorfour\Etoc@gobblethree - \let\Etoc@etoccontentsline@fourargs\Etoc@etoccontentsline@ - \long\def\Etoc@etoccontentsline@#1#2#3{% - \Etoc@etoccontentsline@fourargs{#1}{#2}{#3}{}% - }% - \fi - }% -} -\def\etocskipfirstprefix {\global\Etoc@skipprefixtrue } -\def\Etoc@updatestackofends#1\etoc@{\gdef\Etoc@stackofends{#1}} -\def\Etoc@stackofends{{-3}{}} -\def\Etoc@doendsandbegin{% - \expandafter\Etoc@traversestackofends\Etoc@stackofends\etoc@ -} -\def\Etoc@traversestackofends#1{% - \ifnum#1>\Etoc@level - \csname Etoc@end@#1\endcsname - \expandafter\Etoc@traversestackofends - \else - \Etoc@traversestackofends@done{#1}% - \fi -} -\def\Etoc@traversestackofends@done#1#2{#2% - \ifnum#1<\Etoc@level - \csname Etoc@begin@\the\numexpr\Etoc@level\endcsname - \Etoc@global\Etoc@isfirsttrue - \edef\Etoc@tmp{{\the\numexpr\Etoc@level}}% - \else - \Etoc@global\Etoc@isfirstfalse - \let\Etoc@tmp\@empty - \fi - \expandafter\Etoc@updatestackofends\Etoc@tmp{#1}% -} -\def\Etoc@etoccontentsline #1{% - \let\Etoc@next\Etoc@gobblethreeorfour - \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel - \else - \Etoc@skipthisonefalse - \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname - \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi - \ifEtoc@localtoc - \ifEtoc@stoptoc - \Etoc@skipthisonetrue - \else - \ifEtoc@notactive - \Etoc@skipthisonetrue - \else - \unless\ifnum\Etoc@level>\etoclocaltop - \Etoc@skipthisonetrue - \global\Etoc@stoptoctrue - \fi - \fi - \fi - \fi - \ifEtoc@skipthisone - \else - \unless\ifnum\Etoc@level>\c@tocdepth - \ifEtoc@standardlines - \let\Etoc@next\Etoc@savedcontentsline - \else - \let\Etoc@next\Etoc@etoccontentsline@ - \fi - \fi - \fi - \fi - \Etoc@next{#1}% -} -\def\Etoc@etoccontentsline@ #1#2#3#4{% - \Etoc@doendsandbegin - \Etoc@global\edef\Etoc@prefix {\expandafter\noexpand - \csname Etoc@prefix@\the\numexpr\Etoc@level\endcsname }% - \Etoc@global\edef\Etoc@contents{\expandafter\noexpand - \csname Etoc@contents@\the\numexpr\Etoc@level\endcsname }% - \ifEtoc@skipprefix \Etoc@global\def\Etoc@prefix{\@empty}\fi - \global\Etoc@skipprefixfalse - \Etoc@lxyz{#2}{#3}{#4}% - \Etoc@prefix - \Etoc@contents -} -\def\Etoc@lxyz #1#2#3{% - \ifEtoc@hyperref - \Etoc@global\def\etocthelink##1{\hyperlink{#3}{##1}}% - \else - \Etoc@global\let\etocthelink\@firstofone - \fi - \Etoc@global\def\etocthepage {#2}% - \ifEtoc@hyperref - \ifx\etocthepage\@empty - \Etoc@global\let\etocthelinkedpage\@empty - \else - \Etoc@global\def\etocthelinkedpage{\hyperlink {#3}{#2}}% - \fi - \else - \Etoc@global\let\etocthelinkedpage\etocthepage - \fi - \Etoc@global\def\etocthename{#1}% - \futurelet\Etoc@getnb@token\Etoc@@getnb #1\hspace\etoc@ - \ifEtoc@hyperref - \def\Etoc@tmp##1##2{\Etoc@global\def##2{\hyperlink{#3}{##1}}}% - \expandafter\Etoc@tmp\expandafter{\etocthename}\etocthelinkedname - \ifEtoc@numbered - \expandafter\Etoc@tmp\expandafter{\etocthenumber}\etocthelinkednumber - \else - \Etoc@global\let\etocthelinkednumber\@empty - \fi - \else - \Etoc@global\let\etocthelinkedname \etocthename - \Etoc@global\let\etocthelinkednumber\etocthenumber - \fi - \Etoc@global\expandafter\let\csname etoclink \endcsname \etocthelink - \Etoc@global\expandafter\let\csname etocname \endcsname \etocthename - \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthenumber - \Etoc@global\expandafter\let\csname etocpage \endcsname \etocthepage - \ifEtoc@hyperref - \Etoc@lxyz@linktoc - \fi -} -\def\Etoc@lxyz@linktoc{% - \ifcase\Hy@linktoc - \or - \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname - \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber - \or % page - \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage - \else % all - \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname - \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber - \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage - \fi -} -\def\Etoc@@getnb {% - \let\Etoc@next\Etoc@getnb - \ifx\Etoc@getnb@token\@sptoken\let\Etoc@next\Etoc@getnb@nonbr\fi - \ifx\Etoc@getnb@token\bgroup \let\Etoc@next\Etoc@getnb@nonbr\fi - \Etoc@next -} -\def\Etoc@getnb #1{% - \in@{#1}{\numberline\chapternumberline\partnumberline\booknumberline}% - \ifin@ - \let\Etoc@next\Etoc@getnb@nmbrd - \else - \ifnum\Etoc@level=\m@ne - \let\Etoc@next\Etoc@@getit - \else - \let\Etoc@next\Etoc@getnb@nonbr - \fi - \in@{#1}{\nonumberline}% - \ifin@ - \let\Etoc@next\Etoc@getnb@nonumberline - \fi - \fi - \Etoc@next #1% -} -\def\Etoc@getnb@nmbrd #1#2{% - \Etoc@global\Etoc@numberedtrue - \Etoc@global\def\etocthenumber {#2}% - \Etoc@getnb@nmbrd@getname\@empty -}% -\def\Etoc@getnb@nmbrd@getname #1\hspace\etoc@ {% - \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}% -} -\def\Etoc@getnb@nonbr #1\etoc@ {% - \Etoc@global\Etoc@numberedfalse - \Etoc@global\let\etocthenumber \@empty -} -\def\Etoc@getnb@nonumberline #1\hspace\etoc@ {% - \Etoc@global\Etoc@numberedfalse - \Etoc@global\let\etocthenumber \@empty - \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{\@gobble#1}% -} -\def\Etoc@@getit #1\hspace#2{% - \ifx\etoc@#2% - \Etoc@global\Etoc@numberedfalse - \Etoc@global\let\etocthenumber \@empty - \else - \Etoc@global\Etoc@numberedtrue - \Etoc@global\def\etocthenumber {#1}% - \expandafter\Etoc@getit@getname \expandafter\@empty - \fi -} -\def\Etoc@getit@getname #1\hspace\etoc@ {% - \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}% -} -\let\etocthename \@empty -\let\etocthenumber \@empty -\let\etocthepage \@empty -\let\etocthelinkedname \@empty -\let\etocthelinkednumber \@empty -\let\etocthelinkedpage \@empty -\let\etocthelink \@firstofone -\DeclareRobustCommand*{\etocname} {} -\DeclareRobustCommand*{\etocnumber}{} -\DeclareRobustCommand*{\etocpage} {} -\DeclareRobustCommand*{\etoclink} {\@firstofone} -\DeclareRobustCommand*{\etocifnumbered} - {\ifEtoc@numbered\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} -\expandafter\let\expandafter\etocxifnumbered\csname etocifnumbered \endcsname -\DeclareRobustCommand*{\etociffirst} - {\ifEtoc@isfirst\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} -\expandafter\let\expandafter\etocxiffirst\csname etociffirst \endcsname -\def\Etoc@readtoc {% - \ifeof \Etoc@tf - \else - \read \Etoc@tf to \Etoc@buffer - \Etoc@toctoks=\expandafter\expandafter\expandafter - {\expandafter\the\expandafter\Etoc@toctoks\Etoc@buffer}% - \expandafter\Etoc@readtoc - \fi -} -\Etoc@toctoks {}% (superfluous, but for clarity) -\AtBeginDocument{\IfFileExists{\jobname.toc} - {{\endlinechar=\m@ne - \makeatletter - \newread\Etoc@tf - \openin\Etoc@tf\@filef@und - \Etoc@readtoc - \global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}% - \closein\Etoc@tf}} - {\typeout{No file \jobname.toc.}}} -\def\Etoc@openouttoc{% - \ifEtoc@hyperref - \ifx\hyper@last\@undefined - \IfFileExists{\jobname .toc} - {\Hy@WarningNoLine - {old toc file detected; run LaTeX again (cheers from `etoc')}% - \global\Etoc@toctoks={}% - } - {}% - \fi - \fi - \if@filesw - \newwrite \tf@toc - \immediate \openout \tf@toc \jobname .toc\relax - \fi - \global\let\Etoc@openouttoc\empty -} -\def\Etoc@toctoc{% - \gdef\Etoc@stackofends{{-3}{}}% - \global\let\Etoc@level\Etoc@minf - \global\let\Etoc@virtualtop\Etoc@minf - \the\Etoc@toctoks - \ifEtoc@notactive - \else - \gdef\Etoc@level{-\thr@@}% - \Etoc@doendsandbegin - \fi -} -\def\Etoc@@startlocaltoc#1#2{% - \ifEtoc@localtoc - \ifnum #1=#2\relax - \global\let\etoclocaltop\Etoc@virtualtop - \Etoc@@startlocaltochook - \etoclocaltableofcontentshook - \ifEtoc@etocstyle - \etocetoclocaltocmaketitle - \fi - \ifx\Etoc@aftertitlehook\@empty - \else - \ifEtoc@localtoctotoc - \ifEtoc@ouroboros - \else - \let\Etoc@tmp\contentsline - \def\contentsline{\let\contentsline\Etoc@tmp\Etoc@gobblethreeorfour}% - \fi - \fi - \fi - \global\Etoc@notactivefalse - \fi - \fi -} -\let\etoc@startlocaltoc\@gobble -\let\Etoc@@startlocaltoc@toc\Etoc@@startlocaltoc -\let\Etoc@@startlocaltochook\@empty -\unless\ifEtoc@deeplevels - \def\etocdivisionnameatlevel#1{% - \ifcase\numexpr#1\relax - \ifdefined\c@chapter chapter\else section\fi% - \or section% - \or subsection% - \or subsubsection% - \or paragraph% - \or subparagraph% - \or empty% - \else\ifnum\numexpr#1<\m@ne - book% - \else - part% - \fi - \fi - } -\else - \def\etocdivisionnameatlevel#1{% - \ifcase\numexpr#1\relax - \ifdefined\c@chapter chapter\else section\fi% - \or section% - \or subsection% - \or subsubsection% - \or subsubsubsection% - \or subsubsubsubsection% - \or subsubsubsubsubsection% - \or subsubsubsubsubsubsection% - \or paragraph% - \or subparagraph% - \else\ifnum\numexpr#1>\z@ - empty% - \else\ifnum\numexpr#1=\m@ne - part% - \else - book% - \fi\fi - \fi - } -\fi -\def\etoclocalheadtotoc#1#2{\addcontentsline{toc}{@#1}{#2}} -\def\etocglobalheadtotoc{\addcontentsline{toc}} -\providecommand*\UseName{\@nameuse} -\def\etocetoclocaltocmaketitle{% - \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\localcontentsname}% - \if@noskipsec\leavevmode\par\fi - \etociflocaltoctotoc - {\etocifisstarred - {}% star variant, do not add to toc - {\etoclocalheadtotoc - {\etocdivisionnameatlevel{\etoclocaltop+1}}% - {\localcontentsname}% - }% - }% - {}% -}% -\def\localcontentsname {\contentsname}% -\let\etoclocaltableofcontentshook\@empty -\if1\ifEtoc@lof0\fi\ifEtoc@lot0\fi1% -\else -\AtBeginDocument{% - \let\Etoc@originaladdcontentsline\addcontentsline - \def\addcontentsline{\Etoc@hackedaddcontentsline}% -}% -\fi -\ifEtoc@lof - \ifEtoc@lot - \def\Etoc@hackedaddcontentsline#1{% - \expanded{\noexpand\in@{.#1,}}{.lof,.lot,}% - \ifin@\expandafter\Etoc@hackedaddcontentsline@i - \else\expandafter\Etoc@originaladdcontentsline - \fi {#1}} - \else - \def\Etoc@hackedaddcontentsline#1{% - \expanded{\noexpand\in@{.#1,}}{.lof,}% - \ifin@\expandafter\Etoc@hackedaddcontentsline@i - \else\expandafter\Etoc@originaladdcontentsline - \fi {#1}} - \fi -\else - \def\Etoc@hackedaddcontentsline#1{% - \expanded{\noexpand\in@{.#1,}}{.lot,}% - \ifin@\expandafter\Etoc@hackedaddcontentsline@i - \else\expandafter\Etoc@originaladdcontentsline - \fi {#1}} -\fi -\def\Etoc@hackedaddcontentsline@i#1#2#3{% - \expanded{\noexpand\in@{.#1;#2,}}{.lof;figure,.lot;table,}% - \ifin@ - \addtocontents {toc}{% - \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% - \ifdefined\protected@file@percent\protected@file@percent\fi - }% - \fi - \Etoc@originaladdcontentsline{#1}{#2}{#3}% -} -\unless\ifdefined\expanded - \def\Etoc@hackedaddcontentsline#1{% - {\edef\Etoc@tmp{\noexpand\in@{.#1,}{\ifEtoc@lof.lof,\fi\ifEtoc@lot.lot,\fi}}\expandafter}% - \Etoc@tmp - \ifin@\expandafter\Etoc@hackedaddcontentsline@i - \else\expandafter\Etoc@originaladdcontentsline - \fi {#1}% - } - \def\Etoc@hackedaddcontentsline@i#1#2#3{% - {\edef\Etoc@tmp{\noexpand\in@{.#1;#2,}}\expandafter}% - \Etoc@tmp{.lof;figure,.lot;table,}% - \ifin@ - \addtocontents {toc}{% - \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% - \ifdefined\protected@file@percent\protected@file@percent\fi - }% - \fi - \Etoc@originaladdcontentsline{#1}{#2}{#3}% - } -\fi -\def\Etoc@@startlocallistof#1#2#3{% - \ifEtoc@localtoc - \ifnum #2=#3\relax - \global\let\etoclocaltop\Etoc@virtualtop - \global\Etoc@notactivefalse - \Etoc@@startlocaltochook - \csname etoclocallistof#1shook\endcsname - \ifEtoc@etocstyle - \csname etocetoclistof#1smaketitle\endcsname - \fi - \fi - \fi -} -\def\Etoc@@startlocallistof@setlevels#1{% - \ifnum\etoclocaltop<\z@ - \expandafter\let\csname Etoc@#1@@\endcsname\@ne - \else - \expandafter\let\csname Etoc@#1@@\expandafter\endcsname - \csname Etoc@\the\numexpr\etoclocaltop+\@ne @@\endcsname - \fi - \def\Etoc@do##1{% - \ifnum\etoclevel{##1}>\etoclocaltop - \expandafter\let\csname Etoc@##1@@\endcsname\Etoc@maxlevel - \fi}% - \Etoc@dolevels -} -\def\etoclocallistoffigureshook{\etocstandardlines} -\def\etoclocallistoftableshook {\etocstandardlines} -\def\locallistfigurename{\listfigurename} -\def\locallisttablename {\listtablename} -\def\etocetoclistoffiguresmaketitle{% - \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallistfigurename}% - \ifnum\etoclocaltop>\tw@\mbox{}\par\fi - \etociflocalloftotoc - {\etocifisstarred - {}% star variant, do not add to toc - {\etoclocalheadtotoc - {\etocdivisionnameatlevel{\etoclocaltop+1}}% - {\locallistfigurename}% - }% - }% - {}% -}% -\def\etocetoclistoftablesmaketitle{% - \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallisttablename}% - \ifnum\etoclocaltop>\tw@\mbox{}\par\fi - \etociflocallottotoc - {\etocifisstarred - {}% star variant, do not add to toc - {\etoclocalheadtotoc - {\etocdivisionnameatlevel{\etoclocaltop+1}}% - {\locallisttablename}% - }% - }% - {}% -}% -\let\Etoc@listofreset\@empty -\ifEtoc@lof - \def\locallistoffigures{% - \def\Etoc@listofreset{% - \let\Etoc@currext\Etoc@tocext - \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc - \let\Etoc@@startlocaltochook\@empty - \let\Etoc@listofreset\@empty - \let\Etoc@listofhook\@empty - }% - \let\Etoc@currext\Etoc@lofext - \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{figure}}% - \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{figure}}% - \def\Etoc@listofhook{% - \def\Etoc@do####1{% - \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel - }% - \Etoc@dolevels - }% - \localtableofcontents - } -\else - \def\locallistoffigures{% - \PackageError{etoc}{% - \string\locallistoffigures \on@line\space but\MessageBreak - package was loaded without `lof' option}% - {Try again with \string\usepackage[lof]{etoc}}% - } -\fi -\ifEtoc@lot - \def\locallistoftables{% - \def\Etoc@listofreset{% - \let\Etoc@currext\Etoc@tocext - \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc - \let\Etoc@@startlocaltochook\@empty - \let\Etoc@listofreset\@empty - \let\Etoc@listofhook\@empty - }% - \let\Etoc@currext\Etoc@lotext - \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{table}}% - \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{table}}% - \def\Etoc@listofhook{% - \def\Etoc@do####1{% - \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel - }% - \Etoc@dolevels - }% - \localtableofcontents - } -\else - \def\locallistoftables{% - \PackageError{etoc}{% - \string\locallistoftable \on@line\space but\MessageBreak - package was loaded without `lot' option}% - {Try again with \string\usepackage[lot]{etoc}}% - } -\fi -\def\Etoc@checkifempty {% - \global\Etoc@isemptytoctrue - \global\Etoc@stoptocfalse - \global\let\Etoc@level\Etoc@minf - \global\let\Etoc@virtualtop\Etoc@minf - \gdef\Etoc@stackofends{{-3}{}}% - \begingroup - \ifEtoc@localtoc - \def\etoc@startlocaltoc##1{% - \ifnum##1=\Etoc@tocid\relax - \global\let\etoclocaltop\Etoc@virtualtop - \Etoc@@startlocaltochook - \global\Etoc@notactivefalse - \fi - }% - \let\contentsline\Etoc@testingcontentslinelocal - \else - \let\contentsline\Etoc@testingcontentsline - \fi - \Etoc@storetocdepth - \let\Etoc@setlocaltop@doendsandbegin\@empty - \the\Etoc@toctoks - \Etoc@restoretocdepth - \endgroup -} -\DeclareRobustCommand*\etocifwasempty - {\ifEtoc@isemptytoc\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi } -\expandafter\let\expandafter\etocxifwasempty\csname etocifwasempty \endcsname -\def\Etoc@testingcontentslinelocal #1{% - \ifEtoc@stoptoc - \else - \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel - \else - \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname - \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi - \ifEtoc@notactive - \else - \ifnum\Etoc@level>\etoclocaltop - \unless\ifnum\Etoc@level>\c@tocdepth - \global\Etoc@isemptytocfalse - \global\Etoc@stoptoctrue - \fi - \else - \global\Etoc@stoptoctrue - \fi - \fi - \fi - \fi - \Etoc@gobblethreeorfour{}% -} -\def\Etoc@testingcontentsline #1{% - \ifEtoc@stoptoc - \else - \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel - \else - \unless\ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth - \global\Etoc@isemptytocfalse - \global\Etoc@stoptoctrue - \fi - \fi - \fi - \Etoc@gobblethreeorfour{}% -} -\def\Etoc@localtableofcontents#1{% - \gdef\etoclocaltop{-\@m}% - \Etoc@localtoctrue - \global\Etoc@isemptytocfalse - \edef\Etoc@tocid{#1}% - \ifnum\Etoc@tocid<\@ne - \setbox0\hbox{\ref{Unknown toc ref \@secondoftwo#1. \space Rerun LaTeX}}% - \global\Etoc@stoptoctrue - \gdef\etoclocaltop{-\thr@@}% - \Etoc@tableofcontents - \expandafter\Etoc@gobtoetoc@ - \fi - \global\Etoc@notactivetrue - \ifEtoc@checksemptiness - \Etoc@checkifempty - \fi - \ifEtoc@isemptytoc - \ifEtoc@notactive - \setbox0\hbox{\ref{Unknown toc ID \number\Etoc@tocid. \space Rerun LaTeX}}% - \global\Etoc@isemptytocfalse - \global\Etoc@stoptoctrue - \gdef\etoclocaltop{-\thr@@}% - \Etoc@tableofcontents - \expandafter\expandafter\expandafter\Etoc@gobtoetoc@ - \fi - \else - \global\Etoc@stoptocfalse - \global\Etoc@notactivetrue - \edef\etoc@startlocaltoc##1% - {\noexpand\Etoc@@startlocaltoc{##1}{\Etoc@tocid}}% - \Etoc@tableofcontents - \fi - \@gobble\etoc@ - \endgroup\ifEtoc@mustclosegroup\endgroup\fi - \Etoc@tocdepthreset - \Etoc@listofreset - \etocaftertochook -}% \Etoc@localtableofcontents -\def\Etoc@getref #1{% - \@ifundefined{r@#1} - {0} - {\expandafter\Etoc@getref@i\romannumeral-`0% - \expandafter\expandafter\expandafter - \@car\csname r@#1\endcsname0\@nil\@etoc - }% -} -\def\Etoc@getref@i#1#2\@etoc{\ifnum9<1\string#1 #1#2\else 0\fi} -\def\Etoc@ref#1{\Etoc@localtableofcontents{\Etoc@getref{#1}}} -\def\Etoc@label#1{\label{#1}\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} -\@firstofone{\def\Etoc@again} {\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents} -\def\Etoc@dothis #1#2\etoc@ {\fi #1} -\def\Etoc@t@bleofcontents{% - \gdef\etoclocaltop{-\@M}% - \ifx\Etoc@nexttoken\label\Etoc@dothis{\expandafter\Etoc@label\@gobble}\fi - \ifx\Etoc@nexttoken\@sptoken\Etoc@dothis{\Etoc@again}\fi - \ifx\Etoc@nexttoken\ref\Etoc@dothis{\expandafter\Etoc@ref\@gobble}\fi - \ifEtoc@tocwithid\Etoc@dothis{\Etoc@localtableofcontents{\c@etoc@tocid}}\fi - \global\Etoc@isemptytocfalse - \ifEtoc@checksemptiness\Etoc@checkifempty\fi - \ifEtoc@isemptytoc - \ifEtoc@notocifnotoc - \expandafter\expandafter\expandafter\@gobble - \fi - \fi - \Etoc@tableofcontents - \endgroup - \ifEtoc@mustclosegroup\endgroup\fi - \Etoc@tocdepthreset - \Etoc@listofreset - \etocaftertochook - \@gobble\etoc@ - }% \Etoc@t@bleofcontents -\def\Etoc@table@fcontents{% - \refstepcounter{etoc@tocid}% - \Etoc@tocwithidfalse - \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents -} -\def\Etoc@localtable@fcontents{% - \refstepcounter{etoc@tocid}% - \addtocontents{toc}{\string\etoc@startlocaltoc{\the\c@etoc@tocid}}% - \Etoc@tocwithidtrue - \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents -} -\def\etoctableofcontents{% - \Etoc@openouttoc - \Etoc@tocdepthset - \begingroup - \@ifstar - {\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents} - {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}% -}% \etoctableofcontents -\def\etocifisstarred{\ifx\Etoc@aftertitlehook\@empty - \expandafter\@firstoftwo\else - \expandafter\@secondoftwo - \fi} -\let\etocoriginaltableofcontents\tableofcontents -\let\tableofcontents\etoctableofcontents -\let\Etoc@listofhook\@empty -\newcommand*\localtableofcontents{% - \Etoc@openouttoc - \Etoc@tocdepthset - \begingroup - \Etoc@listofhook - \@ifstar - {\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents} - {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}% -}% \localtableofcontents -\newcommand*\localtableofcontentswithrelativedepth[1]{% - \def\Etoc@@startlocaltochook{% - \global\c@tocdepth\numexpr\etoclocaltop+#1\relax - }% - \def\Etoc@listofreset{\let\Etoc@@startlocaltochook\@empty - \let\Etoc@listofreset\@empty}% - \localtableofcontents -}% \localtableofcontentswithrelativedepth -\newcommand\etocsettocstyle[2]{% - \Etoc@etocstylefalse - \Etoc@classstylefalse - \def\Etoc@tableofcontents@user@before{#1}% - \def\Etoc@tableofcontents@user@after {#2}% -}% -\def\etocstoretocstyleinto#1{% -%% \@ifdefinable#1{% - \edef#1{\noexpand\Etoc@etocstylefalse\noexpand\Etoc@classstylefalse - \def\noexpand\Etoc@tableofcontents@user@before{% - \unexpanded\expandafter{\Etoc@tableofcontents@user@before}% - }% - \def\noexpand\Etoc@tableofcontents@user@after{% - \unexpanded\expandafter{\Etoc@tableofcontents@user@after}% - }% - }% -%% }% -}% -\def\Etoc@tableofcontents {% - \Etoc@tableofcontents@etoc@before - \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi - \Etoc@tableofcontents@user@before - \Etoc@tableofcontents@contents - \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi - \Etoc@tableofcontents@user@after - \Etoc@tableofcontents@etoc@after - \@gobble\etoc@ -} -\def\Etoc@tableofcontents@etoc@before{% - \ifnum\c@tocdepth>\Etoc@minf - \else - \expandafter\Etoc@gobtoetoc@ - \fi - \Etoc@par - \Etoc@beforetitlehook - \etocbeforetitlehook - \Etoc@storetocdepth - \let\Etoc@savedcontentsline\contentsline - \let\contentsline\Etoc@etoccontentsline - \ifEtoc@standardlines - \else - \def\Etoc@do##1{% - \expandafter\def\csname etocsaved##1tocline\endcsname - {\PackageError{etoc}{% - \expandafter\string\csname etocsaved##1tocline\endcsname\space - has been deprecated\MessageBreak - at 1.1a and is removed at 1.2.\MessageBreak - Use \expandafter\string\csname l@##1\endcsname\space directly.\MessageBreak - Reported \on@line}% - {I will use \expandafter\string - \csname l@##1\endcsname\space myself for this time.% - }% - \csname l@##1\endcsname - }% - }% - \Etoc@dolevels - \fi -}% -\def\Etoc@tableofcontents@contents{% - \Etoc@tocdepthset - \ifEtoc@parskip\parskip\z@skip\fi - \Etoc@aftertitlehook - \gdef\etoclocaltop{-\thr@@}% - \Etoc@toctoc - \etocaftercontentshook -}% -\def\Etoc@tableofcontents@etoc@after{% - \@nobreakfalse - \Etoc@restoretocdepth - \ifx\Etoc@global\global - \@ifundefined{tof@finish} - {} - {\ifx\tof@finish\@empty - \else - \global\let\contentsline\Etoc@savedcontentsline - \fi - }% - \fi -} -\def\etocsetstyle#1{\ifcsname Etoc@#1@@\endcsname - \expandafter\Etoc@setstyle@a - \else - \expandafter\Etoc@setstyle@error - \fi {#1}% -} -\def\Etoc@setstyle@error #1{% - \PackageWarning{etoc}{`#1' is unknown to etoc. \space Did you\MessageBreak - forget some \string\etocsetlevel{#1}{}?\MessageBreak - Reported}% - \@gobblefour -} -\def\Etoc@setstyle@a #1{% - \edef\Etoc@tmp{\the\numexpr\csname Etoc@#1@@\endcsname}% - \if1\unless\ifnum\Etoc@tmp<\Etoc@maxlevel 0\fi - \unless\ifnum\Etoc@tmp>\Etoc@minf 0\fi1% - \Etoc@standardlinesfalse - \expandafter\Etoc@setstyle@b\expandafter\Etoc@tmp - \else - \ifnum\Etoc@tmp=\Etoc@maxlevel - \in@{.#1,}{.figure,.table,}% - \ifin@ - \PackageWarning{etoc} - {You can not use \string\etocsetstyle\space with `#1'.\MessageBreak - Check the package documentation (in particular about\MessageBreak - \string\etoclocallistoffigureshook/\string\etoclocallistoftableshook)% - \MessageBreak on how to customize - figure and table entries in local\MessageBreak lists. Reported}% - \else - \PackageInfo{etoc} - {Attempt to set the style of `#1',\MessageBreak - whose level is currently the maximal one \etocthemaxlevel,\MessageBreak - which is never displayed. \space This will be ignored\MessageBreak - but note that we do quit compatibility mode.\MessageBreak - Reported}% - \Etoc@standardlinesfalse - \fi - \else - \PackageWarning{etoc}{This should not happen. Reported}% - \fi - \expandafter\@gobblefour - \fi -} -\long\def\Etoc@setstyle@b#1#2#3#4#5{% - \expandafter\def\csname Etoc@begin@#1\endcsname {#2}% - \expandafter\def\csname Etoc@prefix@#1\endcsname {#3}% - \expandafter\def\csname Etoc@contents@#1\endcsname {#4}% - \expandafter\def\csname Etoc@end@#1\endcsname {#5}% -} -\def\Etoc@setstyle@e#1{% - \expandafter\let\csname Etoc@begin@#1\endcsname \@empty - \expandafter\let\csname Etoc@prefix@#1\endcsname \@empty - \expandafter\let\csname Etoc@contents@#1\endcsname \@empty - \expandafter\let\csname Etoc@end@#1\endcsname \@empty -} -\def\Etoc@storelines@a#1{% - \noexpand\Etoc@setstyle@b{#1}% - {\expandafter\Etoc@expandonce\csname Etoc@begin@#1\endcsname}% - {\expandafter\Etoc@expandonce\csname Etoc@prefix@#1\endcsname}% - {\expandafter\Etoc@expandonce\csname Etoc@contents@#1\endcsname}% - {\expandafter\Etoc@expandonce\csname Etoc@end@#1\endcsname}% -} -\def\Etoc@expandonce#1{\unexpanded\expandafter{#1}} -\def\etocstorelinestylesinto#1{% - \edef#1{\Etoc@storelines@a{-2}\Etoc@storelines@a{-1}\Etoc@storelines@a{0}% - \Etoc@storelines@a {1}\Etoc@storelines@a {2}\Etoc@storelines@a{3}% - \Etoc@storelines@a {4}\Etoc@storelines@a {5}% - \ifEtoc@deeplevels - \Etoc@storelines@a{6}\Etoc@storelines@a{7}\Etoc@storelines@a{8}% - \Etoc@storelines@a{9}\Etoc@storelines@a{10}\Etoc@storelines@a{11}% - \fi - }% -} -\def\etocstorethislinestyleinto#1#2{% - \edef#2{\expandafter\Etoc@storelines@a\expandafter{\number\etoclevel{#1}}}% -}% -\def\etocfontminustwo {\normalfont \LARGE \bfseries} -\def\etocfontminusone {\normalfont \large \bfseries} -\def\etocfontzero {\normalfont \large \bfseries} -\def\etocfontone {\normalfont \normalsize \bfseries} -\def\etocfonttwo {\normalfont \normalsize} -\def\etocfontthree {\normalfont \footnotesize} -\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex} -\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex} -\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex} -\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex} -\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex} -\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex} -\def\etocbaselinespreadminustwo {1} -\def\etocbaselinespreadminusone {1} -\def\etocbaselinespreadzero {1} -\def\etocbaselinespreadone {1} -\def\etocbaselinespreadtwo {1} -\def\etocbaselinespreadthree {.9} -\def\etocminustwoleftmargin {1.5em plus 0.5fil} -\def\etocminustworightmargin {1.5em plus -0.5fil} -\def\etocminusoneleftmargin {1em} -\def\etocminusonerightmargin {1em} -\def\etoctoclineleaders - {\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}} -\def\etocabbrevpagename {p.~} -\def\etocpartname {Part} -\def\etocbookname {Book} -\def\etocdefaultlines{% - \Etoc@standardlinesfalse - \etocdefaultlines@setbook - \etocdefaultlines@setpart - \etocdefaultlines@setchapter - \etocdefaultlines@setsection - \etocdefaultlines@setsubsection - \etocdefaultlines@setsubsubsection - \etocdefaultlines@setdeeperones -} -\def\etocnoprotrusion{\leavevmode\kern-\p@\kern\p@} -\@ifclassloaded{memoir}{% - \def\etocdefaultlines@setbook{% - \Etoc@setstyle@b - {-2}% - {\addpenalty\@M\etocskipfirstprefix} - {\addpenalty\@secpenalty} - {\begingroup - \etocfontminustwo - \addvspace{\etocsepminustwo}% - \parindent \z@ - \leftskip \etocminustwoleftmargin - \rightskip \etocminustworightmargin - \parfillskip \@flushglue - \vbox{\etocifnumbered{\etoclink{\etocbookname\enspace\etocthenumber:\quad}}{}% - \etocname - \baselineskip\etocbaselinespreadminustwo\baselineskip - \par}% - \addpenalty\@M\addvspace{\etocsepminusone}% - \endgroup} - {}% - } - }{\let\etocdefaultlines@setbook\@empty} -\def\etocdefaultlines@setpart{% -\Etoc@setstyle@b - {-1}% - {\addpenalty\@M\etocskipfirstprefix} - {\addpenalty\@secpenalty} - {\begingroup - \etocfontminusone - \addvspace{\etocsepminusone}% - \parindent \z@ - \leftskip \etocminusoneleftmargin - \rightskip \etocminusonerightmargin - \parfillskip \@flushglue - \vbox{\etocifnumbered{\etoclink{\etocpartname\enspace\etocthenumber.\quad}}{}% - \etocname - \baselineskip\etocbaselinespreadminusone\baselineskip - \par}% - \addpenalty\@M\addvspace{\etocsepzero}% - \endgroup} - {}% -} -\def\etocdefaultlines@setchapter{% -\Etoc@setstyle@b - {0}% - {\addpenalty\@M\etocskipfirstprefix} - {\addpenalty\@itempenalty} - {\begingroup - \etocfontzero - \addvspace{\etocsepzero}% - \parindent \z@ \parfillskip \@flushglue - \vbox{\etocifnumbered{\etocnumber.\enspace}{}\etocname - \baselineskip\etocbaselinespreadzero\baselineskip - \par}% - \endgroup} - {\addpenalty{-\@highpenalty}\addvspace{\etocsepminusone}}% -} -\def\etocdefaultlines@setsection{% -\Etoc@setstyle@b - {1}% - {\addpenalty\@M\etocskipfirstprefix} - {\addpenalty\@itempenalty} - {\begingroup - \etocfontone - \addvspace{\etocsepone}% - \parindent \z@ \parfillskip \z@ - \setbox\z@\vbox{\parfillskip\@flushglue - \etocname\par - \setbox\tw@\lastbox - \global\setbox\@ne\hbox{\unhbox\tw@\ }}% - \dimen\z@=\wd\@ne - \setbox\z@=\etoctoclineleaders - \advance\dimen\z@\wd\z@ - \etocifnumbered - {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}} - {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}% - \advance\dimen\z@\wd\tw@ - \ifdim\dimen\z@ < \linewidth - \vbox{\etocname~% - \leaders\box\z@\hfil\box\tw@ - \baselineskip\etocbaselinespreadone\baselineskip - \par}% - \else - \vbox{\etocname~% - \leaders\copy\z@\hfil\break - \hbox{}\leaders\box\z@\hfil\box\tw@ - \baselineskip\etocbaselinespreadone\baselineskip - \par}% - \fi - \endgroup} - {\addpenalty\@secpenalty\addvspace{\etocsepzero}}% -} -\def\etocdefaultlines@setsubsection{% -\Etoc@setstyle@b - {2}% - {\addpenalty\@medpenalty\etocskipfirstprefix} - {\addpenalty\@itempenalty} - {\begingroup - \etocfonttwo - \addvspace{\etocseptwo}% - \parindent \z@ \parfillskip \z@ - \setbox\z@\vbox{\parfillskip\@flushglue - \etocname\par\setbox\tw@\lastbox - \global\setbox\@ne\hbox{\unhbox\tw@}}% - \dimen\z@=\wd\@ne - \setbox\z@=\etoctoclineleaders - \advance\dimen\z@\wd\z@ - \etocifnumbered - {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}} - {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}% - \advance\dimen\z@\wd\tw@ - \ifdim\dimen\z@ < \linewidth - \vbox{\etocname~% - \leaders\box\z@\hfil\box\tw@ - \baselineskip\etocbaselinespreadtwo\baselineskip - \par}% - \else - \vbox{\etocname~% - \leaders\copy\z@\hfil\break - \hbox{}\leaders\box\z@\hfil\box\tw@ - \baselineskip\etocbaselinespreadtwo\baselineskip - \par}% - \fi - \endgroup} - {\addpenalty\@secpenalty\addvspace{\etocsepone}}% -} -\def\etocdefaultlines@setsubsubsection{% -\Etoc@setstyle@b - {3}% - {\addpenalty\@M - \etocfontthree - \vspace{\etocsepthree}% - \noindent - \etocskipfirstprefix} - {\allowbreak\,--\,} - {\etocname} - {.\hfil - \begingroup - \baselineskip\etocbaselinespreadthree\baselineskip - \par - \endgroup - \addpenalty{-\@highpenalty}} -} -\def\etocdefaultlines@setdeeperones{% -\Etoc@setstyle@e{4}% -\Etoc@setstyle@e{5}% -\ifEtoc@deeplevels - \Etoc@setstyle@e{6}% - \Etoc@setstyle@e{7}% - \Etoc@setstyle@e{8}% - \Etoc@setstyle@e{9}% - \Etoc@setstyle@e{10}% - \Etoc@setstyle@e{11}% -\fi -} -\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex} -\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex} -\def\etoccolumnsep{2em} -\def\etocmulticolsep{0ex} -\def\etocmulticolpretolerance{-1} -\def\etocmulticoltolerance{200} -\def\etocdefaultnbcol{2} -\def\etocinnertopsep{2ex} -\newcommand\etocmulticolstyle[2][\etocdefaultnbcol]{% -\etocsettocstyle - {\let\etocoldpar\par - \addvspace{\etocabovetocskip}% - \ifnum #1>\@ne - \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\multicolpretolerance\etocmulticolpretolerance - \multicoltolerance\etocmulticoltolerance - \setlength{\columnsep}{\etoccolumnsep}% - \setlength{\multicolsep}{\etocmulticolsep}% - \begin{multicols}{#1}[#2\etocoldpar\addvspace{\etocinnertopsep}]} - {#2\ifvmode\else\begingroup\interlinepenalty\@M\parskip\z@skip - \@@par\endgroup - \fi - \nobreak\addvspace{\etocinnertopsep}% - \pretolerance\etocmulticolpretolerance - \tolerance\etocmulticoltolerance}% - }% - {\ifnum #1>\@ne - \expandafter\@firstofone - \else \expandafter\@gobble - \fi - {\end{multicols}}% - \addvspace{\etocbelowtocskip}}% -} -\def\etocinnerbottomsep{3.5ex} -\def\etocinnerleftsep{2em} -\def\etocinnerrightsep{2em} -\def\etoctoprule{\hrule} -\def\etocleftrule{\vrule} -\def\etocrightrule{\vrule} -\def\etocbottomrule{\hrule} -\def\etoctoprulecolorcmd{\relax} -\def\etocbottomrulecolorcmd{\relax} -\def\etocleftrulecolorcmd{\relax} -\def\etocrightrulecolorcmd{\relax} -\def\etoc@ruledheading #1{% - \hb@xt@\linewidth{\color@begingroup - \hss #1\hss\hskip-\linewidth - \etoctoprulecolorcmd\leaders\etoctoprule\hss - \phantom{#1}% - \leaders\etoctoprule\hss\color@endgroup}% - \nointerlineskip\nobreak\vskip\etocinnertopsep} -\newcommand*\etocruledstyle[2][\etocdefaultnbcol]{% -\etocsettocstyle - {\addvspace{\etocabovetocskip}% - \ifnum #1>\@ne - \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\multicolpretolerance\etocmulticolpretolerance - \multicoltolerance\etocmulticoltolerance - \setlength{\columnsep}{\etoccolumnsep}% - \setlength{\multicolsep}{\etocmulticolsep}% - \begin{multicols}{#1}[\etoc@ruledheading{#2}]} - {\etoc@ruledheading{#2}% - \pretolerance\etocmulticolpretolerance - \tolerance\etocmulticoltolerance}} - {\ifnum #1>\@ne\expandafter\@firstofone - \else \expandafter\@gobble - \fi - {\end{multicols}}% - \addvspace{\etocbelowtocskip}}} -\def\etocframedmphook{\relax} -\long\def\etocbkgcolorcmd{\relax} -\long\def\Etoc@relax{\relax} -\newbox\etoc@framed@titlebox -\newbox\etoc@framed@contentsbox -\newcommand*\etocframedstyle[2][\etocdefaultnbcol]{% -\etocsettocstyle{% - \addvspace{\etocabovetocskip}% - \sbox\z@{#2}% - \dimen\z@\dp\z@ - \ifdim\wd\z@<\linewidth \dp\z@\z@ \else \dimen\z@\z@ \fi - \setbox\etoc@framed@titlebox=\hb@xt@\linewidth{\color@begingroup - \hss - \ifx\etocbkgcolorcmd\Etoc@relax - \else - \sbox\tw@{\color{white}% - \vrule\@width\wd\z@\@height\ht\z@\@depth\dimen\z@}% - \ifdim\wd\z@<\linewidth \dp\tw@\z@\fi - \box\tw@ - \hskip-\wd\z@ - \fi - \copy\z@ - \hss - \hskip-\linewidth - \etoctoprulecolorcmd\leaders\etoctoprule\hss - \hskip\wd\z@ - \etoctoprulecolorcmd\leaders\etoctoprule\hss\color@endgroup}% - \setbox\z@\hbox{\etocleftrule\etocrightrule}% - \dimen\tw@\linewidth\advance\dimen\tw@-\wd\z@ - \advance\dimen\tw@-\etocinnerleftsep - \advance\dimen\tw@-\etocinnerrightsep - \setbox\etoc@framed@contentsbox=\vbox\bgroup - \hsize\dimen\tw@ - \kern\dimen\z@ - \vskip\etocinnertopsep - \hbox\bgroup - \begin{minipage}{\hsize}% - \etocframedmphook - \ifnum #1>\@ne - \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\multicolpretolerance\etocmulticolpretolerance - \multicoltolerance\etocmulticoltolerance - \setlength{\columnsep}{\etoccolumnsep}% - \setlength{\multicolsep}{\etocmulticolsep}% - \begin{multicols}{#1}} - {\pretolerance\etocmulticolpretolerance - \tolerance\etocmulticoltolerance}} - {\ifnum #1>\@ne\expandafter\@firstofone - \else \expandafter\@gobble - \fi - {\end{multicols}\unskip }% - \end{minipage}% - \egroup - \vskip\etocinnerbottomsep - \egroup - \vbox{\hsize\linewidth - \ifx\etocbkgcolorcmd\Etoc@relax - \else - \kern\ht\etoc@framed@titlebox - \kern\dp\etoc@framed@titlebox - \hb@xt@\linewidth{\color@begingroup - \etocleftrulecolorcmd\etocleftrule - \etocbkgcolorcmd - \leaders\vrule - \@height\ht\etoc@framed@contentsbox - \@depth\dp\etoc@framed@contentsbox - \hss - \etocrightrulecolorcmd\etocrightrule - \color@endgroup}\nointerlineskip - \vskip-\dp\etoc@framed@contentsbox - \vskip-\ht\etoc@framed@contentsbox - \vskip-\dp\etoc@framed@titlebox - \vskip-\ht\etoc@framed@titlebox - \fi - \box\etoc@framed@titlebox\nointerlineskip - \hb@xt@\linewidth{\color@begingroup - {\etocleftrulecolorcmd\etocleftrule}% - \hss\box\etoc@framed@contentsbox\hss - \etocrightrulecolorcmd\etocrightrule\color@endgroup} - \nointerlineskip - \vskip\ht\etoc@framed@contentsbox - \vskip\dp\etoc@framed@contentsbox - \hb@xt@\linewidth{\color@begingroup\etocbottomrulecolorcmd - \leaders\etocbottomrule\hss\color@endgroup}} - \addvspace{\etocbelowtocskip}}} -\newcommand\etoc@multicoltoc[2][\etocdefaultnbcol]{% - \etocmulticolstyle[#1]{#2}% - \tableofcontents} -\newcommand\etoc@multicoltoci[2][\etocdefaultnbcol]{% - \etocmulticolstyle[#1]{#2}% - \tableofcontents*} -\newcommand\etoc@local@multicoltoc[2][\etocdefaultnbcol]{% - \etocmulticolstyle[#1]{#2}% - \localtableofcontents} -\newcommand\etoc@local@multicoltoci[2][\etocdefaultnbcol]{% - \etocmulticolstyle[#1]{#2}% - \localtableofcontents*} -\newcommand*\etoc@ruledtoc[2][\etocdefaultnbcol]{% - \etocruledstyle[#1]{#2}% - \tableofcontents} -\newcommand*\etoc@ruledtoci[2][\etocdefaultnbcol]{% - \etocruledstyle[#1]{#2}% - \tableofcontents*} -\newcommand*\etoc@local@ruledtoc[2][\etocdefaultnbcol]{% - \etocruledstyle[#1]{#2}% - \localtableofcontents} -\newcommand*\etoc@local@ruledtoci[2][\etocdefaultnbcol]{% - \etocruledstyle[#1]{#2}% - \localtableofcontents*} -\newcommand*\etoc@framedtoc[2][\etocdefaultnbcol]{% - \etocframedstyle[#1]{#2}% - \tableofcontents} -\newcommand*\etoc@framedtoci[2][\etocdefaultnbcol]{% - \etocframedstyle[#1]{#2}% - \tableofcontents*} -\newcommand*\etoc@local@framedtoc[2][\etocdefaultnbcol]{% - \etocframedstyle[#1]{#2}% - \localtableofcontents} -\newcommand*\etoc@local@framedtoci[2][\etocdefaultnbcol]{% - \etocframedstyle[#1]{#2}% - \localtableofcontents*} -\def\etocmulticol{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@multicoltoci} - {\etoc@multicoltoc}} -\def\etocruled{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@ruledtoci} - {\etoc@ruledtoc}} -\def\etocframed{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@framedtoci} - {\etoc@framedtoc}} -\def\etoclocalmulticol{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@local@multicoltoci} - {\etoc@local@multicoltoc}} -\def\etoclocalruled{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@local@ruledtoci} - {\etoc@local@ruledtoc}} -\def\etoclocalframed{\begingroup - \Etoc@mustclosegrouptrue - \@ifstar - {\etoc@local@framedtoci} - {\etoc@local@framedtoc}} -\def\etocmemoirtoctotocfmt #1#2{% - \PackageWarning{etoc} - {\string\etocmemoirtoctotocfmt\space is deprecated.\MessageBreak - Use in its place \string\etocsettoclineforclasstoc,\MessageBreak - and \string\etocsettoclineforclasslistof{toc} (or {lof}, {lot}). - I will do this now.\MessageBreak - Reported}% - \etocsettoclineforclasstoc{#1}{#2}% - \etocsettoclineforclasslistof{toc}{#1}{#2}% -} -\def\etocsettoclineforclasstoc #1#2{% - \def\etocclassmaintocaddtotoc{\etocglobalheadtotoc{#1}{#2}}% -} -\def\etocsettoclineforclasslistof #1#2#3{% - \@namedef{etocclasslocal#1addtotoc}{\etoclocalheadtotoc{#2}{#3}}% -} -\let\etocclasslocaltocaddtotoc\@empty -\let\etocclasslocallofaddtotoc\@empty -\let\etocclasslocallotaddtotoc\@empty -\ifdefined\c@chapter - \def\etocclasslocaltocmaketitle{\section*{\localcontentsname}} - \def\etocclasslocallofmaketitle{\section*{\locallistfigurename}} - \def\etocclasslocallotmaketitle{\section*{\locallisttablename}} - \etocsettoclineforclasstoc {chapter}{\contentsname} - \etocsettoclineforclasslistof{toc}{section}{\localcontentsname} - \etocsettoclineforclasslistof{lof}{section}{\locallistfigurename} - \etocsettoclineforclasslistof{lot}{section}{\locallisttablename} -\else - \def\etocclasslocaltocmaketitle{\subsection*{\localcontentsname}}% - \def\etocclasslocallofmaketitle{\subsection*{\locallistfigurename}}% - \def\etocclasslocallotmaketitle{\subsection*{\locallisttablename}}% - \etocsettoclineforclasstoc {section}{\contentsname} - \etocsettoclineforclasslistof{toc}{subsection}{\localcontentsname} - \etocsettoclineforclasslistof{lof}{subsection}{\locallistfigurename} - \etocsettoclineforclasslistof{lot}{subsection}{\locallisttablename} -\fi -\def\etocclasslocalperhapsaddtotoc #1{% - \etocifisstarred - {} - {\csname ifEtoc@local#1totoc\endcsname - \csname etocclasslocal#1addtotoc\endcsname - \fi - }% -} -\def\etocarticlestyle{% - \etocsettocstyle - {\ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \section *{\contentsname - \@mkboth {\MakeUppercase \contentsname} - {\MakeUppercase \contentsname}}% - \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% - \fi - } - {}% -} -\def\etocarticlestylenomarks{% - \etocsettocstyle - {\ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \section *{\contentsname}% - \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% - \fi - } - {}% -} -\def\etocbookstyle{% - \etocsettocstyle - {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi - \ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \chapter *{\contentsname - \@mkboth {\MakeUppercase \contentsname} - {\MakeUppercase \contentsname}}% - \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% - \fi - }% - {\if@restonecol \twocolumn \fi}% -} -\def\etocbookstylenomarks{% - \etocsettocstyle - {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi - \ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \chapter *{\contentsname}% - \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}% - \fi - }% - {\if@restonecol \twocolumn \fi}% -} -\let\etocreportstyle\etocbookstyle -\let\etocreportstylenomarks\etocbookstylenomarks -\def\etocmemoirstyle{% - \etocsettocstyle - {\ensureonecol \par \begingroup \phantomsection - \ifx\Etoc@aftertitlehook\@empty - \else - \ifmem@em@starred@listof - \else - \ifEtoc@localtoc - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \ifEtoc@maintoctotoc - \etocclassmaintocaddtotoc - \fi - \fi - \fi - \fi - \ifEtoc@localtoc - \@namedef{@\Etoc@currext maketitle}{% - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - }% - \fi - \@nameuse {@\Etoc@currext maketitle} %<< space token here from memoir code - \ifx\Etoc@aftertitlehook\@empty - \else - \Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax - \fi - \parskip \cftparskip \@nameuse {cft\Etoc@currext beforelisthook}% - }% - {\@nameuse {cft\Etoc@currext afterlisthook}% - \endgroup\restorefromonecol - }% -} -\let\Etoc@beforetitlehook\@empty -\if1\@ifclassloaded{scrartcl}0{\@ifclassloaded{scrbook}0{\@ifclassloaded{scrreprt}01}}% -\expandafter\@gobble -\else - \ifdefined\setuptoc - \def\Etoc@beforetitlehook{% - \ifEtoc@localtoc - \etocclasslocalperhapsaddtotoc\Etoc@currext - \setuptoc{\Etoc@currext}{leveldown}% - \else - \etocifisstarred{}{\etocifmaintoctotoc{\setuptoc{toc}{totoc}}}% - \fi - }% - \fi -\expandafter\@firstofone -\fi -{\def\etocclasslocalperhapsaddtotoc #1{% - \etocifisstarred - {}% - {\csname ifEtoc@local#1totoc\endcsname - \setuptoc{\Etoc@currext}{totoc}% - \fi - }% - }% -} -\ifdefined\Iftocfeature - \def\etoc@Iftocfeature{\Iftocfeature}% -\else - \def\etoc@Iftocfeature{\iftocfeature}% -\fi -\def\etocscrartclstyle{% - \etocsettocstyle - {\ifx\Etoc@currext\Etoc@tocext - \expandafter\@firstofone - \else - \expandafter\@gobble - \fi - {\let\if@dynlist\if@tocleft}% - \edef\@currext{\Etoc@currext}% - \@ifundefined{listof\@currext name}% - {\def\list@fname{\listofname~\@currext}}% - {\expandafter\let\expandafter\list@fname - \csname listof\@currext name\endcsname}% - \etoc@Iftocfeature {\@currext}{onecolumn} - {\etoc@Iftocfeature {\@currext}{leveldown} - {} - {\if@twocolumn \aftergroup \twocolumn \onecolumn \fi }} - {}% - \etoc@Iftocfeature {\@currext}{numberline}% - {\def \nonumberline {\numberline {}}}{}% - \expandafter\tocbasic@listhead\expandafter {\list@fname}% - \begingroup \expandafter \expandafter \expandafter - \endgroup \expandafter - \ifx - \csname microtypesetup\endcsname \relax - \else - \etoc@Iftocfeature {\@currext}{noprotrusion}{} - {\microtypesetup {protrusion=false}% - \PackageInfo {tocbasic}% - {character protrusion at \@currext\space deactivated}}% - \fi - \etoc@Iftocfeature{\@currext}{noparskipfake}{}{% - \ifvmode \@tempskipa\lastskip \vskip-\lastskip - \addtolength{\@tempskipa}{\parskip}\vskip\@tempskipa\fi - }% - \setlength {\parskip }{\z@ }% - \setlength {\parindent }{\z@ }% - \setlength {\parfillskip }{\z@ \@plus 1fil}% - \csname tocbasic@@before@hook\endcsname - \csname tb@\@currext @before@hook\endcsname - }% end of before_toc - {% start of after_toc - \providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file - \edef\@currext{\Etoc@currext}% - \csname tb@\@currext @after@hook\endcsname - \csname tocbasic@@after@hook\endcsname - }% end of after_toc -} -\let\etocscrbookstyle\etocscrartclstyle -\let\etocscrreprtstyle\etocscrartclstyle -\def\etocclasstocstyle{\etocarticlestyle} -\newcommand*\etocmarkboth[1]{% - \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} -\newcommand*\etocmarkbothnouc[1]{\@mkboth{#1}{#1}} -\newcommand\etoctocstyle[3][section]{\etocmulticolstyle[#2]% - {\csname #1\endcsname *{#3}}} -\newcommand\etoctocstylewithmarks[4][section]{\etocmulticolstyle[#2]% - {\csname #1\endcsname *{#3\etocmarkboth{#4}}}} -\newcommand\etoctocstylewithmarksnouc[4][section]{\etocmulticolstyle[#2]% - {\csname #1\endcsname *{#3\etocmarkbothnouc{#4}}}} -\def\Etoc@redefetocstylesforchapters{% - \renewcommand\etoctocstylewithmarks[4][chapter]{% - \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkboth{##4}}}% - } - \renewcommand\etoctocstylewithmarksnouc[4][chapter]{% - \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkbothnouc{##4}}}% - } - \renewcommand\etoctocstyle[3][chapter]{% - \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3}} - } -} -\@ifclassloaded{scrartcl} - {\renewcommand*\etocclasstocstyle{\etocscrartclstyle}}{} -\@ifclassloaded{book} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocbookstyle} - \Etoc@redefetocstylesforchapters}{} -\@ifclassloaded{report} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocreportstyle} - \Etoc@redefetocstylesforchapters}{} -\@ifclassloaded{scrbook} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocscrbookstyle} - \Etoc@redefetocstylesforchapters}{} -\@ifclassloaded{scrreprt} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocscrreprtstyle} - \Etoc@redefetocstylesforchapters}{} -\@ifclassloaded{memoir} - {\renewcommand*\etocfontone{\normalfont\normalsize} - \renewcommand*\etocclasstocstyle{\etocmemoirstyle} - \Etoc@redefetocstylesforchapters}{} -\def\etoctocloftstyle {% - \etocsettocstyle{% - \@cfttocstart - \par - \begingroup - \parindent\z@ \parskip\cftparskip - \@nameuse{@cftmake\Etoc@currext title}% - \ifEtoc@localtoc - \etoctocloftlocalperhapsaddtotoc\Etoc@currext - \else - \etocifisstarred {}{\ifEtoc@maintoctotoc\@cftdobibtoc\fi}% - \fi - }% - {% - \endgroup - \@cfttocfinish - }% -} -\def\etoctocloftlocalperhapsaddtotoc#1{% - \etocifisstarred - {}% - {\csname ifEtoc@local#1totoc\endcsname - \ifdefined\c@chapter\def\@tocextra{@section}\else\def\@tocextra{@subsection}\fi - \csname @cftdobib#1\endcsname - \fi - }% -} -\def\etoctocbibindstyle {% - \etocsettocstyle {% - \toc@start - \ifEtoc@localtoc - \@nameuse{etocclasslocal\Etoc@currext maketitle}% - \etocclasslocalperhapsaddtotoc\Etoc@currext - \else - \etoc@tocbibind@dotoctitle - \fi - }% - {\toc@finish}% -} -\def\etoc@tocbibind@dotoctitle {% - \if@bibchapter - \etocifisstarred - {\chapter*{\contentsname}\prw@mkboth{\contentsname} % id. - }% - {\ifEtoc@maintoctotoc - \toc@chapter{\contentsname} %<-space from original - \else - \chapter*{\contentsname}\prw@mkboth{\contentsname} % id. - \fi - }% - \else - \etocifisstarred - {\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} %<-space - } - {\ifEtoc@maintoctotoc - \toc@section{\@tocextra}{\contentsname} %<-space from original - \else - \@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} % id. - \fi - }% - \fi -}% -\@ifclassloaded{memoir} -{} -{% memoir not loaded - \@ifpackageloaded{tocloft} - {\if@cftnctoc\else - \ifEtoc@keeporiginaltoc - \else - \AtBeginDocument{\let\tableofcontents\etoctableofcontents}% - \fi - \fi } - {\AtBeginDocument - {\@ifpackageloaded{tocloft} - {\if@cftnctoc\else - \PackageWarningNoLine {etoc} - {Package `tocloft' was loaded after `etoc'.\MessageBreak - To prevent it from overwriting \protect\tableofcontents, it will\MessageBreak - be tricked into believing to have been loaded with its\MessageBreak - option `titles'. \space But this will cause the `tocloft'\MessageBreak - customization of the titles of the main list of figures\MessageBreak - and list of tables to not apply either.\MessageBreak - You should load `tocloft' before `etoc'.}% - \AtEndDocument{\PackageWarning{etoc} - {Please load `tocloft' before `etoc'!\@gobbletwo}}% - \fi - \@cftnctoctrue }% - {}% - }% - }% -} -\@ifclassloaded{memoir} -{} -{% memoir not loaded - \AtBeginDocument{% - \@ifpackageloaded{tocloft} - {% - \def\etocclasstocstyle{% - \etoctocloftstyle - \Etoc@classstyletrue - }% - \ifEtoc@etocstyle - \ifEtoc@classstyle - \etocclasstocstyle - \Etoc@etocstyletrue - \fi - \else - \ifEtoc@classstyle - \etocclasstocstyle - \fi - \fi - }% - {% no tocloft - \@ifpackageloaded {tocbibind} - {\if@dotoctoc - \def\etocclasstocstyle{% - \etoctocbibindstyle - \Etoc@classstyletrue - }% - \ifEtoc@etocstyle - \ifEtoc@classstyle - \etocclasstocstyle - \Etoc@etocstyletrue - \fi - \else - \ifEtoc@classstyle - \etocclasstocstyle - \fi - \fi - \ifEtoc@keeporiginaltoc - \else - \let\tableofcontents\etoctableofcontents - \fi - }% - {}% - }% - \@ifpackageloaded{tocbibind} - {% tocbibind, perhaps with tocloft - \if@dotoctoc - \ifEtoc@keeporiginaltoc - \else - \let\tableofcontents\etoctableofcontents - \fi - \etocsetup{maintoctotoc,localtoctotoc}% - \PackageInfo{etoc}{% - Setting (or re-setting) the options `maintoctotoc' and\MessageBreak - `localtoctotoc' to true as tocbibind was detected and\MessageBreak - found to be configured for `TOC to toc'.\MessageBreak - Reported at begin document}% - \fi - \if@dotoclof - \ifEtoc@lof - \etocsetup{localloftotoc}% - \PackageInfo{etoc}{% - Setting (or re-setting) `localloftotoc=true' as the\MessageBreak - package tocbibind was detected and is configured for\MessageBreak - `LOF to toc'. Reported at begin document}% - \fi - \fi - \if@dotoclot - \ifEtoc@lot - \etocsetup{locallottotoc}% - \PackageInfo{etoc}{% - Setting (or re-setting) `locallottotoc=true' as the\MessageBreak - package tocbibind was detected and is configured for\MessageBreak - `LOT to toc'. Reported at begin document}% - \fi - \fi - }% end of tocbibind branch - {}% - }% end of at begin document -}% end of not with memoir branch -\def\Etoc@addtocontents #1#2{% - \addtocontents {toc}{% - \protect\contentsline{#1}{#2}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}% - \ifdefined\protected@file@percent\protected@file@percent\fi - }% -} -\def\Etoc@addcontentsline@ #1#2#3{% - \@namedef{toclevel@#1}{#3}\addcontentsline {toc}{#1}{#2}% -} -\DeclareRobustCommand*{\etoctoccontentsline} - {\@ifstar{\Etoc@addcontentsline@}{\Etoc@addtocontents}} -\def\Etoc@addtocontents@immediately#1#2{% - \begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \Etoc@addtocontents{#1}{#2}% - \endgroup -} -\def\Etoc@addcontentsline@@immediately#1#2#3{% - \begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \Etoc@addcontentsline@{#1}{#2}{#3}% - \endgoroup -} -\DeclareRobustCommand*{\etocimmediatetoccontentsline} - {\@ifstar{\Etoc@addcontentsline@@immediately}{\Etoc@addtocontents@immediately}} -\def\Etoc@storetocdepth {\xdef\Etoc@savedtocdepth{\number\c@tocdepth}} -\def\Etoc@restoretocdepth {\global\c@tocdepth\Etoc@savedtocdepth\relax} -\def\etocobeytoctocdepth {\def\etoc@settocdepth - {\afterassignment\Etoc@@nottoodeep \global\c@tocdepth}} -\def\Etoc@@nottoodeep {\ifnum\Etoc@savedtocdepth<\c@tocdepth - \global\c@tocdepth\Etoc@savedtocdepth\relax\fi } -\def\etocignoretoctocdepth {\let\etoc@settocdepth\@gobble } -\def\etocsettocdepth {\futurelet\Etoc@nexttoken\Etoc@set@tocdepth } -\def\Etoc@set@tocdepth {\ifx\Etoc@nexttoken\bgroup - \expandafter\Etoc@set@tocdepth@ - \else\expandafter\Etoc@set@toctocdepth - \fi } -\def\Etoc@set@tocdepth@ #1{\@ifundefined {Etoc@#1@@} - {\PackageWarning{etoc} - {Unknown sectioning unit #1, \protect\etocsettocdepth\space ignored}} - {\global\c@tocdepth\csname Etoc@#1@@\endcsname}% -} -\def\Etoc@set@toctocdepth #1#{\Etoc@set@toctocdepth@ } -\def\Etoc@set@toctocdepth@ #1{% - \@ifundefined{Etoc@#1@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #1, \protect\etocsettocdepth.toc ignored}}% - {\addtocontents {toc} - {\protect\etoc@settocdepth\expandafter\protect\csname Etoc@#1@@\endcsname}}% -} -\def\etocimmediatesettocdepth #1#{\Etoc@set@toctocdepth@immediately} -\def\Etoc@set@toctocdepth@immediately #1{% - \@ifundefined{Etoc@#1@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #1, \protect\etocimmediatesettocdepth.toc ignored}}% - {\begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \addtocontents {toc} - {\protect\etoc@settocdepth\expandafter\protect - \csname Etoc@#1@@\endcsname}% - \endgroup - }% -} -\def\etocdepthtag #1#{\Etoc@depthtag } -\def\Etoc@depthtag #1{\addtocontents {toc}{\protect\etoc@depthtag {#1}}} -\def\etocimmediatedepthtag #1#{\Etoc@depthtag@immediately } -\def\Etoc@depthtag@immediately #1{% - \begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \addtocontents {toc}{\protect\etoc@depthtag {#1}}% - \endgroup -} -\def\etocignoredepthtags {\let\etoc@depthtag \@gobble } -\def\etocobeydepthtags {\let\etoc@depthtag \Etoc@depthtag@ } -\def\Etoc@depthtag@ #1{\@ifundefined{Etoc@depthof@#1}% - {}% ignore in silence if tag has no associated depth - {\afterassignment\Etoc@@nottoodeep - \global\c@tocdepth\csname Etoc@depthof@#1\endcsname}% -} -\def\etocsettagdepth #1#2{\@ifundefined{Etoc@#2@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #2, \protect\etocsettagdepth\space ignored}}% - {\@namedef{Etoc@depthof@#1}{\@nameuse{Etoc@#2@@}}}% -} -\def\Etoc@tocvsec@err #1{\PackageError {etoc} - {The command \protect#1\space is incompatible with `etoc'} - {Use \protect\etocsettocdepth.toc as replacement}% -}% -\AtBeginDocument {% - \@ifclassloaded{memoir} - {\PackageInfo {etoc} - {Regarding `memoir' class command \protect\settocdepth, consider\MessageBreak - \protect\etocsettocdepth.toc as a drop-in replacement with more\MessageBreak - capabilities (see `etoc' manual). \space - Also, \protect\etocsettocdepth\MessageBreak - and \protect\etocsetnexttocdepth\space should be used in place of\MessageBreak - `memoir' command \protect\maxtocdepth\@gobble}% - }% - {\@ifpackageloaded {tocvsec2}{% - \def\maxtocdepth #1{\Etoc@tocvsec@err \maxtocdepth }% - \def\settocdepth #1{\Etoc@tocvsec@err \settocdepth }% - \def\resettocdepth {\@ifstar {\Etoc@tocvsec@err \resettocdepth }% - {\Etoc@tocvsec@err \resettocdepth }% - }% - \def\save@tocdepth #1#2#3{}% - \let\reset@tocdepth\relax - \let\remax@tocdepth\relax - \let\tableofcontents\etoctableofcontents - \PackageWarningNoLine {etoc} - {Package `tocvsec2' detected and its modification of\MessageBreak - \protect\tableofcontents\space reverted. \space Use - \protect\etocsettocdepth.toc\MessageBreak as a replacement - for `tocvsec2' toc-related commands}% - }% tocvsec2 loaded - {}% tocvsec2 not loaded - }% -}% -\def\invisibletableofcontents {\etocsetnexttocdepth {-3}\tableofcontents }% -\def\invisiblelocaltableofcontents - {\etocsetnexttocdepth {-3}\localtableofcontents }% -\def\etocsetnexttocdepth #1{% - \@ifundefined{Etoc@#1@@} - {\PackageWarning{etoc} - {Unknown sectioning unit #1, \protect\etocsetnextocdepth\space ignored}} - {\Etoc@setnexttocdepth{\csname Etoc@#1@@\endcsname}}% -}% -\def\Etoc@setnexttocdepth#1{% - \def\Etoc@tocdepthset{% - \Etoc@tocdepthreset - \edef\Etoc@tocdepthreset {% - \global\c@tocdepth\the\c@tocdepth\space - \global\let\noexpand\Etoc@tocdepthreset\noexpand\@empty - }% - \global\c@tocdepth#1% - \global\let\Etoc@tocdepthset\@empty - }% -}% -\let\Etoc@tocdepthreset\@empty -\let\Etoc@tocdepthset \@empty -\def\etocsetlocaltop #1#{\Etoc@set@localtop}% -\def\Etoc@set@localtop #1{% - \@ifundefined{Etoc@#1@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #1, \protect\etocsetlocaltop.toc ignored}}% - {\addtocontents {toc} - {\protect\etoc@setlocaltop\expandafter\protect\csname Etoc@#1@@\endcsname}}% -}% -\def\etocimmediatesetlocaltop #1#{\Etoc@set@localtop@immediately}% -\def\Etoc@set@localtop@immediately #1{% - \@ifundefined{Etoc@#1@@}% - {\PackageWarning{etoc} - {Unknown sectioning depth #1, \protect\etocimmediatesetlocaltop.toc ignored}}% - {\begingroup - \let\Etoc@originalwrite\write - \def\write{\immediate\Etoc@originalwrite}% - \addtocontents {toc} - {\protect\etoc@setlocaltop\expandafter\protect - \csname Etoc@#1@@\endcsname}% - \endgroup - }% -}% -\def\etoc@setlocaltop #1{% - \ifnum#1=\Etoc@maxlevel - \Etoc@skipthisonetrue - \else - \Etoc@skipthisonefalse - \global\let\Etoc@level #1% - \global\let\Etoc@virtualtop #1% - \ifEtoc@localtoc - \ifEtoc@stoptoc - \Etoc@skipthisonetrue - \else - \ifEtoc@notactive - \Etoc@skipthisonetrue - \else - \unless\ifnum\Etoc@level>\etoclocaltop - \Etoc@skipthisonetrue - \global\Etoc@stoptoctrue - \fi - \fi - \fi - \fi - \fi - \let\Etoc@next\@empty - \ifEtoc@skipthisone - \else - \ifnum\Etoc@level>\c@tocdepth - \else - \ifEtoc@standardlines - \else - \let\Etoc@next\Etoc@setlocaltop@doendsandbegin - \fi - \fi - \fi - \Etoc@next -}% -\def\Etoc@setlocaltop@doendsandbegin{% - \Etoc@doendsandbegin - \global\Etoc@skipprefixfalse -} -\addtocontents {toc}{\protect\@ifundefined{etoctocstyle}% - {\let\protect\etoc@startlocaltoc\protect\@gobble - \let\protect\etoc@settocdepth\protect\@gobble - \let\protect\etoc@depthtag\protect\@gobble - \let\protect\etoc@setlocaltop\protect\@gobble}{}}% -\def\etocstandardlines {\Etoc@standardlinestrue} -\def\etoctoclines {\Etoc@standardlinesfalse} -\etocdefaultlines -\etocstandardlines -\def\etocstandarddisplaystyle{% - \PackageWarningNoLine{etoc}{% - \string\etocstandarddisplaystyle \on@line\MessageBreak - is deprecated. \space Please use \string\etocclasstocstyle}% -} -\expandafter\def\expandafter\etocclasstocstyle\expandafter{% - \etocclasstocstyle - \Etoc@classstyletrue -} -\def\etocetoclocaltocstyle{\Etoc@etocstyletrue} -\def\etocusertocstyle{\Etoc@etocstylefalse} -\etocclasstocstyle -\etocetoclocaltocstyle -\etocobeytoctocdepth -\etocobeydepthtags -\let\etocbeforetitlehook \@empty -\let\etocaftertitlehook \@empty -\let\etocaftercontentshook \@empty -\let\etocaftertochook \@empty -\def\etockeeporiginaltableofcontents - {\Etoc@keeporiginaltoctrue\let\tableofcontents\etocoriginaltableofcontents}% -\endinput -%% -%% End of file `etoc.sty'. diff --git a/rapport/rapport/latex/longtable_doxygen.sty b/rapport/rapport/latex/longtable_doxygen.sty deleted file mode 100644 index 39a44b8..0000000 --- a/rapport/rapport/latex/longtable_doxygen.sty +++ /dev/null @@ -1,459 +0,0 @@ -%% -%% This is file `longtable.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% longtable.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% The source is maintained by the LaTeX Project team and bug -%% reports for it can be opened at http://latex-project.org/bugs.html -%% (but please observe conditions on bug reports sent to that address!) -%% -%% Copyright 1993-2016 -%% The LaTeX3 Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. -%% -------------------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This file may only be distributed together with a copy of the LaTeX -%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' -%% without such generated files. -%% -%% The list of all files belonging to the LaTeX `Tools Bundle' is -%% given in the file `manifest.txt'. -%% -%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle -\NeedsTeXFormat{LaTeX2e}[1995/06/01] -\ProvidesPackage{longtable_doxygen} - [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] -\def\LT@err{\PackageError{longtable}} -\def\LT@warn{\PackageWarning{longtable}} -\def\LT@final@warn{% - \AtEndDocument{% - \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% - \global\let\LT@final@warn\relax} -\DeclareOption{errorshow}{% - \def\LT@warn{\PackageInfo{longtable}}} -\DeclareOption{pausing}{% - \def\LT@warn#1{% - \LT@err{#1}{This is not really an error}}} -\DeclareOption{set}{} -\DeclareOption{final}{} -\ProcessOptions -\newskip\LTleft \LTleft=\fill -\newskip\LTright \LTright=\fill -\newskip\LTpre \LTpre=\bigskipamount -\newskip\LTpost \LTpost=\bigskipamount -\newcount\LTchunksize \LTchunksize=20 -\let\c@LTchunksize\LTchunksize -\newdimen\LTcapwidth \LTcapwidth=4in -\newbox\LT@head -\newbox\LT@firsthead -\newbox\LT@foot -\newbox\LT@lastfoot -\newcount\LT@cols -\newcount\LT@rows -\newcounter{LT@tables} -\newcounter{LT@chunks}[LT@tables] -\ifx\c@table\undefined - \newcounter{table} - \def\fnum@table{\tablename~\thetable} -\fi -\ifx\tablename\undefined - \def\tablename{Table} -\fi -\newtoks\LT@p@ftn -\mathchardef\LT@end@pen=30000 -\def\longtable{% - \par - \ifx\multicols\@undefined - \else - \ifnum\col@number>\@ne - \@twocolumntrue - \fi - \fi - \if@twocolumn - \LT@err{longtable not in 1-column mode}\@ehc - \fi - \begingroup - \@ifnextchar[\LT@array{\LT@array[x]}} -\def\LT@array[#1]#2{% - \refstepcounter{table}\stepcounter{LT@tables}% - \if l#1% - \LTleft\z@ \LTright\fill - \else\if r#1% - \LTleft\fill \LTright\z@ - \else\if c#1% - \LTleft\fill \LTright\fill - \fi\fi\fi - \let\LT@mcol\multicolumn - \let\LT@@tabarray\@tabarray - \let\LT@@hl\hline - \def\@tabarray{% - \let\hline\LT@@hl - \LT@@tabarray}% - \let\\\LT@tabularcr\let\tabularnewline\\% - \def\newpage{\noalign{\break}}% - \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% - \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% - \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption - \@tempdima\ht\strutbox - \let\@endpbox\LT@endpbox - \ifx\extrarowheight\@undefined - \let\@acol\@tabacol - \let\@classz\@tabclassz \let\@classiv\@tabclassiv - \def\@startpbox{\vtop\LT@startpbox}% - \let\@@startpbox\@startpbox - \let\@@endpbox\@endpbox - \let\LT@LL@FM@cr\@tabularcr - \else - \advance\@tempdima\extrarowheight - \col@sep\tabcolsep - \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr - \fi - \setbox\@arstrutbox\hbox{\vrule - \@height \arraystretch \@tempdima - \@depth \arraystretch \dp \strutbox - \@width \z@}% - \let\@sharp##\let\protect\relax - \begingroup - \@mkpream{#2}% - \xdef\LT@bchunk{% - \global\advance\c@LT@chunks\@ne - \global\LT@rows\z@\setbox\z@\vbox\bgroup - \LT@setprevdepth - \tabskip\LTleft \noexpand\halign to\hsize\bgroup - \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% - \endgroup - \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols - \LT@make@row - \m@th\let\par\@empty - \everycr{}\lineskip\z@\baselineskip\z@ - \LT@bchunk} -\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} -\def\LT@start{% - \let\LT@start\endgraf - \endgraf\penalty\z@\vskip\LTpre - \dimen@\pagetotal - \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi - \advance\dimen@ \ht\LT@foot - \dimen@ii\vfuzz - \vfuzz\maxdimen - \setbox\tw@\copy\z@ - \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox - \setbox\tw@\vbox{\unvbox\tw@}% - \vfuzz\dimen@ii - \advance\dimen@ \ht - \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@\dp - \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi - \advance\dimen@ -\pagegoal - \ifdim \dimen@>\z@\vfil\break\fi - \global\@colroom\@colht - \ifvoid\LT@foot\else - \global\advance\vsize-\ht\LT@foot - \global\advance\@colroom-\ht\LT@foot - \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ - \maxdepth\z@ - \fi - \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak - \output{\LT@output}} -\def\endlongtable{% - \crcr - \noalign{% - \let\LT@entry\LT@entry@chop - \xdef\LT@save@row{\LT@save@row}}% - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \if@filesw - {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% - \gdef\expandafter\noexpand - \csname LT@\romannumeral\c@LT@tables\endcsname - {\LT@save@row}}}% - \fi - \ifx\LT@save@row\LT@@save@row - \else - \LT@warn{Column \@width s have changed\MessageBreak - in table \thetable}% - \LT@final@warn - \fi - \endgraf\penalty -\LT@end@pen - \ifvoid\LT@foot\else - \global\advance\vsize\ht\LT@foot - \global\advance\@colroom\ht\LT@foot - \dimen@\pagegoal\advance\dimen@\ht\LT@foot\pagegoal\dimen@ - \fi - \endgroup - \global\@mparbottom\z@ - \endgraf\penalty\z@\addvspace\LTpost - \ifvoid\footins\else\insert\footins{}\fi} -\def\LT@nofcols#1&{% - \futurelet\@let@token\LT@n@fcols} -\def\LT@n@fcols{% - \advance\LT@cols\@ne - \ifx\@let@token\LT@nofcols - \expandafter\@gobble - \else - \expandafter\LT@nofcols - \fi} -\def\LT@tabularcr{% - \relax\iffalse{\fi\ifnum0=`}\fi - \@ifstar - {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr - \LT@t@bularcr}% - {\LT@t@bularcr}} -\let\LT@crcr\crcr -\let\LT@setprevdepth\relax -\def\LT@t@bularcr{% - \global\advance\LT@rows\@ne - \ifnum\LT@rows=\LTchunksize - \gdef\LT@setprevdepth{% - \prevdepth\z@\global - \global\let\LT@setprevdepth\relax}% - \expandafter\LT@xtabularcr - \else - \ifnum0=`{}\fi - \expandafter\LT@LL@FM@cr - \fi} -\def\LT@xtabularcr{% - \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} -\def\LT@ntabularcr{% - \ifnum0=`{}\fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@argtabularcr[#1]{% - \ifnum0=`{}\fi - \ifdim #1>\z@ - \unskip\@xargarraycr{#1}% - \else - \@yargarraycr{#1}% - \fi - \LT@echunk - \LT@start - \unvbox\z@ - \LT@get@widths - \LT@bchunk} -\def\LT@echunk{% - \crcr\LT@save@row\cr\egroup - \global\setbox\@ne\lastbox - \unskip - \egroup} -\def\LT@entry#1#2{% - \ifhmode\@firstofone{&}\fi\omit - \ifnum#1=\c@LT@chunks - \else - \kern#2\relax - \fi} -\def\LT@entry@chop#1#2{% - \noexpand\LT@entry - {\ifnum#1>\c@LT@chunks - 1}{0pt% - \else - #1}{#2% - \fi}} -\def\LT@entry@write{% - \noexpand\LT@entry^^J% - \@spaces} -\def\LT@kill{% - \LT@echunk - \LT@get@widths - \expandafter\LT@rebox\LT@bchunk} -\def\LT@rebox#1\bgroup{% - #1\bgroup - \unvbox\z@ - \unskip - \setbox\z@\lastbox} -\def\LT@blank@row{% - \xdef\LT@save@row{\expandafter\LT@build@blank - \romannumeral\number\LT@cols 001 }} -\def\LT@build@blank#1{% - \if#1m% - \noexpand\LT@entry{1}{0pt}% - \expandafter\LT@build@blank - \fi} -\def\LT@make@row{% - \global\expandafter\let\expandafter\LT@save@row - \csname LT@\romannumeral\c@LT@tables\endcsname - \ifx\LT@save@row\relax - \LT@blank@row - \else - {\let\LT@entry\or - \if!% - \ifcase\expandafter\expandafter\expandafter\LT@cols - \expandafter\@gobble\LT@save@row - \or - \else - \relax - \fi - !% - \else - \aftergroup\LT@blank@row - \fi}% - \fi} -\let\setlongtables\relax -\def\LT@get@widths{% - \setbox\tw@\hbox{% - \unhbox\@ne - \let\LT@old@row\LT@save@row - \global\let\LT@save@row\@empty - \count@\LT@cols - \loop - \unskip - \setbox\tw@\lastbox - \ifhbox\tw@ - \LT@def@row - \advance\count@\m@ne - \repeat}% - \ifx\LT@@save@row\@undefined - \let\LT@@save@row\LT@save@row - \fi} -\def\LT@def@row{% - \let\LT@entry\or - \edef\@tempa{% - \ifcase\expandafter\count@\LT@old@row - \else - {1}{0pt}% - \fi}% - \let\LT@entry\relax - \xdef\LT@save@row{% - \LT@entry - \expandafter\LT@max@sel\@tempa - \LT@save@row}} -\def\LT@max@sel#1#2{% - {\ifdim#2=\wd\tw@ - #1% - \else - \number\c@LT@chunks - \fi}% - {\the\wd\tw@}} -\def\LT@hline{% - \noalign{\ifnum0=`}\fi - \penalty\@M - \futurelet\@let@token\LT@@hline} -\def\LT@@hline{% - \ifx\@let@token\hline - \global\let\@gtempa\@gobble - \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% - \else - \global\let\@gtempa\@empty - \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\LT@sep}% - \multispan\LT@cols - \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr - \noalign{\penalty\@M}% - \@gtempa} -\def\LT@caption{% - \noalign\bgroup - \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} -\def\LT@c@ption#1[#2]#3{% - \LT@makecaption#1\fnum@table{#3}% - \def\@tempa{#2}% - \ifx\@tempa\@empty\else - {\let\\\space - \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% - \fi} -\def\LT@capti@n{% - \@ifstar - {\egroup\LT@c@ption\@gobble[]}% - {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} -\def\LT@makecaption#1#2#3{% - \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% - \sbox\@tempboxa{#1{#2: }#3}% - \ifdim\wd\@tempboxa>\hsize - #1{#2: }#3% - \else - \hbox to\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \endgraf\vskip\baselineskip}% - \hss}}} -\def\LT@output{% - \ifnum\outputpenalty <-\@Mi - \ifnum\outputpenalty > -\LT@end@pen - \LT@err{floats and marginpars not allowed in a longtable}\@ehc - \else - \setbox\z@\vbox{\unvbox\@cclv}% - \ifdim \ht\LT@lastfoot>\ht\LT@foot - \dimen@\pagegoal - \advance\dimen@\ht\LT@foot - \advance\dimen@-\ht\LT@lastfoot - \ifdim\dimen@<\ht\z@ - \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% - \@makecol - \@outputpage - \global\vsize\@colroom - \setbox\z@\vbox{\box\LT@head}% - \fi - \fi - \unvbox\z@\ifvoid\LT@lastfoot\copy\LT@foot\else\box\LT@lastfoot\fi - \fi - \else - \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% - \@makecol - \@outputpage - \global\vsize\@colroom - \copy\LT@head\nobreak - \fi} -\def\LT@end@hd@ft#1{% - \LT@echunk - \ifx\LT@start\endgraf - \LT@err - {Longtable head or foot not at start of table}% - {Increase LTchunksize}% - \fi - \setbox#1\box\z@ - \LT@get@widths - \LT@bchunk} -\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} -\def\endhead{\LT@end@hd@ft\LT@head} -\def\endfoot{\LT@end@hd@ft\LT@foot} -\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} -\def\LT@startpbox#1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \vrule \@height \ht\@arstrutbox \@width \z@} -\def\LT@endpbox{% - \@finalstrut\@arstrutbox - \egroup - \the\LT@p@ftn - \global\LT@p@ftn{}% - \hfil} -%% added \long to prevent: -% LaTeX Warning: Command \LT@p@ftntext has changed. -% -% from the original repository (https://github.com/latex3/latex2e/blob/develop/required/tools/longtable.dtx): -% \changes{v4.15}{2021/03/28} -% {make long for gh/364} -% Inside the `p' column, just save up the footnote text in a token -% register. -\long\def\LT@p@ftntext#1{% - \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% - \global\LT@p@ftn\expandafter{\@tempa{#1}}}% - -\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} -\endinput -%% -%% End of file `longtable.sty'. diff --git a/rapport/rapport/latex/md__2home_2dukantic_2floppy_2sokoban_2README.tex b/rapport/rapport/latex/md__2home_2dukantic_2floppy_2sokoban_2README.tex deleted file mode 100644 index 9cebba8..0000000 --- a/rapport/rapport/latex/md__2home_2dukantic_2floppy_2sokoban_2README.tex +++ /dev/null @@ -1,32 +0,0 @@ -\chapter{To Do List} -\label{md__2home_2dukantic_2floppy_2sokoban_2README}\index{To Do List@{To Do List}} -\label{md__2home_2dukantic_2floppy_2sokoban_2README_autotoc_md7}% -\doxysection{Principale}\label{md__2home_2dukantic_2floppy_2sokoban_2README_autotoc_md8} - -\begin{DoxyItemize} -\item[\DoxyChecked] (1) chargement et affichage d\textquotesingle{}un plateau de jeu -\end{DoxyItemize} -\begin{DoxyItemize} -\item[\DoxyChecked] (2) Positionnement et gestion du personnage -\end{DoxyItemize} -\begin{DoxyItemize} -\item[\DoxyChecked] (3) Positionnement des points a couvrir -\end{DoxyItemize} -\begin{DoxyItemize} -\item[\DoxyChecked] (4) Positionnement des caisse et leurs déplacements -\end{DoxyItemize}\doxysection{Pour aller plus loin}\label{md__2home_2dukantic_2floppy_2sokoban_2README_autotoc_md9} - -\begin{DoxyItemize} -\item[\DoxyChecked] (1) Txt to map \# mur, P player, C caisse, I boutons -\item[\DoxyUnchecked] (2) Affichage du scord en fonction du temps passé, nbr mouvement player , nbr caisse bien placées -\end{DoxyItemize} -\begin{DoxyItemize} -\item[\DoxyUnchecked] (3) Gestion de niveaux et de difficultés -\end{DoxyItemize} -\begin{DoxyItemize} -\item[\DoxyChecked] (5) Detection de partie perdu -\item[\DoxyUnchecked] (6) Strategie de résolution -\end{DoxyItemize} -\begin{DoxyItemize} -\item[\DoxyUnchecked] (7) Conception des niveaux pour garentir la faisabilité d\textquotesingle{}un plateau -\end{DoxyItemize} \ No newline at end of file diff --git a/rapport/rapport/latex/md_doxygen__theme_2README.tex b/rapport/rapport/latex/md_doxygen__theme_2README.tex deleted file mode 100644 index c94b033..0000000 --- a/rapport/rapport/latex/md_doxygen__theme_2README.tex +++ /dev/null @@ -1,25 +0,0 @@ -\chapter{Doxygen Theme -\/ Flat Design} -\label{md_doxygen__theme_2README}\index{Doxygen Theme -\/ Flat Design@{Doxygen Theme -\/ Flat Design}} -\label{md_doxygen__theme_2README_autotoc_md0}% - - -See {\texttt{ Example 1}}, {\texttt{ Example 2}}\doxysection{Sample image 1}\label{md_doxygen__theme_2README_autotoc_md1} -\doxysection{Sample image 2}\label{md_doxygen__theme_2README_autotoc_md2} -\doxysection{Requirements}\label{md_doxygen__theme_2README_autotoc_md3} -Doxygen 1.\+8.\+20\doxysection{How to use}\label{md_doxygen__theme_2README_autotoc_md4} - -\begin{DoxyEnumerate} -\item Download Doxywizard -\item Go to Expert $>$ HTML $>$ HTML\+\_\+\+EXTRA\+\_\+\+STYLESHEET - -Add {\bfseries{src/doxygen-\/style.\+css}} -\item Go to Expert $>$ HTML $>$ HTML\+\_\+\+EXTRA\+\_\+\+FILES - -Add all the images from the {\bfseries{src/img}} folder -\end{DoxyEnumerate}\doxysection{How to change the color pattern and style}\label{md_doxygen__theme_2README_autotoc_md5} - -\begin{DoxyEnumerate} -\item Open {\bfseries{src/doxygen-\/style.\+css}} -\item Modifiy variables in {\bfseries{.root}}. -\end{DoxyEnumerate}\doxysection{License}\label{md_doxygen__theme_2README_autotoc_md6} -This project is licensed under [MIT](LICENSE) license. \ No newline at end of file diff --git a/rapport/rapport/latex/refman.tex b/rapport/rapport/latex/refman.tex deleted file mode 100644 index 14b7318..0000000 --- a/rapport/rapport/latex/refman.tex +++ /dev/null @@ -1,232 +0,0 @@ - % Handle batch mode - % to overcome problems with too many open files - \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage} - \RequirePackage{iftex} - \ifLuaTeX - \directlua{pdf.setminorversion(7)} - \fi - \ifXeTeX - \special{pdf:minorversion 7} - \fi - \ifPDFTeX - \pdfminorversion=7 - \fi - % Set document class depending on configuration - \documentclass[twoside]{book} - %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package - \usepackage{ifthen} - \ifx\requestedLaTeXdate\undefined - \usepackage{array} - \else - \usepackage{array}[=2016-10-06] - \fi - %% - % Packages required by doxygen - \makeatletter - \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} - % suppress package identification of infwarerr as it contains the word "warning" - \let\@@protected@wlog\protected@wlog - \def\protected@wlog#1{\wlog{package info suppressed}} - \RequirePackage{infwarerr} - \let\protected@wlog\@@protected@wlog - \makeatother - \IfFormatAtLeastTF{2016/01/01}{}{\usepackage{fixltx2e}} % for \textsubscript - \ifPDFTeX - \IfFormatAtLeastTF{2015/01/01}{\pdfsuppresswarningpagegroup=1}{} - \fi - \usepackage{doxygen} - \usepackage{graphicx} - \iftutex - \usepackage{fontspec} - \defaultfontfeatures{Ligatures={TeX}} - \usepackage{unicode-math} - \else - \usepackage[utf8]{inputenc} - \fi - \usepackage{makeidx} - \PassOptionsToPackage{warn}{textcomp} - \usepackage{textcomp} - \usepackage[nointegrals]{wasysym} - \usepackage{ifxetex} - % NLS support packages - \usepackage[french]{babel} -\NoAutoSpaceBeforeFDP - % Define default fonts - % Font selection - \iftutex - \else - \usepackage[T1]{fontenc} - \fi - % set main and monospaced font - \usepackage[scaled=.90]{helvet} -\usepackage{courier} -\renewcommand{\familydefault}{\sfdefault} - \doxyallsectionsfont{% - \fontseries{bc}\selectfont% - \color{darkgray}% - } - \renewcommand{\DoxyLabelFont}{% - \fontseries{bc}\selectfont% - \color{darkgray}% - } - \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} - % Arguments of doxygenemoji: - % 1) '::' form of the emoji, already LaTeX-escaped - % 2) file with the name of the emoji without the .png extension - % in case image exist use this otherwise use the '::' form - \newcommand{\doxygenemoji}[2]{% - \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% - } - % Page & text layout - \usepackage{geometry} - \geometry{% - a4paper,% - top=2.5cm,% - bottom=2.5cm,% - left=2.5cm,% - right=2.5cm% - } - \usepackage{changepage} - % Allow a bit of overflow to go unnoticed by other means - \tolerance=750 - \hfuzz=15pt - \hbadness=750 - \setlength{\emergencystretch}{15pt} - \setlength{\parindent}{0cm} - \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} - \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} - \doxynormalparskip - % Redefine paragraph/subparagraph environments, using sectsty fonts - \makeatletter - \renewcommand{\paragraph}{% - \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% - \normalfont\normalsize\bfseries\SS@parafont% - }% - } - \renewcommand{\subparagraph}{% - \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% - \normalfont\normalsize\bfseries\SS@subparafont% - }% - } - \makeatother - \makeatletter - \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} - \makeatother - % Headers & footers - \usepackage{fancyhdr} - \pagestyle{fancyplain} - \renewcommand{\footrulewidth}{0.4pt} - \fancypagestyle{fancyplain}{ - \fancyhf{} - \fancyhead[LE, RO]{\bfseries\thepage} - \fancyhead[LO]{\bfseries\rightmark} - \fancyhead[RE]{\bfseries\leftmark} - \fancyfoot[LO, RE]{\bfseries\scriptsize Généré par Doxygen } - } - \fancypagestyle{plain}{ - \fancyhf{} - \fancyfoot[LO, RE]{\bfseries\scriptsize Généré par Doxygen } - \renewcommand{\headrulewidth}{0pt} - } - \pagestyle{fancyplain} - \renewcommand{\chaptermark}[1]{% - \markboth{#1}{}% - } - \renewcommand{\sectionmark}[1]{% - \markright{\thesection\ #1}% - } - % ToC, LoF, LoT, bibliography, and index - % Indices & bibliography - \usepackage{natbib} - \usepackage[titles]{tocloft} - \setcounter{tocdepth}{3} - \setcounter{secnumdepth}{5} - % creating indexes - \makeindex - \ifPDFTeX -\usepackage{newunicodechar} - \makeatletter - \def\doxynewunicodechar#1#2{% - \@tempswafalse - \edef\nuc@tempa{\detokenize{#1}}% - \if\relax\nuc@tempa\relax - \nuc@emptyargerr - \else - \edef\@tempb{\expandafter\@car\nuc@tempa\@nil}% - \nuc@check - \if@tempswa - \@namedef{u8:\nuc@tempa}{#2}% - \fi - \fi - } - \makeatother - \doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus - \doxynewunicodechar{²}{${}^{2}$}% Superscript two - \doxynewunicodechar{³}{${}^{3}$}% Superscript three -\fi - % Hyperlinks - % Custom commands used by the header - % Custom commands - \newcommand{\clearemptydoublepage}{% - \newpage{\pagestyle{empty}\cleardoublepage}% - } - % caption style definition - \usepackage{caption} - \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} - % in page table of contents - \IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}} - \etocsettocstyle{\doxytocparskip}{\doxynormalparskip} - \etocsetlevel{subsubsubsection}{4} - \etocsetlevel{subsubsubsubsection}{5} - \etocsetlevel{subsubsubsubsubsection}{6} - \etocsetlevel{subsubsubsubsubsubsection}{7} - \etocsetlevel{paragraph}{8} - \etocsetlevel{subparagraph}{9} - % prevent numbers overlap the titles in toc - \renewcommand{\numberline}[1]{#1~} -% End of preamble, now comes the document contents -%===== C O N T E N T S ===== -\begin{document} - \raggedbottom - % Titlepage & ToC - \pagenumbering{alph} - \begin{titlepage} - \vspace*{7cm} - \begin{center}% - {\Large Sokoban}\\ - \vspace*{1cm} - {\large Généré par Doxygen 1.12.0}\\ - \end{center} - \end{titlepage} - \clearemptydoublepage - \pagenumbering{roman} - \tableofcontents - \clearemptydoublepage - \pagenumbering{arabic} -%--- Begin generated contents --- -\chapter{Index des structures de données} -\input{annotated} -\chapter{Index des fichiers} -\input{files} -\chapter{Documentation des structures de données} -\input{structessential__sdl} -\input{structScore} -\input{structVecteur} -\chapter{Documentation des fichiers} -\input{display_8h_source} -\input{function_8h_source} -\input{read_8h_source} -\input{display_8c} -\input{function_8c} -\input{main_8c} -\input{read_8c} -%--- End generated contents --- -% Index - \backmatter - \newpage - \phantomsection - \clearemptydoublepage - \addcontentsline{toc}{chapter}{\indexname} - \printindex -% Required for some languages (in combination with latexdocumentpre from the header) -\end{document} diff --git a/rapport/rapport/latex/tabu_doxygen.sty b/rapport/rapport/latex/tabu_doxygen.sty deleted file mode 100644 index 3f17d1d..0000000 --- a/rapport/rapport/latex/tabu_doxygen.sty +++ /dev/null @@ -1,2557 +0,0 @@ -%% -%% This is file `tabu.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% tabu.dtx (with options: `package') -%% -%% This is a generated file. -%% Copyright (FC) 2010-2011 - lppl -%% -%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars -%% -%% ********************************************************************************************** -%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal -%% \begin{tabu} to { preamble } => target specified -%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' -%% -%% tabu works in text and in math modes. -%% -%% X columns: automatic width adjustment + horizontal and vertical alignment -%% \begin{tabu} { X[4c] X[1c] X[-2ml] } -%% -%% Horizontal lines and / or leaders: -%% \hline\hline => double horizontal line -%% \firsthline\hline => for nested tabulars -%% \lasthline\hline => for nested tabulars -%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) -%% Automatic lines / leaders : -%% \everyrow{\hline\hline} -%% -%% Vertical lines and / or leaders: -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } -%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } -%% -%% Fixed vertical spacing adjustment: -%% \extrarowheight= \extrarowdepth= -%% or: \extrarowsep= => may be prefixed by \global -%% -%% Dynamic vertical spacing adjustment: -%% \abovetabulinesep= \belowtabulinesep= -%% or: \tabulinesep= => may be prefixed by \global -%% -%% delarray.sty shortcuts: in math and text modes -%% \begin{tabu} .... \({ preamble }\) -%% -%% Algorithms reports: -%% \tracingtabu=1 \tracingtabu=2 -%% -%% ********************************************************************************************** -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% -%% This work consists of the main source file tabu.dtx -%% and the derived files -%% tabu.sty, tabu.pdf, tabu.ins -%% -%% tabu : Flexible LaTeX tabulars -%% lppl copyright 2010-2011 by FC -%% - -\NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] -\RequirePackage{array}[2008/09/09] -\RequirePackage{varwidth}[2009/03/30] -\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} -\let\tabu@AtEnd\@empty -\def\TMP@EnsureCode#1={% - \edef\tabu@AtEnd{\tabu@AtEnd - \catcode#1 \the\catcode#1}% - \catcode#1=% -}% \TMP@EnsureCode -\TMP@EnsureCode 33 = 12 % ! -\TMP@EnsureCode 58 = 12 % : (for siunitx) -\TMP@EnsureCode124 = 12 % | -\TMP@EnsureCode 36 = 3 % $ = math shift -\TMP@EnsureCode 38 = 4 % & = tab alignment character -\TMP@EnsureCode 32 = 10 % space -\TMP@EnsureCode 94 = 7 % ^ -\TMP@EnsureCode 95 = 8 % _ -%% Constants -------------------------------------------------------- -\newcount \c@taburow \def\thetaburow {\number\c@taburow} -\newcount \tabu@nbcols -\newcount \tabu@cnt -\newcount \tabu@Xcol -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcount \tabu@alloc \tabu@alloc=\m@ne -\newcount \tabu@nested -\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} -\newdimen \tabu@target -\newdimen \tabu@spreadtarget -\newdimen \tabu@naturalX -\newdimen \tabucolX -\let\tabu@DELTA \@tempdimc -\let\tabu@thick \@tempdima -\let\tabu@on \@tempdimb -\let\tabu@off \@tempdimc -\newdimen \tabu@Xsum -\newdimen \extrarowdepth -\newdimen \abovetabulinesep -\newdimen \belowtabulinesep -\newdimen \tabustrutrule \tabustrutrule \z@ -\newtoks \tabu@thebody -\newtoks \tabu@footnotes -\newsavebox \tabu@box -\newsavebox \tabu@arstrutbox -\newsavebox \tabu@hleads -\newsavebox \tabu@vleads -\newif \iftabu@colortbl -\newif \iftabu@siunitx -\newif \iftabu@measuring -\newif \iftabu@spread -\newif \iftabu@negcoef -\newif \iftabu@everyrow -\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} -\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} -\newif \iftabu@long -\newif \iftabuscantokens -\def\tabu@rescan {\tabu@verbatim \scantokens } -%% Utilities (for internal usage) ----------------------------------- -\def\tabu@gobblespace #1 {#1} -\def\tabu@gobbletoken #1#2{#1} -\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} -\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble - \else\ifx \@sptoken\@let@token - \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX - \fi\fi -}% \tabu@gobblex -\def\tabu@X{^^J} -{\obeyspaces -\global\let\tabu@spxiii= % saves an active space (for \ifx) -\gdef\tabu@@spxiii{ }} -\def\tabu@ifenvir {% only for \multicolumn - \expandafter\tabu@if@nvir\csname\@currenvir\endcsname -}% \tabu@ifenvir -\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else - \ifx\longtabu#1first\else - second\fi\fi oftwo\endcsname -}% \tabu@ifenvir -\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} -{\catcode`\&=3 -\gdef\tabu@strtrim #1{% #1 = control sequence to trim - \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi - \let\tabu@c@l@r \@empty \let#1\@empty - \else \expandafter \tabu@trimspaces #1\@nnil - \fi -}% \tabu@strtrim -\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% -\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} -\gdef\tabu@lastspace #1{\def #3{#1}% - \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi - \tabu@trimspaces #1\@nnil} -}% \catcode -\def\tabu@sanitizearg #1#2{{% - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% - \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% -}% \tabu@sanitizearg -\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% - \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! -}% \tabu@textbar -\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} -\def\tabu@everyrow@egroup{% - \iftabu@everyrow \expandafter \endgroup \the\toks@ - \else \ifnum0=`{\fi}% - \fi -}% \tabu@everyrow@egroup -\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \z@}% -}% \tabu@arstrut -\def\tabu@rearstrut {% - \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax - \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax - \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima - \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi - \tabu@mkarstrut - \fi -}% \tabu@rearstrut -\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} -\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox - \hbox to\z@{\hbox to\z@{\hss - {\tabu@DBG{cyan}\vrule - height \arraystretch \dimexpr\ht\strutbox+\extrarowheight - depth \z@ - width \tabustrutrule}\kern-\tabustrutrule - {\tabu@DBG{pink}\vrule - height \z@ - depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth - width \tabustrutrule}}}% -}% \tabu@DBG@arstrut -\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ - \@nextchar}}% -\def\tabu@savedecl{\ifcat$\d@llarend\else - \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode -}% \tabu@savedecl -\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} -\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } -\let\tabu@trialh@@k \@empty -\def\tabu@nowrite #1#{{\afterassignment}\toks@} -\let\tabu@write\write -\let\tabu@immediate\immediate -\def\tabu@WRITE{\begingroup - \def\immediate\write{\aftergroup\endgroup - \tabu@immediate\tabu@write}% -}% \tabu@WRITE -\expandafter\def\expandafter\tabu@GenericError\expandafter{% - \expandafter\tabu@WRITE\GenericError} -\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} -\def\tabu@noxfootnote [#1]{\@gobble} -\def\tabu@nocolor #1#{\@gobble} -\newcommand*\tabu@norowcolor[2][]{} -\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% - \futurelet\@let@token \tabu@m@ybesiunitx} -\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% - \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi - \tabu@temp}% \tabu@m@ybesiunitx -}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname -\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% -%% Fixed vertical spacing adjustment: \extrarowsep ------------------ -\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% - \iftabu@everyrow \aftergroup\tabu@Gextra - \else \aftergroup\tabu@n@Gextra - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra -}% \extrarowsep -\def\tabu@extra {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setextrasep \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extra -\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} -\def\tabu@extr@ #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth - \fi \tabu@temp}% -}% \tabu@extr@ -\def\tabu@setextrasep {\extrarowheight=\extrarowdepth - \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth -}% \tabu@setextrasep -\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} -\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} -\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} -\let\tabu@C@extra \z@ -\let\tabu@G@extra \@empty -%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- -\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% - \iftabu@everyrow \aftergroup\tabu@Glinesep - \else \aftergroup\tabu@n@Glinesep - \fi - \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep -}% \tabulinesep -\def\tabu@linesep {\@ifnextchar_% - {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} - {\ifx ^\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% - \else \let\tabu@temp \@empty - \afterassignment \tabu@setlinesep \abovetabulinesep - \fi \tabu@temp}% -}% \tabu@linesep -\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} -\def\tabu@sets@p #1#2{\@ifnextchar^% - {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} - {\ifx _\@let@token \def\tabu@temp{% - \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% - \else \let\tabu@temp \@empty - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep - \fi \tabu@temp}% -}% \tabu@sets@p -\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep - \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep -}% \tabu@setlinesep -\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} -\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} -\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} -\let\tabu@C@linesep \z@ -\let\tabu@G@linesep \@empty -%% \global\extrarowsep and \global\tabulinesep ------------------- -\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% - \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% -}% \tabu@Gsave -\def\tabu@Grestore#1#2{% - \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax - \ifcat$\the\toks\currentgrouplevel$\else - \global\let#1\@empty \global\let#2\z@ - \the\toks\currentgrouplevel - \fi -}% \tabu@Grestore -%% Setting code for every row --------------------------------------- -\newcommand*\everyrow{\tabu@everyrow@bgroup - \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop -}% \everyrow -\def\tabu@evrstartstop {\@ifnextchar^% - {\afterassignment \tabu@evrstartstop \tabu@stop=}% - {\ifx ^\@let@token - \afterassignment\tabu@evrstartstop \tabu@start=% - \else \afterassignment\tabu@everyr@w \toks@ - \fi}% -}% \tabu@evrstartstop -\def\tabu@everyr@w {% - \xdef\tabu@everyrow{% - \noexpand\tabu@everyrowfalse - \let\noalign \relax - \noexpand\tabu@rowfontreset - \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors - \let\noexpand\tabu@docline \noexpand\tabu@docline@evr - \the\toks@ - \noexpand\tabu@evrh@@k - \noexpand\tabu@rearstrut - \global\advance\c@taburow \@ne}% - \iftabu@everyrow \toks@\expandafter - {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% - \else \xdef\tabu@evr@G{\the\toks@}% - \fi - \tabu@everyrow@egroup -}% \tabu@everyr@w -\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only -\tabu@evr{} -%% line style and leaders ------------------------------------------- -\newcommand*\newtabulinestyle [1]{% - {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% -}% \newtabulinestyle -\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% - \tabu@sanitizearg {#1}\@tempa - \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi - \global\expandafter\let - \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi -}% \tabu@newlinestyle -\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% - \iftabu@everyrow - \toks@\expandafter{\expandafter \def \expandafter - \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% - \gdef\tabu@ls@{\tabu@ls@L}% - \else - \global\let\tabu@ls@G \tabu@thestyle - \gdef\tabu@ls@{\tabu@ls@G}% - \fi - \tabu@everyrow@egroup -}% \tabulinestyle -\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} -\def\tabu@rulecolor #1{\toks@{}% - \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% - \tabu@temp - \tabu@rulearc -}% \tabu@rulecolor -\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp - \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% - \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% - \fi - \tabu@temp -}% \tabu@ruledrsc@ -\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} -\def\tabu@rule@drsc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% - \else \toks@{\def\CT@drsc@{\color #1{#2}}}% - \fi - \else - \ifx \\#1#2\\\global\let\CT@drsc@ \relax - \else \gdef\CT@drsc@{\color #1{#2}}% - \fi - \fi - \tabu@rulearc -}% \tabu@rule@drsc@ -\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} -\def\tabu@rule@arc@ #1#2{% - \iftabu@everyrow - \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% - \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% - \fi - \toks@\expandafter{\the\toks@ - \let\tabu@arc@L \CT@arc@ - \let\tabu@drsc@L \CT@drsc@ - \ignorespaces}% - \else - \ifx \\#1#2\\\gdef\CT@arc@{}% - \else \gdef\CT@arc@{\color #1{#2}}% - \fi - \global\let\tabu@arc@G \CT@arc@ - \global\let\tabu@drsc@G \CT@drsc@ - \fi - \tabu@everyrow@egroup -}% \tabu@rule@arc@ -\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} -\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} -\def\tabu@rowc@lors #1#2#3{% - \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil - \@defaultunits \tabu@start =\number0#1\relax \@nnil - \ifnum \count@<\tw@ \count@=\tw@ \fi - \advance\tabu@start \m@ne - \ifnum \tabu@start<\z@ \tabu@start \z@ \fi - \tabu@rowcolorseries #3\in@..\in@ \@nnil -}% \tabu@rowcolors -\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% - \ifx \in@#1\relax - \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% - \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ - \fi - \else - \ifx \\#2\\\tabu@rowcolorserieserror \fi - \tabu@sanitizearg{#1}\tabu@temp - \tabu@sanitizearg{#2}\@tempa - \advance\count@ \m@ne - \iftabu@everyrow - \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% - \ifnum ##2=\c@taburow - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi - \ifnum \c@taburow<##2 \else - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}\fi}% - }\edef\x{\noexpand\tabu@rc@ {\the\count@} - {\the\tabu@start} - {\tabu@temp} - {\@tempa}% - }\x - \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% - \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% - \else % inside \noalign - \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% - \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% - \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% - \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne - \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi - \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% - \rowcolor{tabu@rc@\the\tabu@nested}}% - }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x - \global\let\tabu@rc@G \tabu@rc@ - \fi - \fi - \tabu@everyrow@egroup -}% \tabu@rowcolorseries -\tabuDisableCommands {\let\tabu@rc@ \@empty } -\def\tabu@rowcolorserieserror {\PackageError{tabu} - {Invalid syntax for \string\taburowcolors - \MessageBreak Please look at the documentation!}\@ehd -}% \tabu@rowcolorserieserror -\newcommand*\tabureset {% - \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ - \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% -}% \tabureset -%% Parsing the line styles ------------------------------------------ -\def\tabu@getline #1{\begingroup - \csname \ifcsname if@safe@actives\endcsname % - @safe@activestrue\else - relax\fi \endcsname - \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa - \let\tabu@thestyle \relax - \ifcsname tabu@linestyle@\@tempa \endcsname - \edef\tabu@thestyle{\endgroup - \def\tabu@thestyle{\expandafter\noexpand - \csname tabu@linestyle@\@tempa\endcsname}% - }\tabu@thestyle - \else \expandafter\tabu@definestyle \tabu@temp \@nil - \fi -}% \tabu@getline -\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter - \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen - \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined - \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs - \def\tabu@temp{\tabu@getparam{thick}}% - \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% - \fi - {% - \let\tabu@ \relax - \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) - \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% - \expandafter}\expandafter - \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) - \def\;{\def\:}% - \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) - \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) - \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi - \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi - \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi - \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen - \tabu@on \tabulineon \fi\fi - \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen - \tabu@off \tabulineoff \fi\fi - \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi - \in@true % - \else \in@false % - \fi - \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% - \else \edef\tabu@thick{\the\tabu@thick}% - \fi - \edef \tabu@thestyle ##1##2{\endgroup - \def\tabu@thestyle{% - \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} - {\the\tabu@on}{##1} - {\the\tabu@off}{##2}% - \else \noexpand\tabu@rulesstyle - {##1\vrule width \tabu@thick}% - {##1\leaders \hrule height \tabu@thick \hfil}% - \fi}% - }\expandafter \expandafter - \expandafter \tabu@thestyle \expandafter - \expandafter \expandafter - {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% -}% \tabu@definestyle -{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active - \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} - \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} -}% \catcode -\def\tabu@oxiii #1{% - \ifcase \ifx n#1\z@ \else - \ifx f#1\@ne\else - \tw@ \fi\fi - \expandafter\tabu@onxiii - \or \expandafter\tabu@ofxiii - \else o% - \fi#1}% -\def\tabu@onxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx \tabu@spxiii#2\@ne\else - \tw@ \fi\fi\fi - \tabu@getparam{on}#2\expandafter\@gobble - \or \expandafter\tabu@onxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}}% -\def\tabu@ofxiii #1#2{% - \ifx #2f\expandafter\tabu@offxiii - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@offxiii #1#2{% - \ifcase \ifx !#2\tw@ \else - \ifcat.\noexpand#2\z@ \else - \ifx\tabu@spxiii#2\@ne \else - \tw@ \fi\fi\fi - \tabu@getparam{off}#2\expandafter\@gobble - \or \expandafter\tabu@offxiii % (space is active) - \else o\expandafter\@firstofone - \fi{#1#2}} -\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} -\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef - \ifx \tabu@#1\else % no more spec - \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi -}% \tabu@getcolor -\def\tabu@getc@l@r #1\tabu@ {% - \def\tabu@temp{#1}\tabu@strtrim \tabu@temp - \ifx \tabu@temp\@empty - \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists - \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r - \else \let\tabu@c@lon \tabu@c@l@r - \fi - %\else \tabu@warncolour{\tabu@temp}% - \fi%\fi - \tabu@ % next spec -}% \tabu@getc@l@r -\def\tabu@warncolour #1{\PackageWarning{tabu} - {Color #1 is not defined. Default color used}% -}% \tabu@warncolour -\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% - \ifx \tabu@leaders\tabu@leaders@G \else - \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi -}% \tabu@leadersstyle -\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined - \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% -}% \tabu@rulesstyle -%% The leaders boxes ------------------------------------------------ -\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color - {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor - {% % but the leaders boxes should have colors ! - \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% - \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% - \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thehleaders \tabu@theleaders - }% - {% - \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% - \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% - \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% - \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% - \global\let\tabu@thevleaders \tabu@theleaders - }% - \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% - }% -}% \tabu@LEADERS -\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} -\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color - \global\setbox \tabu@leads=\@box{% - {#3\tabu@therule{#1}{#2}}% - \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi - {#3\tabu@therule{#1}{#2}}}% - \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss - {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% - \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% - {##1\tabu@therule{#1}{#2}}% - \xleaders \copy\tabu@leads \@ss - \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% - }\tabu@theleaders{#3}% -}% \tabu@l@@d@rs -%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- -\newcommand*\tabu {\tabu@longfalse - \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% - \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endtabu*\endcsname{\endtabu}% - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {tabu} -\let\tabu@tabular \tabular % -\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} -\newcommand*\longtabu {\tabu@longtrue - \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi - \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% - \LTchunksize=\@M - \expandafter\let\csname tabu*\endcsname \tabu - \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% - \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } - \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget -}% {longtabu} -\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} -\def\tabu@nolongtabu{\PackageError{tabu} - {longtabu requires the longtable package}\@ehd} -%% Read the target and then : \tabular or \@array ------------------ -\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } -\def\tabu@sett@rget {\tabu@target \z@ - \ifcase \ifx \bgroup\@let@token \z@ \else - \ifx \@sptoken\@let@token \@ne \else - \if t\@let@token \tw@ \else - \if s\@let@token \thr@@\else - \z@\fi\fi\fi\fi - \expandafter\tabu@begin - \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget - \or \expandafter\tabu@to - \or \expandafter\tabu@spread - \fi -}% \tabu@sett@rget -\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} -\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} -\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } -\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } -\def\tabu@linegoalt@rget {% - \ifx \tabu@temp\LNGL@setlinegoal - \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal - \tabu@begin -}% \tabu@linegoalt@rget -\def\tabu@begin #1#{% - \iftabu@measuring \expandafter\tabu@nestedmeasure \fi - \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty - \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% - \fi - \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil -}% \tabu@begin -\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup - \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% - \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% -}% \tabu@tabu@ -\def\tabu@nestedmeasure {% - \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax - \tabu@spreadtrue - \else \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}% - \expandafter\tabu@collectbody\expandafter\tabu@quickrule - \expandafter\endgroup - \fi -}% \tabu@nestedmeasure -\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} -%% \tabu@setup \tabu@init \tabu@indent -\def\tabu@setup{\tabu@alloc@ - \ifcase \tabu@nested - \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ - \let\tabu@afterendpar \par - \fi\fi\fi - \def\tabu@aligndefault{c}\tabu@init \tabu@indent - \else % - \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth - \fi - \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined - \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% - \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... - \let\@endpbox \tabu@endpbox % idem " " " " " " - \let\@tabarray \tabu@tabarray % idem " " " " " " - \tabu@setcleanup \tabu@setreset -}% \tabu@setup -\def\tabu@init{\tabu@starttimer \tabu@measuringfalse - \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% - \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline - \let\firstline \tabu@firstline \let\lastline \tabu@lastline - \let\hline \tabu@hline \let\@xhline \tabu@xhline - \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox - \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi - \tabu@trivlist % - \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext - \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering - \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft - \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering - \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft - \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont - \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x - \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar - \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok - \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn - \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! - \let\tabu@endpbox \@endpbox % idem " " " " " " " - \let\tabu@tabarray \@tabarray % idem " " " " " " " - \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) - \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi -}% \tabu@init -\def\tabu@indent{% correction for indentation - \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget - \everypar\expandafter{% - \the\everypar\everypar\expandafter{\the\everypar}% - \setbox\z@=\lastbox - \ifdim\wd\z@>\z@ \edef\tabu@thetarget - {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi - \box\z@}% - \fi\fi -}% \tabu@indent -\def\tabu@setcleanup {% saves last global assignments - \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax - \def\tabu@aftergroupcleanup{% - \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% - \else - \def\tabu@aftergroupcleanup{% - \aftergroup\aftergroup\aftergroup\tabu@cleanup - \let\tabu@aftergroupcleanup \relax}% - \fi - \let\tabu@arc@Gsave \tabu@arc@G - \let\tabu@arc@G \tabu@arc@L % - \let\tabu@drsc@Gsave \tabu@drsc@G - \let\tabu@drsc@G \tabu@drsc@L % - \let\tabu@ls@Gsave \tabu@ls@G - \let\tabu@ls@G \tabu@ls@L % - \let\tabu@rc@Gsave \tabu@rc@G - \let\tabu@rc@G \tabu@rc@L % - \let\tabu@evr@Gsave \tabu@evr@G - \let\tabu@evr@G \tabu@evr@L % - \let\tabu@celllalign@save \tabu@celllalign - \let\tabu@cellralign@save \tabu@cellralign - \let\tabu@cellleft@save \tabu@cellleft - \let\tabu@cellright@save \tabu@cellright - \let\tabu@@celllalign@save \tabu@@celllalign - \let\tabu@@cellralign@save \tabu@@cellralign - \let\tabu@@cellleft@save \tabu@@cellleft - \let\tabu@@cellright@save \tabu@@cellright - \let\tabu@rowfontreset@save \tabu@rowfontreset - \let\tabu@@rowfontreset@save\tabu@@rowfontreset - \let\tabu@rowfontreset \@empty - \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset - \edef\c@taburow@save {\the\c@taburow}% - \edef\tabu@naturalX@save {\the\tabu@naturalX}% - \let\tabu@naturalXmin@save \tabu@naturalXmin - \let\tabu@naturalXmax@save \tabu@naturalXmax - \let\tabu@mkarstrut@save \tabu@mkarstrut - \edef\tabu@clarstrut{% - \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax - \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax - \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% -}% \tabu@setcleanup -\def\tabu@cleanup {\begingroup - \globaldefs\@ne \tabu@everyrowtrue - \let\tabu@arc@G \tabu@arc@Gsave - \let\CT@arc@ \tabu@arc@G - \let\tabu@drsc@G \tabu@drsc@Gsave - \let\CT@drsc@ \tabu@drsc@G - \let\tabu@ls@G \tabu@ls@Gsave - \let\tabu@ls@ \tabu@ls@G - \let\tabu@rc@G \tabu@rc@Gsave - \let\tabu@rc@ \tabu@rc@G - \let\CT@do@color \relax - \let\tabu@evr@G \tabu@evr@Gsave - \let\tabu@celllalign \tabu@celllalign@save - \let\tabu@cellralign \tabu@cellralign@save - \let\tabu@cellleft \tabu@cellleft@save - \let\tabu@cellright \tabu@cellright@save - \let\tabu@@celllalign \tabu@@celllalign@save - \let\tabu@@cellralign \tabu@@cellralign@save - \let\tabu@@cellleft \tabu@@cellleft@save - \let\tabu@@cellright \tabu@@cellright@save - \let\tabu@rowfontreset \tabu@rowfontreset@save - \let\tabu@@rowfontreset \tabu@@rowfontreset@save - \tabu@naturalX =\tabu@naturalX@save - \let\tabu@naturalXmax \tabu@naturalXmax@save - \let\tabu@naturalXmin \tabu@naturalXmin@save - \let\tabu@mkarstrut \tabu@mkarstrut@save - \c@taburow =\c@taburow@save - \ifcase \tabu@nested \tabu@alloc \m@ne\fi - \endgroup % - \ifcase \tabu@nested - \the\tabu@footnotes \global\tabu@footnotes{}% - \tabu@afterendpar \tabu@elapsedtime - \fi - \tabu@clarstrut - \everyrow\expandafter {\tabu@evr@G}% -}% \tabu@cleanup -\let\tabu@afterendpar \relax -\def\tabu@setreset {% - \edef\tabu@savedparams {% \relax for \tabu@message@save - \ifmmode \col@sep \the\arraycolsep - \else \col@sep \the\tabcolsep \fi \relax - \arrayrulewidth \the\arrayrulewidth \relax - \doublerulesep \the\doublerulesep \relax - \extratabsurround \the\extratabsurround \relax - \extrarowheight \the\extrarowheight \relax - \extrarowdepth \the\extrarowdepth \relax - \abovetabulinesep \the\abovetabulinesep \relax - \belowtabulinesep \the\belowtabulinesep \relax - \def\noexpand\arraystretch{\arraystretch}% - \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% - \begingroup - \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu - \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi - \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi - \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L - \expandafter \endgroup \expandafter - \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena - \let\tabu@arc@G \tabu@arc@L - \let\tabu@drsc@G \tabu@drsc@L - \let\tabu@ls@G \tabu@ls@L - \let\tabu@rc@G \tabu@rc@L - \let\tabu@evr@G \tabu@evr@L}% - \def\tabu@reset{\tabu@savedparams - \tabu@everyrowtrue \c@taburow \z@ - \let\CT@arc@ \tabu@arc@L - \let\CT@drsc@ \tabu@drsc@L - \let\tabu@ls@ \tabu@ls@L - \let\tabu@rc@ \tabu@rc@L - \global\tabu@alloc \tabu@alloc@save - \everyrow\expandafter{\tabu@evr@L}}% -}% \tabu@reset -\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} -\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} -%% The Rewriting Process ------------------------------------------- -\def\tabu@newcolumntype #1{% - \expandafter\tabu@new@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@newcolumntype -\def\tabu@new@columntype #1#2#3{% - \def#1##1#3{\NC@{##1}}% - \let#2\relax \newcommand*#2% -}% \tabu@new@columntype -\def\tabu@privatecolumntype #1{% - \expandafter\tabu@private@columntype - \csname NC@find@\string#1\expandafter\endcsname - \csname NC@rewrite@\string#1\expandafter\endcsname - \csname tabu@NC@find@\string#1\expandafter\endcsname - \csname tabu@NC@rewrite@\string#1\endcsname - {#1}% -}% \tabu@privatecolumntype -\def\tabu@private@columntype#1#2#3#4{% - \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% - \tabu@new@columntype#3#4% -}% \tabu@private@columntype -\let\tabu@privatecolumns \@empty -\newcommand*\tabucolumn [1]{\expandafter \def \expandafter - \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns - \NC@do #1}}% -\let\tabu@highprioritycolumns \@empty -%% The | ``column'' : rewriting process -------------------------- -\tabu@privatecolumntype |{\tabu@rewritevline} -\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% - \expandafter \NC@find \tabu@rewritten} -\def\tabu@lines #1{% - \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi - \NC@list\expandafter{\the\NC@list \NC@do #1}% -}% \tabu@lines@ -\def\tabu@vlinearg #1{% - \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% - \else\tabu@getline {#1}% - \fi - \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% - }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% - \expandafter \tabu@keepls \tabu@thestyle \@nil -}% \tabu@vlinearg -\def\tabu@keepls #1\@nil{% - \ifcat $\@cdr #1\@nil $% - \ifx \relax#1\else - \ifx \tabu@ls@#1\else - \let#1\relax - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@savels\noexpand#1}\fi\fi\fi -}% \tabu@keepls -\def\tabu@thevline {\begingroup - \ifdefined\tabu@leaders - \setbox\@tempboxa=\vtop to\dimexpr - \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% - \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox - \box\@tempboxa - \else - \tabu@thevrule - \fi \endgroup -}% \tabu@thevline -\def\tabu@savels #1{% - \expandafter\let\csname\string#1\endcsname #1% - \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset - \tabu@resetls#1}}% -\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% -%% \multicolumn inside tabu environment ----------------------------- -\tabu@newcolumntype \tabu@rewritemulticolumn{% - \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \tabu@savedecl - \tabu@privatecolumns - \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% - \let\tabu@savels \relax - \NC@find -}% \tabu@rewritemulticolumn -\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} -\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} -\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup - \tabu@everyrowtrue - \NC@list{\NC@do \tabu@rewritemulticolumn}% - \expandafter\@gobbletwo % gobbles \multispan{#1} - \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% - {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi - {#3}}% -}% \tabu@multic@lumn -%% The X column(s): rewriting process ----------------------------- -\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} -\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } -\def\tabu@siunitx #1{\@ifnextchar \bgroup - {\tabu@rewriteX@Ss{#1}} - {\tabu@nosiunitx{#1}}} -\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% - \@defaultunits \let\tabu@temp =#2\relax\@nnil - \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi - \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% - }\expandafter\NC@find \the\@temptokena \relax - }\expandafter\NC@rewrite@S \@gobble #2\relax - \else \tabu@siunitxerror - \fi - \expandafter \NC@find \tabu@rewritten -}% \tabu@rewriteX@Ss -\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! - \MessageBreak X column can only embed siunitx S or s columns}\@ehd -}% \tabu@siunitxerror -\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% - \iftabu@measuring - \else \tabu@measuringtrue % first X column found in the preamble - \let\@halignto \relax \let\tabu@halignto \relax - \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ - \else \tabu@spreadtarget \z@ \fi - \ifdim \tabu@target=\z@ - \setlength\tabu@target \tabu@thetarget - \tabu@message{\tabu@message@defaulttarget}% - \else \tabu@message{\tabu@message@target}\fi - \fi -}% \tabu@rewriteX -\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax - \def\tabu@rewritten{l}} -\def\tabu@Xarg #1#2#3{% - \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty - \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty - \ifx\\#1\\% - \def\tabu@rewritten{p}\tabucolX \p@ % - \else - \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ - \tabu@Xparse {}#1\relax - \fi - \tabu@Xrewritten{#2}{#3}% -}% \tabu@Xarg -\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} -\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} -\def\tabu@Xtest{% - \ifcase \ifx \relax\@let@token \z@ \else - \if ,\@let@token \m@ne\else - \if p\@let@token 1\else - \if m\@let@token 2\else - \if b\@let@token 3\else - \if l\@let@token 4\else - \if c\@let@token 5\else - \if r\@let@token 6\else - \if j\@let@token 7\else - \if L\@let@token 8\else - \if C\@let@token 9\else - \if R\@let@token 10\else - \if J\@let@token 11\else - \ifx \@sptoken\@let@token 12\else - \if .\@let@token 13\else - \if -\@let@token 13\else - \ifcat $\@let@token 14\else - 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \or \tabu@Xtype {p}% - \or \tabu@Xtype {m}% - \or \tabu@Xtype {b}% - \or \tabu@Xalign \raggedright\relax - \or \tabu@Xalign \centering\relax - \or \tabu@Xalign \raggedleft\relax - \or \tabu@Xalign \tabu@justify\relax - \or \tabu@Xalign \RaggedRight\raggedright - \or \tabu@Xalign \Centering\centering - \or \tabu@Xalign \RaggedLeft\raggedleft - \or \tabu@Xalign \justifying\tabu@justify - \or \expandafter \tabu@Xparsespace - \or \expandafter \tabu@Xcoef - \or \expandafter \tabu@Xm@th - \or \tabu@Xcoef{}% - \else\expandafter \tabu@Xparse - \fi -}% \tabu@Xtest -\def\tabu@Xalign #1#2{% - \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} - {Duplicate horizontal alignment specification}\fi - \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax - \else \def\tabu@Xlcr{#2}\let#2\relax\fi - \expandafter\tabu@Xparse -}% \tabu@Xalign -\def\tabu@Xtype #1{% - \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} - {Duplicate vertical alignment specification}\fi - \def\tabu@rewritten{#1}\expandafter\tabu@Xparse -}% \tabu@Xtype -\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% - \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi -}% \tabu@Xcoef -\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ - \tabu@Xparse{}% -}% \tabu@Xc@ef -\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} -\def\tabu@Xd@sp{\let\tabu@Xmath=$% - \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% - \expandafter\tabu@Xparse - \else \expandafter\tabu@Xparse\expandafter{\expandafter}% - \fi -}% \tabu@Xd@sp -\def\tabu@Xrewritten {% - \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi - \ifdim \tabucolX<\z@ \tabu@negcoeftrue - \else\ifdim \tabucolX=\z@ \tabucolX \p@ - \fi\fi - \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% - \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% - \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% - >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% - \tabu@rewritten {\tabu@hsize \tabu@temp}% - <{##2\ifx$\tabu@Xmath$\fi}}% - }\tabu@rewritten -}% \tabu@Xrewritten -\def\tabu@hsize #1#2{% - \ifdim #2\p@<\z@ - \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else - \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi - \fi - \else #2\tabucolX - \fi -}% \tabu@hsize -%% \usetabu and \preamble: rewriting process --------------------- -\tabu@privatecolumntype \usetabu [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\let\tabu@rewriteX \tabu@rewriteXrestore - \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% - \fi -}% \NC@rewrite@\usetabu -\tabu@privatecolumntype \preamble [1]{% - \ifx\\#1\\\tabu@saveerr{}\else - \@ifundefined{tabu@saved@\string#1} - {\tabu@saveerr{#1}} - {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% - \fi -}% \NC@rewrite@\preamble -%% Controlling the rewriting process ------------------------------- -\tabu@newcolumntype \tabu@rewritefirst{% - \iftabu@long \aftergroup \tabu@longpream % - \else \aftergroup \tabu@pream - \fi - \let\tabu@ \relax \let\tabu@hsize \relax - \let\tabu@Xcoefs \@empty \let\tabu@savels \relax - \tabu@Xcol \z@ \tabu@cnt \tw@ - \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse - \global\setbox\@arstrutbox \box\@arstrutbox - \NC@list{\NC@do *}\tabu@textbar \tabu@lines - \NC@list\expandafter{\the\NC@list \NC@do X}% - \iftabu@siunitx % - \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi - \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% - \expandafter\def\expandafter\tabu@NC@list\expandafter{% - \the\expandafter\NC@list \tabu@NC@list}% % * | X S - \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu - \expandafter \NC@do \expandafter\preamble - \the\NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \tabu@savedecl - \tabu@privatecolumns - \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle -}% NC@rewrite@\tabu@rewritefirst -\tabu@newcolumntype \tabu@rewritemiddle{% - \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast -}% \NC@rewrite@\tabu@rewritemiddle -\tabu@newcolumntype \tabu@rewritelast{% - \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne - \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle - \NC@do \tabu@rewritelast}% - \else \let\tabu@prev\tabu@temp - \fi - \ifcase \tabu@cnt \expandafter\tabu@endrewrite - \else \expandafter\NC@find \expandafter\tabu@rewritemiddle - \fi -}% \NC@rewrite@\tabu@rewritelast -%% Choosing the strategy -------------------------------------------- -\def\tabu@endrewrite {% - \let\tabu@temp \NC@find - \ifx \@arrayright\relax \let\@arrayright \@empty \fi - \count@=% - \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print - \iftabu@measuring - \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer - \tabu@target \csname tabu@\the\tabu@nested.T\endcsname - \tabucolX \csname tabu@\the\tabu@nested.X\endcsname - \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% - \fi - \else\iftabu@measuring 4 % X columns - \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer - \tabu@target \the\tabu@target - \tabu@spreadtarget \the\tabu@spreadtarget}% - \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% - \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% - \let\tabu@Xcoefs \relax - \else\ifcase\tabu@nested \thr@@ % outer, no X - \global\let\tabu@afterendpar \relax - \else \@ne % inner, no X, outer in mode 1 or 2 - \fi - \ifdefined\tabu@usetabu - \else \ifdim\tabu@target=\z@ - \else \let\tabu@temp \tabu@extracolsep - \fi\fi - \fi - \fi - \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% - \tabu@temp -}% \tabu@endrewrite -\def\tabu@extracolsep{\@defaultunits \expandafter\let - \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil - \ifx \tabu@temp\@sptoken - \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep - \else - \edef\tabu@temp{\noexpand\NC@find - \if |\noexpand\tabu@temp @% - \else\if !\noexpand\tabu@temp @% - \else !% - \fi\fi - {\noexpand\extracolsep\noexpand\@flushglue}}% - \fi - \tabu@temp -}% \tabu@extrac@lsep -%% Implementing the strategy ---------------------------------------- -\long\def\tabu@pream #1\@preamble {% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\tabu@aftergroupcleanup}% - \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody - \@preamble}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@pream -\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% - \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup - \NC@list\expandafter {\tabu@NC@list}% in case of nesting... - \let\tabu@savedpreamble \@preamble - \global\let\tabu@elapsedtime \relax - \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% - \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) - \tabu@select -}% \tabu@longpream -\def\tabu@select {% - \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi - \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi - \ifcase \count@ - \global\let\tabu@elapsedtime \relax - \tabu@seteverycr - \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) - \or % exit in vertical measure + struts per cell because no X and outer in mode 3 - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \tabu@seteverycr - \expandafter \tabuthepreamble - \or % exit without measure because no X and outer in mode 4 - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@seteverycr - \expandafter \tabuthepreamble - \else % needs trials - \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty - \tabu@savecounters - \expandafter \tabu@setstrategy - \fi -}% \tabu@select -\def\tabu@@ {\gdef\tabu@mkpreambuffer} -%% Protections to set up before trials ------------------------------ -\def\tabu@setstrategy {\begingroup % - \tabu@trialh@@k \tabu@cnt \z@ % number of trials - \hbadness \@M \let\hbadness \@tempcnta - \hfuzz \maxdimen \let\hfuzz \@tempdima - \let\write \tabu@nowrite\let\GenericError \tabu@GenericError - \let\savetabu \@gobble \let\tabudefaulttarget \linewidth - \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote - \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor - \let\tabu@aftergroupcleanup \relax % only after the last trial - \tabu@mkpreambuffer - \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init - \def\tabu@lasttry{\m@ne\p@}\fi - \begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % - \tabu@collectbody \tabu@strategy % -}% \tabu@setstrategy -\def\tabu@savecounters{% - \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% - \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax -}% \tabu@savecounters -\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) - \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs - \ifdim \dimen@>\z@ - \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \fi -}% \tabucolX@init -\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum - \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ - \else -#2\p@ \tabu@negcoeftrue - \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax - \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi - \tabu@wddef{#1}{0pt}% - \fi -}% \tabu@Xinit -%% Collecting the environment body ---------------------------------- -\long\def\tabu@collectbody #1#2\end #3{% - \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% - \ifx \tabu@stack\@empty - \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% - \def\tabu@end@envir{\end{#3}}% - \iftabuscantokens - \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% - \else \def\tabu@endenvir {\let\endarray \@empty - \end{#3}\tabu@gobbleX}% - \fi - \else \def\tabu@endenvir {\end{#3}}\fi}% - \let\tabu@collectbody \tabu@endofcollect - \else\def\tabu@temp{#3}% - \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% - \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% - \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% - \else \toks@\expandafter{\the\toks@ #2\end{#3}}% - \fi\fi\fi - \fi - \tabu@collectbody{#1}% -}% \tabu@collectbody -\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% -\def\tabu@endofcollect #1{\ifnum0=`{}\fi - \expandafter\endgroup \the\toks@ #1% -}% \tabu@endofcollect -%% The trials: switching between strategies ------------------------- -\def\tabu@strategy {\relax % stops \count@ assignment ! - \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) - \expandafter \tabu@endoftrials - \or % case 1 = exit in vertical measure (outer in mode 3) - \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% - \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% - \expandafter \tabu@endoftrials - \or % case 2 = exit with a rule replacing the table (outer in mode 4) - \expandafter \tabu@quickend - \or % case 3 = outer is in mode 3 because of no X - \begingroup - \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \expandafter \tabu@measuring - \else % case 4 = horizontal measure - \begingroup - \global\let\tabu@elapsedtime \tabu@message@etime - \long\def\multicolumn##1##2##3{\multispan{##1}}% - \let\tabu@startpboxORI \@startpbox - \iftabu@spread - \def\tabu@naturalXmax {\z@}% - \let\tabu@naturalXmin \tabu@naturalXmax - \tabu@evr{\global\tabu@naturalX \z@}% - \let\@startpbox \tabu@startpboxmeasure - \else\iftabu@negcoef - \let\@startpbox \tabu@startpboxmeasure - \else \let\@startpbox \tabu@startpboxquick - \fi\fi - \expandafter \tabu@measuring - \fi -}% \tabu@strategy -\def\tabu@measuring{\expandafter \tabu@trial \expandafter - \count@ \the\count@ \tabu@endtrial -}% \tabu@measuring -\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} -\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \csname tabu@adl@endtrial\endcsname - \endarray}$\egroup % got \tabu@box -}% \tabu@shorttrial -\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr - \ifx \tabu@savecounters\relax \else - \let\tabu@savecounters \relax \tabu@clckpt \fi - \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi - \expandafter{\expandafter \tabuthepreamble - \the\tabu@thebody - \tabuendlongtrial}\egroup % got \tabu@box -}% \tabu@longtrial -\def\tabuendlongtrial{% no @ allowed for \scantokens - \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne - \LT@get@widths -}% \tabuendlongtrial -\def\tabu@adl@endtrial{% - \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! -\def\tabu@seteverycr {\tabu@reset - \everycr \expandafter{\the\everycr \tabu@everycr}% - \let\everycr \tabu@noeverycr % -}% \tabu@seteverycr -\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} -\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} -\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} -\def\tabu@endoftrials {% - \iftabuscantokens \expandafter\@firstoftwo - \else \expandafter\@secondoftwo - \fi - {\expandafter \tabu@closetrialsgroup \expandafter - \tabu@rescan \expandafter{% - \expandafter\tabuthepreamble - \the\expandafter\tabu@thebody - \iftabu@long \else \endarray \fi}} - {\expandafter\tabu@closetrialsgroup \expandafter - \tabuthepreamble - \the\tabu@thebody}% - \tabu@endenvir % Finish ! -}% \tabu@endoftrials -\def\tabu@closetrialsgroup {% - \toks@\expandafter{\tabu@endenvir}% - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target - \tabu@cnt \the\tabu@cnt - \def\noexpand\tabu@endenvir{\the\toks@}% - %Quid de \@halignto = \tabu@halignto ?? - }% \tabu@bufferX - \tabu@bufferX - \ifcase\tabu@nested % print out (outer in mode 0) - \global\tabu@cnt \tabu@cnt - \tabu@evr{\tabu@verticaldynamicadjustment}% - \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty - \let\@finalstrut \tabu@finalstrut - \else % vertical measure of nested tabu - \tabu@evr{\tabu@verticalinit}% - \tabu@celllalign@def{\tabu@verticalmeasure}% - \def\tabu@cellralign{\tabu@verticalspacing}% - \fi - \tabu@clckpt \let\@halignto \tabu@halignto - \let\@halignto \@empty - \tabu@seteverycr - \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ - \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) - \fi\fi -}% \tabu@closetrialsgroup -\def\tabu@quickend {\expandafter \endgroup \expandafter - \tabu@target \the\tabu@target \tabu@quickrule - \let\endarray \relax \tabu@endenvir -}% \tabu@quickend -\def\tabu@endtrial {\relax % stops \count@ assignment ! - \ifcase \count@ \tabu@err % case 0 = impossible here - \or \tabu@err % case 1 = impossible here - \or \tabu@err % case 2 = impossible here - \or % case 3 = outer goes into mode 0 - \def\tabu@bufferX{\endgroup}\count@ \z@ - \else % case 4 = outer goes into mode 3 - \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) - \else \tabu@arith % or 2 (outer in mode 4) - \fi - \count@=% - \ifcase\tabu@nested \thr@@ % outer goes into mode 3 - \else\iftabu@measuring \tw@ % outer is in mode 4 - \else \@ne % outer is in mode 3 - \fi\fi - \edef\tabu@bufferX{\endgroup - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% - \fi - \expandafter \tabu@bufferX \expandafter - \count@ \the\count@ \tabu@strategy -}% \tabu@endtrial -\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} -%% The algorithms: compute the widths / stop or go on --------------- -\def\tabu@arithnegcoef {% - \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs -}% \tabu@arithnegcoef -\def\tabu@arith@negcoef #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition - \advance\@tempdima #2\tabucolX - \else - \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated - \advance\dimen@ -#2\p@ - \advance\@tempdima -#2\tabucolX - \else - \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised - \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised - \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) - \fi - \fi - \fi -}% \tabu@arith@negcoef -\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ - \ifdim \@tempdima=\z@ - \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% - \else - \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} - *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% - \fi -}% \tabu@givespace -\def\tabu@arith {\advance\tabu@cnt \@ne - \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi - \tabu@arithnegcoef - \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % - \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax - \tabu@message{\tabu@message@arith}% - \ifdim \tabu@DELTA <\tabu@hfuzz - \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? - \let\tabu@ \tabu@givespace \tabu@Xcoefs - \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message - \else % already converged: nothing to do but nearly impossible... - \fi - \tabucolX \maxdimen - \tabu@measuringfalse - \else % need for narrower X columns - \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax - \tabu@measuringtrue - \@whilesw \iftabu@measuring\fi {% - \advance\tabu@cnt \@ne - \tabu@arithnegcoef - \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here - \tabu@message{\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else - \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ - \fi}% - \ifdim -\tabu@DELTA<\tabu@hfuzz - \advance\@tempdima \@tempdimb % for message - \tabu@measuringfalse - \else - \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax - \fi - }% - \fi - \tabu@message{\tabu@message@reached}% - \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt - \tabucolX \the\tabucolX - \tabu@target \the\tabu@target}% -}% \tabu@arith -\def\tabu@spreadarith {% - \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs - \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% - \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax - \iftabu@measuring - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% - \else - \tabu@message{\tabu@message@spreadarith}% - \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target - \tabu@message{(tabu) spread - \ifdim \@tempdimc>\tabu@target useless here: default target used% - \else too large: reduced to fit default target\fi.}% - \else - \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax - \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% - \fi - \begingroup \let\tabu@wddef \@gobbletwo - \@tempdimb \@tempdima - \tabucolX@init - \tabu@arithnegcoef - \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax - \expandafter\endgroup \expandafter\tabucolX \the\tabucolX - \tabu@arith - \fi -}% \tabu@spreadarith -\def\tabu@spread@arith #1#2{% - \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ - \else \advance\@tempdima \tabu@wd{#1}\relax - \fi -}% \tabu@spread@arith -%% Reporting in the .log file --------------------------------------- -\def\tabu@message@defaulttarget{% - \ifnum\tabu@nested=\z@^^J(tabu) Default target: - \ifx\tabudefaulttarget\linewidth \string\linewidth - \ifdim \tabu@thetarget=\linewidth \else - -\the\dimexpr\linewidth-\tabu@thetarget\fi = - \else\ifx\tabudefaulttarget\linegoal\string\linegoal= - \fi\fi - \else (tabu) Default target (nested): \fi - \the\tabu@target \on@line - \ifnum\tabu@nested=\z@ , page \the\c@page\fi} -\def\tabu@message@target {^^J(tabu) Target specified: - \the\tabu@target \on@line, page \the\c@page} -\def\tabu@message@arith {\tabu@header - \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ - \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ - \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ - \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else - \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ - \fi -}% \tabu@message@arith -\def\tabu@message@spreadarith {\tabu@spreadheader - \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ - \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ - \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ - \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ - \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target - \else \@tempdimc+\tabu@spreadtarget \fi - {}{}{}{}{}\@@} -\def\tabu@message@negcoef #1#2{ - \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: - \space width = \tabu@wd {#1} - \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname - \ifdim -\tabu@pt#2\tabucolX<\tabu@target - < \number-\rem@pt#2 X - = \the\dimexpr -\tabu@pt#2\tabucolX \relax - \else - <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} -\def\tabu@message@reached{\tabu@header - ******* Reached Target: - hfuzz = \tabu@hfuzz\on@line\space *******} -\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% - \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: - \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec - \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) - -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax - *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space - cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} -\def\tabu@message@verticalsp {% - \ifdim \@tempdima>\tabu@ht - \ifdim \@tempdimb>\tabu@dp - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% - \else - \expandafter\expandafter\expandafter\string\tabu@ht = - \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% - \fi - \else\ifdim \@tempdimb>\tabu@dp - \tabu@spaces\tabu@spaces\tabu@spaces - \expandafter\expandafter\expandafter\string\tabu@dp = - \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi - \fi -}% \tabu@message@verticalsp -\edef\tabu@spaces{\@spaces} -\def\tabu@strippt{\expandafter\tabu@pt\the} -{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} -\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} -\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} -\def\do #1{% - \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% - \ifnum##1<10 #1 #1\else - \ifnum##1<100 #1 \else - \ifnum##1<\@m #1\fi\fi\fi - ##1.##2##3##4##5##6##7##8#1}% - \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% - \def\tabu@titles{\ifnum \tabu@nested=\z@ - (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target - #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% - \def\tabu@spreadheader{% - (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. - #1 New Target^^J% - (tabu) sprd} - \def\tabu@message@save {\begingroup - \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} - \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt - \dimexpr####1\p@{ }{ }}}% - \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% - \let\CT@arc@ \relax \let\@preamble \@gobble - \let\tabu@savedpream \@firstofone - \let\tabu@savedparams \@firstofone - \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% - \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% - \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% - \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% - \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% - \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% - \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% - \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% - \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% - \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% - \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% - \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% - \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% - \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% - \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% - \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% - \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% - \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% - \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% - \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% - \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo - \tabu@message{% - (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% - \tabu@usetabu \@nil^^J}% - \endgroup} -}\do{ } -%% Measuring the natural width (varwidth) - store the results ------- -\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop - \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% - \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? - \iftabu@spread \else % if spread -> measure - \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure - \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) - \tabu@measuringtrue % for the quick option... - \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi - \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target - \tabu@target=\tabu@temp\tabucolX \fi\fi - \setbox\tabu@box \hbox \bgroup - \begin{varwidth}\tabu@target - \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... - \narrowragged \arraybackslash \parfillskip \@flushglue - \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi - \bgroup \aftergroup\tabu@endpboxmeasure - \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi - \else \expandafter\@gobble - \tabu@startpboxquick{#1}% \@gobble \bgroup - \fi -}% \tabu@startpboxmeasure -\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty - \bgroup\color@begingroup} -\def\tabu@endpboxmeasure {% - \@finalstrut \@arstrutbox - \end{varwidth}\egroup % - \ifdim \tabu@temp\p@ <\z@ % neg coef - \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box - \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% - \tabu@debug{\tabu@message@endpboxmeasure}% - \fi - \else % spread coef>0 - \global\advance \tabu@naturalX \wd\tabu@box - \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax - \ifdim \tabu@naturalXmax <\tabu@naturalX - \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi - \ifdim \tabu@naturalXmin <\@tempdima - \xdef\tabu@naturalXmin {\the\@tempdima}\fi - \fi - \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target -}% \tabu@endpboxmeasure -\def\tabu@wddef #1{\expandafter\xdef - \csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} -\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd - \the\tabu@Xcol. X[\tabu@temp]: - target = \the\tabucolX \space - \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol - =\tabu@wd\tabu@Xcol -}% \tabu@message@endpboxmeasure -\def\tabu@startpboxquick {\bgroup - \let\@startpbox \tabu@startpboxORI % restore immediately - \let\tabu \tabu@quick % \begin is expanded before... - \expandafter\@gobble \@startpbox % gobbles \bgroup -}% \tabu@startpboxquick -\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi - \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick -}% \tabu@quick -\def\tabu@endquick {% - \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else - \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax - \endgroup - \else \let\endtabu \relax - \tabu@end@envir - \fi -}% \tabu@quick -\def\tabu@endtabu {\end{tabu}} -\def\tabu@endtabus {\end{tabu*}} -%% Measuring the heights and depths - store the results ------------- -\def\tabu@verticalmeasure{\everypar{}% - \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group - \setbox\tabu@box =\hbox\bgroup - \let\tabu@verticalspacing \tabu@verticalsp@lcr - \d@llarbegin % after \hbox ... - \else - \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop - \else\ifnum\currentgrouptype=12\vcenter - \else\vbox\fi\fi}% - \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup - \let\tabu@verticalspacing \tabu@verticalsp@pmb - \fi -}% \tabu@verticalmeasure -\def\tabu@verticalsp@lcr{% - \d@llarend \egroup % - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \noindent\vrule height\@tempdima depth\@tempdimb -}% \tabu@verticalsp@lcr -\def\tabu@verticalsp@pmb{% inserts struts as needed - \par \expandafter\egroup - \expandafter$\expandafter - \egroup \expandafter - \@tempdimc \the\prevdepth - \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep - \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax - \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi - \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi - \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi - \let\@finalstrut \@gobble - \hrule height\@tempdima depth\@tempdimb width\hsize -%% \box\tabu@box -}% \tabu@verticalsp@pmb - -\def\tabu@verticalinit{% - \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! - \advance\c@taburow \@ne - \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% - \advance\c@taburow \m@ne -}% \tabu@verticalinit -\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} -\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} -\def\tabu@verticaldynamicadjustment {% - \advance\c@taburow \@ne - \extrarowheight \dimexpr\tabu@ht - \ht\strutbox - \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox - \let\arraystretch \@empty - \advance\c@taburow \m@ne -}% \tabu@verticaldynamicadjustment -\def\tabuphantomline{\crcr \noalign{% - {\globaldefs \@ne - \setbox\@arstrutbox \box\voidb@x - \let\tabu@@celllalign \tabu@celllalign - \let\tabu@@cellralign \tabu@cellralign - \let\tabu@@cellleft \tabu@cellleft - \let\tabu@@cellright \tabu@cellright - \let\tabu@@thevline \tabu@thevline - \let\tabu@celllalign \@empty - \let\tabu@cellralign \@empty - \let\tabu@cellright \@empty - \let\tabu@cellleft \@empty - \let\tabu@thevline \relax}% - \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% - \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr - \noalign{\tabu@rearstrut - {\globaldefs\@ne - \let\tabu@celllalign \tabu@@celllalign - \let\tabu@cellralign \tabu@@cellralign - \let\tabu@cellleft \tabu@@cellleft - \let\tabu@cellright \tabu@@cellright - \let\tabu@thevline \tabu@@thevline}}}% - \expandafter}\the\toks@ -}% \tabuphantomline -%% \firsthline and \lasthline corrections --------------------------- -\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} -\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} -\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} -\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} -\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) - \noalign{\ifnum0=`}\fi - {\CT@arc@\hrule height\arrayrulewidth}% - \futurelet \tabu@temp \tabu@xhline -}% \tabu@hline -\def\tabu@xhline{% - \ifx \tabu@temp \hline - {\ifx \CT@drsc@\relax \vskip - \else\ifx \CT@drsc@\@empty \vskip - \else \CT@drsc@\hrule height - \fi\fi - \doublerulesep}% - \fi - \ifnum0=`{\fi}% -}% \tabu@xhline -\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ - \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% - \tabu@hlineAZsurround -}% \tabu@hlineAZ -\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% - \extratabsurround #1\let\tabucline \tabucline@scan - \let\hline \tabu@hlinescan \let\firsthline \hline - \let\cline \tabu@clinescan \let\lasthline \hline - \expandafter \futurelet \expandafter \tabu@temp - \expandafter \tabu@nexthlineAZ \tabu@temp -}% \tabu@hlineAZsurround -\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} -\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} -\def\tabucline@scan{\@testopt \tabucline@sc@n {}} -\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} -\def\tabu@nexthlineAZ{% - \ifx \tabu@temp\hline \else - \ifx \tabu@temp\cline \else - \ifx \tabu@temp\tabucline \else - \tabu@hlinecorrection - \fi\fi\fi -}% \tabu@nexthlineAZ -\def\tabu@xhlineAZ #1{% - \toks@\expandafter{\the\toks@ #1}% - \@tempdimc \tabu@thick % The last line width - \ifcase\count@ \@tempdimb \tabu@thick % The first line width - \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax - \fi - \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ -}% \tabu@xhlineAZ -\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 - \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ - \edef\firsthline{% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - height \the\dimexpr\@tempdima+\extratabsurround - depth \dp\@arstrutbox - width \tabustrutrule}\hss}\cr - \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb - +\dp\@arstrutbox \relax}% - \the\toks@ - }\ifnum0=`{\fi - \expandafter}\firsthline % we are then ! -}% \tabu@firsthlinecorrection -\def\tabu@lasthlinecorrection{% - \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc - \edef\lasthline{% - \the\toks@ - \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% - \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule - depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ - +\extratabsurround-\@tempdimc - height \z@ - width \tabustrutrule}\hss}\cr - }\ifnum0=`{\fi - \expandafter}\lasthline % we are then ! -}% \tabu@lasthlinecorrection -\def\tabu@LT@@hline{% - \ifx\LT@next\hline - \global\let\LT@next \@gobble - \ifx \CT@drsc@\relax - \gdef\CT@LT@sep{% - \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% - \else - \gdef\CT@LT@sep{% - \multispan\LT@cols{% - \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% - \fi - \else - \global\let\LT@next\empty - \gdef\CT@LT@sep{% - \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% - \fi - \ifnum0=`{\fi}% - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \CT@LT@sep - \multispan\LT@cols - {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr - \noalign{\penalty\@M}% - \LT@next -}% \tabu@LT@@hline -%% Horizontal lines : \tabucline ------------------------------------ -\let\tabu@start \@tempcnta -\let\tabu@stop \@tempcntb -\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} -\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% - \ifnum \tabu@stop<\z@ \toks@{}% - \else \tabu@clinearg{#1}\tabu@thestyle - \edef\tabucline{\toks@{% - \ifnum \tabu@start>\z@ \omit - \tabu@multispan\tabu@start {\span\omit}&\fi - \omit \tabu@multispan\tabu@stop {\span\omit}% - \tabu@thehline\cr - }}\tabucline - \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% - \fi - \futurelet \tabu@temp \tabu@xcline -}% \tabu@cline -\def\tabu@clinearg #1{% - \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ - \else \@defaultunits \expandafter\let\expandafter\@tempa - \romannumeral-`\0#1\relax \@nnil - \ifx \hbox\@tempa \tabu@clinebox{#1}% - \else\ifx \box\@tempa \tabu@clinebox{#1}% - \else\ifx \vbox\@tempa \tabu@clinebox{#1}% - \else\ifx \vtop\@tempa \tabu@clinebox{#1}% - \else\ifx \copy\@tempa \tabu@clinebox{#1}% - \else\ifx \leaders\@tempa \tabu@clineleads{#1}% - \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% - \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% - \else\tabu@getline {#1}% - \fi\fi\fi\fi\fi\fi\fi\fi - \fi -}% \tabu@clinearg -\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} -\def\tabu@clineleads #1{% - \let\tabu@thestyle \relax \let\tabu@leaders \@undefined - \gdef\tabu@thehrule{#1}} -\def\tabu@thehline{\begingroup - \ifdefined\tabu@leaders - \noexpand\tabu@thehleaders - \else \noexpand\tabu@thehrule - \fi \endgroup -}% \tabu@thehline -\def\tabu@xcline{% - \ifx \tabu@temp\tabucline - \toks@\expandafter{\the\toks@ \noalign - {\ifx\CT@drsc@\relax \vskip - \else \CT@drsc@\hrule height - \fi - \doublerulesep}}% - \fi - \tabu@docline -}% \tabu@xcline -\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} -\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% - \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} -\def\tabu@multispan #1#2{% - \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan - \else \expandafter\@gobbletwo - \fi {#1-1}{#2}% -}% \tabu@multispan -\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} -\def\tabu@start@stop #1-#2\@nnil{% - \@defaultunits \tabu@start\number 0#1\relax \@nnil - \@defaultunits \tabu@stop \number 0#2\relax \@nnil - \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne - \else\ifnum \tabu@stop=\z@ \tabu@nbcols - \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols - \else \tabu@stop - \fi\fi\fi - \advance\tabu@start \m@ne - \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi -}% \tabu@start@stop -%% Numbers: siunitx S columns (and \tabudecimal) ------------------- -\def\tabu@tabudecimal #1{% - \def\tabu@decimal{#1}\@temptokena{}% - \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces - \tabu@scandecimal -}% \tabu@tabudecimal -\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} -\def\tabu@skipdecimal#1{#1\tabu@scandecimal} -\def\tabu@getdecimal@ignorespaces{% - \ifcase 0\ifx\tabu@temp\ignorespaces\else - \ifx\tabu@temp\@sptoken1\else - 2\fi\fi\relax - \let\tabu@getdecimal@ \tabu@getdecimal - \expandafter\tabu@skipdecimal - \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal - \else \expandafter\tabu@skipdecimal - \fi -}% \tabu@getdecimal@ignorespaces -\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% - \tabu@scandecimal} -\def\do#1{% - \def\tabu@get@decimalspace#1{% - \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% -}\do{ } -\let\tabu@@tabudecimal \tabu@tabudecimal -\def\tabu@getdecimal{% - \ifcase 0\ifx 0\tabu@temp\else - \ifx 1\tabu@temp\else - \ifx 2\tabu@temp\else - \ifx 3\tabu@temp\else - \ifx 4\tabu@temp\else - \ifx 5\tabu@temp\else - \ifx 6\tabu@temp\else - \ifx 7\tabu@temp\else - \ifx 8\tabu@temp\else - \ifx 9\tabu@temp\else - \ifx .\tabu@temp\else - \ifx ,\tabu@temp\else - \ifx -\tabu@temp\else - \ifx +\tabu@temp\else - \ifx e\tabu@temp\else - \ifx E\tabu@temp\else - \ifx\tabu@cellleft\tabu@temp1\else - \ifx\ignorespaces\tabu@temp1\else - \ifx\@sptoken\tabu@temp2\else - 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax - \expandafter\tabu@get@decimal - \or \expandafter\tabu@skipdecimal - \or \expandafter\tabu@get@decimalspace - \else\expandafter\tabu@printdecimal - \fi -}% \tabu@getdecimal -\def\tabu@printdecimal{% - \edef\tabu@temp{\the\@temptokena}% - \ifx\tabu@temp\@empty\else - \ifx\tabu@temp\space\else - \expandafter\tabu@decimal\expandafter{\the\@temptokena}% - \fi\fi -}% \tabu@printdecimal -%% Verbatim inside X columns ---------------------------------------- -\def\tabu@verbatim{% - \let\verb \tabu@verb - \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd -}% \tabu@verbatim -\let\tabu@ltx@verb \verb -\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} -\def\tabu@fancyvrb {% - \def\tabu@FV@DefineCheckEnd ##1{% - \def\tabu@FV@DefineCheckEnd{% - ##1% - \let\FV@CheckEnd \tabu@FV@CheckEnd - \let\FV@@CheckEnd \tabu@FV@@CheckEnd - \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd - \edef\FV@EndScanning{% - \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% - \global\let\noexpand\FV@EnvironName\relax - \noexpand\next}% - \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% - }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} -}% \tabu@fancyvrb -\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} -\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} -\begingroup -\catcode`\[1 \catcode`\]2 -\@makeother\{ \@makeother\} - \edef\x[\endgroup - \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% - ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} -\def\tabu@FV@ListProcessLine #1{% - \hbox {%to \hsize{% - \kern\leftmargin - \hbox {%to \linewidth{% - \FV@LeftListNumber - \FV@LeftListFrame - \FancyVerbFormatLine{#1}\hss -%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) -%% \FV@RightListFrame}% - \FV@RightListFrame - \FV@RightListNumber}% -%% DG/SR modification end - \hss}} -%% \savetabu -------------------------------------------------------- -\newcommand*\savetabu[1]{\noalign{% - \tabu@sanitizearg{#1}\tabu@temp - \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else - \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% - \ifdefined\tabu@restored \expandafter\let - \csname tabu@saved@\tabu@temp \endcsname \tabu@restored - \else {\tabu@save}% - \fi - \fi}% -}% \savetabu -\def\tabu@save {% - \toks0\expandafter{\tabu@saved@}% - \iftabu@negcoef - \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% - \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi - \toks1\expandafter{\tabu@savedpream}% - \toks2\expandafter{\tabu@savedpreamble}% - \let\@preamble \relax - \let\tabu@savedpream \relax \let\tabu@savedparams \relax - \edef\tabu@preamble{% - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \edef\tabu@usetabu{% - \def\@preamble {\noexpand\the\toks2}% - \tabu@target \the\tabu@target \relax - \tabucolX \the\tabucolX \relax - \tabu@nbcols \the\tabu@nbcols \relax - \def\noexpand\tabu@aligndefault{\tabu@align}% - \def\tabu@savedparams {\noexpand\the\toks0}% - \def\tabu@savedpream {\noexpand\the\toks1}}% - \let\tabu@aligndefault \relax \let\@sharp \relax - \edef\@tempa{\noexpand\tabu@s@ved - {\tabu@usetabu} - {\tabu@preamble} - {\the\toks1}}\@tempa - \tabu@message@save -}% \tabu@save -\long\def\tabu@s@ved #1#2#3{% - \def\tabu@usetabu{#1}% - \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% - \ifodd ##1% \usetabu - \tabu@measuringfalse \tabu@spreadfalse % Just in case... - \gdef\tabu@usetabu {% - \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi - \global\let\tabu@usetabu \@undefined - \def\@halignto {to\tabu@target}% - #1% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \else % \preamble - \gdef\tabu@preamble {% - \global\let\tabu@preamble \@undefined - #2% - \ifx \tabu@align\tabu@aligndefault@text - \ifnum \tabu@nested=\z@ - \let\tabu@align \tabu@aligndefault \fi\fi}% - \fi - #3}% -}% \tabu@s@ved -\def\tabu@aligndefault@text {\tabu@aligndefault}% -\def\tabu@warn@usetabu {\PackageWarning{tabu} - {Specifying a target with \string\usetabu\space is useless - \MessageBreak The target cannot be changed!}} -\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} -\def\tabu@savewarn#1#2{\PackageInfo{tabu} - {User-name `#1' already used for \string\savetabu - \MessageBreak #2}}% -\def\tabu@saveerr#1{\PackageError{tabu} - {User-name `#1' is unknown for \string\usetabu - \MessageBreak I cannot restore an unknown preamble!}\@ehd} -%% \rowfont --------------------------------------------------------- -\newskip \tabu@cellskip -\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi - {\ifnum0=`}\fi \tabu@row@font} -\newcommand*\tabu@row@font[2][]{% - \ifnum7=\currentgrouptype - \global\let\tabu@@cellleft \tabu@cellleft - \global\let\tabu@@cellright \tabu@cellright - \global\let\tabu@@celllalign \tabu@celllalign - \global\let\tabu@@cellralign \tabu@cellralign - \global\let\tabu@@rowfontreset\tabu@rowfontreset - \fi - \global\let\tabu@rowfontreset \tabu@rowfont@reset - \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% - \ifcsname tabu@cell@#1\endcsname % row alignment - \csname tabu@cell@#1\endcsname \fi - \ifnum0=`{\fi}% end of group / noalign group -}% \rowfont -\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% -\def\tabu@rowfont@reset{% - \global\let\tabu@rowfontreset \tabu@@rowfontreset - \global\let\tabu@cellleft \tabu@@cellleft - \global\let\tabu@cellright \tabu@@cellright - \global\let\tabu@cellfont \@empty - \global\let\tabu@celllalign \tabu@@celllalign - \global\let\tabu@cellralign \tabu@@cellralign -}% \tabu@@rowfontreset -\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl -%% \tabu@prepnext@tok ----------------------------------------------- -\newif \iftabu@cellright -\def\tabu@prepnext@tok{% - \ifnum \count@<\z@ % - \@tempcnta \@M % - \tabu@nbcols\z@ - \let\tabu@fornoopORI \@fornoop - \tabu@cellrightfalse - \else - \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left - \advance \tabu@nbcols \@ne - \iftabu@cellright % before-previous token is right and is finished - \tabu@cellrightfalse % - \tabu@righttok - \fi - \tabu@lefttok - \or % (case 1) previous token is right - \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop - \else % special column: do not change the token - \iftabu@cellright % before-previous token is right - \tabu@cellrightfalse - \tabu@righttok - \fi - \fi % \ifcase - \fi - \tabu@prepnext@tokORI -}% \tabu@prepnext@tok -\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} -\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% - \ifx \in@#2\else - \let\@fornoop \tabu@fornoopORI - \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% - \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% - \expandafter\prepnext@tok - \fi -}% \tabu@lastnoop -\def\tabu@righttok{% - \advance \count@ \m@ne - \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% - \advance \count@ \@ne -}% \tabu@righttok -\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign - \the\toks\count@ \tabu@cellleft}% after because of $ -}% \tabu@lefttok -%% Neutralisation of glues ------------------------------------------ -\let\tabu@cellleft \@empty -\let\tabu@cellright \@empty -\tabu@celllalign@def{\tabu@cellleft}% -\let\tabu@cellralign \@empty -\def\tabu@cell@align #1#2#3{% - \let\tabu@maybesiunitx \toks@ \tabu@celllalign - \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% - \toks@\expandafter{\tabu@cellralign #2}% - \xdef\tabu@cellralign{\the\toks@}% - \toks@\expandafter{\tabu@cellleft #3}% - \xdef\tabu@cellleft{\the\toks@}% -}% \tabu@cell@align -\def\tabu@cell@l{% force alignment to left - \tabu@cell@align - {\tabu@removehfil \raggedright \tabu@cellleft}% left - {\tabu@flush1\tabu@ignorehfil}% right - \raggedright -}% \tabu@cell@l -\def\tabu@cell@c{% force alignment to center - \tabu@cell@align - {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \centering -}% \tabu@cell@c -\def\tabu@cell@r{% force alignment to right - \tabu@cell@align - {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} - \tabu@ignorehfil - \raggedleft -}% \tabu@cell@r -\def\tabu@cell@j{% force justification (for p, m, b columns) - \tabu@cell@align - {\tabu@justify\tabu@cellleft} - {} - \tabu@justify -}% \tabu@cell@j -\def\tabu@justify{% - \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip - \parfillskip\@flushglue -}% \tabu@justify -%% ragged2e settings -\def\tabu@cell@L{% force alignment to left (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedRight \tabu@cellleft} - {\tabu@flush 1\tabu@ignorehfil} - \RaggedRight -}% \tabu@cell@L -\def\tabu@cell@C{% force alignment to center (ragged2e) - \tabu@cell@align - {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} - {\tabu@flush{.5}\tabu@ignorehfil} - \Centering -}% \tabu@cell@C -\def\tabu@cell@R{% force alignment to right (ragged2e) - \tabu@cell@align - {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} - \tabu@ignorehfil - \RaggedLeft -}% \tabu@cell@R -\def\tabu@cell@J{% force justification (ragged2e) - \tabu@cell@align - {\justifying \tabu@cellleft} - {} - \justifying -}% \tabu@cell@J -\def\tabu@flush#1{% - \iftabu@colortbl % colortbl uses \hfill rather than \hfil - \hskip \ifnum13<\currentgrouptype \stretch{#1}% - \else \ifdim#1pt<\p@ \tabu@cellskip - \else \stretch{#1} - \fi\fi \relax - \else % array.sty - \ifnum 13<\currentgrouptype - \hfil \hskip1sp \relax \fi - \fi -}% \tabu@flush -\let\tabu@hfil \hfil -\let\tabu@hfill \hfill -\let\tabu@hskip \hskip -\def\tabu@removehfil{% - \iftabu@colortbl - \unkern \tabu@cellskip =\lastskip - \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip - \else \tabu@cellskip \z@skip - \fi - \else - \ifdim\lastskip=1sp\unskip\fi - \ifnum\gluestretchorder\lastskip =\@ne - \hfilneg % \hfilneg for array.sty but not for colortbl... - \fi - \fi -}% \tabu@removehfil -\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} -\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil - \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group -}% \tabu@nohfil -\def\tabu@colortblalignments {% if colortbl - \def\tabu@nohfil{% - \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group - \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... - \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local -}% \tabu@colortblalignments -%% Taking care of footnotes and hyperfootnotes ---------------------- -\long\def\tabu@footnotetext #1{% - \edef\@tempa{\the\tabu@footnotes - \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% - \global\tabu@footnotes\expandafter{\@tempa {#1}}}% -\long\def\tabu@xfootnotetext [#1]#2{% - \global\tabu@footnotes\expandafter{\the\tabu@footnotes - \footnotetext [{#1}]{#2}}} -\let\tabu@xfootnote \@xfootnote -\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} -\long\def\tabu@Hy@xfootnote [#1]{% - \begingroup - \value\@mpfn #1\relax - \protected@xdef \@thefnmark {\thempfn}% - \endgroup - \@footnotemark \tabu@Hy@ftntxt {#1}% -}% \tabu@Hy@xfootnote -\long\def\tabu@Hy@ftntxt #1#2{% - \edef\@tempa{% - \the\tabu@footnotes - \begingroup - \value\@mpfn #1\relax - \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% - \expandafter \noexpand \expandafter - \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% - }% - \global\tabu@footnotes\expandafter{\@tempa {#2}% - \endgroup}% -}% \tabu@Hy@ftntxt -\long\def\tabu@Hy@footnotetext #1#2{% - \H@@footnotetext{% - \ifHy@nesting - \hyper@@anchor {#1}{#2}% - \else - \Hy@raisedlink{% - \hyper@@anchor {#1}{\relax}% - }% - \def\@currentHref {#1}% - \let\@currentlabelname \@empty - #2% - \fi - }% -}% \tabu@Hy@footnotetext -%% No need for \arraybackslash ! ------------------------------------ -\def\tabu@latextwoe {% -\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@centering \centering \arraybackslash -\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash -\tabu@temp \tabu@raggedright \raggedright \arraybackslash -}% \tabu@latextwoe -\def\tabu@raggedtwoe {% -\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} -\tabu@temp \tabu@Centering \Centering \arraybackslash -\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash -\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash -\tabu@temp \tabu@justifying \justifying \arraybackslash -}% \tabu@raggedtwoe -\def\tabu@normalcrbackslash{\let\\\@normalcr} -\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% - \expandafter\tabu@normalcrbackslash \@trivlist}} -%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- -\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} -\def\tabu@beginfbox {\bgroup \kern\fboxsep - \bgroup\aftergroup\tabu@endfbox} -\def\tabu@endfbox {\kern\fboxsep\egroup\egroup - \@frameb@x\relax} -\def\tabu@color@b@x #1#2{\leavevmode \bgroup - \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% - \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox -}% \tabu@color@b@x -\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup - \aftergroup\tabu@endcolor@b@x \set@color} -\def\tabu@endcolor@b@x {\kern\fboxsep \egroup - \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ - \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ - \tabu@docolor@b@x \egroup -}% \tabu@endcolor@b@x -%% Corrections (arydshln, delarray, colortbl) ----------------------- -\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray - \iftabu@colortbl - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \def\tabu@endarray{% - \crcr \egroup \egroup % - \@arrayright % - \gdef\@preamble{}\CT@end}% - \fi - \else - \ifdefined\adl@array % - \def\tabu@endarray{% - \adl@endarray \egroup \adl@arrayrestore \egroup % - \@arrayright % - \gdef\@preamble{}}% - \else % - \PackageWarning{tabu} - {\string\@arrayright\space is missing from the - \MessageBreak definition of \string\endarray. - \MessageBreak Compatibility with delarray.sty is broken.}% - \fi\fi -}% \tabu@fix@arrayright -\def\tabu@adl@xarraydashrule #1#2#3{% - \ifnum\@lastchclass=\adl@class@start\else - \ifnum\@lastchclass=\@ne\else - \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) - \adl@leftrulefalse \fi\fi % must be treated the same - \fi - \ifadl@zwvrule\else \ifadl@inactive\else - \@addtopreamble{\vrule\@width\arrayrulewidth - \@height\z@ \@depth\z@}\fi \fi - \ifadl@leftrule - \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% - {\number#1}#3}% - \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% - {\number#2}#3} - \fi -}% \tabu@adl@xarraydashrule -\def\tabu@adl@act@endpbox {% - \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox - \egroup \egroup - \adl@colhtdp \box\adl@box \hfil -}% \tabu@adl@act@endpbox -\def\tabu@adl@fix {% - \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln - \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln - \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln - \let\@preamerror \@preamerr % arydshln -}% \tabu@adl@fix -%% Correction for longtable' \@startbox definition ------------------ -%% => \everypar is ``missing'' : TeX should be in vertical mode -\def\tabu@LT@startpbox #1{% - \bgroup - \let\@footnotetext\LT@p@ftntext - \setlength\hsize{#1}% - \@arrayparboxrestore - \everypar{% - \vrule \@height \ht\@arstrutbox \@width \z@ - \everypar{}}% -}% \tabu@LT@startpbox -%% \tracingtabu and the package options ------------------ -\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} -\DeclareOption{linegoal}{% - \AtEndOfPackage{% - \RequirePackage{linegoal}[2010/12/07]% - \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX -}} -\DeclareOption{scantokens}{\tabuscantokenstrue} -\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} -\def\tracingtabu {\begingroup\@ifnextchar=% - {\afterassignment\tabu@tracing\count@} - {\afterassignment\tabu@tracing\count@1\relax}} -\def\tabu@tracing{\expandafter\endgroup - \expandafter\tabu@tr@cing \the\count@ \relax -}% \tabu@tracing -\def\tabu@tr@cing #1\relax {% - \ifnum#1>\thr@@ \let\tabu@tracinglines\message - \else \let\tabu@tracinglines\@gobble - \fi - \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG - \def\tabu@mkarstrut {\tabu@DBG@arstrut}% - \tabustrutrule 1.5\p@ - \else \let\tabu@DBG \@gobble - \def\tabu@mkarstrut {\tabu@arstrut}% - \tabustrutrule \z@ - \fi - \ifnum#1>\@ne \let\tabu@debug \message - \else \let\tabu@debug \@gobble - \fi - \ifnum#1>\z@ - \let\tabu@message \message - \let\tabu@tracing@save \tabu@message@save - \let\tabu@starttimer \tabu@pdftimer - \else - \let\tabu@message \@gobble - \let\tabu@tracing@save \@gobble - \let\tabu@starttimer \relax - \fi -}% \tabu@tr@cing -%% Setup \AtBeginDocument -\AtBeginDocument{\tabu@AtBeginDocument} -\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined - \ifdefined\arrayrulecolor \tabu@colortbltrue % - \tabu@colortblalignments % different glues are used - \else \tabu@colortblfalse \fi - \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi - \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi - \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ - \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % - \expandafter\ifx - \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax - \tabu@siunitxtrue - \else \let\tabu@maybesiunitx \@firstofone % - \let\tabu@siunitx \tabu@nosiunitx - \tabu@siunitxfalse - \fi - \ifdefined\adl@array % - \else \let\tabu@adl@fix \relax - \let\tabu@adl@endtrial \@empty \fi - \ifdefined\longtable % - \else \let\longtabu \tabu@nolongtabu \fi - \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi - \csname\ifcsname ifHy@hyperfootnotes\endcsname % - ifHy@hyperfootnotes\else iffalse\fi\endcsname - \let\tabu@footnotetext \tabu@Hy@ftntext - \let\tabu@xfootnote \tabu@Hy@xfootnote \fi - \ifdefined\FV@DefineCheckEnd% - \tabu@fancyvrb \fi - \ifdefined\color % - \let\tabu@color \color - \def\tabu@leavevmodecolor ##1{% - \def\tabu@leavevmodecolor {\leavevmode ##1}% - }\expandafter\tabu@leavevmodecolor\expandafter{\color}% - \else - \let\tabu@color \tabu@nocolor - \let\tabu@leavevmodecolor \@firstofone \fi - \tabu@latextwoe - \ifdefined\@raggedtwoe@everyselectfont % - \tabu@raggedtwoe - \else - \let\tabu@cell@L \tabu@cell@l - \let\tabu@cell@R \tabu@cell@r - \let\tabu@cell@C \tabu@cell@c - \let\tabu@cell@J \tabu@cell@j \fi - \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% - \ifin@ \let\tabu@endarray \endarray - \else \tabu@fix@arrayright \fi% - \everyrow{}% -}% \tabu@AtBeginDocument -\def\tabu@warn@cellspace{% - \PackageWarning{tabu}{% - Package cellspace has some limitations - \MessageBreak And redefines some macros of array.sty. - \MessageBreak Please use \string\tabulinesep\space to control - \MessageBreak vertical spacing of lines inside tabu environment}% -}% \tabu@warn@cellspace -%% tabu Package initialisation -\tabuscantokensfalse -\let\tabu@arc@G \relax -\let\tabu@drsc@G \relax -\let\tabu@evr@G \@empty -\let\tabu@rc@G \@empty -\def\tabu@ls@G {\tabu@linestyle@}% -\let\tabu@@rowfontreset \@empty % -\let\tabu@@celllalign \@empty -\let\tabu@@cellralign \@empty -\let\tabu@@cellleft \@empty -\let\tabu@@cellright \@empty -\def\tabu@naturalXmin {\z@} -\def\tabu@naturalXmax {\z@} -\let\tabu@rowfontreset \@empty -\def\tabulineon {4pt}\let\tabulineoff \tabulineon -\tabu@everyrowtrue -\ifdefined\pdfelapsedtime % - \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% -\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax -\fi -\tracingtabu=\z@ -\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ -\tabulinestyle{} -\taburowcolors{} -\let\tabudefaulttarget \linewidth -\ProcessOptions* % \ProcessOptions* is quicker ! -\endinput -%% -%% End of file `tabu.sty'.