我正在尝试制作一系列视觉模拟量表 (VAS) (1) 作为\item
研究问卷的枚举列表。
我想让所有行的长度相同(用户可定义),每行垂直对齐页面中心。我希望每行末尾的相应文本标签垂直对齐在相应行末尾下方的中央。每行的文本标签\item
长度不同。
我附加了一个丑陋的 MWE,使用枚举列表环境中的表格来展示我想要实现的效果,但连续行的长度和对齐方式不一致,并且每行的结尾与相应文本标签的中心不对齐。
有没有一种简洁灵活的方法可以在 LaTeX 中完成上述操作;最好使用标准 LaTeX 包?
非常感谢
enter
\documentclass[a4paper,10pt,twoside]{article}
\usepackage{booktabs}
\begin{document}
\begin{enumerate}
\item{How do you feel today?\\ (please put a cross on the line below)\\
\begin{table}[!h]\centering
\begin{tabular}{cccc}
\cmidrule{2-3}
Utterly& \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad& \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad& Ecstatically\\
Miserable& \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad& \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad& Happy \\
\end{tabular}
\end{table}
\\ \\}
\item{How was the service today?\\(please put a cross on the line below)\\
\begin{table}[!h]\centering
\begin{tabular}{cccc}
\cmidrule{2-3}
The worst& \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad& \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad& Absolutely\\
I've ever experienced& \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad& \quad \quad \quad \quad\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad& Brilliant\\
\end{tabular}
\end{table}
\\ \\}
\item{etc. \ldots}
\end{enumerate}
\end{document}
答案1
table
如果您不想让它浮动,则不应使用。所以我删除了那部分。然后,您可以使用p{<width>}
(即段落)指定列的宽度。在如此狭窄的列中,文本被拉长以填充行看起来很奇怪,所以我过去常常array
指定一个右边距参差不齐的版本。
\documentclass[a4paper,10pt,twoside]{article}
\usepackage{booktabs}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\newcommand\ScaleLine[2]{%
\strut\newline (please put a cross on the line below)\vspace*{1em}\newline
\begin{tabular}{@{}L{0.2\linewidth}p{0.6\linewidth}L{0.2\linewidth}@{}}
#1 & \rule[-5pt]{0.4pt}{10pt}\hrulefill\rule[-5pt]{0.4pt}{10pt} & #2
\end{tabular}
}
\begin{document}
\begin{enumerate}
\item How do you feel today?
\ScaleLine{Utterly Miserable}{Ecstatically Happy}
%%%%%%%%%%%%%%%
\item How was the service today?
\ScaleLine{The worst I've ever experienced}{Absolutely Brilliant}
%%%%%%%%%%%%%%%
\item{etc. \ldots}
\end{enumerate}
\end{document}
- 编辑 -
为了使文本位于线的端点下方的中心,请尝试定义如下\ScaleLine
(表格中的两行)。
\newcommand\ScaleLine[2]{%
\strut\newline (please put a cross on the line below)\vspace*{1em}\newline
\begin{tabular}{@{}p{0.15\linewidth}@{}p{0.15\linewidth}@{}p{0.4\linewidth}@{}p{0.15\linewidth}@{}p{0.15\linewidth}@{}}
& \multicolumn{3}{@{}p{0.7\linewidth}@{}}{\rule[-5pt]{0.4pt}{10pt}\hrulefill\rule[-5pt]{0.4pt}{10pt}} & \\[10pt]
\multicolumn{2}{@{}P{0.3\linewidth}@{}}{#1} && \multicolumn{2}{@{}P{0.3\linewidth}@{}}{#2}
\end{tabular}
}
\parbox
或者可以使用两行(以防止页面分裂)。
\newcommand\ScaleLine[2]{%
\strut\newline (please put a cross on the line below)\vspace*{1em}\newline
\parbox{\linewidth}{%
\rule{0.15\linewidth}{0pt}
\rule[-5pt]{0.4pt}{10pt}\hrulefill\rule[-5pt]{0.4pt}{10pt}%
\rule{0.15\linewidth}{0pt}\vspace*{7pt}\newline
\parbox{0.3\linewidth}{\centering #1}\hfill\parbox{0.3\linewidth}{\centering #2}
}
}
答案2
我不太确定我是否正确理解了您的愿望,但您的意思是这样的吗?
\documentclass[a4paper,10pt,twoside]{article}
\usepackage{booktabs}
\begin{document}
\begin{enumerate}
\item How do you feel today? (please put a cross on the line below)
Utterly \hrulefill\ Ecstatically
Miserable \hrulefill\ Happy
\item If you need longer entries.
\begin{minipage}{2.5cm}
This is the left entry of the line.
\end{minipage}
\hrulefill
\begin{minipage}{2.5cm}\raggedleft
This is the right entry of the line.
\end{minipage}
\item etc. \ldots
\end{enumerate}
\end{document}