Software


I finally decided to put my scripts to use MyriadPro with LaTeX online. While preparing this, fixed some more issues with Myriad and found some with Minion. Also I wanted to use the swash letters of CronosPro with Myriad. So I modified the script to include the support for all three fonts in one repository:

FontPro at GitHub

I think for a lot of purposes this gives reasonable results. My modifications so far:

  • support of MyriadPro: math and text; tuned accent positions of italic roman letters and of italic and upright greek letters; use swash letters of CronosPro as mathcal; loadable with eg MinionPro
  • text only support of CronosPro
  • fixed typo in MinionPro.dtx connected with microtype; take kerning
    information of accents and swash letters into account
    (maybe a change in the LCDF typetools made the last point necessary)

Obviously, there is still work to do. One of the major points is the ability to use the scripts with lcdf typetools > 2.69. Unfortunately, I was not able to identify the cause why the adjust-oml gives an error for the accent positions for the letters eg rho1, beta1, etc for me. It is strange that on some systems there is no problem at all; I was not able to find the difference between these systems…

The major points connected with MyriadPro is the adaptation of MnSymbol for MyriadPro. So far, I did not have the time to look at it. In addition, I did not succeed to tune the accent position of upright roman letters in math mode. The UP* information in adjust-oml.mtx seems to be connected to mathnormal… On the other hand, kerning pairs including the german double ss which is meant as the skew character in the setup (and which works with the swash letters of MinionPro) did not have any effect, either…

Furthermore, the swash letters of CronosPro are slightly to small for MyriadPro, so an option to scale the CronosPro (or all fonts that are based on these scripts) would be an nice feature. So far, I was not able to fully understand the font definition part in the MinionPro.dtx.

Everyone is invited to try the scripts. Anyone with an idea to solve the mentioned problems is also.

Advertisements

