summaryrefslogtreecommitdiff
path: root/macros/luatex/optex/bib-iso690.opm
blob: 3265eaea05c9fa9b14913d9084d23d3d0db44931 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
% This is part of OpTeX project, see http://petr.olsak.net/optex

% bibliography style (iso690), version <2020-03-10>, loaded on demand by \usebib

\_ifx\_optexbibstyle\_undefined \_errmessage
   {This file can be read by: \_string\usebib/? (iso690) bibfiles command only}
   \_endinput \_fi

% misc:

\_def\_maybedot{\_ifnum\_spacefactor=\_sfcode`\.\_relax\_else.\_fi}
\_tmpnum=\_sfcode`\. \_advance\_tmpnum by-2 \_sfcode`\.=\_tmpnum 
\_sfcode`\?=\_tmpnum \_sfcode`\!=\_tmpnum
\_let\.=\_maybedot  % prevents from double periods

\_CreateField {option}
\_def\_isbiboption#1#2{\_edef\_tmp{\_noexpand\_isbiboptionA{#1}}\_tmp}
\_def\_isbiboptionA#1{\_def\_tmp##1 #1 ##2\_relax{%
      \_if^##2^\_csname iffalse\_ea\_endcsname \_else\_csname iftrue\_ea\_endcsname \_fi}% 
   \_ea\_tmp\_biboptionsi #1 \_relax}
\_def\_bibopt[#1]#2#3{\_isbiboption{#1}\_iftrue\_def\_tmp{#2}\_else\_def\_tmp{#3}\_fi\_tmp}
\_def\_biboptionvalue#1#2{\_def\_tmp##1 #1:##2 ##3\_relax{\_def#2{##2}}%
   \_ea\_tmp\_biboptionsi #1: \_relax}

\_def\_readbiboptions{%
   \_RetrieveFieldIn{option}\_biboptionsi
   \_toks1=\_ea{\_biboptionsi}%
   \_edef\_biboptionsi{\_space \_the\_toks1 \_space \_the\_biboptions \_space}%
}
\_newtoks\_biboptions
\_public \biboptions ;

% Formating of Author/Editor lists:

\_def\_firstauthorformat{%
   \_upper{\_Lastname}\_bprintc\_Firstname{, *}\_bprintc\_Von{ *}\_bprintc\_Junior{, *}%
}
\_def\_otherauthorformat{%
   \_bprintc\_Firstname{* }\_bprintc\_Von{* }\_upper{\_Lastname}\_bprintc\_Junior{, *}%
}
\_def\_commonname{%
  \_ifnum\_NameCount=1 
     \_firstauthorformat
     \_ifx\_dobibmark\_undefined \_edef\_dobibmark{\_Lastname}\_fi
  \_else
     \_ifnum0\_namecount=\_NameCount
        \_ifx\_maybeetal\_empty \_bibconjunctionand\_else , \_fi
     \_else , \_fi
     \_otherauthorformat
  \_fi  
}
\_def\_authorname{%
   \_ifnum\_NameCount>0\_namecount\_relax\_else \_commonname \_fi
   \_ifnum\_NameCount=0\_namecount\_relax \_maybeetal \_fi
}
\_let\_editorname=\_authorname

\_def\_prepareauedoptions#1{%
   \_def\_mabyetal{}\_csname lb@abbreviatefalse\_endcsname
   \_biboptionvalue{#1max}\_authormax  
   \_biboptionvalue{#1min}\_authormin  
   \_biboptionvalue{#1pre}\_authorpre  
   \_biboptionvalue{#1print}\_authorprint
   \_isbiboption{#1etal}\_iftrue \_def\_maybeetal{\_Mtext{bib.etal}}\_fi
   \_biboptionvalue{#1trim}\_autrim 
   \_let\_namecountraw=\_namecount
   \_ifx\_authormax\_empty \_else
      \_ifnum 0\_authormax<0\_namecount
         \_edef\_namecount{\_ifx\_authormin\_empty\_authormax\_else\_authormin\_fi}%
         \_def\_maybeetal{\_Mtext{bib.etal}}%
   \_fi\_fi
   \_ifx\_autrim\_empty \_def\_autrim{10000}\_fi 
   \_ifnum\_autrim=0 \_def\_autrim{10000}\_fi   
   \_ifnum 0\_namecount<\_autrim\_relax \_else \_AbbreviateFirstname \_fi
}
\_def\_maybeetal{}

\_ifx\upper\_undefined 
   \_ifx\caps \_undefined \_def\upper{\_uppercase\_ea}\_else
                          \_def\upper#1{{\caps\_rm #1}}\_fi
\_fi
\_let\_upper=\upper

% Preparing bib-mark (used when \nonumcitations is set):

\_def\_setbibmark{%  
   \_ifx\_dobibmark\_undefined \_def\_dobibmark{}\_fi
   \_RetrieveFieldIn{bibmark}\_tmp
   \_ifx\_tmp\_empty \_RetrieveFieldIn{year}\_tmp \_edef\_tmp{\_dobibmark, \_tmp}\_fi
   \_bibmark=\_ea{\_tmp}%
}

% Multilinguals:           English                Czech               Slovak

\_mtdef{bib.and}           {, and }               { a }               {}
\_mtdef{bib.etal}          { et al.}              { a~kol.}           {}
\_mtdef{bib.edition}       { ed.}                 { vyd.}             {}
\_mtdef{bib.bachthesis}    {Bachelor's Thesis}    {Bakalářská práce}  {Bakalárska práca}
\_mtdef{bib.masthesis}     {Master's Thesis}      {Diplomová práce}   {Diplomová práca}
\_mtdef{bib.phdthesis}     {Ph.D. Thesis}         {Disertační práce}  {Dizertačná práca}
\_mtdef{bib.available}     {Available from }      {Dostupné na }      {}
\_mtdef{bib.availablealso} {Available also from } {Dostupné též na }  {Dotupné tiež na }
\_mtdef{bib.citedate}      {cit.~}                {vid.~}             {}
\_mtdef{bib.volume}        {Vol.~}                {ročník~}           {}
\_mtdef{bib.number}        {No.~}                 {č.~}               {}
\_mtdef{bib.prepages}      {pp.~}                 {s.~}               {}
\_mtdef{bib.postpages}     {~p.}                  {~s.}               {}
\_mtdef{bib.editor}        {,~ed.}                {,~editor}          {}
\_mtdef{bib.editors}       {,~eds.}               {,~editoři}         {,~editori}

\_def\_bibconjunctionand{\_Mtext{bib.and}}
\_def\_preurl{\_Mtext{bib.available}}
\_let\_predoi=\_preurl
\_def\_postedition{\_mtext{bib.edition}}
\_def\_Inclause{In:~}
\_def\_prevolume{\_mtext{bib.volume}}
\_def\_prenumber{\_mtext{bib.number}}
\_def\_prepages{\_mtext{bib.prepages}}
\_def\_posteditor{\_ifnum0\_namecountraw>1 \_Mtext{bib.editors}\_else\_Mtext{bib.editor}\_fi}

\_chardef\_documentlanguage=\_language
\_def\_Mtext#1{\_csname _mt:#1:\_csname _lan:\_the\_documentlanguage\_endcsname\_endcsname}

\_CreateField {lang}
\_def\_setlang#1{\_ifx#1\_empty \_else 
      \_ea \_ifx \_csname _#1Patt\_endcsname \_relax
         \_opwarning{The language "#1" used in .bib file is unknown}
      \_else \_language=\_csname _#1Patt\_endcsname
   \_fi\_fi
}

% Non-standard fieldnames:

\_CreateField {ednote}
\_CreateField {citedate}
\_CreateField {numbering}
\_CreateField {isbn}
\_CreateField {issn}
\_CreateField {doi}
\_CreateField {url}
\_CreateField {bibmark}

% Sorting:

\_SortingOrder{name,year}{lfvj}
\_SpecialSort {key}

% Misc:

\_def\_bibwarninga{\_bibwarning}
\_def\_bibwarningb{\_bibwarning}

\_def\_docitedate #1/#2/#3/#4\_relax{[\_Mtext{bib.citedate}%
   \_if^#2^#1\_else
      \_if^#3^#1/#2\_else
        \_docitedateA{#1}{#2}{#3}%
   \_fi\_fi ]%
}
\_def\_docitedateA#1#2#3{%
   \_ifnum\_documentlanguage=\_csPatt \_docitedateCS{#1}{#2}{#3}%
   \_else \_ifnum\_documentlanguage=\_skPatt \_docitedateSK{#1}{#2}{#3}%
         \_else \_docitedateEN{#1}{#2}{#3}%
   \_fi\_fi
}
\_def\_docitedateEN#1#2#3{#1-#2-#3}
\_def\_docitedateCS#1#2#3{\_hbox{\_tmpnum=#3 \_the\_tmpnum. \_tmpnum=#2 \_the\_tmpnum. #1}} 
\_let\_docitedateSK=\_docitedateCS

\_def\_doyear#1{
   \_biboptionvalue{yearprint}\_yearprint
   \_ifx\_yearprint\_empty#1\_else\_def\YEAR{#1}\_yearprint\_fi
}
\_def\_preparenumbering{%
   \_def\VOL{\_RetrieveField{volume}}%
   \_def\NO{\_RetrieveField{number}}%
   \_def\PP{\_RetrieveField{pages}}%
}
\_def\_prepareednote{%
   \_def\EDN{\_RetrieveField{edition}}%
   \_def\ADDR{\_RetrieveField{address}}%
   \_def\PUBL{\_RetrieveField{publisher}}%
   \_def\YEAR{\_RetrieveField{year}}%
   \_def\AU{\_bprintb[!author]{\_doauthor0{####1}}{}}%
   \_def\ED{\_bprintb[!editor]{\_doeditor0{####1}}{}}%
   \_preparenumbering
}
\_def\_doedition#1{%
   \_biboptionvalue{editionprint}\_editionprint
   \_ifx\_editionprint\_empty#1\_postedition\_else\_def\ED{#1}\_editionprint\_fi
}
\_def\_doauthor#1#2{\_prepareauedoptions{au}\_let\_iseditorlist=\_undefined
   \_if1#1\_def\AU{#2}\_else\_let\_authorprint=\_empty\_fi
   \_ifx\_authorprint\_empty #2\_else \_authorprint\_fi
}
\_def\_doeditor#1#2{\_prepareauedoptions{ed}\_let\_firstauthorformat=\_otherauthorformat
   \_if1#1\_def\ED{#2}\_else\_let\_authorprint=\_empty\_fi
   \_ifx\_authorprint\_empty #2\_posteditor\_else \_authorprint\_fi
}

% Entry types:

\_sdef{_print:BEGIN}{%
   \_readbiboptions
   \_biboptionvalue{titlepost}\_titlepost
   \_isbiboption{unpublished}\_iftrue \_let\_bibwarninga=\_relax \_let\_bibwarningb=\_relax \_fi
   \_isbiboption{nowarn}\_iftrue \_let\_bibwarning=\_relax \_fi
   \_isbiboption{urlalso}\_iftrue \_def\_preurl{\_Mtext{bib.availablealso}}\_fi
   \_RetrieveFieldIn{lang}\_langentry \_setlang\_langentry 
}
\_sdef{_print:END}{%
   \_bprinta [note]       {*.}{}%
   \_setbibmark
}
\_def\_bookgeneric#1{%
   \_bprinta [howpublished]  {[*].\ }{}%
   \_bprintb [edition]    {\_doedition{##1}\.\ }{}%
   \_bprinta [ednote]     {*.\ }{}%
   \_bprinta [address]    {*\_bprintv[publisher]{:}{\_bprintv[year]{,}{.}}\ }{\_bibwarninga}%
   \_bprinta [publisher]  {*\_bprintv[year]{,}{.}\ }{\_bibwarninga}%
   \_bprintb [year]       {\_doyear{##1}\_bprintv[citedate]{\_bprintv[numbering]{.}{}}{.}\ }{\_bibwarning}%
   \_bprinta [numbering]  {\_preparenumbering*\_bprintv[citedate]{}{\.}\ }{}%
   \_bprinta [citedate]   {\_docitedate*///\_relax.\ }{}%
   #1%
   \_bprinta [series]     {*.\ }{}%
   \_bprinta [isbn]       {ISBN~*.\ }{\_bibwarningb}%
   \_bprinta [issn]       {ISSN~*.\ }{}%
   \_bprintb [doi]        {\_predoi DOI \_ulink[http://dx.doi.org/##1]{##1}.\ }{}%
   \_bprintb [url]        {\_preurl\_url{##1}. }{}%
}
\_sdef{_print:book}{%
   \_bprintb [!author]    {\_doauthor1{##1}\.\ }{\_bibwarning}%
   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\.\ *}\_bprintv[howpublished]{}{\.}\ }{\_bibwarning}%
   \_bookgeneric{}%
}
\_sdef{_print:article}{%
   \_biboptionvalue{journalpost}\_journalpost
   \_bprintb [!author]   {\_doauthor1{##1}\.\ }{\_bibwarning}%
   \_bprinta [title]     {*.\ \_bprintc\_titlepost{*.\ }}{\_bibwarning}%
   \_bprintb [journal]   {{\_em##1}\_bprintc\_journalpost{\.\ *}\_bprintv[howpublished]{}{\.}\ }{\_bibwarninga}%   
   \_bprinta [howpublished]  {[*].\ }{}%
   \_bprinta [address]   {*\_bprintb[publisher]{:}{,}\ }{}%
   \_bprinta [publisher] {*, }{}%
   \_bprinta [month]     {*, }{}%
   \_bprintb [year]      {\_doyear{##1}\_bprintv[volume,number,pages]{,}{\.}\ }{}%
   \_bprinta [numbering] {\_preparenumbering*\_bprintv[citedate]{}{\.}\ }
                        {\_bprinta [volume] {\_prevolume*\_bprintv[number,pages]{,}{\.}\ }{}%
                         \_bprinta [number] {\_prenumber*\_bprintv[pages]{,}{\.}\ }{}%
                         \_bprintb [pages]  {\_prepages\_hbox{##1}\_bprintv[citedate]{}{\.}\ }{\_bibwarninga}}%
   \_bprinta [citedate]  {\_docitedate*///\_relax.\ }{}%
   \_bprinta [issn]      {ISSN~*.\ }{}%
   \_bprintb [doi]       {\_predoi DOI \_ulink[http://dx.doi.org/##1]{##1}.\ }{}%
   \_bprintb [url]       {\_preurl\_url{##1}. }{}%
}
\_sdef{_print:inbook}{%
   \_let\_bibwarningb=\_relax
   \_bprintb [!author]   {\_doauthor1{##1}\.\ }{\_bibwarning}%
   \_bprinta [title]     {*.\ }{\_bibwarning}%
                        \_Inclause
   \_bprintb [!editor]   {\_doeditor1{##1}\.\ }{}%
   \_bprintb [booktitle] {{\_em##1}\_bprintc\_titlepost{\.\ *}\_bprintv[howpublished]{}{\.}\ }{\_bibwarning}%
   \_bookgeneric{\_bprintb [pages]  {\_prepages\_hbox{##1}. }{}}%
}
\_slet{_print:inproceedings}{_print:inbook}
\_slet{_print:conference}{_print:inbook}

\_sdef{_print:thesis}{%
   \_bprintb [!author]    {\_doauthor1{##1}\.\ }{\_bibwarning}%
   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\.\ *}\_bprintv[howpublished]{}{\.}\ }{\_bibwarning}%
   \_bprinta [howpublished]  {[*].\ }{}%
   \_bprinta [address]    {*\_bprintv[school]{:}{\_bprintv[year]{,}{.}}\ }{\_bibwarning}%
   \_bprinta [school]     {*\_bprintv[year]{,}{.}\ }{\_bibwarning}%
   \_bprinta [month]      {*, }{}%
   \_bprintb [year]       {\_doyear{##1}\_bprintv[citedate]{}{.}\ }{\_bibwarninga}%
   \_bprinta [citedate]   {\_docitedate*///\_relax.\ }{}%
   \_bprinta [type]       {*\_bprintv[ednote]{,}{.}\ }%
                         {\_ifx\_thesistype\_undefined\_bibwarning\_else\_thesistype\_bprintv[ednote]{,}{.}\ \_fi}%
   \_bprinta [ednote]     {*.\ }{}%
   \_bprintb [doi]        {\_predoi DOI \_ulink[http://dx.doi.org/##1]{##1}.\ }{}%
   \_bprintb [url]        {\_preurl\_url{##1}. }{}%
}
\_sdef{_print:phdthesis}{\_def\_thesistype{\_Mtext{bib.phdthesis}}\_cs{_print:thesis}}
\_sdef{_print:mastershesis}{\_def\_thesistype{\_Mtext{bib.masthesis}}\_cs{_print:thesis}}
\_sdef{_print:bachelorsthesis}{\_def\_thesistype{\_Mtext{bib.bachthesis}}\_cs{_print:thesis}}

\_sdef{_print:generic}{%
   \_bprintb [!author]    {\_doauthor1{##1}\.\ }{\_bibwarning}%
   \_bprintb [title]      {{\_em##1}\_bprintc\_titlepost{\.\ *}\_bprintv[howpublished]{}{\.}\ }{\_bibwarning}%
   \_bprinta [howpublished]  {[*].\ }{}%
   \_bprinta [ednote]     {\_prepareednote*\_bprintv[citedate]{}{.}\ }{\_bibwarning}%
   \_bprinta [year]       {}{\_bibwarning}%
   \_bprinta [citedate]   {\_docitedate*///\_relax.\ }{}%
   \_bprintb [doi]        {\_predoi DOI \_ulink[http://dx.doi.org/##1]{##1}.\ }{}%
   \_bprintb [url]        {\_preurl\_url{##1}. }{}%
}
\_slet{_print:booklet}{_print:generic}
\_slet{_print:incolleciton}{_print:generic}
\_slet{_print:manual}{_print:generic}
\_slet{_print:proceedings}{_print:generic}
\_slet{_print:techreport}{_print:generic}
\_slet{_print:unpublished}{_print:generic}

\_sdef{_print:misc}{\_let\_bibwarning=\_relax \_cs{_print:generic}}

\_endcode


This is the iso690 bibliographic style used by \OpTeX/.

See `op-example.bib` for an example of the `.bib` input. You can try it by:

\begtt
\fontfam[LMfonts]
\nocite[*]
\usebib/s (iso690) op-example
\end
\endtt

\secc Common rules in .bib files

There are entries of type `@FOO{...}` in the `.bib` file. Each entry consists of
fields in the form `name = "value"`, or `name = {value}`. No matter which form is
used. If the value is pure numeric then you can say simply `name = value`.
Warning: the comma after each field value is mandatory! If it is missing then the
next field is ignored or bad interpreted.

The entry names and field names are case insensitive. If there exist a data
field no mentioned here then it is simply ignored. You can use it to store
more information (abstract, for example).

There are \"standard fields" used in ancient bib\TeX/ (author, title, editor, edition,
etc., see \url{http://en.wikipedia.org/wiki/BibTeX}). The `iso690` style introduces
several \"non-standard" fields: ednote, numbering, isbn, issn, doi, url, 
citedate, key, bibmark. They are documented here.

Moreover, there are two optional special fields:

\begitems
* lang     = language of the entry. The hyphenation plus autogenerated phrases and
             abbreviations will be typeset by this language.
* option   = options by which you can control special printing of vairous fields.
\enditems 

There can be only one option field per each entry with (may be) more options
separated by spaces. You can declare the global option(s) in your document
applied for each entry by `\biboptions={...}`.


\secc The author field

All names in the author list have to be separated by \"` and `". Each author
can be written by various formats (the `von` part is typically missing):

\begtt
  Firstname(s) von Lastname
  or
  von Lastname, Firstname(s)
  or
  von Lastname, After, Firstname(s)
\endtt

Only the Lastname part is mandatory. Examples:

\begtt
  Petr Olšák
  or
  Olšák, Petr

  Leonardo Piero da Vinci
  or
  da Vinci, Leonardo Piero
  or
  da Vinci, painter, Leonardo Piero
\endtt

The separator \"` and `" between authors will be converted to comma during
printing, but between semifinal and final author the word \"and" (or something
different depending on current language) is printed.

The first author is printed in reverse order: \"LASTNAME, Firstname(s) von,
After" and the others author are printed in normal order: \"Firstname(s)
von LASTNAME, After". This feature follows the ISO 690 norm. The Lastname
is capitalised using uppercase letters, but if the \caps font modifier is defined,
then it is used and printed `{\caps\_rm Lastname}`.

You can specify the option `aumax:<number>`. The <number> denotes the
maximum authors to be printed. The rest of authors are ignored and the
`et~al.` is appended to the list of printed authors. This text is
printed only if the `aumax` value is less than the real number of authors. 
If you have the same number of authors in the .bib file as you need to print
but you want to append `et~al.` then you can use `auetal` option.

There is an `aumin:<number>` option which denotes the definitive number of 
printed authors if the author list is not fully printed due to `aumax`.
If `aumin` is unused then `aumax` authors is printed in such case.

All authors are printed if `aumax:<number>` option isn't given. 
There is no internal limit. But you can set the global options in 
your document by setting the `\biboptions` tokens list. For example:

\begtt
   \biboptions={aumax:7 aumin:1}  
   % if there is 8 or more authors then only first author is printed.
\entdd

Examples:

\begtt
   author = "John Green and Bob Brown and Alice Black",
\endtt

output:    GREEN, John, Bob BROWN, and Alice BLACK.

\begtt
   author = "John Green and Bob Brown and Alice Black",
   option = "aumax:1",
\endtt

output:    GREEN, John~et~al.

\begtt
   author = "John Green and Bob Brown and Alice Black",
   option = "aumax:2",
\endtt

output:    GREEN, John, Bob BROWN~et~al.

\begtt
   author = "John Green and Bob Brown and Alice Black",
   option = "aumax:3",
\endtt

output:    GREEN, John, Bob BROWN, and Alice BLACK.

\begtt
   author = "John Green and Bob Brown and Alice Black",
   option = "auetal",
\endtt   

output:    GREEN, John, Bob BROWN, Alice BLACK~et~al.

If you need to add a text before or after authors list, you can use
the `auprint:{<value>}` option. The <value> will be printed instead of the
authors list. The <value> can include `\AU` macro which expands to the authors
list. Example:

\begtt
   author = "Robert Calbraith",
   option = "auprint:{\AU\space [pseudonym of J. K. Rowling]}",
\endtt

output:    CALBRAITH Robert [pseudonym of J. K. Rowling].

You can use the `autrim:<number>` option. All Firstnames of all authors
are trimmed (i. e. reduced to initials) iff the number of authors in the 
author field is greater than or equal to <number>. There is an exception:
`autrim:0` means that no Firstnames are trimmed. This is default behavior.
Another example: `autrim:1` means that all Firstnames are trimmed.

\begtt
   author = "John Green and Bob Brown and Alice Black",
   option = "auetal autrim:1",
\endtt

output:    GREEN, J., B. BROWN, A. BLACK~et~al.

If you need to write a team name or institution instead authors, replace all
spaces by \<space> in this name. Such text is interpreted as Lastname. You
can add the secondary name (interpreted as Firstname) after comma. Example:

\begtt
   author = "Czech\ Technical\ University\ in\ Prague, Faculty\ of\ Electrical\ Engeneering",
\endtt

output:  CZECH TECHNICAL UNIVERSITY IN PRAGUE, Faculty of Electrical Engeneering.


\secc The editor field

The editor field is used for list of the authors of the collection. The
analogous rules as in author field are used here. It means that the
authors are separated by \"` and `", the Firstnames, Lastnames etc. are
interpreted and you can use the options `edmax:<number>`, `edmin:<number>`, 
`edetal`, `edtrim:<number>` and `edprint:{<value>}` (with `\ED` macro).
Example:

\begtt
   editor = "Jan Tomek and Petr Karas",
   option = "edprint:{\ED, editors.} edtrim:1",
\endtt

Output:   J. TOMEK and P. KARAS, editors.

If `edprint` option is not set then `{\ED, eds.}` or `{\ED, ed.}` is used
depending on the entry language and on the singular or plural of 
the editor(s).


\secc The ednote field

The ednote field is used as the secondary authors and more editional info. The
value is read as raw data without any interpretation of Lastname, Firstname
etc.

\begtt
   ednote = "Illustrations by Robert \upper{Agarwal}, edited by Tom \upper{Nowak}",
\endtt

output:   Illustrations by Robert AGARWAL, edited by Tom NOWAK.

The \upper command have to be used for Lastnames in ednote field.


\secc The title field

This is the title of the work. It will be printed (in common entry types) by
italics. The ISO 690 norm declares, that the title plus optional subtitle
are in italics and they are separated by colon. Next, the optional secondary
title have to be printed in upright font. This can be added by
`titlepost:{<value>}`. Example:

\begtt
   title = "The Simple Title of The Work",
or
   title = "Main Title: Subtitle",
or
   title  = "Main Title: Subtitle",
   option = "titlepost:{Secondary title}",
\endtt

The output of the last example:
{\it Main Title: Subtitle}. Secondary title.


\secc The edition field

This field is used only for second or more edition of cited work. Write
only the number without the word "edition". The shortcut "ed." (or something
else depending on current language) is added automatically. Examples:

\begtt
   edition = "Second",
   edition = "2nd",
   edition = "2$^{\rm nd}$",
   edition = "2.",
\endtt

Output of the last example:   2. ed.

\begtt
   edition = "2."
   lang    = "cs",
\endtt

Output:   2. vyd.

Note, that the example `edition = "Second"` may cause problems. If you are
using language "cs" then the output is bad:   Second vyd.  
But you can use `editionprint:{<value>}` option. The the <value> is printed
instead of edition field and shortcut. The edition field must be set. Example:

\begtt
   edition = "whatever",
   option  = "editionprint:{Second full revised edition}",
\endtt

Output:   Second full revised edition.

You can use `\EDN` macro in `editionprint` value. This macro is expanded 
to the edition value. Example:

\begtt
   edition = "Second",
   option  = "editionprint:{\EDN\space full revised edition}",
or
   edition = "Second full revised edition",
   option  = "editionprint:{\EDN}",
\endtt


\secc The address, publisher, year fields

This is an anachronism from ancient Bib\TeX/ (unfortunately no exclusive) that
the address field includes only the city of the publisher residence. No more
data are here. The publisher field includes the name of the publisher.

\begtt
   address = "Berlin",
   publisher = "Springer Verlag",
   year = 2012,
\endtt

Output:   Berlin: Springer Verlag, 2012.

Note, that the year needn't to be inserted into quotes because it is pure
numeric. 

The letter a, b etc. are appended to the year automatically, if two or more
subsequent entries in the bibliography list are not distinct by the first
author and year fields. If you needn't this feature, you can use the
`noautoletters` option.

You can use "yearprint:{<value>}" option. If it is set then the <value>
is used for printing year instead the real field value. The reason: year is
sort sensitive, may be you need to print something else than only sorting key.
Example:

\begtt
   year   = 2000,
   option = "yearpint:{© 2000}",
\endtt

Output:  © 2000,  sorted by:  2000.

\begtt
   year   = "2012a",
   option = "yearprint:{2012}",
\endtt

Output:  2012,   sorted by:  2012a.

The address, publisher and year are typically mandatory fields. If they are
missing then the warning occurs. But you can set `unpublished`
option. Then this warning is suppressed. There is no difference in the
printed output.


\secc The url field

Use it without `\url` macro, but with `http://` prefix. Example:

\begtt
   url = "http://petr.olsak.net/opmac.html",
\endtt

The ISO 690 norm recommends to add the text \"Available from" (or
something else if different current language is used) before URL. 
It means, that the output of previous example is:

Available from \url{http://petr.olsak.net/opmac.html}.

If the `cs` language is the current one than the output is:

Dostupné z: \url{http://petr.olsak.net/opmac.html}.

If the `urlalso` option is used, then the added text has the form
\"Available also from" or \"Dostupné také z:" (if `cs` language is
current).


\secc The citedate field

This is the citation date. The field must be in the form year/month/day. It
means, that the two slashes must be written here. The output depends on the
current language. Example:

\begtt
   citedate = "2004/05/21",
\endtt

Output when `en` is current:    [cit. 2004-05-21].
Output when `cs` is current:    [vid. 21.~5.~2004].


\secc The howpublished field

This declares the available medium for cited document if it is not in printed
form. Alternatives: online, CD, DVD, etc. Example:

\begtt
   howpublished = "online",
\endtt

Output:   [online].
 

\secc The volume, number, pages and numbering fields

The volume is the \"big mark" of the journal issue and the number is the
\"small mark" of the journal issue and pages includes the page range of 
the cited article in the journal. The volume is prefixed by Vol.~,
the number by No.~ and the pages by pp.~. But these prefixes depends on the
language of the entry.

Example:

\begtt
   volume = 31,
   number = 3,
   pages  = "37--42",
\endtt

Output:   Vol.~31, No.~3, pp.~37--42.

\begtt
   volume = 31,
   number = 3, 
   pages  = "37--42",
   lang   = "cs",
\endtt

Output:   ročník~31, č.~3, s.~37--42.

If you disagree with the default prefixes, you can use the numbering field.
When it is set then it is used instead of volume, number, pages fields 
and instead of any mentioned prefixes. The numbering can include macros
`\VOL`, `\NO`, `\PP`, which are expanded to the respective values of fields. Example:

\begtt
   volume    = 31,
   number    = 3,
   pages     = "37--42"
   numbering = "Issue~\VOL/\NO, pages~\PP",
\endtt

Output:   Issue~31/3, pages~37--42

Note: The volume, numbers and pages fields are printed without numbering
filed only in the `@ARTICLE` entry. It means, that if you need to visible them
in the `@INBOOK`, `@INPROCEEDINGS` etc. entries, then you must to use numbering field.


\secc Common notes about entries

The order of the fields in the entry is irrelevant. We use the printed order
in this manual. The exclamation mark (!) denotes the mandatory field. If
such field is missing then the warning occurs during processing.

If the `unpublished` option is set then the fields address, publisher, year,
isbn and pages are not mandatory. If the `nowarn` option is set then no
warnings about missing mandatory fields occurs.

If the field is used but not mentioned in the entry documentation below then
it is silently ignored.

\p The `@BOOK` entry

This is used for book-like entries. 

Fields: author(!), title(!), howpublished, edition, ednote, address(!), 
publisher(!), year(!), citedate, series, isbn(!), doi, url, note. 

The ednote field here means the secondary authors (illustrator, cover design
etc.).

\p The `@ARTICLE` entry

This is used for articles published in a journal. 

Fields: author(!), title(!), journal(!), howpublished, address, publisher,
month, year, [numbering or volume, number, pages(!)], citedate, issn,
doi, url, note. 

If the numbering is used then it is used instead volume, number, pages.


\p The `@INBOOK` entry

This is used for the part of a book. 

Fields: author(!), title(!), booktitle(!), howpublished, edition, ednote,
address(!), publisher(!), year(!), numbering, citedate, series, isbn or
issn, doi, url, note.

The author field is used for author(s) of the part, the editor field
includes author(s) or editor(s) of whole document. The pages field specifies
the page range of the part. The series field can include more information
about the part (chapter numbers etc.).

The `@INPROCEEDINGS` and `@CONFERENCE` entries are equivalent to `@INBOOK` entry.

\p The `@THESIS` entry

This is used for student's thesis. 

Fields: author(!), title(!), howpublished, address(!), school(!), 
month, year(!), citedate, type(!), ednote, doi, url, note. 

The type field must include the text \"Master's Thesis" or something 
similar (depending on the language of the outer document).

There are nearly equivalent entries: `@BACHELORSTHESIS`, `@MASTERSTHESIS` and
`@PHDTHESIS`. These entries set the type field to an appropriate value
automatically. The type field is optional in such case. If it is used then
it has a precedence before default setting.

\p The @MISC entry

It is intended for various usage. 

Fields: author, title, howpublished, ednote, citedate, doi, url, note. 

You can use `\AU`, `\ED`, `\EDN`, `\VOL`, `\NO`, `\PP`, `\ADDR`, `\PUBL`,
`\YEAR` macros in ednote field. These macros print authors list, editors list,
edition, volume, number, pages, address, publisher and year field values
respecitively.

The reason of this entry is to give to you the possibility to set the format of
entry by your own decision. The most of data are concentrated in ednote
field.

\p The `@BOOKLET`, `@INCOLLECION`, `@MANUAL`, `@PROCEEDINGS`, `@TECHREPORT`, `@UNPUBLISHED` entries

These entries are equivalent to `@MICS` entry because we need to save the
simplicity. They are implemented only for (almost) backward compatibility
with the ancient Bib\TeX/. But the ednote is mandatory field here, so you
cannot use these entries from the old databases without warnings and without 
some additional work with the `.bib` file.

\secc The cite-marks (bibmark) used when \code{\\nonumcitations} is set

When `\nonumcitations` is set then `\cite` prints text orientes 
bib-marks instead numbers. This style file autogenerates these marks in the
form \"Lastname of the first author, comma, space, the year" if bibmark field
isn't declared. If you need to set an exception from this common format,
then you can use bibmark field.

The OPmac trick \url{http://petr.olsak.net/opmac-tricks-e.html#bibmark}
describes how to redefine the algorithm for bibmark auto-generating when you
need the short form of the type [Au13].


\secc Sorting

If `\usebib/c` is used then entries are sorted by citation order in the text.
If `\usebib/s` is used then entries are sorted by \"Lastname, Firstname(s)" of
the first author and if more entries have this value equal, then the year is
used (from older to newer). This feature follows the recommendation of the
ISO 690 norm.

If you have the same authors and the same year, you can control the sorting
by setting years as 2013, 2013a, 2013b, etc. You can print something
different to the list using `yearprint{<value>}` option, see the section about
address, publisher and year above. The real value of year field (ie. not
yearprint value) is also used in the text oriented bib-marks when 
`\nonumcitations` is set.

If you have some problems with name sorting, you can use the hidden field
`key`, which is used for sorting instead of the \"Lastname Firstname(s)"
of authors. If the `key` field is unset then the \"Lastname Firstname(s)" 
is used for sorting normally. Example:

\begtt
   author    = "Světla Čmejrková",
   key       = "Czzmejrkova Svetla",
\endtt

This entry is now sorted between C and D. 

The norm recommends to place the autocitations to the top of the list of
references. You can do this by setting  `key = "@"`, to each entry with your
name because the `@` character is sorted before `A`.


\secc Languages

There is the language of the outer document and the languages of each entry.
The ISO 690 norm recommends that the technical notes (the prefix before URL,
the media type, the \"and" conjunction between semifinal and final author)
may be printed in the language of the outer document. The data of the entry
have to be printed in the entry language (edition ed./vyd., Vol./ročník,
No./č. etc.). Finally there are the phrases independent on the language
(for example In:). Unfortunately, the bib\TeX/ supposes that the entry data
are not fully included in value parts of the fields (see edition, volume
etc. fields) so the automaton have to add some text during processing.
But what language have to be chosen?

The current value of the `\language` register at the start of the `.bib`
processing is decided as the language of the outer document. This language
is used for technical notes regardless of the entry language. Each entry can
have the lang field with the two-letter mark of the entry language. This
language is used for ed./vyd., vol./ročník etc. and it is used for
hyphenation too. If the entry language is not set then the outer document
language is used.

If the outer document language is known before creating of the `.bib` file, you
can store some language-dependent phrases into it. On the other hand, if the
main document language is unknown, you can use the \Mtext macro to
create the text multilingual. Example:

\begtt
   howpublished = "\Mtext{blue-ray}"
\endtt

Now, you can set the variants of blue-ray into your macros:

\begtt
   \mtdef {blue-ray}  {Blue-ray disc}  {Blue-ray disk} {}
\endtt


\secc Tips for using more languages

This style prefers English, Czech and Slovak languages. However, you can add
more languages. You can see the avalable languages by expansion of \langlist
macro. And you can use the shortcuts of language names (`de` and `pl` in the
example below and you can define all phrases for your language:

\begtt
   \def\mtdefx#1#2#3{\sdef{_mt:#1:de}{#2}\sdef{_mt:#1:pl}{#3}}

                             % German              % Polish
   \mtdefx {bib.and}         { und }               { a }
   \mtdefx {bib.phdthesis}   {Ph.D. Dissertation}  {Praca doktorska}
   ...
\endtt

See more about language phrases in the \ref[languages] section.


\secc Summary of non-standard fields

This style uses the following fields unkown by bib\TeX/:

\begtt
   option    ... options separated by spaces
   lang      ... the language two-letter code of one entry
   ednote    ... editional info (secondary authors etc.) or
                 global data in @MISC-like entries
   citedate  ... the date of the citation in year/month/day format
   numbering ... format for volume, number, pages
   isbn      ... ISBN
   issn      ... ISSN
   doi       ... DOI
   url       ... URL
\endtt


\secc Summary of options

\begtt
   aumax:<number>       ... maximum number of printed authors
   aumin:<number>       ... number of printed authors if aumax exceedes
   autrim:<number>      ... full Firstnames iff number of authors are less than this
   auprint:{<value>}    ... text instead auhors list (\AU macro may be used)
   edmax, edmin, edtrim ... similar as above for editors list
   edprint:{<value>}    ... text instead editors list (\ED macro may be used)
   titlepost:{<value>}  ... text after title
   yearprint:{<value>}  ... text instead real year (\YEAR macro may be used)
   editionprint:{<value>} . text instead real edition (\EDN macro may be used)
   urlalso      ... the ``available also from'' is used instead ``available from''
   unpublished  ... the publisher etc. fields are not mandatory
   nowarn       ... no mandatory fields
\endtt

Another options in the option field are silently ignored.