在 LaTeX 中水平和垂直居中文本 [关闭]
Posted
技术标签:
【中文标题】在 LaTeX 中水平和垂直居中文本 [关闭]【英文标题】:Centering Text Horizontally and Vertically in LaTeX [closed] 【发布时间】:2011-02-15 20:14:33 【问题描述】:我想制作以下内容:
a b
xxxxx xxxxx
1 xxxxx xxxxx
xxxxx xxxxx
xxxxx xxxxx
2 xxxxx xxxxx
xxxxx xxxxx
其中'x'的块是图像,'a'、'b'、'1'和'2'是文本。
到目前为止,这是我的两次尝试:
\beginfigure
\begincenter
\begintabularccc
& a & b \\
1 & \subfloat[]\includegraphics[width=0.47\textwidth]im.png &
\subfloat[]\includegraphics[width=0.47\textwidth]im.png \\
2 & \subfloat[]\includegraphics[width=0.47\textwidth]im.png &
\subfloat[]\includegraphics[width=0.47\textwidth]im.png \\
\endtabular
\endcenter
\endfigure
产生:
a b
xxxxx xxxxx
xxxxx xxxxx
1 xxxxx xxxxx
xxxxx xxxxx
xxxxx xxxxx
2 xxxxx xxxxx
和
\beginfigure
\begincenter
\begintabularm1cmm6cmm6cm
& a & b \\
1 & \subfloat[]\includegraphics[width=0.47\textwidth]im.png &
\subfloat[]\includegraphics[width=0.47\textwidth]im.png \\
2 & \subfloat[]\includegraphics[width=0.47\textwidth]im.png &
\subfloat[]\includegraphics[width=0.47\textwidth]im.png \\
\endtabular
\endcenter
\endfigure
产生:
a b
xxxxx xxxxx
1 xxxxx xxxxx
xxxxx xxxxx
xxxxx xxxxx
2 xxxxx xxxxx
xxxxx xxxxx
【问题讨论】:
未来的读者请查看:tex.stackexchange.com/questions/12703/… 【参考方案1】:您可以创建一个新的列类型,或者在两个图像列的m6cm
之前添加>\centering\arraybackslash
。
例如:
\newcolumntypeC>\centering\arraybackslash m6cm %# New column type
\begintabularm1cmCC %# Table with two of them
...
>
指令基本上可以让您在该列中的每个条目之前注入包含的代码。我们需要\arraybackslash
来处理centering
环境和tabular
环境之间的不兼容问题。 [更多信息可以在这里找到。] 1
【讨论】:
【参考方案2】:我使用\dummyimage
,因为我没有im.png
。将其替换为\includegraphicsim.png
。
\font\dummyfont = cmr10 at 100pt
\def\dummyimage\vbox to 100pt\vfil\hbox to 100pt\hfil\dummyfont A\hfil\vfil
\hfil\vbox
\halign&\hfil\ $\vcenter\hbox#$\strut \ \hfil\cr
&a&b\cr
1&\dummyimage&\dummyimage\cr
2&\dummyimage&\dummyimage\cr
【讨论】:
@Svante:是的。我在 Alexey 的回答中没有看到任何会导致 Latex 出现问题的内容。以上是关于在 LaTeX 中水平和垂直居中文本 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章