conditional text separators, preventing formatting overrides

While I like the ability for Scrivener to insert customizable text separators via the File->Compile->Separators->Text Separator options, what I am finding is that sometimes I want to track two scenes separately, but have a smooth transition between them In such cases I wouldn’t want any separation in the compiled output, but I would still want separate documents. Now this is the minority case for me, but it still happens a lot.

I realize I could join those scenes together, but then I’d have to track them as one instead of two. I know I could tell Scrivener not to put in any extra line breaks or anything at all, but then I’d have to manually insert my line break into the text itself when I do need them. It would be nice if instead I had an option in the General Meta-Data, much like the “Page Break Before” option. Something like “Suppress Text Separator” to suppress any text separators before a given scene.

Something else that would be nice would be if I could make a block of text immune to having its formatting overridden from the File->Compile->Formatting->Override text and notes formatting setting. Visually I’m not sure how you’d denote such a thing, but it would be nice for cases where you have a small amount of preformatted text that you don’t want mucked with.

The second option will definitely be coming, as it’s something that’s already in the Mac version. It’s called “Preserve Formatting” and it looks like this when applied to a block of text:

The first option is more tricky without adding quite a bit of complexity, because it’s not a simple on/off flag like “Page break before” (or rather, it is in your case, but others may want specific separators for specific documents, not just to erase them, and then it gets tricky; whether you want a single line or double line separator is also tough. Let me mull it over, though.

All the best,
Keith

Very nice on the Mac version of Preserve Formatting. It’s a nit for me as I only have a couple places in my book where it matters at the moment, and if necessary I suppose I could just insert images for those.

One generic way you could handle the separators is by letting the user define a library of separators. Then they could choose from that library in the Compile menu and override it in the Meta-Data. So they could have a “Text Separator” dropdown option, which by default would be set to “Default” (in other words, use whatever is selected for Compile). They could just select an override from the dropdown to get a different one.

It gets a little trickier if you want to think about serious polish in Scrivenings mode, because you could ask, should Scrivener attempt to represent this somehow, by changing the default spacing, separator line, etc.? Should it put the custom separator into a non-editable area or something? Personally it doesn’t matter much to me, but I imagine you may be thinking along those lines.

Okay, I’ve been thinking about this and I have implemented a way of achieving this in Scrivener for Mac, which will eventually come to Scrivener for Windows. This is how it works:

In Scrivener for Mac, you can set up custom meta-data fields that appear in the inspector and as columns in the outliner. These can be for anything you want, and you can include their values in Compile by using the <$custom:MetaDataName> tag. So, to achieve what you want, here’s how you would do this in the next update of Scriv for Mac:

  1. Set up a “Separator” meta-data field.

  2. For any items that need a custom separator (e.g. “* * *”), enter that in the “Separator” field; for other documents, leave the field blank:

  1. In Compile, choose “Custom” as the separator type, and enter “<$custom:Separator>” as the separator text.

Now, when you compile, most documents will have no separator (because the <$custom…> text will be replaced with nothing as their “Separator” fields are empty), but the ones you added the “* * *” separator to will use that. I’ve set it up so that if the custom separator is empty, only a single line break will be used (but you can force it to use two line breaks by adding a newline after the <$custom…> tag in Compile).

This adds no complexity to Compile for most users who won’t need this, but allows complete control over separators for those who need it using an existing feature (custom meta-data).

I know this doesn’t help you on Windows just yet, but it does mean that it is something that you will be able to do in Windows once custom meta-data is added for version 2.0.

Oh no, I’m definitely not thinking along those lines. :slight_smile: Scrivenings mode is intended as a quick overview of your documents combined as one, not as a representation of Compile, which would be very slow.

All the best,
Keith

Was this added yet? In Scrivener 1.7 I understand that Custom Meta-Data was added, but (in 1.8.5.0) I am not seeing the <$custom:MetaDataName> placeholder tag in the help doc, and trying it out in Compile, I literally got the text “<$custom:MetaDataName>” between each scene.

Preserve Formatting has been added to the Windows version, but it’s not yet possible to use custom meta-data for separators.