排版问卷的视觉模拟量表(在列举列表内)

排版问卷的视觉模拟量表(在列举列表内)

我正在尝试制作一系列视觉模拟量表 (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}

相关内容