如何在 n-upping 時自動旋轉 pdflscape 橫向頁面

如何在 n-upping 時自動旋轉 pdflscape 橫向頁面

我用於pdflscapeA5 縱向文件中的橫向頁面。然後我使用以下命令列準備要在 A4 紙上列印的 PDF:

pdftk blank.pdf document.pdf output padded_document.pdf verbose && pdfnup --paper a4paper padded_document.pdf

然而,最終的結果padded_document-nup.pdf是所有橫向頁面仍然是橫向的,相當於 A6 格式,而不是旋轉後的 A5 格式。

有沒有辦法自動旋轉它們,使它們以預期的尺寸顯示?我知道我可以替換pdflscapelscape,但我總是忘記這一點,如果有一個解決方案,不需要每次我想列印時都更改我的文檔,那就太好了。因此,要么是 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}

帶有頁面邊框的四合一(不是理想的無邊框兩合一,但你明白了)看起來像這樣:

3 幅肖像,1 幅風景

什麼應該看起來是這樣的:

4 肖像lscape我通過使用而不是 偽造了最後一個pdflscape

答案1

pdfnup使用pdfjam,而後者又使用 LaTeX 套件pdfpages。後者知道這個選項rotateoversize,從文件

此選項允許旋轉超大頁面。例如,橫向頁面相對於縱向頁面來說尺寸過大,因為它們在不旋轉的情況下與縱向頁面的輪廓不符。預設情況下,超大頁面會縮放且不會旋轉。或truefalse或無值,相當於true)。 (預設: rotateoversize=false)

可以在命令列上為pdfnup或指定此選項pdfjam

$ pdfnup --paper a4paper --rotateoversize true test.pdf

第1頁 第2頁

答案2

你想要這樣的東西嗎?

A4 上 2xA5

\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(輸入文件的一種唯一尺寸)、橫向或縱向(輸入文件的一種方向)轉換為 A4 格式文件,該文件由每頁兩個 A5 合且橫向的頁面組成。

#!/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*

相關內容