我想在新的空白页(没有页眉、页脚和页码)上放置一个横向浮动图形。图形应尽可能宽。标题是否横向并不重要。有什么建议可以实现这一点吗?
\documentclass{scrbook}
\usepackage{lipsum}
\usepackage{pgfplots}
\begin{document}
\lipsum[1]
\begin{figure}
\begin{tikzpicture}
\begin{axis}[width=\linewidth]
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\caption{Dummy caption}
\end{figure}
\lipsum[2]
\end{document}
答案1
您可以尝试这样的事情:
\documentclass{scrbook}
\usepackage{graphicx}
\usepackage{lipsum,atbegshi}
\usepackage{floatpag}
\usepackage{zref-abspage,zref-user}
\AtBeginShipout{\MyShipoutHook}
\makeatletter
\newlength\oripaperwidth
\oripaperwidth\paperwidth
\newcommand\MyShipoutHook{%
\ifnum\c@page=\zref@extractdefault{mylargefigure}{abspage}{0}
\pdfpagewidth=2\paperwidth\relax
\else\pdfpagewidth=\oripaperwidth\relax
\fi}
\makeatother
\begin{document}
\lipsum
\begin{figure}[!p]\zlabel{mylargefigure}
\thisfloatpagestyle{empty}
\linewidth=2.5\linewidth
\rule{\linewidth}{0.9\textheight}
\caption[toc]{\lipsum[1]}
\end{figure}
\lipsum
\lipsum \lipsum
\lipsum \lipsum
\end{document}
答案2
可以改变图形大小/位置的关键因素是
1) 前两个参数\atxy
控制横向页码的 x 和 y 位置。
2)规范的width=
和height=
规范axis
,决定图的大小。
3)图像向下移动的值作为第一个参数\raisebox
\kern
4)将图像左/右移动的最终值。
\documentclass{scrbook}
\usepackage{everypage,pgfplots}
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\atxy[3]{%
\AddThispageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
\raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
\usepackage{pdflscape}
\usepackage{afterpage}
\usepackage{capt-of}% or use the larger `caption` package
\usepackage{lipsum}% dummy text
\begin{document}
\lipsum % Text before
\afterpage{%
\clearpage% Flush earlier floats (otherwise order might not be correct)
\thispagestyle{empty}% empty page style (?)
\atxy{\dimexpr\paperwidth-.3in}{.5\paperheight}{\rotatebox[origin=center]{90}{\thepage}}
\begin{landscape}% Landscape page
\centering % Center table
\setbox2=\vbox{\setbox0=\hbox{%
\begin{tikzpicture}
\begin{axis}[width=1.35\linewidth,height=1.3\textheight]
\addplot {x^2};
\end{axis}
\end{tikzpicture}%
}\ht0=.95\textheight\makebox[\textwidth]{\box0}
\captionof{table}{Table caption}% Add 'table' caption
}\ht2=0pt\makebox[\textwidth]{\smash{\raisebox{-80pt}{\box2\kern75pt}}}
\end{landscape}
\clearpage% Flush page
}
\lipsum % Text after
\end{document}