\documentclass[full]{l3doc}
\usepackage[scheme=plain]{ctex}
\usepackage{enumitem}
\usepackage{indentfirst}
\usepackage{titling}
\usepackage{geometry}
\usepackage{fancyvrb-ex}
\usepackage{circledtext}

\IndexPrologue
  {
    \section*{Index}
    \markboth{Index}{Index}
    \addcontentsline{toc}{section}{Index}
    The~italic~numbers~denote~the~pages~where~the~
    corresponding~entry~is~described,~
    numbers~underlined~point~to~the~definition,~
    all~others~indicate~the~places~where~it~is~used.
  }

\newcommand\tikzmark[1]{\tikz \coordinate[overlay, remember picture] (#1);}

\geometry{
  left=4.5cm,
  right=2cm,
  top=2cm,
  bottom=2cm,
}
\hypersetup {
  CJKbookmarks,
  bookmarksopen,
  bookmarksopenlevel=3,
  pdfstartview=FitH,
  pdfinfo = {
   Title = The package circledtext ,
   Subject = A LaTeX3 package ,
   Author = Geng Nan
 }
}

\DoNotIndex{\begin, \end}
\setlength{\parskip}{\medskipamount}
\DeclareDocumentEnvironment { noteen } { +b } {
  \par\textbf{\textsf{NOTE:~}}#1\par
} {}
\DeclareDocumentEnvironment { notezh } { +b } {
  \par\textbf{\textsf{注意:~}}#1\par
} {}

\AtEndDocument{
  \newgeometry{
    left=2cm,
    right=2cm,
    top=2cm,
    bottom=2cm
  }
  \PrintIndex
}

\ExplSyntaxOn
\dim_new:N \l__my_syntax_dim
\box_new:N \g__my_syntax_box
\NewDocumentEnvironment { Syntax } { s }
  {
    \dim_set:Nn \l__my_syntax_dim
      { \textwidth }
    \hbox_gset:Nw \g__my_syntax_box
      \small \ttfamily
      \begin{minipage}[t]{\l__my_syntax_dim}
        \raggedright\obeyspaces\obeylines
  }
  {
      \end{minipage}
    \hbox_gset_end:
    \IfValueF { #1 } { \smallskip }
    \box_use_drop:N \g__my_syntax_box
    \smallskip
  }

\DeclareDocumentEnvironment { Description } { o +b } {
  \hbox_set:Nn \l_tmpa_box { #1 }
  \dim_set:Nn \l_tmpa_dim { \box_wd:N \l_tmpa_box }
  \begin{itemize}[labelwidth=\l_tmpa_dim, align=left]
    #2
  \end{itemize}
} {  }

\keys_define:nn { circled/doc } {
  opt .tl_set:N = \l_opt_tl,
  desc .tl_set:N = \l_desc_tl,
  init .tl_set:N = \l_init_tl,
  init .initial:n = init-none,
}

\box_new:N \l__option_box
\NewDocumentEnvironment { option } { m +b } {
  \keys_set:nn { circled/doc } { #1 }
  \hbox_set:Nw \l__option_box
    \small \ttfamily
    \begin{minipage}[t]{\textwidth}
      \obeyspaces\obeylines
      \textcolor{red}{
        \l_opt_tl
        \exp_args:Nx\SpecialOptionIndex{\l_opt_tl}
      }
      {~}\l_desc_tl
      \hfill(
      \tl_if_eq:NnTF \l_init_tl { init-none } { no~value }
        { initially~\texttt{\l_init_tl} }
      )
    \end{minipage}
  \hbox_gset_end:
  \box_use_drop:N \l__option_box
  #2
  \medskip
} {  }

\DeclareDocumentCommand \opt { O{} m }
  { \__codedoc_cmd:no {#1} { #2 } }
\ExplSyntaxOff

\def\vers{\texttt{v1.1.2} }

\begin{document}
\title{
  \circledtext[charf=\LARGE]{带}\circledtext[charf=\LARGE]{圈}%
  文字排版\\\pkg{circledtext} 宏包
  \rlap{\makebox[4cm][r]{
    \normalsize $\Longrightarrow$ \color{red}
    \protect\hyperlink{en}{English Version}
    \protect\hypertarget{zh}{}
  }}
}
\author{\textit{耿楠} \texttt{<nangeng@nwafu.edu.cn>}}
\date{\the\year 年\the\month 月\the\day 日\qquad \vers
\thanks{\url{https://github.com/registor/circledtext}}
\thanks{\url{https://gitee.com/nwafu_nan/circledtext}}
}
\maketitle

{\small
\tableofcontents
}
\newpage

\begin{documentation}

\section{引言}

\pkg{circledtext}是一个基于\pkg{l3draw}用\pkg{expl3}开发的
排版带圈文字的宏包，它提供了唯一的一个排版命令\tn{circledtext}%
用于对其必选参数中的文本按指定的基字符大小缩放后，再为其添加
圆形边框，然后排版输出。其带星号``*''命令\tn{circledtext*}用于
实现反色阴文排版输出。可以通过该命令的命令选项或\tn{circledtextset}%
命令设置排版输出的不同外观。

\section{用户接口}

\subsection{\cs{circledtext}排版命令}

\begin{function}{\circledtext}
  \begin{syntax}
    \cs{circledtext} \oarg{外观选项} \marg{文本}
  \end{syntax}
\end{function}

  按设置的\oarg{外观选项}对指定的\marg{文本}添加圆圈后排版输出。

  该命令仅有一个必选参数\marg{文本}，用于指定需要排版的文本。

  在\oarg{外观选项}中可以通过key-value的方式设置颜色、字体、字号、线宽等外观。

  外观也可以通过\cs{circledtextset}命令，以逗号分隔key-value列表进行设置。

  通过\oarg{外观选项}设置的外观参数仅对当前命令局部有效，
  通过\cs{circledtextset}命令设置的外观参数对后续所有命令有效。

  其星号版本命令用于反色阴文输出。

\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtext{五}\quad
  \circledtext{888}\quad
  \circledtext*{五}\quad
  \circledtext*{888}
\end{SideBySideExample}

\subsection{\cs{circledtextset}外观选项设置命令}

\begin{function}{\circledtextset}
  \begin{syntax}
    \cs{circledtextset} \marg{外观选项}
  \end{syntax}
\end{function}

  用于设置外围圆圈及文本的外观。

  在\marg{外观选项}中可以通过key-value方式设置颜色、
  字体、字号、线宽等外观。

  通过\cs{circledtextset}命令设置的外观参数对后续所有命令有效。

\section{外观选项}

\begin{option}{ opt = basechar, desc = {= \meta{基字符}}, init=好/x }
  设置尺寸测度基字符，如果使用|xetex|或|luatex|引擎编译
  则初始值为中文“好”字，否则使用英文字母``x''。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtext{五}\quad
  \circledtext{一佰}\quad
  \circledtext[basechar=M]{999}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = charf, desc = {= \meta{格式命令}}, init=\tn{normalsize} }
  设置文本格式，初始值为\tn{normalsize}。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtext{五}\qquad
  \circledtext[charf=\Huge]{九}
\end{SideBySideExample}

% 字体设置会影响后续内容，原因还未查明
\bigskip

\begin{option}{ opt = boxtype, desc = {= \meta{外框类型}}, init=o }
  设置外框类型，目前支持：
\end{option}\\
  \begin{Description}
    \item |o|---实心填充圆(小写英文字母``|o|'')。
    \item |o+|---十字填充圆。
    \item |ox|---对角十字填充圆(小写英文字母``|x|'')。
    \item |ox+|---米字填充圆。
    \item |x+|---米字背景(边框为圆但不显示)。
    \item |O|---实心填充正方形(大写英文字母``|O|'')。
    \item |O+|---十字填充正方形。
    \item |OX|---对角十字填充正方形(小写英文字母``|X|'')。
    \item |OX+|---米字填充正方形。
    \item |X+|---米字背景(边框为正方形但不显示)。
    \item |oo|---同心圆背景。
    \item |Oo|---前景色填充正方叠加背景色圆背景。
    \item |OO|---同心正方形背景。
  \end{Description}
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.50\linewidth,gobble=2]
  \centering
  \circledtext[boxtype=o  ]{甲}\quad
  \circledtext[boxtype=o+ ]{乙}\quad
  \circledtext[boxtype=ox ]{丙}\quad
  \circledtext[boxtype=ox+]{丁}\quad
  \circledtext[boxtype=x+ ]{戊}
\end{SideBySideExample}

\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.50\linewidth,gobble=2]
  \centering
  \circledtext[boxtype=O  ]{甲}\quad
  \circledtext[boxtype=O+ ]{乙}\quad
  \circledtext[boxtype=OX ]{丙}\quad
  \circledtext[boxtype=OX+]{丁}\quad
  \circledtext[boxtype=X+ ]{戊}
\end{SideBySideExample}

\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.50\linewidth,gobble=2]
  \centering
  \circledtextset{boxcolor=red}
  \circledtext[boxtype=oo  ]{车}\quad
  \circledtext[boxtype=Oo  ]{马}\quad
  \circledtext[boxtype=OO  ]{炮}\quad
  \circledtext*[boxtype=oo ]{车}\quad
  \circledtext*[boxtype=Oo ]{马}\quad
  \circledtext*[boxtype=OO ]{炮}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = charshrink, desc = {= \meta{文本缩放系数}}, init=0.75 }
  设置文本缩放系数。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtext[charshrink=0.75]{甲}\quad
  \circledtext[charshrink=1.00]{乙}\quad
  \circledtext[charshrink=0.50]{丙}\quad
  \circledtext[charshrink=0.35]{丁}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = resize, desc = {= \meta{缩放方式}}, init=none }
  设置缩放类型，目前支持：
\end{option}\\
\begin{Description}
  \item |none|---无缩放。
  \item |real|---使用字符实际宽高缩放。
  \item |base|---使用基字符缩放。
\end{Description}
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{width=2cm}
  \circledtext[resize=none]{10}\quad
  \circledtext[resize=real]{15}\quad
  \circledtext[resize=base]{20}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = xscale, desc = {= \meta{x方向缩放系数}}, init=1 }
  设置x方向缩放系数。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{resize=real}
  \circledtext[xscale=0.5]{15}\quad
  \circledtext[xscale=1.0]{15}\quad
  \circledtext[xscale=1.5]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = yscale, desc = {= \meta{y方向缩放系数}}, init=1 }
  设置y方向缩放系数。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{resize=real}
  \circledtext[yscale=0.5]{15}\quad
  \circledtext[yscale=1.0]{15}\quad
  \circledtext[yscale=1.5]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = width, desc = {= \meta{宽度}}, init=无 }
  设置宽度。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{resize=real}
  \circledtext[width=0.5em]{15}\quad
  \circledtext[width=1.0em]{15}\quad
  \circledtext[width=1.5em]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = height, desc = {= \meta{高度}}, init=无 }
  设置高度。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{resize=real}
  \circledtext[height=1.0ex]{15}\quad
  \circledtext[height=2.0ex]{15}\quad
  \circledtext[height=3.0ex]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = boxlinewidth, desc = {= \meta{边框线宽}}, init=0.4pt }
  设置边框线宽。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.44\linewidth,gobble=2]
  \centering
  \circledtext{100}\quad
  \circledtext[boxlinewidth=1.0pt]{1000}\quad
  \circledtext[boxlinewidth=2.0pt]{一佰三十}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = crosslinewidth, desc = {= \meta{背景线线宽}}, init=0.3pt }
  设置背景线线宽。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.44\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=o+}
  \circledtext{三}\quad
  \circledtext[crosslinewidth=1.0pt]{三}\quad
  \circledtext[crosslinewidth=2.0pt]{三}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = crosscolorratio, desc = {= \meta{背景线颜色比例}}, init=30 }
  设置背景线颜色点边框颜色的比例(\%)。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.38\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,crosslinewidth=2pt}
  \circledtext[crosscolorratio=10]{15}\quad
  \circledtext[crosscolorratio=80]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = boxcolor, desc = {= \meta{边框颜色}}, init=black }
  设置边框颜色。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.50\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+}
  \circledtext{15}\quad
  \circledtext[boxcolor=red]{15}\quad
  \circledtext[boxcolor=blue]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = charcolor, desc = {= \meta{文本颜色}}, init=black }
  设置文本颜色。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,boxcolor=red}
  \circledtext{15}\quad
  \circledtext[charcolor=red]{15}\quad
  \circledtext[charcolor=blue]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = boxfill, desc = {= \meta{背景颜色}}, init=无 }
  设置背景填充颜色。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,boxcolor=red}
  \circledtext{15}\quad
  \circledtext[boxfill=red!30]{15}\quad
  \circledtext[boxfill=blue!30]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = charstroke, desc = {= \meta{笔画类型}}, init=无 }
  设置文本笔画类型。
