2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Оформление исходного кода программ в Latex
Сообщение26.11.2011, 08:14 


25/11/11
19
camphene в сообщении #508220 писал(а):
texMSP в сообщении #508218 писал(а):
К сожалению, в настоящее время нет способа оформить код с комментариями на русском языке.

Так всё же, в чём проблема и в каких случаях она проявляется?
В TexLive под Debian в кодировке utf-8 все русские буквы видны нормально (используется
inputencoding=utf8x,
extendedchars=false,).

Правда, по умолчанию listings ел в комментариях пробелы, но это решилось опцией keepspaces = true.

Очень рад, что у Вас получилось печатать комментарии в листингах на русском.
Наверное я что-то делаю не так.
Большая просьба привести полный точный код решения этой проблемы.

Наверное, я поторопился со своей оценкой возможностей LaTeX по работе с листингами.

 Профиль  
                  
 
 Re: Оформление исходного кода программ в Latex
Сообщение26.11.2011, 09:29 


19/09/10
109
К сожалению, я не знаю, какой именно код направлен на решение загадочной проблемы...

В начале преамбулы я использую
Код:
\usepackage{cmap}

\usepackage[utf8x]{inputenc}
\usepackage[TS1,T2A]{fontenc}

\usepackage[english,russian]{babel}


При подключении пакета
Код:
\usepackage{listings}

\lstset{inputencoding=utf8x,
   extendedchars=false,
   %         stringstyle=\usefont{T2A}{fcr}{b}{n},
   language=Pascal, %Язык по умолчанию Code langugage
   belowcaptionskip=5pt,
   basicstyle=\usefont{T2A}{fcr}{m}{n},                   % Code font, Examples: \footnotesize, \ttfamily
   % keywordstyle=\color{OliveGreen},        % Keywords font ('*' = uppercase)
   commentstyle=\color{gray},              % Comments font
   keywordstyle=\usefont{T2A}{fcr}{b}{n},        % Keywords font ('*' = uppercase)
   % commentstyle=\usefont{T2A}{fcr}{m}{sl},              % Comments font
   numbers=left,                           % Line nums position
   numberstyle=\tiny,                      % Line-numbers fonts
   stepnumber=1,                           % Step between two line-numbers
   numbersep=5pt,                          % How far are line-numbers from code
   % backgroundcolor=\color{lightlightgray}, % Choose background color
   frame=none,                             % A frame around the code
   tabsize=2,                              % Default tab size
   captionpos=b,                           % Caption-position = bottom
   breaklines=true,                        % Automatic line breaking?
   breakatwhitespace=true,                % Automatic breaks only at whitespace?
   showspaces=false,                       % Dont make spaces visible
   showtabs=false,                         % Dont make tabls visible
   columns=flexible,                       % Column format
   morekeywords={__global__, __device__},  % CUDA specific keywords
   keepspaces = true   %!!!! пробелы в комментариях
}

Последняя из опций запрещает убирать из комментариев пробелы (вот с ними помучиться пришлось), остальные — украдены из разных источников (не помню, что откуда).

Соответственно, исходные коды и документа LaTeX, и листингов — в кодировке utf-8.

Шрифт fcr — из Debian`овского пакета scalable-cyrfonts-tex (очень похож на Courier, но по умолчанию великоват, поэтому непосредственно перед \lstinputlisting в этом случае пишу
Код:
\scriptsize
\linespread{1}
\setlength{\parskip}{0ex}
).
Если не требуют обязательно Courier, можно поставить в basicstyle и стандартный \tt — русские буквы тоже есть.

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

 Профиль  
                  
 
 Re: Оформление исходного кода программ в Latex
Сообщение29.11.2011, 11:45 


25/11/11
19
nestoklon в сообщении #508226 писал(а):
texMSP в сообщении #508218 писал(а):
Это, пока, не решенная проблема.
Я же привёл ссылку на решение. Даже на два
Более того, внезапно оказывается, что Evgueni был не прав и проблемы-то никакой и нет. Listings на самом деле прекрасно работает с utf8 (я тоже проверил) если ему указать соответствующие опции. Которые можно найти в документации.


К моему огорчению, ничего не получается!

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

 Профиль  
                  
 
 Re: Оформление исходного кода программ в Latex
Сообщение29.11.2011, 11:56 


19/09/10
109
А не могли бы Вы привести минимальный пример, в котором русские комментарии не печатаются?
В моём предыдущем сообщении описаны все мои настройки, которые имеют хоть какое-то отношение к кодировке и листингам.
Если этот код не работает у Вас, то, может быть, дело в дистрибутиве или версии пакета?

 Профиль  
                  
 
 Re: Оформление исходного кода программ в Latex
Сообщение29.11.2011, 13:22 
Аватара пользователя


23/07/08
401
Новосибирск
texMSP в сообщении #509540 писал(а):
Нельзя ли попросить опубликовать здесь код на LaTeX, с помощью которого можно печать листинги, в которых есть русские комментарии.
Пожалуйста!
Буду очень признателен!

Можно вставлять внешние сегменты кода с помощью хака listingsutf8 из пакета oberdiek. Я же комментарии на кириллице оборачиваю в escapechar (обычно |) ручками. Про сам listings есть немного тут

Можно глянуть в сторону молодого аналога minted. Я на него перейти не смог, так как там нет раскраски для кода LaTeX и MetaPost, которые мне в тот момент были нужны.

 Профиль  
                  
 
 Re: Оформление исходного кода программ в Latex
Сообщение29.11.2011, 13:56 


19/09/10
109
texMSP, посылаю Вам текст минимального русского примера (файлы приложить не получилось):
Код:
\documentclass[a4paper,12pt]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{listings}
\lstset{inputencoding=utf8x, extendedchars=false, keepspaces = true,
   language=c}
\renewcommand{\lstlistingname}{Листинг}

\begin{document}
\begin{lstlisting}[caption=Окружение lstlisting]
#include <stdio.h>
int main()
{
    printf("Здравствуй, мир!\n");   // Вывод приветствия
    return 0;
}
\end{lstlisting}

В~строке \lstinline?printf("Здравствуй, мир!\n"); // Вывод приветствия? есть русские буквы.

\lstinputlisting[caption=Команда lstinputlisting]{hello.cpp}
\end{document}
В файле hello.cpp тот же самый текст, что и в окружении lstlisting, кодировка utf8.

 Профиль  
                  
 
 Re: Оформление исходного кода программ в Latex
Сообщение05.05.2015, 09:46 


19/09/10
109
Вот такое нашлось:

Подсветка синтаксиса в Latex с кириллицей
http://blog.harrix.org/?p=6417

После подключения extendedchars=true и описанного там длиннющего literate русские буквы в комментариях у меня покрасились в цвет комментария; может быть, решаются и ещё какие-то проблемы, с которыми мне не приходилось сталкиваться.

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

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



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

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


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

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