[ Пред. ] [ Содержание ] [ След. ]

LaTeX

[ @manjaro @install @LaTeX ]

 


Это пошаговая инструкция для нестандартной, но исключительно однозначной, точной и грамотной ручной установки всего набора LaTeX из его официального iso-файла с неординарной установкой редактора Kile (KDE) в Manjaro.


Стандартная установка


Можно поставить через Pamac ’texlive-full’ и ’Kile’. LaTeX будет установлен в автоматическом режиме в /opt/


Точнее, что-то вроде /opt/texlive/2019/


Добавить в системную переменную PATH путь к установленному LaTeX:


mcedit ~/.profile

Добавить путь к исполняемым файлам LaTeX в его нижнюю часть:


export PATH="$PATH:/opt/texlive/2019/bin/x86_64-linux"


В каталог /usr/local/bin добавить два symbolic links к исполняемым скриптам:


sudo ln -s /opt/texlive/2019/bin/x86_64-linux/latexmk
sudo ln -s /opt/texlive/2019/bin/x86_64-linux/bibtex

Restart and enjoy your TeXLive.


Но я предпочитаю нестандартную установку.


*todo ! LaTeX — почему нестандартно


*todo ! LaTeX — добавить внешний файл


Предусловия нестандартной установки


В этом файле полно упоминаний переменной "$userHomeFolder". Разумно сразу же объявить эту переменную и её содержимое. Пример:


userHomeFolder=/home/astenix


Проверка:


echo $userHomeFolder


Редактор для файлов *.tex — по вкусу. Его можно поставить и ДО LaTeX, и ПОСЛЕ. Мне нравится кдешный +Kile.


1. Подготовить систему


Убеждаемся в том, что в системе нет ни TEX, ни Kile из репозиториев, бо при установке этого удобнейшего редактора для LaTeX принудительно устанавливается и TEX из репозитория, но это не наш метод.


Если ранее был установлен LaTeX, его надо сперва грамотно снести, бо апгрейд между версиями не предусмотрен.


И это правильно. С любой версией LaTeX можно работать чуть менее, чем бесконечно, если нет действительной нужды в использовании каких-то обновлённых утилит.


