Проблема вставки изображения в заголовок - PullRequest
0 голосов
/ 05 ноября 2018

Я пишу отчет, используя несколько файлов R Markdown, и для облегчения их объединения я решил использовать пакет bookdown . Я сталкиваюсь с проблемой вставки логотипа в качестве заголовка с использованием пакета fancyhdr LaTeX, который отлично работал в обычном файле .Rmd.

index.Rmd файл:

---
documentclass: book
classoption: openany
site: bookdown::bookdown_site
subparagraph: true
output:
  bookdown::pdf_book:
    includes:
      in_header: preamble.tex
    toc_depth: 4
    latex_engine: xelatex # to receive Arial as font --> install.packages("xelatex") works for R users
link-citations: yes
fontsize: 12pt
linestretch: 1.25
---

preamble.tex :

\usepackage[german]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{titlesec}
\usepackage{fancyhdr}

\usepackage{fontspec}
\setmainfont{Arial}

\pagestyle{fancy}\setlength\headheight{100pt}
\fancyhead[L]{\includegraphics[width=456px]{INS_logo.png}}
\fancyhead[R]{\includegraphics[width=4.1cm]{shurp-2018-logo-blue-transparent.png}}
\renewcommand{\headrulewidth}{0pt}
\rfoot{Seite \thepage \hspace{1pt} von \pageref{LastPage}}

\geometry{a4paper, total={170mm,257mm}, left=20mm, top=10mm, }

\titleformat{\chapter}
  {\normalfont\LARGE\bfseries}{\thechapter}{1em}{}
\titlespacing*{\chapter}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}

Все работает отлично, за исключением того, что необходимые логотипы не появляются в шапке. Использование того же кода в простом формате pdf_document работает нормально.

Я думаю, это как-то связано с опцией book - кто-нибудь знает здесь больше? Я ознакомился с https://bookdown.org/yihui/bookdown/, их github-repo, а также StackOverflow и документацией по fancyhdr .

my sessioninfo (R Studio 1.2.1070):

R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS  10.14

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.5.1  backports_1.1.2 bookdown_0.7    rprojroot_1.3-2 htmltools_0.3.6 tools_3.5.1     yaml_2.2.0     
 [8] Rcpp_0.12.19.3  rmarkdown_1.10  knitr_1.20      xfun_0.4        digest_0.6.18   evaluate_0.12 

Спасибо за любые предложения.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Edit: Кажется, у меня была какая-то ошибка в системе, несмотря на перезагрузку. Я последовал совету Майкла Харпера, но открыл код в совершенно новом проекте / папке, затем вручную установил титульную страницу documentclass: article. Что осталось: заставить заголовки работать в таблице содержимого и убрать номер страницы (нижний колонтитул, по центру).

Index.Rmd:

---
documentclass: article
classoption: openany
site: bookdown::bookdown_site
fontsize: 12pt
linestretch: 1.25
link-citations: yes
output:
  bookdown::pdf_book:
    includes:
      in_header: preamble.tex
      before_body: before_body.tex
    latex_engine: xelatex
    toc: yes
    toc_depth: 4
subparagraph: yes
---

```{r setup, include=FALSE}
# Create an image to attach
png(filename = "logo.png", width = 200, height = 150, units = "px")
plot(cars)
box('figure', col = 'red')
dev.off()
```

preamble.tex:

% loading necessary LateX-packages
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{fontspec}
\setmainfont{Arial}

% include a fancy header
\pagestyle{fancy}\setlength\headheight{100pt}
\fancyhead[L]{\includegraphics[width=5cm]{logo.png}}
\fancyhead[R]{\includegraphics[width=4.1cm]{logo.png}}
\renewcommand{\headrulewidth}{0pt}
\rfoot{Seite \thepage \hspace{1pt} von \pageref{LastPage}}

% set page geometry
\geometry{a4paper, total={170mm,257mm}, left=20mm, top=40mm}

% make the word "Chapter" disappear - only display the chapters name
\titleformat{\chapter}
{\normalfont\LARGE\bfseries}{\thechapter}{1em}{}
\titlespacing*{\chapter}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}

% Following below
% turns maketitle off, then you can define your own titlepage in before_body.tex
\let\oldmaketitle\maketitle 
\AtBeginDocument{\let\maketitle\relax}

before_body.tex:

% titlepage
\thispagestyle{empty}
\begin{center}
{\Huge A BOOK}
\linebreak
\includegraphics{cover.png}
\linebreak
{\huge by Me}
\end{center}

\let\maketitle\oldmaketitle
\maketitle
0 голосов
/ 05 ноября 2018

Вы уверены, что изображения не сдвигаются с верхней части страницы? Без вашего полного каталога я не смогу воспроизвести вашу проблему, но похоже, что вы не указали достаточно большое значение top в аргументе geometry. Посмотрев документацию к функции geometry LaTeX, вы увидите, что она определяет расстояние между верхней частью тела и краем бумаги, не оставляя места для вашего заголовка.

enter image description here

Вот мой воспроизводимый пример. Он генерирует фиктивный сюжет plot.png, который используется для заполнителя логотипа

index.Rmd

---
documentclass: book
classoption: openany
fontsize: 12pt
linestretch: 1.25
link-citations: yes
output:
  bookdown::pdf_book:
    includes:
      in_header: preamble.tex
    latex_engine: xelatex
    toc_depth: 4
subparagraph: yes
---

```{r setup, include=FALSE}
# Create an image to attach
png(filename = "logo.png", width = 200, height = 150, units = "px")
plot(cars)
box('figure', col = 'red')
dev.off()
```

# Title 1

Text

\newpage

## Section

Text

\newpage

В том же каталоге находится preamble.tex . Обратите внимание на скорректированный аргумент геометрии top=50mm:

\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{fontspec}
\setmainfont{Arial}

\pagestyle{fancy}\setlength\headheight{100pt}
\fancyhead[L]{\includegraphics[width=4cm]{logo.png}}
\fancyhead[R]{\includegraphics[width=4.1cm]{logo.png}}
\renewcommand{\headrulewidth}{0pt}
\rfoot{Seite \thepage \hspace{1pt} von \pageref{LastPage}}

\geometry{a4paper, total={170mm,257mm}, left=20mm, top=50mm}

\titleformat{\chapter}
  {\normalfont\LARGE\bfseries}{\thechapter}{1em}{}
\titlespacing*{\chapter}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...