如何在LaTeX article类文档右上角浮动放置表格?
解决LaTeX食谱文档中右上角放置营养表格的问题
问题原因
标准table浮动环境是块级元素,默认会占据整行宽度,且LaTeX自带的浮动定位选项([h]/[H]等)无法实现右上角的精准对齐,只会将表格放在顶部或当前位置,挤占下方文本。要实现右上角固定定位,需要使用非浮动的定位工具。
方案一:使用textpos宏包精准定位
textpos支持绝对/相对位置设置,适合将元素固定放置到页面角落。
修改后的完整代码:
\documentclass{article} \usepackage[absolute,overlay]{textpos} % 启用绝对定位与覆盖模式 \begin{document} \fontfamily{cmss} \pagestyle{empty} \setlength{\parindent}{0pt} \Large \underline{\textbf{Receptnaam}} % 右上角放置营养表格 \begin{textblock*}{3cm}({\dimexpr\linewidth-3cm},0pt) % 宽度3cm,水平靠右、垂直顶边对齐 \begin{tabular}{lll} Calorieën & & kcal \\ Koolhydraten & & gram \\ Eiwitten & & gram \\ Vetten & & gram \end{tabular} \end{textblock*} \large \begin{itemize}\itemsep0em \item[-] 4 personen \end{itemize} \vspace{10pt} \textbf{Ingredienten:} \begin{itemize}\itemsep0em \item[-] 示例食材1 \item[-] 示例食材2 \end{itemize} \vspace{10pt} \end{document}
关键说明
absolute,overlay选项:absolute允许用坐标定位元素,overlay让表格覆盖在文本上方,避免整体内容下移textblock*{3cm}({\dimexpr\linewidth-3cm},0pt):可根据表格实际宽度调整3cm,水平位置通过行宽-表格宽度实现靠右对齐,垂直位置设为0pt即紧贴页面顶部
方案二:使用wrapfig宏包实现文字环绕
如果希望表格右侧的文本能自然环绕排版,而非覆盖,可使用wrapfig:
修改后的完整代码:
\documentclass{article} \usepackage{wrapfig} % 导入环绕排版宏包 \begin{document} \fontfamily{cmss} \pagestyle{empty} \setlength{\parindent}{0pt} \Large \underline{\textbf{Receptnaam}} % 右上角环绕表格 \begin{wrapfigure}{r}{3cm} % {r}指定靠右放置,{3cm}为表格宽度 \begin{tabular}{lll} Calorieën & & kcal \\ Koolhydraten & & gram \\ Eiwitten & & gram \\ Vetten & & gram \end{tabular} \end{wrapfigure} \large \begin{itemize}\itemsep0em \item[-] 4 personen \end{itemize} \vspace{10pt} \textbf{Ingredienten:} \begin{itemize}\itemsep0em \item[-] 示例食材1 \item[-] 示例食材2 \end{itemize} \vspace{10pt} \end{document}
关键说明
wrapfigure{r}{3cm}:r参数指定表格靠右,3cm为表格宽度,LaTeX会自动让后续文本环绕表格排版,不会出现内容被整体下移的情况
注意事项
- 两种方案均无需使用
table浮动环境,直接用tabular配合定位工具即可 - 可根据表格实际内容调整宽度参数(如
3cm),确保排版美观 - 使用
textpos的overlay选项时,若表格遮挡重要文本,可调整垂直位置(如将0pt改为10pt让表格下移)
内容的提问来源于stack exchange,提问作者Yoran Kraak
相关产品推荐
相关产品推荐

