Руководство по автоматическому обновлению PDF с помощью latexmk и VSCode
Table of Contents Introduction 1. Installing LaTeX 2. Creating PDF from a terminal using latexmk 3. Installing LaTeX Workshop Extension to VS Code 4. Create your own snippets 5. Testing the snippet 6. LaTeX Workshop error 7. Automatically update PDF when you save Conclusion
Вступление
Я иногда пользуюсь LaTeX. Я использую Typora для написания статей, отчетов, заметок и прочего. Но у меня нет полного контроля над макетом с уценкой. Поэтому я перезапустил LaTeX. Я хочу поделиться тем, что узнал. В этой статье показано, как настроить LaTeX с VS Code, чтобы он автоматически обновлял PDF-файл при сохранении tex-файла.
Установка LaTeX
На этот раз я установил mactex-no-gui
.
Mac:
# macOS MacTex Install $ brew install --cask mactex-no-gui # Updating the packages $ sudo tlmgr update --self && sudo tlmgr update --all
Установка прошла достаточно быстро, но обновление заняло много времени.
Возможно, вам придется перезапустить терминал и проверить, работает ли он:
$ latex --version $ latexmk --version $ platex --version
Если это не сработает, вам нужно добавить PATH к вашему ~/.zshrc
или ~/.bash_profile
:
export PATH="/Library/TeX/texbin/:$PATH"
Проверьте это еще раз:
$ latex --version pdfTeX 3.14159265-2.6-1.40.21 (TeX Live 2020) kpathsea version 6.3.2 ... $ latexmk --version Latexmk, John Collins, 29 September 2020. Version 4.70b ... $ platex --version e-pTeX 3.14159265-p3.8.3-191112-2.6 (utf8.euc) (TeX Live 2020) kpathsea version 6.3.2 ...
# Arch Linux Family sudo pacman -S texlive-most # For Ubuntu, you might need a ppa: sudo add-apt-repository ppa:jonathonf/texlive sudo apt update && sudo apt install texlive-full # Fedora sudo dnf install texlive-scheme-full
Для Windows и других ОС Linux см. Эту страницу.
Создание PDF из терминала с использованием latexmk
Часто приходится запускать LaTeX более одного раза. latexmk
поможет вам избежать этой неприятности.
Latexmk - это скрипт Perl, который вам просто нужно запустить один раз, а все остальное он сделает за вас.
Вот как использовать latexmk:
$ latexmk -silent text.tex
Он автоматически обновит файл PDF при сохранении файла tex. Мы можем улучшить его, изменив файл .latexmkrc
в вашем домашнем каталоге.
$ touch ~/.latexmkrc
И добавим следующее.
#!/usr/bin/env perl # LaTeX $latex = 'latex -synctex=1 -halt-on-error -file-line-error %O %S'; $max_repeat = 5; # BibTeX $bibtex = 'pbibtex %O %S'; $biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S'; # index $makeindex = 'mendex %O -o %D %S'; # DVI / PDF $dvipdf = 'dvipdfmx %O -o %D %S'; $pdf_mode = 3; # preview $pvc_view_file_via_temporary = 0; if ($^O eq 'linux') { $dvi_previewer = "xdg-open %S"; $pdf_previewer = "xdg-open %S"; } elsif ($^O eq 'darwin') { $dvi_previewer = "open %S"; $pdf_previewer = "open %S"; } else { $dvi_previewer = "start %S"; $pdf_previewer = "start %S"; } # clean up $clean_full_ext = "%R.synctex.gz"
- Мы используем
platex
иdvipdfmx
для преобразования текстового файла в PDF. latexmk -pv text.tex
после сборки отобразит PDF-файл.latexmk -pvc text.tex
обновит файл PDF при сохранении файла tex. (Вам нужно щелкнуть файл PDF, чтобы увидеть обновление.)- Вы можете прекратить просмотр обновленных файлов до
ctrl+C
.
Установка расширения LaTeX Workshop в VS Code
Теперь перейдем к VS Code. Мы можем использовать VS Code для редактора LaTeX.
После установки LaTeX Workshop вы увидите значок TEX в конце левой боковой панели.
Расширение LaTeX Workshop создает PDF-файл при сохранении, и вы можете просматривать PDF-файл в VS Code или в браузере. Он имеет функции форматирования, дополнения intellisense, выделения синтаксиса, фрагментов и ярлыков и многое другое.
Вы можете предварительно просмотреть PDF-файл, нажав «Просмотр LaTeX PDF».
Откройте файл settings.json с помощью CMD / CTRL + SHIFT + P.
В settings.json добавьте следующее:
{ // your other settings // ... // ... // ---------- Language ---------- "[tex]": { // Enable intellisence/quick suggestions "editor.suggest.snippetsPreventQuickSuggestions": false, // Indentation size "editor.tabSize": 2 }, "[latex]": { // Enable intellisence/quick suggestions "editor.suggest.snippetsPreventQuickSuggestions": false, // Indentation size "editor.tabSize": 2 }, "[bibtex]": { // Indentation size "editor.tabSize": 2 }, // ---------- LaTeX Workshop ---------- // Enable command and environment completion for used package "latex-workshop.intellisense.package.enabled": true, // target file when deleting generated file // Add "* .synctex.gz" to default value "latex-workshop.latex.clean.fileTypes": [ "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot", "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.glo", "*.gls", "*.ist", "*.fls", "*.log", "*.fdb_latexmk", "*.snm", "*.nav", "*.dvi", "*.synctex.gz" ], // dump generated files to "out" directory "latex-workshop.latex.outDir": "out", // Build recipe "latex-workshop.latex.recipes": [ { "name": "latexmk", "tools": [ "latexmk" ] }, ], // Parts used in the build recipe "latex-workshop.latex.tools": [ { "name": "latexmk", "command": "latexmk", "args": [ "-silent", "-outdir=%OUTDIR%", "%DOC%" ], }, ], }
По умолчанию интеллектуальные / быстрые предложения не запускаются внутри сниппета. Для их включения установите:
"editor.suggest.snippetsPreventQuickSuggestions": false,
Создавайте свои собственные сниппеты
LaTeX Workshop предоставляет множество сниппетов и ярлыков. Вы также можете добавить свои собственные сниппеты. Щелкните шестеренку слева внизу на панели инструментов VS Code и выберите User Snippets.
И выберите в меню latex.json (LaTeX).
Давайте создадим базовый шаблон. Это пример фрагмента, который вы можете добавить:
{ "report": { "prefix": "report", "body": [ "\\documentclass[${1:a4paper,11pt}]{${2:jsarticle}}", "", "", "% Math", "\\usepackage{amsmath,amsfonts}", "\\usepackage{bm}", "% image", "\\usepackage[dvipdfmx]{graphicx}", "\\usepackage[english]{babel}", "$3", "", "\\begin{document}", "", "\\title{$4}", "\\author{$5}", "\\date{${6:\\today}}", "\\maketitle", "", "", "$0", "", "", "\\end{document}" ], "description": "LaTeX Sample Template" } }
Вы можете добавить более одного фрагмента:
{ "report": { "prefix": "report", "body": [ ... "description": "LaTeX Sample Template" }, "note": { "prefix": "note", "body": [ ... "description": "Note format" }, "exam": { "prefix": "exam", "body": [ ... "description": "Exam format" } }
Тестирование сниппета
Я обнаружил, что остановка табуляции VScode не работает с Vim / vscodevim, поэтому, если вы ее используете, вам необходимо отключить ее.
Ошибка мастерской LaTeX
Когда вы сохраняете текстовый документ и получаете следующую ошибку, вам необходимо установить несколько пакетов Perl.
Сначала установите последнюю версию Perl:
# For Mac $ perl -v This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level (with 2 registered patches, see perl -V for more detail) Copyright 1987-2013, Larry Wall ... $ brew install perl
Откройте новую вкладку или перезапустите терминал и проверьте установленную версию:
$ perl -v This is perl 5, version 32, subversion 0 (v5.32.0) built for darwin-thread-multi-2level Copyright 1987-2020, Larry Wall
Вам необходимо установить следующие пакеты Perl:
$ cpan cpan[1]>install Log::Log4perl Running install for module 'Log::Log4perl' ... cpan[2]>install Log::Dispatch::File Running install for module 'Log::Dispatch::File' ... cpan[3]>install YAML::Tiny Running install for module 'YAML::Tiny' ... cpan[4]>install File::HomeDir Running install for module 'File::HomeDir' ... cpan[5]>install Unicode::GCString Running install for module 'Unicode::GCString' ...
Автоматически обновлять PDF при сохранении
Вы можете просмотреть свой PDF-файл, щелкнув Просмотр на вкладке VSCode или Просмотр в веб-браузере в меню LaTeX Workshop.
Когда вы обновляете и сохраняете файл tex, он автоматически обновляет файл PDF.
Заключение
MacTeX - это огромный файл, но использование mactex-no-gui и VS Code позволяет нам обновлять текст при сохранении файла.
Теперь вы знаете, как создать PDF-файл на своем терминале с помощью latexmk
. Если вы предпочитаете графический интерфейс для преобразования LaTeX в PDF, LaTeX Workshop - отличный инструмент. Вы можете создать свой собственный фрагмент LaTeX в VSCode.
Я надеюсь, что вы нашли это полезным, и надеюсь, что это поможет вашей продуктивности при написании документов LaTeX.
использованная литература
- VSCode で 最高 の LaTeX 環境 を 作 る (японский)
- Https://medium.com/@rcpassos/writing-latex-documents-in-visual-studio-code-with-latex-workshop-d9af6a6b2815
- Https://github.com/James-Yu/LaTeX-Workshop/wiki/Snippets
- Https://tex.stackexchange.com/questions/445521/latexindent-cant-locate-log-log4perl-pm-in-inc-you-may-need-to-install-the-l
- Кулинарная книга LaTeX
- Инструкция по латексу
Новостная рассылка
Получите полный доступ ко всем статьям на Medium, став участником.