![表格中的不连续边框](https://linux22.com/image/356439/%E8%A1%A8%E6%A0%BC%E4%B8%AD%E7%9A%84%E4%B8%8D%E8%BF%9E%E7%BB%AD%E8%BE%B9%E6%A1%86.png)
我目前使用以下代码来生成表格:
\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\usepackage{multicol}
\newcolumntype{Y}[1]{>{\raggedright\arraybackslash}p{#1}}
\newenvironment{kiquotes}{
\noindent \begin{tabular}{|Y{\dimexpr 0.35\linewidth-2\tabcolsep}p{\dimexpr 0.65\linewidth-2\tabcolsep}|}
\hline\addlinespace[0.3cm]
}{
\addlinespace[0.3cm]\hline \end{tabular}\\[0.1cm]
\par
}
\newcommand{\kiquote}[2]{#1: & \guillemotright{}#2\guillemotleft{} \\ }
\begin{document}
\begin{multicols}{2}
\begin{kiquotes} \kiquote{Someone}{Said something} \end{kiquotes}
\end{multicols}
\end{document}
但是,生成的表格在\addlinespace
添加边框的地方缺少边框。如何防止这种情况发生,以便获得连续的边框?
答案1
一个选项是加载makecell
包并使用\setcellgapes{0.3cm}
;维度0.3cm
由您选择。在制表之前,您必须通过发出命令来激活此设置\makegapedcells
。如果要撤消最后一个命令,请发出反向\nomakegapedcells
命令。
\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\usepackage{multicol}
\usepackage{aeguill}
\usepackage{makecell} % <====
\setcellgapes{0.3cm} % <====
\newcolumntype{Y}[1]{>{\raggedright\arraybackslash}p{#1}}
\newenvironment{kiquotes}{\makegapedcells % <====
\noindent\begin{tabular}{|Y{\dimexpr0.35\linewidth-2\tabcolsep}p{\dimexpr0.65\linewidth-2\tabcolsep}|}
\hline
}{
\hline \end{tabular}\\
\par
}
\newcommand{\kiquote}[2]{#1: & \guillemotright{}#2\guillemotleft{} \\ }
\begin{document}
\renewcommand{\arraystretch}{1.0}
\begin{multicols}{2}
\begin{kiquotes} \kiquote{Someone}{Said something} \end{kiquotes}
\end{multicols}
\end{document}
笔记:
一个可能适合您需要的完全不同的想法是使用 atcolorbox
而不是tabular
s,它具有许多灵活的设置并且可以跨越页面边界。
答案2
为什么不直接在里面设置内容呢\fbox
:
\documentclass{article}
\usepackage[T1]{fontenc}
\newcommand{\kiquote}[2]{{%
\noindent
\setlength{\fboxsep}{3mm}% Locally adjust \fboxsep (change to suit your needs)
\fbox{%
\makebox[\dimexpr.35\linewidth-\fboxrule-\fboxsep][l]{#1:}%
\makebox[\dimexpr.65\linewidth-\fboxrule-\fboxsep][l]{\guillemotright #2\guillemotleft}%
}%
}}
\begin{document}
\kiquote{Someone}{Said something}
\end{document}