Tom,
You have sort of found it, but also not completely found what is happening.
When you edit metadata in calibre, the actual book is not updated. Only the database that calibre uses is updated. The metadata in the actual book is only updated when you get calibre to send the book outside its library. As you found, it happens when you do a save to disk, it also happens with a send to device. But, calibre is only updating the it has created outside the library. If you open the book from calibre, it won't have changed.
You can get the metadata updated in the library copy of the book. The traditional way to do it is a conversion to the same type. But, it can be done with the Modify ePub plugin. And in the latest version of calibre, the "Polish books" function has been added that can do it.
There is another issue with this that is specific to Kobo devices and is part of what Geoff was referring to. When you send a book to the Kobo device, it process the book and adds it to the internal database. The details of the book are displayed from there. If you replace the book with a new copy that has changed metadata, the book isn't reprocessed to get the updated metadata. There isn't a way to fix this at the moment other than deleting the book from the device first.
The covers are a little different. If the book is in the main memory of the device, the device generates the cover as needed and saves the image file for later use. When the book is resent, this doesn't trigger the covers to be regenerated. But, there is an option in the calibre driver that will replace existing cover images. If the book is on the micro SD card, the cover is generated each time it is needed and not save. Replacing that book should use the new cover from the book straight away.
Because of the above, I have on my todo list for the Kobo driver to add a "Remove covers on resend" option. Updating the metadata is also something to do, but I am thinking of a different approach to start with.
|