如何实现Rmd生成PDF时两列均分排版数学习题?
问题描述
我使用如下的.Rmd文件编译生成PDF时,习题会纵向依次排列,表格位于页面底部。我希望将习题设置为两列均分排版(最优方案是按页面占用空间分配而非习题数量),且需通过少量代码实现,因为我正在开发一个可输入习题自动生成.Rmd文件的网页工具。
原.Rmd代码:
--- title: 'Institute' subtitle: 'Math test' author: 'author' output: pdf_document header-includes: - \usepackage{tabularx} --- Name: _________________________ Class:_____ date: __________ # Solve these excercises 1. $$\int{\frac{x}{x+6}}dx$$\ \hrule\ 2. $$\int{\frac{1}{x^2-9}}dx$$\ \hrule\ 3. $$\int{\frac{x^2+4}{x+4}}dx$$\ \hrule\ 5. $$\int{x\cdot arctan(x)}dx$$\ \hrule\ 6. $$\int{(x^2+1)e^x}dx$$\ \hrule\ 7. $$\int{\frac{x-7}{x^2+x-6}}dx$$ <!-- Some Table with tabularx for points -->
解决方案
使用LaTeX的multicol包即可实现自动平衡的两列布局,改动极小,适合自动生成场景:
- 在
header-includes中添加\usepackage{multicol},引入多列排版包 - 将所有习题内容包裹在
\begin{multicols}{2}和\end{multicols}环境中
修改后的完整.Rmd代码:
--- title: 'Institute' subtitle: 'Math test' author: 'author' output: pdf_document header-includes: - \usepackage{tabularx} - \usepackage{multicol} # 新增:引入多列包 --- Name: _________________________ Class:_____ date: __________ # Solve these excercises \begin{multicols}{2} # 新增:开启两列环境 1. $$\int{\frac{x}{x+6}}dx$$\ \hrule\ 2. $$\int{\frac{1}{x^2-9}}dx$$\ \hrule\ 3. $$\int{\frac{x^2+4}{x+4}}dx$$\ \hrule\ 5. $$\int{x\cdot arctan(x)}dx$$\ \hrule\ 6. $$\int{(x^2+1)e^x}dx$$\ \hrule\ 7. $$\int{\frac{x-7}{x^2+x-6}}dx$$ \end{multicols} # 新增:关闭两列环境 <!-- Some Table with tabularx for points -->
说明
multicols{2}环境会自动平衡两列的内容高度,而非按习题数量拆分,完全符合“按页面占用空间分配”的需求- 仅需新增3行代码(包引用+环境首尾),原有习题内容无需任何修改,非常适合网页工具自动生成Rmd的场景
内容的提问来源于stack exchange,提问作者Pierluigi
相关产品推荐
相关产品推荐

