[latex3-commits] [git/LaTeX3-latex3-latex3] main: Enable case switching in titlecase-first (fixes #1130) (975af0d3c)

Joseph Wright joseph.wright at morningstar2.co.uk
Wed Sep 28 16:04:13 CEST 2022


Repository : https://github.com/latex3/latex3
On branch  : main
Link       : https://github.com/latex3/latex3/commit/975af0d3cda08f6a5282f9306c585de8954b62f3

>---------------------------------------------------------------

commit 975af0d3cda08f6a5282f9306c585de8954b62f3
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Wed Sep 28 15:04:13 2022 +0100

    Enable case switching in titlecase-first (fixes #1130)


>---------------------------------------------------------------

975af0d3cda08f6a5282f9306c585de8954b62f3
 l3kernel/CHANGELOG.md            | 4 ++++
 l3kernel/l3text-case.dtx         | 8 +++++++-
 l3kernel/testfiles/m3text002.lvt | 3 ++-
 l3kernel/testfiles/m3text002.tlg | 2 ++
 4 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 44422ee9e..ff2e89322 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -10,6 +10,10 @@ this project uses date-based 'snapshot' version identifiers.
 ### Added
 - Set media box for test phase documents
 
+### Fixed
+- Text case switching in `\text_titlecase_first:n` (issue
+  [\#1130](https://github.com/latex3/latex3/issues/1130))
+
 ## [2022-08-30]
 
 ### Added
diff --git a/l3kernel/l3text-case.dtx b/l3kernel/l3text-case.dtx
index 8a5615a1f..ffbffc9f5 100644
--- a/l3kernel/l3text-case.dtx
+++ b/l3kernel/l3text-case.dtx
@@ -158,7 +158,8 @@
 %   {
 %     \@@_change_case_switch_lower:nnNnnnn ,
 %     \@@_change_case_switch_upper:nnNnnnn ,
-%     \@@_change_case_switch_title:nnNnnnn
+%     \@@_change_case_switch_title:nnNnnnn ,
+%     \@@_change_case_switch_titleonly:nnNnnnn
 %   }
 % \begin{macro}[EXP]
 %   {
@@ -518,6 +519,11 @@
     \@@_change_case_store:n {#7}
     \@@_change_case_loop:nnw {#1} {#2}
   }
+\cs_new:Npn \@@_change_case_switch_titleonly:nnNnnnn #1#2#3#4#5#6#7
+  {
+    \@@_change_case_store:n {#7}
+    \@@_change_case_break:w
+  }
 %    \end{macrocode}
 %  Letter-like commands may still be present: they are set up using a simple
 %  lookup approach, so can easily be handled with no loop. If there is no
diff --git a/l3kernel/testfiles/m3text002.lvt b/l3kernel/testfiles/m3text002.lvt
index cc5048a39..21e889042 100644
--- a/l3kernel/testfiles/m3text002.lvt
+++ b/l3kernel/testfiles/m3text002.lvt
@@ -1,5 +1,5 @@
 %
-% Copyright (C) 2020,2021 The LaTeX Project
+% Copyright (C) 2020-2022 The LaTeX Project
 %
 \input{regression-test}
 
@@ -374,6 +374,7 @@
     \text_uppercase:n {#1} \NEWLINE
     \text_lowercase:n {#1} \NEWLINE
     \text_titlecase:n {#1} \NEWLINE
+    \text_titlecase_first:n {#1} \NEWLINE
   }
 
 \TESTEXP { Case~change~switching }
diff --git a/l3kernel/testfiles/m3text002.tlg b/l3kernel/testfiles/m3text002.tlg
index fa954f522..e11a38e61 100644
--- a/l3kernel/testfiles/m3text002.tlg
+++ b/l3kernel/testfiles/m3text002.tlg
@@ -348,9 +348,11 @@ TEST 30: Case change switching
 lower
 UPPER
 Title
+Title
 WORDS lower
 words UPPER
 Words UPPER
+Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
 ============================================================
 ============================================================
 TEST 31: Case change replacements





More information about the latex3-commits mailing list.