2014 dxdy logo

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

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




 
 Вставить код внутри строки
Сообщение27.03.2014, 20:43 
Аватара пользователя
Как вставить фрагмент кода внутри строки, чтобы LaTeX не пытался его интерпретировать (отображал как есть) и отрисовывал шрифтом, каким код и должен отображаться.

 
 
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 21:02 
Аватара пользователя
Вот так: $x^2$

Код:
[notex]$x^2$[/notex]

 
 
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 21:24 
Аватара пользователя
Надо вставить не на форум, а в теховский документ.

 
 
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 22:02 
alien308 в сообщении #841851 писал(а):
Как вставить фрагмент кода внутри строки, чтобы LaTeX не пытался его интерпретировать (отображал как есть) и отрисовывал шрифтом, каким код и должен отображаться.

Самый простой вариант - окружение verbatim. Если под "кодом" имеется в виду текст программы на каком-то ЯП, то можно также воспользоваться пакетом listings.

 
 
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 22:41 
Аватара пользователя
Преамбула:
Код:
\documentclass[a4paper,12pt,leqno]{article}

\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{fontenc}
\usepackage{psfrag}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{setspace}
\usepackage{txfonts}
\usepackage{verbatim}
\usepackage{listings}

\lstset{basicstyle=\ttfamily, breaklines=true, inputencoding=utf8, extendedchars=false, keepspaces = true}



Попытка вставить код в строку:
Код:
bla-bla \lstinline!This is code! bla-bla

Не меняет шрифт!

В то же время:
Код:
\begin{lstlisting}
This is code
\end{lstlisting}

Всё нормально шрифт меняется!

 
 
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 22:48 
Внутри строки можно написать \verb|какая-то ерунда с кодом|

Первый символ после \verb - "ограничитель", им завершается аргумент команды и он не должен встречаться внутри аргумента.

 
 
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 23:08 
Аватара пользователя
Тоже не работают!!! :twisted:
Код:
\textbf{Жирный} \textit{Наклонный}


версия:
pdfTeX 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian)

-- Пт мар 28, 2014 05:23:54 --

В логе Латеха:
Код:
LaTeX Font Info:    Try loading font information for T2A+txr on input line 15.
LaTeX Font Info:    No file T2Atxr.fd. on input line 15.



LaTeX Font Warning: Font shape `T2A/txr/m/n' undefined
(Font)              using `T2A/cmr/m/n' instead on input line 15.

\c@lstlisting=\count111

LaTeX Font Warning: Font shape `T2A/txr/bx/n' undefined
(Font)              using `T2A/txr/m/n' instead on input line 17.

(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-4.def
File: uni-4.def 2012/04/20 UCS: Unicode data U+0400..U+04FF
)

LaTeX Font Warning: Font shape `T2A/txr/m/it' undefined
(Font)              using `T2A/txr/m/n' instead on input line 17.

Нужно установить ещё какой пакет?

-- Пт мар 28, 2014 05:25:53 --

Pphantom в сообщении #841942 писал(а):
Внутри строки можно написать \verb|какая-то ерунда с кодом|

Первый символ после \verb - "ограничитель", им завершается аргумент команды и он не должен встречаться внутри аргумента.

Код вставляется уже, а шрифт никак не меняется, когда внутри строки!

 
 
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 23:44 
alien308 в сообщении #841963 писал(а):
Код вставляется уже, а шрифт никак не меняется, когда внутри строки!

Так и не должен. Либо изменение шрифта - это неотображаемая, но выполняемая команда, либо, наоборот, отображаемый и невыполняемый текст.

 
 
 
 Re: Вставить код внутри строки
Сообщение28.03.2014, 07:49 
Аватара пользователя
Так \lstinline должен отображать другим шрифтом. Кроме того просто в тексте не работает изменение шрифта\textbf{Жирный} \textit{Наклонный}. Дело наверное в этом, чего то не хватает.

 
 
 
 Re: Вставить код внутри строки
Сообщение28.03.2014, 11:44 
Аватара пользователя
Убрал пакет txfonts, стало работать переключение шрифтов.
Вот так почти нормально:
Код:
bla-bla \texttt{\lstinline!This is code!} bla-bla
\begin{lstlisting}
This is code
\end{lstlisting}

Но шрифты в коде внутри строки (\lstinline) и в блоке кода (\lstlisting) немного разные. Как сделать одинаковые?

 
 
 
 Re: Вставить код внутри строки
Сообщение28.03.2014, 15:38 
Аватара пользователя
alien308,
попробуйте "покрутить" настройки пакета
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\lstset{%----- Настройка листингов -----
                extendedchars = true,%
                commentstyle = \small\color{green},%
                stringstyle = \color{black},%
                basicstyle = \ttfamily,%
                language = Matlab,%
                belowcaptionskip = 5pt,%
                numbers = none,%
                numberstyle = \ttfamily,%
                numbersep = 5pt,%
                showstringspaces = false,%
                tabsize = 2,%
                breaklines      = true,%
                breakatwhitespace = true,%
                keywordstyle = \color{blue}
}

Параметр basicstyle влияет на выбор шрифта и его начертание

 
 
 
 Re: Вставить код внутри строки
Сообщение29.03.2014, 11:25 
Аватара пользователя
Спасибо всем. После того как заработало переключение шрифтов подошёл verbftim.

 
 
 [ Сообщений: 12 ] 


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