\end{option}\\
\begin{Description}
  \item |none|---原始笔画轮廓。
  \item |solid|---实线笔画轮廓。
  \item |dashed|---虚线笔画轮廓。
  \item |invisible|---隐藏笔画轮廓。
\end{Description}
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,boxcolor=red,
            charf=\sffamily\bfseries\Huge}
  \circledtext{五}\quad
  \circledtext[charstroke=solid]{五}\quad
  \circledtext[charstroke=dashed]{五}\quad
  \circledtext[charstroke=invisible]{五}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = dashpattern, desc = {= \meta{背景线线型}}, init=无 }
  设置背景线线型。
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.25\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,boxcolor=red,
          charstroke=invisible,charf=\Huge}
  \circledtext{五}\quad
  \circledtext[dashpattern={1.5mm,1mm,2mm,1.5mm}]{五}
\end{SideBySideExample}

\title{
  \circledtext{C}ircled\circledtext{T}ext Package \pkg{circledtext}
  \rlap{\makebox[4cm][r]{
    \normalsize $\Longrightarrow$ \color{red}
    \protect\hyperlink{zh}{中文版本}
    \protect\hypertarget{en}{}
  }}
}
\author{Nan Geng \texttt{<nangeng@nwafu.edu.cn>}}
\date{\today\qquad \vers}
\maketitle

