Luego de buscar en diversos repositorios y páginas al final nos hemos encontrado la respuesta que te compartimos ahora.
Solución:
Una combinación de overset
y substack
le permite colocar las etiquetas y las flechas sobre los dígitos respectivos. Para asegurarse de que la presencia de las etiquetas no afecte el espaciado de los dígitos, use mathclap
. Si tiene muchos casos de este tipo, es útil definir un macro eso toma dos argumentos: la etiqueta y el dígito.
documentclassarticle
usepackagemathtools % to access overset, substack, mathclap, and text macros
newcommandbitpos[2]%
oversetsubstackmathclaptexttiny #1\ downarrow#2
begindocument
$bitposMSB1001100bitposLSB1$
enddocument
Apéndice: El código que se muestra arriba asume que bitpos
se utilizará en el modo matemático. Si ese no es necesariamente el caso, simplemente proporcione un ensuremath...
instrucción contenedora también, es decir, definir bitpos
como sigue:
newcommandbitpos[2]%
ensuremathoversetsubstackmathclaptexttiny #1\ downarrow#2
Quizás un poco más de lo esperado, pero bueno, obtienes conversión automática y eliminación opcional de las etiquetas.
documentclassarticle
usepackageamsmath,xparse
ExplSyntaxOn
NewDocumentCommandbitsOm
group_begin:
keys_set:nn chekooo/bits #1
chekooo_bits:n #2
group_end:
keys_define:nn chekooo/bits
convert .bool_set:N = l_chekooo_convert_bool,
convert .initial:n = false,
convert .default:n = true,
nosb .bool_set:N = l_chekooo_show_bool,
nosb .initial:n = false,
nosb .default:n = true,
cs_new_protected:Nn chekooo_bits:n
bool_if:NTF l_chekooo_convert_bool
chekooo_process:f int_to_bin:n #1
chekooo_process:n #1
cs_new_protected:Nn chekooo_process:n
bool_if:NTF l_chekooo_show_bool
#1
chekooo_bits_show:n #1
cs_generate_variant:Nn chekooo_process:n f
cs_new_protected:Nn chekooo_bits_show:n
int_compare:nTF tl_count:n #1 < 2
#1
__chekooo_bits_show:n #1
cs_new_protected:Nn __chekooo_bits_show:n
seq_set_split:Nnn l__chekooo_bits_seq #1
seq_pop_left:NN l__chekooo_bits_seq l__chekoo_msb_tl
seq_pop_right:NN l__chekooo_bits_seq l__chekoo_lsb_tl
mspace10mu % for the M
overset
substackscriptscriptstylehidewidthmathrmMSBhidewidth\downarrow
l__chekoo_msb_tl
mspace8mu
seq_use:Nn l__chekooo_bits_seq mspace8mu
mspace8mu
overset
substackscriptscriptstylehidewidthmathrmLSBhidewidth\downarrow
l__chekoo_lsb_tl
mspace8mu
seq_new:N l__chekooo_bits_seq
tl_new:N l__chekoo_msb_tl
tl_new:N l__chekoo_lsb_tl
ExplSyntaxOff
begindocument
[
bits1001+
bits[nosb]1001+
bits[convert]42+
bits[convert,nosb]42
]
[
bits0+bits1+bits10+bits11+bits100
]
enddocument
Comentarios y puntuaciones del artículo
Si guardas alguna incertidumbre o disposición de renovar nuestro tutorial te sugerimos realizar una anotación y con mucho gusto lo ojearemos.