'texdoc' дает сбой, когда какой-либо другой texlive-* установлен с помощью 'apt'

'texdoc' дает сбой, когда какой-либо другой texlive-* установлен с помощью 'apt'

Я правильно установил TexLive из 'texlive2020-20200406.iso' в Ubuntu 20.04 и некоторое время использовал его для написания отчетов. Недавно я нашел несколько пакетов через команду терминала apt search texliveи установил некоторые из них. С тех пор команда texdocбольше не может искать документ. Я уверен, что раньше команда работала хорошо.

Пример: раньше команда texdoc beamerоткрывала «beameruserguide.pdf», но теперь она открывает образец бимера по другому пути.

Похоже, что пакеты, установленные через, aptпереопределяют путь тех, которые установлены из файла ``iso``.

apt list --installed | grep texliveприводится список ниже:

texlive-base/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-binaries/focal,now 2019.20190605.51237-3build2 amd64 [installed,automatic]
texlive-font-utils/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-fonts-extra-links/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-fonts-extra/focal,focal,now 2019.202000218-1 all [installed]
texlive-fonts-recommended/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-chinese/focal,focal,now 2019.20200218-1 all [installed]
texlive-lang-cjk/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-japanese/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-korean/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-lang-other/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-latex-base/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-latex-extra/focal,focal,now 2019.202000218-1 all [installed,automatic]
texlive-latex-recommended/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-pictures/focal,focal,now 2019.20200218-1 all [installed,automatic]
texlive-plain-generic/focal,focal,now 2019.202000218-1 all [installed,automatic]

Я буду очень благодарен, если вы поможете мне решить эту проблему.


Дополнение: Путь задается путем редактирования «~/.bashrc», как показано ниже (после установки из «.iso»)

export MANPATH=${MANPATH}:/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2020/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2020/bin/x86_64-linux

Дополнение: Команда which texdocи echo $PATHвыходные данные:

# which texdoc
/usr/bin/texdoc

(Я переносю строки для удобства чтения)

# echo $PATH
/home/xiaocy/.local/bin:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:/usr/bin:
/sbin:
/bin:
/usr/games:
/usr/local/games:
/snap/bin:
/usr/local/texlive/2020/bin/x86_64-linux:
/usr/local/texlive/2020/bin/x86_64-linux:
/usr/local/texlive/2020/bin/x86_64-linux

Заключение

Проблема вызвана переопределением пути. Измените ~/.bashrcи, ~/.profileкак указано ниже, можете решить эту проблему.

export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:${MANPATH}
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:${INFOPATH}
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:${PATH}

Я не знаю, можно ли самому давать такой вывод. Вывод сделан с помощью @daleif (см. комментарии). Большое спасибо!

решение1

Это распространенная ошибка. Во-первых, ОС ищут PATH слева направо. (Здесь путь разделен двоеточиями). Затем он добавляет каждую часть пути к вызову функции, пока не будет найдена первая. Здесь у вас есть две установки latex: apt и TL2020 через ISO. Поскольку установка apt добавляет texlive таким образом, что он находится через /usr/bin/, нам нужно сделать так, чтобы часть TL2020 пути находилась перед /usr/bin/. Стандартный метод заключается в том, чтобы убедиться, чтодобавлятьпуть TL2020.

Поэтому используйте

export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:${MANPATH}
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:${INFOPATH}
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:${PATH}

нет

export MANPATH=${MANPATH}:/usr/local/texlive/2020/texmf-dist/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2020/texmf-dist/doc/info
export PATH=${PATH}:/usr/local/texlive/2020/bin/x86_64-linux

Кроме того, не забудьте также добавить это .profile(вам нужно будет выйти из системы и войти снова, чтобы .profileредактирование имело какой-либо эффект). Это связано с тем, что любой редактор, запущенный через меню или двойным нажатием на файл, никогда не видит ничего, связанного с Bash, и, следовательно, никогда не видит изменения.

Связанный контент