diff --git a/.changeset/small-masks-tap.md b/.changeset/small-masks-tap.md new file mode 100644 index 000000000..4931491ff --- /dev/null +++ b/.changeset/small-masks-tap.md @@ -0,0 +1,5 @@ +--- +'tex-to-myst': patch +--- + +Support cref diff --git a/packages/tex-to-myst/src/refs.ts b/packages/tex-to-myst/src/refs.ts index cfb64e01b..525e6fe43 100644 --- a/packages/tex-to-myst/src/refs.ts +++ b/packages/tex-to-myst/src/refs.ts @@ -51,4 +51,9 @@ export const REF_HANDLERS: Record = { const label = texToText(getArguments(node, 'group')); state.pushNode(u('crossReference', { label })); }, + macro_cref(node, state) { + state.openParagraph(); + const label = texToText(getArguments(node, 'group')); + state.pushNode(u('crossReference', { label }, [])); + }, }; diff --git a/packages/tex-to-myst/tests/refs.yml b/packages/tex-to-myst/tests/refs.yml index 1235bb496..ea2cf5322 100644 --- a/packages/tex-to-myst/tests/refs.yml +++ b/packages/tex-to-myst/tests/refs.yml @@ -105,3 +105,46 @@ cases: children: - type: text value: '%s' + - title: cref + tex: > + \section{Greetings} + \label{sec:greetings} + + Hello! + + \section{Referencing} + + I greeted in section~\cref{sec:greetings}. + tree: + type: root + children: + - type: block + children: + - type: heading + depth: 2 + identifier: sec:greetings + label: sec:greetings + children: + - type: text + value: Greetings + - type: paragraph + children: + - type: text + value: Hello! + - type: block + children: + - type: heading + depth: 2 + children: + - type: text + value: Referencing + - type: paragraph + children: + - type: text + value: 'I greeted in section ' + - type: crossReference + identifier: sec:greetings + label: sec:greetings + children: [] + - type: text + value: '.'