\noindent\begin{minipage}[t]{0.6\linewidth}
Cookie halvah lemon drops sweet roll brownie. Brownie ice cream liquorice 
sweet jujubes cake chocolate wafer. Pie bear claw soufflé wafer toffee 
biscuit lollipop. Sugar plum gingerbread toffee lollipop cake candy icing 
pudding soufflé. Marshmallow jujubes jujubes cake. Bonbon apple pie macaroon 
cake lemon drops tart.
\end{minipage}
\hfill
\begin{minipage}[t]{0.34\linewidth}
\sffamily
Cake dessert apple pie cheesecake donut. Brownie fruitcake candy candy canes 
powder pastry chupa chups macaroon.
\end{minipage}

“……” “这种为难的神情是怎么回事?哦,要有边框装饰的是不是?用 tcolorbox 吧那么~”

\begin{tcolorbox}[sidebyside,righthand width=5cm,sidebyside align=top]
Cookie halvah lemon drops sweet roll brownie. Brownie ice cream liquorice 
sweet jujubes cake chocolate wafer. Pie bear claw soufflé wafer toffee 
biscuit lollipop. Sugar plum gingerbread toffee lollipop cake candy icing 
pudding soufflé. Marshmallow jujubes jujubes cake. Bonbon apple pie macaroon 
cake lemon drops tart.
\tcblower
\sffamily
Cake dessert apple pie cheesecake donut. Brownie fruitcake candy candy canes 
powder pastry chupa chups macaroon.
\end{tcolorbox}

“是很漂亮啦,可是这都不能跨页啊,对吧?minipage 本来就不行跨页,tcolorbox 本来可以用 breakable 参数的,可是这 sidebyside 的就不能了啊。” “……你还是先说清楚,你想要这个效果是什么目的吧?” “是这样的,你看看有些杂志、期刊排版,首页主文只占页宽的70%,作者信息就放在右或左面的空旷处了。可是我看模板里,也没怎么处理主文跨到第二页的临界点啊。” 【作者按:嗯哼这个模板我开发的】“哦~这个看看 .cls 代码就清楚了呗,用 \marginpar 啊,一种眉批备注的概念~作者信息一般都不会太太长,所以 \marginpar 不能跨页不要紧,让主文自己去处理自己就好了~” “\marginpar 啊?这个我以前用过,好像不太好使啊!有时栏宽太窄了,字都掉到页边外沿去了!” “Nonono~ 你一定是没设定 \marginparwidth 吧?既然你要将右边页距加宽了,这也得加宽啊,用 geometry 宏包就是这样:” \usepackage[left=2cm,right=6cm,marginparsep=2em, marginparwidth=3.5cm]{geometry}

~\marginpar{\sffamily\raggedright Cake dessert apple pie cheesecake donut. 
Brownie fruitcake candy candy canes powder pastry chupa chups macaroon.}
Cookie halvah lemon drops sweet roll brownie. Brownie ice cream liquorice 
sweet jujubes cake chocolate wafer. Pie bear claw soufflé wafer toffee
biscuit lollipop. Sugar plum gingerbread toffee lollipop cake candy icing
pudding soufflé. Marshmallow jujubes jujubes cake. Bonbon apple pie macaroon 
cake lemon drops tart.

“哦哦哦哦~咦,可是如果我想把 \marginpar 放左边呢?我把左右页距对调了,左边空出了一大片,\marginpar 却还挤在右边!” “那好办~给 geometry 加个 reversemarginpar 参数就好~” “哇哇哇…… LaTeX 真是博大精深……那我就再问问,如果想让第二页开始,左右页距都再变回 2cm (就是说不再在左或右边留出空白),行吗?” “你怎么需求还真多啊……自己找找相关的宏包吧,changepage 还是什么的,你学姐老是说我不自己查资料,这不能我一个人被批评!” “好啦好啦……嗯……嗯嗯……哦,哦哦,可以这样再这样这样……咦?…………学兄不行啦你帮我看看啦!我尝试把 afterpagechangepage 结合使用,一点效果都没有!”

\usepackage[left=2cm,right=6cm,....]{geometry}
\usepackage{afterpage,changepage}

% 过了这一页,将右边页距减少4cm(得到总共 6cm 右边页距)
\afterpage{\changetext{}{4cm}{}{}{}}
~\marginpar{\sffamily\raggedright Cake dessert apple pie cheesecake donut. 
Brownie fruitcake candy candy canes powder pastry chupa chups macaroon.}
Cookie halvah lemon drops sweet roll brownie....

“啊哈哈少年,这是经典的概念错误,\afterpage 里的参数都是本地局部范围的,所以 \changetext 的参数出不来的~” “那咋办?” “\changetext 倒是用对了,哎,到了这一步,也只能手动作业了,虽然有点违反我的美学——你得看清了第一页的主文在哪儿结束,然后在那儿把 \changetext指令给加下去,还得加一个 \newpage\clearpage!”

“啊有了有了!!不过,第一页的最后一行就不左右对齐啦?第二页的第一行可以用 \noindent 修正我是知道啦。” “是啦,这样我们还是另外定义一个咒语般的宏好了:

\newcommand{\switchlayout}{%
  {\unskip\parfillskip 0pt\par}%
  \changetext{}{4cm}{}{}{}\noindent \ignorespaces}

然后在刚才同样的地方挪用这个宏~”

“啊,好漂亮!……但那是干嘛的?” “就说了,咒语呗,把这一个段落逼得右边对齐的咒语,你改天再找 The TeX Book 好好读读吧。(读完了给我说一说,我懒得自己读~)” “????……学兄,我可以说您真的帅不过三秒吗,在后辈面前表现得这么慵懒行吗……”

点赞(3)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部