Latex как вставить код программы

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

Begin-Latex-in-minutes / Translation-Russian.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
484 lines (318 sloc) 28.2 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

Введение в LaTeX за считанные минуты

Предисловие: Всё нижеизложенное основывается на моём личном опыте в колледже и различных прочитанных мной материалах. Я не профессионал и не эксперт, а студент, который очень увлекается этим языком. Любой может начать дискуссию в разделе Issues или создать Pull Request в случае, если что-то следует изменить или добавить. Если вы оценили мой труд, пожертвования весьма приветствуются.

Как быстро начать работать с Latex

  • Что такое LaTeX?
  • Почему стоит использовать LaTeX?
  • Установка LaTeX
  • Первый файл LaTeX
  • Погружение
  • Использование разных языков
  • Списки
  • Параграфы и разделы
  • Создание оглавления
  • Сноски
  • Что такое пакет?
  • Таблица
  • Добавление иллюстраций
  • Вставка кода в LaTeX
  • Несколько файлов в LaTeX
  • Дополнительный инструментарий

Что такое LaTeX?

LaTeX (произносится «Ла-тэх» или «Лэй-тэх») — это система подготовки высококачественных типографских документов. Чаще всего её используют для технических и научных документов среднего и крупного размера, но она может применяться практически для любых публикаций.

Почему стоит использовать LaTeX?

  • LaTeX бесплатный и поддерживает многие платформы.
  • LaTeX — это просто текстовый документ (который можно открыть любым текстовым редактором), без труда конвертируемый в PDF.
  • LaTeX отделяет содержимое от оформления. Задайте оформление один раз и сконцентрируйтесь на содержимом.
  • Рабочий процесс быстрее в сравнении с MS Word.
  • LaTeX широко используется в научных кругах.
  • LaTeX является непревзойдённым инструментом набора математических выражений.

LaTeX не лишён недостатков, но всё равно стоит того, чтобы его изучить.

Вам потребуется следующее:

  1. Дистрибутив LaTeX. Я использую MiKTeX на Windows.
  2. Редактор LaTeX. Я пользуюсь TeXMaker для большего удобства редактирования, хотя файл LaTeX можно создать или изменить в любом текстовом редакторе.
  3. Программа для просмотра PDF. (опционально) Любая программа для просмотра PDF подойдёт. Она понадобится для просмотра конечного результата.

В дополнение необходимо выбрать компилятор. В большинстве редакторов компилятором по умолчанию является pdfLaTeX, но если требуется поддержка Юникода или шрифтов TTF/OTF, установленных на Вашей системе, используйте LuaLaTeX.

Основы LaTeX для тех, кто ещё не пробовал. Зачем он в 2019? Урок LaTeX

Также Вы можете выбрать простое он-лайн решение наподобие ShareLaTeX. Более полный перечень альтернатив Вы найдёте в разделе Дополнительный инструментарий.

Первый файл LaTeX

Давайте начнём с традиционного Hello World в LaTeX. Если Вы уже установили TexMaker, в первую очередь создайте новый файл с расширением .tex . Затем наберите в нём нижеприведённый код для вывода фразы «Hello World!» и нажмите кнопку «Быстрая сборка». В других редакторах LaTeX не должно составить труда выполнить такую же процедуру.

documentclass[a4paper]article> begindocument> Hello World ! % Это Ваше содержимое enddocument>

Вот как это должно выглядеть в TexMaker:

