LINUX.ORG.RU

опять latex — вставить кусок кода


0

1

Привет. Я опять с вопросом про латех. Есть две задачки. 1) надо включить код и в нем нужные места выделить, например, красным цветом. Я разобрался более-менее как вообще вставлять код при помощи пакета listings, но вот как выделить, что то не пойму.

и 2) мне хочется вставить кусок прямо в текст. что-то типа «это значение можно получить при помощи вызова функции function_name(param1, param2)». каковы правила? в таком случае надо писать «function_name(param1, param2)» другим шрифтом? таким же как все вставляемые листинги? или как правильно?

спасибо.


второй вопрос снимается: \lstinline|function_name(bla bla)|

ntiy
() автор топика

Ты хочешь выделить цветом всякие имена функций, ключевые слова и комментарии? Тогда http://en.wikibooks.org/wiki/LaTeX/Packages/Listings .

Или просто кусок кода надо раскрасить? Я с трудом могу представить, зачем, но справка по listings рекомендует fancyvrb вообще и alltt в частности, если я правильно понял.

Axel
()
Ответ на: комментарий от Axel

мне нужно именно раскрасить кусок кода некоторый. для чего — чтобы сказать «вот я добавил вот эти красные места и получилось то, что мне надо».

спасибо за наводки, пойду изучать.

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

Он имел в виду, что вставлять надо только участки, которые ты добавил. С автоподсветкой синтаксиса, которую обеспечивает listings.

Axel
()
Ответ на: комментарий от Axel

Тогда размер диплома будет недостаточный;-)

По теме - я использую окружение verbatim, а код перед вставкой прогоняю через

cat -n filename | fold -w 98
оно расставляет номера строк и переносит длинные строки (вместо 98 нужно подставить пральную циферку что бы в полосу набора влезало).

Непосредственно в тексте verb'function(blablabla)'

listings не люблю за внешний вид (это субъективно), кроме того он не проходит через latex2rtf (это объективно, когда в ворде отчеты выдавать).

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

не то что-то. мне надо вставить 5 строк, среди которых, скажем в третьей строке стоит выражение «real :: variable(n,m)[P,Q]» и кусочек «[P,Q]» надо написать красным.

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

телепатический модуль у вас не исправен :)

ntiy
() автор топика

В lstlistings, ЕМНИП, была «волшебная команда», которую можно вставить в текст исходника и она выполнится как латеховская (это удобно, например, чтобы вставлять в комментариях формулы + еще кое-что делать). Т.е. для подсветки куска кода достаточно вставить команды изменения фона.

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

Я в справке не нашел.

ТС, страница 17-18 справки, настройка выделений. ИМХО, сойдет для села.

Axel
()
Ответ на: комментарий от ntiy

Документация же есть!

Вариант 1:

\lstset{morecomment=[s][\color{blue}]{/*+}{*/},
morecomment=[s][\color{red}]{/*-}{*/}}
\begin{lstlisting}
/* normal comment */
/*+
 keep cool
 */
/*-
 danger!
 */
\end{lstlisting}

Вариант 2:

\begin{lstlisting}[texcl]
// \upshape calculate ✩a_{ij}✩
A[i][j] = A[j][j]/A[i][j];
\end{lstlisting}

Вариант 3:

escapechar=\%
или
escapeinside={}

И вообще, см. раздел «Escaping to LATEX» в мануале!

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