Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
Locked
0

Can you force lower-case with a style?

Participant ,
Jun 09, 2025 Jun 09, 2025

Our TOCs pull headings from the document that are in all caps, but we don't want the TOC entries to be in all caps. I've seen examples of grep styles that can apply a character style to make letters capitalized, but I don't think I've seen the opposite. Is it possible?

 

Screenshot 2025-06-09 090305.png

TOPICS
How to
749
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Jun 09, 2025 Jun 09, 2025

Although there is an attribute style called lowercase, in a sense, there is no such thing as the opposite as a style or attribute because InDesign cannot read and know when a word should be capitalized. But you can Find/Change Heading text to be typed (a new addition called Change Case) in Sentence Case, or Title Case, or lowercase. Next, the Heading style could be edited to apply the appearance of all caps. This basically gets you back to where you were before, except that it is now built corre

...
Translate
Community Expert ,
Jun 09, 2025 Jun 09, 2025

Create a lower case character style and then use that as a nested style.

None through one character, lower case through a space. Repeat that as many times as you need to cover the full heading.

2025-06-09_12-25-48.png

 

Edit: Characters and letters will both work here.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

Although there is an attribute style called lowercase, in a sense, there is no such thing as the opposite as a style or attribute because InDesign cannot read and know when a word should be capitalized. But you can Find/Change Heading text to be typed (a new addition called Change Case) in Sentence Case, or Title Case, or lowercase. Next, the Heading style could be edited to apply the appearance of all caps. This basically gets you back to where you were before, except that it is now built correctly and typed correctly. Lastly, the ToC could be refreshed and it would pull in properly typed upper/n/lowercase characters.

Mike Witherell
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 09, 2025 Jun 09, 2025

Thanks Mike. But, in this case, it turns out that there is the opposite of all-caps: "Lowercase." It's just missing from the Character properties section of the Properties tab, which does show all-caps.

 

noLowerCaseButton.png

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

The appearance panel does not duplicate every function of the character and paragraph styles panel.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 09, 2025 Jun 09, 2025

Yep. Which is why I didn't know there was a "lowercase" option for characters. Meanwhile, I'm looking at your suggestion (and thanks for that), but I don't think it can be made to respect "title"-style capitalization. So I probably need a grep style.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

Look at it again. It honors the base style which is caps through one letter and then applies the lower case through the space. Lather, rinse and repeat.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 09, 2025 Jun 09, 2025

But what if the word after the space is "the" or "a" or another that should not be capitalized?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

Title case will capitalize them as well.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

Someone (certainly not me) may come up with something but in the future, I'd type it properly in the first place and apply all caps to the heading style. Then when it comes into the TOC, it will already be done.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 09, 2025 Jun 09, 2025

Yeah, good solution! That works. Thanks.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

Which is what I said in my comment above! <LOL> Perhaps I should have said "intelligently" lower-cased in order to be better understood. My basic rule is: don't type in all caps, but rather apply the appearance attribute of all caps. That way, when you get in a situation like yours, it produces upper and lowercase intelligently, especially when you generate a ToC.

Mike Witherell
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

Way back in the day, Dave Saunders wrote a smart title case script. Maybe someone has it filed away somewhere.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025
quote

Way back in the day, Dave Saunders wrote a smart title case script. Maybe someone has it filed away somewhere.


By @BobLevine

Ask and ye shall receive:

//DESCRIPTION: Converts selected text to title case smartly
 
// Customize this script by either editing these arrays:
var ignoreWords = ["a","and","the","to","with","in","on","as","of","or","at","is","into","by","from", "their", "then", "for"];
var intCaps = ["PineRidge","InDesign","NJ","UMC", "FCCLA", "SkillsUSA", "d’Oeuvres"];

// or by creating text files named ignoreWords.txt and intCaps.txt in the script's folder

ignoreWords = getIgnoreFile(ignoreWords);
intCaps = getIntCaps(intCaps);

try {
	myText = app.selection[0].texts[0].contents;
} catch(e) {
	exit();
}

