Wstawianie pliku PDF w lateksie


500

Próbuję wstawić plik PDF lub dokument jako dodatek do mojego pliku Latex. Czy wiesz jak to zrobić?


12
Po prostu dołączasz pdf, czy chcesz osadzić go jak obrazek?
zdav

8
Uwaga dla każdego, kto myśli o zasugerowaniu migracji tego pliku do text.stackexchange - nie możemy. Jest od 2010 roku, co sprawia, że ​​migracja jest zdecydowanie za stara.
ChrisF


Odpowiedzi:


718

Skorzystaj z pdfpagespakietu.

\usepackage{pdfpages}

Aby dołączyć wszystkie strony do pliku PDF:

\includepdf[pages=-]{myfile.pdf}

Aby dołączyć tylko pierwszą stronę pliku PDF:

\includepdf[pages={1}]{myfile.pdf}

Uruchom texdoc pdfpagesw powłoce, aby zobaczyć pełną instrukcję obsługi pdfpages.


158
Aby być jasnym, musisz określić strony, które chcesz dołączyć, tj. \includepdf[pages={1,3,5}]{myfile.pdf}Zawierać strony 1, 3 i 5 pliku. Aby dołączyć cały plik, określasz pages={-}, gdzie {-}jest zakres bez określonych punktów końcowych, który jest domyślny odpowiednio dla pierwszej i ostatniej strony.
rcollyer

38
Dwie pierwsze rzeczy, które musiałem zrobić, to skalowanie i ponowne włączenie projektu strony zewnętrznej (aby ponownie wyświetlić numery stron), które można ustawić za pomocą konfiguracji, np .:\includepdf[pages=-,scale=.8,pagecommand={}]{file}
LeoR

4
wydaje się, że nie działa z latarką; oto jak to zrobić za pomocą beamera: tex.stackexchange.com/questions/57441/…
thias

2
Opcja przesunięcia jest przydatna\includepdf[page={-},offset=<offset in x>mm <offset in y>mm]{myfile.pdf}
Katu

