diff --git a/MindstormsEV3Toolbox.pdf b/MindstormsEV3Toolbox.pdf index 42b5958967596958cdadf8d23992147b2f422f3b..2aabeb3d769beda855e52ed9db32ffbe77181081 120000 Binary files a/MindstormsEV3Toolbox.pdf and b/MindstormsEV3Toolbox.pdf differ diff --git a/docs/_build/doctrees/CommandLayer.doctree b/docs/_build/doctrees/CommandLayer.doctree index 451eac7f343fd7e974a21481df4ac98dc8bd5df1..dd054a2182ce37712e3544e23533780751d220ec 100644 Binary files a/docs/_build/doctrees/CommandLayer.doctree and b/docs/_build/doctrees/CommandLayer.doctree differ diff --git a/docs/_build/doctrees/CommunicationLayer.doctree b/docs/_build/doctrees/CommunicationLayer.doctree index 355337ddbe6b72d7f19aeb95ee24a9458023eef4..a45bbb9fcecbb2d553a415b158ce32c24488b6ab 100644 Binary files a/docs/_build/doctrees/CommunicationLayer.doctree and b/docs/_build/doctrees/CommunicationLayer.doctree differ diff --git a/docs/_build/doctrees/EV3.doctree b/docs/_build/doctrees/EV3.doctree index f268aaa0ab05c97937dd1550fd354decce454983..7ac4f62d7ef86f53541d29c45cd6537edcff522b 100644 Binary files a/docs/_build/doctrees/EV3.doctree and b/docs/_build/doctrees/EV3.doctree differ diff --git a/docs/_build/doctrees/Motor.doctree b/docs/_build/doctrees/Motor.doctree index 002d4ff59880173f8926d242e29804f34c07f018..aedfebf073db77310ad7a93fd78d45ac1c7a0182 100644 Binary files a/docs/_build/doctrees/Motor.doctree and b/docs/_build/doctrees/Motor.doctree differ diff --git a/docs/_build/doctrees/Sensor.doctree b/docs/_build/doctrees/Sensor.doctree index c15f329fef75f7b84f3e201fec31e5c7777ed2c9..92f8761308eefcd1deb69beedcb6b8a0c3359e3e 100644 Binary files a/docs/_build/doctrees/Sensor.doctree and b/docs/_build/doctrees/Sensor.doctree differ diff --git a/docs/_build/doctrees/btBrickIO.doctree b/docs/_build/doctrees/btBrickIO.doctree index 41720b5e50a9481d2562533c6c3dc1e3be9b113b..793013136665912bb15deefef8aaf33569ede0de 100644 Binary files a/docs/_build/doctrees/btBrickIO.doctree and b/docs/_build/doctrees/btBrickIO.doctree differ diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index d0e3f355e446c8d3a8357f6b613a283c3415490b..b06d8a7846cd021a898360e56ed66da882a2d6c3 100644 Binary files a/docs/_build/doctrees/environment.pickle and b/docs/_build/doctrees/environment.pickle differ diff --git a/docs/_build/doctrees/examples.doctree b/docs/_build/doctrees/examples.doctree index a9a4aba4ea21fb7062ac10890fba3a27aee4a3d1..bf59648fbf514053ea5cfafe43c4268cd12791d0 100644 Binary files a/docs/_build/doctrees/examples.doctree and b/docs/_build/doctrees/examples.doctree differ diff --git a/docs/_build/doctrees/hid.doctree b/docs/_build/doctrees/hid.doctree index c5e55fe4c904ef0c2081a52aab250a2f1519df1a..c3412b8b0f068d632c9b4ffe73e26a4e003e4f36 100644 Binary files a/docs/_build/doctrees/hid.doctree and b/docs/_build/doctrees/hid.doctree differ diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index 19bbb9eaf0de3d7adee983c3abb8afa5a8938a92..fc1b94b38bf681ab59b6491d3f51e44fb2838aab 100644 Binary files a/docs/_build/doctrees/index.doctree and b/docs/_build/doctrees/index.doctree differ diff --git a/docs/_build/doctrees/readme.doctree b/docs/_build/doctrees/readme.doctree index 10fd5a846a2c6469d73d1e9444d353551adab5fa..4439421bc6e962db5b853adc09b19e3e49ad9573 100644 Binary files a/docs/_build/doctrees/readme.doctree and b/docs/_build/doctrees/readme.doctree differ diff --git a/docs/_build/doctrees/source.doctree b/docs/_build/doctrees/source.doctree index a3349dabe5a1b10078cbc28a7f0a0b93973136df..2b1db322f58d48bccb9d02dd66637619cb9151fd 100644 Binary files a/docs/_build/doctrees/source.doctree and b/docs/_build/doctrees/source.doctree differ diff --git a/docs/_build/doctrees/usbBrickIO.doctree b/docs/_build/doctrees/usbBrickIO.doctree index 8c63e70472f80bd11bfe7873c0485d7a52c2ac41..6e09a862009a2a84497f29b2d82dd64b83f728ea 100644 Binary files a/docs/_build/doctrees/usbBrickIO.doctree and b/docs/_build/doctrees/usbBrickIO.doctree differ diff --git a/docs/_build/latex/LICRcyr2utf8.xdy b/docs/_build/latex/LICRcyr2utf8.xdy new file mode 100644 index 0000000000000000000000000000000000000000..a9ca1c82cd661cfa1583e86fa881644d029d061f --- /dev/null +++ b/docs/_build/latex/LICRcyr2utf8.xdy @@ -0,0 +1,101 @@ +;; -*- coding: utf-8; mode: Lisp; -*- +;; style file for xindy +;; filename: LICRcyr2utf8.xdy +;; description: style file for xindy which maps back LaTeX Internal +;; Character Representation of Cyrillic to utf-8 +;; usage: for use with pdflatex produced .idx files. +;; Contributed by the Sphinx team, July 2018. +(merge-rule "\IeC {\'\CYRG }" "Ѓ" :string) +(merge-rule "\IeC {\'\CYRK }" "Ќ" :string) +(merge-rule "\IeC {\'\cyrg }" "ѓ" :string) +(merge-rule "\IeC {\'\cyrk }" "ќ" :string) +(merge-rule "\IeC {\CYRA }" "А" :string) +(merge-rule "\IeC {\CYRB }" "Б" :string) +(merge-rule "\IeC {\CYRC }" "Ц" :string) +(merge-rule "\IeC {\CYRCH }" "Ч" :string) +(merge-rule "\IeC {\CYRD }" "Д" :string) +(merge-rule "\IeC {\CYRDJE }" "Ђ" :string) +(merge-rule "\IeC {\CYRDZE }" "Ѕ" :string) +(merge-rule "\IeC {\CYRDZHE }" "Џ" :string) +(merge-rule "\IeC {\CYRE }" "Е" :string) +(merge-rule "\IeC {\CYREREV }" "Э" :string) +(merge-rule "\IeC {\CYRERY }" "Ы" :string) +(merge-rule "\IeC {\CYRF }" "Ф" :string) +(merge-rule "\IeC {\CYRG }" "Г" :string) +(merge-rule "\IeC {\CYRGUP }" "Ґ" :string) +(merge-rule "\IeC {\CYRH }" "Х" :string) +(merge-rule "\IeC {\CYRHRDSN }" "Ъ" :string) +(merge-rule "\IeC {\CYRI }" "И" :string) +(merge-rule "\IeC {\CYRIE }" "Є" :string) +(merge-rule "\IeC {\CYRII }" "І" :string) +(merge-rule "\IeC {\CYRISHRT }" "Й" :string) +(merge-rule "\IeC {\CYRJE }" "Ј" :string) +(merge-rule "\IeC {\CYRK }" "К" :string) +(merge-rule "\IeC {\CYRL }" "Л" :string) +(merge-rule "\IeC {\CYRLJE }" "Љ" :string) +(merge-rule "\IeC {\CYRM }" "М" :string) +(merge-rule "\IeC {\CYRN }" "Н" :string) +(merge-rule "\IeC {\CYRNJE }" "Њ" :string) +(merge-rule "\IeC {\CYRO }" "О" :string) +(merge-rule "\IeC {\CYRP }" "П" :string) +(merge-rule "\IeC {\CYRR }" "Р" :string) +(merge-rule "\IeC {\CYRS }" "С" :string) +(merge-rule "\IeC {\CYRSFTSN }" "Ь" :string) +(merge-rule "\IeC {\CYRSH }" "Ш" :string) +(merge-rule "\IeC {\CYRSHCH }" "Щ" :string) +(merge-rule "\IeC {\CYRT }" "Т" :string) +(merge-rule "\IeC {\CYRTSHE }" "Ћ" :string) +(merge-rule "\IeC {\CYRU }" "У" :string) +(merge-rule "\IeC {\CYRUSHRT }" "Ў" :string) +(merge-rule "\IeC {\CYRV }" "В" :string) +(merge-rule "\IeC {\CYRYA }" "Я" :string) +(merge-rule "\IeC {\CYRYI }" "Ї" :string) +(merge-rule "\IeC {\CYRYO }" "Ё" :string) +(merge-rule "\IeC {\CYRYU }" "Ю" :string) +(merge-rule "\IeC {\CYRZ }" "З" :string) +(merge-rule "\IeC {\CYRZH }" "Ж" :string) +(merge-rule "\IeC {\cyra }" "а" :string) +(merge-rule "\IeC {\cyrb }" "б" :string) +(merge-rule "\IeC {\cyrc }" "ц" :string) +(merge-rule "\IeC {\cyrch }" "ч" :string) +(merge-rule "\IeC {\cyrd }" "д" :string) +(merge-rule "\IeC {\cyrdje }" "ђ" :string) +(merge-rule "\IeC {\cyrdze }" "ѕ" :string) +(merge-rule "\IeC {\cyrdzhe }" "џ" :string) +(merge-rule "\IeC {\cyre }" "е" :string) +(merge-rule "\IeC {\cyrerev }" "э" :string) +(merge-rule "\IeC {\cyrery }" "ы" :string) +(merge-rule "\IeC {\cyrf }" "ф" :string) +(merge-rule "\IeC {\cyrg }" "г" :string) +(merge-rule "\IeC {\cyrgup }" "ґ" :string) +(merge-rule "\IeC {\cyrh }" "х" :string) +(merge-rule "\IeC {\cyrhrdsn }" "ъ" :string) +(merge-rule "\IeC {\cyri }" "и" :string) +(merge-rule "\IeC {\cyrie }" "є" :string) +(merge-rule "\IeC {\cyrii }" "і" :string) +(merge-rule "\IeC {\cyrishrt }" "й" :string) +(merge-rule "\IeC {\cyrje }" "ј" :string) +(merge-rule "\IeC {\cyrk }" "к" :string) +(merge-rule "\IeC {\cyrl }" "л" :string) +(merge-rule "\IeC {\cyrlje }" "љ" :string) +(merge-rule "\IeC {\cyrm }" "м" :string) +(merge-rule "\IeC {\cyrn }" "н" :string) +(merge-rule "\IeC {\cyrnje }" "њ" :string) +(merge-rule "\IeC {\cyro }" "о" :string) +(merge-rule "\IeC {\cyrp }" "п" :string) +(merge-rule "\IeC {\cyrr }" "р" :string) +(merge-rule "\IeC {\cyrs }" "с" :string) +(merge-rule "\IeC {\cyrsftsn }" "ь" :string) +(merge-rule "\IeC {\cyrsh }" "ш" :string) +(merge-rule "\IeC {\cyrshch }" "щ" :string) +(merge-rule "\IeC {\cyrt }" "т" :string) +(merge-rule "\IeC {\cyrtshe }" "ћ" :string) +(merge-rule "\IeC {\cyru }" "у" :string) +(merge-rule "\IeC {\cyrushrt }" "ў" :string) +(merge-rule "\IeC {\cyrv }" "в" :string) +(merge-rule "\IeC {\cyrya }" "я" :string) +(merge-rule "\IeC {\cyryi }" "ї" :string) +(merge-rule "\IeC {\cyryo }" "ё" :string) +(merge-rule "\IeC {\cyryu }" "ю" :string) +(merge-rule "\IeC {\cyrz }" "з" :string) +(merge-rule "\IeC {\cyrzh }" "ж" :string) diff --git a/docs/_build/latex/LICRlatin2utf8.xdy b/docs/_build/latex/LICRlatin2utf8.xdy new file mode 100644 index 0000000000000000000000000000000000000000..31c80f97ce0bff10be2125d818241a829e014a4e --- /dev/null +++ b/docs/_build/latex/LICRlatin2utf8.xdy @@ -0,0 +1,239 @@ +;; style file for xindy +;; filename: LICRlatin2utf8.xdy +;; description: style file for xindy which maps back LaTeX Internal +;; Character Representation of letters (as arising in .idx index +;; file) to UTF-8 encoding for correct sorting by xindy. +;; usage: for use with the pdflatex engine, +;; *not* for use with xelatex or lualatex. +;; +;; This is based upon xindy's distributed file tex/inputenc/utf8.xdy. +;; The modifications include: +;; +;; - Updates for compatibility with current LaTeX macro encoding. +;; +;; - Systematic usage of the \IeC {...} mark-up, because mark-up in +;; tex/inputenc/utf8.xdy was using it on seemingly random basis, and +;; Sphinx coercing of xindy usability for both Latin and Cyrillic scripts +;; with pdflatex requires its systematic presence here. +;; +;; - Support for some extra letters: Ÿ, Ŋ, ŋ, Œ, œ, IJ, ij, ȷ and ẞ. +;; +;; Indeed Sphinx needs to support for pdflatex engine all Unicode letters +;; available in TeX T1 font encoding. The above letters are found in +;; that encoding but not in the Latin1, 2, 3 charsets which are those +;; covered by original tex/inputenc/utf8.xdy. +;; +;; - There is a problem that ȷ is not supported out-of-the box by LaTeX +;; with inputenc, one must add explicitely +;; \DeclareUnicodeCharacter{0237}{\j} +;; to preamble of LaTeX document. However this character is not supported +;; by the TeX "times" font used by default by Sphinx for pdflatex engine. +;; +;; **Update**: since LaTeX 2018/12/01, the \j as well as \SS, \k{} and +;; \.{} need no extra user declaration anymore. +;; +;; - ẞ needs \DeclareUnicodeCharacter{1E9E}{\SS} (but ß needs no extra set-up). +;; +;; - U+02DB (˛) and U+02D9 (˙) are also not supported by inputenc +;; out of the box and require +;; \DeclareUnicodeCharacter{02DB}{\k{}} +;; \DeclareUnicodeCharacter{02D9}{\.{}} +;; to be added to preamble. +;; +;; - U+0127 ħ and U+0126 Ħ are absent from TeX T1+TS1 font encodings. +;; +;; - Characters Ŋ and ŋ are not supported by TeX font "times" used by +;; default by Sphinx for pdflatex engine but they are supported by +;; some TeX fonts, in particular by the default LaTeX font for T1 +;; encoding. +;; +;; - " and ~ must be escaped as ~" and resp. ~~ in xindy merge rules. +;; +;; Contributed by the Sphinx team, July 2018. +;; +;; See sphinx.xdy for superior figures, as they are escaped by LaTeX writer. +(merge-rule "\IeC {\textonesuperior }" "¹" :string) +(merge-rule "\IeC {\texttwosuperior }" "²" :string) +(merge-rule "\IeC {\textthreesuperior }" "³" :string) +(merge-rule "\IeC {\'a}" "á" :string) +(merge-rule "\IeC {\'A}" "Á" :string) +(merge-rule "\IeC {\`a}" "à" :string) +(merge-rule "\IeC {\`A}" "À" :string) +(merge-rule "\IeC {\^a}" "â" :string) +(merge-rule "\IeC {\^A}" "Â" :string) +(merge-rule "\IeC {\~"a}" "ä" :string) +(merge-rule "\IeC {\~"A}" "Ä" :string) +(merge-rule "\IeC {\~~a}" "ã" :string) +(merge-rule "\IeC {\~~A}" "Ã" :string) +(merge-rule "\IeC {\c c}" "ç" :string) +(merge-rule "\IeC {\c C}" "Ç" :string) +(merge-rule "\IeC {\'c}" "ć" :string) +(merge-rule "\IeC {\'C}" "Ć" :string) +(merge-rule "\IeC {\^c}" "ĉ" :string) +(merge-rule "\IeC {\^C}" "Ĉ" :string) +(merge-rule "\IeC {\.c}" "ċ" :string) +(merge-rule "\IeC {\.C}" "Ċ" :string) +(merge-rule "\IeC {\c s}" "ş" :string) +(merge-rule "\IeC {\c S}" "Ş" :string) +(merge-rule "\IeC {\c t}" "ţ" :string) +(merge-rule "\IeC {\c T}" "Ţ" :string) +(merge-rule "\IeC {\-}" "" :string); soft hyphen +(merge-rule "\IeC {\textdiv }" "÷" :string) +(merge-rule "\IeC {\'e}" "é" :string) +(merge-rule "\IeC {\'E}" "É" :string) +(merge-rule "\IeC {\`e}" "è" :string) +(merge-rule "\IeC {\`E}" "È" :string) +(merge-rule "\IeC {\^e}" "ê" :string) +(merge-rule "\IeC {\^E}" "Ê" :string) +(merge-rule "\IeC {\~"e}" "ë" :string) +(merge-rule "\IeC {\~"E}" "Ë" :string) +(merge-rule "\IeC {\^g}" "ĝ" :string) +(merge-rule "\IeC {\^G}" "Ĝ" :string) +(merge-rule "\IeC {\.g}" "ġ" :string) +(merge-rule "\IeC {\.G}" "Ġ" :string) +(merge-rule "\IeC {\^h}" "ĥ" :string) +(merge-rule "\IeC {\^H}" "Ĥ" :string) +(merge-rule "\IeC {\H o}" "ő" :string) +(merge-rule "\IeC {\H O}" "Ő" :string) +(merge-rule "\IeC {\textacutedbl }" "˝" :string) +(merge-rule "\IeC {\H u}" "ű" :string) +(merge-rule "\IeC {\H U}" "Ű" :string) +(merge-rule "\IeC {\ae }" "æ" :string) +(merge-rule "\IeC {\AE }" "Æ" :string) +(merge-rule "\IeC {\textcopyright }" "©" :string) +(merge-rule "\IeC {\c \ }" "¸" :string) +(merge-rule "\IeC {\dh }" "ð" :string) +(merge-rule "\IeC {\DH }" "Ð" :string) +(merge-rule "\IeC {\dj }" "đ" :string) +(merge-rule "\IeC {\DJ }" "Đ" :string) +(merge-rule "\IeC {\guillemotleft }" "«" :string) +(merge-rule "\IeC {\guillemotright }" "»" :string) +(merge-rule "\IeC {\'\i }" "í" :string) +(merge-rule "\IeC {\`\i }" "ì" :string) +(merge-rule "\IeC {\^\i }" "î" :string) +(merge-rule "\IeC {\~"\i }" "ï" :string) +(merge-rule "\IeC {\i }" "ı" :string) +(merge-rule "\IeC {\^\j }" "ĵ" :string) +(merge-rule "\IeC {\k {}}" "˛" :string) +(merge-rule "\IeC {\l }" "ł" :string) +(merge-rule "\IeC {\L }" "Ł" :string) +(merge-rule "\IeC {\nobreakspace }" " " :string) +(merge-rule "\IeC {\o }" "ø" :string) +(merge-rule "\IeC {\O }" "Ø" :string) +(merge-rule "\IeC {\textsterling }" "£" :string) +(merge-rule "\IeC {\textparagraph }" "¶" :string) +(merge-rule "\IeC {\ss }" "ß" :string) +(merge-rule "\IeC {\textsection }" "§" :string) +(merge-rule "\IeC {\textbrokenbar }" "¦" :string) +(merge-rule "\IeC {\textcent }" "¢" :string) +(merge-rule "\IeC {\textcurrency }" "¤" :string) +(merge-rule "\IeC {\textdegree }" "°" :string) +(merge-rule "\IeC {\textexclamdown }" "¡" :string) +(merge-rule "\IeC {\texthbar }" "ħ" :string) +(merge-rule "\IeC {\textHbar }" "Ħ" :string) +(merge-rule "\IeC {\textonehalf }" "½" :string) +(merge-rule "\IeC {\textonequarter }" "¼" :string) +(merge-rule "\IeC {\textordfeminine }" "ª" :string) +(merge-rule "\IeC {\textordmasculine }" "º" :string) +(merge-rule "\IeC {\textperiodcentered }" "·" :string) +(merge-rule "\IeC {\textquestiondown }" "¿" :string) +(merge-rule "\IeC {\textregistered }" "®" :string) +(merge-rule "\IeC {\textthreequarters }" "¾" :string) +(merge-rule "\IeC {\textyen }" "¥" :string) +(merge-rule "\IeC {\th }" "þ" :string) +(merge-rule "\IeC {\TH }" "Þ" :string) +(merge-rule "\IeC {\'I}" "Í" :string) +(merge-rule "\IeC {\`I}" "Ì" :string) +(merge-rule "\IeC {\^I}" "Î" :string) +(merge-rule "\IeC {\~"I}" "Ï" :string) +(merge-rule "\IeC {\.I}" "İ" :string) +(merge-rule "\IeC {\^J}" "Ĵ" :string) +(merge-rule "\IeC {\k a}" "ą" :string) +(merge-rule "\IeC {\k A}" "Ą" :string) +(merge-rule "\IeC {\k e}" "ę" :string) +(merge-rule "\IeC {\k E}" "Ę" :string) +(merge-rule "\IeC {\'l}" "ĺ" :string) +(merge-rule "\IeC {\'L}" "Ĺ" :string) +(merge-rule "\IeC {\textlnot }" "¬" :string) +(merge-rule "\IeC {\textmu }" "µ" :string) +(merge-rule "\IeC {\'n}" "ń" :string) +(merge-rule "\IeC {\'N}" "Ń" :string) +(merge-rule "\IeC {\~~n}" "ñ" :string) +(merge-rule "\IeC {\~~N}" "Ñ" :string) +(merge-rule "\IeC {\'o}" "ó" :string) +(merge-rule "\IeC {\'O}" "Ó" :string) +(merge-rule "\IeC {\`o}" "ò" :string) +(merge-rule "\IeC {\`O}" "Ò" :string) +(merge-rule "\IeC {\^o}" "ô" :string) +(merge-rule "\IeC {\^O}" "Ô" :string) +(merge-rule "\IeC {\~"o}" "ö" :string) +(merge-rule "\IeC {\~"O}" "Ö" :string) +(merge-rule "\IeC {\~~o}" "õ" :string) +(merge-rule "\IeC {\~~O}" "Õ" :string) +(merge-rule "\IeC {\textpm }" "±" :string) +(merge-rule "\IeC {\r a}" "å" :string) +(merge-rule "\IeC {\r A}" "Å" :string) +(merge-rule "\IeC {\'r}" "ŕ" :string) +(merge-rule "\IeC {\'R}" "Ŕ" :string) +(merge-rule "\IeC {\r u}" "ů" :string) +(merge-rule "\IeC {\r U}" "Ů" :string) +(merge-rule "\IeC {\'s}" "ś" :string) +(merge-rule "\IeC {\'S}" "Ś" :string) +(merge-rule "\IeC {\^s}" "ŝ" :string) +(merge-rule "\IeC {\^S}" "Ŝ" :string) +(merge-rule "\IeC {\textasciidieresis }" "¨" :string) +(merge-rule "\IeC {\textasciimacron }" "¯" :string) +(merge-rule "\IeC {\.{}}" "˙" :string) +(merge-rule "\IeC {\textasciiacute }" "´" :string) +(merge-rule "\IeC {\texttimes }" "×" :string) +(merge-rule "\IeC {\u a}" "ă" :string) +(merge-rule "\IeC {\u A}" "Ă" :string) +(merge-rule "\IeC {\u g}" "ğ" :string) +(merge-rule "\IeC {\u G}" "Ğ" :string) +(merge-rule "\IeC {\textasciibreve }" "˘" :string) +(merge-rule "\IeC {\'u}" "ú" :string) +(merge-rule "\IeC {\'U}" "Ú" :string) +(merge-rule "\IeC {\`u}" "ù" :string) +(merge-rule "\IeC {\`U}" "Ù" :string) +(merge-rule "\IeC {\^u}" "û" :string) +(merge-rule "\IeC {\^U}" "Û" :string) +(merge-rule "\IeC {\~"u}" "ü" :string) +(merge-rule "\IeC {\~"U}" "Ü" :string) +(merge-rule "\IeC {\u u}" "ŭ" :string) +(merge-rule "\IeC {\u U}" "Ŭ" :string) +(merge-rule "\IeC {\v c}" "č" :string) +(merge-rule "\IeC {\v C}" "Č" :string) +(merge-rule "\IeC {\v d}" "ď" :string) +(merge-rule "\IeC {\v D}" "Ď" :string) +(merge-rule "\IeC {\v e}" "ě" :string) +(merge-rule "\IeC {\v E}" "Ě" :string) +(merge-rule "\IeC {\v l}" "ľ" :string) +(merge-rule "\IeC {\v L}" "Ľ" :string) +(merge-rule "\IeC {\v n}" "ň" :string) +(merge-rule "\IeC {\v N}" "Ň" :string) +(merge-rule "\IeC {\v r}" "ř" :string) +(merge-rule "\IeC {\v R}" "Ř" :string) +(merge-rule "\IeC {\v s}" "š" :string) +(merge-rule "\IeC {\v S}" "Š" :string) +(merge-rule "\IeC {\textasciicaron }" "ˇ" :string) +(merge-rule "\IeC {\v t}" "ť" :string) +(merge-rule "\IeC {\v T}" "Ť" :string) +(merge-rule "\IeC {\v z}" "ž" :string) +(merge-rule "\IeC {\v Z}" "Ž" :string) +(merge-rule "\IeC {\'y}" "ý" :string) +(merge-rule "\IeC {\'Y}" "Ý" :string) +(merge-rule "\IeC {\~"y}" "ÿ" :string) +(merge-rule "\IeC {\'z}" "ź" :string) +(merge-rule "\IeC {\'Z}" "Ź" :string) +(merge-rule "\IeC {\.z}" "ż" :string) +(merge-rule "\IeC {\.Z}" "Ż" :string) +;; letters not in Latin1, 2, 3 but available in TeX T1 font encoding +(merge-rule "\IeC {\~"Y}" "Ÿ" :string) +(merge-rule "\IeC {\NG }" "Ŋ" :string) +(merge-rule "\IeC {\ng }" "ŋ" :string) +(merge-rule "\IeC {\OE }" "Œ" :string) +(merge-rule "\IeC {\oe }" "œ" :string) +(merge-rule "\IeC {\IJ }" "IJ" :string) +(merge-rule "\IeC {\ij }" "ij" :string) +(merge-rule "\IeC {\j }" "ȷ" :string) +(merge-rule "\IeC {\SS }" "ẞ" :string) diff --git a/docs/_build/latex/LatinRules.xdy b/docs/_build/latex/LatinRules.xdy new file mode 100644 index 0000000000000000000000000000000000000000..99f14a2ee856d0ec3078dd78700f43524f4a702c --- /dev/null +++ b/docs/_build/latex/LatinRules.xdy @@ -0,0 +1,607 @@ +;; style file for xindy +;; filename: LatinRules.xdy +;; +;; It is based upon xindy's files lang/general/utf8.xdy and +;; lang/general/utf8-lang.xdy which implement +;; "a general sorting order for Western European languages" +;; +;; The aim for Sphinx is to be able to index in a Cyrillic document +;; also terms using the Latin alphabets, inclusive of letters +;; with diacritics. To this effect the xindy rules from lang/general +;; got manually re-coded to avoid collisions with the encoding +;; done by xindy for sorting words in Cyrillic languages, which was +;; observed not to use bytes with octal encoding 0o266 or higher. +;; +;; So here we use only 0o266 or higher bytes. +;; (Ŋ, ŋ, IJ, and ij are absent from +;; lang/general/utf8.xdy and not included here) +;; Contributed by the Sphinx team, 2018. + +(define-letter-group "A" :prefixes ("�")) +(define-letter-group "B" :after "A" :prefixes ("�")) +(define-letter-group "C" :after "B" :prefixes ("�")) +(define-letter-group "D" :after "C" :prefixes ("�")) +(define-letter-group "E" :after "D" :prefixes ("�")) +(define-letter-group "F" :after "E" :prefixes ("�")) +(define-letter-group "G" :after "F" :prefixes ("�")) +(define-letter-group "H" :after "G" :prefixes ("�")) +(define-letter-group "I" :after "H" :prefixes ("�")) +(define-letter-group "J" :after "I" :prefixes ("�")) +(define-letter-group "K" :after "J" :prefixes ("�")) +(define-letter-group "L" :after "K" :prefixes ("�")) +(define-letter-group "M" :after "L" :prefixes ("�")) +(define-letter-group "N" :after "M" :prefixes ("�")) +(define-letter-group "O" :after "N" :prefixes ("�")) +(define-letter-group "P" :after "O" :prefixes ("�")) +(define-letter-group "Q" :after "P" :prefixes ("�")) +(define-letter-group "R" :after "Q" :prefixes ("�")) +(define-letter-group "S" :after "R" :prefixes ("�")) +(define-letter-group "T" :after "S" :prefixes ("�")) +(define-letter-group "U" :after "T" :prefixes ("�")) +(define-letter-group "V" :after "U" :prefixes ("�")) +(define-letter-group "W" :after "V" :prefixes ("�")) +(define-letter-group "X" :after "W" :prefixes ("�")) +(define-letter-group "Y" :after "X" :prefixes ("�")) +(define-letter-group "Z" :after "Y" :prefixes ("�")) + +(define-rule-set "sphinx-xy-alphabetize" + + :rules (("À" "�" :string) + ("Ă" "�" :string) + ("â" "�" :string) + ("Ä" "�" :string) + ("à" "�" :string) + ("Å" "�" :string) + ("Ã" "�" :string) + ("Á" "�" :string) + ("á" "�" :string) + ("ã" "�" :string) + ("Â" "�" :string) + ("ă" "�" :string) + ("å" "�" :string) + ("ą" "�" :string) + ("ä" "�" :string) + ("Ą" "�" :string) + ("æ" "��" :string) + ("Æ" "��" :string) + ("ć" "�" :string) + ("ĉ" "�" :string) + ("ç" "�" :string) + ("Č" "�" :string) + ("č" "�" :string) + ("Ĉ" "�" :string) + ("Ç" "�" :string) + ("Ć" "�" :string) + ("ď" "�" :string) + ("Đ" "�" :string) + ("Ď" "�" :string) + ("đ" "�" :string) + ("ê" "�" :string) + ("Ę" "�" :string) + ("Ě" "�" :string) + ("ë" "�" :string) + ("ě" "�" :string) + ("é" "�" :string) + ("È" "�" :string) + ("Ë" "�" :string) + ("É" "�" :string) + ("è" "�" :string) + ("Ê" "�" :string) + ("ę" "�" :string) + ("ĝ" "�" :string) + ("ğ" "�" :string) + ("Ğ" "�" :string) + ("Ĝ" "�" :string) + ("ĥ" "�" :string) + ("Ĥ" "�" :string) + ("Ï" "�" :string) + ("Í" "�" :string) + ("ï" "�" :string) + ("Î" "�" :string) + ("î" "�" :string) + ("ı" "�" :string) + ("İ" "�" :string) + ("í" "�" :string) + ("Ì" "�" :string) + ("ì" "�" :string) + ("Ĵ" "�" :string) + ("ĵ" "�" :string) + ("ł" "�" :string) + ("Ł" "�" :string) + ("ľ" "�" :string) + ("Ľ" "�" :string) + ("ń" "�" :string) + ("Ń" "�" :string) + ("ñ" "�" :string) + ("ň" "�" :string) + ("Ñ" "�" :string) + ("Ň" "�" :string) + ("Õ" "�" :string) + ("Ő" "�" :string) + ("ó" "�" :string) + ("ö" "�" :string) + ("ô" "�" :string) + ("ő" "�" :string) + ("Ø" "�" :string) + ("Ö" "�" :string) + ("õ" "�" :string) + ("Ô" "�" :string) + ("ø" "�" :string) + ("Ó" "�" :string) + ("Ò" "�" :string) + ("ò" "�" :string) + ("œ" "ĺ" :string) + ("Œ" "ĺ" :string) + ("Ř" "�" :string) + ("ř" "�" :string) + ("Ŕ" "�" :string) + ("ŕ" "�" :string) + ("ŝ" "�" :string) + ("Ś" "�" :string) + ("ș" "�" :string) + ("ş" "�" :string) + ("Ŝ" "�" :string) + ("ś" "�" :string) + ("Ș" "�" :string) + ("š" "�" :string) + ("Ş" "�" :string) + ("Š" "�" :string) + ("ß" "��" :string) + ("Ț" "�" :string) + ("Ť" "�" :string) + ("ț" "�" :string) + ("ť" "�" :string) + ("û" "�" :string) + ("ŭ" "�" :string) + ("ů" "�" :string) + ("ű" "�" :string) + ("ù" "�" :string) + ("Ŭ" "�" :string) + ("Ù" "�" :string) + ("Ű" "�" :string) + ("Ü" "�" :string) + ("Ů" "�" :string) + ("ú" "�" :string) + ("Ú" "�" :string) + ("Û" "�" :string) + ("ü" "�" :string) + ("ÿ" "�" :string) + ("Ý" "�" :string) + ("Ÿ" "�" :string) + ("ý" "�" :string) + ("Ż" "�" :string) + ("Ž" "�" :string) + ("Ź" "�" :string) + ("ž" "�" :string) + ("ż" "�" :string) + ("ź" "�" :string) + ("a" "�" :string) + ("A" "�" :string) + ("b" "�" :string) + ("B" "�" :string) + ("c" "�" :string) + ("C" "�" :string) + ("d" "�" :string) + ("D" "�" :string) + ("e" "�" :string) + ("E" "�" :string) + ("F" "�" :string) + ("f" "�" :string) + ("G" "�" :string) + ("g" "�" :string) + ("H" "�" :string) + ("h" "�" :string) + ("i" "�" :string) + ("I" "�" :string) + ("J" "�" :string) + ("j" "�" :string) + ("K" "�" :string) + ("k" "�" :string) + ("L" "�" :string) + ("l" "�" :string) + ("M" "�" :string) + ("m" "�" :string) + ("n" "�" :string) + ("N" "�" :string) + ("O" "�" :string) + ("o" "�" :string) + ("p" "�" :string) + ("P" "�" :string) + ("Q" "�" :string) + ("q" "�" :string) + ("r" "�" :string) + ("R" "�" :string) + ("S" "�" :string) + ("s" "�" :string) + ("t" "�" :string) + ("T" "�" :string) + ("u" "�" :string) + ("U" "�" :string) + ("v" "�" :string) + ("V" "�" :string) + ("W" "�" :string) + ("w" "�" :string) + ("x" "�" :string) + ("X" "�" :string) + ("Y" "�" :string) + ("y" "�" :string) + ("z" "�" :string) + ("Z" "�" :string) + )) + +(define-rule-set "sphinx-xy-resolve-diacritics" + + :rules (("Ĥ" "�" :string) + ("ó" "�" :string) + ("ľ" "�" :string) + ("Ř" "�" :string) + ("ĝ" "�" :string) + ("ď" "�" :string) + ("Ě" "�" :string) + ("ĥ" "�" :string) + ("Č" "�" :string) + ("Ĵ" "�" :string) + ("ě" "�" :string) + ("ž" "�" :string) + ("Ď" "�" :string) + ("ř" "�" :string) + ("Ž" "�" :string) + ("ı" "�" :string) + ("Ť" "�" :string) + ("á" "�" :string) + ("č" "�" :string) + ("Á" "�" :string) + ("ň" "�" :string) + ("Š" "�" :string) + ("Ň" "�" :string) + ("ĵ" "�" :string) + ("ť" "�" :string) + ("Ó" "�" :string) + ("ý" "�" :string) + ("Ĝ" "�" :string) + ("Ú" "�" :string) + ("Ľ" "�" :string) + ("š" "�" :string) + ("Ý" "�" :string) + ("ú" "�" :string) + ("Ś" "�" :string) + ("ć" "�" :string) + ("Ł" "�" :string) + ("ł" "�" :string) + ("ń" "�" :string) + ("À" "�" :string) + ("Ź" "�" :string) + ("à" "�" :string) + ("Ń" "�" :string) + ("Đ" "�" :string) + ("ÿ" "�" :string) + ("ś" "�" :string) + ("Ğ" "�" :string) + ("ğ" "�" :string) + ("Ù" "�" :string) + ("İ" "�" :string) + ("đ" "�" :string) + ("ù" "�" :string) + ("Ț" "�" :string) + ("é" "�" :string) + ("ŕ" "�" :string) + ("Ć" "�" :string) + ("ț" "�" :string) + ("ò" "�" :string) + ("ź" "�" :string) + ("Ò" "�" :string) + ("Ÿ" "�" :string) + ("Ŕ" "�" :string) + ("É" "�" :string) + ("ĉ" "�" :string) + ("ô" "�" :string) + ("Í" "�" :string) + ("ŝ" "�" :string) + ("Ż" "�" :string) + ("Ă" "�" :string) + ("Ŝ" "�" :string) + ("ñ" "�" :string) + ("ŭ" "�" :string) + ("í" "�" :string) + ("È" "�" :string) + ("Ô" "�" :string) + ("Ŭ" "�" :string) + ("ż" "�" :string) + ("Ñ" "�" :string) + ("è" "�" :string) + ("Ĉ" "�" :string) + ("ă" "�" :string) + ("â" "�" :string) + ("û" "�" :string) + ("ê" "�" :string) + ("Õ" "�" :string) + ("õ" "�" :string) + ("ș" "�" :string) + ("ç" "�" :string) + ("Â" "�" :string) + ("Ê" "�" :string) + ("Û" "�" :string) + ("Ç" "�" :string) + ("ì" "�" :string) + ("Ì" "�" :string) + ("Ș" "�" :string) + ("ö" "�" :string) + ("Ö" "�" :string) + ("ş" "�" :string) + ("ů" "�" :string) + ("ë" "�" :string) + ("ã" "�" :string) + ("î" "�" :string) + ("Î" "�" :string) + ("Ã" "�" :string) + ("Ş" "�" :string) + ("Ů" "�" :string) + ("Ë" "�" :string) + ("ï" "�" :string) + ("Ő" "�" :string) + ("Ï" "�" :string) + ("Ę" "�" :string) + ("ő" "�" :string) + ("Ü" "�" :string) + ("Å" "�" :string) + ("ü" "�" :string) + ("ę" "�" :string) + ("å" "�" :string) + ("Ä" "�" :string) + ("ű" "�" :string) + ("Ø" "�" :string) + ("ø" "�" :string) + ("Ű" "�" :string) + ("ä" "�" :string) + ("Ą" "�" :string) + ("ą" "�" :string) + ("œ" "�" :string) + ("ß" "�" :string) + ("Æ" "�" :string) + ("Œ" "�" :string) + ("æ" "�" :string) + ("e" "�" :string) + ("t" "�" :string) + ("L" "�" :string) + ("Y" "�" :string) + ("J" "�" :string) + ("a" "�" :string) + ("p" "�" :string) + ("u" "�" :string) + ("j" "�" :string) + ("b" "�" :string) + ("G" "�" :string) + ("U" "�" :string) + ("F" "�" :string) + ("H" "�" :string) + ("i" "�" :string) + ("z" "�" :string) + ("c" "�" :string) + ("l" "�" :string) + ("A" "�" :string) + ("Q" "�" :string) + ("w" "�" :string) + ("D" "�" :string) + ("R" "�" :string) + ("d" "�" :string) + ("s" "�" :string) + ("r" "�" :string) + ("k" "�" :string) + ("v" "�" :string) + ("m" "�" :string) + ("P" "�" :string) + ("y" "�" :string) + ("K" "�" :string) + ("q" "�" :string) + ("S" "�" :string) + ("I" "�" :string) + ("C" "�" :string) + ("M" "�" :string) + ("Z" "�" :string) + ("T" "�" :string) + ("W" "�" :string) + ("B" "�" :string) + ("h" "�" :string) + ("x" "�" :string) + ("X" "�" :string) + ("f" "�" :string) + ("E" "�" :string) + ("V" "�" :string) + ("N" "�" :string) + ("O" "�" :string) + ("o" "�" :string) + ("g" "�" :string) + ("n" "�" :string) + )) + +(define-rule-set "sphinx-xy-resolve-case" + + :rules (("Ú" "8" :string) + ("Ÿ" "8" :string) + ("Ç" "8" :string) + ("Ĉ" "8" :string) + ("Ŕ" "8" :string) + ("Ľ" "8" :string) + ("Ů" "8" :string) + ("Ý" "8" :string) + ("É" "8" :string) + ("Ë" "8" :string) + ("Ș" "8" :string) + ("Ì" "8" :string) + ("Ê" "8" :string) + ("Ň" "8" :string) + ("Ą" "8" :string) + ("Š" "8" :string) + ("Û" "8" :string) + ("Ş" "8" :string) + ("Ć" "8" :string) + ("Ò" "8" :string) + ("Ĝ" "8" :string) + ("Ñ" "8" :string) + ("Ó" "8" :string) + ("Î" "8" :string) + ("Á" "8" :string) + ("Ã" "8" :string) + ("Ț" "8" :string) + ("Å" "8" :string) + ("Ğ" "8" :string) + ("Ü" "8" :string) + ("È" "8" :string) + ("Ô" "8" :string) + ("İ" "8" :string) + ("Ű" "8" :string) + ("Ù" "8" :string) + ("Ŭ" "8" :string) + ("Â" "8" :string) + ("Ť" "8" :string) + ("Ń" "8" :string) + ("Ď" "8" :string) + ("Ź" "8" :string) + ("Ž" "8" :string) + ("Đ" "8" :string) + ("Ŝ" "8" :string) + ("Č" "8" :string) + ("Ĵ" "8" :string) + ("Ö" "8" :string) + ("Ø" "8" :string) + ("Ż" "8" :string) + ("Ł" "8" :string) + ("Ă" "8" :string) + ("Ě" "8" :string) + ("Ő" "8" :string) + ("Õ" "8" :string) + ("Ę" "8" :string) + ("Ï" "8" :string) + ("À" "8" :string) + ("Ĥ" "8" :string) + ("Ä" "8" :string) + ("Ś" "8" :string) + ("Ř" "8" :string) + ("Í" "8" :string) + ("Œ" "89" :string) + ("Æ" "89" :string) + ("ì" "9" :string) + ("è" "9" :string) + ("ą" "9" :string) + ("š" "9" :string) + ("ú" "9" :string) + ("å" "9" :string) + ("ă" "9" :string) + ("ę" "9" :string) + ("ü" "9" :string) + ("ź" "9" :string) + ("ò" "9" :string) + ("ť" "9" :string) + ("ț" "9" :string) + ("ĵ" "9" :string) + ("ŕ" "9" :string) + ("ż" "9" :string) + ("ä" "9" :string) + ("ý" "9" :string) + ("ù" "9" :string) + ("á" "9" :string) + ("é" "9" :string) + ("č" "9" :string) + ("ň" "9" :string) + ("ś" "9" :string) + ("ø" "9" :string) + ("í" "9" :string) + ("đ" "9" :string) + ("ı" "9" :string) + ("ğ" "9" :string) + ("î" "9" :string) + ("ã" "9" :string) + ("à" "9" :string) + ("ř" "9" :string) + ("ő" "9" :string) + ("ů" "9" :string) + ("ș" "9" :string) + ("ÿ" "9" :string) + ("ë" "9" :string) + ("ŭ" "9" :string) + ("ç" "9" :string) + ("ű" "9" :string) + ("ñ" "9" :string) + ("õ" "9" :string) + ("ě" "9" :string) + ("ş" "9" :string) + ("ž" "9" :string) + ("ĝ" "9" :string) + ("ŝ" "9" :string) + ("ń" "9" :string) + ("û" "9" :string) + ("ł" "9" :string) + ("ď" "9" :string) + ("ĥ" "9" :string) + ("ê" "9" :string) + ("ô" "9" :string) + ("ĉ" "9" :string) + ("â" "9" :string) + ("ć" "9" :string) + ("ï" "9" :string) + ("ö" "9" :string) + ("ľ" "9" :string) + ("ó" "9" :string) + ("æ" "99" :string) + ("ß" "99" :string) + ("œ" "99" :string) + ("N" "8" :string) + ("V" "8" :string) + ("O" "8" :string) + ("X" "8" :string) + ("E" "8" :string) + ("P" "8" :string) + ("K" "8" :string) + ("T" "8" :string) + ("Z" "8" :string) + ("M" "8" :string) + ("C" "8" :string) + ("I" "8" :string) + ("S" "8" :string) + ("B" "8" :string) + ("W" "8" :string) + ("D" "8" :string) + ("R" "8" :string) + ("H" "8" :string) + ("F" "8" :string) + ("Q" "8" :string) + ("A" "8" :string) + ("G" "8" :string) + ("U" "8" :string) + ("J" "8" :string) + ("Y" "8" :string) + ("L" "8" :string) + ("o" "9" :string) + ("n" "9" :string) + ("g" "9" :string) + ("x" "9" :string) + ("f" "9" :string) + ("y" "9" :string) + ("q" "9" :string) + ("h" "9" :string) + ("w" "9" :string) + ("s" "9" :string) + ("d" "9" :string) + ("v" "9" :string) + ("k" "9" :string) + ("r" "9" :string) + ("m" "9" :string) + ("z" "9" :string) + ("c" "9" :string) + ("i" "9" :string) + ("l" "9" :string) + ("b" "9" :string) + ("j" "9" :string) + ("a" "9" :string) + ("p" "9" :string) + ("u" "9" :string) + ("t" "9" :string) + ("e" "9" :string) + )) + +(use-rule-set :run 0 + :rule-set ("sphinx-xy-alphabetize")) +(use-rule-set :run 1 + :rule-set ("sphinx-xy-resolve-diacritics")) +(use-rule-set :run 2 + :rule-set ("sphinx-xy-resolve-case")) diff --git a/docs/_build/latex/Makefile b/docs/_build/latex/Makefile index d748006ccff3a3d251428d6e3398c6816f6511d2..c561680ad7527ea0d93e7a2f38501733513802fa 100644 --- a/docs/_build/latex/Makefile +++ b/docs/_build/latex/Makefile @@ -3,33 +3,42 @@ ALLDOCS = $(basename $(wildcard *.tex)) ALLPDF = $(addsuffix .pdf,$(ALLDOCS)) ALLDVI = $(addsuffix .dvi,$(ALLDOCS)) +ALLXDV = +ALLPS = $(addsuffix .ps,$(ALLDOCS)) +ALLIMGS = $(wildcard *.png *.gif *.jpg *.jpeg) # Prefix for archive names -ARCHIVEPRREFIX = -# Additional LaTeX options -LATEXOPTS = -# format: pdf or dvi +ARCHIVEPREFIX = +# Additional LaTeX options (passed via variables in latexmkrc/latexmkjarc file) +export LATEXOPTS = +# Additional latexmk options +LATEXMKOPTS = +# format: pdf or dvi (used only by archive targets) FMT = pdf -LATEX = latex -PDFLATEX = pdflatex -MAKEINDEX = makeindex +LATEX = latexmk -dvi +PDFLATEX = latexmk -pdf -dvi- -ps- + + +%.png %.gif %.jpg %.jpeg: FORCE_MAKE + extractbb '$@' + +%.dvi: %.tex FORCE_MAKE + $(LATEX) $(LATEXMKOPTS) '$<' + +%.ps: %.dvi + dvips '$<' + +%.pdf: %.tex FORCE_MAKE + $(PDFLATEX) $(LATEXMKOPTS) '$<' all: $(ALLPDF) -all-pdf: $(ALLPDF) + all-dvi: $(ALLDVI) -all-ps: all-dvi - for f in *.dvi; do dvips $$f; done - -all-pdf-ja: - for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - -for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - for f in *.dvi; do dvipdfmx $$f; done + +all-ps: $(ALLPS) + +all-pdf: $(ALLPDF) zip: all-$(FMT) mkdir $(ARCHIVEPREFIX)docs-$(FMT) @@ -52,27 +61,8 @@ bz2: tar xz: tar xz -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar -# The number of LaTeX runs is quite conservative, but I don't expect it -# to get run often, so the little extra time won't hurt. -%.dvi: %.tex - $(LATEX) $(LATEXOPTS) '$<' - $(LATEX) $(LATEXOPTS) '$<' - $(LATEX) $(LATEXOPTS) '$<' - -$(MAKEINDEX) -s python.ist '$(basename $<).idx' - $(LATEX) $(LATEXOPTS) '$<' - $(LATEX) $(LATEXOPTS) '$<' - -%.pdf: %.tex - $(PDFLATEX) $(LATEXOPTS) '$<' - $(PDFLATEX) $(LATEXOPTS) '$<' - $(PDFLATEX) $(LATEXOPTS) '$<' - -$(MAKEINDEX) -s python.ist '$(basename $<).idx' - $(PDFLATEX) $(LATEXOPTS) '$<' - $(PDFLATEX) $(LATEXOPTS) '$<' - clean: - rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI) + rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI) $(ALLXDV) *.fls *.fdb_latexmk .PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz -.PHONY: all-pdf-ja - +.PHONY: FORCE_MAKE \ No newline at end of file diff --git a/docs/_build/latex/MindstormsEV3Toolbox.aux b/docs/_build/latex/MindstormsEV3Toolbox.aux index a0c16aa6b05344ad100cde5917ecc535f9ab607b..e1b5461918523593796c371547421beaad407a8b 100644 --- a/docs/_build/latex/MindstormsEV3Toolbox.aux +++ b/docs/_build/latex/MindstormsEV3Toolbox.aux @@ -16,172 +16,130 @@ \gdef\HyperFirstAtBeginDocument#1{#1} \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} -\select@language{english} -\@writefile{toc}{\select@language{english}} -\@writefile{lof}{\select@language{english}} -\@writefile{lot}{\select@language{english}} +\babel@aux{english}{} \newlabel{index::doc}{{}{1}{}{section*.2}{}} \@writefile{toc}{\contentsline {chapter}{\numberline {1}Contents}{3}{chapter.1}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{loliteral-block}{\addvspace {10\p@ }} -\newlabel{index:our-repository}{{1}{3}{Contents}{chapter.1}{}} \newlabel{index:contents}{{1}{3}{Contents}{chapter.1}{}} -\newlabel{index:matlab-toolbox-for-controlling-lego-mindstorms-ev3}{{1}{3}{Contents}{chapter.1}{}} \newlabel{EV3:module-source}{{1}{3}{Contents}{section*.3}{}} \@writefile{toc}{\contentsline {section}{\numberline {1.1}EV3}{3}{section.1.1}} \newlabel{EV3:ev3}{{1.1}{3}{EV3}{section.1.1}{}} \newlabel{EV3::doc}{{1.1}{3}{EV3}{section.1.1}{}} \newlabel{EV3:source.EV3}{{1.1}{3}{EV3}{section*.4}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{3}{paragraph*.5}} -\newlabel{EV3:source.EV3.motorA}{{1.1}{3}{Notes}{section*.6}{}} -\newlabel{EV3:source.EV3.motorB}{{1.1}{3}{Notes}{section*.7}{}} -\newlabel{EV3:source.EV3.motorC}{{1.1}{3}{Notes}{section*.8}{}} -\newlabel{EV3:source.EV3.motorD}{{1.1}{4}{Notes}{section*.9}{}} -\newlabel{EV3:source.EV3.sensor1}{{1.1}{4}{Notes}{section*.10}{}} -\newlabel{EV3:source.EV3.sensor2}{{1.1}{4}{Notes}{section*.11}{}} -\newlabel{EV3:source.EV3.sensor3}{{1.1}{4}{Notes}{section*.12}{}} -\newlabel{EV3:source.EV3.sensor4}{{1.1}{4}{Notes}{section*.13}{}} -\newlabel{EV3:source.EV3.debug}{{1.1}{4}{Notes}{section*.14}{}} -\newlabel{EV3:source.EV3.batteryMode}{{1.1}{4}{Notes}{section*.15}{}} -\newlabel{EV3:source.EV3.batteryValue}{{1.1}{4}{Notes}{section*.16}{}} -\newlabel{EV3:source.EV3.isConnected}{{1.1}{4}{Notes}{section*.17}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{4}{paragraph*.18}} -\newlabel{EV3:source.EV3.beep}{{1.1}{4}{Example}{section*.19}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{4}{paragraph*.20}} -\@writefile{toc}{\contentsline {paragraph}{Example}{4}{paragraph*.21}} -\newlabel{EV3:source.EV3.connect}{{1.1}{4}{Example}{section*.22}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{5}{paragraph*.23}} -\newlabel{EV3:source.EV3.disconnect}{{1.1}{5}{Example}{section*.24}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{5}{paragraph*.25}} -\@writefile{toc}{\contentsline {paragraph}{Example}{5}{paragraph*.26}} -\newlabel{EV3:source.EV3.playTone}{{1.1}{5}{Example}{section*.27}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{5}{paragraph*.28}} -\newlabel{EV3:source.EV3.setProperties}{{1.1}{5}{Example}{section*.29}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{6}{paragraph*.30}} -\newlabel{EV3:source.EV3.stopTone}{{1.1}{6}{Example}{section*.31}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{6}{paragraph*.32}} -\newlabel{EV3:source.EV3.tonePlayed}{{1.1}{6}{Example}{section*.33}{}} -\newlabel{Motor:module-source}{{1.1}{6}{EV3}{section*.34}{}} -\@writefile{toc}{\contentsline {section}{\numberline {1.2}Motor}{6}{section.1.2}} -\newlabel{Motor::doc}{{1.2}{6}{Motor}{section.1.2}{}} -\newlabel{Motor:motor}{{1.2}{6}{Motor}{section.1.2}{}} -\newlabel{Motor:source.Motor}{{1.2}{6}{Motor}{section*.35}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{7}{paragraph*.36}} -\newlabel{Motor:source.Motor.power}{{1.2}{7}{Notes}{section*.37}{}} -\newlabel{Motor:source.Motor.speedRegulation}{{1.2}{7}{Notes}{section*.38}{}} -\newlabel{Motor:source.Motor.smoothStart}{{1.2}{7}{Notes}{section*.39}{}} -\newlabel{Motor:source.Motor.smoothStop}{{1.2}{7}{Notes}{section*.40}{}} -\newlabel{Motor:source.Motor.limitValue}{{1.2}{7}{Notes}{section*.41}{}} -\newlabel{Motor:source.Motor.limitMode}{{1.2}{7}{Notes}{section*.42}{}} -\newlabel{Motor:source.Motor.brakeMode}{{1.2}{7}{Notes}{section*.43}{}} -\newlabel{Motor:source.Motor.debug}{{1.2}{7}{Notes}{section*.44}{}} -\newlabel{Motor:source.Motor.isRunning}{{1.2}{7}{Notes}{section*.45}{}} -\newlabel{Motor:source.Motor.tachoCount}{{1.2}{7}{Notes}{section*.46}{}} -\newlabel{Motor:source.Motor.currentSpeed}{{1.2}{7}{Notes}{section*.47}{}} -\newlabel{Motor:source.Motor.type}{{1.2}{7}{Notes}{section*.48}{}} -\newlabel{Motor:source.Motor.internalReset}{{1.2}{8}{Notes}{section*.49}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{8}{paragraph*.50}} -\newlabel{Motor:source.Motor.resetTachoCount}{{1.2}{8}{Notes}{section*.51}{}} -\newlabel{Motor:source.Motor.setBrake}{{1.2}{8}{Notes}{section*.52}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{8}{paragraph*.53}} -\newlabel{Motor:source.Motor.setProperties}{{1.2}{8}{Notes}{section*.54}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{9}{paragraph*.55}} -\newlabel{Motor:source.Motor.start}{{1.2}{9}{Notes}{section*.56}{}} -\newlabel{Motor:source.Motor.stop}{{1.2}{9}{Notes}{section*.57}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{9}{paragraph*.58}} -\newlabel{Motor:source.Motor.syncedStart}{{1.2}{9}{Notes}{section*.59}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{9}{paragraph*.60}} -\@writefile{toc}{\contentsline {paragraph}{Example}{9}{paragraph*.61}} -\newlabel{Motor:source.Motor.syncedStop}{{1.2}{9}{Notes}{section*.62}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{10}{paragraph*.63}} -\newlabel{Motor:source.Motor.waitFor}{{1.2}{10}{Notes}{section*.64}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{10}{paragraph*.65}} -\newlabel{Sensor:module-source}{{1.2}{10}{Motor}{section*.66}{}} -\@writefile{toc}{\contentsline {section}{\numberline {1.3}Sensor}{10}{section.1.3}} -\newlabel{Sensor:sensor}{{1.3}{10}{Sensor}{section.1.3}{}} -\newlabel{Sensor::doc}{{1.3}{10}{Sensor}{section.1.3}{}} -\newlabel{Sensor:source.Sensor}{{1.3}{10}{Sensor}{section*.67}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{10}{paragraph*.68}} -\newlabel{Sensor:source.Sensor.mode}{{1.3}{10}{Notes}{section*.69}{}} -\newlabel{Sensor:source.Sensor.debug}{{1.3}{12}{Notes}{section*.70}{}} -\newlabel{Sensor:source.Sensor.value}{{1.3}{12}{Notes}{section*.71}{}} -\newlabel{Sensor:source.Sensor.type}{{1.3}{12}{Notes}{section*.72}{}} -\newlabel{Sensor:source.Sensor.reset}{{1.3}{13}{Notes}{section*.73}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{13}{paragraph*.74}} -\newlabel{Sensor:source.Sensor.setProperties}{{1.3}{13}{Notes}{section*.75}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{13}{paragraph*.76}} -\newlabel{hid:module-source}{{1.3}{13}{Sensor}{section*.77}{}} -\@writefile{toc}{\contentsline {section}{\numberline {1.4}hidapi}{13}{section.1.4}} -\newlabel{hid:hidapi}{{1.4}{13}{hidapi}{section.1.4}{}} -\newlabel{hid::doc}{{1.4}{13}{hidapi}{section.1.4}{}} -\newlabel{hid:source.hidapi}{{1.4}{13}{hidapi}{section*.78}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{14}{paragraph*.79}} -\newlabel{hid:source.hidapi.handle}{{1.4}{14}{Notes}{section*.80}{}} -\newlabel{hid:source.hidapi.vendorID}{{1.4}{14}{Notes}{section*.81}{}} -\newlabel{hid:source.hidapi.productID}{{1.4}{14}{Notes}{section*.82}{}} -\newlabel{hid:source.hidapi.nReadBuffer}{{1.4}{14}{Notes}{section*.83}{}} -\newlabel{hid:source.hidapi.nWriteBuffer}{{1.4}{14}{Notes}{section*.84}{}} -\newlabel{hid:source.hidapi.slib}{{1.4}{14}{Notes}{section*.85}{}} -\newlabel{hid:source.hidapi.sheader}{{1.4}{14}{Notes}{section*.86}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{14}{paragraph*.87}} -\newlabel{hid:source.hidapi.close}{{1.4}{14}{Example}{section*.88}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{15}{paragraph*.89}} -\newlabel{hid:source.hidapi.enumerate}{{1.4}{15}{Example}{section*.90}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{15}{paragraph*.91}} -\newlabel{hid:source.hidapi.error}{{1.4}{15}{Example}{section*.92}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{15}{paragraph*.93}} -\newlabel{hid:source.hidapi.exit}{{1.4}{15}{Example}{section*.94}{}} -\newlabel{hid:source.hidapi.getHIDInfoString}{{1.4}{15}{Example}{section*.95}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{15}{paragraph*.96}} -\newlabel{hid:source.hidapi.getManufacturersString}{{1.4}{16}{Example}{section*.97}{}} -\newlabel{hid:source.hidapi.getProductString}{{1.4}{16}{Example}{section*.98}{}} -\newlabel{hid:source.hidapi.getSerialNumberString}{{1.4}{16}{Example}{section*.99}{}} -\newlabel{hid:source.hidapi.init}{{1.4}{16}{Example}{section*.100}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{16}{paragraph*.101}} -\newlabel{hid:source.hidapi.open}{{1.4}{16}{Example}{section*.102}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{16}{paragraph*.103}} -\newlabel{hid:source.hidapi.read}{{1.4}{16}{Example}{section*.104}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{16}{paragraph*.105}} -\newlabel{hid:source.hidapi.read_timeout}{{1.4}{16}{Example}{section*.106}{}} -\newlabel{hid:source.hidapi.setNonBlocking}{{1.4}{17}{Example}{section*.107}{}} -\newlabel{hid:source.hidapi.write}{{1.4}{17}{Example}{section*.108}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{17}{paragraph*.109}} -\newlabel{usbBrickIO:module-source}{{1.4}{17}{hidapi}{section*.110}{}} -\@writefile{toc}{\contentsline {section}{\numberline {1.5}usbBrickIO}{17}{section.1.5}} -\newlabel{usbBrickIO:usbbrickio}{{1.5}{17}{usbBrickIO}{section.1.5}{}} -\newlabel{usbBrickIO::doc}{{1.5}{17}{usbBrickIO}{section.1.5}{}} -\newlabel{usbBrickIO:source.usbBrickIO}{{1.5}{17}{usbBrickIO}{section*.111}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{17}{paragraph*.112}} -\newlabel{usbBrickIO:source.usbBrickIO.debug}{{1.5}{18}{Notes}{section*.113}{}} -\newlabel{usbBrickIO:source.usbBrickIO.vendorID}{{1.5}{18}{Notes}{section*.114}{}} -\newlabel{usbBrickIO:source.usbBrickIO.productID}{{1.5}{18}{Notes}{section*.115}{}} -\newlabel{usbBrickIO:source.usbBrickIO.nReadBuffer}{{1.5}{18}{Notes}{section*.116}{}} -\newlabel{usbBrickIO:source.usbBrickIO.nWriteBuffer}{{1.5}{18}{Notes}{section*.117}{}} -\newlabel{usbBrickIO:source.usbBrickIO.timeOut}{{1.5}{18}{Notes}{section*.118}{}} -\@writefile{toc}{\contentsline {paragraph}{Examples}{18}{paragraph*.119}} -\newlabel{usbBrickIO:source.usbBrickIO.close}{{1.5}{18}{Examples}{section*.120}{}} -\newlabel{usbBrickIO:source.usbBrickIO.open}{{1.5}{18}{Examples}{section*.121}{}} -\newlabel{usbBrickIO:source.usbBrickIO.read}{{1.5}{18}{Examples}{section*.122}{}} -\newlabel{usbBrickIO:source.usbBrickIO.setProperties}{{1.5}{18}{Examples}{section*.123}{}} -\newlabel{usbBrickIO:source.usbBrickIO.write}{{1.5}{18}{Examples}{section*.124}{}} -\newlabel{btBrickIO:module-source}{{1.5}{18}{usbBrickIO}{section*.125}{}} -\@writefile{toc}{\contentsline {section}{\numberline {1.6}btBrickIO}{18}{section.1.6}} -\newlabel{btBrickIO:btbrickio}{{1.6}{18}{btBrickIO}{section.1.6}{}} -\newlabel{btBrickIO::doc}{{1.6}{18}{btBrickIO}{section.1.6}{}} -\newlabel{btBrickIO:source.btBrickIO}{{1.6}{18}{btBrickIO}{section*.126}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{19}{paragraph*.127}} -\newlabel{btBrickIO:source.btBrickIO.debug}{{1.6}{19}{Notes}{section*.128}{}} -\newlabel{btBrickIO:source.btBrickIO.serialPort}{{1.6}{19}{Notes}{section*.129}{}} -\newlabel{btBrickIO:source.btBrickIO.deviceName}{{1.6}{19}{Notes}{section*.130}{}} -\newlabel{btBrickIO:source.btBrickIO.channel}{{1.6}{19}{Notes}{section*.131}{}} -\newlabel{btBrickIO:source.btBrickIO.timeOut}{{1.6}{19}{Notes}{section*.132}{}} -\newlabel{btBrickIO:source.btBrickIO.backend}{{1.6}{19}{Notes}{section*.133}{}} -\@writefile{toc}{\contentsline {paragraph}{Examples}{19}{paragraph*.134}} -\newlabel{btBrickIO:source.btBrickIO.close}{{1.6}{19}{Examples}{section*.135}{}} -\newlabel{btBrickIO:source.btBrickIO.open}{{1.6}{19}{Examples}{section*.136}{}} -\newlabel{btBrickIO:source.btBrickIO.read}{{1.6}{19}{Examples}{section*.137}{}} -\newlabel{btBrickIO:source.btBrickIO.setProperties}{{1.6}{19}{Examples}{section*.138}{}} -\newlabel{btBrickIO:source.btBrickIO.write}{{1.6}{20}{Examples}{section*.139}{}} -\@writefile{toc}{\contentsline {chapter}{MATLAB Module Index}{21}{section*.140}} -\@writefile{toc}{\contentsline {chapter}{Index}{23}{section*.141}} +\newlabel{EV3:source.EV3.motorA}{{1.1}{3}{}{section*.5}{}} +\newlabel{EV3:source.EV3.motorB}{{1.1}{3}{}{section*.6}{}} +\newlabel{EV3:source.EV3.motorC}{{1.1}{4}{}{section*.7}{}} +\newlabel{EV3:source.EV3.motorD}{{1.1}{4}{}{section*.8}{}} +\newlabel{EV3:source.EV3.sensor1}{{1.1}{4}{}{section*.9}{}} +\newlabel{EV3:source.EV3.sensor2}{{1.1}{4}{}{section*.10}{}} +\newlabel{EV3:source.EV3.sensor3}{{1.1}{4}{}{section*.11}{}} +\newlabel{EV3:source.EV3.sensor4}{{1.1}{4}{}{section*.12}{}} +\newlabel{EV3:source.EV3.debug}{{1.1}{4}{}{section*.13}{}} +\newlabel{EV3:source.EV3.batteryMode}{{1.1}{4}{}{section*.14}{}} +\newlabel{EV3:source.EV3.batteryValue}{{1.1}{4}{}{section*.15}{}} +\newlabel{EV3:source.EV3.isConnected}{{1.1}{4}{}{section*.16}{}} +\newlabel{EV3:source.EV3.beep}{{1.1}{5}{}{section*.17}{}} +\newlabel{EV3:source.EV3.connect}{{1.1}{5}{}{section*.18}{}} +\newlabel{EV3:source.EV3.disconnect}{{1.1}{5}{}{section*.19}{}} +\newlabel{EV3:source.EV3.playTone}{{1.1}{6}{}{section*.20}{}} +\newlabel{EV3:source.EV3.setProperties}{{1.1}{6}{}{section*.21}{}} +\newlabel{EV3:source.EV3.stopTone}{{1.1}{6}{}{section*.22}{}} +\newlabel{EV3:source.EV3.tonePlayed}{{1.1}{6}{}{section*.23}{}} +\newlabel{Motor:module-source}{{1.1}{7}{EV3}{section*.24}{}} +\@writefile{toc}{\contentsline {section}{\numberline {1.2}Motor}{7}{section.1.2}} +\newlabel{Motor:motor}{{1.2}{7}{Motor}{section.1.2}{}} +\newlabel{Motor::doc}{{1.2}{7}{Motor}{section.1.2}{}} +\newlabel{Motor:source.Motor}{{1.2}{7}{Motor}{section*.25}{}} +\newlabel{Motor:source.Motor.power}{{1.2}{7}{}{section*.26}{}} +\newlabel{Motor:source.Motor.speedRegulation}{{1.2}{7}{}{section*.27}{}} +\newlabel{Motor:source.Motor.smoothStart}{{1.2}{8}{}{section*.28}{}} +\newlabel{Motor:source.Motor.smoothStop}{{1.2}{8}{}{section*.29}{}} +\newlabel{Motor:source.Motor.limitValue}{{1.2}{8}{}{section*.30}{}} +\newlabel{Motor:source.Motor.limitMode}{{1.2}{8}{}{section*.31}{}} +\newlabel{Motor:source.Motor.brakeMode}{{1.2}{8}{}{section*.32}{}} +\newlabel{Motor:source.Motor.debug}{{1.2}{8}{}{section*.33}{}} +\newlabel{Motor:source.Motor.isRunning}{{1.2}{8}{}{section*.34}{}} +\newlabel{Motor:source.Motor.tachoCount}{{1.2}{8}{}{section*.35}{}} +\newlabel{Motor:source.Motor.currentSpeed}{{1.2}{8}{}{section*.36}{}} +\newlabel{Motor:source.Motor.type}{{1.2}{8}{}{section*.37}{}} +\newlabel{Motor:source.Motor.internalReset}{{1.2}{8}{}{section*.38}{}} +\newlabel{Motor:source.Motor.resetTachoCount}{{1.2}{9}{}{section*.39}{}} +\newlabel{Motor:source.Motor.setBrake}{{1.2}{9}{}{section*.40}{}} +\newlabel{Motor:source.Motor.setProperties}{{1.2}{9}{}{section*.41}{}} +\newlabel{Motor:source.Motor.start}{{1.2}{10}{}{section*.42}{}} +\newlabel{Motor:source.Motor.stop}{{1.2}{10}{}{section*.43}{}} +\newlabel{Motor:source.Motor.syncedStart}{{1.2}{10}{}{section*.44}{}} +\newlabel{Motor:source.Motor.syncedStop}{{1.2}{10}{}{section*.45}{}} +\newlabel{Motor:source.Motor.waitFor}{{1.2}{11}{}{section*.46}{}} +\newlabel{Sensor:module-source}{{1.2}{11}{Motor}{section*.47}{}} +\@writefile{toc}{\contentsline {section}{\numberline {1.3}Sensor}{11}{section.1.3}} +\newlabel{Sensor:sensor}{{1.3}{11}{Sensor}{section.1.3}{}} +\newlabel{Sensor::doc}{{1.3}{11}{Sensor}{section.1.3}{}} +\newlabel{Sensor:source.Sensor}{{1.3}{11}{Sensor}{section*.48}{}} +\newlabel{Sensor:source.Sensor.mode}{{1.3}{12}{}{section*.49}{}} +\newlabel{Sensor:source.Sensor.debug}{{1.3}{15}{}{section*.50}{}} +\newlabel{Sensor:source.Sensor.value}{{1.3}{15}{}{section*.51}{}} +\newlabel{Sensor:source.Sensor.type}{{1.3}{15}{}{section*.52}{}} +\newlabel{Sensor:source.Sensor.reset}{{1.3}{15}{}{section*.53}{}} +\newlabel{Sensor:source.Sensor.setProperties}{{1.3}{15}{}{section*.54}{}} +\newlabel{hid:module-source}{{1.3}{16}{Sensor}{section*.55}{}} +\@writefile{toc}{\contentsline {section}{\numberline {1.4}hidapi}{16}{section.1.4}} +\newlabel{hid:hidapi}{{1.4}{16}{hidapi}{section.1.4}{}} +\newlabel{hid::doc}{{1.4}{16}{hidapi}{section.1.4}{}} +\newlabel{hid:source.hidapi}{{1.4}{16}{hidapi}{section*.56}{}} +\newlabel{hid:source.hidapi.handle}{{1.4}{17}{}{section*.57}{}} +\newlabel{hid:source.hidapi.vendorID}{{1.4}{17}{}{section*.58}{}} +\newlabel{hid:source.hidapi.productID}{{1.4}{17}{}{section*.59}{}} +\newlabel{hid:source.hidapi.nReadBuffer}{{1.4}{17}{}{section*.60}{}} +\newlabel{hid:source.hidapi.nWriteBuffer}{{1.4}{17}{}{section*.61}{}} +\newlabel{hid:source.hidapi.slib}{{1.4}{17}{}{section*.62}{}} +\newlabel{hid:source.hidapi.sheader}{{1.4}{17}{}{section*.63}{}} +\newlabel{hid:source.hidapi.close}{{1.4}{17}{}{section*.64}{}} +\newlabel{hid:source.hidapi.enumerate}{{1.4}{17}{}{section*.65}{}} +\newlabel{hid:source.hidapi.error}{{1.4}{18}{}{section*.66}{}} +\newlabel{hid:source.hidapi.exit}{{1.4}{18}{}{section*.67}{}} +\newlabel{hid:source.hidapi.getHIDInfoString}{{1.4}{18}{}{section*.68}{}} +\newlabel{hid:source.hidapi.getManufacturersString}{{1.4}{18}{}{section*.69}{}} +\newlabel{hid:source.hidapi.getProductString}{{1.4}{18}{}{section*.70}{}} +\newlabel{hid:source.hidapi.getSerialNumberString}{{1.4}{18}{}{section*.71}{}} +\newlabel{hid:source.hidapi.init}{{1.4}{18}{}{section*.72}{}} +\newlabel{hid:source.hidapi.open}{{1.4}{18}{}{section*.73}{}} +\newlabel{hid:source.hidapi.read}{{1.4}{19}{}{section*.74}{}} +\newlabel{hid:source.hidapi.read_timeout}{{1.4}{19}{}{section*.75}{}} +\newlabel{hid:source.hidapi.setNonBlocking}{{1.4}{19}{}{section*.76}{}} +\newlabel{hid:source.hidapi.write}{{1.4}{19}{}{section*.77}{}} +\newlabel{usbBrickIO:module-source}{{1.4}{19}{hidapi}{section*.78}{}} +\@writefile{toc}{\contentsline {section}{\numberline {1.5}usbBrickIO}{20}{section.1.5}} +\newlabel{usbBrickIO:usbbrickio}{{1.5}{20}{usbBrickIO}{section.1.5}{}} +\newlabel{usbBrickIO::doc}{{1.5}{20}{usbBrickIO}{section.1.5}{}} +\newlabel{usbBrickIO:source.usbBrickIO}{{1.5}{20}{usbBrickIO}{section*.79}{}} +\newlabel{usbBrickIO:source.usbBrickIO.debug}{{1.5}{20}{}{section*.80}{}} +\newlabel{usbBrickIO:source.usbBrickIO.vendorID}{{1.5}{20}{}{section*.81}{}} +\newlabel{usbBrickIO:source.usbBrickIO.productID}{{1.5}{20}{}{section*.82}{}} +\newlabel{usbBrickIO:source.usbBrickIO.nReadBuffer}{{1.5}{20}{}{section*.83}{}} +\newlabel{usbBrickIO:source.usbBrickIO.nWriteBuffer}{{1.5}{20}{}{section*.84}{}} +\newlabel{usbBrickIO:source.usbBrickIO.timeOut}{{1.5}{20}{}{section*.85}{}} +\newlabel{usbBrickIO:source.usbBrickIO.close}{{1.5}{20}{}{section*.86}{}} +\newlabel{usbBrickIO:source.usbBrickIO.open}{{1.5}{21}{}{section*.87}{}} +\newlabel{usbBrickIO:source.usbBrickIO.read}{{1.5}{21}{}{section*.88}{}} +\newlabel{usbBrickIO:source.usbBrickIO.setProperties}{{1.5}{21}{}{section*.89}{}} +\newlabel{usbBrickIO:source.usbBrickIO.write}{{1.5}{21}{}{section*.90}{}} +\newlabel{btBrickIO:module-source}{{1.5}{21}{usbBrickIO}{section*.91}{}} +\@writefile{toc}{\contentsline {section}{\numberline {1.6}btBrickIO}{21}{section.1.6}} +\newlabel{btBrickIO:btbrickio}{{1.6}{21}{btBrickIO}{section.1.6}{}} +\newlabel{btBrickIO::doc}{{1.6}{21}{btBrickIO}{section.1.6}{}} +\newlabel{btBrickIO:source.btBrickIO}{{1.6}{21}{btBrickIO}{section*.92}{}} +\newlabel{btBrickIO:source.btBrickIO.debug}{{1.6}{21}{}{section*.93}{}} +\newlabel{btBrickIO:source.btBrickIO.serialPort}{{1.6}{22}{}{section*.94}{}} +\newlabel{btBrickIO:source.btBrickIO.deviceName}{{1.6}{22}{}{section*.95}{}} +\newlabel{btBrickIO:source.btBrickIO.channel}{{1.6}{22}{}{section*.96}{}} +\newlabel{btBrickIO:source.btBrickIO.timeOut}{{1.6}{22}{}{section*.97}{}} +\newlabel{btBrickIO:source.btBrickIO.backend}{{1.6}{22}{}{section*.98}{}} +\newlabel{btBrickIO:source.btBrickIO.close}{{1.6}{22}{}{section*.99}{}} +\newlabel{btBrickIO:source.btBrickIO.open}{{1.6}{22}{}{section*.100}{}} +\newlabel{btBrickIO:source.btBrickIO.read}{{1.6}{22}{}{section*.101}{}} +\newlabel{btBrickIO:source.btBrickIO.setProperties}{{1.6}{22}{}{section*.102}{}} +\newlabel{btBrickIO:source.btBrickIO.write}{{1.6}{22}{}{section*.103}{}} +\@writefile{toc}{\contentsline {chapter}{MATLAB Module Index}{25}{section*.104}} +\@writefile{toc}{\contentsline {chapter}{Index}{27}{section*.105}} diff --git a/docs/_build/latex/MindstormsEV3Toolbox.fdb_latexmk b/docs/_build/latex/MindstormsEV3Toolbox.fdb_latexmk new file mode 100644 index 0000000000000000000000000000000000000000..08b015ba1c92078db0cc034d09e25ce7fe76b7b4 --- /dev/null +++ b/docs/_build/latex/MindstormsEV3Toolbox.fdb_latexmk @@ -0,0 +1,183 @@ +# Fdb version 3 +["makeindex MindstormsEV3Toolbox.idx"] 1580150726 "MindstormsEV3Toolbox.idx" "MindstormsEV3Toolbox.ind" "MindstormsEV3Toolbox" 1580150726 + "MindstormsEV3Toolbox.idx" 1576847248 6034 0a0c9357a3c9a229266cb767718e4540 "" + (generated) + "MindstormsEV3Toolbox.ind" +["pdflatex"] 1580150726 "MindstormsEV3Toolbox.tex" "MindstormsEV3Toolbox.pdf" "MindstormsEV3Toolbox" 1580150726 + "/etc/texmf/web2c/texmf.cnf" 1578938302 475 c0e671620eb5563b2130f56340a5fde8 "" + "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1480098666 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1511824771 3332 103109f5612ad95229751940c61aada0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8r.tfm" 1480098688 1292 3059476c50a24578715759f22652f3d0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8t.tfm" 1480098688 1384 87406e4336af44af883a035f17f319d9 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8c.tfm" 1480098688 1268 8bd405dc5751cfed76cb6fb2db78cb50 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm" 1480098688 1292 bd42be2f344128bff6d35d98474adfe3 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm" 1480098688 1384 4632f5e54900a7dadbb83f555bc61e56 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8c.tfm" 1480098688 1344 dab2eee300fafcab19064bcc62d66daa "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8r.tfm" 1480098688 1544 4fb84cf2931ec523c2c6a08d939088ba "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8t.tfm" 1480098688 1596 04a657f277f0401ba37d66e716627ac4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8r.tfm" 1480098688 4484 b828043cbd581d289d955903c1339981 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8t.tfm" 1480098688 6628 34c39492c0adc454c1c199922bba8363 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvbo8r.tfm" 1480098688 4736 423eba67d4e9420ec9df4a8def143b08 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvbo8t.tfm" 1480098688 6880 fe6c7967f27585f6fa9876f3af14edd2 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvr8r.tfm" 1480098688 4712 9ef4d7d106579d4b136e1529e1a4533c "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvr8t.tfm" 1480098688 7040 b2bd27e2bfe6f6948cbc3239cae7444f "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm" 1480098689 4524 6bce29db5bc272ba5f332261583fee9c "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmb8t.tfm" 1480098689 6880 f19b8995b61c334d78fc734065f6b4d4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmbi8r.tfm" 1480098689 4480 10409ed8bab5aea9ec9a78028b763919 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmbi8t.tfm" 1480098689 6784 37b32cc10800b5afa030d935c393695a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8c.tfm" 1480098689 1352 fa28a7e6d323c65ce7d13d5342ff6be2 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm" 1480098689 4408 25b74d011a4c66b7f212c0cc3c90061b "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8t.tfm" 1480098689 6672 e3ab9e37e925f3045c9005e6d1473d56 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm" 1480098689 4640 532ca3305aad10cc01d769f3f91f1029 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmri8t.tfm" 1480098689 6944 94c55ad86e6ea2826f78ba2240d50df9 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1480098696 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1480098698 1004 54797486969f23fa377b128694d548df "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1480098698 916 f87d7c45f9c908e672703b83b72241a3 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1480098698 924 9904cf1d39e9767e7a3622f2a125a565 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1480098698 928 2dc8d444221b7a635bb58038579b861a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1480098698 908 2921f8a10601f252058503cc6570e581 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1480098698 940 75ac932a52f80982a9f8ea75d03a34cf "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1480098698 940 228d6584342e91276bf566bcf9716b83 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm" 1480098701 992 662f679a0b3d2d53c1b94050fdaa3f50 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1480098701 1524 4414a8315f39513458b80dfc63bff03a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1480098701 1288 655e228510b4c2a1abe905c368440826 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr17.tfm" 1480098701 1292 296a67155bdbfc32aa9c636f21e91433 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1480098701 1124 6c73e740cf17375f03eec0ee63599741 "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb" 1480098733 37912 77d683123f92148345f3fc36a38d9ab1 "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy5.pfb" 1480098733 32915 7bf7720c61a5b3a7ff25b0964421c9b6 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrb8a.pfb" 1480098746 50493 4ed1f7e9eba8f1f3e1ec25195460190d "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb" 1480098746 45758 19968a0990191524e34e1994d4a31cb6 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrro8a.pfb" 1480098746 44404 ea3d9c0311883914133975dd62a9185c "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb" 1480098746 35941 f27169cc74234d5bd5e4cca5abafaabb "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb" 1480098746 39013 b244066151b1e3e718f9b8e88a5ff23b "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb" 1480098746 44648 23115b2a545ebfe2c526c3ca99db8b95 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb" 1480098746 44729 811d6c62865936705a31c797a1d5dada "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb" 1480098746 44656 0cbca70e0534538582128f6b54593cca "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1480098746 46026 6dab18b61c907687b520c72847215a68 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1480098746 45458 a3faba884469519614ca56ba5f6b1de1 "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrb8t.vf" 1480098757 2184 5d20c8b00cd914e50251116c274e2d0b "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8c.vf" 1480098757 3552 6a7911d0b338a7c32cbfc3a9e985ccca "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf" 1480098757 2184 8475af1b9cfa983db5f46f5ed4b8f9f7 "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8c.vf" 1480098757 3560 a297982f0907d62e9886d9e2666bf30b "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8t.vf" 1480098757 2280 d7cd083c724c9449e1d12731253966f7 "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvb8t.vf" 1480098757 2340 0efed6a948c3c37d870e4e7ddb85c7c3 "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvbo8t.vf" 1480098757 2344 88834f8322177295b0266ecc4b0754c3 "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvr8t.vf" 1480098757 2344 44ff28c9ef2fc97180cd884f900fee71 "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmb8t.vf" 1480098758 2340 df9c920cc5688ebbf16a93f45ce7bdd3 "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmbi8t.vf" 1480098758 2324 51908dae6e03953a90119973962f0e4d "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmr8c.vf" 1480098758 3556 8a9a6dcbcd146ef985683f677f4758a6 "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmr8t.vf" 1480098758 2348 91706c542228501c410c266421fbe30c "" + "/usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmri8t.vf" 1480098758 2328 6cd7df782b09b29cfc4d93e55b6b9a59 "" + "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1480098806 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf" 1496785618 7008 9ff5fdcc865b01beca2b0fe4a46231d4 "" + "/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def" 1518644053 67244 2dce3d67c354c8d92f638d0f8682fb73 "" + "/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty" 1518644053 15861 065fe343082d0cd2428cf984d6b2ef66 "" + "/usr/share/texlive/texmf-dist/tex/generic/babel/switch.def" 1518644053 12523 d80bc74bf5e02fe4304443a6de8d01be "" + "/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def" 1518644053 7434 1b3955075683beb1c883a0fcf92ed2d5 "" + "/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty" 1480098815 1458 43ab4710dc82f3edeabecd0d099626b2 "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty" 1480098815 7612 729a8cc22a1ee0029997c7f74717ae05 "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty" 1480098815 8237 3b62ef1f7e2c23a328c814b3893bc11f "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty" 1517006633 185082 6c11d4e30ed78e2a12957b7e77030856 "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty" 1480098815 70864 bcd5b216757bd619ae692a151d90085d "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty" 1480098815 7324 2310d1247db0114eb4726807c8837a0e "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty" 1490564930 1251 d170e11a3246c3392bc7f59595af42cb "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty" 1480098815 6797 90b7f83b0ad46826bc16058b1e3d48df "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty" 1480098815 8253 473e0e41f9adadb1977e8631b8f72ea6 "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty" 1480098815 14040 ac8866aac45982ac84021584b0abb252 "" + "/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty" 1480098815 18425 5b3c0c59d76fac78978b5558e83c1f36 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1480098820 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1480098820 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd" 1480098820 961 6518c6525a34feb5e8250ffa91731cff "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd" 1480098820 961 d02606146ba5601b5645f987c92e6193 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1480098820 2210 5c54ab129b848a5071554186d0168766 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1480098820 4160 c115536cf8d4ff25aa8c1c9bc4ecb79a "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1504905757 84352 897a476d96a0681047a5b0f91178a3d2 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1480098820 4115 318a66090112f3aa3f415aeb6fe8540f "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1480098820 2431 fe3078ec12fc30287f568596f8e0b948 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty" 1480098821 3140 977eaf314c97ac67b8675753fb15f67f "" + "/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1492297155 4571 13977df0eda144b93597fc709035ad1f "" + "/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1480098821 4732 d63eda807ac82cca2ca8488efd31a966 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty" 1480098821 1940 c559b92ca91f1b2a0e60d836d4973f41 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu" 1487721667 2004 ac51aeac484f08c01026120d62677eca "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu" 1487721667 3181 1cb3e9ad01f4a01127b2ffd821bfeec7 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/report.cls" 1480098821 22880 e7be6f7dd8c05d5108bf3a7d8cabe59a "" + "/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1480098821 8292 e897c12e1e886ce77fe26afc5d470886 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def" 1492297155 10006 a90ba4035cf778f32f424e297d92e235 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu" 1487721667 11255 9d97362866549d3d3c994b5f28d1b9b5 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1492297155 16154 f2c73e20ca771d534a8516c62c6b0eae "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd" 1480098821 2217 d274654bda1292013bdf48d5f720a495 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def" 1480098821 7767 aa88823823f5e767d79ea1166ab1ae74 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu" 1487721667 4919 76510afd60e8282294f944c2f9f5103b "" + "/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def" 1487721667 7784 325a2a09984cb5c4ff230f9867145ad3 "" + "/usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty" 1480098823 1311 063f8536a047a2d9cb1803321f793f37 "" + "/usr/share/texlive/texmf-dist/tex/latex/carlisle/remreset.sty" 1480098823 1096 6a75275ca00e32428c6f059d2f618ea7 "" + "/usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty" 1480098825 2883 427a7f7cb58418a0394dbd85c80668f6 "" + "/usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap" 1480098825 1207 4e0d96772f0d338847cbfb4eca683c81 "" + "/usr/share/texlive/texmf-dist/tex/latex/cmap/t1.cmap" 1480098825 1938 beaa4a8467aa0074076e0e19f2992e29 "" + "/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1498861448 10663 d7fcc0dc4f35e8998b8cfeef8407d37d "" + "/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty" 1480098827 45360 a0833d32f1b541964596b02870342d5a "" + "/usr/share/texlive/texmf-dist/tex/latex/float/float.sty" 1480098828 6749 16d2656a1984957e674b149555f1ea1d "" + "/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty" 1480098829 22449 7ec15c16d0d66790f28e90343c5434a3 "" + "/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1480098829 40502 e003406220954b0716679d7928aedd8a "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1480098830 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1480098830 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1515537368 17334 520b9b85ad8a2a48eda3f643e27a5179 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1498427532 15275 7d676729b1bedd3e7f3c6717affb366c "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1498427532 9066 649f2ccf62888e3d8c3e57256b70b8e1 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty" 1480098830 2594 d18d5e19aa8239cf867fa670c556d2e9 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1480098830 3980 0a268fbfda01e381fa95821ab13b6aee "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1518041854 51699 9069fc983fff0db91d59a15af144ad62 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1518041854 234088 2c849389d62d41c593d9f5176c4116ab "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1480098831 12949 81e4e808884a8f0e276b69410e234656 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1518041854 14098 4e70bf396c7c265bd8b0e5cab3fd3d4d "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def" 1518041854 122411 10b605a58a28bbe5d61db37da4a85beb "" + "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1480098833 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg" 1480098833 235 6031e5765137be07eed51a510b2b8fb7 "" + "/usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap" 1480098835 1866 c1c12138091b4a8edd4a24a940e6f792 "" + "/usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap" 1480098835 2370 3b1f71b14b974f07cef532db09ae9ee0 "" + "/usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap" 1480098835 3001 252c8ca42b06a22cb1a11c0e47790c6e "" + "/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty" 1480098836 3834 4363110eb0ef1eb2b71c8fcbcdb6c357 "" + "/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty" 1480098836 12095 5337833c991d80788a43d3ce26bd1c46 "" + "/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty" 1480098836 7075 2fe3d848bba95f139de11ded085e74aa "" + "/usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty" 1480098836 3720 63669daeb0b67d5fbec899824e2f1491 "" + "/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty" 1480098836 22417 1d9df1eb66848aa31b18a593099cf45c "" + "/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty" 1480098836 9581 023642318cef9f4677efe364de1e2a27 "" + "/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty" 1480098836 2763 02a40cc5a32805c41d919cfbdba7e99a "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd" 1480098837 798 d5895e9edc628f2be019beb2c0ec66df "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd" 1480098837 1488 9a55ac1cde6b4798a7f56844bb75a553 "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd" 1480098837 774 61d7da1e9f9e74989b196d147e623736 "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty" 1480098837 857 6c716f26c5eadfb81029fcd6ce2d45e6 "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1pcr.fd" 1480098837 643 92c451bb86386a4e36a174603ddb5a13 "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd" 1480098837 619 96f56dc5d1ef1fe1121f1cfeec70ee0c "" + "/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty" 1480098841 37387 afa86533e532701faf233f3f592c61e0 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1485129666 12396 d41f82b039f900e95f351e54ae740f31 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty" 1480098841 12083 80916157594a8e4354985aaefae4f367 "" + "/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty" 1480098842 1048 517e01cde97c1c0baf72e69d43aa5a2e "" + "/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1480098842 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty" 1480098842 10894 d359a13923460b2a73d4312d613554c8 "" + "/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty" 1480098843 26220 3701aebf80ccdef248c0c20dd062fea9 "" + "/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1480098843 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1520210507 32485 c64754543d8ac501bea6e75e209ea521 "" + "/usr/share/texmf/web2c/texmf.cnf" 1520210507 32485 c64754543d8ac501bea6e75e209ea521 "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1578938462 127853 b41f58aff49fe1af38af8d065f49d51c "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1578938329 724918 18941513b6e5aebc228b2717f930ac02 "" + "MindstormsEV3Toolbox.aux" 1576847248 12585 404a43d4746043eb437a7c6eb99b6337 "" + "MindstormsEV3Toolbox.ind" 1580150726 6330 2f3f3d7973243748a8b77a7688225bca "makeindex MindstormsEV3Toolbox.idx" + "MindstormsEV3Toolbox.out" 1576847248 820 9719e66c3e78a64d7d70223b0833b074 "" + "MindstormsEV3Toolbox.tex" 1580150726 95162 9510ebefbda2dde9ec19ba8b05ce5f62 "" + "MindstormsEV3Toolbox.toc" 1576847248 2489 f7078864c200f0580aeccd32c3d6d775 "" + "fncychap.sty" 1576847248 18775 568efa3fda85869a241e0645298bc277 "" + "footnotehyper-sphinx.sty" 1578938189 8888 1bbd7bdeae8c8bed1d10d551bddb1cc9 "" + "needspace.sty" 1576847248 852 0e34dbb72efc69fa07602405ad95585e "" + "sphinx.sty" 1578938189 76220 63a32157b97240a297c69d4d077e82ab "" + "sphinxhighlight.sty" 1580150725 8137 b8d4ef963833564f6e4eadc09cd757c4 "" + "sphinxmanual.cls" 1578938189 3622 686a4f202ad31ad9dfe0d7d6ebdb7066 "" + "sphinxmulticell.sty" 1578938189 14618 0defbdc8536ad2e67f1eac6a1431bc55 "" + "tabulary.sty" 1576847248 13844 8a7daad594dc89b6db6135c5b6abd260 "" + (generated) + "MindstormsEV3Toolbox.log" + "MindstormsEV3Toolbox.aux" + "MindstormsEV3Toolbox.pdf" + "MindstormsEV3Toolbox.out" + "MindstormsEV3Toolbox.toc" + "MindstormsEV3Toolbox.idx" diff --git a/docs/_build/latex/MindstormsEV3Toolbox.fls b/docs/_build/latex/MindstormsEV3Toolbox.fls new file mode 100644 index 0000000000000000000000000000000000000000..a4d01b91f7d859f759b29e2cf625ed34523971fd --- /dev/null +++ b/docs/_build/latex/MindstormsEV3Toolbox.fls @@ -0,0 +1,322 @@ +PWD /home/maximilian/Desktop/EV3/ev3-toolbox-matlab-docs_NXTcompatibility (noch eine Kopie)/docs/_build/latex +INPUT /etc/texmf/web2c/texmf.cnf +INPUT /usr/share/texmf/web2c/texmf.cnf +INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT MindstormsEV3Toolbox.tex +OUTPUT MindstormsEV3Toolbox.log +INPUT sphinxmanual.cls +INPUT sphinxmanual.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/report.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/report.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/utf8.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/utf8.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu +INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def +INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/t1.cmap +OUTPUT MindstormsEV3Toolbox.pdf +INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/t1.cmap +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/switch.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf +INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf +INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf +INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT fncychap.sty +INPUT fncychap.sty +INPUT sphinx.sty +INPUT sphinx.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu +INPUT /usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty +INPUT tabulary.sty +INPUT tabulary.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +INPUT sphinxmulticell.sty +INPUT sphinxmulticell.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +INPUT footnotehyper-sphinx.sty +INPUT footnotehyper-sphinx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/float/float.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty +INPUT needspace.sty +INPUT needspace.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/remreset.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/remreset.sty +INPUT sphinxhighlight.sty +INPUT sphinxhighlight.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty +OUTPUT MindstormsEV3Toolbox.idx +INPUT MindstormsEV3Toolbox.aux +INPUT MindstormsEV3Toolbox.aux +OUTPUT MindstormsEV3Toolbox.aux +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8t.tfm +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +INPUT MindstormsEV3Toolbox.out +INPUT MindstormsEV3Toolbox.out +INPUT MindstormsEV3Toolbox.out +INPUT MindstormsEV3Toolbox.out +INPUT ./MindstormsEV3Toolbox.out +INPUT ./MindstormsEV3Toolbox.out +OUTPUT MindstormsEV3Toolbox.out +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvr8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvbo8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvbo8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr17.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap +INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap +INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap +INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap +INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvb8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8r.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvbo8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvbo8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvb8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvb8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvr8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8t.tfm +INPUT MindstormsEV3Toolbox.toc +INPUT MindstormsEV3Toolbox.toc +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmb8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm +OUTPUT MindstormsEV3Toolbox.toc +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvb8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmb8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmr8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvb8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvb8r.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmri8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmbi8t.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8c.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrb8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmri8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmbi8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmbi8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmr8c.vf +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8t.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1pcr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1pcr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8c.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8c.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrr8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrro8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrr8c.vf +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrro8c.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8t.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/courier/pcrb8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/courier/pcrb8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/times/ptmr8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/adobe/helvetic/phvr8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/adobe/helvetic/phvr8r.tfm +INPUT MindstormsEV3Toolbox.ind +INPUT MindstormsEV3Toolbox.ind +INPUT MindstormsEV3Toolbox.aux +INPUT ./MindstormsEV3Toolbox.out +INPUT ./MindstormsEV3Toolbox.out +INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy5.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrb8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrro8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/docs/_build/latex/MindstormsEV3Toolbox.idx b/docs/_build/latex/MindstormsEV3Toolbox.idx index 745e18b4d43d3681b6ad13aceb5030142ae75d7a..e57539f613f87c2850b3c8109ff2c58e1300057a 100644 --- a/docs/_build/latex/MindstormsEV3Toolbox.idx +++ b/docs/_build/latex/MindstormsEV3Toolbox.idx @@ -1,101 +1,101 @@ -\indexentry{source (module)|hyperpage}{3} -\indexentry{EV3 (class in source)|hyperpage}{3} -\indexentry{motorA (source.EV3 attribute)|hyperpage}{3} -\indexentry{motorB (source.EV3 attribute)|hyperpage}{3} -\indexentry{motorC (source.EV3 attribute)|hyperpage}{3} -\indexentry{motorD (source.EV3 attribute)|hyperpage}{4} -\indexentry{sensor1 (source.EV3 attribute)|hyperpage}{4} -\indexentry{sensor2 (source.EV3 attribute)|hyperpage}{4} -\indexentry{sensor3 (source.EV3 attribute)|hyperpage}{4} -\indexentry{sensor4 (source.EV3 attribute)|hyperpage}{4} -\indexentry{debug (source.EV3 attribute)|hyperpage}{4} -\indexentry{batteryMode (source.EV3 attribute)|hyperpage}{4} -\indexentry{batteryValue (source.EV3 attribute)|hyperpage}{4} -\indexentry{isConnected (source.EV3 attribute)|hyperpage}{4} -\indexentry{beep() (source.EV3 method)|hyperpage}{4} -\indexentry{connect() (source.EV3 method)|hyperpage}{4} -\indexentry{disconnect() (source.EV3 method)|hyperpage}{5} -\indexentry{playTone() (source.EV3 method)|hyperpage}{5} -\indexentry{setProperties() (source.EV3 method)|hyperpage}{5} -\indexentry{stopTone() (source.EV3 method)|hyperpage}{6} -\indexentry{tonePlayed() (source.EV3 method)|hyperpage}{6} -\indexentry{source (module)|hyperpage}{6} -\indexentry{Motor (class in source)|hyperpage}{6} -\indexentry{power (source.Motor attribute)|hyperpage}{7} -\indexentry{speedRegulation (source.Motor attribute)|hyperpage}{7} -\indexentry{smoothStart (source.Motor attribute)|hyperpage}{7} -\indexentry{smoothStop (source.Motor attribute)|hyperpage}{7} -\indexentry{limitValue (source.Motor attribute)|hyperpage}{7} -\indexentry{limitMode (source.Motor attribute)|hyperpage}{7} -\indexentry{brakeMode (source.Motor attribute)|hyperpage}{7} -\indexentry{debug (source.Motor attribute)|hyperpage}{7} -\indexentry{isRunning (source.Motor attribute)|hyperpage}{7} -\indexentry{tachoCount (source.Motor attribute)|hyperpage}{7} -\indexentry{currentSpeed (source.Motor attribute)|hyperpage}{7} -\indexentry{type (source.Motor attribute)|hyperpage}{7} -\indexentry{internalReset() (source.Motor method)|hyperpage}{8} -\indexentry{resetTachoCount() (source.Motor method)|hyperpage}{8} -\indexentry{setBrake() (source.Motor method)|hyperpage}{8} -\indexentry{setProperties() (source.Motor method)|hyperpage}{8} -\indexentry{start() (source.Motor method)|hyperpage}{9} -\indexentry{stop() (source.Motor method)|hyperpage}{9} -\indexentry{syncedStart() (source.Motor method)|hyperpage}{9} -\indexentry{syncedStop() (source.Motor method)|hyperpage}{9} -\indexentry{waitFor() (source.Motor method)|hyperpage}{10} -\indexentry{source (module)|hyperpage}{10} -\indexentry{Sensor (class in source)|hyperpage}{10} -\indexentry{mode (source.Sensor attribute)|hyperpage}{10} -\indexentry{debug (source.Sensor attribute)|hyperpage}{12} -\indexentry{value (source.Sensor attribute)|hyperpage}{12} -\indexentry{type (source.Sensor attribute)|hyperpage}{12} -\indexentry{reset() (source.Sensor method)|hyperpage}{13} -\indexentry{setProperties() (source.Sensor method)|hyperpage}{13} -\indexentry{source (module)|hyperpage}{13} -\indexentry{hidapi (class in source)|hyperpage}{13} -\indexentry{handle (source.hidapi attribute)|hyperpage}{14} -\indexentry{vendorID (source.hidapi attribute)|hyperpage}{14} -\indexentry{productID (source.hidapi attribute)|hyperpage}{14} -\indexentry{nReadBuffer (source.hidapi attribute)|hyperpage}{14} -\indexentry{nWriteBuffer (source.hidapi attribute)|hyperpage}{14} -\indexentry{slib (source.hidapi attribute)|hyperpage}{14} -\indexentry{sheader (source.hidapi attribute)|hyperpage}{14} -\indexentry{close() (source.hidapi method)|hyperpage}{14} -\indexentry{enumerate() (source.hidapi method)|hyperpage}{15} -\indexentry{error() (source.hidapi method)|hyperpage}{15} -\indexentry{exit() (source.hidapi method)|hyperpage}{15} -\indexentry{getHIDInfoString() (source.hidapi method)|hyperpage}{15} -\indexentry{getManufacturersString() (source.hidapi method)|hyperpage}{16} -\indexentry{getProductString() (source.hidapi method)|hyperpage}{16} -\indexentry{getSerialNumberString() (source.hidapi method)|hyperpage}{16} -\indexentry{init() (source.hidapi method)|hyperpage}{16} -\indexentry{open() (source.hidapi method)|hyperpage}{16} -\indexentry{read() (source.hidapi method)|hyperpage}{16} -\indexentry{read\_timeout() (source.hidapi method)|hyperpage}{16} -\indexentry{setNonBlocking() (source.hidapi method)|hyperpage}{17} -\indexentry{write() (source.hidapi method)|hyperpage}{17} -\indexentry{source (module)|hyperpage}{17} -\indexentry{usbBrickIO (class in source)|hyperpage}{17} -\indexentry{debug (source.usbBrickIO attribute)|hyperpage}{18} -\indexentry{vendorID (source.usbBrickIO attribute)|hyperpage}{18} -\indexentry{productID (source.usbBrickIO attribute)|hyperpage}{18} -\indexentry{nReadBuffer (source.usbBrickIO attribute)|hyperpage}{18} -\indexentry{nWriteBuffer (source.usbBrickIO attribute)|hyperpage}{18} -\indexentry{timeOut (source.usbBrickIO attribute)|hyperpage}{18} -\indexentry{close() (source.usbBrickIO method)|hyperpage}{18} -\indexentry{open() (source.usbBrickIO method)|hyperpage}{18} -\indexentry{read() (source.usbBrickIO method)|hyperpage}{18} -\indexentry{setProperties() (source.usbBrickIO method)|hyperpage}{18} -\indexentry{write() (source.usbBrickIO method)|hyperpage}{18} -\indexentry{source (module)|hyperpage}{18} -\indexentry{btBrickIO (class in source)|hyperpage}{18} -\indexentry{debug (source.btBrickIO attribute)|hyperpage}{19} -\indexentry{serialPort (source.btBrickIO attribute)|hyperpage}{19} -\indexentry{deviceName (source.btBrickIO attribute)|hyperpage}{19} -\indexentry{channel (source.btBrickIO attribute)|hyperpage}{19} -\indexentry{timeOut (source.btBrickIO attribute)|hyperpage}{19} -\indexentry{backend (source.btBrickIO attribute)|hyperpage}{19} -\indexentry{close() (source.btBrickIO method)|hyperpage}{19} -\indexentry{open() (source.btBrickIO method)|hyperpage}{19} -\indexentry{read() (source.btBrickIO method)|hyperpage}{19} -\indexentry{setProperties() (source.btBrickIO method)|hyperpage}{19} -\indexentry{write() (source.btBrickIO method)|hyperpage}{20} +\indexentry{source (module)@\spxentry{source}\spxextra{module}|hyperpage}{3} +\indexentry{EV3 (class in source)@\spxentry{EV3}\spxextra{class in source}|hyperpage}{3} +\indexentry{motorA (source.EV3 attribute)@\spxentry{motorA}\spxextra{source.EV3 attribute}|hyperpage}{3} +\indexentry{motorB (source.EV3 attribute)@\spxentry{motorB}\spxextra{source.EV3 attribute}|hyperpage}{3} +\indexentry{motorC (source.EV3 attribute)@\spxentry{motorC}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{motorD (source.EV3 attribute)@\spxentry{motorD}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{sensor1 (source.EV3 attribute)@\spxentry{sensor1}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{sensor2 (source.EV3 attribute)@\spxentry{sensor2}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{sensor3 (source.EV3 attribute)@\spxentry{sensor3}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{sensor4 (source.EV3 attribute)@\spxentry{sensor4}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{debug (source.EV3 attribute)@\spxentry{debug}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{batteryMode (source.EV3 attribute)@\spxentry{batteryMode}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{batteryValue (source.EV3 attribute)@\spxentry{batteryValue}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{isConnected (source.EV3 attribute)@\spxentry{isConnected}\spxextra{source.EV3 attribute}|hyperpage}{4} +\indexentry{beep() (source.EV3 method)@\spxentry{beep()}\spxextra{source.EV3 method}|hyperpage}{5} +\indexentry{connect() (source.EV3 method)@\spxentry{connect()}\spxextra{source.EV3 method}|hyperpage}{5} +\indexentry{disconnect() (source.EV3 method)@\spxentry{disconnect()}\spxextra{source.EV3 method}|hyperpage}{5} +\indexentry{playTone() (source.EV3 method)@\spxentry{playTone()}\spxextra{source.EV3 method}|hyperpage}{6} +\indexentry{setProperties() (source.EV3 method)@\spxentry{setProperties()}\spxextra{source.EV3 method}|hyperpage}{6} +\indexentry{stopTone() (source.EV3 method)@\spxentry{stopTone()}\spxextra{source.EV3 method}|hyperpage}{6} +\indexentry{tonePlayed() (source.EV3 method)@\spxentry{tonePlayed()}\spxextra{source.EV3 method}|hyperpage}{6} +\indexentry{source (module)@\spxentry{source}\spxextra{module}|hyperpage}{7} +\indexentry{Motor (class in source)@\spxentry{Motor}\spxextra{class in source}|hyperpage}{7} +\indexentry{power (source.Motor attribute)@\spxentry{power}\spxextra{source.Motor attribute}|hyperpage}{7} +\indexentry{speedRegulation (source.Motor attribute)@\spxentry{speedRegulation}\spxextra{source.Motor attribute}|hyperpage}{7} +\indexentry{smoothStart (source.Motor attribute)@\spxentry{smoothStart}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{smoothStop (source.Motor attribute)@\spxentry{smoothStop}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{limitValue (source.Motor attribute)@\spxentry{limitValue}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{limitMode (source.Motor attribute)@\spxentry{limitMode}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{brakeMode (source.Motor attribute)@\spxentry{brakeMode}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{debug (source.Motor attribute)@\spxentry{debug}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{isRunning (source.Motor attribute)@\spxentry{isRunning}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{tachoCount (source.Motor attribute)@\spxentry{tachoCount}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{currentSpeed (source.Motor attribute)@\spxentry{currentSpeed}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{type (source.Motor attribute)@\spxentry{type}\spxextra{source.Motor attribute}|hyperpage}{8} +\indexentry{internalReset() (source.Motor method)@\spxentry{internalReset()}\spxextra{source.Motor method}|hyperpage}{8} +\indexentry{resetTachoCount() (source.Motor method)@\spxentry{resetTachoCount()}\spxextra{source.Motor method}|hyperpage}{9} +\indexentry{setBrake() (source.Motor method)@\spxentry{setBrake()}\spxextra{source.Motor method}|hyperpage}{9} +\indexentry{setProperties() (source.Motor method)@\spxentry{setProperties()}\spxextra{source.Motor method}|hyperpage}{9} +\indexentry{start() (source.Motor method)@\spxentry{start()}\spxextra{source.Motor method}|hyperpage}{10} +\indexentry{stop() (source.Motor method)@\spxentry{stop()}\spxextra{source.Motor method}|hyperpage}{10} +\indexentry{syncedStart() (source.Motor method)@\spxentry{syncedStart()}\spxextra{source.Motor method}|hyperpage}{10} +\indexentry{syncedStop() (source.Motor method)@\spxentry{syncedStop()}\spxextra{source.Motor method}|hyperpage}{10} +\indexentry{waitFor() (source.Motor method)@\spxentry{waitFor()}\spxextra{source.Motor method}|hyperpage}{11} +\indexentry{source (module)@\spxentry{source}\spxextra{module}|hyperpage}{11} +\indexentry{Sensor (class in source)@\spxentry{Sensor}\spxextra{class in source}|hyperpage}{11} +\indexentry{mode (source.Sensor attribute)@\spxentry{mode}\spxextra{source.Sensor attribute}|hyperpage}{12} +\indexentry{debug (source.Sensor attribute)@\spxentry{debug}\spxextra{source.Sensor attribute}|hyperpage}{15} +\indexentry{value (source.Sensor attribute)@\spxentry{value}\spxextra{source.Sensor attribute}|hyperpage}{15} +\indexentry{type (source.Sensor attribute)@\spxentry{type}\spxextra{source.Sensor attribute}|hyperpage}{15} +\indexentry{reset() (source.Sensor method)@\spxentry{reset()}\spxextra{source.Sensor method}|hyperpage}{15} +\indexentry{setProperties() (source.Sensor method)@\spxentry{setProperties()}\spxextra{source.Sensor method}|hyperpage}{15} +\indexentry{source (module)@\spxentry{source}\spxextra{module}|hyperpage}{16} +\indexentry{hidapi (class in source)@\spxentry{hidapi}\spxextra{class in source}|hyperpage}{16} +\indexentry{handle (source.hidapi attribute)@\spxentry{handle}\spxextra{source.hidapi attribute}|hyperpage}{17} +\indexentry{vendorID (source.hidapi attribute)@\spxentry{vendorID}\spxextra{source.hidapi attribute}|hyperpage}{17} +\indexentry{productID (source.hidapi attribute)@\spxentry{productID}\spxextra{source.hidapi attribute}|hyperpage}{17} +\indexentry{nReadBuffer (source.hidapi attribute)@\spxentry{nReadBuffer}\spxextra{source.hidapi attribute}|hyperpage}{17} +\indexentry{nWriteBuffer (source.hidapi attribute)@\spxentry{nWriteBuffer}\spxextra{source.hidapi attribute}|hyperpage}{17} +\indexentry{slib (source.hidapi attribute)@\spxentry{slib}\spxextra{source.hidapi attribute}|hyperpage}{17} +\indexentry{sheader (source.hidapi attribute)@\spxentry{sheader}\spxextra{source.hidapi attribute}|hyperpage}{17} +\indexentry{close() (source.hidapi method)@\spxentry{close()}\spxextra{source.hidapi method}|hyperpage}{17} +\indexentry{enumerate() (source.hidapi method)@\spxentry{enumerate()}\spxextra{source.hidapi method}|hyperpage}{17} +\indexentry{error() (source.hidapi method)@\spxentry{error()}\spxextra{source.hidapi method}|hyperpage}{18} +\indexentry{exit() (source.hidapi method)@\spxentry{exit()}\spxextra{source.hidapi method}|hyperpage}{18} +\indexentry{getHIDInfoString() (source.hidapi method)@\spxentry{getHIDInfoString()}\spxextra{source.hidapi method}|hyperpage}{18} +\indexentry{getManufacturersString() (source.hidapi method)@\spxentry{getManufacturersString()}\spxextra{source.hidapi method}|hyperpage}{18} +\indexentry{getProductString() (source.hidapi method)@\spxentry{getProductString()}\spxextra{source.hidapi method}|hyperpage}{18} +\indexentry{getSerialNumberString() (source.hidapi method)@\spxentry{getSerialNumberString()}\spxextra{source.hidapi method}|hyperpage}{18} +\indexentry{init() (source.hidapi method)@\spxentry{init()}\spxextra{source.hidapi method}|hyperpage}{18} +\indexentry{open() (source.hidapi method)@\spxentry{open()}\spxextra{source.hidapi method}|hyperpage}{18} +\indexentry{read() (source.hidapi method)@\spxentry{read()}\spxextra{source.hidapi method}|hyperpage}{19} +\indexentry{read\_timeout() (source.hidapi method)@\spxentry{read\_timeout()}\spxextra{source.hidapi method}|hyperpage}{19} +\indexentry{setNonBlocking() (source.hidapi method)@\spxentry{setNonBlocking()}\spxextra{source.hidapi method}|hyperpage}{19} +\indexentry{write() (source.hidapi method)@\spxentry{write()}\spxextra{source.hidapi method}|hyperpage}{19} +\indexentry{source (module)@\spxentry{source}\spxextra{module}|hyperpage}{19} +\indexentry{usbBrickIO (class in source)@\spxentry{usbBrickIO}\spxextra{class in source}|hyperpage}{20} +\indexentry{debug (source.usbBrickIO attribute)@\spxentry{debug}\spxextra{source.usbBrickIO attribute}|hyperpage}{20} +\indexentry{vendorID (source.usbBrickIO attribute)@\spxentry{vendorID}\spxextra{source.usbBrickIO attribute}|hyperpage}{20} +\indexentry{productID (source.usbBrickIO attribute)@\spxentry{productID}\spxextra{source.usbBrickIO attribute}|hyperpage}{20} +\indexentry{nReadBuffer (source.usbBrickIO attribute)@\spxentry{nReadBuffer}\spxextra{source.usbBrickIO attribute}|hyperpage}{20} +\indexentry{nWriteBuffer (source.usbBrickIO attribute)@\spxentry{nWriteBuffer}\spxextra{source.usbBrickIO attribute}|hyperpage}{20} +\indexentry{timeOut (source.usbBrickIO attribute)@\spxentry{timeOut}\spxextra{source.usbBrickIO attribute}|hyperpage}{20} +\indexentry{close() (source.usbBrickIO method)@\spxentry{close()}\spxextra{source.usbBrickIO method}|hyperpage}{20} +\indexentry{open() (source.usbBrickIO method)@\spxentry{open()}\spxextra{source.usbBrickIO method}|hyperpage}{21} +\indexentry{read() (source.usbBrickIO method)@\spxentry{read()}\spxextra{source.usbBrickIO method}|hyperpage}{21} +\indexentry{setProperties() (source.usbBrickIO method)@\spxentry{setProperties()}\spxextra{source.usbBrickIO method}|hyperpage}{21} +\indexentry{write() (source.usbBrickIO method)@\spxentry{write()}\spxextra{source.usbBrickIO method}|hyperpage}{21} +\indexentry{source (module)@\spxentry{source}\spxextra{module}|hyperpage}{21} +\indexentry{btBrickIO (class in source)@\spxentry{btBrickIO}\spxextra{class in source}|hyperpage}{21} +\indexentry{debug (source.btBrickIO attribute)@\spxentry{debug}\spxextra{source.btBrickIO attribute}|hyperpage}{21} +\indexentry{serialPort (source.btBrickIO attribute)@\spxentry{serialPort}\spxextra{source.btBrickIO attribute}|hyperpage}{22} +\indexentry{deviceName (source.btBrickIO attribute)@\spxentry{deviceName}\spxextra{source.btBrickIO attribute}|hyperpage}{22} +\indexentry{channel (source.btBrickIO attribute)@\spxentry{channel}\spxextra{source.btBrickIO attribute}|hyperpage}{22} +\indexentry{timeOut (source.btBrickIO attribute)@\spxentry{timeOut}\spxextra{source.btBrickIO attribute}|hyperpage}{22} +\indexentry{backend (source.btBrickIO attribute)@\spxentry{backend}\spxextra{source.btBrickIO attribute}|hyperpage}{22} +\indexentry{close() (source.btBrickIO method)@\spxentry{close()}\spxextra{source.btBrickIO method}|hyperpage}{22} +\indexentry{open() (source.btBrickIO method)@\spxentry{open()}\spxextra{source.btBrickIO method}|hyperpage}{22} +\indexentry{read() (source.btBrickIO method)@\spxentry{read()}\spxextra{source.btBrickIO method}|hyperpage}{22} +\indexentry{setProperties() (source.btBrickIO method)@\spxentry{setProperties()}\spxextra{source.btBrickIO method}|hyperpage}{22} +\indexentry{write() (source.btBrickIO method)@\spxentry{write()}\spxextra{source.btBrickIO method}|hyperpage}{22} diff --git a/docs/_build/latex/MindstormsEV3Toolbox.ilg b/docs/_build/latex/MindstormsEV3Toolbox.ilg index 60f413b091ff0bf7a9aeb2be5b65009b8d773fba..ee6b2b5c31b6e33f34b77e6e62e39f2ab6e28a6f 100644 --- a/docs/_build/latex/MindstormsEV3Toolbox.ilg +++ b/docs/_build/latex/MindstormsEV3Toolbox.ilg @@ -1,7 +1,7 @@ -This is makeindex, version 2.15 [TeX Live 2013] (kpathsea + Thai support). -Scanning style file ./python.ist......done (6 attributes redefined, 0 ignored). +This is makeindex, version 2.15 [TeX Live 2017] (kpathsea + Thai support). +Scanning style file ./python.ist.......done (7 attributes redefined, 0 ignored). Scanning input file MindstormsEV3Toolbox.idx....done (101 entries accepted, 0 rejected). Sorting entries....done (719 comparisons). -Generating output file MindstormsEV3Toolbox.ind....done (154 lines written, 0 warnings). +Generating output file MindstormsEV3Toolbox.ind....done (157 lines written, 0 warnings). Output written in MindstormsEV3Toolbox.ind. Transcript written in MindstormsEV3Toolbox.ilg. diff --git a/docs/_build/latex/MindstormsEV3Toolbox.ind b/docs/_build/latex/MindstormsEV3Toolbox.ind index b53cd6c775f17167217b499b2a98aa5a9039f20f..63c90a44030428b509a83c872ab47238aa3192d9 100644 --- a/docs/_build/latex/MindstormsEV3Toolbox.ind +++ b/docs/_build/latex/MindstormsEV3Toolbox.ind @@ -1,5 +1,8 @@ -\begin{theindex} -\def\bigletter#1{{\Large\sffamily#1}\nopagebreak\vspace{1mm}} +\begin{sphinxtheindex} +\let\bigletter\sphinxstyleindexlettergroup +\let\spxpagem \sphinxstyleindexpagemain +\let\spxentry \sphinxstyleindexentry +\let\spxextra \sphinxstyleindexextra \bigletter B \item backend (source.btBrickIO attribute), \hyperpage{19} @@ -151,4 +154,4 @@ \item write() (source.hidapi method), \hyperpage{17} \item write() (source.usbBrickIO method), \hyperpage{18} -\end{theindex} +\end{sphinxtheindex} diff --git a/docs/_build/latex/MindstormsEV3Toolbox.log b/docs/_build/latex/MindstormsEV3Toolbox.log index 0071761bcf09fd733c10e23dee7fec894af4fc52..15a29e99531038836b78dae6785a3ebe3c72ecf7 100644 --- a/docs/_build/latex/MindstormsEV3Toolbox.log +++ b/docs/_build/latex/MindstormsEV3Toolbox.log @@ -1,17 +1,17 @@ -This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2016.11.23) 15 AUG 2017 19:10 +This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex 2020.1.13) 27 JAN 2020 19:45 entering extended mode restricted \write18 enabled. %&-line parsing enabled. **MindstormsEV3Toolbox.tex (./MindstormsEV3Toolbox.tex -LaTeX2e <2011/06/27> -Babel <3.9h> and hyphenation patterns for 78 languages loaded. +LaTeX2e <2017-04-15> +Babel <3.18> and hyphenation patterns for 3 language(s) loaded. (./sphinxmanual.cls -Document Class: sphinxmanual 2009/06/02 Document class (Sphinx manual) +Document Class: sphinxmanual 2018/12/22 v1.8.3 Document class (Sphinx manual) (/usr/share/texlive/texmf-dist/tex/latex/base/report.cls -Document Class: report 2007/10/19 v1.4h Standard LaTeX document class +Document Class: report 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo -File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) ) \c@part=\count79 \c@chapter=\count80 @@ -25,27 +25,26 @@ File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 -)) (./iftex.sty -Package: iftex 2013/04/04 v0.2 Provides if(tex) conditional for PDFTeX, XeTeX, -and LuaTeX -) +)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty -Package: inputenc 2008/03/30 v1.1d Input encoding file +Package: inputenc 2015/03/17 v1.2c Input encoding file \inpenc@prehook=\toks14 \inpenc@posthook=\toks15 (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def -File: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc +File: utf8.def 2017/01/28 v1.1t UTF-8 support for inputenc Now handling font encoding OML ... ... no UTF-8 mapping file for font encoding OML Now handling font encoding T1 ... ... processing UTF-8 mapping file for font encoding T1 (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu -File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc +File: t1enc.dfu 2017/01/28 v1.1t UTF-8 support for inputenc + defining Unicode char U+00A0 (decimal 160) defining Unicode char U+00A1 (decimal 161) defining Unicode char U+00A3 (decimal 163) defining Unicode char U+00AB (decimal 171) + defining Unicode char U+00AD (decimal 173) defining Unicode char U+00BB (decimal 187) defining Unicode char U+00BF (decimal 191) defining Unicode char U+00C0 (decimal 192) @@ -110,50 +109,94 @@ File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+00FD (decimal 253) defining Unicode char U+00FE (decimal 254) defining Unicode char U+00FF (decimal 255) + defining Unicode char U+0100 (decimal 256) + defining Unicode char U+0101 (decimal 257) defining Unicode char U+0102 (decimal 258) defining Unicode char U+0103 (decimal 259) defining Unicode char U+0104 (decimal 260) defining Unicode char U+0105 (decimal 261) defining Unicode char U+0106 (decimal 262) defining Unicode char U+0107 (decimal 263) + defining Unicode char U+0108 (decimal 264) + defining Unicode char U+0109 (decimal 265) + defining Unicode char U+010A (decimal 266) + defining Unicode char U+010B (decimal 267) defining Unicode char U+010C (decimal 268) defining Unicode char U+010D (decimal 269) defining Unicode char U+010E (decimal 270) defining Unicode char U+010F (decimal 271) defining Unicode char U+0110 (decimal 272) defining Unicode char U+0111 (decimal 273) + defining Unicode char U+0112 (decimal 274) + defining Unicode char U+0113 (decimal 275) + defining Unicode char U+0114 (decimal 276) + defining Unicode char U+0115 (decimal 277) + defining Unicode char U+0116 (decimal 278) + defining Unicode char U+0117 (decimal 279) defining Unicode char U+0118 (decimal 280) defining Unicode char U+0119 (decimal 281) defining Unicode char U+011A (decimal 282) defining Unicode char U+011B (decimal 283) + defining Unicode char U+011C (decimal 284) + defining Unicode char U+011D (decimal 285) defining Unicode char U+011E (decimal 286) defining Unicode char U+011F (decimal 287) + defining Unicode char U+0120 (decimal 288) + defining Unicode char U+0121 (decimal 289) + defining Unicode char U+0122 (decimal 290) + defining Unicode char U+0123 (decimal 291) + defining Unicode char U+0124 (decimal 292) + defining Unicode char U+0125 (decimal 293) + defining Unicode char U+0128 (decimal 296) + defining Unicode char U+0129 (decimal 297) + defining Unicode char U+012A (decimal 298) + defining Unicode char U+012B (decimal 299) + defining Unicode char U+012C (decimal 300) + defining Unicode char U+012D (decimal 301) + defining Unicode char U+012E (decimal 302) + defining Unicode char U+012F (decimal 303) defining Unicode char U+0130 (decimal 304) defining Unicode char U+0131 (decimal 305) defining Unicode char U+0132 (decimal 306) defining Unicode char U+0133 (decimal 307) + defining Unicode char U+0134 (decimal 308) + defining Unicode char U+0135 (decimal 309) + defining Unicode char U+0136 (decimal 310) + defining Unicode char U+0137 (decimal 311) defining Unicode char U+0139 (decimal 313) defining Unicode char U+013A (decimal 314) + defining Unicode char U+013B (decimal 315) + defining Unicode char U+013C (decimal 316) defining Unicode char U+013D (decimal 317) defining Unicode char U+013E (decimal 318) defining Unicode char U+0141 (decimal 321) defining Unicode char U+0142 (decimal 322) defining Unicode char U+0143 (decimal 323) defining Unicode char U+0144 (decimal 324) + defining Unicode char U+0145 (decimal 325) + defining Unicode char U+0146 (decimal 326) defining Unicode char U+0147 (decimal 327) defining Unicode char U+0148 (decimal 328) defining Unicode char U+014A (decimal 330) defining Unicode char U+014B (decimal 331) + defining Unicode char U+014C (decimal 332) + defining Unicode char U+014D (decimal 333) + defining Unicode char U+014E (decimal 334) + defining Unicode char U+014F (decimal 335) defining Unicode char U+0150 (decimal 336) defining Unicode char U+0151 (decimal 337) defining Unicode char U+0152 (decimal 338) defining Unicode char U+0153 (decimal 339) defining Unicode char U+0154 (decimal 340) defining Unicode char U+0155 (decimal 341) + defining Unicode char U+0156 (decimal 342) + defining Unicode char U+0157 (decimal 343) defining Unicode char U+0158 (decimal 344) defining Unicode char U+0159 (decimal 345) defining Unicode char U+015A (decimal 346) defining Unicode char U+015B (decimal 347) + defining Unicode char U+015C (decimal 348) + defining Unicode char U+015D (decimal 349) defining Unicode char U+015E (decimal 350) defining Unicode char U+015F (decimal 351) defining Unicode char U+0160 (decimal 352) @@ -162,10 +205,22 @@ File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+0163 (decimal 355) defining Unicode char U+0164 (decimal 356) defining Unicode char U+0165 (decimal 357) + defining Unicode char U+0168 (decimal 360) + defining Unicode char U+0169 (decimal 361) + defining Unicode char U+016A (decimal 362) + defining Unicode char U+016B (decimal 363) + defining Unicode char U+016C (decimal 364) + defining Unicode char U+016D (decimal 365) defining Unicode char U+016E (decimal 366) defining Unicode char U+016F (decimal 367) defining Unicode char U+0170 (decimal 368) defining Unicode char U+0171 (decimal 369) + defining Unicode char U+0172 (decimal 370) + defining Unicode char U+0173 (decimal 371) + defining Unicode char U+0174 (decimal 372) + defining Unicode char U+0175 (decimal 373) + defining Unicode char U+0176 (decimal 374) + defining Unicode char U+0177 (decimal 375) defining Unicode char U+0178 (decimal 376) defining Unicode char U+0179 (decimal 377) defining Unicode char U+017A (decimal 378) @@ -173,9 +228,40 @@ File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+017C (decimal 380) defining Unicode char U+017D (decimal 381) defining Unicode char U+017E (decimal 382) + defining Unicode char U+01CD (decimal 461) + defining Unicode char U+01CE (decimal 462) + defining Unicode char U+01CF (decimal 463) + defining Unicode char U+01D0 (decimal 464) + defining Unicode char U+01D1 (decimal 465) + defining Unicode char U+01D2 (decimal 466) + defining Unicode char U+01D3 (decimal 467) + defining Unicode char U+01D4 (decimal 468) + defining Unicode char U+01E2 (decimal 482) + defining Unicode char U+01E3 (decimal 483) + defining Unicode char U+01E6 (decimal 486) + defining Unicode char U+01E7 (decimal 487) + defining Unicode char U+01E8 (decimal 488) + defining Unicode char U+01E9 (decimal 489) + defining Unicode char U+01EA (decimal 490) + defining Unicode char U+01EB (decimal 491) + defining Unicode char U+01F0 (decimal 496) + defining Unicode char U+01F4 (decimal 500) + defining Unicode char U+01F5 (decimal 501) + defining Unicode char U+0218 (decimal 536) + defining Unicode char U+0219 (decimal 537) + defining Unicode char U+021A (decimal 538) + defining Unicode char U+021B (decimal 539) + defining Unicode char U+0232 (decimal 562) + defining Unicode char U+0233 (decimal 563) + defining Unicode char U+1E02 (decimal 7682) + defining Unicode char U+1E03 (decimal 7683) defining Unicode char U+200C (decimal 8204) + defining Unicode char U+2010 (decimal 8208) + defining Unicode char U+2011 (decimal 8209) + defining Unicode char U+2012 (decimal 8210) defining Unicode char U+2013 (decimal 8211) defining Unicode char U+2014 (decimal 8212) + defining Unicode char U+2015 (decimal 8213) defining Unicode char U+2018 (decimal 8216) defining Unicode char U+2019 (decimal 8217) defining Unicode char U+201A (decimal 8218) @@ -187,14 +273,18 @@ File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+2039 (decimal 8249) defining Unicode char U+203A (decimal 8250) defining Unicode char U+2423 (decimal 9251) + defining Unicode char U+1E20 (decimal 7712) + defining Unicode char U+1E21 (decimal 7713) ) Now handling font encoding OT1 ... ... processing UTF-8 mapping file for font encoding OT1 (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu -File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc +File: ot1enc.dfu 2017/01/28 v1.1t UTF-8 support for inputenc + defining Unicode char U+00A0 (decimal 160) defining Unicode char U+00A1 (decimal 161) defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00AD (decimal 173) defining Unicode char U+00B8 (decimal 184) defining Unicode char U+00BF (decimal 191) defining Unicode char U+00C5 (decimal 197) @@ -212,6 +302,14 @@ File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+0142 (decimal 322) defining Unicode char U+0152 (decimal 338) defining Unicode char U+0153 (decimal 339) + defining Unicode char U+0174 (decimal 372) + defining Unicode char U+0175 (decimal 373) + defining Unicode char U+0176 (decimal 374) + defining Unicode char U+0177 (decimal 375) + defining Unicode char U+0218 (decimal 536) + defining Unicode char U+0219 (decimal 537) + defining Unicode char U+021A (decimal 538) + defining Unicode char U+021B (decimal 539) defining Unicode char U+2013 (decimal 8211) defining Unicode char U+2014 (decimal 8212) defining Unicode char U+2018 (decimal 8216) @@ -223,7 +321,7 @@ Now handling font encoding OMS ... ... processing UTF-8 mapping file for font encoding OMS (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu -File: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc +File: omsenc.dfu 2017/01/28 v1.1t UTF-8 support for inputenc defining Unicode char U+00A7 (decimal 167) defining Unicode char U+00B6 (decimal 182) defining Unicode char U+00B7 (decimal 183) @@ -247,52 +345,57 @@ Now handling font encoding U ... defining Unicode char U+2423 (decimal 9251) )) defining Unicode char U+00A0 (decimal 160) + defining Unicode char U+2500 (decimal 9472) + defining Unicode char U+2502 (decimal 9474) + defining Unicode char U+2514 (decimal 9492) + defining Unicode char U+251C (decimal 9500) + defining Unicode char U+2572 (decimal 9586) (/usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty Package: cmap 2008/03/06 v1.0h CMap support: searchable PDF ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2005/09/27 v1.99g Standard LaTeX package +Package: fontenc 2017/04/05 v2.0i Standard LaTeX package (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def -File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file -LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +File: t1enc.def 2017/04/05 v2.0i Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. )<<t1.cmap>>) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty -Package: amsmath 2013/01/14 v2.14 AMS math features +Package: amsmath 2017/09/02 v2.17a AMS math features \@mathmargin=\skip43 For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty -Package: amstext 2000/06/29 v2.01 +Package: amstext 2000/06/29 v2.01 AMS text (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty -File: amsgen.sty 1999/11/30 v2.0 +File: amsgen.sty 1999/11/30 v2.0 generic functions \@emptytoks=\toks16 \ex@=\dimen103 )) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty -Package: amsbsy 1999/11/29 v1.2d +Package: amsbsy 1999/11/29 v1.2d Bold Symbols \pmbraise@=\dimen104 ) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty -Package: amsopn 1999/12/14 v2.01 operator names +Package: amsopn 2016/03/08 v2.02 operator names ) \inf@bad=\count88 -LaTeX Info: Redefining \frac on input line 210. +LaTeX Info: Redefining \frac on input line 213. \uproot@=\count89 \leftroot@=\count90 -LaTeX Info: Redefining \overline on input line 306. +LaTeX Info: Redefining \overline on input line 375. \classnum@=\count91 \DOTSCASE@=\count92 -LaTeX Info: Redefining \ldots on input line 378. -LaTeX Info: Redefining \dots on input line 381. -LaTeX Info: Redefining \cdots on input line 466. +LaTeX Info: Redefining \ldots on input line 472. +LaTeX Info: Redefining \dots on input line 475. +LaTeX Info: Redefining \cdots on input line 596. \Mathstrutbox@=\box26 \strutbox@=\box27 \big@size=\dimen105 -LaTeX Font Info: Redeclaring font encoding OML on input line 566. -LaTeX Font Info: Redeclaring font encoding OMS on input line 567. +LaTeX Font Info: Redeclaring font encoding OML on input line 712. +LaTeX Font Info: Redeclaring font encoding OMS on input line 713. \macc@depth=\count93 \c@MaxMatrixCols=\count94 \dotsspace@=\muskip10 @@ -313,8 +416,8 @@ LaTeX Font Info: Redeclaring font encoding OMS on input line 567. \multlinegap=\skip44 \multlinetaggap=\skip45 \mathdisplay@stack=\toks20 -LaTeX Info: Redefining \[ on input line 2665. -LaTeX Info: Redefining \] on input line 2666. +LaTeX Info: Redefining \[ on input line 2817. +LaTeX Info: Redefining \] on input line 2818. ) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty Package: amssymb 2013/01/14 v3.01 AMS font symbols @@ -327,16 +430,24 @@ 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/texlive/texmf-dist/tex/generic/babel/babel.sty -Package: babel 2013/12/03 3.9h The Babel package +Package: babel 2018/02/14 3.18 The Babel package +(/usr/share/texlive/texmf-dist/tex/generic/babel/switch.def +File: switch.def 2018/02/14 3.18 Babel switching mechanism +) (/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf -Language: english 2012/08/20 v3.3p English support from the babel system +Language: english 2017/06/06 v3.3r English support from the babel system (/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def -File: babel.def 2013/12/03 3.9h Babel common definitions +File: babel.def 2018/02/14 3.18 Babel common definitions \babel@savecnt=\count100 \U@D=\dimen112 + +(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@dirlevel=\count101 ) +\l@british = a dialect from \language\l@english +\l@UKenglish = a dialect from \language\l@english \l@canadian = a dialect from \language\l@american \l@australian = a dialect from \language\l@british \l@newzealand = a dialect from \language\l@british @@ -352,42 +463,53 @@ Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters) \py=\skip50 \pyy=\skip51 \pxx=\skip52 -\c@AlphaCnt=\count101 -\c@AlphaDecCnt=\count102 +\c@AlphaCnt=\count102 +\c@AlphaDecCnt=\count103 ) -(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty -Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC) -\LTleft=\skip53 -\LTright=\skip54 -\LTpre=\skip55 -\LTpost=\skip56 -\LTchunksize=\count103 -\LTcapwidth=\dimen113 -\LT@head=\box28 -\LT@firsthead=\box29 -\LT@foot=\box30 -\LT@lastfoot=\box31 -\LT@cols=\count104 -\LT@rows=\count105 -\c@LT@tables=\count106 -\c@LT@chunks=\count107 -\LT@p@ftn=\toks21 -) (./sphinx.sty -Package: sphinx 2010/01/15 LaTeX package (Sphinx markup) +(./sphinx.sty +Package: sphinx 2019/01/12 v1.8.4 LaTeX package (Sphinx markup) + (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks21 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/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 99. +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen113 +\Gin@req@width=\dimen114 +) (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty -\fancy@headwidth=\skip57 -\f@ncyO@elh=\skip58 -\f@ncyO@erh=\skip59 -\f@ncyO@olh=\skip60 -\f@ncyO@orh=\skip61 -\f@ncyO@elf=\skip62 -\f@ncyO@erf=\skip63 -\f@ncyO@olf=\skip64 -\f@ncyO@orf=\skip65 +Package: fancyhdr 2017/06/30 v3.9a Extensive control of page headers and footer +s +\f@nch@headwidth=\skip53 +\f@nch@O@elh=\skip54 +\f@nch@O@erh=\skip55 +\f@nch@O@olh=\skip56 +\f@nch@O@orh=\skip57 +\f@nch@O@elf=\skip58 +\f@nch@O@erf=\skip59 +\f@nch@O@olf=\skip60 +\f@nch@O@orf=\skip61 ) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty -Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package: textcomp 2017/04/05 v2.0i Standard LaTeX package Package textcomp Info: Sub-encoding information: (textcomp) 5 = only ISO-Adobe without \textcurrency (textcomp) 4 = 5 + \texteuro @@ -399,7 +521,7 @@ Package textcomp Info: Sub-encoding information: (textcomp) only a restricted character set as indicated. (textcomp) Family '?' is the default used for unknown fonts. (textcomp) See the documentation for details. -Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file @@ -407,7 +529,7 @@ Now handling font encoding TS1 ... ... processing UTF-8 mapping file for font encoding TS1 (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu -File: ts1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc +File: ts1enc.dfu 2017/01/28 v1.1t UTF-8 support for inputenc defining Unicode char U+00A2 (decimal 162) defining Unicode char U+00A3 (decimal 163) defining Unicode char U+00A4 (decimal 164) @@ -478,182 +600,186 @@ File: ts1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+25EF (decimal 9711) defining Unicode char U+266A (decimal 9834) )) -LaTeX Info: Redefining \oldstylenums on input line 266. -Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. -Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. -Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. -Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. -Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. -Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. -Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. -Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. -Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. -Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. -Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. -Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. -Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. -Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. -Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. -Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. -Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. -Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. -Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. -Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. -Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. -Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. -Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. -Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. - -Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. -Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. -Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. -Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. -Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. -Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. -Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 311. -Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 312. -Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 313. -Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 314. -Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 315. -Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 316. -Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 317. -Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 318. -Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 319. -Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 320. -Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 321. -Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 322. -Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 323. -Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 324. -Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 325. -Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 326. -Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 327. -Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 328. -Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 329. -Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 330. -Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 331. -Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 332. -Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 333. -Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 334. -Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 335. -Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 336. -Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 337. -Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 338. -Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 339. -Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 340. -) -(/usr/share/texlive/texmf-dist/tex/latex/fancybox/fancybox.sty -Package: fancybox 2010/05/15 1.4 - -Style option: `fancybox' v1.4 <2010/05/15> (tvz) -\@fancybox=\box32 -\shadowsize=\dimen114 -\@Sbox=\box33 -\do@VerbBox=\toks22 -\the@fancyput=\toks23 -\this@fancyput=\toks24 -\EndVerbatimTokens=\toks25 -\Verbatim@Outfile=\write3 -\Verbatim@Infile=\read1 -) (/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty -Package: titlesec 2011/12/15 v2.10.0 Sectioning titles -\ttl@box=\box34 -\beforetitleunit=\skip66 -\aftertitleunit=\skip67 +LaTeX Info: Redefining \oldstylenums on input line 334. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383. +Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. +) +(/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty +Package: titlesec 2016/03/21 v2.10.2 Sectioning titles +\ttl@box=\box28 +\beforetitleunit=\skip62 +\aftertitleunit=\skip63 \ttl@plus=\dimen115 \ttl@minus=\dimen116 -\ttl@toksa=\toks26 +\ttl@toksa=\toks22 \titlewidth=\dimen117 \titlewidthlast=\dimen118 \titlewidthfirst=\dimen119 -) -(./tabulary.sty +) (./tabulary.sty Package: tabulary 2008/12/01 v0.9 tabulary package (DPC) - (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty -Package: array 2008/09/09 v2.4c Tabular extension package (FMi) +(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +Package: array 2016/10/06 v2.4d Tabular extension package (FMi) \col@sep=\dimen120 \extrarowheight=\dimen121 -\NC@list=\toks27 -\extratabsurround=\skip68 -\backup@length=\skip69 +\NC@list=\toks23 +\extratabsurround=\skip64 +\backup@length=\skip65 ) -\TY@count=\count108 +\TY@count=\count104 \TY@linewidth=\dimen122 \tymin=\dimen123 \tymax=\dimen124 \TY@tablewidth=\dimen125 ) +(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty +Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC) +\LTleft=\skip66 +\LTright=\skip67 +\LTpre=\skip68 +\LTpost=\skip69 +\LTchunksize=\count105 +\LTcapwidth=\dimen126 +\LT@head=\box29 +\LT@firsthead=\box30 +\LT@foot=\box31 +\LT@lastfoot=\box32 +\LT@cols=\count106 +\LT@rows=\count107 +\c@LT@tables=\count108 +\c@LT@chunks=\count109 +\LT@p@ftn=\toks24 +) +(/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages +\@vwid@box=\box33 +\sift@deathcycles=\count110 +\@vwid@loff=\dimen127 +\@vwid@roff=\dimen128 +) +(./sphinxmulticell.sty +Package: sphinxmulticell 2017/02/23 v1.6 better span rows and columns of a tabl +e (Sphinx team) +\sphinx@TY@tablewidth=\dimen129 +) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty -Package: makeidx 2000/03/29 v1.0m Standard LaTeX package +Package: makeidx 2014/09/29 v1.0m Standard LaTeX package ) (/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks \OuterFrameSep=\skip70 -\fb@frw=\dimen126 -\fb@frh=\dimen127 -\FrameRule=\dimen128 -\FrameSep=\dimen129 +\fb@frw=\dimen130 +\fb@frh=\dimen131 +\FrameRule=\dimen132 +\FrameSep=\dimen133 ) -(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty -Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) -) -(/usr/share/texmf/tex/latex/xcolor/xcolor.sty -Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg -File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +(/usr/share/texlive/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 225. - -(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def -File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty -Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty -Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) -) -\Gread@gobject=\count109 -) -Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. -Package xcolor Info: Model `RGB' extended on input line 1353. -Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. -Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. -Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. -Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. -Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. -Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. ) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Package: fancyvrb 2008/02/07 Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix -<2008/02/07> (tvz) (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 1999/03/16 v1.13 key=value parser (DPC) -\KV@toks@=\toks28 -) -\FV@CodeLineNo=\count110 -\FV@InFile=\read2 -\FV@TabBox=\box35 -\c@FancyVerbLine=\count111 -\FV@StepNumber=\count112 -\FV@OutFile=\write4 -) (/usr/share/texlive/texmf-dist/tex/latex/threeparttable/threeparttable.sty -Package: threeparttable 2003/06/13 v 3.0 -\@tempboxb=\box36 -) -(/usr/share/texlive/texmf-dist/tex/latex/mdwtools/footnote.sty -Package: footnote 1997/01/28 1.13 Save footnotes around boxes -\fn@notes=\box37 -\fn@width=\dimen130 +<2008/02/07> (tvz) +\FV@CodeLineNo=\count111 +\FV@InFile=\read1 +\FV@TabBox=\box34 +\c@FancyVerbLine=\count112 +\FV@StepNumber=\count113 +\FV@OutFile=\write3 +) (./footnotehyper-sphinx.sty +Package: footnotehyper-sphinx 2017/10/27 v1.7 hyperref aware footnote.sty for s +phinx (JFB) +\FNH@notes=\box35 +\FNH@width=\dimen134 +) +(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count114 +\float@exts=\toks25 +\float@box=\box36 +\@float@everytoks=\toks26 +\@floatcapt=\box37 ) (/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty -\wrapoverhang=\dimen131 -\WF@size=\dimen132 -\c@WF@wrappedlines=\count113 +\wrapoverhang=\dimen135 +\WF@size=\dimen136 +\c@WF@wrappedlines=\count115 \WF@box=\box38 -\WF@everypar=\toks29 +\WF@everypar=\toks27 Package: wrapfig 2003/01/31 v 3.6 ) (/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty @@ -666,329 +792,357 @@ Package: alltt 1997/06/16 v2.0g defines alltt environment Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba tim ) -(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty -Package: float 2001/11/08 v1.3d Float enhancements (AL) -\c@float@type=\count114 -\float@exts=\toks30 -\float@box=\box39 -\@float@everytoks=\toks31 -\@floatcapt=\box40 +(/usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty +Package: capt-of 2009/12/29 v0.2 standard captions outside of floats +) (./needspace.sty +Package: needspace 2010/09/12 v1.3d reserve vertical space +) (/usr/share/texlive/texmf-dist/tex/latex/carlisle/remreset.sty) +(./sphinxhighlight.sty +Package: sphinxhighlight 2016/05/29 stylesheet for highlighting with pygments ) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty -Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) ) -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg -File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +))) +\sphinxverbatimsep=\dimen137 +\sphinxverbatimborder=\dimen138 +\sphinxshadowsep=\dimen139 +\sphinxshadowsize=\dimen140 +\sphinxshadowrule=\dimen141 +\spx@notice@border=\dimen142 +\spx@image@box=\box39 +\spx@image@maxheight=\dimen143 +\c@literalblock=\count116 +\sphinxcontinuationbox=\box40 +\sphinxvisiblespacebox=\box41 +\sphinxVerbatim@TitleBox=\box42 +\py@argswidth=\skip71 +\lineblockindentation=\skip72 +\DUlineblockindent=\skip73 +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/09/12 v5.6 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. ) -Package graphics Info: Driver file: pdftex.def on input line 91. +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional ) -\Gin@req@height=\dimen133 -\Gin@req@width=\dimen134 +\Gm@cnth=\count117 +\Gm@cntv=\count118 +\c@Gm@tempcnt=\count119 +\Gm@bindingoffset=\dimen144 +\Gm@wd@mp=\dimen145 +\Gm@odd@mp=\dimen146 +\Gm@even@mp=\dimen147 +\Gm@layoutwidth=\dimen148 +\Gm@layoutheight=\dimen149 +\Gm@layouthoffset=\dimen150 +\Gm@layoutvoffset=\dimen151 +\Gm@dimlist=\toks28 ) -(/usr/share/texlive/texmf-dist/tex/plain/misc/pdfcolor.tex) -\sphinxcontinuationbox=\box41 -\sphinxvisiblespacebox=\box42 -\sphinxshadowsep=\skip71 -\sphinxshadowsize=\skip72 -\sphinxshadowrule=\skip73 -\py@argswidth=\skip74 -\lineblockindentation=\skip75 -\spx@image@box=\box43 - (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX +Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty -Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) +Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty -Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) -Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) +Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) +Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) Package hobsub Info: Skipping package `infwarerr' (already loaded). Package hobsub Info: Skipping package `ltxcmds' (already loaded). -Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) -Package ifluatex Info: LuaTeX not detected. -Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) -Package ifvtex Info: VTeX not detected. -Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) -Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) -Package ifpdf Info: pdfTeX in PDF mode is detected. -Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) -Package etexcmds Info: Could not find \expanded. -(etexcmds) That can mean that you are not using pdfTeX 1.50 or -(etexcmds) that some package has redefined \expanded. -(etexcmds) In the latter case, load this package earlier. -Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) -Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) -Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +Package hobsub Info: Skipping package `ifluatex' (already loaded). +Package hobsub Info: Skipping package `ifvtex' (already loaded). +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package hobsub Info: Skipping package `etexcmds' (already loaded). +Package hobsub Info: Skipping package `kvsetkeys' (already loaded). +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +Package: pdftexcmds 2018/01/21 v0.26 Utility functions of pdfTeX for LuaTeX (HO ) Package pdftexcmds Info: LuaTeX not detected. Package pdftexcmds Info: \pdf@primitive is available. Package pdftexcmds Info: \pdf@ifprimitive is available. Package pdftexcmds Info: \pdfdraftmode found. -Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) -Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO +Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO ) -Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) -Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) ) Package hobsub Info: Skipping package `hobsub' (already loaded). -Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) -Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) -Package: xcolor-patch 2011/01/30 xcolor patch -Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) +Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +Package: xcolor-patch 2016/05/16 xcolor patch +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) Package atveryend Info: \enddocument detected (standard20110627). -Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) -Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) -Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty -Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty -Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty -Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) ) -\@linkdim=\dimen135 -\Hy@linkcounter=\count115 -\Hy@pagecounter=\count116 +\@linkdim=\dimen152 +\Hy@linkcounter=\count120 +\Hy@pagecounter=\count121 (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO) +File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO) Now handling font encoding PD1 ... ... no UTF-8 mapping file for font encoding PD1 ) -\Hy@SavedSpaceFactor=\count117 +\Hy@SavedSpaceFactor=\count122 (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive ) -Package hyperref Info: Option `unicode' set `true' on input line 4319. +Package hyperref Info: Option `unicode' set `true' on input line 4383. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def -File: puenc.def 2012/11/06 v6.83m Hyperref: PDF Unicode definition (HO) +File: puenc.def 2018/02/06 v6.86b Hyperref: PDF Unicode definition (HO) Now handling font encoding PU ... ... no UTF-8 mapping file for font encoding PU ) -Package hyperref Info: Option `colorlinks' set `true' on input line 4319. -Package hyperref Info: Option `breaklinks' set `true' on input line 4319. -Package hyperref Info: Hyper figures OFF on input line 4443. -Package hyperref Info: Link nesting OFF on input line 4448. -Package hyperref Info: Hyper index ON on input line 4451. -Package hyperref Info: Plain pages OFF on input line 4458. -Package hyperref Info: Backreferencing OFF on input line 4463. +Package hyperref Info: Option `colorlinks' set `true' on input line 4383. +Package hyperref Info: Option `breaklinks' set `true' on input line 4383. +Package hyperref Info: Hyper figures OFF on input line 4509. +Package hyperref Info: Link nesting OFF on input line 4514. +Package hyperref Info: Hyper index ON on input line 4517. +Package hyperref Info: Plain pages OFF on input line 4524. +Package hyperref Info: Backreferencing OFF on input line 4529. Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4688. -\c@Hy@tempcnt=\count118 +Package hyperref Info: Bookmarks ON on input line 4762. +\c@Hy@tempcnt=\count123 (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty \Urlmuskip=\muskip11 Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. ) -LaTeX Info: Redefining \url on input line 5041. -\XeTeXLinkMargin=\dimen136 -\Fld@menulength=\count119 -\Field@Width=\dimen137 -\Fld@charsize=\dimen138 -Package hyperref Info: Hyper figures OFF on input line 6295. -Package hyperref Info: Link nesting OFF on input line 6300. -Package hyperref Info: Hyper index ON on input line 6303. -Package hyperref Info: backreferencing OFF on input line 6310. -Package hyperref Info: Link coloring ON on input line 6313. -Package hyperref Info: Link coloring with OCG OFF on input line 6320. -Package hyperref Info: PDF/A mode OFF on input line 6325. -LaTeX Info: Redefining \ref on input line 6365. -LaTeX Info: Redefining \pageref on input line 6369. -\Hy@abspage=\count120 -\c@Item=\count121 -\c@Hfootnote=\count122 -) - -Package hyperref Message: Driver (autodetected): hpdftex. +LaTeX Info: Redefining \url on input line 5115. +\XeTeXLinkMargin=\dimen153 +\Fld@menulength=\count124 +\Field@Width=\dimen154 +\Fld@charsize=\dimen155 +Package hyperref Info: Hyper figures OFF on input line 6369. +Package hyperref Info: Link nesting OFF on input line 6374. +Package hyperref Info: Hyper index ON on input line 6377. +Package hyperref Info: backreferencing OFF on input line 6384. +Package hyperref Info: Link coloring ON on input line 6387. +Package hyperref Info: Link coloring with OCG OFF on input line 6394. +Package hyperref Info: PDF/A mode OFF on input line 6399. +LaTeX Info: Redefining \ref on input line 6439. +LaTeX Info: Redefining \pageref on input line 6443. +\Hy@abspage=\count125 +\c@Item=\count126 +\c@Hfootnote=\count127 +) +Package hyperref Info: Driver (autodetected): hpdftex. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX -\Fld@listcount=\count123 -\c@bookmark@seq@number=\count124 +File: hpdftex.def 2018/02/06 v6.86b Hyperref driver for pdfTeX +\Fld@listcount=\count128 +\c@bookmark@seq@number=\count129 (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty -Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 82. ) -\Hy@SectionHShift=\skip76 +\Hy@SectionHShift=\skip74 ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty -Package: hypcap 2011/02/16 v1.11 Adjusting the anchors of captions (HO) -) -\DUlineblockindent=\skip77 - (./newfloat.sty -Package: newfloat 2015/09/17 v1.1-109 Defining new floating environments (AR) -) -Package newfloat Info: New float `literal-block' with options `' on input line -874. -\c@literal-block=\count125 -Package newfloat Info: float type `literal-block'=4 on input line 874. - -(/usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty -Package: capt-of 2009/12/29 v0.2 standard captions outside of floats -) (./needspace.sty -Package: needspace 2010/09/12 v1.3d reserve vertical space +Package: hypcap 2016/05/16 v1.12 Adjusting the anchors of captions (HO) ) -** (sphinx) defining (legacy) text style macros without \sphinx prefix -** if clashes with packages, set latex_keep_old_macro_names=False in conf.py -) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty -\bigstrutjot=\dimen139 -) -(/usr/share/texlive/texmf-dist/tex/latex/eqparbox/eqparbox.sty -Package: eqparbox 2013/03/15 v4.0 Create equal-widthed boxes -\eqp@tempdima=\skip78 -\eqp@tempdimb=\skip79 -\eqp@tabular@box=\box44 -\eqp@list@box=\box45 -\eqp@list@indent=\skip80 - -(/usr/share/texlive/texmf-dist/tex/latex/environ/environ.sty -Package: environ 2013/04/01 v0.3 A new environment syntax - -(/usr/share/texlive/texmf-dist/tex/latex/trimspaces/trimspaces.sty -Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list -))) -\@indexfile=\write5 -\openout5 = `MindstormsEV3Toolbox.idx'. +\@indexfile=\write4 +\openout4 = `MindstormsEV3Toolbox.idx'. Writing index file MindstormsEV3Toolbox.idx (./MindstormsEV3Toolbox.aux) \openout1 = `MindstormsEV3Toolbox.aux'. -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 140. -LaTeX Font Info: Try loading font information for TS1+cmr on input line 140. - +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 67. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 67. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 67. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 67. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 67. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 67. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 67. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 67. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd -File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions +File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions ) -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Try loading font information for T1+ptm on input line 140. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 67. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 67. +LaTeX Font Info: ... okay on input line 67. +LaTeX Font Info: Try loading font information for T1+ptm on input line 67. (/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd File: t1ptm.fd 2001/06/04 font definitions for T1/ptm. ) -(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count126 -\scratchdimen=\dimen140 -\scratchbox=\box46 -\nofMPsegments=\count127 -\nofMParguments=\count128 -\everyMPshowfont=\toks32 -\MPscratchCnt=\count129 -\MPscratchDim=\dimen141 -\MPnumerator=\count130 -\makeMPintoPDFobject=\count131 -\everyMPtoPDFconversion=\toks33 +\scratchcounter=\count130 +\scratchdimen=\dimen156 +\scratchbox=\box43 +\nofMPsegments=\count131 +\nofMParguments=\count132 +\everyMPshowfont=\toks29 +\MPscratchCnt=\count133 +\MPscratchDim=\dimen157 +\MPnumerator=\count134 +\makeMPintoPDFobject=\count135 +\everyMPtoPDFconversion=\toks30 ) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty -Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty -Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) ) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. Package grfext Info: Graphics extension search list: -(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE G,.JBIG2,.JB2,.eps] -(grfext) \AppendGraphicsExtensions on input line 452. +(grfext) \AppendGraphicsExtensions on input line 456. (/usr/share/texlive/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 )) -\AtBeginShipoutBox=\box47 -Package hyperref Info: Link coloring ON on input line 140. - +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: letterpaper +* layout: <same size as paper> +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: twoside +* h-part:(L,W,R)=(72.26999pt, 469.75502pt, 72.26999pt) +* v-part:(T,H,B)=(72.26999pt, 650.43001pt, 72.26999pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=469.75502pt +* \textheight=650.43001pt +* \oddsidemargin=0.0pt +* \evensidemargin=0.0pt +* \topmargin=-37.0pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=10.0pt +* \footskip=30.0pt +* \marginparwidth=36.135pt +* \marginparsep=11.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) + +\AtBeginShipoutBox=\box44 +Package hyperref Info: Link coloring ON on input line 67. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty -Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section +Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty -Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) ) -\c@section@level=\count132 +\c@section@level=\count136 ) -LaTeX Info: Redefining \ref on input line 140. -LaTeX Info: Redefining \pageref on input line 140. -LaTeX Info: Redefining \nameref on input line 140. +LaTeX Info: Redefining \ref on input line 67. +LaTeX Info: Redefining \pageref on input line 67. +LaTeX Info: Redefining \nameref on input line 67. (./MindstormsEV3Toolbox.out) (./MindstormsEV3Toolbox.out) -\@outlinefile=\write6 -\openout6 = `MindstormsEV3Toolbox.out'. +\@outlinefile=\write5 +\openout5 = `MindstormsEV3Toolbox.out'. -LaTeX Font Info: Try loading font information for T1+phv on input line 143. +Package hyperref Info: Option `pageanchor' set `false' on input line 70. +LaTeX Font Info: Try loading font information for T1+phv on input line 70. (/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv. ) LaTeX Font Info: Font shape `T1/phv/bx/n' in size <10> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 143. +(Font) Font shape `T1/phv/b/n' tried instead on input line 70. LaTeX Font Info: Font shape `T1/phv/bx/n' in size <24.88> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 143. +(Font) Font shape `T1/phv/b/n' tried instead on input line 70. LaTeX Font Info: Font shape `T1/phv/bx/it' in size <10> not available -(Font) Font shape `T1/phv/b/it' tried instead on input line 143. +(Font) Font shape `T1/phv/b/it' tried instead on input line 70. LaTeX Font Info: Font shape `T1/phv/b/it' in size <10> not available -(Font) Font shape `T1/phv/b/sl' tried instead on input line 143. +(Font) Font shape `T1/phv/b/sl' tried instead on input line 70. LaTeX Font Info: Font shape `T1/phv/bx/it' in size <17.28> not available -(Font) Font shape `T1/phv/b/it' tried instead on input line 143. +(Font) Font shape `T1/phv/b/it' tried instead on input line 70. LaTeX Font Info: Font shape `T1/phv/b/it' in size <17.28> not available -(Font) Font shape `T1/phv/b/sl' tried instead on input line 143. +(Font) Font shape `T1/phv/b/sl' tried instead on input line 70. LaTeX Font Info: Font shape `T1/phv/bx/n' in size <17.28> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 143. +(Font) Font shape `T1/phv/b/n' tried instead on input line 70. <<ot1.cmap>><<oml.cmap>><<oms.cmap>><<omx.cmap>> -LaTeX Font Info: Try loading font information for U+msa on input line 143. +LaTeX Font Info: Try loading font information for U+msa on input line 70. (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd File: umsa.fd 2013/01/14 v3.01 AMS symbols A ) -LaTeX Font Info: Try loading font information for U+msb on input line 143. +LaTeX Font Info: Try loading font information for U+msb on input line 70. (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd File: umsb.fd 2013/01/14 v3.01 AMS symbols B ) LaTeX Font Info: Font shape `T1/phv/bx/n' in size <12> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 143. +(Font) Font shape `T1/phv/b/n' tried instead on input line 70. [1 {/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2 -] (./MindstormsEV3Toolbox.toc + +] +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <14.4> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 72. + (./MindstormsEV3Toolbox.toc LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10> not available (Font) Font shape `T1/ptm/b/n' tried instead on input line 2. ) -\tf@toc=\write7 -\openout7 = `MindstormsEV3Toolbox.toc'. +\tf@toc=\write6 +\openout6 = `MindstormsEV3Toolbox.toc'. [1 @@ -999,97 +1153,180 @@ LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10> not available ] Chapter 1. -LaTeX Font Info: Font shape `T1/phv/bx/n' in size <14.4> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 152. -LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <14.4> not available -(Font) Font shape `T1/ptm/b/n' tried instead on input line 152. -LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <24.88> not available -(Font) Font shape `T1/ptm/b/n' tried instead on input line 152. -LaTeX Font Info: Try loading font information for T1+pcr on input line 1. +LaTeX Font Info: Try loading font information for T1+pcr on input line 91. (/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. ) LaTeX Font Info: Font shape `T1/pcr/bx/n' in size <10> not available -(Font) Font shape `T1/pcr/b/n' tried instead on input line 1. +(Font) Font shape `T1/pcr/b/n' tried instead on input line 91. LaTeX Font Info: Font shape `T1/ptm/bx/it' in size <10> not available -(Font) Font shape `T1/ptm/b/it' tried instead on input line 162. -LaTeX Font Info: Try loading font information for TS1+ptm on input line 163. - +(Font) Font shape `T1/ptm/b/it' tried instead on input line 92. +LaTeX Font Info: Try loading font information for TS1+ptm on input line 93. (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm. ) LaTeX Font Info: Font shape `T1/pcr/m/it' in size <10> not available -(Font) Font shape `T1/pcr/m/sl' tried instead on input line 1. - [3] [4] -Underfull \hbox (badness 10000) in paragraph at lines 359--361 -[]\T1/pcr/b/n/10 serPort \T1/ptm/m/n/10 (\T1/pcr/m/sl/10 string in {'/dev/rfcom -m1', '/dev/rfcomm2', ...}\T1/ptm/m/n/10 ) -- +(Font) Font shape `T1/pcr/m/sl' tried instead on input line 143. + [3] +LaTeX Font Info: Font shape `T1/pcr/m/it' in size <9> not available +(Font) Font shape `T1/pcr/m/sl' tried instead on input line 309. +LaTeX Font Info: Try loading font information for TS1+pcr on input line 311. + + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1pcr.fd +File: ts1pcr.fd 2001/06/04 font definitions for TS1/pcr. +) [4] +LaTeX Font Info: Font shape `TS1/pcr/m/it' in size <10> not available +(Font) Font shape `TS1/pcr/m/sl' tried instead on input line 1. + +Underfull \hbox (badness 10000) in paragraph at lines 352--354 +[]\T1/pcr/b/n/10 serPort \T1/ptm/m/n/10 (\T1/pcr/m/sl/10 string in {\TS1/pcr/m/ +sl/10 '\T1/pcr/m/sl/10 /dev/rfcomm1\TS1/pcr/m/sl/10 '\T1/pcr/m/sl/10 , \TS1/pcr +/m/sl/10 '\T1/pcr/m/sl/10 /dev/rfcomm2\TS1/pcr/m/sl/10 '\T1/pcr/m/sl/10 , ...}\ +T1/ptm/m/n/10 ) ^^U [] +[5] +LaTeX Font Info: Font shape `T1/pcr/bx/n' in size <9> not available +(Font) Font shape `T1/pcr/b/n' tried instead on input line 422. -Underfull \hbox (badness 10000) in paragraph at lines 445--446 -[]\T1/pcr/b/n/10 batteryMode \T1/ptm/m/n/10 (\T1/pcr/m/sl/10 string in {'Voltag -e'/'Percentage'}\T1/ptm/m/n/10 ) -- see +Underfull \hbox (badness 10000) in paragraph at lines 438--439 +[]\T1/pcr/b/n/10 batteryMode \T1/ptm/m/n/10 (\T1/pcr/m/sl/10 string in {\TS1/pc +r/m/sl/10 '\T1/pcr/m/sl/10 Voltage\TS1/pcr/m/sl/10 '\T1/pcr/m/sl/10 /\TS1/pcr/m +/sl/10 '\T1/pcr/m/sl/10 Percentage\TS1/pcr/m/sl/10 '\T1/pcr/m/sl/10 }\T1/ptm/m/ +n/10 ) ^^U see [] -[5] [6] [7] [8] [9] [10] [11] [12] [13] [14] -Underfull \hbox (badness 10000) in paragraph at lines 1549--1551 -[]\T1/ptm/m/n/10 See also HI-DAPI.GETMANUFACTURERSSTRING, HI-DAPI.GETPRODUCTSTR -ING, HI- +[6] [7] [8] +Overfull \vbox (10.24121pt too high) detected at line 846 [] -[15] [16] [17] [18] [19] -Underfull \hbox (badness 5504) in paragraph at lines 2024--2026 -[]\T1/ptm/m/n/10 See also BT-BRICKIO.DEBUG, BT-BRICKIO.SERIALPORT, BT-BRICKIO.D -EVICENAME, BT- +[9] [10] [11] + +! LaTeX Error: Too deeply nested. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H <return> for immediate help. + ... + +l.1038 ...Default{]}}}] \leavevmode\begin{itemize} + +? H +You're in trouble here. Try typing <return> to proceed. +If that doesn't work, type X <return> to quit. +? +[12] [13] [14] [15] [16] [17] +Underfull \hbox (badness 10000) in paragraph at lines 1899--1901 +[]\T1/ptm/m/n/10 See also HI-DAPI.GETMANUFACTURERSSTRING, HI-DAPI.GETPRODUCTSTR +ING, HI- [] -[20] [21 +[18] [19] [20] [21] [22] [23] [24 +] [25 -] (./MindstormsEV3Toolbox.ind [22 +] (./MindstormsEV3Toolbox.ind [26 -] [23 +] +[27 -] [24 +] [28 ]) -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 2056. -Package atveryend Info: Empty hook `AfterLastShipout' on input line 2056. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 2454. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 2454. + (./MindstormsEV3Toolbox.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 2454. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 2454. -(./MindstormsEV3Toolbox.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 2056. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 2056. -Package rerunfilecheck Info: File `MindstormsEV3Toolbox.out' has not changed. -(rerunfilecheck) Checksum: 9719E66C3E78A64D7D70223B0833B074;820. -Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 2056. + +Package rerunfilecheck Warning: File `MindstormsEV3Toolbox.out' has changed. +(rerunfilecheck) Rerun to get outlines right +(rerunfilecheck) or use package `bookmark'. + +Package rerunfilecheck Info: Checksums for `MindstormsEV3Toolbox.out': +(rerunfilecheck) Before: 9719E66C3E78A64D7D70223B0833B074;820 +(rerunfilecheck) After: 81CE6DEF5ABC00452E1B0D30ABEE4B5F;820. + +LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. + +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 2454. ) Here is how much of TeX's memory you used: - 13536 strings out of 493304 - 185311 string characters out of 6139870 - 273034 words of memory out of 5000000 - 16512 multiletter control sequences out of 15000+600000 - 53871 words of font info for 71 fonts, out of 8000000 for 9000 - 958 hyphenation exceptions out of 8191 - 36i,12n,45p,527b,671s stack positions out of 5000i,500n,10000p,200000b,80000s -{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texliv -e/texmf-dist/fonts/type1/urw/courier/ucrb8a.pfb></usr/share/texlive/texmf-dist/ -fonts/type1/urw/courier/ucrr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/u -rw/courier/ucrro8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/ -uhvb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb> -</usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb></usr/share/ -texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-d -ist/fonts/type1/urw/times/utmbi8a.pfb></usr/share/texlive/texmf-dist/fonts/type -1/urw/times/utmr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utm -ri8a.pfb> -Output written on MindstormsEV3Toolbox.pdf (28 pages, 172860 bytes). + 13910 strings out of 494923 + 193339 string characters out of 6180742 + 303890 words of memory out of 5000000 + 16749 multiletter control sequences out of 15000+600000 + 54371 words of font info for 79 fonts, out of 8000000 for 9000 + 15 hyphenation exceptions out of 8191 + 37i,12n,45p,661b,770s stack positions out of 5000i,500n,10000p,200000b,80000s +pdfTeX warning (dest): name{section*.110} has been referenced but does not ex +ist, replaced by a fixed one + +pdfTeX warning (dest): name{section*.138} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.139} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.137} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.135} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.136} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.123} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.124} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.122} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.120} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.121} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.107} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.108} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.106} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.141} has been referenced but does not exis +t, replaced by a fixed one + +pdfTeX warning (dest): name{section*.140} has been referenced but does not exis +t, replaced by a fixed one + +{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texlive/ +texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/share/texlive/texmf-d +ist/fonts/type1/public/amsfonts/cm/cmsy5.pfb></usr/share/texlive/texmf-dist/fon +ts/type1/urw/courier/ucrb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/ +courier/ucrr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/courier/ucrro +8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvb8a.pfb></usr +/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb></usr/share/texl +ive/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb></usr/share/texlive/texmf-di +st/fonts/type1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/ +urw/times/utmbi8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr +8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb> +Output written on MindstormsEV3Toolbox.pdf (32 pages, 198431 bytes). PDF statistics: - 565 PDF objects out of 1000 (max. 8388607) - 514 compressed objects within 6 object streams - 180 named destinations out of 1000 (max. 500000) + 560 PDF objects out of 1000 (max. 8388607) + 503 compressed objects within 6 object streams + 159 named destinations out of 1000 (max. 500000) 93 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/docs/_build/latex/MindstormsEV3Toolbox.out b/docs/_build/latex/MindstormsEV3Toolbox.out index 22711f503c315e66f6cf13d69f069b33c3e64502..8a8bf11ae46737fd0d337f7edc0fc9c10bac89c9 100644 --- a/docs/_build/latex/MindstormsEV3Toolbox.out +++ b/docs/_build/latex/MindstormsEV3Toolbox.out @@ -5,5 +5,5 @@ \BOOKMARK [1][-]{section.1.4}{\376\377\000h\000i\000d\000a\000p\000i}{chapter.1}% 5 \BOOKMARK [1][-]{section.1.5}{\376\377\000u\000s\000b\000B\000r\000i\000c\000k\000I\000O}{chapter.1}% 6 \BOOKMARK [1][-]{section.1.6}{\376\377\000b\000t\000B\000r\000i\000c\000k\000I\000O}{chapter.1}% 7 -\BOOKMARK [0][-]{section*.140}{\376\377\000M\000A\000T\000L\000A\000B\000\040\000M\000o\000d\000u\000l\000e\000\040\000I\000n\000d\000e\000x}{}% 8 -\BOOKMARK [0][-]{section*.141}{\376\377\000I\000n\000d\000e\000x}{}% 9 +\BOOKMARK [0][-]{section*.104}{\376\377\000M\000A\000T\000L\000A\000B\000\040\000M\000o\000d\000u\000l\000e\000\040\000I\000n\000d\000e\000x}{}% 8 +\BOOKMARK [0][-]{section*.105}{\376\377\000I\000n\000d\000e\000x}{}% 9 diff --git a/docs/_build/latex/MindstormsEV3Toolbox.pdf b/docs/_build/latex/MindstormsEV3Toolbox.pdf index 64c49bfd6bd2fad0db48d27192caf8c1c3a17138..3513e74daba473f362b58964b73af02516c37268 100644 Binary files a/docs/_build/latex/MindstormsEV3Toolbox.pdf and b/docs/_build/latex/MindstormsEV3Toolbox.pdf differ diff --git a/docs/_build/latex/MindstormsEV3Toolbox.tex b/docs/_build/latex/MindstormsEV3Toolbox.tex index 6cf917ea3ef6ba93136fdcfdcaba0ff04acd98e2..d2c830026ba482aa38540a6ab69c4270326d9ac9 100644 --- a/docs/_build/latex/MindstormsEV3Toolbox.tex +++ b/docs/_build/latex/MindstormsEV3Toolbox.tex @@ -1,14 +1,21 @@ -% Generated by Sphinx. +%% Generated by Sphinx. \def\sphinxdocclass{report} -\newif\ifsphinxKeepOldNames \sphinxKeepOldNamestrue \documentclass[letterpaper,10pt,english]{sphinxmanual} -\usepackage{iftex} +\ifdefined\pdfpxdimen + \let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen +\fi \sphinxpxdimen=.75bp\relax -\ifPDFTeX - \usepackage[utf8]{inputenc} -\fi +\PassOptionsToPackage{warn}{textcomp} +\usepackage[utf8]{inputenc} \ifdefined\DeclareUnicodeCharacter - \DeclareUnicodeCharacter{00A0}{\nobreakspace} +% support both utf8 and utf8x syntaxes +\edef\sphinxdqmaybe{\ifdefined\DeclareUnicodeCharacterAsOptional\string"\fi} + \DeclareUnicodeCharacter{\sphinxdqmaybe00A0}{\nobreakspace} + \DeclareUnicodeCharacter{\sphinxdqmaybe2500}{\sphinxunichar{2500}} + \DeclareUnicodeCharacter{\sphinxdqmaybe2502}{\sphinxunichar{2502}} + \DeclareUnicodeCharacter{\sphinxdqmaybe2514}{\sphinxunichar{2514}} + \DeclareUnicodeCharacter{\sphinxdqmaybe251C}{\sphinxunichar{251C}} + \DeclareUnicodeCharacter{\sphinxdqmaybe2572}{\textbackslash} \fi \usepackage{cmap} \usepackage[T1]{fontenc} @@ -16,173 +23,96 @@ \usepackage{babel} \usepackage{times} \usepackage[Bjarne]{fncychap} -\usepackage{longtable} \usepackage{sphinx} -\usepackage{multirow} -\usepackage{eqparbox} +\fvset{fontsize=\small} +\usepackage{geometry} + +% Include hyperref last. +\usepackage{hyperref} +% Fix anchor placement for figures with captions. +\usepackage{hypcap}% it must be loaded after hyperref. +% Set up styles of URL: it should be placed after hyperref. +\urlstyle{same} \addto\captionsenglish{\renewcommand{\figurename}{Fig.\@ }} +\makeatletter +\def\fnum@figure{\figurename\thefigure{}} +\makeatother \addto\captionsenglish{\renewcommand{\tablename}{Table }} -\SetupFloatingEnvironment{literal-block}{name=Listing } +\makeatletter +\def\fnum@table{\tablename\thetable{}} +\makeatother +\addto\captionsenglish{\renewcommand{\literalblockname}{Listing}} + +\addto\captionsenglish{\renewcommand{\literalblockcontinuedname}{continued from previous page}} +\addto\captionsenglish{\renewcommand{\literalblockcontinuesname}{continues on next page}} +\addto\captionsenglish{\renewcommand{\sphinxnonalphabeticalgroupname}{Non-alphabetical}} +\addto\captionsenglish{\renewcommand{\sphinxsymbolsname}{Symbols}} +\addto\captionsenglish{\renewcommand{\sphinxnumbersname}{Numbers}} \addto\extrasenglish{\def\pageautorefname{page}} \setcounter{tocdepth}{1} + \title{Mindstorms EV3 Toolbox Documentation} -\date{Aug 15, 2017} +\date{Jan 27, 2020} \release{v1.0} \author{LfB - RWTH Aachen} -\newcommand{\sphinxlogo}{} +\newcommand{\sphinxlogo}{\vbox{}} \renewcommand{\releasename}{Release} \makeindex - -\makeatletter -\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% - \let\PYG@ul=\relax \let\PYG@tc=\relax% - \let\PYG@bc=\relax \let\PYG@ff=\relax} -\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} -\def\PYG@toks#1+{\ifx\relax#1\empty\else% - \PYG@tok{#1}\expandafter\PYG@toks\fi} -\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% - \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} -\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} - -\expandafter\def\csname PYG@tok@gd\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} -\expandafter\def\csname PYG@tok@gu\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} -\expandafter\def\csname PYG@tok@gt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} -\expandafter\def\csname PYG@tok@gs\endcsname{\let\PYG@bf=\textbf} -\expandafter\def\csname PYG@tok@gr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} -\expandafter\def\csname PYG@tok@cm\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@vg\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\expandafter\def\csname PYG@tok@vi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\expandafter\def\csname PYG@tok@mh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@cs\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}} -\expandafter\def\csname PYG@tok@ge\endcsname{\let\PYG@it=\textit} -\expandafter\def\csname PYG@tok@vc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\expandafter\def\csname PYG@tok@il\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@go\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}} -\expandafter\def\csname PYG@tok@cp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@gi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} -\expandafter\def\csname PYG@tok@gh\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} -\expandafter\def\csname PYG@tok@ni\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}} -\expandafter\def\csname PYG@tok@nl\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}} -\expandafter\def\csname PYG@tok@nn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} -\expandafter\def\csname PYG@tok@no\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}} -\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@nc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} -\expandafter\def\csname PYG@tok@nd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}} -\expandafter\def\csname PYG@tok@ne\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@nf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} -\expandafter\def\csname PYG@tok@si\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}} -\expandafter\def\csname PYG@tok@s2\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@nt\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}} -\expandafter\def\csname PYG@tok@nv\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\expandafter\def\csname PYG@tok@s1\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@ch\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@m\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@gp\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} -\expandafter\def\csname PYG@tok@sh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@ow\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@sx\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} -\expandafter\def\csname PYG@tok@bp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@c1\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@o\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\expandafter\def\csname PYG@tok@kc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@c\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@mf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@err\endcsname{\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} -\expandafter\def\csname PYG@tok@mb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@ss\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}} -\expandafter\def\csname PYG@tok@sr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}} -\expandafter\def\csname PYG@tok@mo\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@kd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@mi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@kn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@cpf\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@kr\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@s\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@kp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@w\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} -\expandafter\def\csname PYG@tok@kt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}} -\expandafter\def\csname PYG@tok@sc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@sb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@k\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@se\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@sd\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} - -\def\PYGZbs{\char`\\} -\def\PYGZus{\char`\_} -\def\PYGZob{\char`\{} -\def\PYGZcb{\char`\}} -\def\PYGZca{\char`\^} -\def\PYGZam{\char`\&} -\def\PYGZlt{\char`\<} -\def\PYGZgt{\char`\>} -\def\PYGZsh{\char`\#} -\def\PYGZpc{\char`\%} -\def\PYGZdl{\char`\$} -\def\PYGZhy{\char`\-} -\def\PYGZsq{\char`\'} -\def\PYGZdq{\char`\"} -\def\PYGZti{\char`\~} -% for compatibility with earlier versions -\def\PYGZat{@} -\def\PYGZlb{[} -\def\PYGZrb{]} -\makeatother - -\renewcommand\PYGZsq{\textquotesingle} - \begin{document} -\maketitle -\tableofcontents -\phantomsection\label{index::doc} +\pagestyle{empty} +\sphinxmaketitle +\pagestyle{plain} +\sphinxtableofcontents +\pagestyle{normal} +\phantomsection\label{\detokenize{index::doc}} -Hi there! This is the documentation for the ``Lego Mindstorms EV3'' MATLAB Toolbox, +Hi there! This is the documentation for the “Lego Mindstorms EV3” MATLAB Toolbox, developed by RWTH Aachen. For an introduction about this toolbox, installation -guides and examples, take a look at \href{https://git.rwth-aachen.de/mindstorms/ev3-toolbox-matlab/blob/master/readme.md}{our repository}. +guides and examples, take a look at \sphinxhref{https://git.rwth-aachen.de/mindstorms/ev3-toolbox-matlab/blob/master/readme.md}{our repository}. \chapter{Contents} -\label{index:our-repository}\label{index:contents}\label{index:matlab-toolbox-for-controlling-lego-mindstorms-ev3} +\label{\detokenize{index:contents}} High-Level documentation -\phantomsection\label{EV3:module-source}\index{source (module)} +\phantomsection\label{\detokenize{EV3:module-source}}\index{source (module)@\spxentry{source}\spxextra{module}} \section{EV3} -\label{EV3:ev3}\label{EV3::doc}\index{EV3 (class in source)} +\label{\detokenize{EV3:ev3}}\label{\detokenize{EV3::doc}}\index{EV3 (class in source)@\spxentry{EV3}\spxextra{class in source}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{EV3}}{\emph{varargin}}{}~\begin{description} -\item[{\emph{List of methods}:}] \leavevmode\begin{itemize} +\phantomsection\label{\detokenize{EV3:source.EV3}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{class }}\sphinxcode{\sphinxupquote{source.}}\sphinxbfcode{\sphinxupquote{EV3}}}{\emph{varargin}}{}~\begin{description} +\item[{\sphinxstyleemphasis{List of methods}:}] \leavevmode\begin{itemize} \item {} -\sphinxcode{connect()} +\sphinxcode{\sphinxupquote{connect()}} \item {} -\sphinxcode{disconnect()} +\sphinxcode{\sphinxupquote{disconnect()}} \item {} -\sphinxcode{stopAllMotors()} +\sphinxcode{\sphinxupquote{stopAllMotors()}} \item {} -\sphinxcode{beep()} +\sphinxcode{\sphinxupquote{beep()}} \item {} -\sphinxcode{playTone()} +\sphinxcode{\sphinxupquote{playTone()}} \item {} -\sphinxcode{stopTone()} +\sphinxcode{\sphinxupquote{stopTone()}} \item {} -\sphinxcode{tonePlayed()} +\sphinxcode{\sphinxupquote{tonePlayed()}} \item {} -\sphinxcode{setProperties()} +\sphinxcode{\sphinxupquote{setProperties()}} \end{itemize} @@ -190,10 +120,10 @@ High-Level documentation High-level class to work with physical bricks. -This is the `central' class (from user's view) when working with this toolbox. It +This is the ‘central’ class (from user’s view) when working with this toolbox. It delivers a convenient interface for creating a connection to the brick and sending commands to it. An EV3-object creates 4 Motor- and 4 Sensor-objects, one for each port. -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Creating multiple EV3 objects and connecting them to different physical bricks has not @@ -201,80 +131,120 @@ been thoroughly tested yet, but seems to work on a first glance. \item {} When an input argument of a method is marked as optional, the argument needs to be -`announced' by a preceding 2nd argument, which is a string containing the name of the argument. +‘announced’ by a preceding 2nd argument, which is a string containing the name of the argument. For example, Motor.setProperties may be given a power-parameter. The syntax would be as -follows: \emph{brickObject.motorA.setProperties(`power', 50);} +follows: \sphinxstyleemphasis{brickObject.motorA.setProperties(‘power’, 50);} \end{itemize} -\index{motorA (source.EV3 attribute)} +\index{motorA (source.EV3 attribute)@\spxentry{motorA}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.motorA}\pysigline{\sphinxbfcode{motorA}} -\emph{Motor} -- Motor-object interfacing port A. See also {\hyperref[Motor:source.Motor]{\sphinxcrossref{\sphinxcode{Motor}}}}. +\phantomsection\label{\detokenize{EV3:source.EV3.motorA}}\pysigline{\sphinxbfcode{\sphinxupquote{motorA}}} +Motor-object interfacing port A. See also {\hyperref[\detokenize{Motor:source.Motor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{Motor}}}}}. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +Motor + +\end{description}\end{quote} \end{fulllineitems} -\index{motorB (source.EV3 attribute)} +\index{motorB (source.EV3 attribute)@\spxentry{motorB}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.motorB}\pysigline{\sphinxbfcode{motorB}} -\emph{Motor} -- Motor-object interfacing port B. See also {\hyperref[Motor:source.Motor]{\sphinxcrossref{\sphinxcode{Motor}}}}. +\phantomsection\label{\detokenize{EV3:source.EV3.motorB}}\pysigline{\sphinxbfcode{\sphinxupquote{motorB}}} +Motor-object interfacing port B. See also {\hyperref[\detokenize{Motor:source.Motor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{Motor}}}}}. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +Motor + +\end{description}\end{quote} \end{fulllineitems} -\index{motorC (source.EV3 attribute)} +\index{motorC (source.EV3 attribute)@\spxentry{motorC}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.motorC}\pysigline{\sphinxbfcode{motorC}} -\emph{Motor} -- Motor-object interfacing port C. See also {\hyperref[Motor:source.Motor]{\sphinxcrossref{\sphinxcode{Motor}}}}. +\phantomsection\label{\detokenize{EV3:source.EV3.motorC}}\pysigline{\sphinxbfcode{\sphinxupquote{motorC}}} +Motor-object interfacing port C. See also {\hyperref[\detokenize{Motor:source.Motor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{Motor}}}}}. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +Motor + +\end{description}\end{quote} \end{fulllineitems} -\index{motorD (source.EV3 attribute)} +\index{motorD (source.EV3 attribute)@\spxentry{motorD}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.motorD}\pysigline{\sphinxbfcode{motorD}} -\emph{Motor} -- Motor-object interfacing port D. See also {\hyperref[Motor:source.Motor]{\sphinxcrossref{\sphinxcode{Motor}}}}. +\phantomsection\label{\detokenize{EV3:source.EV3.motorD}}\pysigline{\sphinxbfcode{\sphinxupquote{motorD}}} +Motor-object interfacing port D. See also {\hyperref[\detokenize{Motor:source.Motor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{Motor}}}}}. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +Motor + +\end{description}\end{quote} \end{fulllineitems} -\index{sensor1 (source.EV3 attribute)} +\index{sensor1 (source.EV3 attribute)@\spxentry{sensor1}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.sensor1}\pysigline{\sphinxbfcode{sensor1}} -\emph{Sensor} -- Motor-object interfacing port 1. See also {\hyperref[Sensor:source.Sensor]{\sphinxcrossref{\sphinxcode{Sensor}}}}. +\phantomsection\label{\detokenize{EV3:source.EV3.sensor1}}\pysigline{\sphinxbfcode{\sphinxupquote{sensor1}}} +Motor-object interfacing port 1. See also {\hyperref[\detokenize{Sensor:source.Sensor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{Sensor}}}}}. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +Sensor + +\end{description}\end{quote} \end{fulllineitems} -\index{sensor2 (source.EV3 attribute)} +\index{sensor2 (source.EV3 attribute)@\spxentry{sensor2}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.sensor2}\pysigline{\sphinxbfcode{sensor2}} -\emph{Sensor} -- Motor-object interfacing port 2. See also {\hyperref[Sensor:source.Sensor]{\sphinxcrossref{\sphinxcode{Sensor}}}}. +\phantomsection\label{\detokenize{EV3:source.EV3.sensor2}}\pysigline{\sphinxbfcode{\sphinxupquote{sensor2}}} +Motor-object interfacing port 2. See also {\hyperref[\detokenize{Sensor:source.Sensor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{Sensor}}}}}. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +Sensor + +\end{description}\end{quote} \end{fulllineitems} -\index{sensor3 (source.EV3 attribute)} +\index{sensor3 (source.EV3 attribute)@\spxentry{sensor3}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.sensor3}\pysigline{\sphinxbfcode{sensor3}} -\emph{Sensor} -- Motor-object interfacing port 3. See also {\hyperref[Sensor:source.Sensor]{\sphinxcrossref{\sphinxcode{Sensor}}}}. +\phantomsection\label{\detokenize{EV3:source.EV3.sensor3}}\pysigline{\sphinxbfcode{\sphinxupquote{sensor3}}} +Motor-object interfacing port 3. See also {\hyperref[\detokenize{Sensor:source.Sensor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{Sensor}}}}}. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +Sensor + +\end{description}\end{quote} \end{fulllineitems} -\index{sensor4 (source.EV3 attribute)} +\index{sensor4 (source.EV3 attribute)@\spxentry{sensor4}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.sensor4}\pysigline{\sphinxbfcode{sensor4}} -\emph{Sensor} -- Motor-object interfacing port 4. See also {\hyperref[Sensor:source.Sensor]{\sphinxcrossref{\sphinxcode{Sensor}}}}. +\phantomsection\label{\detokenize{EV3:source.EV3.sensor4}}\pysigline{\sphinxbfcode{\sphinxupquote{sensor4}}} +Motor-object interfacing port 4. See also {\hyperref[\detokenize{Sensor:source.Sensor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{Sensor}}}}}. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +Sensor + +\end{description}\end{quote} \end{fulllineitems} -\index{debug (source.EV3 attribute)} +\index{debug (source.EV3 attribute)@\spxentry{debug}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.debug}\pysigline{\sphinxbfcode{debug}} -\emph{numeric in \{0,1,2\}} -- Debug mode. \emph{{[}WRITABLE{]}} +\phantomsection\label{\detokenize{EV3:source.EV3.debug}}\pysigline{\sphinxbfcode{\sphinxupquote{debug}}} +Debug mode. \sphinxstyleemphasis{{[}WRITABLE{]}} \begin{itemize} \item {} 0: Debug turned off @@ -286,254 +256,282 @@ follows: \emph{brickObject.motorA.setProperties(`power', 50);} 2: Low-level-Debug turned on -\textgreater{} each packet sent and received is printed to the console \end{itemize} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric in \{0,1,2\} + +\end{description}\end{quote} \end{fulllineitems} -\index{batteryMode (source.EV3 attribute)} +\index{batteryMode (source.EV3 attribute)@\spxentry{batteryMode}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.batteryMode}\pysigline{\sphinxbfcode{batteryMode}} -\emph{string in \{`Percentage', `Voltage'\}} -- Mode for reading battery charge. See also \sphinxcode{batteryValue}. \emph{{[}WRITABLE{]}} +\phantomsection\label{\detokenize{EV3:source.EV3.batteryMode}}\pysigline{\sphinxbfcode{\sphinxupquote{batteryMode}}} +Mode for reading battery charge. See also \sphinxcode{\sphinxupquote{batteryValue}}. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +string in \{‘Percentage’, ‘Voltage’\} + +\end{description}\end{quote} \end{fulllineitems} -\index{batteryValue (source.EV3 attribute)} +\index{batteryValue (source.EV3 attribute)@\spxentry{batteryValue}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.batteryValue}\pysigline{\sphinxbfcode{batteryValue}} -\emph{numeric} -- Current battery charge. Depending on batteryMode, the reading is either in percentage or voltage. See also \sphinxcode{batteryMode}. \emph{{[}READ-ONLY{]}} +\phantomsection\label{\detokenize{EV3:source.EV3.batteryValue}}\pysigline{\sphinxbfcode{\sphinxupquote{batteryValue}}} +Current battery charge. Depending on batteryMode, the reading is either in percentage or voltage. See also \sphinxcode{\sphinxupquote{batteryMode}}. \sphinxstyleemphasis{{[}READ-ONLY{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{isConnected (source.EV3 attribute)} +\index{isConnected (source.EV3 attribute)@\spxentry{isConnected}\spxextra{source.EV3 attribute}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.isConnected}\pysigline{\sphinxbfcode{isConnected}} -\emph{bool} -- True if virtual brick-object is connected to physical one. \emph{{[}READ-ONLY{]}} +\phantomsection\label{\detokenize{EV3:source.EV3.isConnected}}\pysigline{\sphinxbfcode{\sphinxupquote{isConnected}}} +True if virtual brick-object is connected to physical one. \sphinxstyleemphasis{{[}READ-ONLY{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +bool + +\end{description}\end{quote} \end{fulllineitems} -\paragraph{Example} -\% This example expects a motor at port A and a (random) sensor at port 1 -b = EV3(); \% -b.connect(`usb'); \% -ma = b.motorA; \% -ma.setProperties(`power', 50, `limitValue', 720); \% -ma.start(); \% -\% fun -ma.waitFor(); \% -disp(b.sensor1.value); \% -b.beep(); \% -delete b; \% -\index{beep() (source.EV3 method)} +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{c+c1}{\PYGZsh{} This example expects a motor at port A and a (random) sensor at port 1} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{usb}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{motorA} \PYG{o}{=} \PYG{n}{brick}\PYG{o}{.}\PYG{n}{motorA}\PYG{p}{;} + \PYG{n}{motorA}\PYG{o}{.}\PYG{n}{setProperties}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{power}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+m+mi}{50}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{limitValue}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+m+mi}{720}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{motorA}\PYG{o}{.}\PYG{n}{start}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{motorA}\PYG{o}{.}\PYG{n}{waitFor}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{disp}\PYG{p}{(}\PYG{n}{brick}\PYG{o}{.}\PYG{n}{sensor1}\PYG{o}{.}\PYG{n}{value}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{beep}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{delete} \PYG{n}{brick}\PYG{p}{;} +\end{sphinxVerbatim} +\index{beep() (source.EV3 method)@\spxentry{beep()}\spxextra{source.EV3 method}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.beep}\pysiglinewithargsret{\sphinxbfcode{beep}}{\emph{ev3}}{} -Plays a `beep'-tone on brick. -\paragraph{Notes} +\phantomsection\label{\detokenize{EV3:source.EV3.beep}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{beep}}}{\emph{ev3}}{} +Plays a ‘beep’-tone on brick. +\subsubsection*{Notes} \begin{itemize} \item {} This equals playTone(10, 1000, 100). \end{itemize} -\paragraph{Example} -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -b.beep(); \% +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{beep}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} +\end{sphinxVerbatim} \end{fulllineitems} -\index{connect() (source.EV3 method)} +\index{connect() (source.EV3 method)@\spxentry{connect()}\spxextra{source.EV3 method}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.connect}\pysiglinewithargsret{\sphinxbfcode{connect}}{\emph{ev3}, \emph{varargin}}{} +\phantomsection\label{\detokenize{EV3:source.EV3.connect}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{connect}}}{\emph{ev3}, \emph{varargin}}{} Connects EV3-object and its Motors and Sensors to physical brick. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode\begin{itemize} \item {} -\textbf{\texttt{connectionType}} (\emph{\texttt{string in \{'bt', 'usb'\}}}) -- Connection type +\sphinxstyleliteralstrong{\sphinxupquote{connectionType}} (\sphinxstyleliteralemphasis{\sphinxupquote{string in \{'bt', 'usb'\}}}) \textendash{} Connection type \item {} -\textbf{\texttt{serPort}} (\emph{\texttt{string in \{'/dev/rfcomm1', '/dev/rfcomm2', ...\}}}) -- Path to serial port -(necessary if connectionType is `bt'). \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{serPort}} (\sphinxstyleliteralemphasis{\sphinxupquote{string in \{'/dev/rfcomm1', '/dev/rfcomm2', ...\}}}) \textendash{} Path to serial port +(necessary if connectionType is ‘bt’). \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{beep}} (\emph{\texttt{bool}}) -- If true, EV3 beeps if connection has been established. \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{beep}} (\sphinxstyleliteralemphasis{\sphinxupquote{bool}}) \textendash{} If true, EV3 beeps if connection has been established. \sphinxstyleemphasis{{[}OPTIONAL{]}} \end{itemize} \end{description}\end{quote} -\paragraph{Example} -\% Setup bluetooth connection via com-port 0 -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -\% Setup usb connection, beep when connection has been established -b = EV3(); \% -b.connect(`usb', `beep', `on', ); \% +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{o}{\PYGZpc{}} \PYG{n}{Setup} \PYG{n}{bluetooth} \PYG{n}{connection} \PYG{n}{via} \PYG{n}{com}\PYG{o}{\PYGZhy{}}\PYG{n}{port} \PYG{l+m+mi}{0} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{Setup} \PYG{n}{usb} \PYG{n}{connection}\PYG{p}{,} \PYG{n}{beep} \PYG{n}{when} \PYG{n}{connection} \PYG{n}{has} \PYG{n}{been} \PYG{n}{established} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{usb}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{beep}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{p}{)}\PYG{p}{;} +\end{sphinxVerbatim} -See also ISCONNECTED / \sphinxcode{isConnected} +See also ISCONNECTED / \sphinxcode{\sphinxupquote{isConnected}} \end{fulllineitems} -\index{disconnect() (source.EV3 method)} +\index{disconnect() (source.EV3 method)@\spxentry{disconnect()}\spxextra{source.EV3 method}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.disconnect}\pysiglinewithargsret{\sphinxbfcode{disconnect}}{\emph{ev3}}{} +\phantomsection\label{\detokenize{EV3:source.EV3.disconnect}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{disconnect}}}{\emph{ev3}}{} Disconnects EV3-object and its Motors and Sensors from physical brick. -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Gets called automatically when EV3-object is destroyed. \end{itemize} -\paragraph{Example} - -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -\% do stuff -b.disconnect(); \% -Resetting needs a working connection in order to send reset-commands -to the Brick. If the connection has been aborted (e.g. by pulling the -USB-cord), the reset-methods would fail -\textgreater{} catch this error and for -now do nothing. +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{do} \PYG{n}{stuff} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{disconnect}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} +\end{sphinxVerbatim} \end{fulllineitems} -\index{playTone() (source.EV3 method)} +\index{playTone() (source.EV3 method)@\spxentry{playTone()}\spxextra{source.EV3 method}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.playTone}\pysiglinewithargsret{\sphinxbfcode{playTone}}{\emph{ev3}, \emph{volume}, \emph{frequency}, \emph{duration}}{} +\phantomsection\label{\detokenize{EV3:source.EV3.playTone}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{playTone}}}{\emph{ev3}, \emph{volume}, \emph{frequency}, \emph{duration}}{} Plays tone on brick. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode\begin{itemize} \item {} -\textbf{\texttt{volume}} (\emph{\texttt{numeric in {[}0, 100{]}}}) -- in percent +\sphinxstyleliteralstrong{\sphinxupquote{volume}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric in {[}0, 100{]}}}) \textendash{} in percent \item {} -\textbf{\texttt{frequency}} (\emph{\texttt{numeric in {[}250, 10000{]}}}) -- in Hertz +\sphinxstyleliteralstrong{\sphinxupquote{frequency}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric in {[}250, 10000{]}}}) \textendash{} in Hertz \item {} -\textbf{\texttt{duration}} (\emph{\texttt{numeric \textgreater{} 0}}) -- in milliseconds +\sphinxstyleliteralstrong{\sphinxupquote{duration}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric \textgreater{} 0}}) \textendash{} in milliseconds \end{itemize} \end{description}\end{quote} -\paragraph{Example} -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -b.playTone(40, 5000, 1000); \% Plays tone with 40\% volume and 5000Hz for 1 -second. +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{playTone}\PYG{p}{(}\PYG{l+m+mi}{40}\PYG{p}{,} \PYG{l+m+mi}{5000}\PYG{p}{,} \PYG{l+m+mi}{1000}\PYG{p}{)}\PYG{p}{;} \PYG{o}{\PYGZpc{}} \PYG{n}{Plays} \PYG{n}{tone} \PYG{k}{with} \PYG{l+m+mi}{40}\PYG{o}{\PYGZpc{}} \PYG{n}{volume} \PYG{o+ow}{and} \PYG{l+m+mi}{5000}\PYG{n}{Hz} \PYG{k}{for} \PYG{l+m+mi}{1} \PYG{n}{second}\PYG{o}{.} +\end{sphinxVerbatim} \end{fulllineitems} -\index{setProperties() (source.EV3 method)} +\index{setProperties() (source.EV3 method)@\spxentry{setProperties()}\spxextra{source.EV3 method}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.setProperties}\pysiglinewithargsret{\sphinxbfcode{setProperties}}{\emph{ev3}, \emph{varargin}}{} -Set multiple EV3 properties at once using MATLAB's inputParser. +\phantomsection\label{\detokenize{EV3:source.EV3.setProperties}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{setProperties}}}{\emph{ev3}, \emph{varargin}}{} +Set multiple EV3 properties at once using MATLAB’s inputParser. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode\begin{itemize} \item {} -\textbf{\texttt{debug}} (\emph{\texttt{numeric in \{0,1,2\}}}) -- see EV3.debug \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{debug}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric in \{0,1,2\}}}) \textendash{} see EV3.debug \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{batteryMode}} (\emph{\texttt{string in \{'Voltage'/'Percentage'\}}}) -- see EV3.batteryMode \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{batteryMode}} (\sphinxstyleliteralemphasis{\sphinxupquote{string in \{'Voltage'/'Percentage'\}}}) \textendash{} see EV3.batteryMode \sphinxstyleemphasis{{[}OPTIONAL{]}} \end{itemize} \end{description}\end{quote} -\paragraph{Example} -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -b.setProperties(`debug', `on', `batteryMode', `Voltage'); \% -\% Instead of: b.debug = `on'; b.batteryMode = `Voltage'; \% +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{setProperties}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{debug}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{batteryMode}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{Voltage}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{Instead} \PYG{n}{of}\PYG{p}{:} \PYG{n}{b}\PYG{o}{.}\PYG{n}{debug} \PYG{o}{=} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{;} \PYG{n}{b}\PYG{o}{.}\PYG{n}{batteryMode} \PYG{o}{=} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{Voltage}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{;} +\end{sphinxVerbatim} -See also EV3.DEBUG, EV3.BATTERYMODE / \sphinxcode{debug}, \sphinxcode{batteryMode} +See also EV3.DEBUG, EV3.BATTERYMODE / \sphinxcode{\sphinxupquote{debug}}, \sphinxcode{\sphinxupquote{batteryMode}} \end{fulllineitems} -\index{stopTone() (source.EV3 method)} +\index{stopTone() (source.EV3 method)@\spxentry{stopTone()}\spxextra{source.EV3 method}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.stopTone}\pysiglinewithargsret{\sphinxbfcode{stopTone}}{\emph{ev3}}{} +\phantomsection\label{\detokenize{EV3:source.EV3.stopTone}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{stopTone}}}{\emph{ev3}}{} Stops tone currently played. -\paragraph{Example} -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -b.playTone(10,100,100000000); \% Accidentally given wrong tone duration :) -b.stopTone(); \% Stops tone immediately. +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{playTone}\PYG{p}{(}\PYG{l+m+mi}{10}\PYG{p}{,}\PYG{l+m+mi}{100}\PYG{p}{,}\PYG{l+m+mi}{100000000}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{stopTone}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} \PYG{o}{\PYGZpc{}} \PYG{n}{Stops} \PYG{n}{tone} \PYG{n}{immediately}\PYG{o}{.} +\end{sphinxVerbatim} \end{fulllineitems} -\index{tonePlayed() (source.EV3 method)} +\index{tonePlayed() (source.EV3 method)@\spxentry{tonePlayed()}\spxextra{source.EV3 method}} \begin{fulllineitems} -\phantomsection\label{EV3:source.EV3.tonePlayed}\pysiglinewithargsret{\sphinxbfcode{tonePlayed}}{\emph{ev3}}{} +\phantomsection\label{\detokenize{EV3:source.EV3.tonePlayed}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{tonePlayed}}}{\emph{ev3}}{} Tests if tone is currently played. \begin{quote}\begin{description} \item[{Returns}] \leavevmode -\textbf{status} -- True if a tone is being played +True if a tone is being played \item[{Return type}] \leavevmode -bool +status (bool) \end{description}\end{quote} -\begin{description} -\item[{Example}] \leavevmode -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -b.playTone(10, 100, 1000); \% -pause(0.5); \% Small pause is necessary as tone does not start instantaneously -b.tonePlayed(); \% -\textgreater{} Outputs 1 to console. -\end{description} +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{playTone}\PYG{p}{(}\PYG{l+m+mi}{10}\PYG{p}{,} \PYG{l+m+mi}{100}\PYG{p}{,} \PYG{l+m+mi}{1000}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{pause}\PYG{p}{(}\PYG{l+m+mf}{0.5}\PYG{p}{)}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{Small} \PYG{n}{pause} \PYG{n}{necessary} \PYG{n}{since} \PYG{n}{tone} \PYG{o+ow}{not} \PYG{n}{startong} \PYG{n}{immediately} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{tonePlayed}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} \PYG{o}{\PYGZpc{}} \PYG{o}{\PYGZhy{}}\PYG{o}{\PYGZgt{}} \PYG{n}{Outputs} \PYG{l+m+mi}{1} \PYG{n}{to} \PYG{n}{console}\PYG{o}{.} +\end{sphinxVerbatim} \end{fulllineitems} \end{fulllineitems} -\phantomsection\label{Motor:module-source}\index{source (module)} +\phantomsection\label{\detokenize{Motor:module-source}}\index{source (module)@\spxentry{source}\spxextra{module}} \section{Motor} -\label{Motor::doc}\label{Motor:motor}\index{Motor (class in source)} +\label{\detokenize{Motor:motor}}\label{\detokenize{Motor::doc}}\index{Motor (class in source)@\spxentry{Motor}\spxextra{class in source}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{Motor}}{\emph{varargin}}{}~\begin{description} -\item[{\emph{List of methods}:}] \leavevmode\begin{itemize} +\phantomsection\label{\detokenize{Motor:source.Motor}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{class }}\sphinxcode{\sphinxupquote{source.}}\sphinxbfcode{\sphinxupquote{Motor}}}{\emph{varargin}}{}~\begin{description} +\item[{\sphinxstyleemphasis{List of methods}:}] \leavevmode\begin{itemize} \item {} -{\hyperref[Motor:source.Motor.start]{\sphinxcrossref{\sphinxcode{start()}}}} +{\hyperref[\detokenize{Motor:source.Motor.start}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{start()}}}}} \item {} -{\hyperref[Motor:source.Motor.stop]{\sphinxcrossref{\sphinxcode{stop()}}}} +{\hyperref[\detokenize{Motor:source.Motor.stop}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{stop()}}}}} \item {} -{\hyperref[Motor:source.Motor.syncedStart]{\sphinxcrossref{\sphinxcode{syncedStart()}}}} +{\hyperref[\detokenize{Motor:source.Motor.syncedStart}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{syncedStart()}}}}} \item {} -{\hyperref[Motor:source.Motor.syncedStop]{\sphinxcrossref{\sphinxcode{syncedStop()}}}} +{\hyperref[\detokenize{Motor:source.Motor.syncedStop}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{syncedStop()}}}}} \item {} -{\hyperref[Motor:source.Motor.waitFor]{\sphinxcrossref{\sphinxcode{waitFor()}}}} +{\hyperref[\detokenize{Motor:source.Motor.waitFor}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{waitFor()}}}}} \item {} -{\hyperref[Motor:source.Motor.internalReset]{\sphinxcrossref{\sphinxcode{internalReset()}}}} +{\hyperref[\detokenize{Motor:source.Motor.internalReset}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{internalReset()}}}}} \item {} -{\hyperref[Motor:source.Motor.resetTachoCount]{\sphinxcrossref{\sphinxcode{resetTachoCount()}}}} +{\hyperref[\detokenize{Motor:source.Motor.resetTachoCount}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{resetTachoCount()}}}}} \item {} -{\hyperref[Motor:source.Motor.setBrake]{\sphinxcrossref{\sphinxcode{setBrake()}}}} +{\hyperref[\detokenize{Motor:source.Motor.setBrake}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{setBrake()}}}}} \item {} -{\hyperref[Motor:source.Motor.setProperties]{\sphinxcrossref{\sphinxcode{setProperties()}}}} +{\hyperref[\detokenize{Motor:source.Motor.setProperties}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{setProperties()}}}}} \end{itemize} @@ -541,13 +539,13 @@ b.tonePlayed(); \% -\textgreater{} Outputs 1 to console. High-level class to work with motors. -This class is supposed to ease the use of the brick's motors. It is possible to set all +This class is supposed to ease the use of the brick’s motors. It is possible to set all kinds of parameters, request the current status of the motor ports and of course send commands to the brick to be executed on the respective port. -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} -You don't need to create instances of this class. The EV3-class automatically creates +You don’t need to create instances of this class. The EV3-class automatically creates instances for each motor port, and you can work with them via the EV3-object. \item {} @@ -555,178 +553,238 @@ The Motor-class represents motor ports, not individual motors! \item {} If you start a motor with power=0, the internal state will still be set to -`isRunning' +‘isRunning’ \item {} When an input argument of a method is marked as optional, the argument needs to be -`announced' by a preceding 2nd argument, which is a string containing the name of the argument. +‘announced’ by a preceding 2nd argument, which is a string containing the name of the argument. For example, Motor.setProperties may be given a power-parameter. The syntax would be as -follows: \emph{brickObject.motorA.setProperties(`power', 50);} +follows: \sphinxstyleemphasis{brickObject.motorA.setProperties(‘power’, 50);} \end{itemize} -\index{power (source.Motor attribute)} +\index{power (source.Motor attribute)@\spxentry{power}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.power}\pysigline{\sphinxbfcode{power}} -\emph{numeric in {[}-100, 100{]}} -- Power level of motor in percent. \emph{{[}WRITABLE{]}} +\phantomsection\label{\detokenize{Motor:source.Motor.power}}\pysigline{\sphinxbfcode{\sphinxupquote{power}}} +Power level of motor in percent. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric in {[}-100, 100{]} + +\end{description}\end{quote} \end{fulllineitems} -\index{speedRegulation (source.Motor attribute)} +\index{speedRegulation (source.Motor attribute)@\spxentry{speedRegulation}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.speedRegulation}\pysigline{\sphinxbfcode{speedRegulation}} -\emph{bool} -- Speed regulation turned on or off. When turned on, motor will -try to `hold' its speed at given power level, whatever the load. In this mode, the +\phantomsection\label{\detokenize{Motor:source.Motor.speedRegulation}}\pysigline{\sphinxbfcode{\sphinxupquote{speedRegulation}}} +Speed regulation turned on or off. When turned on, motor will +try to ‘hold’ its speed at given power level, whatever the load. In this mode, the highest possible speed depends on the load and mostly goes up to around 70-80 (at this point, the Brick internally inputs 100\% power). When turned off, motor will constantly input the same power into the motor. The resulting speed will be -somewhat lower, depending on the load. \emph{{[}WRITABLE{]}} +somewhat lower, depending on the load. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +bool + +\end{description}\end{quote} \end{fulllineitems} -\index{smoothStart (source.Motor attribute)} +\index{smoothStart (source.Motor attribute)@\spxentry{smoothStart}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.smoothStart}\pysigline{\sphinxbfcode{smoothStart}} -\emph{numeric s. t. smoothStart+smoothStop \textless{} limitValue} -- Degrees/Time +\phantomsection\label{\detokenize{Motor:source.Motor.smoothStart}}\pysigline{\sphinxbfcode{\sphinxupquote{smoothStart}}} +Degrees/Time indicating how far/long the motor should smoothly start. Depending on limitMode, the input is interpreted either in degrees or milliseconds. The first \{smoothStart\}-milliseconds/degrees of limitValue the motor will slowly accelerate -until reaching its defined speed. See also {\hyperref[Motor:source.Motor.limitValue]{\sphinxcrossref{\sphinxcode{limitValue}}}}, {\hyperref[Motor:source.Motor.limitMode]{\sphinxcrossref{\sphinxcode{limitMode}}}}. \emph{{[}WRITABLE{]}} +until reaching its defined speed. See also {\hyperref[\detokenize{Motor:source.Motor.limitValue}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{limitValue}}}}}, {\hyperref[\detokenize{Motor:source.Motor.limitMode}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{limitMode}}}}}. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric s. t. smoothStart+smoothStop \textless{} limitValue + +\end{description}\end{quote} \end{fulllineitems} -\index{smoothStop (source.Motor attribute)} +\index{smoothStop (source.Motor attribute)@\spxentry{smoothStop}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.smoothStop}\pysigline{\sphinxbfcode{smoothStop}} -\emph{numeric s. t. smoothStart+smoothStop \textless{} limitValue} -- Degrees/Time +\phantomsection\label{\detokenize{Motor:source.Motor.smoothStop}}\pysigline{\sphinxbfcode{\sphinxupquote{smoothStop}}} +Degrees/Time indicating how far/long the motor should smoothly stop. Depending on limitMode, the input is interpreted either in degrees or milliseconds. The last {[}smoothStop{]}-milliseconds/degrees of limitValue the motor will slowly slow down -until it has stopped. See also {\hyperref[Motor:source.Motor.limitValue]{\sphinxcrossref{\sphinxcode{limitValue}}}}, {\hyperref[Motor:source.Motor.limitMode]{\sphinxcrossref{\sphinxcode{limitMode}}}}. \emph{{[}WRITABLE{]}} +until it has stopped. See also {\hyperref[\detokenize{Motor:source.Motor.limitValue}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{limitValue}}}}}, {\hyperref[\detokenize{Motor:source.Motor.limitMode}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{limitMode}}}}}. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric s. t. smoothStart+smoothStop \textless{} limitValue + +\end{description}\end{quote} \end{fulllineitems} -\index{limitValue (source.Motor attribute)} +\index{limitValue (source.Motor attribute)@\spxentry{limitValue}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.limitValue}\pysigline{\sphinxbfcode{limitValue}} -\emph{numeric\textgreater{}=0} -- Degrees/Time indicating how far/long the motor should run. +\phantomsection\label{\detokenize{Motor:source.Motor.limitValue}}\pysigline{\sphinxbfcode{\sphinxupquote{limitValue}}} +Degrees/Time indicating how far/long the motor should run. Depending on limitMode, the input is interpreted either in degrees or -milliseconds. See also {\hyperref[Motor:source.Motor.limitMode]{\sphinxcrossref{\sphinxcode{limitMode}}}}. \emph{{[}WRITABLE{]}} +milliseconds. See also {\hyperref[\detokenize{Motor:source.Motor.limitMode}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{limitMode}}}}}. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric\textgreater{}=0 + +\end{description}\end{quote} \end{fulllineitems} -\index{limitMode (source.Motor attribute)} +\index{limitMode (source.Motor attribute)@\spxentry{limitMode}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.limitMode}\pysigline{\sphinxbfcode{limitMode}} -\emph{`Tacho'\textbar{}'Time'} -- Mode for motor limit. See also {\hyperref[Motor:source.Motor.limitValue]{\sphinxcrossref{\sphinxcode{limitValue}}}}. \emph{{[}WRITABLE{]}} +\phantomsection\label{\detokenize{Motor:source.Motor.limitMode}}\pysigline{\sphinxbfcode{\sphinxupquote{limitMode}}} +Mode for motor limit. See also {\hyperref[\detokenize{Motor:source.Motor.limitValue}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{limitValue}}}}}. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +‘Tacho’\textbar{}’Time’ + +\end{description}\end{quote} \end{fulllineitems} -\index{brakeMode (source.Motor attribute)} +\index{brakeMode (source.Motor attribute)@\spxentry{brakeMode}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.brakeMode}\pysigline{\sphinxbfcode{brakeMode}} -\emph{`Brake'\textbar{}'Coast'} -- Action done when stopping. If `Coast', the motor will (at -tacholimit, if \textasciitilde{}=0) coast to a stop. If `Brake', the motor will stop immediately -(at tacholimit, if \textasciitilde{}=0) and hold the brake. \emph{{[}WRITABLE{]}} +\phantomsection\label{\detokenize{Motor:source.Motor.brakeMode}}\pysigline{\sphinxbfcode{\sphinxupquote{brakeMode}}} +Action done when stopping. If ‘Coast’, the motor will (at +tacholimit, if \textasciitilde{}=0) coast to a stop. If ‘Brake’, the motor will stop immediately +(at tacholimit, if \textasciitilde{}=0) and hold the brake. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +‘Brake’\textbar{}’Coast’ + +\end{description}\end{quote} \end{fulllineitems} -\index{debug (source.Motor attribute)} +\index{debug (source.Motor attribute)@\spxentry{debug}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.debug}\pysigline{\sphinxbfcode{debug}} -\emph{bool} -- Debug turned on or off. In debug mode, everytime a command is passed to -the sublayer (`communication layer'), there is feedback in the console about what -command has been called. \emph{{[}WRITABLE{]}} +\phantomsection\label{\detokenize{Motor:source.Motor.debug}}\pysigline{\sphinxbfcode{\sphinxupquote{debug}}} +Debug turned on or off. In debug mode, everytime a command is passed to +the sublayer (‘communication layer’), there is feedback in the console about what +command has been called. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +bool + +\end{description}\end{quote} \end{fulllineitems} -\index{isRunning (source.Motor attribute)} +\index{isRunning (source.Motor attribute)@\spxentry{isRunning}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.isRunning}\pysigline{\sphinxbfcode{isRunning}} -\emph{bool} -- True if motor is running. \emph{{[}READ-ONLY{]}} +\phantomsection\label{\detokenize{Motor:source.Motor.isRunning}}\pysigline{\sphinxbfcode{\sphinxupquote{isRunning}}} +True if motor is running. \sphinxstyleemphasis{{[}READ-ONLY{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +bool + +\end{description}\end{quote} \end{fulllineitems} -\index{tachoCount (source.Motor attribute)} +\index{tachoCount (source.Motor attribute)@\spxentry{tachoCount}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.tachoCount}\pysigline{\sphinxbfcode{tachoCount}} -\emph{numeric} -- Current tacho count in degrees. \emph{{[}READ-ONLY{]}} +\phantomsection\label{\detokenize{Motor:source.Motor.tachoCount}}\pysigline{\sphinxbfcode{\sphinxupquote{tachoCount}}} +Current tacho count in degrees. \sphinxstyleemphasis{{[}READ-ONLY{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{currentSpeed (source.Motor attribute)} +\index{currentSpeed (source.Motor attribute)@\spxentry{currentSpeed}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.currentSpeed}\pysigline{\sphinxbfcode{currentSpeed}} -\emph{numeric} -- Current speed of motor. If speedRegulation=on this should equal power, -otherwise it will probably be lower than that. See also {\hyperref[Motor:source.Motor.speedRegulation]{\sphinxcrossref{\sphinxcode{speedRegulation}}}}. \emph{{[}READ-ONLY{]}} +\phantomsection\label{\detokenize{Motor:source.Motor.currentSpeed}}\pysigline{\sphinxbfcode{\sphinxupquote{currentSpeed}}} +Current speed of motor. If speedRegulation=on this should equal power, +otherwise it will probably be lower than that. See also {\hyperref[\detokenize{Motor:source.Motor.speedRegulation}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{speedRegulation}}}}}. \sphinxstyleemphasis{{[}READ-ONLY{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{type (source.Motor attribute)} +\index{type (source.Motor attribute)@\spxentry{type}\spxextra{source.Motor attribute}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.type}\pysigline{\sphinxbfcode{type}} -\emph{DeviceType} -- Type of connected device if any. \emph{{[}READ-ONLY{]}} +\phantomsection\label{\detokenize{Motor:source.Motor.type}}\pysigline{\sphinxbfcode{\sphinxupquote{type}}} +Type of connected device if any. \sphinxstyleemphasis{{[}READ-ONLY{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +DeviceType + +\end{description}\end{quote} \end{fulllineitems} -\index{internalReset() (source.Motor method)} +\index{internalReset() (source.Motor method)@\spxentry{internalReset()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.internalReset}\pysiglinewithargsret{\sphinxbfcode{internalReset}}{\emph{motor}}{} +\phantomsection\label{\detokenize{Motor:source.Motor.internalReset}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{internalReset}}}{\emph{motor}}{} Resets internal tacho count. Use this if motor behaves weird (i.e. not starting at all, or not correctly running to limitValue). The internal tacho count is used for positioning the motor. When the motor is running with a tacho limit, internally it uses another counter than the one read by tachoCount. This internal tacho count needs to be reset if you -physically change the motor's position or it coasted into a stop. If the motor's -brakemode is `Coast', this function is called automatically. -\paragraph{Notes} +physically change the motor’s position or it coasted into a stop. If the motor’s +brakemode is ‘Coast’, this function is called automatically. +\subsubsection*{Notes} \begin{itemize} \item {} -A better name would probably be resetPosition... +A better name would probably be resetPosition… \item {} Gets called automatically when starting the motor and the internal tacho count is \textgreater{} 0 \end{itemize} -See also MOTOR.RESETTACHOCOUNT / {\hyperref[Motor:source.Motor.resetTachoCount]{\sphinxcrossref{\sphinxcode{resetTachoCount}}}} +See also MOTOR.RESETTACHOCOUNT / {\hyperref[\detokenize{Motor:source.Motor.resetTachoCount}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{resetTachoCount}}}}} \end{fulllineitems} -\index{resetTachoCount() (source.Motor method)} +\index{resetTachoCount() (source.Motor method)@\spxentry{resetTachoCount()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.resetTachoCount}\pysiglinewithargsret{\sphinxbfcode{resetTachoCount}}{\emph{motor}}{} +\phantomsection\label{\detokenize{Motor:source.Motor.resetTachoCount}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{resetTachoCount}}}{\emph{motor}}{} Resets tachocount. -See also MOTOR.TACHOCOUNT / {\hyperref[Motor:source.Motor.tachoCount]{\sphinxcrossref{\sphinxcode{tachoCount}}}} +See also MOTOR.TACHOCOUNT / {\hyperref[\detokenize{Motor:source.Motor.tachoCount}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{tachoCount}}}}} \end{fulllineitems} -\index{setBrake() (source.Motor method)} +\index{setBrake() (source.Motor method)@\spxentry{setBrake()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.setBrake}\pysiglinewithargsret{\sphinxbfcode{setBrake}}{\emph{motor}, \emph{brake}}{} +\phantomsection\label{\detokenize{Motor:source.Motor.setBrake}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{setBrake}}}{\emph{motor}, \emph{brake}}{} Apply or release brake of motor. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode -\textbf{\texttt{brake}} (\emph{\texttt{bool}}) -- If true, brake will be pulled +\sphinxstyleliteralstrong{\sphinxupquote{brake}} (\sphinxstyleliteralemphasis{\sphinxupquote{bool}}) \textendash{} If true, brake will be pulled \end{description}\end{quote} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} This method does not affect Motor.brakeMode. After the next run, the motor @@ -734,73 +792,75 @@ will again be stopped as specified in Motor.brakeMode. \end{itemize} -See also MOTOR.BRAKEMODE / {\hyperref[Motor:source.Motor.brakeMode]{\sphinxcrossref{\sphinxcode{brakeMode}}}} +See also MOTOR.BRAKEMODE / {\hyperref[\detokenize{Motor:source.Motor.brakeMode}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{brakeMode}}}}} \end{fulllineitems} -\index{setProperties() (source.Motor method)} +\index{setProperties() (source.Motor method)@\spxentry{setProperties()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.setProperties}\pysiglinewithargsret{\sphinxbfcode{setProperties}}{\emph{motor}, \emph{varargin}}{} -Sets multiple Motor properties at once using MATLAB's inputParser. +\phantomsection\label{\detokenize{Motor:source.Motor.setProperties}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{setProperties}}}{\emph{motor}, \emph{varargin}}{} +Sets multiple Motor properties at once using MATLAB’s inputParser. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode\begin{itemize} \item {} -\textbf{\texttt{debug}} (\emph{\texttt{bool}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{debug}} (\sphinxstyleliteralemphasis{\sphinxupquote{bool}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{smoothStart}} (\emph{\texttt{numeric in {[}0, limitValue{]}}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{smoothStart}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric in {[}0, limitValue{]}}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{smoothStop}} (\emph{\texttt{numeric in {[}0, limitValue{]}}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{smoothStop}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric in {[}0, limitValue{]}}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{speedRegulation}} (\emph{\texttt{bool}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{speedRegulation}} (\sphinxstyleliteralemphasis{\sphinxupquote{bool}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{brakeMode}} (\emph{\texttt{'Coast'\textbar{}'Brake'}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{brakeMode}} (\sphinxstyleliteralemphasis{\sphinxupquote{'Coast'\textbar{}'Brake'}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{limitMode}} (\emph{\texttt{'Time'\textbar{}'Tacho'}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{limitMode}} (\sphinxstyleliteralemphasis{\sphinxupquote{'Time'\textbar{}'Tacho'}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{limitValue}} (\emph{\texttt{numeric \textgreater{} 0}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{limitValue}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric \textgreater{} 0}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{power}} (\emph{\texttt{numeric in {[}-100,100{]}}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{power}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric in {[}-100,100{]}}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{batteryMode}} (\emph{\texttt{'Voltage'\textbar{}'Percentage'}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{batteryMode}} (\sphinxstyleliteralemphasis{\sphinxupquote{'Voltage'\textbar{}'Percentage'}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \end{itemize} \end{description}\end{quote} -\paragraph{Example} -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -b.motorA.setProperties(`debug', `on', `power', 50, `limitValue', 720, `speedRegulation', `on'); \% -\% Instead of: b.motorA.debug = `on'; -\% b.motorA.power = 50; -\% b.motorA.limitValue = 720; -\% b.motorA.speedRegulation = `on'; +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{motorA}\PYG{o}{.}\PYG{n}{setProperties}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{debug}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{power}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+m+mi}{50}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{limitValue}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+m+mi}{720}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{speedRegulation}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{Instead} \PYG{n}{of}\PYG{p}{:} \PYG{n}{brick}\PYG{o}{.}\PYG{n}{motorA}\PYG{o}{.}\PYG{n}{debug} \PYG{o}{=} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{brick}\PYG{o}{.}\PYG{n}{motorA}\PYG{o}{.}\PYG{n}{power} \PYG{o}{=} \PYG{l+m+mi}{50}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{brick}\PYG{o}{.}\PYG{n}{motorA}\PYG{o}{.}\PYG{n}{limitValue} \PYG{o}{=} \PYG{l+m+mi}{720}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{brick}\PYG{o}{.}\PYG{n}{motorA}\PYG{o}{.}\PYG{n}{speedRegulation} \PYG{o}{=} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{;} +\end{sphinxVerbatim} \end{fulllineitems} -\index{start() (source.Motor method)} +\index{start() (source.Motor method)@\spxentry{start()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.start}\pysiglinewithargsret{\sphinxbfcode{start}}{\emph{motor}}{} +\phantomsection\label{\detokenize{Motor:source.Motor.start}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{start}}}{\emph{motor}}{} Starts the motor. \end{fulllineitems} -\index{stop() (source.Motor method)} +\index{stop() (source.Motor method)@\spxentry{stop()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.stop}\pysiglinewithargsret{\sphinxbfcode{stop}}{\emph{motor}}{} +\phantomsection\label{\detokenize{Motor:source.Motor.stop}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{stop}}}{\emph{motor}}{} Stops the motor. -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} If this motor has been started synced with another one (either as master or @@ -809,34 +869,34 @@ motors. \end{itemize} -See also MOTOR.START, MOTOR.SYNCEDSTOP / {\hyperref[Motor:source.Motor.start]{\sphinxcrossref{\sphinxcode{start()}}}}, {\hyperref[Motor:source.Motor.syncedStop]{\sphinxcrossref{\sphinxcode{syncedStop()}}}} +See also MOTOR.START, MOTOR.SYNCEDSTOP / {\hyperref[\detokenize{Motor:source.Motor.start}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{start()}}}}}, {\hyperref[\detokenize{Motor:source.Motor.syncedStop}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{syncedStop()}}}}} \end{fulllineitems} -\index{syncedStart() (source.Motor method)} +\index{syncedStart() (source.Motor method)@\spxentry{syncedStart()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.syncedStart}\pysiglinewithargsret{\sphinxbfcode{syncedStart}}{\emph{motor}, \emph{syncMotor}, \emph{varargin}}{} +\phantomsection\label{\detokenize{Motor:source.Motor.syncedStart}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{syncedStart}}}{\emph{motor}, \emph{syncMotor}, \emph{varargin}}{} Starts this motor synchronized with another. +\begin{quote} -The motor, with which this method is called, acts as a \emph{master}, meaning that the +The motor, with which this method is called, acts as a \sphinxstyleemphasis{master}, meaning that the synchronized control is done with it und uses its parameters. When syncedStart is -called, the master sets some of the slave's (syncMotor) properties to keep it +called, the master sets some of the slave’s (syncMotor) properties to keep it consistent with the physical brick. So, for example, if the master has another -power-value than the slave, the slave's power-value will be set to that of the +power-value than the slave, the slave’s power-value will be set to that of the master when syncedStart() is called. -The following parameters will be affected on the slave: \emph{power}, \emph{brakeMode}, -\emph{limitValue}, \emph{speedRegulation} -\begin{quote}\begin{description} -\item[{Parameters}] \leavevmode\begin{itemize} -\item {} -\textbf{\texttt{syncMotor}} (\emph{\texttt{Motor}}) -- The motor-object to sync with +The following parameters will be affected on the slave: \sphinxstyleemphasis{power}, \sphinxstyleemphasis{brakeMode}, +\sphinxstyleemphasis{limitValue}, \sphinxstyleemphasis{speedRegulation} +\begin{description} +\item[{Arguments:}] \leavevmode +syncMotor (Motor): The motor-object to sync with +turnRatio (numeric in {[}-200,200{]}): Ratio between the two master’s and the +\begin{quote} -\item {} -\textbf{\texttt{turnRatio}} (\emph{\texttt{numeric in {[}-200,200{]}}}) -- Ratio between the two master's and the -slave's motor speed. With values!=0 one motor will be slower than the other +slave’s motor speed. With values!=0 one motor will be slower than the other or even turn into the other direction. This can be used for turning car-like -robots, for example. \emph{{[}OPTIONAL{]}} (Read in Firmware-comments in c\_output.c): +robots, for example. \sphinxstyleemphasis{{[}OPTIONAL{]}} (Read in Firmware-comments in c\_output.c): -\textgreater{} 0 is moving straight forward -\textgreater{} Negative values turn to the left -\textgreater{} Positive values turn to the right @@ -844,38 +904,40 @@ robots, for example. \emph{{[}OPTIONAL{]}} (Read in Firmware-comments in c\_outp -\textgreater{} Value +100 stops the right motor -\textgreater{} Values less than -100 makes the left motor run the opposite direction of the right motor (Spin) -\textgreater{} Values greater than +100 makes the right motor run the opposite direction of the left motor (Spin) +\end{quote} -\end{itemize} - -\end{description}\end{quote} -\paragraph{Notes} -\begin{itemize} +\item[{Notes:}] \leavevmode\begin{itemize} \item {} -This is a pretty `heavy' function, as it tests if both motors are -connected AND aren't running, wasting four packets, keep that in mind. +This is a pretty ‘heavy’ function, as it tests if both motors are +connected AND aren’t running, wasting four packets, keep that in mind. \end{itemize} -\paragraph{Example} -b = EV3(); \% -b.connect(`usb'); \% -m = b.motorA; \% -slave = b.motorB; \% -m.power = 50; \% -m.syncedStart(slave); \% -\% Do stuff -m.stop(); \% +\end{description} +\end{quote} + +\begin{sphinxVerbatim}[commandchars=\\\{\}] + Example: + brick = EV3(); + brick.connect(\PYGZsq{}usb\PYGZsq{}); + motor = brick.motorA; + slave = brick.motorB; + motor.power = 50; + motor.syncedStart(slave); + \PYGZpc{} Do stuff + motor.stop(); -See also MOTOR.STOP, MOTOR.SYNCEDSTOP / {\hyperref[Motor:source.Motor.stop]{\sphinxcrossref{\sphinxcode{stop()}}}}, {\hyperref[Motor:source.Motor.syncedStop]{\sphinxcrossref{\sphinxcode{syncedStop()}}}} +See also MOTOR.STOP, MOTOR.SYNCEDSTOP / :meth:{}`stop{}`, :meth:{}`syncedStop{}` +\end{sphinxVerbatim} \end{fulllineitems} -\index{syncedStop() (source.Motor method)} +\index{syncedStop() (source.Motor method)@\spxentry{syncedStop()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.syncedStop}\pysiglinewithargsret{\sphinxbfcode{syncedStop}}{\emph{motor}}{} +\phantomsection\label{\detokenize{Motor:source.Motor.syncedStop}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{syncedStop}}}{\emph{motor}}{} Stops both motors previously started with syncedStart. -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} This method is called automatically by stop(), if the motors have been @@ -883,19 +945,19 @@ started using syncedStart, and the regular stop-method has been called afterward \end{itemize} -See also MOTOR.SYNCEDSTART, MOTOR.STOP / {\hyperref[Motor:source.Motor.syncedStart]{\sphinxcrossref{\sphinxcode{syncedStart()}}}}, {\hyperref[Motor:source.Motor.stop]{\sphinxcrossref{\sphinxcode{stop()}}}} +See also MOTOR.SYNCEDSTART, MOTOR.STOP / {\hyperref[\detokenize{Motor:source.Motor.syncedStart}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{syncedStart()}}}}}, {\hyperref[\detokenize{Motor:source.Motor.stop}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{stop()}}}}} \end{fulllineitems} -\index{waitFor() (source.Motor method)} +\index{waitFor() (source.Motor method)@\spxentry{waitFor()}\spxextra{source.Motor method}} \begin{fulllineitems} -\phantomsection\label{Motor:source.Motor.waitFor}\pysiglinewithargsret{\sphinxbfcode{waitFor}}{\emph{motor}}{} +\phantomsection\label{\detokenize{Motor:source.Motor.waitFor}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{waitFor}}}{\emph{motor}}{} Stops execution of program as long as motor is running. -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} -This one's a bit tricky. The opCode which is supposed to be used here, OutputReady, +This one’s a bit tricky. The opCode which is supposed to be used here, OutputReady, makes the brick stop sending responses until the motor has stopped. For security reasons, in this toolbox there is an internal timeout for receiving messages from the brick. It raises @@ -905,7 +967,7 @@ continues then, until outputReady will actually finish without an error. \item {} Workaround: Poll isRunning until it is false (No need to check if motor is -connected as speed correctly returns 0 if it's not) +connected as speed correctly returns 0 if it’s not) \end{itemize} @@ -914,32 +976,44 @@ connected as speed correctly returns 0 if it's not) \end{fulllineitems} -\phantomsection\label{Sensor:module-source}\index{source (module)} +\phantomsection\label{\detokenize{Sensor:module-source}}\index{source (module)@\spxentry{source}\spxextra{module}} \section{Sensor} -\label{Sensor:sensor}\label{Sensor::doc}\index{Sensor (class in source)} +\label{\detokenize{Sensor:sensor}}\label{\detokenize{Sensor::doc}}\index{Sensor (class in source)@\spxentry{Sensor}\spxextra{class in source}} \begin{fulllineitems} -\phantomsection\label{Sensor:source.Sensor}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{Sensor}}{\emph{varargin}}{}~\begin{description} -\item[{\emph{List of methods}:}] \leavevmode\begin{itemize} +\phantomsection\label{\detokenize{Sensor:source.Sensor}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{class }}\sphinxcode{\sphinxupquote{source.}}\sphinxbfcode{\sphinxupquote{Sensor}}}{\emph{varargin}}{}~\begin{description} +\item[{\sphinxstyleemphasis{List of methods}:}] \leavevmode\begin{itemize} \item {} -{\hyperref[Sensor:source.Sensor.reset]{\sphinxcrossref{\sphinxcode{reset()}}}} +{\hyperref[\detokenize{Sensor:source.Sensor.reset}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{reset()}}}}} \item {} -{\hyperref[Sensor:source.Sensor.setProperties]{\sphinxcrossref{\sphinxcode{setProperties()}}}} +{\hyperref[\detokenize{Sensor:source.Sensor.setProperties}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{setProperties()}}}}} \end{itemize} \end{description} -High-level class to work with sensors. +Information given in this section can be used to configure a sensor’s measurements. +For example the Touch-Sensor is capable of either detecting whether it is being pushed, or count the number of pushes. +In order to change it’s mode and hence it’s return values, an EV3 object has to be created and connected beforehand. Assuming the physical sensor has +been connected to sensor port 1 of the physical brick, the mode change is done as follows: + +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{o}{/}\PYG{o}{/}\PYG{n}{initialization}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{usb}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)} -The Sensor-class facilitates the communication with sensors. This mainly consists of -reading the sensor's type and current value in a specified mode. -\paragraph{Notes} + \PYG{o}{/}\PYG{o}{/}\PYG{n}{changing} \PYG{n}{mode} \PYG{n}{of} \PYG{n}{sensor}\PYG{p}{:} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{sensor1}\PYG{o}{.}\PYG{n}{mode} \PYG{o}{=} \PYG{n}{DeviceMode}\PYG{o}{.}\PYG{n}{Touch}\PYG{o}{.}\PYG{n}{Bumps} +\end{sphinxVerbatim} + +The available modes to a given sensor are described in the Attributes section. +\subsubsection*{Notes} \begin{itemize} \item {} -You don't need to create instances of this class. The EV3-class automatically creates +You don’t need to create instances of this class. The EV3-class automatically creates instances for each sensor port, and you can work with them via the EV3-object. \item {} @@ -947,24 +1021,36 @@ The Sensor-class represents sensor ports, not individual sensors! \item {} When an input argument of a method is marked as optional, the argument needs to be -`announced' by a preceding 2nd argument, which is a string containing the name of the argument. +‘announced’ by a preceding 2nd argument, which is a string containing the name of the argument. For example, Motor.setProperties may be given a power-parameter. The syntax would be as -follows: \emph{brickObject.motorA.setProperties(`power', 50);} +follows: \sphinxstyleemphasis{brickObject.motorA.setProperties(‘power’, 50);} \end{itemize} -\index{mode (source.Sensor attribute)} +\index{mode (source.Sensor attribute)@\spxentry{mode}\spxextra{source.Sensor attribute}} \begin{fulllineitems} -\phantomsection\label{Sensor:source.Sensor.mode}\pysigline{\sphinxbfcode{mode}} -\emph{DeviceMode.\{Type\}} -- Sensor mode in which the value will be read. By default, mode is set to \emph{DeviceMode.Default.Undefined}. See also {\hyperref[Sensor:source.Sensor.type]{\sphinxcrossref{\sphinxcode{type}}}}. \emph{{[}WRITABLE{]}} Once a physical sensor is connected to the port \emph{and} the physical Brick is connected to the EV3-object, the allowed mode and the default mode for a Sensor-object are the following (depending on the sensor type): +\phantomsection\label{\detokenize{Sensor:source.Sensor.mode}}\pysigline{\sphinxbfcode{\sphinxupquote{mode}}} +Sensor mode in which the value will be read. By default, mode is set to \sphinxstyleemphasis{DeviceMode.Default.Undefined}. See also {\hyperref[\detokenize{Sensor:source.Sensor.type}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{type}}}}}. \sphinxstyleemphasis{{[}WRITABLE{]}} Once a physical sensor is connected to the port \sphinxstyleemphasis{and} the physical Brick is connected to the EV3-object, the allowed mode and the default mode for a Sensor-object are the following (depending on the sensor type): \begin{itemize} \item {} \begin{description} \item[{Touch-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.Touch.Pushed \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.Touch.Pushed \emph{{[}Default{]}} +Output: 0: not pushed, 1: pushed + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.Touch.Bumps}] \leavevmode\begin{itemize} \item {} -DeviceMode.Touch.Bumps +Output: n: number of times being pushed + +\end{itemize} + +\end{description} \end{itemize} @@ -972,14 +1058,41 @@ DeviceMode.Touch.Bumps \item {} \begin{description} \item[{Ultrasonic-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.UltraSonic.DistCM \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} +\item {} +Output: distance in cm + +\item {} +Note: actively creates ultrasonic sound + +\end{itemize} + +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.UltraSonic.DistIn}] \leavevmode\begin{itemize} \item {} -DeviceMode.UltraSonic.DistCM \emph{{[}Default{]}} +Output: distance in inches + +\item {} +Note: actively creates ultrasonic sound + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.UltraSonic.Listen}] \leavevmode\begin{itemize} \item {} -DeviceMode.UltraSonic.DistIn +Output: distance in cm \item {} -DeviceMode.UltraSonic.Listen +Note: ONLY listens to other sources (sensors) of ultrasonic sound + +\end{itemize} + +\end{description} \end{itemize} @@ -987,14 +1100,32 @@ DeviceMode.UltraSonic.Listen \item {} \begin{description} \item[{Color-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.Color.Reflect \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.Color.Reflect \emph{{[}Default{]}} +Output: value in range 0\% to 100\% brightness +\end{itemize} + +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.Color.Ambient}] \leavevmode\begin{itemize} \item {} -DeviceMode.Color.Ambient +Output: value in range 0\% to 100\% brightness +\end{itemize} + +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.Color.Col}] \leavevmode\begin{itemize} \item {} -DeviceMode.Color.Col +Output: none, black, blue, green. yellow, red, white, brown + +\end{itemize} + +\end{description} \end{itemize} @@ -1002,11 +1133,23 @@ DeviceMode.Color.Col \item {} \begin{description} \item[{Gyro-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.Gyro.Angular \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.Gyro.Angular \emph{{[}Default{]}} +Note: value appears to be rising indefinitely, even in resting position + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.Gyro.Rate}] \leavevmode\begin{itemize} \item {} -DeviceMode.Gyro.Rate +Output: rotational speed {[}degree/s{]}. Expect small offset in resting position + +\end{itemize} + +\end{description} \end{itemize} @@ -1014,8 +1157,14 @@ DeviceMode.Gyro.Rate \item {} \begin{description} \item[{Infrared-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.InfraRed.Prox \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.InfraRed.Prox \emph{{[}Default{]}} +Note: currently not recognized + +\end{itemize} + +\end{description} \item {} DeviceMode.InfraRed.Seek @@ -1029,23 +1178,59 @@ DeviceMode.InfraRed.Remote \item {} \begin{description} \item[{NXTColor-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.NXTColor.Reflect \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTColor.Reflect \emph{{[}Default{]}} +Output: value in range 0\% to 100\% brightness +\end{itemize} + +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.NXTColor.Ambient}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTColor.Ambient +Output: value in range 0\% to 100\% brightness + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.NXTColor.Color}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTColor.Color +Output: value representing color: 1-black, 2-blue, 3-green, 4-yellow, 5-red, 6-white, 7-brown + +\end{itemize} +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.NXTColor.Green}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTColor.Green +Output: value in range 0\% to 100\% of green reflectivity +\end{itemize} + +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.NXTColor.Blue}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTColor.Blue +Output: value in range 0\% to 100\% of blue reflectivity + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.NXTColor.Raw}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTColor.Raw +Note: obsolete, functionality available in other modes. Also not working properly. Returning 1 value instead of 3 + +\end{itemize} + +\end{description} \end{itemize} @@ -1053,11 +1238,23 @@ DeviceMode.NXTColor.Raw \item {} \begin{description} \item[{NXTLight-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.NXTLight.Reflect \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTLight.Reflect \emph{{[}Default{]}} +Output: value in range 0\% to 100\% brightness + +\end{itemize} +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.NXTLight.Ambient}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTLight.Ambient +Output: value in range 0\% to 100\% brightness + +\end{itemize} + +\end{description} \end{itemize} @@ -1065,11 +1262,23 @@ DeviceMode.NXTLight.Ambient \item {} \begin{description} \item[{NXTSound-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.NXTSound.DB \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTSound.DB \emph{{[}Default{]}} +Output: value in decibel + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.NXTSound.DBA}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTSound.DBA +Output: value in dba weighted according to human hearing + +\end{itemize} + +\end{description} \end{itemize} @@ -1077,11 +1286,23 @@ DeviceMode.NXTSound.DBA \item {} \begin{description} \item[{NXTTemperature-Sensor}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.NXTTemperature.C \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTTemperature.C \emph{{[}Default{]}} +Output: value in Celsius + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.NXTTemperature.F}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTTemperature.F +Output: value in Fahrenheit + +\end{itemize} + +\end{description} \end{itemize} @@ -1089,11 +1310,23 @@ DeviceMode.NXTTemperature.F \item {} \begin{description} \item[{NXTTouch-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.NXTTouch.Pushed \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTTouch.Pushed \emph{{[}Default{]}} +Output: 0: not pushed, 1: pushed + +\end{itemize} +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.NXTTouch.Bumps}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTTouch.Bumps +Output: n: number of times pressed and released + +\end{itemize} + +\end{description} \end{itemize} @@ -1101,11 +1334,23 @@ DeviceMode.NXTTouch.Bumps \item {} \begin{description} \item[{NXTUltraSonic-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.NXTUltraSonic.CM \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTUltraSonic.CM \emph{{[}Default{]}} +Output: distance in cm + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.NXTUltraSonic.IN}] \leavevmode\begin{itemize} \item {} -DeviceMode.NXTUltraSonic.IN +Output: distance in inches + +\end{itemize} + +\end{description} \end{itemize} @@ -1114,10 +1359,16 @@ DeviceMode.NXTUltraSonic.IN \item {} \begin{description} \item[{HTAccelerometer-Sensor:}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTAccelerometer.Acceleration \emph{{[}Default{]}} +DeviceMode.HTAccelerometer.Acceleration \sphinxstyleemphasis{{[}Default{]}} +\item {} \begin{description} +\item[{DeviceMode.HTAccelerometer.AccelerationAllAxes}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTAccelerometer.AccelerationAllAxes +Note: Not working properly. Returning 1 value instead of 6 + +\end{itemize} + +\end{description} \end{itemize} @@ -1125,8 +1376,17 @@ DeviceMode.HTAccelerometer.AccelerationAllAxes \item {} \begin{description} \item[{HTCompass-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.HTCompass.Degrees \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} +\item {} +Note: ‘Error’ mode assigned, value still appears to be correct. + \item {} -DeviceMode.HTCompass.Degrees \emph{{[}Default{]}} +Output: 0 to 180 degree. 45° being north, 90° east etc + +\end{itemize} + +\end{description} \end{itemize} @@ -1134,62 +1394,125 @@ DeviceMode.HTCompass.Degrees \emph{{[}Default{]}} \item {} \begin{description} \item[{HTColor-Sensor:}] \leavevmode\begin{itemize} +\item {} \begin{description} +\item[{DeviceMode.HTColor.Col \sphinxstyleemphasis{{[}Default{]}}}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTColor.Col \emph{{[}Default{]}} +Output: value representing color: 0-black, 1-purple, 2-blue, 3-cyan, 4-green, 5-green/ yellow, 6-yellow, 7-orange, 8-red, 9-magenta, 10-pink, 11-low saturation blue, 12-low saturation green, 13-low saturation yellow, 14-low saturation orange, 15-low saturation red, 16-low saturation pink, 17-white + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.HTColor.Red}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTColor.Red +Output: value in range 0 to 255 of red reflectivity + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.HTColor.Green}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTColor.Green +Output: value in range 0 to 255 of green reflectivity + +\end{itemize} +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.HTColor.Blue}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTColor.Blue +Output: value in range 0 to 255 of blue reflectivity +\end{itemize} + +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.HTColor.White}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTColor.White +Output: value in range 0 to 255 of white reflectivity + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.HTColor.Raw}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTColor.Raw +Note: obsolete, color values available in other modes. Also not working properly. Returning 1 value instead of 3 + +\end{itemize} +\end{description} + +\item {} \begin{description} +\item[{DeviceMode.HTColor.Nrm,}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTColor.Nr, +Note: obsolete, normalized values available in other modes. Also not working properly. Returning 1 value instead of 4 + +\end{itemize} + +\end{description} +\item {} \begin{description} +\item[{DeviceMode.HTColor.All}] \leavevmode\begin{itemize} \item {} -DeviceMode.HTColor.All +Note: obsolete, all values available in other modes. Also not working properly. Returning 1 value instead of 4 + +\end{itemize} + +\end{description} \end{itemize} \end{description} \end{itemize} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +DeviceMode.\{Type\} + +\end{description}\end{quote} \end{fulllineitems} -\index{debug (source.Sensor attribute)} +\index{debug (source.Sensor attribute)@\spxentry{debug}\spxextra{source.Sensor attribute}} \begin{fulllineitems} -\phantomsection\label{Sensor:source.Sensor.debug}\pysigline{\sphinxbfcode{debug}} -\emph{bool} -- Debug turned on or off. In debug mode, everytime a command is passed to -the sublayer (`communication layer'), there is feedback in the console about what -command has been called. \emph{{[}WRITABLE{]}} +\phantomsection\label{\detokenize{Sensor:source.Sensor.debug}}\pysigline{\sphinxbfcode{\sphinxupquote{debug}}} +Debug turned on or off. In debug mode, everytime a command is passed to +the sublayer (‘communication layer’), there is feedback in the console about what +command has been called. \sphinxstyleemphasis{{[}WRITABLE{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +bool + +\end{description}\end{quote} \end{fulllineitems} -\index{value (source.Sensor attribute)} +\index{value (source.Sensor attribute)@\spxentry{value}\spxextra{source.Sensor attribute}} \begin{fulllineitems} -\phantomsection\label{Sensor:source.Sensor.value}\pysigline{\sphinxbfcode{value}} -\emph{numeric} -- Value read from hysical sensor. What the value represents depends on -{\hyperref[Sensor:source.Sensor.mode]{\sphinxcrossref{\sphinxcode{mode}}}}. \emph{{[}READ-ONLY{]}} +\phantomsection\label{\detokenize{Sensor:source.Sensor.value}}\pysigline{\sphinxbfcode{\sphinxupquote{value}}} +Value read from hysical sensor. What the value represents depends on +{\hyperref[\detokenize{Sensor:source.Sensor.mode}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{mode}}}}}. \sphinxstyleemphasis{{[}READ-ONLY{]}} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{type (source.Sensor attribute)} +\index{type (source.Sensor attribute)@\spxentry{type}\spxextra{source.Sensor attribute}} \begin{fulllineitems} -\phantomsection\label{Sensor:source.Sensor.type}\pysigline{\sphinxbfcode{type}} -\emph{DeviceType} -- Type of physical sensor connected to the port. Possible types are: {[}READ-ONLY{]} +\phantomsection\label{\detokenize{Sensor:source.Sensor.type}}\pysigline{\sphinxbfcode{\sphinxupquote{type}}} +Type of physical sensor connected to the port. Possible types are: {[}READ-ONLY{]} \begin{itemize} \item {} DeviceType.NXTTouch @@ -1249,15 +1572,20 @@ DeviceType.None DeviceType.Error \end{itemize} +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +DeviceType + +\end{description}\end{quote} \end{fulllineitems} -\index{reset() (source.Sensor method)} +\index{reset() (source.Sensor method)@\spxentry{reset()}\spxextra{source.Sensor method}} \begin{fulllineitems} -\phantomsection\label{Sensor:source.Sensor.reset}\pysiglinewithargsret{\sphinxbfcode{reset}}{\emph{sensor}}{} +\phantomsection\label{\detokenize{Sensor:source.Sensor.reset}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{reset}}}{\emph{sensor}}{} Resets sensor value. -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Has not been thoroughly tested but seems to work as expected @@ -1266,29 +1594,35 @@ Has not been thoroughly tested but seems to work as expected \end{fulllineitems} -\index{setProperties() (source.Sensor method)} +\index{setProperties() (source.Sensor method)@\spxentry{setProperties()}\spxextra{source.Sensor method}} \begin{fulllineitems} -\phantomsection\label{Sensor:source.Sensor.setProperties}\pysiglinewithargsret{\sphinxbfcode{setProperties}}{\emph{sensor}, \emph{varargin}}{} -Sets multiple Sensor properties at once using MATLAB's inputParser. +\phantomsection\label{\detokenize{Sensor:source.Sensor.setProperties}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{setProperties}}}{\emph{sensor}, \emph{varargin}}{} +Sets multiple Sensor properties at once using MATLAB’s inputParser. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode\begin{itemize} \item {} -\textbf{\texttt{debug}} (\emph{\texttt{bool}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{debug}} (\sphinxstyleliteralemphasis{\sphinxupquote{bool}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \item {} -\textbf{\texttt{mode}} (\emph{\texttt{DeviceMode.\{Type\}}}) -- \emph{{[}OPTIONAL{]}} +\sphinxstyleliteralstrong{\sphinxupquote{mode}} (\sphinxstyleliteralemphasis{\sphinxupquote{DeviceMode.\{Type\}}}) \textendash{} \sphinxstyleemphasis{{[}OPTIONAL{]}} \end{itemize} \end{description}\end{quote} -\paragraph{Example} -b = EV3(); \% -b.connect(`bt', `serPort', `/dev/rfcomm0'); \% -b.sensor1.setProperties(`debug', `on', `mode', DeviceMode.Color.Ambient); \% -\% Instead of: b.sensor1.debug = `on'; -\% b.sensor1.mode = DeviceMode.Color.Ambient; +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Example}\PYG{p}{:} + \PYG{n}{brick} \PYG{o}{=} \PYG{n}{EV3}\PYG{p}{(}\PYG{p}{)} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{connect}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{bt}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + + \PYG{o}{\PYGZpc{}} \PYG{n}{use} \PYG{n}{the} \PYG{n}{following} \PYG{n}{line}\PYG{p}{:} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{sensor1}\PYG{o}{.}\PYG{n}{setProperties}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{debug}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{mode}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{n}{DeviceMode}\PYG{o}{.}\PYG{n}{Color}\PYG{o}{.}\PYG{n}{Ambient}\PYG{p}{)}\PYG{p}{;} + + \PYG{o}{\PYGZpc{}} \PYG{n}{Instead} \PYG{n}{of}\PYG{p}{:} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{sensor1}\PYG{o}{.}\PYG{n}{debug} \PYG{o}{=} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{on}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{;} + \PYG{n}{brick}\PYG{o}{.}\PYG{n}{sensor1}\PYG{o}{.}\PYG{n}{mode} \PYG{o}{=} \PYG{n}{DeviceMode}\PYG{o}{.}\PYG{n}{Color}\PYG{o}{.}\PYG{n}{Ambient}\PYG{p}{;} +\end{sphinxVerbatim} \end{fulllineitems} @@ -1297,65 +1631,65 @@ b.sensor1.setProperties(`debug', `on', `mode', DeviceMode.Color.Ambient); \% Low-Level documentation -\phantomsection\label{hid:module-source}\index{source (module)} +\phantomsection\label{\detokenize{hid:module-source}}\index{source (module)@\spxentry{source}\spxextra{module}} \section{hidapi} -\label{hid:hidapi}\label{hid::doc}\index{hidapi (class in source)} +\label{\detokenize{hid:hidapi}}\label{\detokenize{hid::doc}}\index{hidapi (class in source)@\spxentry{hidapi}\spxextra{class in source}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{hidapi}}{\emph{vendorID}, \emph{productID}, \emph{nReadBuffer}, \emph{nWriteBuffer}}{}~\begin{description} -\item[{\emph{List of methods}:}] \leavevmode\begin{itemize} +\phantomsection\label{\detokenize{hid:source.hidapi}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{class }}\sphinxcode{\sphinxupquote{source.}}\sphinxbfcode{\sphinxupquote{hidapi}}}{\emph{vendorID}, \emph{productID}, \emph{nReadBuffer}, \emph{nWriteBuffer}}{}~\begin{description} +\item[{\sphinxstyleemphasis{List of methods}:}] \leavevmode\begin{itemize} \item {} -{\hyperref[hid:source.hidapi.open]{\sphinxcrossref{\sphinxcode{open()}}}} +{\hyperref[\detokenize{hid:source.hidapi.open}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{open()}}}}} \item {} -{\hyperref[hid:source.hidapi.close]{\sphinxcrossref{\sphinxcode{close()}}}} +{\hyperref[\detokenize{hid:source.hidapi.close}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{close()}}}}} \item {} -{\hyperref[hid:source.hidapi.read]{\sphinxcrossref{\sphinxcode{read()}}}} +{\hyperref[\detokenize{hid:source.hidapi.read}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{read()}}}}} \item {} -{\hyperref[hid:source.hidapi.read_timeout]{\sphinxcrossref{\sphinxcode{read\_timeout()}}}} +{\hyperref[\detokenize{hid:source.hidapi.read_timeout}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{read\_timeout()}}}}} \item {} -{\hyperref[hid:source.hidapi.write]{\sphinxcrossref{\sphinxcode{write()}}}} +{\hyperref[\detokenize{hid:source.hidapi.write}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{write()}}}}} \item {} -{\hyperref[hid:source.hidapi.getHIDInfoString]{\sphinxcrossref{\sphinxcode{getHIDInfoString()}}}} +{\hyperref[\detokenize{hid:source.hidapi.getHIDInfoString}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{getHIDInfoString()}}}}} \item {} -{\hyperref[hid:source.hidapi.setNonBlocking]{\sphinxcrossref{\sphinxcode{setNonBlocking()}}}} +{\hyperref[\detokenize{hid:source.hidapi.setNonBlocking}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{setNonBlocking()}}}}} \item {} -{\hyperref[hid:source.hidapi.init]{\sphinxcrossref{\sphinxcode{init()}}}} +{\hyperref[\detokenize{hid:source.hidapi.init}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{init()}}}}} \item {} -{\hyperref[hid:source.hidapi.exit]{\sphinxcrossref{\sphinxcode{exit()}}}} +{\hyperref[\detokenize{hid:source.hidapi.exit}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{exit()}}}}} \item {} -{\hyperref[hid:source.hidapi.error]{\sphinxcrossref{\sphinxcode{error()}}}} +{\hyperref[\detokenize{hid:source.hidapi.error}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{error()}}}}} \item {} -{\hyperref[hid:source.hidapi.enumerate]{\sphinxcrossref{\sphinxcode{enumerate()}}}} +{\hyperref[\detokenize{hid:source.hidapi.enumerate}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{enumerate()}}}}} \item {} -{\hyperref[hid:source.hidapi.getManufacturersString]{\sphinxcrossref{\sphinxcode{getManufacturersString()}}}} +{\hyperref[\detokenize{hid:source.hidapi.getManufacturersString}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{getManufacturersString()}}}}} \item {} -{\hyperref[hid:source.hidapi.getProductString]{\sphinxcrossref{\sphinxcode{getProductString()}}}} +{\hyperref[\detokenize{hid:source.hidapi.getProductString}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{getProductString()}}}}} \item {} -{\hyperref[hid:source.hidapi.getSerialNumberString]{\sphinxcrossref{\sphinxcode{getSerialNumberString()}}}} +{\hyperref[\detokenize{hid:source.hidapi.getSerialNumberString}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{getSerialNumberString()}}}}} \end{itemize} \end{description} Interface to the hidapi library -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} -Developed from the hidapi available at \url{http://www.signal11.us/oss/hidapi/}. +Developed from the hidapi available at \sphinxurl{http://www.signal11.us/oss/hidapi/}. \item {} Windows: hidapi.dll needed. @@ -1367,108 +1701,132 @@ Mac: hidapi.dylib needed. In addition, Xcode has to be installed. Linux: hidapi has to be compiled on host-system. \end{itemize} -\index{handle (source.hidapi attribute)} +\index{handle (source.hidapi attribute)@\spxentry{handle}\spxextra{source.hidapi attribute}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.handle}\pysigline{\sphinxbfcode{handle}} +\phantomsection\label{\detokenize{hid:source.hidapi.handle}}\pysigline{\sphinxbfcode{\sphinxupquote{handle}}} \end{fulllineitems} -\index{vendorID (source.hidapi attribute)} +\index{vendorID (source.hidapi attribute)@\spxentry{vendorID}\spxextra{source.hidapi attribute}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.vendorID}\pysigline{\sphinxbfcode{vendorID}} -\emph{numeric} -- Vendor-ID of the USB device. +\phantomsection\label{\detokenize{hid:source.hidapi.vendorID}}\pysigline{\sphinxbfcode{\sphinxupquote{vendorID}}} +Vendor-ID of the USB device. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{productID (source.hidapi attribute)} +\index{productID (source.hidapi attribute)@\spxentry{productID}\spxextra{source.hidapi attribute}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.productID}\pysigline{\sphinxbfcode{productID}} -\emph{numeric} -- Product-ID of the USB device. +\phantomsection\label{\detokenize{hid:source.hidapi.productID}}\pysigline{\sphinxbfcode{\sphinxupquote{productID}}} +Product-ID of the USB device. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{nReadBuffer (source.hidapi attribute)} +\index{nReadBuffer (source.hidapi attribute)@\spxentry{nReadBuffer}\spxextra{source.hidapi attribute}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.nReadBuffer}\pysigline{\sphinxbfcode{nReadBuffer}} -\emph{numeric} -- Read-buffer size in bytes. +\phantomsection\label{\detokenize{hid:source.hidapi.nReadBuffer}}\pysigline{\sphinxbfcode{\sphinxupquote{nReadBuffer}}} +Read-buffer size in bytes. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{nWriteBuffer (source.hidapi attribute)} +\index{nWriteBuffer (source.hidapi attribute)@\spxentry{nWriteBuffer}\spxextra{source.hidapi attribute}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.nWriteBuffer}\pysigline{\sphinxbfcode{nWriteBuffer}} -\emph{numeric} -- Write-buffer size in bytes. Needs to be 1 Byte bigger than +\phantomsection\label{\detokenize{hid:source.hidapi.nWriteBuffer}}\pysigline{\sphinxbfcode{\sphinxupquote{nWriteBuffer}}} +Write-buffer size in bytes. Needs to be 1 Byte bigger than actual packet. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{slib (source.hidapi attribute)} +\index{slib (source.hidapi attribute)@\spxentry{slib}\spxextra{source.hidapi attribute}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.slib}\pysigline{\sphinxbfcode{slib}} -\emph{string} -- Name of shared library file (without file extension). Defaults to -`hidapi'. +\phantomsection\label{\detokenize{hid:source.hidapi.slib}}\pysigline{\sphinxbfcode{\sphinxupquote{slib}}} +Name of shared library file (without file extension). Defaults to +‘hidapi’. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +string + +\end{description}\end{quote} \end{fulllineitems} -\index{sheader (source.hidapi attribute)} +\index{sheader (source.hidapi attribute)@\spxentry{sheader}\spxextra{source.hidapi attribute}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.sheader}\pysigline{\sphinxbfcode{sheader}} -\emph{string} -- Name of shared library header. Defaults to `hidapi.h'. +\phantomsection\label{\detokenize{hid:source.hidapi.sheader}}\pysigline{\sphinxbfcode{\sphinxupquote{sheader}}} +Name of shared library header. Defaults to ‘hidapi.h’. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +string + +\end{description}\end{quote} \end{fulllineitems} -\paragraph{Example} +\subsubsection*{Example} hidHandle = hidapi(1684,0005,1024,1025); \%\textbar{}br\textbar{} -\index{close() (source.hidapi method)} +\index{close() (source.hidapi method)@\spxentry{close()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.close}\pysiglinewithargsret{\sphinxbfcode{close}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.close}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{close}}}{\emph{hid}}{} Close the connection to a hid device. \begin{description} \item[{Throws:}] \leavevmode InvalidHandle: Handle to USB-device not valid \end{description} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Gets called automatically when deleting the hidapi instance. \end{itemize} -\begin{enumerate} -\setcounter{enumi}{2000} -\item {} -Check if pointer is (unexpectedly) already invalidated - -\end{enumerate} \end{fulllineitems} -\index{enumerate() (source.hidapi method)} +\index{enumerate() (source.hidapi method)@\spxentry{enumerate()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.enumerate}\pysiglinewithargsret{\sphinxbfcode{enumerate}}{\emph{hid}, \emph{vendorID}, \emph{productID}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.enumerate}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{enumerate}}}{\emph{hid}, \emph{vendorID}, \emph{productID}}{} Enumerates the info about the hid device with the given vendorID and productID and returns a string with the returned hid information. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode\begin{itemize} \item {} -\textbf{\texttt{vendorID}} (\emph{\texttt{numeric}}) -- Vendor-ID of the USB device in decimal. +\sphinxstyleliteralstrong{\sphinxupquote{vendorID}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric}}) \textendash{} Vendor-ID of the USB device in decimal. \item {} -\textbf{\texttt{productID}} (\emph{\texttt{numeric}}) -- Product-ID of the USB device in decimal. +\sphinxstyleliteralstrong{\sphinxupquote{productID}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric}}) \textendash{} Product-ID of the USB device in decimal. \end{itemize} \end{description}\end{quote} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Using a vendorID and productID of (0,0) will enumerate all connected hid @@ -1480,40 +1838,32 @@ information will need to be resized and cast into uint8 or chars. \end{itemize} -Enumerate the hid devices - \end{fulllineitems} -\index{error() (source.hidapi method)} +\index{error() (source.hidapi method)@\spxentry{error()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.error}\pysiglinewithargsret{\sphinxbfcode{error}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.error}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{error}}}{\emph{hid}}{} Return the hid device error string if a function produced an error. \begin{description} \item[{Throws:}] \leavevmode InvalidHandle: Handle to USB-device not valid \end{description} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} This function must be called explicitly if you think an error was generated from the hid device. \end{itemize} -\begin{enumerate} -\setcounter{enumi}{2000} -\item {} -Check if pointer is (unexpectedly) already invalidated - -\end{enumerate} \end{fulllineitems} -\index{exit() (source.hidapi method)} +\index{exit() (source.hidapi method)@\spxentry{exit()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.exit}\pysiglinewithargsret{\sphinxbfcode{exit}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.exit}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{exit}}}{\emph{hid}}{} hidapi.exit Exit hidapi hid.exit() exits the hidapi library. @@ -1528,10 +1878,10 @@ Notes:: \end{fulllineitems} -\index{getHIDInfoString() (source.hidapi method)} +\index{getHIDInfoString() (source.hidapi method)@\spxentry{getHIDInfoString()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.getHIDInfoString}\pysiglinewithargsret{\sphinxbfcode{getHIDInfoString}}{\emph{hid}, \emph{info}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.getHIDInfoString}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{getHIDInfoString}}}{\emph{hid}, \emph{info}}{} Get the corresponding hid info from the hid device. \begin{description} \item[{Throws:}] \leavevmode @@ -1539,7 +1889,7 @@ CommError: Error during communication with device InvalidHandle: Handle to USB-device not valid \end{description} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Info is the hid information string. @@ -1549,45 +1899,43 @@ Info is the hid information string. See also HIDAPI.GETMANUFACTURERSSTRING, HIDAPI.GETPRODUCTSTRING, HIDAPI.GETSERIALNUMBERSTRING. -Read buffer nReadBuffer length - \end{fulllineitems} -\index{getManufacturersString() (source.hidapi method)} +\index{getManufacturersString() (source.hidapi method)@\spxentry{getManufacturersString()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.getManufacturersString}\pysiglinewithargsret{\sphinxbfcode{getManufacturersString}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.getManufacturersString}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{getManufacturersString}}}{\emph{hid}}{} Get manufacturers string from hid object using getHIDInfoString. \end{fulllineitems} -\index{getProductString() (source.hidapi method)} +\index{getProductString() (source.hidapi method)@\spxentry{getProductString()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.getProductString}\pysiglinewithargsret{\sphinxbfcode{getProductString}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.getProductString}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{getProductString}}}{\emph{hid}}{} Get product string from hid object using getProductString. \end{fulllineitems} -\index{getSerialNumberString() (source.hidapi method)} +\index{getSerialNumberString() (source.hidapi method)@\spxentry{getSerialNumberString()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.getSerialNumberString}\pysiglinewithargsret{\sphinxbfcode{getSerialNumberString}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.getSerialNumberString}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{getSerialNumberString}}}{\emph{hid}}{} Get serial number from hid object using getSerialNumberString. \end{fulllineitems} -\index{init() (source.hidapi method)} +\index{init() (source.hidapi method)@\spxentry{init()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.init}\pysiglinewithargsret{\sphinxbfcode{init}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.init}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{init}}}{\emph{hid}}{} Inits the hidapi library. \begin{description} \item[{Throws:}] \leavevmode CommError: Error during communication with device \end{description} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} This is called automatically in the library itself with the open function. You @@ -1597,17 +1945,17 @@ should not have to call this function directly. \end{fulllineitems} -\index{open() (source.hidapi method)} +\index{open() (source.hidapi method)@\spxentry{open()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.open}\pysiglinewithargsret{\sphinxbfcode{open}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.open}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{open}}}{\emph{hid}}{} Open a connection with a hid device \begin{description} \item[{Throws:}] \leavevmode CommError: Error during communication with device \end{description} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Gets called automatically when creating an hidapi-object. @@ -1622,14 +1970,12 @@ depending on OS. On windows it is uint16, on linux/mac int32. \end{itemize} -Create a null pointer for the hid\_open function (depends on OS) - \end{fulllineitems} -\index{read() (source.hidapi method)} +\index{read() (source.hidapi method)@\spxentry{read()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.read}\pysiglinewithargsret{\sphinxbfcode{read}}{\emph{hid}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.read}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{read}}}{\emph{hid}}{} Read from a hid device and returns the read bytes. \begin{description} \item[{Throws:}] \leavevmode @@ -1637,25 +1983,23 @@ CommError: Error during communication with device InvalidHandle: Handle to USB-device not valid \end{description} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Will print an error if no data was read. \end{itemize} -Read buffer of nReadBuffer length - \end{fulllineitems} -\index{read\_timeout() (source.hidapi method)} +\index{read\_timeout() (source.hidapi method)@\spxentry{read\_timeout()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.read_timeout}\pysiglinewithargsret{\sphinxbfcode{read\_timeout}}{\emph{hid}, \emph{timeOut}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.read_timeout}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{read\_timeout}}}{\emph{hid}, \emph{timeOut}}{} Read from a hid device with a timeout and return the read bytes. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode -\textbf{\texttt{timeOut}} (\emph{\texttt{numeric \textgreater{}= 0}}) -- Milliseconds after which a timeout-error occurs if no +\sphinxstyleliteralstrong{\sphinxupquote{timeOut}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric \textgreater{}= 0}}) \textendash{} Milliseconds after which a timeout-error occurs if no packet could be read. \end{description}\end{quote} @@ -1666,18 +2010,16 @@ InvalidHandle: Handle to USB-device not valid \end{description} -Read buffer of nReadBuffer length - \end{fulllineitems} -\index{setNonBlocking() (source.hidapi method)} +\index{setNonBlocking() (source.hidapi method)@\spxentry{setNonBlocking()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.setNonBlocking}\pysiglinewithargsret{\sphinxbfcode{setNonBlocking}}{\emph{hid}, \emph{nonblock}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.setNonBlocking}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{setNonBlocking}}}{\emph{hid}, \emph{nonblock}}{} Set the non blocking flag on the hid device connection. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode -\textbf{\texttt{nonblock}} (\emph{\texttt{numeric in \{0,1\}}}) -- 0 disables nonblocking, 1 enables nonblocking +\sphinxstyleliteralstrong{\sphinxupquote{nonblock}} (\sphinxstyleliteralemphasis{\sphinxupquote{numeric in \{0,1\}}}) \textendash{} 0 disables nonblocking, 1 enables nonblocking \end{description}\end{quote} \begin{description} @@ -1686,19 +2028,13 @@ CommError: Error during communication with device InvalidHandle: Handle to USB-device not valid \end{description} -\begin{enumerate} -\setcounter{enumi}{2000} -\item {} -Check if pointer is (unexpectedly) already invalidated - -\end{enumerate} \end{fulllineitems} -\index{write() (source.hidapi method)} +\index{write() (source.hidapi method)@\spxentry{write()}\spxextra{source.hidapi method}} \begin{fulllineitems} -\phantomsection\label{hid:source.hidapi.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{hid}, \emph{wmsg}, \emph{reportID}}{} +\phantomsection\label{\detokenize{hid:source.hidapi.write}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{write}}}{\emph{hid}, \emph{wmsg}, \emph{reportID}}{} Write to a hid device. \begin{description} \item[{Throws:}] \leavevmode @@ -1706,7 +2042,7 @@ CommError: Error during communication with device InvalidHandle: Handle to USB-device not valid \end{description} -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Will print an error if there is a mismatch between the buffer size and the @@ -1714,42 +2050,40 @@ reported number of bytes written. \end{itemize} -Append a 0 at the front for HID report ID - \end{fulllineitems} \end{fulllineitems} -\phantomsection\label{usbBrickIO:module-source}\index{source (module)} +\phantomsection\label{\detokenize{usbBrickIO:module-source}}\index{source (module)@\spxentry{source}\spxextra{module}} \section{usbBrickIO} -\label{usbBrickIO:usbbrickio}\label{usbBrickIO::doc}\index{usbBrickIO (class in source)} +\label{\detokenize{usbBrickIO:usbbrickio}}\label{\detokenize{usbBrickIO::doc}}\index{usbBrickIO (class in source)@\spxentry{usbBrickIO}\spxextra{class in source}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{usbBrickIO}}{\emph{varargin}}{}~\begin{description} -\item[{\emph{List of methods}:}] \leavevmode\begin{itemize} +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{class }}\sphinxcode{\sphinxupquote{source.}}\sphinxbfcode{\sphinxupquote{usbBrickIO}}}{\emph{varargin}}{}~\begin{description} +\item[{\sphinxstyleemphasis{List of methods}:}] \leavevmode\begin{itemize} \item {} -{\hyperref[usbBrickIO:source.usbBrickIO.open]{\sphinxcrossref{\sphinxcode{open()}}}} +{\hyperref[\detokenize{usbBrickIO:source.usbBrickIO.open}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{open()}}}}} \item {} -{\hyperref[usbBrickIO:source.usbBrickIO.close]{\sphinxcrossref{\sphinxcode{close()}}}} +{\hyperref[\detokenize{usbBrickIO:source.usbBrickIO.close}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{close()}}}}} \item {} -{\hyperref[usbBrickIO:source.usbBrickIO.read]{\sphinxcrossref{\sphinxcode{read()}}}} +{\hyperref[\detokenize{usbBrickIO:source.usbBrickIO.read}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{read()}}}}} \item {} -{\hyperref[usbBrickIO:source.usbBrickIO.write]{\sphinxcrossref{\sphinxcode{write()}}}} +{\hyperref[\detokenize{usbBrickIO:source.usbBrickIO.write}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{write()}}}}} \item {} -{\hyperref[usbBrickIO:source.usbBrickIO.setProperties]{\sphinxcrossref{\sphinxcode{setProperties()}}}} +{\hyperref[\detokenize{usbBrickIO:source.usbBrickIO.setProperties}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{setProperties()}}}}} \end{itemize} \end{description} USB interface between MATLAB and the brick -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Uses the hid library implementation in hidapi.m @@ -1757,98 +2091,130 @@ Uses the hid library implementation in hidapi.m \item {} The default parameters should always work when you try to connect to an EV3 brick, so in nearly all use-cases, the constructor does not need any parameters (besides -`debug' eventually). +‘debug’ eventually). \end{itemize} -\index{debug (source.usbBrickIO attribute)} +\index{debug (source.usbBrickIO attribute)@\spxentry{debug}\spxextra{source.usbBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.debug}\pysigline{\sphinxbfcode{debug}} -\emph{bool} -- If true, each open/close/read/write-call will be noted in the console. +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.debug}}\pysigline{\sphinxbfcode{\sphinxupquote{debug}}} +If true, each open/close/read/write-call will be noted in the console. Defaults to false. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +bool + +\end{description}\end{quote} \end{fulllineitems} -\index{vendorID (source.usbBrickIO attribute)} +\index{vendorID (source.usbBrickIO attribute)@\spxentry{vendorID}\spxextra{source.usbBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.vendorID}\pysigline{\sphinxbfcode{vendorID}} -\emph{numeric} -- Vendor-ID of the USB device. Defaults to 0x694 (EV3 vendor ID). +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.vendorID}}\pysigline{\sphinxbfcode{\sphinxupquote{vendorID}}} +Vendor-ID of the USB device. Defaults to 0x694 (EV3 vendor ID). +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{productID (source.usbBrickIO attribute)} +\index{productID (source.usbBrickIO attribute)@\spxentry{productID}\spxextra{source.usbBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.productID}\pysigline{\sphinxbfcode{productID}} -\emph{numeric} -- Product-ID of the USB device. Defaults to 0x0005 (EV3 product ID). +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.productID}}\pysigline{\sphinxbfcode{\sphinxupquote{productID}}} +Product-ID of the USB device. Defaults to 0x0005 (EV3 product ID). +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{nReadBuffer (source.usbBrickIO attribute)} +\index{nReadBuffer (source.usbBrickIO attribute)@\spxentry{nReadBuffer}\spxextra{source.usbBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.nReadBuffer}\pysigline{\sphinxbfcode{nReadBuffer}} -\emph{numeric} -- Read-buffer size in bytes. Defaults to 1024. +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.nReadBuffer}}\pysigline{\sphinxbfcode{\sphinxupquote{nReadBuffer}}} +Read-buffer size in bytes. Defaults to 1024. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{nWriteBuffer (source.usbBrickIO attribute)} +\index{nWriteBuffer (source.usbBrickIO attribute)@\spxentry{nWriteBuffer}\spxextra{source.usbBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.nWriteBuffer}\pysigline{\sphinxbfcode{nWriteBuffer}} -\emph{numeric} -- Write-buffer size in bytes. Needs to be 1 Byte bigger than +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.nWriteBuffer}}\pysigline{\sphinxbfcode{\sphinxupquote{nWriteBuffer}}} +Write-buffer size in bytes. Needs to be 1 Byte bigger than actual packet. Defaults to 1025 (EV3 USB maximum packet size = 1024). +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric + +\end{description}\end{quote} \end{fulllineitems} -\index{timeOut (source.usbBrickIO attribute)} +\index{timeOut (source.usbBrickIO attribute)@\spxentry{timeOut}\spxextra{source.usbBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.timeOut}\pysigline{\sphinxbfcode{timeOut}} -\emph{numeric \textgreater{}= 0} -- Milliseconds after which a timeout-error occurs if no packet could be +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.timeOut}}\pysigline{\sphinxbfcode{\sphinxupquote{timeOut}}} +Milliseconds after which a timeout-error occurs if no packet could be read. Defaults to 10000. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric \textgreater{}= 0 + +\end{description}\end{quote} \end{fulllineitems} -\paragraph{Examples} -\% Connecting via USB -commHandle = usbBrickIO(); \% -\% Connecting via USB with enabled debug output -commHandle = usbBrickIO(`debug', true); \% -\index{close() (source.usbBrickIO method)} +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Examples}\PYG{p}{:} + \PYG{o}{\PYGZpc{}} \PYG{n}{Connecting} \PYG{n}{via} \PYG{n}{USB} + \PYG{n}{commHandle} \PYG{o}{=} \PYG{n}{usbBrickIO}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{Connecting} \PYG{n}{via} \PYG{n}{USB} \PYG{k}{with} \PYG{n}{enabled} \PYG{n}{debug} \PYG{n}{output} + \PYG{n}{commHandle} \PYG{o}{=} \PYG{n}{usbBrickIO}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{debug}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{n}{true}\PYG{p}{)}\PYG{p}{;} +\end{sphinxVerbatim} +\index{close() (source.usbBrickIO method)@\spxentry{close()}\spxextra{source.usbBrickIO method}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.close}\pysiglinewithargsret{\sphinxbfcode{close}}{\emph{brickIO}}{} +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.close}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{close}}}{\emph{brickIO}}{} Closes the usb connection the brick through the hidapi interface. \end{fulllineitems} -\index{open() (source.usbBrickIO method)} +\index{open() (source.usbBrickIO method)@\spxentry{open()}\spxextra{source.usbBrickIO method}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.open}\pysiglinewithargsret{\sphinxbfcode{open}}{\emph{brickIO}}{} +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.open}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{open}}}{\emph{brickIO}}{} Opens the usb connection to the brick through the hidapi interface. \end{fulllineitems} -\index{read() (source.usbBrickIO method)} +\index{read() (source.usbBrickIO method)@\spxentry{read()}\spxextra{source.usbBrickIO method}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.read}\pysiglinewithargsret{\sphinxbfcode{read}}{\emph{brickIO}}{} +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.read}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{read}}}{\emph{brickIO}}{} Reads data from the brick through usb using the hidapi interface and returns the data in uint8 format. \end{fulllineitems} -\index{setProperties() (source.usbBrickIO method)} +\index{setProperties() (source.usbBrickIO method)@\spxentry{setProperties()}\spxextra{source.usbBrickIO method}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.setProperties}\pysiglinewithargsret{\sphinxbfcode{setProperties}}{\emph{brickIO}, \emph{varargin}}{} -Sets multiple usbBrickIO properties at once using MATLAB's inputParser. +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.setProperties}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{setProperties}}}{\emph{brickIO}, \emph{varargin}}{} +Sets multiple usbBrickIO properties at once using MATLAB’s inputParser. -The syntax is as follows: commHandle.setProperties(`propertyName1', -propertyValue1, `propertyName2', propertyValue2, ...). Valid, optional properties +The syntax is as follows: commHandle.setProperties(‘propertyName1’, +propertyValue1, ‘propertyName2’, propertyValue2, …). Valid, optional properties are: debug, vendorID, productID, nReadBuffer, nWriteBuffer, timeOut. See also USBBRICKIO.DEBUG, USBBRICKIO.VENDORID, USBBRICKIO.PRODUCTID, @@ -1856,14 +2222,14 @@ USBBRICKIO.NREADBUFFER, USBBRICKIO.NWRITEBUFFER, USBBRICKIO.TIMEOUT \end{fulllineitems} -\index{write() (source.usbBrickIO method)} +\index{write() (source.usbBrickIO method)@\spxentry{write()}\spxextra{source.usbBrickIO method}} \begin{fulllineitems} -\phantomsection\label{usbBrickIO:source.usbBrickIO.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{brickIO}, \emph{wmsg}}{} +\phantomsection\label{\detokenize{usbBrickIO:source.usbBrickIO.write}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{write}}}{\emph{brickIO}, \emph{wmsg}}{} Writes data to the brick through usb using the hidapi interface. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode -\textbf{\texttt{wmsg}} (\emph{\texttt{uint8 array}}) -- Data to be written to the brick via usb +\sphinxstyleliteralstrong{\sphinxupquote{wmsg}} (\sphinxstyleliteralemphasis{\sphinxupquote{uint8 array}}) \textendash{} Data to be written to the brick via usb \end{description}\end{quote} @@ -1872,35 +2238,35 @@ Writes data to the brick through usb using the hidapi interface. \end{fulllineitems} -\phantomsection\label{btBrickIO:module-source}\index{source (module)} +\phantomsection\label{\detokenize{btBrickIO:module-source}}\index{source (module)@\spxentry{source}\spxextra{module}} \section{btBrickIO} -\label{btBrickIO:btbrickio}\label{btBrickIO::doc}\index{btBrickIO (class in source)} +\label{\detokenize{btBrickIO:btbrickio}}\label{\detokenize{btBrickIO::doc}}\index{btBrickIO (class in source)@\spxentry{btBrickIO}\spxextra{class in source}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{btBrickIO}}{\emph{varargin}}{}~\begin{description} -\item[{\emph{List of methods}:}] \leavevmode\begin{itemize} +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{class }}\sphinxcode{\sphinxupquote{source.}}\sphinxbfcode{\sphinxupquote{btBrickIO}}}{\emph{varargin}}{}~\begin{description} +\item[{\sphinxstyleemphasis{List of methods}:}] \leavevmode\begin{itemize} \item {} -{\hyperref[btBrickIO:source.btBrickIO.open]{\sphinxcrossref{\sphinxcode{open()}}}} +{\hyperref[\detokenize{btBrickIO:source.btBrickIO.open}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{open()}}}}} \item {} -{\hyperref[btBrickIO:source.btBrickIO.close]{\sphinxcrossref{\sphinxcode{close()}}}} +{\hyperref[\detokenize{btBrickIO:source.btBrickIO.close}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{close()}}}}} \item {} -{\hyperref[btBrickIO:source.btBrickIO.read]{\sphinxcrossref{\sphinxcode{read()}}}} +{\hyperref[\detokenize{btBrickIO:source.btBrickIO.read}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{read()}}}}} \item {} -{\hyperref[btBrickIO:source.btBrickIO.write]{\sphinxcrossref{\sphinxcode{write()}}}} +{\hyperref[\detokenize{btBrickIO:source.btBrickIO.write}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{write()}}}}} \item {} -{\hyperref[btBrickIO:source.btBrickIO.setProperties]{\sphinxcrossref{\sphinxcode{setProperties()}}}} +{\hyperref[\detokenize{btBrickIO:source.btBrickIO.setProperties}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{setProperties()}}}}} \end{itemize} \end{description} Bluetooth interface between MATLAB and the brick -\paragraph{Notes} +\subsubsection*{Notes} \begin{itemize} \item {} Connects to the bluetooth module on the host through a serial @@ -1914,111 +2280,143 @@ to the brick before trying to connect. Windows: the deviceName- \& channel-properties are needed for connection. The implementation is based on the Instrument Control toolbox. \item {} -Linux (and potentially Mac): serialPort-property is needed for connection. The implementation is based on MATLAB's serial port implementation. +Linux (and potentially Mac): serialPort-property is needed for connection. The implementation is based on MATLAB’s serial port implementation. \end{itemize} \end{description} \item {} -For general information, see also \sphinxcode{BrickIO}. +For general information, see also \sphinxcode{\sphinxupquote{BrickIO}}. \end{itemize} -\index{debug (source.btBrickIO attribute)} +\index{debug (source.btBrickIO attribute)@\spxentry{debug}\spxextra{source.btBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.debug}\pysigline{\sphinxbfcode{debug}} -\emph{bool} -- If true, each open/close/read/write-call will be shown in the console. +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.debug}}\pysigline{\sphinxbfcode{\sphinxupquote{debug}}} +If true, each open/close/read/write-call will be shown in the console. Defaults to false. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +bool + +\end{description}\end{quote} \end{fulllineitems} -\index{serialPort (source.btBrickIO attribute)} +\index{serialPort (source.btBrickIO attribute)@\spxentry{serialPort}\spxextra{source.btBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.serialPort}\pysigline{\sphinxbfcode{serialPort}} -\emph{string} -- Path to the serial-port object. Only needed when using MATLAB's -serial class (i.e. on linux/mac). Defaults to `/dev/rfcomm0'. +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.serialPort}}\pysigline{\sphinxbfcode{\sphinxupquote{serialPort}}} +Path to the serial-port object. Only needed when using MATLAB’s +serial class (i.e. on linux/mac). Defaults to ‘/dev/rfcomm0’. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +string + +\end{description}\end{quote} \end{fulllineitems} -\index{deviceName (source.btBrickIO attribute)} +\index{deviceName (source.btBrickIO attribute)@\spxentry{deviceName}\spxextra{source.btBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.deviceName}\pysigline{\sphinxbfcode{deviceName}} -\emph{string} -- Name of the BT-device = the brick. Only needed when using the -Instrument Control toolbox (i.e. on windows). Defaults to `EV3'. +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.deviceName}}\pysigline{\sphinxbfcode{\sphinxupquote{deviceName}}} +Name of the BT-device = the brick. Only needed when using the +Instrument Control toolbox (i.e. on windows). Defaults to ‘EV3’. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +string + +\end{description}\end{quote} \end{fulllineitems} -\index{channel (source.btBrickIO attribute)} +\index{channel (source.btBrickIO attribute)@\spxentry{channel}\spxextra{source.btBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.channel}\pysigline{\sphinxbfcode{channel}} -\emph{numeric \textgreater{} 0} -- BT-channel of the connected BT-device. Only needed when using +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.channel}}\pysigline{\sphinxbfcode{\sphinxupquote{channel}}} +BT-channel of the connected BT-device. Only needed when using the Instrument Control toolbox (i.e. on windows). Defaults to 1. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric \textgreater{} 0 + +\end{description}\end{quote} \end{fulllineitems} -\index{timeOut (source.btBrickIO attribute)} +\index{timeOut (source.btBrickIO attribute)@\spxentry{timeOut}\spxextra{source.btBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.timeOut}\pysigline{\sphinxbfcode{timeOut}} -\emph{numeric \textgreater{}= 0} -- seconds after which a timeout-error occurs if no packet could be +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.timeOut}}\pysigline{\sphinxbfcode{\sphinxupquote{timeOut}}} +seconds after which a timeout-error occurs if no packet could be read. Defaults to 10. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +numeric \textgreater{}= 0 + +\end{description}\end{quote} \end{fulllineitems} -\index{backend (source.btBrickIO attribute)} +\index{backend (source.btBrickIO attribute)@\spxentry{backend}\spxextra{source.btBrickIO attribute}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.backend}\pysigline{\sphinxbfcode{backend}} -\emph{`serial'\textbar{}'instrumentControl'} -- Backend this implementation is based on. Is -automatically chosen depending on the OS. Defaults to `serial' on linux/mac -systems, and to `instrumentControl' on windows systems. +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.backend}}\pysigline{\sphinxbfcode{\sphinxupquote{backend}}} +Backend this implementation is based on. Is +automatically chosen depending on the OS. Defaults to ‘serial’ on linux/mac +systems, and to ‘instrumentControl’ on windows systems. +\begin{quote}\begin{description} +\item[{Type}] \leavevmode +‘serial’\textbar{}’instrumentControl’ + +\end{description}\end{quote} \end{fulllineitems} -\paragraph{Examples} -\% Connecting on windows -commHandle = btBrickIO(`deviceName', `MyEV3', `channel', 1); \% -\% Connecting on windows using MATLABs default serial port implementation for testing -commHandle = btBrickIO(`deviceName', `MyEV3', `channel', 1, `backend', `serial'); \% -\% Connecting on mac/linux -commHandle = btBrickIO(`serPort', `/dev/rfcomm0'); \% -\index{close() (source.btBrickIO method)} +\begin{sphinxVerbatim}[commandchars=\\\{\}] +\PYG{n}{Examples}\PYG{p}{:} + \PYG{o}{\PYGZpc{}} \PYG{n}{Connecting} \PYG{n}{on} \PYG{n}{windows} + \PYG{n}{commHandle} \PYG{o}{=} \PYG{n}{btBrickIO}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{deviceName}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{MyEV3}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{channel}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{)}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{Connecting} \PYG{n}{on} \PYG{n}{windows} \PYG{n}{using} \PYG{n}{MATLABs} \PYG{n}{default} \PYG{n}{serial} \PYG{n}{port} \PYG{n}{implementation} \PYG{k}{for} \PYG{n}{testing} + \PYG{n}{commHandle} \PYG{o}{=} \PYG{n}{btBrickIO}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{deviceName}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{MyEV3}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{channel}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{backend}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serial}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} + \PYG{o}{\PYGZpc{}} \PYG{n}{Connecting} \PYG{n}{on} \PYG{n}{mac}\PYG{o}{/}\PYG{n}{linux} + \PYG{n}{commHandle} \PYG{o}{=} \PYG{n}{btBrickIO}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{serPort}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{,} \PYG{l+s+s1}{\PYGZsq{}}\PYG{l+s+s1}{/dev/rfcomm0}\PYG{l+s+s1}{\PYGZsq{}}\PYG{p}{)}\PYG{p}{;} +\end{sphinxVerbatim} +\index{close() (source.btBrickIO method)@\spxentry{close()}\spxextra{source.btBrickIO method}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.close}\pysiglinewithargsret{\sphinxbfcode{close}}{\emph{brickIO}}{} +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.close}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{close}}}{\emph{brickIO}}{} Closes the bluetooth connection the brick using fclose. \end{fulllineitems} -\index{open() (source.btBrickIO method)} +\index{open() (source.btBrickIO method)@\spxentry{open()}\spxextra{source.btBrickIO method}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.open}\pysiglinewithargsret{\sphinxbfcode{open}}{\emph{brickIO}}{} +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.open}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{open}}}{\emph{brickIO}}{} Opens the bluetooth connection to the brick using fopen. \end{fulllineitems} -\index{read() (source.btBrickIO method)} +\index{read() (source.btBrickIO method)@\spxentry{read()}\spxextra{source.btBrickIO method}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.read}\pysiglinewithargsret{\sphinxbfcode{read}}{\emph{brickIO}}{} +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.read}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{read}}}{\emph{brickIO}}{} Reads data from the brick through bluetooth via fread and returns the data in uint8 format. \end{fulllineitems} -\index{setProperties() (source.btBrickIO method)} +\index{setProperties() (source.btBrickIO method)@\spxentry{setProperties()}\spxextra{source.btBrickIO method}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.setProperties}\pysiglinewithargsret{\sphinxbfcode{setProperties}}{\emph{brickIO}, \emph{varargin}}{} -Sets multiple btBrickIO properties at once using MATLAB's inputParser. +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.setProperties}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{setProperties}}}{\emph{brickIO}, \emph{varargin}}{} +Sets multiple btBrickIO properties at once using MATLAB’s inputParser. -The syntax is as follows: commHandle.setProperties(`propertyName1', -propertyValue1, `propertyName2', propertyValue2, ...). Valid, optional properties +The syntax is as follows: commHandle.setProperties(‘propertyName1’, +propertyValue1, ‘propertyName2’, propertyValue2, …). Valid, optional properties are: debug, serPort, deviceName, channel, timeout. See also BTBRICKIO.DEBUG, BTBRICKIO.SERIALPORT, BTBRICKIO.DEVICENAME, @@ -2026,14 +2424,14 @@ BTBRICKIO.CHANNEL, BTBRICKIO.TIMEOUT \end{fulllineitems} -\index{write() (source.btBrickIO method)} +\index{write() (source.btBrickIO method)@\spxentry{write()}\spxextra{source.btBrickIO method}} \begin{fulllineitems} -\phantomsection\label{btBrickIO:source.btBrickIO.write}\pysiglinewithargsret{\sphinxbfcode{write}}{\emph{brickIO}, \emph{wmsg}}{} +\phantomsection\label{\detokenize{btBrickIO:source.btBrickIO.write}}\pysiglinewithargsret{\sphinxbfcode{\sphinxupquote{write}}}{\emph{brickIO}, \emph{wmsg}}{} Writes data to the brick through bluetooth via fwrite. \begin{quote}\begin{description} \item[{Parameters}] \leavevmode -\textbf{\texttt{wmsg}} (\emph{\texttt{uint8 array}}) -- Data to be written to the brick via bluetooth +\sphinxstyleliteralstrong{\sphinxupquote{wmsg}} (\sphinxstyleliteralemphasis{\sphinxupquote{uint8 array}}) \textendash{} Data to be written to the brick via bluetooth \end{description}\end{quote} @@ -2045,12 +2443,12 @@ Writes data to the brick through bluetooth via fwrite. \renewcommand{\indexname}{MATLAB Module Index} -\begin{theindex} -\def\bigletter#1{{\Large\sffamily#1}\nopagebreak\vspace{1mm}} +\begin{sphinxtheindex} +\let\bigletter\sphinxstyleindexlettergroup \bigletter{s} -\item {\texttt{source}}, \pageref{usbBrickIO:module-source} -\end{theindex} +\item\relax\sphinxstyleindexentry{source}\sphinxstyleindexpageref{usbBrickIO:\detokenize{module-source}} +\end{sphinxtheindex} \renewcommand{\indexname}{Index} \printindex -\end{document} +\end{document} \ No newline at end of file diff --git a/docs/_build/latex/MindstormsEV3Toolbox.toc b/docs/_build/latex/MindstormsEV3Toolbox.toc index 78021444cdb9307a52fb1e68f90805238a95dad6..d8e8826fe5f9fd092241b28905330f333be8fbf7 100644 --- a/docs/_build/latex/MindstormsEV3Toolbox.toc +++ b/docs/_build/latex/MindstormsEV3Toolbox.toc @@ -1,46 +1,10 @@ -\select@language {english} +\babel@toc {english}{} \contentsline {chapter}{\numberline {1}Contents}{3}{chapter.1} \contentsline {section}{\numberline {1.1}EV3}{3}{section.1.1} -\contentsline {paragraph}{Notes}{3}{paragraph*.5} -\contentsline {paragraph}{Example}{4}{paragraph*.18} -\contentsline {paragraph}{Notes}{4}{paragraph*.20} -\contentsline {paragraph}{Example}{4}{paragraph*.21} -\contentsline {paragraph}{Example}{5}{paragraph*.23} -\contentsline {paragraph}{Notes}{5}{paragraph*.25} -\contentsline {paragraph}{Example}{5}{paragraph*.26} -\contentsline {paragraph}{Example}{5}{paragraph*.28} -\contentsline {paragraph}{Example}{6}{paragraph*.30} -\contentsline {paragraph}{Example}{6}{paragraph*.32} -\contentsline {section}{\numberline {1.2}Motor}{6}{section.1.2} -\contentsline {paragraph}{Notes}{7}{paragraph*.36} -\contentsline {paragraph}{Notes}{8}{paragraph*.50} -\contentsline {paragraph}{Notes}{8}{paragraph*.53} -\contentsline {paragraph}{Example}{9}{paragraph*.55} -\contentsline {paragraph}{Notes}{9}{paragraph*.58} -\contentsline {paragraph}{Notes}{9}{paragraph*.60} -\contentsline {paragraph}{Example}{9}{paragraph*.61} -\contentsline {paragraph}{Notes}{10}{paragraph*.63} -\contentsline {paragraph}{Notes}{10}{paragraph*.65} -\contentsline {section}{\numberline {1.3}Sensor}{10}{section.1.3} -\contentsline {paragraph}{Notes}{10}{paragraph*.68} -\contentsline {paragraph}{Notes}{13}{paragraph*.74} -\contentsline {paragraph}{Example}{13}{paragraph*.76} -\contentsline {section}{\numberline {1.4}hidapi}{13}{section.1.4} -\contentsline {paragraph}{Notes}{14}{paragraph*.79} -\contentsline {paragraph}{Example}{14}{paragraph*.87} -\contentsline {paragraph}{Notes}{15}{paragraph*.89} -\contentsline {paragraph}{Notes}{15}{paragraph*.91} -\contentsline {paragraph}{Notes}{15}{paragraph*.93} -\contentsline {paragraph}{Notes}{15}{paragraph*.96} -\contentsline {paragraph}{Notes}{16}{paragraph*.101} -\contentsline {paragraph}{Notes}{16}{paragraph*.103} -\contentsline {paragraph}{Notes}{16}{paragraph*.105} -\contentsline {paragraph}{Notes}{17}{paragraph*.109} -\contentsline {section}{\numberline {1.5}usbBrickIO}{17}{section.1.5} -\contentsline {paragraph}{Notes}{17}{paragraph*.112} -\contentsline {paragraph}{Examples}{18}{paragraph*.119} -\contentsline {section}{\numberline {1.6}btBrickIO}{18}{section.1.6} -\contentsline {paragraph}{Notes}{19}{paragraph*.127} -\contentsline {paragraph}{Examples}{19}{paragraph*.134} -\contentsline {chapter}{MATLAB Module Index}{21}{section*.140} -\contentsline {chapter}{Index}{23}{section*.141} +\contentsline {section}{\numberline {1.2}Motor}{7}{section.1.2} +\contentsline {section}{\numberline {1.3}Sensor}{11}{section.1.3} +\contentsline {section}{\numberline {1.4}hidapi}{16}{section.1.4} +\contentsline {section}{\numberline {1.5}usbBrickIO}{20}{section.1.5} +\contentsline {section}{\numberline {1.6}btBrickIO}{21}{section.1.6} +\contentsline {chapter}{MATLAB Module Index}{25}{section*.104} +\contentsline {chapter}{Index}{27}{section*.105} diff --git a/docs/_build/latex/footnotehyper-sphinx.sty b/docs/_build/latex/footnotehyper-sphinx.sty new file mode 100644 index 0000000000000000000000000000000000000000..b6692cfb859b90c91dff079bb08fc12bbde2ccd1 --- /dev/null +++ b/docs/_build/latex/footnotehyper-sphinx.sty @@ -0,0 +1,269 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{footnotehyper-sphinx}% + [2017/10/27 v1.7 hyperref aware footnote.sty for sphinx (JFB)] +%% +%% Package: footnotehyper-sphinx +%% Version: based on footnotehyper.sty 2017/03/07 v1.0 +%% as available at https://www.ctan.org/pkg/footnotehyper +%% License: the one applying to Sphinx +%% +%% Refer to the PDF documentation at https://www.ctan.org/pkg/footnotehyper for +%% the code comments. +%% +%% Differences: +%% 1. a partial tabulary compatibility layer added (enough for Sphinx mark-up), +%% 2. use of \spx@opt@BeforeFootnote from sphinx.sty, +%% 3. use of \sphinxunactivateextrasandspace from sphinx.sty, +%% 4. macro definition \sphinxfootnotemark, +%% 5. macro definition \sphinxlongtablepatch +%% 6. replaced an \undefined by \@undefined +\DeclareOption*{\PackageWarning{footnotehyper-sphinx}{Option `\CurrentOption' is unknown}}% +\ProcessOptions\relax +\newbox\FNH@notes +\newdimen\FNH@width +\let\FNH@colwidth\columnwidth +\newif\ifFNH@savingnotes +\AtBeginDocument {% + \let\FNH@latex@footnote \footnote + \let\FNH@latex@footnotetext\footnotetext + \let\FNH@H@@footnotetext \@footnotetext + \newenvironment{savenotes} + {\FNH@savenotes\ignorespaces}{\FNH@spewnotes\ignorespacesafterend}% + \let\spewnotes \FNH@spewnotes + \let\footnote \FNH@footnote + \let\footnotetext \FNH@footnotetext + \let\endfootnote \FNH@endfntext + \let\endfootnotetext\FNH@endfntext + \@ifpackageloaded{hyperref} + {\ifHy@hyperfootnotes + \let\FNH@H@@footnotetext\H@@footnotetext + \else + \let\FNH@hyper@fntext\FNH@nohyp@fntext + \fi}% + {\let\FNH@hyper@fntext\FNH@nohyp@fntext}% +}% +\def\FNH@hyper@fntext{\FNH@fntext\FNH@hyper@fntext@i}% +\def\FNH@nohyp@fntext{\FNH@fntext\FNH@nohyp@fntext@i}% +\def\FNH@fntext #1{% + \ifx\ifmeasuring@\@undefined + \expandafter\@secondoftwo\else\expandafter\@firstofone\fi +% these two lines modified for Sphinx (tabulary compatibility): + {\ifmeasuring@\expandafter\@gobbletwo\else\expandafter\@firstofone\fi}% + {\ifx\equation$\expandafter\@gobbletwo\fi #1}%$ +}% +\long\def\FNH@hyper@fntext@i#1{% + \global\setbox\FNH@notes\vbox + {\unvbox\FNH@notes + \FNH@startnote + \@makefntext + {\rule\z@\footnotesep\ignorespaces + \ifHy@nesting\expandafter\ltx@firstoftwo + \else\expandafter\ltx@secondoftwo + \fi + {\expandafter\hyper@@anchor\expandafter{\Hy@footnote@currentHref}{#1}}% + {\Hy@raisedlink + {\expandafter\hyper@@anchor\expandafter{\Hy@footnote@currentHref}% + {\relax}}% + \let\@currentHref\Hy@footnote@currentHref + \let\@currentlabelname\@empty + #1}% + \@finalstrut\strutbox + }% + \FNH@endnote + }% +}% +\long\def\FNH@nohyp@fntext@i#1{% + \global\setbox\FNH@notes\vbox + {\unvbox\FNH@notes + \FNH@startnote + \@makefntext{\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \FNH@endnote + }% +}% +\def\FNH@startnote{% + \hsize\FNH@colwidth + \interlinepenalty\interfootnotelinepenalty + \reset@font\footnotesize + \floatingpenalty\@MM + \@parboxrestore + \protected@edef\@currentlabel{\csname p@\@mpfn\endcsname\@thefnmark}% + \color@begingroup +}% +\def\FNH@endnote{\color@endgroup}% +\def\FNH@savenotes{% + \begingroup + \ifFNH@savingnotes\else + \FNH@savingnotestrue + \let\@footnotetext \FNH@hyper@fntext + \let\@mpfootnotetext \FNH@hyper@fntext + \let\H@@mpfootnotetext\FNH@nohyp@fntext + \FNH@width\columnwidth + \let\FNH@colwidth\FNH@width + \global\setbox\FNH@notes\box\voidb@x + \let\FNH@thempfn\thempfn + \let\FNH@mpfn\@mpfn + \ifx\@minipagerestore\relax\let\@minipagerestore\@empty\fi + \expandafter\def\expandafter\@minipagerestore\expandafter{% + \@minipagerestore + \let\thempfn\FNH@thempfn + \let\@mpfn\FNH@mpfn + }% + \fi +}% +\def\FNH@spewnotes {% + \endgroup + \ifFNH@savingnotes\else + \ifvoid\FNH@notes\else + \begingroup + \let\@makefntext\@empty + \let\@finalstrut\@gobble + \let\rule\@gobbletwo + \FNH@H@@footnotetext{\unvbox\FNH@notes}% + \endgroup + \fi + \fi +}% +\def\FNH@footnote@envname {footnote}% +\def\FNH@footnotetext@envname{footnotetext}% +\def\FNH@footnote{% +% this line added for Sphinx: + \spx@opt@BeforeFootnote + \ifx\@currenvir\FNH@footnote@envname + \expandafter\FNH@footnoteenv + \else + \expandafter\FNH@latex@footnote + \fi +}% +\def\FNH@footnoteenv{% +% this line added for Sphinx (footnotes in parsed literal blocks): + \catcode13=5 \sphinxunactivateextrasandspace + \@ifnextchar[% + \FNH@footnoteenv@i %] + {\stepcounter\@mpfn + \protected@xdef\@thefnmark{\thempfn}% + \@footnotemark + \def\FNH@endfntext@fntext{\@footnotetext}% + \FNH@startfntext}% +}% +\def\FNH@footnoteenv@i[#1]{% + \begingroup + \csname c@\@mpfn\endcsname #1\relax + \unrestored@protected@xdef\@thefnmark{\thempfn}% + \endgroup + \@footnotemark + \def\FNH@endfntext@fntext{\@footnotetext}% + \FNH@startfntext +}% +\def\FNH@footnotetext{% + \ifx\@currenvir\FNH@footnotetext@envname + \expandafter\FNH@footnotetextenv + \else + \expandafter\FNH@latex@footnotetext + \fi +}% +\def\FNH@footnotetextenv{% + \@ifnextchar[% + \FNH@footnotetextenv@i %] + {\protected@xdef\@thefnmark{\thempfn}% + \def\FNH@endfntext@fntext{\@footnotetext}% + \FNH@startfntext}% +}% +\def\FNH@footnotetextenv@i[#1]{% + \begingroup + \csname c@\@mpfn\endcsname #1\relax + \unrestored@protected@xdef\@thefnmark{\thempfn}% + \endgroup + \ifFNH@savingnotes + \def\FNH@endfntext@fntext{\FNH@nohyp@fntext}% + \else + \def\FNH@endfntext@fntext{\FNH@H@@footnotetext}% + \fi + \FNH@startfntext +}% +\def\FNH@startfntext{% + \setbox\z@\vbox\bgroup + \FNH@startnote + \FNH@prefntext + \rule\z@\footnotesep\ignorespaces +}% +\def\FNH@endfntext {% + \@finalstrut\strutbox + \FNH@postfntext + \FNH@endnote + \egroup + \begingroup + \let\@makefntext\@empty\let\@finalstrut\@gobble\let\rule\@gobbletwo + \FNH@endfntext@fntext {\unvbox\z@}% + \endgroup +}% +\AtBeginDocument{% + \let\FNH@@makefntext\@makefntext + \ifx\@makefntextFB\@undefined + \expandafter\@gobble\else\expandafter\@firstofone\fi + {\ifFBFrenchFootnotes \let\FNH@@makefntext\@makefntextFB \else + \let\FNH@@makefntext\@makefntextORI\fi}% + \expandafter\FNH@check@a\FNH@@makefntext{1.2!3?4,}% + \FNH@@@1.2!3?4,\FNH@@@\relax +}% +\long\def\FNH@check@a #11.2!3?4,#2\FNH@@@#3{% + \ifx\relax#3\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi + \FNH@bad@makefntext@alert + {\def\FNH@prefntext{#1}\def\FNH@postfntext{#2}\FNH@check@b}% +}% +\def\FNH@check@b #1\relax{% + \expandafter\expandafter\expandafter\FNH@check@c + \expandafter\meaning\expandafter\FNH@prefntext + \meaning\FNH@postfntext1.2!3?4,\FNH@check@c\relax +}% +\def\FNH@check@c #11.2!3?4,#2#3\relax{% + \ifx\FNH@check@c#2\expandafter\@gobble\fi\FNH@bad@makefntext@alert +}% +% slight reformulation for Sphinx +\def\FNH@bad@makefntext@alert{% + \PackageWarningNoLine{footnotehyper-sphinx}% + {Footnotes will be sub-optimal, sorry. This is due to the document class or^^J + some package modifying macro \string\@makefntext.^^J + You can try to report this incompatibility at^^J + https://github.com/sphinx-doc/sphinx with this info:}% + \typeout{\meaning\@makefntext}% + \let\FNH@prefntext\@empty\let\FNH@postfntext\@empty +}% +% this macro from original footnote.sty is not used anymore by Sphinx +% but for simplicity sake let's just keep it as is +\def\makesavenoteenv{\@ifnextchar[\FNH@msne@ii\FNH@msne@i}%] +\def\FNH@msne@i #1{% + \expandafter\let\csname FNH$#1\expandafter\endcsname %$ + \csname #1\endcsname + \expandafter\let\csname endFNH$#1\expandafter\endcsname %$ + \csname end#1\endcsname + \FNH@msne@ii[#1]{FNH$#1}%$ +}% +\def\FNH@msne@ii[#1]#2{% + \expandafter\edef\csname#1\endcsname{% + \noexpand\savenotes + \expandafter\noexpand\csname#2\endcsname + }% + \expandafter\edef\csname end#1\endcsname{% + \expandafter\noexpand\csname end#2\endcsname + \noexpand\expandafter + \noexpand\spewnotes + \noexpand\if@endpe\noexpand\@endpetrue\noexpand\fi + }% +}% +% end of footnotehyper 2017/02/16 v0.99 +% some extras for Sphinx : +% \sphinxfootnotemark: usable in section titles and silently removed from TOCs. +\def\sphinxfootnotemark [#1]% + {\ifx\thepage\relax\else\protect\spx@opt@BeforeFootnote + \protect\footnotemark[#1]\fi}% +\AtBeginDocument{% + % let hyperref less complain + \pdfstringdefDisableCommands{\def\sphinxfootnotemark [#1]{}}% + % to obtain hyperlinked footnotes in longtable environment we must replace + % hyperref's patch of longtable's patch of \@footnotetext by our own + \let\LT@p@ftntext\FNH@hyper@fntext + % this *requires* longtable to be used always wrapped in savenotes environment +}% +\endinput +%% +%% End of file `footnotehyper-sphinx.sty'. diff --git a/docs/_build/latex/latexmkjarc b/docs/_build/latex/latexmkjarc new file mode 100644 index 0000000000000000000000000000000000000000..5b315d6c9cf569ec35a25593c9b47e12f212a59f --- /dev/null +++ b/docs/_build/latex/latexmkjarc @@ -0,0 +1,22 @@ +$latex = 'platex ' . $ENV{'LATEXOPTS'} . ' -kanji=utf8 %O %S'; +$dvipdf = 'dvipdfmx %O -o %D %S'; +$makeindex = 'internal mendex %S %B %D'; +sub mendex { + my ($source, $basename, $destination) = @_; + my $dictfile = $basename . ".dic"; + unlink($destination); + system("mendex", "-U", "-f", "-d", $dictfile, "-s", "python.ist", $source); + if ($? > 0) { + print("mendex exited with error code $? (ignored)\n"); + } + if (!-e $destination) { + # create an empty .ind file if nothing + open(FH, ">" . $destination); + close(FH); + } + return 0; +} +add_cus_dep( "glo", "gls", 0, "makeglo" ); +sub makeglo { + return system( "mendex -J -f -s gglo.ist -o '$_[0].gls' '$_[0].glo'" ); +} diff --git a/docs/_build/latex/latexmkrc b/docs/_build/latex/latexmkrc new file mode 100644 index 0000000000000000000000000000000000000000..bba17fa6bc6aa2e1a0f08088b7bd685077463e8e --- /dev/null +++ b/docs/_build/latex/latexmkrc @@ -0,0 +1,9 @@ +$latex = 'latex ' . $ENV{'LATEXOPTS'} . ' %O %S'; +$pdflatex = 'pdflatex ' . $ENV{'LATEXOPTS'} . ' %O %S'; +$lualatex = 'lualatex ' . $ENV{'LATEXOPTS'} . ' %O %S'; +$xelatex = 'xelatex --no-pdf ' . $ENV{'LATEXOPTS'} . ' %O %S'; +$makeindex = 'makeindex -s python.ist %O -o %D %S'; +add_cus_dep( "glo", "gls", 0, "makeglo" ); +sub makeglo { + return system( "makeindex -s gglo.ist -o '$_[0].gls' '$_[0].glo'" ); +} \ No newline at end of file diff --git a/docs/_build/latex/make.bat b/docs/_build/latex/make.bat new file mode 100644 index 0000000000000000000000000000000000000000..94bda2139156340fc42bb1cb678e49ac9ac8d3c6 --- /dev/null +++ b/docs/_build/latex/make.bat @@ -0,0 +1,31 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +pushd %~dp0 + +set PDFLATEX=latexmk -pdf -dvi- -ps- + +set "LATEXOPTS= " + +if "%1" == "" goto all-pdf + +if "%1" == "all-pdf" ( + :all-pdf + for %%i in (*.tex) do ( + %PDFLATEX% %LATEXMKOPTS% %%i + ) + goto end +) + +if "%1" == "all-pdf-ja" ( + goto all-pdf +) + +if "%1" == "clean" ( + del /q /s *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz *.fls *.fdb_latexmk + goto end +) + +:end +popd \ No newline at end of file diff --git a/docs/_build/latex/python.ist b/docs/_build/latex/python.ist index 9ffa0f959f9e60e18c3a7f5fcd518a34964bf68c..70536a6683577925167e84e0b0f6a06228754d0a 100644 --- a/docs/_build/latex/python.ist +++ b/docs/_build/latex/python.ist @@ -2,10 +2,15 @@ line_max 100 headings_flag 1 heading_prefix " \\bigletter " -preamble "\\begin{theindex} -\\def\\bigletter#1{{\\Large\\sffamily#1}\\nopagebreak\\vspace{1mm}} +preamble "\\begin{sphinxtheindex} +\\let\\bigletter\\sphinxstyleindexlettergroup +\\let\\spxpagem \\sphinxstyleindexpagemain +\\let\\spxentry \\sphinxstyleindexentry +\\let\\spxextra \\sphinxstyleindexextra " -symhead_positive "{Symbols}" -numhead_positive "{Numbers}" +postamble "\n\n\\end{sphinxtheindex}\n" + +symhead_positive "{\\sphinxsymbolsname}" +numhead_positive "{\\sphinxnumbersname}" diff --git a/docs/_build/latex/sphinx.sty b/docs/_build/latex/sphinx.sty index d025a07973265e5d4af5204b76df78a316ab5161..de6664cd1f8b9b4e1e03211200cf325b9098a7ed 100644 --- a/docs/_build/latex/sphinx.sty +++ b/docs/_build/latex/sphinx.sty @@ -6,38 +6,199 @@ % \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{sphinx}[2010/01/15 LaTeX package (Sphinx markup)] - -% this is the \ltx@ifundefined of ltxcmds.sty, which is loaded by -% hyperref.sty, but we need it before, and initial ltxcmds.sty -% as in TL2009/Debian had wrong definition. -\newcommand{\spx@ifundefined}[1]{% - \ifcsname #1\endcsname - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\expandafter\expandafter\@firstoftwo - \else - \expandafter\expandafter\expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi -} - +\ProvidesPackage{sphinx}[2019/01/12 v1.8.4 LaTeX package (Sphinx markup)] + +% provides \ltx@ifundefined +% (many packages load ltxcmds: graphicx does for pdftex and lualatex but +% not xelatex, and anyhow kvoptions does, but it may be needed in future to +% use \sphinxdeprecationwarning earlier, and it needs \ltx@ifundefined) +\RequirePackage{ltxcmds} + +%% for deprecation warnings +\newcommand\sphinxdeprecationwarning[4]{% #1 the deprecated macro or name, +% #2 = when deprecated, #3 = when removed, #4 = additional info + \edef\spx@tempa{\detokenize{#1}}% + \ltx@ifundefined{sphinx_depr_\spx@tempa}{% + \global\expandafter\let\csname sphinx_depr_\spx@tempa\endcsname\spx@tempa + \expandafter\AtEndDocument\expandafter{\expandafter\let\expandafter + \sphinxdeprecatedmacro\csname sphinx_depr_\spx@tempa\endcsname + \PackageWarningNoLine{sphinx}{^^J**** SPHINX DEPRECATION WARNING:^^J + \sphinxdeprecatedmacro^^J + \@spaces- is deprecated at Sphinx #2^^J + \@spaces- and removed at Sphinx #3.^^J + #4^^J****}}% + }{% warning already emitted (at end of latex log), don't repeat + }} + + +%% PACKAGES +% +% we delay handling of options to after having loaded packages, because +% of the need to use \definecolor. +\RequirePackage{graphicx} \@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}} - % for \text macro and \iffirstchoice@ conditional even if amsmath not loaded \RequirePackage{amstext} -\RequirePackage{textcomp} -% fancybox not used anymore and will be removed at Sphinx-1.5 -\RequirePackage{fancybox} +\RequirePackage{textcomp}% "warn" option issued from template \RequirePackage{titlesec} +\@ifpackagelater{titlesec}{2016/03/15}% + {\@ifpackagelater{titlesec}{2016/03/21}% + {}% + {\newif\ifsphinx@ttlpatch@ok + \IfFileExists{etoolbox.sty}{% + \RequirePackage{etoolbox}% + \patchcmd{\ttlh@hang}{\parindent\z@}{\parindent\z@\leavevmode}% + {\sphinx@ttlpatch@oktrue}{}% + \ifsphinx@ttlpatch@ok + \patchcmd{\ttlh@hang}{\noindent}{}{}{\sphinx@ttlpatch@okfalse}% + \fi + }{}% + \ifsphinx@ttlpatch@ok + \typeout{^^J Package Sphinx Info: ^^J + **** titlesec 2.10.1 successfully patched for bugfix ****^^J}% + \else + \AtEndDocument{\PackageWarningNoLine{sphinx}{^^J% +******** titlesec 2.10.1 has a bug, (section numbers disappear) ......|^^J% +******** and Sphinx could not patch it, perhaps because your local ...|^^J% +******** copy is already fixed without a changed release date. .......|^^J% +******** If not, you must update titlesec! ...........................|}}% + \fi + }% + }{} \RequirePackage{tabulary} +% tabulary has a bug with its re-definition of \multicolumn in its first pass +% which is not \long. But now Sphinx does not use LaTeX's \multicolumn but its +% own macro. Hence we don't even need to patch tabulary. See sphinxmulticell.sty +% X or S (Sphinx) may have meanings if some table package is loaded hence +% \X was chosen to avoid possibility of conflict +\newcolumntype{\X}[2]{p{\dimexpr + (\linewidth-\arrayrulewidth)*#1/#2-\tw@\tabcolsep-\arrayrulewidth\relax}} +\newcolumntype{\Y}[1]{p{\dimexpr + #1\dimexpr\linewidth-\arrayrulewidth\relax-\tw@\tabcolsep-\arrayrulewidth\relax}} +% using here T (for Tabulary) feels less of a problem than the X could be +\newcolumntype{T}{J}% +% For tables allowing pagebreaks +\RequirePackage{longtable} +% User interface to set-up whitespace before and after tables: +\newcommand*\sphinxtablepre {0pt}% +\newcommand*\sphinxtablepost{\medskipamount}% +% Space from caption baseline to top of table or frame of literal-block +\newcommand*\sphinxbelowcaptionspace{.5\sphinxbaselineskip}% +% as one can not use \baselineskip from inside longtable (it is zero there) +% we need \sphinxbaselineskip, which defaults to \baselineskip +\def\sphinxbaselineskip{\baselineskip}% +% The following is to ensure that, whether tabular(y) or longtable: +% - if a caption is on top of table: +% a) the space between its last baseline and the top rule of table is +% exactly \sphinxbelowcaptionspace +% b) the space from last baseline of previous text to first baseline of +% caption is exactly \parskip+\baselineskip+ height of a strut. +% c) the caption text will wrap at width \LTcapwidth (4in) +% - make sure this works also if "caption" package is loaded by user +% (with its width or margin option taking place of \LTcapwidth role) +% TODO: obtain same for caption of literal block: a) & c) DONE, b) TO BE DONE +% +% To modify space below such top caption, adjust \sphinxbelowcaptionspace +% To add or remove space above such top caption, adjust \sphinxtablepre: +% notice that \abovecaptionskip, \belowcaptionskip, \LTpre are **ignored** +% A. Table with longtable +\def\sphinxatlongtablestart + {\par + \vskip\parskip + \vskip\dimexpr\sphinxtablepre\relax % adjust vertical position + \vbox{}% get correct baseline from above + \LTpre\z@skip\LTpost\z@skip % set to zero longtable's own skips + \edef\sphinxbaselineskip{\dimexpr\the\dimexpr\baselineskip\relax\relax}% + }% +% Compatibility with caption package +\def\sphinxthelongtablecaptionisattop{% + \spx@ifcaptionpackage{\noalign{\vskip-\belowcaptionskip}}{}% +}% +% Achieves exactly \sphinxbelowcaptionspace below longtable caption +\def\sphinxlongtablecapskipadjust + {\dimexpr-\dp\strutbox + -\spx@ifcaptionpackage{\abovecaptionskip}{\sphinxbaselineskip}% + +\sphinxbelowcaptionspace\relax}% +\def\sphinxatlongtableend{\prevdepth\z@\vskip\sphinxtablepost\relax}% +% B. Table with tabular or tabulary +\def\sphinxattablestart{\par\vskip\dimexpr\sphinxtablepre\relax}% +\let\sphinxattableend\sphinxatlongtableend +% This is used by tabular and tabulary templates +\newcommand*\sphinxcapstartof[1]{% + \vskip\parskip + \vbox{}% force baselineskip for good positioning by capstart of hyperanchor + % hyperref puts the anchor 6pt above this baseline; in case of caption + % this baseline will be \ht\strutbox above first baseline of caption + \def\@captype{#1}% + \capstart +% move back vertically, as tabular (or its caption) will compensate + \vskip-\baselineskip\vskip-\parskip +}% +\def\sphinxthecaptionisattop{% locate it after \sphinxcapstartof + \spx@ifcaptionpackage + {\caption@setposition{t}% + \vskip\baselineskip\vskip\parskip % undo those from \sphinxcapstartof + \vskip-\belowcaptionskip % anticipate caption package skip + % caption package uses a \vbox, not a \vtop, so "single line" case + % gives different result from "multi-line" without this: + \nointerlineskip + }% + {}% +}% +\def\sphinxthecaptionisatbottom{% (not finalized; for template usage) + \spx@ifcaptionpackage{\caption@setposition{b}}{}% +}% +% The aim of \sphinxcaption is to apply to tabular(y) the maximal width +% of caption as done by longtable +\def\sphinxtablecapwidth{\LTcapwidth}% +\newcommand\sphinxcaption{\@dblarg\spx@caption}% +\long\def\spx@caption[#1]#2{% + \noindent\hb@xt@\linewidth{\hss + \vtop{\@tempdima\dimexpr\sphinxtablecapwidth\relax +% don't exceed linewidth for the caption width + \ifdim\@tempdima>\linewidth\hsize\linewidth\else\hsize\@tempdima\fi +% longtable ignores \abovecaptionskip/\belowcaptionskip, so do the same here + \abovecaptionskip\sphinxabovecaptionskip % \z@skip + \belowcaptionskip\sphinxbelowcaptionskip % \z@skip + \caption[{#1}]% + {\strut\ignorespaces#2\ifhmode\unskip\@finalstrut\strutbox\fi}% + }\hss}% + \par\prevdepth\dp\strutbox +}% +\def\sphinxabovecaptionskip{\z@skip}% Do not use! Flagged for removal +\def\sphinxbelowcaptionskip{\z@skip}% Do not use! Flagged for removal +% This wrapper of \abovecaptionskip is used in sphinxVerbatim for top +% caption, and with another value in sphinxVerbatimintable +% TODO: To unify space above caption of a code-block with the one above +% caption of a table/longtable, \abovecaptionskip must not be used +% This auxiliary will get renamed and receive a different meaning +% in future. +\def\spx@abovecaptionskip{\abovecaptionskip}% +% Achieve \sphinxbelowcaptionspace below a caption located above a tabular +% or a tabulary +\newcommand\sphinxaftertopcaption +{% + \spx@ifcaptionpackage + {\par\prevdepth\dp\strutbox\nobreak\vskip-\abovecaptionskip}{\nobreak}% + \vskip\dimexpr\sphinxbelowcaptionspace\relax + \vskip-\baselineskip\vskip-\parskip +}% +% varwidth is crucial for our handling of general contents in merged cells +\RequirePackage{varwidth} +% but addition of a compatibility patch with hyperref is needed +% (tested with varwidth v 0.92 Mar 2009) +\AtBeginDocument {% + \let\@@vwid@Hy@raisedlink\Hy@raisedlink + \long\def\@vwid@Hy@raisedlink#1{\@vwid@wrap{\@@vwid@Hy@raisedlink{#1}}}% + \edef\@vwid@setup{% + \let\noexpand\Hy@raisedlink\noexpand\@vwid@Hy@raisedlink % HYPERREF ! + \unexpanded\expandafter{\@vwid@setup}}% +}% +% Homemade package to handle merged cells +\RequirePackage{sphinxmulticell} \RequirePackage{makeidx} % For framing code-blocks and warning type notices, and shadowing topics \RequirePackage{framed} -\newif\ifspx@inframed % flag set if we are in a framed environment -% ifthen not used anymore and will be removed at Sphinx-1.5 -\RequirePackage{ifthen} % The xcolor package draws better fcolorboxes around verbatim code \IfFileExists{xcolor.sty}{ \RequirePackage{xcolor} @@ -46,280 +207,929 @@ } % For highlighted code. \RequirePackage{fancyvrb} -% For table captions. -\RequirePackage{threeparttable} -% Handle footnotes in tables. -\RequirePackage{footnote} -\makesavenoteenv{tabulary} -% For floating figures in the text. +\define@key{FV}{hllines}{\def\sphinx@verbatim@checkifhl##1{\in@{, ##1,}{#1}}} +% sphinxVerbatim must be usable by third party without requiring hllines set-up +\def\sphinxresetverbatimhllines{\def\sphinx@verbatim@checkifhl##1{\in@false}} +\sphinxresetverbatimhllines +% For hyperlinked footnotes in tables; also for gathering footnotes from +% topic and warning blocks. Also to allow code-blocks in footnotes. +\RequirePackage{footnotehyper-sphinx} +% For the H specifier. Do not \restylefloat{figure}, it breaks Sphinx code +% for allowing figures in tables. +\RequirePackage{float} +% For floating figures in the text. Better to load after float. \RequirePackage{wrapfig} % Separate paragraphs by space by default. -\RequirePackage{parskip} +\IfFileExists{parskip-2001-04-09.sty}% since September 2018 TeXLive update +% new parskip.sty, but let it rollback to old one. +% hopefully TeX installation not broken and LaTeX kernel not too old + {\RequirePackage{parskip}[=v1]} +% standard one from 1989. Admittedly \section of article/book gives possibly +% anomalous spacing, but we can't require September 2018 release for some time. + {\RequirePackage{parskip}} % For parsed-literal blocks. \RequirePackage{alltt} % Display "real" single quotes in literal blocks. \RequirePackage{upquote} -% For the H specifier. Do not \restylefloat{figure}, it breaks Sphinx code -% for allowing figures in tables. -\RequirePackage{float} +% control caption around literal-block +\RequirePackage{capt-of} +\RequirePackage{needspace} +% LaTeX 2018-04-01 and later provides \@removefromreset +\ltx@ifundefined{@removefromreset} + {\RequirePackage{remreset}} + {}% avoid warning +% to make pdf with correct encoded bookmarks in Japanese +% this should precede the hyperref package +\ifx\kanjiskip\@undefined +% for non-Japanese: make sure bookmarks are ok also with lualatex + \PassOptionsToPackage{pdfencoding=unicode}{hyperref} +\else + \RequirePackage{atbegshi} + \ifx\ucs\@undefined + \ifnum 42146=\euc"A4A2 + \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}} + \else + \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}} + \fi + \else + \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UCS2}} + \fi +\fi -% Redefine these colors to your liking in the preamble. -\definecolor{TitleColor}{rgb}{0.126,0.263,0.361} -\definecolor{InnerLinkColor}{rgb}{0.208,0.374,0.486} -\definecolor{OuterLinkColor}{rgb}{0.216,0.439,0.388} -% Redefine these colors to something if you want to have colored -% background and border for code examples. -\definecolor{VerbatimColor}{rgb}{1,1,1} -\definecolor{VerbatimBorderColor}{rgb}{0,0,0} - -% Uncomment these two lines to ignore the paper size and make the page -% size more like a typical published manual. -%\renewcommand{\paperheight}{9in} -%\renewcommand{\paperwidth}{8.5in} % typical squarish manual -%\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python'' - -% use pdfoutput for pTeX and dvipdfmx -% when pTeX (\kanjiskip is defined), set pdfoutput to evade \include{pdfcolor} -\ifx\kanjiskip\undefined\else - \newcount\pdfoutput\pdfoutput=0 +\ifx\@jsc@uplatextrue\@undefined\else + \PassOptionsToPackage{setpagesize=false}{hyperref} \fi -\RequirePackage{graphicx} +% These options can be overriden inside 'hyperref' key +% or by later use of \hypersetup. +\PassOptionsToPackage{colorlinks,breaklinks,% + linkcolor=InnerLinkColor,filecolor=OuterLinkColor,% + menucolor=OuterLinkColor,urlcolor=OuterLinkColor,% + citecolor=InnerLinkColor}{hyperref} + +% stylesheet for highlighting with pygments +\RequirePackage{sphinxhighlight} +% fix baseline increase from Pygments latex formatter in case of error tokens +% and keep \fboxsep's scope local via added braces +\def\PYG@tok@err{% + \def\PYG@bc##1{{\setlength{\fboxsep}{-\fboxrule}% + \fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}% +} +\def\PYG@tok@cs{% + \def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}% + \def\PYG@bc##1{{\setlength{\fboxsep}{0pt}% + \colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}}% +}% -% for PDF output, use colors and maximal compression -\newif\ifsphinxpdfoutput % used in \maketitle -\ifx\pdfoutput\undefined\else - \ifnum\pdfoutput=\z@ - \let\py@NormalColor\relax - \let\py@TitleColor\relax - \else - \sphinxpdfoutputtrue - \input{pdfcolor} - \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} - \def\py@TitleColor{\color{TitleColor}} - \pdfcompresslevel=9 - \fi -\fi -% XeLaTeX can do colors, too -\ifx\XeTeXrevision\undefined\else - \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} - \def\py@TitleColor{\color{TitleColor}} +%% OPTIONS +% +% Handle options via "kvoptions" (later loaded by hyperref anyhow) +\RequirePackage{kvoptions} +\SetupKeyvalOptions{prefix=spx@opt@} % use \spx@opt@ prefix + +% Sphinx legacy text layout: 1in margins on all four sides +\ifx\@jsc@uplatextrue\@undefined +\DeclareStringOption[1in]{hmargin} +\DeclareStringOption[1in]{vmargin} +\DeclareStringOption[.5in]{marginpar} +\else +% Japanese standard document classes handle \mag in a special way +\DeclareStringOption[\inv@mag in]{hmargin} +\DeclareStringOption[\inv@mag in]{vmargin} +\DeclareStringOption[.5\dimexpr\inv@mag in\relax]{marginpar} \fi -% Increase printable page size (copied from fullpage.sty) -\topmargin 0pt -\advance \topmargin by -\headheight -\advance \topmargin by -\headsep - -% attempt to work a little better for A4 users -\textheight \paperheight -\advance\textheight by -2in +\DeclareStringOption[0]{maxlistdepth}% \newcommand*\spx@opt@maxlistdepth{0} +\DeclareStringOption[-1]{numfigreset} +\DeclareBoolOption[false]{nonumfigreset} +\DeclareBoolOption[false]{mathnumfig} +% \DeclareBoolOption[false]{usespart}% not used +% dimensions, we declare the \dimen registers here. +\newdimen\sphinxverbatimsep +\newdimen\sphinxverbatimborder +\newdimen\sphinxshadowsep +\newdimen\sphinxshadowsize +\newdimen\sphinxshadowrule +% \DeclareStringOption is not convenient for the handling of these dimensions +% because we want to assign the values to the corresponding registers. Even if +% we added the code to the key handler it would be too late for the initial +% set-up and we would need to do initial assignments explicitely. We end up +% using \define@key directly. +% verbatim +\sphinxverbatimsep=\fboxsep + \define@key{sphinx}{verbatimsep}{\sphinxverbatimsep\dimexpr #1\relax} +\sphinxverbatimborder=\fboxrule + \define@key{sphinx}{verbatimborder}{\sphinxverbatimborder\dimexpr #1\relax} +% topic boxes +\sphinxshadowsep =5pt + \define@key{sphinx}{shadowsep}{\sphinxshadowsep\dimexpr #1\relax} +\sphinxshadowsize=4pt + \define@key{sphinx}{shadowsize}{\sphinxshadowsize\dimexpr #1\relax} +\sphinxshadowrule=\fboxrule + \define@key{sphinx}{shadowrule}{\sphinxshadowrule\dimexpr #1\relax} +% verbatim +\DeclareBoolOption[true]{verbatimwithframe} +\DeclareBoolOption[true]{verbatimwrapslines} +\DeclareBoolOption[true]{verbatimhintsturnover} +\DeclareBoolOption[true]{inlineliteralwraps} +\DeclareStringOption[t]{literalblockcappos} +\DeclareStringOption[r]{verbatimcontinuedalign} +\DeclareStringOption[r]{verbatimcontinuesalign} +% parsed literal +\DeclareBoolOption[true]{parsedliteralwraps} +% \textvisiblespace for compatibility with fontspec+XeTeX/LuaTeX +\DeclareStringOption[\textcolor{red}{\textvisiblespace}]{verbatimvisiblespace} +\DeclareStringOption % must use braces to hide the brackets + [{\makebox[2\fontcharwd\font`\x][r]{\textcolor{red}{\tiny$\m@th\hookrightarrow$}}}]% + {verbatimcontinued} +% notices/admonitions +% the dimensions for notices/admonitions are kept as macros and assigned to +% \spx@notice@border at time of use, hence \DeclareStringOption is ok for this +\newdimen\spx@notice@border +\DeclareStringOption[0.5pt]{noteborder} +\DeclareStringOption[0.5pt]{hintborder} +\DeclareStringOption[0.5pt]{importantborder} +\DeclareStringOption[0.5pt]{tipborder} +\DeclareStringOption[1pt]{warningborder} +\DeclareStringOption[1pt]{cautionborder} +\DeclareStringOption[1pt]{attentionborder} +\DeclareStringOption[1pt]{dangerborder} +\DeclareStringOption[1pt]{errorborder} +% footnotes +\DeclareStringOption[\mbox{ }]{AtStartFootnote} +% we need a public macro name for direct use in latex file +\newcommand*{\sphinxAtStartFootnote}{\spx@opt@AtStartFootnote} +% no such need for this one, as it is used inside other macros +\DeclareStringOption[\leavevmode\unskip]{BeforeFootnote} +% some font styling. +\DeclareStringOption[\sffamily\bfseries]{HeaderFamily} +% colours +% same problems as for dimensions: we want the key handler to use \definecolor. +% first, some colours with no prefix, for backwards compatibility +\newcommand*{\sphinxDeclareColorOption}[2]{% + \definecolor{#1}#2% + \define@key{sphinx}{#1}{\definecolor{#1}##1}% +}% +\sphinxDeclareColorOption{TitleColor}{{rgb}{0.126,0.263,0.361}} +\sphinxDeclareColorOption{InnerLinkColor}{{rgb}{0.208,0.374,0.486}} +\sphinxDeclareColorOption{OuterLinkColor}{{rgb}{0.216,0.439,0.388}} +\sphinxDeclareColorOption{VerbatimColor}{{rgb}{1,1,1}} +\sphinxDeclareColorOption{VerbatimBorderColor}{{rgb}{0,0,0}} +% now the colours defined with "sphinx" prefix in their names +\newcommand*{\sphinxDeclareSphinxColorOption}[2]{% + % set the initial default + \definecolor{sphinx#1}#2% + % set the key handler. The "value" ##1 must be acceptable by \definecolor. + \define@key{sphinx}{#1}{\definecolor{sphinx#1}##1}% +}% +% Default color chosen to be as in minted.sty LaTeX package! +\sphinxDeclareSphinxColorOption{VerbatimHighlightColor}{{rgb}{0.878,1,1}} +% admonition boxes, "light" style +\sphinxDeclareSphinxColorOption{noteBorderColor}{{rgb}{0,0,0}} +\sphinxDeclareSphinxColorOption{hintBorderColor}{{rgb}{0,0,0}} +\sphinxDeclareSphinxColorOption{importantBorderColor}{{rgb}{0,0,0}} +\sphinxDeclareSphinxColorOption{tipBorderColor}{{rgb}{0,0,0}} +% admonition boxes, "heavy" style +\sphinxDeclareSphinxColorOption{warningBorderColor}{{rgb}{0,0,0}} +\sphinxDeclareSphinxColorOption{cautionBorderColor}{{rgb}{0,0,0}} +\sphinxDeclareSphinxColorOption{attentionBorderColor}{{rgb}{0,0,0}} +\sphinxDeclareSphinxColorOption{dangerBorderColor}{{rgb}{0,0,0}} +\sphinxDeclareSphinxColorOption{errorBorderColor}{{rgb}{0,0,0}} +\sphinxDeclareSphinxColorOption{warningBgColor}{{rgb}{1,1,1}} +\sphinxDeclareSphinxColorOption{cautionBgColor}{{rgb}{1,1,1}} +\sphinxDeclareSphinxColorOption{attentionBgColor}{{rgb}{1,1,1}} +\sphinxDeclareSphinxColorOption{dangerBgColor}{{rgb}{1,1,1}} +\sphinxDeclareSphinxColorOption{errorBgColor}{{rgb}{1,1,1}} + +\DeclareDefaultOption{\@unknownoptionerror} +\ProcessKeyvalOptions* +% don't allow use of maxlistdepth via \sphinxsetup. +\DisableKeyvalOption{sphinx}{maxlistdepth} +\DisableKeyvalOption{sphinx}{numfigreset} +\DisableKeyvalOption{sphinx}{nonumfigreset} +\DisableKeyvalOption{sphinx}{mathnumfig} +% user interface: options can be changed midway in a document! +\newcommand\sphinxsetup[1]{\setkeys{sphinx}{#1}} + + +%% MAXLISTDEPTH +% +% remove LaTeX's cap on nesting depth if 'maxlistdepth' key used. +% This is a hack, which works with the standard classes: it assumes \@toodeep +% is always used in "true" branches: "\if ... \@toodeep \else .. \fi." + +% will force use the "false" branch (if there is one) +\def\spx@toodeep@hack{\fi\iffalse} + +% do nothing if 'maxlistdepth' key not used or if package enumitem loaded. +\ifnum\spx@opt@maxlistdepth=\z@\expandafter\@gobbletwo\fi +\AtBeginDocument{% +\@ifpackageloaded{enumitem}{\remove@to@nnil}{}% + \let\spx@toodeepORI\@toodeep + \def\@toodeep{% + \ifnum\@listdepth<\spx@opt@maxlistdepth\relax + \expandafter\spx@toodeep@hack + \else + \expandafter\spx@toodeepORI + \fi}% +% define all missing \@list... macros + \count@\@ne + \loop + \ltx@ifundefined{@list\romannumeral\the\count@} + {\iffalse}{\iftrue\advance\count@\@ne}% + \repeat + \loop + \ifnum\count@>\spx@opt@maxlistdepth\relax\else + \expandafter\let + \csname @list\romannumeral\the\count@\expandafter\endcsname + \csname @list\romannumeral\the\numexpr\count@-\@ne\endcsname + % workaround 2.6--3.2d babel-french issue (fixed in 3.2e; no change needed) + \ltx@ifundefined{leftmargin\romannumeral\the\count@} + {\expandafter\let + \csname leftmargin\romannumeral\the\count@\expandafter\endcsname + \csname leftmargin\romannumeral\the\numexpr\count@-\@ne\endcsname}{}% + \advance\count@\@ne + \repeat +% define all missing enum... counters and \labelenum... macros and \p@enum.. + \count@\@ne + \loop + \ltx@ifundefined{c@enum\romannumeral\the\count@} + {\iffalse}{\iftrue\advance\count@\@ne}% + \repeat + \loop + \ifnum\count@>\spx@opt@maxlistdepth\relax\else + \newcounter{enum\romannumeral\the\count@}% + \expandafter\def + \csname labelenum\romannumeral\the\count@\expandafter\endcsname + \expandafter + {\csname theenum\romannumeral\the\numexpr\count@\endcsname.}% + \expandafter\def + \csname p@enum\romannumeral\the\count@\expandafter\endcsname + \expandafter + {\csname p@enum\romannumeral\the\numexpr\count@-\@ne\expandafter + \endcsname\csname theenum\romannumeral\the\numexpr\count@-\@ne\endcsname.}% + \advance\count@\@ne + \repeat +% define all missing labelitem... macros + \count@\@ne + \loop + \ltx@ifundefined{labelitem\romannumeral\the\count@} + {\iffalse}{\iftrue\advance\count@\@ne}% + \repeat + \loop + \ifnum\count@>\spx@opt@maxlistdepth\relax\else + \expandafter\let + \csname labelitem\romannumeral\the\count@\expandafter\endcsname + \csname labelitem\romannumeral\the\numexpr\count@-\@ne\endcsname + \advance\count@\@ne + \repeat + \PackageInfo{sphinx}{maximal list depth extended to \spx@opt@maxlistdepth}% +\@gobble\@nnil +} -\oddsidemargin 0pt -\evensidemargin 0pt -%\evensidemargin -.25in % for ``manual size'' documents -\marginparwidth 0.5in -\textwidth \paperwidth -\advance\textwidth by -2in +%% INDEX, BIBLIOGRAPHY, APPENDIX, TABLE OF CONTENTS +% +% fix the double index and bibliography on the table of contents +% in jsclasses (Japanese standard document classes) +\ifx\@jsc@uplatextrue\@undefined\else + \renewenvironment{sphinxtheindex} + {\cleardoublepage\phantomsection + \begin{theindex}} + {\end{theindex}} + + \renewenvironment{sphinxthebibliography}[1] + {\cleardoublepage% \phantomsection % not needed here since TeXLive 2010's hyperref + \begin{thebibliography}{#1}} + {\end{thebibliography}} +\fi +% disable \@chappos in Appendix in pTeX +\ifx\kanjiskip\@undefined\else + \let\py@OldAppendix=\appendix + \renewcommand{\appendix}{ + \py@OldAppendix + \gdef\@chappos{} + } +\fi +% make commands known to non-Sphinx document classes +\providecommand*{\sphinxtableofcontents}{\tableofcontents} +\ltx@ifundefined{sphinxthebibliography} + {\newenvironment + {sphinxthebibliography}{\begin{thebibliography}}{\end{thebibliography}}% + } + {}% else clause of \ltx@ifundefined +\ltx@ifundefined{sphinxtheindex} + {\newenvironment{sphinxtheindex}{\begin{theindex}}{\end{theindex}}}% + {}% else clause of \ltx@ifundefined + +% for usage with xindy: this string gets internationalized in preamble +\newcommand*{\sphinxnonalphabeticalgroupname}{} +% redefined in preamble, headings for makeindex produced index +\newcommand*{\sphinxsymbolsname}{} +\newcommand*{\sphinxnumbersname}{} + +%% COLOR (general) +% +% FIXME: \normalcolor should probably be used in place of \py@NormalColor +% elsewhere, and \py@NormalColor should never be defined. \normalcolor +% switches to the colour from last \color call in preamble. +\def\py@NormalColor{\color{black}} +% FIXME: it is probably better to use \color{TitleColor}, as TitleColor +% can be customized from 'sphinxsetup', and drop usage of \py@TitleColor +\def\py@TitleColor{\color{TitleColor}} +% FIXME: this line should be dropped, as "9" is default anyhow. +\ifdefined\pdfcompresslevel\pdfcompresslevel = 9 \fi + + +%% PAGE STYLING +% % Style parameters and macros used by most documents here \raggedbottom \sloppy \hbadness = 5000 % don't print trivial gripes -\pagestyle{empty} % start this way - -% Use this to set the font family for headers and other decor: -\newcommand{\py@HeaderFamily}{\sffamily\bfseries} -\newcommand{\sphinxSetHeaderFamily}[1]{\renewcommand{\py@HeaderFamily}{#1}} - +% Use \pagestyle{normal} as the primary pagestyle for text. % Redefine the 'normal' header/footer style when using "fancyhdr" package: -\spx@ifundefined{fancyhf}{}{ - % Use \pagestyle{normal} as the primary pagestyle for text. - \fancypagestyle{normal}{ +\@ifpackageloaded{fancyhdr}{% + \ltx@ifundefined{c@chapter} + {% no \chapter, "howto" (non-Japanese) docclass + \fancypagestyle{plain}{ \fancyhf{} + \fancyfoot[C]{{\py@HeaderFamily\thepage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0pt} + } + % Same as 'plain', this way we can use it in template + % FIXME: shouldn't this have a running header with Name and Release like 'manual'? + \fancypagestyle{normal}{ + \fancyhf{} + \fancyfoot[C]{{\py@HeaderFamily\thepage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0pt} + } + }% + {% classes with \chapter command + \fancypagestyle{normal}{ + \fancyhf{} + % FIXME: this presupposes "twoside". + % If "oneside" class option, there are warnings in LaTeX log. \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}} \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}} - \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}} + \fancyhead[LE,RO]{{\py@HeaderFamily \@title\sphinxheadercomma\py@release}} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0.4pt} % define chaptermark with \@chappos when \@chappos is available for Japanese - \spx@ifundefined{@chappos}{} + \ltx@ifundefined{@chappos}{} {\def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}}} - } + } % Update the plain style so we get the page number & footer line, % but not a chapter or section title. This is to keep the first - % page of a chapter and the blank page between chapters `clean.' - \fancypagestyle{plain}{ + % page of a chapter `clean.' + \fancypagestyle{plain}{ \fancyhf{} \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0.4pt} + } + } + } + {% no fancyhdr: memoir class + % Provide default for 'normal' style simply as an alias of 'plain' style + % This way we can use \pagestyle{normal} in LaTeX template + \def\ps@normal{\ps@plain} + % Users of memoir class are invited to redefine 'normal' style in preamble } + +% geometry +\ifx\kanjiskip\@undefined + \PassOptionsToPackage{% + hmargin={\unexpanded{\spx@opt@hmargin}},% + vmargin={\unexpanded{\spx@opt@vmargin}},% + marginpar=\unexpanded{\spx@opt@marginpar}} + {geometry} +\else + % set text width for Japanese documents to be integer multiple of 1zw + % and text height to be integer multiple of \baselineskip + % the execution is delayed to \sphinxsetup then geometry.sty + \normalsize\normalfont + \newcommand*\sphinxtextwidthja[1]{% + \if@twocolumn\tw@\fi + \dimexpr + \numexpr\dimexpr\paperwidth-\tw@\dimexpr#1\relax\relax/ + \dimexpr\if@twocolumn\tw@\else\@ne\fi zw\relax + zw\relax}% + \newcommand*\sphinxmarginparwidthja[1]{% + \dimexpr\numexpr\dimexpr#1\relax/\dimexpr1zw\relax zw\relax}% + \newcommand*\sphinxtextlinesja[1]{% + \numexpr\@ne+\dimexpr\paperheight-\topskip-\tw@\dimexpr#1\relax\relax/ + \baselineskip\relax}% + \ifx\@jsc@uplatextrue\@undefined\else + % the way we found in order for the papersize special written by + % geometry in the dvi file to be correct in case of jsbook class + \ifnum\mag=\@m\else % do nothing special if nomag class option or 10pt + \PassOptionsToPackage{truedimen}{geometry}% + \fi + \fi + \PassOptionsToPackage{% + hmarginratio={1:1},% + textwidth=\unexpanded{\sphinxtextwidthja{\spx@opt@hmargin}},% + vmarginratio={1:1},% + lines=\unexpanded{\sphinxtextlinesja{\spx@opt@vmargin}},% + marginpar=\unexpanded{\sphinxmarginparwidthja{\spx@opt@marginpar}},% + footskip=2\baselineskip,% + }{geometry}% + \AtBeginDocument + {% update a dimension used by the jsclasses + \ifx\@jsc@uplatextrue\@undefined\else\fullwidth\textwidth\fi + % for some reason, jreport normalizes all dimensions with \@settopoint + \@ifclassloaded{jreport} + {\@settopoint\textwidth\@settopoint\textheight\@settopoint\marginparwidth} + {}% <-- "false" clause of \@ifclassloaded + }% +\fi + +% fix fncychap's bug which uses prematurely the \textwidth value +\@ifpackagewith{fncychap}{Bjornstrup} + {\AtBeginDocument{\mylen\textwidth\advance\mylen-2\myhi}}% + {}% <-- "false" clause of \@ifpackagewith + + +%% TITLES +% +% Since Sphinx 1.5, users should use HeaderFamily key to 'sphinxsetup' rather +% than defining their own \py@HeaderFamily command (which is still possible). +% Memo: \py@HeaderFamily is also used by \maketitle as defined in +% sphinxmanual.cls/sphinxhowto.cls +\newcommand{\py@HeaderFamily}{\spx@opt@HeaderFamily} + +% This sets up the fancy chapter headings that make the documents look +% at least a little better than the usual LaTeX output. +\@ifpackagewith{fncychap}{Bjarne}{ + \ChNameVar {\raggedleft\normalsize \py@HeaderFamily} + \ChNumVar {\raggedleft\Large \py@HeaderFamily} + \ChTitleVar{\raggedleft\Large \py@HeaderFamily} + % This creates (numbered) chapter heads without the leading \vspace*{}: + \def\@makechapterhead#1{% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \DOCH + \fi + \fi + \interlinepenalty\@M + \if@mainmatter + \DOTI{#1}% + \else% + \DOTIS{#1}% + \fi + }} +}{}% <-- "false" clause of \@ifpackagewith + +% Augment the sectioning commands used to get our own font family in place, +% and reset some internal data items (\titleformat from titlesec package) +\titleformat{\section}{\Large\py@HeaderFamily}% + {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsection}{\large\py@HeaderFamily}% + {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsubsection}{\py@HeaderFamily}% + {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +% By default paragraphs (and subsubsections) will not be numbered because +% sphinxmanual.cls and sphinxhowto.cls set secnumdepth to 2 +\titleformat{\paragraph}{\py@HeaderFamily}% + {\py@TitleColor\theparagraph}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subparagraph}{\py@HeaderFamily}% + {\py@TitleColor\thesubparagraph}{0.5em}{\py@TitleColor}{\py@NormalColor} + + +%% GRAPHICS +% +% \sphinxincludegraphics defined to resize images larger than the line width, +% except if height or width option present. +% +% If scale is present, rescale before fitting to line width. (since 1.5) +\newbox\spx@image@box +\newcommand*{\sphinxincludegraphics}[2][]{% + \in@{height}{#1}\ifin@\else\in@{width}{#1}\fi + \ifin@ % height or width present + \includegraphics[#1]{#2}% + \else % no height nor width (but #1 may be "scale=...") + \setbox\spx@image@box\hbox{\includegraphics[#1,draft]{#2}}% + \ifdim \wd\spx@image@box>\linewidth + \setbox\spx@image@box\box\voidb@x % clear memory + \includegraphics[#1,width=\linewidth]{#2}% + \else + \setbox\spx@image@box\box\voidb@x % clear memory + \includegraphics[#1]{#2}% + \fi + \fi } +% \sphinxsafeincludegraphics resizes images larger than the line width, +% or taller than about the text height (whether or not height/width options +% were used). This is requested to avoid a crash with \MakeFramed as used by +% sphinxShadowBox (topic/contents) and sphinxheavybox (admonitions), and also +% by sphinxVerbatim (but a priori no image inclusion there). +\newdimen\spx@image@maxheight +% default maximal setting will get reduced by sphinxShadowBox/sphinxheavybox +\AtBeginDocument{\spx@image@maxheight\textheight} +\newcommand*{\sphinxsafeincludegraphics}[2][]{% + \gdef\spx@includegraphics@options{#1}% + \setbox\spx@image@box\hbox{\includegraphics[#1,draft]{#2}}% + \in@false + \ifdim \wd\spx@image@box>\linewidth + \g@addto@macro\spx@includegraphics@options{,width=\linewidth}% + \in@true + \fi + % no rotation, no need to worry about depth + \ifdim \ht\spx@image@box>\spx@image@maxheight + \g@addto@macro\spx@includegraphics@options{,height=\spx@image@maxheight}% + \in@true + \fi + \ifin@ + \g@addto@macro\spx@includegraphics@options{,keepaspectratio}% + \fi + \setbox\spx@image@box\box\voidb@x % clear memory + \expandafter\includegraphics\expandafter[\spx@includegraphics@options]{#2}% +}% -% Some custom font markup commands. -% *** the macros without \sphinx prefix are still defined at bottom of file *** -\newcommand{\sphinxstrong}[1]{{\textbf{#1}}} -% let \sphinxcode and \sphinxbfcode use straight quotes. \@noligs patched by upquote, -% but needs protection in "moving arguments" such as for captions. -% Use \scantokens to handle e.g. \item[{\sphinxcode{'fontenc'}}] -\DeclareRobustCommand{\sphinxcode}[1]{{\@noligs\scantokens{\texttt{#1}\relax}}} -\newcommand{\sphinxbfcode}[1]{\sphinxcode{\bfseries#1}} -\newcommand{\sphinxemail}[1]{\textsf{#1}} -\newcommand{\sphinxtablecontinued}[1]{\textsf{#1}} -\newcommand{\sphinxtitleref}[1]{\emph{#1}} -\newcommand{\sphinxmenuselection}[1]{\emph{#1}} -\newcommand{\sphinxaccelerator}[1]{\underline{#1}} -\newcommand{\sphinxcrossref}[1]{\emph{#1}} -\newcommand{\sphinxtermref}[1]{\emph{#1}} - -% miscellaneous related to footnotes -\newcommand*{\sphinxAtStartFootnote}{\mbox{ }} -% Support large numbered footnotes in minipage (cf. admonitions) + +%% FIGURE IN TABLE +% +\newenvironment{sphinxfigure-in-table}[1][\linewidth]{% + \def\@captype{figure}% + \sphinxsetvskipsforfigintablecaption + \begin{minipage}{#1}% +}{\end{minipage}} +% store the original \caption macro for usage with figures inside longtable +% and tabulary cells. Make sure we get the final \caption in presence of +% caption package, whether the latter was loaded before or after sphinx. +\AtBeginDocument{% + \let\spx@originalcaption\caption + \@ifpackageloaded{caption} + {\let\spx@ifcaptionpackage\@firstoftwo + \caption@AtBeginDocument*{\let\spx@originalcaption\caption}% +% in presence of caption package, drop our own \sphinxcaption whose aim was to +% ensure same width of caption to all kinds of tables (tabular(y), longtable), +% because caption package has its own width (or margin) option + \def\sphinxcaption{\caption}% + }% + {\let\spx@ifcaptionpackage\@secondoftwo}% +} +% tabulary expands twice contents, we need to prevent double counter stepping +\newcommand*\sphinxfigcaption + {\ifx\equation$%$% this is trick to identify tabulary first pass + \firstchoice@false\else\firstchoice@true\fi + \spx@originalcaption } +\newcommand*\sphinxsetvskipsforfigintablecaption + {\abovecaptionskip\smallskipamount + \belowcaptionskip\smallskipamount} + + +%% CITATIONS +% +\protected\def\sphinxcite{\cite} + +%% FOOTNOTES +% +% Support large numbered footnotes in minipage +% But now obsolete due to systematic use of \savenotes/\spewnotes +% when minipages are in use in the various macro definitions next. \def\thempfootnote{\arabic{mpfootnote}} -% Redefine the Verbatim environment to allow border and background colors -% and to handle the top caption in a non separable by pagebreak way. -% The original environment is still used for verbatims within tables. -\let\OriginalVerbatim=\Verbatim -\let\endOriginalVerbatim=\endVerbatim -\newcommand\spx@colorbox [2]{% -% #1 will be \fcolorbox or, for first part of frame: \spx@fcolorbox -% let the framing obey the current indentation (adapted from framed.sty's code). +%% NUMBERING OF FIGURES, TABLES, AND LITERAL BLOCKS +\ltx@ifundefined{c@chapter} + {\newcounter{literalblock}}% + {\newcounter{literalblock}[chapter]% + \def\theliteralblock{\ifnum\c@chapter>\z@\arabic{chapter}.\fi + \arabic{literalblock}}% + }% +\ifspx@opt@nonumfigreset + \ltx@ifundefined{c@chapter}{}{% + \@removefromreset{figure}{chapter}% + \@removefromreset{table}{chapter}% + \@removefromreset{literalblock}{chapter}% + \ifspx@opt@mathnumfig + \@removefromreset{equation}{chapter}% + \fi + }% + \def\thefigure{\arabic{figure}}% + \def\thetable {\arabic{table}}% + \def\theliteralblock{\arabic{literalblock}}% + \ifspx@opt@mathnumfig + \def\theequation{\arabic{equation}}% + \fi +\else +\let\spx@preAthefigure\@empty +\let\spx@preBthefigure\@empty +% \ifspx@opt@usespart % <-- LaTeX writer could pass such a 'usespart' boolean +% % as sphinx.sty package option +% If document uses \part, (triggered in Sphinx by latex_toplevel_sectioning) +% LaTeX core per default does not reset chapter or section +% counters at each part. +% But if we modify this, we need to redefine \thechapter, \thesection to +% include the part number and this will cause problems in table of contents +% because of too wide numbering. Simplest is to do nothing. +% \fi +\ifnum\spx@opt@numfigreset>0 + \ltx@ifundefined{c@chapter} + {} + {\g@addto@macro\spx@preAthefigure{\ifnum\c@chapter>\z@\arabic{chapter}.}% + \g@addto@macro\spx@preBthefigure{\fi}}% +\fi +\ifnum\spx@opt@numfigreset>1 + \@addtoreset{figure}{section}% + \@addtoreset{table}{section}% + \@addtoreset{literalblock}{section}% + \ifspx@opt@mathnumfig + \@addtoreset{equation}{section}% + \fi + \g@addto@macro\spx@preAthefigure{\ifnum\c@section>\z@\arabic{section}.}% + \g@addto@macro\spx@preBthefigure{\fi}% +\fi +\ifnum\spx@opt@numfigreset>2 + \@addtoreset{figure}{subsection}% + \@addtoreset{table}{subsection}% + \@addtoreset{literalblock}{subsection}% + \ifspx@opt@mathnumfig + \@addtoreset{equation}{subsection}% + \fi + \g@addto@macro\spx@preAthefigure{\ifnum\c@subsection>\z@\arabic{subsection}.}% + \g@addto@macro\spx@preBthefigure{\fi}% +\fi +\ifnum\spx@opt@numfigreset>3 + \@addtoreset{figure}{subsubsection}% + \@addtoreset{table}{subsubsection}% + \@addtoreset{literalblock}{subsubsection}% + \ifspx@opt@mathnumfig + \@addtoreset{equation}{subsubsection}% + \fi + \g@addto@macro\spx@preAthefigure{\ifnum\c@subsubsection>\z@\arabic{subsubsection}.}% + \g@addto@macro\spx@preBthefigure{\fi}% +\fi +\ifnum\spx@opt@numfigreset>4 + \@addtoreset{figure}{paragraph}% + \@addtoreset{table}{paragraph}% + \@addtoreset{literalblock}{paragraph}% + \ifspx@opt@mathnumfig + \@addtoreset{equation}{paragraph}% + \fi + \g@addto@macro\spx@preAthefigure{\ifnum\c@subparagraph>\z@\arabic{subparagraph}.}% + \g@addto@macro\spx@preBthefigure{\fi}% +\fi +\ifnum\spx@opt@numfigreset>5 + \@addtoreset{figure}{subparagraph}% + \@addtoreset{table}{subparagraph}% + \@addtoreset{literalblock}{subparagraph}% + \ifspx@opt@mathnumfig + \@addtoreset{equation}{subparagraph}% + \fi + \g@addto@macro\spx@preAthefigure{\ifnum\c@subsubparagraph>\z@\arabic{subsubparagraph}.}% + \g@addto@macro\spx@preBthefigure{\fi}% +\fi +\expandafter\g@addto@macro +\expandafter\spx@preAthefigure\expandafter{\spx@preBthefigure}% +\let\thefigure\spx@preAthefigure +\let\thetable\spx@preAthefigure +\let\theliteralblock\spx@preAthefigure +\g@addto@macro\thefigure{\arabic{figure}}% +\g@addto@macro\thetable{\arabic{table}}% +\g@addto@macro\theliteralblock{\arabic{literalblock}}% + \ifspx@opt@mathnumfig + \let\theequation\spx@preAthefigure + \g@addto@macro\theequation{\arabic{equation}}% + \fi +\fi + + +%% LITERAL BLOCKS +% +% Based on use of "fancyvrb.sty"'s Verbatim. +% - with framing allowing page breaks ("framed.sty") +% - with breaking of long lines (exploits Pygments mark-up), +% - with possibly of a top caption, non-separable by pagebreak. +% - and usable inside tables or footnotes ("footnotehyper-sphinx"). + +% For extensions which use \OriginalVerbatim and compatibility with Sphinx < +% 1.5, we define and use these when (unmodified) Verbatim will be needed. But +% Sphinx >= 1.5 does not modify the \Verbatim macro anymore. +\let\OriginalVerbatim \Verbatim +\let\endOriginalVerbatim\endVerbatim + +% for captions of literal blocks +% at start of caption title +\newcommand*{\fnum@literalblock}{\literalblockname\nobreakspace\theliteralblock} +% this will be overwritten in document preamble by Babel translation +\newcommand*{\literalblockname}{Listing } +% file extension needed for \caption's good functioning, the file is created +% only if a \listof{literalblock}{foo} command is encountered, which is +% analogous to \listoffigures, but for the code listings (foo = chosen title.) +\newcommand*{\ext@literalblock}{lol} + +\newif\ifspx@inframed % flag set if we are already in a framed environment +% if forced use of minipage encapsulation is needed (e.g. table cells) +\newif\ifsphinxverbatimwithminipage \sphinxverbatimwithminipagefalse + +% Framing macro for use with framed.sty's \FrameCommand +% - it obeys current indentation, +% - frame is \fboxsep separated from the contents, +% - the contents use the full available text width, +% - #1 = color of frame, #2 = color of background, +% - #3 = above frame, #4 = below frame, #5 = within frame, +% - #3 and #4 must be already typeset boxes; they must issue \normalcolor +% or similar, else, they are under scope of color #1 +\long\def\spx@fcolorbox #1#2#3#4#5{% \hskip\@totalleftmargin \hskip-\fboxsep\hskip-\fboxrule - #1{VerbatimBorderColor}{VerbatimColor}{#2}% + % use of \color@b@x here is compatible with both xcolor.sty and color.sty + \color@b@x {\color{#1}\spx@CustomFBox{#3}{#4}}{\color{#2}}{#5}% \hskip-\fboxsep\hskip-\fboxrule \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth -} -% use of \color@b@x here is compatible with both xcolor.sty and color.sty -\def\spx@fcolorbox #1#2% - {\color@b@x {\fboxsep\z@\color{#1}\spx@VerbatimFBox}{\color{#2}}}% - -% The title is specified from outside as macro \sphinxVerbatimTitle. -% \sphinxVerbatimTitle is reset to empty after each use of Verbatim. -\newcommand*\sphinxVerbatimTitle {} -% Holder macro for labels of literal blocks. Set-up by LaTeX writer. -\newcommand*\sphinxLiteralBlockLabel {} -\newcommand*\sphinxSetupCaptionForVerbatim [2] -{% - \needspace{\sphinxliteralblockneedspace}% -% insert a \label via \sphinxLiteralBlockLabel -% reset to normal the color for the literal block caption -% the caption inserts \abovecaptionskip whitespace above itself (usually 10pt) -% there is also \belowcaptionskip but it is usually zero, hence the \smallskip - \def\sphinxVerbatimTitle - {\py@NormalColor\captionof{#1}{\sphinxLiteralBlockLabel #2}\smallskip }% -} - -% Inspired and adapted from framed.sty's \CustomFBox with extra handling -% of a non separable by pagebreak caption, and controlled counter stepping. -\newif\ifspx@myfirstframedpass -\long\def\spx@VerbatimFBox#1{% - \leavevmode +}% +% #1 = for material above frame, such as a caption or a "continued" hint +% #2 = for material below frame, such as a caption or "continues on next page" +% #3 = actual contents, which will be typeset with a background color +\long\def\spx@CustomFBox#1#2#3{% \begingroup - % framed.sty does some measuring but this macro adds possibly a caption - % use amsmath conditional to inhibit the caption counter stepping after - % first pass - \ifspx@myfirstframedpass\else\firstchoice@false\fi - \setbox\@tempboxa\hbox{\kern\fboxsep{#1}\kern\fboxsep}% - \hbox - {\lower\dimexpr\fboxrule+\fboxsep+\dp\@tempboxa - \hbox{% - \vbox{\ifx\sphinxVerbatimTitle\empty\else - % add the caption in a centered way above possibly indented frame - % hide its width from framed.sty's measuring step - % note that the caption brings \abovecaptionskip top vertical space - \moveright\dimexpr\fboxrule+.5\wd\@tempboxa - \hb@xt@\z@{\hss\begin{minipage}{\wd\@tempboxa}% - \sphinxVerbatimTitle - \end{minipage}\hss}\fi + \setbox\@tempboxa\hbox{{#3}}% inner braces to avoid color leaks + \vbox{#1% above frame % draw frame border _latest_ to avoid pdf viewer issue \kern\fboxrule \hbox{\kern\fboxrule - \vbox{\vskip\fboxsep\copy\@tempboxa\vskip\fboxsep}% + \copy\@tempboxa \kern-\wd\@tempboxa\kern-\fboxrule \vrule\@width\fboxrule \kern\wd\@tempboxa \vrule\@width\fboxrule}% - \kern-\dimexpr\fboxsep+\ht\@tempboxa+\dp\@tempboxa - +\fboxsep+\fboxrule\relax + \kern-\dimexpr\ht\@tempboxa+\dp\@tempboxa+\fboxrule\relax + \hrule\@height\fboxrule + \kern\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax \hrule\@height\fboxrule - \kern\dimexpr\fboxsep+\ht\@tempboxa+\dp\@tempboxa+\fboxsep\relax - \hrule\@height\fboxrule}% - }}% + #2% below frame + }% \endgroup - \global\spx@myfirstframedpassfalse -} +}% +\def\spx@fcolorbox@put@c#1{% hide width from framed.sty measuring + \moveright\dimexpr\fboxrule+.5\wd\@tempboxa\hb@xt@\z@{\hss#1\hss}% +}% +\def\spx@fcolorbox@put@r#1{% right align with contents, width hidden + \moveright\dimexpr\fboxrule+\wd\@tempboxa-\fboxsep\hb@xt@\z@{\hss#1}% +}% +\def\spx@fcolorbox@put@l#1{% left align with contents, width hidden + \moveright\dimexpr\fboxrule+\fboxsep\hb@xt@\z@{#1\hss}% +}% +% +\def\sphinxVerbatim@Continued + {\csname spx@fcolorbox@put@\spx@opt@verbatimcontinuedalign\endcsname + {\normalcolor\sphinxstylecodecontinued\literalblockcontinuedname}}% +\def\sphinxVerbatim@Continues + {\csname spx@fcolorbox@put@\spx@opt@verbatimcontinuesalign\endcsname + {\normalcolor\sphinxstylecodecontinues\literalblockcontinuesname}}% +\def\sphinxVerbatim@Title + {\spx@fcolorbox@put@c{\unhcopy\sphinxVerbatim@TitleBox}}% +\let\sphinxVerbatim@Before\@empty +\let\sphinxVerbatim@After\@empty +% Defaults are redefined in document preamble according to language +\newcommand*\literalblockcontinuedname{continued from previous page}% +\newcommand*\literalblockcontinuesname{continues on next page}% +% +\def\spx@verbatimfcolorbox{\spx@fcolorbox{VerbatimBorderColor}{VerbatimColor}}% +\def\sphinxVerbatim@FrameCommand + {\spx@verbatimfcolorbox\sphinxVerbatim@Before\sphinxVerbatim@After}% +\def\sphinxVerbatim@FirstFrameCommand + {\spx@verbatimfcolorbox\sphinxVerbatim@Before\sphinxVerbatim@Continues}% +\def\sphinxVerbatim@MidFrameCommand + {\spx@verbatimfcolorbox\sphinxVerbatim@Continued\sphinxVerbatim@Continues}% +\def\sphinxVerbatim@LastFrameCommand + {\spx@verbatimfcolorbox\sphinxVerbatim@Continued\sphinxVerbatim@After}% % For linebreaks inside Verbatim environment from package fancyvrb. \newbox\sphinxcontinuationbox \newbox\sphinxvisiblespacebox -% These are user customizable e.g. from latex_elements's preamble key. -% Use of \textvisiblespace for compatibility with XeTeX/LuaTeX/fontspec. -\newcommand*\sphinxvisiblespace {\textcolor{red}{\textvisiblespace}} -\newcommand*\sphinxcontinuationsymbol {\textcolor{red}{\llap{\tiny$\m@th\hookrightarrow$}}} -\newcommand*\sphinxcontinuationindent {3ex } -\newcommand*\sphinxafterbreak {\kern\sphinxcontinuationindent\copy\sphinxcontinuationbox} +\newcommand*\sphinxafterbreak {\copy\sphinxcontinuationbox} % Take advantage of the already applied Pygments mark-up to insert % potential linebreaks for TeX processing. % {, <, #, %, $, ' and ": go to next line. % _, }, ^, &, >, - and ~: stay at end of broken line. % Use of \textquotesingle for straight quote. +% FIXME: convert this to package options ? +\newcommand*\sphinxbreaksbeforelist {% + \do\PYGZob\{\do\PYGZlt\<\do\PYGZsh\#\do\PYGZpc\%% {, <, #, %, + \do\PYGZdl\$\do\PYGZdq\"% $, " + \def\PYGZsq + {\discretionary{}{\sphinxafterbreak\textquotesingle}{\textquotesingle}}% ' +} +\newcommand*\sphinxbreaksafterlist {% + \do\PYGZus\_\do\PYGZcb\}\do\PYGZca\^\do\PYGZam\&% _, }, ^, &, + \do\PYGZgt\>\do\PYGZhy\-\do\PYGZti\~% >, -, ~ +} \newcommand*\sphinxbreaksatspecials {% - \def\PYGZus{\discretionary{\char`\_}{\sphinxafterbreak}{\char`\_}}% - \def\PYGZob{\discretionary{}{\sphinxafterbreak\char`\{}{\char`\{}}% - \def\PYGZcb{\discretionary{\char`\}}{\sphinxafterbreak}{\char`\}}}% - \def\PYGZca{\discretionary{\char`\^}{\sphinxafterbreak}{\char`\^}}% - \def\PYGZam{\discretionary{\char`\&}{\sphinxafterbreak}{\char`\&}}% - \def\PYGZlt{\discretionary{}{\sphinxafterbreak\char`\<}{\char`\<}}% - \def\PYGZgt{\discretionary{\char`\>}{\sphinxafterbreak}{\char`\>}}% - \def\PYGZsh{\discretionary{}{\sphinxafterbreak\char`\#}{\char`\#}}% - \def\PYGZpc{\discretionary{}{\sphinxafterbreak\char`\%}{\char`\%}}% - \def\PYGZdl{\discretionary{}{\sphinxafterbreak\char`\$}{\char`\$}}% - \def\PYGZhy{\discretionary{\char`\-}{\sphinxafterbreak}{\char`\-}}% - \def\PYGZsq{\discretionary{}{\sphinxafterbreak\textquotesingle}{\textquotesingle}}% - \def\PYGZdq{\discretionary{}{\sphinxafterbreak\char`\"}{\char`\"}}% - \def\PYGZti{\discretionary{\char`\~}{\sphinxafterbreak}{\char`\~}}% + \def\do##1##2% + {\def##1{\discretionary{}{\sphinxafterbreak\char`##2}{\char`##2}}}% + \sphinxbreaksbeforelist + \def\do##1##2% + {\def##1{\discretionary{\char`##2}{\sphinxafterbreak}{\char`##2}}}% + \sphinxbreaksafterlist } \def\sphinx@verbatim@nolig@list {\do \`}% % Some characters . , ; ? ! / are not pygmentized. -% This macro makes them "active" and they will insert potential linebreaks -\newcommand*\sphinxbreaksatpunct {% - \lccode`\~`\.\lowercase{\def~}{\discretionary{\char`\.}{\sphinxafterbreak}{\char`\.}}% - \lccode`\~`\,\lowercase{\def~}{\discretionary{\char`\,}{\sphinxafterbreak}{\char`\,}}% - \lccode`\~`\;\lowercase{\def~}{\discretionary{\char`\;}{\sphinxafterbreak}{\char`\;}}% - \lccode`\~`\:\lowercase{\def~}{\discretionary{\char`\:}{\sphinxafterbreak}{\char`\:}}% - \lccode`\~`\?\lowercase{\def~}{\discretionary{\char`\?}{\sphinxafterbreak}{\char`\?}}% - \lccode`\~`\!\lowercase{\def~}{\discretionary{\char`\!}{\sphinxafterbreak}{\char`\!}}% - \lccode`\~`\/\lowercase{\def~}{\discretionary{\char`\/}{\sphinxafterbreak}{\char`\/}}% - \catcode`\.\active - \catcode`\,\active - \catcode`\;\active - \catcode`\:\active - \catcode`\?\active - \catcode`\!\active - \catcode`\/\active +% This macro makes them "active" and they will insert potential linebreaks. +% Not compatible with math mode (cf \sphinxunactivateextras). +\newcommand*\sphinxbreaksbeforeactivelist {}% none +\newcommand*\sphinxbreaksafteractivelist {\do\.\do\,\do\;\do\?\do\!\do\/} +\newcommand*\sphinxbreaksviaactive {% + \def\do##1{\lccode`\~`##1% + \lowercase{\def~}{\discretionary{}{\sphinxafterbreak\char`##1}{\char`##1}}% + \catcode`##1\active}% + \sphinxbreaksbeforeactivelist + \def\do##1{\lccode`\~`##1% + \lowercase{\def~}{\discretionary{\char`##1}{\sphinxafterbreak}{\char`##1}}% + \catcode`##1\active}% + \sphinxbreaksafteractivelist \lccode`\~`\~ } -\renewcommand{\Verbatim}[1][1]{% - % quit horizontal mode if we are still in a paragraph - \par - % list starts new par, but we don't want it to be set apart vertically - \parskip\z@skip +% If the linebreak is at a space, the latter will be displayed as visible +% space at end of first line, and a continuation symbol starts next line. +\def\spx@verbatim@space {% + \nobreak\hskip\z@skip + \discretionary{\copy\sphinxvisiblespacebox}{\sphinxafterbreak} + {\kern\fontdimen2\font}% +}% + +% if the available space on page is less than \literalblockneedspace, insert pagebreak +\newcommand{\sphinxliteralblockneedspace}{5\baselineskip} +\newcommand{\sphinxliteralblockwithoutcaptionneedspace}{1.5\baselineskip} +% The title (caption) is specified from outside as macro \sphinxVerbatimTitle. +% \sphinxVerbatimTitle is reset to empty after each use of Verbatim. +\newcommand*\sphinxVerbatimTitle {} +% This box to typeset the caption before framed.sty multiple passes for framing. +\newbox\sphinxVerbatim@TitleBox +% This is a workaround to a "feature" of French lists, when literal block +% follows immediately; usable generally (does only \par then), a priori... +\newcommand*\sphinxvspacefixafterfrenchlists{% + \ifvmode\ifdim\lastskip<\z@ \vskip\parskip\fi\else\par\fi +} +% Holder macro for labels of literal blocks. Set-up by LaTeX writer. +\newcommand*\sphinxLiteralBlockLabel {} +\newcommand*\sphinxSetupCaptionForVerbatim [1] +{% + \sphinxvspacefixafterfrenchlists + \needspace{\sphinxliteralblockneedspace}% +% insert a \label via \sphinxLiteralBlockLabel +% reset to normal the color for the literal block caption + \def\sphinxVerbatimTitle + {\py@NormalColor\sphinxcaption{\sphinxLiteralBlockLabel #1}}% +} +\newcommand*\sphinxSetupCodeBlockInFootnote {% + \fvset{fontsize=\footnotesize}\let\caption\sphinxfigcaption + \sphinxverbatimwithminipagetrue % reduces vertical spaces + % we counteract (this is in a group) the \@normalsize from \caption + \let\normalsize\footnotesize\let\@parboxrestore\relax + \def\spx@abovecaptionskip{\sphinxverbatimsmallskipamount}% +} +% needed to create wrapper environments of fancyvrb's Verbatim +\newcommand*{\sphinxVerbatimEnvironment}{\gdef\FV@EnvironName{sphinxVerbatim}} +\newcommand*{\sphinxverbatimsmallskipamount}{\smallskipamount} +% serves to implement line highlighting and line wrapping +\newcommand\sphinxFancyVerbFormatLine[1]{% + \expandafter\sphinx@verbatim@checkifhl\expandafter{\the\FV@CodeLineNo}% + \ifin@ + \sphinxVerbatimHighlightLine{#1}% + \else + \sphinxVerbatimFormatLine{#1}% + \fi +}% +\newcommand\sphinxVerbatimHighlightLine[1]{% + \edef\sphinxrestorefboxsep{\fboxsep\the\fboxsep\relax}% + \fboxsep0pt\relax % cf LaTeX bug graphics/4524 + \colorbox{sphinxVerbatimHighlightColor}% + {\sphinxrestorefboxsep\sphinxVerbatimFormatLine{#1}}% + % no need to restore \fboxsep here, as this ends up in a \hbox from fancyvrb +}% +% \sphinxVerbatimFormatLine will be set locally to one of those two: +\newcommand\sphinxVerbatimFormatLineWrap[1]{% + \hsize\linewidth + \vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@ + \doublehyphendemerits\z@\finalhyphendemerits\z@ + \strut #1\strut}% +}% +\newcommand\sphinxVerbatimFormatLineNoWrap[1]{\hb@xt@\linewidth{\strut #1\hss}}% +\g@addto@macro\FV@SetupFont{% + \sbox\sphinxcontinuationbox {\spx@opt@verbatimcontinued}% + \sbox\sphinxvisiblespacebox {\spx@opt@verbatimvisiblespace}% +}% +\newenvironment{sphinxVerbatim}{% % first, let's check if there is a caption \ifx\sphinxVerbatimTitle\empty - \addvspace\z@% counteract possible previous negative skip (French lists!) - \smallskip + \sphinxvspacefixafterfrenchlists + \parskip\z@skip + \vskip\sphinxverbatimsmallskipamount % there was no caption. Check if nevertheless a label was set. \ifx\sphinxLiteralBlockLabel\empty\else % we require some space to be sure hyperlink target from \phantomsection @@ -327,16 +1137,50 @@ \needspace{\sphinxliteralblockwithoutcaptionneedspace}% \phantomsection\sphinxLiteralBlockLabel \fi + \else + \parskip\z@skip + \if t\spx@opt@literalblockcappos + \vskip\spx@abovecaptionskip + \def\sphinxVerbatim@Before + {\sphinxVerbatim@Title\nointerlineskip + \kern\dimexpr-\dp\strutbox+\sphinxbelowcaptionspace + % if no frame (code-blocks inside table cells), remove + % the "verbatimsep" whitespace from the top (better visually) + \ifspx@opt@verbatimwithframe\else-\sphinxverbatimsep\fi + % caption package adds \abovecaptionskip vspace, remove it + \spx@ifcaptionpackage{-\abovecaptionskip}{}\relax}% + \else + \vskip\sphinxverbatimsmallskipamount + \def\sphinxVerbatim@After + {\nointerlineskip\kern\dimexpr\dp\strutbox + \ifspx@opt@verbatimwithframe\else-\sphinxverbatimsep\fi + \spx@ifcaptionpackage{-\abovecaptionskip}{}\relax + \sphinxVerbatim@Title}% + \fi + \def\@captype{literalblock}% + \capstart + % \sphinxVerbatimTitle must reset color + \setbox\sphinxVerbatim@TitleBox + \hbox{\begin{minipage}{\linewidth}% + % caption package may detect wrongly if top or bottom, so we help it + \spx@ifcaptionpackage + {\caption@setposition{\spx@opt@literalblockcappos}}{}% + \sphinxVerbatimTitle + \end{minipage}}% \fi - % non-empty \sphinxVerbatimTitle has label inside it (in case there is one) - % Customize framed.sty \MakeFramed to glue caption to literal block - \global\spx@myfirstframedpasstrue - % via \spx@fcolorbox, will use \spx@VerbatimFBox which inserts title - \def\FrameCommand {\spx@colorbox\spx@fcolorbox }% - \let\FirstFrameCommand\FrameCommand - % for mid pages and last page portion of (long) split frame: - \def\MidFrameCommand{\spx@colorbox\fcolorbox }% - \let\LastFrameCommand\MidFrameCommand + \global\let\sphinxLiteralBlockLabel\empty + \global\let\sphinxVerbatimTitle\empty + \fboxsep\sphinxverbatimsep \fboxrule\sphinxverbatimborder + \ifspx@opt@verbatimwithframe\else\fboxrule\z@\fi + \let\FrameCommand \sphinxVerbatim@FrameCommand + \let\FirstFrameCommand\sphinxVerbatim@FirstFrameCommand + \let\MidFrameCommand \sphinxVerbatim@MidFrameCommand + \let\LastFrameCommand \sphinxVerbatim@LastFrameCommand + \ifspx@opt@verbatimhintsturnover\else + \let\sphinxVerbatim@Continued\@empty + \let\sphinxVerbatim@Continues\@empty + \fi + \ifspx@opt@verbatimwrapslines % fancyvrb's Verbatim puts each input line in (unbreakable) horizontal boxes. % This customization wraps each line from the input in a \vtop, thus % allowing it to wrap and display on two or more lines in the latex output. @@ -345,68 +1189,154 @@ % to achieve this without extensive rewrite of fancyvrb. % - The (not used in sphinx) obeytabs option to Verbatim is % broken by this change (showtabs and tabspace work). - \sbox\sphinxcontinuationbox {\sphinxcontinuationsymbol}% - \sbox\sphinxvisiblespacebox {\FV@SetupFont\sphinxvisiblespace}% - \def\FancyVerbFormatLine ##1{\hsize\linewidth - \vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@ - \doublehyphendemerits\z@\finalhyphendemerits\z@ - \strut ##1\strut}% - }% - % If the linebreak is at a space, the latter will be displayed as visible - % space at end of first line, and a continuation symbol starts next line. - % Stretch/shrink are however usually zero for typewriter font. - \def\FV@Space {% - \nobreak\hskip\z@ plus\fontdimen3\font minus\fontdimen4\font - \discretionary{\copy\sphinxvisiblespacebox}{\sphinxafterbreak} - {\kern\fontdimen2\font}% - }% - % go around fancyvrb's check of @currenvir (for case of minipage below) - \renewcommand*{\VerbatimEnvironment}{\gdef\FV@EnvironName{Verbatim}}% - % go around fancyvrb's check of current list depth - \def\@toodeep {\advance\@listdepth\@ne}% + \let\sphinxVerbatimFormatLine\sphinxVerbatimFormatLineWrap + \let\FV@Space\spx@verbatim@space % Allow breaks at special characters using \PYG... macros. - \sphinxbreaksatspecials + \sphinxbreaksatspecials + % Breaks at punctuation characters . , ; ? ! and / (needs catcode activation) + \fvset{codes*=\sphinxbreaksviaactive}% + \else % end of conditional code for wrapping long code lines + \let\sphinxVerbatimFormatLine\sphinxVerbatimFormatLineNoWrap + \fi + \let\FancyVerbFormatLine\sphinxFancyVerbFormatLine + % workaround to fancyvrb's check of \@currenvir + \let\VerbatimEnvironment\sphinxVerbatimEnvironment + % workaround to fancyvrb's check of current list depth + \def\@toodeep {\advance\@listdepth\@ne}% % The list environment is needed to control perfectly the vertical space. % Note: \OuterFrameSep used by framed.sty is later set to \topsep hence 0pt. - % - if caption: vertical space above caption = (\abovecaptionskip + D) with - % D = \baselineskip-\FrameHeightAdjust, and then \smallskip above frame. - % - if no caption: (\smallskip + D) above frame. By default D=6pt. - % Use trivlist rather than list to avoid possible "too deeply nested" error. + % - if caption: distance from last text baseline to caption baseline is + % A+(B-F)+\ht\strutbox, A = \abovecaptionskip (default 10pt), B = + % \baselineskip, F is the framed.sty \FrameHeightAdjust macro, default 6pt. + % Formula valid for F < 10pt. + % - distance of baseline of caption to top of frame is like for tables: + % \sphinxbelowcaptionspace (=0.5\baselineskip) + % - if no caption: distance of last text baseline to code frame is S+(B-F), + % with S = \sphinxverbatimtopskip (=\smallskip) + % - and distance from bottom of frame to next text baseline is + % \baselineskip+\parskip. + % The \trivlist is used to avoid possible "too deeply nested" error. \itemsep \z@skip \topsep \z@skip - \partopsep \z@skip% trivlist will set \parsep to \parskip = zero (see above) + \partopsep \z@skip + % trivlist will set \parsep to \parskip = zero % \leftmargin will be set to zero by trivlist \rightmargin\z@ \parindent \z@% becomes \itemindent. Default zero, but perhaps overwritten. \trivlist\item\relax - % use a minipage if we are already inside a framed environment + \ifsphinxverbatimwithminipage\spx@inframedtrue\fi + % use a minipage if we are already inside a framed environment \ifspx@inframed\noindent\begin{minipage}{\linewidth}\fi \MakeFramed {% adapted over from framed.sty's snugshade environment - \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize - \@setminipage }% - \small + \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize\@setminipage + }% % For grid placement from \strut's in \FancyVerbFormatLine \lineskip\z@skip - % Breaks at punctuation characters . , ; ? ! and / need catcode=\active - % and the active comma should not be overwritten by \@noligs - \let\verbatim@nolig@list \sphinx@verbatim@nolig@list - \OriginalVerbatim[#1,codes*=\sphinxbreaksatpunct]% + % active comma should not be overwritten by \@noligs + \ifspx@opt@verbatimwrapslines + \let\verbatim@nolig@list \sphinx@verbatim@nolig@list + \fi + % will fetch its optional arguments if any + \OriginalVerbatim } -\renewcommand{\endVerbatim}{% +{% \endOriginalVerbatim - \par\unskip\@minipagefalse\endMakeFramed + \par\unskip\@minipagefalse\endMakeFramed % from framed.sty snugshade \ifspx@inframed\end{minipage}\fi \endtrivlist } - -% define macro to frame contents and add shadow on right and bottom -% use public names for customizable lengths -\newlength\sphinxshadowsep \setlength\sphinxshadowsep {5pt} -\newlength\sphinxshadowsize \setlength\sphinxshadowsize {4pt} -\newlength\sphinxshadowrule -% this uses \fboxrule value at loading time of sphinx.sty (0.4pt normally) -\setlength\sphinxshadowrule {\fboxrule} - +\newenvironment {sphinxVerbatimNoFrame} + {\spx@opt@verbatimwithframefalse + % needed for fancyvrb as literal code will end in \end{sphinxVerbatimNoFrame} + \def\sphinxVerbatimEnvironment{\gdef\FV@EnvironName{sphinxVerbatimNoFrame}}% + \begin{sphinxVerbatim}} + {\end{sphinxVerbatim}} +\newenvironment {sphinxVerbatimintable} + {% don't use a frame if in a table cell + \spx@opt@verbatimwithframefalse + \sphinxverbatimwithminipagetrue + % the literal block caption uses \sphinxcaption which is wrapper of \caption, + % but \caption must be modified because longtable redefines it to work only + % for the own table caption, and tabulary has multiple passes + \let\caption\sphinxfigcaption + % reduce above caption skip + \def\spx@abovecaptionskip{\sphinxverbatimsmallskipamount}% + \def\sphinxVerbatimEnvironment{\gdef\FV@EnvironName{sphinxVerbatimintable}}% + \begin{sphinxVerbatim}} + {\end{sphinxVerbatim}} + + +%% PARSED LITERALS +% allow long lines to wrap like they do in code-blocks + +% this should be kept in sync with definitions in sphinx.util.texescape +\newcommand*\sphinxbreaksattexescapedchars{% + \def\do##1##2% put potential break point before character + {\def##1{\discretionary{}{\sphinxafterbreak\char`##2}{\char`##2}}}% + \do\{\{\do\textless\<\do\#\#\do\%\%\do\$\$% {, <, #, %, $ + \def\do##1##2% put potential break point after character + {\def##1{\discretionary{\char`##2}{\sphinxafterbreak}{\char`##2}}}% + \do\_\_\do\}\}\do\textasciicircum\^\do\&\&% _, }, ^, &, + \do\textgreater\>\do\textasciitilde\~% >, ~ +} +\newcommand*\sphinxbreaksviaactiveinparsedliteral{% + \sphinxbreaksviaactive % by default handles . , ; ? ! / + \do\-% we need also the hyphen character (ends up "as is" in parsed-literal) + \lccode`\~`\~ % + % update \dospecials as it is used by \url + % but deactivation will already have been done hence this is unneeded: + % \expandafter\def\expandafter\dospecials\expandafter{\dospecials + % \sphinxbreaksbeforeactivelist\sphinxbreaksafteractivelist\do\-}% +} +\newcommand*\sphinxbreaksatspaceinparsedliteral{% + \lccode`~32 \lowercase{\let~}\spx@verbatim@space\lccode`\~`\~ +} +\newcommand*{\sphinxunactivateextras}{\let\do\@makeother + \sphinxbreaksbeforeactivelist\sphinxbreaksafteractivelist\do\-}% +% the \catcode13=5\relax (deactivate end of input lines) is left to callers +\newcommand*{\sphinxunactivateextrasandspace}{\catcode32=10\relax + \sphinxunactivateextras}% +% now for the modified alltt environment +\newenvironment{sphinxalltt} +{% at start of next line to workaround Emacs/AUCTeX issue with this file +\begin{alltt}% + \ifspx@opt@parsedliteralwraps + \sbox\sphinxcontinuationbox {\spx@opt@verbatimcontinued}% + \sbox\sphinxvisiblespacebox {\spx@opt@verbatimvisiblespace}% + \sphinxbreaksattexescapedchars + \sphinxbreaksviaactiveinparsedliteral + \sphinxbreaksatspaceinparsedliteral +% alltt takes care of the ' as derivative ("prime") in math mode + \everymath\expandafter{\the\everymath\sphinxunactivateextrasandspace + \catcode`\<=12\catcode`\>=12\catcode`\^=7\catcode`\_=8 }% +% not sure if displayed math (align,...) can end up in parsed-literal, anyway + \everydisplay\expandafter{\the\everydisplay + \catcode13=5 \sphinxunactivateextrasandspace + \catcode`\<=12\catcode`\>=12\catcode`\^=7\catcode`\_=8 }% + \fi } +{\end{alltt}} + +% Protect \href's first argument in contexts such as sphinxalltt (or +% \sphinxcode). Sphinx uses \#, \%, \& ... always inside \sphinxhref. +\protected\def\sphinxhref#1#2{{% + \sphinxunactivateextrasandspace % never do \scantokens with active space! + \endlinechar\m@ne\everyeof{{#2}}% keep catcode regime for #2 + \scantokens{\href{#1}}% normalise it for #1 during \href expansion +}} +% Same for \url. And also \nolinkurl for coherence. +\protected\def\sphinxurl#1{{% + \sphinxunactivateextrasandspace\everyeof{}% (<- precaution for \scantokens) + \endlinechar\m@ne\scantokens{\url{#1}}% +}} +\protected\def\sphinxnolinkurl#1{{% + \sphinxunactivateextrasandspace\everyeof{}% + \endlinechar\m@ne\scantokens{\nolinkurl{#1}}% +}} + + +%% TOPIC AND CONTENTS BOXES +% +% Again based on use of "framed.sty", this allows breakable framed boxes. \long\def\spx@ShadowFBox#1{% \leavevmode\begingroup % first we frame the box #1 @@ -443,14 +1373,22 @@ % could nest if LaTeX writer authorized it \newenvironment{sphinxShadowBox} {\def\FrameCommand {\spx@ShadowFBox }% + \advance\spx@image@maxheight + -\dimexpr2\sphinxshadowrule + +2\sphinxshadowsep + +\sphinxshadowsize + +\baselineskip\relax + \let\sphinxincludegraphics\sphinxsafeincludegraphics % configure framed.sty not to add extra vertical spacing - \spx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}% + \ltx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}% % the \trivlist will add the vertical spacing on top and bottom which is % typical of center environment as used in Sphinx <= 1.4.1 % the \noindent has the effet of an extra blank line on top, to % imitate closely the layout from Sphinx <= 1.4.1; the \FrameHeightAdjust % will put top part of frame on this baseline. \def\FrameHeightAdjust {\baselineskip}% + % use package footnote to handle footnotes + \savenotes \trivlist\item\noindent % use a minipage if we are already inside a framed environment \ifspx@inframed\begin{minipage}{\linewidth}\fi @@ -464,9 +1402,6 @@ % itemize/enumerate are therein typeset more tightly, we want to keep % that). We copy-paste from LaTeX source code but don't do a real minipage. \@pboxswfalse - % for footnotes, but Sphinx inactivates footnotes in topics - \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ - \let\@footnotetext\@mpfootnotetext \let\@listdepth\@mplistdepth \@mplistdepth\z@ \@minipagerestore \@setminipage @@ -474,98 +1409,74 @@ }% {% insert the "endminipage" code \par\unskip - % handle (currently non existing) minipage style footnotes - \ifvoid\@mpfootins\else - \vskip\skip\@mpfootins\normalcolor\footnoterule\unvbox\@mpfootins - \fi \@minipagefalse \endMakeFramed \ifspx@inframed\end{minipage}\fi \endtrivlist + % output the stored footnotes + \spewnotes } -% \moduleauthor{name}{email} -\newcommand{\moduleauthor}[2]{} - -% \sectionauthor{name}{email} -\newcommand{\sectionauthor}[2]{} - -% Augment the sectioning commands used to get our own font family in place, -% and reset some internal data items: -\titleformat{\section}{\Large\py@HeaderFamily}% - {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} -\titleformat{\subsection}{\large\py@HeaderFamily}% - {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} -\titleformat{\subsubsection}{\py@HeaderFamily}% - {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} -% By default paragraphs (and subsubsections) will not be numbered because -% sphinxmanual.cls and sphinxhowto.cls set secnumdepth to 2 -\titleformat{\paragraph}{\py@HeaderFamily}% - {\py@TitleColor\theparagraph}{0.5em}{\py@TitleColor}{\py@NormalColor} -\titleformat{\subparagraph}{\py@HeaderFamily}% - {\py@TitleColor\thesubparagraph}{0.5em}{\py@TitleColor}{\py@NormalColor} - -% {fulllineitems} is the main environment for object descriptions. +%% NOTICES AND ADMONITIONS % -\newcommand{\py@itemnewline}[1]{% - \@tempdima\linewidth% - \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}% -} - -\newenvironment{fulllineitems}{ - \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt - \rightmargin 0pt \topsep -\parskip \partopsep \parskip - \itemsep -\parsep - \let\makelabel=\py@itemnewline} -}{\end{list}} - -% \optional is used for ``[, arg]``, i.e. desc_optional nodes. -\newcommand{\sphinxoptional}[1]{% - {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}} - -\newlength{\py@argswidth} -\newcommand{\py@sigparams}[2]{% - \parbox[t]{\py@argswidth}{#1\sphinxcode{)}#2}} -\newcommand{\pysigline}[1]{\item[#1]\nopagebreak} -\newcommand{\pysiglinewithargsret}[3]{% - \settowidth{\py@argswidth}{#1\sphinxcode{(}}% - \addtolength{\py@argswidth}{-2\py@argswidth}% - \addtolength{\py@argswidth}{\linewidth}% - \item[#1\sphinxcode{(}\py@sigparams{#2}{#3}]} - -% Production lists -% -\newenvironment{productionlist}{ -% \def\sphinxoptional##1{{\Large[}##1{\Large]}} - \def\production##1##2{\\\sphinxcode{##1}&::=&\sphinxcode{##2}} - \def\productioncont##1{\\& &\sphinxcode{##1}} - \parindent=2em - \indent - \setlength{\LTpre}{0pt} - \setlength{\LTpost}{0pt} - \begin{longtable}[l]{lcl} -}{% - \end{longtable} -} - -% Notices / Admonitions -% - +% Some are quite plain +% the spx@notice@bordercolor etc are set in the sphinxadmonition environment +\newenvironment{sphinxlightbox}{% + \par\allowbreak + \noindent{\color{spx@notice@bordercolor}% + \rule{\linewidth}{\spx@notice@border}}\par\nobreak + {\parskip\z@skip\noindent}% + } + {% + % counteract previous possible negative skip (French lists!): + % (we can't cancel that any earlier \vskip introduced a potential pagebreak) + \sphinxvspacefixafterfrenchlists + \nobreak\vbox{\noindent\kern\@totalleftmargin + {\color{spx@notice@bordercolor}% + \rule[\dimexpr.4\baselineskip-\spx@notice@border\relax] + {\linewidth}{\spx@notice@border}}\hss}\allowbreak + }% end of sphinxlightbox environment definition +% may be renewenvironment'd by user for complete customization +\newenvironment{sphinxnote}[1] + {\begin{sphinxlightbox}\sphinxstrong{#1} }{\end{sphinxlightbox}} +\newenvironment{sphinxhint}[1] + {\begin{sphinxlightbox}\sphinxstrong{#1} }{\end{sphinxlightbox}} +\newenvironment{sphinximportant}[1] + {\begin{sphinxlightbox}\sphinxstrong{#1} }{\end{sphinxlightbox}} +\newenvironment{sphinxtip}[1] + {\begin{sphinxlightbox}\sphinxstrong{#1} }{\end{sphinxlightbox}} +% or just use the package options +% these are needed for common handling by notice environment of lightbox +% and heavybox but they are currently not used by lightbox environment +% and there is consequently no corresponding package option +\definecolor{sphinxnoteBgColor}{rgb}{1,1,1} +\definecolor{sphinxhintBgColor}{rgb}{1,1,1} +\definecolor{sphinximportantBgColor}{rgb}{1,1,1} +\definecolor{sphinxtipBgColor}{rgb}{1,1,1} + +% Others get more distinction % Code adapted from framed.sty's "snugshade" environment. % Nesting works (inner frames do not allow page breaks). -\newcommand{\py@heavybox}{\par - \setlength{\FrameRule}{\p@}% 1pt +\newenvironment{sphinxheavybox}{\par + \setlength{\FrameRule}{\spx@notice@border}% \setlength{\FrameSep}{\dimexpr.6\baselineskip-\FrameRule\relax} + \advance\spx@image@maxheight + -\dimexpr2\FrameRule + +2\FrameSep + +\baselineskip\relax % will happen again if nested, needed indeed! + \let\sphinxincludegraphics\sphinxsafeincludegraphics % configure framed.sty's parameters to obtain same vertical spacing % as for "light" boxes. We need for this to manually insert parskip glue and % revert a skip done by framed before the frame. - \spx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}% + \ltx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}% \vspace{\FrameHeightAdjust} % copied/adapted from framed.sty's snugshade \def\FrameCommand##1{\hskip\@totalleftmargin - \fboxsep\FrameSep \fboxrule\FrameRule\fbox{##1}% + \fboxsep\FrameSep \fboxrule\FrameRule + \fcolorbox{spx@notice@bordercolor}{spx@notice@bgcolor}{##1}% \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}% + \savenotes % use a minipage if we are already inside a framed environment \ifspx@inframed \noindent\begin{minipage}{\linewidth} @@ -581,84 +1492,85 @@ \advance\hsize-\width \@totalleftmargin\z@ \linewidth\hsize % minipage initialization copied from LaTeX source code. \@pboxswfalse - % for footnotes - \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ - \let\@footnotetext\@mpfootnotetext \let\@listdepth\@mplistdepth \@mplistdepth\z@ \@minipagerestore \@setminipage }% } -\newcommand{\py@endheavybox}{% + {% \par\unskip - % handles footnotes - \ifvoid\@mpfootins\else - \vskip\skip\@mpfootins\normalcolor\footnoterule\unvbox\@mpfootins - \fi \@minipagefalse \endMakeFramed \ifspx@inframed\end{minipage}\fi + % set footnotes at bottom of page + \spewnotes % arrange for similar spacing below frame as for "light" boxes. \vskip .4\baselineskip - } + }% end of sphinxheavybox environment definition +% may be renewenvironment'd by user for complete customization +\newenvironment{sphinxwarning}[1] + {\begin{sphinxheavybox}\sphinxstrong{#1} }{\end{sphinxheavybox}} +\newenvironment{sphinxcaution}[1] + {\begin{sphinxheavybox}\sphinxstrong{#1} }{\end{sphinxheavybox}} +\newenvironment{sphinxattention}[1] + {\begin{sphinxheavybox}\sphinxstrong{#1} }{\end{sphinxheavybox}} +\newenvironment{sphinxdanger}[1] + {\begin{sphinxheavybox}\sphinxstrong{#1} }{\end{sphinxheavybox}} +\newenvironment{sphinxerror}[1] + {\begin{sphinxheavybox}\sphinxstrong{#1} }{\end{sphinxheavybox}} +% or just use package options + +% the \colorlet of xcolor (if at all loaded) is overkill for our use case +\newcommand{\sphinxcolorlet}[2] + {\expandafter\let\csname\@backslashchar color@#1\expandafter\endcsname + \csname\@backslashchar color@#2\endcsname } + +% the main dispatch for all types of notices +\newenvironment{sphinxadmonition}[2]{% #1=type, #2=heading + % can't use #1 directly in definition of end part + \def\spx@noticetype {#1}% + % set parameters of heavybox/lightbox + \sphinxcolorlet{spx@notice@bordercolor}{sphinx#1BorderColor}% + \sphinxcolorlet{spx@notice@bgcolor}{sphinx#1BgColor}% + \spx@notice@border \dimexpr\csname spx@opt@#1border\endcsname\relax + % start specific environment, passing the heading as argument + \begin{sphinx#1}{#2}} + % workaround some LaTeX "feature" of \end command + {\edef\spx@temp{\noexpand\end{sphinx\spx@noticetype}}\spx@temp} + + +%% PYTHON DOCS MACROS AND ENVIRONMENTS +% (some macros here used by \maketitle in sphinxmanual.cls and sphinxhowto.cls) -\newcommand{\py@lightbox}{% - \par\allowbreak - \noindent\rule{\linewidth}{0.5pt}\par\nobreak - {\parskip\z@skip\noindent}% - } -\newcommand{\py@endlightbox}{% - \par - % counteract previous possible negative skip (French lists!): - % (we can't cancel that any earlier \vskip introduced a potential pagebreak) - \ifdim\lastskip<\z@\vskip-\lastskip\fi - \nobreak\vbox{\noindent\kern\@totalleftmargin - \rule[.4\baselineskip]{\linewidth}{0.5pt}\hss}\allowbreak - } +% \moduleauthor{name}{email} +\newcommand{\moduleauthor}[2]{} -% Some are quite plain: -\newcommand{\py@noticestart@note}{\py@lightbox} -\newcommand{\py@noticeend@note}{\py@endlightbox} -\newcommand{\py@noticestart@hint}{\py@lightbox} -\newcommand{\py@noticeend@hint}{\py@endlightbox} -\newcommand{\py@noticestart@important}{\py@lightbox} -\newcommand{\py@noticeend@important}{\py@endlightbox} -\newcommand{\py@noticestart@tip}{\py@lightbox} -\newcommand{\py@noticeend@tip}{\py@endlightbox} - -% Others gets more visible distinction: -\newcommand{\py@noticestart@warning}{\py@heavybox} -\newcommand{\py@noticeend@warning}{\py@endheavybox} -\newcommand{\py@noticestart@caution}{\py@heavybox} -\newcommand{\py@noticeend@caution}{\py@endheavybox} -\newcommand{\py@noticestart@attention}{\py@heavybox} -\newcommand{\py@noticeend@attention}{\py@endheavybox} -\newcommand{\py@noticestart@danger}{\py@heavybox} -\newcommand{\py@noticeend@danger}{\py@endheavybox} -\newcommand{\py@noticestart@error}{\py@heavybox} -\newcommand{\py@noticeend@error}{\py@endheavybox} - -\newenvironment{notice}[2]{ - \def\py@noticetype{#1} - \csname py@noticestart@#1\endcsname - \sphinxstrong{#2} % <- legacy code creates a space after {#2} -}{\csname py@noticeend@\py@noticetype\endcsname} +% \sectionauthor{name}{email} +\newcommand{\sectionauthor}[2]{} % Allow the release number to be specified independently of the % \date{}. This allows the date to reflect the document's date and % release to specify the release that is documented. % -\newcommand{\py@release}{} -\newcommand{\version}{} -\newcommand{\shortversion}{} +\newcommand{\py@release}{\releasename\space\version} +\newcommand{\version}{}% part of \py@release, used by title page and headers +% \releaseinfo is used on titlepage (sphinxmanual.cls, sphinxhowto.cls) \newcommand{\releaseinfo}{} -\newcommand{\releasename}{Release} -\newcommand{\release}[1]{% - \renewcommand{\py@release}{\releasename\space\version}% - \renewcommand{\version}{#1}} -\newcommand{\setshortversion}[1]{% - \renewcommand{\shortversion}{#1}} -\newcommand{\setreleaseinfo}[1]{% - \renewcommand{\releaseinfo}{#1}} +\newcommand{\setreleaseinfo}[1]{\renewcommand{\releaseinfo}{#1}} +% this is inserted via template and #1=release config variable +\newcommand{\release}[1]{\renewcommand{\version}{#1}} +% this is defined by template to 'releasename' latex_elements key +\newcommand{\releasename}{} +% Fix issue in case release and releasename deliberately left blank +\newcommand{\sphinxheadercomma}{, }% used in fancyhdr header definition +\newcommand{\sphinxifemptyorblank}[1]{% +% test after one expansion of macro #1 if contents is empty or spaces + \if&\expandafter\@firstofone\detokenize\expandafter{#1}&% + \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}% +\AtBeginDocument {% + \sphinxifemptyorblank{\releasename} + {\sphinxifemptyorblank{\version}{\let\sphinxheadercomma\empty}{}} + {}% +}% % Allow specification of the author's address separately from the % author's name. This can be used to format them differently, which @@ -667,47 +1579,67 @@ \newcommand{\py@authoraddress}{} \newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}} -% This sets up the fancy chapter headings that make the documents look -% at least a little better than the usual LaTeX output. +% {fulllineitems} is the main environment for object descriptions. % -\spx@ifundefined{ChTitleVar}{}{ - \ChNameVar{\raggedleft\normalsize\py@HeaderFamily} - \ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily} - \ChTitleVar{\raggedleft \textrm{\Huge\py@HeaderFamily}} - % This creates chapter heads without the leading \vspace*{}: - \def\@makechapterhead#1{% - {\parindent \z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \DOCH - \fi - \interlinepenalty\@M - \DOTI{#1} - } - } +\newcommand{\py@itemnewline}[1]{% + \kern\labelsep + \@tempdima\linewidth + \advance\@tempdima \labelwidth\makebox[\@tempdima][l]{#1}% + \kern-\labelsep } -% Redefine description environment so that it is usable inside fulllineitems. +\newenvironment{fulllineitems}{% + \begin{list}{}{\labelwidth \leftmargin + \rightmargin \z@ \topsep -\parskip \partopsep \parskip + \itemsep -\parsep + \let\makelabel=\py@itemnewline}% +}{\end{list}} + +% Signatures, possibly multi-line +% +\newlength{\py@argswidth} +\newcommand{\py@sigparams}[2]{% + \parbox[t]{\py@argswidth}{#1\sphinxcode{)}#2}} +\newcommand{\pysigline}[1]{\item[{#1}]} +\newcommand{\pysiglinewithargsret}[3]{% + \settowidth{\py@argswidth}{#1\sphinxcode{(}}% + \addtolength{\py@argswidth}{-2\py@argswidth}% + \addtolength{\py@argswidth}{\linewidth}% + \item[{#1\sphinxcode{(}\py@sigparams{#2}{#3}}]} +\newcommand{\pysigstartmultiline}{% + \def\pysigstartmultiline{\vskip\smallskipamount\parskip\z@skip\itemsep\z@skip}% + \edef\pysigstopmultiline + {\noexpand\leavevmode\parskip\the\parskip\relax\itemsep\the\itemsep\relax}% + \parskip\z@skip\itemsep\z@skip +} + +% Production lists % -\renewcommand{\description}{% - \list{}{\labelwidth\z@% - \itemindent-\leftmargin% - \labelsep5pt% - \let\makelabel=\descriptionlabel}} +\newenvironment{productionlist}{% +% \def\sphinxoptional##1{{\Large[}##1{\Large]}} + \def\production##1##2{\\\sphinxcode{\sphinxupquote{##1}}&::=&\sphinxcode{\sphinxupquote{##2}}}% + \def\productioncont##1{\\& &\sphinxcode{\sphinxupquote{##1}}}% + \parindent=2em + \indent + \setlength{\LTpre}{0pt}% + \setlength{\LTpost}{0pt}% + \begin{longtable}[l]{lcl} +}{% + \end{longtable} +} % Definition lists; requested by AMK for HOWTO documents. Probably useful % elsewhere as well, so keep in in the general style support. % \newenvironment{definitions}{% \begin{description}% - \def\term##1{\item[##1]\mbox{}\\*[0mm]} + \def\term##1{\item[{##1}]\mbox{}\\*[0mm]}% }{% \end{description}% } -% Tell TeX about pathological hyphenation cases: -\hyphenation{Base-HTTP-Re-quest-Hand-ler} - - +%% FROM DOCTUTILS LATEX WRITER +% % The following is stuff copied from docutils' latex writer. % \newcommand{\optionlistlabel}[1]{\normalfont\bfseries #1 \hfill}% \bf deprecated @@ -728,78 +1660,23 @@ {\setlength{\partopsep}{\parskip} \addtolength{\partopsep}{\baselineskip} \topsep0pt\itemsep0.15\baselineskip\parsep0pt - \leftmargin#1} + \leftmargin#1\relax} \raggedright} {\end{list}} -% Re-define \includegraphics to resize images larger than the line width -% if the size is not specified. -% Warning: future version of Sphinx will not modify original \includegraphics, -% Below custom code will be direct definition of \sphinxincludegraphics, with -% \py@Oldincludegraphics replaced by direct use of original \includegraphics. -\let\py@Oldincludegraphics\includegraphics -\newbox\spx@image@box -\renewcommand*{\includegraphics}[2][\@empty]{% - \ifx\@empty #1% attention, #1 could be bb.., bad if first after \ifx - \setbox\spx@image@box=\hbox{\py@Oldincludegraphics{#2}}% - \ifdim \wd\spx@image@box>\linewidth - \py@Oldincludegraphics[width=\linewidth]{#2}% - \else - \leavevmode\box\spx@image@box - \fi - \else - \py@Oldincludegraphics[#1]{#2}% - \fi -} -% Writer will put \sphinxincludegraphics in LaTeX source, and with this, -% documents which used their own modified \includegraphics will compile -% as before. But see warning above. -\newcommand*{\sphinxincludegraphics}{\includegraphics} - -% to make pdf with correct encoded bookmarks in Japanese -% this should precede the hyperref package -\ifx\kanjiskip\undefined -% for non-Japanese: make sure bookmarks are ok also with lualatex - \PassOptionsToPackage{pdfencoding=unicode}{hyperref} -\else - \usepackage{atbegshi} - \ifx\ucs\undefined - \ifnum 42146=\euc"A4A2 - \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}} - \else - \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}} - \fi - \else - \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UCS2}} - \fi -\fi - -% Include hyperref last. -\RequirePackage[colorlinks,breaklinks, - linkcolor=InnerLinkColor,filecolor=OuterLinkColor, - menucolor=OuterLinkColor,urlcolor=OuterLinkColor, - citecolor=InnerLinkColor]{hyperref} -% Fix anchor placement for figures with captions. -% (Note: we don't use a package option here; instead, we give an explicit -% \capstart for figures that actually have a caption.) -\RequirePackage{hypcap} - -% Set up styles of URL: it should be placed after hyperref -\urlstyle{same} - % From docutils.writers.latex2e % inline markup (custom roles) % \DUrole{#1}{#2} tries \DUrole#1{#2} \providecommand*{\DUrole}[2]{% - \ifcsname DUrole#1\endcsname% - \csname DUrole#1\endcsname{#2}% + \ifcsname DUrole\detokenize{#1}\endcsname + \csname DUrole\detokenize{#1}\endcsname{#2}% \else% backwards compatibility: try \docutilsrole#1{#2} - \ifcsname docutilsrole#1\endcsname% - \csname docutilsrole#1\endcsname{#2}% - \else% + \ifcsname docutilsrole\detokenize{#1}\endcsname + \csname docutilsrole\detokenize{#1}\endcsname{#2}% + \else #2% - \fi% - \fi% + \fi + \fi } \providecommand*{\DUprovidelength}[2]{% @@ -820,98 +1697,130 @@ {\endlist} \fi -% From footmisc.sty: allows footnotes in titles -\let\FN@sf@@footnote\footnote -\def\footnote{\ifx\protect\@typeset@protect - \expandafter\FN@sf@@footnote - \else - \expandafter\FN@sf@gobble@opt - \fi -} -\edef\FN@sf@gobble@opt{\noexpand\protect - \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname} -\expandafter\def\csname FN@sf@gobble@opt \endcsname{% - \@ifnextchar[%] - \FN@sf@gobble@twobracket - \@gobble -} -\def\FN@sf@gobble@twobracket[#1]#2{} - -% adjust the margins for footer, -% this works with the jsclasses only (Japanese standard document classes) -\ifx\@jsc@uplatextrue\undefined\else - \hypersetup{setpagesize=false} - \setlength\footskip{2\baselineskip} - \addtolength{\textheight}{-2\baselineskip} -\fi - -% fix the double index and bibliography on the table of contents -% in jsclasses (Japanese standard document classes) -\ifx\@jsc@uplatextrue\undefined\else - \renewcommand{\theindex}{ - \cleardoublepage - \phantomsection - \py@OldTheindex - } - \renewcommand{\thebibliography}[1]{ - \cleardoublepage - \phantomsection - \py@OldThebibliography{1} - } -\fi - -% disable \@chappos in Appendix in pTeX -\ifx\kanjiskip\undefined\else - \let\py@OldAppendix=\appendix - \renewcommand{\appendix}{ - \py@OldAppendix - \gdef\@chappos{} - } -\fi +%% TEXT STYLING +% +% to obtain straight quotes we execute \@noligs as patched by upquote, and +% \scantokens is needed in cases where it would be too late for the macro to +% first set catcodes and then fetch its argument. We also make the contents +% breakable at non-escaped . , ; ? ! / using \sphinxbreaksviaactive. +% the macro must be protected if it ends up used in moving arguments, +% in 'alltt' \@noligs is done already, and the \scantokens must be avoided. +\protected\def\sphinxupquote#1{{\def\@tempa{alltt}% + \ifx\@tempa\@currenvir\else + \ifspx@opt@inlineliteralwraps + \sphinxbreaksviaactive\let\sphinxafterbreak\empty + % do not overwrite the comma set-up + \let\verbatim@nolig@list\sphinx@literal@nolig@list + \fi + % fix a space-gobbling issue due to LaTeX's original \do@noligs + \let\do@noligs\sphinx@do@noligs + \@noligs\endlinechar\m@ne\everyeof{}% (<- in case inside \sphinxhref) + \expandafter\scantokens + \fi {{#1}}}}% extra brace pair to fix end-space gobbling issue... +\def\sphinx@do@noligs #1{\catcode`#1\active\begingroup\lccode`\~`#1\relax + \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1 }}} +\def\sphinx@literal@nolig@list {\do\`\do\<\do\>\do\'\do\-}% -% Define literal-block environment -\RequirePackage{newfloat} -\DeclareFloatingEnvironment{literal-block} -\spx@ifundefined{c@chapter} - {\SetupFloatingEnvironment{literal-block}{within=section,placement=h}} - {\SetupFloatingEnvironment{literal-block}{within=chapter,placement=h}} -\SetupFloatingEnvironment{literal-block}{name=List} -% control caption around literal-block -\RequirePackage{capt-of} -\RequirePackage{needspace} -% if the left page space is less than \literalblockneedspace, insert page-break -\newcommand{\sphinxliteralblockneedspace}{5\baselineskip} -\newcommand{\sphinxliteralblockwithoutcaptionneedspace}{1.5\baselineskip} +% Some custom font markup commands. +\protected\def\sphinxstrong#1{\textbf{#1}} +\protected\def\sphinxcode#1{\texttt{#1}} +\protected\def\sphinxbfcode#1{\textbf{\sphinxcode{#1}}} +\protected\def\sphinxemail#1{\textsf{#1}} +\protected\def\sphinxtablecontinued#1{\textsf{#1}} +\protected\def\sphinxtitleref#1{\emph{#1}} +\protected\def\sphinxmenuselection#1{\emph{#1}} +\protected\def\sphinxguilabel#1{\emph{#1}} +\protected\def\sphinxaccelerator#1{\underline{#1}} +\protected\def\sphinxcrossref#1{\emph{#1}} +\protected\def\sphinxtermref#1{\emph{#1}} +% \optional is used for ``[, arg]``, i.e. desc_optional nodes. +\long\protected\def\sphinxoptional#1{% + {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}} -% figure in table -\newenvironment{sphinxfigure-in-table}[1][\linewidth]{% - \def\@captype{figure}% - \begin{minipage}{#1}% -}{\end{minipage}} -% store original \caption macro for use with figures in longtable and tabulary -\AtBeginDocument{\let\spx@originalcaption\caption} -\newcommand*\sphinxfigcaption - {\ifx\equation$%$% this is trick to identify tabulary first pass - \firstchoice@false\else\firstchoice@true\fi - \spx@originalcaption } +% additional customizable styling +\def\sphinxstyleindexentry #1{\texttt{#1}} +\def\sphinxstyleindexextra #1{ (\emph{#1})} +\def\sphinxstyleindexpageref #1{, \pageref{#1}} +\def\sphinxstyleindexpagemain#1{\textbf{#1}} +\protected\def\spxentry#1{#1}% will get \let to \sphinxstyleindexentry in index +\protected\def\spxextra#1{#1}% will get \let to \sphinxstyleindexextra in index +\def\sphinxstyleindexlettergroup #1% + {{\Large\sffamily#1}\nopagebreak\vspace{1mm}} +\def\sphinxstyleindexlettergroupDefault #1% + {{\Large\sffamily\sphinxnonalphabeticalgroupname}\nopagebreak\vspace{1mm}} +\protected\def\sphinxstyletopictitle #1{\textbf{#1}\par\medskip} +\let\sphinxstylesidebartitle\sphinxstyletopictitle +\protected\def\sphinxstyleothertitle #1{\textbf{#1}} +\protected\def\sphinxstylesidebarsubtitle #1{~\\\textbf{#1} \smallskip} +% \text.. commands do not allow multiple paragraphs +\protected\def\sphinxstyletheadfamily {\sffamily} +\protected\def\sphinxstyleemphasis #1{\emph{#1}} +\protected\def\sphinxstyleliteralemphasis#1{\emph{\sphinxcode{#1}}} +\protected\def\sphinxstylestrong #1{\textbf{#1}} +\protected\def\sphinxstyleliteralstrong#1{\sphinxbfcode{#1}} +\protected\def\sphinxstyleabbreviation #1{\textsc{#1}} +\protected\def\sphinxstyleliteralintitle#1{\sphinxcode{#1}} +\newcommand*\sphinxstylecodecontinued[1]{\footnotesize(#1)}% +\newcommand*\sphinxstylecodecontinues[1]{\footnotesize(#1)}% +% figure legend comes after caption and may contain arbitrary body elements +\newenvironment{sphinxlegend}{\par\small}{\par} +% reduce hyperref "Token not allowed in a PDF string" warnings on PDF builds +\AtBeginDocument{\pdfstringdefDisableCommands{% +% all "protected" macros possibly ending up in section titles should be here + \let\sphinxstyleemphasis \@firstofone + \let\sphinxstyleliteralemphasis \@firstofone + \let\sphinxstylestrong \@firstofone + \let\sphinxstyleliteralstrong \@firstofone + \let\sphinxstyleabbreviation \@firstofone + \let\sphinxstyleliteralintitle \@firstofone + \let\sphinxupquote \@firstofone + \let\sphinxstrong \@firstofone + \let\sphinxcode \@firstofone + \let\sphinxbfcode \@firstofone + \let\sphinxemail \@firstofone + \let\sphinxcrossref \@firstofone + \let\sphinxtermref \@firstofone +}} + +% For curly braces inside \index macro +\def\sphinxleftcurlybrace{\{} +\def\sphinxrightcurlybrace{\}} + +% Declare Unicode characters used by linux tree command to pdflatex utf8/utf8x +\def\spx@bd#1#2{% + \leavevmode + \begingroup + \ifx\spx@bd@height \@undefined\def\spx@bd@height{\baselineskip}\fi + \ifx\spx@bd@width \@undefined\setbox0\hbox{0}\def\spx@bd@width{\wd0 }\fi + \ifx\spx@bd@thickness\@undefined\def\spx@bd@thickness{.6\p@}\fi + \ifx\spx@bd@lower \@undefined\def\spx@bd@lower{\dp\strutbox}\fi + \lower\spx@bd@lower#1{#2}% + \endgroup +}% +\@namedef{sphinx@u2500}% BOX DRAWINGS LIGHT HORIZONTAL + {\spx@bd{\vbox to\spx@bd@height} + {\vss\hrule\@height\spx@bd@thickness + \@width\spx@bd@width\vss}}% +\@namedef{sphinx@u2502}% BOX DRAWINGS LIGHT VERTICAL + {\spx@bd{\hb@xt@\spx@bd@width} + {\hss\vrule\@height\spx@bd@height + \@width \spx@bd@thickness\hss}}% +\@namedef{sphinx@u2514}% BOX DRAWINGS LIGHT UP AND RIGHT + {\spx@bd{\hb@xt@\spx@bd@width} + {\hss\raise.5\spx@bd@height + \hb@xt@\z@{\hss\vrule\@height.5\spx@bd@height + \@width \spx@bd@thickness\hss}% + \vbox to\spx@bd@height{\vss\hrule\@height\spx@bd@thickness + \@width.5\spx@bd@width\vss}}}% +\@namedef{sphinx@u251C}% BOX DRAWINGS LIGHT VERTICAL AND RIGHT + {\spx@bd{\hb@xt@\spx@bd@width} + {\hss + \hb@xt@\z@{\hss\vrule\@height\spx@bd@height + \@width \spx@bd@thickness\hss}% + \vbox to\spx@bd@height{\vss\hrule\@height\spx@bd@thickness + \@width.5\spx@bd@width\vss}}}% +\protected\def\sphinxunichar#1{\@nameuse{sphinx@u#1}}% -% by default, also define macros with the no-prefix names -\ifsphinxKeepOldNames - \typeout{** (sphinx) defining (legacy) text style macros without \string\sphinx\space prefix} - \typeout{** if clashes with packages, set latex_keep_old_macro_names=False in conf.py} - \@for\@tempa:=strong,bfcode,email,tablecontinued,titleref,% - menuselection,accelerator,crossref,termref,optional\do -{% first, check if command with no prefix already exists - \expandafter\newcommand\csname\@tempa\endcsname{}% - % if no error give it the meaning defined so far with \sphinx prefix - \expandafter\let\csname\@tempa\expandafter\endcsname - \csname sphinx\@tempa\endcsname - % redefine the \sphinx prefixed macro to expand to non-prefixed one - \expandafter\def\csname sphinx\@tempa\expandafter\endcsname - \expandafter{\csname\@tempa\endcsname}% -} - % robustified case needs special treatment - \newcommand\code{}\let\code\relax - \DeclareRobustCommand{\code}[1]{{\@noligs\scantokens{\texttt{#1}\relax}}} - \def\sphinxcode{\code}% -\fi +% Tell TeX about pathological hyphenation cases: +\hyphenation{Base-HTTP-Re-quest-Hand-ler} +\endinput diff --git a/docs/_build/latex/sphinx.xdy b/docs/_build/latex/sphinx.xdy new file mode 100644 index 0000000000000000000000000000000000000000..0d02ef3372a4681baeb23021a5ec93590ea9ff61 --- /dev/null +++ b/docs/_build/latex/sphinx.xdy @@ -0,0 +1,207 @@ +;;; -*- mode: lisp; coding: utf-8; -*- + +;; Unfortunately xindy is out-of-the-box hyperref-incompatible. This +;; configuration is a workaround, which requires to pass option +;; hyperindex=false to hyperref. +;; textit and emph not currently used, spxpagem replaces former textbf +(define-attributes (("textbf" "textit" "emph" "spxpagem" "default"))) +(markup-locref :open "\textbf{\hyperpage{" :close "}}" :attr "textbf") +(markup-locref :open "\textit{\hyperpage{" :close "}}" :attr "textit") +(markup-locref :open "\emph{\hyperpage{" :close "}}" :attr "emph") +(markup-locref :open "\spxpagem{\hyperpage{" :close "}}" :attr "spxpagem") +(markup-locref :open "\hyperpage{" :close "}" :attr "default") + +(require "numeric-sort.xdy") + +;; xindy base module latex.xdy loads tex.xdy and the latter instructs +;; xindy to ignore **all** TeX macros in .idx entries, except those +;; explicitely described in merge rule. But when after applying all +;; merge rules an empty string results, xindy raises an error: + +;; ERROR: CHAR: index 0 should be less than the length of the string + +;; For example when using pdflatex with utf-8 characters the index +;; file will contain \IeC macros and they will get ignored except if +;; suitable merge rules are loaded early. The texindy script coming +;; with xindy provides this, but only for Latin scripts. The texindy +;; man page says to use rather xelatex or lualatex in case of Cyrillic +;; scripts. + +;; Sphinx contributes LICRcyr2utf8.xdy to provide support for Cyrillic +;; scripts for the pdflatex engine. + +;; Another issue caused by xindy ignoring all TeX macros except those +;; explicitely declared reveals itself when attempting to index ">>>", +;; as the ">" is converted to "\textgreater{}" by Sphinx's LaTeX +;; escaping. + +;; To fix this, Sphinx does **not** use texindy, and does not even +;; load the xindy latex.xdy base module. + +;(require "latex.xdy") + +;; Rather it incorporates some suitable extracts from latex.xdy and +;; tex.xdy with additional Sphinx contributed rules. + +;; But, this means for pdflatex and Latin scripts that the xindy file +;; tex/inputenc/uf8.xdy is not usable because it refers to the macro +;; \IeC only sporadically, and as tex.xdy is not loaded, a rule such as +;; (merge-rule "\'e" "é" :string) +;; does not work, it must be +;; (merge-rule "\IeC {\'e}" "é" :string) +;; So Sphinx contributes LICRlatin2utf8.xdy to mitigate that problem. + +;;;;;;;; extracts from tex.xdy (discarding most original comments): + +;;; +;;; TeX conventions +;;; + +;; Discard leading and trailing white space. Collapse multiple white +;; space characters to blank. + +(merge-rule "^ +" "" :eregexp) +(merge-rule " +$" "" :eregexp) +(merge-rule " +" " " :eregexp) + +;; Handle TeX markup + +(merge-rule "\\([{}$%&#])" "\1" :eregexp) + +;;;;;;;; end of extracts from xindy's tex.xdy + +;;;;;;;; extracts from latex.xdy: + +;; Standard location classes: arabic and roman numbers, and alphabets. + +(define-location-class "arabic-page-numbers" ("arabic-numbers")) +(define-location-class "roman-page-numbers" ("roman-numbers-lowercase")) +(define-location-class "Roman-page-numbers" ("roman-numbers-uppercase")) +(define-location-class "alpha-page-numbers" ("alpha")) +(define-location-class "Alpha-page-numbers" ("ALPHA")) + +;; Output Markup + +(markup-letter-group-list :sep "~n~n \indexspace~n") + +(markup-indexentry :open "~n \item " :depth 0) +(markup-indexentry :open "~n \subitem " :depth 1) +(markup-indexentry :open "~n \subsubitem " :depth 2) + +(markup-locclass-list :open ", " :sep ", ") +(markup-locref-list :sep ", ") + +;;;;;;;; end of extracts from latex.xdy + +;; The LaTeX \index command turns \ into normal character so the TeX macros +;; written to .idx files are not followed by a blank. This is different +;; from non-ascii letters which end up (with pdflatex) as \IeC macros in .idx +;; file, with a blank space after \IeC + +;; Details of the syntax are explained at +;; http://xindy.sourceforge.net/doc/manual-3.html +;; In absence of :string, "xindy uses an auto-detection mechanism to decide, +;; if the pattern is a regular expression or not". But it is not obvious to +;; guess, for example "\\_" is not detected as RE but "\\P\{\}" is, so for +;; being sure we apply the :string switch everywhere and do not use \\ etc... + +;; Go back from sphinx.util.texescape TeX macros to UTF-8 + +(merge-rule "\sphinxleftcurlybrace{}" "{" :string) +(merge-rule "\sphinxrightcurlybrace{}" "}" :string) +(merge-rule "\_" "_" :string) +(merge-rule "{[}" "[" :string) +(merge-rule "{]}" "]" :string) +(merge-rule "{}`" "`" :string) +(merge-rule "\textbackslash{}" "\" :string) ; " for Emacs syntax highlighting +(merge-rule "\textasciitilde{}" "~~" :string); the ~~ escape is needed here +(merge-rule "\textless{}" "<" :string) +(merge-rule "\textgreater{}" ">" :string) +(merge-rule "\textasciicircum{}" "^" :string) +(merge-rule "\P{}" "¶" :string) +(merge-rule "\S{}" "§" :string) +(merge-rule "\texteuro{}" "€" :string) +(merge-rule "\(\infty\)" "∞" :string) +(merge-rule "\(\pm\)" "±" :string) +(merge-rule "\(\rightarrow\)" "→" :string) +(merge-rule "\(\checkmark\)" "✓" :string) +(merge-rule "\textendash{}" "–" :string) +(merge-rule "\textbar{}" "|" :string) +(merge-rule "\(\sp{\text{0}}\)" "⁰" :string) +(merge-rule "\(\sp{\text{1}}\)" "¹" :string) +(merge-rule "\(\sp{\text{2}}\)" "²" :string) +(merge-rule "\(\sp{\text{3}}\)" "³" :string) +(merge-rule "\(\sp{\text{4}}\)" "⁴" :string) +(merge-rule "\(\sp{\text{5}}\)" "⁵" :string) +(merge-rule "\(\sp{\text{6}}\)" "⁶" :string) +(merge-rule "\(\sp{\text{7}}\)" "⁷" :string) +(merge-rule "\(\sp{\text{8}}\)" "⁸" :string) +(merge-rule "\(\sp{\text{9}}\)" "⁹" :string) +(merge-rule "\(\sb{\text{0}}\)" "₀" :string) +(merge-rule "\(\sb{\text{1}}\)" "₁" :string) +(merge-rule "\(\sb{\text{2}}\)" "₂" :string) +(merge-rule "\(\sb{\text{3}}\)" "₃" :string) +(merge-rule "\(\sb{\text{4}}\)" "₄" :string) +(merge-rule "\(\sb{\text{5}}\)" "₅" :string) +(merge-rule "\(\sb{\text{6}}\)" "₆" :string) +(merge-rule "\(\sb{\text{7}}\)" "₇" :string) +(merge-rule "\(\sb{\text{8}}\)" "₈" :string) +(merge-rule "\(\sb{\text{9}}\)" "₉" :string) +(merge-rule "\(\alpha\)" "α" :string) +(merge-rule "\(\beta\)" "β" :string) +(merge-rule "\(\gamma\)" "γ" :string) +(merge-rule "\(\delta\)" "δ" :string) +(merge-rule "\(\epsilon\)" "ε" :string) +(merge-rule "\(\zeta\)" "ζ" :string) +(merge-rule "\(\eta\)" "η" :string) +(merge-rule "\(\theta\)" "θ" :string) +(merge-rule "\(\iota\)" "ι" :string) +(merge-rule "\(\kappa\)" "κ" :string) +(merge-rule "\(\lambda\)" "λ" :string) +(merge-rule "\(\mu\)" "μ" :string) +(merge-rule "\(\nu\)" "ν" :string) +(merge-rule "\(\xi\)" "ξ" :string) +(merge-rule "\(\pi\)" "π" :string) +(merge-rule "\(\rho\)" "ρ" :string) +(merge-rule "\(\sigma\)" "σ" :string) +(merge-rule "\(\tau\)" "τ" :string) +(merge-rule "\(\upsilon\)" "υ" :string) +(merge-rule "\(\phi\)" "φ" :string) +(merge-rule "\(\chi\)" "χ" :string) +(merge-rule "\(\psi\)" "ψ" :string) +(merge-rule "\(\omega\)" "ω" :string) +(merge-rule "\(\Gamma\)" "Γ" :string) +(merge-rule "\(\Delta\)" "Δ" :string) +(merge-rule "\(\Theta\)" "Θ" :string) +(merge-rule "\(\Lambda\)" "Λ" :string) +(merge-rule "\(\Xi\)" "Ξ" :string) +(merge-rule "\(\Pi\)" "Π" :string) +(merge-rule "\(\Sigma\)" "Σ" :string) +(merge-rule "\(\Upsilon\)" "Υ" :string) +(merge-rule "\(\Phi\)" "Φ" :string) +(merge-rule "\(\Psi\)" "Ψ" :string) +(merge-rule "\(\Omega\)" "Ω" :string) + +;; This xindy module provides some basic support for "see" +(require "makeindex.xdy") + +;; This creates one-letter headings and works fine with utf-8 letters. +;; For Cyrillic with pdflatex works thanks to LICRcyr2utf8.xdy +(require "latin-lettergroups.xdy") + +;; currently we don't (know how to easily) separate "Numbers" from +;; "Symbols" with xindy as is the case with makeindex. +(markup-index :open "\begin{sphinxtheindex} +\let\lettergroup\sphinxstyleindexlettergroup +\let\lettergroupDefault\sphinxstyleindexlettergroupDefault +\let\spxpagem\sphinxstyleindexpagemain +\let\spxentry\sphinxstyleindexentry +\let\spxextra\sphinxstyleindexextra + +" + :close " + +\end{sphinxtheindex} +" + :tree) + diff --git a/docs/_build/latex/sphinxhighlight.sty b/docs/_build/latex/sphinxhighlight.sty new file mode 100644 index 0000000000000000000000000000000000000000..77c7e2cc86fea8a0aaded41f878fdcac436d97ac --- /dev/null +++ b/docs/_build/latex/sphinxhighlight.sty @@ -0,0 +1,105 @@ +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{sphinxhighlight}[2016/05/29 stylesheet for highlighting with pygments] + + +\makeatletter +\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% + \let\PYG@ul=\relax \let\PYG@tc=\relax% + \let\PYG@bc=\relax \let\PYG@ff=\relax} +\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} +\def\PYG@toks#1+{\ifx\relax#1\empty\else% + \PYG@tok{#1}\expandafter\PYG@toks\fi} +\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% + \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} +\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} + +\expandafter\def\csname PYG@tok@gd\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PYG@tok@gu\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PYG@tok@gt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PYG@tok@gs\endcsname{\let\PYG@bf=\textbf} +\expandafter\def\csname PYG@tok@gr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PYG@tok@cm\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\expandafter\def\csname PYG@tok@vg\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@vi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@vm\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@mh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@cs\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}} +\expandafter\def\csname PYG@tok@ge\endcsname{\let\PYG@it=\textit} +\expandafter\def\csname PYG@tok@vc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@il\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@go\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}} +\expandafter\def\csname PYG@tok@cp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@gi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PYG@tok@gh\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PYG@tok@ni\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}} +\expandafter\def\csname PYG@tok@nl\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}} +\expandafter\def\csname PYG@tok@nn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} +\expandafter\def\csname PYG@tok@no\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}} +\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@nc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} +\expandafter\def\csname PYG@tok@nd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}} +\expandafter\def\csname PYG@tok@ne\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@nf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} +\expandafter\def\csname PYG@tok@si\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}} +\expandafter\def\csname PYG@tok@s2\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@nt\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}} +\expandafter\def\csname PYG@tok@nv\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\expandafter\def\csname PYG@tok@s1\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@dl\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@ch\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\expandafter\def\csname PYG@tok@m\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@gp\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} +\expandafter\def\csname PYG@tok@sh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@ow\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@sx\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} +\expandafter\def\csname PYG@tok@bp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@c1\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\expandafter\def\csname PYG@tok@fm\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} +\expandafter\def\csname PYG@tok@o\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PYG@tok@kc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@c\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\expandafter\def\csname PYG@tok@mf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@err\endcsname{\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PYG@tok@mb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@ss\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}} +\expandafter\def\csname PYG@tok@sr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}} +\expandafter\def\csname PYG@tok@mo\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@kd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@mi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\expandafter\def\csname PYG@tok@kn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@cpf\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\expandafter\def\csname PYG@tok@kr\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@s\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@kp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@w\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PYG@tok@kt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}} +\expandafter\def\csname PYG@tok@sc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@sb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@sa\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@k\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\expandafter\def\csname PYG@tok@se\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\expandafter\def\csname PYG@tok@sd\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} + +\def\PYGZbs{\char`\\} +\def\PYGZus{\char`\_} +\def\PYGZob{\char`\{} +\def\PYGZcb{\char`\}} +\def\PYGZca{\char`\^} +\def\PYGZam{\char`\&} +\def\PYGZlt{\char`\<} +\def\PYGZgt{\char`\>} +\def\PYGZsh{\char`\#} +\def\PYGZpc{\char`\%} +\def\PYGZdl{\char`\$} +\def\PYGZhy{\char`\-} +\def\PYGZsq{\char`\'} +\def\PYGZdq{\char`\"} +\def\PYGZti{\char`\~} +% for compatibility with earlier versions +\def\PYGZat{@} +\def\PYGZlb{[} +\def\PYGZrb{]} +\makeatother + +\renewcommand\PYGZsq{\textquotesingle} diff --git a/docs/_build/latex/sphinxhowto.cls b/docs/_build/latex/sphinxhowto.cls index 8d5c59232b7043ac8eae052e604e260148c6b381..d4a38d4f5265ef50181842b5b743b908916152e3 100644 --- a/docs/_build/latex/sphinxhowto.cls +++ b/docs/_build/latex/sphinxhowto.cls @@ -3,13 +3,7 @@ % \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{sphinxhowto}[2009/06/02 Document class (Sphinx HOWTO)] - -\ifx\directlua\undefined\else -% if compiling with lualatex 0.85 or later load compatibility patch issued by -% the LaTeX team for older packages relying on \pdf<name> named primitives. - \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{} -\fi +\ProvidesClass{sphinxhowto}[2018/12/22 v1.8.3 Document class (Sphinx howto)] % 'oneside' option overriding the 'twoside' default \newif\if@oneside @@ -31,25 +25,18 @@ % reset these counters in your preamble. % \setcounter{secnumdepth}{2} +\setcounter{tocdepth}{2}% i.e. section and subsection % Change the title page to look a bit better, and fit in with the fncychap % ``Bjarne'' style a bit better. % -\renewcommand{\maketitle}{% - \noindent\rule{\textwidth}{1pt}\ifsphinxpdfoutput\newline\null\fi\par - \ifsphinxpdfoutput - \begingroup - % These \defs are required to deal with multi-line authors; it - % changes \\ to ', ' (comma-space), making it pass muster for - % generating document info in the PDF file. - \def\\{, }% - \def\and{and }% - \pdfinfo{ - /Author (\@author) - /Title (\@title) - }% +\newcommand{\sphinxmaketitle}{% + \noindent\rule{\textwidth}{1pt}\par + \begingroup % for PDF information dictionary + \def\endgraf{ }\def\and{\& }% + \pdfstringdefDisableCommands{\def\\{, }}% overwrite hyperref setup + \hypersetup{pdfauthor={\@author}, pdftitle={\@title}}% \endgroup - \fi \begin{flushright} \sphinxlogo \py@HeaderFamily @@ -59,7 +46,7 @@ {\Large \begin{tabular}[t]{c} \@author - \end{tabular}}\par + \end{tabular}\kern-\tabcolsep}\par \vspace{25pt} \@date \par \py@authoraddress \par @@ -70,42 +57,34 @@ %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} } -\let\py@OldTableofcontents=\tableofcontents -\renewcommand{\tableofcontents}{ +\newcommand{\sphinxtableofcontents}{ \begingroup \parskip = 0mm - \py@OldTableofcontents + \tableofcontents \endgroup \rule{\textwidth}{1pt} \vspace{12pt} } -\@ifundefined{fancyhf}{ - \pagestyle{plain}}{ - \pagestyle{normal}} % start this way; change for -\pagenumbering{arabic} % ToC & chapters - -\thispagestyle{empty} +\pagenumbering{arabic} % Fix the bibliography environment to add an entry to the Table of % Contents. % For an article document class this environment is a section, % so no page break before it. -\let\py@OldThebibliography=\thebibliography -\renewcommand{\thebibliography}[1]{ - \phantomsection - \py@OldThebibliography{1} - \addcontentsline{toc}{section}{\bibname} -} +% +\newenvironment{sphinxthebibliography}[1]{% + % \phantomsection % not needed here since TeXLive 2010's hyperref + \begin{thebibliography}{#1}% + \addcontentsline{toc}{section}{\ifdefined\refname\refname\else\ifdefined\bibname\bibname\fi\fi}}{\end{thebibliography}} + % Same for the indices. % The memoir class already does this, so we don't duplicate it in that case. % -\@ifclassloaded{memoir}{}{ - \let\py@OldTheindex=\theindex - \renewcommand{\theindex}{ - \phantomsection - \py@OldTheindex - \addcontentsline{toc}{section}{\indexname} - } -} +\@ifclassloaded{memoir} + {\newenvironment{sphinxtheindex}{\begin{theindex}}{\end{theindex}}} + {\newenvironment{sphinxtheindex}{% + \phantomsection % needed because no chapter, section, ... is created by theindex + \begin{theindex}% + \addcontentsline{toc}{section}{\indexname}}{\end{theindex}}} diff --git a/docs/_build/latex/sphinxmanual.cls b/docs/_build/latex/sphinxmanual.cls index f204494496c6bc14965fec9974e420cf9b553f5f..864fce080e28d655626c941812232d33a168e96c 100644 --- a/docs/_build/latex/sphinxmanual.cls +++ b/docs/_build/latex/sphinxmanual.cls @@ -3,13 +3,7 @@ % \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{sphinxmanual}[2009/06/02 Document class (Sphinx manual)] - -\ifx\directlua\undefined\else -% if compiling with lualatex 0.85 or later load compatibility patch issued by -% the LaTeX team for older packages relying on \pdf<name> named primitives. - \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{} -\fi +\ProvidesClass{sphinxmanual}[2018/12/22 v1.8.3 Document class (Sphinx manual)] % chapters starting at odd pages (overridden by 'openany' document option) \PassOptionsToClass{openright}{\sphinxdocclass} @@ -39,24 +33,19 @@ % Change the title page to look a bit better, and fit in with the fncychap % ``Bjarne'' style a bit better. % -\renewcommand{\maketitle}{% +\newcommand{\sphinxmaketitle}{% + \let\spx@tempa\relax + \ifHy@pageanchor\def\spx@tempa{\Hy@pageanchortrue}\fi + \hypersetup{pageanchor=false}% avoid duplicate destination warnings \begin{titlepage}% \let\footnotesize\small \let\footnoterule\relax - \noindent\rule{\textwidth}{1pt}\ifsphinxpdfoutput\newline\null\fi\par - \ifsphinxpdfoutput - \begingroup - % These \defs are required to deal with multi-line authors; it - % changes \\ to ', ' (comma-space), making it pass muster for - % generating document info in the PDF file. - \def\\{, }% - \def\and{and }% - \pdfinfo{ - /Author (\@author) - /Title (\@title) - }% + \noindent\rule{\textwidth}{1pt}\par + \begingroup % for PDF information dictionary + \def\endgraf{ }\def\and{\& }% + \pdfstringdefDisableCommands{\def\\{, }}% overwrite hyperref setup + \hypersetup{pdfauthor={\@author}, pdftitle={\@title}}% \endgroup - \fi \begin{flushright}% \sphinxlogo \py@HeaderFamily @@ -66,7 +55,7 @@ {\LARGE \begin{tabular}[t]{c} \@author - \end{tabular} + \end{tabular}\kern-\tabcolsep \par} \vfill\vfill {\large @@ -80,24 +69,22 @@ \setcounter{footnote}{0}% \let\thanks\relax\let\maketitle\relax %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} + \clearpage + \ifdefined\sphinxbackoftitlepage\sphinxbackoftitlepage\fi + \if@openright\cleardoublepage\else\clearpage\fi + \spx@tempa } -\let\py@OldTableofcontents=\tableofcontents -\renewcommand{\tableofcontents}{% - % before resetting page counter, let's do the right thing. - \if@openright\cleardoublepage\else\clearpage\fi +\newcommand{\sphinxtableofcontents}{% \pagenumbering{roman}% - \pagestyle{plain}% \begingroup \parskip \z@skip - \py@OldTableofcontents + \tableofcontents \endgroup % before resetting page counter, let's do the right thing. \if@openright\cleardoublepage\else\clearpage\fi \pagenumbering{arabic}% - \ifdefined\fancyhf\pagestyle{normal}\fi } -\pagenumbering{alph}% avoid hyperref "duplicate destination" warnings % This is needed to get the width of the section # area wide enough in the % library reference. Doing it here keeps it the same for all the manuals. @@ -108,23 +95,20 @@ % Fix the bibliography environment to add an entry to the Table of % Contents. % For a report document class this environment is a chapter. -\let\py@OldThebibliography=\thebibliography -\renewcommand{\thebibliography}[1]{ +% +\newenvironment{sphinxthebibliography}[1]{% \if@openright\cleardoublepage\else\clearpage\fi - \phantomsection - \py@OldThebibliography{1} - \addcontentsline{toc}{chapter}{\bibname} -} + % \phantomsection % not needed here since TeXLive 2010's hyperref + \begin{thebibliography}{#1}% + \addcontentsline{toc}{chapter}{\bibname}}{\end{thebibliography}} % Same for the indices. % The memoir class already does this, so we don't duplicate it in that case. % -\@ifclassloaded{memoir}{}{ - \let\py@OldTheindex=\theindex - \renewcommand{\theindex}{ +\@ifclassloaded{memoir} + {\newenvironment{sphinxtheindex}{\begin{theindex}}{\end{theindex}}} + {\newenvironment{sphinxtheindex}{% \if@openright\cleardoublepage\else\clearpage\fi - \phantomsection - \py@OldTheindex - \addcontentsline{toc}{chapter}{\indexname} - } -} + \phantomsection % needed as no chapter, section, ... created + \begin{theindex}% + \addcontentsline{toc}{chapter}{\indexname}}{\end{theindex}}} diff --git a/docs/_build/latex/sphinxmulticell.sty b/docs/_build/latex/sphinxmulticell.sty new file mode 100644 index 0000000000000000000000000000000000000000..f0d11b1f99a01f08b58ac273e10df5100f13babf --- /dev/null +++ b/docs/_build/latex/sphinxmulticell.sty @@ -0,0 +1,317 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{sphinxmulticell}% + [2017/02/23 v1.6 better span rows and columns of a table (Sphinx team)]% +\DeclareOption*{\PackageWarning{sphinxmulticell}{Option `\CurrentOption' is unknown}}% +\ProcessOptions\relax +% +% --- MULTICOLUMN --- +% standard LaTeX's \multicolumn +% 1. does not allow verbatim contents, +% 2. interacts very poorly with tabulary. +% +% It is needed to write own macros for Sphinx: to allow code-blocks in merged +% cells rendered by tabular/longtable, and to allow multi-column cells with +% paragraphs to be taken into account sanely by tabulary algorithm for column +% widths. +% +% This requires quite a bit of hacking. First, in Sphinx, the multi-column +% contents will *always* be wrapped in a varwidth environment. The issue +% becomes to pass it the correct target width. We must trick tabulary into +% believing the multicolumn is simply separate columns, else tabulary does not +% incorporate the contents in its algorithm. But then we must clear the +% vertical rules... +% +% configuration of tabulary +\setlength{\tymin}{3\fontcharwd\font`0 }% minimal width of "squeezed" columns +\setlength{\tymax}{10000pt}% allow enough room for paragraphs to "compete" +% we need access to tabulary's final computed width. \@tempdima is too volatile +% to hope it has kept tabulary's value when \sphinxcolwidth needs it. +\newdimen\sphinx@TY@tablewidth +\def\tabulary{% + \def\TY@final{\sphinx@TY@tablewidth\@tempdima\tabular}% + \let\endTY@final\endtabular + \TY@tabular}% +% next hack is needed only if user has set latex_use_latex_multicolumn to True: +% it fixes tabulary's bug with \multicolumn defined "short" in first pass. (if +% upstream tabulary adds a \long, our extra one causes no harm) +\def\sphinx@tempa #1\def\multicolumn#2#3#4#5#6#7#8#9\sphinx@tempa + {\def\TY@tab{#1\long\def\multicolumn####1####2####3{\multispan####1\relax}#9}}% +\expandafter\sphinx@tempa\TY@tab\sphinx@tempa +% +% TN. 1: as \omit is never executed, Sphinx multicolumn does not need to worry +% like standard multicolumn about |l| vs l|. On the other hand it assumes +% columns are separated by a | ... (if not it will add extraneous +% \arrayrulewidth space for each column separation in its estimate of available +% width). +% +% TN. 1b: as Sphinx multicolumn uses neither \omit nor \span, it can not +% (easily) get rid of extra macros from >{...} or <{...} between columns. At +% least, it has been made compatible with colortbl's \columncolor. +% +% TN. 2: tabulary's second pass is handled like tabular/longtable's single +% pass, with the difference that we hacked \TY@final to set in +% \sphinx@TY@tablewidth the final target width as computed by tabulary. This is +% needed only to handle columns with a "horizontal" specifier: "p" type columns +% (inclusive of tabulary's LJRC) holds the target column width in the +% \linewidth dimension. +% +% TN. 3: use of \begin{sphinxmulticolumn}...\end{sphinxmulticolumn} mark-up +% would need some hacking around the fact that groups can not span across table +% cells (the code does inserts & tokens, see TN1b). It was decided to keep it +% simple with \sphinxstartmulticolumn...\sphinxstopmulticolumn. +% +% MEMO about nesting: if sphinxmulticolumn is encountered in a nested tabular +% inside a tabulary it will think to be at top level in the tabulary. But +% Sphinx generates no nested tables, and if some LaTeX macro uses internally a +% tabular this will not have a \sphinxstartmulticolumn within it! +% +\def\sphinxstartmulticolumn{% + \ifx\equation$% $ tabulary's first pass + \expandafter\sphinx@TYI@start@multicolumn + \else % either not tabulary or tabulary's second pass + \expandafter\sphinx@start@multicolumn + \fi +}% +\def\sphinxstopmulticolumn{% + \ifx\equation$% $ tabulary's first pass + \expandafter\sphinx@TYI@stop@multicolumn + \else % either not tabulary or tabulary's second pass + \ignorespaces + \fi +}% +\def\sphinx@TYI@start@multicolumn#1{% + % use \gdef always to avoid stack space build up + \gdef\sphinx@tempa{#1}\begingroup\setbox\z@\hbox\bgroup +}% +\def\sphinx@TYI@stop@multicolumn{\egroup % varwidth was used with \tymax + \xdef\sphinx@tempb{\the\dimexpr\wd\z@/\sphinx@tempa}% per column width + \endgroup + \expandafter\sphinx@TYI@multispan\expandafter{\sphinx@tempa}% +}% +\def\sphinx@TYI@multispan #1{% + \kern\sphinx@tempb\ignorespaces % the per column occupied width + \ifnum#1>\@ne % repeat, taking into account subtleties of TeX's & ... + \expandafter\sphinx@TYI@multispan@next\expandafter{\the\numexpr#1-\@ne\expandafter}% + \fi +}% +\def\sphinx@TYI@multispan@next{&\relax\sphinx@TYI@multispan}% +% +% Now the branch handling either the second pass of tabulary or the single pass +% of tabular/longtable. This is the delicate part where we gather the +% dimensions from the p columns either set-up by tabulary or by user p column +% or Sphinx \X, \Y columns. The difficulty is that to get the said width, the +% template must be inserted (other hacks would be horribly complicated except +% if we rewrote crucial parts of LaTeX's \@array !) and we can not do +% \omit\span like standard \multicolumn's easy approach. Thus we must cancel +% the \vrule separators. Also, perhaps the column specifier is of the l, c, r +% type, then we attempt an ad hoc rescue to give varwidth a reasonable target +% width. +\def\sphinx@start@multicolumn#1{% + \gdef\sphinx@multiwidth{0pt}\gdef\sphinx@tempa{#1}\sphinx@multispan{#1}% +}% +\def\sphinx@multispan #1{% + \ifnum#1=\@ne\expandafter\sphinx@multispan@end + \else\expandafter\sphinx@multispan@next + \fi {#1}% +}% +\def\sphinx@multispan@next #1{% + % trick to recognize L, C, R, J or p, m, b type columns + \ifdim\baselineskip>\z@ + \gdef\sphinx@tempb{\linewidth}% + \else + % if in an l, r, c type column, try and hope for the best + \xdef\sphinx@tempb{\the\dimexpr(\ifx\TY@final\@undefined\linewidth\else + \sphinx@TY@tablewidth\fi-\arrayrulewidth)/\sphinx@tempa + -\tw@\tabcolsep-\arrayrulewidth\relax}% + \fi + \noindent\kern\sphinx@tempb\relax + \xdef\sphinx@multiwidth + {\the\dimexpr\sphinx@multiwidth+\sphinx@tempb+\tw@\tabcolsep+\arrayrulewidth}% + % hack the \vline and the colortbl macros + \sphinx@hack@vline\sphinx@hack@CT&\relax + % repeat + \expandafter\sphinx@multispan\expandafter{\the\numexpr#1-\@ne}% +}% +% packages like colortbl add group levels, we need to "climb back up" to be +% able to hack the \vline and also the colortbl inserted tokens. This creates +% empty space whether or not the columns were | separated: +\def\sphinx@hack@vline{\ifnum\currentgrouptype=6\relax + \kern\arrayrulewidth\arrayrulewidth\z@\else\aftergroup\sphinx@hack@vline\fi}% +\def\sphinx@hack@CT{\ifnum\currentgrouptype=6\relax + \let\CT@setup\sphinx@CT@setup\else\aftergroup\sphinx@hack@CT\fi}% +% It turns out \CT@row@color is not expanded contrarily to \CT@column@color +% during LaTeX+colortbl preamble preparation, hence it would be possible for +% \sphinx@CT@setup to discard only the column color and choose to obey or not +% row color and cell color. It would even be possible to propagate cell color +% to row color for the duration of the Sphinx multicolumn... the (provisional?) +% choice has been made to cancel the colortbl colours for the multicolumn +% duration. +\def\sphinx@CT@setup #1\endgroup{\endgroup}% hack to remove colour commands +\def\sphinx@multispan@end#1{% + % first, trace back our steps horizontally + \noindent\kern-\dimexpr\sphinx@multiwidth\relax + % and now we set the final computed width for the varwidth environment + \ifdim\baselineskip>\z@ + \xdef\sphinx@multiwidth{\the\dimexpr\sphinx@multiwidth+\linewidth}% + \else + \xdef\sphinx@multiwidth{\the\dimexpr\sphinx@multiwidth+ + (\ifx\TY@final\@undefined\linewidth\else + \sphinx@TY@tablewidth\fi-\arrayrulewidth)/\sphinx@tempa + -\tw@\tabcolsep-\arrayrulewidth\relax}% + \fi + % we need to remove colour set-up also for last cell of the multi-column + \aftergroup\sphinx@hack@CT +}% +\newcommand*\sphinxcolwidth[2]{% + % this dimension will always be used for varwidth, and serves as maximum + % width when cells are merged either via multirow or multicolumn or both, + % as always their contents is wrapped in varwidth environment. + \ifnum#1>\@ne % multi-column (and possibly also multi-row) + % we wrote our own multicolumn code especially to handle that (and allow + % verbatim contents) + \ifx\equation$%$ + \tymax % first pass of tabulary (cf MEMO above regarding nesting) + \else % the \@gobble thing is for compatibility with standard \multicolumn + \sphinx@multiwidth\@gobble{#1/#2}% + \fi + \else % single column multirow + \ifx\TY@final\@undefined % not a tabulary. + \ifdim\baselineskip>\z@ + % in a p{..} type column, \linewidth is the target box width + \linewidth + \else + % l, c, r columns. Do our best. + \dimexpr(\linewidth-\arrayrulewidth)/#2- + \tw@\tabcolsep-\arrayrulewidth\relax + \fi + \else % in tabulary + \ifx\equation$%$% first pass + \tymax % it is set to a big value so that paragraphs can express themselves + \else + % second pass. + \ifdim\baselineskip>\z@ + \linewidth % in a L, R, C, J column or a p, \X, \Y ... + \else + % we have hacked \TY@final to put in \sphinx@TY@tablewidth the table width + \dimexpr(\sphinx@TY@tablewidth-\arrayrulewidth)/#2- + \tw@\tabcolsep-\arrayrulewidth\relax + \fi + \fi + \fi + \fi +}% +% fallback default in case user has set latex_use_latex_multicolumn to True: +% \sphinxcolwidth will use this only inside LaTeX's standard \multicolumn +\def\sphinx@multiwidth #1#2{\dimexpr % #1 to gobble the \@gobble (!) + (\ifx\TY@final\@undefined\linewidth\else\sphinx@TY@tablewidth\fi + -\arrayrulewidth)*#2-\tw@\tabcolsep-\arrayrulewidth\relax}% +% +% --- MULTIROW --- +% standard \multirow +% 1. does not allow verbatim contents, +% 2. does not allow blank lines in its argument, +% 3. its * specifier means to typeset "horizontally" which is very +% bad for paragraph content. 2016 version has = specifier but it +% must be used with p type columns only, else results are bad, +% 4. it requires manual intervention if the contents is too long to fit +% in the asked-for number of rows. +% 5. colour panels (either from \rowcolor or \columncolor) will hide +% the bottom part of multirow text, hence manual tuning is needed +% to put the multirow insertion at the _bottom_. +% +% The Sphinx solution consists in always having contents wrapped +% in a varwidth environment so that it makes sense to estimate how many +% lines it will occupy, and then ensure by insertion of suitable struts +% that the table rows have the needed height. The needed mark-up is done +% by LaTeX writer, which has its own id for the merged cells. +% +% The colour issue is solved by clearing colour panels in all cells, +% whether or not the multirow is single-column or multi-column. +% +% In passing we obtain baseline alignements across rows (only if +% \arraylinestretch is 1, as LaTeX's does not obey \arraylinestretch in "p" +% multi-line contents, only first and last line...) +% +% TODO: examine the situation with \arraylinestretch > 1. The \extrarowheight +% is hopeless for multirow anyhow, it makes baseline alignment strictly +% impossible. +\newcommand\sphinxmultirow[2]{\begingroup + % #1 = nb of spanned rows, #2 = Sphinx id of "cell", #3 = contents + % but let's fetch #3 in a way allowing verbatim contents ! + \def\sphinx@nbofrows{#1}\def\sphinx@cellid{#2}% + \afterassignment\sphinx@multirow\let\next= +}% +\def\sphinx@multirow {% + \setbox\z@\hbox\bgroup\aftergroup\sphinx@@multirow\strut +}% +\def\sphinx@@multirow {% + % The contents, which is a varwidth environment, has been captured in + % \box0 (a \hbox). + % We have with \sphinx@cellid an assigned unique id. The goal is to give + % about the same height to all the involved rows. + % For this Sphinx will insert a \sphinxtablestrut{cell_id} mark-up + % in LaTeX file and the expansion of the latter will do the suitable thing. + \dimen@\dp\z@ + \dimen\tw@\ht\@arstrutbox + \advance\dimen@\dimen\tw@ + \advance\dimen\tw@\dp\@arstrutbox + \count@=\dimen@ % type conversion dim -> int + \count\tw@=\dimen\tw@ + \divide\count@\count\tw@ % TeX division truncates + \advance\dimen@-\count@\dimen\tw@ + % 1300sp is about 0.02pt. For comparison a rule default width is 0.4pt. + % (note that if \count@ holds 0, surely \dimen@>1300sp) + \ifdim\dimen@>1300sp \advance\count@\@ne \fi + % now \count@ holds the count L of needed "lines" + % and \sphinx@nbofrows holds the number N of rows + % we have L >= 1 and N >= 1 + % if L is a multiple of N, ... clear what to do ! + % else write L = qN + r, 1 <= r < N and we will + % arrange for each row to have enough space for: + % q+1 "lines" in each of the first r rows + % q "lines" in each of the (N-r) bottom rows + % for a total of (q+1) * r + q * (N-r) = q * N + r = L + % It is possible that q == 0. + \count\tw@\count@ + % the TeX division truncates + \divide\count\tw@\sphinx@nbofrows\relax + \count4\count\tw@ % q + \multiply\count\tw@\sphinx@nbofrows\relax + \advance\count@-\count\tw@ % r + \expandafter\xdef\csname sphinx@tablestrut_\sphinx@cellid\endcsname + {\noexpand\sphinx@tablestrut{\the\count4}{\the\count@}{\sphinx@cellid}}% + \dp\z@\z@ + % this will use the real height if it is >\ht\@arstrutbox + \sphinxtablestrut{\sphinx@cellid}\box\z@ + \endgroup % group was opened in \sphinxmultirow +}% +\newcommand*\sphinxtablestrut[1]{% + % #1 is a "cell_id", i.e. the id of a merged group of table cells + \csname sphinx@tablestrut_#1\endcsname +}% +% LaTeX typesets the table row by row, hence each execution can do +% an update for the next row. +\newcommand*\sphinx@tablestrut[3]{\begingroup + % #1 = q, #2 = (initially) r, #3 = cell_id, q+1 lines in first r rows + % if #2 = 0, create space for max(q,1) table lines + % if #2 > 0, create space for q+1 lines and decrement #2 + \leavevmode + \count@#1\relax + \ifnum#2=\z@ + \ifnum\count@=\z@\count@\@ne\fi + \else + % next row will be with a #2 decremented by one + \expandafter\xdef\csname sphinx@tablestrut_#3\endcsname + {\noexpand\sphinx@tablestrut{#1}{\the\numexpr#2-\@ne}{#3}}% + \advance\count@\@ne + \fi + \vrule\@height\ht\@arstrutbox + \@depth\dimexpr\count@\ht\@arstrutbox+\count@\dp\@arstrutbox-\ht\@arstrutbox\relax + \@width\z@ + \endgroup + % we need this to avoid colour panels hiding bottom parts of multirow text + \sphinx@hack@CT +}% +\endinput +%% +%% End of file `sphinxmulticell.sty'.