Документация Python неофициальный перевод

fromlatex.md

363 строк · 9.8 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.6/documenting/fromlatex.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 5. Отличия от разметки LaTeX89Хотя язык разметки другой, большинство концепций и типов разметки из старой документации LaTeX сохранены – окружения как директивы reST, встроенные команды как роли reST и так далее.1011Однако есть несколько отличий в том, как они работают, отчасти из-за различий в языках разметки, отчасти из-за улучшений в Sphinx. В этом разделе перечислены эти отличия, чтобы дать тем, кто знаком со старым форматом, быстрый обзор того, с чем они могут столкнуться.1213## 5.1. Встроенная разметка1415Были внесены следующие изменения во встроенную разметку:1617- **Роли перекрёстных ссылок**1819  Большинство следующих семантических ролей ранее существовали как встроенные команды, но не делали ничего, кроме форматирования содержимого как кода. Теперь они создают перекрёстные ссылки на известные цели (некоторые имена также были сокращены):2021  *mod*2223  (ранее2425  *refmodule*2627  или2829  *module*3031  )3233  *func*3435  (ранее3637  *function*3839  )4041  *data*4243  (новое)4445  *константа*4647  *класс*4849  *meth*5051  (ранее5253  *method*5455  )5657  *attr*5859  (ранее6061  *member*6263  )6465  *exc*6667  (ранее6869  *исключение*7071  )7273  *cdata*7475  *cfunc*7677  (ранее7879  *cfunction*8081  )8283  *cmacro*8485  (ранее8687  *csimplemacro*8889  )9091  *ctype*9293  Также отличается обработка *func* и *meth*: ранее скобки добавлялись к имени вызываемого объекта (как `\func{str()}`), теперь они добавляются системой сборки – добавление их в исходном коде приведёт к двойным скобкам. Это также означает, что запись `` :func:`str(object)` `` не будет работать как ожидается – используйте вместо неё `` ``str(object)`` ``!94- **Встроенные команды, реализованные как директивы**9596  Раньше это были встроенные команды в LaTeX, но теперь это директивы в reST:9798  *устарело*99100  *добавлено в версии*101102  *изменено в версии*103104  Они используются следующим образом:105106  ```rest107  .. deprecated:: 2.5108     Reason of deprecation.109  ```110111  Кроме того, к тексту *versionadded* и *versionchanged* не добавляется точка.112113  *примечание*114115  *предупреждение*116117  Они используются следующим образом:118119  ```rest120  .. note::121122     Content of note.123  ```124- **Прочие изменённые команды**125126  Команда *samp* ранее форматировала код и добавляла вокруг него кавычки. Однако роль *samp* теперь использует новую систему подсветки, как и *file*:127128  > `` :samp:`open({filename}, {mode})` `` даёт в результате `open(filename, mode)`129- **Удалённые команды**130131  Это были команды LaTeX, но теперь они недоступны в качестве ролей:132133  *bfcode*134135  *character*136137  (использовать138139  `` ``'c'`` ``140141  )142143  *citetitle*144145  (использовать146147  `` `Title <URL>`_ ``148149  )150151  *code*152153  (использовать154155  `` ``code`` ``156157  )158159  *email*160161  (адрес просто указывается в основном тексте)162163  *filenq*164165  *filevar*166167  (использовать функцию168169  `{...}`170171  подсветки для172173  *file*174175  )176177  *programopt*178179  ,180181  *longprogramopt*182183  (использовать184185  *option*186187  )188189  *ulink*190191  (использовать192193  `` `Title <URL>`_ ``194195  )196197  *url*198199  (URL просто указывается в основном тексте)200201  *var*202203  (использовать204205  `*var*`206207  )208209  *infinity*210211  ,212213  *plusminus*214215  (использовать символ Unicode)216217  *shortversion*218219  ,220221  *version*222223  (использовать подстановки224225  `|version|`226227  и228229  `|release|`230231  )232233  *emph*234235  ,236237  *strong*238239  (использовать разметку reST)240- **Экранирование обратной косой черты**241242  В reST обратную косую черту нужно экранировать в обычном тексте и в содержимом ролей. Однако в литералах кода и блоках литералов экранировать её не нужно. Пример: `` :file:`C:\\Temp\\my.tmp` `` против `` ``open("C:\Temp\my.tmp")`` ``.243244## 5.2. Информационные единицы245246Информационные единицы (окружения *...desc*) стали директивами reST. Эти изменения информационных единиц следует отметить:247248- **Новые названия**249250  «desc» удалён из каждого названия. Кроме того, данные директивы имеют новые названия:251252  *cfunction*253254  (ранее255256  *cfuncdesc*257258  )259260  *cmacro*261262  (ранее263264  *csimplemacrodesc*265266  )267268  *исключение*269270  (ранее271272  *excdesc*273274  )275276  *function*277278  (ранее279280  *funcdesc*281282  )283284  *attribute*285286  (ранее287288  *memberdesc*289290  )291292  Окружения *classdesc\** и *excclassdesc* удалены, а директивы *class* и *исключение* поддерживают классы, документированные с аргументами конструктора и без.293- **Несколько объектов**294295  Эквивалент команд *...line*:296297  ```rest298  .. function:: do_foo(bar)299                do_bar(baz)300301     Description of the functions.302  ```303304  То есть просто указывается одна сигнатура на строку, с одинаковым отступом.305- **Аргументы**306307  Команды *optional* не существует. Просто укажите сигнатуры функций так, как они должны отображаться в выводе:308309  ```rest310  .. function:: open(filename[, mode[, buffering]])311312     Description.313  ```314315  Примечание: разметка в сигнатуре не поддерживается.316- **Индексирование**317318  Окружения *...descni* были удалены. Чтобы пометить информационный блок как неподходящий для создания индексной записи, используйте параметр *noindex* следующим образом:319320  ```rest321  .. function:: foo_*322     :noindex:323324     Description.325  ```326- **Новые информационные блоки**327328  Появились новые универсальные информационные блоки: один называется «describe» и может использоваться для документирования того, что не охвачено другими блоками:329330  ```rest331  .. describe:: a == b332333     The equals operator.334  ```335336  Остальные:337338  ```rest339  .. cmdoption:: -O340341     Describes a command-line option.342343  .. envvar:: PYTHONINSPECT344345     Describes an environment variable.346  ```347348## 5.3. Структура349350Документация LaTeX была разделена на несколько руководств верхнего уровня. Теперь все файлы являются частью единого дерева документации, на что указывают директивы *toctree* в исходниках (хотя отдельные форматы вывода могут снова разбивать их на части). Каждая директива *toctree* встраивает другие файлы как поддокументы текущего файла (эта структура не обязательно отражается в файловой системе). Файл верхнего уровня – `contents.rst`.351352Однако бо́льшая часть старой структуры каталогов сохранена, каталоги переименованы следующим образом:353354- `api` -\> `c-api`355- `dist` -\> `distutils`, при этом единственный TeX-файл был разделён356- `doc` -\> `documenting`357- `ext` -\> `extending`358- `inst` -\> `installing`359- `lib` -\> `library`360- `mac` -\> объединён в `library`, при этом `mac/using.tex` перемещён в `using/mac.rst`361- `ref` -\> `reference`362- `tut` -\> `tutorial`, при этом единственный TeX-файл был разделён363