TeX中修改minipage一例

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Q: 如何使twoside的book在奇数页的右侧和偶数页的左侧留出一段margin,而且这段margin上面也有页眉线,并且用小页(minipage)可以设为占用整个textwidth + margin,即超出正文的左侧或右侧?

A: 在奇数页的右侧和偶数页的左侧留出margin,这个比较简单

按照《TeX中修改文本尺寸的问题》修改\oddsidemargin和\evensidemargin就可以了

页眉线的问题可以使用fancyhdr宏包,然后在导言区加上

\addtolength{\headwidth}{2cm} %2cm为margin宽度

关于minipage的问题,我定义了一个命令\preminipage

\def\preminipage{%

\ifodd\thepage

\else

\hspace{-2.54cm}

\fi

\noindent}%

然后在正文中调用\begin{minipage}{\headwidth}...\end{minipage}之前先调用一下\preminipage

但是,这种方法存在一个bug:当有些minipage需要重新开一页时,就会出现奇偶页判断错误的现象,这种情况下只能在\preminipage之前手动加上\newpage

为了解决这个bug,我借用\pageref命令的定义进行改装,重新完善了\preminipage

\makeatletter

\def\@set@ref#1#2#3{%

\ifx#1\relax

\thepage

\else

\expandafter#2#1\null

\fi}

\def\page@ref#1{\expandafter\@set@ref\csname r@#1\endcsname

\@secondoftwo{#1}}

\def\preminipage#1{%

\ifodd\page@ref{#1}

\else

\hspace{-2.54cm}

\fi%

\noindent}

\makeatother

使用方法:

\preminipage{aa}\begin{minipage}{\headwidth}\label{aa}...\end{minipage}

注意事项: 由于交叉引用的原因,所以需编译两次后才能正常使用

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航