\section{Introduction}

\pkg{circledtext} is a text with circle package based on%
\pkg{l3draw} by \pkg{expl3}. This package provides a macro
\tn{circledtext} to create arbitrary ``circled'' text. The 
starred macro can create negative ``circled'' text.
a macro \tn{circledtextset} to set the format of ``circled''
text.

\section{Interface}

\subsection{\cs{circledtext} macro}

\begin{function}{\circledtext}
  \begin{syntax}
    \cs{circledtext} \oarg{options} \marg{text}
  \end{syntax}
\end{function}

  According to \oarg{options} to create ``circled''
  \marg{text}.

  \oarg{options} are key-value for color, font, size and so on.。

  Macro's \oarg{options} are local setting.

  If global settings are needed, the \cs{circledtextset} macro is required.

  The starred version can create negative ``circled'' text.

\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtext{8}\quad
  \circledtext{888}\quad
  \circledtext*{8}\quad
  \circledtext*{888}
\end{SideBySideExample}
\subsection{\cs{circledtextset} macro}

\begin{function}{\circledtextset}
  \begin{syntax}
    \cs{circledtextset} \marg{options}
  \end{syntax}
\end{function}

  Used to set the appearance of ``circled'' text.

  In \marg{options} you can set the appearance of the 
  color, font, size, linewidth, etc. by key-value lists.

  The appearance seted by the \cs{circledtextset} are 
  valid for all subsequent macros.

