Математическое выражение в метке оси

В R я использую expression(theta[l]), чтобы метка моей оси графика была такой же, как $\theta_l$ из LaTeX. Из эстетических соображений я предпочитаю отображать $\theta_\ell$. Можете вы помочь мне?

введите здесь описание изображения


ИЗМЕНИТЬ

Раньше я делал

plot(1:10, 1:10, xlab=expression(theta[l]))

и я экспортировал полученную картинку в pdf. Затем, используя

\begin{figure}[htbp]
\centerline{\includegraphics[scale=.6]{test.pdf}}
\end{figure}

моя картинка была вставлена ​​в LaTeX.

После комментариев, вот что я сейчас делаю:

require(tikzDevice)
tikz("test.tex", standAlone=TRUE, width=5, height=5)

plot(1:10, 1:10, xlab="$\\theta_\\ell$")

dev.off()
tools::texi2pdf('test.tex')
system(paste(getOption('pdfviewer'),'test.pdf'))

Однако, когда я вставляю результирующий график в LaTeX, качество рисунка уже не такое хорошее, как раньше. Есть ли что-то еще, что я могу сделать?


person Marco    schedule 18.03.2013    source источник
comment
@agstudy: Windows. Линукс мне тоже подходит.   -  person Marco    schedule 18.03.2013
comment
@Sven Hohenstein: Спасибо за фото :-)   -  person Marco    schedule 18.03.2013
comment
это то, что вы находясь в поиске?   -  person plannapus    schedule 18.03.2013
comment
@plannapus: ммммм, интересно! Я изучу этот пакет :-)   -  person Marco    schedule 18.03.2013
comment
Это работает с cairo_pdf: plot(1:10, main = "\u2113"). редактировать: я только что понял, что вы хотите theta_ell, это, вероятно, не поможет...   -  person Jouni Helske    schedule 20.03.2013
comment
@Хеммо: все равно спасибо   -  person Marco    schedule 21.03.2013


Ответы (4)


На самом деле нет причин использовать возможно неподдерживаемый пакет, например ' tikzDevice' для такой простой проблемы. Часть проблемы с устройством «tikz» заключается в том, что оно, похоже, неправильно принимает аргументы «xpinch» и «ypinch», которые определяют разрешение вашего графика.

Существует более крупный вопрос о добавлении нотации LaTEX к графикам, но для этой локализованной проблемы вопрос заключается в указании шрифта, чтобы базовый пакет 'plotmath' отображал для вас курсивные буквы.

Вы можете изменить шрифт для метки оси X, отделив его от команды plot и выбрав собственный шрифт в функции «заголовок» примерно так:

plot(1:10, 1:10, xlab="")
windowsFonts(script=windowsFont("Script MT Bold"))
title(xlab=expression(theta[l]), family="script")

Что мы сделали, так это указали нулевую метку для оси X в команде построения графика, чтобы сначала освободить место. Затем мы загружаем системный шрифт в доступные семейства шрифтов (мне нравится Script MT Bold для выражений). Наконец, мы можем использовать функцию title для построения метки по оси X и указать семейство для любого текста в этой метке.

Делая это, мы сохраняем все исходные функции устройства печати, поэтому у вас больше не должно быть падения разрешения при преобразовании в PDF.

демонстрация диаграммы

Теперь, если у кого-то есть хорошее решение проблемы с нотацией LaTEX за пределами пакета «tikzDevice», я был бы рад услышать об этом. Единственный известный мне способ сделать это хорошо — перевернуть модель и использовать пакет LaTEX «tikz», чтобы нарисовать всю графику вручную из файла LaTEX, или использовать пакет R «pixmap», чтобы нарисовать изображение моего выражения на вершина сюжета. Ни один из них не кажется идеальным подходом.

