R bookdown пропускает главу, если включены определенные необработанные таблицы LaTeX - PullRequest
0 голосов
/ 27 мая 2020

Я пишу диссертацию на R Markdown, используя Bookdown Yihui X ie и мой университетский шаблон диссертации LaTeX в качестве пользовательского шаблона Pando c.

К сожалению, мой университетский шаблон дипломной работы довольно сложен и содержит множество файлов и подкаталогов. Я старался как можно меньше возиться с этим. Я просто заменил команды \input{chapterX} на переменную $body$ Pando c и добавил пару переменных Pando c для использования с biblatex.

Пока все хорошо, за исключением одного. Перед заголовком некоторых глав мне нужно вставить страницу, на которой будет указано, что эта глава была опубликована в журнале, и содержащую таблицу статей для меня и моих соавторов. Мой шаблон uni (ссылка выше) содержит для этого необработанный шаблон LaTeX, и я хотел бы просто скопировать и вставить этот шаблон в верхнюю часть моего файла Rmarkdown для этой главы. Однако, когда я связываю свой файл index.Rmd, Pandoc / Bookdown пропускает любой файл главы, содержащий эту таблицу. Он просто полностью игнорирует Rmd-файл главы и компилирует остальную часть тезиса (успешно) без него, как будто его не существует.

Для воспроизводимости я создал репозиторий Github демонстрирует проблему. Если вы клонируете репо, а затем связываете index.Rmd в R studio, он должен скомпилировать разреженный (игнорировать весь пустой начальный материал), но закончить тезис с двумя главами (вступление и заключение). В настоящее время, если я добавлю следующий необработанный LaTeX к вершине 02-conclusion.Rmd, а затем свяжу index.Rmd, он скомпилирует тезис только с главой 1:

\cleartoevenpage
\pagestyle{empty}

\noindent
The following publication has been incorporated as Chapter \ref{chapter-label}.

\noindent
\fullcite{CitationKey}

\begin{table}[h]
    \centering
    \begin{tabular}{clr}
        \toprule
        Contributor & Statement of contribution & \% \\
        \midrule
        \textbf{Your Name}  & writing of text           & 70\\
                            & proof-reading             & 60 \\
                            & theoretical derivations   & 70\\
                            & numerical calculations    & 100\\
                            & preparation of figures    & 80 \\
                            & initial concept           & 10 \\
        \midrule
        Co-author 1         & writing of text           & 20\\
                            & proof-reading             & 10 \\
                            & supervision, guidance     & 20\\
                            & theoretical derivations   & 10\\
                            & preparation of figures    & 20 \\
                            & initial concept           & 10 \\
        \midrule
        Final Author        & writing of text           & 10\\
                            & proof-reading             & 30 \\
                            & supervision, guidance     & 80 \\
                            & theoretical derivations   & 20 \\
                            & preparation of figures    & 10 \\
                            & initial concept           & 80 \\
        \bottomrule
    \end{tabular}
\end{table}

If your task breakdown requires further clarification, do so here. Do not exceed a single page.

Однако это станет еще более странным. Это не проблема необработанного LaTeX или таблиц. Во-первых, если я вяжу напрямую с главы (т.е. открою 02-conclusion.Rmd в R Studio и нажму вязать там), он скомпилирует полный тезис из двух глав с таблицей, как и предполагалось. (Это не вариант в моей настоящей диссертации, так как мне нужно включить эту таблицу для нескольких глав)

Во-вторых, не все таблицы ломаются. В частности, все работает нормально с более короткими таблицами. Если я заменю таблицу в приведенном выше коде только первыми 6 строками, то есть:

\begin{table}[h]
    \centering
    \begin{tabular}{clr}
        \toprule
        Contributor & Statement of contribution & \% \\
        \midrule
        \textbf{Your Name}& writing of text & 70\\
                          & proof-reading   & 60 \\
                          & theoretical derivations & 70\\
                          & numerical calculations  & 100\\
                          & preparation of figures  & 80 \\
                          & initial concept         & 10 \\
        \bottomrule
    \end{tabular}
\end{table}

... тогда это тоже хорошо компилируется. Если я добавлю еще одну строку в таблицу, она снова пропустит главу.

Чтобы разработать этот шаблон, потребовалось огромное количество усилий и устранения неполадок, но все равно не могу, хоть убей, объяснить это странное поведение. Я не понимаю, почему одна короткая таблица работает нормально, но тогда при кажущейся произвольной длине Pando c и / или Bookdown очевидно решат, что главы не существует. Я также не могу найти где-либо описания подобного поведения. Был бы очень благодарен за любые подсказки относительно того, что происходит!

FWIW, я использую:

  • Ma c OS 12.15 (Catalina)
  • R 3.6.2
  • Pando c 2.3.1
  • rmarkdown 2.1
  • bookdown 0.19

PS Извините за длинную рецензию и репозиторий Github. Я не знал, как еще сделать проблему воспроизводимой.

...