Titles should not be capitalized
Zotero is great, however, the biggest drawback at this time is that when I pull a citation in from many types of references, the title of the article is capitalized when both AMA and APA style mandate that it not be. I have to go through and manually un-capitalize the title, slowing the process and lowering the utility of Zotero considerably.
If this simple problem could be tweaked, Zotero would be much more useful.
If this simple problem could be tweaked, Zotero would be much more useful.
I publish frequently and here's a sample citation in APA.
Kessler, R. C., Chiu, W.T., Demler, O., & Walters, E. E. (2005) Prevalence, severity, and
comorbidity of twelve-month DSM-IV disorders in the National Comorbidity Survey Replication (NCS-R). Archives of General Psychiatry, 62(6), 617-627.
[I don't expect it to automatically capitalize the NCS-R part; what I don't understand is why, if it is indeed APA format, it formats the title as "Prevalence, Severity, And Comorbidity..."- that isn't APA format.
I saw that there was a "sentence case" format option for earlier versions of Zotero- I'm using the Beta, maybe this isn't fixed, just yet.
But it is frustrating to need to do programming in order to make APA style look like APA style.
The reason we/I don't use the "sentence case" command for any style is that it isn't a very smart command - and I don't think there is any way to make it:
Specifically, it can't deal with proper names and other things that need to be capitalized - in your first example, the sentence-case command would turn this into
"Prevalence, severity, andcomorbidity of twelve-month DSM-IV disorders in the national comorbidity survey replication (NCS-R)"
Which is even more useless. (I believe it gets acronyms right, at least).
So try to save your titles as sentence case - it's obviously much easier to convert those into title case where required - and you won't have to do it manually for every document.
If you have a different idea on how to solve this let us know.
I would think sentence case would require far less editing.
For me, as an academic that writes in APA and AMA format, automatic capitalization is a big time-killer. Adding capitals to a few proper nouns etc doesn't take long.
Most importantly if there is a way to make the default as sentence case for both AMA and APA, that'd be very helpful.
Many thanks.
In the csl find
<macro name="title">
<choose>
<if type="report thesis" match="any">
<text variable="title" font-style="italic"/>
<group prefix=" (" suffix=")">
<text variable="genre"/>
<text variable="number" prefix=" No. "/>
</group>
</if>
<else-if type="book speech" match="any">
<text variable="title" font-style="italic"/>
</else-if>
<else>
<text variable="title"/>
</else>
</choose>
</macro>
and change it to:
<macro name="title">
<choose>
<if type="report thesis" match="any">
<text variable="title" font-style="italic" text-case="sentence"/>
<group prefix=" (" suffix=")">
<text variable="genre"/>
<text variable="number" prefix=" No. "/>
</group>
</if>
<else-if type="book speech" match="any">
<text variable="title" font-style="italic" text-case="sentence"/>
</else-if>
<else>
<text variable="title" text-case="sentence"/>
</else>
</choose>
</macro>
see
http://www.zotero.org/support/csl_simple_edits
for general instructions.
But as I said I won't put this on the repository.
Here is the thing about sentence and title case:
Title case is a pretty simple procedure, so Zotero does it well.
Sentence case is very complicated (essentially impossible) to do automatically, so Zotero does it poorly.
Zotero has the ability to print titles as they are in the database. So the best idea is to keep all of your titles in the database in sentence case. This may require editing the title once in the database.
All the styles that require sentence case will then be correct by just printing what's in the database, all style requiring title case will work by using the text-case="title-case" command in the csl file - so everything will look right.
On the other hand, with a style that uses the text-case="sentence-case" command, the user will have to manually alter capitalization in the titles in every newly created document - which is why I don't use it.
The problem with saving to sentence case is actually one of the translators you are using: They have to work with whatever the databases you are scraping from give them - some (many?) work nicely giving you sentence case, others provide title case or even all caps - in those cases there is nothing Zotero can do - you should than transform to lowercase and adjust the title to sentence case manually.
In my current work-flow, I convert all title case titles to sentence case by using the "Text transform > lower case" conversion, followed by manual corrections. A "Text transform > Sentence case" option would save me a considerable amount of work, even though it might not cover all cases (no pun intended). I.e. I would no longer need to recapitalize the first character of the title, and words that are fully capitalized, such as gene names (e.g. PYC2).
Here is a link to a full-featured case manager that is invoked by holding down the Caps Lock key http://www.autohotkey.com/forum/topic34277.html.
And here, is the code I use just to convert text to sentence case (if you need instructions on how to use Autohotkey, go to www.autohotkey.com). I have the script triggered by Ctrl-Shift-U (highlight the text you want converted and simultaneously press Ctrl, Shift and U), but you can change that to whatever you like. Of course, this works in any context, not just Zotero/Firefox.
+^u::
; Sentence case
Convert_Sentence()
RETURN
Convert_Sentence()
{
Clip_Save:= ClipboardAll
Clipboard:= ""
Send ^c{delete} ; copy highlighted text to clipboard
StringLower, Clipboard, Clipboard
Clipboard := RegExReplace(Clipboard, "(((^|([.!?:]+\s+))[a-z])| i | i')", "$u1")
Send %Clipboard% ; send desired text
Len:= Strlen(Clipboard)
Send +{left %Len%}
Clipboard:= Clip_Save
}
Here's a small fix to the original script. I changed the trigger key to F6, but edited the script so that it will only affect that key's function when you are in Firefox. I also edited so that it no longer adds the extra space. Anyway, here it is:
;SENTENCE CASE FOR SELECTED TEXT IN ZOTERO
#IfWinActive, ahk_class MozillaUIWindowClass
F6::
; Sentence case
Convert_ZoteroSentence()
RETURN
Convert_ZoteroSentence()
{
Clip_Save:= ClipboardAll
Clipboard:= ""
Send ^c{delete} ; copy highlighted text to clipboard
StringLower, Clipboard, Clipboard
Clipboard := RegExReplace(Clipboard, "(((^|([.!?:]+\s+))[a-z])| i | i')", "$u1")
Send %Clipboard% ; send desired text
Len:= Strlen(Clipboard) + 1
Clipboard:= Clip_Save
}
#IfWinActive
It would be nice to have a sentence case button next to the Title Field to convert ALL CAPS -> Sentence case
Obviously, I would have to fix acronyms and what not, but that is easier than retyping the whole thing (see how ms word can toggle cases). Also, I think this kind of thing would be better handled in Zotero's interface than in the CSL.
Adding an option for (pseudo) sentence case is planned, see Dan's post and the ticket above in this thread.