Приглядевшись к Вашему первому файлу LaTeX Вы с лёгкостью заметите, что:

  • Первая строка говорит Интерпретатору, что Вы работаете над статьёй (article) размера A4. Другие типы документов, над которыми Вы могли бы работать — это отчёт (report), книга (book). и так далее.
  • Сам документ обёрнут в begin (начало документа) и end (конец документа). Это сердце документа, как main() в Java или C++. без которого документ не может быть отображён.
  • Часть между началом и концом документа (в нашем случае Hello World ! ) просто является Вашим содержимым.
  • Знак процента (%) обозначает комментарий, который LaTeX проигнорирует.
  • Оглядываясь назад на begin , end , documentclass[a4paper] Вы можете заметить закономерность. Это так называемые команды (обычно начинающиеся с “”) и их аргументы (помещённые в фигурных скобках “<>”). LaTeX по сути является обыкновенным текстом, усиленным этими командами.
  • Пока Вы следуете этому руководству, всё должно идти гладко. Однако в будущем, в случае, если что-то пойдёт не так, не паникуйте. Сообщения об ошибках дружелюбны и понятны. Если Вы не сможете устранить их сами, поисковик вроде Google будет Вашим лучшим другом.
  • Некоторые символы имеют особый смысл в LaTeX. Вам следует использовать обратную косую черту () перед этими символами для ожидаемого результата.
Читайте также:
Программа hear как настроить

Использование разных языков

Некоторые языки не будут работать прямо из коробки. Чтобы использовать TeX с этими языками, у Вас есть несколько вариантов.

Первый способ заключается в добавлении пакетов («packages», о них Вы узнаете чуть позже), потому что pdfLaTeX, компилятор по умолчанию, ограничен 256-ю символами и различными проблемами с кодировками. К примеру:

documentclass[a4paper]article> usepackage[T5]fontenc> usepackage[utf8]inputenc> begindocument> Xin chào thế giới. This is Hello World in Vietnamese. enddocument>

Здесь мы используем пакеты usepackage[T5] и usepackage[utf8] . Это просто и понтятно — пакет импортирует кодировщики шрифтов для правильного отображения Вашего содержимого. Если Вы используете TexMaker, то вот что Вы увидите в результате выполнения кода выше:

Сравните с вариантом без пакетов :

☔ Хитрая ситуация возникает, когда дело касается китайского, японского или корейского. Тут на помощь приходят usepackage с begin и end . Вот японский :

documentclass[a4paper]article> usepackageCJKutf8> begindocument> beginCJK> この記事を読んでいただきありがとうございます。 %Спасибо, что читаете эту статью. endCJK> enddocument>

Так же просто как есть и :

Второй способ достижения цели состоит в смене компилятора TeX на LuaLaTeX (или XeLaTeX). С использованием fontspec и polyglossia , Юникод заработает из коробки:

documentclass[a4paper]article> usepackagefontspec> usepackagepolyglossia> %setmainfont[] begindocument> Xin chào thế giới. This is Hello World in Vietnamese. enddocument>

Шрифт по умолчанию (Latin Modern) не поддерживает все символы. Вы, однако, можете использовать почти любой шрифт, установленный на Вашей системе, раскомментировав строку с setmainfont . (Шрифты TTF и OTF полностью поддерживаются).

Очень важно организовать Ваш документ как следует. Посему, давайте начнём с составления списка. Два распространённых типа списков — это неупорядоченный и упорядоченный списки. Они оба легко добавляются в документ LaTeX:

  • Неупорядоченный список
    Неупорядоченный список требует только перечислить («itemize») элементы. (непереводимая игра слов)

beginitemize> item Элемент. item Другой Элемент. enditemize>

  • Упорядоченный список
    Упорядоченный список, однако, заставляет нас пронумеровать («enumerate») их. (непереводимая игра слов)

beginenumerate> item Первый Элемент. item Второй Элемент. endenumerate>

Вот как эти два типа списков будут выглядеть на выходе:

Параграфы и разделы

Раздел мы начинаем с помощью section , а параграф — с помощью paragraph . Ещё Вы можете добавить подраздел командой subsection или подпараграф командой subparagraph .

Полезно начинать разделы и подразделы с tableofcontents .

‼️ Подсказка: можно использовать команду newpage , если Вы хотите начать с новой страницы.

Проще простого создавать разного рода сноски и ссылки с помощью команд footnote+label+ref. К примеру:

