| This is the todo list for GNU Texinfo. | |
| If you are interested in working on any of these, email bug-texinfo@gnu.org. | |
| Copyright 1992-2026 Free Software Foundation. | |
| Copying and distribution of this file, with or without modification, | |
| are permitted in any medium without royalty provided the copyright | |
| notice and this notice are preserved. | |
| * Language: | |
| - tagging system for definitions - (Robert Dodier for Maxima, | |
| https://lists.gnu.org/archive/html/help-texinfo/2021-12/msg00012.html) | |
| - generalize @vtable/@ftable to any defined index. | |
| - user-defined macros cannot be used as argument to @table or @itemize. | |
| Add specific macro commands, @highlightingmacro and @glyphmacro? Or | |
| accept one arg macro on @table line and no arg macro on @itemize line? | |
| - @mergeindex to do @syn*index without changing fonts. | |
| - multicolumn * width to take up `the rest'. | |
| - Allow @hsep/@vsep at @item, instead of just in template. | |
| - another table command to take N succeeding items and split them | |
| into M columns (see eplain). | |
| - support bibliographies with BibTeX (see web2c/doc for kludge prototype). | |
| - Support automatic line numbering of examples. | |
| - Glossary/general definition support (dumas msg 28 Nov 2003 17:09:57 +0100). | |
| https://lists.gnu.org/archive/html/bug-texinfo/2003-11/msg00092.html | |
| An issue with the proposal is that glossary definitions could be quite | |
| long and not suitable for an optional argument. | |
| - related to the @documentinfo command, add more metadata: | |
| * short information on licence (shorter than @copying), stating the | |
| licence only, with an @-command? | |
| * a date corresponding to the modification of the Texinfo manual (what is | |
| currectly set with automake and accessible as @value{UPDATED}), | |
| with default set with the modification timestamp of the main texinfo | |
| file (or the newest for the main and all @include'd files); | |
| could be the "created" term in Dublin Core. | |
| - unique identifiers/way to disambiguate manuals with the same name? | |
| - reflection on guide/topic document structure and pluggable content | |
| for extensible documents (Mallard format ideas) | |
| - to be discussed tabs or similar when documenting code for different | |
| languages such that the user is probably only interested by one only | |
| https://sphinx-tabs.readthedocs.io/en/latest/ | |
| example: | |
| https://developer.gnome.org/documentation/tutorials/beginners/getting_started/content_view.html#bind-the-text-view-in-the-source-code | |
| - there are no "shadow" targets for @heading commands not already associated | |
| to a @node. This was done on purpose when designing the "shadow" targets | |
| feature, as the change was big enough. Also requiring explicit @node for | |
| @heading may be better for flexibility. This decision may be rediscussed in | |
| the future. | |
| * texi2any: | |
| - HTML: support thumbnails. | |
| - HTML: have a library of different CSS styles. | |
| http://mail.gnu.org/archive/html/bug-texinfo/2004-01/msg00025.html | |
| - Support output formats retaining the tree structure of Texinfo documents | |
| as parsed by the Parser. A lisp-like format for GUILE? Maybe JSON? XML? | |
| - Support other graphical documentation browsers like GNOME Manuals | |
| - could need to wait for a specification of the DevHelp2 XML file | |
| format, which is not documented. | |
| There was an early discussion in 2015. The *.devhelp format at that time | |
| was the first devhelp file format, now obsolete: | |
| (https://lists.gnu.org/archive/html/bug-texinfo/2015-03/msg00041.html) | |
| - Support the MediaWiki output format. | |
| - LaTeX: customization and internationalization. | |
| - Info: render math as png and include as an image. Using LaTeX preview | |
| package and dvipng could be the best option. Rahguzar for SageMath | |
| (https://lists.gnu.org/archive/html/help-texinfo/2024-08/msg00001.html) | |
| This is implemented, questions/issues that remains: | |
| * add to NEWS and documentation | |
| * images are not well scaled, need probably to add information on | |
| scale to be used by Emacs. | |
| https://lists.gnu.org/archive/html/emacs-devel/2025-01/msg00339.html | |
| https://lists.gnu.org/archive/html/emacs-devel/2025-02/msg00089.html | |
| - adding image for the Texinfo manual | |
| https://lists.gnu.org/archive/html/help-texinfo/2020-11/msg00154.html | |
| - Tests: reference test files should have LF end of lines only. | |
| Native end of lines are output for text-based output formats (most | |
| formats except Info). If tests are regenerated using current Perl code | |
| (in tta/perl/t/test_utils.pl) and cp (in tta/tests/run_parser_all.sh) | |
| on platforms where CRLF are output (such as Windows), the newly | |
| regenerated reference files will not have LF end of lines anymore. | |
| This task could be handled by developpers on platforms where CRLF are | |
| output. | |
| * TeX: | |
| - Index above @item allows page break. | |
| - @float captions should be typeset in a smaller font? | |
| - Reset the scriptfonts and scriptscriptfonts when font size changes. | |
| - Reasonable way to change fonts from the default (some work has been | |
| done), to allow for PostScript fonts, for example. | |
| - @multitable: handle @hsep and @vsep. | |
| - @multitable: repeat table headings if multiple pages long. | |
| - @multitable: support a heading line concept (<thead> in HTML). | |
| - Introduce new command to change \bindingoffset. | |
| - Include synctex support. | |
| - Include hyperlink \special's in the DVI output for xdvi, etc. | |
| - clear out support for \ as the index file escape character (instead | |
| of @). | |
| - some issue with image file set with @value? | |
| https://lists.gnu.org/archive/html/help-texinfo/2020-11/msg00116.html | |
| * texindex: | |
| - check if messages are translated via po/POTFILES.in. | |
| * Doc: | |
| - Verify/proofread Documentation of the HTML customization. | |
| * Info: | |
| - If K is describe-key, K M-left changes the node as M-left is | |
| analysed as multiple keys | |
| - unnecessary screen redrawing when scroll-last-node=Stop and you | |
| try to scroll at the bottom of the last node | |
| - a line continuation backslash sometimes flickers when moving a cursor | |
| - Perhaps comply with LANGUAGE setting on a per-node basis, to allow | |
| incremental translation of Texinfo files. | |
| - Display images when running under X, as Emacs 22+ can. | |
| - Handle M-n, C-u m, and C-u g like Emacs Info (opening new windows). | |
| - Index markers are generated since 2004, Texinfo 4.7. Remove code | |
| supporting absent index markers when enough time has passed. | |
| * install-info: | |
| - install-info --dir-file=dir2 --entry=info foo.info installs garbage | |
| from the misformatted --entry (and no entries from foo.info). | |
| - support info dir entries for other than the current info file name; | |
| see comments in menu_item_equal. | |
| * Distribution: | |
| - generate txi-??.tex from .po's to make translators' jobs easier. | |
| From Akim and Karl E. | |
| - use SHELL more to make sure that it is possible to customize the shell | |
| used for building and testing. | |
| * Other | |
| - Improve support for translated manuals. Some references to discussions. | |
| Better support for Texinfo in po4a using the Perl SWIG interface | |
| should provide with some parts described in those discussions. | |
| https://lists.gnu.org/archive/html/bug-texinfo/2008-07/msg00005.html | |
| https://lists.gnu.org/archive/html/bug-texinfo/2008-07/msg00022.html | |
| https://lists.gnu.org/archive/html/bug-texinfo/2014-09/msg00002.html | |
| https://lists.gnu.org/archive/html/bug-texinfo/2014-09/msg00010.html | |
| https://lists.gnu.org/archive/html/bug-texinfo/2025-02/msg00079.html | |
| https://lists.gnu.org/archive/html/bug-texinfo/2025-02/msg00080.html | |
| https://lists.gnu.org/archive/html/bug-texinfo/2025-05/msg00008.html | |
| https://lists.gnu.org/archive/html/help-texinfo/2024-01/msg00009.html | |
| https://lists.gnu.org/archive/html/help-texinfo/2024-01/msg00057.html | |
| gnulib/build-aux/gendocs.sh is not internationalized. | |
| The subject of copyright assignement in the GNU project is covered: | |
| https://www.gnu.org/prep/maintain/maintain.html#Copyright-Papers-1 | |
| There could be something about manual translations in | |
| https://www.gnu.org/prep/standards/standards.html#Documenting-Programs | |
| https://www.gnu.org/prep/maintain/maintain.html#Manuals-on-Web-Pages-1 | |
| The manuals page has translations, but it is not clear if a translated | |
| page points to translated manuals (there may not be any...): | |
| https://www.gnu.org/manual/manual.en.html | |
| Propose to GNU Hello to have translations of the manual? | |
| - Info format - Get Emacs to support : in index entries by changing | |
| the interpretation of index nodes slightly. See | |
| https://lists.gnu.org/archive/html/bug-gnu-emacs/2019-01/msg00235.html | |
| - Process Texinfo files directly instead of converting to other formats. | |
| There is no plan to process Texinfo files directly in the Texinfo | |
| project, only to convert to output formats. New output formats | |
| representing the Texinfo input could be output if useful. | |
| There is an experimental SWIG interface optionally built around the | |
| C Parser, Reader and Document structuring code that could be used by | |
| external projects if it becomes stable. | |
| *********************************************************************** | |
| After next release: | |
| * texi2any: | |
| Remove TEXINFO_DTD_VERSION and TXI_MARKUP_NO_SECTION_EXTENT customization | |
| variables completely from texi2any and from txivarcheck (leave at least | |
| for one release after X.Y). | |
| * texi2any, Texinfo TeX: | |
| Remove completely @xml, @ifxml and @ifnotxml (leave at least for a few | |
| releases after X.Y). | |
| * texi2any: | |
| Remove Texinfo XML and Texinfo SXML support (from documentation, tests, | |
| util/txixml2texi.pl, util/texinfo.dtd, tta/maintain/catalog.xml.in, | |
| tta/maintain/check_back_xml_forth_texi_t.sh) (leave at least for a | |
| few releases after X.Y). | |
| Decide at that time if the Perl modules in Example and the formats in | |
| texi2any formats_table should be removed. | |
| * texi2any: | |
| Remove completly insert_nodes_for_sectioning_commands as tree | |
| transformation, in texi2any, in valid transformations names | |
| and transformation flags. Leave the effect for a few releases (for | |
| the sake of outputs other than Info and HTML, for Info and HTML it is | |
| already the default). Leave the name as a valid transformation name | |
| for some more years after X.Y even if it has no effect anymore. | |
| * tta: | |
| The following gnulib modules are only needed for | |
| tta/C/main/unicode-collation, and could be considered for removal | |
| if unicode-collation is not shipped in texinfo: | |
| unictype/property-unified-ideograph uninorm/nfd | |
| uninorm/u32-normalize unistr/u8-to-u32 unistr/u32-strdup | |
| and uchar-h-c23 instead of uchar-h (although it could be more robust) | |
| * texi2any and Info readers: | |
| The standalone Info reader accepts tags different from Ref and Node | |
| since 2025. The "Index" tag added in 2027 to the Info format comes | |
| with the possibility to prepend with "Ref: ^H" to be readable by | |
| standalone Info readers released before 2025. When enough time has | |
| passed since 2025 (20 years?) such that old standalone readers have become | |
| rare enough, texi2any could be adjusted to output the Index tag without | |
| any string prepended. (This could be done by setting _USE_NEW_INFO_TAGS | |
| to 1 in the default case). | |
| When enough time has passed after the date when the prepended string | |
| stopped being output by programs generating Info (20 more years?), | |
| the Info readers could be adjusted to drop support for Index tags with | |
| a prepended string. | |
| *********************************************************************** | |
| * Ideas that will not be implemented: | |
| - Support installation of manuals in different languages, along these lines: | |
| . support a LINGUAS file or variable saying which subdirs LL in the | |
| source to descend into (under doc/). | |
| . within each subdir LL, install the info files into $infodir/LL, | |
| and run install-info on $infodir/LL/dir. | |
| . info (both emacs and standalone) should read $infodir/$LANG/dir | |
| as the first dir file, and likewise read info files first from | |
| $infodir/$LANG, before falling back to $infodir. | |
| . consider ways to avoid installing images in both places. | |
| In fact, images probably need to be installed in a subdir | |
| $infodir/MANUAL/ in the first place, to avoid conflicts of having | |
| the same image name in different manuals. | |
| For a test case, see texinfo cvs, with its one translated manual | |
| (info-fr.texi). | |
| From Wojciech Polak. | |
| This is only one possibility, and should not necessarily need a | |
| change to the info readers, changing installation and INFOPATH | |
| could be enough. There is another often used possibility, naming | |
| manuals with a suffix for the language. | |
| - Call Ghostscript to get ASCII/jpg output for the @image command. | |
| [makeinfo should not try to be make, or assume it knows how the user | |
| wants to generate images. Too many different methods are possible.] | |
| - Get Info declared as a MIME Content-Type, and an `info:' URI scheme; | |
| A library consortium had an URI scheme for a completely different | |
| purpose than info documentation accepted: | |
| https://datatracker.ietf.org/doc/html/rfc4452 | |
| There is mail about this in the bug-texinfo archives: | |
| http://mail.gnu.org/archive/html/bug-texinfo/2003-09/msg00086.html | |
| However, the registration of those URI and the use of those URI is | |
| discontinued since 2010: | |
| https://en.wikipedia.org/wiki/Info_URI_scheme | |
| Meanwhile the use of info: in free softwares is still documented in | |
| man uri. | |
| - Change bars. This is difficult or impossible in TeX, | |
| unfortunately. To do it right requires device driver support. | |
| wdiff or ediff may be all we can do. Merely specifying what should be | |
| changed is not obvious. texdiff (http://www.robmar.net/TexDiff) does | |
| something reasonable for LaTeX, maybe it can be adapted. | |
| - @else for the @if... conditionals. Using (for example) an @iftex block | |
| followed by an @ifnottex block is good enough. | |
| - A running view mode in Info, to display the next node after the end of the | |
| last one, and be able to toggle display of a node's subnodes. | |
| [Too hard to implement because of how much code assumes | |
| that only one node is in a window at once.] | |