You can have replication take care of this automatically for you when you create a table article. As long as whatever value you're specifying for @schema_option
in the call to sp_addarticle
contains 0x40, the snapshot script will contain the relevant create index
statements.
That said, for existing articles, the comment on the question made by @pacreely is completely correct; as long as you don't touch the primary key, you can pretty much do whatever you want. That is, if you're doing replication to support a reporting workload, you can add indexes only to your subscribed database and not have to add them to your published database.