Привет, позвольте представитьсяfootnotelabelmyfootnote>Здравствуй, ссылка>. . (позже) Я говорю о себе refmyfootnote>.

‼️ Подсказка: используйте newline для начала новой строки.

Что такое пакет?

LaTeX и сам по себе предоставляет много возможностей, но в некоторых ситуациях полезными оказываются так называемые пакеты. Для импорта пакета в LaTeX Вы просто добавляете usepackage

Здесь приведён пример использования пары пакетов для вывода математики:

Ещё более впечатляюще выглядят электрические схемы:

Поищите в Google пакет, который будет удовлетворять Вашим требованиям. Например, amsmath широко используется для математики и открывает много новых возможностей для набора математических выражений, circuitikz — для конструирования электрических цепей, и так далее.. Данное общее руководство не в силах осветить каждый из них.

begintable>[h!] centering caption labeltab:table1> begintabular> 1 3\ hline a c\ endtabular> endtable>

И то, как он выглядит :

Теперь давайте взглянем поближе :

‼️ Подсказка: Вы можете воспользоваться пакетом под названием booktabs usepackage для более привлекательных на вид таблиц.

Для того, чтобы добавить иллюстрацию в документ LaTeX, необходимо использовать окружение figure и пакет graphicx. Используйте usepackage и

beginfigure> includegraphics[width=linewidth] caption labelfig:некая_метка> endfigure>

‼️ Подсказка: Задайте [width=linewidth] для того, чтобы смасштабировать изображение на всю ширину документа. Для позиционирования изображения необходимо задать определённые аттрибуты в начале. Кстати, fig может в дальнейшем использоваться для ссылок, поэтому стоит позаботиться о подходящем имени.

beginfigure>[h!]

  • h (here) — здесь
  • t (top) — вверху страницы
  • b (bottom) — внизу страницы
  • p (page) — на отдельной странице
  • ! (override) — настаивает на указанном позиционировании

Вот как будет выглядеть изображение:

Вставка кода в LaTeX

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

Читайте также:
Как удалить программу интернет эксплорер с компьютера

В случае LaTeX процесс прост и очень профессионален. Мы просто оборачиваем код заранее оговоренными командами и вперёд.

documentclass[a4paper]article> begindocument> Hello world! beginverbatim> #include int main() std::cout return 0; > endverbatim> enddocument>

LaTeX поддерживает синтаксис следующих языков

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

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

Рассмотрим такой пример:

documentclass[a4paper]article> usepackagelistings> usepackagecolor> lstdefinestyle< keywordstyle=color, backgroundcolor=color, commentstyle=color, basicstyle=footnotesize, > lstset begindocument> Hello world! begin>[language=Python] print «Hello World!» endlstlisting> lstinputlisting[language=C++] Lorem ipsum dolor sit amet lstinlineprint «Hello World»> , consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. enddocument>

Отсюда видно, что:

  1. Для вставки блока кода Вы начинаете его с begin и заканчиваете его end
  2. Для импорта кода из другого файла в этой же директории можно использовать lstinputlisiting
  3. Для указания языка, на котором написан код используется [language=C++]
  4. Для вставки кода прямо посередине текста используется lstinline
  5. Для применения особых стилей используется usepackage и определяется собственно Ваш стиль, после чего Вы используете listing с Вашим оформлением (Пожалуйста, загляните в код, приведённый ниже). Вы можете изменить очень многое в Вашем собственном стиле, но для правильного имени свойства Вам придётся обратиться к документации.
  6. Заинтересовались ?? Больше здесь.

Вот как вышеизложенный код компилируется в TexMaker:

Несколько файлов в LaTeX

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

Давайте посмотрим на примере:

% main.tex documentclass[a4paper]article> begindocument> Привет, Latex, это моя первая часть. Привет, Latex, это моя вторая часть. enddocument>

Это просто обычный файл LaTeX. Теперь давайте разделим его на две части с помощью ключевого слова input :

