When you create your own publishing site definition then you can configure SharePoint out of the box publishing feature in onet.xml
Example: when you open onet.xml of existing publishing site definition then you find publishing feature configured like this:
<Feature ID="22A9EF51-737B-4ff2-9346-694633FE4416">
<Properties xmlns="http://schemas.microsoft.com/sharepoint/">
<Property Key="ChromeMasterUrl" Value=""/>
<Property Key="WelcomePageUrl" Value="$Resources:cmscore,List_Pages_UrlName;/default.aspx"/>
<Property Key="PagesListUrl" Value=""/>
<Property Key="AvailableWebTemplates" Value=""/>
<Property Key="AvailablePageLayouts" Value=""/>
<Property Key="SimplePublishing" Value="true" />
</Properties>
</Feature>
So you can obviously copy and paste this OOB configuration to use in your custom site definition,
So as curiosity I was googling for more options using which we can configure publishing feature , in fact I was trying to explore more properties of this feature and I came to know that there are many more properties available using which you can configure this feature, like : Scheduling of pages , versioning, workflow settings of pages library.
AlternateCssUrl
AvailablePageLayouts
AvailableWebTemplates
ChromeMasterUrl
EnableApprovalWorkflowOnDocuments
EnableApprovalWorkflowOnImages
EnableApprovalWorkflowOnPages
EnableModerationOnDocuments
EnableModerationOnImages
EnableModerationOnPages
EnableSchedulingOnDocuments
EnableSchedulingOnImages
EnableSchedulingOnPages
MigrationOverride
PagesListUrl
RequireCheckoutOnDocuments
RequireCheckoutOnImages
RequireCheckoutOnPages
SimplePublishing
VersioningOnDocuments
VersioningOnImages
VersioningOnPages
Refn: Sezai's blog and this beautiful link