\section{options}

\begin{option}{ opt = basechar, desc = {= \meta{base char}}, init=好/x }
  Set size measurement base character. If compiled with xetex or luatex engine,
  the initial value is ``好'' in Chinese, otherwise the initial value is the 
  letter ``x'' in English.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtext{8}\quad
  \circledtext{100}\quad
  \circledtext[basechar=M]{three}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = charf, desc = {= \meta{format macro(s)}}, init=\tn{normalsize} }
  Set text formats.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtext{8}\qquad
  \circledtext[charf=\Huge]{9}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = boxtype, desc = {= \meta{box type}}, init=o }
  Set box type, currently as follows:
\end{option}\\
  \begin{Description}
    \item |o|---filled circle(lowercase "o").
    \item |o+|---filled circle with cross.
    \item |ox|---filled circle with diagonal cross(lowercase "x").
    \item |ox+|---filled circle with diagonal cross and cross.
    \item |x+|---diagonal cross and cross(hided circle bg).
    \item |O|---filled square(capital "O").
    \item |O+|---filled square with cross.
    \item |OX|---filled square with diagonal cross(capital "X").
    \item |OX+|---filled square with diagonal cross and cross.
    \item |X+|---diagonal cross and cross(hided square bg).
    \item |oo|---2 concentric circles.
    \item |Oo|---filled square with fg color and filled circle with bg color.
    \item |OO|---2 concentric squares.
  \end{Description}
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.50\linewidth,gobble=2]
  \centering
  \circledtext[boxtype=o  ]{10}\quad
  \circledtext[boxtype=o+ ]{11}\quad
  \circledtext[boxtype=ox ]{12}\quad
  \circledtext[boxtype=ox+]{13}\quad
  \circledtext[boxtype=x+ ]{14}
\end{SideBySideExample}

\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.50\linewidth,gobble=2]
  \centering
  \circledtext[boxtype=O  ]{10}\quad
  \circledtext[boxtype=O+ ]{11}\quad
  \circledtext[boxtype=OX ]{12}\quad
  \circledtext[boxtype=OX+]{13}\quad
  \circledtext[boxtype=X+ ]{14}
\end{SideBySideExample}