% основной_файл.tex documentclass[a4paper]article> begindocument> Привет, Latex, это моя первая часть. inputвторой_файл> enddocument>
% второй_файл.tex Привет, Latex, это моя вторая часть.

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

‼️ Подсказка: Для читаемости, ясности и простоты поддержки весьма рекомендуется разделять Ваш основной файл систематически, иерархически и руководствуясь здравым смыслом. Не разделяйте без причин, иначе со временем получится беспорядок.

  • MiKTeX для Windows.
  • TeX Live для Linux и Unix-подобных систем.
  • MacTeX для macOS.
  • ShareLaTeX — онлайн редактор.
  • Overleaf — онлайн редактор с возможностью совместного редактирования.
  • StackEdit — браузерный редактор markdown.
  • TeXMaker — кроссплатформенный редактор LaTeX.
  • TeXStudio — продвинутый форк TeXMaker с дополнительными возможностями.
  • TeXShop и TeXworks (минималистичные редакторы)
  • Большинство редакторов предоставляют возможность выбора компилятора по умолчанию. Вот, например:

Спасибо Вам, что добрались до конца этого руководства. По большому счёту, это всё, что Вам требуется знать о LaTeX.
Если Вы заинтересовались, больше о LaTeX Вы сможете найти здесь или по всей паутине, в зависимости от Ваших потребностей.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Copyright (C) 2016 Luong Vo Любому разрешается копировать и распространять дословные или измененные копии этого лицензионного документа, и его изменение допускается при условии, что имя изменено. УСЛОВИЯ ДЛЯ КОПИРОВАНИЯ, РАСПРОСТРАНЕНИЯ И МОДИФИКАЦИИ: Просто ДЕЛАЙТЕ ВСЁ ЧТО Вам ЗАБЛАГОРАССУДИТСЯ.

На стоимость пива в Вашей стране в моей можно пообедать.

Источник: github.com

Научный форум dxdy

Как вставить фрагмент кода внутри строки, чтобы LaTeX не пытался его интерпретировать (отображал как есть) и отрисовывал шрифтом, каким код и должен отображаться.

Re: Вставить код внутри строки
27.03.2014, 21:02
[notex]$x^2$[/notex]
Re: Вставить код внутри строки
27.03.2014, 21:24
Надо вставить не на форум, а в теховский документ.
Re: Вставить код внутри строки
27.03.2014, 22:02

Читайте также:
Как написать программу решающую квадратное уравнение

alien308 в сообщении #841851 писал(а):

Как вставить фрагмент кода внутри строки, чтобы LaTeX не пытался его интерпретировать (отображал как есть) и отрисовывал шрифтом, каким код и должен отображаться.

Самый простой вариант — окружение verbatim. Если под «кодом» имеется в виду текст программы на каком-то ЯП, то можно также воспользоваться пакетом listings.

Re: Вставить код внутри строки
27.03.2014, 22:41
documentclass[a4paper,12pt,leqno]

Попытка вставить код в строку:

bla-bla lstinline!This is code! bla-bla

Не меняет шрифт!

begin
This is code
end

Всё нормально шрифт меняется!
Re: Вставить код внутри строки
27.03.2014, 22:48

Внутри строки можно написать verb|какая-то ерунда с кодом|

Первый символ после verb — «ограничитель», им завершается аргумент команды и он не должен встречаться внутри аргумента.

Re: Вставить код внутри строки
27.03.2014, 23:08

Последний раз редактировалось alien308 27.03.2014, 23:25, всего редактировалось 2 раз(а).

Тоже не работают.
textbf textit

версия:
pdfTeX 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian)

— Пт мар 28, 2014 05:23:54 —

LaTeX Font Info: Try loading font information for T2A+txr on input line 15.
LaTeX Font Info: No file T2Atxr.fd. on input line 15.

LaTeX Font Warning: Font shape `T2A/txr/m/n’ undefined
(Font) using `T2A/cmr/m/n’ instead on input line 15.

LaTeX Font Warning: Font shape `T2A/txr/bx/n’ undefined
(Font) using `T2A/txr/m/n’ instead on input line 17.

(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-4.def
File: uni-4.def 2012/04/20 UCS: Unicode data U+0400..U+04FF
)

LaTeX Font Warning: Font shape `T2A/txr/m/it’ undefined
(Font) using `T2A/txr/m/n’ instead on input line 17.

Нужно установить ещё какой пакет?

— Пт мар 28, 2014 05:25:53 —

Pphantom в сообщении #841942 писал(а):

Внутри строки можно написать verb|какая-то ерунда с кодом|

Первый символ после verb — «ограничитель», им завершается аргумент команды и он не должен встречаться внутри аргумента.


Код вставляется уже, а шрифт никак не меняется, когда внутри строки!
Re: Вставить код внутри строки
27.03.2014, 23:44
alien308 в сообщении #841963 писал(а):
Код вставляется уже, а шрифт никак не меняется, когда внутри строки!

Так и не должен. Либо изменение шрифта — это неотображаемая, но выполняемая команда, либо, наоборот, отображаемый и невыполняемый текст.

Re: Вставить код внутри строки
28.03.2014, 07:49

Последний раз редактировалось alien308 28.03.2014, 07:50, всего редактировалось 2 раз(а).

Так lstinline должен отображать другим шрифтом. Кроме того просто в тексте не работает изменение шрифтаtextbf <Жирный>textit. Дело наверное в этом, чего то не хватает.

Re: Вставить код внутри строки
28.03.2014, 11:44
Убрал пакет txfonts, стало работать переключение шрифтов.
Вот так почти нормально:
bla-bla texttt <lstinline!This is code!>bla-bla
begin
This is code
end

Но шрифты в коде внутри строки (lstinline) и в блоке кода (lstlisting) немного разные. Как сделать одинаковые?

Источник: dxdy.ru

Listing code in LaTeX

Чтобы не забыть!

Чтобы не забыть!

Чтобы использовать listing пакет, Вы должны его подключить:

usepackagelistings>

Для того чтобы вставить программный код, мы должны использовать следующую конструкцию:

beginlstlisting> put your code here endlstlisting>

Другой способ вставить код, очень полезен, если Вы еще занимаетесь его редактированием. Таким образом, если вы изменяете исходный код, вы просто должны перекомпилировать код LaTeX и ваш документ будет обновлен. Для этого используйте следующий код:

lstinputlistingsource_filename.py>

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

lstinputlisting[language=Python]source_filename.py>

Пакет listing поддерживает следующие языки программирования:

Также поддерживаются другие диалекты. Полный список Вы можете найти в документации.

Ниже приведен пример конфигурации пакета listing:

usepackagelistings> usepackagecolor> definecolordkgreen>rgb>0,0.6,0> definecolorgray>rgb>0.5,0.5,0.5> definecolormauve>rgb>0.58,0,0.82> lstset % language=Octave, % Язык программирования numbers=left, % С какой стороны нумеровать numberstyle=tinycolorgray>, % Стиль который будет использоваться для нумерации строк stepnumber=2, % Шаг между линиями. Если 1, то будет пронумерована каждая строка numbersep=5pt, backgroundcolor=colorwhite>, % Цвет подложки. Вы должны добавить пакет color — usepackage showspaces=false, showstringspaces=false, showtabs=false, frame=single, % Добавить рамку rulecolor=colorblack>, tabsize=2, % Tab — 2 пробела breaklines=true, % Автоматический перенос строк breakatwhitespace=true, % Переносить строки по словам title=lstname, % Показать название подгружаемого файла keywordstyle=colorblue>, % Стиль ключевых слов commentstyle=colordkgreen>, % Стиль комментариев stringstyle=colormauve> % Стиль литералов >

Источник: ayakovlev.wordpress.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru