Узнайте, как вставить код в LaTeX. Научитесь использовать пакет listings для исходного кода, добавлять комментарии и изменять стиль. Разберитесь с настройками параметров пакета и научитесь делать подсветку синтаксиса для различных языков программирования. Получите полезные рекомендации по оформлению и форматированию кода в LaTeX.
LaTeX — это один из наиболее популярных языков верстки документов, используемый для создания книг, статей и презентаций. В этом языке многие команды и ключевые слова используют знаки <> и , что может привести к проблемам при вставке кода. Мы подготовили пошаговую инструкцию по вставке кода в LaTeX, чтобы сделать этот процесс легким и понятным для всех пользователей.
Если вы хотите вставить в свой документ код, вам нужно использовать пакет listings. Этот пакет обеспечивает все необходимые инструменты для отображения кода в документе LaTeX. Также вы можете настроить стиль отображения кода в соответствии со своими потребностями.
В этой статье мы рассмотрим все шаги по установке и использованию этого пакета, чтобы вы могли вставлять свой код в свои документы LaTeX.
LaTeX: include programming language code in LaTeX document
Создайте новый файл в TeX-редакторе
Перед тем, как начать работу с LaTeX, вам необходимо создать новый файл в TeX-редакторе. Для этого запустите редактор и выберите пункт «Создать новый файл». Обычно его можно найти в меню «Файл».
При создании нового файла в TeX-редакторе необходимо выбрать нужный формат для работы с LaTeX. В некоторых редакторах этот выбор осуществляется автоматически, в других – необходимо указать формат из списка, который будет содержать «LaTeX» или «TeX».
После того, как вы выбрали формат, вам нужно сохранить файл с соответствующим расширением. Файлы LaTeX, как правило, имеют расширение .tex. Вы можете задать имя файла, указать папку для его сохранения и выбрать формат в диалоговом окне «Сохранить».
Теперь ваш файл готов к работе с LaTeX. Вы можете приступить к написанию кода, который будет содержать текст документа, форматирование, математические формулы и другие элементы.
Добавьте пакет listings в преамбулу
Читать далее»Знак больше и меньше в математике: картинки и уроки для понимания направления» — Научитесь правильно использовать знаки больше и меньше в математике с помощью понятных картинок и подробных уроков. Узнайте, в какую сторону обращается каждый из этих знаков и как это влияет на решение уравнений и неравенств.
Если вы хотите добавить код в свой документ LaTeX, вам понадобится загрузить пакет listings. Этот пакет позволяет вставлять и форматировать исходный код в документе LaTeX. Чтобы использовать этот пакет, добавьте следующий код в свою преамбулу:
Источник: slavshkola.ru
Введение в LaTeX 1. Основы
FAQ по LaTeX
Здесь будут публиковаться бессистемные моменты по LaTeX, которые могут пригодиться вам, а я смогу не забыть их.
Установил TeXstudio, но ничего не компилируется и PDF файлы не создаются
TeXstudio — это только редактор кода. За компиляцию отвечает другая программа, например, можно установить MiKTeX.
Как вставить пустую строку
Вставьте следующий код:
vspacebaselineskip>
newline
Как вставить разрыв новой страницы
Вставьте следующий код:
newpage
Как получить отступ красной строки для первой строки абзаца
Вставьте следующий код в преамбулу:
usepackageindentfirst> % Красная строка
Как подключить русский язык
Вставьте следующий код в преамбулу:
%%% Кодировки и шрифты %%% usepackagecmap> % Улучшенный поиск русских слов в полученном pdf-файле usepackage[T2A]fontenc> % Поддержка русских букв usepackage[utf8]inputenc> % Кодировка utf8 usepackage[english, russian]babel> % Языки: русский, английский usepackagepscyr> % Нормальные шрифты
Вот тут говорится, как установить модуль Pscyr: Установка PSCyr для LaTeX.
Источник: harrix.dev
Пишем презентации в LaTeX
В процессе подготовки доклада на GolangConf’2019 я использовал LaTeX. Несмотря на некоторые устаревшие вещи, немного необычное поведение, скудную или сложную документацию, я внезапно получил удовольствие. Я не стал «гуру» LaTeX, но я смог делать весьма неплохие слайды. И я хочу описать основные точки создания современной презентации на LaTeХ.
Особенно это должно «зайти» айтишникам, которые по роду занятий программируют. Программировать свою презентацию — это увлекательно.
Почему LaTeX:
- Гибкие оверлеи (когда информация на слайде появляется по очереди)
- Повторяемость и однозначность
- Пишем как программу. Некоторые ресурсы можно хранить отдельными файлами — код, список ссылок
Почему НЕ LaTeX:
- На выходе только PDF
- На тонкую подстройку таблиц и колонок, если они есть, может уйти больше времени, чем подвигать мышкой. Не надо делать презентацию в пять сложных слайдов в LaTeX. А в 55 — надо
Начнем с установки
Практически, сейчас существует один лидирующий дистрибутив утилит LaTeX/TeX, который поглотил все остальные — TexLive. Выпуски там нумеруются по годам. Не надо ставить археологические версии ранее 2018 года. Так что почти всем пользователям Ubuntu сразу сюда. Для «маководов» есть отдельный набор.
Или можно использовать универсальный установщик, в том числе и для Windows.
Пользователи CentOS должны страдать.
В любом случае можно создать свой Dockerfile и использовать его. Но учтите, что некоторые утилиты захотят видеть системные шрифты.
Дистрибутив TexLive увесистый, занимает до 5Gb. Ставить надо texlive-full или подобный пакет (название может разниться от дистрибутива к дистрибутиву).
Однако, на дворе XXI век, и вы можете воспользоваться одним из онлайн-сервисов для работы с LaTeX. Почему-то немногие даже научные работники об этом не знают. Например, один из самых продвинутых.
Немного о LaTeX
Это не пошаговое руководство, как начать работать в LaTeX. Мы поверхностно посмотрим, как сделать презентацию, а по пути вы сами воспользуетесь Google. Но базовые отсылки я буду делать. Также обратите внимание на викикнигу.
Так будет выглядеть простейшая презентация с использованием пакета beamer — именно он отвечает за презентации:
documentclass% тип документа % далее идёт преамбула title author begin% начало презентации begin% первый слайд titlepage end begin% второй слайд Hello, World! end end
Поехали
А вот так выглядит готовая презентация, которую я сделал на GolangConf2019. Вокруг неё мы и будем крутиться.
Первое, что вы должны сделать, это забыть как страшный сон все отсылки к шрифтам TeX. Дональд Кнут начал разрабатывать систему шрифтов METAFONT в 1977 году, а в 1979 представил её. Это было ОЧЕНЬ круто на то время. Но на дворе 2019 год, тащить в сегодня стандарты наименований файлов 8+3 и специальные растровые шрифты можно только в минуты скуки.
Все современные системы работают с современными векторными шрифтами. Утилиты TexLive имеют в своём составе новый компилятор документов — xelatex. Он полностью совместим с pdflatex, но работает с системными шрифтами. Всё что нужно дополнительно сделать, это подгрузить пакет fontspec или xltxtra (он подгружает fontspec) и задать шрифты:
% !TeX TS-program = xelatex documentclass[aspectratio=169] usepackage usepackage[main=russian,english] setmainfont setromanfont setsansfont setmonofont .
В примере мы сразу задали размер презентации (16см на 9см), сделали комментарий чем собирать и подключили пакет babel, который мы разбирать не будем. Для пользователей Linux напомню, что в 2019 году TTF-шрифты можно кидать в директорию .fonts в домашнем каталоге.
Темы оформления
Можно делать презентацию и без специального оформления, но чувство прекрасного по умолчанию в beamer странное, поэтому практически все пользуются теми или иными темами. Обычно, темы оформления — это набор файлов .sty, размещенных там, где их может найти компилятор, т.е. там же, где и сам файл презентации. Подключается тема соответствующей строкой в преамбуле презентации:
usetheme% в скобках название темы
Есть, кстати, чудесное руководство по созданию простейшей темы оформления презентации. Я сделал 3 темы на ближайшие конференции Олега Бунина, одну для себя, две — для иллюстрации к этой статье: раз, два и три.
В принципе, всё что определено в этих темах, может быть и обычной простынёй в вашем файле презентации. В этом нет ничего плохого. Темы нужны, когда нужна повторяемость. В каждой из приведенных выше тем оформления есть пример использования и скомпилированный результат.
Оверлей
Оверлей — это когда у вас информация постепенно появляется на одном и том же слайде. Вот например:
begin begin item Живи, безумец. Трать, пока богат! item Ведь ты же сам – не драгоценный клад. item И не мечтай – не сговорятся воры item Тебя из гроба вытащить назад! end end
Сначала появится первая строка, затем вторая и третья, а затем четвертая. Заодно мы увидели, как сделать ненумерованный список. Систему оверлеев можно прикрутить практически к чему угодно.
Я, например, делал так подсветку строк кода (рассмотрим ниже).
Обратите внимание на строки в моих шаблонах:
setbeamercolor setbeamercolor setbeamercolor setbeamertemplate% отключает кошмарные синие треугольники setbeamerfont* setbeamerfont* setbeamerfont
Закомментируйте строки (для комментариев используйте символ «%») и посмотрите, что будет. Не тот цвет, синие треугольнички и вот это вот всё.
Не нашел куда это определить. beamer предоставляет возможность несколько раз использовать один и тот же слайд. Это вот прямо очень круто:
begin[label=again] . end . againframe
Картинки
Возьмем пример из моей презентации. Две колонки, слева ненумерованный список, справа — картинка:
begin begin[T,onlytextwidth] begin begin item Для разработчиков item Автор — emph item Написан на Alef item Alef = Acme item 30 лет с нами end end begin includegraphics[width=textwidth] end end end
Параметр [T,onlytextwidth] говорит о том, что вертикальное выравнивание производится по базовой линии строк вверх, а блок колонок имеют ширину равной ширине фрейма для текста. LaTeX сам сожмет картинку как надо. Можете создать свой пример и поиграться параметрами, чтобы увидеть, как и что будет перекрываться.
Листинг кода
Сразу оговорюсь, что подсветка синтаксиса в листинге кода в презентации не нужна. Если она там вам нужна — вы что-то делаете не так. Больше нужны выделения. Я использую стандартный пакет listings, который умеет подсветку синтаксиса, и не умеет выделений. Вы можете посмотреть настройки оформления блока листинга в любом из моих примеров:
definecolor definecolor lstset< columns=flexible, keepspaces=true, showstringspaces=false, showtabs=false, tabsize=4, frame=single, basicstyle=fontsizebfttfamilycolor, backgroundcolor=color, commentstyle=color, keywordstyle=color, stringstyle=color, rulecolor=color, framerule=1pt >
Для выделения фона я пользуюсь пакетом lstlinebgrd, который «заброшен». Приходится вставлять исправляющий код. А вот этот дополнительный код даёт мне команду btLstHL, которая позволяет подсвечивать строки в оверлее:
begin[fragile] begin[basicstyle=fontsizebfttfamilycolor,linebackgroundcolor=% btLstHL% btLstHL% btLstHL% btLstHL% >] i, j: int; k := 1; # int b := byte 2; # byte s: string; # длина в символах s1 := s[0:]; # срез a: array of int; a = array[10] of int; myfunc: fn(i, k: int, s: string) : (list of string, int); end end
Библиография
Для простоты и универсальности я использую пакет biblatex. Вот тут есть сложность. Пакет beamer перекрывает часть умолчаний biblatex. Вот эти команды убирают иконки и задают фонт библиографии:
setbeamertemplate <insertbiblabel>renewcommand*selectfont>
Надо помнить важный момент — библиография задаётся в отдельном файле. В примерах в шаблонах я пишу библиографию в основном тексте с помощью пакета filecontents, который в свою очередь создаёт нужный реальный файл. И компиляция происходит в ЧЕТЫРЕ шага. Сначала просто xelatex компилирует файл и создаёт вспомогательные файлы.
Затем утилита biber компилирует файл библиографии, затем надо ещё дважды прогнать xelatex. Да, с препроцессорами там всё сложно.
Пакет biblatex тоже настраивается. Но на первое время хватит того, что есть у меня в примерах.
Послесловие
Я получил удовольствие и от подготовки презентации, и от подготовки материалов к этой статье. Я надеюсь, если кто-то хотел, но не мог решиться начать использовать LaTeX в своей работе — я сломал этот барьер. Конечно, я не сделал пакетов, я не копал в глубину, я не упомянул важные темы рисования. Но я думаю, что это уже всё придёт, как только вы начнете пользоваться инструментом. Неплохие практические статьи есть и на Хабре по тегу #latex.
Я надеюсь, что мои шаблоны кому-нибудь помогут на предстоящих конференциях. Возможно, кто-нибудь оформит те ошметки вспомогательного кода с подсветкой, которые годами валяются в интернете, в годный пакет. Дерзайте!
Источник: habr.com