\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.50\linewidth,gobble=2]
  \centering
  \circledtextset{boxcolor=red}
  \circledtext[boxtype=oo  ]{88}\quad
  \circledtext[boxtype=Oo  ]{88}\quad
  \circledtext[boxtype=OO  ]{88}\quad
  \circledtext*[boxtype=oo ]{88}\quad
  \circledtext*[boxtype=Oo ]{88}\quad
  \circledtext*[boxtype=OO ]{88}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = charshrink, desc = {= \meta{text shrink}}, init=0.75 }
  Set text shrink ratio.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtext[charshrink=0.75]{8}\quad
  \circledtext[charshrink=1.00]{8}\quad
  \circledtext[charshrink=0.50]{8}\quad
  \circledtext[charshrink=0.35]{8}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = resize, desc = {= \meta{resize type}}, init=none }
  Set resize type, currently as follows:
\end{option}\\
\begin{Description}
  \item |none|---No scaling.
  \item |real|---Scaling with real size or ratio.
  \item |base|---Scaling with base size.
\end{Description}
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{width=2cm}
  \circledtext[resize=none]{10}\quad
  \circledtext[resize=real]{15}\quad
  \circledtext[resize=base]{20}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = xscale, desc = {= \meta{x factor}}, init=1 }
  Set x-direction scaling factor.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{resize=real}
  \circledtext[xscale=0.5]{15}\quad
  \circledtext[xscale=1.0]{15}\quad
  \circledtext[xscale=1.5]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = yscale, desc = {= \meta{y factor}}, init=1 }
  Set y-direction scaling factor.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{resize=real}
  \circledtext[yscale=0.5]{15}\quad
  \circledtext[yscale=1.0]{15}\quad
  \circledtext[yscale=1.5]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = width, desc = {= \meta{width}}, init=null }
  Set width.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{resize=real}
  \circledtext[width=0.5em]{15}\quad
  \circledtext[width=1.0em]{15}\quad
  \circledtext[width=1.5em]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = height, desc = {= \meta{height}}, init=null }
  Set height.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{resize=real}
  \circledtext[height=1.0ex]{15}\quad
  \circledtext[height=2.0ex]{15}\quad
  \circledtext[height=3.0ex]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = boxlinewidth, desc = {= \meta{line width}}, init=0.4pt }
  Set box line width.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.44\linewidth,gobble=2]
  \centering
  \circledtext{100}\quad
  \circledtext[boxlinewidth=1.0pt]{1000}\quad
  \circledtext[boxlinewidth=2.0pt]{one}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = crosslinewidth, desc = {= \meta{cross width}}, init=0.3pt }
  Set cross line width.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.44\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=o+}
  \circledtext{8}\quad
  \circledtext[crosslinewidth=1.0pt]{8}\quad
  \circledtext[crosslinewidth=2.0pt]{8}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = crosscolorratio, desc = {= \meta{bg}}, init=30 }
  Set the ratio of the cross line color to box color(\%).
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.38\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,crosslinewidth=2pt}
  \circledtext[crosscolorratio=10]{15}\quad
  \circledtext[crosscolorratio=80]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = boxcolor, desc = {= \meta{box color}}, init=black }
  Set box color.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.50\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+}
  \circledtext{15}\quad
  \circledtext[boxcolor=red]{15}\quad
  \circledtext[boxcolor=blue]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = charcolor, desc = {= \meta{text color}}, init=black }
  Set text color.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,boxcolor=red}
  \circledtext{15}\quad
  \circledtext[charcolor=red]{15}\quad
  \circledtext[charcolor=blue]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = boxfill, desc = {= \meta{fill color}}, init=null }
  Set fill color.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,boxcolor=red}
  \circledtext{15}\quad
  \circledtext[boxfill=red!30]{15}\quad
  \circledtext[boxfill=blue!30]{15}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = charstroke, desc = {= \meta{stroke}}, init=none }
  Set character stroke type.
\end{option}\\
\begin{Description}
  \item |none|---Original stroke.
  \item |solid|---Solid stroke.
  \item |dashed|---dashed stroke.
  \item |invisible|---Hide stroke.
\end{Description}
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.45\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,boxcolor=red,
            charf=\sffamily\bfseries\Huge}
  \circledtext{8}\quad
  \circledtext[charstroke=solid]{8}\quad
  \circledtext[charstroke=dashed]{8}\quad
  \circledtext[charstroke=invisible]{8}
\end{SideBySideExample}

\bigskip

\begin{option}{ opt = dashpattern, desc = {= \meta{cross style}}, init=null }
  Set cross style.
\end{option}\\
\begin{SideBySideExample}[frame=single,numbers=left,xrightmargin=.25\linewidth,gobble=2]
  \centering
  \circledtextset{boxtype=ox+,boxcolor=red,
          charstroke=invisible,charf=\Huge}
  \circledtext{8}\quad
  \circledtext[dashpattern={1.5mm,1mm,2mm,1.5mm}]{8}
\end{SideBySideExample}

\end{documentation}

\end{document}
