On Apr 2, 2010, at 21:54, Peter Cowan wrote:

> On Fri, Apr 2, 2010 at 9:53 AM, Christiaan Hofman <[email protected]> wrote:
>> 
>> On Apr 1, 2010, at 23:29, Peter Cowan wrote:
>> 
>>> On Thu, Apr 1, 2010 at 2:03 PM, Christiaan Hofman <[email protected]> 
>>> wrote:
>>>> 
>>>> On Apr 1, 2010, at 22:15, Peter Cowan wrote:
>>>> 
>>>>> I'm using biblatex in the TeX preview window.  And, since I often
>>>>> import directly from ISI using the Web of Science Search function, I
>>>>> get regular errors related to commas in the address or institution
>>>>> field.  Perhaps there is a solution through biblatex to this problem,
>>>>> but I'm fine with either protecting or deleting the
>>>>> Address/Institution field on import.
>>>>> 
>>>>> Script hooks seem like the perfect solution to this problem, but I am
>>>>> not an applescript users.  I've tried to cobble something together
>>>>> based on the available example and got the following which doesn't
>>>>> appear to work, on import (from Web of Science) nothing happens no
>>>>> errors no braces.  Any nudges in the right direction are appreciated.
>>>>> 
>>>>> I apologize if this has been discussed on the list before, my searches
>>>>> did not reveal anything aside from confirmation of the biblatex TeX
>>>>> preview issue.
>>>>> 
>>>>> Cheers
>>>>> 
>>>>> Peter
>>>>> 
>>> [snip old code]
>>>> 
>>>> This won't work, because you call the external scripts outside the 
>>>> "perform BibDesk action..." handler. The script hook will only call that 
>>>> handler, so anything outside it (like defining the protectLib and 
>>>> errorLib) will be ignored. Therefore reference to those external scripts 
>>>> will fail. You'll have to move everything to inside the script hook 
>>>> handler.
>>> 
>>> Christiaan,
>>> 
>>> Thanks for the reply, I've moved the load script calls inside of the
>>> handler, but alas it still doesn't work.  The current version is
>>> below.
>>> 
>>> I apologize for being such an applescript newb, but is there a
>>> workflow you follow for developing this applescripts, e.g. debugging
>>> hints, setting "breakpoints" etc.
>>> 
>>> Cheers
>>> 
>>> Peter
>> 
>> 
>> [snip]
>> 
>> BTW, another possibility is that this actually works, but you expect it to 
>> do something different from what it actually does. What this most certainly 
>> does NOT do is to enclose the Address value in braces, and the check you 
>> added make me think that that's what you (wrongly) expect it to do. So 
>> perhaps you should also say what you expect it to do, and what you did 
>> exactly to make it do that, perhaps with explicit samples.
> 
> Christian and Fischlin,
> 
> Thanks for your replies.   Indeed I'm trying to wrap the Address Field
> in curly braces so that biblatex won't puke on those bib items.  I
> thought that wrapping something in braces was called protecting, but
> perhaps I am wrong.
> 
> You are correct the above script most definitely did not do what I was
> hoping for.
> 
> An explicit example:
> 
> I usually use the Web of Science SCI search to import references.  If
> I search for au=(watson AND crick) the first hit is
> 
> CRICK, FHC and WATSON, JD. 1956. STRUCTURE OF SMALL VIRUSES. Nature.
> 177(4506):473-475.
> 
> However, this citation causes an error using my tex preview template
> (below, require biblatex).  The relevant part of the log is:
> 
> Too many commas in name 1 of "PORTERS SOUTH, 4 CRINAN ST, LONDON N1
> 9XW, ENGLAND" for entry cite-key
> 
> If I change the address field to
> 
> {PORTERS SOUTH, 4 CRINAN ST, LONDON N1 9XW, ENGLAND}
> 
> it is compiled and previewed correctly.
> 

That sounds like a totally different problem. The warning says it's 
interpreting this as a name. So either you've put the address in an author 
field or something, or biblatex has a problem. It should never interpret an 
address as a name IMHO. 

> The applescript I sent before was an effort to do that wrapping on
> import.  I however was unable to get the protectLib to work at all

That's probably because you haven't really used it. This protects individual 
words or phrases (which is really the correct thing to do in bibtex), and you 
have to tell it which words and phrases to protect. Just enclosing a value in 
braces is crude and generally the wrong thing to do, because the capitalization 
is supposed to be determined by the style and not by the data, except for 
certain special words (like acronyms.)

> so
> I ended up with this *working* script hook.  A couple of caveats, the
> errorLib has never produced anything to me, it seem unlikely given my
> applescript skills, that I produced no errors.  

Errors really mean errors, in that they would normally fail the script if you 
don't escape them. 

> And, secondly this
> method won't, of course, catch cases where the field is already in
> braces, so some Address fields could end up double wrapped.
> Suggestions for improvements are welcome.

Define the following in your applescript and use it instead of protectString():

on encloseInBraces(theString)
     if (theString is "") or (character 1 of theString is "{" and character -1 
of theString is "}") then
          return theString
     else
          return "{" & theString & "}"
     end if
end encloseInBraces

[snip]

Christiaan


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Bibdesk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-users

Reply via email to