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

LaTeX

[ @debian @install @LaTeX ]

 


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


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


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


userHomeFolder=/home/astenix


Проверка:


echo $userHomeFolder


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


Установить Kile


Сперва установить редактор Kile. С ним установится стандартный TeX, но я это проигнорирую.


В принципе при установке Kile из репозиториев в систему принудительно прилетает и LaTeX. Мне нравится Kile, но я далее я настрою его механизм build через внешний sh-скрипт, который использует не штатную сборку LaTeX, а отдельную, которую я поставлю из установочного iso-файла с LaTeX из https://ctan.org/


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


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


sudo aptitude install 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


Например, зеркало в Германии: http://ctan.ebinger.cc/tex-archive/systems/texlive/Images/
Или в США: http://mirrors.mit.edu/CTAN/systems/texlive/Images/


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


Скачать выбранный файл можно в консоли:


wget http://mirrors.mit.edu/CTAN/systems/texlive/Images/texlive2023.iso --directory-prefix=$userHomeFolder/tmp_LaTeX_Installation/ && echo 'Done!'


Размер файла — около пяти гигабайт.


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


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


cd $userHomeFolder/tmp_LaTeX_Installation/


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

ls


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

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


Два момента:


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

selected_scheme scheme-full
TEXDIR /home/LaTeX
TEXMFLOCAL /home/LaTeX/texmf-local
TEXMFSYSCONFIG /home/LaTeX/texmf-config
TEXMFSYSVAR /home/LaTeX/texmf-var
TEXMFCONFIG ---yourUserHomeFolder---/.LaTeX_Settings/texmf-config
TEXMFHOME ---yourUserHomeFolder---/.LaTeX_Settings/texmf
TEXMFVAR ---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


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


Дальше указаны каталоги для хранения персональных настроек LaTeX.


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


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


Продолжаем из-под root:


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. Удалить временные файлы


Размонтировать iso и удалить и его, и каталог /tmp_LaTeX_Installation


sudo umount /tmp/latex_iso && rm -R ~/tmp_LaTeX_Installation


См. дальше Software:Kile