fixfix
2014 dxdy logo

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

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Разноцветная подсветка кода
Сообщение24.07.2017, 04:09 
Аватара пользователя


16/11/12
55
Понадобилось тут мне вставить ассемблерный код в $\LaTeX$. Нашёл пакет listings. Оказалось, он подсвечивает все ключевые слова одним цветом. Как сделать разноцветную подсветку кода?

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение30.07.2017, 22:20 


06/02/12
35
Пакет minted.

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение30.08.2017, 16:27 


03/06/12
2874
Я интересовался этим вопросом, вот что накопал:
код: [ скачать ] [ спрятать ] [ выделить ] [ развернуть ]
Используется синтаксис LaTeX
\documentclass[a4paper,10pt]{amsart}
\usepackage[T2A]{fontenc} \usepackage[utf8]{inputenc}  \usepackage[russian,english]{babel}
\usepackage{graphicx} \usepackage{color} \usepackage{listings}
%\definecolor{keyword}{\color{red}}
\begin{document}
Мама.
\lstset{language=Python,backgroundcolor=\color{red},keywordstyle=\color{green}\it\Huge}
\begin{lstlisting}
print slovo
\end{lstlisting}
Около трех с половиной десятилетии минуло с тех пор, как в педвузах введено в качестве учебной дисциплины программирование для ЭВМ.
За все это время педвузовские кафедры программирования и вычислительной математики, как и образованные позднее на их основе кафедры информатики и вычислительной техники, не были избалованы своевременным появлением специальных учебных изданий. При колоссальной скорости изменений в самом предмете, всегда существенно превышавшей скорость центральных издательских механизмов, специально ориентированные на программы педвузов книги выходили не чаще, чем раз в десятилетие - едва ли не соразмерно скорости смены поколений ЭВМ
\lstset{language=Python,keywordstyle=\color{blue}\bfseries,commentstyle=\color{yellow}\ttfamily\itshape,
extendedchars=true,
literate={с}{{\selectfont\char241}}1
{л}{{\selectfont\char235}}1
{е}{{\selectfont\char229}}1
{в}{{\selectfont\char226}}1
{а}{{\selectfont\char224}}1
{о}{{\selectfont\char238}}1
{т}{{\selectfont\char242}}1
{д}{{\selectfont\char228}}1
{у}{{\selectfont\char243}}1
{м}{{\selectfont\char236}}1
{н}{{\selectfont\char237}}1
{г}{{\selectfont\char227}}1
{п}{{\selectfont\char239}}1
{р}{{\selectfont\char240}}1
}
\begin{lstlisting}
a,b=(1,2)         #слева от двуместного оператора

del a, b #справа от одноместного оператора

def f(x):
      return x, x**2 #справа от одноместного оператора

for x, y in ((1, 1), (2, 4), (3,9)): #слева от двуместного оператора
     print(x,y)      
\end{lstlisting}
\end{document}
 

коды кирилических символов такие:
код: [ скачать ] [ спрятать ] [ выделить ] [ развернуть ]
Используется синтаксис LaTeX

{~}{{\textasciitilde}}1

{а}{{\selectfont\char224}}1

{б}{{\selectfont\char225}}1

{в}{{\selectfont\char226}}1

{г}{{\selectfont\char227}}1

{д}{{\selectfont\char228}}1

{е}{{\selectfont\char229}}1

