我想绘制一条横跨整个页面的水平线。以前我一直使用这个答案,但我发现它在边距不对称的页面上无法正常工作(例如2in
左边和1in
右边,或反之亦然)。
我确实想出了一种在所有常见情况下都有效的方法,但它有点丑陋:
\noindent\hspace*{-\paperwidth}\makebox[\linewidth]{\rule{4\paperwidth}{2pt}}
你有什么建议吗?
下面是一个可供玩的 MWE。
\documentclass{article}
\usepackage[left=2in,right=1in]{geometry}
% \usepackage[left=1in,right=2in]{geometry}
% \usepackage[left=1in,right=1in]{geometry}
\begin{document}
\noindent\makebox[\linewidth]{\rule{\paperwidth}{2pt}}
% \noindent\hspace*{-\paperwidth}\makebox[\linewidth]{\rule{4\paperwidth}{2pt}}
\end{document}
答案1
此解决方案使用 TikZ。记得运行两次。
\documentclass[10pt,a4paper]{article}
\usepackage[left=2in, right=1in]{geometry}
\usepackage{lipsum}
\usepackage{tikz}
\begin{document}
\lipsum[1]
\begin{tikzpicture}[remember picture, overlay]
\coordinate (baseline) at (0,{0.5\ht\strutbox-0.5\dp\strutbox});
\draw (current page.west |- baseline) -- (current page.east |- baseline);
\end{tikzpicture}
\lipsum[1]
\end{document}
答案2
\documentclass[10pt,a4paper]{article}
\usepackage[left=2in, right=1in]{geometry}
\usepackage{lipsum}
\begin{document}
\newcommand{\dividepage}{%
\par\noindent
\makebox[\linewidth]{\raisebox{.2\baselineskip}{\makebox[2\paperwidth]{\hrulefill}}}%
\par
}
\lipsum[1]
\dividepage
\lipsum[1]
\end{document}