Код программы в latex

Как вставить код в документ LaTeX? Есть ли что-то вроде:

begin## Heading ## . end

Единственное, что мне действительно нужно, это отступ и шрифт фиксированной ширины. Подсветка синтаксиса может быть хорошей, хотя это определенно не требуется.

ОТВЕТЫ

Ответ 1

Простая конфигурация для заголовка LaTeX (до begin ):

usepackage usepackage definecolor definecolor definecolor lstset, numbers=none, numberstyle=tinycolor, keywordstyle=color, commentstyle=color, stringstyle=color, breaklines=true, breakatwhitespace=true, tabsize=3 >

Вы можете изменить язык по умолчанию в середине документа с помощью lstset .

Пример использования в документе:

begin // Hello.java import javax.swing.JApplet; import java.awt.Graphics; public class Hello extends JApplet < public void paintComponent(Graphics g) < g.drawString(«Hello, world!», 65, 95); >> end

Example image

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

Ответ 2

Вы также можете использовать среду verbatim

begin your code example end

Ответ 3

Вот как добавить встроенный код:

Вы можете добавить встроенный код с помощью или texttt < code >. Если вы хотите отформатировать встроенный код, лучше всего создать собственную команду

newcommand[1]>

Также обратите внимание, что блоки кода можно загружать из других файлов с помощью

lstinputlisting[breaklines]

breaklines не требуется, но я считаю это полезным. Имейте в виду, что для этого вам нужно будет указать usepackage< списки > .

Обновление: Пакет списков также включает команду lstinline , которая имеет те же функции подсветки синтаксиса, что и команды lstlisting и lstinputlisting (подробности конфигурации см. в ответе Cloudanger). Как уже упоминалось в нескольких других ответах, существует также пакет minted, который предоставляет команду mintinline . Как и lstinline , mintinline обеспечивает ту же подсветку синтаксиса, что и обычный кодированный блок кода:

documentclass usepackage begin This is a sentence with mintinline

Ответ 4

Специализированные пакеты, такие как minted, которые полагаются на Pyigs для форматирования, предлагают различные преимущества перед пакетом listings. Чтобы указать из руководства minted,

Пигменты обеспечивают гораздо более сильную подсветку синтаксиса по сравнению с обычными пакетами. Например, в списках в основном выделяются строки, комментарии и ключевые слова. Пигменты, с другой стороны, могут быть полностью настроены, чтобы выделить любой токен, который может поддерживать исходный язык. Это может включать специальные последовательности форматирования внутри строк, чисел, различных типов идентификаторов и экзотических конструкций, таких как HTML-теги.

Ответ 5

Используйте чеканку.

Это пакет, который облегчает выразительную подсветку синтаксиса в LaTeX, используя мощную библиотеку Pygments. Пакет также предоставляет опции для настройки выделенного вывода исходного кода с помощью fancyvrb.

Читайте также:
Правописание согласно программе или программы

LaTeX: include programming language code in LaTeX document

Это гораздо более развитый и настраиваемый, чем любой другой пакет!

Ответ 6

Поскольку это еще не было упомянуто здесь, возможно, стоит добавить еще одну опцию, пакет spverbatim (без подсветки синтаксиса):

documentclass usepackage begin begin Your code here end end

Также, если подсветка синтаксиса не требуется, упакуйте alltt :

documentclass usepackage begin begin Your code here end end

Ответ 7

Ответ 8

Чеканка работает в Overleaf, TeX Live и MiKTeX.

Пример:

documentclass usepackage begin begin[mathescape, linenos] # Note: $pi=lim_frac$ title = «Hello World» sum = 0 for i in range(10): sum += i end end

Выход:

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

Записки разработчика

Помнится, ещё на студенческой скамье я встречал задачу оформления исходного кода в LaTeX. В ту пору я использовал пакет listings. И я страдал. О, как же я страдал! Русские буквы не хотели дружить с UTF-8, а глаза мои текли кровавыми слезами при взгляде на итоговое форматирование. И вот, вновь я встретился с этой тяжёлой задачей.

