虽然在 LaTeX 中排版复选框(选中或未选中)很容易(例如,使用wasysym
),但我没有找到任何排版单选按钮的方法。我当然可以使用 TikZ,但有没有更“轻量级”的方法(即使用某种字体或组合现有字符)?这很接近:
\documentclass{article}
\usepackage{wasysym}
\begin{document}
\begin{itemize}
\item[$\ocircle$] foo
\item[$\odot$] bar
\item[$\ocircle$] baz
\end{itemize}
\end{document}
但里面的点\odot
可能有点太浅了。
有什么建议么?
注意:我对 PDF 表格根本不感兴趣;我想要一个可打印的文档,其中明确指示列表中的一个元素是可选择的(即单选测试)。
答案1
可以通过 TikZ 绘制选中和未选中的单选按钮:
\documentclass{article}
\usepackage{tikz}
\makeatletter
\newcommand*{\radiobutton}{%
\@ifstar{\@radiobutton0}{\@radiobutton1}%
}
\newcommand*{\@radiobutton}[1]{%
\begin{tikzpicture}
\pgfmathsetlengthmacro\radius{height("X")/2}
\draw[radius=\radius] circle;
\ifcase#1 \fill[radius=.6*\radius] circle;\fi
\end{tikzpicture}%
}
\makeatother
\begin{document}
\begin{itemize}
\item[\radiobutton] foo
\item[\radiobutton*] bar
\item[\radiobutton] baz
\end{itemize}
\end{document}
阴影和球的一些变化:
\documentclass{article}
\usepackage{tikz}
\makeatletter
\newcommand*{\radiobutton}{%
\@ifstar{\@radiobutton0}{\@radiobutton1}%
}
\newcommand*{\@radiobutton}[1]{%
\begin{tikzpicture}
\pgfmathsetlengthmacro\radius{height("X")/2}
\draw[radius=\radius,
preaction={
draw=gray,
transform canvas={
xshift=.7\pgflinewidth,
yshift=-.7\pgflinewidth,
},
},
preaction={fill=white},
] circle;
\ifcase#1
\fill[
radius=.6*\radius,
shade,
shading=ball,
ball color=black,
] circle;
\fi
\end{tikzpicture}%
}
\makeatother
\begin{document}
\begin{itemize}
\item[\radiobutton] foo
\item[\radiobutton*] bar
\item[\radiobutton] baz
\end{itemize}
\end{document}
答案2
可能是这样的:
\documentclass{article}
\usepackage{wasysym}
\newcommand{\radio}{\ooalign{\hidewidth$\bullet$\hidewidth\cr$\ocircle$}}
\begin{document}
\begin{itemize}
\item[$\ocircle$] foo
\item[$\odot$] bar
\item[$\ocircle$] baz
\item[\radio] baz
\end{itemize}
\end{document}
如果您愿意,您可以使用\scalebox
并调整其尺寸。\bullet
答案3
在这里我使用\stackinset
将 放置\bullet
在缩放的 内部\circ
。
\documentclass[12pt]{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{graphicx}
\makeatletter
\newcommand*{\radiobutton}{\@ifstar{\radiobuttonON}{\radiobuttonOFF}}
\makeatother
\def\radiobuttonON{\raisebox{-1.5pt}{\stackinset{c}{}{c}{.35pt}{$\bullet$}{\scalebox{2}{$\circ$}}}}
\def\radiobuttonOFF{\raisebox{-1.5pt}{\scalebox{2}{$\circ$}}}
\begin{document}
\begin{itemize}
\item[\radiobutton] foo
\item[\radiobutton*] bar
\item[\radiobutton] baz
\end{itemize}
\end{document}