@Section @Title { Changing the appearance of citations and the reference list } @Tag { changeref } @Begin @PP By default, citations appear like this @Cite { $kingston1995lout.expert }, and the reference list appears like the one at the end of this document, with the entries numbered, and sorted by their @Code "@Tag" options. This section explains how to change all this, by setting options in the setup file. @PP For a general introduction to setup files and their options, see Section {@NumberOf setup}. Here we just describe the setup file options that relate to references. Here they are, with their default values: @ID @OneRow @Code { "@MakeReferences { Yes }" "@RefCiteStyle { [cite] }" "@RefCiteLabels { @RefNum }" "@RefNumbers { Arabic }" "@RefListFormat { Labels }" "@RefListLabels { [@RefNum] }" "@RefListTitle { references }" "@ChapRefListTitle { references }" "@RefListIndent { 0c }" "@RefListRightIndent { 0c }" "@RefListGap { 1.00v }" "@RefListFont { }" "@RefListBreak { }" "@RefListLabelWidth { 2.00f }" "@RefListSortKey { @Tag }" } makereferences.sym @Index { @Code "@MakeReferences" } Setting @Code "@MakeReferences" to @Code "No" will cause Lout to ignore all citation symbols and omit all reference lists. @PP @Code "@RefCiteStyle" and @Code "@RefCiteLabels" combine to refcitestyle.sym @Index { @Code "@RefCiteStyle" } determine the appearance of citations. The result of each @Code "@Cite" symbol is the value of @Code "@RefCiteStyle" with the @Code "cite" symbol replaced by the object following the @Code "@Cite" symbol. For example, the default value shown above encloses each citation in brackets. The @Code "cite" symbol must appear exactly once within {@Code "@RefCiteStyle"}. @PP @Code "@RefCiteLabels" determines the appearance of each label within refcitelabels.sym @Index { @Code "@RefCiteLabels" } the citation. Within it, the @Code "@RefNum" symbol will produce the number of the reference, and you may also use any of the options of the @Code "@Reference" symbol listed at the beginning of Section {@NumberOf entries}: @ID @OneRow @Tab @Fmta { @Col @Code A ! @Col B } { @Rowa A { "@RefCiteLabels { @RefNum }" } B { [3] } @Rowa A { "@RefCiteLabels { @Label }" } B { [Kin93] } @Rowa A { "@RefCiteLabels { @Author, @Year }" } B { [Jeffrey H. Kingston, 1993] } } The value of @Code "@RefCiteLabels" may be any object. The @Code "@Label" symbol will produce the @Code "label" option of @Code "$" or @Code "@Ref" if there is one, rather than the @Code "@Label" option of the reference; this @Code "label" option is explained in Section {@NumberOf labelled}. @PP @Code "@RefNumbers" determines the kind of numbering produced by the refnumbers.sym @Index { @Code "@RefNumbers" } @Code "@RefNum" symbol used within @Code "@RefCiteLabels" above and @Code "@RefListLabels" below. Its value may be {@Code Arabic}, {@Code Roman}, {@Code UCRoman}, {@Code Alpha}, or {@Code UCAlpha}, as usual for numbering in Lout. If you don't use {@Code "@RefNum"}, @Code "@RefNumbers" has no effect. @PP The remaining eleven setup file options are all concerned with the appearance of the reference list. The first, {@Code "@RefListFormat"}, reflistformat.sym @Index { @Code "@RefListFormat" } determines the overall format of the list. Here is what its four @NoCite { $strunk1979style } possible values do: @ID @Tab @Fmta { @Col @Code A ! @Col @OneCol B } vmargin { 0.3v } { @Rowa A { "@RefListFormat { NoLabels }" } B { @RefPrint strunk1979style } @Rowa @Rowa A { "@RefListFormat { Labels }" } B { 2f @Wide {{@NumberOf strunk1979style}.} | @RefPrint strunk1979style } @Rowa @Rowa A { "@RefListFormat { DropLabels }" } B { {@NumberOf strunk1979style}. //1vx 2f @Wide {} | @RefPrint strunk1979style } @Rowa @Rowa A { "@RefListFormat { InLabels }" } B { {@NumberOf strunk1979style}. &2s @RefPrint strunk1979style } } @Code "@RefListFormat" is not concerned with the appearance of the labels and references, only with where they appear. @PP @Code "@RefListLabels" determines the appearance of the labels in the reflistlabels.sym @Index { @Code "@RefListLabels" } reference list (and so has no effect if @Code "@RefListFormat" is {@Code "NoLabels"}). It is a combination of @Code "@RefCiteStyle" and {@Code "@RefCiteLabels"}; you can use @Code "@RefNum" and all the options of @Code "@Reference" within it. The default value, @ID @Code "@RefListLabels { @RefNum. }" produces a numbered reference list in the style of {@Code "@NumberedList"}. Another useful value is @ID @Code "@RefListLabels { [@Label] }" which produces the @Code "@Label" option of the reference, or the @Code "label" option of the citation if there is one, enclosed in brackets. If you do switch to non-numeric labels you will need to either use @Code "DropLabels" or else increase the @Code "@RefListLabelWidth" option described below. @PP @Code "@RefListTitle" determines the heading placed just before the reflisttitle.sym @Index { @Code "@RefListTitle" } reference list at the end of the document: @ID @Code "@RefListTitle { Further Reading }" Two special values, @Code "references" and {@Code "bibliography"}, produce References and Bibliography in English and their equivalents in other languages. @Code "@ChapRefListTitle" is the same as chapreflisttitle.sym @Index { @Code "@ChapRefListTitle" } {@Code "@RefListTitle"}, but applied to the reference list at the end of each chapter of a book when @Code "@ChapCite" is used. @PP {@Code "@RefListIndent"}, {@Code "@RefListRightIndent"}, and reflistindent.sym @Index { @Code "@RefListIndent" } reflistrightindent.sym @Index { @Code "@RefListRightIndent" } reflistgap.sym @Index { @Code "@RefListGap" } {@Code "@RefListGap"} determine the left indent, right indent, and gap between reference list items, analogously to the {@Code "indent"}, {@Code "rightindent"}, and {@Code "gap"} options of the @Code "@List" symbol (Section {@NumberOf lists}). @Code "@RefListFont" and @Code "@RefListBreak" determine the font and reflistfont.sym @Index { @Code "@RefListFont" } reflistbreak.sym @Index { @Code "@RefListBreak" } paragraph breaking style of the reference list. For example, @ID @OneRow @Code { "@RefListFont { -2p }" "@RefListBreak { 1.2fx outdent }" } switches to a smaller size with outdented paragraphs (these work well with {@Code NoLabels}). The empty default values produce the same font and break style as in the document as a whole. @PP @Code "@RefListLabelWidth" determines the distance from the left reflistlabelwidth.sym @Index { @Code "@RefListLabelWidth" } edge of the labels to the left edge of the references, when @Code "@RefListFormat" is @Code Labels or {@Code DropLabels} (it has no effect when @Code "@RefListFormat" is @Code NoLabels or {@Code "InLabels"}). This is different to {@Code "@RefListIndent"}, which determines the distance from the edge of the column to the left edge of the item. @PP Particular care is needed when @Code "@RefListFormat" is @Code Labels and the labels are non-numeric, for then if the labels are too wide they will overstrike the references. The default value, {@Code 2.00f}, is twice the current font size. It may be changed to any length (Section {@NumberOf objects}). Regrettably, Lout is not clever enough to choose a good value by itself. @PP Finally, @Code "@RefListSortKey" determines the sorting key used when sort.ref @Index { sorting of reference lists } reflistsortkey.sym @Index { @Code "@RefListSortKey" } ordering the reference list. The default value, @ID @Code "@RefListSortKey { @Tag }" sorts by tag. Another popular possibility is to sort by the @Code "@Label" option: @ID @Code "@RefListSortKey { @Label }" As usual @Code "@Label" will use the value of a @Code "label" option to the citation if there is one. To sort by order of first citation, use @ID @Code "@RefListSortKey { @CiteOrder }" @Code "@CiteOrder" is implemented in a quick and dirty way, and there are a couple of problems to watch out for if you use it. First, when you cite references more than once you get some strange intermediate error messages and results. All such problems will be gone by the end of the fifth run. Second, if you insert more citations later on, you will need to restart the whole process, by deleting the cross reference index file {@I lout.li}, since any late insertions get erroneously stuck on the end instead of inserted in the correct order. If things go haywire, delete {@I lout.li} then do five runs and they should be right again. @PP @Code "@RefListSortKey" may be any sequence of words and options from the @Code "@Reference" symbol, but not @Code "@RefNum" for obvious reasons. A possible more elaborate sorting key is @ID @Code "@RefListSortKey { @Author:@Year:@Tag }" sorting first by author, then by year within each author, and finally by tag. However you are supposed to choose tags which have this effect, and that is more reliable since the modern practice is to put the authors' surnames after their given names. There seems to be little practical use for sorting keys other than {@Code "@Tag"}, {@Code "@Label"}, and {@Code "@CiteOrder"}. @PP A colon within the @Code "@RefListSortKey" option is converted by Lout into a character smaller than any printable character, which ensures that the sorting is carried out separately on the three fields. It is essential that the sort key uniquely identify the reference, because if two sort keys are equal only one of the references will be printed. The easiest way to ensure this is to always include @Code "@Tag" in the sort key. @End @Section