This is my workflow to develop RAW pictures from my Canon 40D. My aim is to keep all RAW files, which allows to repeat the process. To minimize repeated work, I want to tag pictures as early as possible; in the RAW converter in my case.

  1. Download the pictures from the camera. This is done by the following script. It put the pictures under $FOLDER/yyyymm/yyyymmdd/yyyymmdd-hhmmss-XX where XX is a counter for pictures with the exact same time including seconds. Furthermore, it creates a hard link of the files also in $FOLDER/backup/yyyymm/yyyymmdd/ so files can be deleted and still a backup is available, which does not take any additional space. These backup files can be deleted from time to time. Update: The renaming options in digikam have increased since I wrote that script, so you can also use digikam for that (except the simple backup mechanism).
    #!/bin/bash
    
    extension=CR2
    FOLDER=/home/sebschub/Dokumente/Bilder/RAW
    
    extensionLC=`echo $extension | tr "[:upper:]" "[:lower:]"`
    
    echo Getting RAW files from camera
    
    mkdir $FOLDER/temp
    cd $FOLDER/temp
    
    echo Temporary saving to $FOLDER/temp
    
    gphoto2 --get-all-raw-data
    
    for i in *.$extensionLC; do
        # Datum fuer Dateinamen
        date_stamp=`exiftool -DateTimeOriginal -d "%Y%m%d-%H%M%S" $i`
        yyyymmdd_hhmmss=$(expr substr "`echo $date_stamp`" 22 36)
    
        # Datum fuer Verzeichnisse mit Bindestrichen
        date_stamp=`exiftool -DateTimeOriginal -d "%Y-%m-%d" $i`
        yyyymmdd=$(expr substr "`echo $date_stamp`" 22 32)
        yyyymm=$(expr substr "`echo $yyyymmdd$`" 1 7)
    
        mkdir -p ../$yyyymm/$yyyymmdd
        mkdir -p ../backup/$yyyymm/$yyyymmdd
    
        unique_num=1
        i_renamed="../$yyyymm/$yyyymmdd/$yyyymmdd_hhmmss-`printf "%02i" $unique_num`.$extensionLC"
    
        # falls Datei mit gleichem Datum und Zeit vorhanden sind,
        # unique_num hochzaehlen (zwei Ziffern, aber ne cam mit mehr als
        # 99 fps waer schon geil ;)
        while [ -e $i_renamed ]; do
    	unique_num=$[$unique_num+1]
    	i_renamed="../$yyyymm/$yyyymmdd/$yyyymmdd_hhmmss-`printf "%02i" $unique_num`.$extensionLC"
        done
    
        mv $i $i_renamed
    
        # hard link als Backup erzeugen, so dass im Hauptordner ohne
        # Probleme geloescht werden kann
    
        i_renamed_backup="../backup/$yyyymm/$yyyymmdd/$yyyymmdd_hhmmss-`printf "%02i" $unique_num`.$extensionLC"
        ln $i_renamed $i_renamed_backup
        echo "$i -> $i_renamed"
    done
    
    cd ..
    
    rmdir $FOLDER/temp
    echo Removing temporary folder $FOLDER/temp
    
    echo FINISHED
    
  2. Geotag pictures. I use geotag for that. Be sure to set it to use xmp files to save that. Just to be sure. Update: Tagging can also be done in digikam, but saving to XMP sidecar files for exchanging information with bibble is not supported yet. There is a wish in the bugtracker, though. Once it is implemented, tagging should be also possible in digikam which, at the moment, would be a lot more convenient that it is in bibble 5.
  3. Use bibble 5 to develop raws. It should have read the geotags automatically. I enter all information of the pictures here, delete not wanted, rate them … At the moment, tagging is not really comfortable but as mentioned I want tags etc as deep as possible in the workflow. I include a tag in all pictures which describe the event of the picture. This tag will be used to sort the jpgs in digikam and on the disk (e.g. Event; Birthday Peter 36th). Finally, the generated jpgs are put in a temporary folder.
  4. Sort pictures using the Event tag. This is done by the following script (the new jpgs are arguments of that script). Update: I fixed a bug of a not removed ‘,’ at the end of the folder and decided to sort pictures like $YEAR/$DATE event.:
    #!/bin/bash 
    
    SORTTAG="Ereignis"
    SEP="|"
    
    TARGET="/home/sebschub/Dokumente/Bilder/Sammlung"
    
    
    MVARG="-v"
    INTERACTIVE="true"
    SUCCESS="true"
    while :; do case "$1" in
    	--help)
    	    echo "Usage: `basename $0` [-f] file1.jpg [file2.jpg...]" >&2
    	    exit 0
    	    ;;
    	-f)
    	    INTERACTIVE="false"
    	    shift 1
    	    ;;
    	"")      # No more args - done
                break
                ;;
    	*)
    	    i="$1"
    	    shift 1
    	    if [[ $INTERACTIVE == "true" ]]; then
    		MVARG="$MVARG -i"
    		INTERACTIVE="false"
    	    fi
    	    case $i in
    		*.jpg|*.JPG|*.jpeg|*.JPEG)
    		    # get date and year only
    		    date_stamp=`exiftool -DateTimeOriginal -d "%Y-%m-%d" $i`
    		    yyyymmdd=$(expr substr "`echo $date_stamp`" 22 33)
    		    yyyy=$(expr substr "`echo $yyyymmdd`" 1 4)
            # get HierarchicalSubject with (at least) $SORTTAG beginning with either ": " or ", "
    		    temp=`exiftool -HierarchicalSubject $i | \
    			grep --only-matching --color=never -e "\(, \|: \)$SORTTAG.*"`
    		    end=$(expr length "`echo $temp`")
        # remove the two beginning characters and Ereignis|
    		    temp=$(expr substr "`echo $temp`" 12 $end)
        # if "," still in string remove rest
    		    end=$(expr index "`echo $temp`" ,)
    		    if [ $end -ne 0 ]; then
    			end=$[$end-1]
    			temp=$(expr substr "`echo $temp`" 1 $end)
    		    fi
    		    echo "Ereignis: $temp"
    		    folder=`echo $temp | sed -e 's?/?_?g' -e 's?|?/?g'`
    		    folder="$TARGET/$yyyy/$yyyymmdd $folder"
    		    
    		    mkdir -p "$folder"
    		    mv $MVARG  $i "$folder/$i"
    		    ;;
    		*)
    		    echo "$i is (probably) no jpeg, canceling"
    		    SUCCESS="false"
    		    break
    		    ;;
    	    esac
    	    if [[ $SUCCESS == "false" ]]; then
    		break
    	    fi
    	    ;;
        esac done
        
        echo FINISHED
  5. Use digikam to view the pictures. digikam should import all the pictures. There is some minor information that is not read correctly (or saved correctly by bibble?) but most of the things just work.

