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
2763
Я интересовался этим вопросом, вот что накопал:
код: [ скачать ] [ спрятать ]
Используется синтаксис 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
257
В 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
257
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
257
Вот и получается, что 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
257
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), и без интернета, например.

(Оффтоп)

Надуманно выглядит. С помойки что ли такое чудо? HDD 20GB у меня был лет 15 назад... Ладно, пусть те, у кого такая техника, используют listings. Сдаюсь.

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


13/07/14
257

(Оффтоп)

Тот, что с 80 Gb не апгрейдился 8 лет. И комп у одного знакомого преподавателя в летах не обновлялся лет 10, с тех пор как был выдан на кафедре — примерно такие же характеристики, но интернет есть.

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


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

(Оффтоп)

Тот, что с 80 Gb не апгрейдился 8 лет. И комп у одного знакомого преподавателя в летах не обновлялся лет 10, с тех пор как был выдан на кафедре — примерно такие же характеристики, но интернет есть.

(Оффтоп)

Я свой десктоп, с которого сейчас пишу, собрал в 2010, т.е., ему 7 лет (хотя у меня есть и другие, но и этого хватает за глаза). В нём изначально был поставлен 1 HDD на 1 TiB. Потом кое-что менял, добавлял (но не системную плату и процессор, они те же самые). С 80 GB - это что, ноутбук? И без Интернет - вообще анекдот. Свисток 4G на каждом углу можно купить. Только на Win XP, наверно, действительно, лучше без Интернета сидеть.

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


13/07/14
257

(Оффтоп)

C 80 Gb это комп в НИИ, Интернет на рабочих местах запрещён

 Профиль  
                  
 
 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