如何在 `tabular*` 内包装段落?

如何在 `tabular*` 内包装段落?

这是我正在处理的 LaTeX 文档的一部分。

\documentclass{article}

\usepackage[margin=0.25in, noheadfoot, nomarginpar]{geometry}
\usepackage{enumitem}
\usepackage[hidelinks]{hyperref}
\usepackage{fontspec}
\usepackage{multirow}
\usepackage{nopageno}
\usepackage{tabularx}

\setmainfont{Lato Regular}

\begin{document}
    \subsubsection*{\underline{CONTRIBUTIONS}}
    \begin{itemize}[leftmargin=0pt, label={}]
        \item{
            \begin{tabular*}{\linewidth}{l@{\extracolsep{\fill}}r}
                \textbf{\href{https://github.com/NixOS/nixpkgs}{nixpkgs ->}}
                &\textbf{Nix}\\
            \end{tabular*}
        }
    \end{itemize}
\end{document}

它看起来像这样: 无段落

我想到了一种换行文字的方法:

...
\begin{document}
    \subsubsection*{\underline{CONTRIBUTIONS}}
    \begin{itemize}[leftmargin=0pt, label={}]
        \item{
            \begin{tabular*}{\linewidth}{l@{\extracolsep{\fill}}r}
                \textbf{\href{https://github.com/NixOS/nixpkgs}{nixpkgs ->}}
                &\textbf{Nix}\\
                \multicolumn{2}{c}{\parbox{\linewidth}{Nixpkgs is a collection of over 80,000 software packages that can be installed with the Nix package manager. It also implements NixOS, a purely-functional Linux distribution.}}
            \end{tabular*}
        }
    \end{itemize}
\end{document}

它看起来是这样的: 我的解决方案

有没有更好的方法可以做到这一点?我觉得我在这里增加了复杂性。

答案1

有没有更好的方法来做同样的事情?

我建议\multicolumn{2}{p{\linewidth}}{...}在所讨论的段落中使用。我也会设置\tabcolsep为 0pt;如果您不设置\tabcolsep为 0pt,则需要写入\multicolumn{2}{p{\linewidth-2\tabcolsep}}{...}。设置为 0pt 的另一个优点\tabcolsep是表格的左边缘将与子小节级标题的左边缘完美对齐。

你可能会问,为什么不采用这种\parbox方法呢?我想说,因为我们处于一个tabular*可以访问p列类型的结构中,所以没有必要承担由此产生的开销\parbox

另外,该itemize机器似乎被设置为什么都不做 - 参见leftmargin=0pt, label={}- 因此应该被省略,或者至少被注释掉。

最后,我认为这\href{https://github.com/NixOS/nixpkgs}{\textbf{nixpkgs ->}}比更符合地道\textbf{\href{https://github.com/NixOS/nixpkgs}{nixpkgs ->}}

在此处输入图片描述

\documentclass{article}

\usepackage[margin=0.25in, noheadfoot, nomarginpar]{geometry}
\usepackage{enumitem}
\usepackage[hidelinks]{hyperref}
\usepackage{fontspec}
\setmainfont{Lato}

% packages not needed for this example:
%\usepackage{multirow}
%\usepackage{nopageno}
%\usepackage{tabularx}   

\begin{document}
\subsubsection*{\underline{CONTRIBUTIONS}}

%%%%\begin{itemize}[leftmargin=0pt, label={}]
%%%%\item 
\setlength\tabcolsep{0pt} % <-- new
\noindent % <-- new
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}} lr }
   \href{https://github.com/NixOS/nixpkgs}{\textbf{nixpkgs ->}}
   &\textbf{Nix}\\
   \multicolumn{2}{p{\linewidth}}{Nixpkgs is a collection of 
     over 80,000 software packages that can be installed with 
     the Nix package manager. It also implements NixOS, a 
     purely-functional Linux distribution.}
\end{tabular*}

%%%%\end{itemize}
\end{document}

相关内容