我想将landscape
一些页面设置为纵向,而将其他页面设置为纵向。每页都是来自的图片metapost
。我在 中进行编译。Google 告诉我使用或lualatex
包来实现横向显示。后面的第一个代码有效。它将第一页设置为横向显示,而将第二页保持完整。lscape
pdflscape
但是,在我的实际情况中 - 第二个代码,每张图片都是从 metapost 代码中提取的,几乎占据一页,第二张图片自动转到下一页(不需要,\clearpage
而且似乎\clearpage
不能包含在 metapost 代码中)。每个开头都定义了一些全局变量,几乎每个图片(页面)都使用它们。因此,只有一个\begin{mplibcode} ... \end{mplibcode}
块包含所有 metapost 代码(所有页面)。如何对第一页进行景观设计?
此代码可以landscape
。
\RequirePackage{luatex85}
\documentclass[a4paper]{article}
\usepackage{luamplib}
\mplibtextextlabel{enable}
% \everymplib{verbatimtex \leavevmode etex; beginfig(1);}
% \everyendmplib{endfig;}
\usepackage{fancyhdr}
\usepackage[lmargin=0.5cm,rmargin=0.5cm,tmargin=0.5cm,bmargin=0.5cm]{geometry}
% \usepackage[lmargin=0.5cm,rmargin=0.6cm,tmargin=1.27cm,bmargin=2.27cm,landscape]{geometry}
\usepackage[sfdefault]{carlito}
\usepackage{pdflscape}
\newcommand{\defaultfontsize}{\fontsize{10pt}{\baselineskip}\selectfont}
\begin{document}\defaultfontsize
\begin{landscape}
\begin{mplibcode}
warningcheck := 0;
input boxes
input moi
beginfig(1)
draw origin -- (25cm,0);
endfig;
\end{mplibcode}
\end{landscape}
\clearpage
\begin{mplibcode}
beginfig(2)
% detail A - apex
draw halfcircle scaled 2cm shifted (0, -50cm);
endfig;
\end{mplibcode}
\end{document}
这是我的真实情况的框架。我该如何获取landscape
第一页?如您所见,图 1 被 包围了\begin{landscape} \end{landscape}
。代码无法编译。
\RequirePackage{luatex85}
\documentclass[a4paper]{article}
\usepackage{luamplib}
\mplibtextextlabel{enable}
% \everymplib{verbatimtex \leavevmode etex; beginfig(1);}
% \everyendmplib{endfig;}
\usepackage{fancyhdr}
\usepackage[lmargin=0.5cm,rmargin=0.5cm,tmargin=0.5cm,bmargin=0.5cm]{geometry}
% \usepackage[lmargin=0.5cm,rmargin=0.6cm,tmargin=1.27cm,bmargin=2.27cm,landscape]{geometry}
\usepackage[sfdefault]{carlito}
\usepackage{pdflscape}
\newcommand{\defaultfontsize}{\fontsize{10pt}{\baselineskip}\selectfont}
\begin{document}\defaultfontsize
\begin{mplibcode}
warningcheck := 0;
input boxes
input moi
% globe variables
numeric d, b, tf, tw, r, scale;
string section_name;
section_name = "180PFC";
d = 180;
b = 75;
tf = 11;
tw = 6;
r = 12;
\begin{landscape}
beginfig(1)
scale = 50;
a very large picture from metapost
endfig;
\end{landscape}
beginfig(2)
% detail A - apex
scale := 5;
another very large picture from metapost
% draw origin -- (d, 0);
endfig;
\end{mplibcode}
\end{document}
答案1
您可以使用块来执行此操作verbatimtex
,如第 2 页所述手册。我擅自简化了上面的第二个(不起作用的)示例,以显示可以做什么。
\documentclass[a4paper]{article}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\usepackage[margin=0.5cm]{geometry}
\usepackage{pdflscape}
\begin{document}
\begin{mplibcode}
% global variables
numeric d, scale;
d = 18;
verbatimtex \begin{landscape} etex
beginfig(1)
scale := 10;
% a very large picture from metapost
draw fullcircle scaled d;
currentpicture := currentpicture scaled scale;
endfig;
verbatimtex \end{landscape} etex
beginfig(2)
scale := 5;
% another very large picture from metapost
draw origin -- (d, 0);
currentpicture := currentpicture scaled scale;
endfig;
\end{mplibcode}
\end{document}
正如文档所解释的那样,如果你将 TeX 标记放在verbatimtex ... etex
紧挨着 之前的块中,则标记将被插入到下一个宏发出的beginfig()
之前。因此,在这个用例中,你会得到类似这样的处理:hbox
endfig
lualatex
...
\begin{landscape}
<hbox produced by first endfig>
\end{landscape}
<hbox produced by second endfig>
...
输出 PDF 如下所示: