LINUX.ORG.RU

[TeX]листинги кода

 


0

0

Пишу сейчас кое-что в TeX'е и возник ряд вопросов: 1. Никак не получается получить русский в листингах программ. Программа в utf8, пишу так

\lstinputlisting[inputencoding=utf8]{src/im.m}.
В преамбуле есть
\documentclass[a4paper,10pt,russian]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}

\lstloadlanguages{Matlab}
\lstset{language=Matlab,extendedchars=true,frame=tb}

Т.е. как будто всё что нужно прописано. Но после запуска latex main.tex получаю следующую ошибку:

! Package inputenc Error: Unicode char \u8:�\lst@EC� not set up for use with La
TeX.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.
 ...

l.46 % нормировка

?

и так он ругается на каждую букву =) Установлен tetex-3.0.

2. Если создавать pdf через latex -> dvips -> ps2pdf, то изображения с альфа-каналом остаются такими как были, а если делать pdf через pdftex, то вместо прозрачности получаю чёрный цвет. Как это исправить?

3. Как сделать нормальную разбивку больших строк в листинге? Просто

\lstinputlisting[breaklines]{src/im.m}
разбивает как придётся. Можно ли сделать как-то разумно?

★★★

> русский в листингах программ

См. опцию `escapechar` пакета listings. К сожалению,
гарнитура собьётся.

noweb кошернее ^_^

С прозрачностью проблем на pdfTeX не встречал,
как генерится графика?

Sphinx ★★☆☆
()

> tetex-3.0

Оно не поддерживается, стоит использовать TeX Live.

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

>См. опцию `escapechar` пакета listings. К сожалению,
гарнитура собьётся.
Посмотрел, не очень понял чем оно поможет, поэксперементировал - ничего не получилось. Если не сложно, то можно любой рабочий пример привести.

>noweb кошернее ^_^

это что и зачем?

>С прозрачностью проблем на pdfTeX не встречал,

>как генерится графика?

Эээ... графика это png файл с альфа-каналом. Вставляется при помощи \includegraphics. Может опции какие-то надо указать? Щас ещё попробую сконвертировать в pdf перед вставкой.

>Оно не поддерживается, стоит использовать TeX Live.

Пользуюсь тем что лежит в дистрибутиве =)

GArik ★★★
() автор топика

Сконвертировал картинку в pdf - всё стало хорошо.

GArik ★★★
() автор топика
Ответ на: комментарий от GArik

Рабочий пример

\documentclass{article}
\usepackage[utf8x]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{listings}

\lstset
{language=Matlab,frame=tb,
 extendedchars=true,escapechar=',
 commentstyle=\itshape}

\begin{document}
\begin{lstlisting}
% 'Ядро интегрального оператора'
% Kernel of integral equation
function K = K (x, t)
  if ((0 <= x) & (x <= t))
    K = cosh(x)*cosh(t-1)/sinh(1);
  else
    K = cosh(t)*cosh(x-1)/sinh(1);
  endif
endfunction
\end{lstlisting}
\end{document}

Sphinx ★★☆☆
()
Ответ на: Рабочий пример от Sphinx

спасибо, всё прояснилось. Вобщем намучавшись я понял, что лучше делать комментарии на английском =))
- включение файла подразумевает, что надо ещё и под TeX подстраиваться и придумывать какие-то левые символы.
- слово n_max дало ошибку.
- комментарий за комментарий перестал считаться.

GArik ★★★
() автор топика

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

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

Самым простым решением оказалось перекодировать файлы в cp1251 и указать для внешних файлов эту кодировку.

HighwayStar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.