2015-09-23 13 views
8

Ho ricercato e trovato come creare una filigrana in un documento rmarkdown.Filigrana in rmarkdown

Funziona alla grande sul testo di base, ma quando si dispone di una pagina di trama pesante, viene nascosto dietro la trama.

Ovviamente, questo rende facile per qualcuno screencapare le figure e usarle al di fuori del PDF.

Di seguito è riportato un codice che illustra chiaramente il problema.

--- 
title: "Testing Watermark" 
author: "John" 
date: "September 18, 2015" 
header-includes: 
    - \usepackage{draftwatermark} 
output: 
    pdf_document 
--- 

This is some basic text. 
Note the watermark on this page, and the hidden watermark on the next page. 

\newpage 

\SetWatermarkText{DRAFT} 

```{r echo=FALSE, warning=FALSE, message=FALSE, fig.height=7} 
library(ggplot2) 

ggplot(mtcars) + 
    geom_point(aes(mtcars$mpg, mtcars$cyl)) + 
    facet_wrap(~carb, ncol=1) + 
    theme_bw() 
``` 

Se qualcuno è a conoscenza di una soluzione per questo, sarei grato.

O rendere trasparenti gli sfondi ggplot (che ho provato), o portare la filigrana in primo piano e renderla trasparente sarebbe ok per quanto mi riguarda.

+0

Vedere il pacchetto cowplot. – zx8754

+0

Se hai bisogno di cose stampate come tue, puoi aggiungere del testo di copyright alle trame offensive, che ti proteggeranno dal cappuccio dello schermo. –

+0

[cowplot] (https://cran.r-project.org/web/packages/cowplot/index.html) –

risposta

6

Provare a utilizzare

header-includes: 
    - \usepackage{eso-pic,graphicx,transparent} 

e poi sulla prima pagina del documento (all'interno della parte LaTeX), aggiungere

\AddToShipoutPictureFG{ 
    \AtPageCenter{% or \AtTextCenter 
    \makebox[0pt]{\rotatebox[origin=c]{45}{% 
     \scalebox{5}{\texttransparent{0.3}{DRAFT}}% 
    }} 
    } 
} 

Questo dovrebbe aggiungere un messaggio PROGETTO ruotata (semi-trasparente) in il F ore G rotondo (sopra) della pagina.

+0

Questo è fantastico. Grazie! Solo una domanda Ho semplificato per questo esempio, ma in genere, uso 'in_header: header.tex' per memorizzare i miei tex include e funzioni. Al momento ho solo un '\ blandscape' e' \ elandscape' per iniziare e fermare il panorama. Ho provato ad aggiungere il tuo codice al mio 'header.tex' come una nuova funzione chiamata' \ markasdraft', e funziona, ma ha funzionato solo per una singola pagina. Qualche idea su come far funzionare questo lavoro come una funzione che potrei chiamare con una sola riga? Incollando il mio header.tex nel prossimo commento. –

+0

\ usepackage {lscape} \ usepackage {ESO-pic, graphicx, trasparente} \ newcommand {\ blandscape} { \ begin {paesaggio} \ pagebreak [4] \ globale \ pdfpageattr \ expandafter {\ la \ pdfpageattr/Rotate 90}} \ newcommand {\ elandscape} { \ end {landscape} \ pagebreak [4] \ global \ pdfpageattr \ expandafter {\ the \ pdfpageattr/Rotate 0}} \ newcommand {\ markasdraft} { AddToShipoutPictureFG { \ AtPageCenter {% o \ AtTextCenter \ makebox [0pt] {\ rotatebox [origin = c] {45} {% \ scalebox {5} {\ texttransparent {0,3} {PROGETTO}}% }} } } } –

+0

@JohnTarr: Sembra che manchi un '' \ ''. Con una chiamata a '\ markasdraft', dovrebbe attivare il DRAFT * da quel punto in avanti *. Altrimenti, se lo si desidera solo per una singola pagina, si utilizzerà '\ AddToShipoutPictureFG *' (la versione a stella). – Werner

Problemi correlati