2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Разноцветная подсветка кода
Сообщение24.07.2017, 04:09 
Аватара пользователя
Понадобилось тут мне вставить ассемблерный код в $\LaTeX$. Нашёл пакет listings. Оказалось, он подсвечивает все ключевые слова одним цветом. Как сделать разноцветную подсветку кода?

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

 
 
 
 Re: Разноцветная подсветка кода
Сообщение30.08.2017, 16:27 
Я интересовался этим вопросом, вот что накопал:
код: [ скачать ] [ спрятать ]
Используется синтаксис 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 
В 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 
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 
Uncle в сообщении #1246026 писал(а):
Зачем во всём этом ковыряться при наличии пакета minted?

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

 
 
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 06:52 
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 
Вот и получается, что listings для тех, кто не хочет заниматься установкой Python и Pygments.
Это его преимущество для некоторых "слоев населения". При этом у него есть и недостатки.

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

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

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

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

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

 
 
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 10:22 
Lenchik в сообщении #1246377 писал(а):
Вот и получается, что listings для тех, кто не хочет заниматься установкой Python и Pygments.

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

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

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

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

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

 
 
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 10:57 
WinXP, HDD 20Gb (или 40Gb, или 80Gb), и без интернета, например.
Тем людям, для которых TexLive поставить является большим успехом, я бы советовал listings.
Тех, у кого в работе Python, или хватает головы и ресурсов его поставить, конечно, стоит знакомить с minted как с более прогрессивным.
Тем, кому надо сохранить компилируемость своих документов на самых разных компах с разными операционными системами и установками пакетов и программ, придётся изучить всякие условные конструкции и писать такой код для вёрстки своего текста, чтобы мог быть адекватно обработан даже самой ограниченной системой из того «зоопарка», с которым придётся иметь дело.

 
 
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 11:58 
Lenchik в сообщении #1246386 писал(а):
WinXP, HDD 20Gb (или 40Gb, или 80Gb), и без интернета, например.

(Оффтоп)

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

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

(Оффтоп)

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

 
 
 
 Re: Разноцветная подсветка кода
Сообщение09.09.2017, 18:46 
Lenchik в сообщении #1246416 писал(а):

(Оффтоп)

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

(Оффтоп)

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

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

(Оффтоп)

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

 
 
 
 Re: Разноцветная подсветка кода
Сообщение04.02.2018, 23:14 
Uncle в сообщении #1246371 писал(а):
При нынешних объёмах дисков экономить на Python и Pygments довольно смешно. А если учитывать, что LaTeX используют (в основном) люди, для которых Python сам по себе представляет интерес, то такая причина выглядит и вовсе надуманной.

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

 
 
 [ Сообщений: 20 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group