Blogdown не может отобразить блок tikz в моем документе Rmd

Этот вопрос очень тесно связан с этим вопросом, однако действуют следующие различия:

  • ОС: Unix CentOS в контейнере Docker (изображение centos) с Хост Windows.
  • Ошибка: По сути, это та же ошибка, но исправление, сработавшее в Windows, здесь не работает, и сообщение об ошибке также другое.

Я создал проект, используя шаблон Hugo-Xmin. В RStudio после создания проекта в blogdown он создал несколько предопределенных сообщений, я редактирую этот:

/content/post/2015-07-23-r-rmarkdown.Rmd

Я изменил этот файл, добавив этот фрагмент в конец файла:

This is a tikz picture:

```{r, echo=FALSE, engine='tikz', out.width='90%', fig.ext=if (knitr:::is_latex_output()) 'pdf' else 'png', fig.cap='Some caption.'}
\begin{tikzpicture}[scale=.7]
\draw [fill=gray!30,very thick] (0,-1) rectangle (5,1);
\draw [very thick] (5, 0) -- (13,0);
\node [below] at (2,-1) {\large Hello};
\node [below, align=center] at (0,-1) {\large Two\\ lines};
\end{tikzpicture}
```

Не удалось обработать сообщение

Мой рабочий каталог - это папка проекта, я запускаю оттуда в консоли R команду:

blogdown::build_site()

И получи вот это:

> blogdown::build_site()
Rendering content/_index.Rmarkdown
running: bash  -c "cd ../..;
find . -not -path '*/exampleSite/*' \\( -name '*.html' -o -name '*.css' \\) | xargs wc -l"
Rendering content/post/2015-07-23-r-rmarkdown.Rmd
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
 restricted \write18 enabled.
entering extended mode
! LaTeX Error: File `preview.sty' not found.

! Emergency stop.
<read *>

Quitting from lines 49-55 (2015-07-23-r-rmarkdown.Rmd)
Error: Failed to compile tikz2b145b766cfa.tex. See https://yihui.name/tinytex/r/#debugging for debugging tips. See tikz2b145b766cfa.log for more info.
Execution halted
Error in render_page(f) :
  Failed to render 'content/post/2015-07-23-r-rmarkdown.Rmd'

Внимание! Обратите внимание, что я перешел по ссылке справки и добавил в начало файла этот фрагмент:

```{r, include=FALSE}
options(tinytex.verbose = TRUE)
```

Результат, о котором я сообщил выше, - это результат, который я получаю, когда этот фрагмент находится на месте.


Устранение неполадок 1

Просматривая файл tikz2b145b766cfa.log (как указано в сообщении об ошибке), я вижу следующую ошибку:

This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013) (format=pdflatex 2019.3.18)  18 MAR 2019 21:12
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**tikz2b145b766cfa.tex
(./tikz2b145b766cfa.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ru
ssian, ukrainian, bulgarian, loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
)
\c@part=\count79
\c@section=\count80
\c@subsection=\count81
\c@subsubsection=\count82
\c@paragraph=\count83
\c@subparagraph=\count84
\c@figure=\count85
\c@table=\count86
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
\@input{preview.aux}
\openout2 = `preview.aux'.

No file preview.tex.

