Ggplot2: Почему Semi-Transparency + pdflatex вызывает более тяжелые, чем обычные PDF-шрифты?
ggplot2: Почему Semi-Transparency + pdflatex вызывают более тяжелые PDF-шрифты?
У меня возникла проблема, когда pdf()
ing в R, а затем pdflatex
-в изображение ggplot2 заставляет весь текст на той же странице, что и изображение, чтобы он стал смелым, но только когда alpha
< 1. Здесь минимальный пример в R:
require("ggplot2")
"%_%" <- function(a, b) paste(a, b, sep="")
test <- function(filename, alpha)
{
pdf(filename %_% "-fig.pdf")
p <- ggplot(mtcars, aes(wt, mpg)) + geom_point(alpha=alpha)
print(p); dev.off()
latexDocument <- c(
"\\documentclass{article}",
"\\usepackage{Sweave}",
"%\\pdfpageattr{/Group <</S /Transparency /I true /CS /DeviceRGB>>}",
"\\begin{document}",
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"\\begin{figure}",
"\\includegraphics{" %_% filename %_% "-fig}",
" \\caption{Figure Caption}",
"\\end{figure}",
"\\end{document}")
con <- file(filename %_% ".tex"); writeLines(latexDocument, con); close(con)
system("pdflatex " %_% filename)
}
test("test1", 1)
test("test2", 0.3)
Сравнивая выходные файлы test1.pdf и test2.pdf, я замечаю, что последний документ имеет более тяжелые шрифты при просмотре в Acrobat или Acrobat Reader. Ранее обсуждалась проблема здесь, но без разрешения.
Кажется, я не могу решить проблему, которая искажает внешний вид отчетов, которые я создаю с помощью Sweave. Кто-нибудь может понять это? Я использую R версии 2.13.1 для Windows.
Ответы
Ответ 1
Попробуйте функцию pdf()
с аргументом colormodel = "cmyk"
?
require("ggplot2")
pdf("test_cmyk.pdf", colormodel = "cmyk")
ggplot(mtcars, aes(wt, mpg)) + geom_point(size = 3, alpha = 0.2) +
opts(title = "cmyk, alpha = 0.2")
dev.off()
embedFonts("test_cmyk.pdf")
Кажется, он немного лучше, чем colormodel = "rgb"
в моей среде (Win XP, Adobe Acrobat 9 Pro).
![enter image description here]()
Ответ 2
Можете ли вы попытаться выяснить, есть ли проблема с R или ggplot2 или Sweave или pdflatex, или просто ваш просмотрщик в формате pdf? Я не могу воспроизвести проблему. Здесь скриншот с использованием Adobe Reader на Mac OS 10.6,
![enter image description here]()
sessionInfo()
R version 2.13.1 (2011-07-08)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] en_NZ.UTF-8/en_NZ.UTF-8/C/C/en_NZ.UTF-8/en_NZ.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets grid methods base
other attached packages:
[1] ggplot2_0.8.9 proto_0.3-9.2 reshape_0.8.4 plyr_1.6
Ответ 3
Я думаю, что это вопрос сглаживания, что делает текст более смелым/большим. Я вижу это по названию оси, но не по меткам. И он более выражен при меньших увеличениях. Я ничего не могу доказать, и различие двух PDF файлов не помогло мне.
При 200%:
![View of PDFs in Acrobat Reader at 200%]()
При 800%:
![View of PDFs in Acrobat Reader at 800%]()
Сгенерировано с использованием следующего кода (который исключает шаги Sweave и pdflatex)
require("ggplot2")
"%_%" <- function(a, b) paste(a, b, sep="")
test <- function(filename, alpha)
{
pdf(filename %_% "-fig.pdf")
p <- ggplot(mtcars, aes(wt, mpg)) + geom_point(alpha=alpha)
print(p); dev.off()
}
test("test1", 1)
test("test2", 0.3)
Информация о сеансе:
R version 2.13.1 (2011-07-08)
Platform: x86_64-pc-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] grid stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] xtable_1.5-6 ggplot2_0.8.9 proto_0.3-9.2
[4] reshape_0.8.4 plyr_1.6 microbenchmark_1.1-0
loaded via a namespace (and not attached):
[1] digest_0.5.0 tools_2.13.1
Ответ 4
Помогает ли эта нить из списка рассылки ggplot2?
http://groups.google.com/group/ggplot2/browse_thread/thread/80016f7ac2a28f28/7f5b7f2c1bd9f716
Результат заключается в попытке включить следующую строку в преамбулу вашего документа LaTeX:
\pdfpageattr {/Group << /S /Transparency /I true /CS /DeviceRGB>>}
Если вы следуете ссылкам из обсуждения темы списка рассылки ggplot2, вы найдете поток с этим потенциальным решением, в конечном итоге отправленным по адресу:
http://tug.org/pipermail/pdftex/2007-December/007480.html
Надеюсь, что это поможет, но я вижу, что Батист взвесил и здесь, и по вопросу ggplot2, поэтому, возможно, это не решает проблему.