TransWikia.com

Managing checkbox representation

TeX - LaTeX Asked by user4035 on January 15, 2021

I tried to create a checkbox, analogous to
Creating Boxed Check Mark

This woks correctly:

documentclass{article}
usepackage{amssymb}
begin{document}
makebox[0pt][l]{$square$}raisebox{.15ex}{hspace{0.1em}$checkmark$}
end{document}

enter image description here

But when I tried to use a cross symbol instead of checkmark, it is shifted to the bottom:

documentclass{article}
usepackage{amssymb}
begin{document}
makebox[0pt][l]{$square$}{$times$}
end{document}

enter image description here

  1. How to vertically center the cross symbol?
  2. How to change the size of the box and internal symbol, making them bigger / smaller?

5 Answers

Why not use the already available boxtimes?

documentclass{article}
usepackage{amssymb}
begin{document}

$boxtimes$

end{document}

enter image description here

Correct answer by Gonzalo Medina on January 15, 2021

Here is another possibility:

documentclass{article}
usepackage{amssymb,tikz,pdftexcmds,xparse}

tikzset{box/.style={
    minimum size=0.225cm,
    inner sep=0pt,
    draw,
  },  
  insert mark/.style={
    append after command={%
         node[inner sep=0pt,#1]
           at (tikzlastnode.center){$checkmark$}
     }     
  },
  insert bad mark/.style={
    append after command={%
         [shorten <=pgflinewidth,shorten >=pgflinewidth]
         (tikzlastnode.north west)edge[#1](tikzlastnode.south east)
         (tikzlastnode.south west)edge[#1](tikzlastnode.north east)
     }     
  },
}

makeatletter
NewDocumentCommand{tikzcheckmark}{O{} m}{%
  ifnumpdf@strcmp{#2}{mark}=z@%
    tikz[baseline=-0.5ex]node[box,insert mark={#1},#1]{};%
  fi%
  ifnumpdf@strcmp{#2}{bad mark}=z@%
    tikz[baseline=-0.5ex]node[box,insert bad mark={#1},#1]{};%
  fi%
  ifnumpdf@strcmp{#2}{no mark}=z@%
    tikz[baseline=-0.5ex]node[box,#1]{};%
  fi%
}
makeatother

begin{document}


tikzcheckmark[scale=0.75]{mark}quadtikzcheckmark[scale=0.75]{no mark}quadtikzcheckmark[scale=0.75]{bad mark}

vspace{1cm}

tikzcheckmark{mark}quadtikzcheckmark{no mark}quadtikzcheckmark{bad mark}

vspace{1cm}

tikzcheckmark[scale=2,red]{mark}quadtikzcheckmark[scale=2,red]{no mark}quadtikzcheckmark[scale=2,red]{bad mark}

end{document}

The result:

enter image description here

Answered by Claudio Fiandrino on January 15, 2021

Another option:

makebox[0pt][l]{$square$}{raisebox{0.1height}{$times$}}

(use raisebox as in the first symbol you use)

Answered by ebondrow on January 15, 2021

Another option:

use XBox with the wasysym package

Answered by user95439 on January 15, 2021

Here is an alternative with l3draw.

enter image description here

documentclass{article}
usepackage{enumitem}
usepackage{xcolor}
usepackage{l3draw,xparse}
ExplSyntaxOn
%---------------------------------------------------------
NewDocumentCommand{xpboxedtimes}{O{1ex}O{black}}
 {
  fp_set:Nn l__xp_boxed_line_width_fp { 0.08ex }  
  raisebox{0pt}[#1][0pt]{color{#2}xp_boxedtimes:n { #1 }}
 }
 
NewDocumentCommand{xpboxedempty}{O{1ex}O{black}}
 {
  fp_set:Nn l__xp_boxed_line_width_fp { 0.08ex }
  raisebox{0pt}[#1][0pt]{color{#2}xp_boxedempty:n { #1 }}
 } 
 
dim_new:N l__xp_boxed_size_dim % dimension of the box
fp_new:N l__xp_boxed_line_width_fp %linewidth set to 0.08ex by default

cs_new_protected:Nn xp_boxedtimes:n
 {
  dim_set:Nn l__xp_boxed_size_dim { #1 }
  draw_begin:
  draw_linewidth:n { l__xp_boxed_line_width_fp }
  draw_path_moveto:n { 0l__xp_boxed_size_dim , 0l__xp_boxed_size_dim }
  draw_path_lineto:n { 1l__xp_boxed_size_dim , 0l__xp_boxed_size_dim }
  draw_path_lineto:n { 1l__xp_boxed_size_dim , 1l__xp_boxed_size_dim }
  draw_path_lineto:n { 0l__xp_boxed_size_dim , 1l__xp_boxed_size_dim }
  draw_path_close:
  draw_path_use_clear:n { stroke }
  draw_path_moveto:n { 0l__xp_boxed_size_dim , 1l__xp_boxed_size_dim }
  draw_path_lineto:n { 1l__xp_boxed_size_dim , 0l__xp_boxed_size_dim }
  draw_path_use_clear:n { stroke }
  draw_path_moveto:n { 0l__xp_boxed_size_dim , 0l__xp_boxed_size_dim }
  draw_path_lineto:n { 1l__xp_boxed_size_dim , 1l__xp_boxed_size_dim }
  draw_path_use_clear:n { stroke }
  draw_end:
 }
 
cs_new_protected:Nn xp_boxedempty:n
 {
  dim_set:Nn l__xp_boxed_size_dim { #1 }
  draw_begin:
  draw_linewidth:n { l__xp_boxed_line_width_fp }  
  draw_path_moveto:n { 0l__xp_boxed_size_dim , 0l__xp_boxed_size_dim }
  draw_path_lineto:n { 1l__xp_boxed_size_dim , 0l__xp_boxed_size_dim }
  draw_path_lineto:n { 1l__xp_boxed_size_dim , 1l__xp_boxed_size_dim }
  draw_path_lineto:n { 0l__xp_boxed_size_dim , 1l__xp_boxed_size_dim }
  draw_path_close:
  draw_path_use_clear:n { stroke }
  draw_end:
 }
%---------------------------------------------------------
ExplSyntaxOff

begin{document}
{xpboxedtimesquad xpboxedempty}
begin{itemize}[label={xpboxedtimes[1ex][red]},leftmargin=*]
    item test
    item test
    item test
end{itemize}
end{document}

Answered by azetina on January 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP