我是一名 Linux 用户,在我的系统中使用以下方式创建横向页面:
\documentclass[twoside,10pt]{article}
\usepackage{lipsum}
\usepackage[top=3cm,bottom=2cm,left=4cm,right=2cm]{geometry}
\usepackage{fancyhdr}
\fancyfoot[OE]{\begin{minipage}{\textwidth}\centering\rule{1pt}{\dimexpr 2cm-10pt}\end{minipage}}
\usepackage{capt-of}
\usepackage{adjustbox}
\newenvironment{myLandscape}
{\clearpage
\pdfpageattr{\the\pdfpageattr/Rotate 90}%
\newgeometry{top=3cm,bottom=2cm,left=4cm,right=2cm}%
\begin{adjustbox}{angle=90}%
\begin{minipage}{\textheight}%
}
{\end{minipage}%
\end{adjustbox}%
\clearpage
\pdfpageattr{\the\pdfpageattr/Rotate 0}%
\restoregeometry
}
\begin{document}
\pagestyle{fancy}
\section{Some Section}
\subsection{Some Subsection}
Some text in portrait here
\lipsum[1]
\begin{myLandscape}
Test Text on Rotated Page.
\begin{center}
\includegraphics[width=10cm]{example-image-a}
\captionof{figure}{A centered 10cm figure}
\end{center}
\end{myLandscape}
Text in next page.
\end{document}
我的问题是,此代码生成的 pdf 无法在 Mac 上打开(也可能在 Windows 操作系统上也无法打开),但会跳过横向页面[由使用“adobe”(或 acrobat 或 adobe acrobat)和“预览”pdf 阅读器的 Mac 朋友测试过]。
我想更改代码并使其适用于所有这些操作系统(Linux、Mac 和 Windows),但我没有 Mac 和 Windows 系统。因此,我希望有人能帮我编译和测试代码,并帮助我完成在任何操作系统上使用它所需的附加功能。
输出:
附言:我了解lscape
和pdflscape
包,但我需要比这些包更多的控制权,并克服他们在边缘等方面的问题。(每个横向页面都必须按照我的方式处于一个环境中,但这对我来说不是问题)
答案1
您正在 pdf 中写入\the \pdfpageattr /Rotate 90
,您必须扩展该值。重置代码是错误的,目标不是添加 /Rotate 0,而是删除 /Rotate 90(这在您的代码中会自动在 \end{myLandscape} 处发生)。
\documentclass[twoside,10pt]{article}
\usepackage{lipsum}
\usepackage[top=3cm,bottom=2cm,left=4cm,right=2cm]{geometry}
\usepackage{fancyhdr}
\fancyfoot[OE]{\begin{minipage}{\textwidth}\centering\rule{1pt}{\dimexpr 2cm-10pt}\end{minipage}}
\usepackage{capt-of}
\usepackage{adjustbox}
\newenvironment{myLandscape}
{\clearpage
\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 90}%
\newgeometry{top=3cm,bottom=2cm,left=4cm,right=2cm}%
\begin{adjustbox}{angle=90}%
\begin{minipage}{\textheight}%
}
{\end{minipage}%
\end{adjustbox}%
\clearpage
\restoregeometry
}
\begin{document}
\pagestyle{fancy}
\section{Some Section}
\subsection{Some Subsection}
Some text in portrait here
\lipsum[1]
\begin{myLandscape}
Test Text on Rotated Page.
\begin{center}
\includegraphics[width=10cm]{example-image-a}
\captionof{figure}{A centered 10cm figure}
\end{center}
\end{myLandscape}
Text in next page.
\end{document}