View Issue Details

IDProjectCategoryView StatusLast Update
0000661Cinelerra-GG[All Projects] Featurepublic2024-06-12 13:33
Reportersge Assigned ToPhyllisSmith  
PrioritynormalSeveritytweakReproducibilityalways
Status acknowledgedResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0000661: New latex2html option '-unicase_titles' checks duplication of filenames for HTML pages in case insensitive manner
DescriptionTo produce CGG HTML manual, we execute latex2html with the option -long_titles 5. Latex2html, up to now, examines generated filenames for HTML pages on duplication and, if necessary, adds an incremented number to each detected duplicated name. However, latex2html compares filenames in case sensitive manner. If several files appear whose names differ in letter case only, latex2html will treat them as different, and if that files later will be copied to some case insensitive filesystem, such as NTFS or FAT, that files will conflict. Moreover, usually latex2html creates the auto-linked file 'index.html' which under case insensitive filesystems can conflict with the Index page, 'Index.html' which exist in many big document, including CGG manual.

To overcome this, I have added the new option to latex2html: -unicase_titles. With this option latex2html will check filenames for duplication in case insensitive manner (and add incremented digit to the name when necessary). To get this option, either apply the patch latex2html-2024-unicasetitles.diff.gz to some recent latex2html sources and then reinstall them, or perform build of latex2html from its git master tree (Dan Gildea already committed my unicasetitles patch to the git tree).

When having applied this unicasetitles patch, one can translate HTML manual using this new option in addition to all the others, like in the attached 'translate_manual' script (residing under 'manual' git tree). Then, when using the new option, the file 'Index.html' with the Index will be renamed to 'Index2.html' but otherwise work as before.

When the -unicase_titles option will be used, we will need also updated ContextManual.pl script (residing under 'cinelerra5' git tree), because ContextManual.pl used Index.html to search for some keyphrases. The new ContextManual.pl script finds the actual filename for the Index (Index.html, Index2.html, or whatever) automatically from the 'Contents.html' file.

To easily check for existence of filenames which differ only in case, the following shell command can be used:
ls | sort -f | uniq -di
TagsNo tags attached.

Activities

sge

sge

2024-06-12 13:33

reporter   ~0005661

@PhyllisSmith
@Andrea_Paz
Updated ContextManual.pl will work with older versions of the manual and/or translated with older versions of latex2html equally well. It is completely backwards compatible. There is no problem to commit the script into git early.
PhyllisSmith

PhyllisSmith

2024-06-11 21:47

manager   ~0005657

@sge
@Andrea_Paz
ContextManual.pl also was checked into GIT yesterday. Just FYI, because I am trying to implement the latest latex2html files and all of the scripts/tex files on a different laptop with Fedora 39 so I have an alternate/backup spot, I have not successfully tested the "unicase" option yet. Will mark as resolved after I get it working (missing installed packages or other stuff).
sge

sge

2024-06-01 05:12

reporter   ~0005647

Just to remember, ContextManual.pl, when invoked first time, copies itself into ~/.bcast5 to allow user's customizations. On upgrading, newer versions of ContextManual.pl compare their API version number ($cin_cm_api in the very beginning of the script) with that copied earlier into ~/.bcast5 and make update there if this version number gets incremented (the older copy, possibly modified by the user, gets renamed with the .bak suffix).

As the updated ContextManual.pl version suggested here expects that Index.html can be named differently now, this is the reason to induce its update in ~/.bcast5. Therefore the API version number has been incremented in the updated script, $cin_cm_api = 2; - just for information.
PhyllisSmith

PhyllisSmith

2024-05-31 18:18

manager   ~0005646

@sge
Will check this later today. With the new release today, the duplicate lower/upper case problem that still existed on the website since February 29 should be ameliorated. Although I had fixed this on my local computer, it was not propagated to the website in order to maintain synchronization of the release Manual/files/source and binary images to Feb. 29.
sge

sge

2024-05-31 16:12

reporter  

latex2html-2024-unicasetitles.diff.gz (2,736 bytes)
translate_manual (1,949 bytes)
#!/bin/sh

# First build PDF version, 3 times to be completely sure.
# The various auxiliary files will be needed later.

pdflatex CinelerraGG_Manual.tex
makeindex CinelerraGG_Manual.idx
makeindex CinelerraGG_Manual.nlo -s nomencl.ist -o CinelerraGG_Manual.nls
pdflatex CinelerraGG_Manual.tex
makeindex CinelerraGG_Manual.idx
pdflatex CinelerraGG_Manual.tex

# Now build HTML version, using auxiliary files created by pdflatex.

# Clean the future HTML directory
rm -rf CinelerraGG_Manual

# Ensure creating the important settings file
if [ ! -f .latex2html-init ]
then
    cp latex2html-init .latex2html-init
fi

# When translating manual for context help, don't use -show_section_numbers !
# And do use -split +3 -link 3 -nofootnode and -local_icons.
# -use_dvipng, -image_type and -bottom_navigation can be used
# according to your preferences.

# translate document (GIF images generated via gs, good for debugging)
#latex2html -html_version 4.0,math -use_pdftex -nouse_dvipng -image_type gif -nofootnode -show_section_numbers -split +3 -link 3 -bottom_navigation -local_icons -t 'Cinelerra-GG Infinity' CinelerraGG_Manual.tex

# another alternative options combination (PNG images, nicer look)
#latex2html -html_version 4.0,math -use_pdftex -use_dvipng -image_type png -nofootnode -show_section_numbers -split +3 -link 3 -bottom_navigation -local_icons -t 'Cinelerra-GG Infinity' CinelerraGG_Manual.tex

# Alternative currently used on the cinelerra-gg.org website / created on a Fedora system
latex2html -html_version 4.0,math -use_pdftex -nouse_dvipng -long_titles 5 -unicase_titles -image_type gif -nofootnode -split +3 -link 3 -bottom_navigation -local_icons -t 'CinelerraGG_Manual' CinelerraGG_Manual.tex

# This single image has to be copied explicitly
cp images/cin-big.png CinelerraGG_Manual

# Clean temporary files in the HTML directory
rm -f CinelerraGG_Manual/WARNINGS
rm -f CinelerraGG_Manual/*.pl
rm -f CinelerraGG_Manual/images*
translate_manual (1,949 bytes)
ContextManual.pl (9,191 bytes)

Issue History

Date Modified Username Field Change
2024-05-31 16:12 sge New Issue
2024-05-31 16:12 sge File Added: latex2html-2024-unicasetitles.diff.gz
2024-05-31 16:12 sge File Added: translate_manual
2024-05-31 16:12 sge File Added: ContextManual.pl
2024-05-31 18:18 PhyllisSmith Assigned To => PhyllisSmith
2024-05-31 18:18 PhyllisSmith Status new => acknowledged
2024-05-31 18:18 PhyllisSmith Note Added: 0005646
2024-06-01 05:12 sge Note Added: 0005647
2024-06-11 21:47 PhyllisSmith Note Added: 0005657
2024-06-12 13:33 sge Note Added: 0005661