Name Patterns
Indexing: States
Debugging Macros
- Toggle Indexing
- Multiple Indexes
- Verbose Warnings
- Index Protection
The kernel naming mechanism uses internal locks to protect against this in-text problem. This manual uses the § notation for \Name{foo\Name{bar}}, which is not shown in the example for clarity.
Page Entries
With enough passes, using makeindex as well, we get in the in file both \item foo\Name {bar} from the text and an extra \item bar from the macro executed in the index. Using\IndexProtect \printindexstill allows the index entry generated by\item foo\Name {bar}, but it does not allow\Name {bar} to generate any output or additional entries in the index.
Cross-References
Basic Macro
Fine Control
IncludeName* will allow additional page references to be made for the other sub-entries of that name or for the name itself.
Prefix Macros
JustIndex suppresses name output in the text, but flags for long and first name forms are reset as if the naming macro had produced output.
Automatic Rules
Also in 47 an index page entry has been created for Nippon Gakki, whose control model does not yet exist. On page 50 we try to make an index page entry to Mr.Yamahaby by calling his name.
Sorting Names
General Approach
YamahaCorp.!MN to the nameYamaha Corp. (Note that the extra point is swallowed in the text.) This fails because, unlike asee alsoreference, asee reference cannot be created when a name control pattern already exists. When sorting names that use alternate formatting or macros in name arguments, please ensure that the macros expand to the form desired in the index.
Sorting Initials
Unless one uses built-in macros associated with alternate formatting, additional steps may be required when using \PretagName with names that contain macros.
Index Tags
General Approach
Identical Names
Special Tags
Categories/Sub-entries
Application: Footnotes
Names in the main text, such as Adolf Harnack (later refined to Adolf von Harnack), tend to influence the forms of the names in the footnotes. 24 In note 24, \MainNameHookis is called instead of \NamesFormat because Harnackalready appeared above. When we create another note, we see very different results.25 Note 25 shows the first use of the name because it is the first use in the front matter system.
Making Name Decisions
If we hadn't used \global above, we would have implicitly reverted to the main issue system because of the scope and siquoteand itemize environments. Although we are in a section of the main issue, the name of the front issue also leaves:.
Formatting and Decisions
Testing Name Decisions
- Testing Macros
- Applications
- Beamer Example
- Alternate Argument . 77
- Nonstandard Caps
- Variants and Xrefs
In Sections 11.2.2 and 11.5 we explore ways one might automate something like what we have above. He wrote in the letter to the Galatians, later reported in the book of Acts, that he saw a vision of Jesus Christ on the road to Damascus. Cummings' motif of the goat-legged balloon man has sexual themes that nevertheless have a childish facade.
Using a Name Authority
Up to this point, the formatting hooks have taken a name whose form is set in the internal name parser, and the hooks have applied some typographical changes to that name. It then passes the name arguments to the name parser, either with a !MN head-case suffix or a front-case !NF suffix. Call a formatting hook depending on whether the name control sequence pattern exists and whether we are in the main subject system or the front subject system.
Data tags in Hooks
Hook Templates
As with Roman names, their default values produce the name form in the index entry. Implements on-demand capitalization in the body (not in the index) if not in alternate formatting. We tell the formatting hooks that they are in the hook dispatcher to enable alternative formatting.
Ancient Names
Life Dates
Alternate Formatting
- Enabling/Disabling
- Using \noexpand
- Capitalization
- Formatting Features . 92
- Inflected Names
- Reference Work I
Disabled means that the normal behavior of \CapThis is back in effect and the alternate formatting is inhibited. Using names created for alternate formatting in a document section that uses regular formatting will produce an inconsistent appearance in the text and false index entries. The alternate formatting macros shown above become more interesting when we automate how they are turned on and off.
Roman Names
General Market
Student Reference
Scholarly Reference
AKA prints a long form of the cross-reference name in the text.\See Also works with \AKA,\AKA*,\PName, and\PName*. Are macros in the name arguments that can expand differently under different circumstances, preceded by\noexpand. We inherit macros from the parser and use this macro only in the local area of the parser.
Special Uses
Aristotle (384–322 BCE) was the first to propose a system of logic, specifically syllogistic logic, that would become the basis for discrete states and digital computer circuitry. CANADA Takeo; W: Takeo Kanade (1945– ) is one of the most prominent pioneers in the field of computer vision. Lovelace, Ada (Augusta Ada King, Countess of Lovelace [née Byron) collaborated with Charles Babbage* and wrote what some consider to be the first computer program for the Analytical Engine.
Marginalia
Babbage, Charles designed and built the Difference Engine and began work on the Analytical Engine. Next, we define the two formatting hooks that structure the ways in which these macros can be expanded when printed in the text. They do not work like many other macros that display names and may be removed in the future.
Special Syntax
The Macros
The first occurrence of Good Queen Bess above uses \FrontNamesFormatas as its formatting hook because this is the first occurrence of the alias in the first case. Ensure that macros and conditionals used in name arguments are defined in the preamble or outermost scope. NameParser Print the name form based on the current state of the nameauthflags in the locked path.
Workarounds
Obsolete Syntax
This non-Western syntax limits alternative names and cross-references, prevents the use of comma-separated names, and makes indexing difficult. We'll show this syntax for completeness, but we highly recommend using the comma-separated syntax instead. Pierre-Jean de Smet was a Jesuit missionary who arrived in North America in 1821 at the age of twenty, after a year of seminary training.
Using Separate Macros
Our new \AltCaps works like the built-in version, except it doesn't use the internal macros and flags. Luther believed that one is declared righteous in a forensic sense by divine grace through faith created by the Holy Spirit through the gospel and the sacraments. Catherine de'Medici was not only Queen of France in her own right, but also headed the government of her three sons.
Full Customization
Adolf Harnack was a theologian who emphasized the Fatherhood of God and the brotherhood of man. He who governs by means of his virtues may be compared to the north star, which keeps its place and turns all the stars towards it. Because \CapThis segments a name argument, using it with macros in name arguments can cause errors if not used with alternative formatting (Section 11.3).
Tips: Indexing
Macros used in name arguments must be defined in the preamble or in the outer document scope to avoid errors. Boolean flags (\if⟨flag⟩) used with formatting brackets must be defined in the preamble or in the outer document scope. Any macro used in the argument of a naming macro must be defined in all ranges where that name is used.
We redefine \NameauthIndex to print the argument in text instead of the index and force indexing. Start the local scope to isolate any changes and redefine \NameauthIndex(index macro hook) to print the text entry.
Tips: Name Args
Active Unicode
General Information . 126
More Unicode characters can be made available when using fonts with TS1 glyphs (pages 455–463 of The Latex Companion). Since 2018, changes in the way pdflatex and latex handle Unicode characters have made indexing simpler and more intuitive, e.g. Use of certain text elements, such as \dotfillwithin tables, has become more permissive in recent TEX distributions.
Fragility
Flow Control
NameauthLName Hook is called after a name is forced through\if@nameauth@name being set to true. 430 \ if\if@nameauth@SkipIndex \IndexName fi Resets all "per name" Boolean values after printing a name. The state of \if@nameauth@GlobalScope determines whether or not the paths are in a local scope.
Now we parse the arguments, collapsing the control sequences either by the current name system type or completely.@nameauth@LocalNamestoggles the current system or both, while selecting the name type with@nameauth@MainFormat. Now we parse the arguments, specifying control sequences either by the current name system type or completely.@nameauth@LocalNamestoggles the current system or both, while selecting the name type with @nameauth@MainFormat.
Syntax
Debugging
Indexing
When used with the index debugging macros, show full index entries if true, and show simple entries otherwise.
Formatting
Name Decisions
Compatibility
Registers, Hooks, Values
Token Registers
Hooks
NameauthIndex This hook allows one to redefine what happens when any naming macro or indexing macro calls the equivalent of \index.
Internal Values
Package Options
Syntax
Indexing
Formatting
Predefined Hooks
Alternate Formatting 134
Compatibility
Package Initialization
Internal Macros
Fundamental Macros . 135
We need to do a bit more on the expansion to make the equation work properly. In those cases where one has to work with name forms in the text, one should test for \@nameauth@C somewhere in the #3 argument and swap it for \@nameauth@A, taking into account the presence or absence of \@nameauth @SB. Other places in the core naming engine where flags are reset are for special cases such as\JustIndex.
Core Name Engine
If \ShowIdxPagerefset \@nameauth@LongIdxDebugtruewe produces a full index entry showing all tags and the "actual" character and name. Create token registry copies of the current name args so that they are available to the hook macros. Now we get into a local scope where we can use simple control sequences without worrying about collisions.
Indexing
ExcludeName Prevents a name from being indexed by initializing a regular cross-reference control sequence with the value of \@nameauth@Exclude. Include Name* This macro allows any name to be indexed by destroying any exclusion or cross-reference. TagName This creates an index entry tag for a name that is not an exclusion or a cross-reference.
User Macros: Prefixes
Syntax
Indexing
Format/Decisions
User Macros: Helpers
Syntax
Indexing
IndexProtect We block all output from naming and indexing macros to protect against problems in the index in case a macro in the index contains one of the naming macros.
Formatting
Alternate Formatting 152
Name Parser
User Macros: Name Args
Basic Interface
Quick Interface
Here we have two arguments to expand in reverse order, so we need three uses, then one use of \exper token. We have three arguments to expand, so we have seven uses, three uses and one use of \ex.
Debugging Macros
ShowNameInfo Shows how the name arguments are interpreted by the nameauth macros, but as detokenized text. ShowNameState This macro tells the user what control order patterns exist for a given name. 974 \ifdefined \@nameauth@firstname \def\@nameauth@namecs{}\fi If an xref and an exclusion exist for a name, something went wrong.
Indexing
Name Data Tags
Name Decisions
IfAKA This macro expands one path if a cross-reference exists, another if not, and a third if omitted. First, we load the arguments into the default macros, check for errors, and get the current naming pattern.
Pseudonyms
AKA* This starred form sets a boolean to only print the alternative name argument if it exists and calls\AKA. Otherwise, if we used \SeeAlsowe, set the flag \SeeAlsofalse for \NameauthName and true for \AKA.
General: Initial release
General: Show or hide commas
General: Works with microtype , memoir
General: New back-end for naming macros
General: No default format
General: Root, suffix macros renamed,
General: Update manual, examples.tex
General: Update Readme.md, Makefile
General: Major updates to all files
Soter, king 40, 88, 103