
私はpdflscape
A5 縦長文書の横長ページに使用しています。次に、次のコマンド ラインを使用して、PDF を A4 用紙に印刷できるように準備します。
pdftk blank.pdf document.pdf output padded_document.pdf verbose && pdfnup --paper a4paper padded_document.pdf
ただし、結果の ではpadded_document-nup.pdf
、横長のページはすべて回転して A5 になるのではなく、横長のまま A6 形式になります。
自動的に回転させて、意図したサイズで表示されるようにする方法はありますか? を置き換えるpdflscape
ことはできるlscape
とわかっていますが、それを忘れてしまうので、印刷するたびにドキュメントを変更する必要がないソリューションがあれば便利です。つまり、PDF に巧妙なトリックを入れるか、コマンド ラインに何か入れられるものが必要です。
\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}
これは、ページ境界線付きの 4 アップ (境界線なしの 2 アップではありませんが、アイデアはわかります) として次のようになります。
何それすべき次のようになります:
最後のものは、
lscape
の代わりにを使用することで偽装しましたpdflscape
。
答え1
pdfnup
は を使用しpdfjam
、これは LaTeX パッケージを使用しますpdfpages
。後者はrotateoversize
、ドキュメンテーション:
このオプションを使用すると、特大ページを回転できます。たとえば、横長のページは、回転しないと縦長ページの輪郭内に収まらないため、縦長のページに比べてサイズが大きくなります。デフォルトでは、特大ページは拡大縮小され、回転されません。 または
true
(false
または値を指定しない場合は と同等true
)。(デフォルト:rotateoversize=false
)
pdfnup
このオプションは、またはのコマンドラインで指定できますpdfjam
。
$ pdfnup --paper a4paper --rotateoversize true test.pdf
答え2
こんなものがほしいですか?
\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}
答え3
これが他のものよりも便利であることを願っています。A4 または A5 (入力ファイルの 1 つの固有サイズ)、横長または縦長 (入力ファイルの 1 つの方向) を、1 ページあたり 2 つの A5 結合された横長ページで構成される A4 形式のファイルに変換できます。
#!/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-*
答え4
印刷で機能する場合はlscape
、印刷バージョンに次のようなスクリプトを使用してみてはいかがでしょうか。
#!/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*