Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Software > Calibre > Library Management

Notices

Reply
 
Thread Tools Search this Thread
Old 06-08-2024, 03:43 AM   #1
Bozana
Bozana
Bozana began at the beginning.
 
Bozana's Avatar
 
Posts: 16
Karma: 10
Join Date: Jan 2013
Device: PC
Question Proper Case Titles

I would love to have a feature that is Propercase, which is every single first letter, is Uppercase, such as a to A or the to The. Titlecase only goes so far, however, I would strongly prefer Propercase. Is there a way I could do this with Regular Expression for titles of books, please?
Bozana is offline   Reply With Quote
Old 06-08-2024, 04:23 AM   #2
BetterRed
null operator (he/him)
BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.
 
Posts: 20,704
Karma: 27405072
Join Date: Mar 2012
Location: Sydney Australia
Device: none
Quote:
Originally Posted by Bozana View Post
I would love to have a feature that is Propercase, which is Every Single a First Letter, is Uppercase, such as a to A or the to The. Titlecase only goes so far, however, I would strongly prefer Propercase. Is there a way I could do this with Regular Expression for titles of books, please?
If you are using Windows have a look at AnyCase - Multi-Program Direct In-place Case Converter For Windows

The free version is adequate for most things. For me the big advantage is that can be used just about anywhere - calibre metadata and book editing, file manager, word processors, spread sheets, text editors, etc, etc. Avoids having to remember a dozen different ways to do essentially the same thing in a dozen different programs.

BR
BetterRed is offline   Reply With Quote
Old 06-08-2024, 08:54 AM   #3
kovidgoyal
creator of calibre
kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.kovidgoyal ought to be getting tired of karma fortunes by now.
 
kovidgoyal's Avatar
 
Posts: 44,034
Karma: 22669822
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
Sure use function mode and write a simple function to do that. You can use the builtin case functions as a guide for how to write the function. https://manual.calibre-ebook.com/function_mode.html
kovidgoyal is offline   Reply With Quote
Old 06-08-2024, 10:13 PM   #4
Bozana
Bozana
Bozana began at the beginning.
 
Bozana's Avatar
 
Posts: 16
Karma: 10
Join Date: Jan 2013
Device: PC
Quote:
Originally Posted by BetterRed View Post
If you are using Windows have a look at AnyCase - Multi-Program Direct In-place Case Converter For Windows

The free version is adequate for most things. For me the big advantage is that can be used just about anywhere - calibre metadata and book editing, file manager, word processors, spread sheets, text editors, etc, etc. Avoids having to remember a dozen different ways to do essentially the same thing in a dozen different programs.

BR
Hi!

However, it doesn't do on mass, with over 45k worth of titles in Calibre. I need a regex script that works with Calibre to do it on mass. Anyone has ideas please?

I have Magic File Renamer By Fine Bytes, that is useful but only renames files and nothing to do with Calibre.

Thank you BetterRed for trying xoxoxo
Bozana is offline   Reply With Quote
Old 06-09-2024, 04:15 AM   #5
BetterRed
null operator (he/him)
BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.
 
Posts: 20,704
Karma: 27405072
Join Date: Mar 2012
Location: Sydney Australia
Device: none
The calibre book editor doesn't edit metadata - the way to do what you want is select multiple books in the book list, then Metadata edit->Edit metadata in bulk, viz:

Click image for larger version

Name:	Screenshot 2024-06-09 180304.jpg
Views:	30
Size:	134.8 KB
ID:	208762

BR
BetterRed is offline   Reply With Quote
Old 06-10-2024, 09:12 AM   #6
Bozana
Bozana
Bozana began at the beginning.
 
Bozana's Avatar
 
Posts: 16
Karma: 10
Join Date: Jan 2013
Device: PC
Quote:
Originally Posted by BetterRed View Post
The calibre book editor doesn't edit metadata - the way to do what you want is select multiple books in the book list, then Metadata edit->Edit metadata in bulk, viz:

Attachment 208762

BR
I'm not looking for title case. I'm looking for Proper Case. Title case leaves the "a" and "the" as lower case etc.., when converted. Whilst, Proper Case makes ALL first letters to Upper case, including "A" and "The" etc..

Title case:

He Lives in Edmonton, but Services all Over the Region, as a Electrican

Proper Case:

He Lives In Edmonton, But Services All Over The Region, As A Electrican


I already know that trick with Title Case that you've showed... I'm chasing Proper Case...

Thank you anyway.
Bozana is offline   Reply With Quote
Old 06-10-2024, 11:41 AM   #7
chaley
Grand Sorcerer
chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.chaley ought to be getting tired of karma fortunes by now.
 
Posts: 11,806
Karma: 7029971
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
Quote:
Originally Posted by Bozana View Post
I'm not looking for title case. I'm looking for Proper Case. Title case leaves the "a" and "the" as lower case etc.., when converted. Whilst, Proper Case makes ALL first letters to Upper case, including "A" and "The" etc..

Title case:

He Lives in Edmonton, but Services all Over the Region, as a Electrican

Proper Case:

He Lives In Edmonton, But Services All Over The Region, As A Electrican


I already know that trick with Title Case that you've showed... I'm chasing Proper Case...

Thank you anyway.
You can do this with Bulk metadata edit / Search & replace using "template" as the source.
  1. Backup your library in case things go pear shaped.
  2. Select all the books you want to change.
  3. Go to Bulk metadata edit, search & replace tab. Make it look like the following:
    Click image for larger version

