summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/fancyvrb/Changes1
-rw-r--r--macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdfbin138429 -> 140061 bytes
-rw-r--r--macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex8
-rw-r--r--macros/latex/contrib/fancyvrb/latex/fancyvrb.sty7
-rw-r--r--macros/latex/contrib/mfirstuc/CHANGES22
-rw-r--r--macros/latex/contrib/mfirstuc/README4
-rw-r--r--macros/latex/contrib/mfirstuc/mfirstuc-code.pdfbin260995 -> 266637 bytes
-rw-r--r--macros/latex/contrib/mfirstuc/mfirstuc-manual.html1174
-rw-r--r--macros/latex/contrib/mfirstuc/mfirstuc-manual.pdfbin294426 -> 301928 bytes
-rw-r--r--macros/latex/contrib/mfirstuc/mfirstuc-manual.tex69
-rw-r--r--macros/latex/contrib/mfirstuc/mfirstuc.dtx168
-rw-r--r--macros/latex/contrib/mfirstuc/mfirstuc.ins4
-rw-r--r--macros/latex/contrib/mfirstuc/sample-mfirstuc.pdfbin114720 -> 121084 bytes
-rw-r--r--macros/latex/contrib/mfirstuc/sample-mfirstuc.tex7
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md16
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin1515203 -> 1515886 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-print.dtx48
-rw-r--r--macros/latex/contrib/siunitx/siunitx-symbol.dtx8
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin638362 -> 638356 bytes
-rw-r--r--macros/latex/contrib/soulpos/README.md2
-rw-r--r--macros/latex/contrib/soulpos/soulpos.pdfbin159838 -> 177402 bytes
-rw-r--r--macros/latex/contrib/soulpos/soulpos.sty18
-rw-r--r--macros/latex/contrib/soulpos/soulpos.tex4
24 files changed, 948 insertions, 614 deletions
diff --git a/macros/latex/contrib/fancyvrb/Changes b/macros/latex/contrib/fancyvrb/Changes
index af5b079d3e..ee69c48a5a 100644
--- a/macros/latex/contrib/fancyvrb/Changes
+++ b/macros/latex/contrib/fancyvrb/Changes
@@ -1,4 +1,5 @@
--- fancyvrb.sty
+3.9 2021/10/15 - fix for \@currentcounter and \@currentlabel (hv)
3.8 2021/08/12 - fix for linenumbers and reused SaveVerbatim (hv)
(thanks to Ohad Kammar)
3.7 2021/01/20 - delete a doubled definied macro (hv)
diff --git a/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf b/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
index 875f151335..d72bd4cc2a 100644
--- a/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
+++ b/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex b/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
index a3c3466b2f..368f4ac861 100644
--- a/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
+++ b/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
@@ -1,10 +1,16 @@
-\documentclass{article}
+\documentclass[twoside]{article}
\usepackage{libertinus-otf}
\setmonofont[Scale=MatchLowercase,FakeStretch=0.9]{AnonymousPro-Regular.ttf}
\newif\ifChangeBar \ChangeBarfalse
\usepackage{fancyvrb}
\usepackage{fancyvrb-ex}
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\fancyhead[RE,LO]{}
+\fancyhead[RO]{\leftmark}
+
\usepackage{xurl}
+
\usepackage[colorlinks,linktocpage]{hyperref}
\parskip=3pt plus 1pt minus 1pt
%
diff --git a/macros/latex/contrib/fancyvrb/latex/fancyvrb.sty b/macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
index 1211daa44e..d256964b01 100644
--- a/macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
+++ b/macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
@@ -13,9 +13,9 @@
%% verbatim environments and commands and extensive documentation.
%%
\NeedsTeXFormat{LaTeX2e}
-\def\fileversion{3.8}
-\def\filedate{2021/08/12}
-\ProvidesPackage{fancyvrb}[2021/08/12 v3.8 verbatim text (tvz,hv)]
+\def\fileversion{3.9}
+\def\filedate{2021/10/15}
+\ProvidesPackage{fancyvrb}[2021/10/15 v3.9 verbatim text (tvz,hv)]
%\message{Style option: `fancyvrb' v\fileversion \space <\filedate> (tvz)}
\csname fancyvrb@loaded\endcsname
\let\fancyvrb@loaded\endinput
@@ -48,6 +48,7 @@
\floatingpenalty \@MM
\hsize\columnwidth
\@parboxrestore
+ \def\@currentcounter{footnote}%
\edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}%
\@makefntext{}%
\rule{\z@}{\footnotesep}%
diff --git a/macros/latex/contrib/mfirstuc/CHANGES b/macros/latex/contrib/mfirstuc/CHANGES
index 77f20bd2ed..a78e049ba9 100644
--- a/macros/latex/contrib/mfirstuc/CHANGES
+++ b/macros/latex/contrib/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/macros/latex/contrib/mfirstuc/README b/macros/latex/contrib/mfirstuc/README
index 0f406a84a8..95e632cfc7 100644
--- a/macros/latex/contrib/mfirstuc/README
+++ b/macros/latex/contrib/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/macros/latex/contrib/mfirstuc/mfirstuc-code.pdf b/macros/latex/contrib/mfirstuc/mfirstuc-code.pdf
index 50469d6193..f02689d526 100644
--- a/macros/latex/contrib/mfirstuc/mfirstuc-code.pdf
+++ b/macros/latex/contrib/mfirstuc/mfirstuc-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/mfirstuc/mfirstuc-manual.html b/macros/latex/contrib/mfirstuc/mfirstuc-manual.html
index e94be007b6..be92120e8f 100644
--- a/macros/latex/contrib/mfirstuc/mfirstuc-manual.html
+++ b/macros/latex/contrib/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 />&#8220;Word&#8221;
<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 />&#8216;&#8216;word&#8221;
<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>&#x00A0;upper casing command.
+</p><!--l. 105--><p class="indent" > A simple word can be capitalised just using the standard LaTeX&#x00A0;upper casing command.
For example,
</p>
- <div class="verbatim" id="verbatim-6">
+ <pre class="verbatim" id="verbatim-6">
\MakeUppercase&#x00A0;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&#x00A0;font changing command. This makes things more complicated for
a&#x00A0;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">&#x00A0;</span></span><a
id="dx1-3001"></a> <span
@@ -333,7 +335,17 @@ class="cmti-10">stuff </span>&#x27E9; 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 &#x27E8;<span
+</p><!--l. 123--><p class="indent" > If &#x27E8;<span
+class="cmti-10">stuff </span>&#x27E9; 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">&#x00A0;</span></span><a
+ id="dx1-3002"></a> <span
+class="cmtt-10">\MFUskippunc{</span>&#x27E8;<span
+class="cmitt-10">punctuation</span>&#x27E9;<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 &#x27E8;<span
class="cmti-10">stuff </span>&#x27E9; 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 &#8220;a&#8221; 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&#x00A0;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">&#x00A0;abc}</span></span></span> so this is equivalent to <span class="obeylines-h"><span class="verb"><span
@@ -374,91 +389,103 @@ class="cmtt-10">&#x00A0;abc}</span></span></span>),
</p>
- <div class="verbatim" id="verbatim-8">
+ <pre class="verbatim" id="verbatim-8">
{\makefirstuc{\em&#x00A0;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&#8217;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{{\&#8217;a}bc}</span></span></span> produces &Aacute;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">&#x00A0;bc}</span></span></span> produces &AElig;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 &AElig;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">&auml;</span><span
class="cmtt-10">}bc}</span></span></span> produces &Auml;bc.
+ </p></li>
+ <li class="itemize">
+ <!--l. 166--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
+class="cmtt-10">\makefirstuc{\MFUskippunc{&#8217;}tis</span><span
+class="cmtt-10">&#x00A0;the</span><span
+class="cmtt-10">&#x00A0;season}</span></span></span> produces &#8217;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">&sect;</span>4 </a><a
+class="tcrm-1000">&sect;</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>&#8217;s <span
+ id="dx1-3010"></a>&#8217;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}
-&#x00A0;<br />\usepackage[T1]{fontenc}
-&#x00A0;<br />\usepackage[utf8]{inputenc}
-&#x00A0;<br />\usepackage{datatool-base}[2016/01/12]%&#x00A0;v2.24+
-&#x00A0;<br />\usepackage{mfirstuc}
-&#x00A0;<br />\begin{document}
-&#x00A0;<br />\makefirstuc{&eacute;lite}
-&#x00A0;<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]%&#x00A0;v2.24+
+\usepackage{mfirstuc}
+\begin{document}
+\makefirstuc{&eacute;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 &aelig;Bc. However as from version 1.02, it now produces &AElig;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}
-&#x00A0;<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}
-&#x00A0;<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">&#x00A0;</span></span><a
- id="dx1-3011"></a> <span
+ id="dx1-3012"></a> <span
class="cmtt-10">\xmakefirstuc{</span>&#x27E8;<span
class="cmitt-10">stuff</span>&#x27E9;<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>&#x27E8;<span
class="cmti-10">stuff </span>&#x27E9;<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}
-&#x00A0;<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">&#x00A0;</span></span><a
- id="dx1-3012"></a> <span
+ id="dx1-3013"></a> <span
class="cmtt-10">\emakefirstuc{</span>&#x27E8;<span
class="cmitt-10">text</span>&#x27E9;<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&#x00A0;a}
-&#x00A0;<br />\newcommand{\xyz}{xyz}
-&#x00A0;<br />No&#x00A0;expansion:&#x00A0;\makefirstuc{\abc}.
-&#x00A0;<br />First&#x00A0;object&#x00A0;one-level&#x00A0;expansion:&#x00A0;\xmakefirstuc{\abc}.
-&#x00A0;<br />Fully&#x00A0;expanded:&#x00A0;\emakefirstuc{\abc}.
-</div>
-<!--l. 243--><p class="nopar" > produces: No expansion: XYZA. First object one-level expansion: XYZa. Fully expanded:
+\newcommand{\xyz}{xyz}
+No&#x00A0;expansion:&#x00A0;\makefirstuc{\abc}.
+First&#x00A0;object&#x00A0;one-level&#x00A0;expansion:&#x00A0;\xmakefirstuc{\abc}.
+Fully&#x00A0;expanded:&#x00A0;\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">&#x00A0;</span></span><a
- id="dx1-3018"></a> <span
+ id="dx1-3019"></a> <span
class="cmtt-10">\glsmakefirstuc{</span>&#x27E8;<span
class="cmitt-10">text</span>&#x27E9;<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&#x00A0;#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">&#x00A0;</span></span><a
id="dx1-4001"></a> <span
class="cmtt-10">\capitalisewords{</span>&#x27E8;<span
class="cmitt-10">text</span>&#x27E9;<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 &#x27E8;<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 &#x27E8;<span
class="cmti-10">text</span>&#x27E9;. See <a
href="#sec:nocap"><span
-class="cmsy-10">&sect;</span>3.2
-</a><a
+class="tcrm-1000">&sect;</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 &#8220;of&#8221;) 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">&#x00A0;</span></span><a
id="dx1-4003"></a> <span
-class="cmtt-10">\MFUcapword{</span>&#x27E8;<span
+class="cmtt-10">\MFUcapwordfirstuc{</span>&#x27E8;<span
class="cmitt-10">word</span>&#x27E9;<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>&#x27E8;<span
class="cmti-10">word</span>&#x27E9;<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&#8217;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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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&#x00A0;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
-&#x00A0;<br />\capitalisewords{server-side&#x00A0;includes}
-</div>
-<!--l. 313--><p class="nopar" > which produces: <spacer type=vertical size=10><span class="obeylines-h">
+\capitalisewords{server-side&#x00A0;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&#8217;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">&#x00A0;</span></span><a
+ id="dx1-4007"></a> <span
+class="cmtt-10">\MFUwordbreak{</span>&#x27E8;<span
+class="cmitt-10">punctuation</span>&#x27E9;<span
+class="cmtt-10">} </span></div><hr>
+</p><!--l. 334--><p class="noindent" >
+For example:
+
+
+
+</p>
+ <pre class="verbatim" id="verbatim-17">
+\capitalisewords{a&#x00A0;big\MFUwordbreak{/}small&#x00A0;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&#x00A0;and\MFUwordbreak{/}or&#x00A0;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&#8217;t hide <span
+class="cmtt-10">\MFUwordbreak </span>inside a command or group.
+</p><!--l. 355--><p class="indent" > Exceptions aren&#8217;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&#x00A0;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&#x00A0;sample&#x00A0;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&#x00A0;sample&#x00A0;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>&#x27E8;<span
class="cmitt-10">phrase</span>&#x27E9;<span
class="cmtt-10">} </span></div><hr>
-</p><!--l. 342--><p class="noindent" >
+</p><!--l. 389--><p class="noindent" >
where &#x27E8;<span
class="cmti-10">phrase</span>&#x27E9; 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>&#x27E9;<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&#x00A0;small&#x00A0;book&#x00A0;of&#x00A0;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&#x00A0;\textbf{small&#x00A0;book}&#x00A0;of&#x00A0;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&#x00A0;\emph{small&#x00A0;book}}&#x00A0;of&#x00A0;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&#8217;t have the case changed (see <a
+<li
+ class="enumerate" id="x1-4016x4">
+ <!--l. 441--><p class="noindent" >Indicating words that shouldn&#8217;t have the case changed (see <a
href="#sec:nocap"><span
-class="cmsy-10">&sect;</span>3.2 </a><a
-href="#sec:nocap">Excluding Words From
- Case-Changing<!--tex4ht:ref: sec:nocap --></a>):
+class="tcrm-1000">&sect;</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}
- &#x00A0;<br />\capitalisefmtwords{\textbf{a&#x00A0;\emph{small&#x00A0;book}}&#x00A0;of&#x00A0;rhyme}
-</div>
- <!--l. 399--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+ \capitalisefmtwords{\textbf{a&#x00A0;\emph{small&#x00A0;book}}&#x00A0;of&#x00A0;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}
- &#x00A0;<br />\capitalisefmtwords*{\emph{a&#x00A0;small&#x00A0;book&#x00A0;of&#x00A0;rhyme}}
-</div>
- <!--l. 410--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+ \capitalisefmtwords*{\emph{a&#x00A0;small&#x00A0;book&#x00A0;of&#x00A0;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}
- &#x00A0;<br />\capitalisefmtwords*{a&#x00A0;small&#x00A0;book&#x00A0;of&#x00A0;rhyme}
-</div>
- <!--l. 422--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+ \capitalisefmtwords*{a&#x00A0;small&#x00A0;book&#x00A0;of&#x00A0;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&#8217;s assumed to
+<!--l. 478--><p class="indent" > If there is a text-block command within the argument of the starred form, it&#8217;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}
-&#x00A0;<br />\capitalisefmtwords*{\emph{a&#x00A0;small}&#x00A0;book&#x00A0;\textbf{of&#x00A0;rhyme}}
-</div>
-<!--l. 438--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+\capitalisefmtwords*{\emph{a&#x00A0;small}&#x00A0;book&#x00A0;\textbf{of&#x00A0;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}
-&#x00A0;<br />\capitalisefmtwords*{a&#x00A0;\emph{very&#x00A0;small}&#x00A0;book&#x00A0;of&#x00A0;rhyme}
-</div>
-<!--l. 450--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+\capitalisefmtwords*{a&#x00A0;\emph{very&#x00A0;small}&#x00A0;book&#x00A0;of&#x00A0;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">&#x00A0;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&#x00A0;\emph{small&#x00A0;book}}&#x00A0;of&#x00A0;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&#x00A0;a&#x00A0;\emph{small&#x00A0;book}}&#x00A0;of&#x00A0;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}}
-&#x00A0;<br />\capitalisefmtwords{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;rhyme}
-</div>
-<!--l. 482--><p class="nopar" > However it works okay with the starred form and the simpler <span
+\capitalisefmtwords{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;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}}
-&#x00A0;<br />\capitalisefmtwords*{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;rhyme}
-&#x00A0;<br />\capitalisewords{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;rhyme}
-</div>
-<!--l. 490--><p class="nopar" > Produces: <spacer type=vertical size=10><span class="obeylines-h">
+\capitalisefmtwords*{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;rhyme}
+\capitalisewords{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;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">&#x00A0;</span></span><a
- id="dx1-4019"></a> <span
+ id="dx1-4021"></a> <span
class="cmtt-10">\xcapitalisewords{</span>&#x27E8;<span
class="cmitt-10">text</span>&#x27E9;<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>&#x27E8;<span
class="cmti-10">text</span>&#x27E9;<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">&#x00A0;</span></span><a
- id="dx1-4020"></a> <span
+ id="dx1-4022"></a> <span
class="cmtt-10">\ecapitalisewords{</span>&#x27E8;<span
class="cmitt-10">text</span>&#x27E9;<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">&#x00A0;</span></span><a
- id="dx1-4021"></a> <span
+ id="dx1-4023"></a> <span
class="cmtt-10">\xcapitalisefmtwords{</span>&#x27E8;<span
class="cmitt-10">text</span>&#x27E9;<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">&#x00A0;</span></span><a
- id="dx1-4022"></a> <span
+ id="dx1-4024"></a> <span
class="cmtt-10">\ecapitalisefmtwords{</span>&#x27E8;<span
class="cmitt-10">text</span>&#x27E9;<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&#x00A0;four&#x00A0;five}
-&#x00A0;<br />\newcommand{\xyz}{one&#x00A0;two&#x00A0;three}
-&#x00A0;<br />No&#x00A0;expansion:&#x00A0;\capitalisewords{\abc}.
-&#x00A0;<br />First&#x00A0;object&#x00A0;one-level&#x00A0;expansion:&#x00A0;\xcapitalisewords{\abc}.
-&#x00A0;<br />Fully&#x00A0;expanded:&#x00A0;\ecapitalisewords{\abc}.
-</div>
-<!--l. 539--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+\newcommand{\xyz}{one&#x00A0;two&#x00A0;three}
+No&#x00A0;expansion:&#x00A0;\capitalisewords{\abc}.
+First&#x00A0;object&#x00A0;one-level&#x00A0;expansion:&#x00A0;\xcapitalisewords{\abc}.
+Fully&#x00A0;expanded:&#x00A0;\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 &#8220;four&#8221; has been hidden within <span
class="cmtt-10">\space </span>so it&#8217;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&#x00A0;book&#x00A0;of&#x00A0;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&#x00A0;book\space&#x00A0;of&#x00A0;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&#x00A0;book\space&#x00A0;of&#x00A0;rhyme.}
- &#x00A0;<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&#x00A0;book\space&#x00A0;of&#x00A0;rhyme.}
- &#x00A0;<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}}
- &#x00A0;<br />\capitalisewords{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;rhyme}
- &#x00A0;<br />\ecapitalisewords{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;rhyme}
-</div>
- <!--l. 603--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+ \capitalisewords{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;rhyme}
+ \ecapitalisewords{a&#x00A0;\swap{bo}{ok}&#x00A0;of&#x00A0;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&#x00A0;{ok}{bo}&#x00A0;of&#x00A0;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&#x00A0;hyperref&#x00A0;Warning:&#x00A0;Token&#x00A0;not&#x00A0;allowed&#x00A0;in&#x00A0;a&#x00A0;PDF&#x00A0;string
-&#x00A0;<br />(PDFDocEncoding):
-&#x00A0;<br />(hyperref)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;removing&#x00A0;`\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)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;removing&#x00A0;`\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>&#8217;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
-&#x00A0;<br />&#x00A0;&#x00A0;{\capitalisewords{a&#x00A0;book&#x00A0;of&#x00A0;rhyme}}%&#x00A0;TeX
-&#x00A0;<br />&#x00A0;&#x00A0;{A&#x00A0;Book&#x00A0;of&#x00A0;Rhyme}%&#x00A0;PDF
-&#x00A0;<br />}
-</div>
-<!--l. 642--><p class="nopar" > Alternatively, you can use <span
+&#x00A0;&#x00A0;{\capitalisewords{a&#x00A0;book&#x00A0;of&#x00A0;rhyme}}%&#x00A0;TeX
+&#x00A0;&#x00A0;{A&#x00A0;Book&#x00A0;of&#x00A0;Rhyme}%&#x00A0;PDF
+}
+</pre>
+<!--l. 689--><p class="nopar" > Alternatively, you can use <span
class="cmss-10">hyperref</span><a
id="dx1-5005"></a>&#8217;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{%
-&#x00A0;<br />&#x00A0;\let\capitalisewords\@firstofone
-&#x00A0;<br />}
-</div>
-<!--l. 649--><p class="nopar" >
-</p><!--l. 651--><p class="indent" > See the <span
+&#x00A0;\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&#8217;t be capitalised unless they occur at the
+<!--l. 703--><p class="noindent" >As from v1.09, you can specify words which shouldn&#8217;t be capitalised unless they occur at the
start of &#x27E8;<span
class="cmti-10">text</span>&#x27E9; 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">&#x00A0;</span></span><a
id="dx1-6001"></a> <span
class="cmtt-10">\MFUnocap{</span>&#x27E8;<span
class="cmitt-10">word</span>&#x27E9;<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">&#x00A0;</span></span><a
id="dx1-6002"></a> <span
class="cmtt-10">\gMFUnocap{</span>&#x27E8;<span
class="cmitt-10">word</span>&#x27E9;<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&#x00A0;wind&#x00A0;in&#x00A0;the&#x00A0;willows}
-&#x00A0;<br />\MFUnocap{in}%
-&#x00A0;<br />\MFUnocap{the}%
-&#x00A0;<br />\capitalisewords{the&#x00A0;wind&#x00A0;in&#x00A0;the&#x00A0;willows}
-</div>
-<!--l. 674--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+\MFUnocap{in}%
+\MFUnocap{the}%
+\capitalisewords{the&#x00A0;wind&#x00A0;in&#x00A0;the&#x00A0;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&#8217;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">&#x00A0;</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&#8217;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&#8217;t want that specific
instance to be capitalised. For example:
</p>
- <div class="verbatim" id="verbatim-43">
+ <pre class="verbatim" id="verbatim-46">
\MFUclear
-&#x00A0;<br />\capitalisewords{the&#x00A0;{}wind&#x00A0;in&#x00A0;the&#x00A0;willows}
-</div>
-<!--l. 695--><p class="nopar" > produces: <spacer type=vertical size=10><span class="obeylines-h">
+\capitalisewords{the&#x00A0;{}wind&#x00A0;in&#x00A0;the&#x00A0;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&#8217;t be parsed. For
@@ -1183,17 +1283,17 @@ example:
</p>
- <div class="verbatim" id="verbatim-44">
+ <pre class="verbatim" id="verbatim-47">
\capitalisewords{this&#x00A0;is&#x00A0;section&#x00A0;{}\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 &#8220;a&#8221;, &#8220;an&#8221;, &#
to add other words to this list, such as prepositions but, as there&#8217;s some dispute
over whether prepositions should be capitalised, I&#x00A0;don&#8217;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&#8217;s a good idea to also add a version in the final optional argument, for example:
+</pre>
+<!--l. 777--><p class="nopar" > It&#8217;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&#x00A0;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>&#8217;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&#8217;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>&#x00A0;doesn&#8217;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&#x00A0;doesn&#8217;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&#x00A0;simplistic version of the <span
+</p><!--l. 816--><p class="indent" > A&#x00A0;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&#x00A0;#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&#x00A0;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 &#8220;a&#8221; 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">
!&#x00A0;Argument&#x00A0;of&#x00A0;\UTFviii@two@octets&#x00A0;has&#x00A0;an&#x00A0;extra&#x00A0;}.
-</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">&atilde;</span><span
class="cmtt-10">bc</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-10">}</span></span></span> won&#8217;t work. It will only work if the character <span
class="cmtt-10">&atilde;</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>&#x00A0;having been written before Unicode was
+</p><!--l. 886--><p class="indent" > The reason for this error message is due to TeX&#x00A0;having been written before Unicode was
invented. Although <span
-class="cmtt-10">&atilde;</span> may look like a single character in your text editor, from <span class="TEX">T<span
-class="E">E</span>X</span>&#8217;s point
-of view it&#8217;s <span
+class="cmtt-10">&atilde;</span> may look like a single character in your text editor, from TeX&#8217;s point of
+view it&#8217;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">&atilde;</span><span
class="cmsy-10">}</span><span
class="cmtt-10">bc</span>
</div>
-</div>
-<!--l. 850--><p class="indent" > Note that XeTeX&#x00A0;(and therefore XeLaTeX) is a modern implementation of <span class="TEX">T<span
-class="E">E</span>X</span>&#x00A0;designed
+</div> Over recent years the LaTeX&#x00A0;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&#x00A0;(and therefore XeLaTeX) is a modern implementation of TeX&#x00A0;designed
to work with Unicode and therefore doesn&#8217;t suffer from this drawback. Now let&#8217;s look at the
XeLaTeX&#x00A0;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">&atilde;</span><span
@@ -1499,7 +1599,7 @@ class="cmti-10">&#x00A0;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&#x00A0;&#x00A0;6, 19 <br /></span>
+class="cmss-10">datatool-base </span>package&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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&#x00A0;&#x00A0;19 <br /></span>
+class="cmss-10">fontspec </span>package&#x00A0;&#x00A0;<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&#x00A0;&#x00A0;6, 7, 17 <br /></span>
+class="cmss-10">glossaries </span>package&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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&#x00A0;&#x00A0;14 <br /></span>
+class="cmss-10">hyperref </span>package&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<span
class="cmti-10">8 </span><br /></span>
<span class="index-item"><span
-class="cmss-10">inputenc </span>package&#x00A0;&#x00A0;6 <br /></span>
+class="cmss-10">inputenc </span>package&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<span
class="cmti-10">5 </span><br /></span>
<span class="index-item"><span
-class="cmss-10">mfirstuc </span>package&#x00A0;&#x00A0;6, 19 <br /></span>
+class="cmss-10">mfirstuc </span>package&#x00A0;&#x00A0;<span class="underline">6</span>, <span class="underline">20</span> <br /></span>
<span class="index-item"><span
-class="cmss-10">mfirstuc-english </span>package&#x00A0;&#x00A0;15 <br /></span>
+class="cmss-10">mfirstuc-english </span>package&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<span
+class="cmtt-10">\MFUcapwordfirstuc</span></span></span>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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&#x00A0;&#x00A0;7 <br /></span>
+class="cmss-10">textcase </span>package&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<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>&#x00A0;&#x00A0;<span
class="cmti-10">7 </span><br /></span>
</p></div>
-
+
</body></html>
diff --git a/macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf b/macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf
index 6b5940eff8..cc7cf0cf77 100644
--- a/macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf
+++ b/macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/mfirstuc/mfirstuc-manual.tex b/macros/latex/contrib/mfirstuc/mfirstuc-manual.tex
index 71430da10a..e741c6d45d 100644
--- a/macros/latex/contrib/mfirstuc/mfirstuc-manual.tex
+++ b/macros/latex/contrib/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/macros/latex/contrib/mfirstuc/mfirstuc.dtx b/macros/latex/contrib/mfirstuc/mfirstuc.dtx
index 708531ba48..2aa2008f41 100644
--- a/macros/latex/contrib/mfirstuc/mfirstuc.dtx
+++ b/macros/latex/contrib/mfirstuc/mfirstuc.dtx
@@ -1,21 +1,21 @@
%\iffalse
% mfirstuc.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -codetitle "Main Package Code"
+% -setambles ".*\.perl=>\nopreamble\nopostamble"
+% -setambles ".*\.tex=>\nopreamble\nopostamble"
% -author "Nicola Talbot"
-% -macrocode ".*\.perl"
-% -macrocode ".*\.tex"
% -src "mfirstuc.sty\Z=>mfirstuc.sty"
% -src "mfirstuc-english.sty\Z=>mfirstuc-english.sty"
% -src "(sample.*\.tex)\Z=>\1"
% -src "(.*\.perl)\Z=>\1"
-% -setambles ".*\.perl=>\nopreamble\nopostamble"
-% -setambles ".*\.tex=>\nopreamble\nopostamble"
+% -macrocode ".*\.perl"
+% -macrocode ".*\.tex"
+% -codetitle "Main Package Code"
+% -doc "mfirstuc-codedoc.tex"
% -comment ".*\.perl"
% -comment ".*\.tex"
-% -doc "mfirstuc-codedoc.tex"
% mfirstuc
-% Created on 2017/11/14 12:21
+% Created on 2021/10/15 17:46
%\fi
%\iffalse
%<*package>
@@ -38,7 +38,7 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2017 Nicola Talbot, all rights reserved.
+% Copyright (C) 2021 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -64,7 +64,7 @@ mfirstuc.dtx
\setcounter{IndexColumns}{2}
\setlength\IndexMin{100pt}
-\CheckSum{691}
+\CheckSum{771}
\begin{document}
\DocInput{mfirstuc.dtx}
@@ -74,12 +74,12 @@ mfirstuc.dtx
%\MakeShortVerb{"}
%\DeleteShortVerb{\|}
%
-% \title{Documented Code For mfirstuc v2.06}
+% \title{Documented Code For mfirstuc v2.07}
% \author{Nicola L.C. Talbot\\[10pt]
%Dickimaw Books\\
%\url{http://www.dickimaw-books.com/}}
%
-% \date{2017-11-14}
+% \date{2021-10-15}
% \maketitle
%
%\tableofcontents
@@ -111,7 +111,7 @@ mfirstuc.dtx
%\changes{2.0}{2015/09/09}{package split from glossaries}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{mfirstuc}[2017/11/14 v2.06 (NLCT)]
+\ProvidesPackage{mfirstuc}[2021/10/15 v2.07 (NLCT)]
% \end{macrocode}
% Requires \sty{etoolbox}:\changes{1.06}{2012/05/21}{now requires
% etoolbox}
@@ -154,6 +154,20 @@ mfirstuc.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\@MFU@skippunc}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\newcommand*{\@MFU@skippunc}{\MFUskippunc}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\MFUskippunc}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\newrobustcmd*{\MFUskippunc}[1]{#1}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\@MFU@p@makefirstuc}
% Internal command to do the required action.
% \begin{macrocode}
@@ -166,7 +180,15 @@ mfirstuc.dtx
\ifx\gls@argi\@MFU@protect
\@makefirstuc{#2#3}%
\else
- \@makefirstuc{#4}%
+% \end{macrocode}
+% v2.07+ also check for \cs{MFUskippunc}
+%\changes{2.07}{2021-10-15}{check for \cs{MFUskippunc}}
+% \begin{macrocode}
+ \ifx\gls@argi\@MFU@skippunc
+ #2\@makefirstuc{#3}%
+ \else
+ \@makefirstuc{#4}%
+ \fi
\fi
}
% \end{macrocode}
@@ -419,7 +441,7 @@ mfirstuc.dtx
\newrobustcmd*{\capitalisewords}[1]{%
\let\@mfu@checkword\@gobble
\def\gls@add@space{}%
- \let\@mfu@domakefirstuc\MFUcapword
+ \let\@mfu@domakefirstuc\@MFU@dofirst@capword
\mfu@capitalisewords#1 \@nil\mfu@endcap
}
% \end{macrocode}
@@ -431,7 +453,7 @@ mfirstuc.dtx
% \begin{macrocode}
\newcommand*{\@mfu@mid@capitalisewords}[1]{%
\def\gls@add@space{}%
- \let\@mfu@domakefirstuc\MFUcapword
+ \let\@mfu@domakefirstuc\@MFU@do@capword
\mfu@capitalisewords#1 \@nil\mfu@endcap
}
% \end{macrocode}
@@ -465,24 +487,71 @@ mfirstuc.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\@MFU@do@capword}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\newcommand*{\@MFU@do@capword}[1]{%
+ \let\@MFU@cappingword\MFUcapword
+ \@MFUwordbreak#1\MFUwordbreak{}\@nil\@endMFUwordbreak
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@MFU@dofirst@capword}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\newcommand*{\@MFU@dofirst@capword}[1]{%
+ \let\@MFU@cappingword\MFUcapword
+ \@MFUfirstwordbreak#1\MFUwordbreak{}\@nil\@endMFUfirstwordbreak
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\MFUcapword}
%\changes{2.03}{2016-07-29}{new}
% \begin{macrocode}
\newcommand*{\MFUcapword}[1]{%
\ifMFUhyphen
- \@MFUcapword#1-\@nil\@endMFUcapword
+ \MFUhyphencapword{#1}%
\else
- \makefirstuc{#1}%
+ \MFUcapwordfirstuc{#1}%
\fi
}
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\MFUcapwordfirstuc}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\newcommand*{\MFUcapwordfirstuc}[1]{%
+ \makefirstuc{#1}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\MFUwordbreak}
+%\changes{2.07}{2021-10-15}{new}
+%Markup a character (or command) that should be treated as a word
+%break.
+% \begin{macrocode}
+\newrobustcmd*{\MFUwordbreak}[1]{#1}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\MFUhyphencapword}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\newcommand*{\MFUhyphencapword}[1]{%
+ \@MFUcapword#1-\@nil\@endMFUcapword
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\@MFUcapword}
%\changes{2.03}{2016-07-29}{new}
% \begin{macrocode}
\def\@MFUcapword#1-#2\@endMFUcapword{%
- \makefirstuc{#1}%
+ \MFUcapwordfirstuc{#1}%
\def\@mfu@argii{#2}%
\ifx\@mfu@argii\@nnil
\else
@@ -492,6 +561,57 @@ mfirstuc.dtx
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\@MFUwordbreak}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\def\@MFUwordbreak#1\MFUwordbreak#2#3\@endMFUwordbreak{%
+ \def\@mfu@argiii{#3}%
+ \ifx\@mfu@argiii\@nnil
+ \@MFU@cappingword{#1}%
+ \else
+ \let\@MFU@cappingword\@MFU@wordbreakcapword
+ \@MFU@cappingword{#1}%
+ #2\@MFUwordbreak#3\@endMFUwordbreak
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@MFU@wordbreakcapword}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\newcommand*{\@MFU@wordbreakcapword}[1]{%
+ \mfu@checkword{#1}%
+ \@mfu@domakefirstuc{#1}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@MFUfirstwordbreak}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\def\@MFUfirstwordbreak#1\MFUwordbreak#2#3\@endMFUfirstwordbreak{%
+ \def\@mfu@argiii{#3}%
+ \ifx\@mfu@argiii\@nnil
+ \@MFU@cappingword{#1}%
+ \else
+ \let\@MFU@cappingword\@MFU@firstwordbreakcapword
+ \@MFU@cappingword{#1}%
+ #2\@MFUfirstwordbreak#3\@endMFUfirstwordbreak
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@MFU@firstwordbreakcapword}
+%\changes{2.07}{2021-10-15}{new}
+% \begin{macrocode}
+\newcommand*{\@MFU@firstwordbreakcapword}[1]{%
+ \@mfu@domakefirstuc{#1}%
+}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\mfu@checkword}
% Check if word should be capitalised.
% This originally used \sty{etoolbox}'s \ics{ifinlist} command
@@ -501,7 +621,7 @@ mfirstuc.dtx
% \begin{macrocode}
\newcommand*\mfu@checkword[1]{%
\def\mfu@checkword@arg{#1}%
- \let\@mfu@domakefirstuc\MFUcapword
+ \let\@mfu@domakefirstuc\@MFU@do@capword
\forlistloop\mfu@checkword@do\@mfu@nocaplist
}
% \end{macrocode}
@@ -545,6 +665,7 @@ mfirstuc.dtx
%\begin{macro}{\MFUnocap}
% Provide the user with a means to add a word to the list.
% (No expansion performed on the argument.)
+%\changes{1.09}{2017-07-30}{new}
% \begin{macrocode}
\newcommand*{\MFUnocap}[1]{\listadd{\@mfu@nocaplist}{#1}}
% \end{macrocode}
@@ -944,7 +1065,7 @@ mfirstuc.dtx
%\label{sec:code:mfirstuc-english}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{mfirstuc-english}[2017/11/14 v2.06 (NLCT)]
+\ProvidesPackage{mfirstuc-english}[2021/10/15 v2.07 (NLCT)]
% \end{macrocode}
% Load \sty{mfirstuc} if not already loaded:
% \begin{macrocode}
@@ -1031,6 +1152,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
diff --git a/macros/latex/contrib/mfirstuc/mfirstuc.ins b/macros/latex/contrib/mfirstuc/mfirstuc.ins
index 59773096d4..02e695dcc1 100644
--- a/macros/latex/contrib/mfirstuc/mfirstuc.ins
+++ b/macros/latex/contrib/mfirstuc/mfirstuc.ins
@@ -1,10 +1,10 @@
-% mfirstuc.ins generated using makedtx version 1.2 2017/11/14 12:21
+% mfirstuc.ins generated using makedtx version 1.2 2021/10/15 17:46
\input docstrip
\preamble
mfirstuc.dtx
- Copyright 2017 Nicola Talbot
+ Copyright 2021 Nicola Talbot
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf b/macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf
index ce43ddad2b..4433af0c32 100644
--- a/macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf
+++ b/macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf
Binary files differ
diff --git a/macros/latex/contrib/mfirstuc/sample-mfirstuc.tex b/macros/latex/contrib/mfirstuc/sample-mfirstuc.tex
index 718515cb8f..7438c770cc 100644
--- a/macros/latex/contrib/mfirstuc/sample-mfirstuc.tex
+++ b/macros/latex/contrib/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
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
index 8818c33ad9..e565a16b50 100644
--- a/macros/latex/contrib/siunitx/CHANGELOG.md
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -7,11 +7,22 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.0.33]
+
+### Changed
+- Further improvements to degree symbol in math mode
+
+### Fixed
+- Handling of comparators when `mode = text` (see issue
+ [#551](https://github.com/josephwright/siunitx/issues/551)
+- Handling of combination of `mode = text` with `tight-spacing` (see issue
+ [#553](https://github.com/josephwright/siunitx/issues/553)
+
## [v3.0.32]
### Added
- Hint concerning non-standard font encodings (see issues
- [#547](https://github.com/josephwright/siunitx/issues/550) and
+ [#547](https://github.com/josephwright/siunitx/issues/547) and
[#550](https://github.com/josephwright/siunitx/issues/550))
### Changed
@@ -1596,7 +1607,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Added
- First public testing release (as `si`)
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.32...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.33...HEAD
+[v3.0.33]: https://github.com/josephwright/siunitx/compare/v3.0.32...v3.0.33
[v3.0.32]: https://github.com/josephwright/siunitx/compare/v3.0.31...v3.0.32
[v3.0.31]: https://github.com/josephwright/siunitx/compare/v3.0.30...v3.0.31
[v3.0.30]: https://github.com/josephwright/siunitx/compare/v3.0.29...v3.0.30
diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf
index 02cae532e0..c780176578 100644
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx-print.dtx b/macros/latex/contrib/siunitx/siunitx-print.dtx
index fc3ba7c0fc..4f107b5cbb 100644
--- a/macros/latex/contrib/siunitx/siunitx-print.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-print.dtx
@@ -765,7 +765,7 @@
% \end{macro}
%
% \begin{macro}{\siunitx_print_text:n}
-% \begin{macro}{\@@_text_replace:n}
+% \begin{macro}{\@@_text_replace:n, \@@_text_replace_aux:n}
% \begin{macro}{\@@_text_replace:N}
% \begin{macro}{\@@_text_replace:NNn}
% \begin{macro}{\@@_text_replace:Nnnn}
@@ -806,35 +806,36 @@
}
% \end{macrocode}
% To get math mode material to print in text mode, various search-and-replace
-% steps are needed.
+% steps are needed. We use \tn{protected@edef} to deal with commands, partly
+% for speed and partly as it deals with anything nested inside \cs{mathord}.
% \begin{macrocode}
\cs_new_protected:Npn \@@_text_replace:n #1
{
\group_begin:
- \tl_if_head_eq_meaning:nNTF {#1} \mathchoice
- { \@@_text_replace:Nnnnn #1 }
- {
- \tl_set:Nn \l_@@_tmp_tl {#1}
- \@@_text_replace:N \l_@@_tmp_tl
- \tl_use:N \l_@@_tmp_tl
- }
+ \tl_if_head_eq_meaning:nNTF {#1} \mathchoice
+ { \@@_text_replace:Nnnnn #1 }
+ {
+ \tl_set:Nn \l_@@_tmp_tl {#1}
+ \@@_replace_font:N \l_@@_tmp_tl
+ \cs_set:Npn \mathord ##1 {##1}
+ \cs_set:Npn \pm { \exp_not:N \textpm }
+ \tl_map_inline:nn
+ { \mp \ge \le \gg \ll }
+ { \cs_set:Npn ##1 { \exp_not:N \ensuremath { \exp_not:N ##1 } } }
+ \cs_set:Npn \cdot { \exp_not:N \textperiodcentered }
+ \cs_set:Npn \times { \exp_not:N \texttimes }
+ \protected@edef \l_@@_tmp_tl { \l_@@_tmp_tl }
+ \@@_text_replace:N \l_@@_tmp_tl
+ \@@_text_replace_aux:n { \tl_use:N \l_@@_tmp_tl }
+ }
\group_end:
}
+\cs_new_protected:Npn \@@_text_replace_aux:n #1 {#1}
\cs_new_protected:Npx \@@_text_replace:N #1
{
- \@@_replace_font:N #1
\exp_not:N \@@_text_replace:NNn #1
- \exp_not:N \mathord { }
- \exp_not:N \pm
- { \exp_not:N \textpm }
- \exp_not:N \mp
- { \exp_not:n { \ensuremath { \mp } } }
-
{ \exp_not:N \textminus }
- \exp_not:N \times
- { \exp_not:N \texttimes }
- \exp_not:N \cdot
- { \exp_not:N \textperiodcentered }
\char_generate:nn { `\_ } { 8 }
{ \exp_not:N \@@_text_sub:n }
^
@@ -880,14 +881,7 @@
{
\@ifpackageloaded { bidi }
{
- \cs_set_protected:Npn \@@_text_replace:n #1
- {
- \group_begin:
- \tl_set:Nn \l_@@_tmp_tl {#1}
- \@@_text_replace:N \l_@@_tmp_tl
- \LRE { \tl_use:N \l_@@_tmp_tl }
- \group_end:
- }
+ \cs_set_protected:Npn \@@_text_replace_aux:n #1 { \LRE {#1} }
}
{ }
}
diff --git a/macros/latex/contrib/siunitx/siunitx-symbol.dtx b/macros/latex/contrib/siunitx/siunitx-symbol.dtx
index e851918722..4fa17bde89 100644
--- a/macros/latex/contrib/siunitx/siunitx-symbol.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-symbol.dtx
@@ -180,7 +180,9 @@
\siunitx_declare_unit:Nxn \degree
{
\exp_not:N \ifmmode
- { } ^ { \exp_not:N \circ }
+ \@ifpackageloaded { unicode-math }
+ { \@@_non_latin:n { "00B0 } }
+ { { } ^ { \exp_not:N \circ } }
\exp_not:N \else
\exp_not:N \text
{
@@ -208,7 +210,9 @@
\siunitx_declare_unit:Nx \degreeCelsius
{
\exp_not:N \ifmmode
- { } ^ { \exp_not:N \circ }
+ \@ifpackageloaded { unicode-math }
+ { \@@_non_latin:n { "00B0 } }
+ { { } ^ { \exp_not:N \circ } }
\exp_not:N \else
\exp_not:N \text
{
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index f786828c46..adb8063b9d 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -121,7 +121,7 @@
%
% Identify the package and give the over all version information.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2021-09-29} {3.0.32}
+\ProvidesExplPackage {siunitx} {2021-10-15} {3.0.33}
{A comprehensive (SI) units package}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index ac7c947955..d6c3830cb5 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/macros/latex/contrib/soulpos/README.md b/macros/latex/contrib/soulpos/README.md
index 5a16c48004..01f156e7c0 100644
--- a/macros/latex/contrib/soulpos/README.md
+++ b/macros/latex/contrib/soulpos/README.md
@@ -2,6 +2,8 @@
Combines soul and the savepos tools provided by pdftex and compatible
for fancy underlining.
+Version 1.2 works with luatex (at last).
+
License: MIT
________
Javier Bezos --- http://www.texnia.com
diff --git a/macros/latex/contrib/soulpos/soulpos.pdf b/macros/latex/contrib/soulpos/soulpos.pdf
index ce534eb462..0f064bbcbf 100644
--- a/macros/latex/contrib/soulpos/soulpos.pdf
+++ b/macros/latex/contrib/soulpos/soulpos.pdf
Binary files differ
diff --git a/macros/latex/contrib/soulpos/soulpos.sty b/macros/latex/contrib/soulpos/soulpos.sty
index d32deec72b..806ac9eb43 100644
--- a/macros/latex/contrib/soulpos/soulpos.sty
+++ b/macros/latex/contrib/soulpos/soulpos.sty
@@ -1,5 +1,5 @@
%
-% Copyright (C) 2012-2019 Javier Bezos http://www.texnia.com
+% Copyright (C) 2012-2021 Javier Bezos http://www.texnia.com
%
% This file may be distributed and/or modified under the conditions of
% the MIT License. A version can be found at the end of this file.
@@ -7,7 +7,7 @@
% Repository: https://github.com/jbezos/esindex
%
-\ProvidesPackage{soulpos}[2012/02/25 v1.1 Fancy underlining]
+\ProvidesPackage{soulpos}[2021/10/15 v1.2 Fancy underlining]
\newcount\ulp@subcnt
\newcount\ulp@cnt
@@ -15,6 +15,16 @@
\newwrite\ulp@out
\newread\ulp@in
+\ifx\savepos\@undefined
+ \let\ulp@savepos\pdfsavepos
+ \let\ulp@lastxpos\pdflastxpos
+ \let\ulp@lastypos\pdflastypos
+\else
+ \let\ulp@savepos\savepos
+ \let\ulp@lastxpos\lastxpos
+ \let\ulp@lastypos\lastypos
+\fi
+
\AtBeginDocument{\ulp@begindoc}
\def\ulp@begindoc{%
@@ -140,10 +150,10 @@
\ulp@draw
\global\expandafter\let\csname ulp@@\the\ulp@subcnt\endcsname\@undefined}%
\ifcase\ulp@pos\hss\fi % over
- \pdfsavepos
+ \ulp@savepos
\protected@write\ulp@out{}%
{\string\ulp@Pa\number#1{\the\ulp@subcnt}%
- {\noexpand\the\pdflastxpos}{\noexpand\the\pdflastypos}%
+ {\noexpand\the\ulp@lastxpos}{\noexpand\the\ulp@lastypos}%
\@percentchar}%
\egroup}
diff --git a/macros/latex/contrib/soulpos/soulpos.tex b/macros/latex/contrib/soulpos/soulpos.tex
index 7379469c29..d9b74c7b29 100644
--- a/macros/latex/contrib/soulpos/soulpos.tex
+++ b/macros/latex/contrib/soulpos/soulpos.tex
@@ -1,5 +1,5 @@
%
-% Copyright (C) 2012-2019 Javier Bezos http://www.texnia.com
+% Copyright (C) 2012-2021 Javier Bezos http://www.texnia.com
%
% This file may be distributed and/or modified under the conditions of
% the MIT License. A version can be found at the end of this file.
@@ -9,7 +9,7 @@
\title{Underlining (and more) with soulpos}
\author{Javier Bezos}
-\date{2012-02-25}
+\date{2021-10-15}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}