diff options
author | Karl Berry <karl@freefriends.org> | 2021-10-15 22:15:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-10-15 22:15:23 +0000 |
commit | ed5606c1916622e36fe979e61b30ee483380bf39 (patch) | |
tree | 7adccfe0edc07d5c349973f81ce6f1052c5a0861 /Master/texmf-dist/doc/latex | |
parent | 80adc42821ac1dcac6a9fbbd6e46e77da5047fbc (diff) |
mfirstuc (16oct21)
git-svn-id: svn://tug.org/texlive/trunk@60770 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex')
-rw-r--r-- | Master/texmf-dist/doc/latex/mfirstuc/CHANGES | 22 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/mfirstuc/README | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-code.pdf | bin | 260995 -> 266637 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.html | 1174 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.pdf | bin | 294426 -> 301928 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.tex | 69 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.pdf | bin | 114720 -> 121084 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.tex | 7 |
8 files changed, 726 insertions, 550 deletions
diff --git a/Master/texmf-dist/doc/latex/mfirstuc/CHANGES b/Master/texmf-dist/doc/latex/mfirstuc/CHANGES index 77f20bd2ed0..a78e049ba9c 100644 --- a/Master/texmf-dist/doc/latex/mfirstuc/CHANGES +++ b/Master/texmf-dist/doc/latex/mfirstuc/CHANGES @@ -1,20 +1,28 @@ mfirstuc change log: -v2.06: +v2.07 (2021-10-15): + + * new commands: + + - \MFUcapwordfirstuc + - \MFUwordbreak + - \MFUskippunc + +v2.06 (2017-11-14): * \makefirstuc: added check for nested commands. -v2.05: +v2.05 (2017-11-10): * bug fix in \@mfu@applytofirst (#1 must be grouped) -v2.04: +v2.04 (2016-07-31): * bug fixes in \capitalisefmtwords and \@gls@split * added starred form of \capitalisefmtwords -v2.03: +v2.03 (2016-07-29): * Fixed test for \protect at the start of \makefirstuc @@ -26,16 +34,16 @@ v2.03: but allows for text-block formatting commands within the argument). -v2.02: +v2.02 (2015-12-17): * Fixed bug in \capitalisewords http://www.dickimaw-books.com/cgi-bin/bugtracker.cgi?action=view&key=104 -v2.01: +v2.01 (2015-12-08): * Added check for initial \protect in \makefirstuc -v2.0: +v2.0 (2015-09-09): * Split from glossaries bundle. diff --git a/Master/texmf-dist/doc/latex/mfirstuc/README b/Master/texmf-dist/doc/latex/mfirstuc/README index 0f406a84a8b..95e632cfc7e 100644 --- a/Master/texmf-dist/doc/latex/mfirstuc/README +++ b/Master/texmf-dist/doc/latex/mfirstuc/README @@ -1,6 +1,6 @@ -LaTeX Package : mfirstuc v2.06 +LaTeX Package : mfirstuc v2.07 -Last Modified : 2017-11-14 +Last Modified : 2021-10-15 Author : Nicola Talbot diff --git a/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-code.pdf b/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-code.pdf Binary files differindex 50469d6193c..f02689d526c 100644 --- a/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-code.pdf +++ b/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-code.pdf diff --git a/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.html b/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.html index e94be007b6a..be92120e8fa 100644 --- a/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.html +++ b/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.html @@ -6,157 +6,156 @@ > <head><title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)" /> -<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)" /> +<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)" /> +<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)" /> <!-- xhtml,fn-in,css-in,uni-html4,utf8 --> <meta name="src" content="mfirstuc-manual.tex" /> +<style type="text/css"> -<style type="text/css"> -<!-- - -/* start css.sty */ -.cmr-17{font-size:170%;} -.cmr-12{font-size:120%;} -.cmtt-12{font-size:120%;font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmss-10{ font-family: sans-serif;} -.cmss-10{ font-family: sans-serif;} -.cmtt-9{font-size:90%;font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmitt-10{font-family: monospace; font-style: italic;} -.cmti-10{ font-style: italic;} -.cmbx-10{ font-weight: bold;} -.cmbxti-10{ font-weight: bold; font-style: italic;} -.cmssi-10{ font-family: sans-serif; font-style: oblique;} -.cmssi-10{ font-family: sans-serif; font-style: oblique;} -p.noindent { text-indent: 0em } -td p.noindent { text-indent: 0em; margin-top:0em; } -p.nopar { text-indent: 0em; } -p.indent{ text-indent: 1.5em } -@media print {div.crosslinks {visibility:hidden;}} -a img { border-top: 0; border-left: 0; border-right: 0; } -center { margin-top:1em; margin-bottom:1em; } -td center { margin-top:0em; margin-bottom:0em; } -.Canvas { position:relative; } -img.math{vertical-align:middle;} -li p.indent { text-indent: 0em } -li p:first-child{ margin-top:0em; } -li p:last-child, li div:last-child { margin-bottom:0.5em; } -li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } -.enumerate1 {list-style-type:decimal;} -.enumerate2 {list-style-type:lower-alpha;} -.enumerate3 {list-style-type:lower-roman;} -.enumerate4 {list-style-type:upper-alpha;} -div.newtheorem { margin-bottom: 2em; margin-top: 2em;} -.obeylines-h,.obeylines-v {white-space: nowrap; } -div.obeylines-v p { margin-top:0; margin-bottom:0; } -.overline{ text-decoration:overline; } -.overline img{ border-top: 1px solid black; } -td.displaylines {text-align:center; white-space:nowrap;} -.centerline {text-align:center;} -.rightline {text-align:right;} -div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } -.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -div.fbox {display:table} -div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -div.minipage{width:100%;} -div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} -div.center div {text-align: left;} -div.flushright, div.flushright div.flushright {text-align: right;} -div.flushright div {text-align: left;} -div.flushleft {text-align: left;} -.underline{ text-decoration:underline; } -.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } -.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } -.framebox-c {text-align:center;} -.framebox-l {text-align:left;} -.framebox-r {text-align:right;} -span.thank-mark{ vertical-align: super } -span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } -div.footnotes{border-top:solid 1px black; border-bottom:solid 1px black; padding-bottom:1ex; padding-top:0.5ex; margin-right:15%; margin-top:2ex; font-style:italic; font-size:85%;} -div.footnotes p{margin-top:0; margin-bottom:0; text-indent:0;} -div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } -table.tabular td p{margin-top:0em;} -table.tabular {margin-left: auto; margin-right: auto;} -td p:first-child{ margin-top:0em; } -td p:last-child{ margin-bottom:0em; } -div.td00{ margin-left:0pt; margin-right:0pt; } -div.td01{ margin-left:0pt; margin-right:5pt; } -div.td10{ margin-left:5pt; margin-right:0pt; } -div.td11{ margin-left:5pt; margin-right:5pt; } -table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } -td.td00{ padding-left:0pt; padding-right:0pt; } -td.td01{ padding-left:0pt; padding-right:5pt; } -td.td10{ padding-left:5pt; padding-right:0pt; } -td.td11{ padding-left:5pt; padding-right:5pt; } -table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } -.hline hr, .cline hr{ height : 1px; margin:0px; } -.tabbing-right {text-align:right;} -span.TEX {letter-spacing: -0.125em; } -span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} -a span.TEX span.E {text-decoration: none; } -span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} -span.LATEX span.TEX{ position:relative; left: -0.4em; } -div.float, div.figure {margin-left: auto; margin-right: auto;} -div.float img {text-align:center;} -div.figure img {text-align:center;} -.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} -.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} -table.equation {width:100%;} -.equation td{text-align:center; } -td.equation { margin-top:1em; margin-bottom:1em; } -td.equation-label { width:5%; text-align:center; } -td.eqnarray4 { width:5%; white-space: normal; } -td.eqnarray2 { width:5%; } -table.eqnarray-star, table.eqnarray {width:100%;} -div.eqnarray{text-align:center;} -div.array {text-align:center;} -div.pmatrix {text-align:center;} -table.pmatrix {width:100%;} -span.pmatrix img{vertical-align:middle;} -div.pmatrix {text-align:center;} -table.pmatrix {width:100%;} -span.bar-css {text-decoration:overline;} -img.cdots{vertical-align:middle;} -.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} -.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc {line-height: 200%; font-weight:bold;} -.index-item, .index-subitem, .index-subsubitem {display:block} -div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;} -div.caption span.id{font-weight: bold; white-space: nowrap; } -h1.partHead{text-align: center} -p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } -p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } -.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} -.subparagraphHead, .likesubparagraphHead { font-weight: bold;} -.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} -.verse{white-space:nowrap; margin-left:2em} -div.maketitle {text-align:center;} -h2.titleHead{text-align:center;} -div.maketitle{ margin-bottom: 2em; } -div.author, div.date {text-align:center;} -div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } -.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } -h1.partHead{text-align: center} -.abstract p {margin-left:5%; margin-right:5%;} -div.abstract {width:100%;} -.alltt P { margin-bottom : 0em; margin-top : 0em; } -.alltt { margin-bottom : 1em; margin-top : 1em; } -div.important { border : solid red; } -div.verbatim { font-family: monospace; white-space: nowrap; text-align:left; clear:both; padding-top: 2ex; padding-bottom: 2ex;} -span#textcolor1{color:#FF0000} -/* end css.sty */ - - ---> -</style> +/* start css.sty */ +.cmr-17{font-size:170%;} +.cmr-12{font-size:120%;} +.cmtt-12{font-size:120%;font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmss-10{ font-family: sans-serif;} +.cmss-10{ font-family: sans-serif;} +.cmtt-9{font-size:90%;font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmitt-10{font-family: monospace,monospace; font-style: italic;} +.cmti-10{ font-style: italic;} +.cmbx-10{ font-weight: bold;} +.cmbxti-10{ font-weight: bold; font-style: italic;} +.cmssi-10{ font-family: sans-serif; font-style: oblique;} +.cmssi-10{ font-family: sans-serif; font-style: oblique;} +p{margin-top:0;margin-bottom:0} +p.indent{text-indent:0;} +p + p{margin-top:1em;} +p + div, p + pre {margin-top:1em;} +div + p, pre + p {margin-top:1em;} +a { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; hyphens: auto; } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +div.par-math-display, div.math-display{text-align:center;} +li p.indent { text-indent: 0em } +li p:first-child{ margin-top:0em; } +li p:last-child, li div:last-child { margin-bottom:0.5em; } +li p:first-child{ margin-bottom:0; } +li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +pre.verbatim {font-family: monospace,monospace; text-align:left; clear:both; } +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.fbox {display:table} +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.footnotes{border-top:solid 1px black; border-bottom:solid 1px black; padding-bottom:1ex; padding-top:0.5ex; margin-right:15%; margin-top:2ex; font-style:italic; font-size:85%;} +div.footnotes p{margin-top:0; margin-bottom:0; text-indent:0;} +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 0px; margin:0px; } +.hline td, .cline td{ padding: 0; } +.hline hr, .cline hr{border:none;border-top:1px solid black;} +.hline {border-top: 1px solid black;} +.tabbing-right {text-align:right;} +div.float, div.figure {margin-left: auto; margin-right: auto;} +div.float img {text-align:center;} +div.figure img {text-align:center;} +.marginpar,.reversemarginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p,.reversemarginpar p{margin-top:0.4em; margin-bottom:0.4em;} +.reversemarginpar{float:left;} +table.equation {width:100%;} +.equation td{text-align:center; } +td.equation { margin-top:1em; margin-bottom:1em; } +td.equation-label { width:5%; text-align:center; } +td.eqnarray4 { width:5%; white-space: normal; } +td.eqnarray2 { width:5%; } +table.eqnarray-star, table.eqnarray {width:100%;} +div.eqnarray{text-align:center;} +div.array {text-align:center;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.pmatrix img{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.bar-css {text-decoration:overline;} +img.cdots{vertical-align:middle;} +.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} +.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc {line-height: 200%; font-weight:bold;} +.index-item, .index-subitem, .index-subsubitem {display:block} +div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;} +div.caption span.id{font-weight: bold; white-space: nowrap; } +h1.partHead{text-align: center} +p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} +.subparagraphHead, .likesubparagraphHead { font-weight: bold;} +.verse{white-space:nowrap; margin-left:2em} +div.maketitle {text-align:center;} +h2.titleHead{text-align:center;} +div.maketitle{ margin-bottom: 2em; } +div.author, div.date {text-align:center;} +div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } +h1.partHead{text-align: center} +div.abstract p {margin-left:5%; margin-right:5%;} +div.abstract {width:100%;} +.abstracttitle{text-align:center;margin-bottom:1em;} +.alltt P { margin-bottom : 0em; margin-top : 0em; } +.alltt { margin-bottom : 1em; margin-top : 1em; font-family:monospace,monospace; } +.warningsymbol { color: red; font-weight: bold;} +div.important { border : solid red; } +div.verbatim { font-family: monospace; white-space: nowrap; text-align:left; clear:both; padding-top: 2ex; padding-bottom: 2ex;} +span#textcolor1{color:#FF0000} +/* end css.sty */ + +</style> </head><body > <!--l. 36--><p class="noindent" ><a @@ -174,10 +173,10 @@ span#textcolor1{color:#FF0000} > <!--l. 36--><p class="noindent" > </p><!--l. 36--><p class="noindent" ><span -class="cmr-17">mfirstuc.sty v2.06: uppercasing first letter</span> +class="cmr-17">mfirstuc.sty v2.07: uppercasing first letter</span> </p> <div class="tabular"> <table id="TBL-1" class="tabular" -cellspacing="0" cellpadding="0" + ><colgroup id="TBL-1-1g"><col id="TBL-1-1" /></colgroup><tr style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-1-1-1" @@ -196,7 +195,7 @@ href="http://www.dickimaw-books.com/" class="url" ><span class="cmtt-12">http://www.dickimaw-books.com/</span></a></td></tr></table> </div> <!--l. 36--><p class="noindent" ><span -class="cmr-12">2017-11-14</span></p></div> +class="cmr-12">2021-10-15</span></p></div> @@ -235,23 +234,25 @@ scoped declarations. </div> </p><!--l. 53--><p class="noindent" > </p><!--l. 55--><p class="indent" > Here are some examples of semantic commands: </p><ol class="enumerate1" > - <li - class="enumerate" id="x1-2002x1">Quoted material: +<li + class="enumerate" id="x1-2002x1"> + <!--l. 57--><p class="noindent" >Quoted material: - <div class="verbatim" id="verbatim-1"> +</p> + <pre class="verbatim" id="verbatim-1"> \newcommand{\qt}[1]{``#1''} -</div> +</pre> <!--l. 60--><p class="nopar" > (or use the <span class="cmss-10">csquotes </span>package). With this, the following works: </p> - <div class="verbatim" id="verbatim-2"> + <pre class="verbatim" id="verbatim-2"> \makefirstuc{\qt{word}} -</div> +</pre> <!--l. 65--><p class="nopar" > This produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />“Word” <br /><spacer type=vertical size=10></span> @@ -260,30 +261,32 @@ class="cmss-10">csquotes </span>package). With this, the following works: </p> - <div class="verbatim" id="verbatim-3"> + <pre class="verbatim" id="verbatim-3"> \makefirstuc{``word''} -</div> +</pre> <!--l. 73--><p class="nopar" > fails (no case-change and double open quote becomes two single open quotes): <spacer type=vertical size=10><span class="obeylines-h"> <br />‘‘word” <br /><spacer type=vertical size=10></span> </p></li> - <li - class="enumerate" id="x1-2004x2">Font styles or colours: +<li + class="enumerate" id="x1-2004x2"> + <!--l. 80--><p class="noindent" >Font styles or colours: - <div class="verbatim" id="verbatim-4"> +</p> + <pre class="verbatim" id="verbatim-4"> \newcommand*{\alert}[1]{\textcolor{red}{#1}} -</div> +</pre> <!--l. 83--><p class="nopar" > Now the following is possible: </p> - <div class="verbatim" id="verbatim-5"> + <pre class="verbatim" id="verbatim-5"> \makefirstuc{\alert{word}} -</div> +</pre> <!--l. 87--><p class="nopar" > This produces <spacer type=vertical size=10><span class="obeylines-h"> <br /><span id="textcolor1">Word</span> <br /><spacer type=vertical size=10></span> @@ -304,22 +307,21 @@ class="cmtt-10">\ecapitalisefmtwords</span>). </p><!--l. 102--><p class="noindent" ><a href="#top">Top</a><div class="chapter"><h2 class="chapterHead">2. <a id="sec:makefirstuc"></a>Capitalising the First Letter of a Word</h2> -</p><!--l. 105--><p class="indent" > A simple word can be capitalised just using the standard <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span -class="E">E</span>X</span></span> upper casing command. +</p><!--l. 105--><p class="indent" > A simple word can be capitalised just using the standard LaTeX upper casing command. For example, </p> - <div class="verbatim" id="verbatim-6"> + <pre class="verbatim" id="verbatim-6"> \MakeUppercase word -</div> +</pre> <!--l. 109--><p class="nopar" > but for commands like <span class="cmtt-10">\Gls </span>the word may be embedded within the argument of another command, such as a font changing command. This makes things more complicated for a general purpose solution, so the <span class="cmss-10">mfirstuc </span>package provides: -</p><!--l. 114--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 114--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\makefirstuc</span><span class="cmtt-9"> </span></span><a id="dx1-3001"></a> <span @@ -333,7 +335,17 @@ class="cmti-10">stuff </span>⟩ starts with a control sequence followed by a non-empty group, in which case the first object in the group is converted to upper case. <span class="cmbx-10">No expansion is performed on the argument.</span> -</p><!--l. 123--><p class="indent" > <div class="important" title="Important Note"> If ⟨<span +</p><!--l. 123--><p class="indent" > If ⟨<span +class="cmti-10">stuff </span>⟩ starts with punctuation that should be skipped over, use: +</p><!--l. 125--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span +class="cmtt-9">\MFUskippunc</span><span +class="cmtt-9"> </span></span><a + id="dx1-3002"></a> <span +class="cmtt-10">\MFUskippunc{</span>⟨<span +class="cmitt-10">punctuation</span>⟩<span +class="cmtt-10">} </span></div><hr> +</p><!--l. 127--><p class="noindent" > +</p><!--l. 129--><p class="indent" > <div class="important" title="Important Note"> If ⟨<span class="cmti-10">stuff </span>⟩ starts with a control sequence that takes more than one argument, the case-changing will always be applied to the <span class="cmti-10">first </span>argument. If the text that requires the case @@ -344,26 +356,29 @@ class="cmtt-10">\red</span></span></span> as <span class="obeylines-h"><span class="verb"><span class="cmtt-10">\color{red}</span></span></span> and use <span class="obeylines-h"><span class="verb"><span class="cmtt-10">\red{text}</span></span></span>. </div> -</p><!--l. 131--><p class="noindent" > -</p><!--l. 133--><p class="indent" > Examples: </p> +</p><!--l. 137--><p class="noindent" > +</p><!--l. 139--><p class="indent" > Examples: </p> <ul class="itemize1"> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 141--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc{abc}</span></span></span> produces Abc. - </li> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + </p></li> + <li class="itemize"> + <!--l. 143--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc{\emph{abc}}</span></span></span> produces <span class="cmti-10">Abc </span>(<span class="cmtt-10">\MakeUppercase</span><a - id="dx1-3002"></a> has been applied to the + id="dx1-3003"></a> has been applied to the letter “a” rather than <span class="cmtt-10">\emph</span>). Note however that - <div class="verbatim" id="verbatim-7"> +</p> + <pre class="verbatim" id="verbatim-7"> \makefirstuc{{\em abc}} -</div> - <!--l. 142--><p class="nopar" > produces <span +</pre> + <!--l. 148--><p class="nopar" > produces <span class="cmti-10">ABC </span>(first object is <span class="obeylines-h"><span class="verb"><span class="cmtt-10">{\em</span><span class="cmtt-10"> abc}</span></span></span> so this is equivalent to <span class="obeylines-h"><span class="verb"><span @@ -374,91 +389,103 @@ class="cmtt-10"> abc}</span></span></span>), </p> - <div class="verbatim" id="verbatim-8"> + <pre class="verbatim" id="verbatim-8"> {\makefirstuc{\em abc}} -</div> - <!--l. 147--><p class="nopar" > produces abc (<span class="obeylines-h"><span class="verb"><span +</pre> + <!--l. 153--><p class="nopar" > produces abc (<span class="obeylines-h"><span class="verb"><span class="cmtt-10">\em</span></span></span> doesn’t have an argument therefore first object is <span class="obeylines-h"><span class="verb"><span class="cmtt-10">\em</span></span></span> and so is equivalent to <span class="obeylines-h"><span class="verb"><span class="cmtt-10">{\MakeUppercase{\em}abc}</span></span></span>). </p></li> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 158--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc{{\’a}bc}</span></span></span> produces Ábc. - </li> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + </p></li> + <li class="itemize"> + <!--l. 160--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc{\ae</span><span class="cmtt-10"> bc}</span></span></span> produces Æbc. - </li> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + </p></li> + <li class="itemize"> + <!--l. 162--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc{{\ae}bc}</span></span></span> produces Æbc. - </li> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + </p></li> + <li class="itemize"> + <!--l. 164--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc{{</span><span class="cmtt-10">ä</span><span class="cmtt-10">}bc}</span></span></span> produces Äbc. + </p></li> + <li class="itemize"> + <!--l. 166--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span +class="cmtt-10">\makefirstuc{\MFUskippunc{’}tis</span><span +class="cmtt-10"> the</span><span +class="cmtt-10"> season}</span></span></span> produces ’Tis the season. +</p> </li></ul> -<!--l. 162--><p class="indent" > Note that non-Latin or accented characters appearing at the start of the text should be +<!--l. 171--><p class="indent" > Note that non-Latin or accented characters appearing at the start of the text should be placed in a group (even if you are using the <span class="cmss-10">inputenc</span><a - id="dx1-3003"></a> package). The reason for this restriction + id="dx1-3004"></a> package). The reason for this restriction is detailed in <a href="#sec:utf8"><span -class="cmsy-10">§</span>4 </a><a +class="tcrm-1000">§</span><span +class="cmbx-10">4. </span></a><a href="#sec:utf8">UTF-8<!--tex4ht:ref: sec:utf8 --></a>. -</p><!--l. 167--><p class="indent" > <span +</p><!--l. 176--><p class="indent" > <span class="cmbx-10">New to version 2.04: </span>There is now limited support for UTF-8 characters with the <span class="cmss-10">inputenc</span><a - id="dx1-3004"></a> package, provided that you load <span + id="dx1-3005"></a> package, provided that you load <span class="cmss-10">datatool-base</span><a - id="dx1-3005"></a> (at least v2.24) before <span + id="dx1-3006"></a> (at least v2.24) before <span class="cmss-10">mfirstuc</span> (<span class="cmss-10">datatool-base</span><a - id="dx1-3006"></a> is loaded automatically with newer versions of <span + id="dx1-3007"></a> is loaded automatically with newer versions of <span class="cmss-10">glossaries</span><a - id="dx1-3007"></a>). If available <span + id="dx1-3008"></a>). If available <span class="cmss-10">mfirstuc</span><a - id="dx1-3008"></a> + id="dx1-3009"></a> will now use <span class="cmss-10">datatool-base</span><a - id="dx1-3009"></a>’s <span + id="dx1-3010"></a>’s <span class="cmtt-10">\dtl@getfirst@UTFviii</span><a - id="dx1-3010"></a> command which is still experimental. + id="dx1-3011"></a> command which is still experimental. See the <span class="cmss-10">datatool </span>manual for further details. </p> - <div class="verbatim" id="verbatim-9"> + <pre class="verbatim" id="verbatim-9"> \documentclass{article} - <br />\usepackage[T1]{fontenc} - <br />\usepackage[utf8]{inputenc} - <br />\usepackage{datatool-base}[2016/01/12]% v2.24+ - <br />\usepackage{mfirstuc} - <br />\begin{document} - <br />\makefirstuc{élite} - <br />\end{document} -</div> -<!--l. 188--><p class="nopar" > (Package ordering is important.) -</p><!--l. 191--><p class="indent" > <div class="important" title="Important Note"> In version 1.02 of <span +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{datatool-base}[2016/01/12]% v2.24+ +\usepackage{mfirstuc} +\begin{document} +\makefirstuc{élite} +\end{document} +</pre> +<!--l. 197--><p class="nopar" > (Package ordering is important.) +</p><!--l. 200--><p class="indent" > <div class="important" title="Important Note"> In version 1.02 of <span class="cmss-10">mfirstuc</span>, a bug fix resulted in a change in output if the first object is a control sequence followed by an empty group. Prior to version 1.02, <span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc{\ae{}bc}</span></span></span> produced æBc. However as from version 1.02, it now produces Æbc. </div> -</p><!--l. 197--><p class="noindent" > -</p><!--l. 199--><p class="indent" > Note also that +</p><!--l. 206--><p class="noindent" > +</p><!--l. 208--><p class="indent" > Note also that </p> - <div class="verbatim" id="verbatim-10"> + <pre class="verbatim" id="verbatim-10"> \newcommand{\abc}{abc} - <br />\makefirstuc{\abc} -</div> -<!--l. 203--><p class="nopar" > produces: ABC. This is because the first object in the argument of <span +\makefirstuc{\abc} +</pre> +<!--l. 212--><p class="nopar" > produces: ABC. This is because the first object in the argument of <span class="cmtt-10">\makefirstuc </span>is <span class="cmtt-10">\abc</span>, so it does <span class="obeylines-h"><span class="verb"><span @@ -467,19 +494,19 @@ class="cmtt-10">\MakeUppercase{\abc}</span></span></span>. Whereas: </p> - <div class="verbatim" id="verbatim-11"> + <pre class="verbatim" id="verbatim-11"> \newcommand{\abc}{abc} - <br />\expandafter\makefirstuc\expandafter{\abc} -</div> -<!--l. 210--><p class="nopar" > produces: Abc. There is a short cut command which will do this: -</p><!--l. 212--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +\expandafter\makefirstuc\expandafter{\abc} +</pre> +<!--l. 219--><p class="nopar" > produces: Abc. There is a short cut command which will do this: +</p><!--l. 221--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\xmakefirstuc</span><span class="cmtt-9"> </span></span><a - id="dx1-3011"></a> <span + id="dx1-3012"></a> <span class="cmtt-10">\xmakefirstuc{</span>⟨<span class="cmitt-10">stuff</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 214--><p class="noindent" > +</p><!--l. 223--><p class="noindent" > This is equivalent to <span class="cmtt-10">\expandafter\makefirstuc\expandafter{</span>⟨<span class="cmti-10">stuff </span>⟩<span @@ -488,96 +515,96 @@ class="cmtt-10">}</span>. So </p> - <div class="verbatim" id="verbatim-12"> + <pre class="verbatim" id="verbatim-12"> \newcommand{\abc}{abc} - <br />\xmakefirstuc{\abc} -</div> -<!--l. 219--><p class="nopar" > produces: Abc. -</p><!--l. 224--><p class="indent" > <div class="important" title="Important Note"> <span +\xmakefirstuc{\abc} +</pre> +<!--l. 228--><p class="nopar" > produces: Abc. +</p><!--l. 233--><p class="indent" > <div class="important" title="Important Note"> <span class="cmtt-10">\xmakefirstuc </span>only performs one level expansion on the <span class="cmti-10">first </span>object in its argument. It does not fully expand the entire argument. </div> -</p><!--l. 228--><p class="noindent" > -</p><!--l. 230--><p class="indent" > As from version 1.10, there is now a command that fully expands the entire argument +</p><!--l. 237--><p class="noindent" > +</p><!--l. 239--><p class="indent" > As from version 1.10, there is now a command that fully expands the entire argument before applying <span class="cmtt-10">\makefirstuc</span>: -</p><!--l. 232--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 241--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\emakefirstuc</span><span class="cmtt-9"> </span></span><a - id="dx1-3012"></a> <span + id="dx1-3013"></a> <span class="cmtt-10">\emakefirstuc{</span>⟨<span class="cmitt-10">text</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 234--><p class="noindent" > -</p><!--l. 236--><p class="indent" > Examples: +</p><!--l. 243--><p class="noindent" > +</p><!--l. 245--><p class="indent" > Examples: </p> - <div class="verbatim" id="verbatim-13"> + <pre class="verbatim" id="verbatim-13"> \newcommand{\abc}{\xyz a} - <br />\newcommand{\xyz}{xyz} - <br />No expansion: \makefirstuc{\abc}. - <br />First object one-level expansion: \xmakefirstuc{\abc}. - <br />Fully expanded: \emakefirstuc{\abc}. -</div> -<!--l. 243--><p class="nopar" > produces: No expansion: XYZA. First object one-level expansion: XYZa. Fully expanded: +\newcommand{\xyz}{xyz} +No expansion: \makefirstuc{\abc}. +First object one-level expansion: \xmakefirstuc{\abc}. +Fully expanded: \emakefirstuc{\abc}. +</pre> +<!--l. 252--><p class="nopar" > produces: No expansion: XYZA. First object one-level expansion: XYZa. Fully expanded: Xyza. -</p><!--l. 251--><p class="indent" > If you use <span +</p><!--l. 260--><p class="indent" > If you use <span class="cmss-10">mfirstuc </span>without the <span class="cmss-10">glossaries</span><a - id="dx1-3013"></a> package, the standard <span + id="dx1-3014"></a> package, the standard <span class="cmtt-10">\MakeUppercase </span>command is used. If used with <span class="cmss-10">glossaries</span><a - id="dx1-3014"></a>, <span + id="dx1-3015"></a>, <span class="cmtt-10">\MakeTextUppercase</span><a - id="dx1-3015"></a> (defined by the <span + id="dx1-3016"></a> (defined by the <span class="cmss-10">textcase</span><a - id="dx1-3016"></a> package) is used + id="dx1-3017"></a> package) is used instead. If you are using <span class="cmss-10">mfirstuc </span>without the <span class="cmss-10">glossaries </span>package and want to use <span class="cmtt-10">\MakeTextUppercase</span><a - id="dx1-3017"></a> instead, you can redefine -</p><!--l. 257--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span + id="dx1-3018"></a> instead, you can redefine +</p><!--l. 266--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\glsmakefirstuc</span><span class="cmtt-9"> </span></span><a - id="dx1-3018"></a> <span + id="dx1-3019"></a> <span class="cmtt-10">\glsmakefirstuc{</span>⟨<span class="cmitt-10">text</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 259--><p class="noindent" > +</p><!--l. 268--><p class="noindent" > For example: </p> - <div class="verbatim" id="verbatim-14"> + <pre class="verbatim" id="verbatim-14"> \renewcommand{\glsmakefirstuc}[1]{\MakeTextUppercase #1} -</div> -<!--l. 263--><p class="nopar" > Remember to also load <span +</pre> +<!--l. 272--><p class="nopar" > Remember to also load <span class="cmss-10">textcase</span><a - id="dx1-3019"></a> (<span + id="dx1-3020"></a> (<span class="cmss-10">glossaries </span>loads this automatically). </p> -<!--l. 267--><p class="indent" > </div> -</p><!--l. 267--><p class="noindent" ><a +<!--l. 276--><p class="indent" > </div> +</p><!--l. 276--><p class="noindent" ><a href="#top">Top</a><div class="chapter"><h2 class="chapterHead">3. <a id="sec:capitalisewords"></a>Capitalise the First Letter of Each Word in a Phrase or Sentence (Title Case)</h2> -</p><!--l. 270--><p class="indent" > New to mfirstuc v1.06: -</p><!--l. 271--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 279--><p class="indent" > New to mfirstuc v1.06: +</p><!--l. 280--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\capitalisewords</span><span class="cmtt-9"> </span></span><a id="dx1-4001"></a> <span class="cmtt-10">\capitalisewords{</span>⟨<span class="cmitt-10">text</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 273--><p class="noindent" > +</p><!--l. 282--><p class="noindent" > This command applies <span class="cmtt-10">\makefirstuc</span><a id="dx1-4002"></a> to each word in ⟨<span @@ -588,54 +615,54 @@ class="cmtt-10">~</span></span></span> or <span class="cmtt-10">\space</span>. Note that no expansion is performed on ⟨<span class="cmti-10">text</span>⟩. See <a href="#sec:nocap"><span -class="cmsy-10">§</span>3.2 -</a><a +class="tcrm-1000">§</span><span +class="cmbx-10">3.2 </span></a><a href="#sec:nocap">Excluding Words From Case-Changing<!--tex4ht:ref: sec:nocap --></a> for excluding words (such as “of”) from the case-changing. -</p><!--l. 281--><p class="indent" > The actual capitalisation of each word is done using (new to version 2.03): -</p><!--l. 283--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span -class="cmtt-9">\MFUcapword</span><span +</p><!--l. 290--><p class="indent" > The actual capitalisation of each word is done using +</p><!--l. 291--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span +class="cmtt-9">\MFUcapwordfirstuc</span><span class="cmtt-9"> </span></span><a id="dx1-4003"></a> <span -class="cmtt-10">\MFUcapword{</span>⟨<span +class="cmtt-10">\MFUcapwordfirstuc{</span>⟨<span class="cmitt-10">word</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 285--><p class="noindent" > +</p><!--l. 293--><p class="noindent" > This just does <span class="cmtt-10">\makefirstuc{</span>⟨<span class="cmti-10">word</span>⟩<span -class="cmtt-10">} </span>by default, but its behaviour is determined by the -conditional: -</p><!--l. 288--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +class="cmtt-10">} </span>by default. There’s a conditional that determines +whether or not to consider a hyphen a word break: +</p><!--l. 297--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\ifMFUhyphen</span><span class="cmtt-9"> </span></span><a id="dx1-4004"></a> <span class="cmtt-10">\ifMFUhyphen </span></div><hr> -</p><!--l. 290--><p class="noindent" > -</p><!--l. 292--><p class="indent" > If you want to title case each part of a compound word containing hyphens, you can enable +</p><!--l. 299--><p class="noindent" > +</p><!--l. 301--><p class="indent" > If you want to title case each part of a compound word containing hyphens, you can enable this using -</p><!--l. 294--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 303--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\MFUhyphentrue</span><span class="cmtt-9"> </span></span><a id="dx1-4005"></a> <span class="cmtt-10">\MFUhyphentrue </span></div><hr> -</p><!--l. 296--><p class="noindent" > +</p><!--l. 305--><p class="noindent" > or switch it back off again using: -</p><!--l. 298--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 307--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\MFUhyphenfalse</span><span class="cmtt-9"> </span></span><a id="dx1-4006"></a> <span class="cmtt-10">\MFUhyphenfalse </span></div><hr> -</p><!--l. 300--><p class="noindent" > +</p><!--l. 309--><p class="noindent" > Compare </p> - <div class="verbatim" id="verbatim-15"> + <pre class="verbatim" id="verbatim-15"> \capitalisewords{server-side includes} -</div> -<!--l. 304--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> +</pre> +<!--l. 313--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />Server-side Includes <br /><spacer type=vertical size=10></span> with @@ -643,14 +670,64 @@ with </p> - <div class="verbatim" id="verbatim-16"> + <pre class="verbatim" id="verbatim-16"> \MFUhyphentrue - <br />\capitalisewords{server-side includes} -</div> -<!--l. 313--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> +\capitalisewords{server-side includes} +</pre> +<!--l. 322--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />Server-Side Includes <br /><spacer type=vertical size=10></span> -</p><!--l. 320--><p class="indent" > Formatting for the entire phrase must go outside <span +Note that this won’t apply exceptions to each part of the hyphenated word. +</p><!--l. 331--><p class="indent" > For other punctuation you need to markup the character with: +</p><!--l. 332--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span +class="cmtt-9">\MFUwordbreak</span><span +class="cmtt-9"> </span></span><a + id="dx1-4007"></a> <span +class="cmtt-10">\MFUwordbreak{</span>⟨<span +class="cmitt-10">punctuation</span>⟩<span +class="cmtt-10">} </span></div><hr> +</p><!--l. 334--><p class="noindent" > +For example: + + + +</p> + <pre class="verbatim" id="verbatim-17"> +\capitalisewords{a big\MFUwordbreak{/}small idea} +</pre> +<!--l. 338--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> + <br />A Big/Small Idea + <br /><spacer type=vertical size=10></span> +In this case, exceptions are applied. For example, if <span +class="cmss-10">mfirstuc-english</span><a + id="dx1-4008"></a> is loaded then: + + + +</p> + <pre class="verbatim" id="verbatim-18"> +\capitalisewords{one and\MFUwordbreak{/}or another} +</pre> +<!--l. 347--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> + <br />One and/or Another + <br /><spacer type=vertical size=10></span> +Note that you can’t hide <span +class="cmtt-10">\MFUwordbreak </span>inside a command or group. +</p><!--l. 355--><p class="indent" > Exceptions aren’t applied if <span +class="cmtt-10">\MFUwordbreak </span>occurs before the first space. For +example: + + + +</p> + <pre class="verbatim" id="verbatim-19"> +\MFUnocap{a}\MFUnocap{the}% +\capitalisewords{a\MFUwordbreak{/}the something} +</pre> +<!--l. 360--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> + <br />A/The Something + <br /><spacer type=vertical size=10></span> +</p><!--l. 367--><p class="indent" > Formatting for the entire phrase must go outside <span class="cmtt-10">\capitalisewords </span>(unlike <span class="cmtt-10">\makefirstuc</span>). Compare: @@ -658,10 +735,10 @@ class="cmtt-10">\makefirstuc</span>). Compare: </p> - <div class="verbatim" id="verbatim-17"> + <pre class="verbatim" id="verbatim-20"> \capitalisewords{\textbf{a sample phrase}} -</div> -<!--l. 324--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> +</pre> +<!--l. 371--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> <br /><span class="cmbx-10">A sample phrase</span> <br /><spacer type=vertical size=10></span> @@ -670,20 +747,20 @@ with: </p> - <div class="verbatim" id="verbatim-18"> + <pre class="verbatim" id="verbatim-21"> \textbf{\capitalisewords{a sample phrase}} -</div> -<!--l. 332--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> +</pre> +<!--l. 379--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h"> <br /><span class="cmbx-10">A Sample Phrase</span> <br /><spacer type=vertical size=10></span> -</p><!--l. 338--><p class="indent" > As from version 2.03, there is now a command for phrases that may include a formatting +</p><!--l. 385--><p class="indent" > As from version 2.03, there is now a command for phrases that may include a formatting command: -</p><!--l. 341--><p class="indent" > <hr><div title="Definition"><span +</p><!--l. 388--><p class="indent" > <hr><div title="Definition"><span class="cmtt-10">\capitalisefmtwords{</span>⟨<span class="cmitt-10">phrase</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 342--><p class="noindent" > +</p><!--l. 389--><p class="noindent" > where ⟨<span class="cmti-10">phrase</span>⟩ may be just words (as with <span class="cmtt-10">\capitalisewords</span>) or may be entirely enclosed in a @@ -714,114 +791,127 @@ class="cmitt-10">words</span>⟩<span class="cmsy-10">}</span> </div> </div> Avoid scoped declarations. -<!--l. 354--><p class="indent" > <div class="important" title="Important Note"> <span +<!--l. 401--><p class="indent" > <div class="important" title="Important Note"> <span class="cmtt-10">\capitalisefmtwords </span>is only designed for phrases that contain text-block commands with a single argument, which should be a word or sub-phrase. Anything more complicated is likely to break. Instead, use the starred form or <span class="cmtt-10">\capitalisewords</span>. </div> -</p><!--l. 360--><p class="noindent" > -</p><!--l. 362--><p class="indent" > The starred form only permits a text-block command at the start of the phrase. -</p><!--l. 365--><p class="indent" > Examples: +</p><!--l. 407--><p class="noindent" > +</p><!--l. 409--><p class="indent" > The starred form only permits a text-block command at the start of the phrase. +</p><!--l. 412--><p class="indent" > Examples: </p><ol class="enumerate1" > - <li - class="enumerate" id="x1-4008x1">Phrase entirely enclosed in a formatting command: +<li + class="enumerate" id="x1-4010x1"> + <!--l. 414--><p class="noindent" >Phrase entirely enclosed in a formatting command: - <div class="verbatim" id="verbatim-19"> +</p> + <pre class="verbatim" id="verbatim-22"> \capitalisefmtwords{\textbf{a small book of rhyme}} -</div> - <!--l. 370--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +</pre> + <!--l. 417--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br /><span class="cmbx-10">A Small Book Of Rhyme</span> <br /><spacer type=vertical size=10></span> </p></li> - <li - class="enumerate" id="x1-4010x2">Sub-phrase enclosed in a formatting command: +<li + class="enumerate" id="x1-4012x2"> + <!--l. 423--><p class="noindent" >Sub-phrase enclosed in a formatting command: - <div class="verbatim" id="verbatim-20"> +</p> + <pre class="verbatim" id="verbatim-23"> \capitalisefmtwords{a \textbf{small book} of rhyme} -</div> - <!--l. 379--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +</pre> + <!--l. 426--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />A <span class="cmbx-10">Small Book </span>Of Rhyme <br /><spacer type=vertical size=10></span> </p></li> - <li - class="enumerate" id="x1-4012x3">Nested text-block commands: +<li + class="enumerate" id="x1-4014x3"> + <!--l. 432--><p class="noindent" >Nested text-block commands: - <div class="verbatim" id="verbatim-21"> +</p> + <pre class="verbatim" id="verbatim-24"> \capitalisefmtwords{\textbf{a \emph{small book}} of rhyme} -</div> - <!--l. 388--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +</pre> + <!--l. 435--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br /><span class="cmbx-10">A </span><span class="cmbxti-10">Small Book </span>Of Rhyme <br /><spacer type=vertical size=10></span> </p></li> - <li - class="enumerate" id="x1-4014x4">Indicating words that shouldn’t have the case changed (see <a +<li + class="enumerate" id="x1-4016x4"> + <!--l. 441--><p class="noindent" >Indicating words that shouldn’t have the case changed (see <a href="#sec:nocap"><span -class="cmsy-10">§</span>3.2 </a><a -href="#sec:nocap">Excluding Words From - Case-Changing<!--tex4ht:ref: sec:nocap --></a>): +class="tcrm-1000">§</span><span +class="cmbx-10">3.2 </span></a><a +href="#sec:nocap">Excluding + Words From Case-Changing<!--tex4ht:ref: sec:nocap --></a>): - <div class="verbatim" id="verbatim-22"> +</p> + <pre class="verbatim" id="verbatim-25"> \MFUnocap{of} -  <br />\capitalisefmtwords{\textbf{a \emph{small book}} of rhyme} -</div> - <!--l. 399--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> + \capitalisefmtwords{\textbf{a \emph{small book}} of rhyme} +</pre> + <!--l. 446--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br /><span class="cmbx-10">A </span><span class="cmbxti-10">Small Book </span>of Rhyme <br /><spacer type=vertical size=10></span> </p></li> - <li - class="enumerate" id="x1-4016x5">Starred form: +<li + class="enumerate" id="x1-4018x5"> + <!--l. 453--><p class="noindent" >Starred form: - <div class="verbatim" id="verbatim-23"> +</p> + <pre class="verbatim" id="verbatim-26"> \MFUnocap{of} -  <br />\capitalisefmtwords*{\emph{a small book of rhyme}} -</div> - <!--l. 410--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> + \capitalisefmtwords*{\emph{a small book of rhyme}} +</pre> + <!--l. 457--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br /><span class="cmti-10">A Small Book of Rhyme</span> <br /><spacer type=vertical size=10></span> </p></li> - <li - class="enumerate" id="x1-4018x6">The starred form also works with just text (no text-block command): +<li + class="enumerate" id="x1-4020x6"> + <!--l. 464--><p class="noindent" >The starred form also works with just text (no text-block command): - <div class="verbatim" id="verbatim-24"> +</p> + <pre class="verbatim" id="verbatim-27"> \MFUnocap{of} -  <br />\capitalisefmtwords*{a small book of rhyme} -</div> - <!--l. 422--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> + \capitalisefmtwords*{a small book of rhyme} +</pre> + <!--l. 469--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />A Small Book of Rhyme <br /><spacer type=vertical size=10></span> </p> </li></ol> -<!--l. 431--><p class="indent" > If there is a text-block command within the argument of the starred form, it’s assumed to +<!--l. 478--><p class="indent" > If there is a text-block command within the argument of the starred form, it’s assumed to be at the start of the argument. Unexpected results can occur if there are other commands. For example </p> - <div class="verbatim" id="verbatim-25"> + <pre class="verbatim" id="verbatim-28"> \MFUnocap{of} - <br />\capitalisefmtwords*{\emph{a small} book \textbf{of rhyme}} -</div> -<!--l. 438--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +\capitalisefmtwords*{\emph{a small} book \textbf{of rhyme}} +</pre> +<!--l. 485--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br /><span class="cmti-10">A Small </span>Book <span class="cmbx-10">Of rhyme</span> @@ -834,26 +924,26 @@ command occurs in the middle of the argument: </p> - <div class="verbatim" id="verbatim-26"> + <pre class="verbatim" id="verbatim-29"> \MFUnocap{of} - <br />\capitalisefmtwords*{a \emph{very small} book of rhyme} -</div> -<!--l. 450--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +\capitalisefmtwords*{a \emph{very small} book of rhyme} +</pre> +<!--l. 497--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />A <span class="cmti-10">Very small </span>Book of Rhyme <br /><spacer type=vertical size=10></span> (In this case <span class="obeylines-h"><span class="verb"><span class="cmtt-10">\emph{very</span><span class="cmtt-10"> small}</span></span></span> is considered a single word.) -</p><!--l. 459--><p class="indent" > Grouping causes interference: +</p><!--l. 506--><p class="indent" > Grouping causes interference: </p> - <div class="verbatim" id="verbatim-27"> + <pre class="verbatim" id="verbatim-30"> \capitalisefmtwords{{a \emph{small book}} of rhyme} -</div> -<!--l. 462--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +</pre> +<!--l. 509--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />A <span class="cmti-10">Small book </span>Of Rhyme <br /><spacer type=vertical size=10></span> @@ -863,72 +953,72 @@ fails: </p> - <div class="verbatim" id="verbatim-28"> + <pre class="verbatim" id="verbatim-31"> \capitalisefmtwords{{\bfseries a \emph{small book}} of rhyme} -</div> -<!--l. 471--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +</pre> +<!--l. 518--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />a <span class="cmti-10">Small book </span>Of Rhyme <br /><spacer type=vertical size=10></span> -</p><!--l. 477--><p class="indent" > Avoid complicated commands in the unstarred version. For example, the following +</p><!--l. 524--><p class="indent" > Avoid complicated commands in the unstarred version. For example, the following breaks: </p> - <div class="verbatim" id="verbatim-29"> + <pre class="verbatim" id="verbatim-32"> \newcommand*{\swap}[2]{{#2}{#1}} - <br />\capitalisefmtwords{a \swap{bo}{ok} of rhyme} -</div> -<!--l. 482--><p class="nopar" > However it works okay with the starred form and the simpler <span +\capitalisefmtwords{a \swap{bo}{ok} of rhyme} +</pre> +<!--l. 529--><p class="nopar" > However it works okay with the starred form and the simpler <span class="cmtt-10">\capitalisewords</span>: </p> - <div class="verbatim" id="verbatim-30"> + <pre class="verbatim" id="verbatim-33"> \newcommand*{\swap}[2]{{#2}{#1}} - <br />\capitalisefmtwords*{a \swap{bo}{ok} of rhyme} - <br />\capitalisewords{a \swap{bo}{ok} of rhyme} -</div> -<!--l. 490--><p class="nopar" > Produces: <spacer type=vertical size=10><span class="obeylines-h"> +\capitalisefmtwords*{a \swap{bo}{ok} of rhyme} +\capitalisewords{a \swap{bo}{ok} of rhyme} +</pre> +<!--l. 537--><p class="nopar" > Produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />A okBo Of Rhyme <br />A okBo Of Rhyme <br /><spacer type=vertical size=10></span> Note that the case change is applied to the first argument. -</p><!--l. 500--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 547--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\xcapitalisewords</span><span class="cmtt-9"> </span></span><a - id="dx1-4019"></a> <span + id="dx1-4021"></a> <span class="cmtt-10">\xcapitalisewords{</span>⟨<span class="cmitt-10">text</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 502--><p class="noindent" > +</p><!--l. 549--><p class="noindent" > This is a short cut for <span class="cmtt-10">\expandafter\capitalisewords\expandafter{</span>⟨<span class="cmti-10">text</span>⟩<span class="cmtt-10">}</span>. -</p><!--l. 506--><p class="indent" > As from version 1.10, there is now a command that fully expands the entire argument +</p><!--l. 553--><p class="indent" > As from version 1.10, there is now a command that fully expands the entire argument before applying <span class="cmtt-10">\capitalisewords</span>: -</p><!--l. 508--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 555--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\ecapitalisewords</span><span class="cmtt-9"> </span></span><a - id="dx1-4020"></a> <span + id="dx1-4022"></a> <span class="cmtt-10">\ecapitalisewords{</span>⟨<span class="cmitt-10">text</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 510--><p class="noindent" > -</p><!--l. 512--><p class="indent" > There are also similar shortcut commands for the version that allows text-block +</p><!--l. 557--><p class="noindent" > +</p><!--l. 559--><p class="indent" > There are also similar shortcut commands for the version that allows text-block commands: -</p><!--l. 514--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 561--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\xcapitalisefmtwords</span><span class="cmtt-9"> </span></span><a - id="dx1-4021"></a> <span + id="dx1-4023"></a> <span class="cmtt-10">\xcapitalisefmtwords{</span>⟨<span class="cmitt-10">text</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 516--><p class="noindent" > +</p><!--l. 563--><p class="noindent" > The unstarred version is a short cut for <span class="cmtt-10">\expandafter\capitalisefmtwords\expandafter</span> <span @@ -938,113 +1028,123 @@ class="cmtt-10">}</span>. Similarly the starred version of <span class="cmtt-10">\xcapitalisefmtwords </span>uses the starred version of <span class="cmtt-10">\capitalisefmtwords</span>. -</p><!--l. 522--><p class="indent" > For full expansion: -</p><!--l. 523--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 569--><p class="indent" > For full expansion: +</p><!--l. 570--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\ecapitalisefmtwords</span><span class="cmtt-9"> </span></span><a - id="dx1-4022"></a> <span + id="dx1-4024"></a> <span class="cmtt-10">\ecapitalisefmtwords{</span>⟨<span class="cmitt-10">text</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 525--><p class="noindent" > +</p><!--l. 572--><p class="noindent" > Take care with this as it may expand non-robust semantic commands to replacement text that breaks the functioning of <span class="cmtt-10">\capitalisefmtwords</span>. Use robust semantic commands where possible. Again this has a starred version that uses the starred form of <span class="cmtt-10">\capitalisefmtwords</span>. -</p><!--l. 532--><p class="indent" > Examples: +</p><!--l. 579--><p class="indent" > Examples: </p> - <div class="verbatim" id="verbatim-31"> + <pre class="verbatim" id="verbatim-34"> \newcommand{\abc}{\xyz\space four five} - <br />\newcommand{\xyz}{one two three} - <br />No expansion: \capitalisewords{\abc}. - <br />First object one-level expansion: \xcapitalisewords{\abc}. - <br />Fully expanded: \ecapitalisewords{\abc}. -</div> -<!--l. 539--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +\newcommand{\xyz}{one two three} +No expansion: \capitalisewords{\abc}. +First object one-level expansion: \xcapitalisewords{\abc}. +Fully expanded: \ecapitalisewords{\abc}. +</pre> +<!--l. 586--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />No expansion: ONE TWO THREE FOUR FIVE. <br />First object one-level expansion: ONE TWO THREE four Five. <br />Fully expanded: One Two Three Four Five. <br /><spacer type=vertical size=10></span> -</p><!--l. 549--><p class="indent" > (Remember that the spaces need to be explicit. In the second case above, using +</p><!--l. 596--><p class="indent" > (Remember that the spaces need to be explicit. In the second case above, using <span class="cmtt-10">\xcapitalisewords</span>, the space before “four” has been hidden within <span class="cmtt-10">\space </span>so it’s not recognised as a word boundary, but in the third case, <span class="cmtt-10">\space </span>has been expanded to an actual space character.) -</p><!--l. 555--><p class="indent" > Examples: +</p><!--l. 602--><p class="indent" > Examples: </p><ol class="enumerate1" > - <li - class="enumerate" id="x1-4024x1"> +<li + class="enumerate" id="x1-4026x1"> + <!--l. 605--><p class="noindent" > - <div class="verbatim" id="verbatim-32"> +</p> + <pre class="verbatim" id="verbatim-35"> \capitalisewords{a book of rhyme.} -</div> - <!--l. 560--><p class="nopar" > produces: A Book Of Rhyme. +</pre> + <!--l. 607--><p class="nopar" > produces: A Book Of Rhyme. </p></li> - <li - class="enumerate" id="x1-4026x2"> +<li + class="enumerate" id="x1-4028x2"> + <!--l. 612--><p class="noindent" > - <div class="verbatim" id="verbatim-33"> +</p> + <pre class="verbatim" id="verbatim-36"> \capitalisewords{a book\space of rhyme.} -</div> - <!--l. 567--><p class="nopar" > produces: A Book of Rhyme. +</pre> + <!--l. 614--><p class="nopar" > produces: A Book of Rhyme. </p></li> - <li - class="enumerate" id="x1-4028x3"> +<li + class="enumerate" id="x1-4030x3"> + <!--l. 619--><p class="noindent" > - <div class="verbatim" id="verbatim-34"> +</p> + <pre class="verbatim" id="verbatim-37"> \newcommand{\mytitle}{a book\space of rhyme.} -  <br />\capitalisewords{\mytitle} -</div> - <!--l. 575--><p class="nopar" > produces: A BOOK OF RHYME. (No expansion is performed on <span + \capitalisewords{\mytitle} +</pre> + <!--l. 622--><p class="nopar" > produces: A BOOK OF RHYME. (No expansion is performed on <span class="cmtt-10">\mytitle</span>.) Compare with next example: </p></li> - <li - class="enumerate" id="x1-4030x4"> +<li + class="enumerate" id="x1-4032x4"> + <!--l. 629--><p class="noindent" > - <div class="verbatim" id="verbatim-35"> +</p> + <pre class="verbatim" id="verbatim-38"> \newcommand{\mytitle}{a book\space of rhyme.} -  <br />\xcapitalisewords{\mytitle} -</div> - <!--l. 585--><p class="nopar" > produces: A Book of Rhyme. - </p><!--l. 589--><p class="noindent" >However + \xcapitalisewords{\mytitle} +</pre> + <!--l. 632--><p class="nopar" > produces: A Book of Rhyme. + </p><!--l. 636--><p class="noindent" >However </p> - <div class="verbatim" id="verbatim-36"> + <pre class="verbatim" id="verbatim-39"> \ecapitalisewords{\mytitle} -</div> - <!--l. 592--><p class="nopar" > produces: A Book Of Rhyme. (<span +</pre> + <!--l. 639--><p class="nopar" > produces: A Book Of Rhyme. (<span class="cmtt-10">\space </span>has been expanded to an actual space character.) </p></li> - <li - class="enumerate" id="x1-4032x5"> +<li + class="enumerate" id="x1-4034x5"> + <!--l. 645--><p class="noindent" > - <div class="verbatim" id="verbatim-37"> +</p> + <pre class="verbatim" id="verbatim-40"> \newcommand*{\swap}[2]{{#2}{#1}} -  <br />\capitalisewords{a \swap{bo}{ok} of rhyme} -  <br />\ecapitalisewords{a \swap{bo}{ok} of rhyme} -</div> - <!--l. 603--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> + \capitalisewords{a \swap{bo}{ok} of rhyme} + \ecapitalisewords{a \swap{bo}{ok} of rhyme} +</pre> + <!--l. 650--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />A okBo Of Rhyme <br />A OKbo Of Rhyme <br /><spacer type=vertical size=10></span> @@ -1056,14 +1156,14 @@ class="cmtt-10">\capitalisewords </span>so that last example is equivalent to: </p> - <div class="verbatim" id="verbatim-38"> + <pre class="verbatim" id="verbatim-41"> \capitalisewords{a {ok}{bo} of rhyme} -</div> - <!--l. 616--><p class="nopar" ></p></li></ol> -<!--l. 619--><p class="noindent" ><a +</pre> + <!--l. 663--><p class="nopar" ></p></li></ol> +<!--l. 666--><p class="noindent" ><a href="#top">Top</a><h3 class="sectionHead"></p><h3 class="sectionHead"><span class="titlemark">3.1 </span> <a id="sec:pdfbookmarks"></a>PDF Bookmarks</h3> -<!--l. 622--><p class="noindent" ><div class="important" title="Important Note"> If you are using <span +<!--l. 669--><p class="noindent" ><div class="important" title="Important Note"> If you are using <span class="cmss-10">hyperref</span><a id="dx1-5001"></a> and want to use <span class="cmtt-10">\capitalisewords</span>, <span @@ -1077,14 +1177,14 @@ like: </p> - <div class="verbatim" id="verbatim-39"> + <pre class="verbatim" id="verbatim-42"> Package hyperref Warning: Token not allowed in a PDF string - <br />(PDFDocEncoding): - <br />(hyperref)                removing `\capitalisewords' -</div> -<!--l. 632--><p class="nopar" > </div> -</p><!--l. 633--><p class="noindent" > -</p><!--l. 635--><p class="noindent" >If you want to provide an alternative for the PDF bookmark, you can use <span +(PDFDocEncoding): +(hyperref)                removing `\capitalisewords' +</pre> +<!--l. 679--><p class="nopar" > </div> +</p><!--l. 680--><p class="noindent" > +</p><!--l. 682--><p class="noindent" >If you want to provide an alternative for the PDF bookmark, you can use <span class="cmss-10">hyperref</span><a id="dx1-5003"></a>’s <span @@ -1094,13 +1194,13 @@ class="cmtt-10">\texorpdfstring</span><a </p> - <div class="verbatim" id="verbatim-40"> + <pre class="verbatim" id="verbatim-43"> \chapter{\texorpdfstring - <br />  {\capitalisewords{a book of rhyme}}% TeX - <br />  {A Book of Rhyme}% PDF - <br />} -</div> -<!--l. 642--><p class="nopar" > Alternatively, you can use <span +  {\capitalisewords{a book of rhyme}}% TeX +  {A Book of Rhyme}% PDF +} +</pre> +<!--l. 689--><p class="nopar" > Alternatively, you can use <span class="cmss-10">hyperref</span><a id="dx1-5005"></a>’s mechanism for disabling commands within the bookmarks. For example: @@ -1108,73 +1208,73 @@ bookmarks. For example: </p> - <div class="verbatim" id="verbatim-41"> + <pre class="verbatim" id="verbatim-44"> \pdfstringdefDisableCommands{% - <br /> \let\capitalisewords\@firstofone - <br />} -</div> -<!--l. 649--><p class="nopar" > -</p><!--l. 651--><p class="indent" > See the <span + \let\capitalisewords\@firstofone +} +</pre> +<!--l. 696--><p class="nopar" > +</p><!--l. 698--><p class="indent" > See the <span class="cmss-10">hyperref</span><a id="dx1-5006"></a> manual for further details. -</p><!--l. 653--><p class="noindent" > +</p><!--l. 700--><p class="noindent" > </p> -<!--l. 653--><p class="noindent" ><a +<!--l. 700--><p class="noindent" ><a href="#top">Top</a><h3 class="sectionHead"></p><h3 class="sectionHead"><span class="titlemark">3.2 </span> <a id="sec:nocap"></a>Excluding Words From Case-Changing</h3> -<!--l. 656--><p class="noindent" >As from v1.09, you can specify words which shouldn’t be capitalised unless they occur at the +<!--l. 703--><p class="noindent" >As from v1.09, you can specify words which shouldn’t be capitalised unless they occur at the start of ⟨<span class="cmti-10">text</span>⟩ using: -</p><!--l. 658--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 705--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\MFUnocap</span><span class="cmtt-9"> </span></span><a id="dx1-6001"></a> <span class="cmtt-10">\MFUnocap{</span>⟨<span class="cmitt-10">word</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 660--><p class="noindent" > +</p><!--l. 707--><p class="noindent" > This only has a local effect. The global version is: -</p><!--l. 662--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 709--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\gMFUnocap</span><span class="cmtt-9"> </span></span><a id="dx1-6002"></a> <span class="cmtt-10">\gMFUnocap{</span>⟨<span class="cmitt-10">word</span>⟩<span class="cmtt-10">} </span></div><hr> -</p><!--l. 664--><p class="noindent" > -</p><!--l. 666--><p class="indent" > For example: +</p><!--l. 711--><p class="noindent" > +</p><!--l. 713--><p class="indent" > For example: </p> - <div class="verbatim" id="verbatim-42"> + <pre class="verbatim" id="verbatim-45"> \capitalisewords{the wind in the willows} - <br />\MFUnocap{in}% - <br />\MFUnocap{the}% - <br />\capitalisewords{the wind in the willows} -</div> -<!--l. 674--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +\MFUnocap{in}% +\MFUnocap{the}% +\capitalisewords{the wind in the willows} +</pre> +<!--l. 721--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />The Wind In The Willows <br />The Wind in the Willows <br /><spacer type=vertical size=10></span> The list of words that shouldn’t be capitalised can be cleared using -</p><!--l. 685--><p class="indent" > <hr><div title="Definition"><span class="marginpar"><span +</p><!--l. 732--><p class="indent" > <hr><div title="Definition"><span class="reversemarginpar"><span class="cmtt-9">\MFUclear</span><span class="cmtt-9"> </span></span><a id="dx1-6003"></a> <span class="cmtt-10">\MFUclear </span></div><hr> -</p><!--l. 687--><p class="noindent" > -</p><!--l. 689--><p class="indent" > You can also simply place an empty group in front of a word if you don’t want that specific +</p><!--l. 734--><p class="noindent" > +</p><!--l. 736--><p class="indent" > You can also simply place an empty group in front of a word if you don’t want that specific instance to be capitalised. For example: </p> - <div class="verbatim" id="verbatim-43"> + <pre class="verbatim" id="verbatim-46"> \MFUclear - <br />\capitalisewords{the {}wind in the willows} -</div> -<!--l. 695--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> +\capitalisewords{the {}wind in the willows} +</pre> +<!--l. 742--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h"> <br />The wind In The Willows <br /><spacer type=vertical size=10></span> This is also a useful way of protecting commands that shouldn’t be parsed. For @@ -1183,17 +1283,17 @@ example: </p> - <div class="verbatim" id="verbatim-44"> + <pre class="verbatim" id="verbatim-47"> \capitalisewords{this is section {}\nameref{sec:nocap}.} -</div> -<!--l. 705--><p class="nopar" > produces <spacer type=vertical size=10><span class="obeylines-h"> +</pre> +<!--l. 752--><p class="nopar" > produces <spacer type=vertical size=10><span class="obeylines-h"> <br />This Is Section <a href="#sec:nocap">Excluding Words From Case-Changing<!--tex4ht:ref: sec:nocap --></a>. <br /><spacer type=vertical size=10></span> (No case-changing is applied to <span class="obeylines-h"><span class="verb"><span class="cmtt-10">\nameref{sec:nocap}</span></span></span>. It just happens to already be in title case.) -</p><!--l. 713--><p class="indent" > The package <span +</p><!--l. 760--><p class="indent" > The package <span class="cmss-10">mfirstuc-english</span><a id="dx1-6004"></a> loads <span class="cmss-10">mfirstuc </span>and uses <span @@ -1202,63 +1302,62 @@ English articles and conjunctions, such as “a”, “an”, &# to add other words to this list, such as prepositions but, as there’s some dispute over whether prepositions should be capitalised, I don’t intend to add them to this package. -</p><!--l. 720--><p class="indent" > If you want to write a similar package for another language, all you need to do is create a +</p><!--l. 767--><p class="indent" > If you want to write a similar package for another language, all you need to do is create a file with the extension <span class="cmtt-10">.sty </span>that starts with </p> - <div class="verbatim" id="verbatim-45"> + <pre class="verbatim" id="verbatim-48"> \NeedsTeXFormat{LaTeX2e} -</div> -<!--l. 725--><p class="nopar" > The next line should identify the package. For example, if you have called the file +</pre> +<!--l. 772--><p class="nopar" > The next line should identify the package. For example, if you have called the file <span class="cmtt-10">mfirstuc-french.sty </span>then you need: </p> - <div class="verbatim" id="verbatim-46"> + <pre class="verbatim" id="verbatim-49"> \ProvidesPackage{mfirstuc-french} -</div> -<!--l. 730--><p class="nopar" > It’s a good idea to also add a version in the final optional argument, for example: +</pre> +<!--l. 777--><p class="nopar" > It’s a good idea to also add a version in the final optional argument, for example: </p> - <div class="verbatim" id="verbatim-47"> + <pre class="verbatim" id="verbatim-50"> \ProvidesPackage{mfirstuc-french}[2014/07/30 v1.0] -</div> -<!--l. 735--><p class="nopar" > Next load <span +</pre> +<!--l. 782--><p class="nopar" > Next load <span class="cmss-10">mfirstuc</span>: </p> - <div class="verbatim" id="verbatim-48"> + <pre class="verbatim" id="verbatim-51"> \RequirePackage{mfirstuc} -</div> -<!--l. 739--><p class="nopar" > Now add all your <span +</pre> +<!--l. 786--><p class="nopar" > Now add all your <span class="cmtt-10">\MFUnocap </span>commands. For example: </p> - <div class="verbatim" id="verbatim-49"> + <pre class="verbatim" id="verbatim-52"> \MFUnocap{de} -</div> -<!--l. 743--><p class="nopar" > At the end of the file add: +</pre> +<!--l. 790--><p class="nopar" > At the end of the file add: </p> - <div class="verbatim" id="verbatim-50"> + <pre class="verbatim" id="verbatim-53"> \endinput -</div> -<!--l. 747--><p class="nopar" > -</p><!--l. 749--><p class="indent" > Put the file somewhere on <span class="TEX">T<span -class="E">E</span>X</span>’s path, and now you can use this package in your +</pre> +<!--l. 794--><p class="nopar" > +</p><!--l. 796--><p class="indent" > Put the file somewhere on TeX’s path, and now you can use this package in your document. You might also consider <a href="http://ctan.org/upload" >uploading it to CTAN</a> in case other users find it useful. @@ -1266,13 +1365,15 @@ useful. </p> -<!--l. 754--><p class="indent" > </div> -</p><!--l. 754--><p class="noindent" ><a +<!--l. 801--><p class="indent" > </div> +</p><!--l. 801--><p class="noindent" ><a href="#top">Top</a><div class="chapter"><h2 class="chapterHead">4. <a id="sec:utf8"></a>UTF-8</h2> -</p><!--l. 757--><p class="indent" > The <span -class="cmtt-10">\makefirstuc </span>command works by utilizing the fact that, in most cases, <span class="TEX">T<span -class="E">E</span>X</span> doesn’t +</p><!--l. 804--><p class="indent" > (See <a +href="https://dickimaw-books.com/blog/binary-files-text-files-and-file-encodings/" >Binary Files, Text Files and File Encodings</a> if you are confused about how file +encodings such as UTF-8 relate to text files.) +</p><!--l. 809--><p class="indent" > The <span +class="cmtt-10">\makefirstuc </span>command works by utilizing the fact that, in most cases, TeX doesn’t require a regular argument to be enclosed in braces if it only consists of a single token. (This is why you can do, say, <span class="obeylines-h"><span class="verb"><span class="cmtt-10">\frac12</span></span></span> instead of <span class="obeylines-h"><span class="verb"><span @@ -1280,35 +1381,35 @@ class="cmtt-10">\frac{1}{2}</span></span></span> or <span class="obeylines-h"><s class="cmtt-10">x^2</span></span></span> instead of <span class="obeylines-h"><span class="verb"><span class="cmtt-10">x^{2}</span></span></span>, although some users frown on this practice.) -</p><!--l. 764--><p class="indent" > A simplistic version of the <span +</p><!--l. 816--><p class="indent" > A simplistic version of the <span class="cmtt-10">\makefirstuc </span>command is: </p> - <div class="verbatim" id="verbatim-51"> + <pre class="verbatim" id="verbatim-54"> \newcommand*{\FirstUC}[1]{\MakeUppercase #1} -</div> -<!--l. 767--><p class="nopar" > Here +</pre> +<!--l. 819--><p class="nopar" > Here </p> - <div class="verbatim" id="verbatim-52"> + <pre class="verbatim" id="verbatim-55"> \FirstUC{abc} -</div> -<!--l. 771--><p class="nopar" > is equivalent to +</pre> +<!--l. 823--><p class="nopar" > is equivalent to </p> - <div class="verbatim" id="verbatim-53"> + <pre class="verbatim" id="verbatim-56"> \MakeUppercase abc -</div> -<!--l. 775--><p class="nopar" > and since <span +</pre> +<!--l. 827--><p class="nopar" > and since <span class="cmtt-10">\MakeUppercase </span>requires an argument, it grabs the first token (the character “a” in this case) and uses that as the argument so that the result is: Abc. -</p><!--l. 780--><p class="indent" > The <span +</p><!--l. 832--><p class="indent" > The <span class="cmss-10">glossaries</span><a id="dx1-7001"></a> package needs to take into account the fact that the text may be contained in the argument of a formatting command, such as <span @@ -1367,7 +1468,7 @@ class="cmtt-10">}</span><span class="cmsy-10">}</span> </div> </div> -<!--l. 812--><p class="indent" > Try the following document: </p><div class="alltt"> +<!--l. 864--><p class="indent" > Try the following document: </p><div class="alltt"> @@ -1408,27 +1509,25 @@ class="cmtt-10">document</span><span class="cmsy-10">}</span> </div> </div> -<!--l. 826--><p class="indent" > This will result in the error: +<!--l. 878--><p class="indent" > This will result in the error: </p> - <div class="verbatim" id="verbatim-54"> + <pre class="verbatim" id="verbatim-57"> ! Argument of \UTFviii@two@octets has an extra }. -</div> -<!--l. 829--><p class="nopar" > This is why <span class="obeylines-h"><span class="verb"><span +</pre> +<!--l. 881--><p class="nopar" > This is why <span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc{</span></span></span><span class="cmtt-10">ã</span><span class="cmtt-10">bc</span><span class="obeylines-h"><span class="verb"><span class="cmtt-10">}</span></span></span> won’t work. It will only work if the character <span class="cmtt-10">ã</span> is placed inside a group. -</p><!--l. 834--><p class="indent" > The reason for this error message is due to <span class="TEX">T<span -class="E">E</span>X</span> having been written before Unicode was +</p><!--l. 886--><p class="indent" > The reason for this error message is due to TeX having been written before Unicode was invented. Although <span -class="cmtt-10">ã</span> may look like a single character in your text editor, from <span class="TEX">T<span -class="E">E</span>X</span>’s point -of view it’s <span +class="cmtt-10">ã</span> may look like a single character in your text editor, from TeX’s point of +view it’s <span class="cmti-10">two </span>tokens. So </p><div class="alltt"> <div class="obeylines-v"> <span @@ -1450,9 +1549,10 @@ class="cmtt-10">ã</span><span class="cmsy-10">}</span><span class="cmtt-10">bc</span> </div> -</div> -<!--l. 850--><p class="indent" > Note that XeTeX (and therefore XeLaTeX) is a modern implementation of <span class="TEX">T<span -class="E">E</span>X</span> designed +</div> Over recent years the LaTeX kernel has changed to allow the use of UTF-8 characters within +labels but the fundamental problem of each octet been viewed as a separated token +remains. +<!--l. 905--><p class="indent" > Note that XeTeX (and therefore XeLaTeX) is a modern implementation of TeX designed to work with Unicode and therefore doesn’t suffer from this drawback. Now let’s look at the XeLaTeX equivalent of the above example: </p><div class="alltt"> <div class="obeylines-v"> @@ -1487,7 +1587,7 @@ class="cmtt-10">document</span><span class="cmsy-10">}</span> </div> </div> -<!--l. 866--><p class="indent" > This works correctly when compiled with XeLaTeX. This means that <span +<!--l. 921--><p class="indent" > This works correctly when compiled with XeLaTeX. This means that <span class="cmtt-10">\makefirstuc</span><span class="obeylines-h"><span class="verb"><span class="cmtt-10">{</span></span></span><span class="cmtt-10">ã</span><span @@ -1499,7 +1599,7 @@ class="cmti-10"> and the </span><span class="cmssi-10">fontspec</span><a id="dx1-7002"></a> <span class="cmti-10">package</span>. -</p><!--l. 870--><p class="indent" > Version 2.24 of <span +</p><!--l. 925--><p class="indent" > Version 2.24 of <span class="cmss-10">datatool-base</span><a id="dx1-7003"></a> added the command <span class="cmtt-10">\dtl@getfirst@UTFviii </span>which @@ -1526,26 +1626,26 @@ class="cmti-10">8 </span><br /></span> <p class="theindex"> <span class="cmbx-10">D</span> <span class="index-item"><span -class="cmss-10">datatool-base </span>package  6, 19 <br /></span> +class="cmss-10">datatool-base </span>package  <span class="underline">6</span>, <span class="underline">20</span> <br /></span> </p><p class="theindex"> <span class="cmbx-10">E</span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\ecapitalisefmtwords</span></span></span>  <span -class="cmti-10">12 </span><br /></span> +class="cmti-10">13 </span><br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\ecapitalisewords</span></span></span>  <span -class="cmti-10">12 </span><br /></span> +class="cmti-10">13 </span><br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\emakefirstuc</span></span></span>  <span class="cmti-10">7 </span><br /></span> </p><p class="theindex"> <span class="cmbx-10">F</span> <span class="index-item"><span -class="cmss-10">fontspec </span>package  19 <br /></span> +class="cmss-10">fontspec </span>package  <span class="underline">20</span> <br /></span> </p><p class="theindex"> <span class="cmbx-10">G</span> <span class="index-item"><span -class="cmss-10">glossaries </span>package  6, 7, 17 <br /></span> +class="cmss-10">glossaries </span>package  <span class="underline">6, 7</span>, <span class="underline">18</span> <br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\glsmakefirstuc</span></span></span>  <span class="cmti-10">7 </span><br /></span> @@ -1555,32 +1655,32 @@ class="cmti-10">15 </span><br /></span> </p><p class="theindex"> <span class="cmbx-10">H</span> <span class="index-item"><span -class="cmss-10">hyperref </span>package  14 <br /></span> +class="cmss-10">hyperref </span>package  <span class="underline">15</span> <br /></span> </p><p class="theindex"> <span class="cmbx-10">I</span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\ifMFUhyphen</span></span></span>  <span class="cmti-10">8 </span><br /></span> <span class="index-item"><span -class="cmss-10">inputenc </span>package  6 <br /></span> +class="cmss-10">inputenc </span>package  <span class="underline">6</span> <br /></span> </p><p class="theindex"> <span class="cmbx-10">M</span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\makefirstuc</span></span></span>  <span class="cmti-10">5 </span><br /></span> <span class="index-item"><span -class="cmss-10">mfirstuc </span>package  6, 19 <br /></span> +class="cmss-10">mfirstuc </span>package  <span class="underline">6</span>, <span class="underline">20</span> <br /></span> <span class="index-item"><span -class="cmss-10">mfirstuc-english </span>package  15 <br /></span> +class="cmss-10">mfirstuc-english </span>package  <span class="underline">9</span>, <span class="underline">16</span> <br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span -class="cmtt-10">\MFUcapword</span></span></span>  <span +class="cmtt-10">\MFUcapwordfirstuc</span></span></span>  <span class="cmti-10">8 </span><br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\MFUclear</span></span></span>  <span -class="cmti-10">15 </span><br /></span> +class="cmti-10">16 </span><br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\MFUhyphenfalse</span></span></span>  <span class="cmti-10">8 </span><br /></span> @@ -1590,23 +1690,29 @@ class="cmti-10">8 </span><br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\MFUnocap</span></span></span>  <span class="cmti-10">15 </span><br /></span> +<span class="index-item"><span class="obeylines-h"><span class="verb"><span +class="cmtt-10">\MFUskippunc</span></span></span>  <span +class="cmti-10">5 </span><br /></span> +<span class="index-item"><span class="obeylines-h"><span class="verb"><span +class="cmtt-10">\MFUwordbreak</span></span></span>  <span +class="cmti-10">9 </span><br /></span> </p><p class="theindex"> <span class="cmbx-10">T</span> <span class="index-item"><span -class="cmss-10">textcase </span>package  7 <br /></span> +class="cmss-10">textcase </span>package  <span class="underline">7</span> <br /></span> </p><p class="theindex"> <span class="cmbx-10">X</span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\xcapitalisefmtwords</span></span></span>  <span -class="cmti-10">12 </span><br /></span> +class="cmti-10">13 </span><br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\xcapitalisewords</span></span></span>  <span -class="cmti-10">12 </span><br /></span> +class="cmti-10">13 </span><br /></span> <span class="index-item"><span class="obeylines-h"><span class="verb"><span class="cmtt-10">\xmakefirstuc</span></span></span>  <span class="cmti-10">7 </span><br /></span> </p></div> - + </body></html> diff --git a/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.pdf b/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.pdf Binary files differindex 6b5940eff84..cc7cf0cf773 100644 --- a/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.pdf +++ b/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.pdf diff --git a/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.tex b/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.tex index 71430da10af..e741c6d45da 100644 --- a/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.tex +++ b/Master/texmf-dist/doc/latex/mfirstuc/mfirstuc-manual.tex @@ -26,13 +26,13 @@ \begin{document} \MakeShortVerb{|} - \title{mfirstuc.sty v2.06: + \title{mfirstuc.sty v2.07: uppercasing first letter} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} - \date{2017-11-14} + \date{2021-10-15} \maketitle \tableofcontents @@ -120,6 +120,12 @@ sequence followed by a non-empty group, in which case the first object in the group is converted to upper case. \textbf{No expansion is performed on the argument.} +If \meta{stuff} starts with punctuation that should be skipped over, +use: +\begin{definition}[\DescribeMacro\MFUskippunc] +\cs{MFUskippunc}\marg{punctuation} +\end{definition} + \begin{important} If \meta{stuff} starts with a control sequence that takes more than one argument, the case-changing will always be applied to the @@ -157,6 +163,9 @@ therefore first object is |\em| and so is equivalent to \item |\makefirstuc{{ä}bc}| produces \makefirstuc{{ä}bc}. +\item |\makefirstuc{\MFUskippunc{'}tis the season}| produces +\makefirstuc{\MFUskippunc{'}tis the season}. + \end{itemize} Note that non-Latin or accented characters appearing at the @@ -279,12 +288,12 @@ on \meta{text}. See \sectionref{sec:nocap} for excluding words (such as \qt{of}) from the case-changing. The actual capitalisation of each word is done using -(new to version 2.03): -\begin{definition}[\DescribeMacro\MFUcapword] -\cs{MFUcapword}\marg{word} +\begin{definition}[\DescribeMacro\MFUcapwordfirstuc] +\cs{MFUcapwordfirstuc}\marg{word} \end{definition} -This just does \cs{makefirstuc}\marg{word} by default, but -its behaviour is determined by the conditional: +This just does \cs{makefirstuc}\marg{word} by default. +There's a conditional that determines whether or not to consider a +hyphen a word break: \begin{definition}[\DescribeMacro\ifMFUhyphen] \cs{ifMFUhyphen} \end{definition} @@ -316,6 +325,44 @@ which produces: \MFUhyphentrue \capitalisewords{server-side includes} \end{display} +Note that this won't apply exceptions to each part of the hyphenated +word. + +For other punctuation you need to markup the character with: +\begin{definition}[\DescribeMacro\MFUwordbreak] +\cs{MFUwordbreak}\marg{punctuation} +\end{definition} +For example: +\begin{verbatim} +\capitalisewords{a big\MFUwordbreak{/}small idea} +\end{verbatim} +which produces: +\begin{display} +\capitalisewords{a big\MFUwordbreak{/}small idea} +\end{display} +In this case, exceptions are applied. For example, if +\sty{mfirstuc-english} is loaded then: +\begin{verbatim} +\capitalisewords{one and\MFUwordbreak{/}or another} +\end{verbatim} +produces: +\begin{display} +\MFUnocap{and}\MFUnocap{or}% +\capitalisewords{one and\MFUwordbreak{/}or another} +\end{display} +Note that you can't hide \cs{MFUwordbreak} inside a command or group. + +Exceptions aren't applied if \cs{MFUwordbreak} occurs before the +first space. For example: +\begin{verbatim} +\MFUnocap{a}\MFUnocap{the}% +\capitalisewords{a\MFUwordbreak{/}the something} +\end{verbatim} +produces: +\begin{display} +\MFUnocap{a}\MFUnocap{the}% +\capitalisewords{a\MFUwordbreak{/}the something} +\end{display} Formatting for the entire phrase must go outside \cs{capitalisewords} (unlike \cs{makefirstuc}). Compare: @@ -754,6 +801,11 @@ other users find it useful. \chapter{UTF-8} \label{sec:utf8} +(See +\href{https://dickimaw-books.com/blog/binary-files-text-files-and-file-encodings/}{Binary +Files, Text Files and File Encodings} if you are confused about how +file encodings such as UTF-8 relate to text files.) + The \cs{makefirstuc} command works by utilizing the fact that, in most cases, \TeX\ doesn't require a regular argument to be enclosed in braces if it only consists of a single token. (This is why you @@ -846,6 +898,9 @@ must be grouped: \begin{alltt} \cs{MakeUppercase}\{\~a\}bc \end{alltt} +Over recent years the \LaTeX\ kernel has changed to allow the use of +UTF-8 characters within labels but the fundamental problem of each +octet been viewed as a separated token remains. Note that \XeTeX\ (and therefore \XeLaTeX) is a modern implementation of \TeX\ designed to work with Unicode and therefore diff --git a/Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.pdf b/Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.pdf Binary files differindex ce43ddad2bb..4433af0c329 100644 --- a/Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.pdf +++ b/Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.pdf diff --git a/Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.tex b/Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.tex index 718515cb8f6..7438c770cc9 100644 --- a/Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.tex +++ b/Master/texmf-dist/doc/latex/mfirstuc/sample-mfirstuc.tex @@ -44,6 +44,13 @@ Protected formatting: \xmakefirstuc{\mytext}. \renewcommand*{\mytext}{\ae\oe{some text}} Sequential commands: \xmakefirstuc{\mytext}. +\verb|\makefirstuc{\MFUskippunc{?`}c\'omo est\'as?}| +\makefirstuc{\MFUskippunc{?`}c\'omo est\'as?} + +\renewcommand{\mytext}{\MFUskippunc{?`}c\'omo est\'as?} +Fully expanded: +\emakefirstuc{\mytext} + \section{Title Case (No Formatting Commands)} \bgroup |