Очистить систему от вероятных установок TeX из репозитория


  1. Run the application add/remove software i.e. pamac-manager.
  2. Check if you have any partial texlive installations.
  3. Uninstall every texlive-(…) other than “full” previously installed (you’ll probably find texlive-bin and texlive-core.

Выполнить дежурный запрос об указании месторасположения LaTeX


which tex


Ожидаем сообщение о том, что ничего не найдено, иначе крушить/удалять.


Проверить отстутствие Kile


Он с собой приносит основные части LaTeX из репозитория, а они не нужны.


which kile

Установить 'Perl/Tk module'


Он понадобится в будущем для работы «TeX Live Manager» (он же tlmgr)


sudo pacman -S perl-tk


Добавить в PATH путь к будущим файлам LaTeX


Из-под своего юзера своем домашнем каталоге отредактировать файл .bashrc [создать его, если отсутствует>


mcedit ~/.bashrc


— добавить туда в самом конце три строки:


PATH=/home/LaTeX/bin/x86_64-linux:$PATH
INFOPATH=/home/LaTeX/texmf-dist/doc/info:$INFOPATH
MANPATH=/home/LaTeX/texmf-dist/doc/man:$MANPATH

Чтобы эти изменения применились, надо или «разлогиниться и залогиниться», или выполнить принудительное перечитывание конфигурационных файлов профиля через


source ~/.bashrc


Проверить, если данные добавились в PATH


Открыть новое окно консоли (чтобы настройки системы подхватились as is) и выполнить


echo "${PATH//:/$'\n'}"


Можно и просто echo $PATH — но в этом случае все данные будут представлены в одной строке.


Объявление переменных в PATH для всех пользователей в системе


Если на ноуте только один пользователь, которому этот LaTeX нужен, то этот шаг не нужен.


Если же этот LaTeX будет нужен нескольким пользователям, то следует повторить процедуру из-под root:


  1. Залогиниться под root:

su -


  1. Перейти в корень профиля root:

cd


  1. Отредактировать рутовский файл .bashrc (мне удобно через mcedit, бо Midnight Commander), добавить туда три строки:

PATH=/home/LaTeX/bin/x86_64-linux:$PATH
INFOPATH=/home/LaTeX/texmf-dist/doc/info:$INFOPATH
MANPATH=/home/LaTeX/texmf-dist/doc/man:$MANPATH

Но тут уже точно нужно будет перезагрузить ноутбук целиком.


Создать каталог для файла с образом LaTeX


В каталоге своего профиля сделать временный каталог, в котором будут развернуты установочные файлы.


Содержимое переменной '$userHomeFolder' было задано в самом начале этой инструкции при подготовке окружения. Проверка ’echo $userHomeFolder


mkdir $userHomeFolder/tmp_LaTeX_Installation/ && cd $userHomeFolder/tmp_LaTeX_Installation/ && echo 'Done!'


2. Скачать установочный iso-файл c LaTeX


Выбирать на https://ctan.org/mirrors


Например, мастер-хост проекта LaTeX находится в Германии:

ftp://ftp.dante.de/tex-archive


и ещё Германия
http://ctan.127001.ovh/systems/texlive/Images/


и Беларусь
http://mirror.datacenter.by/pub/mirrors/CTAN/systems/texlive/Images/


Украины на этой карте мира нет.


Cкачать texlive[ГодВыпуска].iso


http://ctan.ebinger.cc/tex-archive/systems/texlive/Images/


ВНИМАНИЕ!


К скачиванию могут быть предложены разные файлы.


Если предлагается выбор между «texlive2020-20200406.iso» и «texlive2020.iso» — всегда выбираем второй. Первый наверняка посвежее, но не факт, что подмонтируется.


Открыть новое окно Konsole и через wget скачать всё в каталог для установки:


wget http://ctan.ebinger.cc/tex-archive/systems/texlive/Images/texlive2022.iso --directory-prefix=$userHomeFolder/tmp_LaTeX_Installation/ && echo 'Done!'


Монтировать iso-файл


Переходим в каталог, в который был стянут texlive*.iso.


cd $userHomeFolder/tmp_LaTeX_Installation/


  1. Убедиться в том, что в каталоге только один файл .iso (мало ли было неудачных или прерванных скачиваний).

ls


И смотрим глазами, что в каталоге только один файл .iso


  1. Во временном разделе создать новый каталог, в который будет смонтирован образ диска:

mkdir /tmp/latex_iso/


  1. Монтируем образ в каталоге /tmp/ — там он будет жить до следующей перезагрузки системы; заодно не будем морочиться с его размонтированием.

sudo mount -o loop *.iso /tmp/latex_iso


Единственный нужный ответ «mount: /tmp/latex_iso: WARNING: device write-protected, mounted read-only.», любой другой нужно разбирать отдельно.


Если всё ок, то в системе появился новый диск (новое устройство), доступный только для чтения.


И каталог /tmp/latex_installation тоже доступен только для чтения — не удалить.


3. Подготовить установку LaTeX


Создать каталог, в который будет установлен LaTeX


Можно сделать это из-под root, чтобы в будущем оградить его от даже случайного изменения всего содержимого. А можно и просто:


sudo mkdir /home/LaTeX/


Создать место для собственных настроек LaTeX


mkdir -p ~/.LaTeX_Settings/{texmf,texmf-config,texmf-var}


В каталоге юзера появится скрытый каталог './LaTeX_Settings' и, соответственно, три каталога в нём.


Настроить свой installation.profile


Создать файл профиля для установки LaTeX


mcedit ~/.LaTeX_Settings/installation.profile


В этот файл вписать текст, который указан МЕЖДУ "START" и "END":


Учесть два момента:


  1. надо заменить все "---yourUserHomeFolder---" (оно в трех местах) на своё значение.
  2. закрывающие слэши нигде не нужны.

selected_scheme scheme-full
TEXDIR /home/LaTeX
TEXMFLOCAL /home/LaTeX/texmf-local
TEXMFSYSCONFIG /home/LaTeX/texmf-config
TEXMFSYSVAR /home/LaTeX/texmf-var
TEXMFCONFIG /home/---yourUserHomeFolder---/.LaTeX_Settings/texmf-config
TEXMFHOME /home/---yourUserHomeFolder---/.LaTeX_Settings/texmf
TEXMFVAR /home/---yourUserHomeFolder---/.LaTeX_Settings/texmf-var
binary_x86_64-linux 1
instopt_adjustpath 0
instopt_adjustrepo 1
instopt_letter 0
instopt_portable 0
instopt_write18_restricted 1
tlpdbopt_autobackup 1
tlpdbopt_backupdir tlpkg/backups
tlpdbopt_create_formats 1
tlpdbopt_desktop_integration 1
tlpdbopt_file_assocs 1
tlpdbopt_generate_updmap 0
tlpdbopt_install_docfiles 1
tlpdbopt_install_srcfiles 1
tlpdbopt_post_code 1
tlpdbopt_sys_bin /usr/local/bin
tlpdbopt_sys_info /usr/local/share/info
tlpdbopt_sys_man /usr/local/share/man
tlpdbopt_w32_multi_user 1


Первая строка просто указывает «Установить сразу всё-всё-всё-всё!».


Дальше указаны каталоги из 2.4.2 — внимательно прочитать и указать свои настройки для TEXMFCONFIG, TEXMFHOME и TEXMFVAR.


Cправка:
TEXDIR — каталог, в котором будет жить LaTeX.
TEXMFVAR — personal directory for variable and automatically generated data
TEXMFCONFIG — personal directory for local config
TEXMFHOME — directory for user-specific files.
binary_x86_64-linux 1 = установить для 64-битной архитектуры. Современность же.


Остальное сгенерировано родным установщиком LaTeX, оставляем без изменений.


Если надо сгенерировать такой файл: при запуске инсталлятора "install-tl" можно сразу выбрать действие "Р". На жестком диске появится файл "texlive.profile".


Но это надо делать из инсталлятора, который запускается в режиме прав записи. В нашем случае всё запускается из образа, который огорожен от редактирования, поэтому при запросе "Р" инсталлятор сгенерирует такой файл, но сохранить его не сможет (как делить на ноль).


Если установка уже прошла успешно, то файл "texlive.profile" всегда будет находиться в каталоге "вашеМестоУстановкиLaTeX/tlpkg".


4. Установить LaTeX


# включить мозг и осторожность


Переходим к файлу install-tl:


cd /tmp/latex_iso/


Запускаем файл install-tl с указанием "взять настройки из файла installation.profile" (если не сработает, то запускаем sudo ./install-tl и дальше указываем нужные каталоги вручную):


sudo ./install-tl --profile ~/.LaTeX_Settings/installation.profile && echo 'Done!'


Ждать, пока установка отработает полностью, там больше четырех тысяч файлов.


Проверить работоспособность LaTeX


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


mkdir /tmp/test_tex && cd /tmp/test_tex


Запросить информацию о месторасположении LaTeX. Ответ зависит от переменной PATH, которая уже была настроена в шаге 2.2.4.


which tex


Ответом нам должно быть '/home/LaTeX/bin/x86_64-linux/tex', иначе алярм.


Запросить информацию о версии TEX:


tex --version


Ответ вроде TeX 3.14159265 (TeX Live 2019) и так далее нас полностью удовлетворит.


Создать в этом временном каталоге тестовый (красивый!) документ за подписью Лесли Ламберта, 2004-го года


pdflatex sample2e.tex


Посмотреть документ


okular sample2e.pdf


Посмотреть значение каждой переменной LaTeX по-отдельности


kpsewhich -var-value TEXMFHOME
kpsewhich -var-value TEXMFLOCAL

и так далее при желании.


Посмотрим содержимое файла всех настроек LaTeX (будет много текста, зато мало магии и непонятных мест):


texconfig conf


Если не будет ругательств, то усё, LaTeX, в принципе, работает.


5. Обновить TeX из сети


Проверим наличие «TeX Live Manager» (он же tlmgr):


which tlmgr


Ждём ответ /home/LaTeX/bin/x86_64-linux/tlmgr — иначе алярм.


Запуск tlmgr


Только из-под root, sudo здесь не сработает (будет сообщение sudo: tlmgr: command not found), поэтому


su


Для разгона откроем tlmgr в окне:


# включить мозг и осторожность
tlmgr --gui


Здесь разумно разве что обновить базу данных шрифтов в разделе «Действия» (оно же команда updmap-sys) и быстро сваливаем отсюда.


Обновляем сам tlmgr (если обновлений не понадобится, он об этом сообщит):


tlmgr update --self


Если ctan.org будет недоступен (cannot contact mirror.ctan.org, returning a backbone server!), то следует указать любое зеркало сайта.


Нью-Йорк на связи:
tlmgr option repository http://mirrors.rit.edu/CTAN/systems/texlive/tlnet


Париж:
tlmgr option repository ftp://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/systems/texlive/tlnet


и снова
tlmgr update --self


Обновить из сети весь TeX


Логично предположить, что если установлена новейшая версия, то обновлений не потребуется, но это не факт, запросто могут прилететь удаления и обновлёния для нескольких сотен файлов.


tlmgr update --all


Отныне и впредь, пока прогресс не нагрянет, все периодические обновления LaTeX делаем из-под root через «tlmgr update --self && tlmgr update --all». А когда выйдет следующее КРУПНОЕ обновление, tlmgr сообщит о том, что не может выполнить это запрос, и тогда уже придётся или перестать обновляться, или обновлять LaTeX с нуля.


Есть вероятность ответа


Your installation is set up to look on the disk for updates.
To install from the Internet for this one time only, run:
tlmgr -repository http://mirror.ctan.org/systems/texlive/tlnet ACTION ARG...
where ACTION is install, update, etc.; see tlmgr -help if needed.
To change the default for all future updates, run:
tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet


В этом случае используем последнюю предложенную команду, затем надо обновить tlmgr и снова запросить обновление теха:


  1. tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
  2. tlmgr update --self
  3. tlmgr update -all

Долго ждать.


exit

6. Установить шрифты для LaTeX


Осознать, что шрифтов будет много, и отныне они будут доступны для всех приложений в системе (настройки окружения, LibreOffice, Kate и все прочие). Некоторые будут отличаться только начертанием, но при этом будут являться самостоятельными шрифтами.


Вряд ли все они нужны, но…


Создать файл 09-texlive.conf


sudo cp $(kpsewhich -var-value TEXMFSYSVAR)/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf && echo 'Done!'


Появляется файл /etc/fonts/conf.d/09-texlive.conf с текстом:


[?xml version="1.0"?]
[!DOCTYPE fontconfig SYSTEM "fonts.dtd"]
[fontconfig]

[dir]/home/LaTeX/texmf-dist/fonts/opentype[/dir]
[dir]/home/LaTeX/texmf-dist/fonts/truetype[/dir]
[dir]/home/LaTeX/texmf-dist/fonts/type1[/dir]
[/fontconfig]


Отредактировать файл 09-texlive.conf


sudo mcedit /etc/fonts/conf.d/09-texlive.conf


Удалить строку '[dir]/home/LaTeX/texmf-dist/fonts/type1[/dir]' (предпоследняя). Cохранить.


Обновить кэш шрифтов


sudo fc-cache -fsv && echo 'Done!'


Шрифтов много, дело может быть не односекундным. В результате: есть латэчевские шрифты в /home/LaTeX/texmf-dist/fonts/truetype/ и в /home/LaTeX/texmf-dist/fonts/opentype/


Нет нужды, но временами, особенно после обновления ядра Debian, можно просто контроля для запускать (из-под root) tlmgr update --all и обновление кэша шрифтов.


Однажды (07.12.2020) LaTex беспричинно не смог сгенерировать pdf, и только слабая интуиция подсказала, что в тот день прилетело обновление ядра, и надо бы эти два факта связать. И это помогло.


7. Проверить работу LaTeX


В консоли перейти в каталог с рабочим проектом.


В любой файл (в тот же main.tex) добавить условное проверочное слово.


Вызвать компилятор из внешнего источника:


/home/MyScripts/LaTeX/kile_buildPdfLaTeXWithMetafilesOutside.sh


Если результат неудачный — разобраться.


8. Удалить временные файлы


Размонтировать iso


cd /tmp && sudo umount /tmp/latex_iso


Удалить каталог /tmp_LaTeX_Installation


вместе с iso-файлом


rm -R ~/tmp_LaTeX_Installation