theWordRanges = myText.split("/");
for (var i = theWordRanges.length - 1; i >= 0; i--) {
	theWords = theWordRanges[i].toLowerCase().split(" ");

	//First word must have a cap, but might have an internal cap

	myNewText = "";
	for (var j = 0; theWords.length > j; j++) {
		k = isIn(intCaps,theWords[j])
		if (k > -1) {
			myNewText = myNewText + intCaps[k] + " ";
			continue;
		} else {
			if ((isIn(ignoreWords,theWords[j]) > -1) && (j != 0)) {
				myNewText = myNewText + theWords[j] + " ";
			} else {
				myNewText = myNewText + InitCap(theWords[j]) + " ";
			}
		}
	}
	theWordRanges[i] = myNewText.substring(0,myNewText.length - 1)
}
app.selection[0].texts[0].contents = theWordRanges.join("/");

// +++++++ Functions Start Here +++++++++++++++++++++++

function getIgnoreFile(theWords) {
	var myFile = File(File(getScriptPath()).parent.fsName + "/ignoreWords.txt");
	if (!myFile.exists) { return theWords }
	// File exists, so use it instead
	myFile.open("r");
	var importedWords = myFile.read();
	myFile.close();
	return importedWords.split("\n"); // Could filter these, but what's the point?
}

function getIntCaps(theWords) {
	var myFile = File(File(getScriptPath()).parent.fsName + "/intCaps.txt");
	if (!myFile.exists) { return theWords }
	// File exists, so use it instead
	myFile.open("r");
	var importedWords = myFile.read();
	myFile.close();
	return importedWords.split("\n"); // Could filter these, but what's the point?
}

function getScriptPath() {
	// This function returns the path to the active script, even when running ESTK
	try { 
		return app.activeScript; 
	} catch(e) { 
		return e.fileName; 
	}
}

function isIn(aList,aWord) {
	for (var i = 0; aList.length > i; i++) {
		if (aList[i].toLowerCase() == aWord) {
			return i;
		}
	}
	return -1;
}

function InitCap(aWord) {
	if (aWord.length == 1) {
		return (aWord.toUpperCase());
	}
	return (aWord.substr(0,1).toUpperCase() + aWord.substring(1,aWord.length))
}

 

With apologies to Dave if I shouldn't be posting this. Let Bob know and he can remove it.

No idea if it will run in a current version, but it might run if put in the correct Version X.0 subfolder. Date on the file I have is 2006.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 09, 2025 Jun 09, 2025

Nice! Thanks for digging that up. Just looking at it quickly: Why split on slashes? Were those specific to the author's use case, or is there something I'm overlooking there?

 

Side question: Why can you arbitrarily not upvote some posts, but you can others? Clicking on "upvote" frequently does nothing.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

you are not the first person to tell me upvoting is broken.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

I've had trouble upvoting a post (not my own) right after I posted a reply. I find if I wait a minute and go back to the page, I can upvote. My unoficial thought is that the system needs a little time to cycle. 

 

David Creamer: Community Expert (ACI and ACE 1995-2023)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025
quote

I've had trouble upvoting a post (not my own) right after I posted a reply. I find if I wait a minute and go back to the page, I can upvote. My unoficial thought is that the system needs a little time to cycle. 

By @Dave Creamer of IDEAS

 

Yeah it's a known issue that affects some threads seemingly at random. One of Adobe reps said they were looking into this some time ago.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 09, 2025 Jun 09, 2025

I just tried to upvote Peter's comment, to no avail.

 

Oh yeah, that's another fun aspect of this forum: trying to figure out who's replying to what, since the replies are just one big stack.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

Yes, the one-level reply is a pain and has been complained about many times. 

 

David Creamer: Community Expert (ACI and ACE 1995-2023)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 10, 2025 Jun 10, 2025

Packrat. 🙂

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 10, 2025 Jun 10, 2025

Guilty as charged.

Hard drives are cheap.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 09, 2025 Jun 09, 2025

Yes, full credit to you as well, Mike. Your first sentence threw me off and I didn't absorb the rest of what you were saying, in my haste to read everything. Have an upvote. And 50 points for Gryffindor.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 09, 2025 Jun 09, 2025

You cannot upvote your own post; only others.

Mike Witherell
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 09, 2025 Jun 09, 2025

I wasn't trying to upvote my own. I tried to upvote Peter's and couldn't. I'd say more than half the time you can't upvote other people's posts.

 

And on another side note, why does this forum E-mail you a notice of every one of your own posts? So dumb.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines