这个主题的记录有点少,或者我研究得不够深入。似乎这个术语label
在 中有些令人混淆ChoiceField
。
基本上我需要的就是将单选按钮放在文本标签条目的左侧(而不是类别的左侧或其他名称)。
使用renewcommand\LayoutChoiceField
似乎对 CheckBox 有效,但不适用于 radio/choice。
\documentclass[9pt,a4paper,notitlepage]{extarticle}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{amsfonts}
\usepackage{hyperref}
\renewcommand{\LayoutChoiceField}[2]{%
\leavevmode #2 #1%
}
\begin{document}
\begin{Form}
Box in the left side, but not true radio
Choose only one:
\ChoiceMenu[radio,radiosymbol=\ding{108}]{Option 1}{ }
\ChoiceMenu[radio,radiosymbol=\ding{108}]{Option 2}{ }
\ChoiceMenu[radio,radiosymbol=\ding{108}]{Option 3}{ }
\ChoiceMenu[radio,radiosymbol=\ding{108}]{Option 4}{ }
\hrulefill
True radio, but box on the right side
\ChoiceMenu[radio,radiosymbol=\ding{108}]{Choose only one:}{Option 1 ,Option 2 ,Option 3 ,Option 4 }
\end{Form}
\end{document}
答案1
\LayoutChoiceField
通过交换按钮之前/之后的文本来重新定义似乎会造成混淆。
我找到了一种解决您的两个问题的简单方法:
- 获得真的广播,就是给他们同样的
name
\documentclass{article}
\usepackage{hyperref}
\usepackage{amsmath}
\begin{document}
\begin{Form}
Box in the left side, \textbf{true} radio\\
Choose only one:\;\;
\ChoiceMenu[radio,radiosymbol=\ding{108}, name=a]{Option 1}{ }\;
\ChoiceMenu[radio,radiosymbol=\ding{108}, name=a]{Option 2}{ }
\end{Form}
\end{document}
- 要让文本显示在按钮的左侧/右侧,为什么不在命令之前/之后输入文本
\ChoiceMenu[..., ...]{...}{ }
呢?保持两个括号为{ }
空白会触发单选按钮完全消失。因此,第一个括号内的最小文本就可以了。
\documentclass{article}
\usepackage{hyperref, color}
\usepackage{amsmath}
\begin{document}
\begin{Form}
Box in the left side, \textbf{true} radio\\
Choose only one:
\ChoiceMenu[radio,radiosymbol=\ding{108}, name=b]{\textcolor{white}{:}}{ } Option 1\quad
\ChoiceMenu[radio,radiosymbol=\ding{108}, name=b]{\textcolor{white}{:}}{ } Option 2\quad
\end{Form}
\end{document}
我承认后者的做法很愚蠢,但随着计算机的智能化程度逐渐提高,总有一天,我们可能会更轻松地将我们的愿望传达给机器。在那之前,如果没有更好的办法,我们可能不得不用这种“愚蠢”的东西来满足自己。