如何使多行文字在頁面的水平剩餘部分居中?

如何使多行文字在頁面的水平剩餘部分居中?

我想製作一堆「迷你卡」格式的頁面(2.75 x 1.1),一側有一個 1 英寸的二維碼,另一側居中的多行文字。

不幸的是,我無法控制垂直居中。我目前的方法使用“m”列類型,該類型應該使文字垂直居中,但這並沒有發生:

\documentclass{article}

\usepackage{graphicx}
\usepackage{array}
\usepackage[margin=.05in,papersize={2.75in,1.1in}]{geometry}
\begin{document}

\renewcommand\arraystretch{0}
\renewcommand\tabcolsep{0pt}

\begin{table}
\begin{tabular}{p{1in} | >{\centering\arraybackslash}m{1.65in} |}
\hline
\includegraphics[width=1in,height=1in]{600px-QR_code_Wikimedia_Commons_(URL).png} 
& unique key a 
\\ \hline
\end{tabular}
\end{table}

\end{document}

一個解決方案會很棒,但我會接受一個解釋。我應該使用桌子嗎?

答案1

這是包中的一個已知錯誤,如下所述:表中的垂直對齊:m 列,行大小 - 最後一列的問題

您也可以在您的案例中使用該調整。您應該稍微增加尺寸以消除警告並正確解決所有問題:

\documentclass{article}

\usepackage[demo]{graphicx} % remove `[demo]` in your case
\usepackage{array}
\usepackage[margin=.05in,papersize={2.79in,1.12in}]{geometry}
\begin{document}

\renewcommand\arraystretch{0}
\renewcommand\tabcolsep{0pt}

\begin{table}
\begin{tabular}{m{1.02in} | >{\centering\arraybackslash}m{1.65in} |@{}m{0pt}@{}}
\hline
\includegraphics[width=1in,height=1in]{600px-QR_code_Wikimedia_Commons_(URL).png} 
& unique key a 
&\\ \hline
\end{tabular}
\end{table}

\end{document}

相關內容