If I ever have to change a tag or information, I go back to step 3. The script of 4 does the sorting automatically. In digikam, I do a Reread Metadata from Image(s).

LOL Emacs rocks!

While writing my thesis I found a problem of the nomencl package in conjunction with the KOMA-Script classes: the header is not changed from the one which is used in the section before the nomenclature section. A simple change of \thenomenclature works. Just add the following into the preamble:

\makeatletter
\def\thenomenclature{%
  \@ifundefined{addsec}%
  {
    \@ifundefined{chapter}%
    {
      \section*{\nomname}
      \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
    }%
    {
      \chapter*{\nomname}
      \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
    }%
  }%
  {
    \@ifundefined{addchap}%
    {
      \if@intoc\addsec{\nomname}\else\addsec*{\nomname}\fi%
    }%
    {
      \if@intoc\addchap{\nomname}\else\addchap*{\nomname}\fi%
    }%
  }%
  \nompreamble
  \list{}{%
    \labelwidth\nom@tempdim
    \leftmargin\labelwidth
    \advance\leftmargin\labelsep
    \itemsep\nomitemsep
    \let\makelabel\nomlabel}}
\makeatother 

Update: I posted the scripts online. More information here.

As I need a sans serif font for my diploma thesis which offers math symbols and features like old-style numbers, I decided I need support for MyriadPro, the only sans serif font I own which fulfills my requirements. There already is a package, which AFAIK only supports the very basic fonts regular, bold, italic, bold italic and no math. However, there is a very feature-rich MinionPro support package for LaTeX so I tried to change its sources to work with MyriadPro. Here the result: testmath.tex using MyriadPro. It looks quite nice for a fast hack IMHO. In addition to change the converting scripts, I adjusted all functions in the .sty file so the MinionPro package can be loaded together with MyriadPro.

But there are still a lot of changes needed to have a really complete package. The math symbols of MnSymbol and the integral signs have to be adjusted, the .sty file has to be reduced and maybe some fonts added, … So it is still some work and these are things I mostly don’t know anything of and — this is probably more important — so far I have everything I really need. Additionally, a thesis does not write itself so my time is limited. It is ready when it is ready. If you do not want to redo the work I’ve done so far, just write a comment and I maybe send you the source files. ;)

Some days ago the new version 2.3 of xindy was released. “xindy is an index processor that can be used to generate book-like indexes for arbitrary document-preparation systems. This includes systems such as TeX and LaTeX, the roff-family, SGML/XML-based systems (e.g., HTML) that process some kind of text and generate indexing information.” It has several advantages compare to MakeIndex like better internationalization and customizability. In the new version it is possible to use an external clisp compiler, although I was not able to do it successfully. There is an error in the configure script, one has to add enable to the clisp path and exectable changing options (eg --enable-clisp-dir=/usr/lib64/clisp).

I added an ebuild to Gentoo Bugzilla.

This time I write about my new keyboard: the cherry evolution stream. I primarily decided to buy a new one because I wanted to switch to the US layout, which has it’s advantages when coding or just because I am used to write with the US layout at university. I bought it at keybo.de where it is possible to get almost every possible layout, they sent it very fast and payment was possible via bill so I can recommend that shop.

So far I have no problems with the keyboard, I quite like it. I plugged it into the keyboard PS/2 port (is there an advantage of using an USB port?) and it worked out of the box under linux. I use just the standard xorg kdb driver for X:
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection

although even auto-detection in never xorg versions should work. Only the multimedia buttons do not work without additional configuration but I did not expect that, where would be the fun? ;) So it was a rather easy task to get all the keycodes using xev and combine them with the appropriate actions. Add
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 144 = XF86AudioPrev
keycode 162 = XF86AudioPlay
keycode 153 = XF86AudioNext

to your .Xmodmap file (or wherever you thinks it’s best) and … run it through xmodmap:
xmodmap .Xmodmap .
To use the volume buttons you may want to install kmilo under kde.

Next Page »