Skip to content

Conversation

Octachron
Copy link
Member

This PR fixes the label used for headings in the latex backend.

Previously, the latex backend used only the heading label, for instance,

(** {1:s_name Title } *)

generated

\subsection{Title\label{s_name}}

whereas the references used the full path

\hyperref[Module_name-s_name]{Title[p\pageref*{Module_name-s-name}]}

This PR fixes this discrepancy (observed on the odoc version of the OCaml manual) by using the full path in the heading translation.

@Octachron Octachron marked this pull request as draft March 18, 2025 15:00
@Octachron
Copy link
Member Author

There seems to be multiple changes required to make the reference manual works with odoc 3, I am planning to switch this PR to non-draft mode once I have compiled all the changes.

@Octachron Octachron marked this pull request as ready for review March 25, 2025 13:52
@Octachron
Copy link
Member Author

Finally, it seems that the changes required for the reference manual to build without dead references apply cleany on the top of this PR, thus I am removing the draft status.

@jonludlam jonludlam force-pushed the odoc_latex_section_label_fix branch from c3916cf to b599777 Compare July 4, 2025 11:55
@jonludlam
Copy link
Member

Thanks @Octachron !

@jonludlam jonludlam merged commit fae4fb0 into ocaml:master Jul 4, 2025
11 of 12 checks passed
jonludlam added a commit to jonludlam/opam-repository that referenced this pull request Jul 10, 2025
CHANGES:

### Added
- Exposed sherlodoc libraries for use in other projects (@jonludlam, ocaml/odoc#1349)
- OCaml 5.4.0 support (@Octachron, ocaml/odoc#1355)
- New arguments to LaTeX generator, --shorten-beyond-depth and
  --remove-functor-arg-link (@Octachron, ocaml/odoc#1337)
- New experimental markdown generator (@davesnx, ocaml/odoc#1341)

### Changed
- Remove cmdliner compatibility layer, no longer needed (@dbuenzli, ocaml/odoc#1328)
- Drop support for OCaml < 4.08 (@jonludlam, ocaml/odoc#1300)
- Allow referencing libraries from package added in `odoc-config.sexp`
  (@panglesd, ocaml/odoc#1343)
- Use full path in heading labels in LaTeX backend (@Octachron, ocaml/odoc#1332)
- Separate page from anchor in LaTeX labels to prevent collisions (@Octachron,
  ocaml/odoc#1337)

### Fixed
- Fix bug in parsing META files when there are no dependencies (@jonludlam, ocaml/odoc#1352)
- Fix ocaml/odoc#1335 - incorrect rendering when on medium screen size with no global
  sidebar (@lukemaurer, ocaml/odoc#1361)
- Fixed generation of occurrences for docs CI (@jonludlam, ocaml/odoc#1362)
jonludlam added a commit to jonludlam/opam-repository that referenced this pull request Jul 10, 2025
CHANGES:

- Exposed sherlodoc libraries for use in other projects (@jonludlam, ocaml/odoc#1349)
- OCaml 5.4.0 support (@Octachron, ocaml/odoc#1355)
- New arguments to LaTeX generator, --shorten-beyond-depth and
  --remove-functor-arg-link (@Octachron, ocaml/odoc#1337)
- New experimental markdown generator (@davesnx, ocaml/odoc#1341)

- Remove cmdliner compatibility layer, no longer needed (@dbuenzli, ocaml/odoc#1328)
- Drop support for OCaml < 4.08 (@jonludlam, ocaml/odoc#1300)
- Allow referencing libraries from package added in `odoc-config.sexp`
  (@panglesd, ocaml/odoc#1343)
- Use full path in heading labels in LaTeX backend (@Octachron, ocaml/odoc#1332)
- Separate page from anchor in LaTeX labels to prevent collisions (@Octachron,
  ocaml/odoc#1337)

- Fix bug in parsing META files when there are no dependencies (@jonludlam, ocaml/odoc#1352)
- Fix ocaml/odoc#1335 - incorrect rendering when on medium screen size with no global
  sidebar (@lukemaurer, ocaml/odoc#1361)
- Fixed generation of occurrences for docs CI (@jonludlam, ocaml/odoc#1362)
jonludlam added a commit to jonludlam/opam-repository that referenced this pull request Jul 15, 2025
CHANGES:

### Added
- Exposed sherlodoc libraries for use in other projects (@jonludlam, ocaml/odoc#1349)
- OCaml 5.4.0 support (@Octachron, ocaml/odoc#1355)
- New arguments to LaTeX generator, --shorten-beyond-depth and
  --remove-functor-arg-link (@Octachron, ocaml/odoc#1337)
- New experimental markdown generator (@davesnx, ocaml/odoc#1341)

### Changed
- Remove cmdliner compatibility layer, no longer needed (@dbuenzli, ocaml/odoc#1328)
- Drop support for OCaml < 4.08 (@jonludlam, ocaml/odoc#1300)
- Allow referencing libraries from package added in `odoc-config.sexp`
  (@panglesd, ocaml/odoc#1343)
- Use full path in heading labels in LaTeX backend (@Octachron, ocaml/odoc#1332)
- Separate page from anchor in LaTeX labels to prevent collisions (@Octachron,
  ocaml/odoc#1337)

### Fixed
- Fix bug in parsing META files when there are no dependencies (@jonludlam, ocaml/odoc#1352)
- Fix ocaml/odoc#1335 - incorrect rendering when on medium screen size with no global
  sidebar (@lukemaurer, ocaml/odoc#1361)
- Fixed generation of occurrences for docs CI (@jonludlam, ocaml/odoc#1362)
- Partial fix for ocaml/odoc#1369 - ensure that we never create a link to a hidden page
  (@jonludlam, ocaml/odoc#1370)
jonludlam added a commit to jonludlam/opam-repository that referenced this pull request Jul 15, 2025
CHANGES:

- Exposed sherlodoc libraries for use in other projects (@jonludlam, ocaml/odoc#1349)
- OCaml 5.4.0 support (@Octachron, ocaml/odoc#1355)
- New arguments to LaTeX generator, --shorten-beyond-depth and
  --remove-functor-arg-link (@Octachron, ocaml/odoc#1337)
- New experimental markdown generator (@davesnx, ocaml/odoc#1341)

- Remove cmdliner compatibility layer, no longer needed (@dbuenzli, ocaml/odoc#1328)
- Drop support for OCaml < 4.08 (@jonludlam, ocaml/odoc#1300)
- Allow referencing libraries from package added in `odoc-config.sexp`
  (@panglesd, ocaml/odoc#1343)
- Use full path in heading labels in LaTeX backend (@Octachron, ocaml/odoc#1332)
- Separate page from anchor in LaTeX labels to prevent collisions (@Octachron,
  ocaml/odoc#1337)

- Fix bug in parsing META files when there are no dependencies (@jonludlam, ocaml/odoc#1352)
- Fix ocaml/odoc#1335 - incorrect rendering when on medium screen size with no global
  sidebar (@lukemaurer, ocaml/odoc#1361)
- Fixed generation of occurrences for docs CI (@jonludlam, ocaml/odoc#1362)
- Partial fix for ocaml/odoc#1369 - ensure that we never create a link to a hidden page
  (@jonludlam, ocaml/odoc#1370)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants