2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Вставить код внутри строки
Сообщение27.03.2014, 20:43 
Аватара пользователя


06/08/09
165
Как вставить фрагмент кода внутри строки, чтобы LaTeX не пытался его интерпретировать (отображал как есть) и отрисовывал шрифтом, каким код и должен отображаться.

 Профиль  
                  
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 21:02 
Заслуженный участник
Аватара пользователя


31/01/14
11312
Hogtown
Вот так: $x^2$

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

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


06/08/09
165
Надо вставить не на форум, а в теховский документ.

 Профиль  
                  
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 22:02 
Заслуженный участник


09/05/12
25179
alien308 в сообщении #841851 писал(а):
Как вставить фрагмент кода внутри строки, чтобы LaTeX не пытался его интерпретировать (отображал как есть) и отрисовывал шрифтом, каким код и должен отображаться.

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

 Профиль  
                  
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 22:41 
Аватара пользователя


06/08/09
165
Преамбула:
Код:
\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 
Заслуженный участник


09/05/12
25179
Внутри строки можно написать \verb|какая-то ерунда с кодом|

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

 Профиль  
                  
 
 Re: Вставить код внутри строки
Сообщение27.03.2014, 23:08 
Аватара пользователя


06/08/09
165
Тоже не работают!!! :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 
Заслуженный участник


09/05/12
25179
alien308 в сообщении #841963 писал(а):
Код вставляется уже, а шрифт никак не меняется, когда внутри строки!

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

 Профиль  
                  
 
 Re: Вставить код внутри строки
Сообщение28.03.2014, 07:49 
Аватара пользователя


06/08/09
165
Так \lstinline должен отображать другим шрифтом. Кроме того просто в тексте не работает изменение шрифта\textbf{Жирный} \textit{Наклонный}. Дело наверное в этом, чего то не хватает.

 Профиль  
                  
 
 Re: Вставить код внутри строки
Сообщение28.03.2014, 11:44 
Аватара пользователя


06/08/09
165
Убрал пакет 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 
Аватара пользователя


11/09/08
150
Могилев
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 
Аватара пользователя


06/08/09
165
Спасибо всем. После того как заработало переключение шрифтов подошёл verbftim.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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



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

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


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

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