1
@Kusavil z (docs) [ mirrors.sorengard.com/ctan/macros/latex/contrib/pdfpages/… , możesz określić zakresy, np. Jeśli chcesz usunąć stronę 49 ze 100, możesz użyć pages={1-48,50-100}. Nie tak proste, jak powiedzenie czegoś pages={!49}, ale nie tak uciążliwe.
kolekcjoner

82

Aby umieścić cały plik pdf w swoim pliku, a nie tylko 1 stronę, użyj:

\usepackage{pdfpages}

\includepdf[pages=-]{myfile.pdf}

2
możesz po prostu użyć \ inclepdf {mój_plik.pdf}
Jorge Fernández

@CroCo tak, z jakiegoś powodu czasami to działa, a czasem nie, przepraszam, że cię wprowadzam w błąd :(
Jorge Fernández

39
\includegraphics{myfig.pdf}

3
tak, wiem jak dołączyć rysunek.pdf, ale plik, który muszę dołączyć, ma więcej niż 1 stronę.
Guido

10
Cześć, Dagray, twoją odpowiedzią mogło być to, czego szukał Guido, ale nawet napisanie małego fragmentu kodu bez dalszych wyjaśnień jest nieprzydatne.
LeoR,

@LeoR Nie zgadzam się. Pytanie brzmi: „jak wstawić pdf do lateksu?” odpowiedzią jest, co napisał Dagray. Pytanie nie brzmi „jak wstawić pdf do lateksu i czy możesz wyjaśnić, jak to działa”. W tej odpowiedzi jest wystarczająco dużo informacji, aby samodzielnie znaleźć resztę.
Automatico

1
Jednak pytanie wyraźnie deklaruje, że jest to DOC / PDF dla dodatku, więc prawdopodobnie nie ma jednej strony.
igorsantos07,

1
Uwaga: \usepackage{graphicx}aby móc korzystać z tego polecenia, wymagany jest a
anroesti

20

Nie sądzę, by byłby to automatyczny sposób. Możesz również chcieć poprawnie dodać numer strony do dodatku. Zakładając, że masz już dokument pdf z kilku stron, najpierw musisz wyodrębnić każdą stronę dokumentu PDF za pomocą Adobe Acrobat Professional i zapisać każdą z nich jako osobny plik pdf. Następnie musisz dołączyć każdy dokument pdf jako obraz na każdej stronie (1 na każdej stronie) i użyć nowej strony między każdą stroną e, g,

\appendix
\section{Quiz 1}\label{sec:Quiz}
\begin{figure}[htp] \centering{
\includegraphics[scale=0.82]{quizz.pdf}}
\caption{Experiment 1}
\end{figure}  

\newpage
\section{Sample paper}\label{sec:Sample}
\begin{figure}[htp] \centering{
\includegraphics[scale=0.75]{sampaper.pdf}}
\caption{Experiment 2}
\end{figure}

Teraz na każdej stronie pojawi się 1 obraz pdf na stronę, a na dole będzie prawidłowy numer strony. Jak pokazano w moim przykładzie, będziesz musiał trochę zagrać ze współczynnikiem skali dla każdego obrazu, aby uzyskać odpowiedni rozmiar, który zmieści się na jednej stronie. Mam nadzieję, że pomoże ...


1
Pytanie dotyczyło wstawienia całych stron, a nie sposobu, w jaki należy zawrzeć zawartość pliku pdf na istniejącej stronie, która w innym przypadku byłaby sformatowana i wygenerowana przez lateks.
Mayer Goldberg,

7

Istnieje opcja bez dodatkowych pakietów, która działa pod pdflatex

Dostosuj ten kod

\begin{figure}[h]
    \centering
    \includegraphics[width=\ScaleIfNeeded]{figuras/diagrama-spearman.pdf}
    \caption{Schematical view of Spearman's theory.}
\end{figure}

„diagrama-spearman.pdf” to wykres generowany za pomocą TikZ i to jest kod (jest to inny plik .tex inny niż plik .tex, w którym chcę wstawić pdf)

\documentclass[border=3mm]{standalone}
\usepackage[applemac]{inputenc}
\usepackage[protrusion=true,expansion=true]{microtype}
\usepackage[bb=lucida,bbscaled=1,cal=boondoxo]{mathalfa}
\usepackage[stdmathitalics=true,math-style=iso,lucidasmallscale=true,romanfamily=bright]{lucimatx}
\usepackage{tikz}
\usetikzlibrary{intersections}
\newcommand{\at}{\makeatletter @\makeatother}

\begin{document}

\begin{tikzpicture}
\tikzset{venn circle/.style={draw,circle,minimum width=5cm,fill=#1,opacity=1}}
\node [venn circle = none, name path=A] (A) at (45:2cm) { };
\node [venn circle = none, name path=B] (B) at (135:2cm) { };
\node [venn circle = none, name path=C] (C) at (225:2cm) { };
\node [venn circle = none, name path=D] (D) at (315:2cm) { };
\node[above right] at (barycentric cs:A=1) {logical}; 
\node[above left] at (barycentric cs:B=1) {mechanical}; 
\node[below left] at (barycentric cs:C=1) {spatial}; 
\node[below right] at (barycentric cs:D=1) {arithmetical}; 
\node at (0,0) {G};    
\end{tikzpicture}

\end{document} 

To jest schemat, który załączyłem

wprowadź opis zdjęcia tutaj


1
Warto wspomnieć, że parametr strony działa również dla argumentu używającego \includegraphics[page=2,width=0.5\textwidth,height = 0.3\textheight]{file.pdf}
grafikix

Myślę, że qn prosi o włączenie wielu stron.
Charles Stewart

5

Ta \includegraphicsfunkcja ma pageopcję wstawiania określonej strony pliku PDF jako wykresu. Domyślna wartość to jedna, ale możesz ją zmienić.

\includegraphics[scale=0.75,page=2]{multipage.pdf}

Możesz znaleźć więcej tutaj .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.