person Dinre    schedule 22.03.2013
comment
Где мы находим windowsFonts? - person Marco; 26.03.2013
comment
Это шрифты, установленные в вашей системе. Вам просто нужно использовать имя шрифта, поскольку оно зарегистрировано на вашем компьютере. На компьютере с Windows вы можете использовать приложение «Карта символов» (системный инструмент). - person Dinre; 26.03.2013
comment
windowsFonts — это функция, которая может отображать доступные в настоящее время сопоставления шрифтов для интерактивного графического устройства, и ее можно использовать для назначения новых сопоставлений. Очевидно, что он доступен только в... Windows. Соответствующие функции есть на Mac (quartzFonts) и Nix (X11Fonts). - person IRTFM; 27.03.2013
comment
Я думаю, что он находится на обслуживании. Когда я проверял, он был обновлен 07 января 2015 г. - person ziyuang; 10.04.2015

Я думаю, что tikzDevice это путь сюда. Вы можете установить с R-forge.

install.packages("tikzDevice", repos="http://R-Forge.R-project.org")

Философия tikz /pgf заключается в создании сюжета, который можно набирать. Вероятно, вы захотите, чтобы они соответствовали вашему документу. Например, с теми же пакетами, шрифтами, размером шрифта и т. д.

Вы можете установить эти вещи в вызове tikz, установив

параметры, такие как объявление документа

options(tikzDocumentDeclaration = "\\documentclass[10pt]{article}")

пакеты

tikzLatexPackages (или аналогичный)

Вы также можете контролировать размер шрифта.

Все эти вещи подробно описаны в

?tikzУстройство.


Вы также можете использовать knitr для создания своих графиков в грамотном программном документе (.rnw).

В этом случае с помощью устройства tikz создается pdf (как внешний = TRUE) с использованием того же объявления документа и заголовка/пакетов, что и весь документ.

\documentclass[12pt,a4paper]{article}

\begin{document}

<<setup, include = FALSE>>=
opts_chunk$set(dev = 'tikz', external = TRUE)
@


<<myplot, fig.width=5, fig.height = 5, echo=FALSE>>=
plot(1:10, 1:10, xlab="$\\theta_\\ell$")
@

\end{document}
person mnel    schedule 25.03.2013
comment
Если вы устанавливаете на Mac (или Windows), вам, вероятно, потребуется установить соответствующий пакет инструментов и использовать: install.packages("tikzDevice", repos="http://R-Forge.R-project.org") - person IRTFM; 27.03.2013

Это несколько грязное решение, но оно делает это:

plot(1,1, xlab=expression(theta))
title(xlab="    \u2113",line=3.2,cex.lab=.7)

Первый сюжет с тета-символом. Затем добавьте символ \ell с меньшим размером шрифта и вручную задайте позицию.

введите здесь описание изображения

person Julián Urbano    schedule 22.03.2013
comment
@carelus: Спасибо. Он по-прежнему отображается как \ell, когда изображение экспортируется в формат PDF? - person Marco; 23.03.2013
comment
только что проверил, вроде нет :-( - person Julián Urbano; 23.03.2013
comment
Поведение будет зависеть от сопоставления шрифтов в средстве просмотра pdf. На Mac, использующем Preview.app в качестве средства просмотра, он отображается с тем же курсивом. В вашем средстве просмотра должен быть правильный шрифт Symbol, чтобы получить такое же поведение, и я считаю, что средства просмотра Windows часто не настроены должным образом для этого. - person IRTFM; 27.03.2013
comment
@Dwin: Спасибо за точность. У вас есть рекомендации относительно программы просмотра PDF для Windows? - person Marco; 29.03.2013

Я нашел обходной путь здесь. Они объясняют длительный процесс, чтобы заставить кодировку работать со стандартным устройством PDF. В противном случае устройство CairoPDF можно использовать, установив пакет Cairo. . Затем в pdf-файле появится что-то вроде xlab="\u2113" с использованием решения @Julián Urbano. Мне не повезло с использованием символа в выражении.

person StatGrrl    schedule 29.10.2014