В поисках решения я наткнулся на замечательный пост в записках дебианщика Как оформить исходный код программ в LaTeX без адских страданий. Название подсказывало мне, что развлечение это не простое. Я аккуратно перепробовал все рецепты из статьи, но ни один меня не устроил. И в самом конце поста я обнаружил ссылку на замечательный пакет minted, который должен был положить конец моим страданиям.

Пакет minted базируется на Python-овской библиотеке Pygments, которая умеет на отличненько раскрашивать код, поддерживается около 300 разных языков и форматов разметки. Для начала нам понадобится её установить (предполагаем, что Python и easy_install уже имеются):

easy_install Pygments

Переходим в любимый LaTeX-редактор и начинаем писать код (опять-таки предполагаем, что версия нашего LaTeX-дистрибутива включает пакет minted и все его зависимости):

documentclass[11pt] usepackage[utf8] usepackage[english,russian] usepackage begindocument> beginminted> using System; namespace HelloWorld < class Hello < static void Main() < Console.WriteLine(«Hello, World!»); >> > endminted> enddocument>

При трансляции запускаем latex/pdflatex c ключём -shell-escape . Получаем красивый результат:

Проблемы возникнут, если мы захотим в UTF-8 кодировке использовать русские буквы. Но мне удалось найти другой замечательный пост, в котором приводилось немного магии в преамбуле для поддержки кириллицы. Оттранслируем следующий файл:

И возрадуемся появлению русских букв:

Пакет содержит большое количество опций для стилизации листингов: можно добавить рамку, номера строк и кучу прочих вкусностей.

beginminted>[mathescape, linenos, numbersep=5pt, gobble=2, frame=lines, framesep=2mm] string title = «This is a Unicode π in the sky» /* Defined as $pi=lim_ntoinfty>fracP_n>d>$ where $P$ is the perimeter of an $n$-sided regular polygon circumscribing a circle of diameter $d$. */ const double pi = 3.1415926535 endminted>

Читайте также:
Как активировать программу bloody

Больше информации вы найдёте на GitHub-е и в документации

Источник: aakinshin.blogspot.com

latex Подсветка программного кода (оформление листингов) — пакет, пример

vedro-compota's picture

В преамбулу добавляем пакет для подсветки кода:

usepackage % для подсветки кода
begin[language=SQL] CREATE TABLE `SliderImages` ( `sliderImageID` INT(11) NOT NULL AUTO_INCREMENT, `sliderID` INT(11) NOT NULL, `imageID` INT(11) NOT NULL, `priority` INT(11) NOT NULL DEFAULT ‘0’, PRIMARY KEY (`sliderImageID`), INDEX `FK__SliderImages_Slider` (`sliderID`), CONSTRAINT `FK_SliderImages_Slider` FOREIGN KEY (`sliderID`) REFERENCES `Slider` (`sliderID`) ON UPDATE CASCADE ON DELETE CASCADE ) COLLATE=’utf8_general_ci’ ENGINE=InnoDB ROW_FORMAT=COMPACT AUTO_INCREMENT=81 ; end

Но чтобы подсветка была цветной пробуйте что-то типа (объяснения и продолжение напишу позже):

