Sphinx 8.0.2__py3-none-any.whl → 8.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of Sphinx might be problematic. Click here for more details.

Files changed (424) hide show
  1. sphinx/__init__.py +6 -3
  2. sphinx/_cli/__init__.py +40 -20
  3. sphinx/_cli/util/colour.py +5 -4
  4. sphinx/_cli/util/errors.py +28 -11
  5. sphinx/application.py +361 -38
  6. sphinx/builders/__init__.py +229 -83
  7. sphinx/builders/_epub_base.py +118 -71
  8. sphinx/builders/changes.py +39 -21
  9. sphinx/builders/dirhtml.py +4 -4
  10. sphinx/builders/dummy.py +2 -5
  11. sphinx/builders/epub3.py +43 -22
  12. sphinx/builders/gettext.py +43 -25
  13. sphinx/builders/html/__init__.py +284 -218
  14. sphinx/builders/html/_assets.py +62 -26
  15. sphinx/builders/html/_build_info.py +76 -0
  16. sphinx/builders/html/transforms.py +11 -9
  17. sphinx/builders/latex/__init__.py +139 -81
  18. sphinx/builders/latex/constants.py +7 -7
  19. sphinx/builders/latex/nodes.py +3 -2
  20. sphinx/builders/latex/theming.py +7 -5
  21. sphinx/builders/latex/transforms.py +27 -19
  22. sphinx/builders/linkcheck.py +146 -72
  23. sphinx/builders/manpage.py +30 -13
  24. sphinx/builders/singlehtml.py +22 -14
  25. sphinx/builders/texinfo.py +67 -37
  26. sphinx/builders/text.py +5 -5
  27. sphinx/builders/xml.py +6 -9
  28. sphinx/cmd/build.py +282 -103
  29. sphinx/cmd/make_mode.py +106 -63
  30. sphinx/cmd/quickstart.py +341 -145
  31. sphinx/config.py +45 -12
  32. sphinx/deprecation.py +8 -2
  33. sphinx/directives/__init__.py +28 -19
  34. sphinx/directives/code.py +86 -56
  35. sphinx/directives/other.py +50 -36
  36. sphinx/directives/patches.py +29 -19
  37. sphinx/domains/__init__.py +20 -120
  38. sphinx/domains/_domains_container.py +281 -0
  39. sphinx/domains/_index.py +110 -0
  40. sphinx/domains/c/__init__.py +3 -3
  41. sphinx/domains/c/_parser.py +10 -6
  42. sphinx/domains/changeset.py +5 -3
  43. sphinx/domains/citation.py +5 -3
  44. sphinx/domains/cpp/__init__.py +9 -11
  45. sphinx/domains/cpp/_parser.py +8 -7
  46. sphinx/domains/index.py +3 -3
  47. sphinx/domains/javascript.py +12 -7
  48. sphinx/domains/math.py +2 -2
  49. sphinx/domains/python/__init__.py +10 -5
  50. sphinx/domains/python/_object.py +1 -1
  51. sphinx/domains/rst.py +5 -5
  52. sphinx/domains/std/__init__.py +16 -11
  53. sphinx/environment/__init__.py +202 -146
  54. sphinx/environment/adapters/asset.py +3 -2
  55. sphinx/environment/adapters/indexentries.py +74 -33
  56. sphinx/environment/adapters/toctree.py +100 -43
  57. sphinx/environment/collectors/__init__.py +19 -8
  58. sphinx/environment/collectors/asset.py +47 -15
  59. sphinx/environment/collectors/dependencies.py +8 -4
  60. sphinx/environment/collectors/metadata.py +7 -2
  61. sphinx/environment/collectors/title.py +7 -2
  62. sphinx/environment/collectors/toctree.py +54 -22
  63. sphinx/errors.py +4 -1
  64. sphinx/events.py +314 -7
  65. sphinx/ext/apidoc.py +42 -18
  66. sphinx/ext/autodoc/__init__.py +52 -24
  67. sphinx/ext/autodoc/importer.py +6 -9
  68. sphinx/ext/autosectionlabel.py +1 -2
  69. sphinx/ext/autosummary/__init__.py +3 -1
  70. sphinx/ext/autosummary/generate.py +28 -14
  71. sphinx/ext/coverage.py +7 -7
  72. sphinx/ext/doctest.py +4 -8
  73. sphinx/ext/duration.py +6 -5
  74. sphinx/ext/inheritance_diagram.py +1 -1
  75. sphinx/ext/intersphinx/_cli.py +6 -4
  76. sphinx/ext/intersphinx/_load.py +77 -32
  77. sphinx/ext/intersphinx/_resolve.py +173 -79
  78. sphinx/ext/intersphinx/_shared.py +7 -5
  79. sphinx/ext/linkcode.py +7 -1
  80. sphinx/ext/mathjax.py +1 -2
  81. sphinx/ext/napoleon/__init__.py +37 -24
  82. sphinx/ext/napoleon/docstring.py +202 -134
  83. sphinx/ext/todo.py +5 -3
  84. sphinx/highlighting.py +9 -2
  85. sphinx/io.py +1 -1
  86. sphinx/jinja2glue.py +27 -6
  87. sphinx/locale/__init__.py +6 -2
  88. sphinx/locale/ar/LC_MESSAGES/sphinx.js +8 -1
  89. sphinx/locale/ar/LC_MESSAGES/sphinx.mo +0 -0
  90. sphinx/locale/ar/LC_MESSAGES/sphinx.po +2246 -2288
  91. sphinx/locale/bg/LC_MESSAGES/sphinx.js +4 -1
  92. sphinx/locale/bg/LC_MESSAGES/sphinx.mo +0 -0
  93. sphinx/locale/bg/LC_MESSAGES/sphinx.po +2113 -2159
  94. sphinx/locale/bn/LC_MESSAGES/sphinx.js +4 -1
  95. sphinx/locale/bn/LC_MESSAGES/sphinx.mo +0 -0
  96. sphinx/locale/bn/LC_MESSAGES/sphinx.po +2349 -2395
  97. sphinx/locale/ca/LC_MESSAGES/sphinx.js +4 -1
  98. sphinx/locale/ca/LC_MESSAGES/sphinx.mo +0 -0
  99. sphinx/locale/ca/LC_MESSAGES/sphinx.po +2846 -2892
  100. sphinx/locale/cak/LC_MESSAGES/sphinx.js +4 -1
  101. sphinx/locale/cak/LC_MESSAGES/sphinx.mo +0 -0
  102. sphinx/locale/cak/LC_MESSAGES/sphinx.po +2213 -2259
  103. sphinx/locale/cs/LC_MESSAGES/sphinx.js +6 -1
  104. sphinx/locale/cs/LC_MESSAGES/sphinx.mo +0 -0
  105. sphinx/locale/cs/LC_MESSAGES/sphinx.po +2225 -2269
  106. sphinx/locale/cy/LC_MESSAGES/sphinx.js +6 -1
  107. sphinx/locale/cy/LC_MESSAGES/sphinx.mo +0 -0
  108. sphinx/locale/cy/LC_MESSAGES/sphinx.po +2403 -2447
  109. sphinx/locale/da/LC_MESSAGES/sphinx.js +4 -1
  110. sphinx/locale/da/LC_MESSAGES/sphinx.mo +0 -0
  111. sphinx/locale/da/LC_MESSAGES/sphinx.po +2214 -2260
  112. sphinx/locale/de/LC_MESSAGES/sphinx.js +4 -1
  113. sphinx/locale/de/LC_MESSAGES/sphinx.mo +0 -0
  114. sphinx/locale/de/LC_MESSAGES/sphinx.po +2230 -2276
  115. sphinx/locale/de_DE/LC_MESSAGES/sphinx.js +4 -1
  116. sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo +0 -0
  117. sphinx/locale/de_DE/LC_MESSAGES/sphinx.po +2113 -2159
  118. sphinx/locale/el/LC_MESSAGES/sphinx.js +4 -1
  119. sphinx/locale/el/LC_MESSAGES/sphinx.mo +0 -0
  120. sphinx/locale/el/LC_MESSAGES/sphinx.po +2619 -2665
  121. sphinx/locale/en_DE/LC_MESSAGES/sphinx.js +4 -1
  122. sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo +0 -0
  123. sphinx/locale/en_DE/LC_MESSAGES/sphinx.po +2113 -2159
  124. sphinx/locale/en_FR/LC_MESSAGES/sphinx.js +4 -1
  125. sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo +0 -0
  126. sphinx/locale/en_FR/LC_MESSAGES/sphinx.po +2113 -2159
  127. sphinx/locale/en_GB/LC_MESSAGES/sphinx.js +4 -1
  128. sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo +0 -0
  129. sphinx/locale/en_GB/LC_MESSAGES/sphinx.po +2519 -2565
  130. sphinx/locale/en_HK/LC_MESSAGES/sphinx.js +4 -1
  131. sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo +0 -0
  132. sphinx/locale/en_HK/LC_MESSAGES/sphinx.po +2113 -2159
  133. sphinx/locale/eo/LC_MESSAGES/sphinx.js +4 -1
  134. sphinx/locale/eo/LC_MESSAGES/sphinx.mo +0 -0
  135. sphinx/locale/eo/LC_MESSAGES/sphinx.po +2232 -2278
  136. sphinx/locale/es/LC_MESSAGES/sphinx.js +5 -1
  137. sphinx/locale/es/LC_MESSAGES/sphinx.mo +0 -0
  138. sphinx/locale/es/LC_MESSAGES/sphinx.po +2516 -2561
  139. sphinx/locale/es_CO/LC_MESSAGES/sphinx.js +5 -1
  140. sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo +0 -0
  141. sphinx/locale/es_CO/LC_MESSAGES/sphinx.po +2114 -2159
  142. sphinx/locale/et/LC_MESSAGES/sphinx.js +4 -1
  143. sphinx/locale/et/LC_MESSAGES/sphinx.mo +0 -0
  144. sphinx/locale/et/LC_MESSAGES/sphinx.po +2317 -2363
  145. sphinx/locale/eu/LC_MESSAGES/sphinx.js +4 -1
  146. sphinx/locale/eu/LC_MESSAGES/sphinx.mo +0 -0
  147. sphinx/locale/eu/LC_MESSAGES/sphinx.po +2218 -2264
  148. sphinx/locale/fa/LC_MESSAGES/sphinx.js +4 -1
  149. sphinx/locale/fa/LC_MESSAGES/sphinx.mo +0 -0
  150. sphinx/locale/fa/LC_MESSAGES/sphinx.po +2505 -2551
  151. sphinx/locale/fi/LC_MESSAGES/sphinx.js +4 -1
  152. sphinx/locale/fi/LC_MESSAGES/sphinx.mo +0 -0
  153. sphinx/locale/fi/LC_MESSAGES/sphinx.po +2303 -2349
  154. sphinx/locale/fr/LC_MESSAGES/sphinx.js +6 -2
  155. sphinx/locale/fr/LC_MESSAGES/sphinx.mo +0 -0
  156. sphinx/locale/fr/LC_MESSAGES/sphinx.po +2863 -2908
  157. sphinx/locale/fr_FR/LC_MESSAGES/sphinx.js +5 -1
  158. sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo +0 -0
  159. sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po +2114 -2159
  160. sphinx/locale/gl/LC_MESSAGES/sphinx.js +4 -1
  161. sphinx/locale/gl/LC_MESSAGES/sphinx.mo +0 -0
  162. sphinx/locale/gl/LC_MESSAGES/sphinx.po +2571 -2617
  163. sphinx/locale/he/LC_MESSAGES/sphinx.js +5 -1
  164. sphinx/locale/he/LC_MESSAGES/sphinx.mo +0 -0
  165. sphinx/locale/he/LC_MESSAGES/sphinx.po +2307 -2352
  166. sphinx/locale/hi/LC_MESSAGES/sphinx.js +4 -1
  167. sphinx/locale/hi/LC_MESSAGES/sphinx.mo +0 -0
  168. sphinx/locale/hi/LC_MESSAGES/sphinx.po +2580 -2626
  169. sphinx/locale/hi_IN/LC_MESSAGES/sphinx.js +4 -1
  170. sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo +0 -0
  171. sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po +2113 -2159
  172. sphinx/locale/hr/LC_MESSAGES/sphinx.js +5 -1
  173. sphinx/locale/hr/LC_MESSAGES/sphinx.mo +0 -0
  174. sphinx/locale/hr/LC_MESSAGES/sphinx.po +2238 -2283
  175. sphinx/locale/hu/LC_MESSAGES/sphinx.js +4 -1
  176. sphinx/locale/hu/LC_MESSAGES/sphinx.mo +0 -0
  177. sphinx/locale/hu/LC_MESSAGES/sphinx.po +2228 -2274
  178. sphinx/locale/id/LC_MESSAGES/sphinx.js +3 -1
  179. sphinx/locale/id/LC_MESSAGES/sphinx.mo +0 -0
  180. sphinx/locale/id/LC_MESSAGES/sphinx.po +2787 -2834
  181. sphinx/locale/is/LC_MESSAGES/sphinx.js +4 -1
  182. sphinx/locale/is/LC_MESSAGES/sphinx.mo +0 -0
  183. sphinx/locale/is/LC_MESSAGES/sphinx.po +2224 -2270
  184. sphinx/locale/it/LC_MESSAGES/sphinx.js +5 -1
  185. sphinx/locale/it/LC_MESSAGES/sphinx.mo +0 -0
  186. sphinx/locale/it/LC_MESSAGES/sphinx.po +2231 -2276
  187. sphinx/locale/ja/LC_MESSAGES/sphinx.js +3 -1
  188. sphinx/locale/ja/LC_MESSAGES/sphinx.mo +0 -0
  189. sphinx/locale/ja/LC_MESSAGES/sphinx.po +2507 -2554
  190. sphinx/locale/ka/LC_MESSAGES/sphinx.js +4 -1
  191. sphinx/locale/ka/LC_MESSAGES/sphinx.mo +0 -0
  192. sphinx/locale/ka/LC_MESSAGES/sphinx.po +2428 -2474
  193. sphinx/locale/ko/LC_MESSAGES/sphinx.js +3 -1
  194. sphinx/locale/ko/LC_MESSAGES/sphinx.mo +0 -0
  195. sphinx/locale/ko/LC_MESSAGES/sphinx.po +2516 -2563
  196. sphinx/locale/lt/LC_MESSAGES/sphinx.js +6 -1
  197. sphinx/locale/lt/LC_MESSAGES/sphinx.mo +0 -0
  198. sphinx/locale/lt/LC_MESSAGES/sphinx.po +2425 -2469
  199. sphinx/locale/lv/LC_MESSAGES/sphinx.js +5 -1
  200. sphinx/locale/lv/LC_MESSAGES/sphinx.mo +0 -0
  201. sphinx/locale/lv/LC_MESSAGES/sphinx.po +2362 -2407
  202. sphinx/locale/mk/LC_MESSAGES/sphinx.js +4 -1
  203. sphinx/locale/mk/LC_MESSAGES/sphinx.mo +0 -0
  204. sphinx/locale/mk/LC_MESSAGES/sphinx.po +2121 -2167
  205. sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js +4 -1
  206. sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo +0 -0
  207. sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po +2220 -2266
  208. sphinx/locale/ne/LC_MESSAGES/sphinx.js +4 -1
  209. sphinx/locale/ne/LC_MESSAGES/sphinx.mo +0 -0
  210. sphinx/locale/ne/LC_MESSAGES/sphinx.po +2221 -2267
  211. sphinx/locale/nl/LC_MESSAGES/sphinx.js +4 -1
  212. sphinx/locale/nl/LC_MESSAGES/sphinx.mo +0 -0
  213. sphinx/locale/nl/LC_MESSAGES/sphinx.po +2240 -2286
  214. sphinx/locale/pl/LC_MESSAGES/sphinx.js +6 -1
  215. sphinx/locale/pl/LC_MESSAGES/sphinx.mo +0 -0
  216. sphinx/locale/pl/LC_MESSAGES/sphinx.po +2319 -2363
  217. sphinx/locale/pt/LC_MESSAGES/sphinx.js +5 -1
  218. sphinx/locale/pt/LC_MESSAGES/sphinx.mo +0 -0
  219. sphinx/locale/pt/LC_MESSAGES/sphinx.po +2114 -2159
  220. sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js +5 -1
  221. sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo +0 -0
  222. sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po +2854 -2899
  223. sphinx/locale/pt_PT/LC_MESSAGES/sphinx.js +5 -1
  224. sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo +0 -0
  225. sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po +2224 -2269
  226. sphinx/locale/ro/LC_MESSAGES/sphinx.js +5 -1
  227. sphinx/locale/ro/LC_MESSAGES/sphinx.mo +0 -0
  228. sphinx/locale/ro/LC_MESSAGES/sphinx.po +2226 -2271
  229. sphinx/locale/ru/LC_MESSAGES/sphinx.js +8 -3
  230. sphinx/locale/ru/LC_MESSAGES/sphinx.mo +0 -0
  231. sphinx/locale/ru/LC_MESSAGES/sphinx.po +2841 -2885
  232. sphinx/locale/si/LC_MESSAGES/sphinx.js +4 -1
  233. sphinx/locale/si/LC_MESSAGES/sphinx.mo +0 -0
  234. sphinx/locale/si/LC_MESSAGES/sphinx.po +2294 -2340
  235. sphinx/locale/sk/LC_MESSAGES/sphinx.js +6 -1
  236. sphinx/locale/sk/LC_MESSAGES/sphinx.mo +0 -0
  237. sphinx/locale/sk/LC_MESSAGES/sphinx.po +2497 -2541
  238. sphinx/locale/sl/LC_MESSAGES/sphinx.js +6 -1
  239. sphinx/locale/sl/LC_MESSAGES/sphinx.mo +0 -0
  240. sphinx/locale/sl/LC_MESSAGES/sphinx.po +2331 -2375
  241. sphinx/locale/sphinx.pot +2121 -2167
  242. sphinx/locale/sq/LC_MESSAGES/sphinx.js +4 -1
  243. sphinx/locale/sq/LC_MESSAGES/sphinx.mo +0 -0
  244. sphinx/locale/sq/LC_MESSAGES/sphinx.po +2855 -2901
  245. sphinx/locale/sr/LC_MESSAGES/sphinx.js +5 -1
  246. sphinx/locale/sr/LC_MESSAGES/sphinx.mo +0 -0
  247. sphinx/locale/sr/LC_MESSAGES/sphinx.po +2203 -2248
  248. sphinx/locale/sr@latin/LC_MESSAGES/sphinx.mo +0 -0
  249. sphinx/locale/sr_RS/LC_MESSAGES/sphinx.mo +0 -0
  250. sphinx/locale/sv/LC_MESSAGES/sphinx.js +4 -1
  251. sphinx/locale/sv/LC_MESSAGES/sphinx.mo +0 -0
  252. sphinx/locale/sv/LC_MESSAGES/sphinx.po +2423 -2469
  253. sphinx/locale/te/LC_MESSAGES/sphinx.js +4 -1
  254. sphinx/locale/te/LC_MESSAGES/sphinx.mo +0 -0
  255. sphinx/locale/te/LC_MESSAGES/sphinx.po +2113 -2159
  256. sphinx/locale/tr/LC_MESSAGES/sphinx.js +4 -1
  257. sphinx/locale/tr/LC_MESSAGES/sphinx.mo +0 -0
  258. sphinx/locale/tr/LC_MESSAGES/sphinx.po +2443 -2489
  259. sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js +6 -1
  260. sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo +0 -0
  261. sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po +2329 -2373
  262. sphinx/locale/ur/LC_MESSAGES/sphinx.js +4 -1
  263. sphinx/locale/ur/LC_MESSAGES/sphinx.mo +0 -0
  264. sphinx/locale/ur/LC_MESSAGES/sphinx.po +2113 -2159
  265. sphinx/locale/vi/LC_MESSAGES/sphinx.js +3 -1
  266. sphinx/locale/vi/LC_MESSAGES/sphinx.mo +0 -0
  267. sphinx/locale/vi/LC_MESSAGES/sphinx.po +2199 -2246
  268. sphinx/locale/yue/LC_MESSAGES/sphinx.js +3 -1
  269. sphinx/locale/yue/LC_MESSAGES/sphinx.mo +0 -0
  270. sphinx/locale/yue/LC_MESSAGES/sphinx.po +2112 -2159
  271. sphinx/locale/zh_HK/LC_MESSAGES/sphinx.js +3 -1
  272. sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo +0 -0
  273. sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po +2112 -2159
  274. sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js +3 -1
  275. sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo +0 -0
  276. sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po +2845 -2892
  277. sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.js +3 -1
  278. sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo +0 -0
  279. sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po +2112 -2159
  280. sphinx/parsers.py +3 -1
  281. sphinx/project.py +6 -2
  282. sphinx/pycode/__init__.py +11 -4
  283. sphinx/pycode/ast.py +58 -58
  284. sphinx/pycode/parser.py +49 -28
  285. sphinx/pygments_styles.py +49 -49
  286. sphinx/registry.py +8 -3
  287. sphinx/roles.py +136 -13
  288. sphinx/search/__init__.py +146 -87
  289. sphinx/search/da.py +2 -4
  290. sphinx/search/de.py +2 -4
  291. sphinx/search/en.py +4 -4
  292. sphinx/search/es.py +2 -4
  293. sphinx/search/fi.py +2 -4
  294. sphinx/search/fr.py +2 -4
  295. sphinx/search/hu.py +2 -4
  296. sphinx/search/it.py +2 -4
  297. sphinx/search/ja.py +55 -32
  298. sphinx/search/nl.py +2 -4
  299. sphinx/search/no.py +2 -4
  300. sphinx/search/pt.py +2 -4
  301. sphinx/search/ro.py +0 -2
  302. sphinx/search/ru.py +2 -4
  303. sphinx/search/sv.py +2 -4
  304. sphinx/search/tr.py +0 -2
  305. sphinx/search/zh.py +18 -13
  306. sphinx/templates/graphviz/graphviz.css +0 -7
  307. sphinx/testing/fixtures.py +6 -5
  308. sphinx/testing/path.py +7 -5
  309. sphinx/testing/util.py +63 -29
  310. sphinx/texinputs/sphinx.sty +115 -50
  311. sphinx/texinputs/sphinxlatexadmonitions.sty +56 -38
  312. sphinx/texinputs/sphinxlatexcontainers.sty +1 -1
  313. sphinx/texinputs/sphinxlatexgraphics.sty +3 -2
  314. sphinx/texinputs/sphinxlatexindbibtoc.sty +1 -1
  315. sphinx/texinputs/sphinxlatexlists.sty +1 -1
  316. sphinx/texinputs/sphinxlatexliterals.sty +4 -1
  317. sphinx/texinputs/sphinxlatexnumfig.sty +22 -9
  318. sphinx/texinputs/sphinxlatexobjects.sty +1 -1
  319. sphinx/texinputs/sphinxlatexshadowbox.sty +72 -10
  320. sphinx/texinputs/sphinxlatexstyleheadings.sty +7 -2
  321. sphinx/texinputs/sphinxlatexstylepage.sty +2 -8
  322. sphinx/texinputs/sphinxlatexstyletext.sty +2 -4
  323. sphinx/texinputs/sphinxlatextables.sty +1 -1
  324. sphinx/texinputs/sphinxoptionsgeometry.sty +1 -1
  325. sphinx/texinputs/sphinxoptionshyperref.sty +1 -1
  326. sphinx/themes/agogo/layout.html +1 -10
  327. sphinx/themes/agogo/static/agogo.css.jinja +0 -7
  328. sphinx/themes/basic/defindex.html +1 -8
  329. sphinx/themes/basic/domainindex.html +1 -9
  330. sphinx/themes/basic/genindex-single.html +1 -9
  331. sphinx/themes/basic/genindex-split.html +1 -9
  332. sphinx/themes/basic/genindex.html +1 -9
  333. sphinx/themes/basic/globaltoc.html +1 -9
  334. sphinx/themes/basic/layout.html +1 -9
  335. sphinx/themes/basic/localtoc.html +1 -9
  336. sphinx/themes/basic/page.html +1 -9
  337. sphinx/themes/basic/relations.html +1 -9
  338. sphinx/themes/basic/search.html +1 -9
  339. sphinx/themes/basic/searchbox.html +1 -9
  340. sphinx/themes/basic/searchfield.html +4 -10
  341. sphinx/themes/basic/sourcelink.html +1 -9
  342. sphinx/themes/basic/static/basic.css.jinja +2 -13
  343. sphinx/themes/basic/static/doctools.js +0 -7
  344. sphinx/themes/basic/static/language_data.js.jinja +0 -7
  345. sphinx/themes/basic/static/searchtools.js +25 -13
  346. sphinx/themes/bizstyle/layout.html +1 -9
  347. sphinx/themes/bizstyle/static/bizstyle.css.jinja +0 -7
  348. sphinx/themes/bizstyle/static/bizstyle.js.jinja +5 -11
  349. sphinx/themes/classic/layout.html +1 -9
  350. sphinx/themes/classic/static/classic.css.jinja +0 -7
  351. sphinx/themes/classic/static/sidebar.js.jinja +0 -6
  352. sphinx/themes/epub/epub-cover.html +1 -9
  353. sphinx/themes/epub/layout.html +1 -9
  354. sphinx/themes/epub/static/epub.css.jinja +0 -7
  355. sphinx/themes/haiku/layout.html +1 -9
  356. sphinx/themes/haiku/static/haiku.css.jinja +0 -6
  357. sphinx/themes/nature/static/nature.css.jinja +0 -7
  358. sphinx/themes/nonav/layout.html +1 -9
  359. sphinx/themes/nonav/static/nonav.css.jinja +0 -7
  360. sphinx/themes/pyramid/static/epub.css.jinja +0 -7
  361. sphinx/themes/pyramid/static/pyramid.css.jinja +0 -7
  362. sphinx/themes/scrolls/layout.html +1 -10
  363. sphinx/themes/scrolls/static/scrolls.css.jinja +0 -7
  364. sphinx/themes/sphinxdoc/static/sphinxdoc.css.jinja +2 -7
  365. sphinx/themes/traditional/static/traditional.css.jinja +0 -7
  366. sphinx/theming.py +18 -6
  367. sphinx/transforms/__init__.py +56 -35
  368. sphinx/transforms/compact_bullet_list.py +3 -2
  369. sphinx/transforms/i18n.py +132 -50
  370. sphinx/transforms/post_transforms/__init__.py +94 -43
  371. sphinx/transforms/post_transforms/code.py +7 -6
  372. sphinx/transforms/post_transforms/images.py +71 -54
  373. sphinx/transforms/references.py +1 -2
  374. sphinx/util/__init__.py +23 -194
  375. sphinx/util/_files.py +80 -0
  376. sphinx/util/_importer.py +27 -0
  377. sphinx/util/_io.py +1 -2
  378. sphinx/util/_lines.py +26 -0
  379. sphinx/util/_pathlib.py +5 -2
  380. sphinx/util/_serialise.py +53 -0
  381. sphinx/util/_timestamps.py +2 -1
  382. sphinx/util/_uri.py +16 -0
  383. sphinx/util/cfamily.py +48 -25
  384. sphinx/util/console.py +1 -0
  385. sphinx/util/display.py +1 -1
  386. sphinx/util/docfields.py +125 -45
  387. sphinx/util/docstrings.py +1 -1
  388. sphinx/util/docutils.py +118 -44
  389. sphinx/util/exceptions.py +11 -5
  390. sphinx/util/fileutil.py +53 -32
  391. sphinx/util/http_date.py +9 -7
  392. sphinx/util/i18n.py +49 -16
  393. sphinx/util/images.py +7 -6
  394. sphinx/util/inspect.py +29 -12
  395. sphinx/util/inventory.py +47 -29
  396. sphinx/util/logging.py +58 -85
  397. sphinx/util/matching.py +3 -3
  398. sphinx/util/math.py +1 -1
  399. sphinx/util/nodes.py +176 -108
  400. sphinx/util/osutil.py +13 -10
  401. sphinx/util/parallel.py +5 -4
  402. sphinx/util/parsing.py +5 -3
  403. sphinx/util/png.py +3 -3
  404. sphinx/util/requests.py +8 -4
  405. sphinx/util/rst.py +5 -3
  406. sphinx/util/tags.py +5 -2
  407. sphinx/util/template.py +26 -11
  408. sphinx/util/texescape.py +2 -2
  409. sphinx/util/typing.py +89 -38
  410. sphinx/versioning.py +3 -1
  411. sphinx/writers/html.py +22 -7
  412. sphinx/writers/html5.py +113 -64
  413. sphinx/writers/latex.py +408 -221
  414. sphinx/writers/manpage.py +25 -15
  415. sphinx/writers/texinfo.py +94 -82
  416. sphinx/writers/text.py +87 -53
  417. sphinx/writers/xml.py +5 -4
  418. sphinx-8.1.1.dist-info/LICENSE.rst +31 -0
  419. {sphinx-8.0.2.dist-info → sphinx-8.1.1.dist-info}/METADATA +13 -11
  420. sphinx-8.1.1.dist-info/RECORD +598 -0
  421. sphinx-8.0.2.dist-info/LICENSE.rst +0 -67
  422. sphinx-8.0.2.dist-info/RECORD +0 -590
  423. {sphinx-8.0.2.dist-info → sphinx-8.1.1.dist-info}/WHEEL +0 -0
  424. {sphinx-8.0.2.dist-info → sphinx-8.1.1.dist-info}/entry_points.txt +0 -0
