List indentation with show rule but top-level doesn't change

Hello, I wanted to change the indentation of lists at the beginning but I found that if I do set list inside of brackets, the top level doesn’t change.

// work as expected.
#set list(indent: 1em)
#show list: set list(indent: 1em)
// Doesn't work on top-level items. Indents children items okay.
#show list: it => [#set list(indent: 1em); #it]

I wanted to apply multiple styles to bullets so I wanted to use a show rule instead of multiple separate rules. Why doesn’t the 3rd code work like the other two?

Hi there,

There are a few posts around like this one that should answer your question. tl;dr: you should use a show: set rule rather than a basic show rule.

1 Like

Thanks for the help. I think my question is a bit different because I’m not talking about precedence. I’m not running the 3 codes all together at the same time. I’m running each one one-at-a-time. If I just have this: #show list: it => [#set list(indent: 1em); #it], it only updates the children items, it doesn’t update the top-level items.

Hi again,

Please don’t take the title of the cited post into account while reading my reply. I was answering considering each rule used separately as you are describing.

If you read through the post, you will find:

I believe this is what is happening with your 3rd case, the show list: it => … The it list is already materialized with the default values and the rule is applied afterwards.