{ё}{{\"e}}1

{ж}{{\selectfont\char230}}1

{з}{{\selectfont\char231}}1

{и}{{\selectfont\char232}}1

{й}{{\selectfont\char233}}1

{к}{{\selectfont\char234}}1

{л}{{\selectfont\char235}}1

{м}{{\selectfont\char236}}1

{н}{{\selectfont\char237}}1

{о}{{\selectfont\char238}}1

{п}{{\selectfont\char239}}1

{р}{{\selectfont\char240}}1

{с}{{\selectfont\char241}}1

{т}{{\selectfont\char242}}1

{у}{{\selectfont\char243}}1

{ф}{{\selectfont\char244}}1

{х}{{\selectfont\char245}}1

{ц}{{\selectfont\char246}}1

{ч}{{\selectfont\char247}}1

{ш}{{\selectfont\char248}}1

{щ}{{\selectfont\char249}}1

{ъ}{{\selectfont\char250}}1

{ы}{{\selectfont\char251}}1

{ь}{{\selectfont\char252}}1

{э}{{\selectfont\char253}}1

{ю}{{\selectfont\char254}}1

{я}{{\selectfont\char255}}1

{А}{{\selectfont\char192}}1

{Б}{{\selectfont\char193}}1

{В}{{\selectfont\char194}}1

{Г}{{\selectfont\char195}}1

{Д}{{\selectfont\char196}}1

{Е}{{\selectfont\char197}}1

{Ё}{{\"E}}1

{Ж}{{\selectfont\char198}}1

{З}{{\selectfont\char199}}1

{И}{{\selectfont\char200}}1

{Й}{{\selectfont\char201}}1

{К}{{\selectfont\char202}}1

{Л}{{\selectfont\char203}}1

{М}{{\selectfont\char204}}1

{Н}{{\selectfont\char205}}1

{О}{{\selectfont\char206}}1

{П}{{\selectfont\char207}}1

{Р}{{\selectfont\char208}}1

{С}{{\selectfont\char209}}1

{Т}{{\selectfont\char210}}1

{У}{{\selectfont\char211}}1

{Ф}{{\selectfont\char212}}1

{Х}{{\selectfont\char213}}1

{Ц}{{\selectfont\char214}}1

{Ч}{{\selectfont\char215}}1

{Ш}{{\selectfont\char216}}1

{Щ}{{\selectfont\char217}}1

{Ъ}{{\selectfont\char218}}1

{Ы}{{\selectfont\char219}}1

{Ь}{{\selectfont\char220}}1

{Э}{{\selectfont\char221}}1

{Ю}{{\selectfont\char222}}1

{Я}{{\selectfont\char223}}1


может, пригодится.

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение30.08.2017, 21:41 


13/07/14
258
В https://github.com/AndreyAkinshin/Russi ... es.tex#L95 и https://github.com/AndreyAkinshin/Russi ... ges.tex#L7 можно взять побольше полезностей для пакета listings, но проблема в том, что фокус с кириллическими кодами работает только в pdflatex, а в xelatex и lualatex проблема с кириллическими комментариями в коде, подсвечиваемом listings, остаётся.

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение08.09.2017, 00:52 


06/02/12
35
Lenchik в сообщении #1243994 писал(а):
В https://github.com/AndreyAkinshin/Russi ... es.tex#L95 и https://github.com/AndreyAkinshin/Russi ... ges.tex#L7 можно взять побольше полезностей для пакета listings, но проблема в том, что фокус с кириллическими кодами работает только в pdflatex, а в xelatex и lualatex проблема с кириллическими комментариями в коде, подсвечиваемом listings, остаётся.

Зачем во всём этом ковыряться при наличии пакета minted?

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение08.09.2017, 18:38 


13/07/14
258
Uncle в сообщении #1246026 писал(а):
Зачем во всём этом ковыряться при наличии пакета minted?

Чтобы не устанавливать Python и Pygments для работы minted.
Эх, был бы порт minted, написанный с поддержкой версии lua, идущей с установкой TeXLive под Windows...

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 06:52 


06/02/12
35
Lenchik в сообщении #1246237 писал(а):
Чтобы не устанавливать Python и Pygments для работы minted.

При нынешних объёмах дисков экономить на Python и Pygments довольно смешно. А если учитывать, что LaTeX используют (в основном) люди, для которых Python сам по себе представляет интерес, то такая причина выглядит и вовсе надуманной.
Цитата:
Эх, был бы порт minted, написанный с поддержкой версии lua, идущей с установкой TeXLive под Windows...

В Windows какие-то проблемы с Python и Pygments?

-- 09.09.2017, 07:58 --

В общем, учитывая качество пакета minted по сравнению со всеми аналогами, отсутствие в нём дурацких недостатков listings, для исправления которых приходится использовать не менее дурацкие хаки, выбор должен быть, по-моему, очевидным.

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 09:50 


13/07/14
258
Вот и получается, что listings для тех, кто не хочет заниматься установкой Python и Pygments.
Это его преимущество для некоторых "слоев населения". При этом у него есть и недостатки.

Цитата:
В Windows какие-то проблемы с Python и Pygments?

Неизвестно. Главное, что надо тратить время на их установку и голову, чтобы с ними разбираться.

Если в деятельности применяешь LaTeX и R, то ставить Python только ради подсветки кода может быть излишне.

Цитата:
При нынешних объёмах дисков

Тем не менее, в отдельных местах люди работают на компьютерах с малыми объемами.

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 10:22 


06/02/12
35
Lenchik в сообщении #1246377 писал(а):
Вот и получается, что listings для тех, кто не хочет заниматься установкой Python и Pygments.

Ну, у меня в Debian python и так ставится по умолчанию. Вообще можно всё нужное одной командой подтянуть.
Цитата:
Это его преимущество для некоторых "слоев населения". При этом у него есть и недостатки.

Я бы их назвал пороками.
Цитата:
Неизвестно. Главное, что надо тратить время на их установку и голову, чтобы с ними разбираться.

В Linux не требуется ни того, ни другого. См. чуть выше.
Цитата:
Если в деятельности применяешь LaTeX и R, то ставить Python только ради подсветки кода может быть излишне.

Вы хоть образец какой-нибудь видели с использованием пакета minted? Это же небо и земля по сравнению с listings.
Цитата:
Тем не менее, в отдельных местах люди работают на компьютерах с малыми объемами.

У меня под систему и домашний каталог SSD 128 GiB. При этом поставлено столько всего (для разработки надо), что я не представляю, сколь маленький диск надо иметь и что туда ставить, чтобы места не хватило.

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 10:57 


13/07/14
258
WinXP, HDD 20Gb (или 40Gb, или 80Gb), и без интернета, например.
Тем людям, для которых TexLive поставить является большим успехом, я бы советовал listings.
Тех, у кого в работе Python, или хватает головы и ресурсов его поставить, конечно, стоит знакомить с minted как с более прогрессивным.
Тем, кому надо сохранить компилируемость своих документов на самых разных компах с разными операционными системами и установками пакетов и программ, придётся изучить всякие условные конструкции и писать такой код для вёрстки своего текста, чтобы мог быть адекватно обработан даже самой ограниченной системой из того «зоопарка», с которым придётся иметь дело.

 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 11:58 


06/02/12
35
Lenchik в сообщении #1246386 писал(а):
WinXP, HDD 20Gb (или 40Gb, или 80Gb), и без интернета, например.

(Оффтоп)


 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 13:45 


13/07/14
258

(Оффтоп)


 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 18:46 


06/02/12
35
Lenchik в сообщении #1246416 писал(а):

(Оффтоп)


(Оффтоп)


 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 19:31 


13/07/14
258

(Оффтоп)


 Профиль  
                  
 
 Re: Разноцветная подсветка кода
Сообщение04.02.2018, 23:14 


11/04/08
632
Марс
Uncle в сообщении #1246371 писал(а):
При нынешних объёмах дисков экономить на Python и Pygments довольно смешно. А если учитывать, что LaTeX используют (в основном) люди, для которых Python сам по себе представляет интерес, то такая причина выглядит и вовсе надуманной.

Не подскажите ли как это дело в Kile подключить, куда вставлять оптию -shell-escape ?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group