@@ -1,15 +1,12 @@
1
1
  %% NOTICES AND ADMONITIONS
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexadmonitions.sty}[2024/07/01 v7.4.0 admonitions]
4
+ \ProvidesPackage{sphinxlatexadmonitions}[2024/10/11 v8.1.1 admonitions]
5
5
 
6
6
  % Provides support for this output mark-up from Sphinx latex writer:
7
7
  %
8
8
  % - sphinxseealso environment added at 6.1.0.
9
9
  %
10
- % At 7.4.0 it too now uses sphinxheavybox, and has the same associated
11
- % sphinxsetup CSS keys as admonitions do.
12
- %
13
10
  % - sphinxtodo environment added at 7.4.0.
14
11
  %
15
12
  % - sphinxadmonition (environment)
@@ -19,16 +16,21 @@
19
16
  % sphinxheavybox since 6.2.0),
20
17
  % - warning, caution, attention, danger, error to use sphinxheavybox.
21
18
  %
22
- % At 7.4.0 all admonitions use sphinxheavybox.
19
+ % Since 7.4.0 all admonitions use sphinxheavybox.
23
20
  %
24
21
  % - All environments sphinxnote, sphinxwarning, etc... can be redefined as
25
22
  % will by user. Thay have a single parameter #1 which is the title.
