LaTex - 如何创建具有固定高度和宽度的框,其中包含垂直和水平对齐的文字?

26

这是用LaTeX创建闪卡的方法。我的打印机不支持双面打印,但像"flashcards"和"flacards"这样的包似乎需要双面打印,所以我正在尝试在每一页上创建如下的两列排列:

[Col1:卡片的正面] [Col2:卡片的背面]

每一行对应一个闪卡。计划是把每一行剪开,在中间对折后钉起来,形成“卡片”。

问题是:我该如何创建一个具有指定高度和宽度的单个框,并使其中的文本垂直对齐?

我对LaTeX相对陌生,因此我的选择很少。我不一定需要详细的答案 - 任何指向正确方向的提示都将非常有帮助!任何建议来实现我想要的效果的替代方法也会很有帮助。

非常感谢!


8
这个应该移动到tex.stackexchange.com吗? - Stefan K.
3个回答

31

假设您想要创建高度为40pt,宽度为3cm的框:

\vbox to 40pt {\vfil
\hbox to 3cm{Some info}%
\vfil
}

这是正确的方法。如果将所有边距设置为0pt,排版页面将更容易。 - Charles Stewart
谢谢。不过,我通过表格成功地得到了想要的结果,但很快会重新审视这个安排。 - ARV
对于像我这样的其他新手,想要使用此方法将居中的方程式放置在框的中间,请让我为您节省几个小时:将 {Some info} 替换为 {\fil \ensuremath{Some eqn} \hfil} - Travis Bemrose

2
您可以使用任何软件包来制作您的闪卡,然后将输出保存为pdf格式(例如使用pdflatex)。然后,在Latex中创建另一个文档,该文档使用pdfpages软件包并使用其nup选项以每页打印两个页面。Pdfpages有很多选项,可微调页面布局。这使您可以利用其他软件包的所有功能。

1

我基于TikZ的解决方案,使用两个 scope 和嵌套的fboxparbox:文本在两个框/列中(由于\centering)水平和垂直居中,宽度和高度都可以调整。

\documentclass[tikz,multi=false,border=5mm]{standalone}
\usepackage{lipsum}

\begin{document}
\begin{tikzpicture}
\begin{scope}
  \node (0,0) {\fbox{\parbox[c][100mm][c]{65mm}{\centering%
    \lipsum[1]
  }}};
\end{scope}

\begin{scope}[xshift=75mm]
  \node (0,0) {\fbox{\parbox[c][120mm][c]{65mm}{\centering%
    Some text\\%
    \ \\%
    \lipsum[2]
  }}};
\end{scope}
\end{tikzpicture}
\end{document}

screenshot of output


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接