2013-05-09 13 views
5

Chciałbym użyć knitr do tworzenia dokumentów w formacie PDF, z których przykładowy kod może być czysto wycięty i wklejony, ale wydaje się, że nie jest w stanie.Tworzenie bloków kodu knitr bardziej czysto cut-and-pastable

Przykład problemów uruchomić pod:

The knitr manual pdf zawiera ten blok kodu (P.3):

## option tidy=TRUE 
for (k in 1:10) { 
j <- cos(sin(k) * kˆ2) + 3 
print(j - 5) 
} 

podczas kopiowania z PDF i wklejony do R (lub SO lub itd.), to daje:

## option tidy=TRUE 
for (k in 1:10) f j <- cos(sin(k) * kˆ2) + 3 
print(j - 5) 
g 

Zobacz jak dwie pierwsze linie kodu łączy się na jednym, a co gorsza, { i } zostaną przekonwertowane na f i g?

Moje pytania:

Po pierwsze, myślę, że jest to coś przeżyć innych ludzi? Czy dzieje się to tylko w systemie Windows lub w innym miejscu?

Jeśli to nie tylko ja, czy jest jakiś łatwy sposób obejścia tego problemu? Czy podczas kompilowania pliku *.tex przy użyciu innej czcionki można uzyskać łatwiejszy do skopiowania i wklejenia dokument *.pdf?

(FWIW, gdybym zamiast używać minted aby podświetlić mojego kodu R, nie mam żadnej z tych samych problemów, więc wiem, że to możliwie dostać tego prawa).

+0

(teraz widzę, że ta potęga * * być bardziej właściwe pytanie do tex.stackexchange będzie tu zostawić, chociaż, ponieważ wydaje się możliwe, że R knitr za kod jest przyczyną tego zachowania pokazanego powyżej.) –

+0

Doświadczyłem tego samego na moim macu. Myślę, że może to również zależeć od edytora tekstu, do którego wklejasz. – Carson

+0

@Carson - Dziękujemy za potwierdzenie! Wklejanie do plików Emacs, WinEdt, NotePad i TextPad również kończy się niepowodzeniem. Wklejenie do WordPPada tworzy nawiasy, ale wyglądają dziwnie. Podejrzewam, że nawiasy w pliku pdf nie są reprezentowane jako znaki ASCII, ale jako znaki w niektórych innych kodowaniach innych niż ASCII, które rozumie tylko niektóre edytory tekstu. –

Odpowiedz

8

podstawie wskazówek w this question and its accepted answer, Zauważyłem, że używanie pakietu LaTeX fontenc do ustawienia kodowania czcionek na T1 rozwiązuje zgłoszone powyżej problemy. (See also here) dla wyjaśnienia, dlaczego używanie T1 jest mniej lub bardziej oficjalnie zalecaną najlepszą praktyką dla wszelkiego rodzaju dokumentów LaTeX. Ulepszone kopiowanie i udoskonalanie jest jednym z kilku ważnych powodów odnotowanych pod tym linkiem.)

Oto, co początek preambuły w stałej dokumentu wygląda następująco:.

\documentclass[a4paper]{article} 
\usepackage[T1]{fontenc} 
+0

hmm ... Nie wiedziałem o tym, chociaż mam '\ usepackage [T1] {fontenc}' w knitr-manual.Rnw, który został dodany automatycznie przez LyX :) –

+0

@Yihui - Interesujące. Sądzę, że to jeszcze jeden dowód na to, że jest to dobre domyślne kodowanie. –

Powiązane problemy