26
23
  %
27
- % - The default sphinxnote, sphinxwarning, etc... use associated
28
- % one-argument macros \sphinxstylenotetitle, \sphinxstylewarningtitle, etc
29
- % which can be redefined. Their default is to use \sphinxdotitlerowwithicon
30
- % to typeset the title in a coloured header row at top of the
31
- % admonition. (new with 7.4.0)
24
+ % - Also redefinable by user are the one-argument commands
25
+ % * \sphinxstylenotetitle,
26
+ % * \sphinxstylewarningtitle,
27
+ % * etc.... one for each admonition type (also seealso and todo).
28
+ %
29
+ % - At 7.4.0, all commands of previous item use \sphinxdotitlerow.
30
+ % (the 7.4.0 name, still usable, was \sphinxdotitlerowwithicon; the 8.1.0
31
+ % version is also used for topic, contents and sidebar directives, see
32
+ % sphinxlatexshadowbox.sty, and handles both "with icon" and "without
33
+ % icon" situations).
32
34
  %
33
35
  % The sphinxlightbox environment is kept for backward compatiblity, for user
34
36
  % custom code which used it via custom definitions done in preamble or via
@@ -42,20 +44,21 @@
42
44
  % (the 7.4.0 redefined \sphinxstylenotetitle will not work in sphinxlightbox,
43
45
  % so \sphinxstrong{#1}<space> which was its former default is used above).
44
46
 
45
- %
46
- % Requires:
47
- \RequirePackage{sphinxpackageboxes}
48
- % 7.4.0 removes unneeded \spx@boxes@border
49
- \RequirePackage{framed}% used by sphinxheavybox
50
- %
51
47
  % Dependencies (they do not need to be defined at time of loading):
52
48
  %
53
49
  % - of course the various colour and dimension options handled via sphinx.sty
54
- %
55
50
  % - dimension register \spx@image@maxheight from sphinxlatexgraphics.sty
51
+ % - \savenotes/\spewnotes from sphinxpackagefootnote.sty
52
+ % - \ifspx@inframed defined in sphinx.sty
53
+ % - \spx@boxes@fcolorbox@setup from sphinxpackageboxes.sty
54
+ %
55
+ \RequirePackage{framed}
56
+ % Those are required either before or after by sphinx.sty anyhow, but for
57
+ % clarity we list them here:
58
+ \RequirePackage{sphinxlatexgraphics}
59
+ \RequirePackage{sphinxpackagefootnote}
60
+ \RequirePackage{sphinxpackageboxes}
56
61
  %
57
- % - \savenotes/\spewnotes from sphinxpackagefootnote (for sphinxheavybox)
58
-
59
62
  % Provides: (also in sphinxlatexliterals.sty)
60
63
  % Only needed here by legacy (deprecated) sphinxlightbox environment.
61
64
  \providecommand*\sphinxvspacefixafterfrenchlists{%
@@ -300,10 +303,15 @@
300
303
  % workaround some LaTeX "feature" of \end command (i.e. can't use "sphinx#1" here)
301
304
  {\edef\spx@temp{\noexpand\end{sphinx\spx@noticetype}}\spx@temp}
302
305
 
306
+ % TODO: allow these next three settings to be customized individually.
307
+ % This can however already be done at user level by \renewcommand
308
+ % inside renew'ed environments sphinxnote, sphinxhint etc...
303
309
  \newcommand\sphinxtitlerowtoppadding{5pt}
304
310
  \newcommand\sphinxtitlerowbottompadding{3pt}
305
311
  \newcommand\sphinxtitlerowaftericonspacecmd{\hskip0.5em\relax}
306
- \newcommand\sphinxdotitlerowwithicon[2]{% #1=type, #2=heading (without final colon)
312
+ % 7.4.0 used this longer name:
313
+ \newcommand\sphinxdotitlerowwithicon{\sphinxdotitlerow}
314
+ \newcommand\sphinxdotitlerow[2]{% #1=type, #2=heading (without final colon)
307
315
  \begingroup
308
316
  \kern-\spx@boxes@padding@top
309
317
  \parskip\z@skip % the \parskip business is a workaround to a vertical
@@ -325,16 +333,26 @@
325
333
  \spx@boxes@withshadowfalse
326
334
  \sphinxcolorlet{spx@boxes@backgroundcolor}{sphinx#1TtlBgColor}%
327
335
  \spx@boxes@fcolorbox{%
328
- \makebox[\linewidth][l]{%
329
- \textcolor{sphinx#1TtlFgColor}{%
336
+ \parbox[t]{\linewidth}{% 7.4.0 used \makebox, but wrapping of long titles
337
+ % is needed for generic admonition or topic box.
338
+ \sphinxAtStartPar
339
+ % 8.1.0 auto-drops extra space if no icon
340
+ \sbox\z@{\@nameuse{sphinx#1TtlIcon}}%
341
+ \ifdim\wd\z@>\z@
342
+ \textcolor{sphinx#1TtlFgColor}{%
330
343
  \@nameuse{sphinx#1TtlIcon}%
331
- % This macro is located here and not after the closing brace
332
- % for reasons of fall-back \spx@faIcon definition in sphinx.sty
333
- % in case fontawesome5 package not found.
344
+ % The next macro is located here for legacy reasons of earlier
345
+ % functioning of \spx@faIcon. When fontawesome{5,}.sty both
346
+ % are unavailable, it (formerly) gobbled this next macro.
347
+ % We leave it here now although it could be moved to after
348
+ % the closing brace.
334
349
  \sphinxtitlerowaftericonspacecmd
335
- }%
350
+ }%
351
+ \fi
336
352
  \sphinxstrong{#2}%
337
- \strut}%
353
+ \strut
354
+ \par
355
+ }%
338
356
  }%
339
357
  \kern-\spx@boxes@padding@right
340
358
  \par
@@ -347,17 +365,17 @@
347
365
  % \sphinxremovefinalcolon{#1} will typeset #1 without the colon.
348
366
  % Legacy definitions (done in sphinxlatexstyletext.sty) were all using
349
367
  % a boring plain \sphinxstrong{#1}, now we use a coloured title row.
350
- \newcommand\sphinxstylenotetitle [1]{\sphinxdotitlerowwithicon{note}{\sphinxremovefinalcolon{#1}}}
351
- \newcommand\sphinxstylehinttitle [1]{\sphinxdotitlerowwithicon{hint}{\sphinxremovefinalcolon{#1}}}
352
- \newcommand\sphinxstyleimportanttitle[1]{\sphinxdotitlerowwithicon{important}{\sphinxremovefinalcolon{#1}}}
353
- \newcommand\sphinxstyletiptitle [1]{\sphinxdotitlerowwithicon{tip}{\sphinxremovefinalcolon{#1}}}
354
- \newcommand\sphinxstylewarningtitle [1]{\sphinxdotitlerowwithicon{warning}{\sphinxremovefinalcolon{#1}}}
355
- \newcommand\sphinxstylecautiontitle [1]{\sphinxdotitlerowwithicon{caution}{\sphinxremovefinalcolon{#1}}}
356
- \newcommand\sphinxstyleattentiontitle[1]{\sphinxdotitlerowwithicon{attention}{\sphinxremovefinalcolon{#1}}}
357
- \newcommand\sphinxstyledangertitle [1]{\sphinxdotitlerowwithicon{danger}{\sphinxremovefinalcolon{#1}}}
358
- \newcommand\sphinxstyleerrortitle [1]{\sphinxdotitlerowwithicon{error}{\sphinxremovefinalcolon{#1}}}
359
- \newcommand\sphinxstyleseealsotitle [1]{\sphinxdotitlerowwithicon{seealso}{\sphinxremovefinalcolon{#1}}}
360
- \newcommand\sphinxstyletodotitle [1]{\sphinxdotitlerowwithicon{todo}{\sphinxremovefinalcolon{#1}}}
368
+ \newcommand\sphinxstylenotetitle [1]{\sphinxdotitlerow{note}{\sphinxremovefinalcolon{#1}}}
369
+ \newcommand\sphinxstylehinttitle [1]{\sphinxdotitlerow{hint}{\sphinxremovefinalcolon{#1}}}
370
+ \newcommand\sphinxstyleimportanttitle[1]{\sphinxdotitlerow{important}{\sphinxremovefinalcolon{#1}}}
371
+ \newcommand\sphinxstyletiptitle [1]{\sphinxdotitlerow{tip}{\sphinxremovefinalcolon{#1}}}
372
+ \newcommand\sphinxstylewarningtitle [1]{\sphinxdotitlerow{warning}{\sphinxremovefinalcolon{#1}}}
373
+ \newcommand\sphinxstylecautiontitle [1]{\sphinxdotitlerow{caution}{\sphinxremovefinalcolon{#1}}}
374
+ \newcommand\sphinxstyleattentiontitle[1]{\sphinxdotitlerow{attention}{\sphinxremovefinalcolon{#1}}}
375
+ \newcommand\sphinxstyledangertitle [1]{\sphinxdotitlerow{danger}{\sphinxremovefinalcolon{#1}}}
376
+ \newcommand\sphinxstyleerrortitle [1]{\sphinxdotitlerow{error}{\sphinxremovefinalcolon{#1}}}
377
+ \newcommand\sphinxstyleseealsotitle [1]{\sphinxdotitlerow{seealso}{\sphinxremovefinalcolon{#1}}}
378
+ \newcommand\sphinxstyletodotitle [1]{\sphinxdotitlerow{todo}{\sphinxremovefinalcolon{#1}}}
361
379
  %
362
380
  % A utility to remove a final colon. Removing last token is not easy in
363
381
  % LaTeX, and there are additional complications:
@@ -1,7 +1,7 @@
1
1
  %% CONTAINER DIRECTIVES
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexcontainers.sty}[2021/05/03 containers]
4
+ \ProvidesPackage{sphinxlatexcontainers}[2021/05/03 containers]
5
5
 
6
6
  % The purpose of this file is to provide a dummy environment sphinxclass which
7
7
  % will be inserted for each class in each container directive. The class name
@@ -1,7 +1,7 @@
1
1
  %% GRAPHICS
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexgraphics.sty}[2021/01/27 graphics]
4
+ \ProvidesPackage{sphinxlatexgraphics}[2024/08/13 v8.1.0 graphics]
5
5
 
6
6
  % Provides support for this output mark-up from Sphinx latex writer:
7
7
  %
@@ -84,7 +84,8 @@
84
84
  \ifin@
85
85
  \setbox\spx@image@box
86
86
  \hbox{\includegraphics
87
- [%#1,% contained only width and/or height and overruled anyhow
87
+ [#1,% contains only width and/or height which are overruled next
88
+ % but in future may contain page=N hence must be kept
88
89
  width=\spx@image@requiredwidth,height=\spx@image@requiredheight]%
89
90
  {#2}}%
90
91
  % \includegraphics does not set box dimensions to the exactly
@@ -1,7 +1,7 @@
1
1
  %% INDEX, BIBLIOGRAPHY, APPENDIX, TABLE OF CONTENTS
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexindbibtoc.sty}[2021/01/27 index, bib., toc]
4
+ \ProvidesPackage{sphinxlatexindbibtoc}[2021/01/27 index, bib., toc]
5
5
 
6
6
  % Provides support for this output mark-up from Sphinx latex writer:
7
7
  %
@@ -1,7 +1,7 @@
1
1
  %% ALPHANUMERIC LIST ITEMS
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexlists.sty}[2021/12/20 lists]
4
+ \ProvidesPackage{sphinxlatexlists}[2021/12/20 lists]
5
5
 
6
6
  % Provides support for this output mark-up from Sphinx latex writer:
7
7
  % - \sphinxsetlistlabels
@@ -1,7 +1,7 @@
1
1
  %% LITERAL BLOCKS
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexliterals.sty}[2024/07/01 v7.4.0 code-blocks and parsed literals]
4
+ \ProvidesPackage{sphinxlatexliterals}[2024/07/01 v7.4.0 code-blocks and parsed literals]
5
5
 
6
6
  % Provides support for this output mark-up from Sphinx latex writer:
7
7
  %
@@ -512,6 +512,9 @@
512
512
  \setbox\spx@tempboxa
513
513
  \vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@
514
514
  \doublehyphendemerits\z@\finalhyphendemerits\z@
515
+ % Avoid TeX reporting Overfull \hbox'es during this measuring phase. Setting
516
+ % \hbadness to \@M to avoid Underfull reports is unneeded due to \raggedright.
517
+ \hfuzz\maxdimen
515
518
  \spx@everypar{}\noindent\strut\FV@Line\strut\spx@par
516
519
  \spx@verb@getwidths}%
517
520
  \ifdim\spx@verb@maxwidth>
@@ -1,7 +1,7 @@
1
1
  %% NUMBERING OF FIGURES, TABLES, AND LITERAL BLOCKS
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexnumfig.sty}[2021/01/27 numbering]
4
+ \ProvidesPackage{sphinxlatexnumfig}[2024/07/31 v8.1.0 numbering]
5
5
 
6
6
  % Requires: remreset (old LaTeX only)
7
7
  % relates to numfig and numfig_secnum_depth configuration variables
@@ -37,7 +37,11 @@
37
37
  \def\theequation{\arabic{equation}}%
38
38
  \fi
39
39
  \else
40
- \let\spx@preAthefigure\@empty
40
+ % See apologetic comments on TeX wizardry at bottom of file.
41
+ % The reason for this one is to catch case where there will be only
42
+ % the number with no prefix from enclosing sectioning (can happen
43
+ % with latex_toplevel_sectioning='part').
44
+ \def\spx@preAthefigure{\expandafter\spx@magicsep@s\romannumeral-`0}
41
45
  \let\spx@preBthefigure\@empty
42
46
  % \ifspx@opt@usespart % <-- LaTeX writer could pass such a 'usespart' boolean
43
47
  % % as sphinx.sty package option
@@ -51,7 +55,7 @@
51
55
  \ifnum\spx@opt@numfigreset>0
52
56
  \ltx@ifundefined{c@chapter}
53
57
  {}
54
- {\g@addto@macro\spx@preAthefigure{\ifnum\c@chapter>\z@\arabic{chapter}.}%
58
+ {\g@addto@macro\spx@preAthefigure{\ifnum\c@chapter>\z@\arabic{chapter}\spx@magicsep}%
55
59
  \g@addto@macro\spx@preBthefigure{\fi}}%
56
60
  \fi
57
61
  \ifnum\spx@opt@numfigreset>1
@@ -61,7 +65,7 @@
61
65
  \ifspx@opt@mathnumfig
62
66
  \@addtoreset{equation}{section}%
63
67
  \fi%
64
- \g@addto@macro\spx@preAthefigure{\ifnum\c@section>\z@\arabic{section}.}%
68
+ \g@addto@macro\spx@preAthefigure{\ifnum\c@section>\z@\arabic{section}\spx@magicsep}%
65
69
  \g@addto@macro\spx@preBthefigure{\fi}%
66
70
  \fi
67
71
  \ifnum\spx@opt@numfigreset>2
@@ -71,7 +75,7 @@
71
75
  \ifspx@opt@mathnumfig
72
76
  \@addtoreset{equation}{subsection}%
73
77
  \fi%
74
- \g@addto@macro\spx@preAthefigure{\ifnum\c@subsection>\z@\arabic{subsection}.}%
78
+ \g@addto@macro\spx@preAthefigure{\ifnum\c@subsection>\z@\arabic{subsection}\spx@magicsep}%
75
79
  \g@addto@macro\spx@preBthefigure{\fi}%
76
80
  \fi
77
81
  \ifnum\spx@opt@numfigreset>3
@@ -81,7 +85,7 @@
81
85
  \ifspx@opt@mathnumfig
82
86
  \@addtoreset{equation}{subsubsection}%
83
87
  \fi%
84
- \g@addto@macro\spx@preAthefigure{\ifnum\c@subsubsection>\z@\arabic{subsubsection}.}%
88
+ \g@addto@macro\spx@preAthefigure{\ifnum\c@subsubsection>\z@\arabic{subsubsection}\spx@magicsep}%
85
89
  \g@addto@macro\spx@preBthefigure{\fi}%
86
90
  \fi
87
91
  \ifnum\spx@opt@numfigreset>4
@@ -91,7 +95,7 @@
91
95
  \ifspx@opt@mathnumfig
92
96
  \@addtoreset{equation}{paragraph}%
93
97
  \fi%
94
- \g@addto@macro\spx@preAthefigure{\ifnum\c@subparagraph>\z@\arabic{subparagraph}.}%
98
+ \g@addto@macro\spx@preAthefigure{\ifnum\c@subparagraph>\z@\arabic{subparagraph}\spx@magicsep}%
95
99
  \g@addto@macro\spx@preBthefigure{\fi}%
96
100
  \fi
97
101
  \ifnum\spx@opt@numfigreset>5
@@ -101,7 +105,7 @@
101
105
  \ifspx@opt@mathnumfig
102
106
  \@addtoreset{equation}{subparagraph}%
103
107
  \fi%
104
- \g@addto@macro\spx@preAthefigure{\ifnum\c@subsubparagraph>\z@\arabic{subsubparagraph}.}%
108
+ \g@addto@macro\spx@preAthefigure{\ifnum\c@subsubparagraph>\z@\arabic{subsubparagraph}\spx@magicsep}%
105
109
  \g@addto@macro\spx@preBthefigure{\fi}%
106
110
  \fi
107
111
  \expandafter\g@addto@macro
@@ -114,9 +118,18 @@
114
118
  \g@addto@macro\theliteralblock{\arabic{literalblock}}%
115
119
  \ifspx@opt@mathnumfig
116
120
  \let\theequation\spx@preAthefigure
117
- \g@addto@macro\theequation{\arabic{equation}}%
121
+ \g@addto@macro\theequation{E}%
118
122
  \fi
119
123
  \fi
120
124
  }% end of big \AtBeginDocument
121
125
 
126
+ % Sorry for TeX wizardry here. We need to keep expandability. Explaining
127
+ % the mechanism is not really feasible to non TeX-experts, but the idea
128
+ % is to force next `\ifnum` conditional so we can check what comes next.
129
+ % All cases are accounted for (i.e. not an equation, or an equation at top
130
+ % level, or an equation in some section at some depth).
131
+ \def\spx@magicsep{\expandafter\spx@magicsep@i\romannumeral-`0}
132
+ \def\spx@magicsep@i#1{\if#1E\spx@opt@mathnumsep\arabic{equation}\else.#1\fi}
133
+ %
134
+ \def\spx@magicsep@s#1{\if#1E\arabic{equation}\else#1\fi}
122
135
  \endinput
@@ -1,7 +1,7 @@
1
1
  %% MODULE RELEASE DATA AND OBJECT DESCRIPTIONS
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexobjects.sty}[2023/07/23 documentation environments]
4
+ \ProvidesPackage{sphinxlatexobjects}[2023/07/23 documentation environments]
5
5
 
6
6
  % Provides support for this output mark-up from Sphinx latex writer:
7
7
  %
@@ -1,21 +1,37 @@
1
1
  %% TOPIC AND CONTENTS BOXES
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexshadowbox.sty}[2023/03/19 sphinxShadowBox]
4
+ \ProvidesPackage{sphinxlatexshadowbox}[2024/07/28 v8.1.0 sphinxShadowBox]
5
5
 
6
6
  % Provides support for this output mark-up from Sphinx latex writer:
7
7
  %
8
- % - sphinxShadowBox (environment)
8
+ % - Environments: sphinxtopic, sphinxcontents, and sphinxsidebar.
9
+ %
10
+ % These wrappers replace at 8.1.0 former direct use of sphinxShadowBox
11
+ % environment which did not allow separate styling.
12
+ %
13
+ % - Commands: \sphinxstyletopictitle, \sphinxstylecontentstitle, and
14
+ % \sphinxstylesidebartitle.
15
+ %
16
+ % At 8.1.0 they default to use \sphinxdotitlerow whose definiion is done in
17
+ % sphinxlatexadmonitions.sty. There is also \sphinxstylesidebarsubtitle
18
+ % which does not use \sphinxdotitlerow.
9
19
  %
10
20
  % Dependencies (they do not need to be defined at time of loading):
11
21
  %
12
22
  % - of course the various colour and dimension options handled via sphinx.sty
13
23
  % - dimension register \spx@image@maxheight from sphinxlatexgraphics.sty
14
- % - \savenotes/\spewnotes from sphinxpackagefootnote
24
+ % - \savenotes/\spewnotes from sphinxpackagefootnote.sty
15
25
  % - \ifspx@inframed defined in sphinx.sty
26
+ % - \sphinxdotitlerow from sphinxlatexadmonitions.sty
27
+ % - \spx@boxes@fcolorbox@setup from sphinxpackageboxes.sty
16
28
  %
17
- % Requires:
18
29
  \RequirePackage{framed}
30
+ % Those are required either before or after by sphinx.sty anyhow, but for
31
+ % clarity we list them here:
32
+ \RequirePackage{sphinxlatexgraphics}
33
+ \RequirePackage{sphinxpackagefootnote}
34
+ \RequirePackage{sphinxlatexadmonitions}
19
35
  \RequirePackage{sphinxpackageboxes}
20
36
 
21
37
  % At 5.1.0 the code formerly here in a definition of \spx@ShadowFBox has been
@@ -45,9 +61,28 @@
45
61
  % in contrast with the framing used for literal blocks, also based, but in a
46
62
  % more sophisticated way on usage of \MakeFramed/\endMakeFramed, and
47
63
  % adjusting to current text indentation.
48
- \newenvironment{sphinxShadowBox}
64
+ %
65
+ % At 8.1.0, sphinxShadowBox takes an optional argument #1 and uses it as
66
+ % \spx@boxes@fcolorbox@setup{#1} rather than \spx@boxes@fcolorbox@setup{topic}.
67
+ % Some hesitation whether to move this line to newly added sphinxtopic,
68
+ % sphinxcontents and sphinxsidebar environmments. But anyhow the environment
69
+ % also requires later knowing a few more things: sphinx<type>TextColor and
70
+ % spx@<type>@texextras.
71
+ %
72
+ % The #1 defaulting to topic must be such that all parameters expected by
73
+ % \spx@boxes@fcolorbox@setup actually do exist, see CSS options in sphinx.sty
74
+ % which is what defines them for contents, topic, and sidebar.
75
+ %
76
+ % Fortunately the #1 is not needed in \end{sphinxShadowBox} so we don't have
77
+ % to work around a LaTeX conception bug that such #1 can not be used as is in
78
+ % the definition of the \end part of an environment.
79
+ %
80
+ % MEMO: the "shadow" is not really drawn directly by this environment but
81
+ % indirectly via the configuration which is passed over to \spx@boxes@fcolorbox,
82
+ % which is the macro creating frame and (perhaps but not necessarily) a shadow.
83
+ \newenvironment{sphinxShadowBox}[1][topic]%
49
84
  {%
50
- \spx@boxes@fcolorbox@setup{topic}%
85
+ \spx@boxes@fcolorbox@setup{#1}%
51
86
  % we will use the dimen registers from sphinxpackageboxes.sty which now hold
52
87
  % the values from options related to topic/contents
53
88
  % MEMO: \spx@boxes@fcolorbox creates an \hbox but does not quit vertical
@@ -56,7 +91,7 @@
56
91
  \def\FrameCommand {\spx@boxes@fcolorbox}%
57
92
  % 6.2.0 adds support for div.topic_box-decoration-break=slice.
58
93
  % (it is yet undecided if slice style should inhibit a bottom shadow)
59
- \ifspx@topic@border@open
94
+ \@nameuse{ifspx@#1@border@open}%
60
95
  \def\FirstFrameCommand
61
96
  {\spx@boxes@fcolorbox@setup@openbottom\FrameCommand}%
62
97
  \def\MidFrameCommand
@@ -97,10 +132,10 @@
97
132
  \@setminipage
98
133
  }%
99
134
  \color@begingroup % workaround upstream framed.sty bug
100
- \ifspx@topic@withtextcolor
101
- \color{sphinxtopicTextColor}%
135
+ \@nameuse{ifspx@#1@withtextcolor}%
136
+ \color{sphinx#1TextColor}%
102
137
  \fi
103
- \spx@topic@TeXextras
138
+ \@nameuse{spx@#1@TeXextras}%
104
139
  }%
105
140
  {% insert the "endminipage" code
106
141
  \par\unskip
@@ -113,4 +148,31 @@
113
148
  \spewnotes
114
149
  }
115
150
 
151
+ % 8.1.0
152
+ \newenvironment{sphinxtopic}
153
+ {\begin{sphinxShadowBox}[topic]}{\end{sphinxShadowBox}}
154
+ \newenvironment{sphinxcontents}
155
+ {\begin{sphinxShadowBox}[contents]}{\end{sphinxShadowBox}}
156
+ % Arguably sphinxsidebar should rather use a wrapfig or similar environment
157
+ % but this is so dysfunctional in LaTeX (except for self-written documents)
158
+ % so we prefer to not venture into such a potential quagmire and keep the
159
+ % legacy rendering using a full width display.
160
+ \newenvironment{sphinxsidebar}
161
+ {\begin{sphinxShadowBox}[sidebar]}{\end{sphinxShadowBox}}
162
+
163
+ % TODO: decide if this should be in sphinxlatexstyletext.sty rather
164
+ %
165
+ % 8.1.0 styles topic/contents/sidebar with a title row, too.
166
+ % Prior to 8.1.0, definitions use \protected\def but there does not seem
167
+ % to be any reason so back to \newcommand.
168
+ \newcommand*\sphinxstyletopictitle[1]{\sphinxdotitlerow{topic}{#1}}
169
+ \newcommand*\sphinxstylecontentstitle[1]{\sphinxdotitlerow{contents}{#1}}
170
+ \newcommand*\sphinxstylesidebartitle[1]{\sphinxdotitlerow{sidebar}{#1}}
171
+ % No default color background for subtitle. The contents next are injected by
172
+ % LaTeX writer after a blank line in source hence will start a new paragrpah.
173
+ % The \sphinxAtStartPar here is only for coherence with other text paragraphs,
174
+ % but does not have serious necessity (its general role is to allow hyphenation
175
+ % for first word in narrow table cells).
176
+ \newcommand*\sphinxstylesidebarsubtitle[1]{\sphinxAtStartPar\textbf{#1}}
177
+
116
178
  \endinput
@@ -1,9 +1,15 @@
1
1
  %% TITLES
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexstyleheadings.sty}[2023/02/11 headings]
4
+ \ProvidesPackage{sphinxlatexstyleheadings}[2023/02/11 headings]
5
5
 
6
6
  \RequirePackage[nobottomtitles*]{titlesec}
7
+ % tests showed that this setting guarantees \section title has
8
+ % 3 lines of text following it on same page if near bottom.
9
+ \renewcommand\bottomtitlespace{6\baselineskip}
10
+ % the default setting of 0.2\textheight is about 11\baselineskip
11
+ % (for 10pt letterpaper documents) and may create large voids.
12
+
7
13
  \@ifpackagelater{titlesec}{2016/03/15}%
8
14
  {\@ifpackagelater{titlesec}{2016/03/21}%
9
15
  {}%
@@ -47,7 +53,6 @@
47
53
  \titleformat{\subparagraph}{\normalsize\py@HeaderFamily}%
48
54
  {\py@TitleColor\thesubparagraph}{0.5em}{\py@TitleColor}
49
55
 
50
-
51
56
  % Since Sphinx 1.5, users should use HeaderFamily key to 'sphinxsetup' rather
52
57
  % than defining their own \py@HeaderFamily command (which is still possible).
53
58
  % Memo: \py@HeaderFamily is also used by \maketitle as defined in
@@ -1,16 +1,10 @@
1
1
  %% PAGE STYLING
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexstylepage.sty}[2021/01/27 page styling]
4
+ \ProvidesPackage{sphinxlatexstylepage}[2021/01/27 page styling]
5
5
 
6
6
  % Separate paragraphs by space by default.
7
- \IfFileExists{parskip-2001-04-09.sty}% since September 2018 TeXLive update
8
- % new parskip.sty, but let it rollback to old one.
9
- % hopefully TeX installation not broken and LaTeX kernel not too old
10
- {\RequirePackage{parskip}[=v1]}
11
- % standard one from 1989. Admittedly \section of article/book gives possibly
12
- % anomalous spacing, but we can't require September 2018 release for some time.
13
- {\RequirePackage{parskip}}
7
+ \RequirePackage{parskip}
14
8
 
15
9
  % Style parameters and macros used by most documents here
16
10
  \raggedbottom
@@ -1,9 +1,10 @@
1
1
  %% TEXT STYLING
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatexstyletext.sty}[2024/07/01 v7.4.0 text styling]
4
+ \ProvidesPackage{sphinxlatexstyletext}[2024/07/28 v8.1.0 text styling]
5
5
 
6
6
  % 7.4.0 has moved all that is related to admonitions to sphinxlatexadmonitions.sty
7
+ % 8.1.0 has moved topic/contents/sidebar to sphinxlatexshadowbox.sty
7
8
  % Most everything left here consists of macros which are part of the latex markup
8
9
  % produced by the Sphinx LaTeX writer.
9
10
 
@@ -39,10 +40,7 @@
39
40
  {{\Large\sffamily#1}\nopagebreak\vspace{1mm}}
40
41
  \def\sphinxstyleindexlettergroupDefault #1%
41
42
  {{\Large\sffamily\sphinxnonalphabeticalgroupname}\nopagebreak\vspace{1mm}}
42
- \protected\def\sphinxstyletopictitle #1{\textbf{#1}\par\medskip}
43
- \let\sphinxstylesidebartitle\sphinxstyletopictitle
44
43
  \protected\def\sphinxstyleothertitle #1{\textbf{#1}}
45
- \protected\def\sphinxstylesidebarsubtitle #1{~\\\textbf{#1} \smallskip}
46
44
  % \text.. commands do not allow multiple paragraphs
47
45
  % attention, this one is not self-delimiting
48
46
  \protected\def\sphinxstyletheadfamily {\sffamily}
@@ -1,7 +1,7 @@
1
1
  %% TABLES (WITH SUPPORT FOR MERGED CELLS OF GENERAL CONTENTS)
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxlatextables.sty}[2024/07/01 v7.4.0 tables]%
4
+ \ProvidesPackage{sphinxlatextables}[2024/07/01 v7.4.0 tables]%
5
5
 
6
6
  % Provides support for this output mark-up from Sphinx latex writer
7
7
  % and table templates:
@@ -1,7 +1,7 @@
1
1
  %% OPTIONS FOR GEOMETRY
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxoptionsgeometry.sty}[2021/01/27 geometry]
4
+ \ProvidesPackage{sphinxoptionsgeometry}[2021/01/27 geometry]
5
5
 
6
6
  % geometry
7
7
  \ifx\kanjiskip\@undefined
@@ -1,7 +1,7 @@
1
1
  %% Bookmarks and hyperlinks
2
2
  %
3
3
  % change this info string if making any custom modification
4
- \ProvidesFile{sphinxoptionshyperref.sty}[2021/01/27 hyperref]
4
+ \ProvidesPackage{sphinxoptionshyperref}[2021/01/27 hyperref]
5
5
 
6
6
  % to make pdf with correct encoded bookmarks in Japanese
7
7
  % this should precede the hyperref package
@@ -1,13 +1,4 @@
1
- {#
2
- agogo/layout.html
3
- ~~~~~~~~~~~~~~~~~
4
-
5
- Sphinx layout template for the agogo theme, originally written
6
- by Andi Albrecht.
7
-
8
- :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
9
- :license: BSD, see LICENSE for details.
10
- #}
1
+ {# Sphinx layout template for the agogo theme. #}
11
2
  {%- extends "basic/layout.html" %}
12
3
 
13
4
  {% block header %}
@@ -1,12 +1,5 @@
1
1
  /*
2
- * agogo.css_t
3
- * ~~~~~~~~~~~
4
- *
5
2
  * Sphinx stylesheet -- agogo theme.
6
- *
7
- * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
8
- * :license: BSD, see LICENSE for details.
9
- *
10
3
  */
11
4
 
12
5
  * {
@@ -1,11 +1,4 @@
1
- {#
2
- basic/defindex.html
3
- ~~~~~~~~~~~~~~~~~~~
4
-
5
- Default template for the "index" page.
6
-
7
- :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
8
- :license: BSD, see LICENSE for details.
1
+ {# Default template for the "index" page.
9
2
  #}{{ warn('Now base template defindex.html is deprecated.') }}
10
3
  {%- extends "layout.html" %}
11
4
  {% set title = _('Overview') %}
@@ -1,12 +1,4 @@
1
- {#
2
- basic/domainindex.html
3
- ~~~~~~~~~~~~~~~~~~~~~~
4
-
5
- Template for domain indices (module index, ...).
6
-
7
- :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
8
- :license: BSD, see LICENSE for details.
9
- #}
1
+ {# Template for domain indices (module index, ...). #}
10
2
  {%- extends "layout.html" %}
11
3
  {% set title = indextitle %}
12
4
  {% block extrahead %}
@@ -1,12 +1,4 @@
1
- {#
2
- basic/genindex-single.html
3
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
4
-
5
- Template for a "single" page of a split index.
6
-
7
- :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
8
- :license: BSD, see LICENSE for details.
9
- #}
1
+ {# Template for a "single" page of a split index. #}
10
2
  {% macro indexentries(firstname, links) %}
11
3
  {%- if links -%}
12
4
  <a href="{{ links[0][1] }}">
@@ -1,12 +1,4 @@
1
- {#
2
- basic/genindex-split.html
3
- ~~~~~~~~~~~~~~~~~~~~~~~~~
4
-
5
- Template for a "split" index overview page.
6
-
7
- :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
8
- :license: BSD, see LICENSE for details.
9
- #}
1
+ {# Template for a "split" index overview page. #}
10
2
  {%- extends "layout.html" %}
11
3
  {% set title = _('Index') %}
12
4
  {% block body %}
@@ -1,12 +1,4 @@
1
- {#
2
- basic/genindex.html
3
- ~~~~~~~~~~~~~~~~~~~
4
-
5
- Template for an "all-in-one" index.
6
-
7
- :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
8
- :license: BSD, see LICENSE for details.
9
- #}
1
+ {# Template for an "all-in-one" index. #}
10
2
  {%- extends "layout.html" %}
11
3
  {% set title = _('Index') %}
12
4