Shareware but worth every one of its few pennies. Windows only, produced by a Canadian author for several years now. Optimised for LaTeX but can be used for many other text formats (e.g. I am editing this html file in WinEdt). Very powerful if you want it to be, reasonably easy to use if you just need to keep it simple. The beauty of LaTeX editing made this the killer application for Windows for me otherwise I'm sure I'd be running Linux. Good search and replace, especially if you use the regular search when trying to search for line breaks etc. Any sort of text file format (Unix vs Windows vs Mac end of line format), any sort of line wrapping methods etc etc all allowed for. These text file format variations can be confusing but that reflects the confusing options in the real world. The help files on this topic are worth reading if you are having generic text file problems. Within WinEdt it is a matter of a couple of clicks to switch between these options so simple way of converting text files between different formats. As its Canadian authored, the British English spelling option is useful for me, but many languages seem to be supported. My suggestion on how to download and install WinEdt with LaTeX are below.
Note that some versions of winedt have a problems with newer versions of the pdf reader Adobe (or Acrobat) Reader. This is because the name of the programme from Adobe changes with version. The solution is simple. Typically the problem occurs when winedt tries to produce a new version of a pdf file and has to open and close windows of a file that is already being viewed. It does this through its own macros (.edt files) which have to have the correct name of the programme used to view the files. In response to the error, Winedt, brings up the relevant macro file and line on the screen. So all you have to do is change the problem line. I found that I had to change acroview to acroviewR10 in a couple of lines. For instance the first line I was pointed to was in PDFCloseDoc.edt where the line
DDEOpen('%$("PDF-View")',"acroview","control");had to be changed to
DDEOpen('%$("PDF-View")',"acroviewR10","control");In WinEDT version 6 with Adobe Reader 11, in PDFCloseDoc.edt comment out the existing line and adding a similar line as above. My file now reads
// DDEOpen("%$('PDF-View')","%$('Acro-DDE_Service');","%$('Acro-DDE_Topic');"); DDEOpen('%$("AcroRead")',"AcroviewR11","control");It seems to work.
Open source, java based so multi-platform and can import most of the bibliography formats produced from journals and other web sites. Based on BibTeX so the core file is a simple text file. Will interface with common editors and web based systems.
I use
[auth1_1][auth1_2][auth1_3][auth1_4][auth1_5][auth1_6][auth1_7][auth1_8][auth1_9][shortyear]as the bibtex key generator default pattern (under preferences).
Cross platform, open source and free. Excellent with java. Tricky to set up for C++ on Windows but you can then be sure you get cross platform C++ code. I have real problems getting MS Visual Studio to work and then to produce cross platform code. Notes on cross platform code and on programming under Windows are below.
For example I use the following command line where
%CMDZIP% -u -r -p %BKUPDIR%\texres.zip %DOCDIR%\RESEARCH\*.tex %DOCDIR%\RESEARCH\*.bib -x%DOCDIR%\temp\*.* -x%DOCDIR%\ATTACH\*.*To backup files changed after a certain data the batch fiel takes one argument, the
%CMDZIP% -u -r -p -tf%1 %BKUPDIR%\texres%1.zip %DOCDIR%\RESEARCH\*.tex %DOCDIR%\RESEARCH\*.bib -x%DOCDIR%\temp\*.* -x%DOCDIR%\ATTACH\*.*
These are my recommendations for installing LaTeX. See Tim Evans' tips on the use of LaTeX for bits and pieces on how to use LaTeX independent of the operating system you use.
It helps to know if you have 32 or 64 bit windows. It tells you this under control panel -> system where mine says System Type: 64 bit Operating system. If in doubt 32 bit versions should always work.
Next download the programmes you need. In each case google (programme name) download should find the page you need. I suggest you do this in the following order but it may not be essential. In each case the installation these days is relatively simple. If the files names have a 32 or 64 in them this indicates which version of Windows it is for. If you want to live without postscript (I tend to use pdf nowerdays) then the first two programmes are not needed. Personally I still find I use postscript from time to time (for figures in particular) so you may as well get them.
Look for Microsoft Windows self-extracting EXE. Choose 32 or 64 bit version as needed. Run file.
Look for Microsoft Windows self-extracting EXE. Choose 32 or 64 bit version as needed. Run file.
I suggest you use the MiKTeX Net Installer and follow the instructions on the web page linked near the net installer. Note this can be extremely slow (about one hour) to install. The actual download is large but its relatively quick these days. Most of the installation time is spent creating fonts and stuff. You will also then find the first few times you run LaTeX it may well go off and install extra packages or construct more fonts. I would not use the 64 bit option while it is experimental.
Installs simply. The licence for an individual is such a small part of the cost of your computer I would pay this and its not very useable if you do not. was well worth it. More comments on WinEdt are above.
On Windows to get a copy of the screen press alt+Print Screen key. Pressing cntrl+alt+Print Screen gives the active Window.
A good way to produce pdf files from any Windows application is to use the PrimoPDF converter which is free for single person use (company offers more solutions for developers, servers, etc). It appears as a printer so should work from most applications and it does not appear to change the appearance. Remember to change the paper size to A4 under the advanced settings of the printer properties. There is also a PrimoPDF online version you can use from a web site. An alternative is PDF4free but this adds a line with its name to each pdf page.
A useful resource is the Microsoft Batch File documentation. Remember that variable names on the command line are %A but are %%A in a batch file. Changes examp.es below as needed.
Files ending in
To run a batch file from another batch file and to continue to the next line even when the called bacth file has finished, use
call batchfile.bat arg1 arg2
To search through files use the following (here the batch file compdir is called with an argument)
for /f %%f in (walkn*) do compdir %%f
To search through directories in a batch file use the following (here the batch file compdir is called with an argument)
for /d %%f in (walkn*) do compdir %%f
You can use these commands on the command line but must change the variable names. For example
for %f in (*.txt) do copy %f %~nf.datwill rename all *.txt files in the current directory to have dat extensions.
You can extract various information from a file name. Consider the example above
for /f %%f in (walkn*) do compdir %%fIn the compdir batch file you can extract the following from the first argument %1 as follows:-
for /R %f in (*.txt) do echo %~pnfwill give full path name except for the drive and extension.
This full list of expressions came from Batch: Remove file extension page on stackoverflow.
Variable with modifier Description %~I Expands %I which removes any surrounding quotation marks (""). %~fI Expands %I to a fully qualified path name. %~dI Expands %I to a drive letter only. %~pI Expands %I to a path only. %~nI Expands %I to a file name only. %~xI Expands %I to a file extension only. %~sI Expands path to contain short names only. %~aI Expands %I to the file attributes of file. %~tI Expands %I to the date and time of file. %~zI Expands %I to the size of file. %~$PATH:I Searches the directories listed in the PATH environment variable and expands %I to the fully qualified name of the first one found. If the environment variable name is not defined or the file is not found by the search, this modifier expands to the empty string.
@echo off @echo Setting General Environment Variables set TODAY=%date:~-4,4%%date:~-7,2%%date:~0,2% @echo Computer is %COMPUTERNAME% today is %TODAY% if "%COMPUTERNAME%"=="PH-TIME-PC" goto phtimepc :labelunknown @echo *** Computer %COMPUTERNAME% is unknown in setenv.bat :labelstd @echo Standard Default Values Being Used set CMDZIP=c:\PROGRA~1\winzip\wzzip set DOCDIR=c:\DOC set path=%path%;C:\Program Files\Java\jre1.6.0_03\bin goto labelend :phtimepc @echo Values for PH-TIME-PC being Used set CMDZIP=%ProgramFiles(X86)%\winzip\wzzip set DOCDIR=%USERPROFILE%\Documents set path=%path%;C:\Program Files\Java\jre1.6.0_03\bin goto labelend :labelend set GPBKDIR=%DOCDIR%\RESEARCH\gpbk set UNIBKDIR=%DOCDIR%\TEACHING\pg\UNI\unibk @echo Finished setting General Environment Variables
dir c:\doc\file*.txt /sfinds all the file*.txt files in the c:\doc directory and its subdirectories (the /s switch makes it look in all the subdirectories). Type help dir for more options.
rmdir c:\temp /s
attrib -r *.* /s /d
programme.bat SomeParameters > StandardOutput.txt 2> StandardError.txtSee the Windows product documentation for information on this, found via google.
Go to My Computer - Properties - Advanced - Environment Variables. Then add the required environment variable as required. For instance see the GIMP example below.
Use the
In a batch file surround the environment variable name by percentage signs to use. Sometimes quotes are needed. For examples see:-
set TODAY=%date:~-4,4%%date:~-7,2%%date:~0,2%
@echo Computer is %COMPUTERNAME%
robocopy %DOCDIR%\RESEARCH\gpbk\ "%USERPROFILE%\gpbk\Google Drive" gpbk*.tex gpbk*.bat /r:1 /w:1 /fft /xj /xoHere
For C and C++ I still find the Microsoft Visual Studio too complex. I have found compatibility issues (STL library?) when moving the code to Linux platforms in the past. It is also not a cross platform IDE though there is a free cut down version. So I use the Gnu Compiler collection and GCC for this. To install on Windows has been tricky though I hope it is better - see below.
For FORTRAN the GNU route that produces GCC provides a free compiler. You can usually get it installed at the same time as GCC. Also heavily recommended on the web (but I have not tried it), cheap if not free after 30 days, is the SimplyFortran package which includes an IDE and is based on the same GNU Fortran compiler recommended below. This cuts out all the complications of using Netbeans seen below if you just want Fortran.
To test, try hand linking and compiling the simple Fortran code below. First find out where to put the code which is in the C:\MinGW\msys\1.0\home\USER directory where USER is your Windows user name. In that directory I put the simple Fortran code
PROGRAM FTEST ************************************************************************ * This is a trivial programme * ************************************************************************ REAL RVAR RVAR = -9.807 PRINT *, ' This is -9.807 ', RVAR ENDTo produce an executable I used
gfortran -c -g -o ftest.o ftest.f gfortran -o ftest ftest.owhich produced an ftest.exe file but I'm sure if I read the manual I could decode the meaning of the flags. Type ftest and you should see the programme execute and produce output.
I found that my installation of MinGW (Gnu compilers versions 4.6.1) above worked fine with Netbeans 6.9 provided I altered the paths.
Initially I had a solution that (mostly) works with Netbeans 6.7.1 using MinGW, the make utility MSYS and the gnu debugger gdb. Note that the make utility is not the default one in MinGW so read the instructions on the Netbeans C++ page carefully. The HOWTO Install the MinGW (GCC) Compiler Suite is very useful as are the MinGW and MSYS installation instructions on Martin Rosvall's page.instructions . However I still found the installation did not work properly without more work. I looked in the installation to see where the executables were, e.g. search for gcc.exe. I found them in C:\MinGW\bin. I checked this was in the Windows PATH (system -> advanced settings) environment variable. Harder is finding some of the standard libraries such as the STL, which I found using dir c:\cygwin\vector /s. I found the directories were in C:\MinGW\include\c++\3.4.5. I made sure that these library directories were both in the Netbeans project settings (right click project then select properties) and in the tools - options - c++ - code assistance of Netbeans. Note that there may be separate entries for debug and release modes.
You can also try to get Netbeans working with Cygwin. In the case of Netbeans using the g++ compiler from Cygwin, I found that the paths were not set correctly for the STL of C++. Using dir c:\cygwin\vector /s I found the directories where the STL library files were. I added these to the PATH (system -> advanced settings) as
c:\cygwin\bin;c:\cygwin\lib\gcc\i686-pc-cygwin\3.3.4;C:\cygwin\lib\gcc\i686-pc-cygwin\3.4.4\include\c++;and made sure that the directories also appeared both in the project settings and the tools-options-c++-code assistance of Netbeans. However this seemed to fail for me and I never got this working.
Note that I find that when creating a new C++ project, I need to create the directory first. Netbeans doesn't seem to do this for you complaining that its read only. This can also be due to the problems with read-only flags in Windows, use the attrib command to change them from the command line.
Note that there are two sets of these settings in two different places. One sets up the defaults, one are the values the PC is currently using. The point is the default values are the ones that people will see when they use the printer from their own computer. Thus one can set up three different printers (different queues) all using the same physical printer and even the same drivers underneath but they can have different default settings, e.g. one for economy, one for double sided and one for single sided printing.
Finally note that you will have to change some of the other settings.
Under the printer properties choose the following:- Device Settings Tab
Once installed you need to check the printers can see the server, that the postscript used by modern MACS and Linux boxes is coming through and that the double/single sided options work. You may need to set up postscript driver queues on the server in which case remember to set the paper size and duplex options on in the drivers.
In the following we will assume that the Windows server is winprint, full IP address winprint.tp.ph.ic.ac.uk. In these examples we will attach it to the HP Laserjet 4250 printer on level 6 which has the printer name under Windows (the queue name) hp4250ps . Note that there are other queues but I recommend that on Linux and MACs that you use the postscript queues, those printer queues ending in ps. You may or may not find that the other queues work (they are set up for PCL). The main printer on level 5 is HP Laserjet 4100 (it is not an MFP - multifunction printer) and the queue you need is hp4100ps . It is listed on the same sever winprint. Note that Macs and Linux machines are using similar systems. However the details of how to access these different settings vary from version to version. Look at the different suggestions below as any one may help a Mac or Linux user. The UNIX print services sets up an lpd queue with the same names as Windows shares. In Linux (a live CD version of UBUNTU 7) I found this as follows:- System -> Printer Config -> New Printer Then either type in
lpd://winprint.dept.univ.ac.uk/hp4250psor choose type lpd and point it to the server winprint.dept.univ.ac.uk and then the queue required, e.g. hp4250ps You may have to go into the printer settings and make sure these know it has a duplex unit attached. On a MAC to use the lpd queue try the following:-
For MACs they should be able to work via Appletalk. A trick on modern Macs is to hold down the Option key e.g. while clicking the Add button (in the Printer List window). You get many more advanced options.
A useful command on UNIX is lpstat -u which gives a list of printers.
root\miktex\bin\
4:0L@.7(21cm,0)+1L@.7(21cm,14.85cm),2R@.7(0,29.7cm)+3R@.7(0,14.85cm)Under output, choose copy stdout to printer. And choose the normal double sided queue for printer. Run as whatever, I suppose hidden is best.
1:0,