I would like to be able to apply a paragraph style, and have Scrivener automatically put the text in that paragraph all into uppercase. (Ideally it would be great a different style is applied then the caps are returned to the their original state, but that sounds like a big ask to me - just apply capitilisation in one direction would work fine for me).
Alternatively, can ‘All caps’ be applied to a style, during the compile phase. I’ve searched the menus and documentation and not found an obvious answer.
which looks a bit different to your screen shot. I searched through most of the fonts, but could not see any sign of one with an All-Caps option. The only caps related font I found was Bodoni 72 Small Caps. Am I missing something or do I need to install some extra fonts? (but really I would just like to force the text to be capitalised, in Courier font say, as if I had typed it in all capitalised - or as if I had selected the text and clicked Edit-Transformations-Capitalise.
Looks like Tahoe. So, Apple found a way to bury the setting even deeper. Great. I have no idea where it’s hidden now.
As for the fonts, yeah, you have to look for quality ones that either come with small caps included as an OpenType feature or that offer a separate “SC” version. Adobe’s Source Serif is a good example, and also completely free.
Just to clarify, do you want ALL UPPER CASE, or small caps?
Upper case is relatively easy. All fonts have a complete set of upper case glyphs.
Small caps is harder. Many fonts don’t have them, and they don’t necessarily survive the translation to other formats. We have not found a robust way to implement small caps. If you want them, my suggestion would be to mark the text with a style and then use the formatting capabilities of Word (or whatever) to reformat that style.
I’m still not quite sure how to make is to the style forces upper case, eg in Courier or Times New Roman. This is what I see when I try and format the sentence/define the style:
Is there a problem on my sysytem because of the ‘Glyphs not available’?
What I think i want is to make the underlying character an upper case character - rather than map it to an upper case glyph. Ie if we were dealing with ASCII and the character was ‘a’ (ie hex 40) then I would want to change to ‘A’ (hex 60). Then it would be rendered as a capital whatever subsequent font was used to actually display or print it. Does that make sense?
Yes, that makes sense and is probably the easiest.
However, it doesn’t appear to be possible to define “uppercase” as an attribute of a style in either Scrivener or Word. You’ll need to type it in uppercase to begin with. (Or use the Transformations menu, which has the same effect.)
The downside being that this is just a simple process in one direction. Even with a good dictionary, unless both versions are stored and kept in sync somehow (I don’t even want to think about this across different apps), there’s just no reliable way back to mixed case. I say this because it was one of the requirements, or at least a strong nice-to-have.
On the other hand, this can be neatly wrapped into a style:
It is literally the same text. Yes, a different program may not pick up the typographic setting correctly, but then again, it’s just a style…
Unless the fonts involved are the show-stoppers (which will often be the case, sad reality), I’d still advise against reinventing the wheel. Especially if you have full control of the whole process.
It is possible in Word to define a style, that when applied makes the selected text appear in all capitals. It does not actually change the characters in the text, just applies the upper case elements of the selected font (is that what a glyph is?). If you remove the style and apply a different one, the original case of the letters in the selected text are restored….
I guess I could also write a macro in Word to find all the pieces of text with a given style, and then make them all uppercase. I was trying to avoid any programming though.
(the reason I’m even trying to do this is described in:
Basically my use case involves building a book that contains many different types of document: prose (short stories, memoire, essays), poetry, scripts (for a mix of radio, tv, stage and film) and other stuff. And then find a way of having a single source (ie a Scrivener project) that can then be relatively used to produce both printed books (in various different sizes, eg hardback, paperback) and also digitial media such as ePub and Kindle.
It’s not overambitious, it’s the reason why the Compiler exits (IMHO). That’s why we try to push you in the Styles-direction. Let the Compiler handle the destructive stuff (like converting text to uppercase if really necessary). Even if you struggle with that fonts-stuff right now, assign a style, don’t change the text, figure that part out later. It will save you a lot of grief.
Fortunately, macro writing in VB is easy now with ChatGPT, so the ‘use a macro in Word’ solution is relatively easy to implement:
ChatGPT:
write a word macro that finds all the pieces of text in a Microsoft word document that have been styled with the ‘ScriptAction’ style and convert the text to all uppercase.
Ah, but I may want to change a number of styles - it is probably easier to do this programmatically than manually. Since I want to generate the book many times probably (ie it will have lots of incremental versions) the less manual steps the better.
Yes, I like Scrivener - largely because it does separate the two task of ‘writing the stuff’ and the ‘laying the stuff out in a physical format’. And I really like Scriveners management of multiple documents in folders - which is great for complex documents. Otherwise I would probably just write the book in Word or something similar. But it would hardly be enjoyable. Many thanks for your help…
If you change the style specification, then it’s changed forever, and all future text using that style will look the same way. If you change the formatting of the text, then you’ve only changed text that already exists. (And it’s vulnerable to being changed back unexpectedly, since it’s just text formatting.)
Again, that’s one of the things styles give you: ability to normalize all existing and future text to the specified formatting, and to change that formatting as needed.
Then if your compile target is Word, you have it made. Define a style in Scriv with the same name as the style you’ve defined in Word (make sure the latter is in your Normal template). Make sure your compile setting is set to send out style names when you compile to Word. Your styled text will then be in the designated style when it shows up in your Word doc. [If your compiled docx is not invoking your Normal template, copy all from that docx and paste into a new Word doc.]