Name:	Clipboard02.jpg
Views:	36
Size:	134.4 KB
ID:	208788

    The template code is:
    Code:
    python:
    def evaluate(book, context):
    	import re
    	nt = []
    	for w in re.split(r'([ _.()])', book.get('title')):
    		nt.append(w.capitalize())
    	return ''.join(nt)
    The r'([ _.()])' is the list of letters that separate words to be capitalized. This choice may not be the best for your library. You might want to add more letters. You could use r'(\W)', all non-alphabetic letters, but this might do the wrong thing with words like "_aaa" (aaa would not be capitalized) or "a.b" (b would not be capitalized). The choice depends on how much cleanup is required. Personally, I would use r'(\W)' and clean up the odd wrong title.

    If you change the template you can test it on some books using the template editor before running it in Search & replace.
  4. Press OK. Wait. Changing titles requires writing the disk, which can take some time.
  5. Check the results. If they aren't what you want then restore the backup.

EDIT: This template uses the python title() function to "Return a titlecased version of the string where words start with an uppercase character and the remaining characters are lowercase." It does a better job in some cases but suffers from changing words like "isn't" to "Isn'T".
Code:
python:
def evaluate(book, context):
	return book.get('title').title()

Last edited by chaley; 06-10-2024 at 12:12 PM.
chaley is offline   Reply With Quote
Old 06-10-2024, 08:12 PM   #8
BetterRed
null operator (he/him)
BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.BetterRed ought to be getting tired of karma fortunes by now.
 
Posts: 20,704
Karma: 27405072
Join Date: Mar 2012
Location: Sydney Australia
Device: none
Quote:
Originally Posted by Bozana View Post
I'm not looking for title case. I'm looking for Proper Case.
I mistakenly assumed that's what Capitalize case did, but I see it does what is commonly called Sentence case - I normally check these things

Moderator Notice
Moved to Library Management

BR
BetterRed is offline   Reply With Quote
Old 06-10-2024, 10:48 PM   #9
Bozana
Bozana
Bozana began at the beginning.
 
Bozana's Avatar
 
Posts: 16
Karma: 10
Join Date: Jan 2013
Device: PC
Thumbs up

Quote:
Originally Posted by chaley View Post
You can do this with Bulk metadata edit / Search & replace using "template" as the source.
  1. Backup your library in case things go pear shaped.
  2. Select all the books you want to change.
  3. Go to Bulk metadata edit, search & replace tab. Make it look like the following:
    Attachment 208788

    The template code is:
    Code:
    python:
    def evaluate(book, context):
    	import re
    	nt = []
    	for w in re.split(r'([ _.()])', book.get('title')):
    		nt.append(w.capitalize())
    	return ''.join(nt)
    The r'([ _.()])' is the list of letters that separate words to be capitalized. This choice may not be the best for your library. You might want to add more letters. You could use r'(\W)', all non-alphabetic letters, but this might do the wrong thing with words like "_aaa" (aaa would not be capitalized) or "a.b" (b would not be capitalized). The choice depends on how much cleanup is required. Personally, I would use r'(\W)' and clean up the odd wrong title.

    If you change the template you can test it on some books using the template editor before running it in Search & replace.
  4. Press OK. Wait. Changing titles requires writing the disk, which can take some time.
  5. Check the results. If they aren't what you want then restore the backup.

O

EDIT: This template uses the python title() function to "Return a titlecased version of the string where words start with an uppercase character and the remaining characters are lowercase." It does a better job in some cases but suffers from changing words like "isn't" to "Isn'T".
Code:
python:
def evaluate(book, context):
	return book.get('title').title()
Oh my goodness! Thank you so very, very much! This has been bothering me for years! I'm lvl 2 autistic and and old fashioned. I grew up with books that had Proper Case on book covers, in the 70's. So much appricated and I'm beyond grateful! xoxoxo

And yes it works and I'm so happy! You've made my day!
Bozana is offline   Reply With Quote
Old 06-10-2024, 11:45 PM   #10
DNSB
Bibliophagist
DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.DNSB ought to be getting tired of karma fortunes by now.
 
DNSB's Avatar
 
Posts: 37,008
Karma: 148321038
Join Date: Jul 2010
Location: Vancouver
Device: Kobo Sage, Libra Colour, Lenovo M8 FHD, Paperwhite 4, Tolino epos
Quote:
Originally Posted by Bozana View Post
I grew up with books that had Proper Case on book covers, in the 70's. So much appricated and I'm beyond grateful! xoxoxo
I just dug back into some of my older books from the 60s and 70s. 6 out of 10 used Title Case though many seemed fonder of Caps and small caps. Very few use Proper Caps. Now to avoid getting sucked into re-reading that box of Ace Doubles.

OTOH, your books and your choice for the titles.
Attached Thumbnails
Click image for larger version

Name:	stranger_in_a_strange_land.jpg
Views:	14
Size:	52.2 KB
ID:	208794  
DNSB is online now   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
10% Credit Towards Great on Kindle Titles When Purchasing One of Those Titles Manabi Deals and Resources (No Self-Promotion or Affiliate Links) 0 11-01-2019 01:07 AM
my kindle doesn't show proper file name in case of pdfs barteq Devices 1 03-06-2017 10:09 PM
kindle origami voyage case or the leather origami case? want a simple case wakkaday Amazon Kindle 14 10-19-2016 12:56 PM
Sigil Proper Case Setting Themus Sigil 14 04-26-2013 03:47 AM
change book file name from capital letters to proper case tsolignani Library Management 12 03-28-2013 04:16 AM


All times are GMT -4. The time now is 05:52 PM.


MobileRead.com is a privately owned, operated and funded community.