垂直居中 \makebox

垂直居中 \makebox

代码:

\documentclass{article}
\usepackage{xcolor,hyperref}
\makeatletter
\def\Fld@bordercolor{0 0 0} % this works.
\makeatletter
\begin{document}
\begin{Form}
\setlength\unitlength{1cm}
  \begin{tabular}{|l|}
     \hline
     S + \makebox(4,1){\TextField[name=textfield,width=3cm,height=0.5cm]{Text}} \\
     \hline
  \end{tabular}
\end{Form}
\end{document}

输出:

在此处输入图片描述

输入框向上移动了。如何让它垂直居中,与“S +”在同一行?

答案1

像这样?

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{xcolor,hyperref}
\makeatletter
\def\Fld@bordercolor{0 0 0} % this works.
\makeatletter
\begin{document}
\begin{Form}
\setlength\unitlength{1cm}
  \begin{tabular}{|l|}
     \hline
     \phantom{S}\makebox(4,1){ S+\TextField[name=textfield,width=3cm,height=0.5cm]{Text}} \phantom{S}\\
     \hline
  \end{tabular}
\end{Form}
\end{document}

请注意,\phantom{S}用于在 TextField 之前和之后获取一些额外的空白。


这也是一个基于 TikZ 的解决方案:它也需要xparse包。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usepackage{xparse}

% TexTForm: arguments:
% #1 (optional): first letter - default = S
% #2 (optional): text - default = Text
% #3 (mandatory): width (set also the unit, i.e. cm)
% #4 (mandatory): height (set also the unit, i.e. cm)
\NewDocumentCommand{\TexTForm}{O{S} O{Text} m m}{
\begin{tikzpicture}[baseline=-0.5ex,show background rectangle]
\node[draw, minimum width=#3, minimum height=#4] (form) {};
\node[left, align=left, yshift=1ex]at (form.south west)(text){#1 + #2};

\end{tikzpicture}
}

\begin{document}
\TexTForm{3cm}{0.5cm}\\[2ex]
\TexTForm[T][Other text]{4cm}{0.75cm}\\[2ex]
\TexTForm[Hello][Some other text]{5cm}{1cm}
\end{document}

结果:

在此处输入图片描述

相关内容