! LaTeX Error: File `preview.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name:
! Emergency stop.
<read *>

l.4 \usepackage
               {amsmath}^^M
Here is how much of TeX's memory you used:
 200 strings out of 494820
 2171 string characters out of 3178049
 47774 words of memory out of 3000000
 3480 multiletter control sequences out of 15000+200000
 3640 words of font info for 14 fonts, out of 3000000 for 9000
 198 hyphenation exceptions out of 8191
 23i,0n,17p,164b,36s stack positions out of 5000i,500n,10000p,200000b,50000s

!  ==> Fatal error occurred, no output PDF file produced!

Важно знать, что я установил в систему CentOS много пакетов и программного обеспечения:

yum install texlive*

А также:

install.packages("devtools")
remotes::install_github('yihui/knitr')
install.packages(c('magick', 'pdftools'))

In R.

Устранение неполадок 2

Как и посоветовали, установил: tinytex. Это удалось. После этого, после запуска build_site(), мне всегда предлагалось указать недостающую библиотеку, которую я должен был установить. Через 30 минут я получил это сообщение:

> blogdown::build_site()
Rendering content/_index.Rmarkdown
running: bash  -c "cd ../..;
find . -not -path '*/exampleSite/*' \\( -name '*.html' -o -name '*.css' \\) | xargs wc -l"
Rendering content/post/2015-07-23-r-rmarkdown.Rmd
hugo: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by hugo)
hugo: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by hugo)

К сожалению, с этим я борюсь, поскольку libstdc++-4.8.5-36.el7.x86_64 уже установлен, и я не знаю, как исправить GLIBCXX_3.4.20 и GLIBCXX_3.4.21. Попробовать yum install на них не получится.


person Andry    schedule 19.03.2019    source источник
comment
Вам необходимо установить wget. См. Сообщение об ошибке Error: 'wget' is not found but required to install TinyTeX.   -  person Yihui Xie    schedule 19.03.2019
comment
Чувак, извиняюсь за то, что пропустил эти вещи ... просто работаю над многими вещами и летаю над сообщениями об ошибках ... сообщения об ошибках должны быть короткими, черт возьми: D   -  person Andry    schedule 19.03.2019
comment
Не стоит беспокоиться. Я понимаю, что сообщений слишком много, а фактическая ошибка была глубоко похоронена.   -  person Yihui Xie    schedule 19.03.2019
comment
Мне это удалось, и теперь происходит некоторая обработка, но затем он жалуется на отсутствие magick. Но я его установил :( Я сделал: install.packages('magick'), а затем вышел из R и снова вернулся в R, а затем выполнил команду сборки сайта и получил: Error in loadNamespace(name) : there is no package called 'magick'   -  person Andry    schedule 19.03.2019
comment
Но я вижу некоторые ошибки в установке magick .. Я изучаю ...   -  person Andry    schedule 19.03.2019
comment
@YihuiXie: Я сделал это и установил, теперь у меня другая проблема. См. Последнюю часть моего обновленного вопроса   -  person Andry    schedule 20.03.2019
comment
@YihuiXie: я вижу в this page, что вы устранили аналогичную проблему с помощью инструмента CI (это то, что я пробую здесь), используя другой дистрибутив Ubuntu. Я использую CentOS. Вы когда-нибудь пробовали CentOS? Я действительно хотел бы избежать принятия Ubuntu. Что мне нужно установить, чтобы это исправить?   -  person Andry    schedule 20.03.2019
comment
@YihuiXie: Чем больше я ищу в Интернете, тем больше я понимаю, что мне нужно будет перейти на Ubuntu :( RHEL поддерживает до 19, 20 и 21 не включены :( Вы можете это подтвердить?   -  person Andry    schedule 20.03.2019
comment
Я никогда не пользовался CentOS и ничего об этом не знаю. Я знаю только, если вы используете Ubuntu, убедитесь, что версия не ниже xenial.   -  person Yihui Xie    schedule 20.03.2019
comment
Ubuntu отлично работает. Жаль, что CentOS не работает из-за этой проблемы :(   -  person Andry    schedule 21.03.2019


Ответы (1)


Я не знаю, почему ваш TeX Live не может найти preview.sty, но я почти уверен, что TinyTeX будет работать автоматически:

# first make sure all your R packages are up-to-date, then
tinytex::install_tinytex()
person Yihui Xie    schedule 19.03.2019
comment
Я сделал это, но мне только что пришло сообщение с информацией. Установил все самое последнее! См. Обновленный вопрос, спасибо - person Andry; 19.03.2019
comment
Если у вас есть Docker, это должно быть очень легко воспроизвести. Что именно этого не хватает preview.sty? Я так понимаю, что Tex нужен .sty файл, откуда он? Есть ли способ увидеть сгенерированный .tex? - person Andry; 19.03.2019
comment
preview.sty происходит из пакета LaTeX с именем preview. Если вы успешно установили TinyTeX, вы можете узнать об этом tinytex::tlmgr_search('/preview.sty'). Что ж, вам не нужно запускать это, поскольку установка отсутствующих пакетов LaTeX выполняется автоматически с помощью TinyTeX. - person Yihui Xie; 19.03.2019