![如何将一条线拉伸至整个页面宽度](https://linux22.com/image/312562/%E5%A6%82%E4%BD%95%E5%B0%86%E4%B8%80%E6%9D%A1%E7%BA%BF%E6%8B%89%E4%BC%B8%E8%87%B3%E6%95%B4%E4%B8%AA%E9%A1%B5%E9%9D%A2%E5%AE%BD%E5%BA%A6.png)
我想在整个页面宽度上拉伸一条黑线。MWE:
\documentclass[letterpaper]{article}
\usepackage{geometry}
\geometry{top=.0in}
\usepackage{xhfill}
\begin{document}
\makebox[10in][c]{\xrfill{10pt}}
\end{document}
但是,我不知道如何让框从页面的左边缘开始 - 而是从左边距开始,如下所示:
任何帮助都将不胜感激!
答案1
如果左右边距对称,此方法可行。如果不对称,可以增加宽度进行\rule
补偿。
\documentclass[letterpaper]{article}
\usepackage{geometry}
\geometry{top=.0in}
\begin{document}
\noindent\makebox[\textwidth]{\rule{\paperwidth}{10pt}}
\end{document}
答案2
最好为此使用不同的工具:atbegshi
似乎是此应用程序的最佳工具。
\documentclass{article}
\usepackage{atbegshi}
\usepackage{lipsum}
\AtBeginShipoutNext{%
\AtBeginShipoutUpperLeft{%
\put(0,0){\vrule width \paperwidth height 0pt depth 10pt}%
}%
}
\begin{document}
\title{Title}
\author{A. Uthor}
\maketitle
\lipsum
\end{document}
如果您希望所有页面上都有该带,请使用\AtBeginShipout
而不是\AtBeginShipoutNext
。
答案3
使用 TikZ 的简单解决方案。你必须编译两次以使其正确。
\documentclass[letterpaper]{article}
\usepackage{tikz}
\def\UpperPageRule{%
\tikz [remember picture,overlay]%
\fill (current page.north west) rectangle ++(\paperwidth,-10pt);%
}
\begin{document}
\UpperPageRule
\section{First Page}
\newpage
\UpperPageRule
\section{Second Page}
\end{document}