It seems that predictable does_not_equal T1, so I'll live with 'less unpredictable' ...
And the logic behind some of our observations escapes me, which I guess makes them predictably unpredictable
@jackie_w
Well, you indirectly answered my question - you obviously don't use all_by_author/all_by_title on the T1.
FWIW they're apparently in the driver, because I successfully referenced a_b_a.
It just doesn't sort as the other collections do.
So I'm not going to worry about it anymore.
It's all working well enough for me.
BTW, if it's of use to anybody, I tweaked my sort template to only look at the first author, as I have several series where some books have different co-authors:
Code:
{author_sort:'uppercase(list_item($,0,' & '))'}{series:| - |}{series_index:0>6.2f| - |}
- {title}
I also have a ridiculously complex author template for the Sony, which initializes series names where needed, to display the most info possible in the author line:
Readable:
Spoiler:
*limitation: a lowercase extended non-latin1 char will popup as an initial
program:
linelen=42;
author1 = list_item(field('author_sort'), 0, ' & ');
authorx = re(author1,'(\, .).*','\1.');
series1 = template('{series:| - |}');
seriesx = template('{series:re((?u)\s*(\d+\.?\d*\'?\w?|\w)[a-zą-’_\']*\.?\s*,\1)| - |}');
iauthor1 = strlen(author1);
iauthorx = strlen(authorx);
iseries1 = strlen(series1);
iseriesx = strlen(seriesx);
mode=cmp(linelen,add(iauthor1,iseries1),cmp(linele n,add(iauthorx,iseries1),
cmp(linelen,add(iauthor1,iseriesx),4,3,3),2,2),1,1 );
strcat(switch(mode,1,strcat(author1,' ',series1),2,strcat(authorx,' ',series1),
3,strcat(author1,' ',seriesx),strcat(authorx,' ',seriesx)),' ',
template('{series_index:| [|]}'))
Pasteable (assuming it comes out all one line):
Spoiler:
program:linelen=42;author1 = list_item(field('author_sort'), 0, ' & ');authorx = re(author1,'(\, .).*','\1.');series1 = template('{series:| - |}');seriesx = template('{series:re((?u)\s*(\d+\.?\d*\'?\w?|\w)[a-zą-’_\']*\.?\s*,\1)| - |}');iauthor1 = strlen(author1);iauthorx = strlen(authorx);iseries1 = strlen(series1);iseriesx = strlen(seriesx);mode=cmp(linelen,add(iauthor1,iser ies1),cmp(linelen,add(iauthorx,iseries1),cmp(linel en,add(iauthor1,iseriesx),4,3,3),2,2),1,1);strcat( switch(mode,1,strcat(author1,' ',series1),2,strcat(authorx,' ',series1),3,strcat(author1,' ',seriesx),strcat(authorx,' ',seriesx)),' ',template('{series_index:| [|]}'))
Cheers!