
Ich verwende pdflscape
für meine Querformatseiten ein A5-Hochformatdokument. Anschließend verwende ich die folgende Befehlszeile, um das PDF für den Ausdruck auf A4-Papier vorzubereiten:
pdftk blank.pdf document.pdf output padded_document.pdf verbose && pdfnup --paper a4paper padded_document.pdf
Im resultierenden Format padded_document-nup.pdf
sind jedoch alle Querformatseiten noch immer im Querformat, was einem A6-Format entspricht, anstatt sie gedreht und im A5-Format zu haben.
Gibt es eine Möglichkeit, sie automatisch zu drehen, damit sie in der gewünschten Größe erscheinen? Ich weiß, ich könnte sie pdflscape
durch ersetzen lscape
, aber das vergesse ich ständig und es wäre schön, eine Lösung zu haben, bei der ich mein Dokument nicht jedes Mal ändern muss, wenn ich es drucken möchte. Also entweder ein cleverer Trick im PDF oder etwas, das ich in meine Befehlszeile einfügen kann.
\documentclass[a5paper]{article}
\usepackage{mwe}
\usepackage{pdflscape}
\begin{document}
\blindtext\blindtext
\begin{landscape}
\thispagestyle{empty}
\begin{figure}
\includegraphics[width=\linewidth]{example-image-a}
\caption{Landscape figure}
\end{figure}
\end{landscape}
\blindtext\blindtext
\blindtext\blindtext
\end{document}
Das sieht im 4-up-Format mit Seitenrändern (nicht im gewünschten 2-up-Format ohne Ränder, aber Sie verstehen, was ich meine) folgendermaßen aus:
Was essollensieht so aus:
Ich habe das Letzte vorgetäuscht, indem ich einfach
lscape
anstelle von verwendet habe pdflscape
.
Antwort1
pdfnup
verwendet pdfjam
, welches wiederum das LaTeX-Paket verwendet pdfpages
. Letzteres kennt die Option rotateoversize
, aus demDokumentation:
Mit dieser Option können übergroße Seiten gedreht werden. Seiten im Querformat sind beispielsweise im Vergleich zu ihren Hochformat-Gegenstücken übergroß, da sie ohne Drehung nicht in die Kontur einer Hochformatseite passen. Standardmäßig werden übergroße Seiten skaliert und nicht gedreht. Entweder
true
oderfalse
(oder kein Wert, was äquivalent zu isttrue
). (Standard:rotateoversize=false
)
Diese Option kann in der Befehlszeile für pdfnup
oder angegeben werden pdfjam
:
$ pdfnup --paper a4paper --rotateoversize true test.pdf
Antwort2
Willst du so etwas?
\documentclass[a5paper]{article}
\usepackage{mwe}
\usepackage{pdflscape}
\usepackage{pgfpages}
\pgfpagesdeclarelayout{my 2up}
{
\def\pgfpageoptionborder{0pt}
}
{
\pgfpagesphysicalpageoptions
{%
logical pages=2,%
physical height=\paperwidth,%
physical width=\paperheight,%
}
\pgfpageslogicalpageoptions{1}
{%
resized width=.5\pgfphysicalwidth,%
resized height=\pgfphysicalheight,%
center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}%
}%
\pgfpageslogicalpageoptions{2}
{%
resized width=.5\pgfphysicalwidth,%
resized height=\pgfphysicalheight,%
center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}%
}%
}
\pgfpagesuselayout{my 2up}[a4paper]
\begin{document}
\blindtext\blindtext
\begin{landscape}
\thispagestyle{empty}
\begin{figure}
\includegraphics[width=\linewidth]{example-image-a}
\caption{Landscape figure}
\end{figure}
\end{landscape}
\blindtext\blindtext
\blindtext\blindtext
\end{document}
Antwort3
Ich hoffe, dass dies nützlicher ist als das andere. Sie können A4 oder A5 (eine eindeutige Größe für die Eingabedatei), Quer- oder Hochformat (eine Ausrichtung für die Eingabedatei) in eine Datei im A4-Format konvertieren, die aus zwei zusammengefügten und querformatigen A5-Seiten pro Seite besteht.
#!/bin/bash
IFS='
'
FILE_EXT=$(echo "$1" | cut -f2 -d '.')
# Vérifier si fichier pdf
if [ "$FILE_EXT" != pdf ]
then
echo "Attention, le fichier $1 n'est pas un fichier .pdf"
exit
fi
FILE_NAME=$(echo "$1" | cut -f1 -d '.')
# Détecter la présence du fichier en .pdf
if [ ! -e "./$FILE_NAME.pdf" ]
then
echo "Attention, le fichier $FILE_NAME.pdf n'existe pas"
exit
fi
X=$(pdfinfo $FILE_NAME.pdf | grep 'Page rot:' | cut -d":" -f2)
if [ $X -eq 0 ] || [ $X -eq 180 ] ;
then echo "portrait"
pdftk $FILE_NAME.pdf cat 1-endright output sortie-0.pdf
else echo "landscape"
cp $FILE_NAME.pdf sortie-0.pdf
fi
echo '\documentclass[a4paper]{article}' > sortie-1.tex
echo '\usepackage{pdfpages}' >> sortie-1.tex
echo '\begin{document}' >> sortie-1.tex
echo "\includepdf[pages=-,nup=1x2]{sortie-0.pdf}" >> sortie-1.tex
echo '\end{document}' >> sortie-1.tex
pdflatex sortie-1.tex
mv sortie-1.pdf "${FILE_NAME}-Sortie.pdf"
rm sortie-*
Antwort4
Wenn es mit lscape
dem Drucken funktioniert, warum verwenden Sie dann nicht ein solches Skript für die Druckversion:
#!/bin/bash
IFS='
'
cat $1 | sed "s/pdflscape/lscape/g" > Sortie-0.tex
pdflatex Sortie-0.tex
pdfnup --paper a4paper Sortie-0.pdf -o Sortie-1.pdf
rm Sortie-0*