如何打破底部边缘?

如何打破底部边缘?

我需要在页面底部写一段文字,超出边距。在下面的例子中,即使使用 Latex 的标准边距,底部的文字也应与边框保持 0.5 厘米的距离。我只需要在一页和一行中使用它。

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage[bottom=0.5cm]{geometry}
\usepackage{showframe}
\thispagestyle{empty}

\begin{document}
\lipsum[1-4]
\vfill
{\scriptsize \noindent \lipsum[1][1-2]} 
\end{document} 

答案1

xcoffins是一个模拟布局程序的软件包。您可以将内容放入框中,并以各种方式将它们拼接在一起,并根据需要添加垂直和水平偏移。

然后将结果(其本身是一个文本对象)写入当前插入点(在此示例中,位于页面的开头,之前)\lipsum[1-4]

\Framex充当框架,\Textx使用相对位置拾取和放置另一个框。使用 (X= 0pt, Y= -709pt+5mm) 将其放置在距页面底部 5mm 的位置

可以计算插入点和页面底部之间的距离,但由于是一次性事件,因此更容易手动调整 Y 偏移直到获得所需的结果。

我没有使用几何图形来表明内容可以放置在文档边距之外的任何位置。使用 Y = -709pt 您将触及页面底部。

因此,如果您想要精确地高出 0.5cm,请使用包 calc 并将 -709pt + 0.5cm 作为 Y 偏移量。

为了准确计算 Y 位移,需要从“\paperheight”中减去几个长度,然后加上 0.5 毫米。

这是在注释的第二个中完成的\Join。正如我所说,手动执行此操作更快,因为你将在布局程序的 GUI 中执行此操作。

負責

这是代码:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
%\usepackage[bottom=5mm]{geometry} % not used
\usepackage{showframe}
    
\usepackage{calc}   %added  
\usepackage{xcoffins} %added

\NewCoffin\Framex
\NewCoffin\Textx

\thispagestyle{empty}

\begin{document}        

\SetVerticalCoffin\Textx{\textwidth}{% a box of width= \textwidth
\scriptsize \noindent \lipsum[1][1-2]}  

\JoinCoffins*\Framex[l,t]\Textx[l,b](0pt,-709pt+5mm) % X and Y offset manually done

%\JoinCoffins*\Framex[l,t]\Textx[l,b](0pt,-\paperheight+\topskip+\headheight+\headsep+\topmargin+1.0in+5mm) % Y offset calculated

\noindent\TypesetCoffin\Framex  \vspace*{-\baselineskip} % typeset the text at the bottom of the page + 5mm up
    
\lipsum[1-4]

\end{document} 

使用以下方法可以获得类似的结果eso-pic

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
%\usepackage{geometry} % not used
\usepackage{showframe}

\thispagestyle{empty}
    
\usepackage{eso-pic}

\begin{document}
\AddToShipoutPicture*{%
\AtPageLowerLeft{%      
    \put(125.3,15){\parbox{\textwidth}{\scriptsize \noindent \lipsum[1][1-2]}}%
}%
}           
        
\lipsum[1-14]   
\end{document} 

答案2

对我来说,这看起来像是一种特殊的页面样式,确实可以使用页面样式来实现结果。下面使用包scrlayer-scrpage。它这样做

  1. 复制empty页面样式,可以是任何其他样式,具体取决于您的需要。
  2. 定义一个层,将所需的文本放置在所需的位置。
  3. 将新图层添加到复制的页面样式
  4. 在页面上应有的位置设置所需的页面样式。

(当然,新的页面样式可以多次使用……)

完整代码如下:

\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage[showframe]{geometry}

\usepackage{scrlayer-scrpage}
\DeclarePageStyleAlias{special}{empty}
\DeclareNewLayer[
  textarea ,
  align = b ,
  voffset = \paperheight-5mm ,
  contents = {\scriptsize\noindent\lipsum[1][1-2]}
  ]{specialfooter}
\AddLayersToPageStyle{special}{specialfooter}

\pagestyle{plain}

\begin{document}

\thispagestyle{special}
\lipsum[1-13]

\end{document}

在此处输入图片描述

相关内容