Initial Commit
This commit is contained in:
@@ -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)
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b6204fb9fa6b2114692ebd21151f118e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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 explicitly
|
||||
;; \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)
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 19fe0b1ebb26eeb4ba2f07aa1bef0063
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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"))
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: da5e51a874c260f4f94d544b354b8bbf
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,81 @@
|
||||
# Makefile for Sphinx LaTeX output
|
||||
|
||||
ALLDOCS = $(basename $(wildcard *.tex))
|
||||
ALLPDF = $(addsuffix .pdf,$(ALLDOCS))
|
||||
ALLDVI = $(addsuffix .dvi,$(ALLDOCS))
|
||||
ALLPS = $(addsuffix .ps,$(ALLDOCS))
|
||||
|
||||
# Prefix for archive names
|
||||
ARCHIVEPREFIX =
|
||||
# Additional LaTeX options
|
||||
LATEXOPTS =
|
||||
# format: pdf or dvi
|
||||
FMT = pdf
|
||||
|
||||
LATEX = latex
|
||||
PDFLATEX = pdflatex
|
||||
MAKEINDEX = makeindex
|
||||
|
||||
|
||||
all: $(ALLPDF)
|
||||
all-pdf: $(ALLPDF)
|
||||
all-dvi: $(ALLDVI)
|
||||
all-ps: $(ALLPS)
|
||||
|
||||
all-pdf-ja:
|
||||
for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done
|
||||
for f in *.tex; do pdflatex -kanji=utf8 $(LATEXOPTS) $$f; done
|
||||
for f in *.tex; do pdflatex -kanji=utf8 $(LATEXOPTS) $$f; done
|
||||
for f in *.tex; do pdflatex -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 pdflatex -kanji=utf8 $(LATEXOPTS) $$f; done
|
||||
for f in *.tex; do pdflatex -kanji=utf8 $(LATEXOPTS) $$f; done
|
||||
for f in *.dvi; do dvipdfmx $$f; done
|
||||
|
||||
zip: all-$(FMT)
|
||||
mkdir $(ARCHIVEPREFIX)docs-$(FMT)
|
||||
cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
|
||||
zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT)
|
||||
rm -r $(ARCHIVEPREFIX)docs-$(FMT)
|
||||
|
||||
tar: all-$(FMT)
|
||||
mkdir $(ARCHIVEPREFIX)docs-$(FMT)
|
||||
cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT)
|
||||
tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT)
|
||||
rm -r $(ARCHIVEPREFIX)docs-$(FMT)
|
||||
|
||||
gz: tar
|
||||
gzip -9 < $(ARCHIVEPREFIX)docs-$(FMT).tar > $(ARCHIVEPREFIX)docs-$(FMT).tar.gz
|
||||
|
||||
bz2: tar
|
||||
bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).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) '$<'
|
||||
|
||||
%.ps: %.dvi
|
||||
dvips '$<'
|
||||
|
||||
clean:
|
||||
rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI)
|
||||
|
||||
.PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz
|
||||
.PHONY: all-pdf-ja
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe6b91c86aeea8d43aebceb20abe5ea3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
@@ -0,0 +1,96 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6e2be03e098cadc44b8bb34b387f2cf1
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,96 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9b92da9a49da8fe418c59fc0d20e7dc6
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,75 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\providecommand\babel@aux[2]{}
|
||||
\@nameuse{bbl@beforestart}
|
||||
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
|
||||
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
|
||||
\global\let\oldnewlabel\newlabel
|
||||
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
|
||||
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
|
||||
\AtEndDocument{\ifx\hyper@anchor\@undefined
|
||||
\let\newlabel\oldnewlabel
|
||||
\fi}
|
||||
\fi}
|
||||
\global\let\hyper@last\relax
|
||||
\gdef\HyperFirstAtBeginDocument#1{#1}
|
||||
\providecommand*\HyPL@Entry[1]{}
|
||||
\HyPL@Entry{0<</S/D>>}
|
||||
\babel@aux{english}{}
|
||||
\newlabel{index::doc}{{}{1}{}{section*.1}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{section.1}\protected@file@percent }
|
||||
\newlabel{documentation:introduction}{{1}{2}{Introduction}{section.1}{}}
|
||||
\newlabel{documentation::doc}{{1}{2}{Introduction}{section.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Overview}{2}{subsection.1.1}\protected@file@percent }
|
||||
\newlabel{documentation:overview}{{1.1}{2}{Overview}{subsection.1.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Project Structure}{2}{subsection.1.2}\protected@file@percent }
|
||||
\newlabel{documentation:project-structure}{{1.2}{2}{Project Structure}{subsection.1.2}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {2}Setup for Development}{4}{section.2}\protected@file@percent }
|
||||
\newlabel{documentation:setup-for-development}{{2}{4}{Setup for Development}{section.2}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3}Devices}{4}{section.3}\protected@file@percent }
|
||||
\newlabel{documentation:devices}{{3}{4}{Devices}{section.3}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Debugging}{4}{subsection.3.1}\protected@file@percent }
|
||||
\newlabel{documentation:debugging}{{3.1}{4}{Debugging}{subsection.3.1}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Usage}{5}{section.4}\protected@file@percent }
|
||||
\newlabel{documentation:usage}{{4}{5}{Usage}{section.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Importers}{5}{subsection.4.1}\protected@file@percent }
|
||||
\newlabel{documentation:importers}{{4.1}{5}{Importers}{subsection.4.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}\sphinxstyleliteralintitle {\sphinxupquote {SimulationManager}}}{5}{subsection.4.2}\protected@file@percent }
|
||||
\newlabel{documentation:simulationmanager}{{4.2}{5}{\sphinxstyleliteralintitle {\sphinxupquote {SimulationManager}}}{subsection.4.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}\sphinxstyleliteralintitle {\sphinxupquote {iMSTKBehaviour}}}{5}{subsection.4.3}\protected@file@percent }
|
||||
\newlabel{documentation:imstkbehaviour}{{4.3}{5}{\sphinxstyleliteralintitle {\sphinxupquote {iMSTKBehaviour}}}{subsection.4.3}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}\sphinxstyleliteralintitle {\sphinxupquote {GeometryFilter}}}{5}{subsection.4.4}\protected@file@percent }
|
||||
\newlabel{documentation:geometryfilter}{{4.4}{5}{\sphinxstyleliteralintitle {\sphinxupquote {GeometryFilter}}}{subsection.4.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Editor}{5}{subsection.4.5}\protected@file@percent }
|
||||
\newlabel{documentation:editor}{{4.5}{5}{Editor}{subsection.4.5}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5}Releases}{6}{section.5}\protected@file@percent }
|
||||
\newlabel{releases:releases}{{5}{6}{Releases}{section.5}{}}
|
||||
\newlabel{releases::doc}{{5}{6}{Releases}{section.5}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}Apache License}{6}{section.6}\protected@file@percent }
|
||||
\newlabel{license:apache-license}{{6}{6}{Apache License}{section.6}{}}
|
||||
\newlabel{license::doc}{{6}{6}{Apache License}{section.6}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION}{6}{subsection.6.1}\protected@file@percent }
|
||||
\newlabel{license:terms-and-conditions-for-use-reproduction-and-distribution}{{6.1}{6}{TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION}{subsection.6.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}1. Definitions.}{6}{subsection.6.2}\protected@file@percent }
|
||||
\newlabel{license:definitions}{{6.2}{6}{1. Definitions}{subsection.6.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}2. Grant of Copyright License.}{7}{subsection.6.3}\protected@file@percent }
|
||||
\newlabel{license:grant-of-copyright-license}{{6.3}{7}{2. Grant of Copyright License}{subsection.6.3}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}3. Grant of Patent License.}{7}{subsection.6.4}\protected@file@percent }
|
||||
\newlabel{license:grant-of-patent-license}{{6.4}{7}{3. Grant of Patent License}{subsection.6.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}4. Redistribution.}{7}{subsection.6.5}\protected@file@percent }
|
||||
\newlabel{license:redistribution}{{6.5}{7}{4. Redistribution}{subsection.6.5}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.6}5. Submission of Contributions.}{8}{subsection.6.6}\protected@file@percent }
|
||||
\newlabel{license:submission-of-contributions}{{6.6}{8}{5. Submission of Contributions}{subsection.6.6}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.7}6. Trademarks.}{8}{subsection.6.7}\protected@file@percent }
|
||||
\newlabel{license:trademarks}{{6.7}{8}{6. Trademarks}{subsection.6.7}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.8}7. Disclaimer of Warranty.}{8}{subsection.6.8}\protected@file@percent }
|
||||
\newlabel{license:disclaimer-of-warranty}{{6.8}{8}{7. Disclaimer of Warranty}{subsection.6.8}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.9}8. Limitation of Liability.}{8}{subsection.6.9}\protected@file@percent }
|
||||
\newlabel{license:limitation-of-liability}{{6.9}{8}{8. Limitation of Liability}{subsection.6.9}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.10}9. Accepting Warranty or Additional Liability.}{8}{subsection.6.10}\protected@file@percent }
|
||||
\newlabel{license:accepting-warranty-or-additional-liability}{{6.10}{8}{9. Accepting Warranty or Additional Liability}{subsection.6.10}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.11}APPENDIX: How to apply the Apache License to your work}{9}{subsection.6.11}\protected@file@percent }
|
||||
\newlabel{license:appendix-how-to-apply-the-apache-license-to-your-work}{{6.11}{9}{APPENDIX: How to apply the Apache License to your work}{subsection.6.11}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {7}Contact}{9}{section.7}\protected@file@percent }
|
||||
\newlabel{index:contact}{{7}{9}{Contact}{section.7}{}}
|
||||
\gdef \@abspage@last{9}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a7ba27b001f9b77418735c48a5921ab7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8fdfeaa1e2e2e3641a616170ad84d723
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5712dd37350274946b2dd04a06f993e7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,893 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (MiKTeX 22.3) (preloaded format=latex 2022.6.9) 9 JUN 2022 10:11
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**C:/Work/projects/imstk-unity-project/Assets/Imstk/Docs/build/latex/./imstk-un
|
||||
ity.tex
|
||||
|
||||
(C:/Work/projects/imstk-unity-project/Assets/Imstk/Docs/build/latex/./imstk-uni
|
||||
ty.tex
|
||||
LaTeX2e <2021-11-15> patch level 1
|
||||
L3 programming layer <2022-05-04> (sphinxhowto.cls
|
||||
Document Class: sphinxhowto 2019/12/01 v2.3.0 Document class (Sphinx howto)
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\article.cls
|
||||
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\size10.clo
|
||||
File: size10.clo 2021/10/04 v1.4n Standard LaTeX file (size option)
|
||||
)
|
||||
\c@part=\count185
|
||||
\c@section=\count186
|
||||
\c@subsection=\count187
|
||||
\c@subsubsection=\count188
|
||||
\c@paragraph=\count189
|
||||
\c@subparagraph=\count190
|
||||
\c@figure=\count191
|
||||
\c@table=\count192
|
||||
\abovecaptionskip=\skip47
|
||||
\belowcaptionskip=\skip48
|
||||
\bibindent=\dimen138
|
||||
)
|
||||
LaTeX Info: Redefining \and on input line 32.
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\inputenc.sty
|
||||
Package: inputenc 2021/02/14 v1.3d Input encoding file
|
||||
\inpenc@prehook=\toks16
|
||||
\inpenc@posthook=\toks17
|
||||
)
|
||||
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)
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/cmap\cmap.sty
|
||||
Package: cmap 2021/02/06 v1.0j CMap support: searchable PDF
|
||||
|
||||
|
||||
Package cmap Warning: pdftex in DVI mode - exiting.
|
||||
|
||||
) (C:\Program Files\MiKTeX\tex/latex/base\fontenc.sty
|
||||
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsmath\amsmath.sty
|
||||
Package: amsmath 2021/10/15 v2.17l AMS math features
|
||||
\@mathmargin=\skip49
|
||||
|
||||
For additional information on amsmath, use the `?' option.
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsmath\amstext.sty
|
||||
Package: amstext 2021/08/26 v2.01 AMS text
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsmath\amsgen.sty
|
||||
File: amsgen.sty 1999/11/30 v2.0 generic functions
|
||||
\@emptytoks=\toks18
|
||||
\ex@=\dimen139
|
||||
))
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsmath\amsbsy.sty
|
||||
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
|
||||
\pmbraise@=\dimen140
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsmath\amsopn.sty
|
||||
Package: amsopn 2021/08/26 v2.02 operator names
|
||||
)
|
||||
\inf@bad=\count193
|
||||
LaTeX Info: Redefining \frac on input line 234.
|
||||
\uproot@=\count194
|
||||
\leftroot@=\count195
|
||||
LaTeX Info: Redefining \overline on input line 399.
|
||||
\classnum@=\count196
|
||||
\DOTSCASE@=\count197
|
||||
LaTeX Info: Redefining \ldots on input line 496.
|
||||
LaTeX Info: Redefining \dots on input line 499.
|
||||
LaTeX Info: Redefining \cdots on input line 620.
|
||||
\Mathstrutbox@=\box50
|
||||
\strutbox@=\box51
|
||||
\big@size=\dimen141
|
||||
LaTeX Font Info: Redeclaring font encoding OML on input line 743.
|
||||
LaTeX Font Info: Redeclaring font encoding OMS on input line 744.
|
||||
\macc@depth=\count198
|
||||
\c@MaxMatrixCols=\count199
|
||||
\dotsspace@=\muskip16
|
||||
\c@parentequation=\count266
|
||||
\dspbrk@lvl=\count267
|
||||
\tag@help=\toks19
|
||||
\row@=\count268
|
||||
\column@=\count269
|
||||
\maxfields@=\count270
|
||||
\andhelp@=\toks20
|
||||
\eqnshift@=\dimen142
|
||||
\alignsep@=\dimen143
|
||||
\tagshift@=\dimen144
|
||||
\tagwidth@=\dimen145
|
||||
\totwidth@=\dimen146
|
||||
\lineht@=\dimen147
|
||||
\@envbody=\toks21
|
||||
\multlinegap=\skip50
|
||||
\multlinetaggap=\skip51
|
||||
\mathdisplay@stack=\toks22
|
||||
LaTeX Info: Redefining \[ on input line 2938.
|
||||
LaTeX Info: Redefining \] on input line 2939.
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsfonts\amssymb.sty
|
||||
Package: amssymb 2013/01/14 v3.01 AMS font symbols
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsfonts\amsfonts.sty
|
||||
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
|
||||
\symAMSa=\mathgroup4
|
||||
\symAMSb=\mathgroup5
|
||||
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
|
||||
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
|
||||
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
|
||||
))
|
||||
(C:\Program Files\MiKTeX\tex/generic/babel\babel.sty
|
||||
Package: babel 2022/05/22 3.75 The Babel package
|
||||
\babel@savecnt=\count271
|
||||
\U@D=\dimen148
|
||||
\l@unhyphenated=\language79
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/generic/babel\txtbabel.def)
|
||||
\bbl@readstream=\read2
|
||||
\bbl@dirlevel=\count272
|
||||
|
||||
*************************************
|
||||
* Local config file bblopts.cfg used
|
||||
*
|
||||
(C:\Program Files\MiKTeX\tex/latex/arabi\bblopts.cfg
|
||||
File: bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to "declared" options of
|
||||
babel
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/babel-english\english.ldf
|
||||
Language: english 2017/06/06 v3.3r English support from the babel system
|
||||
Package babel Info: Hyphen rules for 'canadian' set to \l@english
|
||||
(babel) (\language0). Reported on input line 102.
|
||||
Package babel Info: Hyphen rules for 'australian' set to \l@ukenglish
|
||||
(babel) (\language73). Reported on input line 105.
|
||||
Package babel Info: Hyphen rules for 'newzealand' set to \l@ukenglish
|
||||
(babel) (\language73). Reported on input line 108.
|
||||
))
|
||||
(C:\Program Files\MiKTeX\tex/generic/babel/locale/en\babel-english.tex
|
||||
Package babel Info: Importing font and identification data for english
|
||||
(babel) from babel-en.ini. Reported on input line 11.
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/tex-gyre\tgtermes.s
|
||||
ty
|
||||
Package: tgtermes 2009/09/27 v1.2 TeX Gyre Termes as default roman family
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/kvoptions\kvoptions
|
||||
.sty
|
||||
Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO)
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics\keyval.sty
|
||||
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
|
||||
\KV@toks@=\toks23
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/ltxcmds\ltxcmds.s
|
||||
ty
|
||||
Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO)
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/kvsetkeys\kvsetke
|
||||
ys.sty
|
||||
Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO)
|
||||
)))
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/tex-gyre\tgheros.st
|
||||
y
|
||||
Package: tgheros 2009/09/27 v1.2 TeX Gyre Heros as default sans serif family
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/fncychap\fncychap.s
|
||||
ty
|
||||
Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters)
|
||||
\RW=\skip52
|
||||
\mylen=\skip53
|
||||
\myhi=\skip54
|
||||
\px=\skip55
|
||||
\py=\skip56
|
||||
\pyy=\skip57
|
||||
\pxx=\skip58
|
||||
\c@AlphaCnt=\count273
|
||||
\c@AlphaDecCnt=\count274
|
||||
) (sphinx.sty
|
||||
Package: sphinx 2021/01/27 v4.0.0 LaTeX package (Sphinx markup)
|
||||
(C:\Program Files\MiKTeX\tex/latex/xcolor\xcolor.sty
|
||||
Package: xcolor 2021/10/31 v2.13 LaTeX color extensions (UK)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics-cfg\color.cfg
|
||||
File: color.cfg 2016/01/02 v1.6 sample color configuration
|
||||
)
|
||||
Package xcolor Info: Driver file: dvips.def on input line 227.
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics-def\dvips.def
|
||||
File: dvips.def 2017/06/20 v3.1d Graphics/color driver for dvips
|
||||
)
|
||||
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1352.
|
||||
Package xcolor Info: Model `RGB' extended on input line 1368.
|
||||
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1370.
|
||||
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1371.
|
||||
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1372.
|
||||
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1373.
|
||||
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1374.
|
||||
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1375.
|
||||
)
|
||||
\sphinxverbatimsep=\dimen149
|
||||
\sphinxverbatimborder=\dimen150
|
||||
\sphinxshadowsep=\dimen151
|
||||
\sphinxshadowsize=\dimen152
|
||||
\sphinxshadowrule=\dimen153
|
||||
\spx@notice@border=\dimen154
|
||||
|
||||
(sphinxoptionshyperref.sty
|
||||
File: sphinxoptionshyperref.sty 2021/01/27 hyperref
|
||||
) (sphinxoptionsgeometry.sty
|
||||
File: sphinxoptionsgeometry.sty 2021/01/27 geometry
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\textcomp.sty
|
||||
Package: textcomp 2020/02/02 v2.0n Standard LaTeX package
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/float\float.sty
|
||||
Package: float 2001/11/08 v1.3d Float enhancements (AL)
|
||||
\c@float@type=\count275
|
||||
\float@exts=\toks24
|
||||
\float@box=\box52
|
||||
\@float@everytoks=\toks25
|
||||
\@floatcapt=\box53
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/wrapfig\wrapfig.sty
|
||||
\wrapoverhang=\dimen155
|
||||
\WF@size=\dimen156
|
||||
\c@WF@wrappedlines=\count276
|
||||
\WF@box=\box54
|
||||
\WF@everypar=\toks26
|
||||
Package: wrapfig 2003/01/31 v 3.6
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/capt-of\capt-of.sty
|
||||
Package: capt-of 2009/12/29 v0.2 standard captions outside of floats
|
||||
) (C:\Program Files\MiKTeX\tex/latex/tools\multicol.sty
|
||||
Package: multicol 2021/10/28 v1.9b multicolumn formatting (FMi)
|
||||
\c@tracingmulticols=\count277
|
||||
\mult@box=\box55
|
||||
\multicol@leftmargin=\dimen157
|
||||
\c@unbalance=\count278
|
||||
\c@collectmore=\count279
|
||||
\doublecol@number=\count280
|
||||
\multicoltolerance=\count281
|
||||
\multicolpretolerance=\count282
|
||||
\full@width=\dimen158
|
||||
\page@free=\dimen159
|
||||
\premulticols=\dimen160
|
||||
\postmulticols=\dimen161
|
||||
\multicolsep=\skip59
|
||||
\multicolbaselineskip=\skip60
|
||||
\partial@page=\box56
|
||||
\last@line=\box57
|
||||
\maxbalancingoverflow=\dimen162
|
||||
\mult@rightbox=\box58
|
||||
\mult@grightbox=\box59
|
||||
\mult@firstbox=\box60
|
||||
\mult@gfirstbox=\box61
|
||||
\@tempa=\box62
|
||||
\@tempa=\box63
|
||||
\@tempa=\box64
|
||||
\@tempa=\box65
|
||||
\@tempa=\box66
|
||||
\@tempa=\box67
|
||||
\@tempa=\box68
|
||||
\@tempa=\box69
|
||||
\@tempa=\box70
|
||||
\@tempa=\box71
|
||||
\@tempa=\box72
|
||||
\@tempa=\box73
|
||||
\@tempa=\box74
|
||||
\@tempa=\box75
|
||||
\@tempa=\box76
|
||||
\@tempa=\box77
|
||||
\@tempa=\box78
|
||||
\@tempa=\box79
|
||||
\@tempa=\box80
|
||||
\@tempa=\box81
|
||||
\@tempa=\box82
|
||||
\@tempa=\box83
|
||||
\@tempa=\box84
|
||||
\@tempa=\box85
|
||||
\@tempa=\box86
|
||||
\@tempa=\box87
|
||||
\@tempa=\box88
|
||||
\@tempa=\box89
|
||||
\@tempa=\box90
|
||||
\@tempa=\box91
|
||||
\@tempa=\box92
|
||||
\@tempa=\box93
|
||||
\@tempa=\box94
|
||||
\@tempa=\box95
|
||||
\@tempa=\box96
|
||||
\@tempa=\box97
|
||||
\c@minrows=\count283
|
||||
\c@columnbadness=\count284
|
||||
\c@finalcolumnbadness=\count285
|
||||
\last@try=\dimen163
|
||||
\multicolovershoot=\dimen164
|
||||
\multicolundershoot=\dimen165
|
||||
\mult@nat@firstbox=\box98
|
||||
\colbreak@box=\box99
|
||||
\mc@col@check@num=\count286
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics\graphicx.sty
|
||||
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics\graphics.sty
|
||||
Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics\trig.sty
|
||||
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/graphics-cfg\graphics.cfg
|
||||
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
|
||||
)
|
||||
Package graphics Info: Driver file: dvips.def on input line 107.
|
||||
)
|
||||
\Gin@req@height=\dimen166
|
||||
\Gin@req@width=\dimen167
|
||||
)
|
||||
(sphinxlatexgraphics.sty
|
||||
File: sphinxlatexgraphics.sty 2021/01/27 graphics
|
||||
\spx@image@maxheight=\dimen168
|
||||
\spx@image@box=\box100
|
||||
) (sphinxlatexadmonitions.sty
|
||||
File: sphinxlatexadmonitions.sty 2021/01/27 admonitions
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/framed\framed.sty
|
||||
Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks
|
||||
\OuterFrameSep=\skip61
|
||||
\fb@frw=\dimen169
|
||||
\fb@frh=\dimen170
|
||||
\FrameRule=\dimen171
|
||||
\FrameSep=\dimen172
|
||||
)) (sphinxlatexliterals.sty
|
||||
File: sphinxlatexliterals.sty 2021/12/06 code-blocks and parsed literals
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/fancyvrb\fancyvrb.s
|
||||
ty
|
||||
Package: fancyvrb 2022/04/12 4.2 verbatim text (tvz,hv)
|
||||
\FV@CodeLineNo=\count287
|
||||
\FV@InFile=\read3
|
||||
\FV@TabBox=\box101
|
||||
\c@FancyVerbLine=\count288
|
||||
\FV@StepNumber=\count289
|
||||
\FV@OutFile=\write3
|
||||
) (C:\Program Files\MiKTeX\tex/latex/base\alltt.sty
|
||||
Package: alltt 2021/01/29 v2.0g defines alltt environment
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/upquote\upquote.sty
|
||||
Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba
|
||||
tim
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/needspace\needspace
|
||||
.sty
|
||||
Package: needspace 2010/09/12 v1.3d reserve vertical space
|
||||
)
|
||||
\sphinxcontinuationbox=\box102
|
||||
\sphinxvisiblespacebox=\box103
|
||||
\sphinxVerbatim@TitleBox=\box104
|
||||
\sphinxVerbatim@ContentsBox=\box105
|
||||
\spx@scratchbox=\box106
|
||||
) (sphinxlatexshadowbox.sty
|
||||
File: sphinxlatexshadowbox.sty 2021/01/27 sphinxShadowBox
|
||||
) (sphinxlatexcontainers.sty
|
||||
File: sphinxlatexcontainers.sty 2021/05/03 containers
|
||||
)
|
||||
(sphinxhighlight.sty
|
||||
Package: sphinxhighlight 2016/05/29 stylesheet for highlighting with pygments
|
||||
) (sphinxlatextables.sty
|
||||
File: sphinxlatextables.sty 2021/01/27 tables
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/tabulary\tabulary.s
|
||||
ty
|
||||
Package: tabulary 2014/06/11 v0.10 tabulary package (DPC)
|
||||
(C:\Program Files\MiKTeX\tex/latex/tools\array.sty
|
||||
Package: array 2021/10/04 v2.5f Tabular extension package (FMi)
|
||||
\col@sep=\dimen173
|
||||
\ar@mcellbox=\box107
|
||||
\extrarowheight=\dimen174
|
||||
\NC@list=\toks27
|
||||
\extratabsurround=\skip62
|
||||
\backup@length=\skip63
|
||||
\ar@cellbox=\box108
|
||||
)
|
||||
\TY@count=\count290
|
||||
\TY@linewidth=\dimen175
|
||||
\tymin=\dimen176
|
||||
\tymax=\dimen177
|
||||
\TY@tablewidth=\dimen178
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/tools\longtable.sty
|
||||
Package: longtable 2021-09-01 v4.17 Multi-page Table package (DPC)
|
||||
\LTleft=\skip64
|
||||
\LTright=\skip65
|
||||
\LTpre=\skip66
|
||||
\LTpost=\skip67
|
||||
\LTchunksize=\count291
|
||||
\LTcapwidth=\dimen179
|
||||
\LT@head=\box109
|
||||
\LT@firsthead=\box110
|
||||
\LT@foot=\box111
|
||||
\LT@lastfoot=\box112
|
||||
\LT@gbox=\box113
|
||||
\LT@cols=\count292
|
||||
\LT@rows=\count293
|
||||
\c@LT@tables=\count294
|
||||
\c@LT@chunks=\count295
|
||||
\LT@p@ftn=\toks28
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/varwidth\varwidth.s
|
||||
ty
|
||||
Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages
|
||||
\@vwid@box=\box114
|
||||
\sift@deathcycles=\count296
|
||||
\@vwid@loff=\dimen180
|
||||
\@vwid@roff=\dimen181
|
||||
)
|
||||
\sphinx@TY@tablewidth=\dimen182
|
||||
) (sphinxlatexnumfig.sty
|
||||
File: sphinxlatexnumfig.sty 2021/01/27 numbering
|
||||
) (sphinxlatexlists.sty
|
||||
File: sphinxlatexlists.sty 2021/12/20 lists
|
||||
\spx@lineitemlabel=\toks29
|
||||
)
|
||||
\c@sphinxscope=\count297
|
||||
(sphinxpackagefootnote.sty
|
||||
Package: sphinxpackagefootnote 2022/02/12 v4.5.0 Sphinx custom footnotehyper pa
|
||||
ckage (Sphinx team)
|
||||
\FNH@notes=\box115
|
||||
\FNH@toks=\toks30
|
||||
\FNH@width=\dimen183
|
||||
\c@sphinxfootnotemark=\count298
|
||||
) (sphinxlatexindbibtoc.sty
|
||||
File: sphinxlatexindbibtoc.sty 2021/01/27 index, bib., toc
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\makeidx.sty
|
||||
Package: makeidx 2021/10/04 v1.0m Standard LaTeX package
|
||||
)) (sphinxlatexstylepage.sty
|
||||
File: sphinxlatexstylepage.sty 2021/01/27 page styling
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/parskip\parskip.sty
|
||||
Rollback for package 'parskip' requested -> version 'v1'.
|
||||
This corresponds to the release introduced on 2001-04-09.
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/parskip\parskip-200
|
||||
1-04-09.sty
|
||||
Package: parskip 2001/04/09 non-zero parskip adjustments
|
||||
))
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/fancyhdr\fancyhdr.s
|
||||
ty
|
||||
Package: fancyhdr 2022/05/18 v4.0.3 Extensive control of page headers and foote
|
||||
rs
|
||||
\f@nch@headwidth=\skip68
|
||||
\f@nch@O@elh=\skip69
|
||||
\f@nch@O@erh=\skip70
|
||||
\f@nch@O@olh=\skip71
|
||||
\f@nch@O@orh=\skip72
|
||||
\f@nch@O@elf=\skip73
|
||||
\f@nch@O@erf=\skip74
|
||||
\f@nch@O@olf=\skip75
|
||||
\f@nch@O@orf=\skip76
|
||||
)) (sphinxlatexstyleheadings.sty
|
||||
File: sphinxlatexstyleheadings.sty 2021/01/27 headings
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/titlesec\titlesec.s
|
||||
ty
|
||||
Package: titlesec 2021/07/05 v2.14 Sectioning titles
|
||||
\ttl@box=\box116
|
||||
\beforetitleunit=\skip77
|
||||
\aftertitleunit=\skip78
|
||||
\ttl@plus=\dimen184
|
||||
\ttl@minus=\dimen185
|
||||
\ttl@toksa=\toks31
|
||||
\titlewidth=\dimen186
|
||||
\titlewidthlast=\dimen187
|
||||
\titlewidthfirst=\dimen188
|
||||
)) (sphinxlatexstyletext.sty
|
||||
File: sphinxlatexstyletext.sty 2021/12/06 text styling
|
||||
) (sphinxlatexobjects.sty
|
||||
File: sphinxlatexobjects.sty 2022/01/13 documentation environments
|
||||
\sphinxsignaturesep=\skip79
|
||||
\py@argswidth=\skip80
|
||||
\lineblockindentation=\skip81
|
||||
\DUlineblockindent=\skip82
|
||||
))
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/geometry\geometry.s
|
||||
ty
|
||||
Package: geometry 2020/01/02 v5.9 Page Geometry
|
||||
(C:\Program Files\MiKTeX\tex/generic/iftex\ifvtex.sty
|
||||
Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead.
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/generic/iftex\iftex.sty
|
||||
Package: iftex 2022/02/03 v1.0f TeX engine tests
|
||||
))
|
||||
\Gm@cnth=\count299
|
||||
\Gm@cntv=\count300
|
||||
\c@Gm@tempcnt=\count301
|
||||
\Gm@bindingoffset=\dimen189
|
||||
\Gm@wd@mp=\dimen190
|
||||
\Gm@odd@mp=\dimen191
|
||||
\Gm@even@mp=\dimen192
|
||||
\Gm@layoutwidth=\dimen193
|
||||
\Gm@layoutheight=\dimen194
|
||||
\Gm@layouthoffset=\dimen195
|
||||
\Gm@layoutvoffset=\dimen196
|
||||
\Gm@dimlist=\toks32
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/geometry\geometry.c
|
||||
fg)) (C:\Program Files\MiKTeX\tex/latex/hyperref\hyperref.sty
|
||||
Package: hyperref 2022-05-17 v7.00q Hypertext links for LaTeX
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/generic/pdftexcmds\pdftexcmds.sty
|
||||
Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO
|
||||
)
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/infwarerr\infware
|
||||
rr.sty
|
||||
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
|
||||
)
|
||||
Package pdftexcmds Info: \pdf@primitive is available.
|
||||
Package pdftexcmds Info: \pdf@ifprimitive is available.
|
||||
Package pdftexcmds Info: \pdfdraftmode is ignored in DVI mode.
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/kvdefinekeys\kvde
|
||||
finekeys.sty
|
||||
Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO)
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/pdfescape\pdfesca
|
||||
pe.sty
|
||||
Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO)
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/hycolor\hycolor.sty
|
||||
Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO)
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/letltxmacro\letltxm
|
||||
acro.sty
|
||||
Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO)
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/auxhook\auxhook.sty
|
||||
Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO)
|
||||
) (C:\Program Files\MiKTeX\tex/latex/hyperref\nameref.sty
|
||||
Package: nameref 2022-05-17 v2.50 Cross-referencing by name of section
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/refcount\refcount.s
|
||||
ty
|
||||
Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO)
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/gettitlestring\ge
|
||||
ttitlestring.sty
|
||||
Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
|
||||
)
|
||||
\c@section@level=\count302
|
||||
)
|
||||
\@linkdim=\dimen197
|
||||
\Hy@linkcounter=\count303
|
||||
\Hy@pagecounter=\count304
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\pd1enc.def
|
||||
File: pd1enc.def 2022-05-17 v7.00q Hyperref: PDFDocEncoding definition (HO)
|
||||
Now handling font encoding PD1 ...
|
||||
... no UTF-8 mapping file for font encoding PD1
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/intcalc\intcalc.s
|
||||
ty
|
||||
Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/etexcmds\etexcmds
|
||||
.sty
|
||||
Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO)
|
||||
)
|
||||
\Hy@SavedSpaceFactor=\count305
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\puenc.def
|
||||
File: puenc.def 2022-05-17 v7.00q Hyperref: PDF Unicode definition (HO)
|
||||
Now handling font encoding PU ...
|
||||
... no UTF-8 mapping file for font encoding PU
|
||||
)
|
||||
Package hyperref Info: Option `unicode' set `true' on input line 4020.
|
||||
Package hyperref Info: Option `colorlinks' set `true' on input line 4020.
|
||||
Package hyperref Info: Option `breaklinks' set `true' on input line 4020.
|
||||
Package hyperref Info: Hyper figures OFF on input line 4139.
|
||||
Package hyperref Info: Link nesting OFF on input line 4144.
|
||||
Package hyperref Info: Hyper index ON on input line 4147.
|
||||
Package hyperref Info: Plain pages OFF on input line 4154.
|
||||
Package hyperref Info: Backreferencing OFF on input line 4159.
|
||||
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
|
||||
Package hyperref Info: Bookmarks ON on input line 4385.
|
||||
\c@Hy@tempcnt=\count306
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/url\url.sty
|
||||
\Urlmuskip=\muskip17
|
||||
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
|
||||
)
|
||||
LaTeX Info: Redefining \url on input line 4723.
|
||||
\XeTeXLinkMargin=\dimen198
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/bitset\bitset.sty
|
||||
Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/bigintcalc\bigint
|
||||
calc.sty
|
||||
Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO
|
||||
)
|
||||
))
|
||||
\Fld@menulength=\count307
|
||||
\Field@Width=\dimen199
|
||||
\Fld@charsize=\dimen256
|
||||
Package hyperref Info: Hyper figures OFF on input line 6001.
|
||||
Package hyperref Info: Link nesting OFF on input line 6006.
|
||||
Package hyperref Info: Hyper index ON on input line 6009.
|
||||
Package hyperref Info: backreferencing OFF on input line 6016.
|
||||
Package hyperref Info: Link coloring ON on input line 6019.
|
||||
Package hyperref Info: Link coloring with OCG OFF on input line 6026.
|
||||
Package hyperref Info: PDF/A mode OFF on input line 6031.
|
||||
LaTeX Info: Redefining \ref on input line 6078.
|
||||
LaTeX Info: Redefining \pageref on input line 6078.
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\atbegshi-ltx.sty
|
||||
Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi
|
||||
package with kernel methods
|
||||
)
|
||||
\Hy@abspage=\count308
|
||||
\c@Item=\count309
|
||||
\c@Hfootnote=\count310
|
||||
)
|
||||
Package hyperref Info: Driver (default): hdvips.
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\hdvips.def
|
||||
File: hdvips.def 2022-05-17 v7.00q Hyperref driver for dvips
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/hyperref\pdfmark.def
|
||||
File: pdfmark.def 2022-05-17 v7.00q Hyperref definitions for pdfmark specials
|
||||
|
||||
|
||||
Package hyperref Warning: You have enabled option `breaklinks'.
|
||||
(hyperref) But driver `hdvips.def' does not suppport this.
|
||||
(hyperref) Expect trouble with the link areas of broken links.
|
||||
|
||||
\pdf@docset=\toks33
|
||||
\pdf@box=\box117
|
||||
\pdf@toks=\toks34
|
||||
\pdf@defaulttoks=\toks35
|
||||
\HyField@AnnotCount=\count311
|
||||
\Fld@listcount=\count312
|
||||
\c@bookmark@seq@number=\count313
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/rerunfilecheck\reru
|
||||
nfilecheck.sty
|
||||
Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO)
|
||||
(C:\Program Files\MiKTeX\tex/latex/base\atveryend-ltx.sty
|
||||
Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac
|
||||
kage
|
||||
with kernel methods
|
||||
)
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/generic/uniquecounter\uni
|
||||
quecounter.sty
|
||||
Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO)
|
||||
)
|
||||
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
|
||||
86.
|
||||
)
|
||||
\Hy@SectionHShift=\skip83
|
||||
)) (C:\Program Files\MiKTeX\tex/latex/oberdiek\hypcap.sty
|
||||
Package: hypcap 2016/05/16 v1.12 Adjusting the anchors of captions (HO)
|
||||
)
|
||||
(sphinxmessages.sty
|
||||
Package: sphinxmessages 2019/01/04 v2.0 Localized LaTeX macros (Sphinx team)
|
||||
)
|
||||
\@indexfile=\write4
|
||||
\openout4 = `imstk-unity.idx'.
|
||||
|
||||
|
||||
Writing index file imstk-unity.idx
|
||||
LaTeX Font Info: Trying to load font information for T1+qtm on input line 70
|
||||
.
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/tex-gyre\t1qtm.fd
|
||||
File: t1qtm.fd 2009/09/25 v1.2 font definition file for T1/qtm
|
||||
)
|
||||
(C:\Program Files\MiKTeX\tex/latex/l3backend\l3backend-dvips.def
|
||||
File: l3backend-dvips.def 2022-04-20 L3 backend support: dvips
|
||||
\l__pdf_internal_box=\box118
|
||||
\g__pdf_backend_object_int=\count314
|
||||
\l__pdf_backend_content_box=\box119
|
||||
\l__pdf_backend_model_box=\box120
|
||||
\g__pdf_backend_annotation_int=\count315
|
||||
\g__pdf_backend_link_int=\count316
|
||||
\g__pdf_backend_link_sf_int=\count317
|
||||
)
|
||||
(imstk-unity.aux)
|
||||
\openout1 = `imstk-unity.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 70.
|
||||
LaTeX Font Info: ... okay on input line 70.
|
||||
\c@literalblock=\count318
|
||||
|
||||
*geometry* driver: auto-detecting
|
||||
*geometry* detected driver: dvips
|
||||
*geometry* verbose mode - [ preamble ] result:
|
||||
* driver: dvips
|
||||
* 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)
|
||||
|
||||
Package hyperref Info: Link coloring ON on input line 70.
|
||||
(imstk-unity.out) (imstk-unity.out)
|
||||
\@outlinefile=\write5
|
||||
\openout5 = `imstk-unity.out'.
|
||||
|
||||
LaTeX Font Info: Trying to load font information for T1+qhv on input line 78
|
||||
.
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/tex-gyre\t1qhv.fd
|
||||
File: t1qhv.fd 2009/09/25 v1.2 font definition file for T1/qhv
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+msa on input line 78.
|
||||
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsfonts\umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+msb on input line 78.
|
||||
|
||||
|
||||
(C:\Program Files\MiKTeX\tex/latex/amsfonts\umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
) (imstk-unity.toc
|
||||
LaTeX Font Info: Trying to load font information for T1+txtt on input line 1
|
||||
0.
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/txfonts\t1txtt.fd
|
||||
File: t1txtt.fd 2000/12/15 v3.1
|
||||
))
|
||||
\tf@toc=\write6
|
||||
\openout6 = `imstk-unity.toc'.
|
||||
|
||||
|
||||
! LaTeX Error: Cannot determine size of graphic in imstk-logo.png (no BoundingB
|
||||
ox).
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.83 ...5in,height=1.28515625in]{{imstk-logo}.png}
|
||||
|
||||
?
|
||||
|
||||
! LaTeX Error: Cannot determine size of graphic in imstk-logo.png (no BoundingB
|
||||
ox).
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.83 ...5in,height=1.28515625in]{{imstk-logo}.png}
|
||||
|
||||
?
|
||||
File: imstk-logo.png Graphic file (type eps)
|
||||
<imstk-logo.png> [1
|
||||
|
||||
]
|
||||
|
||||
! LaTeX Error: Cannot determine size of graphic in iMSTKUnityArchitecture1.png
|
||||
(no BoundingBox).
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.115 ...nxpxdimen]{{iMSTKUnityArchitecture1}.png}
|
||||
|
||||
?
|
||||
|
||||
! LaTeX Error: Cannot determine size of graphic in iMSTKUnityArchitecture1.png
|
||||
(no BoundingBox).
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.115 ...nxpxdimen]{{iMSTKUnityArchitecture1}.png}
|
||||
|
||||
?
|
||||
File: iMSTKUnityArchitecture1.png Graphic file (type eps)
|
||||
<iMSTKUnityArchitecture1.png>
|
||||
LaTeX Font Info: Trying to load font information for TS1+qtm on input line 1
|
||||
28.
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/tex-gyre\ts1qtm.fd
|
||||
File: ts1qtm.fd 2009/09/25 v1.2 font definition file for TS1/qtm
|
||||
) [2] [3]
|
||||
LaTeX Font Info: Font shape `T1/txtt/b/n' in size <10> not available
|
||||
(Font) Font shape `T1/txtt/bx/n' tried instead on input line 173.
|
||||
LaTeX Font Info: Trying to load font information for TS1+txtt on input line
|
||||
1.
|
||||
|
||||
(C:\Users\harald.scheirich\AppData\Roaming\MiKTeX\tex/latex/txfonts\ts1txtt.fd
|
||||
File: ts1txtt.fd 2000/12/15 v3.1
|
||||
)
|
||||
LaTeX Font Info: Font shape `TS1/txtt/b/n' in size <10> not available
|
||||
(Font) Font shape `TS1/txtt/bx/n' tried instead on input line 1.
|
||||
[4]
|
||||
LaTeX Font Info: Font shape `T1/txtt/b/n' in size <12> not available
|
||||
(Font) Font shape `T1/txtt/bx/n' tried instead on input line 232.
|
||||
[5] [6] [7] [8]
|
||||
|
||||
! LaTeX Error: Cannot determine size of graphic in kitware-logo.jpg (no Boundin
|
||||
gBox).
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.545 ...egraphics[height=1in]{{kitware-logo}.jpg}
|
||||
|
||||
?
|
||||
|
||||
! LaTeX Error: Cannot determine size of graphic in kitware-logo.jpg (no Boundin
|
||||
gBox).
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.545 ...egraphics[height=1in]{{kitware-logo}.jpg}
|
||||
|
||||
?
|
||||
File: kitware-logo.jpg Graphic file (type eps)
|
||||
<kitware-logo.jpg>
|
||||
No file imstk-unity.ind.
|
||||
[9] (imstk-unity.aux)
|
||||
|
||||
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
|
||||
|
||||
Package rerunfilecheck Info: File `imstk-unity.out' has not changed.
|
||||
(rerunfilecheck) Checksum: FE5B8001C9E1212AFC07F25CE0C5428F;4118.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
14228 strings out of 478615
|
||||
232879 string characters out of 2852931
|
||||
564989 words of memory out of 3000000
|
||||
32063 multiletter control sequences out of 15000+600000
|
||||
516325 words of font info for 63 fonts, out of 8000000 for 9000
|
||||
1142 hyphenation exceptions out of 8191
|
||||
70i,11n,76p,10208b,439s stack positions out of 10000i,1000n,20000p,200000b,80000s
|
||||
|
||||
Output written on imstk-unity.dvi (9 pages, 65940 bytes).
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab96b1e8accd06741bd696ce1cedd65b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,26 @@
|
||||
\BOOKMARK [1][-]{section.1}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 1
|
||||
\BOOKMARK [2][-]{subsection.1.1}{\376\377\000O\000v\000e\000r\000v\000i\000e\000w}{section.1}% 2
|
||||
\BOOKMARK [2][-]{subsection.1.2}{\376\377\000P\000r\000o\000j\000e\000c\000t\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e}{section.1}% 3
|
||||
\BOOKMARK [1][-]{section.2}{\376\377\000S\000e\000t\000u\000p\000\040\000f\000o\000r\000\040\000D\000e\000v\000e\000l\000o\000p\000m\000e\000n\000t}{}% 4
|
||||
\BOOKMARK [1][-]{section.3}{\376\377\000D\000e\000v\000i\000c\000e\000s}{}% 5
|
||||
\BOOKMARK [2][-]{subsection.3.1}{\376\377\000D\000e\000b\000u\000g\000g\000i\000n\000g}{section.3}% 6
|
||||
\BOOKMARK [1][-]{section.4}{\376\377\000U\000s\000a\000g\000e}{}% 7
|
||||
\BOOKMARK [2][-]{subsection.4.1}{\376\377\000I\000m\000p\000o\000r\000t\000e\000r\000s}{section.4}% 8
|
||||
\BOOKMARK [2][-]{subsection.4.2}{\376\377\000S\000i\000m\000u\000l\000a\000t\000i\000o\000n\000M\000a\000n\000a\000g\000e\000r}{section.4}% 9
|
||||
\BOOKMARK [2][-]{subsection.4.3}{\376\377\000i\000M\000S\000T\000K\000B\000e\000h\000a\000v\000i\000o\000u\000r}{section.4}% 10
|
||||
\BOOKMARK [2][-]{subsection.4.4}{\376\377\000G\000e\000o\000m\000e\000t\000r\000y\000F\000i\000l\000t\000e\000r}{section.4}% 11
|
||||
\BOOKMARK [2][-]{subsection.4.5}{\376\377\000E\000d\000i\000t\000o\000r}{section.4}% 12
|
||||
\BOOKMARK [1][-]{section.5}{\376\377\000R\000e\000l\000e\000a\000s\000e\000s}{}% 13
|
||||
\BOOKMARK [1][-]{section.6}{\376\377\000A\000p\000a\000c\000h\000e\000\040\000L\000i\000c\000e\000n\000s\000e}{}% 14
|
||||
\BOOKMARK [2][-]{subsection.6.1}{\376\377\000T\000E\000R\000M\000S\000\040\000A\000N\000D\000\040\000C\000O\000N\000D\000I\000T\000I\000O\000N\000S\000\040\000F\000O\000R\000\040\000U\000S\000E\000,\000\040\000R\000E\000P\000R\000O\000D\000U\000C\000T\000I\000O\000N\000,\000\040\000A\000N\000D\000\040\000D\000I\000S\000T\000R\000I\000B\000U\000T\000I\000O\000N}{section.6}% 15
|
||||
\BOOKMARK [2][-]{subsection.6.2}{\376\377\0001\000.\000\040\000D\000e\000f\000i\000n\000i\000t\000i\000o\000n\000s\000.}{section.6}% 16
|
||||
\BOOKMARK [2][-]{subsection.6.3}{\376\377\0002\000.\000\040\000G\000r\000a\000n\000t\000\040\000o\000f\000\040\000C\000o\000p\000y\000r\000i\000g\000h\000t\000\040\000L\000i\000c\000e\000n\000s\000e\000.}{section.6}% 17
|
||||
\BOOKMARK [2][-]{subsection.6.4}{\376\377\0003\000.\000\040\000G\000r\000a\000n\000t\000\040\000o\000f\000\040\000P\000a\000t\000e\000n\000t\000\040\000L\000i\000c\000e\000n\000s\000e\000.}{section.6}% 18
|
||||
\BOOKMARK [2][-]{subsection.6.5}{\376\377\0004\000.\000\040\000R\000e\000d\000i\000s\000t\000r\000i\000b\000u\000t\000i\000o\000n\000.}{section.6}% 19
|
||||
\BOOKMARK [2][-]{subsection.6.6}{\376\377\0005\000.\000\040\000S\000u\000b\000m\000i\000s\000s\000i\000o\000n\000\040\000o\000f\000\040\000C\000o\000n\000t\000r\000i\000b\000u\000t\000i\000o\000n\000s\000.}{section.6}% 20
|
||||
\BOOKMARK [2][-]{subsection.6.7}{\376\377\0006\000.\000\040\000T\000r\000a\000d\000e\000m\000a\000r\000k\000s\000.}{section.6}% 21
|
||||
\BOOKMARK [2][-]{subsection.6.8}{\376\377\0007\000.\000\040\000D\000i\000s\000c\000l\000a\000i\000m\000e\000r\000\040\000o\000f\000\040\000W\000a\000r\000r\000a\000n\000t\000y\000.}{section.6}% 22
|
||||
\BOOKMARK [2][-]{subsection.6.9}{\376\377\0008\000.\000\040\000L\000i\000m\000i\000t\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000L\000i\000a\000b\000i\000l\000i\000t\000y\000.}{section.6}% 23
|
||||
\BOOKMARK [2][-]{subsection.6.10}{\376\377\0009\000.\000\040\000A\000c\000c\000e\000p\000t\000i\000n\000g\000\040\000W\000a\000r\000r\000a\000n\000t\000y\000\040\000o\000r\000\040\000A\000d\000d\000i\000t\000i\000o\000n\000a\000l\000\040\000L\000i\000a\000b\000i\000l\000i\000t\000y\000.}{section.6}% 24
|
||||
\BOOKMARK [2][-]{subsection.6.11}{\376\377\000A\000P\000P\000E\000N\000D\000I\000X\000:\000\040\000H\000o\000w\000\040\000t\000o\000\040\000a\000p\000p\000l\000y\000\040\000t\000h\000e\000\040\000A\000p\000a\000c\000h\000e\000\040\000L\000i\000c\000e\000n\000s\000e\000\040\000t\000o\000\040\000y\000o\000u\000r\000\040\000w\000o\000r\000k}{section.6}% 25
|
||||
\BOOKMARK [1][-]{section.7}{\376\377\000C\000o\000n\000t\000a\000c\000t}{}% 26
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 17adb0e27e31e264fa4e2ff1dd9fe157
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,551 @@
|
||||
%% Generated by Sphinx.
|
||||
\def\sphinxdocclass{article}
|
||||
\documentclass[letterpaper,10pt,english]{sphinxhowto}
|
||||
\ifdefined\pdfpxdimen
|
||||
\let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen
|
||||
\fi \sphinxpxdimen=.75bp\relax
|
||||
\ifdefined\pdfimageresolution
|
||||
\pdfimageresolution= \numexpr \dimexpr1in\relax/\sphinxpxdimen\relax
|
||||
\fi
|
||||
%% let collapsible pdf bookmarks panel have high depth per default
|
||||
\PassOptionsToPackage{bookmarksdepth=5}{hyperref}
|
||||
|
||||
\PassOptionsToPackage{warn}{textcomp}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\ifdefined\DeclareUnicodeCharacter
|
||||
% support both utf8 and utf8x syntaxes
|
||||
\ifdefined\DeclareUnicodeCharacterAsOptional
|
||||
\def\sphinxDUC#1{\DeclareUnicodeCharacter{"#1}}
|
||||
\else
|
||||
\let\sphinxDUC\DeclareUnicodeCharacter
|
||||
\fi
|
||||
\sphinxDUC{00A0}{\nobreakspace}
|
||||
\sphinxDUC{2500}{\sphinxunichar{2500}}
|
||||
\sphinxDUC{2502}{\sphinxunichar{2502}}
|
||||
\sphinxDUC{2514}{\sphinxunichar{2514}}
|
||||
\sphinxDUC{251C}{\sphinxunichar{251C}}
|
||||
\sphinxDUC{2572}{\textbackslash}
|
||||
\fi
|
||||
\usepackage{cmap}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{amsmath,amssymb,amstext}
|
||||
\usepackage{babel}
|
||||
|
||||
|
||||
|
||||
\usepackage{tgtermes}
|
||||
\usepackage{tgheros}
|
||||
\renewcommand{\ttdefault}{txtt}
|
||||
|
||||
|
||||
|
||||
\usepackage[Bjarne]{fncychap}
|
||||
\usepackage{sphinx}
|
||||
|
||||
\fvset{fontsize=auto}
|
||||
\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{\contentsname}{User Guide}}
|
||||
|
||||
\usepackage{sphinxmessages}
|
||||
\setcounter{tocdepth}{2}
|
||||
|
||||
|
||||
|
||||
\title{imstk-unity Documentation}
|
||||
\date{Jun 09, 2022}
|
||||
\release{0.1.0}
|
||||
\author{Kitware}
|
||||
\newcommand{\sphinxlogo}{\vbox{}}
|
||||
\renewcommand{\releasename}{Release}
|
||||
\makeindex
|
||||
\begin{document}
|
||||
|
||||
\ifdefined\shorthandoff
|
||||
\ifnum\catcode`\=\string=\active\shorthandoff{=}\fi
|
||||
\ifnum\catcode`\"=\active\shorthandoff{"}\fi
|
||||
\fi
|
||||
|
||||
\pagestyle{empty}
|
||||
\sphinxmaketitle
|
||||
\pagestyle{plain}
|
||||
\sphinxtableofcontents
|
||||
\pagestyle{normal}
|
||||
\phantomsection\label{\detokenize{index::doc}}
|
||||
\begin{center}\sphinxincludegraphics[width=3.5in,height=1.28515625in]{{imstk-logo}.png}
|
||||
\end{center}
|
||||
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxhref{https://www.imstk.org/}{iMSTK} is a free \& open source C++ toolkit for prototyping of interactive multi\sphinxhyphen{}modal surgical simulations. The iMSTK\sphinxhyphen{}Unity asset gives you access to its’ capabilities through the Unity authoring interface. While this asset is still under development you can already exercise a variety of parts of iMSTK inside of Unity. This guide will help you get acquainted with the architecture and workings of the plugin.
|
||||
|
||||
\sphinxstepscope
|
||||
|
||||
\begin{center}\sphinxstylestrong{iMSTK\sphinxhyphen{}Unity}
|
||||
\end{center}
|
||||
\begin{center}\sphinxstyleemphasis{User Documentation}
|
||||
\end{center}
|
||||
|
||||
\section{Introduction}
|
||||
\label{\detokenize{documentation:introduction}}\label{\detokenize{documentation::doc}}
|
||||
\sphinxAtStartPar
|
||||
This document describes the iMSTK\sphinxhyphen{}Unity interface as well as how to build and develop it.
|
||||
|
||||
|
||||
\subsection{Overview}
|
||||
\label{\detokenize{documentation:overview}}
|
||||
\sphinxAtStartPar
|
||||
iMSTK is a free \& open source C++ toolkit for prototyping of interactive multi\sphinxhyphen{}modal surgical simulations. The iMSTK\sphinxhyphen{}Unity asset provides classes that allow the use of iMSTK features inside of unity, those are amongst others various rigid and deformable models, collision detection and response, geometric importers and filters.
|
||||
|
||||
\sphinxAtStartPar
|
||||
The iMSTK\sphinxhyphen{}Unity classes utilizes a C\# interface of iMSTK that is generated by using the \sphinxhref{https://www.swig.org/}{SWIG} tool. This interface in effect is wrapped around most C++ functions and forwards its call to the original C++ code. This allows you to use iMSTK in C\# much the almost the same way as you would in C++.
|
||||
\begin{quote}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
|
||||
\noindent\sphinxincludegraphics[width=600\sphinxpxdimen]{{iMSTKUnityArchitecture1}.png}
|
||||
\end{figure}
|
||||
\end{quote}
|
||||
|
||||
\sphinxAtStartPar
|
||||
The best way to reach us is by using the issue tracker
|
||||
|
||||
|
||||
\subsection{Project Structure}
|
||||
\label{\detokenize{documentation:project-structure}}
|
||||
\sphinxAtStartPar
|
||||
The files of the asset are split in the following directories:
|
||||
\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{iMSTK/Scripts}: This directory is for the runtime scripts of the plugin.
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{iMSTK/Scripts/Editor}: This directory is for the editor scripts of the plugin. These scripts implement custom editor functionality. Editor scripts may use runtime scripts but won’t be included in the player, which means you should not use functions from these in your own scripts
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{iMSTK/Resources}: This directory contains resources required during runtime.
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{iMSTK/Editor/Resources}: This directory contains resources required in the editor (such as style sheets or UI markup).
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{iMSTK/Plugins}: This directory is for libraries (dlls/so) that Unity needs to load.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\sphinxAtStartPar
|
||||
Directories needed for the project but not relevant to the plugin:
|
||||
\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{iMSTK/Models, Materials, \& Textures}: These directories are for various assets used by the Demo. They are not part of the plugin.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\sphinxAtStartPar
|
||||
The asset on the store may not contain the latest version of iMSTK\sphinxhyphen{}Unity, if you want to be up to date you can check out the sources \sphinxhref{https://gitlab.kitware.com/iMSTK/iMSTK-unity}{from gitlab}. As the binary files for iMSTK aren’t included in the repository, you will also have to build iMSTK yourself when you go this route.
|
||||
|
||||
|
||||
\section{Setup for Development}
|
||||
\label{\detokenize{documentation:setup-for-development}}
|
||||
\sphinxAtStartPar
|
||||
When checking out iMSTK\sphinxhyphen{}Unity from gitlab you will first need to build iMSTK. iMSTK uses CMake for its build system. iMSTK is a superbuild meaning it builds, includes, and links to all of its dependencies. There is no need to go find them. To build iMSTK clone \sphinxhref{https://gitlab.kitware.com/iMSTK/iMSTK}{the iMSTK repository} and build it using cmake. Turn on the \sphinxcode{\sphinxupquote{IMSTK\_BUILD\_FOR\_UNITY}} cmake switch. This will reduce the number of dependencies that are being built. It will also enable the generation of “.cs” files as well as “.dlls”/”.so” files in your install directory that are needed by the “.cs” code. These will be used in Unity. Optionally enable \sphinxcode{\sphinxupquote{iMSTK\_USE\_VRPN}} and/or \sphinxcode{\sphinxupquote{iMSTK\_USE\_OpenHaptics}} for device support.
|
||||
|
||||
\sphinxAtStartPar
|
||||
You can install the binaries two different ways, for both methods you need to know the directory in which iMSTK was installed. If you didn’t change anything that directory will be called \sphinxtitleref{install} and resides inside the directory that you defined in cmake to build imstk, e.g. \sphinxtitleref{C:Projectsimstkbuildinstall} :
|
||||
\begin{itemize}
|
||||
\item {} \begin{description}
|
||||
\sphinxlineitem{Using \sphinxcode{\sphinxupquote{\textasciigrave{}InstallImstk.bat\textasciigrave{}}} from the asset directory the format is}
|
||||
\sphinxAtStartPar
|
||||
\sphinxcode{\sphinxupquote{InstallImstk.bat \textless{}path to imstk/install\textgreater{}}}
|
||||
|
||||
\end{description}
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
Alternatively you can enable \sphinxtitleref{Developer Mode} for iMSTK inside of Unity. This option ca be found in “Edit\sphinxhyphen{}\textgreater{}Project Settings\sphinxhyphen{}\textgreater{}iMSTK Settings”. When turned on, you will prompted to install iMSTK whenever you start Unity. After turned on you may restart Unity, when it prompts you, select yes and provide it your iMSTK install directory, located in \textless{}iMSTK build directory\textgreater{}/install. All the necessary files will be copied. If you don’t want to be asked to reinstall iMSTK toggle this option off again.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\sphinxAtStartPar
|
||||
If you make changes in iMSTK you must reinstall it to Unity.
|
||||
|
||||
\sphinxAtStartPar
|
||||
Note: There is a ‘Force Install’ button to install iMSTK into Unity at the instant it is clicked. This may no always work depending on if an iMSTK script (that utilizes a given dll) has run in the editor. In that case those dll’s cannot be unloaded from Unity.
|
||||
|
||||
\sphinxAtStartPar
|
||||
Note: Make sure Unity is not running. Sometimes it can close but still be running in the background prevent installation.
|
||||
|
||||
|
||||
\section{Devices}
|
||||
\label{\detokenize{documentation:devices}}
|
||||
\sphinxAtStartPar
|
||||
The asset available from the asset store does not have \sphinxhref{https://support.3dsystems.com/s/article/OpenHaptics-for-Windows-Developer-Edition-v35?language=en\_US}{OpenHaptics} or \sphinxhref{https://github.com/vrpn/vrpn}{VRPN} enabled, to use external devices you will have to build iMSTK for yourself. After enabling enable
|
||||
\sphinxcode{\sphinxupquote{iMSTK\_USE\_VRPN}} or \sphinxcode{\sphinxupquote{iMSTK\_USE\_OpenHaptics}} respectively. This will create a version of iMSTK with device support enabled. When the build is done install iMSTK into the Unity Asset as described above.
|
||||
|
||||
|
||||
\subsection{Debugging}
|
||||
\label{\detokenize{documentation:debugging}}
|
||||
\sphinxAtStartPar
|
||||
Debugging may be done in visual studios, even on the native side. You must attached the debugger as you would to an external process. With iMSTK open in visual studios, click debug\sphinxhyphen{}\textgreater{}attach to process. Select the unity executable and make sure you’re set on native debugging.
|
||||
|
||||
|
||||
\section{Usage}
|
||||
\label{\detokenize{documentation:usage}}
|
||||
\sphinxAtStartPar
|
||||
For minimal usage of iMSTK\sphinxhyphen{}Unity, two things must be added to a Unity Scene.
|
||||
\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
A \sphinxcode{\sphinxupquote{GameObject}} with a \sphinxcode{\sphinxupquote{SimulationManager}} attached to it
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
A \sphinxcode{\sphinxupquote{GameObject}} with a Model attached to it.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\sphinxAtStartPar
|
||||
Commonly a PhysicsGeometry is also needed on the Model \sphinxcode{\sphinxupquote{GameObject}}.
|
||||
|
||||
|
||||
\subsection{Importers}
|
||||
\label{\detokenize{documentation:importers}}
|
||||
\sphinxAtStartPar
|
||||
iMSTK\sphinxhyphen{}Unity provides a custom Unity importer to import geometry using iMSTK. This may import point, line, surface, tetrahedral, \& hexahedral meshes (vtk, vtu, stl, ply, veg, …). If the mesh imported is a point, line, or surface mesh then it will be imported as a Unity Mesh object. Anything else not supported by Unity, is loaded as an iMSTKUnity Geometry Object. When a volumetric mesh (such as a tetrahedral mesh) is imported the accompanying surface is extracted and provided as an additional asset.
|
||||
|
||||
|
||||
\subsection{\sphinxstyleliteralintitle{\sphinxupquote{SimulationManager}}}
|
||||
\label{\detokenize{documentation:simulationmanager}}
|
||||
\sphinxAtStartPar
|
||||
\sphinxcode{\sphinxupquote{SimulationManager}} is a component responsible for managing the simulation. There may only exist one. It also controls the construction, initialization, and destruction of iMSTKBehaviour’s to ensure execution ordering: Simulation Manager created \sphinxhyphen{}\textgreater{} iMSTK objects created and internally initialized \sphinxhyphen{}\textgreater{} iMSTK objects externally initialized \sphinxhyphen{}\textgreater{} \sphinxcode{\sphinxupquote{SimulationManager}} Start \sphinxhyphen{}\textgreater{} Updates \sphinxhyphen{}\textgreater{} iMSTK objects cleaned up \sphinxhyphen{}\textgreater{} \sphinxcode{\sphinxupquote{SimulationManager}} cleaned up.
|
||||
|
||||
\sphinxAtStartPar
|
||||
This component is required to be in the scene for simulations to run. It is created before any other iMSTK components on any \sphinxcode{\sphinxupquote{GameObject}}. It implements the start, stop, pause, and other global scene related tasks.
|
||||
|
||||
|
||||
\subsection{\sphinxstyleliteralintitle{\sphinxupquote{iMSTKBehaviour}}}
|
||||
\label{\detokenize{documentation:imstkbehaviour}}
|
||||
\sphinxAtStartPar
|
||||
An extension of MonoBehaviour to provide different callbacks for special construction, initialization, and destruction ordering.
|
||||
|
||||
|
||||
\subsection{\sphinxstyleliteralintitle{\sphinxupquote{GeometryFilter}}}
|
||||
\label{\detokenize{documentation:geometryfilter}}
|
||||
\sphinxAtStartPar
|
||||
Similar to a MeshFilter in Unity. It provides an input and output geometry. It may take in any iMSTK geometry, as well as a Unity Mesh (one can also drag/drop a MeshFilter to it). These are instances of geometries used in all of iMSTK unity scripts.
|
||||
|
||||
|
||||
\subsection{Editor}
|
||||
\label{\detokenize{documentation:editor}}
|
||||
\sphinxAtStartPar
|
||||
iMSTK\sphinxhyphen{}Unity provides extensions to the Unity editor. These extensions include:
|
||||
\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
Custom inspectors for the models and geometry components.
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
A global settings menu.
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
Menu Items for quick creation of GameObject with iMSTK items already setup.
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
Editors/windows for various operations
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\sphinxstepscope
|
||||
|
||||
|
||||
\section{Releases}
|
||||
\label{\detokenize{releases:releases}}\label{\detokenize{releases::doc}}
|
||||
\sphinxAtStartPar
|
||||
TBD
|
||||
|
||||
\sphinxstepscope
|
||||
|
||||
|
||||
\section{Apache License}
|
||||
\label{\detokenize{license:apache-license}}\label{\detokenize{license::doc}}\begin{quote}\begin{description}
|
||||
\sphinxlineitem{Version}
|
||||
\sphinxAtStartPar
|
||||
2.0
|
||||
|
||||
\sphinxlineitem{Date}
|
||||
\sphinxAtStartPar
|
||||
January 2004
|
||||
|
||||
\sphinxlineitem{URL}
|
||||
\sphinxAtStartPar
|
||||
\sphinxurl{http://www.apache.org/licenses/}
|
||||
|
||||
\end{description}\end{quote}
|
||||
|
||||
|
||||
\subsection{TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION}
|
||||
\label{\detokenize{license:terms-and-conditions-for-use-reproduction-and-distribution}}
|
||||
|
||||
\subsection{1. Definitions.}
|
||||
\label{\detokenize{license:definitions}}
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“License”} shall mean the terms and conditions for use, reproduction, and
|
||||
distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“Licensor”} shall mean the copyright owner or entity authorized by the
|
||||
copyright owner that is granting the License.
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“Legal Entity”} shall mean the union of the acting entity and all other
|
||||
entities that control, are controlled by, or are under common control with that
|
||||
entity. For the purposes of this definition, “control” means \sphinxstyleemphasis{(i)} the power,
|
||||
direct or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or \sphinxstyleemphasis{(ii)} ownership of fifty percent (50\%) or
|
||||
more of the outstanding shares, or \sphinxstyleemphasis{(iii)} beneficial ownership of such entity.
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“You”} (or \sphinxstylestrong{“Your”}) shall mean an individual or Legal Entity exercising
|
||||
permissions granted by this License.
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“Source”} form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation source, and
|
||||
configuration files.
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“Object”} form shall mean any form resulting from mechanical transformation
|
||||
or translation of a Source form, including but not limited to compiled object
|
||||
code, generated documentation, and conversions to other media types.
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“Work”} shall mean the work of authorship, whether in Source or Object form,
|
||||
made available under the License, as indicated by a copyright notice that is
|
||||
included in or attached to the work (an example is provided in the Appendix
|
||||
below).
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“Derivative Works”} shall mean any work, whether in Source or Object form,
|
||||
that is based on (or derived from) the Work and for which the editorial
|
||||
revisions, annotations, elaborations, or other modifications represent, as a
|
||||
whole, an original work of authorship. For the purposes of this License,
|
||||
Derivative Works shall not include works that remain separable from, or merely
|
||||
link (or bind by name) to the interfaces of, the Work and Derivative Works
|
||||
thereof.
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“Contribution”} shall mean any work of authorship, including the original
|
||||
version of the Work and any modifications or additions to that Work or
|
||||
Derivative Works thereof, that is intentionally submitted to Licensor for
|
||||
inclusion in the Work by the copyright owner or by an individual or Legal
|
||||
Entity authorized to submit on behalf of the copyright owner. For the purposes
|
||||
of this definition, “submitted” means any form of electronic, verbal, or
|
||||
written communication sent to the Licensor or its representatives, including
|
||||
but not limited to communication on electronic mailing lists, source code
|
||||
control systems, and issue tracking systems that are managed by, or on behalf
|
||||
of, the Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise designated in
|
||||
writing by the copyright owner as “Not a Contribution.”
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{“Contributor”} shall mean Licensor and any individual or Legal Entity on
|
||||
behalf of whom a Contribution has been received by Licensor and subsequently
|
||||
incorporated within the Work.
|
||||
|
||||
|
||||
\subsection{2. Grant of Copyright License.}
|
||||
\label{\detokenize{license:grant-of-copyright-license}}
|
||||
\sphinxAtStartPar
|
||||
Subject to the terms and conditions of this License, each Contributor hereby
|
||||
grants to You a perpetual, worldwide, non\sphinxhyphen{}exclusive, no\sphinxhyphen{}charge, royalty\sphinxhyphen{}free,
|
||||
irrevocable copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the Work and
|
||||
such Derivative Works in Source or Object form.
|
||||
|
||||
|
||||
\subsection{3. Grant of Patent License.}
|
||||
\label{\detokenize{license:grant-of-patent-license}}
|
||||
\sphinxAtStartPar
|
||||
Subject to the terms and conditions of this License, each Contributor hereby
|
||||
grants to You a perpetual, worldwide, non\sphinxhyphen{}exclusive, no\sphinxhyphen{}charge, royalty\sphinxhyphen{}free,
|
||||
irrevocable (except as stated in this section) patent license to make, have
|
||||
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
|
||||
such license applies only to those patent claims licensable by such Contributor
|
||||
that are necessarily infringed by their Contribution(s) alone or by combination
|
||||
of their Contribution(s) with the Work to which such Contribution(s) was
|
||||
submitted. If You institute patent litigation against any entity (including a
|
||||
cross\sphinxhyphen{}claim or counterclaim in a lawsuit) alleging that the Work or a
|
||||
Contribution incorporated within the Work constitutes direct or contributory
|
||||
patent infringement, then any patent licenses granted to You under this License
|
||||
for that Work shall terminate as of the date such litigation is filed.
|
||||
|
||||
|
||||
\subsection{4. Redistribution.}
|
||||
\label{\detokenize{license:redistribution}}
|
||||
\sphinxAtStartPar
|
||||
You may reproduce and distribute copies of the Work or Derivative Works thereof
|
||||
in any medium, with or without modifications, and in Source or Object form,
|
||||
provided that You meet the following conditions:
|
||||
\begin{itemize}
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
You must give any other recipients of the Work or Derivative Works a copy of
|
||||
this License; and
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
You must cause any modified files to carry prominent notices stating that You
|
||||
changed the files; and
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
You must retain, in the Source form of any Derivative Works that You
|
||||
distribute, all copyright, patent, trademark, and attribution notices from
|
||||
the Source form of the Work, excluding those notices that do not pertain to
|
||||
any part of the Derivative Works; and
|
||||
|
||||
\item {}
|
||||
\sphinxAtStartPar
|
||||
If the Work includes a \sphinxcode{\sphinxupquote{"NOTICE"}} text file as part of its distribution,
|
||||
then any Derivative Works that You distribute must include a readable copy of
|
||||
the attribution notices contained within such \sphinxcode{\sphinxupquote{NOTICE}} file, excluding
|
||||
those notices that do not pertain to any part of the Derivative Works, in at
|
||||
least one of the following places: within a \sphinxcode{\sphinxupquote{NOTICE}} text file distributed
|
||||
as part of the Derivative Works; within the Source form or documentation, if
|
||||
provided along with the Derivative Works; or, within a display generated by
|
||||
the Derivative Works, if and wherever such third\sphinxhyphen{}party notices normally
|
||||
appear. The contents of the \sphinxcode{\sphinxupquote{NOTICE}} file are for informational purposes
|
||||
only and do not modify the License. You may add Your own attribution notices
|
||||
within Derivative Works that You distribute, alongside or as an addendum to
|
||||
the \sphinxcode{\sphinxupquote{NOTICE}} text from the Work, provided that such additional attribution
|
||||
notices cannot be construed as modifying the License. You may add Your own
|
||||
copyright statement to Your modifications and may provide additional or
|
||||
different license terms and conditions for use, reproduction, or distribution
|
||||
of Your modifications, or for any such Derivative Works as a whole, provided
|
||||
Your use, reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\subsection{5. Submission of Contributions.}
|
||||
\label{\detokenize{license:submission-of-contributions}}
|
||||
\sphinxAtStartPar
|
||||
Unless You explicitly state otherwise, any Contribution intentionally submitted
|
||||
for inclusion in the Work by You to the Licensor shall be under the terms and
|
||||
conditions of this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify the terms
|
||||
of any separate license agreement you may have executed with Licensor regarding
|
||||
such Contributions.
|
||||
|
||||
|
||||
\subsection{6. Trademarks.}
|
||||
\label{\detokenize{license:trademarks}}
|
||||
\sphinxAtStartPar
|
||||
This License does not grant permission to use the trade names, trademarks,
|
||||
service marks, or product names of the Licensor, except as required for
|
||||
reasonable and customary use in describing the origin of the Work and
|
||||
reproducing the content of the \sphinxcode{\sphinxupquote{NOTICE}} file.
|
||||
|
||||
|
||||
\subsection{7. Disclaimer of Warranty.}
|
||||
\label{\detokenize{license:disclaimer-of-warranty}}
|
||||
\sphinxAtStartPar
|
||||
Unless required by applicable law or agreed to in writing, Licensor provides
|
||||
the Work (and each Contributor provides its Contributions) on an \sphinxstylestrong{“AS IS”
|
||||
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND}, either express or
|
||||
implied, including, without limitation, any warranties or conditions of
|
||||
\sphinxstylestrong{TITLE, NON\sphinxhyphen{}INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR
|
||||
PURPOSE}. You are solely responsible for determining the appropriateness of
|
||||
using or redistributing the Work and assume any risks associated with Your
|
||||
exercise of permissions under this License.
|
||||
|
||||
|
||||
\subsection{8. Limitation of Liability.}
|
||||
\label{\detokenize{license:limitation-of-liability}}
|
||||
\sphinxAtStartPar
|
||||
In no event and under no legal theory, whether in tort (including negligence),
|
||||
contract, or otherwise, unless required by applicable law (such as deliberate
|
||||
and grossly negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special, incidental,
|
||||
or consequential damages of any character arising as a result of this License
|
||||
or out of the use or inability to use the Work (including but not limited to
|
||||
damages for loss of goodwill, work stoppage, computer failure or malfunction,
|
||||
or any and all other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
|
||||
\subsection{9. Accepting Warranty or Additional Liability.}
|
||||
\label{\detokenize{license:accepting-warranty-or-additional-liability}}
|
||||
\sphinxAtStartPar
|
||||
While redistributing the Work or Derivative Works thereof, You may choose to
|
||||
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
|
||||
other liability obligations and/or rights consistent with this License.
|
||||
However, in accepting such obligations, You may act only on Your own behalf and
|
||||
on Your sole responsibility, not on behalf of any other Contributor, and only
|
||||
if You agree to indemnify, defend, and hold each Contributor harmless for any
|
||||
liability incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
\sphinxAtStartPar
|
||||
\sphinxstylestrong{END OF TERMS AND CONDITIONS}
|
||||
|
||||
|
||||
\subsection{APPENDIX: How to apply the Apache License to your work}
|
||||
\label{\detokenize{license:appendix-how-to-apply-the-apache-license-to-your-work}}
|
||||
\sphinxAtStartPar
|
||||
To apply the Apache License to your work, attach the following boilerplate
|
||||
notice, with the fields enclosed by brackets “{[}{]}” replaced with your own
|
||||
identifying information. (Don’t include the brackets!) The text should be
|
||||
enclosed in the appropriate comment syntax for the file format. We also
|
||||
recommend that a file or class name and description of purpose be included on
|
||||
the same “printed page” as the copyright notice for easier identification within
|
||||
third\sphinxhyphen{}party archives.
|
||||
|
||||
\begin{sphinxVerbatim}[commandchars=\\\{\}]
|
||||
\PYG{n}{Copyright} \PYG{l+m+mi}{2020} \PYG{n}{iMSTK}\PYG{o}{\PYGZhy{}}\PYG{n}{Unity}
|
||||
|
||||
\PYG{n}{Licensed} \PYG{n}{under} \PYG{n}{the} \PYG{n}{Apache} \PYG{n}{License}\PYG{p}{,} \PYG{n}{Version} \PYG{l+m+mf}{2.0} \PYG{p}{(}\PYG{n}{the} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{License}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;}
|
||||
\PYG{n}{you} \PYG{n}{may} \PYG{o+ow}{not} \PYG{n}{use} \PYG{n}{this} \PYG{n}{file} \PYG{k}{except} \PYG{o+ow}{in} \PYG{n}{compliance} \PYG{k}{with} \PYG{n}{the} \PYG{n}{License}\PYG{o}{.}
|
||||
\PYG{n}{You} \PYG{n}{may} \PYG{n}{obtain} \PYG{n}{a} \PYG{n}{copy} \PYG{n}{of} \PYG{n}{the} \PYG{n}{License} \PYG{n}{at}
|
||||
|
||||
\PYG{n}{http}\PYG{p}{:}\PYG{o}{/}\PYG{o}{/}\PYG{n}{www}\PYG{o}{.}\PYG{n}{apache}\PYG{o}{.}\PYG{n}{org}\PYG{o}{/}\PYG{n}{licenses}\PYG{o}{/}\PYG{n}{LICENSE}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{2.0}
|
||||
|
||||
\PYG{n}{Unless} \PYG{n}{required} \PYG{n}{by} \PYG{n}{applicable} \PYG{n}{law} \PYG{o+ow}{or} \PYG{n}{agreed} \PYG{n}{to} \PYG{o+ow}{in} \PYG{n}{writing}\PYG{p}{,} \PYG{n}{software}
|
||||
\PYG{n}{distributed} \PYG{n}{under} \PYG{n}{the} \PYG{n}{License} \PYG{o+ow}{is} \PYG{n}{distributed} \PYG{n}{on} \PYG{n}{an} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{AS IS}\PYG{l+s+s2}{\PYGZdq{}} \PYG{n}{BASIS}\PYG{p}{,}
|
||||
\PYG{n}{WITHOUT} \PYG{n}{WARRANTIES} \PYG{n}{OR} \PYG{n}{CONDITIONS} \PYG{n}{OF} \PYG{n}{ANY} \PYG{n}{KIND}\PYG{p}{,} \PYG{n}{either} \PYG{n}{express} \PYG{o+ow}{or} \PYG{n}{implied}\PYG{o}{.}
|
||||
\PYG{n}{See} \PYG{n}{the} \PYG{n}{License} \PYG{k}{for} \PYG{n}{the} \PYG{n}{specific} \PYG{n}{language} \PYG{n}{governing} \PYG{n}{permissions} \PYG{o+ow}{and}
|
||||
\PYG{n}{limitations} \PYG{n}{under} \PYG{n}{the} \PYG{n}{License}\PYG{o}{.}
|
||||
\end{sphinxVerbatim}
|
||||
|
||||
|
||||
\section{Contact}
|
||||
\label{\detokenize{index:contact}}
|
||||
\sphinxAtStartPar
|
||||
If you have any questions or feedback you reach out to us at the \sphinxhref{https://discourse.kitware.com/c/imstk/9}{iMSTK Discourse Forum} or the \sphinxhref{https://gitlab.kitware.com/iMSTK/imstk-unity/-/issues}{iMSTK\sphinxhyphen{}Unity Issue Tracker}
|
||||
|
||||
\begin{center}\sphinxincludegraphics[height=1in]{{kitware-logo}.jpg}
|
||||
\end{center}
|
||||
|
||||
|
||||
\renewcommand{\indexname}{Index}
|
||||
\printindex
|
||||
\end{document}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c46f701b2e8187a428112c2eceea64ae
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,27 @@
|
||||
\babel@toc {english}{}\relax
|
||||
\contentsline {section}{\numberline {1}Introduction}{2}{section.1}%
|
||||
\contentsline {subsection}{\numberline {1.1}Overview}{2}{subsection.1.1}%
|
||||
\contentsline {subsection}{\numberline {1.2}Project Structure}{2}{subsection.1.2}%
|
||||
\contentsline {section}{\numberline {2}Setup for Development}{4}{section.2}%
|
||||
\contentsline {section}{\numberline {3}Devices}{4}{section.3}%
|
||||
\contentsline {subsection}{\numberline {3.1}Debugging}{4}{subsection.3.1}%
|
||||
\contentsline {section}{\numberline {4}Usage}{5}{section.4}%
|
||||
\contentsline {subsection}{\numberline {4.1}Importers}{5}{subsection.4.1}%
|
||||
\contentsline {subsection}{\numberline {4.2}\sphinxstyleliteralintitle {\sphinxupquote {SimulationManager}}}{5}{subsection.4.2}%
|
||||
\contentsline {subsection}{\numberline {4.3}\sphinxstyleliteralintitle {\sphinxupquote {iMSTKBehaviour}}}{5}{subsection.4.3}%
|
||||
\contentsline {subsection}{\numberline {4.4}\sphinxstyleliteralintitle {\sphinxupquote {GeometryFilter}}}{5}{subsection.4.4}%
|
||||
\contentsline {subsection}{\numberline {4.5}Editor}{5}{subsection.4.5}%
|
||||
\contentsline {section}{\numberline {5}Releases}{6}{section.5}%
|
||||
\contentsline {section}{\numberline {6}Apache License}{6}{section.6}%
|
||||
\contentsline {subsection}{\numberline {6.1}TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION}{6}{subsection.6.1}%
|
||||
\contentsline {subsection}{\numberline {6.2}1. Definitions.}{6}{subsection.6.2}%
|
||||
\contentsline {subsection}{\numberline {6.3}2. Grant of Copyright License.}{7}{subsection.6.3}%
|
||||
\contentsline {subsection}{\numberline {6.4}3. Grant of Patent License.}{7}{subsection.6.4}%
|
||||
\contentsline {subsection}{\numberline {6.5}4. Redistribution.}{7}{subsection.6.5}%
|
||||
\contentsline {subsection}{\numberline {6.6}5. Submission of Contributions.}{8}{subsection.6.6}%
|
||||
\contentsline {subsection}{\numberline {6.7}6. Trademarks.}{8}{subsection.6.7}%
|
||||
\contentsline {subsection}{\numberline {6.8}7. Disclaimer of Warranty.}{8}{subsection.6.8}%
|
||||
\contentsline {subsection}{\numberline {6.9}8. Limitation of Liability.}{8}{subsection.6.9}%
|
||||
\contentsline {subsection}{\numberline {6.10}9. Accepting Warranty or Additional Liability.}{8}{subsection.6.10}%
|
||||
\contentsline {subsection}{\numberline {6.11}APPENDIX: How to apply the Apache License to your work}{9}{subsection.6.11}%
|
||||
\contentsline {section}{\numberline {7}Contact}{9}{section.7}%
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6de9dc4d0eff03a4abe3a0bb094a73c6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 844 KiB |
@@ -0,0 +1,96 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5ea4544c35e63643ab79d9b6cc394c4
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,22 @@
|
||||
$latex = 'pdflatex ' . $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'" );
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d6b6d0ec47b955544a08d4f4ec942f71
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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'" );
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1e09bb3e219a1c64bb424167659e5d95
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2ae016c3fdf947f449d4a457421463a1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,16 @@
|
||||
line_max 100
|
||||
headings_flag 1
|
||||
heading_prefix " \\bigletter "
|
||||
|
||||
preamble "\\begin{sphinxtheindex}
|
||||
\\let\\bigletter\\sphinxstyleindexlettergroup
|
||||
\\let\\spxpagem \\sphinxstyleindexpagemain
|
||||
\\let\\spxentry \\sphinxstyleindexentry
|
||||
\\let\\spxextra \\sphinxstyleindexextra
|
||||
|
||||
"
|
||||
|
||||
postamble "\n\n\\end{sphinxtheindex}\n"
|
||||
|
||||
symhead_positive "{\\sphinxsymbolsname}"
|
||||
numhead_positive "{\\sphinxnumbersname}"
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 016c78137d7607d418ebc996d9d5ef40
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,344 @@
|
||||
%
|
||||
% sphinx.sty
|
||||
%
|
||||
% Adapted from the old python.sty, mostly written by Fred Drake,
|
||||
% by Georg Brandl.
|
||||
%
|
||||
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
\ProvidesPackage{sphinx}[2021/01/27 v4.0.0 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
|
||||
}}
|
||||
|
||||
|
||||
%% OPTION HANDLING
|
||||
%
|
||||
|
||||
% We first handle options then load packages, but we need \definecolor from
|
||||
% xcolor/color.
|
||||
|
||||
% FIXME: we should \RequirePackage{xcolor} always now
|
||||
% The xcolor package draws better fcolorboxes around verbatim code
|
||||
\IfFileExists{xcolor.sty}{
|
||||
\RequirePackage{xcolor}
|
||||
}{
|
||||
\RequirePackage{color}
|
||||
}
|
||||
|
||||
% 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
|
||||
|
||||
\DeclareStringOption[0]{maxlistdepth}% \newcommand*\spx@opt@maxlistdepth{0}
|
||||
\DeclareStringOption[-1]{numfigreset}
|
||||
\DeclareBoolOption[false]{nonumfigreset}
|
||||
\DeclareBoolOption[false]{mathnumfig}
|
||||
\define@key{sphinx}{bookmarksdepth}{\AtBeginDocument{\hypersetup{bookmarksdepth=#1}}}
|
||||
\AtBeginDocument{\define@key{sphinx}{bookmarksdepth}{\hypersetup{bookmarksdepth=#1}}}
|
||||
% \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 explicitly. 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[false]{verbatimforcewraps}
|
||||
\DeclareStringOption[3]{verbatimmaxoverfull}
|
||||
\DeclareStringOption[100]{verbatimmaxunderfull}
|
||||
\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}
|
||||
% FIXME: this is unrelated to an option, move this elsewhere
|
||||
% To allow hyphenation of first word in narrow contexts; no option,
|
||||
% customization to be done via 'preamble' key
|
||||
\newcommand*\sphinxAtStartPar{\leavevmode\nobreak\hskip\z@skip}
|
||||
% No need for the \hspace{0pt} trick (\hskip\z@skip) with luatex
|
||||
\ifdefined\directlua\let\sphinxAtStartPar\@empty\fi
|
||||
% user interface: options can be changed midway in a document!
|
||||
\newcommand\sphinxsetup[1]{\setkeys{sphinx}{#1}}
|
||||
|
||||
|
||||
%% MISCELLANEOUS CONTEXT
|
||||
%
|
||||
% flag to be set in a framed environment
|
||||
% (defined here as currently needed by three sphinxlatex....sty files and
|
||||
% even if not needed if such files are replaced, the definition does no harm)
|
||||
\newif\ifspx@inframed
|
||||
%
|
||||
% \spx@ifcaptionpackage (defined at begin document)
|
||||
% is needed currently in macros from:
|
||||
% sphinxlatexliterals.sty (sphinxVerbatim)
|
||||
% sphinxlatextables.sty (for some macros used in the table templates)
|
||||
%
|
||||
% \sphinxcaption is mark-up injected by the tabular and tabulary templates
|
||||
% it is defined in sphinxlatextables.sty
|
||||
%
|
||||
% 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}%
|
||||
}
|
||||
|
||||
%% PASS OPTIONS
|
||||
%
|
||||
% pass options to hyperref; it must not have been loaded already
|
||||
\input{sphinxoptionshyperref.sty}
|
||||
% pass options to geometry; it must not have been loaded already
|
||||
\input{sphinxoptionsgeometry.sty}
|
||||
|
||||
|
||||
%% COLOR (general)
|
||||
%
|
||||
% FIXME: these two should be deprecated
|
||||
%
|
||||
% FIXME: \normalcolor should be used and \py@NormalColor never defined
|
||||
\def\py@NormalColor{\color{black}}
|
||||
% FIXME: \color{TitleColor} should be used directly and \py@TitleColor
|
||||
% should never get defined.
|
||||
\def\py@TitleColor{\color{TitleColor}}
|
||||
|
||||
|
||||
%% PACKAGES
|
||||
%
|
||||
% as will be indicated below, secondary style files load some more packages
|
||||
%
|
||||
% For \text macro (sphinx.util.texescape)
|
||||
% also for usage of \firstchoice@true(false) in sphinxlatexgraphics.sty
|
||||
\RequirePackage{amstext}
|
||||
% It was passed "warn" option from latex template in case it is already loaded
|
||||
% via some other package before \usepackage{sphinx} in preamble
|
||||
\RequirePackage{textcomp}
|
||||
% 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}
|
||||
% Provides \captionof, used once by latex writer (\captionof{figure})
|
||||
\RequirePackage{capt-of}
|
||||
% Support hlist directive
|
||||
\RequirePackage{multicol}
|
||||
|
||||
|
||||
%% GRAPHICS
|
||||
%
|
||||
% It will always be needed, so let's load it here
|
||||
\RequirePackage{graphicx}
|
||||
\input{sphinxlatexgraphics.sty}
|
||||
|
||||
|
||||
%% FRAMED ENVIRONMENTS
|
||||
%
|
||||
\input{sphinxlatexadmonitions.sty}
|
||||
\input{sphinxlatexliterals.sty}
|
||||
\input{sphinxlatexshadowbox.sty}
|
||||
|
||||
|
||||
%% CONTAINERS
|
||||
%
|
||||
\input{sphinxlatexcontainers.sty}
|
||||
|
||||
|
||||
%% PYGMENTS
|
||||
% stylesheet for highlighting with pygments
|
||||
\RequirePackage{sphinxhighlight}
|
||||
|
||||
|
||||
%% TABLES
|
||||
%
|
||||
\input{sphinxlatextables.sty}
|
||||
|
||||
|
||||
%% NUMBERING OF FIGURES, TABLES, AND LITERAL BLOCKS
|
||||
%
|
||||
\input{sphinxlatexnumfig.sty}
|
||||
|
||||
|
||||
%% LISTS
|
||||
%
|
||||
\input{sphinxlatexlists.sty}
|
||||
|
||||
|
||||
%% FOOTNOTES
|
||||
%
|
||||
% Support scopes for footnote numbering
|
||||
% This is currently stepped at each input file
|
||||
\newcounter{sphinxscope}
|
||||
\newcommand{\sphinxstepscope}{\stepcounter{sphinxscope}}
|
||||
% We ensure \thesphinxscope expands to digits tokens, independently of language
|
||||
\renewcommand{\thesphinxscope}{\number\value{sphinxscope}}
|
||||
\newcommand\sphinxthefootnotemark[2]{%
|
||||
% this is used to make reference to an explicitly numbered footnote not on same page
|
||||
% #1=label of footnote text, #2=page number where footnote text was printed
|
||||
\ifdefined\pagename
|
||||
\pagename\space#2, % <- space
|
||||
\else
|
||||
p. #2, % <- space
|
||||
\fi #1% no space
|
||||
}
|
||||
% support large numbered footnotes in minipage; but this is now obsolete
|
||||
% from systematic use of savenotes environment around minipages
|
||||
\def\thempfootnote{\arabic{mpfootnote}}
|
||||
% This package is needed to support hyperlinked footnotes in tables and
|
||||
% framed contents, and to allow code-blocks in footnotes.
|
||||
\RequirePackage{sphinxpackagefootnote}
|
||||
|
||||
|
||||
%% INDEX, BIBLIOGRAPHY, APPENDIX, TABLE OF CONTENTS
|
||||
%
|
||||
\input{sphinxlatexindbibtoc.sty}
|
||||
|
||||
|
||||
%% STYLING
|
||||
%
|
||||
\input{sphinxlatexstylepage.sty}
|
||||
\input{sphinxlatexstyleheadings.sty}
|
||||
\input{sphinxlatexstyletext.sty}
|
||||
|
||||
|
||||
%% MODULE RELEASE DATA AND OBJECT DESCRIPTIONS
|
||||
%
|
||||
\input{sphinxlatexobjects.sty}
|
||||
|
||||
|
||||
% FIXME: this line should be dropped, as "9" is default anyhow.
|
||||
\ifdefined\pdfcompresslevel\pdfcompresslevel = 9 \fi
|
||||
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3ce0e39cff5c5574e9270a4c0e563d38
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,230 @@
|
||||
;;; -*- 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
|
||||
;; explicitly 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
|
||||
;; explicitly 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 "\textbackslash{}" "\" :string) ; " for Emacs syntax highlighting
|
||||
(merge-rule "\textasciitilde{}" "~~" :string); the ~~ escape is needed here
|
||||
(merge-rule "\textasciicircum{}" "^" :string)
|
||||
(merge-rule "\sphinxhyphen{}" "-" :string)
|
||||
(merge-rule "\textquotesingle{}" "'" :string)
|
||||
(merge-rule "\textasciigrave{}" "`" :string)
|
||||
(merge-rule "\textless{}" "<" :string)
|
||||
(merge-rule "\textgreater{}" ">" :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 "\IeC {\textalpha }" "α" :string)
|
||||
(merge-rule "\IeC {\textbeta }" "β" :string)
|
||||
(merge-rule "\IeC {\textgamma }" "γ" :string)
|
||||
(merge-rule "\IeC {\textdelta }" "δ" :string)
|
||||
(merge-rule "\IeC {\textepsilon }" "ε" :string)
|
||||
(merge-rule "\IeC {\textzeta }" "ζ" :string)
|
||||
(merge-rule "\IeC {\texteta }" "η" :string)
|
||||
(merge-rule "\IeC {\texttheta }" "θ" :string)
|
||||
(merge-rule "\IeC {\textiota }" "ι" :string)
|
||||
(merge-rule "\IeC {\textkappa }" "κ" :string)
|
||||
(merge-rule "\IeC {\textlambda }" "λ" :string)
|
||||
(merge-rule "\IeC {\textmu }" "μ" :string)
|
||||
(merge-rule "\IeC {\textnu }" "ν" :string)
|
||||
(merge-rule "\IeC {\textxi }" "ξ" :string)
|
||||
(merge-rule "\IeC {\textomicron }" "ο" :string)
|
||||
(merge-rule "\IeC {\textpi }" "π" :string)
|
||||
(merge-rule "\IeC {\textrho }" "ρ" :string)
|
||||
(merge-rule "\IeC {\textsigma }" "σ" :string)
|
||||
(merge-rule "\IeC {\texttau }" "τ" :string)
|
||||
(merge-rule "\IeC {\textupsilon }" "υ" :string)
|
||||
(merge-rule "\IeC {\textphi }" "φ" :string)
|
||||
(merge-rule "\IeC {\textchi }" "χ" :string)
|
||||
(merge-rule "\IeC {\textpsi }" "ψ" :string)
|
||||
(merge-rule "\IeC {\textomega }" "ω" :string)
|
||||
(merge-rule "\IeC {\textAlpha }" "Α" :string)
|
||||
(merge-rule "\IeC {\textBeta }" "Β" :string)
|
||||
(merge-rule "\IeC {\textGamma }" "Γ" :string)
|
||||
(merge-rule "\IeC {\textDelta }" "Δ" :string)
|
||||
(merge-rule "\IeC {\textEpsilon }" "Ε" :string)
|
||||
(merge-rule "\IeC {\textZeta }" "Ζ" :string)
|
||||
(merge-rule "\IeC {\textEta }" "Η" :string)
|
||||
(merge-rule "\IeC {\textTheta }" "Θ" :string)
|
||||
(merge-rule "\IeC {\textIota }" "Ι" :string)
|
||||
(merge-rule "\IeC {\textKappa }" "Κ" :string)
|
||||
(merge-rule "\IeC {\textLambda }" "Λ" :string)
|
||||
(merge-rule "\IeC {\textMu }" "Μ" :string)
|
||||
(merge-rule "\IeC {\textNu }" "Ν" :string)
|
||||
(merge-rule "\IeC {\textTheta }" "Θ" :string)
|
||||
(merge-rule "\IeC {\textIota }" "Ι" :string)
|
||||
(merge-rule "\IeC {\textKappa }" "Κ" :string)
|
||||
(merge-rule "\IeC {\textLambda }" "Λ" :string)
|
||||
(merge-rule "\IeC {\textMu }" "Μ" :string)
|
||||
(merge-rule "\IeC {\textNu }" "Ν" :string)
|
||||
(merge-rule "\IeC {\textXi }" "Ξ" :string)
|
||||
(merge-rule "\IeC {\textOmicron }" "Ο" :string)
|
||||
(merge-rule "\IeC {\textPi }" "Π" :string)
|
||||
(merge-rule "\IeC {\textRho }" "Ρ" :string)
|
||||
(merge-rule "\IeC {\textSigma }" "Σ" :string)
|
||||
(merge-rule "\IeC {\textTau }" "Τ" :string)
|
||||
(merge-rule "\IeC {\textUpsilon }" "Υ" :string)
|
||||
(merge-rule "\IeC {\textPhi }" "Φ" :string)
|
||||
(merge-rule "\IeC {\textChi }" "Χ" :string)
|
||||
(merge-rule "\IeC {\textPsi }" "Ψ" :string)
|
||||
(merge-rule "\IeC {\textOmega }" "Ω" :string)
|
||||
(merge-rule "\IeC {\textohm }" "Ω" :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)
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8e7b19e46a6d038498e296c1070a875e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,106 @@
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
\ProvidesPackage{sphinxhighlight}[2016/05/29 stylesheet for highlighting with pygments]
|
||||
% Its contents depend on pygments_style configuration variable.
|
||||
|
||||
|
||||
\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}}
|
||||
|
||||
\@namedef{PYG@tok@w}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
|
||||
\@namedef{PYG@tok@c}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
|
||||
\@namedef{PYG@tok@cp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{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}}}}
|
||||
\@namedef{PYG@tok@k}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@kp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@kt}{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@o}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
|
||||
\@namedef{PYG@tok@ow}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@nb}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@nf}{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}}
|
||||
\@namedef{PYG@tok@nc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
|
||||
\@namedef{PYG@tok@nn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}}
|
||||
\@namedef{PYG@tok@ne}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@nv}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
|
||||
\@namedef{PYG@tok@no}{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}}
|
||||
\@namedef{PYG@tok@nl}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}}
|
||||
\@namedef{PYG@tok@ni}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}}
|
||||
\@namedef{PYG@tok@na}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@nt}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}}
|
||||
\@namedef{PYG@tok@nd}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}}
|
||||
\@namedef{PYG@tok@s}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@sd}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@si}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}}
|
||||
\@namedef{PYG@tok@se}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@sr}{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}}
|
||||
\@namedef{PYG@tok@ss}{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}}
|
||||
\@namedef{PYG@tok@sx}{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
|
||||
\@namedef{PYG@tok@m}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
|
||||
\@namedef{PYG@tok@gh}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
|
||||
\@namedef{PYG@tok@gu}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
|
||||
\@namedef{PYG@tok@gd}{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@gi}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@gr}{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
|
||||
\@namedef{PYG@tok@ge}{\let\PYG@it=\textit}
|
||||
\@namedef{PYG@tok@gs}{\let\PYG@bf=\textbf}
|
||||
\@namedef{PYG@tok@gp}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}}
|
||||
\@namedef{PYG@tok@go}{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}}
|
||||
\@namedef{PYG@tok@gt}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
|
||||
\@namedef{PYG@tok@err}{\def\PYG@bc##1{{\setlength{\fboxsep}{\string -\fboxrule}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}}
|
||||
\@namedef{PYG@tok@kc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@kd}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@kn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@kr}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@bp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
|
||||
\@namedef{PYG@tok@fm}{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}}
|
||||
\@namedef{PYG@tok@vc}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
|
||||
\@namedef{PYG@tok@vg}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
|
||||
\@namedef{PYG@tok@vi}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
|
||||
\@namedef{PYG@tok@vm}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}}
|
||||
\@namedef{PYG@tok@sa}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@sb}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@sc}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@dl}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@s2}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@sh}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@s1}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}}
|
||||
\@namedef{PYG@tok@mb}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
|
||||
\@namedef{PYG@tok@mf}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
|
||||
\@namedef{PYG@tok@mh}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
|
||||
\@namedef{PYG@tok@mi}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
|
||||
\@namedef{PYG@tok@il}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
|
||||
\@namedef{PYG@tok@mo}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
|
||||
\@namedef{PYG@tok@ch}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
|
||||
\@namedef{PYG@tok@cm}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
|
||||
\@namedef{PYG@tok@cpf}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
|
||||
\@namedef{PYG@tok@c1}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##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}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7d1b780f0deb07942a04f70975c0aef3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,102 @@
|
||||
%
|
||||
% sphinxhowto.cls for Sphinx (https://www.sphinx-doc.org/)
|
||||
%
|
||||
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
\ProvidesClass{sphinxhowto}[2019/12/01 v2.3.0 Document class (Sphinx howto)]
|
||||
|
||||
% 'oneside' option overriding the 'twoside' default
|
||||
\newif\if@oneside
|
||||
\DeclareOption{oneside}{\@onesidetrue}
|
||||
% Pass remaining document options to the parent class.
|
||||
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}}
|
||||
\ProcessOptions\relax
|
||||
|
||||
% Default to two-side document
|
||||
\if@oneside
|
||||
% nothing to do (oneside is the default)
|
||||
\else
|
||||
\PassOptionsToClass{twoside}{\sphinxdocclass}
|
||||
\fi
|
||||
|
||||
\LoadClass{\sphinxdocclass}
|
||||
|
||||
% Set some sane defaults for section numbering depth and TOC depth. You can
|
||||
% reset these counters in your preamble.
|
||||
%
|
||||
\setcounter{secnumdepth}{2}
|
||||
\setcounter{tocdepth}{2}% i.e. section and subsection
|
||||
|
||||
% Adapt \and command to the flushright context of \sphinxmaketitle, to
|
||||
% avoid ragged line endings if author names do not fit all on one single line
|
||||
\DeclareRobustCommand{\and}{%
|
||||
\end{tabular}\kern-\tabcolsep
|
||||
\allowbreak
|
||||
\hskip\dimexpr1em+\tabcolsep\@plus.17fil\begin{tabular}[t]{c}%
|
||||
}%
|
||||
% If it is desired that each author name be on its own line, use in preamble:
|
||||
%\DeclareRobustCommand{\and}{%
|
||||
% \end{tabular}\kern-\tabcolsep\\\begin{tabular}[t]{c}%
|
||||
%}%
|
||||
% Change the title page to look a bit better, and fit in with the fncychap
|
||||
% ``Bjarne'' style a bit better.
|
||||
%
|
||||
\newcommand{\sphinxmaketitle}{%
|
||||
\noindent\rule{\linewidth}{1pt}\par
|
||||
\begingroup % for PDF information dictionary
|
||||
\def\endgraf{ }\def\and{\& }%
|
||||
\pdfstringdefDisableCommands{\def\\{, }}% overwrite hyperref setup
|
||||
\hypersetup{pdfauthor={\@author}, pdftitle={\@title}}%
|
||||
\endgroup
|
||||
\begin{flushright}
|
||||
\sphinxlogo
|
||||
\py@HeaderFamily
|
||||
{\Huge \@title }\par
|
||||
{\itshape\large \py@release \releaseinfo}\par
|
||||
\vspace{25pt}
|
||||
{\Large
|
||||
\begin{tabular}[t]{c}
|
||||
\@author
|
||||
\end{tabular}\kern-\tabcolsep}\par
|
||||
\vspace{25pt}
|
||||
\@date \par
|
||||
\py@authoraddress \par
|
||||
\end{flushright}
|
||||
\@thanks
|
||||
\setcounter{footnote}{0}
|
||||
\let\thanks\relax\let\maketitle\relax
|
||||
%\gdef\@thanks{}\gdef\@author{}\gdef\@title{}
|
||||
}
|
||||
|
||||
\newcommand{\sphinxtableofcontents}{%
|
||||
\begingroup
|
||||
\parskip \z@skip
|
||||
\sphinxtableofcontentshook
|
||||
\tableofcontents
|
||||
\endgroup
|
||||
\noindent\rule{\linewidth}{1pt}\par
|
||||
\vspace{12pt}%
|
||||
}
|
||||
\newcommand\sphinxtableofcontentshook{}
|
||||
\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.
|
||||
%
|
||||
\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}
|
||||
{\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}}}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 24f63db8ea0d6c44f88ddf922d2d859b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,148 @@
|
||||
%% NOTICES AND ADMONITIONS
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexadmonitions.sty}[2021/01/27 admonitions]
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer:
|
||||
%
|
||||
% - sphinxadmonition (environment)
|
||||
% This is a dispatch supporting
|
||||
%
|
||||
% - note, hint, important, tip (via sphinxlightbox)
|
||||
% - warning, caution, attention, danger, error (via sphinxheavybox)
|
||||
%
|
||||
% Each sphinx<notice name> environment can be redefined by user.
|
||||
% The defaults are customizable via various colour and dimension
|
||||
% settings, cf sphinx docs (latex customization).
|
||||
%
|
||||
% Requires:
|
||||
\RequirePackage{framed}% used by sphinxheavybox
|
||||
%
|
||||
% Dependencies (they do not need to be defined at time of loading):
|
||||
% - of course the various colour and dimension options handled via sphinx.sty
|
||||
% - \sphinxstrong (for sphinxlightbox and sphinxheavybox)
|
||||
% - dimension register \spx@image@maxheight from sphinxlatexgraphics.sty
|
||||
% - \savenotes/\spewnotes from sphinxpackagefootnote (for sphinxheavybox)
|
||||
|
||||
% Provides: (also in sphinxlatexliterals.sty)
|
||||
\providecommand*\sphinxvspacefixafterfrenchlists{%
|
||||
\ifvmode\ifdim\lastskip<\z@ \vskip\parskip\fi\else\par\fi
|
||||
}
|
||||
|
||||
% Some are quite plain
|
||||
% the spx@notice@bordercolor etc are set in the sphinxadmonition environment
|
||||
\newenvironment{sphinxlightbox}{%
|
||||
\par
|
||||
\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).
|
||||
\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!
|
||||
% 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.
|
||||
\ltx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}%
|
||||
\vspace{\FrameHeightAdjust}
|
||||
% copied/adapted from framed.sty's snugshade
|
||||
\def\FrameCommand##1{\hskip\@totalleftmargin
|
||||
\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}
|
||||
\else
|
||||
% handle case where notice is first thing in a list item (or is quoted)
|
||||
\if@inlabel
|
||||
\noindent\par\vspace{-\baselineskip}
|
||||
\else
|
||||
\vspace{\parskip}
|
||||
\fi
|
||||
\fi
|
||||
\MakeFramed {\spx@inframedtrue
|
||||
\advance\hsize-\width \@totalleftmargin\z@ \linewidth\hsize
|
||||
% minipage initialization copied from LaTeX source code.
|
||||
\@pboxswfalse
|
||||
\let\@listdepth\@mplistdepth \@mplistdepth\z@
|
||||
\@minipagerestore
|
||||
\@setminipage }%
|
||||
}
|
||||
{%
|
||||
\par\unskip
|
||||
\@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}
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a7bea496935461c4e82d98f4b3e8f593
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,22 @@
|
||||
%% CONTAINER DIRECTIVES
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexcontainers.sty}[2021/05/03 containers]
|
||||
|
||||
% The purpose of this file is to provide a dummy environment sphinxclass which
|
||||
% will be inserted for each class in each container directive. The class name
|
||||
% will be passed as the argument to the environment.
|
||||
%
|
||||
% For a class foo, the user can define customised handling of that class by
|
||||
% defining the sphinxclassfoo LaTeX environment.
|
||||
|
||||
\newenvironment{sphinxuseclass}[1]{%
|
||||
\def\sphinxClassFunctionName{sphinxclass#1}%
|
||||
\ltx@ifundefined{\sphinxClassFunctionName}%
|
||||
{}% undefined so do nothing
|
||||
{\expandafter\begin\expandafter{\sphinxClassFunctionName}}%
|
||||
}{%
|
||||
\ltx@ifundefined{\sphinxClassFunctionName}%
|
||||
{}% we did nothing so we keep doing nothing
|
||||
{\expandafter\end\expandafter{\sphinxClassFunctionName}}%
|
||||
}%
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d88f0dc7aa07fb40afe801f8f80c1a5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,122 @@
|
||||
%% GRAPHICS
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexgraphics.sty}[2021/01/27 graphics]
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer:
|
||||
%
|
||||
% - macros:
|
||||
%
|
||||
% - \sphinxfigcaption
|
||||
% - \sphinxincludegraphics
|
||||
%
|
||||
% - environments:
|
||||
%
|
||||
% - sphinxfigure-in-table
|
||||
%
|
||||
% May change:
|
||||
%
|
||||
% - \sphinxcaption (at begin document)
|
||||
%
|
||||
% Also provides:
|
||||
%
|
||||
% - \sphinxsafeincludegraphics (default of \sphinxincludegraphics since 2.0)
|
||||
% - \spx@image@maxheight dimension (used by sphinxlatexadmonitions.sty)
|
||||
% - \spx@image@box scratch box register (also used by sphinxlatexliterals.sty)
|
||||
%
|
||||
% Requires:
|
||||
% \RequirePackage{graphicx}% done in sphinx.sty
|
||||
\RequirePackage{amstext}% needed for \firstchoice@true(false)
|
||||
|
||||
% \sphinxincludegraphics resizes images larger than the TeX \linewidth (which
|
||||
% is adjusted in indented environments), or taller than a certain maximal
|
||||
% height (usually \textheight and this is reduced in the environments which use
|
||||
% framed.sty to avoid infinite loop if image too tall).
|
||||
%
|
||||
% In case height or width options are present the rescaling is done
|
||||
% (since 2.0), in a way keeping the width:height ratio either native from
|
||||
% image or from the width and height options if both were present.
|
||||
%
|
||||
\newdimen\spx@image@maxheight
|
||||
\AtBeginDocument{\spx@image@maxheight\textheight}
|
||||
|
||||
% box scratch register
|
||||
\newbox\spx@image@box
|
||||
\newcommand*{\sphinxsafeincludegraphics}[2][]{%
|
||||
% #1 contains possibly width=, height=, but no scale= since 1.8.4
|
||||
\setbox\spx@image@box\hbox{\includegraphics[#1,draft]{#2}}%
|
||||
\in@false % use some handy boolean flag
|
||||
\ifdim \wd\spx@image@box>\linewidth
|
||||
\in@true % flag to remember to adjust options and set box dimensions
|
||||
% compute height which results from rescaling width to \linewidth
|
||||
% and keep current aspect ratio. multiply-divide in \numexpr uses
|
||||
% temporarily doubled precision, hence no overflow. (of course we
|
||||
% assume \ht is not a few sp's below \maxdimen...(about 16384pt).
|
||||
\edef\spx@image@rescaledheight % with sp units
|
||||
{\the\numexpr\ht\spx@image@box
|
||||
*\linewidth/\wd\spx@image@box sp}%
|
||||
\ifdim\spx@image@rescaledheight>\spx@image@maxheight
|
||||
% the rescaled height will be too big, so it is height which decides
|
||||
% the rescaling factor
|
||||
\def\spx@image@requiredheight{\spx@image@maxheight}% dimen register
|
||||
\edef\spx@image@requiredwidth % with sp units
|
||||
{\the\numexpr\wd\spx@image@box
|
||||
*\spx@image@maxheight/\ht\spx@image@box sp}%
|
||||
% TODO: decide if this commented-out block could be needed due to
|
||||
% rounding in numexpr operations going up
|
||||
% \ifdim\spx@image@requiredwidth>\linewidth
|
||||
% \def\spx@image@requiredwidth{\linewidth}% dimen register
|
||||
% \fi
|
||||
\else
|
||||
\def\spx@image@requiredwidth{\linewidth}% dimen register
|
||||
\let\spx@image@requiredheight\spx@image@rescaledheight% sp units
|
||||
\fi
|
||||
\else
|
||||
% width is ok, let's check height
|
||||
\ifdim\ht\spx@image@box>\spx@image@maxheight
|
||||
\in@true
|
||||
\edef\spx@image@requiredwidth % with sp units
|
||||
{\the\numexpr\wd\spx@image@box
|
||||
*\spx@image@maxheight/\ht\spx@image@box sp}%
|
||||
\def\spx@image@requiredheight{\spx@image@maxheight}% dimen register
|
||||
\fi
|
||||
\fi % end of check of width and height
|
||||
\ifin@
|
||||
\setbox\spx@image@box
|
||||
\hbox{\includegraphics
|
||||
[%#1,% contained only width and/or height and overruled anyhow
|
||||
width=\spx@image@requiredwidth,height=\spx@image@requiredheight]%
|
||||
{#2}}%
|
||||
% \includegraphics does not set box dimensions to the exactly
|
||||
% requested ones, see https://github.com/latex3/latex2e/issues/112
|
||||
\wd\spx@image@box\spx@image@requiredwidth
|
||||
\ht\spx@image@box\spx@image@requiredheight
|
||||
\leavevmode\box\spx@image@box
|
||||
\else
|
||||
% here we do not modify the options, no need to adjust width and height
|
||||
% on output, they will be computed exactly as with "draft" option
|
||||
\setbox\spx@image@box\box\voidb@x % clear memory
|
||||
\includegraphics[#1]{#2}%
|
||||
\fi
|
||||
}%
|
||||
% Use the "safe" one by default (2.0)
|
||||
\def\sphinxincludegraphics{\sphinxsafeincludegraphics}
|
||||
|
||||
|
||||
%% FIGURE IN TABLE
|
||||
%
|
||||
\newenvironment{sphinxfigure-in-table}[1][\linewidth]{%
|
||||
\def\@captype{figure}%
|
||||
\sphinxsetvskipsforfigintablecaption
|
||||
\begin{minipage}{#1}%
|
||||
}{\end{minipage}}
|
||||
% 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}
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00a457f3304eda44da21f4b43464aa06
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,69 @@
|
||||
%% INDEX, BIBLIOGRAPHY, APPENDIX, TABLE OF CONTENTS
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexindbibtoc.sty}[2021/01/27 index, bib., toc]
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer:
|
||||
%
|
||||
% - environments: (backup defaults or get redefined)
|
||||
%
|
||||
% - sphinxtheindex (direct mark-up or via python.ist or sphinx.xdy)
|
||||
% - sphinxthebibliography
|
||||
%
|
||||
% - macros: (defines defaults)
|
||||
%
|
||||
% - \sphinxmaketitle
|
||||
% - \sphinxtableofcontents
|
||||
% - \sphinxnonalphabeticalgroupname
|
||||
% - \sphinxsymbolsname
|
||||
% - \sphinxnumbersname
|
||||
% - \sphinxcite
|
||||
%
|
||||
% Requires:
|
||||
\RequirePackage{makeidx}
|
||||
|
||||
% 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*{\sphinxmaketitle}{\maketitle}
|
||||
\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}{}
|
||||
|
||||
\protected\def\sphinxcite{\cite}
|
||||
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cb4e3941a270dbd4bba93461a758b656
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,131 @@
|
||||
%% ALPHANUMERIC LIST ITEMS
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexlists.sty}[2021/12/20 lists]
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer:
|
||||
% - \sphinxsetlistlabels
|
||||
% - \sphinxlineitem
|
||||
% and for the maxlistdepth key of sphinxsetup
|
||||
% Dependencies: the \spx@opt@maxlistdepth from sphinx.sty
|
||||
|
||||
% We need some helpers macros
|
||||
\newtoks\spx@lineitemlabel
|
||||
\long\def\sphinx@gobto@sphinxlineitem#1\sphinxlineitem{}
|
||||
% TeX/LaTeX has no (easy to use) built-in "peek-ahead" mechanism, but
|
||||
% we would like to know if next token is another \sphinxlineitem (this
|
||||
% can happen in glossary entries with multiple terms for same definition)
|
||||
% so we simply grab next token (assuming it is not {tokens} originally)
|
||||
\newcommand\sphinxlineitem[2]{%
|
||||
% safe test of whether #2 is \sphinxlineitem
|
||||
\sphinx@gobto@sphinxlineitem#2\@gobbletwo\sphinxlineitem\unless
|
||||
\iftrue
|
||||
% case with sphinxlineitem immediately followed by another \sphinxlineitem:
|
||||
% accumulate successive terms until actual definition or sub-list is found
|
||||
\spx@lineitemlabel\expandafter{\the\spx@lineitemlabel\strut#1\\}%
|
||||
\else
|
||||
% now issue the \item command with possibly multi-line contents
|
||||
% these weird incantations with \kern are related to how LaTeX
|
||||
% handles \item generally
|
||||
\item[\kern\labelwidth\kern-\itemindent\kern-\leftmargin
|
||||
{\parbox[t]{\dimexpr\linewidth+\leftmargin\relax}{%
|
||||
\raggedright
|
||||
\the\spx@lineitemlabel% accumulated terms before this one, CR separated
|
||||
\strut#1}}% due to LaTeX internals no \par token allowed here,
|
||||
% but the \parbox will insert one tacitly at end
|
||||
\kern-\labelsep]%
|
||||
\spx@lineitemlabel{}%
|
||||
% this causes the label to be typeset (filling up the line), clearing up
|
||||
% things in case a nested list follows.
|
||||
\leavevmode
|
||||
\fi #2%
|
||||
}%
|
||||
|
||||
|
||||
\newcommand\sphinxsetlistlabels[5]
|
||||
{% #1 = style, #2 = enum, #3 = enumnext, #4 = prefix, #5 = suffix
|
||||
% #2 and #3 are counters used by enumerate environment e.g. enumi, enumii.
|
||||
% #1 is a macro such as \arabic or \alph
|
||||
% prefix and suffix are strings (by default empty and a dot).
|
||||
\@namedef{the#2}{#1{#2}}%
|
||||
\@namedef{label#2}{#4\@nameuse{the#2}#5}%
|
||||
\@namedef{p@#3}{\@nameuse{p@#2}#4\@nameuse{the#2}#5}%
|
||||
}%
|
||||
|
||||
|
||||
%% 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
|
||||
}
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 13e80be7ed4863c48ac1edd83eb618a2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,804 @@
|
||||
%% LITERAL BLOCKS
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexliterals.sty}[2021/12/06 code-blocks and parsed literals]
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer:
|
||||
%
|
||||
% - macros:
|
||||
% - \sphinxLiteralBlockLabel
|
||||
% - \sphinxSetupCaptionForVerbatim
|
||||
% - \sphinxSetupCodeBlockInFootnote
|
||||
% - \sphinxhref
|
||||
% - \sphinxnolinkurl
|
||||
% - \sphinxresetverbatimhllines
|
||||
% - \sphinxunactivateextrasandspace
|
||||
% - \sphinxupquote
|
||||
% - \sphinxurl
|
||||
%
|
||||
% - environments:
|
||||
% - sphinxVerbatim
|
||||
% - sphinxVerbatimintable
|
||||
% - sphinxalltt
|
||||
%
|
||||
% Dependency:
|
||||
%
|
||||
% - hyperref (for \phantomsection and \capstart) (loaded later)
|
||||
%
|
||||
% Executes \RequirePackage for:
|
||||
%
|
||||
% - framed
|
||||
% - fancyvrb
|
||||
% - alltt
|
||||
% - upquote
|
||||
% - needspace
|
||||
|
||||
% also in sphinxlatexadmonitions.sty:
|
||||
% This is a workaround to a "feature" of French lists, when literal block
|
||||
% follows immediately; usable generally (does only \par then), a priori...
|
||||
\providecommand*\sphinxvspacefixafterfrenchlists{%
|
||||
\ifvmode\ifdim\lastskip<\z@ \vskip\parskip\fi\else\par\fi
|
||||
}
|
||||
|
||||
% For framing allowing pagebreaks
|
||||
\RequirePackage{framed}
|
||||
% For source code
|
||||
% MEMO: fancyvrb is used mainly to
|
||||
% 1- control horizontal and vertical spacing
|
||||
% 2- optional line numbering
|
||||
% 3- optional line emphasizing
|
||||
% 4- while still allowing expansion of Pygments latex mark-up
|
||||
% Other aspects such as framing, caption handling, codeline wrapping are
|
||||
% added on top of it. We should stop using fancyvrb and implement
|
||||
% 1, 2, 3, 4 by own Sphinx fully native Verbatim. This would allow to solve
|
||||
% limitations with wrapped long code line not allowing page break.
|
||||
\RequirePackage{fancyvrb}
|
||||
% For parsed-literal blocks.
|
||||
\RequirePackage{alltt}
|
||||
% Display "real" single quotes in literal blocks.
|
||||
\RequirePackage{upquote}
|
||||
% Skip to next page if not enough space at bottom
|
||||
\RequirePackage{needspace}
|
||||
|
||||
% 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 ("sphinxpackagefootnote.sty").
|
||||
|
||||
% for emphasizing lines
|
||||
\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
|
||||
|
||||
% Prior to Sphinx 1.5, \Verbatim and \endVerbatim were modified by Sphinx.
|
||||
% The aliases defined here are used in sphinxVerbatim environment and can
|
||||
% serve as hook-points with no need to modify \Verbatim itself.
|
||||
\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}
|
||||
|
||||
% 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
|
||||
% 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
|
||||
}%
|
||||
% #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
|
||||
\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
|
||||
\copy\@tempboxa
|
||||
\kern-\wd\@tempboxa\kern-\fboxrule
|
||||
\vrule\@width\fboxrule
|
||||
\kern\wd\@tempboxa
|
||||
\vrule\@width\fboxrule}%
|
||||
\kern-\dimexpr\ht\@tempboxa+\dp\@tempboxa+\fboxrule\relax
|
||||
\hrule\@height\fboxrule
|
||||
\kern\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax
|
||||
\hrule\@height\fboxrule
|
||||
#2% below frame
|
||||
}%
|
||||
\endgroup
|
||||
}%
|
||||
\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
|
||||
\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\~% >, -, ~
|
||||
\do\PYGZbs\\% \
|
||||
}
|
||||
\newcommand*\sphinxbreaksatspecials {%
|
||||
\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 neither pygmentized nor "tex-escaped".
|
||||
% 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`\~`\~
|
||||
}
|
||||
|
||||
% 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 box to measure contents if nested as inner \MakeFramed requires then
|
||||
% minipage encapsulation but too long contents then break outer \MakeFramed
|
||||
\newbox\sphinxVerbatim@ContentsBox
|
||||
% 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}%
|
||||
}
|
||||
\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{%
|
||||
\hsize\linewidth
|
||||
\ifspx@opt@verbatimforcewraps
|
||||
\expandafter\spx@verb@FormatLineForceWrap
|
||||
\else\expandafter\spx@verb@FormatLineWrap
|
||||
\fi
|
||||
}%
|
||||
\newcommand\sphinxVerbatimFormatLineNoWrap[1]{\hb@xt@\linewidth{\strut #1\hss}}%
|
||||
\long\def\spx@verb@FormatLineWrap#1{%
|
||||
\vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@
|
||||
\doublehyphendemerits\z@\finalhyphendemerits\z@
|
||||
\strut #1\strut}%
|
||||
}%
|
||||
%
|
||||
% The normal line wrapping allows breaks at spaces and ascii non
|
||||
% letters, non digits. The \raggedright above means there will be
|
||||
% an overfilled line only if some non-breakable "word" was
|
||||
% encountered, which is longer than a line (it is moved always to
|
||||
% be on its own on a new line).
|
||||
%
|
||||
% The "forced" line wrapping will parse the tokens to add potential
|
||||
% breakpoints at each character. As some strings are highlighted,
|
||||
% we have to apply the highlighting character per character, which
|
||||
% requires to manipulate the output of the Pygments LaTeXFormatter.
|
||||
%
|
||||
% Doing this at latex level is complicated. The contents should
|
||||
% be as expected: i.e. some active characters from
|
||||
% \sphinxbreaksviaactive, some Pygments character escapes such as
|
||||
% \PYGZdl{}, and the highlighting \PYG macro with always 2
|
||||
% arguments. No other macros should be there, except perhaps
|
||||
% zero-parameter macros. In particular:
|
||||
% - the texcomments Pygments option must be set to False
|
||||
%
|
||||
% With pdflatex, Unicode input gives multi-bytes characters
|
||||
% where the first byte is active. We support the "utf8" macros
|
||||
% only. "utf8x" is not supported.
|
||||
%
|
||||
% The highlighting macro \PYG will be applied character per
|
||||
% character. Highlighting via a colored background gives thus a
|
||||
% chain of small colored boxes which may cause some artefact in
|
||||
% some pdf viewers. Can't do anything here if we do want the line
|
||||
% break to be possible.
|
||||
%
|
||||
% First a measurement step is done of what would the standard line
|
||||
% wrapping give (i.e line breaks only at spaces and non-letter,
|
||||
% non-digit ascii characters), cf TeX by Topic for the basic
|
||||
% dissecting technique: TeX unfortunately when building a vertical
|
||||
% box does not store in an accessible way what was the maximal
|
||||
% line-width during paragraph building.
|
||||
%
|
||||
% Avoid LaTeX 2021 alteration of \@@par which potentially could break our
|
||||
% measurement step (typically if the para/after hook is configured to use
|
||||
% \vspace). Of course, breakage could happen only from user or package
|
||||
% adding things to basic Sphinx latex. And perhaps spring LaTeX 2021 will
|
||||
% provide a non-hooked \@@par, but this should work anyway and can't be
|
||||
% beaten for speed.
|
||||
\ltx@ifundefined{tex_par:D}
|
||||
% We could use \@ifl@t@r\fmtversion{2020/02/02}{use \tex_par:D}{use \@@par}.
|
||||
{\let\spx@par\@@par}% \@@par is then expected to be TeX's original \par
|
||||
{\expandafter\let\expandafter\spx@par\csname tex_par:D\endcsname}
|
||||
% More hesitation for avoiding the at-start-of-par hooks for our
|
||||
% measurement : 1. with old LaTeX, we can not avoid hooks from everyhook
|
||||
% or similar packages, 2. and perhaps the hooks add stuff which we should
|
||||
% actually measure. Ideally, hooks are for inserting things in margin
|
||||
% which do not change spacing. Most everything else in fact should not be
|
||||
% executed in our scratch box for measurement, such as counter stepping.
|
||||
\ltx@ifundefined{tex_everypar:D}
|
||||
{\let\spx@everypar\everypar}
|
||||
{\expandafter\let\expandafter\spx@everypar\csname tex_everypar:D\endcsname}
|
||||
%
|
||||
% If the max width exceeds the linewidth by more than verbatimmaxoverfull
|
||||
% character widths, or if the min width plus verbatimmaxunderfull character
|
||||
% widths is inferior to linewidth, then we apply the "force wrapping" with
|
||||
% potential line break at each character, else we don't.
|
||||
\long\def\spx@verb@FormatLineForceWrap#1{%
|
||||
% \spx@image@box is a scratch box register that we can use here
|
||||
\global\let\spx@verb@maxwidth\z@
|
||||
\global\let\spx@verb@minwidth\linewidth
|
||||
\setbox\spx@image@box
|
||||
\vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@
|
||||
\doublehyphendemerits\z@\finalhyphendemerits\z@
|
||||
\spx@everypar{}\noindent\strut #1\strut\spx@par
|
||||
\spx@verb@getwidths}%
|
||||
\ifdim\spx@verb@maxwidth>
|
||||
\dimexpr\linewidth+\spx@opt@verbatimmaxoverfull\fontcharwd\font`X \relax
|
||||
\spx@verb@FormatLineWrap{\spx@verb@wrapPYG #1\spx@verb@wrapPYG}%
|
||||
\else
|
||||
\ifdim\spx@verb@minwidth<
|
||||
\dimexpr\linewidth-\spx@opt@verbatimmaxunderfull\fontcharwd\font`X \relax
|
||||
\spx@verb@FormatLineWrap{\spx@verb@wrapPYG #1\spx@verb@wrapPYG}%
|
||||
\else
|
||||
\spx@verb@FormatLineWrap{#1}%
|
||||
\fi\fi
|
||||
}%
|
||||
% auxiliary paragraph dissector to get max and min widths
|
||||
% but minwidth must not take into account the last line
|
||||
\newbox\spx@scratchbox
|
||||
\def\spx@verb@getwidths {%
|
||||
\unskip\unpenalty
|
||||
\setbox\spx@scratchbox\lastbox
|
||||
\ifvoid\spx@scratchbox
|
||||
\else
|
||||
\setbox\spx@scratchbox\hbox{\unhbox\spx@scratchbox}%
|
||||
\ifdim\spx@verb@maxwidth<\wd\spx@scratchbox
|
||||
\xdef\spx@verb@maxwidth{\number\wd\spx@scratchbox sp}%
|
||||
\fi
|
||||
\expandafter\spx@verb@getwidths@loop
|
||||
\fi
|
||||
}%
|
||||
\def\spx@verb@getwidths@loop {%
|
||||
\unskip\unpenalty
|
||||
\setbox\spx@scratchbox\lastbox
|
||||
\ifvoid\spx@scratchbox
|
||||
\else
|
||||
\setbox\spx@scratchbox\hbox{\unhbox\spx@scratchbox}%
|
||||
\ifdim\spx@verb@maxwidth<\wd\spx@scratchbox
|
||||
\xdef\spx@verb@maxwidth{\number\wd\spx@scratchbox sp}%
|
||||
\fi
|
||||
\ifdim\spx@verb@minwidth>\wd\spx@scratchbox
|
||||
\xdef\spx@verb@minwidth{\number\wd\spx@scratchbox sp}%
|
||||
\fi
|
||||
\expandafter\spx@verb@getwidths@loop
|
||||
\fi
|
||||
}%
|
||||
% auxiliary macros to implement "cut long line even in middle of word"
|
||||
\catcode`Z=3 % safe delimiter
|
||||
\def\spx@verb@wrapPYG{%
|
||||
\futurelet\spx@nexttoken\spx@verb@wrapPYG@i
|
||||
}%
|
||||
\def\spx@verb@wrapPYG@i{%
|
||||
\ifx\spx@nexttoken\spx@verb@wrapPYG\let\next=\@gobble\else
|
||||
\ifx\spx@nexttoken\PYG\let\next=\spx@verb@wrapPYG@PYG@onebyone\else
|
||||
\discretionary{}{\sphinxafterbreak}{}%
|
||||
\let\next\spx@verb@wrapPYG@ii
|
||||
\fi\fi
|
||||
\next
|
||||
}%
|
||||
% Let's recognize active characters. We don't support utf8x only utf8.
|
||||
% And here #1 should not have picked up (non empty) braced contents
|
||||
\long\def\spx@verb@wrapPYG@ii#1{%
|
||||
\ifcat\noexpand~\noexpand#1\relax% active character
|
||||
\expandafter\spx@verb@wrapPYG@active
|
||||
\else % non-active character, control sequence such as \PYGZdl, or empty
|
||||
\expandafter\spx@verb@wrapPYG@one
|
||||
\fi {#1}%
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@active#1{%
|
||||
% Let's hope expansion of active character does not really require arguments,
|
||||
% as we certainly don't want to go into expanding upfront token stream anyway.
|
||||
\expandafter\spx@verb@wrapPYG@iii#1{}{}{}{}{}{}{}{}{}Z#1%
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@iii#1#2Z{%
|
||||
\ifx\UTFviii@four@octets#1\let\next=\spx@verb@wrapPYG@four\else
|
||||
\ifx\UTFviii@three@octets#1\let\next=\spx@verb@wrapPYG@three\else
|
||||
\ifx\UTFviii@two@octets#1\let\next=\spx@verb@wrapPYG@two\else
|
||||
\let\next=\spx@verb@wrapPYG@one
|
||||
\fi\fi\fi
|
||||
\next
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@one #1{#1\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}%
|
||||
\long\def\spx@verb@wrapPYG@two #1#2{#1#2\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}%
|
||||
\long\def\spx@verb@wrapPYG@three #1#2#3{#1#2#3\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}%
|
||||
\long\def\spx@verb@wrapPYG@four #1#2#3#4{#1#2#3#4\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}%
|
||||
% Replace \PYG by itself applied one character at a time! This way breakpoints
|
||||
% can be inserted.
|
||||
\def\spx@verb@wrapPYG@PYG@onebyone#1#2#3{% #1 = \PYG, #2 = highlight spec, #3 = tokens
|
||||
\def\spx@verb@wrapPYG@PYG@spec{{#2}}%
|
||||
\futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i#3Z%
|
||||
}%
|
||||
\def\spx@verb@wrapPYG@PYG@i{%
|
||||
\ifx\spx@nexttokenZ\let\next=\spx@verb@wrapPYG@PYG@done\else
|
||||
\discretionary{}{\sphinxafterbreak}{}%
|
||||
\let\next\spx@verb@wrapPYG@PYG@ii
|
||||
\fi
|
||||
\next
|
||||
}%
|
||||
\def\spx@verb@wrapPYG@PYG@doneZ{\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}%
|
||||
\long\def\spx@verb@wrapPYG@PYG@ii#1{%
|
||||
\ifcat\noexpand~\noexpand#1\relax% active character
|
||||
\expandafter\spx@verb@wrapPYG@PYG@active
|
||||
\else % non-active character, control sequence such as \PYGZdl, or empty
|
||||
\expandafter\spx@verb@wrapPYG@PYG@one
|
||||
\fi {#1}%
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@PYG@active#1{%
|
||||
% Let's hope expansion of active character does not really require arguments,
|
||||
% as we certainly don't want to go into expanding upfront token stream anyway.
|
||||
\expandafter\spx@verb@wrapPYG@PYG@iii#1{}{}{}{}{}{}{}{}{}Z#1%
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@PYG@iii#1#2Z{%
|
||||
\ifx\UTFviii@four@octets#1\let\next=\spx@verb@wrapPYG@PYG@four\else
|
||||
\ifx\UTFviii@three@octets#1\let\next=\spx@verb@wrapPYG@PYG@three\else
|
||||
\ifx\UTFviii@two@octets#1\let\next=\spx@verb@wrapPYG@PYG@two\else
|
||||
\let\next=\spx@verb@wrapPYG@PYG@one
|
||||
\fi\fi\fi
|
||||
\next
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@PYG@one#1{%
|
||||
\expandafter\PYG\spx@verb@wrapPYG@PYG@spec{#1}%
|
||||
\futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@PYG@two#1#2{%
|
||||
\expandafter\PYG\spx@verb@wrapPYG@PYG@spec{#1#2}%
|
||||
\futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@PYG@three#1#2#3{%
|
||||
\expandafter\PYG\spx@verb@wrapPYG@PYG@spec{#1#2#3}%
|
||||
\futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i
|
||||
}%
|
||||
\long\def\spx@verb@wrapPYG@PYG@four#1#2#3#4{%
|
||||
\expandafter\PYG\spx@verb@wrapPYG@PYG@spec{#1#2#3#4}%
|
||||
\futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i
|
||||
}%
|
||||
\catcode`Z 11 %
|
||||
%
|
||||
\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
|
||||
\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
|
||||
% will not be separated from upcoming verbatim by a page break
|
||||
\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
|
||||
\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.
|
||||
% - The codeline counter will be increased only once.
|
||||
% - The wrapped material will not break across pages, it is impossible
|
||||
% 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).
|
||||
\let\sphinxVerbatimFormatLine\sphinxVerbatimFormatLineWrap
|
||||
\let\FV@Space\spx@verbatim@space
|
||||
% Allow breaks at special characters using \PYG... macros.
|
||||
\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
|
||||
\VerbatimEnvironment
|
||||
% 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: 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 (which itself is set to zero above)
|
||||
% \leftmargin will be set to zero by trivlist
|
||||
\rightmargin\z@
|
||||
\parindent \z@% becomes \itemindent. Default zero, but perhaps overwritten.
|
||||
\trivlist\item\relax
|
||||
\ifspx@inframed\setbox\sphinxVerbatim@ContentsBox\vbox\bgroup
|
||||
\@setminipage\hsize\linewidth
|
||||
% use bulk of minipage paragraph shape restores (this is needed
|
||||
% in indented contexts, at least for some)
|
||||
\textwidth\hsize \columnwidth\hsize \@totalleftmargin\z@
|
||||
\leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
|
||||
\else
|
||||
\ifsphinxverbatimwithminipage\noindent\begin{minipage}{\linewidth}\fi
|
||||
\MakeFramed {% adapted over from framed.sty's snugshade environment
|
||||
\advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize\@setminipage
|
||||
}%
|
||||
\fi
|
||||
% For grid placement from \strut's in \FancyVerbFormatLine
|
||||
\lineskip\z@skip
|
||||
% 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
|
||||
}
|
||||
{%
|
||||
\endOriginalVerbatim
|
||||
\ifspx@inframed
|
||||
\egroup % finish \sphinxVerbatim@ContentsBox vbox
|
||||
\nobreak % update page totals
|
||||
\ifdim\dimexpr\ht\sphinxVerbatim@ContentsBox+
|
||||
\dp\sphinxVerbatim@ContentsBox+
|
||||
\ht\sphinxVerbatim@TitleBox+
|
||||
\dp\sphinxVerbatim@TitleBox+
|
||||
2\fboxsep+2\fboxrule+
|
||||
% try to account for external frame parameters
|
||||
\FrameSep+\FrameRule+
|
||||
% Usage here of 2 baseline distances is empirical.
|
||||
% In border case where code-block fits barely in remaining space,
|
||||
% it gets framed and looks good but the outer frame may continue
|
||||
% on top of next page and give (if no contents after code-block)
|
||||
% an empty framed line, as testing showed.
|
||||
2\baselineskip+
|
||||
% now add all to accumulated page totals and compare to \pagegoal
|
||||
\pagetotal+\pagedepth>\pagegoal
|
||||
% long contents: do not \MakeFramed. Do make a caption (either before or
|
||||
% after) if title exists. Continuation hints across pagebreaks dropped.
|
||||
% FIXME? a bottom caption may end up isolated at top of next page
|
||||
% (no problem with a top caption, which is default)
|
||||
\spx@opt@verbatimwithframefalse
|
||||
\def\sphinxVerbatim@Title{\noindent\box\sphinxVerbatim@TitleBox\par}%
|
||||
\sphinxVerbatim@Before
|
||||
\noindent\unvbox\sphinxVerbatim@ContentsBox\par
|
||||
\sphinxVerbatim@After
|
||||
\else
|
||||
% short enough contents: use \MakeFramed. As it is nested, this requires
|
||||
% minipage encapsulation.
|
||||
\noindent\begin{minipage}{\linewidth}%
|
||||
\MakeFramed {% Use it now with the fetched contents
|
||||
\advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize\@setminipage
|
||||
}%
|
||||
\unvbox\sphinxVerbatim@ContentsBox
|
||||
% some of this may be superfluous:
|
||||
\par\unskip\@minipagefalse\endMakeFramed
|
||||
\end{minipage}%
|
||||
\fi
|
||||
\else % non-nested \MakeFramed
|
||||
\par\unskip\@minipagefalse\endMakeFramed % from framed.sty snugshade
|
||||
\ifsphinxverbatimwithminipage\end{minipage}\fi
|
||||
\fi
|
||||
\endtrivlist
|
||||
}
|
||||
\newenvironment {sphinxVerbatimNoFrame}
|
||||
{\spx@opt@verbatimwithframefalse
|
||||
\VerbatimEnvironment
|
||||
\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}%
|
||||
\VerbatimEnvironment
|
||||
\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\~% >, ~
|
||||
\do\textbackslash\\% \
|
||||
}
|
||||
\newcommand*\sphinxbreaksviaactiveinparsedliteral{%
|
||||
\sphinxbreaksviaactive % by default handles . , ; ? ! /
|
||||
\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}%
|
||||
% the \catcode13=5\relax (deactivate end of input lines) is left to callers
|
||||
\newcommand*{\sphinxunactivateextrasandspace}{\catcode32=10\relax
|
||||
\sphinxunactivateextras}%
|
||||
% alltt uses a monospace font and linebreaks at dashes (which are escaped
|
||||
% to \sphinxhyphen{} which expands to -\kern\z@) are inhibited with pdflatex.
|
||||
% Not with xelatex (cf \defaultfontfeatures in latex writer), so:
|
||||
\newcommand*{\sphinxhypheninparsedliteral}{\sphinxhyphennobreak}
|
||||
% 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}%
|
||||
\let\sphinxhyphen\sphinxhypheninparsedliteral
|
||||
\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}}
|
||||
|
||||
|
||||
%% INLINE MARK-UP
|
||||
%
|
||||
|
||||
% 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!
|
||||
% for the \endlinechar business, https://github.com/latex3/latex2e/issues/286
|
||||
\endlinechar\m@ne\everyeof{{\endlinechar13 #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}}%
|
||||
}}
|
||||
|
||||
% \sphinxupquote
|
||||
% 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,
|
||||
% and also at \ character (which is escaped to \textbackslash{}).
|
||||
\protected\def\sphinxtextbackslashbreakbefore
|
||||
{\discretionary{}{\sphinxafterbreak\sphinx@textbackslash}{\sphinx@textbackslash}}
|
||||
\protected\def\sphinxtextbackslashbreakafter
|
||||
{\discretionary{\sphinx@textbackslash}{\sphinxafterbreak}{\sphinx@textbackslash}}
|
||||
\let\sphinxtextbackslash\sphinxtextbackslashbreakafter
|
||||
% - is escaped to \sphinxhyphen{} and this default ensures no linebreak
|
||||
% behaviour (also with a non monospace font, or with xelatex)
|
||||
\newcommand*{\sphinxhyphenininlineliteral}{\sphinxhyphennobreak}
|
||||
% 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
|
||||
\let\sphinxhyphen\sphinxhyphenininlineliteral
|
||||
\ifspx@opt@inlineliteralwraps
|
||||
% break at . , ; ? ! /
|
||||
\sphinxbreaksviaactive
|
||||
% break also at \
|
||||
\setbox8=\hbox{\textbackslash}%
|
||||
\def\sphinx@textbackslash{\copy8}%
|
||||
\let\textbackslash\sphinxtextbackslash
|
||||
% by default, no continuation symbol on next line but may be added
|
||||
\let\sphinxafterbreak\sphinxafterbreakofinlineliteral
|
||||
% 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
|
||||
% TODO: using \@noligs as patched by upquote.sty is now unneeded because
|
||||
% either ` and ' are escaped (non-unicode engines) or they don't build
|
||||
% ligatures (unicode engines). Thus remove this and unify handling of `, <, >,
|
||||
% ' and - with the characters . , ; ? ! / as handled via
|
||||
% \sphinxbreaksviaactive.
|
||||
% Hence \sphinx@do@noligs will be removed, or rather replaced with code
|
||||
% inserting discretionaries, as they allow a continuation symbol on start of
|
||||
% next line to achieve common design with code-blocks.
|
||||
\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\-}%
|
||||
\let\sphinxafterbreakofinlineliteral\empty
|
||||
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5e6930c10ed81ae42a6ca29db495df51
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,122 @@
|
||||
%% NUMBERING OF FIGURES, TABLES, AND LITERAL BLOCKS
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexnumfig.sty}[2021/01/27 numbering]
|
||||
|
||||
% Requires: remreset (old LaTeX only)
|
||||
% relates to numfig and numfig_secnum_depth configuration variables
|
||||
|
||||
% LaTeX 2018-04-01 and later provides \@removefromreset
|
||||
\ltx@ifundefined{@removefromreset}
|
||||
{\RequirePackage{remreset}}
|
||||
{}% avoid warning
|
||||
% Everything is delayed to \begin{document} to allow hyperref patches into
|
||||
% \newcounter to solve duplicate label problems for internal hyperlinks to
|
||||
% code listings (literalblock counter). User or extension re-definitions of
|
||||
% \theliteralblock, et al., thus have also to be delayed. (changed at 3.5.0)
|
||||
\AtBeginDocument{%
|
||||
\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
|
||||
}% end of big \AtBeginDocument
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd7a54448d189584687489e42c1eca07
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,249 @@
|
||||
%% MODULE RELEASE DATA AND OBJECT DESCRIPTIONS
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexobjects.sty}[2022/01/13 documentation environments]
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer:
|
||||
%
|
||||
% - environments
|
||||
%
|
||||
% - fulllineitems
|
||||
% - productionlist
|
||||
% - optionlist
|
||||
% - DUlineblock (also "lineblock")
|
||||
%
|
||||
% - macros
|
||||
%
|
||||
% - \DUrole
|
||||
% - various legacy support macros related to author and release
|
||||
% data of documented objects and modules.
|
||||
|
||||
% \moduleauthor{name}{email}
|
||||
\newcommand{\moduleauthor}[2]{}
|
||||
|
||||
% \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}{\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{\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
|
||||
% is a good thing.
|
||||
%
|
||||
\newcommand{\py@authoraddress}{}
|
||||
\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}}
|
||||
|
||||
% {fulllineitems} is the main environment for object descriptions.
|
||||
%
|
||||
% With 4.0.0 \pysigline (and \pysiglinewithargsret), used in a fulllineitems
|
||||
% environment the #1 will already be of the width which is computed here, i.e.
|
||||
% the available width on line, so the \makebox becomes a bit superfluous
|
||||
\newcommand{\py@itemnewline}[1]{% macro used as \makelabel in fulllineitems
|
||||
% Memo: this presupposes \itemindent is 0pt
|
||||
\kern\labelsep % because \@labels core latex box does \hskip-\labelsep
|
||||
\makebox[\dimexpr\linewidth+\labelwidth\relax][l]{#1}%
|
||||
\kern-\labelsep % because at end of \@labels box there is \hskip\labelsep
|
||||
}
|
||||
|
||||
\newenvironment{fulllineitems}{%
|
||||
\begin{list}{}{\labelwidth \leftmargin
|
||||
\rightmargin \z@ \topsep -\parskip \partopsep \parskip
|
||||
\itemsep -\parsep
|
||||
\let\makelabel=\py@itemnewline}%
|
||||
}{\end{list}}
|
||||
|
||||
% Signatures, possibly multi-line
|
||||
%
|
||||
% For legacy reasons Sphinx uses LaTeX \list and \item's for signatures
|
||||
% This is delicate:
|
||||
% - the actual item label is not typeset immediately by \item but later as part
|
||||
% of the \everypar which will be triggered by either next paragraph or a manual
|
||||
% \leavevmode, or if nothing in-between by the next \item,
|
||||
% - \begingroup <set-up>\item[foo] <setup>\endgroup leads to errors,
|
||||
% - vertical space depends on \parskip and \itemsep values in somewhat
|
||||
% subtle manners.
|
||||
%
|
||||
% Since the 2022/01/13 version things are simpler as \parskip is simply set
|
||||
% to zero during execution of \pysigline/\pysiglinewithargsret
|
||||
%
|
||||
% Parameter for separation via \itemsep of multiple signatures with common desc
|
||||
\newlength\sphinxsignaturesep
|
||||
\setlength\sphinxsignaturesep{\smallskipamount}
|
||||
% latex.py outputs mark-up like this:
|
||||
% \pysigstartsignatures <signatures> \pysigstopsignatures <actual desc>
|
||||
\newcommand{\pysigstartsignatures}{%
|
||||
% store current \parskip and \itemsep
|
||||
\edef\pysig@restore@itemsep@and@parskip{%
|
||||
\itemsep\the\itemsep\relax
|
||||
\parskip\the\parskip\relax
|
||||
}%
|
||||
% set them to control the spacing between signatures sharing common desc
|
||||
\parskip\z@skip
|
||||
\itemsep\sphinxsignaturesep
|
||||
}
|
||||
\newcommand{\pysigstopsignatures}{%
|
||||
% 1) encourage a pagebreak in an attempt to try to avoid last
|
||||
% signature ending up separated from description (due to voodoo next)
|
||||
\penalty-100
|
||||
% 2) some voodoo to separate last signature from description in a manner
|
||||
% robust with respect to the latter being itself a LaTeX list object
|
||||
\leavevmode\par\kern-\baselineskip\item[\strut]
|
||||
%
|
||||
\leavevmode
|
||||
% it is important \leavevmode was issued before the \parskip reset, and
|
||||
% it is also needed for the case of an object desc itself a LaTeX \list
|
||||
% now restore \itemsep and \parskip
|
||||
\pysig@restore@itemsep@and@parskip
|
||||
}
|
||||
%
|
||||
% Use a \parbox to accomodate long argument list in signatures
|
||||
% LaTeX did not imagine that an \item label could need multi-line rendering
|
||||
\newlength{\py@argswidth}
|
||||
\newcommand{\py@sigparams}[2]{%
|
||||
% The \py@argswidth has been computed in \pysiglinewithargsret to make the
|
||||
% argument list use full available width
|
||||
\parbox[t]{\py@argswidth}{\raggedright #1\sphinxcode{)}#2\strut}%
|
||||
% final strut is to help get correct vertical separation
|
||||
}
|
||||
\newcommand{\pysigline}[1]{%
|
||||
% as \py@argswidth is available, we use it but no "args" here
|
||||
% the \relax\relax is because \py@argswidth is a "skip" variable
|
||||
% this will make the label occupy the full available linewidth
|
||||
\py@argswidth=\dimexpr\linewidth+\labelwidth\relax\relax
|
||||
\item[{\parbox[t]{\py@argswidth}{\raggedright #1\strut}}]
|
||||
\pysigadjustitemsep
|
||||
}
|
||||
\newcommand{\pysiglinewithargsret}[3]{%
|
||||
% as #1 may contain a footnote using \label we need to make \label
|
||||
% a no-op here to avoid LaTeX complaining about duplicates
|
||||
\let\spx@label\label\let\label\@gobble
|
||||
\settowidth{\py@argswidth}{#1\sphinxcode{(}}%
|
||||
\let\label\spx@label
|
||||
\py@argswidth=\dimexpr\linewidth+\labelwidth-\py@argswidth\relax\relax
|
||||
\item[{#1\sphinxcode{(}\py@sigparams{#2}{#3}\strut}]
|
||||
\pysigadjustitemsep
|
||||
}
|
||||
\newcommand{\pysigadjustitemsep}{%
|
||||
% adjust \itemsep to control the separation with the next signature
|
||||
% sharing common description
|
||||
\ifsphinxsigismultiline
|
||||
% inside a multiline signature, no extra vertical spacing
|
||||
% ("multiline" here does not refer to possibly long
|
||||
% list of arguments, but to a cpp domain feature)
|
||||
\itemsep\z@skip
|
||||
\else
|
||||
\itemsep\sphinxsignaturesep
|
||||
\fi
|
||||
}
|
||||
\newif\ifsphinxsigismultiline
|
||||
\newcommand{\pysigstartmultiline}{\sphinxsigismultilinetrue}%
|
||||
\newcommand{\pysigstopmultiline}{\sphinxsigismultilinefalse\itemsep\sphinxsignaturesep}%
|
||||
|
||||
% Production lists
|
||||
%
|
||||
\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]}%
|
||||
}{%
|
||||
\end{description}%
|
||||
}
|
||||
|
||||
%% FROM DOCTUTILS LATEX WRITER
|
||||
%
|
||||
% The following is stuff copied from docutils' latex writer.
|
||||
%
|
||||
\newcommand{\optionlistlabel}[1]{\normalfont\bfseries #1 \hfill}% \bf deprecated
|
||||
\newenvironment{optionlist}[1]
|
||||
{\begin{list}{}
|
||||
{\setlength{\labelwidth}{#1}
|
||||
\setlength{\rightmargin}{1cm}
|
||||
\setlength{\leftmargin}{\rightmargin}
|
||||
\addtolength{\leftmargin}{\labelwidth}
|
||||
\addtolength{\leftmargin}{\labelsep}
|
||||
\renewcommand{\makelabel}{\optionlistlabel}}
|
||||
}{\end{list}}
|
||||
|
||||
\newlength{\lineblockindentation}
|
||||
\setlength{\lineblockindentation}{2.5em}
|
||||
\newenvironment{lineblock}[1]
|
||||
{\begin{list}{}
|
||||
{\setlength{\partopsep}{\parskip}
|
||||
\addtolength{\partopsep}{\baselineskip}
|
||||
\topsep0pt\itemsep0.15\baselineskip\parsep0pt
|
||||
\leftmargin#1\relax}
|
||||
\raggedright}
|
||||
{\end{list}}
|
||||
|
||||
% From docutils.writers.latex2e
|
||||
% inline markup (custom roles)
|
||||
% \DUrole{#1}{#2} tries \DUrole#1{#2}
|
||||
\providecommand*{\DUrole}[2]{%
|
||||
\ifcsname DUrole\detokenize{#1}\endcsname
|
||||
\csname DUrole\detokenize{#1}\endcsname{#2}%
|
||||
\else% backwards compatibility: try \docutilsrole#1{#2}
|
||||
\ifcsname docutilsrole\detokenize{#1}\endcsname
|
||||
\csname docutilsrole\detokenize{#1}\endcsname{#2}%
|
||||
\else
|
||||
#2%
|
||||
\fi
|
||||
\fi
|
||||
}
|
||||
|
||||
\providecommand*{\DUprovidelength}[2]{%
|
||||
\ifdefined#1\else\newlength{#1}\setlength{#1}{#2}\fi
|
||||
}
|
||||
|
||||
\DUprovidelength{\DUlineblockindent}{2.5em}
|
||||
\ifdefined\DUlineblock\else
|
||||
\newenvironment{DUlineblock}[1]{%
|
||||
\list{}{\setlength{\partopsep}{\parskip}
|
||||
\addtolength{\partopsep}{\baselineskip}
|
||||
\setlength{\topsep}{0pt}
|
||||
\setlength{\itemsep}{0.15\baselineskip}
|
||||
\setlength{\parsep}{0pt}
|
||||
\setlength{\leftmargin}{#1}}
|
||||
\raggedright
|
||||
}
|
||||
{\endlist}
|
||||
\fi
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd1c9435df18c3f4aa77f6bab4074ff2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,100 @@
|
||||
%% TOPIC AND CONTENTS BOXES
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexshadowbox.sty}[2021/01/27 sphinxShadowBox]
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer:
|
||||
%
|
||||
% - sphinxShadowBox (environment)
|
||||
%
|
||||
% Dependencies (they do not need to be defined at time of loading):
|
||||
%
|
||||
% - of course the various colour and dimension options handled via sphinx.sty
|
||||
% - dimension register \spx@image@maxheight from sphinxlatexgraphics.sty
|
||||
% - \savenotes/\spewnotes from sphinxpackagefootnote
|
||||
% - \ifspx@inframed defined in sphinx.sty
|
||||
%
|
||||
% Requires:
|
||||
\RequirePackage{framed}
|
||||
|
||||
% 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
|
||||
\setbox\@tempboxa
|
||||
\hbox{\vrule\@width\sphinxshadowrule
|
||||
\vbox{\hrule\@height\sphinxshadowrule
|
||||
\kern\sphinxshadowsep
|
||||
\hbox{\kern\sphinxshadowsep #1\kern\sphinxshadowsep}%
|
||||
\kern\sphinxshadowsep
|
||||
\hrule\@height\sphinxshadowrule}%
|
||||
\vrule\@width\sphinxshadowrule}%
|
||||
% Now we add the shadow, like \shadowbox from fancybox.sty would do
|
||||
\dimen@\dimexpr.5\sphinxshadowrule+\sphinxshadowsize\relax
|
||||
\hbox{\vbox{\offinterlineskip
|
||||
\hbox{\copy\@tempboxa\kern-.5\sphinxshadowrule
|
||||
% add shadow on right side
|
||||
\lower\sphinxshadowsize
|
||||
\hbox{\vrule\@height\ht\@tempboxa \@width\dimen@}%
|
||||
}%
|
||||
\kern-\dimen@ % shift back vertically to bottom of frame
|
||||
% and add shadow at bottom
|
||||
\moveright\sphinxshadowsize
|
||||
\vbox{\hrule\@width\wd\@tempboxa \@height\dimen@}%
|
||||
}%
|
||||
% move left by the size of right shadow so shadow adds no width
|
||||
\kern-\sphinxshadowsize
|
||||
}%
|
||||
\endgroup
|
||||
}
|
||||
|
||||
% use framed.sty to allow page breaks in frame+shadow
|
||||
% works well inside Lists and Quote-like environments
|
||||
% produced by ``topic'' directive (or local contents)
|
||||
% could nest if LaTeX writer authorized it
|
||||
\newenvironment{sphinxShadowBox}
|
||||
{\def\FrameCommand {\spx@ShadowFBox }%
|
||||
\advance\spx@image@maxheight
|
||||
-\dimexpr2\sphinxshadowrule
|
||||
+2\sphinxshadowsep
|
||||
+\sphinxshadowsize
|
||||
+\baselineskip\relax
|
||||
% configure framed.sty not to add extra vertical spacing
|
||||
\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
|
||||
\MakeFramed {\spx@inframedtrue
|
||||
% framed.sty puts into "\width" the added width (=2shadowsep+2shadowrule)
|
||||
% adjust \hsize to what the contents must use
|
||||
\advance\hsize-\width
|
||||
% adjust LaTeX parameters to behave properly in indented/quoted contexts
|
||||
\FrameRestore
|
||||
% typeset the contents as in a minipage (Sphinx <= 1.4.1 used a minipage and
|
||||
% 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
|
||||
\let\@listdepth\@mplistdepth \@mplistdepth\z@
|
||||
\@minipagerestore
|
||||
\@setminipage
|
||||
}%
|
||||
}%
|
||||
{% insert the "endminipage" code
|
||||
\par\unskip
|
||||
\@minipagefalse
|
||||
\endMakeFramed
|
||||
\ifspx@inframed\end{minipage}\fi
|
||||
\endtrivlist
|
||||
% output the stored footnotes
|
||||
\spewnotes
|
||||
}
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bfb853e74c9353442927d9fa76b1b89f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,83 @@
|
||||
%% TITLES
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexstyleheadings.sty}[2021/01/27 headings]
|
||||
|
||||
\RequirePackage[nobottomtitles*]{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
|
||||
}%
|
||||
}{}
|
||||
|
||||
% 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}
|
||||
\titleformat{\subsection}{\large\py@HeaderFamily}%
|
||||
{\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}
|
||||
\titleformat{\subsubsection}{\py@HeaderFamily}%
|
||||
{\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}
|
||||
% 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}
|
||||
\titleformat{\subparagraph}{\py@HeaderFamily}%
|
||||
{\py@TitleColor\thesubparagraph}{0.5em}{\py@TitleColor}
|
||||
|
||||
|
||||
% 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
|
||||
|
||||
% fix fncychap's bug which uses prematurely the \textwidth value
|
||||
\@ifpackagewith{fncychap}{Bjornstrup}
|
||||
{\AtBeginDocument{\mylen\textwidth\advance\mylen-2\myhi}}%
|
||||
{}% <-- "false" clause of \@ifpackagewith
|
||||
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: df6a7bf6f2281264abf6ae335054c08c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,79 @@
|
||||
%% PAGE STYLING
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexstylepage.sty}[2021/01/27 page styling]
|
||||
|
||||
% Separate paragraphs by space by default.
|
||||
\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}}
|
||||
|
||||
% Style parameters and macros used by most documents here
|
||||
\raggedbottom
|
||||
\sloppy
|
||||
\hbadness = 5000 % don't print trivial gripes
|
||||
|
||||
% Require package fancyhdr except under memoir class
|
||||
\@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}}
|
||||
% Use \pagestyle{normal} as the primary pagestyle for text.
|
||||
% Redefine the 'normal' header/footer style when using "fancyhdr" package:
|
||||
\@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{}
|
||||
\fancyfoot[RO]{{\py@HeaderFamily\thepage}}
|
||||
\fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}}
|
||||
\fancyhead[RO]{{\py@HeaderFamily \@title\sphinxheadercomma\py@release}}
|
||||
\if@twoside
|
||||
\fancyfoot[LE]{{\py@HeaderFamily\thepage}}
|
||||
\fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}}
|
||||
\fancyhead[LE]{{\py@HeaderFamily \@title\sphinxheadercomma\py@release}}
|
||||
\fi
|
||||
\renewcommand{\headrulewidth}{0.4pt}
|
||||
\renewcommand{\footrulewidth}{0.4pt}
|
||||
% define chaptermark with \@chappos when \@chappos is available for Japanese
|
||||
\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 `clean.'
|
||||
\fancypagestyle{plain}{
|
||||
\fancyhf{}
|
||||
\fancyfoot[RO]{{\py@HeaderFamily\thepage}}
|
||||
\if@twoside\fancyfoot[LE]{{\py@HeaderFamily\thepage}}\fi
|
||||
\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
|
||||
}
|
||||
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6867e23c9c258b84eae795bea8d5142e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,134 @@
|
||||
%% TEXT STYLING
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatexstyletext.sty}[2021/12/06 text styling]
|
||||
|
||||
% Basically everything here consists of macros which are part of the latex
|
||||
% markup produced by the Sphinx latex writer
|
||||
|
||||
% 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\sphinxkeyboard#1{\sphinxcode{#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]}}}
|
||||
|
||||
% additional customizable styling
|
||||
\def\sphinxstyleindexentry #1{\texttt{#1}}
|
||||
\def\sphinxstyleindexextra #1{ (\emph{#1})}
|
||||
\def\sphinxstyleindexpageref #1{, \pageref{#1}}
|
||||
\def\sphinxstyleindexpagemain#1{\textbf{#1}}
|
||||
\def\spxentry{\@backslashchar spxentry}% let to \sphinxstyleindexentry in index
|
||||
\def\spxextra{\@backslashchar spxextra}% 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
|
||||
% TODO: examine if \sphinxhref, \sphinxurl, \sphinnolinkurl should be handled
|
||||
\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
|
||||
\let\sphinxhyphen\sphinxhyphenforbookmarks
|
||||
}}
|
||||
|
||||
% Special characters
|
||||
%
|
||||
% The \kern\z@ is to prevent en-dash and em-dash TeX ligatures.
|
||||
% A linebreak can occur after the dash in regular text (this is
|
||||
% normal behaviour of "-" in TeX, it is not related to \kern\z@).
|
||||
%
|
||||
% Parsed-literals and inline literals also use the \sphinxhyphen
|
||||
% but linebreaks there are prevented due to monospace font family.
|
||||
% (xelatex needs a special addition, cf. sphinxlatexliterals.sty)
|
||||
%
|
||||
% Inside code-blocks, dashes are escaped via another macro, from
|
||||
% Pygments latex output (search for \PYGZhy in sphinxlatexliterals.sty),
|
||||
% and are configured to allow linebreaks despite the monospace font.
|
||||
% (the #1 swallows the {} from \sphinxhyphen{} mark-up)
|
||||
\protected\def\sphinxhyphen#1{-\kern\z@}
|
||||
\protected\def\sphinxhyphennobreak#1{\mbox{-}}
|
||||
% The {} from texescape mark-up is kept, else -- gives en-dash in PDF bookmark
|
||||
\def\sphinxhyphenforbookmarks{-}
|
||||
|
||||
% 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}}%
|
||||
|
||||
% Tell TeX about pathological hyphenation cases:
|
||||
\hyphenation{Base-HTTP-Re-quest-Hand-ler}
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac27865147be6cb40ace962427e5d893
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,481 @@
|
||||
%% TABLES (WITH SUPPORT FOR MERGED CELLS OF GENERAL CONTENTS)
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxlatextables.sty}[2021/01/27 tables]%
|
||||
|
||||
% Provides support for this output mark-up from Sphinx latex writer
|
||||
% and table templates:
|
||||
%
|
||||
% - the tabulary and longtable environments from the eponymous packages
|
||||
% - the varwidth environment
|
||||
% - the >{} etc mark-up possible in tabularcolumns is from array package
|
||||
% which is loaded by longtable and tabulary
|
||||
% - \X, \Y, T column types; others (L, C, R, J) are from tabulary package
|
||||
% - \sphinxaftertopcaption
|
||||
% - \sphinxatlongtableend
|
||||
% - \sphinxatlongtablestart
|
||||
% - \sphinxattableend
|
||||
% - \sphinxattablestart
|
||||
% - \sphinxcapstartof
|
||||
% - \sphinxcolwidth
|
||||
% - \sphinxlongtablecapskipadjust
|
||||
% - \sphinxmultirow
|
||||
% - \sphinxstartmulticolumn
|
||||
% - \sphinxstopmulticolumn
|
||||
% - \sphinxtablestrut
|
||||
% - \sphinxthecaptionisattop
|
||||
% - \sphinxthelongtablecaptionisattop
|
||||
%
|
||||
% Executes \RequirePackage for:
|
||||
%
|
||||
% - tabulary
|
||||
% - longtable
|
||||
% - varwidth
|
||||
%
|
||||
% Extends tabulary and longtable via patches and custom macros to support
|
||||
% merged cells possibly containing code-blocks in complex tables
|
||||
|
||||
\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
|
||||
% sphinxpackagemulticell.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{\@nobreakfalse % latex3/latex2e#173
|
||||
\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}}%
|
||||
}%
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%
|
||||
% --- 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
|
||||
% \arraystretch is 1, as LaTeX's does not obey \arraystretch in "p"
|
||||
% multi-line contents, only first and last line...)
|
||||
%
|
||||
% TODO: examine the situation with \arraystretch > 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
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b4816d4ca19eb8458e5e35ffaa577e6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,128 @@
|
||||
%
|
||||
% sphinxmanual.cls for Sphinx (https://www.sphinx-doc.org/)
|
||||
%
|
||||
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
\ProvidesClass{sphinxmanual}[2019/12/01 v2.3.0 Document class (Sphinx manual)]
|
||||
|
||||
% chapters starting at odd pages (overridden by 'openany' document option)
|
||||
\PassOptionsToClass{openright}{\sphinxdocclass}
|
||||
|
||||
% 'oneside' option overriding the 'twoside' default
|
||||
\newif\if@oneside
|
||||
\DeclareOption{oneside}{\@onesidetrue}
|
||||
% Pass remaining document options to the parent class.
|
||||
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}}
|
||||
\ProcessOptions\relax
|
||||
|
||||
% Defaults two-side document
|
||||
\if@oneside
|
||||
% nothing to do (oneside is the default)
|
||||
\else
|
||||
\PassOptionsToClass{twoside}{\sphinxdocclass}
|
||||
\fi
|
||||
|
||||
\LoadClass{\sphinxdocclass}
|
||||
|
||||
% Set some sane defaults for section numbering depth and TOC depth. You can
|
||||
% reset these counters in your preamble.
|
||||
%
|
||||
\setcounter{secnumdepth}{2}
|
||||
\setcounter{tocdepth}{1}
|
||||
|
||||
% Adapt \and command to the flushright context of \sphinxmaketitle, to
|
||||
% avoid ragged line endings if author names do not fit all on one single line
|
||||
\DeclareRobustCommand{\and}{%
|
||||
\end{tabular}\kern-\tabcolsep
|
||||
\allowbreak
|
||||
\hskip\dimexpr1em+\tabcolsep\@plus.17fil\begin{tabular}[t]{c}%
|
||||
}%
|
||||
% If it is desired that each author name be on its own line, use in preamble:
|
||||
%\DeclareRobustCommand{\and}{%
|
||||
% \end{tabular}\kern-\tabcolsep\\\begin{tabular}[t]{c}%
|
||||
%}%
|
||||
% Change the title page to look a bit better, and fit in with the fncychap
|
||||
% ``Bjarne'' style a bit better.
|
||||
%
|
||||
\newcommand{\sphinxmaketitle}{%
|
||||
\let\sphinxrestorepageanchorsetting\relax
|
||||
\ifHy@pageanchor\def\sphinxrestorepageanchorsetting{\Hy@pageanchortrue}\fi
|
||||
\hypersetup{pageanchor=false}% avoid duplicate destination warnings
|
||||
\begin{titlepage}%
|
||||
\let\footnotesize\small
|
||||
\let\footnoterule\relax
|
||||
\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
|
||||
\begin{flushright}%
|
||||
\sphinxlogo
|
||||
\py@HeaderFamily
|
||||
{\Huge \@title \par}
|
||||
{\itshape\LARGE \py@release\releaseinfo \par}
|
||||
\vfill
|
||||
{\LARGE
|
||||
\begin{tabular}[t]{c}
|
||||
\@author
|
||||
\end{tabular}\kern-\tabcolsep
|
||||
\par}
|
||||
\vfill\vfill
|
||||
{\large
|
||||
\@date \par
|
||||
\vfill
|
||||
\py@authoraddress \par
|
||||
}%
|
||||
\end{flushright}%\par
|
||||
\@thanks
|
||||
\end{titlepage}%
|
||||
\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
|
||||
\sphinxrestorepageanchorsetting
|
||||
}
|
||||
|
||||
\newcommand{\sphinxtableofcontents}{%
|
||||
\pagenumbering{roman}%
|
||||
\begingroup
|
||||
\parskip \z@skip
|
||||
\sphinxtableofcontentshook
|
||||
\tableofcontents
|
||||
\endgroup
|
||||
% before resetting page counter, let's do the right thing.
|
||||
\if@openright\cleardoublepage\else\clearpage\fi
|
||||
\pagenumbering{arabic}%
|
||||
}
|
||||
|
||||
% 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.
|
||||
%
|
||||
\newcommand{\sphinxtableofcontentshook}{%
|
||||
\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}}%
|
||||
\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}}%
|
||||
}
|
||||
|
||||
% Fix the bibliography environment to add an entry to the Table of
|
||||
% Contents.
|
||||
% For a report document class this environment is a chapter.
|
||||
%
|
||||
\newenvironment{sphinxthebibliography}[1]{%
|
||||
\if@openright\cleardoublepage\else\clearpage\fi
|
||||
% \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}
|
||||
{\newenvironment{sphinxtheindex}{\begin{theindex}}{\end{theindex}}}
|
||||
{\newenvironment{sphinxtheindex}{%
|
||||
\if@openright\cleardoublepage\else\clearpage\fi
|
||||
\phantomsection % needed as no chapter, section, ... created
|
||||
\begin{theindex}%
|
||||
\addcontentsline{toc}{chapter}{\indexname}}{\end{theindex}}}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5744f261c4035344d8ecfdbe015c13f2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,21 @@
|
||||
%
|
||||
% sphinxmessages.sty
|
||||
%
|
||||
% message resources for Sphinx
|
||||
%
|
||||
\ProvidesPackage{sphinxmessages}[2019/01/04 v2.0 Localized LaTeX macros (Sphinx team)]
|
||||
|
||||
\renewcommand{\literalblockcontinuedname}{continued from previous page}
|
||||
\renewcommand{\literalblockcontinuesname}{continues on next page}
|
||||
\renewcommand{\sphinxnonalphabeticalgroupname}{Non\sphinxhyphen{}alphabetical}
|
||||
\renewcommand{\sphinxsymbolsname}{Symbols}
|
||||
\renewcommand{\sphinxnumbersname}{Numbers}
|
||||
\def\pageautorefname{page}
|
||||
|
||||
\addto\captionsenglish{\renewcommand{\figurename}{Fig.\@{} }}
|
||||
\def\fnum@figure{\figurename\thefigure{}}
|
||||
|
||||
\addto\captionsenglish{\renewcommand{\tablename}{Table }}
|
||||
\def\fnum@table{\tablename\thetable{}}
|
||||
|
||||
\addto\captionsenglish{\renewcommand{\literalblockname}{Listing}}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 16e17042fc4b13b4bb14eb77a9c4b97b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,54 @@
|
||||
%% OPTIONS FOR GEOMETRY
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxoptionsgeometry.sty}[2021/01/27 geometry]
|
||||
|
||||
% 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
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ceb88b617e2db1b4bb38168e8f7661d7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,35 @@
|
||||
%% Bookmarks and hyperlinks
|
||||
%
|
||||
% change this info string if making any custom modification
|
||||
\ProvidesFile{sphinxoptionshyperref.sty}[2021/01/27 hyperref]
|
||||
|
||||
% 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
|
||||
|
||||
\ifx\@jsc@uplatextrue\@undefined\else
|
||||
\PassOptionsToPackage{setpagesize=false}{hyperref}
|
||||
\fi
|
||||
|
||||
% These options can be overridden inside 'hyperref' key
|
||||
% or by later use of \hypersetup.
|
||||
\PassOptionsToPackage{colorlinks,breaklinks,%
|
||||
linkcolor=InnerLinkColor,filecolor=OuterLinkColor,%
|
||||
menucolor=OuterLinkColor,urlcolor=OuterLinkColor,%
|
||||
citecolor=InnerLinkColor}{hyperref}
|
||||
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c92662eee4f4ff54386cd1064ce01657
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,55 @@
|
||||
%% CYRILLIC IN NON-CYRILLIC DOCUMENTS (pdflatex only)
|
||||
%
|
||||
% refs: https://tex.stackexchange.com/q/460271/
|
||||
\ProvidesPackage{sphinxpackagecyrillic}%
|
||||
[2018/11/21 v2.0 support for Cyrillic in non-Cyrillic documents]
|
||||
\RequirePackage{kvoptions}
|
||||
\SetupKeyvalOptions{prefix=spx@cyropt@} % use \spx@cyropt@ prefix
|
||||
\DeclareBoolOption[false]{Xtwo}
|
||||
\DeclareBoolOption[false]{TtwoA}
|
||||
\DeclareDefaultOption{\@unknownoptionerror}
|
||||
\ProcessLocalKeyvalOptions* % ignore class options
|
||||
|
||||
\ifspx@cyropt@Xtwo
|
||||
% original code by tex.sx user egreg (updated 2019/10/28):
|
||||
% https://tex.stackexchange.com/a/460325/
|
||||
% 159 Cyrillic glyphs as available in X2 TeX 8bit font encoding
|
||||
% This assumes inputenc loaded with utf8 option, or LaTeX release
|
||||
% as recent as 2018/04/01 which does it automatically.
|
||||
\@tfor\next:=%
|
||||
{Ё}{Ђ}{Є}{Ѕ}{І}{Ј}{Љ}{Њ}{Ћ}{Ў}{Џ}{А}{Б}{В}{Г}{Д}{Е}{Ж}{З}{И}{Й}%
|
||||
{К}{Л}{М}{Н}{О}{П}{Р}{С}{Т}{У}{Ф}{Х}{Ц}{Ч}{Ш}{Щ}{Ъ}{Ы}{Ь}{Э}{Ю}%
|
||||
{Я}{а}{б}{в}{г}{д}{е}{ж}{з}{и}{й}{к}{л}{м}{н}{о}{п}{р}{с}{т}{у}%
|
||||
{ф}{х}{ц}{ч}{ш}{щ}{ъ}{ы}{ь}{э}{ю}{я}{ё}{ђ}{є}{ѕ}{і}{ј}{љ}{њ}{ћ}%
|
||||
{ў}{џ}{Ѣ}{ѣ}{Ѫ}{ѫ}{Ѵ}{ѵ}{Ґ}{ґ}{Ғ}{ғ}{Ҕ}{ҕ}{Җ}{җ}{Ҙ}{ҙ}{Қ}{қ}{Ҝ}{ҝ}%
|
||||
{Ҟ}{ҟ}{Ҡ}{ҡ}{Ң}{ң}{Ҥ}{ҥ}{Ҧ}{ҧ}{Ҩ}{ҩ}{Ҫ}{ҫ}{Ҭ}{ҭ}{Ү}{ү}{Ұ}{ұ}{Ҳ}{ҳ}%
|
||||
{Ҵ}{ҵ}{Ҷ}{ҷ}{Ҹ}{ҹ}{Һ}{һ}{Ҽ}{ҽ}{Ҿ}{ҿ}{Ӏ}{Ӄ}{ӄ}{Ӆ}{ӆ}{Ӈ}{ӈ}{Ӌ}{ӌ}%
|
||||
{Ӎ}{ӎ}{Ӕ}{ӕ}{Ә}{ә}{Ӡ}{ӡ}{Ө}{ө}\do
|
||||
{%
|
||||
\begingroup\def\IeC{\protect\DeclareTextSymbolDefault}%
|
||||
\protected@edef\@temp{\endgroup
|
||||
\@ifl@t@r{\fmtversion}{2019/10/01}{\csname u8:\next\endcsname}{\next}}%
|
||||
\@temp{X2}%
|
||||
}%
|
||||
\else
|
||||
\ifspx@cyropt@TtwoA
|
||||
% original code by tex.sx user jfbu:
|
||||
% https://tex.stackexchange.com/a/460305/
|
||||
% 63*2+1=127 Cyrillic glyphs as found in T2A 8bit TeX font-encoding
|
||||
\@tfor\@tempa:=%
|
||||
{ae}{a}{b}{chrdsc}{chvcrs}{ch}{c}{dje}{dze}{dzhe}{d}{erev}{ery}{e}%
|
||||
{f}{ghcrs}{gup}{g}{hdsc}{hrdsn}{h}{ie}{ii}{ishrt}{i}{je}%
|
||||
{kbeak}{kdsc}{kvcrs}{k}{lje}{l}{m}{ndsc}{ng}{nje}{n}{otld}{o}{p}{r}%
|
||||
{schwa}{sdsc}{sftsn}{shch}{shha}{sh}{s}{tshe}{t}{ushrt}{u}{v}%
|
||||
{ya}{yhcrs}{yi}{yo}{yu}{y}{zdsc}{zhdsc}{zh}{z}\do
|
||||
{%
|
||||
\expandafter\DeclareTextSymbolDefault\expandafter
|
||||
{\csname cyr\@tempa\endcsname}{T2A}%
|
||||
\expandafter\uppercase\expandafter{\expandafter
|
||||
\def\expandafter\@tempa\expandafter{\@tempa}}%
|
||||
\expandafter\DeclareTextSymbolDefault\expandafter
|
||||
{\csname CYR\@tempa\endcsname}{T2A}%
|
||||
}%
|
||||
\DeclareTextSymbolDefault{\CYRpalochka}{T2A}%
|
||||
\fi\fi
|
||||
\endinput
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a66dbb4e32111b42975bfcc32e562b0
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,432 @@
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesPackage{sphinxpackagefootnote}%
|
||||
[2022/02/12 v4.5.0 Sphinx custom footnotehyper package (Sphinx team)]
|
||||
%%
|
||||
%% Package: sphinxpackagefootnote
|
||||
%% Version: based on footnotehyper.sty 2021/02/04 v1.1d
|
||||
%% https://www.ctan.org/pkg/footnotehyper
|
||||
%% License: the one applying to Sphinx
|
||||
%%
|
||||
% Provides support for footnote mark-up from Sphinx latex writer:
|
||||
% - "footnote" and "footnotetext" environments allowing verbatim material
|
||||
% - "savenotes" environment for wrapping environments, such as for tables
|
||||
% which have problems with LaTeX footnotes
|
||||
% - hyperlinks
|
||||
%
|
||||
% Sphinx uses exclusively this mark-up for footnotes:
|
||||
% - \begin{footnote}[N]
|
||||
% - \begin{footnotetext}[N]
|
||||
% - \sphinxfootnotemark[N]
|
||||
% where N is a number.
|
||||
%
|
||||
%% Some small differences from upstream footnotehyper.sty:
|
||||
%% - a tabulary compatibility layer (partial but enough for Sphinx),
|
||||
%% - usage of \spx@opt@BeforeFootnote
|
||||
%% - usage of \sphinxunactivateextrasandspace from sphinx.sty,
|
||||
%% - \sphinxlongtablepatch
|
||||
%%
|
||||
%% Starting with Sphinx v4.5.0, inherited footnotehyper macros for
|
||||
%% footnote/footnotetext receive some Sphinx specific extras to
|
||||
%% implement "intelligent" footnote marks checking page numbers.
|
||||
%%
|
||||
%% All footnotes output from Sphinx are hyperlinked. With "savenotes"
|
||||
%% footnotes may appear on page distinct from footnote mark, the latter
|
||||
%% will indicate page number of the footnote.
|
||||
\newif\iffootnotehyperparse\footnotehyperparsetrue
|
||||
\DeclareOption*{\PackageWarning{sphinxpackagefootnote}{Option `\CurrentOption' is unknown}}%
|
||||
\ProcessOptions\relax
|
||||
\newbox\FNH@notes
|
||||
\newtoks\FNH@toks % 1.1c
|
||||
\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
|
||||
\let\FNH@H@@mpfootnotetext \@mpfootnotetext
|
||||
\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
|
||||
% always True branch taken with Sphinx
|
||||
\@ifpackageloaded{hyperref}
|
||||
{\ifHy@hyperfootnotes
|
||||
\let\FNH@H@@footnotetext\H@@footnotetext
|
||||
\let\FNH@H@@mpfootnotetext\H@@mpfootnotetext
|
||||
\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 {%
|
||||
\if@endpe\ifx\par\@@par\FNH@toks{}\else
|
||||
\FNH@toks\expandafter{\expandafter
|
||||
\def\expandafter\par\expandafter{\par}\@endpetrue}%
|
||||
\expandafter\expandafter\expandafter
|
||||
\FNH@toks
|
||||
\expandafter\expandafter\expandafter
|
||||
{\expandafter\the\expandafter\FNH@toks
|
||||
\expandafter\def\expandafter\@par\expandafter{\@par}}%
|
||||
\expandafter\expandafter\expandafter
|
||||
\FNH@toks
|
||||
\expandafter\expandafter\expandafter
|
||||
{\expandafter\the\expandafter\FNH@toks
|
||||
\expandafter\everypar\expandafter{\the\everypar}}\fi
|
||||
\else\FNH@toks{}\fi
|
||||
\expandafter
|
||||
\endgroup\the\FNH@toks
|
||||
\ifFNH@savingnotes\else
|
||||
\ifvoid\FNH@notes\else
|
||||
\begingroup
|
||||
\let\@makefntext\@empty
|
||||
\let\@finalstrut\@gobble
|
||||
\let\rule\@gobbletwo
|
||||
\ifx\@footnotetext\@mpfootnotetext
|
||||
\expandafter\FNH@H@@mpfootnotetext
|
||||
\else
|
||||
\expandafter\FNH@H@@footnotetext
|
||||
\fi{\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
|
||||
% This legacy code from LaTeX core restricts #1 to be digits only
|
||||
% This limitation could be lifted but legacy Sphinx anyhow obeys it
|
||||
\csname c@\@mpfn\endcsname #1\relax
|
||||
\unrestored@protected@xdef\@thefnmark{\thempfn}%
|
||||
\endgroup
|
||||
% -- Sphinx specific:
|
||||
% currently commented out due to
|
||||
% https://github.com/sphinx-doc/sphinx/pull/10191#issuecomment-1038807448
|
||||
% Memo: memoir class detection of successive footnote marks (to separate them
|
||||
% by commas) is broken by \refstepcounter and also by \label, and some
|
||||
% mitigation such as in \sphinxfootref would be needed
|
||||
% \global\let\spx@saved@thefnmark\@thefnmark
|
||||
% % this is done to access robustly the page number where footnote mark is
|
||||
% \refstepcounter{sphinxfootnotemark}\label{footnotemark.\thesphinxfootnotemark}%
|
||||
% % if possible, compare page numbers of mark and footnote to define \@thefnmark
|
||||
% \ltx@ifundefined{r@\thesphinxscope.footnote.#1}%
|
||||
% {}% one more latex run is needed
|
||||
% {\sphinx@xdef@thefnmark{#1}}% check of page numbers possible
|
||||
% --
|
||||
\@footnotemark
|
||||
\def\FNH@endfntext@fntext{\@footnotetext}%
|
||||
% -- Sphinx specific:
|
||||
% we need to reset \@thefnmark as it is used by \FNH@startfntext via
|
||||
% \FNH@startnote to set \@currentlabel which will be used by \label
|
||||
% currently commented out (see above)
|
||||
% \global\let\@thefnmark\spx@saved@thefnmark
|
||||
% --
|
||||
\FNH@startfntext
|
||||
% -- again Sphinx specific
|
||||
% \@currentlabel as needed by \label got set by \FNH@startnote
|
||||
% insert this at start of footnote text then the label will allow
|
||||
% to robustly know on which page the footnote text ends up
|
||||
% currently only of use for extra footnote marks so in case footnote multiply referred
|
||||
\phantomsection\label{\thesphinxscope.footnote.#1}%
|
||||
}%
|
||||
\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
|
||||
% -- Sphinx specific addition
|
||||
\phantomsection\label{\thesphinxscope.footnote.#1}%
|
||||
}%
|
||||
\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
|
||||
}%
|
||||
\let\FNH@prefntext\@empty
|
||||
\let\FNH@postfntext\@empty
|
||||
\AtBeginDocument{\iffootnotehyperparse\expandafter\FNH@check\fi}%
|
||||
\def\FNH@safeif#1{%
|
||||
\iftrue\csname if#1\endcsname\csname fi\endcsname\expandafter\@firstoftwo
|
||||
\else\csname fi\endcsname\expandafter\@secondoftwo
|
||||
\fi
|
||||
}%
|
||||
\def\FNH@check{%
|
||||
\ifx\@makefntextFB\@undefined\expandafter\FNH@check@
|
||||
\else\expandafter\FNH@frenchb@
|
||||
\fi
|
||||
}%
|
||||
\def\FNH@frenchb@{%
|
||||
\def\FNH@prefntext{%
|
||||
\localleftbox{}%
|
||||
\let\FBeverypar@save\FBeverypar@quote
|
||||
\let\FBeverypar@quote\relax
|
||||
\FNH@safeif{FB@koma}%
|
||||
{\FNH@safeif{FBFrenchFootnotes}%
|
||||
{\ifx\footnote\thanks
|
||||
\let\@@makefnmark\@@makefnmarkTH
|
||||
\@makefntextTH{} % space as in french.ldf
|
||||
\else
|
||||
\let\@@makefnmark\@@makefnmarkFB
|
||||
\@makefntextFB{} % space as in french.ldf
|
||||
\fi
|
||||
}{\let\@@makefnmark\@@makefnmarkORI
|
||||
\@makefntextORI{}% no space as in french.ldf
|
||||
}%
|
||||
}%
|
||||
{\FNH@safeif{FBFrenchFootnotes}%
|
||||
{\@makefntextFB{}}%
|
||||
{\@makefntextORI{}}%
|
||||
}%
|
||||
}%
|
||||
\def\FNH@postfntext{%
|
||||
\let\FBeverypar@quote\FBeverypar@save
|
||||
\localleftbox{\FBeveryline@quote}%
|
||||
}%
|
||||
}%
|
||||
\def\FNH@check@{%
|
||||
\expandafter\FNH@check@a\@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\FNH@checkagain@
|
||||
\else
|
||||
\def\FNH@prefntext{#1}\def\FNH@postfntext{#2}%
|
||||
\expandafter\FNH@check@b
|
||||
\fi
|
||||
}%
|
||||
\def\FNH@checkagain@{%
|
||||
\expandafter\FNH@checkagain@a
|
||||
\detokenize\expandafter{\@makefntext{1.2!3?4,}}\relax\FNH@@@
|
||||
}%
|
||||
\edef\FNH@temp{\noexpand\FNH@checkagain@a ##1\string{1.2!3?4,\string}}%
|
||||
\expandafter\def\FNH@temp#2#3\FNH@@@{%
|
||||
\ifx\relax#2%
|
||||
\def\FNH@prefntext{\@makefntext{}}%
|
||||
\else\FNH@bad@makefntext@alert
|
||||
\fi
|
||||
}%
|
||||
\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\else\FNH@bad@makefntext@alert\fi
|
||||
}%
|
||||
% slight reformulation for Sphinx
|
||||
\def\FNH@bad@makefntext@alert{%
|
||||
\PackageWarningNoLine{sphinxpackagefootnote}%
|
||||
{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
|
||||
}%
|
||||
}%
|
||||
%
|
||||
% some extras for Sphinx :
|
||||
% \sphinxfootnotemark:
|
||||
% - if in section titles will auto-remove itself from TOC
|
||||
\def\sphinxfootnotemark [#1]%
|
||||
{\ifx\thepage\relax\else\sphinxfootref{#1}\fi}%
|
||||
\newcounter{sphinxfootnotemark}
|
||||
\renewcommand\thesphinxfootnotemark{\number\value{sphinxfootnotemark}}
|
||||
% - compares page number of footnote mark versus the one of footnote text
|
||||
\def\sphinx@xdef@thefnmark#1{%
|
||||
\expandafter\expandafter\expandafter\sphinx@footref@get
|
||||
\csname r@\thesphinxscope.footnote.#1\endcsname\relax
|
||||
\expandafter\expandafter\expandafter\sphinx@footmark@getpage
|
||||
\csname r@footnotemark.\thesphinxfootnotemark\endcsname\thepage\relax
|
||||
\protected@xdef\@thefnmark{%
|
||||
\ifx\spx@footmarkpage\spx@footrefpage
|
||||
\spx@footreflabel
|
||||
\else
|
||||
% the macro \sphinxthefootnotemark is in sphinx.sty
|
||||
\sphinxthefootnotemark{\spx@footreflabel}{\spx@footrefpage}%
|
||||
\fi
|
||||
}%
|
||||
}%
|
||||
\def\sphinx@footref@get #1#2#3#4#5\relax{%
|
||||
\def\spx@footreflabel{#1}%
|
||||
\def\spx@footrefpage {#2}%
|
||||
\def\spx@footrefHref {#4}%
|
||||
}%
|
||||
\def\sphinx@footmark@getpage #1#2#3\relax{%
|
||||
\edef\spx@footmarkpage{#2}%
|
||||
}%
|
||||
\protected\def\sphinxfootref#1{% #1 always is explicit number in Sphinx
|
||||
\spx@opt@BeforeFootnote
|
||||
% each of \refstepcounter and \label interferes with memoir class detection
|
||||
% of successive footnote marks, so we move them to inside \@makefnmark
|
||||
\let\spx@saved@makefnmark\@makefnmark
|
||||
\ltx@ifundefined{r@\thesphinxscope.footnote.#1}%
|
||||
{\gdef\@thefnmark{?}% on first LaTeX run
|
||||
\refstepcounter{sphinxfootnotemark}\label{footnotemark.\thesphinxfootnotemark}%
|
||||
}%
|
||||
{\sphinx@xdef@thefnmark{#1}% also defines \spx@footrefHref
|
||||
\def\@makefnmark{% will be used by \H@@footnotemark
|
||||
\refstepcounter{sphinxfootnotemark}\label{footnotemark.\thesphinxfootnotemark}%
|
||||
\hyper@linkstart{link}{\spx@footrefHref}%
|
||||
\spx@saved@makefnmark
|
||||
\hyper@linkend
|
||||
}%
|
||||
}%
|
||||
\H@@footnotemark
|
||||
\let\@makefnmark\spx@saved@makefnmark
|
||||
}%
|
||||
\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 `sphinxpackagefootnote.sty'.
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0102085bb855a5649845d53cd99821d5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user