![如何减少自定义列表环境中列之间的水平间距?](https://linux22.com/image/440055/%E5%A6%82%E4%BD%95%E5%87%8F%E5%B0%91%E8%87%AA%E5%AE%9A%E4%B9%89%E5%88%97%E8%A1%A8%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%88%97%E4%B9%8B%E9%97%B4%E7%9A%84%E6%B0%B4%E5%B9%B3%E9%97%B4%E8%B7%9D%EF%BC%9F.png)
我正在调整我的简历,并定义自定义列表环境。考虑以下 MWE:
\documentclass{article}
\usepackage{ragged2e}
\pagestyle{empty}
\setlength{\tabcolsep}{0pt}
\newenvironment{entrylist}{%
\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}rl}
}{%
\end{tabular*}
}
\renewcommand{\bfseries}{}
\newcommand{\entry}[4]{%
#1&\parbox[t]{10.00cm}{\strut%
\textbf{#2}%
\hfill%
{\footnotesize #3\par}%no!\\%
#4\vspace{\parsep}%
}\\}
\begin{document}
\begin{entrylist}
\entry
{Office}
{A very fancy building in a very fancy place}
{}
{}
\entry
{Website}
{www.somename.com}
{}
{}
\entry
{Email}
{somename a aaa}
{}
{}
\entry
{Phone}
{+00 0000 000000}
{}
{}
\end{entrylist}
\end{document}
MWE 生成以下输出:
我遇到的唯一问题是左右列之间的空白量。我需要减少两列之间的间距,但不影响 中指定的 10cm 长度#1&\parbox[t]{10.00cm}{\strut%
或 中指定的文本宽度\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}rl}
。本质上,我只需要让左列更靠近右列。有人能帮我减少两列之间的空白吗?
编辑
看到这些评论后,我意识到我的问题可能措辞不清楚,所以让我再试一次。在我的文档中,我调用了几个entrylists
。我需要所有这些entrylists
来满足两个条件:
(1)左右列之间间隔相同、合理;
(2)列之间的空白处要水平对齐。
我似乎无法同时实现 (1) 和 (2)。要么我让右列和左列之间有合理的间隔,要么让右列正确对齐entrylists
。但是,无论我怎么尝试,我似乎都无法同时实现 (1) 和 (2)。
我在这里说明为什么 David Carlisle 的答案实现了 (1) 但没有实现 (2)。David 在他的回答中建议:
\documentclass{article}
\usepackage{ragged2e}
\pagestyle{empty}
\newenvironment{entrylist}{%
\noindent
\begin{tabular}{@{}rl}
}{%
\end{tabular}
}
\renewcommand{\bfseries}{}
\newcommand{\entry}[4]{%
#1&\parbox[t]{10.00cm}{\strut%
\textbf{#2}%
\hfill%
{\footnotesize #3\par}%no!\\%
#4\vspace{\parsep}%
}\\}
\begin{document}
\begin{entrylist}
\entry
{Office}
{A very fancy building in a very fancy place}
{}
{}
\entry
{Website}
{www.somename.com}
{}
{}
\entry
{Email}
{somename a aaa}
{}
{}
\entry
{Phone}
{+00 0000 000000}
{}
{}
\end{entrylist}
\begin{entrylist}
\entry
{Longer name}
{A very fancy building in a very fancy place}
{}
{}
\entry
{Much much longer name}
{www.somename.com}
{}
{}
\entry
{Email}
{somename a aaa}
{}
{}
\entry
{Phone}
{+00 0000 000000}
{}
{}
\end{entrylist}
\end{document}
生成的输出满足 (1) 但不满足 (2),因为第一个环境中的列分隔与第二个环境中的列分隔不对齐。查看输出:
我真的很抱歉,因为从一开始我就没有更好地措辞我的问题——这是我的错。
感谢大家的时间。
编辑现在,我将展示 Bernard 的答案如何实现所需的输出,但会改变章节标题前的间距。他建议使用类似
\documentclass{article}
\usepackage{ragged2e}
\usepackage{eqparbox}
\pagestyle{empty}
\newenvironment{entrylist}{%
\noindent
\begin{tabular*}{\textwidth}{@{}r@{\enspace}l@{}}
}{%
\end{tabular*}
}
\renewcommand{\bfseries}{}
\newcommand{\entry}[4]{%
\eqmakebox[H][r]{#1}&\parbox[t]{10.00cm}{\strut%
\textbf{#2}%
\hfill%
{\footnotesize #3\par}%no!\\%
#4\vspace{\parsep}%
}\\}
\begin{document}
\begin{entrylist}
\entry
{Office}
{A very fancy building in a very fancy place}
{}
{}
\entry
{Website}
{www.somename.com}
{}
{}
\entry
{Email}
{somename a aaa}
{}
{}
\entry
{Phone}
{+00 0000 000000}
{}
{}
\end{entrylist}
\section*{Whatever fancy title you can think of}
\begin{entrylist}
\entry
{Longer name}
{A very fancy building in a very fancy place}
{}
{}
\entry
{Much much longer name}
{www.somename.com}
{}
{}
\entry
{Email}
{somename a aaa}
{}
{}
\entry
{Phone}
{+00 0000 000000}
{}
{}
\end{entrylist}
\end{document}
输出如下:
与原始代码相比,您可以检查字幕是否较低:
我不知道为什么伯纳德的回答会降低标题,但我怀疑这可能与包裹有关eqparbox
。
答案1
答案2
这是一个可能的解决方案,带有eqparbox
和不带有 的表格前言@\extracolsep
。但是我认为,关于可能的分页符,最简单的解决方案是使用 定义自定义描述环境enumitem
。\documentclass{article}
\usepackage{ragged2e}
\usepackage{eqparbox}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.2pt}
\pagestyle{empty}
\newenvironment{entrylist}{%
\noindent
\begin{tabular*}{\textwidth}{@{}r@{\enspace}l@{}}
}{%
\end{tabular*}
}
\renewcommand{\bfseries}{}
\newcommand{\entry}[4]{%
\eqmakebox[H][r]{#1}&\parbox[t]{10.00cm}{\strut%
\textbf{#2}%
\hfill%
{\footnotesize #3\par}%no!\\%
#4\vspace{\parsep}%
}\\}
\begin{document}
\begin{entrylist}
\entry
{Office}
{A very fancy building in a very fancy place}
{}
{}
\entry
{Website}
{www.somename.com}
{}
{}
\entry
{Email}
{somename a aaa}
{}
{}
\entry
{Phone}
{+00 0000 000000}
{}
{}
\end{entrylist}
\end{document}