documentclass[a4paper] usepackage[14pt] % для того чтобы задать нестандартный 14-ый размер шрифта usepackage[utf8] usepackage[russian] usepackage[active] newcommand,> newcommand,> % переименовываем список литературы в «список используемой литературы» addtocaptionsrussian> newcounter newtheorem % задаём выводимое слово (для теорем) newtheorem % задаём выводимое слово (для определений) % объявляем новые команды % новая команда RNumb для вывода римских цифр newcommand<RNumb>[1]<uppercaseexpandafter<romannumeral #1relax>> usepackage usepackage definecolor definecolor definecolor lstset< % backgroundcolor=color, % choose the background color; you must add usepackage or usepackage basicstyle=footnotesize, % the size of the fonts that are used for the code breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace breaklines=true, % sets automatic line breaking captionpos=b, % sets the caption-position to bottom commentstyle=color, % comment style deletekeywords=, % if you want to delete keywords from the given language escapeinside=<*)>, % if you want to add LaTeX within your code extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 frame=single, % adds a frame around the code keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) keywordstyle=color, % keyword style language=Octave, % the language of the code otherkeywords=<*. >, % if you want to add more keywords to the set numbers=left, % where to put the line-numbers; possible values are (none, left, right) numbersep=5pt, % how far the line-numbers are from the code numberstyle=tinycolor, % the style that is used for the line-numbers rulecolor=color, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) showspaces=false, % show spaces everywhere adding particular underscores; it overrides ‘showstringspaces’ showstringspaces=false, % underline spaces within strings only showtabs=false, % show tabs within strings adding particular underscores stepnumber=2, % the step between two line-numbers. If it’s 1, each line will be numbered stringstyle=color, % string literal style tabsize=2, % sets default tabsize to 2 spaces title=lstname % show the filename of files included with lstinputlisting; also try caption instead of title > begin lstset< % language=C, % выбор языка для подсветки (здесь это С) basicstyle=smallsffamily, % размер и начертание шрифта для подсветки кода numbers=left, % где поставить нумерацию строк (слевасправа) numberstyle=tiny, % размер шрифта для номеров строк stepnumber=1, % размер шага между двумя номерами строк numbersep=5pt, % как далеко отстоят номера строк от подсвечиваемого кода backgroundcolor=color, % цвет фона подсветки — используем usepackage showspaces=false, % показывать или нет пробелы специальными отступами showstringspaces=false, % показывать или нет пробелы в строках showtabs=false, % показывать или нет табуляцию в строках frame=single, % рисовать рамку вокруг кода tabsize=2, % размер табуляции по умолчанию равен 2 пробелам captionpos=t, % позиция заголовка вверху [t] или внизу [b] breaklines=true, % автоматически переносить строки (данет) breakatwhitespace=false, % переносить строки только если есть пробел escapeinside= <*)>% если нужно добавить комментарии в коде > begin[label=some-code,caption=Some Code] int main(void) // main routine < int i, j; // Initialisation of counters // The code below prints the 3×3 matrix for (i=0; icblas_dgemv(CblasRowMajor, CblasNoTrans, 3, 3, 1.0, m, 3, x, 1, 0.0, y, 1); // The code below prints the 3×3 matrix — result of multiplication for (i=0; i end Утверждение 2.11 (свойства протокола Шамира). setcounter setcounter subsection Пусть именются абоненты $A, B, C, . $, которые хотят передавать друго другу зашифрованные сообщения, не имея никаких защищённых каналов связи.

Читайте также:
Перезапуск программы по времени

В этом разделе мы рассмотрим шифр предложенный Эль-Намалем (Taher ElGamal), который решает эту задачу, используя, в отличии от шифра Шамира только одну пересылку сообщения. Фактически здесь используется схема Даффи-Хеллмана, чтобы сформировать общий секретный ключдля двух абонентов, передающих друг другу сообщение, и затем вообщение шифруется путём умножения его на этот ключ.

Для каждого следующего сообщения секретный ключ вычисляется заново. Перейдём к точному описанию метода. begin[language=SQL] CREATE TABLE `SliderImages` ( `sliderImageID` INT(11) NOT NULL AUTO_INCREMENT, `sliderID` INT(11) NOT NULL, `imageID` INT(11) NOT NULL, `priority` INT(11) NOT NULL DEFAULT ‘0’, PRIMARY KEY (`sliderImageID`), INDEX `FK__SliderImages_Slider` (`sliderID`), CONSTRAINT `FK_SliderImages_Slider` FOREIGN KEY (`sliderID`) REFERENCES `Slider` (`sliderID`) ON UPDATE CASCADE ON DELETE CASCADE ) COLLATE=’utf8_general_ci’ ENGINE=InnoDB ROW_FORMAT=COMPACT AUTO_INCREMENT=81 ; end Для всей группы абонентов выбирается некотрое большое простое число $p$ и число $g$, такие что различные степени $g$ суть различные числа по модулю $p$ (см. раздел 2.2). Числа $p$ и $g$ передаются абонентам в открытом виде (они могут использоваться всеми абонентами сети). Затем каждый абонент выбирает свое секретное число $c_i, 1$ end

Key Words for FKN + antitotal forum (CS VSU):

  • Log in to post comments
  • 6865 reads

Источник: fkn.ktu10.com

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