我正在尝试做两件事,但我觉得我对这两件事都使用了错误的工具……:)
- 我需要在顶部边缘处画一条线,下一段应该从下面开始,就像通常那样
- 我想将页面分成两部分并在两部分之间画一条线。线应位于页面顶部边距和底部边距的 50% 处。
我得到了什么:
\documentclass{article}
\usepackage[a6paper,top=1cm,left=1cm, right=1cm, bottom=0cm, showframe]{geometry}
\usepackage[T1]{fontenc}
\setlength{\parindent}{0pt}
\usepackage{calc}
\tolerance=1
\emergencystretch=\maxdimen
\hyphenpenalty=10000
\hbadness=10000
\usepackage[absolute,overlay]{textpos}
\begin{document}
\noindent\makebox[\linewidth]{\raisebox{0.5cm}{\rule{\paperwidth}{0.4pt}}}
\Large{test test test test test test test test test test test test}
\begin{textblock*}{\textwidth}(1cm,0.5\textheight+1cm)
\noindent\makebox[\linewidth]{\rule{\paperwidth}{0.4pt}}
\Large{test test test test test test test test test test test test}
\end{textblock*}
\end{document}
问题在于:
- 我必须使用
\raisebox{0.5cm}
它来实际匹配行和边距 - 我认为是因为\makebox
正在为文本创建框并且行与文本对齐? - 线下方的间距相当大(基本上就像一段文本一样)。
- 下半部分实际上间距正确,但怀疑这是否
\textblock
是实现这一目标的最佳工具。
我该如何改善这种情况?
答案1
您可以将文本设置在两个\parbox
相等的半文本块大小的单独文本中,并在正确的位置添加水平规则作为覆盖(使用eso-pic
):
\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{eso-pic,lipsum}
\begin{document}
\AddToShipoutPictureFG*{%
\AtTextLowerLeft{\hspace*{-1cm}\rule{\paperwidth}{.4pt}}% Bottom line
\AtTextLowerLeft{\hspace*{-1cm}\rule[.5\textheight]{\paperwidth}{.4pt}}% Center line
\AtTextUpperLeft{\hspace*{-1cm}\rule{\paperwidth}{.4pt}}% Top line
}
\noindent\parbox[t][.5\textheight]{\textwidth}{%
\Large\raggedright\strut\lipsum*[1]\strut
}
\noindent\parbox[t][.5\textheight]{\textwidth}{%
\Large\raggedright\strut\lipsum*[2]\strut
}
\end{document}