Ed Sykes writes: > > Hi, > > Just wondering if someone could help on this issue: > > Is there a way to configure LyX so that when I double-click on an area in > Yap it brings me to that line in LyX?
Yes, but you have to use the Cygwin version of LyX. > Right now, when I double-click in Yap, it comes up with: > "MiKTeX Problem Report: > The source file could not be opened because the page contains no source > links." You have to change the LaTeX->DVI converter in Tools->Preferences->Converters to "latex -src-specials $$i". As an alternative to redefining the converter, you can put "\usepackage[active]{srcltx}" in the preamble of the LyX file. Now, in the View->Options menu in yap, under the "Inverse DVI Search" tab, set the path to the batch file lyxeditor.bat below. Enter something like "C:\cygwin\usr\local\bin\lyxeditor.bat %f %l" This 2-line batch file is a wrapper for the lyxeditor.sh bash script which does the real work and that you also find pasted below (put both files in /usr/local/bin and make sure that they are executable). -----8<-----8<----- lyxeditor.bat -----8<-----8<-----8<----- @echo off c:\cygwin\bin\bash /usr/local/bin/lyxeditor.sh %1 %2 -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<----- -----8<-----8<----- lyxeditor.sh -----8<-----8<-----8<----- # Pass filename and line number of a latex file to the lyxpipe of a running # instance of LyX. LyX will jump to the corresponding line in the .lyx file # being previewed in either yap or xdvi. # This script is directly invoked by the dvi viewer when initiating a # reverse dvi search (yap uses double click, xdvi ctrl-click). # When using yap, this script should be called through a wrapper batch file. # Author: Enrico Forestieri. # parse_serverpipe is by Angus Leeming parse_serverpipe() { # The output of this sed script is output to STDOUT LYXPIPE=`sed -n '/^\\\\serverpipe /{ # First consider that the file path may be quoted s/^ *\\\\serverpipe \{1,\}\"\([^"]\{1,\}\)\" *$/\1/ tfound # Now, unquoted s/^ *\\\\serverpipe \{1,\}\(.*\)/\1/ s/ *$// :found # Change from single to double shell quoting temporarily... '" [EMAIL PROTECTED]/@${HOME}/@ # Revert to single shell quotes "' p q }' "$1"` echo "${LYXPIPE}" unset LYXPIPE } LYXPIPE="" for LYXDIR in .lyx .lyx-1.6.0svn .lyx-1.3.7 do PREFERENCES="${HOME}/${LYXDIR}/preferences" test -r "${PREFERENCES}" || continue # See if preferences file contains a \serverpipe entry LYXPIPE=`parse_serverpipe "${PREFERENCES}"` # If it does and $LYXPIPE.in exists, break out of the loop test -n "${LYXPIPE}" -a -r "${LYXPIPE}".in && break || LYXPIPE="" done test -z "${LYXPIPE}" && { # The preferences file does not set lyxpipe, so check lyxrc.dist LYXRC_DIST="/usr/local/share/lyx/lyxrc.dist" test -r "${LYXRC_DIST}" || exit # See if lyxrc.dist contains a \serverpipe entry LYXPIPE=`parse_serverpipe "${LYXRC_DIST}"` # If it does not, or $LYXPIPE.in does not exists, exit test -z "${LYXPIPE}" -o ! -r "${LYXPIPE}".in && exit } # Let's do the job file=`cygpath $1` echo "Using the lyxpipe ${LYXPIPE}" COMMAND="LYXCMD:revdvi:server-goto-file-row:$file $2" echo "$COMMAND" echo "$COMMAND" > "${LYXPIPE}".in || exit read < "${LYXPIPE}".out || exit -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----