我正在尝试制作一个部分模仿 macOS 的 Calendar.app“列表”打印格式的输出的文档,它看起来像这样:
我感兴趣的部分是将列分隔线与水平线连接起来。页面底部也发生了类似的情况。
(请注意,虽然这看起来有点像表格,但在我的应用程序中,每个标题下会有不同数量的文本。)
这是我迄今为止的尝试:
\documentclass[12pt]{article}
\usepackage[vmargin=0.5in, hmargin=0.25in, footskip=0.25in]{geometry}
\usepackage{microtype}
\usepackage{multicolrule}
\SetMCRule{width=0.4pt, line-style=solid, extend-fill, extend-top=1ex}
%\setlength{\multicolsep}{0pt}
\usepackage{lastpage}
\usepackage{fancyhdr}
\fancyhead[L,C,R]{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[L,C]{}
\fancyfoot[R]{\footnotesize Page \thepage/\pageref{LastPage}}
\renewcommand{\footrulewidth}{0.4pt}
\pagestyle{fancy}
\renewcommand{\familydefault}{\sfdefault}
\setlength{\parindent}{0pt}
\begin{document}
{\LARGE\bfseries Header}
%\rule[-2.5pt]{\textwidth}{0.4pt}
\rule{\textwidth}{0.4pt}
\begin{multicols*}{2}
{\Large\bfseries Section Head}\\\smallskip
\textbf{Some details}\\
\textbf{Location:} Other, less important details\\
more less important details\\\smallskip
\textbf{Some details}\\
\textbf{Location:} Other, less important details\\
more less important details\\\smallskip
\hspace{\fill}\rule{0.95\columnwidth}{0.4pt}\hspace{\fill}
{\Large\bfseries Second Section}\\\smallskip
etc.
\end{multicols*}
\end{document}
我使用了multicolrule
的选项extend-fill
将 colseprule 移到页面底部,并使用其extend-top
选项为初始文本留出一些喘息空间。
我曾经\rule
在页面顶部创建规则,并且尝试使用不同的拖拽值来使线条相交,但是当我开始在它们之间进行二进制搜索时1pt
,5pt
我认为这种方法太脆弱了。
对于底部规则,我尝试使用fancyhdr
的脚规则,但不幸的是,除了宽度之外,它没有提供任何配置挂钩。我尝试重新定义排版规则的命令,但再次发现自己采取了我在顶部规则中拒绝的脆弱方法。
有没有更好的方法来实现这一点?
答案1
您可以使用custom-line
选项来multicolrule
绘制水平规则和垂直规则。这需要使用tikz
:
\documentclass[12pt]{article}
\usepackage[vmargin=0.5in, hmargin=0.25in, footskip=0.25in]{geometry}
\usepackage{microtype}
\usepackage[tikz]{multicolrule}
\usetikzlibrary{calc}
\usepackage{lastpage}
\usepackage{fancyhdr}
\fancyhead[L,C,R]{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[L,C]{}
\fancyfoot[R]{\footnotesize Page \thepage/\pageref{LastPage}}
\pagestyle{fancy}
\renewcommand{\familydefault}{\sfdefault}
\setlength{\parindent}{0pt}
\SetMCRule{width=0.4pt, extend-top=2pt, extend-bot=-2pt, custom-line={
\coordinate (TOPLEFT) at ($(TOP)-(\columnwidth+.5\columnsep,\columnseprule)$);
\coordinate (TOPRIGHT) at ($(TOP)+(\columnwidth+.5\columnsep,-\columnseprule)$);
\coordinate (BOTLEFT) at ($(BOT)-(\columnwidth+.5\columnsep,-\columnseprule)$);
\coordinate (BOTRIGHT) at ($(BOT)+(\columnwidth+.5\columnsep,\columnseprule)$);
\draw[line width=\columnseprule] (TOPLEFT) -- (TOPRIGHT)
(TOP) -- (BOT) (BOTLEFT) -- (BOTRIGHT);}}
\begin{document}
{\LARGE\bfseries Header}
\begin{multicols*}{2}
{\Large\bfseries Section Head}\\\smallskip
\textbf{Some details}\\
\textbf{Location:} Other, less important details\\
more less important details\\\smallskip
\textbf{Some details}\\
\textbf{Location:} Other, less important details\\
more less important details\\\smallskip
\hspace{\fill}\rule{0.95\columnwidth}{0.4pt}\hspace{\fill}
{\Large\bfseries Second Section}\\\smallskip
etc.
\end{multicols*}
\end{document}
结果: