diff --git a/src/sentence/unicode.rs b/src/sentence/unicode.rs index aa27324..365585d 100644 --- a/src/sentence/unicode.rs +++ b/src/sentence/unicode.rs @@ -1590,6 +1590,21 @@ pub(crate) fn leftover_keyval_cs_name(tail: &str) -> Option<&'static str> { "tcbwritetemp", "tcbrecord", "tcbbreak", + "refPathOperation", + "docAuxEnvironment", + "docAuxCommand", + "docKeyChoices", + "docAuxKey", + "docCounter", + "docLength", + "docColor", + "docValue", + "refAuxcs", + "refCom", + "refEnv", + "refKey", + "refAux", + "refPkg", "tcbdocmarginnote", "tcbdocupdated", "tcbdocnote", @@ -1654,7 +1669,22 @@ pub(crate) fn leftover_keyval_cs_name(tail: &str) -> Option<&'static str> { let Some(after) = tail.strip_prefix(name) else { continue; }; - let reject_star = name != "tcbline"; + let reject_star = !matches!( + name, + "tcbline" + | "refCom" + | "refEnv" + | "refKey" + | "refPathOperation" + | "docAuxCommand" + | "docAuxEnvironment" + | "docAuxKey" + | "docCounter" + | "docLength" + | "docColor" + | "docValue" + | "docKeyChoices" + ); if after.starts_with(|c: char| c.is_ascii_alphabetic() || (reject_star && c == '*')) { return None; } @@ -1733,6 +1763,7 @@ fn leftover_keyval_kind(name: &str) -> VerbKind { | "tcboxfit" | "tcbox" | "tcbhyperref" + | "docAuxKey" | "tcbhypernode" | "tcbverbatimwrite" | "tcbrecord" diff --git a/tests/latex_leftover_cmds.rs b/tests/latex_leftover_cmds.rs index 3e5c8d1..406da28 100644 --- a/tests/latex_leftover_cmds.rs +++ b/tests/latex_leftover_cmds.rs @@ -345,6 +345,25 @@ fn leftover_constructors_do_not_join() { leftover_cmd_stays_atomic(r"\tcbdocdescDefault{foo}"); leftover_cmd_stays_atomic(r"\tcbdocdescDefaultInitEmpty{foo}"); leftover_cmd_stays_atomic(r"\tcbdocdescDefaultInit{foo}{bar}"); + leftover_cmd_stays_atomic(r"\tcbmakedocSubKey{docFooKey}{foo}"); + leftover_cmd_stays_atomic(r"\tcbmakedocSubKeys[colback=red]{docFooKeys}{foo}"); + leftover_cmd_stays_atomic(r"\refCom{tcbset}"); + leftover_cmd_stays_atomic(r"\refCom*{tcbset}"); + leftover_cmd_stays_atomic(r"\refEnv{docCommand}"); + leftover_cmd_stays_atomic(r"\refKey{/tcb/colback}"); + leftover_cmd_stays_atomic(r"\refPathOperation{lineto}"); + leftover_cmd_stays_atomic(r"\refAux{foo}"); + leftover_cmd_stays_atomic(r"\refAuxcs{foo}"); + leftover_cmd_stays_atomic(r"\refPkg{tcolorbox}"); + leftover_cmd_stays_atomic(r"\docAuxCommand{foo}"); + leftover_cmd_stays_atomic(r"\docAuxEnvironment{foo}"); + leftover_cmd_stays_atomic(r"\docAuxKey{colback}"); + leftover_cmd_stays_atomic(r"\docAuxKey[tcb]{colback}"); + leftover_cmd_stays_atomic(r"\docKeyChoices{red,blue}"); + leftover_cmd_stays_atomic(r"\docCounter{tcbcounter}"); + leftover_cmd_stays_atomic(r"\docLength{linewidth}"); + leftover_cmd_stays_atomic(r"\docColor{red}"); + leftover_cmd_stays_atomic(r"\docValue{none}"); leftover_cmd_stays_atomic(r"\tcbindex"); leftover_cmd_stays_atomic(r"\tcbEXTERNALIZE"); leftover_cmd_stays_atomic(r"\tcbifexternal{odd. More}{even. More}"); @@ -368,6 +387,10 @@ fn leftover_constructors_do_not_join() { extras_skip_no_brace("pyif"); extras_skip_no_brace("lstdefineformat"); extras_skip_no_brace("newtcolorbox"); + extras_skip_no_brace("tcbmakedocSubKey"); + extras_skip_no_brace("tcbmakedocSubKeys"); + extras_skip_no_brace("refCom"); + extras_skip_no_brace("docAuxCommand"); extras_skip_no_brace("tcbset"); extras_skip_no_brace("tcbuselibrary"); extras_skip_no_brace("setpythontexprettyprinter");