我正在尝试使用 LaTeX 创建 RPG“角色表”。其中包含大量嵌套框、下划线空格等。
我从 开始\begin{tabularx{\textwidth}}{|X|X|X|}
,并尝试在其中嵌套tabular
和环境,打算用来获取下划线。tabularx
\hrulefill
问题是,我想使嵌套表格的宽度与封闭表格单元格允许的宽度一样宽,但不知道如何获得该值。0.33\textwidth
这只是一个粗略的估计,并没有考虑到单元格填充等。
查看tabularx
文档后,我尝试了\TX@cell@width
,但出现了错误(“未定义的控制序列”)。
有没有办法获取类似\cellwidth
这样的值,用于嵌套的宽度定义tabularx
?或者专门用于此类工作的包?(我尝试使用 MiKTeX 包管理器寻找类似的东西,但一无所获。)
编辑:哎呀...忘记了 MWE...
\documentclass{scrbook}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
{ \begin{tabularx}{\TX@col@width}{lX} %% <-- this does *not* work...
Name: & \hrulefill\\
Race: & \hrulefill\\
Profession: & \hrulefill\\
\end{tabularx} } &
\Large\textbf{Character Sheet} &
Empty so far\\
\hline
\end{tabularx}
\end{document}
答案1
\documentclass{scrbook}
\usepackage{tabularx}
\makeatletter
\newcommand\cellwidth{\TX@col@width}
\makeatother
\begin{document}
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
{\begin{tabularx}{\cellwidth}{lX} %% <-- this does *not* work...
Name: & \hrulefill\\
Race: & \hrulefill\\
Profession: & \hrulefill\\
\end{tabularx}}&
\Large\textbf{Character Sheet} &
Empty so far\\
\hline
\end{tabularx}
\end{document}
您不能在和@
之间使用 -commands 而不保护它们;最好事先做好保护。请注意,命令是。\makeatletter
\makeatother
\TX@col@width
答案2
为什么需要单元格宽度?\hrulefill
已经可以了:
\begin{tabularx}{\textwidth}{|X|X|X|}
foo \rule{1cm}{0.4pt} \hrulefill &foo \hrulefill &foo \hrulefill
\end{tabularx}
然而,在这种情况下,列宽是\dimexpr \textwidth/3-6\tabcolsep