TeXShop Changes 4.12
- Many TeXShop macros stopped worked on Mojave. These macros use AppleTalk and AppleEvents to communicate with other programs. Apple has sandboxed AppleEvents in Mojave for security reasons.
Now before such interaction is allowed, a dialog appears explaining what is about to happen, and giving the user the opportunity to allow or forbid the interaction. This dialog contains the line
"TeXShop uses Apple Events to process AppleTalk scripts in the Macro Editor". This line is defined in a new element in the Info.plist file, which was absent in earlier versions of TeXShop, is present in version 4.12, and is required before sandboxed AppleEvents can be sent.
- Two users have pointed out that the preference item "Flash Back for Isolated Parens", in the second column under the Editor tab of TeXShop Preferences, breaks Dark Mode. Users of Dark Mode should turn this item off.
TeXShop Changes 4.11
Versions 4.08, 4.09, 4.10, 4.11 are closely related, all dealing with Mojave issues. Read all of these
change sections. The main purpose of 4.11 is to fix two Dark Mode problems on Mojave.
Users continue to complain that they cannot magnify source text with a keystroke. This is explained below, but to repeat, users must "Select All" first. So type
command-A command-= command-= etc.
Users also report that all but the first lines of paragraphs are indented. This is also explained below, but to repeat: To remove this feature, open TeXShop Preferences, select the Editor tab, and in the lower right corner change "Remaining Lines Paragraph Indent" from 30 to 0.
- Previously, {, }, and $ were syntax colored, but [, ], & were not. Starting in 4.10, square brackets received the same syntax coloring. In 4.11, & also receives this coloring.
- When users push the "Set" button to change source fonts, a Sample Text window appears showing three sample lines of text. Font, Typeface, and Size changes in the font panel are applied to this sample text until the user presses "OK" in the window. After that, the changes appear in TeXShop source windows. If the user presses "OK" these changes become permanent. If the user pressed "Cancel", these choices revert to their original values.
However, in Dark Mode the text color in the Sample Window changed to white, but the background color remained white and the text became invisible. This is fixed, and reasonable values are selected for both Lite and Dark modes.
- The menu command "Open Macro Editor" opens a window showing an outline view of existing macros and an editing region where these macros can be changed and new macros can be entered.
But in Dark Mode, the outline view had white text on a white background and became invisible. This is fixed, and reasonable values are selected for both Lite and Dark modes.
TeXShop Changes 4.10
- When a blank new document was opened in 4.08 and 4.09, the text was colored black regardless of the chosen Theme. This is fixed.
- Previously, {, }, and $ were syntax colored, but [, ] were not. Now all of these symbols receive the same syntax coloring.
- TeXShop gives a Command Color to symbols beginning with / and continuing with 'a' - 'z' or 'A' - 'Z'. These are the typical commands used by Latex authors.
Latex Macro authors also use '@' in commands. A special hidden preference setting adds those to characters receiving a Command Color:
defaults write TeXShop MakeatletterEnabled YES
Latex3 programmers use '_', ':' and '@' in their commands, so a command begins with / and continues with 'a' - 'z', 'A' - 'Z', '_', ':', or '@'. A special hidden preference setting adds all of these to characters receiving a Command Color. This preference alone is enough; the previous setting is then irrelevant.
defaults write TeXShop expl3SyntaxColoring YES
TeXShop Changes 4.09
This version fixes a bug in the Theme Preference code of TeXShop 4.08. Apple's color picker has several modes, including options to choose colors using CMYK values or gray scale sliders. In version 4.08, TeXShop obtained colors from color wells, and asked these colors for their RGB values without first converting colors in other color spaces to RGB. Fixed.
In TeXShop 4.08 and 4.09, a slight change in the editor requires that users "Select All" before changing fonts or font sizes.
TeXShop Changes 4.08
This version of TeXShop works on Yosemite and above, but has been compiled on Mojave. The main purpose of the release is to fix TeXShop bugs when running on Mojave, and to support Dark Mode there. Here are the key details:
- When previous versions of TeXShop ran on Mojave, several tools in the Source and Preview toolbars were missing. These items could be restored using several tricks, including opening the "Customize Toolbar" dialog. But they would again be missing the next time TeXShop ran.
This bug is fixed in version 4.08. But users who ran an earlier TeXShop on Mojave will have to take one of two actions to restore their tools. The safest is to open a project which has both a source window and a preview window, With the source window active, select the Windows menu item "Customize Toolbar..." and drag the custom set of tools to the toolbar. Repeat this operation with the preview window active. Then with the source window active, select the Windows menu item "Use One Window." Both source and preview will appear in a single window. With this window active, select the Windows menu "Customize Toolbar..." and drag the custom tools to the single-window toolbar.
Another more drastic way to fix the problem is to make sure TeXShop is not running and throw away ~/Library/Preferences/TeXShop.plist. Then run TeXShop. Tools will reappear. Reset any preference item you may have changed.
- When line numbers were showing on the Source Window in Mojave, the source could scroll by about half an inch in the horizontal direction. Scrolling to the left made the beginnings of line vanish under the line numbers column. Scrolling to the right made half an inch of the source vanish off the right side. This turned out to be a Mojave bug, which Apple fixed in the fifth developer beta.
- Programs must be recompiled on Mojave before they support Dark Mode on that system. When TeXShop was recompiled, the magnifying glass broke, the fix for a "flash after typesetting" broke, and two other features broke. All depended on drawing into an invisible overlay view above the Preview Window.
This drawing code has been revised to work on Mojave, and the revised code also works on earlier systems.
- On Mojave, the "General" preference pane for Apple's System Preferences has the ability to switch between "Light" and "Dark" appearances of the interface. In Dark mode, the toolbars of windows have a dark background, Preference and Print panels have a dark background, and so forth. But Dark Mode does not change the content regions of program displays. So in initial Mojave betas, the TeXShop editor still had black text on a white background, and the TeXShop Preview window still had the standard appearance of typeset output.
Some Apple programs on Mojave change these content regions in Dark Mode and others do not. For instance, Apple's TextEdit shows black text on a white background, but the editor in XCode switches to white text on a dark background. Apple's Preview program continues to show pdf files with their standard appearance, including black text on a white background. This is not surprising since the alternative would be to reach into the pdf file and switch colors on the fly, a more or less hopeless task.
So the question is, what should TeXShop do in Dark Mode? Note that TeXShop has had the ability for many years to change text color and background color in the Editor, the Console, and the Log file. TeX pdf output contains black text on a transparent background, so the underlying paper color shines through when printed. Thus the color of the Preview window can be changed by changing the background color of that window, an ability that has been in TeXShop for some time.
In this version of TeXShop, we allow users to design their own "Dark Mode" for content regions. By default, the editor switches to white text on a black background in Dark Mode, and the Preview window receives a darker glow in that mode. But users can decide to keep the original black on white appearance of these content regions, or design their own color theme.
To make this work, the Preference Panel's color choices have been completely rewritten. There is now a tab called "Themes" devoted to coloring various components of the program. All of the color commands have been moved to this tab. These new color commands work on all systems supported by the program, not just on Mojave. In previous versions of TeXShop, many colors could only be changed using various obscure hidden Preference settings. Now all color choices are available in the Themes tab.
- The Themes portion of Preferences is shown above. On the right are all colors currently set by TeXShop. Some items have an obvious meaning and others are obscure. A full set of such choices is called a "Theme". TeXShop allows users to create as many themes as they like. These themes are listed in three pulldown menus on the left: Lite Mode Theme, Dark Mode Them, Theme to Edit. The first menu sets the theme used on all systems below Mojave, and the theme used in Lite Mode on Mojave. The second menu sets the theme used in Dark Mode on Mojave. The final menu sets the theme which Preferences is currently editing.
TeXShop is shipped with several themes, including "LiteTheme" and "DarkTheme". These are the default themes for Lite Mode and Dark Mode. As explained later, there is a way for users to rename or remove Themes known to TeXShop. But TeXShop will always replace "LiteTheme" and "DarkTheme"
and use them if other required themes are missing.
Gary Gray contributed two themes, GLG-Lite for Lite mode and GLG-Dark for Dark mode. Gray then tweaked GLG-Dark, and ended up with a dark theme that was was so my better than mine that I ended up using it as the default and thus renaming it DarkTheme. So Gray lost credit, but gained users. Thanks.
Two other themes, SolarizedLite and SolarizedDark, appeared first on the internet before Mojave was introduced. The general page by Ethan Schoonover about this design is
https://ethanschoonover.com/solarized/. Specific lite and dark designs were then created in 2012 by "johannesjh":
https://github.com/altercation/solarized/issues/167.
A final theme, which I call Manteuffel, was created in 2016 by Christian Manteuffel based on the design of iA Writer. See
http://christian.manteuffel.info/blog/ia-writer-inspired-theme-for-texshop/
There is no distinction between themes for Lite Mode and themes for Dark Mode. Thus both Lite Mode Theme and Dark Mode Theme could be set to LiteTheme if the user always wants dark text on a white background.
After editing a theme, push "Cancel" or "OK" to end a preference session. If "Cancel" is pressed, the edited colors will not be saved and the Lite Mode and Dark Mode themes will return to choices before opening the Preference Pane. If "OK" is pressed, the edited colors will be saved and Lite Mode and Dark Mode themes will change to their new values.
But some users may want to edit several different themes during a session. When these users are finished editing their first theme, they should press "Save Edited Theme." This will save the changes for that theme permanently, even if the entire session is ended using the "Cancel" button. Repeat the process for other themes.
- To create a new theme, first change "Theme to Edit" to obtain reasonable starting colors for your new theme. Then push "Create New Theme" and fill in the resulting dialog with a title for this threme. Do not use spaces in this title. The new theme will become the "Theme to Edit" and you can begin changing colors.
- You may have set color preferences for TeXShop in previous versions of the program. These color preferences still exist, but they are no longer used by the program. To create a theme using these old preference settings, push "New Theme from Prefs". You'll be asked to name the theme; please do not use spaces in this name.
Some people on the internet developed color themes for TeXShop and made them available as shell scripts which reset various TeXShop color setting preferences. These shell scripts still work, but they no longer affect the appearance of TeXShop. After running such a script, you can use "New Theme from Prefs" to convert the "preference color scheme" to a regular Theme.
- Recall that various TeXShop items which users can customize are set in ~/Library/TeXShop where Library is the Library folder in your home directory. This folder is often hidden in the Finder, but TeXShop has a menu item "Open ~/Library/TeXShop" to take you there. This folder has various subfolders. For example, one of the folders is named Templates. This folder contains the templates that appear in the Templates toolbar item. Each is an ordinary TeX source file. Adding new files to this Templates folder automatically creates new templates.
There is a new folder in ~/Library/TeXShop named "Themes". This folder contains very small ".plist" files describing the various Themes in TeXShop. If you create a theme you like, give it to others by putting its plist file on the Internet. To install a new theme of this kind, just drop its plist form in the Themes folder.
You can also remove Themes you no longer use by removing their plist files from the Themes folder. Avoid removing themes being used for Lite Mode or Dark Mode (although TeXShop should react gracefully when it runs into this situation). As explained earlier, the themes LiteTheme and DarkTheme will be recreated if they are removed.
- When a theme is selected for editing, TeXShop colors will temporarily be reset to those colors. Revising colors is then interactive; as soon as colors change in Preferences, they will also change in TeXShop's Source and Preview windows.
- Most colors at the top of the Preferences dialog are self explanatory. The colors "Invisible Chars, Enclosed Chars, Braces" are used for some features introduced by Yusuke Terada; see the menu item "Show Invisible Characters" and the item "Parens Targets & Highlight Color" in the Source Tab of Preferences, and the items "Show Invisible Characters" and "Parens Matching Settings" in the Editor Tab of Preferences. The items "Image Copy Foreground, Background" refer to features set in the Copy Tab of Preferences.
- Finally, notice that the transparency of the Source, Preview, and Console windows can be set. These settings bring up a full Color Well, but the colors of these items are ignored and only the alpha values of the choices matter. Here "alpha = 1" is the usual value, and smaller values of alpha make the window more transparent.
There are additional features of TeXShop 4.08 that are not related to Mojave:
- The first of these features comes from a bug report by Geoff Pointer. In TeXShop, double clicking on one of {, }, [, ], (, ), or <, > finds the matching symbol and highlights everything in the source between these symbols. Pointer complained that this procedure ignored comments and escaped symbols, so
double clicking } might well select a matching { in code that had been commented out, or a match of the form \{.
These problems are fixed in version 4.08. When selecting a matching symbol, comments and escaped symbols are ignored. And by the way, TeXShop understands that \% does not begin a comment.
TeXShop has another series of methods to deal with such brackets, added to the program by Terada Yusuda. These methods provide immediate feedback as the user is typing. One item flashes the matching bracket as soon as a bracket is typed;
another temporarily highlights the region between matching brackets. One item momentarily flashes the screen if an unmatched bracket is typed. Some users depend on these features, while others find them distracting, so each feature can be turned on or off by preference settings at the top of the right column under the TeXShop Preferences "Editor" tab.
The bug reported by Geoff Pointer also applies to these second methods, and has not been fixed there.
Because these methods are applied in real time during typing, and because they are used in small regions where the user is actively working, efficiency of code seemed more important than global accuracy. At a later time, this decision may be revisited.
- The second of these features was requested by Brian Levine. If text is selected in the TeXShop editor and the selection is longer than two characters, then pressing (, {, (, or $ will enclose the selection in the appropriate brackets. This new behavior can be turned off in TeXShop Preferences by unchecking the item "Editor Can Add Brackets" under the Editor Tab.
- The third feature was requested by Stephen Moye. The print dialog now contains an item to set paper size. Moye works with the AMS using a printer with trays for various paper sizes. Previously he had to select the paper size using "Page Setup" before dealing with the Print Dialog and printing. Now only one dialog is involved instead of two.
When Moye initially requested this feature, I told him that printing is controlled entirely by the underlying Cocoa system, so it would be impossible to fulfill his request. This proved to be not entirely true. Hence the new feature.
I'd like to use this occasion for a short aside. This aside may read like a rant about printers, but in fact its purpose is to explain why application programmers shouldn't have to deal with features of particular printers.
For years I've used a $1000 Color Laserprinter weighing 60 pounds. Recently a gear broke on the printer. It would be easy to fix it except that I couldn't figure out how to get the printer down my stairs and into the car. So I decided to buy a new printer and discovered that Laserprinters now cost $400. The store I visited delivers to the doorstep. But they absolutely, positively refused to deliver on up my stairs, or remove my old printer.
I asked the service representative what printer he'd recommend. He recommended a $79 HP.
This seemed to me like a sort of "bait and switch in reverse," but I had to print, so I bought the $79 machine.
It prints faster than my old printer. The ink doesn't smudge. It has built in internet and was immediately recognized by all my devices. It calls home when it runs out of ink and new ink is delivered to my door, but so far it ran out of ink only once. It scans. It's light and was easy to carry up stairs.
Apparently I was years and years out of date regarding printers, and I have to apologize to all my friends who asked for advice on buying one. (Remember, however, that I printed often when I was teaching, and I print rarely after retiring.)
What has this got to do with TeXShop? Well, TeXShop has essentially no code for handling printers. All of the messy details are handled automatically by Cocoa, Apple, and the printer manufacturers. Imagine what life would be like if programmers had to be involved in that chain. How many printers could we support even if we wanted to?
There are three main interaction points between users and printers. First, printers have their own preference module in Apple's System Preferences where the default page size can be set. This makes sense for most printers, whose paper trays can be configured to hold paper of different sizes, but only one size at a time. Second, the paper size of printers can be changed in "Page Setup", a menu item in TeXShop and most Cocoa programs. And finally, the print dialog handles all sorts of choices, like saving to pdf rather than printing, or many other things.
What is the point of Page Setup? Why is paper size set there? Because many programs use that knowledge to reset the behavior of the program. Should my editor for personal letters be formatted for letter paper? or a4 paper? Aha, Page Setup to the rescue.
However, in TeX, paper size is set by commands in the TeX source or configuration of the entire TeX Distribution. It would make no sense for TeXShop to reach into these sources and change them when Page Setup indicates a new paper size. So the truth is that TeXShop doesn't do anything when the user changes Page Setup. That menu is useless, particularly now that paper size is in the Print Dialog. But I'm keeping it, because otherwise I'd have to answer email questions of the form "where is page setup?"
-
In recent versions of TeXShop, the syntax coloring code is turning off while the source file loads. Therefore, files aren't syntax colored until the user begins moving the mouse. It is possible that this code was added to fix bugs if syntax coloring is started too soon, but experiments suggest that the bug no longer exists. So in version 4.08, files are syntax colored as soon as they are opened. In case of trouble, it is possible to return to the old behavior using a hidden preference:
defaults write TeXShop ColorImmediately NO
- Gary Gray requested that TeXShop start paragraphs flush with the left margin, but indent remaining paragraph lines. TeXShop 4.08 has this feature. Some users are in the habit of inserting line feeds when their source lines approach the right margin; they will not notice any difference. Other users type several lines of source text between line feeds. The resulting "paragraphs" will now be visible for easier scanning.
This feature is controlled by two new preference settings, available under the Edit Tab. The first sets the indent of the initial paragraph line. By default this is set to 0.0. The second sets the indent of the remaining paragraph lines. By default this is set to 30.0.
The item to set the length of tabs has been grouped together with the two above preference settings.
Moreover, one more setting, previously hidden, is available. This setting changes the interline spacing between lines of the source. In particular, users can double space the source text if they desire by changing this value.
The tab length is an integer, and roughly measures the number of letters between tab settings. Thus small values of this setting are reasonable. The entry works even if the edit font is not monospaced.
But the remaining entries for First Line Paragraph Indent, Remaining Lines Paragraph Indent, and Interline Spacing are floating point numbers measured in points in user coordinates. Only limited ranges of these preference settings are allowed, and the Preference dialog will replace unreasonably large or small values by more reasonable maximum and minimum values.
- TeXShop has a preference to select the desired dictionary used by the program. Thus the system wide dictionary can be a standard Apple dictionary, while TeXShop can be configured to use a cocoAspell dictionary which does not count LaTeX commands as misspelled. During the course of preparing TeXShop 4.08, we discovered that this Preference item was disconnected in most localizations. This is fixed. If the setting seemed to affect nothing earlier, please try again.
- Items in the Templates pull-down menu in the toolbar used to be listed sorted alphabetically. Later,
this menu was extended to allow sub-menus, and the sorting feature was lost. It is restored in 4.08.
- Another request from Stephen Moye is to add a preference item forcing TeXShop to place the source window in front of the preview window when opening files. (There is already a preference which causes TeXShop to activate the source window after each typesetting job.) A hidden preference item has been created to do this:
defaults write TeXShop OpenWithSourceInFront YES
This item's behavior is somewhat inconsistent, but users can try it if they wish.
- Many programs on the Mac access the internet. Apple recently required that programs use the https protocol rather than http for this access, due to the added security of https. But programs can opt out of that requirement. TeXShop directly accesses the internet in only two places (although it can use iCloud indirectly via Cocoa): it uses Sparkle for program updates, and it downloads two small movies if the user doesn't have them and asks to see them in TeXShop Help. Because faculty web pages at the University of Oregon were served with http, TeXShop opted out.
But the University of Oregon recently switched to https for faculty pages, so Sparkle and movie downloads have been switched to https and TeXShop no longer opts out of this security requirement.
- Latexmk has been updated to version 4.60.
- The "About" panel has a line giving a range of copyright dates. The range ended in 2017 because I failed to notice that that line was localized. Now it correctly ends in 2018.
- Scrolling in the editor window has a "bounce" near the top. We added a hidden preference setting to remove that bounce
defaults write TeXShop SourceScrollElasticity NO
This preference setting still exists, but it is no longer active because we now always set SourceScrollElasticity to NO. Sadly, this is having less and less effect.
- Herbert Schulz revised the "File Encoding.pdf" file in the TeXShop Help menu.
- The Help document "Comment Lines and Hidden Preferences" was revised to remove misprints pointed out by Herbert Schulz. Unfortunately, the document hasn't yet been extended with new information.
- When TeXShop toolbars showed Text, or both Icons and Text, the Text was broken in many localizations. That was because I did not realize that XCode could set the encoding of the localization files ToolbarItems.strings. The encodings of these files are now all set to UTF-8 Unicode, and Text in the Toolbars finally looks reasonable.
- The author of the Spanish localization, Juan Luis Verona, pointed out an important consequence of changing the default encoding in TeXShop to UTF-8. Characters with accents and umlauts can be encoded in Unicode either as special characters, or as combinations of characters. For instance, ü can be encoded as U+00FC or as U+0075 and U+0308. When a LaTeX or pdfLaTeX file is encoded in UTF-8, the typesetting engine calls \usepackage[utf8]{inputenc} to interprete the input file. But this package does not understand combination characters. For an explanation of the reason these characters are hard to read, see https://tex.stackexchange.com/questions/94418/os-x-umlauts-in-utf8-nfd-yield-package-inputenc-error-unicode-char-u8̈-not/94420#94420.
Luckily, source characters with accents and umlauts typed by the user are encoded as single characters in TeXShop. But if a user copies the text from a pdf and pastes it into the source, combination characters are used. These look fine in TeXShop, but typeset incorrectly because of the inputenc problem discussed above. Incidentally, this problem does not occur when using XeLaTeX or LuaLaTeX.
This problem appeared much earlier in Japan, and Yusuke Terada added code to fix the problem. This code is turned on by an item in TeXShop Preferences under the Misc tab. The item used to read
"During File Save (for Japan), Automatic UTF-8-Mac to UTF-8 Conversion". In version 4.08 of TeXShop, the words "for Japan" have been removed from this item, but it is still off by default. Users who run into the problem should turn it on. A little caution is required here; for instance, the item caused trouble for users writing in Hebrew (which is why we added the words "for Japan").
- In 2005 Michael Witten, then at M.I.T., added a "Wrap Lines" menu item to TeXShop.
This menu offered to wrap lines "never", or "by word", or "by character". Witten added a hidden preference to set the default setting, and this preference is now made public in the Editor tab of TeXShop Preferences.
Most users are likely to stick with the default setting, "by word". I've added the setting because I wanted to write a little essay about line feeds.
In TeX, two line feeds produce a new paragraph; but TeX ignores single line feeds in almost all cases. Exceptions include comments, where adding a line feed in the middle adds the last half of the comment to the active text, and displayed formulas, which often break when line feeds occur in the middle. But otherwise, line feeds are irrelevant.
Thus a TeX paragraph can be written as one long line, or as several sentences, or as several lines broken in the middle. The style users adopt can depend on their background. Writers like to write paragraphs unbroken by line feeds. Programmers, however, tend to add line feeds after each sentence because when they are writing programs rather than TeX, these line feeds show the logical structure of the text. As an extreme example, in Apple's programming language Swift, individual statements need not end with a semicolon if they end with a line feed, so semicolons are only needed when stringing several statements together on a single line.
There are several advantages to writing TeX source as a series of lines, rather than as full paragraphs. Errors in TeX are indicated by line, so they can be found more rapidly when the source is a series of lines. Synctex also works by line and can produce more accurate syncs when lines are used.
Of course some programming languages ignore line feeds, and make it possible to write programs as long multi-command paragraphs, but such paragraphs are virtually impossible to read and programmers avoid them religiously.
Since programs are in practice a series of fairly short lines, programmers have many useful utilities built on the premise that they will deal with files containing short lines. One example is "diff", which can compare two files and clearly list the differences. This utility works well on TeX files written as a series of lines, but becomes more or less useless if the paragraph style is adopted. When programmers moonlight as editors of journal articles and the like, they can become frustrated when their favorite tools no longer apply.
All of this is to suggest to new users that it could be handy to adopt the style of adding line feeds to keep individual lines short. But the advantages are relatively minor and seasoned users have more important things to worry about.
Why is this issue related to TeXShop? The first key point to understand is that TeXShop never adds line feeds to a source file behind the user's back. Any line feed in a source file is present because the user pushed RETURN.
But what should happen if the user is typing and reaches the right side of the window? By default, TeXShop adds a "soft line feed" so additional characters appear on the next line. A "soft line feed" is a line feed that affects the appearance of the text, but is not added to the source file. There are several indications that such line feeds are soft. Resize the window, and notice that the text is reformatted and line feeds appear at different places. But the source doesn't change in any way. This is actually an advantage, because users can resize windows on the fly, and because when a source is moved to a new larger screen, the full window is used rather than ending up with blank space on the right.
In addition, such soft wraps are indicated in the line number column on the left of the window. The first line of a paragraph receives a line number, but if there are additional lines created by soft wraps rather than line feeds in the source, these lines have no line number because they are part of the line started above.
Some programmers, however, intensely dislike soft wraps because they destroy the logical appearance of the source which the programmer has carefully created. These programmers prefer no wrapping by the editor. When the user reaches the right boundary of the text, the editor should begin horizontal scrolling so additional characters are shown on the same line. The disadvantage is that users must scroll the text horizontally to read everything (or make the window wider if the screen has room). The advantage is that the logical structure is visible.
Programmers who work as editors of TeX articles may prefer no wrapping by the editor for another reason: it encourages authors to add those hard RETURN line feeds to the text and thus create source which is a series of fairly short lines. Thus the "Wrap Lines: Never" preference could be thought of as training wheels for the user.
That's my little essay. Adopt the editor behavior which makes you most confortable. Even if you stick with "Wrap Lines: by Word", you might like to get in the habit of adding more hard line feeds to the source.
Final question: why would anyone ever want to "Wrap Lines: by Character"? I have no idea. It is one of the options Apple provides, so it is an option Michael Witten provided, and therefore it is in Preferences.
Final observation: adding this Preference gave me a chance to look closely at Michael Witten's code from so long ago. He did not pick an easy programming task. Witten had to deal with the editor, and the scroll bar, and the layout manager, and "paragraph attributes", and lots of other things. In the end, I'm impressed that it all worked.
TeXShop Changes 4.02 - 4.07
Versions 4.02 - 4.04 of TeXShop were never released. Version 4.05, the original Mojave Beta, had a number of problems. Versions 4.06 - 4.07 were never released.
TeXShop Changes 4.01
Daniel Nowacki discovered that in some circumstances, most file menus could be disabled in Single Window Mode. This included Show Console, Show Log File, Close, Save, Print,
Print Source, Convert Tiff, Abort Typesetting, and Trash AUX Files. The problem is fixed.
Other items in this menu are deliberately disabled in Single Window mode, like Duplicate, Rename, Move To, Revert To, and Page Setup. It is easy to work around these. But Daniel's expanded list was a real nuisance.
TeXShop Changes 4.00
There are three changes in TeXShop 4.00:
- Until this year, an ordinary LaTeX source file with Unicode encoding had to include the line
\usepackage[utf8]{inputenc}
Such an "inputenc" line tells TeX which encoding was used when the input source file was written. From
2018 on, the line is not required for UTF-8 input because Latex expects UTF-8 Unicode source files by default.
Notice that a straight ASCII file is legal UTF-8, so the line above is also not required for ASCII input files. For many years the default TeXShop encoding was IsoLatin9, which contained ASCII code but also non-ASCII code for accents, umlauts, and other characters required in Western Europe. This was the default encoding in Latex, so no inputenc line was required. But from now on, if a source file is encoded in IsoLatin9 and contains non-ASCII characters, the line below is required in the header:
\usepackage[latin9]{inputenc}
By the way, XeTeX, XeLaTeX, LuaTeX, and LuaLaTeX require Unicode source files.
The "inputenc" line tells LaTeX how to interprete source code, but it does nothing to guarantee that fonts are used which understand Unicode characters. Users in the United States with European collaborators and users in Western Europe need only deal with accents, umlauts, and the like, and this font problem is handled with one extra line, which usually comes before the inputenc line:
\usepackage[T1]{fontenc}
Appropriate latex commands for users in other parts of the world are beyond my expertise. These users are likely to find XeLaTeX or LuaLaTeX particularly attractive.
To match this LaTeX change, the default file encoding for TeXShop files has been changed from IsoLatin9 to UTF-8 Unicode. This change will not affect current TeXShop users because TeXShop doesn't change Preference settings that users may have already set. It affects new users and it also affects old users who install a copy of TeXShop on a new machine for the first time. TeXShop has special default values for users in Japan, and their defaults have not changed.
If you have already switched to UTF-8 or you use an unusual encoding, then you know all about encodings and can stop reading. The rest of this section is for users who ignored encoding issues until now.
These users may want to take this opportunity to switch to UTF-8 Unicode. To understand the issues, it is best to tell the story from the beginning.
If you examine a CD or DVD with a microscope, you will discover that the disk contains a long stream of whole numbers, each between 0 and 255. These are called bytes, and the ability to encode virtually any kind of information into a stream of bytes defines the current digital age. Thus a byte stream might represent music on a CD, or a movie on a DVD, or a jpg picture, or a computer program, or an encyclopedia. A large fraction of computer files are just text files. From the beginning of the personal computer era, a standard encoding of text known as ASCII has been used. This method encodes all the characters on a standard American typewriter: small letters, capitol letters, punctuation marks, numbers, tabs, carriage return. There are less than 128 such characters, so ASCII only uses bytes between 0 and 127.
The original version of TeX expected ASCII input.
ASCII had difficulties in Europe and in regions of the world that used completely different scripts. For instance, scripts in Western Europe use accented vowels, umlauts, upside down question marks, and unusual Scandinavian letters. To solve such problems, the unused 128 bytes in ASCII were used to represent new characters. Different encodings were invented for each country, each with different characters in those 128 spots. One of these encodings, IsoLatin1, contained all of the characters routinely used in Western Europe. When the European currency was introduced, IsoLatin1 was extended by adding the Euro symbol, to become IsoLatin9, and TeXShop adopted that as default. But many more encodings are available in TeXShop Preferences.
Sadly, files encoded in this way do not contain a "magic byte" defining the encoding. So the user has to know which encoding was used to write the file, because the computer has no way to know.
But meanwhile, computer manufacturers realized that the increasing globalization of the world required a new approach to text. They formed an independent organization, which created and oversees Unicode, a standard that can represent all of the scripts of the world, such as hieroglyphics, Arabic, Chinese, and mathematics. Virtually all computers have switched to Unicode; it is a central part of macOS. Their NSTestView object uses it, and thus TeXShop is entirely Unicode-based internally. You can easily type English, Cyrillic, Chinese, Hebrew, and Arabic in a single TeXShop document; the Hebrew and Arabic will even be written from right to left.
Unicode does not define a single standard method to read and write Unicode to a file. But one very popular method is called UTF-8 Unicode. This method has the distinctive feature that ordinary ASCII output is correct UTF-8 output. The remaining unicode symbols are coded using characters between 128 and 255.
Because there is no standard way to write Unicode to disk, every routine in macOS to read or write text requires an encoding parameter, which describes the type of encoding to be used by the operation.
If this parameter is UTF-8, then the contents of the editor will be completely preserved. If the parameter is IsoLatin9, then ASCII and Western European characters will be preserved, but Chinese, Arabic, Cyrillic, etc. characters will be lost.
There is one crucial difference between most of the encodings and UTF-8. Since most encodings just define characters for the bytes between 128 and 255, any random stream of bytes is an acceptable file. But UTF-8 files use coded input, so most random streams contain illegal bytes and a computer asked to read such a stream will reject the entire file. If that happens, TeXShop will put up an error dialog, and then open the file in IsoLatin9.
If you are a user who ignored encodings up to now, or only used UTF-8 and IsoLatin9, then we can give easy advice about switching permanently to UTF-8. To actually switch, just choose UTF-8 Unicode as encoding in TeXShop Preferences. All new files will open fine and typeset easily with LaTeX, using only the "fontenc" header line mentioned earlier. Moreover, older files will also open fine and typeset easily if they only contain ASCII characters. But older files with accents or umlauts or other Latin9 characters will bring up an error message and then open using the IsoLatin9 encoding. When that happens,
add the following to the top of the file:
% !TEX encoding = IsoLatin9
and add the following to the header after the \documentclass line:
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
With these lines in place, the file will thereafter automatically open in Latin9 and typeset fine.
This advice does not hold if you used other encodings or a mixture of encodings, but in that case you know how to juggle encodings and we have no extra advice to offer.
- Latexmk updated to version 4.55d.
- The change in version 3.98 to set interline spacing and kerning in TeXShop Preferences was hopelessly broken. This was pointed out to me in a phone call from Louis M. Guenin. The method seemed to work, but any lines added later in the editor reverted to the original style. Consequently, this method has been disabled in 4.00. It is still possible to set interline spacing and kerning for individual files as in 3.98, but Preferences cannot set default values.
The Preferences code is still in place and correctly sets font and font size. It also appears to set interline spacing and kerning, but when the user clicks "OK", those settings are ignored.
TeXShop Changes 3.99
There are four changes in TeXShop 3.99:
- The German localization was updated.
- The Spanish localization was slightly improved.
- The original Preference dialog did not fit on the screen when users had an 11 inch or 13 inch portable. In version 3.99 of TeXShop, an additional Editor tab was added to the dialog and the Source items were split between the Source and Editor tabs. This allows the entire dialog to be shortened.
- When TeXShop opens a postscript file, it runs a script which calls ghostscript to convert the ps file to pdf,
and then displays the pdf file. Bruno Voisin noticed that this process fails when the name of the postscript file contains spaces. He discovered the cause: the ps2pdfwrap script in TeXShop defining the conversion does not quote one filename. This is fixed.
A user in Israel, Michael Gedalin, is writing a book in Hebrew using TeX. His source file often switches between English for TeX commands and Hebrew for the actual text. He complained that opening his source in TeXShop was slow and adding new text to the middle of the source file was very, very slow.
Using either English or Hebrew, it was possible to type three words before any letters appeared on the screen.
Debugging this problem revealed an interesting cause. If the font used in the TeXShop editor contained both ASCII and Hebrew characters, there was no slowdown. But if the source font did not contain Hebrew characters, the Macintosh was smart enough to switch to a Hebrew font for Hebrew portions of the text. Unfortunately, this switch, repeated over and over in the text, was extremely slow.,
The lesson is clear. If you are writing in an unusual script, pick an editor source font which contains both ASCII characters and characters for your script. The Font Book, in Applications, lists for each font the scripts supported by that font.
TeXShop Changes 3.98
There are five changes in TeXShop 3.98:
- Early versions of High Sierra contained a bug which broke updating the Page Number box in the preview window during scrolling. The bug also broke the up and down arrows in the preview toolbar.
This High Sierra bug is fixed in High Sierra 10.13.4, currently in beta release for developers.
TeXShop 3.91 contains a workaround for the bug. The workaround runs a small routine to update the Page Number box once a second whenever the Preview Window is active, even when the user is not scrolling.
In TeXShop 3.98, the workaround only runs on early versions of High Sierra, and the original more efficient TeXShop code runs on High Sierra 10.13.4 and above.
- Latexmk is updated to version 4.55a.
- Version 3.94 of TeXShop contained a fix for the "flash after typesetting" bug in High Sierra when the preview window is using multipage or double multipage modes. However, the fix was also applied in single page or double page modes, where is may have caused problems. In addition, the patch caused problems for some users who worked with an external editor, or turned on the "Automatic Preview Update" TeXShop preference. The patch has been reworked slightly to avoid all of these problems.
- The Font submenu in the Source menu has been enlarged with additional items from Apple allowing users to set interline spacing for the source text, and adjust the kerning and ligatures for this text. Keyboard shortcuts for interline spacing make it easy to adjust this spacing; for instance, double spaced source is possible. Additional items allow copying and pasting this style information, so once one source window has been adjusted, the adjustments can easily be applied to other source windows.
- The TeXShop Preference item to set the font for TeX source has been changed to also set interline spacing, kerning, and ligatures. Thus the style changes introduced above can be made default styles for all future files. This works as follows: clicking the Set button to initiate a font change makes a small sample window drop down to show the effect of Font and Style changes. The Font submenu in the Source menu is active for this small window, allowing Style changes as above. When the OK button for the sample window is pressed, these changes appear in all open TeXShop windows. The main Cancel or OK buttons in the Preference Dialog must still be pressed, either to retreat to previous choices for fonts and styles, or to make the changes permanent.
The code to set default font styles has one minor bug I haven't been able to fix. If an empty window
is opened, the font is correctly set for the window, but new font styles are not set. For example, suppose a user has requested double spaced source in TeXShop. If this user selects ``New'' to open an empty window and then selects the LaTeX Template, the new source in the window will be single spaced. It is easy to work around this bug. If the window is saved, closed, and reopened, the styles will ``take'' and the source will now be double spaced. Or if another window is open with correct spacing, the font style can be copied from this window and pasted into the new window.
- Following a suggestion by Emerson Mello, who provides the TeXShop localization for Brazil, an additional item has been added to the TeXShop Help menu. This item lists all "special comment" lines understood by TeXShop, and lists all hidden Preference items which can be set for the program. The special comment list is complete, but in this version of TeXShop, only some hidden preference items are listed. The list will be completed in future TeXShop versions.
TeXShop Changes 3.97
TeXShop 3.97 has a new preference setting determining whether the source editor is placed on the left or right side in Single Page mode.
Because work on MacTeX-2018 is beginning, TeXShop will not be further updated for several months.
TeXShop Changes 3.96
This version has one important change and other minor bug fixes:
- For some time, TeXShop has had the ability to combine the source and preview windows of a document into a single window showing both views, or break such a window back into two windows. This is done with the commands "Use One Window" and "Use Separate Windows" in the Window menu.
There is now a preference item in TeXShop Preferences to determine the mode used when a document is first opened. See the bottom of the Preview tab in TeXShop Preferences.
If "Use One Window" is selected, both Source and Preview are placed in a single window whenever documents are opened. This also applies to documents opened automatically when the program restarts. The menu items in the Window menu are still present, so after documents are opened, some or all can be split if desired.
If a document has not yet been typeset, only the source is available and it will open in a standard window. Later when the document is typeset, the preview will appear in a separate window. These windows can then be combined with "Use One Window" if desired.
It doesn't really make sense to use tabs when source and preview are combined, so if the source contains a magic line to set tabs, then the source and preview windows will still open in separate windows. The command "Use One Window" in the Window menu does work with tabbed source windows, pulled the source tab out of the original source window but leaving the remaining tabs. Nevertheless, users of tabbed windows should probably ignore Single Window Mode.
- The Sparkle update code in TeXShop 3.96 was updated to version 1.18.1.
- In High Sierra when previewing in "multipage mode", each typesetting job caused a flash in the Preview window before new material appeared. This problem was fixed in versions 3.94 and 3.95. The fix worked by placing a picture of the old preview pdf over the Preview window just before switching to the new version of this pdf. The flash still occurred, but was hidden by the picture. One second later, the picture was removed, revealing the new pdf. The steps of placing a picture and later removing it were totally invisible to the user.
The fix had a small downside: it caused a one second delay after typesetting before the new material appeared. Because of user complaints about the delay, a hidden preference setting was added in version 3.95 allowing users to adjust the delay.
defaults write TeXShop FlashDelay 0.25
The value of the delay is measured in seconds and can be anything between 0.0 and 2.0.
Tests show that a delay of 0.50 seconds works on almost all machines and is not longer noticeable by many users. In version 3.96, this is the default delay when users first update. But users who already changed the delay in version 3.95 will retain the value they set. If the delay is still noticeable, experiment with setting it smaller. On my machine, a delay of 0.25 seconds works fine and isn't perceptible.
- Because of a High Sierra bug, scrolling the Preview window did not update the Page Number box in the Preview toolbar. TeXShop 3.92 contained a workaround for this bug, but the workaround did not apply when the source and preview were contained in a single window. Now it does.
- If the source window font or font size changed, and the window was later split, new text added to the bottom portion appeared with the old font and size. This bug was pointed out by J. F. Groote, and is fixed in version 3.96.
TeXShop Changes 3.95
In High Sierra when previewing in "multipage mode", each typesetting job caused a flash in the Preview window before new material appeared. I found this behavior so disturbing that I didn't update to High Sierra until this week. TeXShop 3.94 completely fixed the problem. This fix was particularly significant because Apple revised the way they render pdf files and reported that the flash could not be repaired at their end. Without a TeXShop fix, we'd be stuck with the flash for years to come.
The fix worked by placing a picture of the old preview pdf over the Preview window just before switching to the new version of this pdf. The flash still occurred, but was hidden by the picture. One second later, the picture was removed, revealing the new pdf. The steps of placing a picture and later removing it were totally invisible to the user.
The fix had one small downside which I found barely noticeable: it caused a one second delay after typesetting before the new material appeared. This lost second caused several users to complain to me. A few of them used the preview in "single page mode," which does not have the flash bug. They complained of losing a second for no reason. Other users told me that they barely noticed the flash, but were annoyed every time they had to wait that additional second. Huh? Didn't notice the flash??!!
The only change in TeXShop 3.95 is additional preference settings to mollify these users. The program now has two hidden Preference settings. One turns the fix off. Note that the fix is only applied in High Sierra and above, so this setting only applies to those versions of macOS. To apply the fix, quit TeXShop, open Terminal in /Applications/Utilities, and type the following line:
defaults write TeXShop FlashFix NO
However, I strongly recommend not applying this fix. Instead, experiment with the second fix, which reduces the delay before removing the picture of the old pdf. To apply the fix, quit TeXShop and type the following in Terminal:
defaults write TeXShop FlashDelay 0.25
The value of the delay is measured in seconds and can be anything between 0.0 and 2.0. Other values are constrained to these values. If the delay is too short, the flash may still be visible, but on my High Sierra machine, a Mac Pro, the value 0.25 completely eliminates the flash and yet produces a delay of only 1/4 of a second, which is not noticeable to me. If this value works for most others, it may become the default in future versions of TeXShop.
If you still see the flash with this value, try 0.5. If you don't see a flash, but are still annoyed by the delay, try 0.01.
If you complain of losing 1/100 of a second from your life every time you typeset, I will sympathize silently.
TeXShop Changes 3.93 and 3.94
Version 3.93 was never released. The main purpose of release 3.94 is to fix crucial bugs in TeXShop running on High Sierra. Here are the bugs:
- After each typesetting job, there is a momentary flash in the preview window before the new version appears. This flash is caused because Mac OS draws the background of the page before the actual page is ready to draw. I tend to typeset after every few sentences, and this bug was so distracting that I avoided switching to High Sierra until now.
- Scrolling with a gesture or the mouse in the preview window while in multi-page or double-multi-page modes does not update the Page Number in the preview toolbar.
- If a tabbed source or preview window is split, the split bar is much lower than usual and cannot be moved.
- In previous versions of Mac OS, the TeXShop Save Panel has two accessories at the bottom, one to select encoding and one to select file type. But in High Sierra, these are missing in expanded mode. Moreover, the main display in this mode is "flaky"; sometimes it covers the panel and sometimes it is restricted to only three or four lines.
- The preview window drawer shows a document outline in the top portion, and a search box and search results in the lower portion. The outline only appears when the hyperref package is used; otherwise the area is blank.
When the outline exists, the lower portion shows search results in two columns. The first lists the word or phrase being searched, and the second lists the outline section where the word or phrase was found. But in High Sierra, all second column entries are equal. The program gets "stuck" on one, and continues to list it for all entries.
After High Sierra was released, I dutifully noted these bugs and reported many of them to Apple developer support. Then I sat back and waited for fixes. The third entry was indeed fixed in High Sierra 10.13.2, but the other entries are still outstanding. However, unexpected behavior in a new version of Mac OS can have several causes. In some cases, TeXShop might have "shady code" which happened to work in earlier systems but was never really correct. In other cases, the problem could be an Apple bug. The most interesting situations occur when Apple rewrites code to improve the experience of most users, but that code breaks features of TeXShop and cannot be repaired.
All of the bugs above are fixed in TeXShop 3.94. Some of these fixes require new program logic. In these cases, the fix only runs on High Sierra and above, while the old code is still used on earlier systems to avoid problems on these systems.
Because these fixes solve almost all High Sierra problems, I intend to move over to that system immediately after TeXShop 3.94 is released.
There is one additional feature in 3.94. John Collins updated latexmk to version 4.54c, which fixes a problem with the previous version of latexmk. That version required a recent version of Perl and failed for users with an older version of OS X. The new version should work on all versions of OS X supported by TeXShop 3.94.
The rest of this report explains the fixes of the five bugs for those who are interested. Rather than taking them in order, I'll leave the most interesting case until last. The third item was indeed an Apple bug, and was recently fixed. The fourth item was fixed in TeXShop 3.91. I do not know if the cause was an Apple bug, so the workaround might eventually be removed or improved.
I found a workaround for the fifth bug. There are two useful pieces of information which could be placed in the second column of the search list. This column could display some of the surrounding text, or it could list the corresponding outline section. In High Sierra, TeXShop 3.94 shows surrounding text, and therefore avoids the bug. On earlier systems, TeXShop 3.94 shows the corresponding outline section if an outline is present, because those systems don't have this bug. But if no outline is present, TeXShop 3.94 shows surrounding text, rather than leaving the second column blank.
This brings us to the second bug, which was not an Apple bug at all but instead "shady code" in earlier versions of TeXShop. The Save Panel is mostly handled by Cocoa automatically. But programmers are allowed to provide an "accessory view" which will appear just above the buttons at the bottom, and extend features of the panel. If the programmer does not provide this accessory view, Apple provides one, showing a Popup Menu allowing the user to select the File Format of the saved file, which is essentially its extension.
TeXShop wants two Popup Menus in this view, one to choose the encoding of the file, and the other to choose its extension. Most users rightly ignore these popups, but they are useful in special cases. Creating an accessory view, and adding an "Encoding Popup Menu" are straightforward tasks. But Apple has already created the "File Format Popup Menu" and it is just a matter of grabbing their popup and adding it to our accessory view. Earlier versions of TeXShop contain ingenious code to do just that. Another word for "ingenious" is "shady." Unfortunately, the first reaction on rereading that code is "would that even work?"
The answer is that it works in Sierra but not in High Sierra. It has been replaced with much more straightforward code. A Google search shows that other programmers faced the same problem and selected the straightforward approach rather than the shady one.
Finally, we come to the "flash after typesetting" bug, which was for me the most important problem. This problem turns out to be caused by a reworking of the Mac OS code to render pdf files. The new Apple code will render large documents with greater speed, but a consequence is an unavoidable flash if a pdf file is opened and immediately repositioned to the center of the document. Let's face it, that is an unusual operation unless you are editing and typesetting a TeX document. Unfortunately, the flash is a problem that Apple cannot solve.
However, TeXShop can solve the flash problem. Here's how that works. In Cocoa, "NSView" objects correspond to rectangular portions of the screen; these view objects know how to draw themselves. NSView objects can be layered, and in that case the top layer obscures lower layers unless the top layer is transparent.
After typesetting is complete and just before switching to the new version of the pdf file, TeXShop 3.94 takes a snapshot of the screen. It then creates a NSView exactly the size of the old pdf view in the Preview window, and places this view on top of the old view. The new view draws by showing the appropriate portion of the screen snapshot. Then the preview window is loaded with the new pdf view, which draws, flash and all. But we see nothing because the drawing is obscured by the NSView on top. Exactly one second later, the top NSView is removed, showing the new pdf underneath.
You might think that adding and removing this View would provide additional flashes, but such view manipulations have been a part of Cocoa since the beginning and the system is optimized to make such manipulations invisible.
This method depends strongly on the technique to get a snapshot of the screen. Many such techniques are available, but do not work well. For instance, I first tried a technique which obtained the pdf data to draw a portion of the screen. When this data was redrawn, font weights changed, and the screen became blurred for that one second interval. Google led me to the code now used to get that snapshot, and that open source code works like a charm. See the source for details.
There are a couple of possible problems with this fix, which users ought to know about. If you have several monitors, I do not know if the screen snapshot will provide the correct image. My High Sierra machine has only one monitor. I also don't know if one second is enough time to avoid the flash. It is for me, but my machine is quite fast.
So in case of problems, please write.
TeXShop Changes 3.92
- High Sierra has a bug which breaks updating the pageNumber field when scrolling in the Preview Window.
TeXShop 3.91 has a workaround for this bug, but the workaround broke the ability to enter a new page number and go there. This is fixed. After going to a new page, click once in the pdf content region to activate page updates during scrolling.
- TeXShop has two magic lines to activate tabs. The first, "useTabs", automatically adds "include" files as tabs, while the second, "useTabsWithFiles", gives the author much tighter control over which source files to use as tabs.
Tommaso Pecorella wrote asking that the first command also automatically add "input" files as tabs. The reason I didn't do this at first is that the syntax for "input" allows situations that aren't really appropriate for tabs. For example, a source that is "input" can itself "input" other files. Some authors break the source into hundreds of pieces, inputting these pieces as necessary.
So whether the request is appropriate or not depends on the writing style of the user.
In TeXShop 3.92, the "useTabs" command will also create tabs for "input" files, but only if the user activates this feature with a hidden preference:
defaults write TeXShop TabsAlsoForInputFiles YES
TeXShop Changes 3.90 and 3.91
Version 3.90 was never released. Version 3.91 has the following changes:
- In version 3.89, the Changes document was added to the TeXShop Help Menu, but it only listed changes in the latest version. From now on, the full document listing all changes in series 3 will be in the Help Menu. The latest changes are at the top.
- In Version 3.89, the user can double click on the words "begin" or "end" in a begin-end pair (while holding down the option key) to select the matching termination word and all words in between. I'm not a fan of intricate string programming, and it took me many days to get this feature working, so I expected applause. Instead I got bug reports about edge cases I knowingly ignored. The first such message, from Jean-Pierre Olivier,
contained the following example. Guess what TeXShop did with a double click on the initial "begin."
\begin{enumerate}
\item la liste
\begin{enumerate}
\item a
\item b
\end{enumerate}
\item another
\end{enumerate}
I told Jean-Pierre that I was aware of the special case and didn't intend to fix it. Then I went to bed, but my conscience kept me awake.
TeXShop 3.91 fixes this problem. Thus "\begin{key}" will match the appropriate "\end{key}" even when the selection between them contains one or several "\begin-\end" pairs with the same "key".
TeXShop 3.91 also fixes a second special case: it now ignores comments, so "begin" will never match an "end" that has been commented out.
- Updated latexmk to version 4.54. Thanks to John Collins and Herbert Schulz.
- TeXShop depends on PDFKit for the preview display, and Apple has been rewriting PDFKit for the last three years and introducing bugs in the process. High Sierra was described by Apple as a release concentrating on polish and speed rather than on new features. So there were high hopes that High Sierra would fix the bugs. And indeed, it did, but it compensated by adding new bugs.
The bug most often reported to me is that the page number box on the preview toolbar does not update when scrolling the pdf display with a gesture or mouse. This bug only affects multi-page and double-multi-page modes, and does not occur when the keyboard arrows or the spacebar are used to scroll.
TeXShop 3.91 has a workaround for this bug. The workaround code is only activated when running High Sierra; otherwise the original code runs. When Apple fixes the bug, the workaround will be removed. The workaround is applied automatically, so you may wish to skip the remaining text in this item. Indeed, there are no other version 3.91 changes, so the rest of the text about 3.91 can be skipped.
What caused this bug? TeXShop is written with Apple's Cocoa application
framework. In this style of programming, duties are shared between the programmer and
the API. In particular, one object, named "PDFView" in the API, displays and scrolls pdf
documents automatically without programmer intervention. Handling scrolling this way
is important since there are mice, and smart mice, and portable track pads, and stand
alone track pads, and gestures, and so forth. If the duty of responding to them
fell to the programmer, who doesn't
even own many of these devices, nothing would work.
TeXShop interacts with the PDFView object by sending it "messages." For instance, one message
says to switch from single page mode to continuous page mode.
But what if the PDFView has to interact with TeXShop? Apple programmers don't know the messages understood by TeXShop, so they cannot send messages to TeXShop.
The answer is that Cocoa objects can post "Notifications". These notifications are fixed by the API; a programmer
cannot extend them. One crucial notification posted by PDFView is called
"PDFViewPageChanged".
These notifications go to a "Notification Center" in Cocoa. Programs can ask this center to be called
whenever a particular kind of notification arrives. TeXShop asks the notification center to be notified
when PDFViewPageChanged is sent, and it then updates the Page TextField.
The primary cause of the bug is that High Sierra does not send the notification when scrolled by a trackpad or mouse.
However, there is a further problem. Listed below is the code which TeXShop runs when it gets a PDFViewPageChanged notification.
aPage = [self currentPage];
theNumber = [[self document] indexForPage: aPage];
[self.pageNumber setIntegerValue:theNumber];
[self.pageNumber display];
This is objective C code, but almost self explanatory. TeXShop asks PDFView for the current Page, a data structure that has lots of information about the visible page. It asks this data structure for the page number of the page. It sets this page number as the number to be displayed by the page box. Then it redisplays this box.
Unfortunately, the first line also fails. When you scroll in High Sierra, either by trackpad or by mouse and scrollbar, Cocoa does not update the “currentPage” variable. So after scrolling, this variable still has the old value. Hence the page number would not change even if the notification were sent.
To work around the bug, I first had to find a replacement for [self currentPage]. Ultimately I found two replacements; one worked a little better than the other, but both worked in High Sierra. The "method that works a little better" is used by the "click once" action described below, but it does not work for the "timer"
action below, which must use the second method.
After working around [self currentPage], I had to find a replacement for the notification PDFViewPageChanged. Sadly, I never found a notification which worked. Several replacements are described in the documentation, but PDFView "behaves like an NSView in many cases" but "is not a formal subclass of NSView" and none of these notifications were actually posted by PDFView.
Since the notification route fails, the workaround has to use a different approach. TeXShop 3.91 contains two approaches. The first requires user action to update the pageNumber box: click anywhere in the active pdf area. Thus users should scroll with a tracking action or mouse, and then click once to update the box.
However, this procedure is turned off when you start TeXShop 3.91 because a second procedure is used instead. Cocoa allows programs to contain NSTimer objects which fire periodically. When running on High
Sierra, the PDF display object sets up a timer to update the pageNumber box once a second. This allows automatic updating during scrolling.
Since the timer has to do extra work to discover the current page, care has been taken to only do the work when necessary. The timer only updates if the corresponding PDF window is the front window. So it does no work when users are editing source. If several projects are open, at most one pdf timer is actually updating.
I still have some fear that the timer will make TeXShop less responsive. This could only happen on High Sierra, and then only until Apple fixes the bug. So I've provided a way for users to turn the timer off. Quit TeXShop and then issue the following command in Terminal:
defaults write TeXShop ContinuousHighSierraFix NO
Then restart TeXShop. No timers will be created, so the pageNumber box will not update during scrolling. Click the mouse once in the pdf content area after scrolling to update the pageNumber.
-
There are no other new features in TeXShop 3.91. But perhaps a list of remaining High Sierra bugs will be useful. They are cosmetic bugs rather than bugs changing the operation of TeXShop.
- When TeXShop typesets and then displays the revised pdf, there is a momentary gray flash before the new page appears. This only occurs on High Sierra and has been reported to Apple.
- If a window which has been converted to a tab is split, the bar separating the split portions cannot be moved, and other things go haywire. This problem is fixed in the latest developer betas, so it should be fixed in the next High Sierra minor release.
- I continue to get reports of fuzzy displays on some monitors. This problem has been with us through several iterations of OS X. It was extensively discussed in the changes document for version 3.55, where several TeXShop additions to deal with the problem are summarized in one spot.
Fuzzy displays have never been a problem on machines with Retina displays. This includes almost all of Apple's current machines. It includes the 5K LG Display, made possible by Thunderbolt 3.
Older displays also work fine; I have the original Thunderbolt display which was not a Retina display and yet shows very clear text. I am no longer able to obtain fuzzy output on any of my equipment.
I suspect that Apple has stopped work on this problem because it will disappear as people upgrade their equipment. Let's recall an analogous situation. When color was first introduced on the Mac, it was 8-bit color which could only display 256 colors. This was not enough for high quality photographs, but the engineers had a work-around. Graphic display hardware contained a color table chip which could be programmed in real time. Thus the particular 256 colors available could be adjusted, depending on the requirements in the front-most window.
So Apple introduced very elaborate color management software. A program could request, say, 40 colors that it "absolutely, positively had to have", and then 25 colors that it needed only approximately, listing how much variation was permissible for these colors. Apple also reserved a small number of colors for the system. The rules for this color management software seemed to change from system to system. One critic said "I dislike the Macintosh because when I request a color, I can never be sure of the color I'll get back.''
And then memory prices went down, and 8-bit color became 32-bit color and the color management software vanished. If you lived through those days, as I did, you probably feel that all the time spent on color management was time wasted. I recently discovered that new hires in the mathematics department who know much more than I do about computers have never heard of programmable color tables.
With apologies to those dealing with the problem, I think the fuzzy display problem is a repeat of the 8-bit color situation. The problem has gone away for the majority of users, it will slowly go away for the rest of users, and it no longer makes sense to expect Apple engineers to deal with it. Sorry.
TeXShop Changes 3.89
Version 3.89 has the following changes:
- When new versions of TeXShop are released, two documents are created explaining features of the release.
The first, titled "About This Release", is available as the first item in the TeXShop Help Menu, and describes those features that cannot be delivered automatically. For example, if new macros are available, they cannot be provided to users because users may have edited their macros. "About This Release" explains these features and how to obtain them. For most releases, there are no such items.
The second document, titled "Changes", describes all new features in the release. In version 3.89 and future versions, it will be the second item in the TeXShop Help Menu. This document is essential reading because new features are often not visible in the interface, so the changes document is the only way to discover that they are available.
The "Changes" document has always been available, but not in handy places. It is the information shown when a Sparkle "Check for Updates" command announces an update, it is available on the TeXShop web page just below the download link, and it is available in the TeXShop Help Panel under the heading "What's new". All these versions will still exist. We hope many more users will find the document in the Help menu.
- If the user double clicks on {, }, [, ], or (, ), the corresponding brace will be found and the text between these delimiters will be highlighted. This feature has existed for years and is an essential debugging tool. Occasionally, users just want to select a brace, say {, rather than selecting all this text. Many users may not know that they can do this by holding down the option key while double clicking. Now they know.
In version 3.89, this feature is extended to begin-end pairs, like
\begin{theorem}
There are infinitely many primes.
\end{theorem}
To select all text in the begin-end pair, hold down the option key and double click anywhere in the word "begin" or the word "end". In the above example, the computer will automatically find "{theorem}" and match with the corresponding begin-end pair for "{theorem}".
Notice that there are differences in the selection of {, } pairs and the selection of begin-end pairs. For brace pairs, you must double click on a brace, while for begin-end pairs you must double click on an easier-to-hit word.
Moreover, the option key is not needed for brace pairs, but is needed for begin-end pairs. Why? Most users are familiar with the following Mac convention: clicking on a spot pulls the cursor to that spot, double clicking on a spot selects a word there, triple clicking on a spot selects an entire sentence or paragraph there. It would be confusing if this behavior failed for the words "begin" and "end", but worked for all other words. To avoid this confusion, users must press the option key if they want to match pairs.
I'd like to thank Claudio Beccari, who called my attention to the importance of begin-end pairs and asked for this feature in TeXShop. His request was so reasonable that I dropped everything else and implemented it. In turn, Beccari called my attention to an article in the latest Tugboat (Journal of the TeX User Group, volume 38, number 2), on debugging TeX files by Barbara Beeton. Beeton is the resident TeX expert at the American Mathematical Society. Her suggestions are given modestly, but ignoring them is the mark of a fool.
There remains the $ and $$ problem; the trouble with these delimiters is that there is no difference between the opening and closing symbol, making similar code difficult to program. Recall that $-$ is equivalent to
\begin{math}-\end{math} or to \( - \) and $$-$$ is equivalent to \begin{displaymath}-\end{displaymath} or
to \[ - \]. Perhaps \( - \) and \[ - \] will be handled in the future, but begin-end selection already handles one equivalent of $-$ and one of $$-$$. One possible useful habit to develop might be to use $ for very short expressions like $\alpha$, but use \begin{math}-\end{math} for all longer expressions. In that case, I recommend inventing a keyboard shortcut to enter this pair and the equivalent display pair.
- One of the most important features of modern TeX distributions is SyncTeX, a creation of Jérôme Laurens.
This software modifies TeX engines to output "synctex" files containing the information needed to sync between spots in the source and corresponding spots in the pdf output. Laurens also includes "synctex_parser", a C source file for front end developers allowing them to easily obtain information from the "synctex file."
In 2017, Laurens substantially rewrote both engine synctex support and the synctex_parser. His new parser has been in the last several iterations of TeXShop. I strongly recommend that users updating TeXShop also update TeX Live, probably via MacTeX, so these two pieces of software will match.
About two months ago, a couple of ConTeXt users complained to me that synctex doesn't work in the latest beta versions of ConTeXt. They also told me that it continues to work in other front ends. Further investigation showed that those front ends had not updated their copy of the synctex_parser, and then showed that the author of ConTeXt, Hans Hagen, wrote his own synctex code for ConTeXt, based unfortunately on the 2016 version of synctex.
TeXShop 3.89 now contains both the new 2017 version of the synctex_parser, and the old 2016 version of this parser. This was not easy because Laurens used many of the same function names in both versions and the linker complained; eventually I had to change 2016 names by hand. A new magic line has been introduced for ConTeXt users:
% !TEX useOldSyncParser
This will work for all TeX users, but is only recommended for ConTeXt users. The magic line is read when a file is first opened, so the first time this line is added, the file should immediately be closed and then reopened to make it active.
- For the last several releases, a special version of TeXShop was provided for users running High Sierra. The Sierra version of the code ran on High Sierra, but one feature was missing. When High Sierra was released, Apple also released XCode 9, making it possible to compile one copy of TeXShop which runs completely on all recent systems, and in particular on both Sierra and High Sierra.
- An earlier version of TeXShop introduced the magic line
% !TEX parameter =
which sends a second piece of information to engines. Most engines just ignore this information, so it does no harm. But using the magic line, one or more flags can be passed to engines without rewriting the engines.
Herbert Schulz rewrote many of the latexmk engines to use this magic line. For instance, it can be used to add a --shell-escape flag when pdflatex needs to call an external program during typesetting. The old engine files still work, but Schulz recommends that users visit ~/Library/TeXShop/Engines/Inactive/latexmk and replace any active latexmk engines with their new versions. New documentation in this folder gives more details.
- An ".xml" file is an Extensible Markup Language file. For reasons that will be explained in a moment, TeXShop can now create xml files, and such files are marked as typesettable files, so typesetting engines can be called
when one is active.
XML files look a lot like HTMN files. They consist of tag pairs like
<titlepage>
.....
</titlepage>
One difference is that each opening tag must have a corresponding closing tag; in html this requirement is often not enforced and <p> may not be followed by </p>.
Comment tags are written as follows
<!-- this is a comment, which contains many characters -->
- TeXShop's new \begin-end selection code also works for xml tags. As with begin-end, the option key must be pressed and then the word defining the tag must be double clicked. For instance with the tag <titlepage> the double click should be on the word "titlepage" and not on the inequality signs at the beginning or end. For comments, the double click should be on the "--" symbol.
In xml, the beginning tag may contain other elements, but the pairwise selection is a double click on the first word, not other symbols in the tag. Thus when facing the following tag, double click on "frontmatter."
<frontmatter xml:id="index">
In rare cases, the comment tag's start contains only one dash. See the second line of the following example. TeXShop cannot select such a comment.
<!-- Various third-party add-ons need some sort of token -->
<!-ƒ Using an element here serves two purposes -->
-
And now the point of all this. From time to time, I like to introduce TeXShop users to TeX-related developments that are not strictly about TeX. The development du jour is PreTeXt, with the motto "Write Once, Read Anywhere." It is the work of Bob Beezer from the University of Puget Sound, and it is supported by a crystal-clear series of web pages,
http://mathbook.pugetsound.edu/index.html. (MathBook is the original name of this project, which was renamed in June, 2017.)
The goal of the project is to write a document just once, but then output the document in pdf, or in HTML for the web, or in EPUB for pad-based work. Documents for the web or EPUB can be interactive.
To make this possible, the document text is written in a special xml-based markup language, but the mathematical content is still in TeX.
I first heard of this project in a TUG conference in Portland, Oregon, and what caught my eye was that an abstract algebra textbook written in TeX by my PhD student Tom Judson had been converted into an interactive book by rewriting it in PreTeXt. (But to be honest, the thing that really caught my attention was learning that Judson and Beezer bicycled the main part of the Tour de France route in France after the official race.) Then, as happens, I gradually lost contact with the project.
A month ago, I was talking to a University of Oregon faculty member, Dev Sinha, and he asked me what I knew of xml. I told him not much, and he then enthusiastically described course notes he was writing using PreTeXt. It took me a couple of days to realize that this was the Beezer project I knew from Portland.
TeXShop 3.89 comes with an engine file to typeset PreTeXt documents and open the pdf output in the preview window; a second engine file typesets the same document to HTML and opens the output in Safari. These engine files are in
~Library/TeXShop/Engines/Inactive/PreTeXt. This folder contains additional documentation and a large sample document by Beezer to show how the system works. I've tried to make it as easy as possible to get started.
Copy the two engine files to the active engine directory, make a copy of the document, typeset, and examine the results. Then open a new file in TeXShop, copy a few lines from the sample document to get started,
try writing your own material, and typeset. This time, you'll first be asked to save the document (as usual in
TeXShop). Use the pulldown menu on the Save Dialog to save as ".xml" rather than ".tex". Done.
After this, I hope you'll want to learn more. Go to the PreTeXt site at
http://mathbook.pugetsound.edu/index.html. This site has exciting material. Proceed.
TeXShop Changes 3.88
Version 3.88 has the following changes:
TeXShop Changes 3.87
The bug fix for Bibtex allowing citation keys with spaces turns out to be a bad idea. Bibtex documentation states that citation keys cannot have spaces, and the fix broke other user's Bibtex interaction. The fix has been removed. There are no other changes.
TeXShop Changes 3.86
TeXShop 3.86 fixes several minor issues reported by users since the release of 3.85. Most of these issues have been present for a long time.
- The Chinese localization had overlapping text in Preferences; this is fixed.
- Antti Knowles found two bugs and sent the code to fix them. When synctex is used to sync from the Preview window to the Source window, it colors the matching text yellow. After that in earlier versions of TeXShop, if a selection was made using only the keyboard, the selection would still be in yellow. The selection color would change to standard selection color only after a click of the mouse. This is fixed.
- Knowles second fix concerns the autocomplete feature of BibTeX. If a latex label contains a space, the autocomplete feature would show the full label in the list, but selecting this label would only include the label up to the first space. The fix for this is a little iffy. If users of TeXShop and BibTeX run into problems, please write me immediately.
- Tristan Hubsch pointed out that "hyperref tooltips" used with tables of contents and elsewhere could run off the page to the left or right. In that case, they were cut off. This annoying glitch is fixed (unless the page is so narrow that the tooltip could never fit on it).
- Added ".engine" and ".sh" (shell script) as file types that TeXShop can write.
- At the request of Simon Robinson, addd ".bbl" and ".synctex(busy)" as file types which are automatically removed by the Remove AUX File commands.
- The remaining items are all motivated by email sent by Bob Kerstetter. He reported that
http://tidbits.com/article/17351 had an article about the language Markdown, listing editors used on the Macintosh to create these sources, and TeXShop was in that list. Markdown is a very simple markup language invented by John Gruber whose files can be easily converted to html, pdf, latex, and other languages. Many conversion programs are available free on the internet, including a program called "pandoc". In the ~/Library/TeXShop/Engines/Inactive program, there is a folder containing pandoc engines.
But I discovered that the information about pandoc was out of date. The pandoc site now contains an open source install package for OS X, making it very easy to install pandoc. So I removed the existing engines, and placed a document called Pandoc.pdf in the pandoc folder, with links to the Gruber article and the pandoc site. Note that the pandoc site contains a large number of possible conversions, and details about how they work.
- I also received email from Alan Munn, who tried to create stationery for Markdown files (.md files) and failed. This caused me to revise the Stationery feature of TeXShop slightly. Originally, users could create two kinds of files and place them in ~/Library/TeXShop/Stationery. First, they could create a piece of stationery, with extension ".tex". Then they could create a comment file with the same name and extension ".comment" describing the stationery. After that, the TeXShop Stationery menu showed available stationery, with descriptions of each possibility.
It turns out that the extension assigned to stationery was irrelevant. So in TeXShop 3.86, stationery files can have any extension except ".comment", or no extension at all. The extension is actually never used.
Stationery is treated just like blank windows in TeXShop, except that stationery pages are marked as "dirty."
If you try to close one, or typeset one, or whatever, a dialog will appear asking you to name the file and save it to a location of your choosing. This dialog contains a pull-down menu of file types which TeXShop can write, and that menu is how users actually choose filetype. Markdown stationery can be saved with type ".md" in this way, and stationery for any other file type can be handled the same way.
- The folder ~/Library/TeXShop/Engines/Inactive/pandoc contains two new engines. The first, Md2pdf.engine, converts a Markdown source file to a pdf file and opens the pdf file in TeXShop. The second, Md2HTML.engine, converts a Markdown source file to an HTML file and opens the HTML file in Safari.
Users should note that many other conversion engines for Markdown are available on the internet, and in most cases it is very easy to write engine files which call these conversion engines.
- A few people use TeXShop as a general editor. I'm one of them, but I sort of thought I was alone. If you use TeXShop to edit other things than .tex files, the syntax coloring feature of TeXShop can be annoying. TeXShop 3.86 has a new menu item which turns syntax coloring on or off. This applies to the source window at the top of the stack. Users can have several source windows, some using syntax coloring and some not. The old "Syntax Color" item in TeXShop Preferences is still there, but it now selects the default choice for syntax coloring when a new document is opened. Changing this Preference does not affect syntax coloring in documents already open.
It would, of course, be wonderful if someone would write general syntax coloring code for TeXShop, so users could choose one scheme for Markdown, one for HTML, one for C code, etc. I don't intend to do that, but I'd gratefully accept the code from someone else.
TeXShop Changes 3.85
TeXShop 3.82 introduced "useTabs", an easy way to add tabs to projects with a root file and chapter files. TeXShop 3.84 added "useTabsWithFiles", a second method of adding tabs requiring a little more work for a lot more flexibility. Unhappily, the code for this second method broke the first method.
Grrr.
TeXShop 3.85 again activates both methods.
In High Sierra, tabs can be given special short names in place of the names of the files they represent. As the number of tabs increases, this becomes more and more useful. The second method of adding tabs has always supported these shorter names. A similar technique is provided in TeXShop 3.85 for the first method.
The magic line containing "useTabs" can be followed by an optional list of short names as in the example below:
% !TEX useTabs (one, two, , short name, five)
This additional parameter must be on the same line as "useTabs", but notice that single lines can wrap in the editor without adding a line feed. The short names are listed inside a pair of round brackets, and are separated by commas. White space at the beginning and end of a short name will be ignored, but a short name can contain more than one word, as in the above example. If the space between two commas is blank, the original name will be used for that file. If the list has fewer names than the number of tabs, original names will be used for the remaining tabs. If the list is longer than the number of tabs, names at the end will be ignored.
Version 3.85 runs on the original list of supported systems, including High Sierra. Tabs require Sierra and higher, and short names require High Sierra and higher. Short names can be input on Sierra, but they will be ignored on that system.
TeXShop 3.85 was compiled by XCode 8.3.3 running on Sierra. It runs fine on High Sierra, but the "short tab names" feature doesn't work there because XCode doesn't have API's for High Sierra. I tried compiling TeXShop on High Sierra using the beta copy of XCode provided for that system. The code worked fine in High Sierra and short tab names worked. But unfortunately, the resulting code had minor problems running on Sierra. The High Sierra version is available at the TeXShop web site at http://pages.uoregon.edu/koch/texshop/texshop.html.
The TeXShop 3.85 source code has one line commented out which must be activated to get short tab names on High Sierra. If you want to compile yourself on High Sierra, search the source file TSDocument.m for "High Sierra" and uncomment the following line of code
windowToTab.tab.title = self.includeFileShortNames[i];
TeXShop Changes 3.84
When version 3.82 of TeXShop was released, I said that it would be the final version of TeXShop until late fall. But bugs were discovered, so version 3.83 was released.
These versions of TeXShop created only half of the promised support for tabs, and I found that I couldn't stop in the middle. Version 3.84 completes tab support, and should finally be the last release until late fall. Note that tabs require Sierra or higher because Apple first added tab support in that version of macOS.
Tabs are not appropriate for all TeX projects. They work best on books and large articles with from five to fifteen chapters or divisions, each introduced with an \include command. Some authors prefer to divide their project into many more pieces, perhaps one file per section, and then associating a tab with each file would product unmanageably many tabs.
TeXShop has two mechanisms to enhance Sierra tab support. The first is very simple. Within the top 20 lines of the root file, add the line
% !TEX useTabs
When this command is given, TeXShop itself searches for \include files to associate with tabs; the mechanism should cover perhaps 70 percent of cases.
The second mechanism gives the user considerably more control over the tabs. Within the top 20 lines of the root file, add the line
% !TEX useTabsWithFiles
Below that, within the top 50 lines of the root file, add a line for each tab
% !TEX tabbedFile{chapter1/Introduction.tex} (One)
In this command, a path to the file shown in the tab is given in curly brackets. In the example, the path starts from the folder containing the project root file, but see more details below. Notice that the file extension must be included. That is because the second mechanism allows pdf, tiff, jpg, log, aux, and other files as tabs. Authors sometimes give source files long descriptive names, which makes the tab titles very long. The final piece of the above line in round brackets is optional, and gives a shorter tab name.
The optional short name will only be recognized in High Sierra, because it requires additional Apple API first made available there. Feel free to use the term in Sierra; it will cause no harm there, but will be ignored.
Finally, we list some technical details. The first mechanism searches for \include lines after \begin{document} in the body of the root file. It is common to list files without extensions, and in that case TeXShop adds the extension ".tex" when creating the tab. In the second mechanism, however, TeXShop will not change the extension given by the user, or add a missing extension, because tab files can have unusual types so the extensions provide crucial information. Both methods create at most 20 tabs and ignore lines which might create more of them. The "useTabs" mechanism only works if the root file has at most 20,000 characters, to avoid very long searches for \include lines in gigantic root files.
If a window with tabs is left open when TeXShop is closed, then the next time TeXShop is opened, macOS opens the window and recreates the tabs. The new tab mechanism recognizes this behavior and lets macOS do the job without itself creating tabs. However, macOS does not understand tabs made from pdf files, graphic files, and a few others, so some of the tabs may be missing. It is easy to get these tabs back. Close the document and then reopen it. This forces TeXShop to recreate the tabs, and then all tabs come back. Or open the missing files yourself and drag their windows to missing tabs. (This macOS behavior is not a bug; other features of TeXShop depend on it. We cannot have everything.)
Finally, a word about the path information between the curly brackets in the "tabbedFile" magic lines.
Three types of path strings are recognized. The first are strings that start in the location of the root file. Examples include {chapter1.tex} and {Chapter1/Introduction.tex}. Longer strings of directories are allowed.
When it sees this sort of string, TeXShop prepends the full path to the folder containing the root file.
Another possibility is a path starting at your home directory, like {~/Galois/Equations.tex}. Here ~ denotes the home directory, so this file is probably not in the project directory.
Finally, TeXShop recognizes full paths like {/Users/koch/Galois/Equations.tex}.
If you use still more Unix conventions, they may or may not work. No guarantees. Tests suggest that spaces are allowed in both directory names and file names, but I'm loathe to recommend them.
There are a few tricky points. The Finder often lists TeX source files without the ".tex" extension, but this extension is just hidden, not absent. It must be written as part of the tab file path. (During testing, I was confused by this point several times).
When TeXShop is asked to create a tab, it opens the file exactly as if a user had dragged the file icon to TeXShop and dropped it there. Then the window described in the tab is "tabbed." This creates a few surprising cases that look like bugs but aren't. For example, then TeXShop opens a dvi file, it actually converts the file to pdf using dvips and Ghostscript, and then opens the pdf file. So tabbing a dvi file will give a pdf file as a tab.
Here is another surprising case. Suppose that you are working on a project named "Galois.tex" and you earlier created a project named "Abel.tex". When you open Galois.tex, you want Abel.tex as a tab so you can refer to that source file as you write Galois. But if you drop the icon for Galois.tex on TeXShop, both Galois.tex and Galois.pdf will open in separate windows. Similarly dropping the icon for Abel.tex on TeXShop will open Abel.tex and Abel.pdf. After tabbing occurs, you'll have a tabbed window containing Galois.tex and Abel.tex, and you'll have Galois.pdf in a separate window. But you'll also have Abel.pdf in another window. The existence of this extra pdf file looks like a bug, but isn't.
This release of TeXShop was compiled by XCode 8.3.3 running on Sierra. It runs fine on High Sierra, but the "short tab names" feature doesn't work there because XCode doesn't have API's for High Sierra. I tried compiling TeXShop on High Sierra using the beta copy of XCode provided for that system. The code worked fine in High Sierra and short tab names worked. But unfortunately, the resulting code had minor problems running on Sierra. No doubt these will be fixed before the release of High Sierra.
Consequently, if you are beta testing High Sierra and want to use short tab names, you'll need to search the source file TSDocument.m for "High Sierra" and uncomment the following line of code
windowToTab.tab.title = self.includeFileShortNames[i];
Then compile on High Sierra.
TeXShop Changes 3.83
Murray Eisenberg discovered problems with the new "useTabs" feature and sent me his full source code to debug. This proved extremely useful! The problems I foresaw with this feature have not materialized, but Eisenberg's source revealed more elementary and embarrassing bugs, now fixed.
The only files which receive tabs are those loaded by \include{myfile} statements after \begin{document} in the root file. Here "myfile" can be a file name, partial path, or full path. Murray's document loaded chapters in a more complicated way, but was easily modified to meet this condition. It would be easy to extend TeXShop so an alternate method could also be used, in which the user lists files to be tabbed using "% !TEX fileForTab = " statements. This technique could assign files to tabs even if they aren't part of the source (for instances, tables of symbols), and could specifiy which chapters are tabbed for books with enormously many chapters. Write if you want this feature, which however will not appear until fall.
It is slightly possible that version 3.82 broke UTF-8 encoding in Japan and other far Eastern countries; the evidence is iffy at the moment. But if that happened, it is fixed in 3.83.
TeXShop Changes 3.82
After the release of MacTeX-2017 in May, I have been spending time on TeXShop dealing with bugs by other programmers which crashed TeXShop --- and TeXShop bugs which were my fault. Now I want to turn to new summer projects, so this should be the last TeXShop update until late fall. I'll return earlier only if significant new bugs are discovered.
This final summer release contains two features, one available only on Sierra and High Sierra, and the other only on High Sierra. We start with the High Sierra feature, which comes automatically to Cocoa applications without any new code by me.
- Some time ago, TeXShop was revised to support Apple's Sharing toolbar item. For instance, if the source window is active and you select "Mail" in the item, a mail window opens containing the TeX source as an enclosure. If the preview window is active, this mail window contains the pdf output as an enclosure.
Another sharing option is "Airdrop". I think of this as an option for graduate students relaxing in Starbucks. If such a student notices someone interesting drinking coffee, they can use Airdrop to share a selected portion of TeX source code, or a selected region of Preview output. I keep hoping to be invited to a Wedding due to this feature, but not yet.
I have never actually used any of the features in the sharing tool.
In High Sierra, the sharing tool is also available from a new "Share" menu in the File menu. This menu has an extra item called "Add People." To use it, save a TeX document in iCloud. Then in Add People, send an email message or other sharing notification to a friend offering to share this document. After that, you and your sharing partner can simultaneously edit the document. You can write the first line of a proof and your colleague can immediately add the next sentence. When the document is being shared with someone else, a gray "Share" message is displayed just right of the file title on the edit window header.
- The other new feature is available in both Sierra and High Sierra. Recall that TeXShop allows large projects to be organized as a root document and various chapter files. The root contains header items and \include statements just after \begin{document}. These include statements input the source files for various chapters into the document. Chapter files include a header pointing back at the root document
- % !TEX root = ../MyRoot.tex
but the root file has no such header. When a chapter file is typeset, this magic line tells TeX to typeset the root and thus the entire document. The magic line also helps sync and "goto error" locate the correct chapter source, including opening it if it is not yet open.
In Sierra, users can use the new "tabs" feature to manually move the chapter windows into the root source window
as tab entries. But this is messy work which has to be done every time the project is reopened. The new feature automates this procedure.
To activate this feature, first turn off two TeXShop preferences under the Misc tab: "Open root file automatically on opening. a child" and "Miniaturize the opened root window." Both of these items probably represent bad ideas in the design of TeXShop, so the features might be removed in a later version of TeXShop.
Then add a magic line to the top of the root file source:
- % !TEX useTabs
When a project with this line is opened, the various chapter files are opened as tabs in the main window.
Thus just two windows appear, the source under various chapter tabs, and the single output pdf file.
Sierra already has the ability to recreate tabs in a window if the window is left open when TeXShop quits. But once such a window is closed, the tabs have to be recreated from scratch. The new header creates them automatically.
If the source code has the magic line and its window is left open when TeXShop quits, then Sierra is allowed to recreate the tabs itself when the program reopens. The new code will only run if the user quits a document, and then later opens it again.
This tab feature is somewhat experimental. It works fine for me now, but a number of tricky edge cases make me a little nervous. If you are going to try it, I suggest that you duplicate your project and work using the duplicate. In case of problems, carefully analyze exactly what you did that caused an error, and then send me a note. If possible, send me full source when a problem occurs.
Once the tabs are active, I would expect everything to work without problems. It is only the step that creates the tabs that is slightly worrisome. But not enough to hold back this release.
TeXShop Changes 3.81
Version 3.81 fixes a small number of bugs in version 3.80:
- E. Lazard reported that inserting a single space in the search field in the preview window drawer causes a crash. This bug has existed for a long time, and is fixed.
- The "Open for Preview" menu item broke in 3.80. This is fixed. Many users reporting this problem were not aware of the Preference item "Configure for External Editor," which is the more natural way to use an external editor.
- In High Sierra, the list of user-defined engines in the popup engine menu was not sorted; although it was sorted in Sierra. This is fixed.
- The French localization contains a translation by Rene Fritz of the latest version of Herbert Schulz's TeXShop Tips and Tricks, available in the Help menu.
- After typesetting, the page number of the current page in the Preview window was set to 1, even when a later page was displayed. This is fixed. (The actual bug was that the page number was set to the current page of the lower half of the split window, even when that half was invisible.)
- TeXShop's selection of the dictionary to be used when checking spelling is improved. This is a very minor matter for most users, but it requires an extensive discussion.
The basic TeXShop design is that users may have several projects open on the screen at once. Using toolbar and menu items, each can be independently configured. One project may typeset using pdflatex, while a second may use LuaTeX. One source window may have magnified text while a second has regular text in a different font.
The purpose of the TeXShop Preference Pane is to set default values for projects when they are first opened. Changing a default value usually does not affect files already open.
On the Macintosh, the "Spelling & Grammar" pane is used to pick the spelling dictionary. Originally, TeXShop did not interact with this pane, so the pane worked via the default Apple method. This changed when cocoAspell appeared, because many TeXShop users wanted a dictionary that didn't mark TeX keywords as misspelled. These users didn't necessarily want to use that dictionary in other applications. So interaction with the spelling dictionary was implemented, but the implementation had a baroque, difficult to understand, structure. Version 3.81 of TeXShop finally treats selecting a dictionary on a par with other similar choices.
A new Dictionary field in TeXShop Preferences under the Source tab has a pop-up menu which can be used to select the default dictionary. Many users will use this menu to select a cocoAspell dictionary, and then ignore everything else about spelling dictionaries. The one unexpected feature is that dictionaries are listed using the ISO 639-1 and ISO 639-2 standards rather than the localized names shown in the Spelling & Grammar pane. These are easy to decipher.
When a new file is opened in TeXShop, it will be set to use the default dictionary. But this dictionary can be changed for that file by opening Spelling & Grammar and selecting a new dictionary. A user who writes in English but corresponds with a French relative can easily do that when writing a note to that relative.
A more unusual situation occurs if a user has several files open at once, some written in one language and some in another. Activate each source file by clicking on the text, and then select the dictionary for that file using Spelling & Grammer. Then with Spelling & Grammar still open, click randomly on these source files and notice that the dictionary field changes to the correct dictionary for each file.
Finally, if you intend to work on a file for an extended period of time and it does not use your default dictionary, the default dictionary for that file can be set with an instruction at the top similar to
- % !TEX spellcheck = de-DE
This particular document will then open with spelling set to German. But the Spelling & Grammar panel can later be used to switch dictionaries temporarily, in case a German letter contains an English quotation which needs to be spell checked.
After working on these changes, I mentioned them to a user who told me in a disappointed tone that he really just wanted to return to the days when TeXShop entirely ignored the Spelling & Grammar panel and let it "do its thing." There is a special hidden preference for that user:
- defaults write TeXShop OriginalSpelling YES
TeXShop Changes 3.78 - 3.80
Versions 3.78 and 3.79 were never released. Version 3.80 has the following changes:
- SyncTeX, which makes it possible to easily move back and forth between a spot in the source and the corresponding spot in the output, was written by Jérôme Laurens. This software consists of two pieces. One piece adds code to the various TeX engines, causing the creation of appropriate sync information and output of this information to the file myfile.synctex.gz during typesetting. The second piece can be used by authors of front ends; it opens the myfile.synctex.gz file, parses its contents, and deduces sync positions from the parsed data. TeXShop uses Jérôme's front end parsing code.
By the way, I use SyncTeX every day and offer Jérôme a mighty thanks for creating it.
In 2017, Synctex was revised by Jérôme; among other changes, syncing now works between code to input graphics in the source and the resulting image in the output. But when TeXLive 2017 was released, the revised code for front end authors was not yet ready. Luckily the old code continued to work with ordinary tex, latex, pdftex, and pdflatex.
Unfortunately, this code did not work with LuaTeX and LuaLaTeX, so users working with these engines usually could not sync. Even worse, TeXShop often crashed when using these engines because the initial parsing of the file myfile.synctex.gz itself crashed.
The new front end code is now available, and is used by TeXShop 3.80. The crashes of LuaTeX and LuaLaTeX have ceased, and synchronization works again, more accurately than in earlier years. Some new features require setting the flag which turns synctex on to 2 or higher. Thus users may want to write "--synctex=2" rather than "--synctex=1". This change can be made in TeXShop Preferences under the Engine tab, and in individual engines the user may have activated.
- A new engine called "filltex" was written by David Gerosa, and is available in ~/Library/TeXShop/Engines/Inactive/filltex. This spectacular engine is very easy to install; here's what it does. Two databases are commonly used in the astronomy and theoretical physics scientific communities: ADS and INSPIRE. These databases list preprints and published papers, referencing each with a citation index like 2016PhRvL.116f1102A. Suppose you have written a scientific paper in one of these fields, and suppose you citations use the standard forms for ADS and INSPIRE. For instance, your paper might have many citations, like "for more details consult \cite{2016PhRvL.116f1102A}." When the paper is done, typeset it using filltex. The engine will scrape bibliographic data from ADS and INSPIRE using the web, construct a bibliography, add the bibliography to the article, and rewrite the citations appropriately. All of this happens in one run of the engine. To see an example, typeset the example in the Inactive/filltex folder.
Many additional databases exist for other fields, and Gerosa tells me that using these databases with filltex is just a matter of revising the python code appropriately for these databases. He recommends that users interesting in doing this consult his git hub, as listed in the documents in TeXShop/Engines/Inactive/filltex.
- A modified SageTeX engine is now in Engines/Inactive/sage, together with new instructions for setting it up. These changes are required because the latest release, SageMath-7.6, has new requirements and a new internal structure.
- In some versions of macOS, opening a TeXShop Preview document in multipage mode scrolled down to the middle of the first page, rather than starting at the top. This is fixed.
- Some users noticed a slight creep of the Preview Window with each typesetting job. This is fixed or at least improved.
- TeXShop now contains latexmk 4.53a.
-
Herbert Schulz made changes in "TeXShop Tips & Tricks", available in the TeXShop Help menu.
In addition to these changes, a small number of users ran into other issues running on macOS Sierra.
Most users have had no trouble with Sierra, and find that it fixes a number of problems in the previous two or three systems, so these problems are rare:
First, a few users included the pstricks package in the header of their document, but used no features of this package and typeset with pdflatex. Usually pstricks requires TeX + DVI mode, so including it in the header of a pdflatex document is an error. But in Sierra, typesetting such a document with pdflatex created a pdf file that crashed PDFKit, Apple's pdf rendering code, and thus crashed TeXShop. This bug is fixed in High Sierra.
Second, some users writing beamer documents would typeset and scroll their document in TeXShop.
A particular image in the middle of the document would create a glitch, and some following pages would be blank. Scrolling back up would give additional blank pages, even though they were correctly rendered earlier in the game. Eventually the document could crash TeXShop. This problem is caused by a PDFKit bug, and is fixed by Apple in High Sierra.
But in the meantime, we discovered that typesetting the same source with LuaLaTeX or XeLaTeX
produces pdf files without problems. In addition, opening a defective pdf file with Adobe Acrobat Reader, and then saving that pdf file in Reader, produces a pdf file without problems.
One final problem occasionally occurs in Sierra. Many people use DropBox with TeXShop with no problems. A few of these users store their source files in the DropBox folder. A few of these folks report regular TeXShop crashes. In every case known to me, these crashes end when the TeX source files are removed from DropBox.
What is the explanation? I don't know, but I have suspicions. Recall that TeXShop uses Apple's Automatic
Saving code, introduced in Lion. Thus the system can save the source at random times. A source file in DropBox can also be moved to the cloud at random times. What if both the Mac and DropBox want to make changes at the same time?
The Automatic Saving code is buried deep in Cocoa and isn't by me. The only piece of TeXShop code by me related to automatic saving says "turn automatic saving on."
Here's all I know about this problem.
- I have never heard of problems from users of iCloud with TeXShop. This is not surprising since Apple wrote both iCloud and Automatic Saving.
- Users with this crashing problem report that crashes are fixed by creating symbolic links in DropBox to sources, rather than putting the sources there directly. I don't know why.
- Other users with this crashing problem report that crashes are fixed by turning off DropBox syncing during typesetting sessions.
- And all users report success moving their sources out of DropBox, and then dragging copies to DropBox at the end of typesetting sessions.
But to repeat, many report no problems.
TeXShop Changes 3.76 - 3.77
Version 3.76 was never released. Version 3.77 has the following changes:
- Items in the Tags menu are indented to make entries easier to find.
- A bug in Apple's search routines broke the search tool in the Preview Window's Drawer. This bug was fixed by Apple and search now works as before. It is conceivable that it is broken on Sierra 10.12.0 and 10.12.1; I no longer have such systems to test. Users who run into a problem on these systems should update the operating system to 10.12.2 or higher.
If a user clicks in a search result at the bottom of the Drawer, the corresponding item in the pdf Preview is highlighted. The up and down arrows can be used to rapidly scan various search results. This ability temporarily broke in 3.76, but works again in 3.77.
- At the suggestion of a user, the TeXShop Edit menu has an entry "Paste As Comment." This works essentially like "Paste" except that the newly pasted lines are marked as comments. This makes it possible to copy and paste a large selection from another document, and then carefully activate portions of the material.
- The Sage engine in the "Inactive" portion of ~/Library/TeXShop/Engines was improved by Markus Baldauf. Thanks!
- The latexmk file was updated to version 4.52c.
- Updated the TeXShop Help Menu document "First Steps with TeXShop" and the document "Quickstart Guide for Command Completion" in /LibraryTeXShop/Documents.
- At the request of Br. Samuel, OSB, the types gabc, gtex, glog, and gaux are now recognized by TeXShop; these types are used by the Gregario software. The files gabc and gtex are added to the types which receive syntax coloring and other "tex file" privileges, and gaux, glog, and gtex are added to file types deleted by Trash Aux Files.
- TeX users on Unix platforms often define an environment variable named TEXINPUTS, which lists folder which TeX should search for input files, style files, and the like. Using this variable is actively discouraged in TeX Live and MacTeX, and these systems are configured to make the variable unnecessary. For instance, files used by an individual user can be placed in ~/Library/texmf.
People who answer user questions about MacTeX sometimes run into problems associated with TEXINPUTS, since mistakes defining the variable can bring TeX crashing to a halt. And often users don't mention that they have set TEXINPUTS, leading to hours of useless debugging.
With these warnings, we now confess that TeXShop has a new facility for those few users with a legitimate need to set TEXINPUTS.
A user recently described such a case. This user belonged to a group whose members used common input files stored on a server. The members of this group worked on a variety of tasks which all used the same basic template, but then input different files depending on the task. These input files were given the same name, but stored in different folders on the server. To pick a task, a member of the group selected a particular server folder using TEXINPUTS, and proceeded.
The user in charge of this group wanted a simple way to switch TEXINPUTS so the remaining members of the group could use the system without really understanding how it worked.
To help this user, TeXShop 3.77 recognizes a new command to be added to the first twenty lines at the header of a source file. If a project has a root file and several input chapter files, the command should be in the root file. There are
four entirely equivalent forms of this command:
-
% !TEX TS-parameter =
%!TEX TS-parameter =
% !TEX parameter =
%!TEX parameter =
Each space is mandatory, and the final equal sign must be followed by one space and then a word or sequence of symbols without spaces.
For example, the following command might be issued by someone adding ~/MyTeXFiles to the standard TeX search locations:
-
% !TEX TS-parameter = ~/MyTeXFiles//:
The parameter defined by this command need not be connected to TEXINPUTS. It can be used for other purposes. So --- what does TeXShop do with this parameter?
The parameter is ignored unless typesetting is done by a user-defined Engine file. For example, it is ignored if the user types with TeX, LaTeX, pdfTeX, or pdfLaTeX. But it is used with the XeLaTeX Engine, and all other Engines.
An Engine file is just a shell script, which TeXShop runs to typeset. This shell script is called with two parameters, "$0" and "$1". The parameter "$0" contains a full path to the engine file run by the typesetting command, The parameter "$1" contains the name of the file to be typeset. The parameter command adds a third parameter, "$2", containing the word on the right side of the command. The engine script can do anything it wants with this parameter, including just ignoring it.
It is instructive to look at the XeLaTeX Engine file, which is very simple. The file begins with "#!/bin/tcsh", which says that it is a shell script for the tcsh shell. (There are many different shells, and each of their shell files has a different syntax.) Next comes a command setting the path, and
then a final command runs xelatex:
-
xelatex -file-line-error -synctrex=1 "$1"
We can add MyTeXFiles, defined above, to TEXINPUTS by adding the following line before the call to xelatex:
-
setenv TEXINPUTS "$2"
At this point, several warnings are important. The command to define TEXINPUTS is different in different shells, so copying the above line with another shell will fail. Turn back to the TEXINPUTS setting "~/MyTeXFiles//:" given earlier. The symbol // tells TeX to recursively search subfolders of MyTeXFiles, and the all-important semicolon at the end says to add this to the existing TEXINPUTS from TeX Live. Omit the senicolor and TeX will completely fail.
It is easy to define engines which duplicate the built-in typesetting engines. For example, to obtain an object which typesets using pdflatex, just duplicate and rename for xelatex engine, and replace xelatex by pdflatex in the engine script. Therefore, this mechanism can be used to determine TEXINPUTS with any typesetting method.
TeXShop Changes 3.75
In 3.74, Preview scrolling was smooth on El Capitan, but jerky on Sierra. This is fixed.
TeXShop Changes 3.74
TeXShop 3.74 fixes a small number of minor issues.
- In Version 3.72, when the mouse hovers over a hyperref link, a popup window shows the linked portion of the document. This did not work well for equations with an equation number on the right side of the page. Now if the link is in the right half of the page, the linked portion is selected further left.
- TeXShop uses five files by Jerome Laurens to interpret the contents of synctex files.
These files are occasionally updated with TeX Live updates. Previous versions of TeXShop used version 1.9 of the files; this version of TeXShop uses version 1.18. Users may notice small changes in sync due to this update.
- The edit menu contains an item labeled "Experiment...". Selecting this item brings up a small source window; text can be copied from the main source window to this window, and then edited there. A "Typeset" button on the small window typesets the experiment and shows it in a second small window. Both windows can be enlarged and their contents can also be enlarged using the standard keyboard shortcuts to change font size or pdf size. This facility, suggested by Wendy McKay, is particularly useful when editing complicated equations or tables.
Recently this feature was mentioned on the web site tex.stackexchange.com, and Denis
Bitouzé suggested an improvement. Following his suggestion, if a selection of source is made first and then the menu is chosen, the selection is automatically copied into the experiment window.
If no selection is made and instead the cursor is simply positioned by clicking at a point, then the Experiment window opens with its previous contents. Thus if a user carefully edits an equation, closes the experiment window, and then decides on a final change, the contents can be brought back for another edit.
- A TeXShop preference allows users to set the background color of the preview window, but that preference was ignored by the initial Sierra release. It is working again in a developer update beta. So users will want to install that update when it is released by Apple.
- CocoAspell is a spell checker by Anton Leuski which understands LaTeX and thus does not mark control words as misspelled. It is an extension of Apple's Spell Check system, controlled by a Spelling Preference Pane. Users get all the benefits of Apple's integration of spell checking with document source editors, but with a dictionary that is LaTeX aware.
The preference pane associated with this Spell Checker broke in El Capitan, and the entire spell checker broke in Sierra. But luckily, Anton Leuski released a new version for El Capitan and Sierra on November 8, and converted the project to open source. See
"http://people.ict.usc.edu/~leuski/cocoaspell/". Users need to download the spell checker at Anton's site because he makes many dictionaries available there depending on the language(s) needed. Highly recommended.
TeXShop Changes 3.72 and 3.73
TeXShop 3.72 finishes the task of preparing for macOS 10.12, Sierra. It also contains the changes below. The only change in 3.73 is to improve the responsiveness of popUps when mousing over links.
-
The LaTeX hyperref package adds active links and url's to pdf documents. Many are under author control, but the package automatically links table of contents items to the starts of chapters and sections, and links reference items to the corresponding bibliography entries.
TeXShop 3.72 makes it easy to understand these links at a glance. If the mouse hovers over a link, a popup window appears for several seconds showing the linked portion of the document. This is particularly useful when checking references in the document.
Normally the popup is on screen for four seconds and then disappears. If the option key is down at the end of these four seconds, the popup will remain on the screen until the mouse moves.
There is one cosmetic flaw. When the mouse hovers over a link, a small popup from Apple also appears giving the page where the link points. I don't know how to eliminate their popup. It does not appear in Sierra, so if you find it bothersome, upgrade to Sierra.
This feature was requested by Mark M. Wilde, who noticed that it is already present in Skim. Indeed Skim has a somewhat more elegant version.
-
TeXShop has a hidden preference setting to control the "ColorIndex" tool, as requested by Murray Eisenburg. Type the following command in Terminal to turn this item on by default for each new document:
-
defaults write TeXShop IndexColorStart YES
-
The TeXShop magnifying glass has been enhanced, as requested by Steffen Wolfram, but the enhancements are only available in El Capitan and higher. When either magnifying glass is being used, temporarily pushing the Command, Option, or Control keys will increase the amount of magnification, and temporarily pushing Shift-Command, Shift-Option, Shift-Control will decrease the magnification.
-
Herbert Schulz updated the Tips & Tricks Help File.
-
Following a request by Markus Gail, the Help commands "ShowHelpForPackage" and "openStyleFile" remove hidden white space, making them more robust.
-
TeXShop is now explicitly released under the GPLv2, and a copy of this license is available in the TeXShop menu.
TeXShop Changes 3.71
This version differs from 3.70 only in the German and Dutch localizations:
- In both German and Dutch, the pdf search field in the toolbar was not connected to the rest of the program.
- Some German translations were improved by Michael Rößner.
- The German source window had horizontal slack, and scrolled horizontally about half an inch. This was due to a bug in XCode 7.3.1. Merely opening an NSDocument.nib for a specific language creates the bug for that language. Luckily the bug is fixed in XCode 8.0 Beta. All localizations were tested in TeXShop 3.71 and none exhibit the bug.
TeXShop Changes 3.69 and 3.70
Version 3.69 was never released. Version 3.70 has the following features.
- Version 3.70 again uses the more extensive fixes by Martin Hairer for a memory leak problem, but with a small change to fix the bugs in the Preview toolbar that occurred in version 3.66.
- The behavior of the pdf search field on the toolbar has been improved. As before, command-F activates the search field so text can immediately be typed into it. Push RETURN to select the first occurrence of the word of phrase typed. This now switches the first responder to the pdf view, so the selection is highlighted in blue and easy to find.
To find the next occurrence, type command-g. To search backward, type shift-command-g. These commands again produce selections highlighted in blue. They are chosen to make searches in the text
and pdf windows behave the same way. (In earlier versions, RETURN and SHIFT RETURN performed these functions, but this was not parallel to find for text, and left gray selections rather than blue ones.)
To search on a particular page, go to that page and select some text, making sure the selection is not empty. The next search will begin at that spot. An empty selection will start the search at the beginning of the document.
If a search reaches the end of the document, it will cycle back to the beginning.
-
The pdf drawer alternate search method is still available. It works on all systems, including Sierra. However, Sierra's PDF search routines seem to have significant bugs, which have been reported to Apple. If these bugs are fixed, the current version will probably fail on Sierra, but
this will be very easy to fix.
TeXShop Changes 3.67 and 3.68
Version 3.67 was never released. The changes in version 3.68 are listed below:
- Version 3.66 included a fix for a memory leak written by Martin Hairer. This fix created an unfortunate bug. If the user closed the Preview window associated with a document and later typeset the document, the Preview window reappeared. But many tools in the window's toolbar no longer worked.
Luckily, Martin Hairer provided two different versions of his memory leak fix, one quite conservative with just a few changes, and the other more elaborate with lots of changes.
The bug only affected the more elaborate version. TeXShop 3.68 has the conservative set of Hairer bug fixes, and no longer exhibits the toolbar bug.
- The new search field on the Preview window has been improved. Now when the pdf window is active, typing command-F will activate the search field so a phrase can immediately be typed there. (The drawer no longer opens.)
As before, after typing a phrase in the search field, type RETURN to select the first occurrence of the phrase in the pdf file. Type RETURN again and again to select later occurrences. Type SHIFT RETURN to do a backward search.
- In Sierra, the old pdf search routine in the preview window Drawer stopped working.
In TeXShop 3.66, this search field was deactivated on all systems and replaced by the new
search field on the window toolbar. Some users missed the old method, so in 3.68 it is restored on all systems. Users who try both search methods will notice some harmless interaction between the two methods. Sierra users will discover that the old method fails.
If Apple later repairs the old method on Sierra, both methods will be kept and the interaction between these methods will be eliminated.
TeXShop Changes 3.66
- Version 3.66 has important code changes by Martin Hairer
of the Department of Mathematics, University of Warwick. These
code changes fix
memory leaks in previous versions of the program.
The changes include replacing several instance variables with
class properties, whose retain/release behavior under ARC is more
predictable. But the primary change is to remove some strong
reference cycles in which object A referenced object B and object B
referenced object A, and neither could be released without first releasing
the other.
Recent versions of Apple’s PDFKit use large amounts of memory
because they create and cache bitmaps for faster display. If Activity Monitor
is used while opening a document in TeXShop and scrolling through the preview pages,
this memory usage can seem alarming, but in practice it does not cause
problems.
The problems solved by Hairer are different and can be seen by closing documents
without quitting TeXShop. In this case, the program did not recover the
memory used by the document being closed. Hairer’s fix dramatically improves this sort of
problem, although it is likely that smaller memory problems remain.
- A few users reported a related bug. They would
close a document, reach into the document’s folder, and throw the pdf into the trash.
But the Macintosh would claim that the pdf was still in use and refuse to empty the trash
until TeXShop itself closed. This problem is a symptom of a memory problem and is
fixed by Hairer's code.
- In Sierra, the old pdf search routine in the preview window Drawer stopped working.
In TeXShop 3.65, this search field was replaced with a more useful search
field in the Preview Window toolbar; the new search works in all versions of OS X. In
recent Sierra releases, the old pdf search came partly to life, and interfered with the new search.
Temporarily, the old search if turned off in all versions of OS X. If the old search works again
in later versions of Sierra, it may be turned on again, but we suspect most users will use the
new toolbar search field.
TeXShop Changes 3.65
This fixes a few problems introduced in 3.64:
- Version 3.65 again works on Lion and Mountain Lion, and thus on all versions of
Mac OS from Lion to Sierra.
- I omitted the QTKit framework, and made AVKit and AVFoundation optional. The
AV frameworks aren't available on Lion and Mountain Lion, hence the crash of 3.64 on these
systems. Demo Movies will only play on Mavericks and above.
- The sync fix from source to preview for Sierra is only added on Sierra, since
it seems to cause minor problems on earlier systems.
- The tool to search PDF files is now localized.
- Sparkle in TeXShop is updated to version 1.14.0.
- Yusuke Terada added code to recalculate tab lengths whenever the user
changes the font or font size.
TeXShop Changes 3.64
TeXShop 3.64 fixes a few problems with the Mac OS 10.12 (Sierra) beta. One change
may be of independent interest.
- The initial beta release of Sierra had substantial PDFKit problems, but most
were fixed by Apple in the next beta. One problem was jumpy, non-responsive scrolling. I fixed this in TeXShop and Apple later fixed it in general. My initial
fix does no harm and is still present in 3.64.
- Sync from source to preview worked in Sierra, but the preview selection was not highlighted. This bug was due to TeXShop and is now fixed.
- TeXShop's Help Menu has a Demo item which can download and display two short movies
for new users. This was coded using Apple's QTKit, which was deprecated in Mac OS 10.9
in favor of AVKit. In Sierra, QTKit is gone. TeXShop 3.64 switches to AVKit. The movies, which used to be in .mov format, are now in .mp4 format.
- TeXShop's Preview window has a drawer, which displays an outline of the pdf if the
source uses hyperref. The bottom half of the drawer allows searches of the pdf file, but
does not work in the Sierra beta. Since the code for the search in the drawer comes directly from PDFKit documentation, I suspect this is an Apple bug which will eventually be fixed.
In the meantime, TeXShop 3.64 adds a new search field to the Preview window's toolbar.
Type a word and push RETURN and TeXShop will select the first occurrence of the word in the
pdf. Push RETURN again to display the next occurrence, etc.
Click the mouse in the PDF window to restart searching at the top of the document. Select some actual text in the PDF window to start searching at that point.
The search item will remain after Sierra is released, even if Apple fixes the drawer bug,
because I suspect that many users will prefer it.
The most-often-requested new TeXShop feature is tabs in the source and preview windows. Sierra provides this feature automatically, without any additional TeXShop code. Creating these tabbed views
is straightforward. Further details will be provided when Sierra is released.
TeXShop Changes 3.63
TeXShop 3.63 is an internal version, never released.
TeXShop Changes 3.62
- Latexmk upgraded to version 4.45
- Slight improvement in TeXShop Tips & Tricks by Herbert Schulz
- The menu item "Select TeXShop as Default TeX Editor" is now active
when either the Source or the Preview window is on top
- George Gratzer's "First Steps", the first section of his book "More Math
Into LaTeX", has been updated to the contents of the 5th edition.
- The TeXShop "Experiment" command ignores smart dashes, and thus does not
convert multiple dashes into a character which confuses TeX
- A few error messages referred to http://tug.org/MacTeX rather than the
correct http://tug.org/mactex. This is fixed.
- The TeXShop Preference Setting for "Show Console" was not initialized
to the current value when TeXShop was opened after quitting. This is fixed.
- Added a fix by Martin Hairer when using a git server with TeXShop. Martin
wrote "Here is a small improvement which is very useful to me.
I use a version control system (git) for some of my papers.
When git updates a file, it deletes it and then replaces it more or less
immediately by an updated copy with the same name. The
current version of TeXShop detects this, but it often just notices
that the file was pulled away under it's feet and then either
closes the document or replaces it by a blank.
"I propose to introduce a small latency between the moment TeXShop
gets notified of the file's deletion and the moment it checks for its status
so that it correctly handles changes to the file made in that manner.
More precisely, in TSDocument.h, I propose to add a sleep command
at line 1580"
TeXShop Changes 3.61
- "What's New" in TeXShop Help claimed that Sparkle was updated to version 1.31.
The update version number was actually 1.13.1, the latest version.
- In TeXShop Preferences under the Misc tab, the items "pTeX support" and
"During File Save" are only useful in Japan. They are now labeled so users elsewhere
will not be tempted to activate them.
- The error message when typesetting fails to find pdflatex or another tool has been improved.
- If the user is running El Capitan and has set the location of TeX binaries to
/usr/texbin or /Library/TeX/texbin, but this second location does not exist, an error
message explains what to do.
- Slight improvements in Korean and Spanish localizations
- Improved pTeX scripts by Yusuke Terada in ~/Library/TeXShop/bin.
TeXShop Changes 3.60
- Updated to Sparkle 1.13.1 for security reasons.
- TeXShop no longer adds a creator and type to files it writes. These were obsolete
from the Classic version of the file system.
- The command "Set TeXShop as Default TeX Editor" is now active when either the Source or Preview window is active
- Slight cleanup in English and Korean localization.
TeXShop Changes 3.59
There are several small changes in TeXShop 3.59:
- A new item is provided in the TeXShop menu, "Select TeXShop as Default TeX Editor."
Many programs are able to edit .tex files, so when the user double clicks such a file, it
is not clear which program will open it. Selecting the new menu item informs Apple's Launch Services that TeXShop should open such files.
The appropriate Launch Services API does not distinguish between different versions of a program. A few users are in the bad habit of keeping several copies of TeXShop on their
computer, and then the new menu will select a random version to run.
It is best to keep TeXShop in /Applications/TeX and update it via the Sparkle update mechanism. Then only one copy of TeXShop will be on the disk.
The author of TeXShop sympathizes with sloppier users, since he has dozens of versions
of TeXShop on his disk. He opens new files by dragging their icons to the TeXShop icon in the Dock
to insure that the correct copy runs.
- Alan Munn reported the following strange bug:
- \documentclass{article}
- \begin{document}
- \begin{enumerate}
- \item John started the car.
- \item John stopped the car.
- % environment completion here produces \stoped
- % even if the line is commented out
- % completing again produces the correct completion
- % but environment completion after these comments seems to work
This bug is fixed.
- The TeXShop menu has a new item just below Preferences called "Open ~/Library/TeXShop".
When this item is selected, the Finder will open the ~/Library/TeXShop folder.
In recent versions of OS X, ~/Library is a hidden folder. The new command makes it easy to access this folder without using special tricks.
Files in this location customize TeXShop for the individual user. For example, the Templates subfolder has all templates which appear in the Templates pulldown menu. These templates can be opened and edited in TeXShop; other templates can be added to the folder.
- For many years, users could type a line like
- % !TEX encoding = IsoLatinGreek
at the top of a source file to indicate that the file should be opened or saved using the LatinGreek encoding. But if the encoding name, here "IsoLatinGreek", was not recognized by TeXShop, the program would open the file using the "Mac OS Roman" encoding without reporting an error.
This bug is now fixed. An unrecognized encoding name will cause an error dialog to appear reporting the error, and then the file will be opened in "ISOLatin9", the current default encoding.
The best way to avoid this sort of error is to use the Encodings Macro to write
the displayed line, since this Macro lists all legal encodings and allows users to select the one they want.
- The alternate front end TeXWorks uses the same encoding magic line, but has different
names for many standard encodings. TeXShop now recognizes the TeXWorks names, making it easier for collaborators to share files.
- The TeXShop Help menu now has a new document by Herbert Schulz titled
"File Encoding in TeXShop". This document explains the significance of
various encodings of the source file, a topic of importance to users who do
not write in English.
TeXShop Changes 3.58
Recent TeXShop versions have been released to fix or work around a series of El Capitan bugs, particularly
in PDFKit. There are three major bugs:
- Magnification broke because a Cocoa command to get the PDF data underneath a portion of a window
returned a bitmap in El Capitan. A workaround for this bug was included in
an earlier TeXShop release.
- When a new version of a pdf document is loaded, there is a momentary flash
before the document is displayed. This bug has not yet been addressed.
- In several situations caused by loading a new file, PDFKit displays a blank page rather than the correct content on the page.
This seems to be caused by a new Apple design to speed up pdf display
by creating and caching bitmaps of recent pages. When the bug occurs, the bitmap is displayed
too soon.
When this bug occurs, it is fairly easy to obtain the missing image. With the blank page
active, type command-shift-+ to zoom in and then
acommand-shift-- to zoom back out. This causes the page to be displayed correctly.
However, it is better to insure that the blank page does not occur.
Several instances of this bug were fixed in earlier releases. This release fixes three
other cases:
- In external editor mode, typesetting caused blank pages to be displayed. This is fixed, or
at least mostly fixed. It is important to configure TeXShop correctly so the fix works. There are
two ways to use TeXShop in external editor mode. You can typeset with TeXShop, by making
the pdf page active and typing command-T. Or you can typeset from the editor or from a shell,
and configure TeXShop to update the display when the pdf file changes. In the first case,
the
TeXShop preference "Automatic Preview Update", under the Preview tab, should be off. In the
second case, it should be on.
- When the pdf window is split, the bottom half sometimes became blank. This bug is fixed.
- When the pdf window is split and then the user typesets,
half of the display is often blank. This version of TeXShop fixes the problem. The fix works
well in "multipage format", which I recommend. It can have problems in "single page format"
and "double page format", although it usually works in these cases. Because of these small
problems, the fix can be turned off. To do so, type the following command in Terminal:
- defaults write TeXShop FixSplitBlankPages NO
Incidentally, all three bugs have been reported to Apple.
In addition, the following changes were made:
- Max Horn fixed the "unindent" command. The previous version of this command would
sometimes lose a character.
- Max Horn also added #defines for NSAppKitVersion10_9 and the link in the TeXShop
code base,
so the source code should compile on Yosemite and Mavericks as well as on El Capitan.
- James Crippen asked that "paragraph" and "subparagraph" be added as
default tags because these items are used in the Memoir class. So currently
in LaTeX, the following receive automatic tags:
- chapter
- section
- subsection
- subsubsection
- paragraph
- subparagraph
- macro
- environment
- Fixed the French localization so both documents in Help
that have been translated into French occur in the Help menu.
The translations of documents by Herbert Schulz are by Rene Fritz.
TeXShop Changes 3.57
- The command to show the Key Bindings editor broke in the German localization, and is now fixed.
- The command to split the Source Window broke in 3.55 and is now fixed, at least in the English
localization. This is apparently a bug in XCode when editing the NSDocument.nib. Fixing it required
dropping down to XCode 7.0. No guarantees in other localizations.
- TeXShop can now edit documents with extension .lua.
TeXShop Changes 3.56
In version 3.55, there is a pause after typesetting before the new pdf is displayed. The
cause is a debugging device inadvertently left in the code. The pause is gone in 3.56.
TeXShop Changes 3.55
This version fixes two significant bugs when running in El Capitan:
- The text boxes in the Preview toolbar were incorrectly sized, so numbers in them were not
properly centered vertically. This includes the page number box, total page box, and magnification box. All are now fixed in all localizations. Localizations other than English are only lightly tested, so problems in the box display in these localizations should be brought to our attention.
- The magnifying glass displayed bitmapped images rather than clear pdf text when run in El Capitan. This was discovered early on, and a bug report was filed with Apple
on July 11.
- Over the years, at least four different designs were written to create a TeXShop
magnifying glass. All
were eventually broken by Apple changes. The Yosemite magnifying glass contained three
major calls:
-
thePDFData = [[self documentView] dataWithPDFInsideRect: [[self documentView] visibleRect]];
NSImage *theImage = [[NSImage alloc] initWithData: thePDFData];
[theImage drawinRect: magnifiedRect fromRect: sourceRect operation: NSCompositeSourceOver fraction 1.0];
The first call asked the Preview Window to provide the raw pdf data creating the region visible on the screen. The second converted this to an NSImage, a common object for handling
illustrations in Cocoa. The final call read from a section of this image, and wrote the result to a (usually larger) section, essentially enlarging the image. Our bug report claimed that the third call was broken in El Capitan.
After furious work this week, it turned out that the third command works well and the bug is in the first call, which asks for the raw PDF data of a typeset document. Apple claims that drawing of pdf documents is faster in El Capitan; apparently that's because PDFKit converts several pages to bitmaps and saves them for later drawing. The first call occasionally returns raw PDF code, but more often it just returns a bitmap. Magnifying that bitmap gives unpleasant results.
The bug is fixed by getting the raw PDF data a different way, on a page by page basis.
Because I wanted to fix this bug rapidly, the current code only gets data from one page of a document. Imagine that several pages are shown on the screen, perhaps because scrolling left part of one page and part of another page on the screen. Or perhaps the user is displaying two pages side by side. When magnification begins by clicking on a point, only the material on that page will appear in the magnifying glass. If the glass moves off of the initial page, it will show white contents with no magnified material. Release the mouse, and push it again to magnify a different page.
This code may be improved in the future.
On Yosemite and earlier, the old code is used. We could use the old code
everywhere if Apple fixed the bug.
- One user was bothered by bouncing behavior when scrolling. Here is advice from a past
TeXShop release:
In Yosemite, the source code window's scroll controls have some elasticity, so the
source bounces slightly at the top and bottom of the document. Yusuke Terada noticed
that these bounces sometimes obscure the first or last lines of the document, making it
difficult to edit these lines. Yusuke Terada added a hidden preferences to turn off this elasticity.
To activate the hidden item, type the following in /Applications/Utilities/Terminal:
-
defaults write TeXShop SourceScrollElasticity NO
- Finally, complaints have surfaced that the display of pdf files in El Capitan is
unsatisfactory for some combinations of monitor and computer. Everyone seems to agree that
the display is sharp and clear on large Retina display machines, and the problem may be
caused by Apple optimizing for these machines. If you are bothered by poor display quality, the best we can do is to repeat the advice given two years ago when this problem first surfaced:
I am just barely able to notice a difference myself, using Apple's 27 inch Thunderbolt Display. A few users sent me email with pairs of png files, showing an image under Mavericks and under Yosemite and pointing out the fuzzy result on Yosemite, but in some of these cases I couldn't see the difference. So the problem seems to depend strongly on the computer screen used, and perhaps on user sensibilities. Some users may be completely happy while others are desperate for fixes.
Version 3.44 of TeXShop has several hidden preference items which may help with this problem. There is no universal solution, so experimentation with these preference settings will be needed
if you find the display fuzzy.
TeXShop and many other graphical front ends for TeX and PDF display use Apple's PDFKit and Cocoa frameworks. These frameworks rasterize pdf images are an extremely low level not accessible to programmers. Version 3.44 tries to expose all the routines in Cocoa which could modify this
rasterization. Notice that TeXWorks and Adobe Acrobat do not use PDFKit and Cocoa and thus behave differently. It does little good to call these programs to our attention since switching to a different pdf display library would betray a key feature of TeXShop (and other programs using these frameworks, namely that they are fully native applications.
With these caveats, let us list possible solutions. Yusuke Terada noticed that in Japan,
the display could appear fuzzy and then be made legible by tweeking the magnification. So he
added code in TeXShop to do this automatically each time a pdf file is opened or typeset. To turn this feature on, type the following in Terminal:
-
defaults write TeXShop FixPreviewBlur YES
If this tweek fixes the problem, leave it on and stop reading. Otherwise turn the feature
off by using the same command with YES replaced by NO, since the tweek is likely to interfere
with remaining experiments.
Apple's System Preferences in the General Pane has an item labeled "Use LCD font smoothing when available." A few users discovered that turning this item off cured fuzzy behavior. I think this
fix won't help most users, but it might be worth a try.
TeXShop also has a preference item under the Preview tab labeled "Smooth text and line art."
This item was originally added to fix a different problem. One user created an illustration with very thin lines. On a previous TeXShop, the lines vanished with regular monitors, although they appeared with the Retina display. The user discovered that the lines appeared in Acrobat, and
by turning on antialiasing they also appeared in TeXShop.
The code provided by Cocoa to turn on antialiasing has additional features not exposed in
previous versions of TeXShop. Cocoa provides the ability to set the level of antialiasing. The
previous "Smooth text and line art" preference set this value as "high".
In TeXShop 3.44, hidden preference settings can select the interpolation level. To test various levels of antialiasing, turn on "Smooth text and line art" in TeXShop Preferences and then
set the hidden preference
-
defaults write TeXShop InterpolationValue 3
where the final value can be any integer between 0 and 4. Apple's API documentation provides
the following names for these values, which perhaps give a hint of their function. The list is as follows; the strange reversal of 3 and 4 occurs in the official list:
-
0 = NSImageInterpolationDefault
1 = NSImageInterpolationNone
2 = NSImageInterpolationLow
4 = NSImageInterpolationMedium
3 = NSImageInterpolationHigh
Frankly, I suspect
an entirely different solution will be best for most people. That solution is to change the font used for your TeX document, via the wonderful macros written by Michael Sharpe and added to TeXShop
late this summer. For detailed explanation, read the description below under "TeXShop Changes 3.39."
Notice that it is possible to add Michael's commands for one particular font to your
default template, so that font will always be used for new documents.
All of these fonts are included in the full TeX Live distribution, so using them
should cause no trouble when collaborating with Windows or Linux users.
The font commands take up four or five lines in the preamble, and are easily discarded
once the document is complete if you want the final document to have a plain vanilla look.
On the other hand, Michael's choices come from an expert and may satisfy more readers
than the previous default font choices.
TeXShop Changes 3.54
Sparkle was broken in version 3.53. It is fixed in version 3.54. For some time, TeXShop
loaded the two movies in the Help Menu from the internet. This also broke, and is again
fixed.
TeXShop Changes 3.53
El Capitan introduces a significant change for TeX users. The location /usr is no
longer writeable, even by users with root privileges. Consequently, the symbolic link /usr/texbin has been relocated to /Library/TeX/texbin. This new link is automatically written by
both MacTeX-2015 and BasicTeX-2015. If you updated to one of these, you have the link.
Once the link exists, older versions of TeX like TeXLive-2013 also work fine.
GUI programs must be reconfigured to look for the new link. TeXShop 3.52 and
later does this automatically.
For more information on TeX and El Capitan, see tug.org/mactex/elcapitan.html
TeXShop 3.53 includes the following changes:
- On Mavericks, the Preview display of text was slightly blurry on many
screens. This was probably caused by changes Apple added to support the
Retina display. Many work arounds for the problem has been suggested. Terada Yusuke added code which improved the display for many. His
code is activated by a hidden preference
- defaults write TeXShop FixPreviewBlur YES
Apple improved the pdf display in Yosemite, and again in El Capitan.
But some users still see traces of the old blur. Terada Yusuke has modified
his code for El Capitan, and users unsatisfied with the Preview output should
activate the above hidden preference.
- Near the end of the Macro menu, there is an item ``Tables --> Table'' which inserts the
outline for a table into the source. The first line of this source is
- \begin{table}[htdp]
However, ``d'' is not a legal parameter for tables. Previous versions of LaTeX ignored this error, but it is flagged as an error in the 2015 version.
The easiest way to fix this is to open the TeXShop Macro editor and remove the ``d''. If you have never edited the default macros,
you can also get the fix by quitting TeXShop, going to ~/Library/TeXShop and
throwing the entire Macros folder in the trash. Then restart TeXShop and the current
Macros folder will be created.
- Some changes made in TeX Live 2015 caused a few programs to output unexpected
SyncTeX code, which then caused TeXShop to lose control of the mouse. This was a TeXShop
bug, not a SyncTeX bug. It was fixed in 3.52.
When using SyncTeX, occasionally the system cannot find a match.
In those cases, the older Sync method is called. But this older method turned
out to crash for the same reason. So in 3.53, the old Sync is not called and in
these unusual situations, no Sync is found.
- One or two coding changes were made so TeXShop will compile with the latest
XCode.
TeXShop Changes 3.52
Many of the changes in version 3.52 prepare for OS X 10.11, El Capitan.
In that system, the /usr/texbin link to the TeX binaries is replaced with a new link,
/Library/TeX/texbin. Users who have installed MacTeX-2015 or BasicTeX-2015 already have
this new link.
- TeXShop 3.52 uses the new link automatically when appropriate, and thus needs no
configuration for El Capitan. To be specific, on startup, if the path setting in TeXShop Preferences under the Engines tab is /usr/texbin AND /usr/texbin either does not exist or is not a symbolic link AND /Library/TeX/texbin exists and is a symbolic link, then the preference setting is changed to /Library/TeX/texbin. Similarly if the preference setting is /Library/TeX/texbin AND /Library/TeX/texbin either do not exist or is not a symbolic link AND
/usr/texbin exists and is a symbolic link, then the preference setting is changed to /usr/texbin.
In all other cases, the setting is not touched.
- Engine files in ~/Library/TeXShop/Engines which define $PATH have been modified by adding /Library/TeX/texbin to the path; /usr/texbin remains so these files will work on both old and new systems.
- Macros in ~/Library/TeXShop/Macros has been modified to refer to /Library/TeX/texbin
rather than /usr/texbin. (Only three occurrences of /usr/texbin were found in the old Macros
file.) Users do not automatically get the new macros, so users with an older system will not be affected. Users who installed MacTeX-2015 or BasicTeX-2015 can safely use the new Macros
because they have the new link.
- The English Help Panel has been modified to mention /Library/TeX/texbin rather than
/usr/texbin.
- In the current El Capitan beta, sync from source to preview switches to the correct pdf page, but does not hilight the new selection in yellow. This is fixed.
- In the current El Capitan beta, the magnifying glass works but displays a bitmap rather than a sharp pdf image. I suspect this is an Apple bug which will be fixed.
- The German localization has been improved by Lukas Christensen. Thanks!
- Klaus Tichmann reported a synctex bug and a fix. The "synctex_scanner_get_name"
sometimes returns NULL rather than a valid string. This can lead to loss of mouse control.
The fix is in version 3.52.
TeXShop Changes 3.51
- TeXShop has two new macros by Michael Sharpe, tabularize and tabularize + space.
These macros were suggested by Nils Enevoldsen and make it easier to construct and edit tables.
To examine the Macros, go to ~/Library/TeXShop/New/Macros and copy the items tabularize.plist
and tabularize.pdf to the desktop. The second is documentation for the macros.
To add the Macros, select "Open Macro Editor" in the Macro menu. Then select "Add Macros
from file...", which appears in this menu. Navigate to the desktop and select the file
tabularize.plist.
- Many missing German translations were added to the German localization by Lukas Christensen.
- There is a minor fix to the Korean localization by Karnes Kim.
- Latexmk was updated to 4.43.
- The Help menu contains a short new document by Herbert Schulz, "TeXShop Feature Confusion".
- There is a new item in the Edit Menu, "Correct Spelling Automatically", and a related
new item in the Preferences Panel, "Correct Spelling". The menu item toggles spelling correction on or off for the top most document. The Preferences item sets the default setting when a document is first created or opened.
Spelling correction is a new feature inherited from the iPhone. When it is on, the Mac automatically corrects the spelling of misspelled words, and often suggests completions for words or phrases that are partially typed. Note that "check spelling" and "correct spelling" are
different; the first underlines misspelled words in red, while the second actually changes the text.
Many of us dislike spelling correction. When this system doesn't know a word, it can replace it with a new bizarre choice. For this reason, spelling correction is off by default until the
Preference setting is changed.
Spelling correction only works with Apple dictionaries. If cocoAspell has been installed on your system and one of its dictionaries is chosen, spelling correction won't do anything.
- System 10.10.3 introduces a new emoji feature "Skin tone modifier" for ethnic diversity.
Yusuke Terada's Character Info feature has been modified to support this feature.
- Previously, typesetting in single window mode left the text side of the window active. This
is fixed, and now the behavior is determined by the "After Typesetting" item in TeXShop Preferences. When this item is set to "Bring Preview Forward", typesetting in single
window mode makes the preview side of the window active.
- Yosemite 10.10.3, released on April 8, 2015, fixes the "preview blur" problem which cropped up when Yosemite was introduced. The original system was optimized for the Retina display and produced blurry text in the Preview window on regular monitors. In 10.10.3, the display is again
crisp on these monitors.
Consequently,
fixes for this problem introduced in TeXShop 3.44 and 3.45 are no longer needed. In particular,
we recommend setting FixPreviewBlur to NO via the Terminal command
-
defaults write TeXShop FixPreviewBlur NO
TeXShop Changes 3.50
- Richard Koch's email address changed from koch@math.uoregon.edu to koch@uoregon.edu.
All occurrences of this address in TeXShop were changed.
- A TeXShop Preference item allows the user to set the size and location of
the console window when it opens. This item has a button titled "Set with current position." In
3.49, this button was always active, even thought it only makes sense if the option
"All consoles start at fixed position" is selected. Now it is active only
in this case. This behavior is consistent with similar Preference item behaviors for the
Source and Preview windows.
- Terada Yusuke updated the OgreKit spell panel to the latest version. In the process,
he added features and fixed bugs:
- There is a Chinese localization by Wei Wang, onev@onevcat.com.
- When rich text was pasted to OgreKit, the style was mistakenly pasted. This is fixed.
- Previously the Japanese yen mark was incorrectly passed to OgreKit. This is fixed.
- A strange behavior of OgreKit when using OS X Spaces, pointed out by Daniel Grieser,
is fixed. Previously the Preview and Source windows were attached to a space, but the Find
window floated to whatever space was currently active.
TeXShop Changes 3.49
TeXShop Changes 3.48.1
- Version 3.48 had a serious problem when used in French. Double clicking on a TeX
file opened TeXShop, but not the source. This was caused by a missing connection in the
French nib file. This was almost immediately corrected in 3.48.1.
TeXShop Changes 3.48
TeXShop Changes 3.47
TeXShop Changes 3.46
- In Yosemite with Single Page or Double Page modes in the Preview Window,
the arrow keys scrolled in the wrong direction. This was fixed in a previous
TeXShop version. However, the fix partly broke the behavior of the up and
down arrows in all modes.
In 3.46, the old behavior for up and down arrows returns; these keys scroll up
or down one line until coming to the end of a page, and then page.
- In previous versions of TeXShop, each typesetting job caused a slight adjustment in the portion
of the page displayed. Typically, the window would gradually creep upward. This adjustment seemed to depend on magnification,
the portion of the page displayed, and more. We tried various kludges to minimize
the creep.
It looks like Apple fixed this bug in the latest Yosemite, so we have removed the
kludges. Preliminary tests show that creep is greatly reduced. Notice that the
problem will definitely remain in earlier versions of OS X. Upgrade to the latest
version is possible.
-
When TeXShop runs with Auto Saving active, some items in the file menu
are modified automatically by Apple. These
items are labeled
-
Save As, Duplicate, Rename, Move To, Export, Revert to Saved, Revert
In particular, Revert allows users to activate a "Time Machine" like window and
revert back to an earlier version.
Some of these items do not work in Single Window Mode, and Revert causes
TeXShop to crash. So (at least temporarily) the items are all disabled in
Single Window Mode. Obviously they continue to work in the usual mode
in which the source and preview are placed in different windows.
This crash has never been reported, and we suspect that Single Window users seldom
try these items. Note that "Save" is unaffected by the change, and often used.
Warning: Apple has experimented with the placement of these items; in
Lion, for instance, Revert was on a pull down menu activated from the window
title. We have not gone back to earlier versions of the operating system to
make corresponding fixes.
- There are minor improvements in the Japanese, Korean, and Italian localizations.
- OgreKit has been updated to the latest version. Also OgreKit is now localized for Korean.
- Yusuke Terada fixed "Remember last position" for the Console window.
This is complementary to a previous addition of "Always Open Console at
a Fixed Position".
- Fixed minor toolbar glitches pointed out by Herbert Schulz: "Page" and "Scale"
were improperly clipped in some localizations including English.
- Added a new encoding option: Korean (Windows, DOS)
TeXShop Changes 3.45.2
- A new TeXShop Preference item under the Console tab allows users to set the default size and location of the Console Window. To set these values, open a document and use TeXShop’s "Show Console" menu to bring the console to the foreground. Adjust its size and location as desired. Then open TeXShop Preferences, select the Console tab, choose "All consoles start at fixed position" and press the "Set with current position" button. Then click "OK."
-
The Source <—> Preview menu item and associated keyboard shortcut now work in Single Window mode.
TeXShop Changes 3.45.1
- In 3.45, the Trash-AUX command did not work if some directory names in the full path to a file contained spaces. This is fixed.
TeXShop Changes 3.45
- The left column of the Macro Editor window was essentially blank,
showing separator images but no text. This error was caused because
TeXShop 3.44 was compiled on Yosemite. The same source code compiled
on Mavericks worked on both Mavericks and Yosemite. A work around
was found and the source now compiles and works on both Mavericks and Yosemite.
- The command to trash AUX files had a bug and did not fully work.
The problem is now fixed.
- Karnes Kim produced a Korean localization of TeXShop, which is now
part of the program.
- Yusuke Terada provided tweeks and fixes for the following:
- The hidden preference setting
-
defaults write TeXShop FixPreviewBlur YES
has been improved so that it works if users zoom the PDF
by pinch gestures with the Magic Mouse or trackpad.
- In TeXShop 3.41, the maximum possible PDF window magnification
was increased from 1000% to 2000%. But a few constants in the code
still contained the 1000% limit. These have been changed to
2000%.
- A small error prevented the fix for remembering the PDF Window
location when quitting. This is fixed.
- In the Macro Editor, dashes and quotes were automatically changed to smart dashes and smart quotes, breaking some applescript macros. This is fixed.
TeXShop Changes 3.44
Version 3.44 has the following changes
- Several users reported a crash just after typesetting when TeXShop ran on Yosemite. The users told me that only certain documents caused crashes, and under unusual circumstances. For instance,
some documents caused crashes if typeset twice in succession. By looking at crash logs, I could see that all these crashes occurred at the same spot in the code, but at first I was unable to reproduce these crashes.
Finally a user named Tim Leathart reported a crash, sent the source for a document creating the crash, and gave very precise instructions about producing the crash. Using this information, I was able to crash my machine and thus find the bug. It turned out that only documents using
hyperref crashed, and the crash was caused by incorrect code in TeXShop used to process the outline that such documents often contained. It was not necessary to open the Preview drawer and view the outline to get the crash.
The code is fixed.
- On Yosemite using a Preview window configured for "Single Page" or "Double Page" display,
the keyboard shortcuts to page up or page down were reversed. This bug was noticed by Yusuke Terada and fixed. There are no changes in "MultiPage" or "Double MultiPage" modes since Yosemite behaves correctly for these modes.
- Autosave for the Preview window was broken and is fixed.
- The next two items discuss hidden preferences to fix minor TeXShop annoyances. Before
adopting these hidden preferences, users should determine whether they find the current behavior annoying.
In Yosemite, the source code window's scroll controls have some elasticity, so the
source bounces slightly at the top and bottom of the document. Yusuke Terada noticed
that these bounces sometimes obscure the first or last lines of the document, making it
difficult to edit these lines. Others of us do not have this problem. Yusuke Terada added a hidden preferences to turn off this elasticity.
To activate the hidden item, type the following in /Applications/Utilities/Terminal:
-
defaults write TeXShop SourceScrollElasticity NO
- Herbert Schulz noticed that during scrolling of the source window, the lines numbers
scroll at a slightly different rate and require a fraction of a second to catch up. Yusuke Terada pointed
out that this is due to a fix implemented in Lion for a Lion bug affecting line numbers. Apparently this line number bug has
been fixed by Apple in Yosemite. A hidden preference is available to turn the fix off. When
this is done, line numbers and text scroll in unison except near the ends when source elasticity applies. By turning off source elasticity as well, the line numbers and text scroll together:
-
defaults write TeXShop FixLineNumberScroll NO
defaults write TeXShop SourceScrollElasticity NO
- One user discovered that "Aggressive Trash AUX", which is activated by a hidden
preference setting, could remove items in hidden ".git" directories and thus impact repository
management systems. In version 3.44, TeXShop does not search hidden directories in aggressive mode.
- Finally, a number of users switching to Yosemite reported fuzzy preview images
and inadequate antialiasing on certain monitors. I'm told the image looks fine on Retina
displays including the new 27 inch iMac. Perhaps Apple optimized pdf rasterization for these displays without worrying enough about other monitors.
Frankly, I am just barely able to notice a difference myself, using Apple's 27 inch Thunderbolt Display. A few users sent me email with pairs of png files, showing an image under Mavericks and under Yosemite and pointing out the fuzzy result on Yosemite, but in some of these cases I couldn't see the difference. So the problem seems to depend strongly on the computer screen used, and perhaps on user sensibilities. Some users may be completely happy while others are desperate for fixes.
Version 3.44 of TeXShop has several hidden preference items which may help with this problem. There is no universal solution, so experimentation with these preference settings will be needed
if you find the display fuzzy.
TeXShop and many other graphical front ends for TeX and PDF display use Apple's PDFKit and Cocoa frameworks. These frameworks rasterize pdf images are an extremely low level not accessible to programmers. Version 3.44 tries to expose all the routines in Cocoa which could modify this
rasterization. Notice that TeXWorks and Adobe Acrobat do not use PDFKit and Cocoa and thus behave differently. It does little good to call these programs to our attention since switching to a different pdf display library would betray a key feature of TeXShop (and other programs using these frameworks, namely that they are fully native applications.
With these caveats, let us list possible solutions. Yusuke Terada noticed that in Japan,
the display could appear fuzzy and then be made legible by tweeking the magnification. So he
added code in TeXShop to do this automatically each time a pdf file is opened or typeset. To turn this feature on, type the following in Terminal:
-
defaults write TeXShop FixPreviewBlur YES
If this tweek fixes the problem, leave it on and stop reading. Otherwise turn the feature
off by using the same command with YES replaced by NO, since the tweek is likely to interfere
with remaining experiments.
Apple's System Preferences in the General Pane has an item labeled "Use LCD font smoothing when available." A few users discovered that turning this item off cured fuzzy behavior. I think this
fix won't help most users, but it might be worth a try.
TeXShop also has a preference item under the Preview tab labeled "Smooth text and line art."
This item was originally added to fix a different problem. One user created an illustration with very thin lines. On a previous TeXShop, the lines vanished with regular monitors, although they appeared with the Retina display. The user discovered that the lines appeared in Acrobat, and
by turning on antialiasing they also appeared in TeXShop.
The code provided by Cocoa to turn on antialiasing has additional features not exposed in
previous versions of TeXShop. Cocoa provides the ability to set the level of antialiasing. The
previous "Smooth text and line art" preference set this value as "high".
In TeXShop 3.44, hidden preference settings can select the interpolation level. To test various levels of antialiasing, turn on "Smooth text and line art" in TeXShop Preferences and then
set the hidden preference
-
defaults write TeXShop InterpolationValue 3
where the final value can be any integer between 0 and 4. Apple's API documentation provides
the following names for these values, which perhaps give a hint of their function. The list is as follows; the strange reversal of 3 and 4 occurs in the official list:
-
0 = NSImageInterpolationDefault
1 = NSImageInterpolationNone
2 = NSImageInterpolationLow
4 = NSImageInterpolationMedium
3 = NSImageInterpolationHigh
Frankly, I suspect
an entirely different solution will be best for most people. That solution is to change the font used for your TeX document, via the wonderful macros written by Michael Sharpe and added to TeXShop
late this summer. For detailed explanation, read the description below under "TeXShop Changes 3.39."
Notice that it is possible to add Michael's commands for one particular font to your
default template, so that font will always be used for new documents.
All of these fonts are included in the full TeX Live distribution, so using them
should cause no trouble when collaborating with Windows or Linux users.
The font commands take up four or five lines in the preamble, and are easily discarded
once the document is complete if you want the final document to have a plain vanilla look.
On the other hand, Michael's choices come from an expert and may satisfy more readers
than the previous default font choices.
TeXShop Changes 3.43
Version 3.43 has the following changes
- Fixed a bug after drawing a selection rectangle in the Preview Window. If this
window became inactive and then was activated again, drawing into the
window would become erratic or worse. Now when the window is
deactivated, the selection rectangle is removed.
- TeXShop has a hidden preference reversing the order of the
source and preview windows in single-window mode
-
defaults write TeXShop SwitchSides YES
After selecting this preference setting, use "Customize Toolbar" with
the single window active to rearrange tools appropriately.
- Yusuke Terada fixed Automatic UTF-8-Mac to UTF-8 Conversion, which
is used mainly in Japan, so it correctly opens root file documents.
- Yusuke Terada also fixed a couple of cases when TeXShop commands
created a "ghost window" with no content, and made (command+1) switching
source window also work on console windows.
TeXShop Changes 3.42
Version 3.42 has the following changes
- In Split Full Window mode, additional toolbar tools are provided: the "Scale" tool, the
"Color Index" tool, and the "Key Bindings" tool.
-
Toolbar items for this window now have reasonable localized names, rather than
the very technical names in version 3.41.
- Various bugs in the Split Full Window mode are fixed.
- The Spanish localization temporarily changed to Chinese. This is
fixed.
- The Macro menu failed to work in Split Full Window mode if the user switched
to another window and then back to the split window. This bug is fixed.
- In Full Window mode, if the text portion was split, both the
Macro menu and the Sync between Preview and Source always used the same piece of text rather than switching when the other piece of text was made active. This is fixed.
- Yusuke Terada improved the new "Character Info" command
from 3.41. He writes
- National Flags:
An emoji character of a national flag consists of 2 unicode characters.
For example, 🇺🇸 consists of U+1F1FA (REGIONAL INDICATOR SYMBOL LETTER U)
and U+1F1F8 (REGIONAL INDICATOR SYMBOL LETTER S),
and 🇯🇵 consists of U+1F1EF (REGIONAL INDICATOR SYMBOL LETTER J)
and U+1F1F5 (REGIONAL INDICATOR SYMBOL LETTER P).
Thus, they should be displayed as "a letter consisting of 2 characters",
but it is displayed as "a letter consisting of 4 characters" in the current version of TeXShop.
This is because the regional indicator symbol letters are positioned
outside the BMP (Unicode Basic Multilingual Plane).
I fixed this issue so that these national flags are correctly displayed
as "a letter consisting of 2 characters".
- Support for Ideographic Variation Selector (IVS)
In Japan and China, some kanji characters have multiple variants.
For example, both 神 and 神󠄀 have the same meanings (they mean "God")
and the same readings. They are considered as variant forms of the same kanji.
IVS, Ideographic Variation Selector, is used in order to distinguish them.
For example, the single unicode character U+795E brings the output "神".
On the other hand, the sequence "U+795E U+E0100" brings the output "神󠄀".
U+E0100 itself is not a letter. This is a variation selector.
In Unicode, there are variation selectors like this in U+FE00..U+FE0F (Variation Selectors),
U+E0100..U+E01EF (Variation Selectors Supplement),
U+180B..U+180D (Mongolian Free Variation Selectors).
In the current version of TeXShop, the character info of "神󠄀" is
displayed as "a letter consisting of 3 characters".
I modified TSGlyphPopoverController.m for IVS support so that this is
displayed as "CJK UNIFIED IDEOGRAPH-795E (Variant)", like "RED APPLE (Emoji Style)".
TeXShop Changes 3.40 and 3.41
Version 3.40 was never released. Version 3.41 has the following changes
- When editing a document, it is possible to place the source view and preview view in a
single window rather than dealing with two windows for these views. This is particularly useful when using the "full screen" option, since the screen will contain both source and preview views.
To implement this feature, a number of minor changes were required throughout the TeXShop source code. The initial implementation is therefore rather conservative. At the moment, for instance, no Preference
item is provided to automatically open documents in this form.
If a document has both source and preview windows, activate the source window and then select the item "Use One
Window" in the Windows menu. The two windows will be replaced by a single window containing both views. With this window active, select "Use Separate Windows" to replace the single window
with a pair of windows.
The first time this happens, the single window will not have an appropriate size and position. Resize it appropriately. TeXShop will remember this size and position, but it is even better to
carefully select an optimal size and position, and then with the window active choose "Save Source Position" in the Source menu. TeXShop will use that size and position in the future.
A source window cannot be converted to single window form unless the corresponding preview window also exists.
If a project has a root view and additional chapter views, only the root view can be converted to single window form. Thus the new feature is not likely to be useful for projects divided in this way.
- In previous versions of TeXShop, duplicate copies of many documents in the Help menu were placed in the Localized directories of TeXShop, even though these documents had never been Localized. This duplication is cleaned up in version 3.41, reducing the size of the program by almost a third. The English versions of the documents will still appear when TeXShop is used in another language.
- Yusuke Terada provided a new menu item in the Edit menu called "Character Info." To use it,
select one or more letters in the source file and then select the menu item. If only one letter
is chosen, a balloon will appear showing a magnified version of the glyph, its full unicode name, and its unicode character. When glyphs require two or three characters, all required characters will be displayed.
If several letters are selected, the
balloon will list the number of characters, words, and lines in the selection, and show the unicode character for each glyph.
Below are sample balloons provided by this feature:
- Christian Icking discovered that TeXShop became inoperative or
crashed when opening a file containing
% !TEX root =
but with no non-space characters after the equal sign. This bug
is fixed.
- Typesetting for "Experiment" is more robust. It now uses the
Preference settings for pdflatex and simpdftex latex and the
personallatex setting. If the user's pulldown menu is set
to latex, the three choices of 1) pdflatex, 2) tex + dvi, 3) personal
script are obeyed. This should make the command work for
TeX in Japan.
- The commands Next Source Window and Previous Source Window
in the Window menu again work, and do not bring up "ghosts" of
closed windows.
- In the previous version, the Indent and Unindent commands were
modified to insert spaces rather than tabs in the source. A few users
preferred tabs. There is now a preference item for these users; they
should check "Use Tabs" in TeXShop Preferences, under the Source tab.
- The Preference command to select the source font
was broken when TeXShop was used in English, due to a missing connection
in the English Localization File. This is fixed.
- Yusuke Terada doubled the maximum magnification level allowed for PDF files,
so it is now possible to look at very small details of the preview output.
- Yusuke Terada provided new Preference settings under the Miscellaneous
tab for projects with a root file. When opening a chapter file, TeXShop previously
also opened the root file and then immediately miniaturized the root source. Users can choose to
avoid this miniaturization, or to avoid opening the root file at all. In the second case, the root
will open when needed, for instance during typesetting.
TeXShop Changes 3.39
- The most significant change in 3.39 is the addition of Michael Sharpe's "Recent TeX Fonts" document and associated font Macros. Michael and I attended the TeX User Group meeting in Portland, Oregon at the end of July, 2014. I knew him as an Applescript expert; several of his scripts are in TeXShop. Other macros from him will appear in a future version. To see his scripts, go to
https://dl.dropboxusercontent.com/u/3825336/TeX/index.html.
Pay particular attention to
macrocopier.zip on this location, a stand alone program which makes it easy to maintain and extend TeXShop macros.
At the TUG meeting, I discovered that Sharpe is a font expert widely known to users on other platforms.
TeX Live contains a very large number of TeX fonts, but it is not that easy to use them.
Most font sets don't have mathematical symbols, and it becomes a design task to find pleasing combinations of fonts for text, sans-serif sections, and mathematics.
Sharpe wrote a document called "Recent TeX Fonts", now available in the TeXShop Help menu. This document describes a number of pleasing font combinations, one per page. Each page lists the features of a set, provides an extensive sample of text and mathematics typeset using
it, and contains the exact LaTeX code needed to use the font set. These sets are the result
of extensive work by Sharpe; I understand that some of them took four months to perfect.
One way to use the document is to select an article or book written with standard fonts and copy Sharpe's implementation section into the document's header and retypeset.
To make this even easier, Sharpe slightly modified the LaTeX template which comes with TeXShop,
defining a section in the header bounded by %SetFonts comments. The space between two such comments can be empty when the document is originally written. Sharpe defined three
macros called "GetFontSet," "SaveFontSet," and "TestFontSet." The first of these brings up
a small dialog listing known font sets. When one is selected, its implementation code is written to the source document between the %SetFonts comments, replacing other implementation code there. So with one click and one typeset, the document can be seen written with a new set of fonts.
Users can also put their own implementation code between the %SetFonts comments.
The SaveFontSet macro reaches between the comments and saves the implementation code to a file in ~/Library/TeXShop/bin named "SetFonts", which is used by the GetFontSet macro to list known font combinations. Thus "SetFonts" gradually builds into a library of known font combinations.
I'll let the TestFontSet macro speak for itself.
To use these Sharpe additions, it is necessary to use the full TeX Live as installed by MacTeX,
because BasicTeX doesn't contain many fonts. All the font sets defined by Sharpe have been
tested and are available with TeX Live 2014, except two. The garamondx font has a license permitting free personal use provided the font is not sold. This font is on CTAN, but it cannot
be in TeX Live because TUG sells a DVD containing TeX Live. However, a script named getnonfreefonts is available to download and install this font. See
https://www.tug.org/fonts/getnonfreefonts/.
The "SetFonts" template also has a Lucida entry. Lucida is a commercial font, sold by TUG and others.
See https://www.tug.org/store/lucida/index.html.
Many users own this set, and Sharpe's detailed and non-trivial code to use them will help them obtain the most from the fonts.
It is our hope that the existence of these easy techniques will lead to more LaTeX documents that don't scream out "I was written with \TeX," and instead have a professional printed look.
- TeXShop has a new icon by Thiemo Gamma in Switzerland, designed for Yosemite. Gamma
also redesigned the dialog which appears when you select the menu item "About TeXShop".
The story of TeXShop icons is complicated. The original icon was designed by Jérôme Laurens.
Jérôme also designed the TeX Live Utility icon, and I like both a lot.
When the Retina display appeared, it was necessary to redraw the icon, but unfortunately source code for Jérôme's icon did not exist. Other users then contributed revised icons, which I didn't quite like. So I tried myself and discovered that making icons is really, really hard. Eventually William Adams managed to create a high resolution version of Jérôme's icon and I like it a lot. Adams also provided a document icon.
But Apple revised the look of icons in Yosemite. I intended to ignore the new design.
Then completely unexpectedly, Gamma sent a new icon. I think it is wonderful for a reason I'll explain in a moment. Gamma is extremely modest about it. When he learns how difficult it is for others to make icons and how much in demand good designers are, he'll have a happy life.
My goal for TeXShop has always been that it should vanish into the background, allowing writers to concentrate on the document they are writing without distraction. Sometimes this goal is met, and sometimes not. Gamma's icon is a symbol of this goal. It is simple and subdued, sitting there
in the background.
TeXShop still contains Adams' icon for documents. The source code also still contains his
program icon.
- TeXShop 3.38 has a significant bug, first discovered by James Crippen. When a source document is long and the preview window is active, clicking on the source window leads to a several second delay before the source window becomes active. This bug was caused by a single line of code, added to help a few users in Japan.
The bug is fixed in 3.39.
The line of code creating the bug was added for users who meet all of the following
conditions:
- They use Japanese input methods
- They customize the background and foreground colors of the source window
- They choose a dark color for the background
These users can activate the bad line and live with the bug by typing the following in Terminal
- defaults write TeXShop ResetSourceTextColorEachTime YES
- Herbert Shultz provided a new version of the Help document TeXShop Tips and Tricks,
and René Fritz provided a French translation.
- The Brazilian localization in TeXShop 3.38 was mistakenly added by Koch to the
localization for Portuguese in Portugal. This is fixed in 3.39.
- Will Robertson asked that the TeXShop "indent" command insert spaces rather than a tab.
This makes fine adjustments afterward easier. Version 3.39 gives Robertson his wish.
- Yusuke Terada provided fixes for a number of small problems in TeXShop:
- The color matching options for copying from the Preview window, set in TeXShop Preferences under the Copy tab, were broken in recent versions. This is fixed.
- The routine which selects an image from the Preview window has been improved.
- Toolbar tips for mouse actions in the Preview window have been added and localized.
- Yusuke Terada also fixed a more significant bug. If a particular font is set in TeXShop
Preferences, either by the user or by default, but that font is no longer in the system,
then TeXShop would refuse to run. This may explain some very obscure problems reported in the past. The bug is fixed.
TeXShop Changes 3.38
- If the option key is down when a source file is opened, the associated pdf file will not be opened.
- TeXShop is written in Cocoa, an object oriented framework inherited from NeXT. Object oriented programs
create a large number of objects dynamically during program operation. "Memory management" is the
task of disposing of these objects when they are no longer being used. If an object is disposed too soon,
the program crashes when another part of the program tries to use it. If an object is left dangling and not
disposed, memory gradually clogs up.
Recently Apple introduced "automatic reference counting", a technology which leaves the memory management task to the compiler, allowing the programmer to ignore it. TeXShop adopted this technology
in version 3.35, leading to increased stability and significantly fewer crashes.
In reference counting, each object keeps a reference number counting the number of parts of the program using it.
When a piece of the program is done with the object, that part sends the object a "release" message
and the object decreases its reference count by one. When the count reaches zero, the object is automatically removed from memory.
There is one situation which the compiler cannot handle automatically. Suppose object A is using object B and object B is using object A. Each object then has a reference count at least one, and usually higher if the objects are being used by other parts of the program. Suppose now that the rest of the program is done with the two objects. The objects are sent a number of "release" messages, until eventually each has reference count one. Since the count is not zero, object A does not go away, so it does not send a release message to object B.
Similarly ...
The solution of this problem is to manually introduce a "weak reference" from one object to the other. We give object A a reference to object B, but only give object B a weak reference to object A. A weak reference does not increase the reference count. Thus when all other objects are done with the pair, object A has reference count zero, but object B has reference count one. So object A is removed from memory, and just before that happens it sends a "release" to object B. Now object B has reference number zero, and it too is removed from memory.
TeXShop 3.38 completes the process of conversion to automatic reference counting, by correctly indicating weak references. Thus versions 3.35 through 3.37 could leave unused objects in memory, but 3.38 fixes that problem.
TeXShop Changes 3.37
- Added a preference setting for the Preview window: ``smooth text and line art.'' By default this is on.
The setting was requested by Tom Burke, who created an illustration using GeoGebra which
looked pixelated when displayed at small size in TeXShop. Mysteriously, the illustration looked fine under
the magnifying glass, or when printed. It also looked fine on a Retina display, but in that case the circles and
lines were very thin.
The same preference setting is provided by Apple's Preview and other programs. Users with a Retina display may wish to turn it off.
- Yusuke Terada added small changes for users in Japan. He wrote "during the time Hiragana is input until it is converted to Kanji, `undecided characters' are displayed, but the source text color is not applied and they are displayed in black. This behavior has been modified."
- A new item, "Experiment...", was added to the Edit menu and is available when the source window is active. This addition has been a recurring request of Wendy McKay. The item allows users to experiment with short, but complicated, fragments of TeX before copying the source into the main document.
When the item is chosen, a panel appears. Type a TeX fragment into the panel, say $$\sqrt{x^2 + y^2}$$. Push the Typeset button at the bottom of the panel, and a second panel appears showing the result of typesetting the fragment. The fragment can contain anything: a displayed formula, ordinary text, several pages of mixed material.
To typeset, TeXShop creates a new source file with the header of the current document up until "\begin{document}", the new fragment, and a final "\end{document}." This also works in a project with a root file. In that case the contents of the root file up until "\begin{document}" are used.
Both panels have close buttons. The "escape" key will also close panels when they are active.
Although the two panels do not have resize buttons, they can both be resized. TeXShop will remember
the new sizes and locations and use them the next time "Experiment..." is selected. The font in the source panel will be the default TeXShop source font. The keyboard shortcuts "command +" and "command -" work in the source panel to enlarge the text if desired. Key bindings and command completion are available in the source panel, but with one caveat. Command completion uses the tab key in the panel even if it uses the escape key for regular source, since the escape key in a panel closes the panel.
The "Experiment..." feature requires a latex-like engine. It will not work with ordinary plain tex. The
source panel's Typeset button looks at the main source window's toolbar to determine a typesetting engine.,
and also uses the "% $TEX engine = ..." mechanism if available at the top of the source window.
If "Plain TeX" or "Context" is selected, nothing happens. If "bibtex" or "make index" are chosen, pdflatex is used.
Obviousy "pdflatex, xelatex, and lualatex" can be used. The panel will try to use any user-defined engine selected, but some such engines may fail if they don't expect latex-like code or output pdf.
The preview panel understands mouse scroll commands and trackpad gesture commands to scroll and resize. It understands "command-shift +" and "command-shift -" to resize contents.
If you close a panel during work and later reopen it, the contents will be remembered. But the contents
are lost when quitting TeXShop. It is assumed that the panels will be used for short fragments of work; when
the user is satisfied, they will transfer the source to the main document using copy and paste. Panel
contents are not auto-saved and cannot be manually saved except via the copy mechanism.
Each document has its own source and preview panels, so if you have multiple documents open, you could also have multiple source and preview panels open, leading to a confusing mess. I expect users to exercise common sense and only experiment with one fragment at a time. One way to avoid confusion would be to hide the panels when a document becomes inactive. I didn't want to do that because a user constructing
a complicated example might want to temporarily open a second document and copy source from that
document into the panel as a starting point.
TeXShop Changes 3.36.2
- Fixed magnification on Yosemite
- Fixed sharing icon on source toolbar
- fixed two broken IB connections
- changed [NSApp delegate] to (TSAppDelegate *)[NSApp delegate] in two spots to make the code compile on XCode 6
TeXShop Changes 3.36.1
This version was released with version number 3.36.1 to test the operation of adding a final digit to the version number. In the future, this
will be used for "silent updates" in which a minor problem is fixed in the first hours of a release. In the past we did not change
the version number for such silent updates, but from now on we add a decimal digit to the end of the version in both the TeXShop home page and the program. We do
not update change documents for minors updates. Source files are always updated at the same time as the program, even for minor updates.
- The command-1 shortcut to switch from the Preview Window to the Source Window failed if the Preview Window was closed
and then reopened. This is fixed. Certain other keyboard shortcuts were also affected.
TeXShop Changes 3.36
This is a minor update to clear up issues in the important version 3.35 release. It has the following changes:
- The "remember and restore" operation has been improved to remember the position and size of both the Source and Preview windows
for all open files and restore them the next time TeXShop is restarted.
Recall that holding down the option key while quitting closes and forgets all
windows; in that case, TeXShop will restart with a clean slate. Similarly, holding down the shift key while restarting TeXShop
will restart with a clean slate.
It would be possible to remember other window positions: Console, Log File, etc. For the moment TeXShop does remember these
positions since the operation seemed more confusing than helpful.
- Herbert Schulz improve Command Completion by fixing bugs and controlling whether a forward or reverse search is done
during the operation.
- Fixed a bug for "Edit the Key Binding File." Closing this dialog and then bringing it up a second time produced a blank dialog window.
The bug was pointed out by Emerson Mello and is now fixed.
- The "Enter Fullscreen" menu item was not localized, but as soon as a source window opened, it switched to the user's language.
Now it is localized even when no file is open.
- Protected against a rare bug in which a Notification was sent to a closed Source Window.
- Attempted to make TeXShop Icon behavior more reliable by providing the extension of the Icon file in the Info.plist, by changing UTI types
belonging to com.tug to instead belong to org.tug, and by using Apple defined UTI's when available. The Apple mechanism linking icons with
particular applications continues to have problems in the open source world, where a particular file type
can be claimed by multiple applications.
TeXShop Changes 3.35
The step from TeXShop 2 to TeXShop 3 marked a significant boundary; version 3 has 64 bit code rather than 32 bit code and was compiled on Lion.
The step from TeXShop 3.26 to TeXShop 3.35 marks a second significant boundary; version 3.35 uses Automatic Reference Counting rather than
manual memory management and is compiled on Mavericks.
When Mavericks appeared a year ago, magnification code used in earlier TeXShop versions broke. It was replaced in 3.26 with code
which worked on Mavericks, but not on earlier systems. TeXShop 3.26 used the older magnification code on older systems.
Later versions of TeXShop were compiled on Mavericks. Then the new magnification code worked on earlier systems,
but the old magnification code broke. So TeXShop 3.35 uses the new magnification code on all systems. However, over the
last couple of weeks testers discovered that this code leads to obscure crashes on Lion, but not on Mountain Lion and higher.
Consequently, in version 3.35, both magnification in the Preview window and selection of rectangular regions in the Preview window
are disabled on Lion. Users of Lion should upgrade to Mountain Lion if at all possible, since these features will be active again. Users who cannot upgrade
should consider moving to version 3.26 because the two disabled features work with that version. But version 3.26 will not be
further upgraded and TeXShop Lion users will be stuck there in the same way that Snow Leopard users are stuck with TeXShop 2.
TeXShop 3.35 has the following additional changes:
- The OgreKit Find Panel was upgraded to the latest version by Yusuke Terada, and additional bugs in it were fixed. About the
changes, he wrote "This version is based on the latest OgreKit. The latest OgreKit adopts Onigumo as its regular expression engine instead of Oniguruma, which OgreKit used previously.
The development of Oniguruma is now stopped, and Onigumo is its fork version.
Ruby also used to adopt Oniguruma until Ruby 1.9, but it was replaced by Onigumo since Ruby 2.0.
By using Onigumo, new regular expressions like \K, \R, \X can be used.
" I built the latest OgreKit specialized for TeXShop. In order to solve the problems in which OS X replaced ordinary quotes with smart quotes, etc, I disabled the meddling functions by default:
- - Smart Copy/Paste
- - Smart Quotes
- - Smart Dashes
- - Smart Links
- - Automatic Data Detection
- - Automatic Text Replacement
- - Automatic Spelling Correction
"A message from Juan Luis Varona Malumbres said: Yusuke, please let to me to explain a small problem with the Ogrekit Find Panel in TeXShop:
The election Origin: Top/Cursor (in Spanish Origen: Principio/Cursor) works very well in English,
but not in Spanish: it always does a 'Cursor' search.
Can you fix it, please?
"I've fixed it today.
"I found another bug of OgreKit in Spanish environment.
When you select some range in TeX source and do 'replace all' with OgreKit Find Panel, the entire document is set to the replacement scope, even if you choose "Selection" as the scope of search.
This issue occurred only in the Spanish environment.
I've fixed this issue"
- Previous versions of TeXShop allowed paths with a tilde in the TeX Binary Path Setting Preference. For instance, this setting could be
"~/Library/TeX/texbin". But such paths caused problems in a small number of minor TeXShop features. A full audit of the TeXShop code was
performed and now such tilde's should always work in the setting.
- TeXShop now contains Michael Sharpe's GotoLabel Macro. Here is his description. "This is macro for TeXShop's Macro Menu,
allowing you to bring up a list of labels containing specified text, and move to the chosen label.
"To install, choose Macros/Open Macro Editor... (in the TeXShop main menus) and then from the Macros menu, choose Add Macros from File. This brings up a file selector with which you may select GotoLabel.plist. This install the macro in the Macro Menu, where you may move it to any convenient position, and, if you wish, give it a hot key.
"This provides an alternative to adding an item to TeXShop's tags by inserting a line %:tag_name in the source. With a lengthy document with many labels, it seems advantageous to be able to filter the list of labels."
- If you open the Edit Menu --> Spelling and Grammar panel, you can set the dictionary using
by the Spell Checker at the bottom of the Panel. TeXShop now remembers this choice, and will
automatically use it the next time the program is started.
Unfortunately another feature of TeXShop can interfere with this process, the optional "% !TEX spellcheck = " command at the top of a file.
I suspect that many users don't use the "% !TEX spellcheck" syntax. They will run into no problems.
If no files containing "% !TEX spellcheck" have been opened since TeXShop was opened, and the user chooses a different dictionary, then that different
dictionary will be remembered as the new TeXShop default dictionary.
But if the user chooses a different dictionary AFTER opening some files containing the "% !TEX spellcheck" line, then that
choice will not be remembered when TeXShop closes.
So if you do not use the "% !TEX spellcheck" syntax, you can change the default dictionary used by TeXShop
by opening the Spelling and Grammar panel and making the change. But if you sometimes use the "% !TEX spellcheck" syntax, the
foolproof way to change the default dictionary is to open TeXShop without opening files, change the dictionary with the Spelling
and Grammar panel, and quit.
TeXShop Changes 3.27 - 3.34
Versions 3.27 - 3.31 were never released. Versions 3.32 and 3.33 were only provided as experimental releases.
The most important feature of release 3.34 is that TeXShop's source code was revised to support ARC and the program was compiled using
Automatic Reference Counting. Thus memory management is now done by the compiler rather than by hand.
Version 3.34 has the following additional changes:
- A localization for Brazilian Portuguese is provided by Emerson Ribeiro de Mello.
- Spell checking now remembers a dictionary chosen in the "Show Spelling and Grammar" panel.
This makes it easier to use the CocoAspell package.
CocoAspell adds dictionaries to Apple's Spelling System which understand LaTeX and thus do not
claim that LaTeX commands are misspelled. Obtain the system at
http://cocoaspell.leuski.net/.
After installing, notice that an extra Spelling Preference Pane has been added
to Apple's System Preferences. Select a dictionary and turn on TeX/LaTeX filtering. Then either select this
dictionary in TeXShop"s "Show Spelling and Grammar" panel, or select it globally in the "Keyboard" pane of
Apple's System Preferences under the Text tab.
- In Mavericks, the code for selecting a region of the Preview file and the code for magnifying a region of
the Preview file broke. This was fixed in an earlier version of TeXShop by using the old code for Lion and
Mountain Lion, but using entirely new code for Mavericks. It appears, however, that the old code for Lion
and Mountain Lion did not work. Now the Mavericks code is used in all cases and works on Lion, Mountain
Lion, and Mavericks.
- Added Haskell literate script (lhs) as a type that TeXShop can edit, and that can be typeset and
syntax colored
- The Pythontex engine and documentation were slightly altered
- Rene Fritz provided a new French translation of TeXShop Tips & Tricks
- TeXShop now contains Latexmk 4.40
- TeXShop has a menu command to convert tiff illustrations
to png. This command uses "convert" if available, but otherwise uses Apple's "sips" program, which has been
part of OS X for a long time. Thus the removal of "convert" from MacTeX-2014 will not affect TeXShop.
- In Multipage mode, each typeset produced a small upward creep in the contents of the Preview
window for some users. This is slightly improved, though not yet completely fixed. fixed.
- In Single Page mode, typesetting produced a momentary flash in the Preview window showing the document's first page,
immediately replaced by the current page. This is fixed.
- New code by Dirk-Willem van Guik to set the "Job Title" for print jobs.
- The "Show Log File" command has been improved. When this window
is first opened, it shows the full log file. Twelve check boxes at the top set various queries to texloganalyser, a script in TeX Live which can
pull various pieces of information from the log file. The Redo button then displays this information. For instance, texloganalyser can display
all warniings, or all overfull boxes, or all fonts used in a document. Unchecking all boxes and pushing Redo again displays the full log file.
If "Show Log File" is selected while holding down the Command key, a dialog appears asking for an extension. If the user types the extension
"aux", then the window will display the aux file rather than the log file. Since texloganalyser only works on log files, checking boxes will then
have no effect.
- A new Preference item is provided: "Tags Menu in Menubar". When this item is selected, a duplicate of the Tags menu
will appear in the menubar. The new item allows advanced users to hide the Source window's toolbar: use command-T to typeset,
selected the appropriate engine using text at the top of the source, use the menu versions of the Macro and Tags menus,
and notice that "Split Window" is provided as a menu command in the Windows menu.
- New versions of the LilyPont and MetaPost engines are provided by Nicola Vitacolonna.
TeXShop Changes 3.26
3.26 has the following fixes:
- The combination of Preference Settings "Configure for External Editor" and "Automatic Preview Update" is now compatible with App Nap in Mavericks. Thanks to
Zhiming Wang for pointing out this problem and its connection to
App Nap.
In Mavericks, the Get Info panel for many applications has a check box
to turn off App Nap. TeXShop has no such box. The reason turns out to be
that TeXShop is compiled with XCode 5 on Mavericks, and Apple
assumes that applications compiled on Mavericks have been fixed
to deal with App Nap. TeXShop is now fixed in the approved manner.
-
Michael Sharpe wrote a beautiful document describing Applescript in
TeXShop and problems that might be encountered writing new
Applescript Macros. I have added that document to the Help Menu,
In addition, I added Michael to the list of TeXShop contributors, because
his web page contains a number of AppleScript corrections which I have
adopted in the Applescript Macros shipped with TeXShop.
- The following four Macros had problems with recent versions of OS X.
Fixed versions by Michael Sharpe and included in this release.
-
Open Quickly
Insert Reference
New Array
New Tabular
- There is a new arara engine by Alan Munn in ~/Library/TeXShop/Engines/Inactive/Arara.
The arara program is part of TeX Live 2013. Documentation for it is included in the
above folder. Roughly speaking, it is a replacement for both latexmk and parts of the TeXShop
engine mechanism.
- Small changes were made in the Japanese localization by Seiji Zenitani
TeXShop Changes 3.25
TeXShop 3.25 contains the following fixes:
- Version 3.24 contained a new version of Sparkle, but unfortunately not the
latest version. The version in 3.24 didn't have a Japanese localization. Terada Yusuke
found and compiled the latest version, now in 3.25.
- A few users report crashes when quitting TeXShop or closing a file. I was never
able to reproduce this crash. Terada Yusuke made a partial fix, so the number of such
crashes should diminish.
- The default preference settings for users in Japan have a small fix for Kpsetool.
- Some locations referred to the old TeXShop web url, http://www.uoregon.edu/~koch/texshop/texshop.html. These have been changed to the new url, http://pages.uoregon.edu/koch/texshop/texshop.html.
- In version 3.17, the old Search sync method broke when syncing from the Preview page
to the Source page. So it was disabled in version 3.18, and users were told to switch to the
modern SyncTeX method. This is still recommended. But the Search sync method is now fixed,
and will be used in those rare cases when SyncTeX does not find a match.
TeXShop Changes 3.24
There is only one change. The Sparkle upgrade mechanism in many previous versions of
the TeXShop 3 series does not work on Mavericks. This is fixed in 3.24.
TeXShop Changes 3.22 and 3.23
TeXShop 3.23 fixed one bug. In 3.22, if the user configured TeXShop to use an external editor
and then set the hidden preference ExternalEditorTypesetAtStart to YES, the program crashed when opening a file. This is fixed in 3.23.
Version 3.22 has the following changes:
- If the option key is pressed, the "Typeset" menu changes to "Trash Aux & Typeset".
Selecting it trashes aux and related files before typesetting. Recall that command-T is
a keyboard shortcut for "Typeset". Similarly option-command-T is a keyboard shortcut for
"Trash Aux & Typeset." This ingenious addition was suggested and made by Paul Smyth.
- There is a new engine for pythontex in ~/Library/TeXShop/Engines/Inactive.
This folder also has a README explaining how to install pythontex, and a tex source file from
the author of pythontex which can be used to test the engine and simultaneously see some of the features of pythontex in use.
- There is a new engine for Sage in ~/Library/TeXShop/Engines/Inactive/Sage. The method of
installing sagetex.sty in TeX Live explained in "About Sage" in the Sage directory has also changed. These changes was suggested by Daniel Grambihler and
improve the ease of use of Sage in TeX.
There were two basic problems with the previous method. First, the TeX file sagetex.sty
changed with the version of Sage and thus had to be reinstalled each time Sage was updated. Second, the engine file calls the Sage binary, which is inside the Sage program wrapper. But
the authors of Sage distribute the program with a name that includes the version number,
so the engine file had to be rewritten whenever Sage was updated.
Daniel Gramhihler recommended that we ask users to change the name of the program to "Sage"
whenever they update, and that we install a symbolic link to sagetex.tex in TeX Live rather than the actual style file. The result is that when Sage is updated, the engine file automatically finds the new binary and TeX Live automatically uses the new style file.
- TeXShop now opens and edits files of type fdd.
- There is a new hidden preference to set the line spacing in the source window:
-
defaults write TeXShop SourceInterlineSpace 1.0
Only values between .5 and 40.0 will be accepted. The standard line spacing is given
by the default 1.0, and double spacing is given by the value 10.0.
- Nicola Vitacolonna made extensive changes to the Italian localization of TeXShop.
Minor changes for other localizations were also made by their localizers.
TeXShop Changes 3.19, 3.20, 3.21
Versions 3.19 and 3.20 were never released.
Version 3.21 has the following changes:
- Three bugs appeared when running on OS X Mavericks: the magnifying
glass in the Preview window broke, rubber band selecting of a region of the Preview
window broke, and sharing the png of the selected region broke. All three are fixed. The code which runs on Mountain Lion and below remains
in place, so small changes in behavior will only be seen on Mavericks.
The magnifying glass has an interesting history. The original code used
an unusual call in Cocoa. It broke in Leopard. This code was replaced by tricky
code relying on another unusual Cocoa routine. This broke in Mavericks. The new Mavericks code
in 3.21 is straightforward, drawing in a temporary transparent overlay view for
both magnification and rubber banding.
- In Mountain Lion, sharing of a region of the Preview window provides a png of this
region. In Mavericks and above, it provides a pdf of the region, which can be resized without losing detail.
- For a long time we have recommended that users new to
TeXShop arrange the location and size of the Source and Preview windows on the desktop as desired. Most users prefer a side by side configuration with the Source window on the left and the Preview window on the right. Then activate the Source
window and in the Source menu select ``Save Source Position''. Similarly activate the Preview window and in the Preview menu select ``Save Preview Position''. From that point on, all
TeXShop source and preview windows will appear in the selected positions.
If you have a portable connected to a large monitor, this configuration works as long as you are attached to the monitor. But when you are traveling, the windows will appear on the screen of your portable, and probably not in ideal positions. TeXShop 3.21 has an extra configuration to fix this. Arrange a source and preview window on your portable screen in ideal position; the portable can be attached to the large monitor at the time. Then activate the source window and in the Source menu select ``Save Source Position for Portable''. Activate the preview window and in the Preview menu select ``Save Preview Position for Portable''. After this step, windows will appear in the desired position when you are connected to the large monitor at home or office, and windows will appear in the desired position on the portable screen when you are traveling.
It will do no harm to skip this portable configuration.
If you have multiple screens, Maverick has the ability to start applications on any screen. Thus it may be convenient to use the "portable" configuration for a second screen even if you do not have a portable.
- The following bug was pointed out by Simon C. Leemann. Until 3.21, double clicking on a blank space in the source window selected the space and the words on either side of the space. This is fixed and now only the space is selected.
- TeXShop allows users to select alternate engines on a file by file basis using the
syntax
- % !TEX TS-program =
TeXworks and other programs use the similar command
- % !TEX program =
TeXShop 3.21 now accepts this alternate syntax to specify an engine.
For compatibility reasons, the space between "%" and "!" is optional, but highly recommended.
- The next feature was requested by Alan Munn about a year ago. Apologies for the delay.
In the meantime, Mark Everitt wrote an ingenious script to provide this feature. The feature provided by that script is now built into TeXShop.
The command BibTeX in the TeXShop typeset menu runs BibTeX; notice that this command has a keyboard shortcut. In Japan, a different program is used instead, so Yusuke Terada provided
an item in TeXShop Preferences under the Engine tab to select the program to be run when this menu item is selected. Examples are bibtex, biber, pbibtex, etc. The Preferences item can also be used to add flags to the command.
In TeXShop 3.21, the BibTeX engine can be selected on a file-by-file basis using the syntax
- % !BIB TS-program =
The alternate syntax
- % !BIB program =
will also be accepted. The item after the equal sign gives the name of the program (for instance "biber") and any required flags. This line should be written within the first twenty lines of
a source file.
The "% !BIB TS-program = " line takes precedence. If it is absent, the Preference item determines which command is run.
- TeXShop 3.21 contains latexmk 4.37.
- The following bug was pointed out by Basil Grammaticos, and is fixed in TeXShop 3.21.
TeXShop has an AutoCompletion feature. If the user begins typing a phrase like
- \begin{
and then presses the escape key, TeXShop will complete the phrase. If there are several completions, TeXShop will cycle through the possibilities each time the escape key is pressed.
These completions are listed in a file which users can edit using the command "Edit Command Completion File" in the Source menu.
But if no completions are found, TeXShop reverts to a different autocompletion method which is build into Cocoa. This time, pressing the escape key opens a small window listing all possible completions. Click on one to complete the phrase. These completions come from the system dictionary.
The first kind of completion is likely to appear when typing a TeX construction, and the
second kind appears when typing an ordinary word or phrase.
Basil pointed out that in many programs, the second completion list begins with phrases which
already appear in the document. In earlier
versions of TeXShop, these nearby phrases were missing.
This bug was caused by adding Autocompletion to TeXShop too early. If no completion was
found, the code called the dictionary to provide an autocompletion list. Then Apple added
a similar call to TextEdit, which first finds nearby phrases and then asks the dictionary for further words. TeXShop now calls that TextEdit routine.
- TeXShop now has a hidden command to turn off AutoSaving:
- defaults write TeXShop AutoSaveEnabled NO
WARNING: This command will cause crashes on Lion, so it should only be used on Mountain Lion
and above. The TeXShop developers use AutoSave. If you turn off AutoSave, you are entering
untested waters.
- The Sage engine script was revised in TeXShop 3.21, and the Sage instruction document in
~/Library/Engines/Inactive/Sage was rewritten.
- Ulrich Bauer added a patch to TeXShop 3.17 for users working with a server. This patch
was supposed to be inactive unless AutoSave was on. But a mistake in the code caused it to be
used by a few people who didn't use AutoSave. This is fixed.
- Many users thanked us for Bauer's code, but it caused trouble for a few. There is a
hidden preference to turn to patch off:
- defaults write TeXShop WatchServer NO
- Finally, Yusuke Terada provided a number of changes for users in Japan.
- At the bottom of the TeXShop Preference window, a pull down menu labeled "Defaults"
offers to change all preferences to their default values. The first item in this menu is labeled "Regular" and is for most users. The remaining items are for users in Japan, who interact with TeX in a variety of unusual ways. It contains six new items to replace the original two legacy items.
- An earlier version of TeXShop contained an automatic UTF-8-Mac to UFT-8 Conversion.
But this routine converted some Japanese Kanji characters to different glyphs. This is
fixed by excluding certain characters from the conversion, as explained in the Unicode
Consortium Report http://tug.org/mactex"> http://unicode.org/reports/tr15/#Primary_Exclusion_List_Table.
TeXShop Changes 3.18
Version 3.18 has only a single change:
TeXShop contains an obsolete sync method called Search Sync, and a modern
replacement by Jerome Laurens called SyncTeX. In recent versions of TeXShop, the
obsolete Search Sync from the Preview Window to the Source Window randomly hangs,
making TeXShop unresponsive This was supposed to be fixed in version 3.17, but it
wasn't. Unfortunately, when the modern SyncTeX cannot find a match, it calls the old
Search Sync, so SyncTeX can indirectly hang as well.
It is silly to waste time on an obsolete method, so in TeXShop 3.18,
Search Sync from the Preview Window to the Source Window is disabled and does nothing.
Most users will notice no change. Users who misconfigured SyncTeX will lose synchronization.
Users should check that
TeXShop Changes 3.17
Version 3.17 has the following features:
- In 3.15, we introduced a hidden default to fix the rendering of the Monoco font
when used in the source window on Mountain Lion.
-
defaults write TeXShop NSFontDefaultScreenFontSubstitutionEnabled -bool YES
This fix does not alter the display of the Monoco font when used in the log window or the console. Another hidden preference can fix Monoco in these windows. This preference causes TeXShop to call the font routine [font screenFontWithRenderingMode:NSFontDefaultRenderingMode] and pass the resulting font to an AppKit object, although Apple's documentation says not to do this. So the new hidden preference should only be used if you cannot tolerate the Monoco font's default rendering.
-
defaults write TeXShop ScreenFontForLogAndConsole -bool YES
- The spotlight indexer has not been distributed with the version 3 series
of TeXShop. Now it is again included. This indexer was written by Norm Gail
with additions by Max Horn. It was recently revised by Adam Maxwell.
-
Choosing the "Source <=> Preview" menu item in External
Editor Mode caused a crash. This is fixed.
- The previous version of TeXShop introduced an improved version of latexmk. TeXShop
contains two latexmk engines which are active by default: pdflatexmk.engine and sepdflatexmk.engine. The "About This Release" item in TeXShop 3.17's Help Menu explains
how to update these engines.
- A fix in version 3.16 replaced a deprecated method in the
"Search sync" routine with a modern equivalent. Unfortunately, this
fix had a bug which could crash TeXShop.
Most users use the SyncTeX method to sync. But when this method
fails to find a reasonable match, TeXShop reverts to the old Search Sync method,
and thus could crash the program. The old Search sync method is now fixed.
If by chance there are still problems with Search sync, a hidden TeXShop preference
can turn off reverting to it when SyncTeX fails to find a match:
-
defaults write TeXShop SyncTeXOnly YES
TeXShop Changes 3.16
Version 3.16 has the following features:
TeXShop Changes 3.15
Version 3.15 has the following features:
- The default editing font has been changed to Menlo 12, which Apple now recommends
as a fixed width font. This will not affect old users, whose original preference setting remains.
Some users have chosen Monoco 9 or 10 as an editing font. This font may look somewhat fuzzy
on Mountain Lion because Apple has optimized the text and font rendering routines for the Retina display.
To get back to the old behavior, type the following command in Terminal. This is not recommended
unless you are unhappy with the appearance of text in the edit window.
-
defaults write TeXShop NSFontDefaultScreenFontSubstitutionEnabled -bool YES
- TeXShop 3.14 began the process of switching from Apple's old style indication of document types
in the TeXShop Info.plist to the new style using Universal Type Identifiers (UTI). The process is complete in TeXShop 3.15. The change involved
extensively rewriting the Info.plist file, and replacing depcrecated Cocoa file commands with modern
equivalents. The change may improve
system acceptance of the new high resolution icons by William Adams, but I still expect trouble
and recommend the techniques outlined in the description of 3.14 to fix them.
- There are a few Japanese localization changes and a code fix by Yusuke Terada.
Thanks.
- Small glitches have been reported when using magnification in the preview window. These
glitches have been fixed. In case of remaining trouble, please give concrete details explaining
how to reproduce the problem.
- The default encoding in TeXShop has been changed from MacOSRoman to ISOLatin9. This will
not affect old users except at one minor spot.
To understand the change, recall a few encoding basics.
A computer file is just a long sequence of bytes, each an integer between 0 and 255.
Other data, including picture data and sound data, is encoded in this form when written to disk. The majority of computer files contain ordinary text.. Text was originally encoded in Ascii format, which assigns
a byte to each key on an American typewriter; Ascii only uses the first 127 bytes, so the bytes from 128 to 255 are available for other purposes. The Ascii encoding
was later extended for use in Europe and elsewhere by adding accents, umlauts, and other characters to
the upper 128 vacent spots. Many such encodings were invented, and a number of them are available in
TeXShop. ISO Latin 9 is such an encoding. It encodes ascii characters in the first 128 positions, and
all symbols commonly used in Western Europe in the upper 128 positions. ISO Latin 9 is essentially the same
as the earlier ISO Latin 1, except that it includes the Euro currency symbol.
Eventually, the computer industry invented Unicode, which is theoretically capable of handling
the symbols used in all of the world's languages.
Internally, TeXShop and other Mac OS X programs represent and process text in Unicode. There is no standard
Unicode encoding for writing to disk, so all Apple routines which read text from disk or write text
to disk require an extra parameter listing the encoding to be used.
A commonly used encoding for Unicode is UTF-8. It has the advantage
that ordinary ascii files are legal UTF-8 files. The disadvantage of UTF-8 is that random
collections of bytes may do not contain legal UTF-8 code, so when the computer tries to open a file
in UTF-8 which was written in another encoding, the computer sees garbage and returns nil. Encodings which
extend ascii by adding symbols to the upper 128 places do not have this problem; if a file written
with one such encoding is opened with a different encoding, the computer will not complain, but some
symbols may appear with unexpected shapes.
TeXShop must deal with this design in two spots. When TeXShop is asked to open a file, it reads
the first few bytes in MacOSRoman to check whether a "ng and now
opens it in ISOLatin9.
Some users have requested that TeXShop's default encoding be UTF-8. Users can achieve this
result by simply switching the default encoding to UTF-8 in TeXShop Preferences. UTF-8 is not the
current default because I believe that many users have old files which were written with Ascii or
some other earlier encoding. If these files contain straight ascii, they work fine as UTF-8 files.
But if by chance a stray non-ascii character was entered by mistake, then users will see a mysterious
dialog panic when TeXShop reports that the file cannot open in UTF-8.
- In version 3.14 the command "Edit Command Completion File" did not display the file to be
edited. Now it does again.
- When displaying the Preview Page in fullscreen mode, users can mouse to the top of the screen
and select menu options to change the Page Style and ResizeOption. In version 3.15, these new
choices are remembered in TeXShop Preferences, and thus will be used again even if TeXShop quits between
sessions.
- TeXShop 3.15 contains a patch by Ulrich Bauer for file handling. This patch will be
important for users working with version control or with a server which might change the source
while it is being edited in TeXShop. For instance, one such user report stated "we are several authors on a paper and we use svn to keep the versions coordinated. If I have a version of the file in the editor and perform an svn update in the terminal, the file changes on disk. However, if I save or typeset, the local version in the editor gets saved and I get no conflict warnings!" With Bauer's patch, "an open document is
monitored for external changes to the file, and updated automatically if an external change
occurs." Thanks very much to Ulrich Bauer for this important change.
TeXShop Changes 3.12 - 3.14
Versions 3.12 and 3.13 were never released. Some users downloaded beta copies
of 3.12 to fix 3.11 bugs. Version 3.14 has the following features:
- New high resolution icons are provided for TeXShop itself, and for .tex and .pdf files.
The icons are by William Adams.
The original TeXShop icons were made by Jerome Laurens; I like them. With the
introduction of the Retina display, high resolution icons became essential. A few users
sent me samples which I claimed I'd use. But the new icons were not easily recognizable
on the screen.
So I tried to create my own icons,, and some users will have versions of
TeXShop with these icons. This lesson taught me that I am incapable of
creating icons.
Finally William Adams agreed to create icons closely following Jerome's original idea.
I'm very happy with the result. The TeXShop icon itself has changed only a little. For TeX files,
Adams was able to build on and improve Jerome's icons using high resolution techniques.
Thanks, William; having tried, I know it wasn't easy. And thanks Jerome for the original idea.
TeXShop has received small tweaks in hopes that OS X will pick up the icons, but it may
be necessary to provide some help. Moving TeXShop into the /Applications/TeX folder will
help the system notice the icons. Then select a .tex file, and click "Get Info" in the Finder.
Go down to the "Open with" section and select TeXShop Then press the "Change All" button.
In one case on my system, a TeX source file was displayed in the Finder with an incorrect icon and no ".tex" extension. Adding
that extension caused the Finder to associate the correct icon.
<
- On Mountain Lion, sharing support has been added. New sharing items are available for both
the source window toolbar and the Preview window toolbar. It may be necessary to execute the
menu command "Customize Toolbar" to obtain them.
If text is selected in the Source window when the Sharing item is pressed, the program will offer to
share the selection. If no text is selected, the program will offer to share the entire source document.
Similarly when a piece of text and/or illustration is selected in the Preview window, the
program will offer to share the resulting graphic fragment. If there is no selection, the program will
offer to share the entire pdf output file.
Only appropriate sharing venues will appear, depending on the selection. For instance, it does
not make sense to post an entire pdf document to Facebook. In all cases, the program will share
to Email, Messages, or AirDrop. Depending on the selection, it will also share to Facebook, Twitter,
Flickr, and other venues. Note that some services must be activated in Apple's System Preferences
before sharing can take place.
- On Mountain Lion, TeXShop opened an empty window when the user tried to use the program with
an external editor, and also when the user opened a pdf, png, jpg, or eps file. This is fixed.
- On Lion and Mountain Lion, selecting a region of the Preview left garbage lines
on the screen as the mouse moved. This bug is mostly fixed.
- Latex make is upgraded to version 4.35. A new engine, sepdflatexmk, is available in the
Inactive/LaTeXmk folder. This engine calls pdflatex with the --shell-escape flag, for users who
need packages which call external programs during typesetting.
- Yusuke Terada fixed two bugs in 3.11. First, the encoding popup button was ignored in the open
dialog; this is fixed. Second, problems in CommentOrIntentForTag were found and fixed.
- There is now a Preference interface to change the source text color. A preference to change
the source background color was present in earlier versions.
- There are new metafun and metapost engines by Nicola Vitacolonna.
TeXShop Changes 3.11
TeXShop Changes 3.10
- The "--shell-escape'' flag has been removed from preference settings for pdftex and pdflatex. This flag
presented security risks. Old users need to activate the
change by selecting TeXShop Preferences, clicking the Engine tab, and pushing the "Default" buttons in
the configuration section for pdfTeX and pdfLaTeX.
Recall that pdflatex can accept illustrations in several different formats, including pdf, jpg, and png. But
it cannot accept eps illustrations used by many old TeX documents. The epstopdf package
solved this problem by calling Ghostscript to convert eps files to pdf format automatically during typesetting.
This package required --shell-escape and that is why previous versions of TeXShop set the flag.
Two years ago, TeXLive made conversion of eps files to pdf format easier and safer by introducing a restricted
shell escape mode for pdflatex in which only a limited number of safe programs can be called during typesetting.
This conversion was made automatic without including epstopdf, provided the graphicx package was included
by the source document.
We could have dropped the --shell-escape flag at that time, but there was another reason to continue
using it. Originally, pdflatex accepted tif and tiff files. Eventually this feature was removed, but it was possible to
convert these files to png format during typesetting using /usr/local/convert from ImageMagick. Unfortunately,
TeX Live does not label convert as safe because in the Windows world there is an unrelated program which
presents security risks. TeXShop 3.10 solves this problem by introducing a new method to convert tif and tiff
files to png format.
- TeXShop 3.10 has a menu command "Convert Tiff" which is active when a source window
is active. This command opens a dialog which shows all tiff files in the folder containing the
source file. Users can choose one tiff file or several. Push the "Convert" button to
create png forms of all such illustrations. This calls convert from ImageMagick if present, and otherwise
calls the native sips program.
- A new Latex Template is provided to reflect these changes. Old users can obtain this template
by moving it from ~/Library/TeXShop/New/Templates to ~/Library/TeXShop/Templates.
- TeXShop 3.10 omits the Create Project Root menu item. Use the alternate "% !TEX root = "
syntax instead. Old projects using Create Project Root will continue to typeset.
TeXShop Changes 3.09
- When a pdf document is printed, TeXShop now selects Portrait or Landscape mode
automatically. Moreover, "orientation selection buttons" have been added to the Print Panel,
so the user can change the orientation if the auto selection
mechanism fails. A "scale selection" was also added,
so the user can rescale the document before printing.
- These printing changes also apply when printing TeX source. "Orientation selection buttons"
and "scale selection" were added to the Print Panel.
- The split window command for the Preview window has been improved. The second
portion now opens on the section of the document shown in the top portion rather than the top of the
document. It has the same magnification as the top section of the window. Finally
the magnification toolbar button is now in sync with magnification in appropriate
sections of the split window.
- In the German localization, menu
items to set the PDF display mode were mislabeled, and check
marks in this menu didn't work. Both problems are fixed.
- Herb Schulz fixed a bug in Command Completion. When multiple
windows were open, command completion in one window could interfere with command completion
in another window. This problem is fixed.
TeXShop Changes 3.08
- Fixed a bug when double clicking on a left brace. This click again selects the text between this
brace and its matching right brace.
- "TeXShop Tips & Tricks" is updated slightly.
TeXShop Changes 3.07
- TeXShop is now signed, as required in Mountain Lion. See the Gatekeeper
documentation at http://www.apple.com/macosx/mountain-lion/features.html#gatekeeper.
- The "Sparkle" update mechanism now works with versions of TeXShop in the
Lion series, 3.00 and higher.
- Herb Schulz' "TeXShop Tips & Tricks" was updated to version 0.5.3
- LatexMk was updated to version 4.31. This version of Latexmk
creates a file list named "file.fls", which helps latexmk keep
track of all file dependencies. The TrashAUX command has been
extended to remove files with this extension.
- pdflatexmk is now one of the default engines. Only new users will
notice this change.
- TeXShop now creates a ~/Library/TeXShop/Documents folder containing
important documents. Currently many are duplicated from elsewhere in
~/Library/TeXShop, but this will be the spot to look in the future.
- New TeXShop releases will automatically update the Documents folder, just
as they now automatically update
bin, Engines/inactive, and scripts.
- In the German localization, there was a bug in the Preview Preferences
for "Default page style." The buttons for
"Double Sided" and "Single Sided, Continuous" were reversed,
so they didn't do what they claimed to do. This is fixed.
- TeXShop contains the latest customized OgreKit by Yusuke Terada. As in TeXShop
3.06, this pane uses the same font as TeXShop source windows. Moreover,
syntax coloring, parenthesis match highlighting, command completion, showing invisible characters and so on
work in the OgreKit Panel. However,
KeyBinding (AutoCompletion) is disabled in this OgreKit, as requested by
a number of users in the TeX on OS X mailing list.
- Yusuke Terada also made the following changes:
- Double clicking on one of the end characters of a
"<" ... ">" pair selects both ends and all characters in between.
- If the hidden preference MakeatletterEnabled is YES,
selection of sequences containing '@' by double-clicking is supported.
An example is " \@latex@error"
- A small number of crashes were isolated and repaired
- "Show Full Path" is improved on Lion, if chosen by the
user in an optional tool bar item for the source window
- As before, if text is selected and the "comment" item
is chosen, the entire paragraph containing the selection is
commented out. But now the text selection is preserved. This also
works with the "indent" command.
- When the source window was active and split and a file was drag-and-dropped
to the bottom view, the action did not work. Now it does.
- AppleScript macros are now saved with UTF8 encoding, so scripts
can be written containing Japanese and other languages. This required
a small modification in the "ScriptRunner" program which runs scripts
which start with --applescript rather than --applescript direct.
TeXShop Changes 3.06
The changes in 3.06 are by Yusuke Terada.
- On Lion, the hidden setting SourceWindowAlpha sometimes does not work.
Especially, on opening source files which contain "TEX root =", SourceWindowAlpha is always ignored.
To fix this issue, I added a method "setAlpha:" into TSTextEditorWindow.m and modified "initWIthContentRect:".
- On Lion, if you open a source file which contains "TEX root = foobar.tex" but foobar.tex does not exist, the window of foobar.tex is newly created.
(On SnowLeopard, an error dialog was displayed in such a situation.)
I modified a single line of TSDocument-RootFile.m to fix this issue.
- I modified TSDocument-Jobs.m in order to allow the BibTeX engine setting to have options.
In addition, Terada improved OgreKit 2.1.4 to make it more useful.
-
New OgreKit Find Panel uses the same font as TeXShop source windows.
Syntax coloring, paren match highlighting, showing invisible characters and so on work also in OgreKit Find Panel.
Auto Completion(Key Binding) and Command Completion also work.
The settings of each function (on/off, its color) follow those of TeXShop.
- When regular expressions are enabled, the background color in the panel changes.
- Previously, when you open TeXShop source windows in different spaces, pressing Command+F caused switching spaces.
By using the new OgreKit.framework, OgreKit Find Panel always appears in the current space.
- Previously, after using "Replace All" of OgreKit Find Panel, the colors of all characters in TeXShop source window were changed to black.
In the new OgreKit.framework, this issue is fixed by sending "NeedsForRecolorNotification" to NotificationCenter after using "Replace All".
TeXShop Changes 3.05
- Before TeXShop typesets, it saves the source document. To do that,
TeXShop calls the routine used by the "Save" menu. When AutoSave is activated, this menu item is renamed "Save A Version"
and creates a new version of the document visible with the "Browse All Versions..." command.
Users of TeXShop 3.01 who routinely typeset often obtained a enormous number of versions, making the
"Browse All Versions..." command clumsy to use.
TeXShop 3.05 contains significant patches by Ulrich Bauer which fix this problem. TeXShop now saves changes
before typesetting, but without creating new versions. This is in line with the design of AutoSave in Lion, which
saves changes every few minutes but creates new Versions much less frequently. Roughly speaking, Bauer's patches
call autosaveDocumentWithDelegate rather than saveDocumentWithDelegate when the autosave call is appropriate.
- The program has a patch to TeXShop's syntax coloring routine by Daniel Toundykov. When this
routine was made faster and more reliable in TeXShop 2.10, the modification broke the ability to
change the background and foreground colors in TeXShop's source window. Toundykov's patch fixes
this problem.
To change the source background color's Red component
- defaults write TeXShop background_R 0.25
Set background_G and background_B to change the corresponding Green and Blue components.
To change the source foregrounds color's Red component
- defaults write TeXShop foreground_R 0.25
Set foreground_G and foreground_B to change the corresponding Green and Blue components.
To change the insertion point color's Red component
- defaults write TeXShop insertionpoint_R 0.25
Set insertionpoint_G and insertionpoint_B to change the corresponding Green and Blue components.
- The folder ~/Library/TeXShop/CommandCompletion now contains a subfolder named
GratzerMathCC with an expanded list of command completions. These new completions are
by George Gratzer, and are useful when typesetting
mathematics. The folder also has a pdf file documenting the additions.
To activate the new completions, drag CommandCompletion.txt from the GratzerMathCC folder to the main
CommandCompletion folder, replacing the existing CommandCompletion.txt there.
TeXShop Changes 3.04
- Auto Save is automatically activated in TeXShop 3.04. The Preference item to turn it on or off has been removed. Users who intensely dislike
Auto Save can switch to an older version of TeXShop.
The main reason for the change is that there is a serious bug in TeXShop when Auto Save is off. Without Auto Save, opening a graphic file
e.g., a jpg, pdf, png, tiff, or eps file,
also opens a blank source file with the same title. This also occurs when opening a document for an external editor, or opening a dvi file. This
problem does not occur when Auto Save is on. Thanks to Di Xiao for tracing this bug to Auto Save.
Notice that Apple programs like TextEdit also automatically activate Auto Save on Lion.
A hidden preference is provided to turn Auto Save off, but using this preference is strongly discouraged. As explained above, it creates
significant bugs when opening files with no source window, like jpg, tiff, pdf, png, eps, and dvi files, or when using TeXShop with an external editor. The hidden
preference is
-
defaults write TeXShop AutoSaveEnabled NO
- Version 3.04 contains a fix for "Show Full Path" in Lion, by Yusuke Terada.
- Added "md" to the file types TeXShop can edit, and typesetting engines can process. Such "markdown" files can be processed by pandoc
and converted to latex, epub, and pdf. See http://johnmacfarlane.net/pandoc/
- The German localization has a different key equivalent for the menu command which enlarges the font in the source document.
- When the Preference Item for Arabic, Hebrew, and Persian is activated, lines containing one of these languages are right justified.
The new rule is that a line is right justified if its first, second, or third letter is in one of these languages. For instance, this rule right justifies
a line beginning with "\" containing Persian letters, but does not right justify the command "\section{ ... }" even if the section title is in Persian.
- There is a hidden preference to change this behavior. If the following command is entered in Terminal, a line containing any characters
in Arabic, Hebrew, or Persian will be right justified:
-
defaults write TeXShop RightJustifyIfAny YES
- When the Preview window is taken full screen, it switches into double page mode. The user, however, can switch it into single page mode
using a menu command. This is useful when displaying Beamer documents. If the window is taken out of full screen mode, and later back into it,
the display mode change made by the user will be remembered. TeXShop now remembers the mode change if it is made using a contextual
menu rather than a menu in the menu bar. Thanks to David Poole for pointing out this bug.
TeXShop Changes 3.03
- Choosing the "Print ..." menu with the source window open started a print job
which understood "Page Setup" changes. Choosing the same menu with the preview
window open started a print job that ignored "Page Setup." The print dialogs for these
two operations were different: one was a standalone dialog and one was a drop-down
dialog in a window. Both dialogs might be open at once on the screen. This problem is fixed.
- The hidden preference
-
defaults write TeXShop TagSections NO
turned off all tags, rather than just tags for sections and subsections. This is fixed.
TeXShop Changes 3.02
- The program is again called "TeXShop" rather than "TeXShop-64". Renaming the
program was a mistake because it broke several Applescript macros.
TeXShop's Sparkle upgrade mechanism still upgrades within the 2.** series
and within the 3.** series, but not from one series to the other. A major reason for
renaming the program was to obtain this result, but it turns out that renaming is not necessary
for it.
Note that MacTeX-2011 contains TeXShop 2.43. If you put TeXShop 3.02 in /Applications/TeX
and later upgrade to MacTeX-2011, the program will be downgraded to TeXShop 2.43. If you haven't
yet upgraded, it might be best to put TeXShop 3.02 in /Applications.
- In TeXShop 3.00 and 3.01, line numbers do not scroll when using overlay scrollers.
They do scroll with legacy scrollers.
If the source window is split, the top portion scrolls with overlay scrollers.
Debugging experiments show that this is a Lion bug. We can reproduce it with a small
15 line program.
TeXShop 3.02 has an ingenious patch by Yusuke Terada to temporarily fix the
problem. TeXShop has a hidden preference to turn this on; by default it is on. To
turn the fix off
-
defaults write TeXShop FixLineNumberScroll NO
We hope that ultimately Apple will fix the bug. When they do, the patch
will be turned off automatically.
- Automatic tagging of "% \chapter" in docstrip didn't work. Now it does.
- All three "Find" methods --- OgreKit, Find Panel, Find Bar work for both the source and log
windows. The OgreKit method also works for the console window, but (at least temporarily) the
other methods don't.
TeXShop Changes 3.00 and 3.01
- See the Lion section of TeXShop Help for changes in TeXShop-64 version 3.00.
TeXShop Changes 2.42 and 2.43
- The only change in TeXShop 2.43 is a hidden file in ~/Library/TeXShop/New, which was not updated for version 2.42.
As a result, users did not get the changed ConTeXt engines in ~Library/TeXShop/Engines/Inactive. They will get them
in version 2.43.
- The main change in TeXShop 2.42 is in the code to process SyncTeX. The new code is required for TeX Live 2011,
and works with earlier TeX distributions as well.
Users will notice the change when they sync from source to preview. The selected portion in the Preview window is
hilighted in yellow rather than circled in red. Moreover, a larger portion is hilighted. Users may wish for the
more precise synchronization in older versions of TeXShop. The new code, however, is faster and much more stable; using this foundation, more precise
syncing will be possible in future versions of TeXShop.
If SyncTeX cannot find a match, TeXShop defaults to the earlier search synchronization method. This method still
circles matching portions in red. So red circles rather than yellow selections indicate that SyncTeX could not find a match.
- Tags have been extended slightly to deal with docstrip documents. Thus the tags menu now recognizes
- % \chapter
- % \section
- % \subsection
- % \begin{macro}
- % \begin{environment}
- Both the log file and the console are shown using the document's encoding rather than MacRoman encoding.
The primary advantage of this change is that users with Unicode source files will see unicode characters written correctly
in the log and console output.
- TeXShop 2.42 contains latexmk 4.24.
TeXShop Changes 2.41
- The old Auto Completion facility in TeXShop has been given a more understandable name: Key Bindings.
All features remain the same. Internally in code, the feature is still called "AutoCompletion", but interface
elements have been changed to the new name.
- The facilities Key Bindings and Command Completion have been made more prominent
in the interface. The Source menu has a new "Key Bindings" menu and the "Command" menu
just below it has been renamed "Command Completion". Both of these items have submenus. The
Key Bindings menu has submenus
- Toggle On/Off
- Edit Key Bindings File...
and the Command Completion menu has submenus
- Add Word
- Marks
- Edit Command Completion File...
The commands in the Command Completion menu were present in earlier versions and have been rearranged
so make the two facilities parallel. The Edit Key Bindings File... item is new, bringing up a new editor
by Yusuke Terada. Thus users no longer need edit a configuration file in ~/Library/TeXShop.
The "Toggle On/Off" item turns key bindings on or off on a file by file basis, duplicating functionality previously provided by an optional toolbar source item. The old Preference
Panel item turning Key Bindings on or off remains, setting the default when files are first open.
- A new "Close Current Environment" item in the Source Menu closes the open environment nearest the cursor. This feature will remain
in future versions of TeXShop, but it is likely that the menu will disappear in the future and users will access the feature using an item in Key Bindings, Auto Completion, or Macros,
because these facilities already have short commands which insert text into the source code.
- The default values for "pdfTeX" and "TeX and DVI" under the Engine tab in the Preference dialog have become too long to be shown in the
dialog. So instead, button are provided which insert these default values into the appropriate fields. After doing that, the values in the fields can
be edited, of course.
- If a portion of the source code is selected and then the Statistics panel is opened, the panel shows statistics for that selection, rather than statistics for the entire source file.
- TeXShop 2.41 contains latexmk 4.23a.
TeXShop Changes 2.40
TeXShop 2.40 fixes a small number of minor bugs.
- When working with a project containing a root file, windows would sometimes move as new chapter source
files were opened. This is fixed.
- TeXShop has a hidden preference, "RedConsoleAfterError", which colors console output red after an
error occurs in the source. This preference stopped working several versions ago. It again works.
- A few users disliked the temporary red color of parentheses in the new parenthesis matching code,
but didn't want to turn parenthesis matching completely off because they wanted the matching parenthesis
to blink. These users can now change the temporary parenthesis color in the Preference Panel.
- Hidden preference items were added to change all of the colors used in the new 2.38 additions by
Yusude Terada: the temporary parenthesis color (default is magenta), the highlight color for text between matching parentheses (default is yellow),
and the color of invisible characters when shown (default is orange).
- defaults write TeXShop highlightBracesRed 1.00
- defaults write TeXShop highlightBracesGreen 0.00
- defaults write TeXShop highlightBracesBlue 1.00
- defaults write TeXShop highlightContentRed 1.00
- defaults write TeXShop highlightContentGreen 1.00
- defaults write TeXShop highlightContentBlue 0.00
- defaults write TeXShop invisibleCharRed 1.00
- defaults write TeXShop invisibleCharGreen 0.50
- defaults write TeXShop invisibleCharBlue 0.00
- On Snow Leopard and above, matching braces are briefly marked with a yellow badge over the brace; this
fulfills a request for great visibility of the matching characters. The badge can now be turned off with a hidden preference:
- defaults write TeXShop brieflyFlashYellowForMatch NO
TeXShop Changes 2.39
TeXShop 2.39 fixes a significant bug for users who write in Hebrew and Arabic. In
version 2.38, typesetting sometimes displaced diacritical marks left one character,
even though the source looked correct. The problem was not in the typesetting, but
instead in the source code, which was converted to an incorrect form when saved. This is fixed.
See the explanation which follows.
- Some languages use extensive diacritical marks, including more than one mark for each letter.
For these languages, there are
two conventions about the order that the main character and diacritical
marks are written. The two conventions are
- UTF-8-Mac = NFD = Normalization Form Decomposition
- UTF-8 = NFC = Normalization Form Composition
A major problem is that the two forms look the same on the screen, but
typeset differently (or in some cases not at all). Users in Japan
sometimes copy and drag UTF-8-MAC text to TeXShop, but then find
that they cannot typeset. So Yusuke Terada provided automatic conversion. This breaks Hebrew
and Arabic typesetting.
In TeXShop 2.39, a new Preference item under the Miscellaneous tab turns this automatic conversion on. The
preference item should be turned on by users in Japan, but most other users should leave it off.
- The program comes with French translations by Rene Fritz of Herbert Schulz' two documents on
Command Conversion and TeXShop Tips and Tricks.
- Minor improvements have been made in the French, Spanish, German, and Chinese translations.
TeXShop Changes 2.38
Version 2.38 contains some wonderful changes by Yusuke Terada,
who made the changes at the request of employees in the company he works for in Tokyo. Most of Terada's changes are activated by new items in the TeXShop Preference
Panel, which are turned off by default. So users need to turn these items on and
experiment. You can easily return to the old behavior if desired. Here are Terada's changes:
- Show Invisible Characters: TeXShop can now show ordinary space characters,
Japanese full width space characters, tab characters, and newline characters visually
in the source window. Preference items turn each choice on or off, so users can
display only some items if desired. A Preference item determines whether invisible
characters are shown when files are first opened, and a menu item then toggles invisible
characters on or off on a file-by-file basis.
- Much better handling of parentheses: { and }, ( and ), [ and ], and < and >.
When such a pair is closed, the matching opening parenthesis is clearly marked,
and the entire section between these parentheses is colored
yellow. This yellow color remains until another character is typed, and then it
vanishes. Thus it is much easier to close a parenthesis and then stop and make sure
the scope of that parenthesis pair is correct. By default, this feature is on, but
it can be turned off in Preferences.
- If a parenthesis is typed with not matching pair, the computer beeps, or
if desired the screen flashes. This feature is off by default and must be turned on
in preferences.
- The parenthesis matching settings are controlled by five preference items, which can be
turned on or off individually. The first item, "Highlight Enclosed Characters", marks text
between matching parentheses in yellow when a parenthesis is closed.
The yellow vanishes when additional characters are typed. The
second item, "Show Indicator in Moving", activates this feature when using arrow keys
to move through the text, so when the active position becomes a parenthesis, the area it
controls is shown in yellow. The third item, "Blink Highlight", causes a matching parenthesis
to switch temporarily to red and then blink back to its natural syntax color. When this item is
off, the matching parenthesis will remain red until a new character is typed. The last two
items, "Beep for Isolated Parens" and "Flash Back for Isolated Parens", cause the
computer to beep, or momentarily flash the source window background, when a parenthesis
is typed which has no match.
- Two new items were added to the Window menu: "Next Source Window" and "Previous
Source Window". These cycle through source windows without changing the Preview Window.
This is particularly useful in a project which inputs multiple source files.
- The default preference setting which determines the position of source windows when first
opened is
"Remember last position on close".
But an introductory movie in TeXShop's
Help menu suggests changing this preference setting to "All windows start
at fixed position". Because this change is recommended, the original "Remember last
position on close" code in TeXShop did not work well.
Terada has improved the default greatly. New windows now appear cascading down and to the right as
recommended by Apple's Interface Guidelines, rather than on top of each other. Try this method
to get a feel for Terada's improvement. Similar remarks apply for positioning of Preview windows.
Note that if you use the "All windows start at fixed position" setting, Terada's changes
do not apply and TeXShop works as it always has.
- TeXShop uses the default Cocoa behavior for window titles. Before considering
Terada's modification, recall this default behavior.
Suppose a source file is titled "Sample.tex". Then the title
at the top of the source window will read "Sample.tex" and the title at the top of the preview
window will read "Sample.pdf". If you click on either title while holding the Command Key down,
a pull down menu will appear listing the various components of the full path to the file. Choosing
one of these items will open the corresponding folder in the Finder. In this way, it is very easy
to go to the actual source or output file in the File system. Window titles are also listed in TeXShop's "Window" menu.
Selecting a window title there
will bring the corresponding window to the front.
All this is fine unless your work flow includes the following sort of action: suppose you have folders named Sample1,
Sample2, Sample3, and Sample4, and suppose each folder contains a file
named Data. Suppose that your master document uses
Sample1/Data and Sample2/Data. If your master and both data files are open on your desktop,
you may want to switch from one data file to another using the items in the Window menu. But these
items will both be named "Data". It would be much better if the Window menu listed "Sample1/Data" and
"Sample2/Data" so you could keep them straight.
Terada's change makes this possible. An optional toolbar item named "Show Full Path" with a checkbox is provided
for the source window; this item must be added using "Customize Toolbar" and isn't in
the default toolbar. Checking this item will cause the source and preview windows to list
the full path to files rather than just the title of the files. Moreover, this full path will be listed in
the Window menu.
Full path can be turned on or off on a file by file basis, so some files can show the full path
while others show only the window title. The default checkbox state in the toolbar of a newly opened window will
be the state last set by the user. Thus a user who always wants the full path displayed can check the
item once and then forget it, even when quitting and restarting TeXShop. If that user changes their
mind, uncheck the item once and forget it. But some users will want to turn on full paths for some files and turn it
off for other files.
- A new menu item in the TeXShop Help menu is provided, named "Open Style File". This
item will open any style file in the texmf trees visible to TeX and LaTeX. This command uses
"kpsetool" to find such style files, but the tool and its parameters can be changed in a new Engine file preference.
- Syntax coloring has been changed slightly. Previously, the @ symbol ended a TeX command,
so "\@this" would only color "\@". But now the command is assumed to continue until a break character, so for example, every character of the following line
will be colored:
- \ifx\@@input\@undefined\let\@@input\input\fi
This will mainly affect users editing style files.
We suspect that most users won't notice the change, and those who notice will like it. But
the old behavior can be restored with a hidden preference:
- defaults write TeXShop MakeatletterEnabled NO
- A minor bug fix to the "Uncomment" command: previously, TeXShop removed
empty uncommented lines, but now it doesn't.
- A new preference "BibTeX Engine" is provided listing the default BibTeX engine. Most
users will list "bibtex" as the default. This
preference is mainly present for users in Japan, where users have access to
- bibtex, jbibtex, pbibtex, and ubibtex
- New hidden preference items named "backgroundAlpha" and "ConsoleBackgroundAlpha" are
provided. For example, the following commands will provide source windows with translucent
backgrounds:
- $ defaults write TeXShop SourceWindowAlpha 0.9
- $ defaults write TeXShop backgroundAlpha 0.6
(Actually my experiments show that both of these preference items are irrelevant, and the
old SourceWindowAlpha and ConsoleWindowAlpha, documented in TeXShop Help, are
enough to make transparent windows. I'll keep this item in the change document 'just in case.' -- Dick Koch)
- When "utf export" is enabled to support pTeX in Japan, UTF-8-Mac encoded text
is automatically converted to UTF-8 encoded text.
In addition to the work of Terada, TeXShop 2.38 has the following changes:
- Version 2.38 contains a new Chinese localization by Linus Yang, from Fudan
University in Shanghai, China. Thanks!
- The Help menu now contains a link to a wonderful document by Herbert Shultz called
"TeXShop Tips & Tricks." This document describes a number of useful TeXShop
features in much more detail than the Help panel, including sections on working with large documents, pdflatexmk, editing shortcuts,
auto completion, and command completion.
- The following bug is fixed: when a TeX source window is closed, the pdf Preview
window is also closed. In previous versions, the Preview window was not deliberately closed in code, but it
closed anyway because closing a document releases its nib file. This may have caused crashes
in a small number of cases. In Apple's forthcoming Lion system, the corresponding crash
always happens. But version 2.38 of TeXShop fixes this problem.
In short, this fix may help stability on earlier systems, and is required for Lion.
- The next addition is by Alvise Trevisan. In previous versions of TeXShop,
if you type begin{itemize} (or \begin{}} or a number of other
typical fragments) and then push the Escape key, the corresponding \end{itemize} will appear
on the following line and it is only necessary to fill in the intermediate lines. Unfortunately, if the
opening \begin{itemize} is indented, the indentation is not preserved for the corresponding
\end{itemize}. But with Trevisan's modification, it is preserved.
- Herb Schulz adopted Trevisan's code to provide a similar preservation of indentions throughout
Command Completion.
- The ConTeXt-MKIV.engine and the document "About the Inactive Folder" in
TeXShop/Engines/Inactive have been revised to indicate that users must run the following command ONCE
in Terminal before using this engine:
- luatools --generate
- Added the file extensions bbx, cbx, and lbx to the list of files which TeXShop can edit, and
activated syntax coloring for such files.
- Added the extensions .bcf and .run.xml to Files->Trash Aux Files. This is needed to switch
from biber to bibtex in latexmk.
- Alan Munn updated the help files advanced_otherfiles, advanced_syntaxcolor, basic_preferences,
and advanced_personaltetex. The revisions document a couple of obscure features, but the key point
is that Munn's formatting makes these files easier to read. It also introduces some
inconsistency in the appearance of help pages, but we hope the remaining pages will be reformatted
in the same way over time.
- The program contains version 4.23 of Latexmk.
- For some time, TeXShop has contained a Substitutions submenu in the Edit Menu. This menu allows
users to activate a number of operating system enhancements for inputting text:
- Smart Copy/Paste
- Smart Quotes
- Smart Dashes
- Smart Links
- Data Detectors
- Text Replacement
Consult Apple documentation for details.
Until version 2.38, users had to activate these items each time they opened a file. In TeXShop 2.38, the last choices
a user makes are remembered and used when new files are opened, even after quitting TeXShop.
Warning: Operating system 10.4 (Tiger) only supports smart Copy/Paste. System 10.5 (Leopard) adds support for
smart quotes and smart links. The remaining items are only available in system 10.6 (Snow Leopard) and beyond.
All items are standard parts of Apple's text system, and some may not be appropriate when editing TeX/LaTeX
documents.
- TeXShop 2.38 adds a new magic marker to select the spelling dictionary; this idea was first introduced in the
latest release of TeXworks. Suppose a source file is written in German and one of the first twenty lines
in the file is
- % !TEX spellcheck = de-DE
Then the spell checker will use the German dictionary with this document, but will use the default spelling dictionary
for all other open documents without this line. TeXShop reads this line when opening the file, so when the magic marker
is created, the file must be saved, closed, and reopened before TeXShop will use it. If a project uses several include files,
each include file must contain the line.
When using this command, Apple dictionaries are specified using either the ISO 639-1 or ISO 639-2 standards for determining language designations, and the ISO 3166-1 standard for regional designations. The regional designation is used to distinguish between a language as used in one part of the world and that same language in another part of the world. For instance, French is "fr" in ISO 639-1 and "fre" in ISO 639-2; French (France) has regional designation "FR" and
French (Canadian) has regional designation "CA". So to select a French dictionary in Canada, "spellcheck = fr" will work, and "spellcheck = fr-CA" would be even better.
Since these are ISO standards, similar commands will work on other platforms, although TeXShop only runs on the Mac. The language standards are described in
- http://www.loc.gov/standards/iso639-2/php/English_list.php
and the regional standards are at
- http:www.iso.ch
although this second site is difficult to use.
Specifying a cocoAspell dictionary is slightly tricky. The Spelling Preference Pane installed by cocoAspell lists all cocoAspell dictionaries, including active dictionaries. Names in this list are the names to be used following "spellcheck". When these dictionaries appear in Apple's list in the Language & Text panel, they often have different names. Those names don't work.
For example, there is a ocoAspell dictionary named German. If the German dictionary is selected in the Spelling Preference Panel, then the resulting dictionary will be listed in Apple's panel as Deutch (Aspell). In this case
- % !TEX spellcheck = de
will select Apple's German dictionary and
- % !TEX spellcheck = German
will select the cocoAspell German dictionary, while
- % !TEX spellcheck = Deutsch (Aspell)
will select nothing.
Similarly there is a cocoAspell dictionary named German (Germany) in the Spelling Preference Pane. To select it, the appropriate command is
- % !TEX spellcheck = German (Germany)
TeXShop Changes 2.37
- TeXShop contains a slightly updated Japanese localization by Seiji Zenitani.
- The TeXShop/Engines/Inactive folder now contains Latexmk 4.18 and a short new document titled
Quick Start Guide for latexmk.
- In Help and other spots, Dick Koch's email address was changed from
- http://www.uoregon.edu/~koch/texshop
to
- http://pages.uoregon.edu/koch/texshop
to conform to changes for all faculty at the University of Oregon.
TeXShop Changes 2.35 amd 2.36
- TeXShop 2.35 is an internal version never publicly released.
- Added a new preference item which switches between the tab and escape keys as the trigger for command completion.
-
Recall
that complicated commands entered with command completion include "marks" where the various command arguments occur. The Completion/Marks menu contains menu commands to go to the next mark, or to the previous mark. These menu commands have keyboard shortcuts which have not been changed. But TeXShop 2.36 adds extra keyboard shortcuts for these two commands:
- option-escape to go to the next mark
- control-escape to go to the previous mark
When the tab key triggers command completion, these shortcuts become
- option-tab to go to the next mark
- control-tab to go to the previous mark
- Keyboard shortcuts always cause trouble for some users, who may have third party utilities which already use those shortcuts. So there is a hidden preference to turn off the new shortcuts for next mark and previous mark:
- defaults write TeXShop CommandCompletionAlternateMarkShortcut NO
- Added a menu item following the File/New command:
- New from Stationery...
Selecting this item brings up a list of stationery: Beamer, AMS-Article, Letter, Project, ProjectChapter, etc. Each item is listed in the left column and briefly described in the right column. Selecting an item opens a new document with the contents of the chosen stationery. This document is not associated with the stationery file on disk, so pushing the typeset button asks the user to save the document and suggests as a default name "Untitled", exactly as if the document had been created by the New command.
Version 2.36 contains rather rudimentary stationery files. I'm hoping users will contribute better and more robust alternatives for future versions.
- Stationery files are stored in a new folder: ~/Library/TeXShop/Stationery. This folder works like all other folders in ~/Library/TeXShop. Users can remove files from the folder, edit files currently there, and add additional files. To recreate the default folder, entirely remove the Stationery folder and restart TeXShop.
Each stationery document ends with extension ".tex". If the folder contains a file with the same name, but extension ".comment", then this file is assumed to contain a one line comment about the file, which will appear in the right column of the stationery dialog. Thus the folder contains both Beamer.tex and Beamer.comment. This "comment" file is optional. An easy way to create a comment file is to duplicate an existing file, rename it, and edit its contents with TeXShop.
The stationery mechanism is a variant of the Templates menu in TeXShop, which is unchanged. My hope is that the default stationery menu will lead new users more quickly to the standard documents almost everyone eventually creates. Hence I intend to keep the default collection fairly small. Users are free to add additional stationery to the mix.
- Version 2.36 contains a slightly revised LilyPond engine.
- Version 2.36 contains a new default ConTeXt-MKIV engine, created after consulting Hans Hagen at TUG-2010.
TeXShop Changes 2.34
- Removed keyboard shortcut for "hard wrap", since pushing it by mistake can have drastic consequences.
- Added new Edit menu items: Substitutions, Transformations, Speech. These are standard Apple items,
which automatically add these features to the editor. However, part of this addition is not complete. In a future
version, there will be Preference items to preserve the user's choices for smart copy/paste, smart quotes,
smart dashes, smart links, data detectors, and text replacement. Currently, choices are temporary while
the document is open.
- New version of Latexmk, 416a.
- LuaLatex is now a default engine, since LuaTeX has progressed to a system which can be used for
real work. But only new users will see the change; older users must drag LuaLatex from the Inactive folder
to the active area.
- The Sage engine and documentation are slightly improved.
- Fixed the problem of offset line numbers in the German localization.
- Added the Stex extension as one TeXShop can edit and syntax color; this is used when working with R.
TeXShop Changes 2.32 and 2.33
- TeXShop 2.32 is an internal version never publicly released.
- The major change in 2.33 improves the upgrade process. In previous TeXShop versions, it was necessary to regenerate
various folders in ~/Library/TeXShop to get new defaults. While this method still works, the changes make regeneration unnecessary.
There are three aspects to the change:
- TeXShop now automatically updates three subfolders of ~/Library/TeXShop: bin, Engines/Inactive, and Scripts. This upgrade does not
remove files added by the user; it only writes new files and folders or updates existing files and folders known to TeXShop. Note that active engines in ~/Library/TeXShop/Engines are not updated; only the inactive folder is updated.
- TeXShop adds a new folder, ~/Library/TeXShop/New. This folder can be totally rewritten during an update.
- Finally, TeXShop Help contains a file named "About This Update," which is rewritten for each update, explaining the exact steps needed to obtain new defaults.
As an example of how these changes are used, consider the case when there is a new default Macro. It is no longer necessary to regenerate the Macros folder to obtain this Macro. Instead, the New folder will contain the new macro. Use the Macro Editor's "Add Macros from File..." item to add the macro, and drag it in the Macro Editor's list to an appropriate spot.
Another example: the latexmk engine is often upgraded, but the upgrade usually changes support files in bin rather than the engine itself. From now on, such upgrades will be made automatically without user intervention. Fairly often, additional engines are added to the Inactive folder during upgrades. These will automatically appear without user intervention. For version 2.33, it is important that latexmk users read "About This Release" so they will make a few changes needed to automate future upgrades.
One technical detail: the New folder contains a hidden file listing the version of TeXShop which created the most recent update. TeXShop will only update files in ~/Library/TeXShop if it is a later version than the version listed in this hidden file. So TeXShop doesn't update at each new start, and old version can be run without changing ~/Library/TeXShop.
- Improved Spanish localization by Juan Luis Varona.
- Fixed a bug reported by Tomas Zahradnicky: when a user attempted to print a file which had not been typeset, a dialog appeared asking the user to typeset first. The dialog has an "OK" button, but clicking the Close icon instead caused a hang. Fixed.
- Fixed a bug reported by Micael Sharpe: searching in the Preview window and afterward closing the source window sometimes caused a crash. Fixed.
- New code by Scott Lambert to improve the Comment/Uncomment and Indent/Unindent code.
- Added fdb_latexmk to the extensions automatically removed by "Trash AUX Files", to improve the operation of latexmk.
- The flip code used by some default macros is now a universal binary.
TeXShop Changes 2.31
- Goto Error is improved. It now highlights the text just before the error (as reported by TeX in the console) rather than an entire line containing the error. When searching for errors, users should first look at the spot where the highlighting ends. This change was requested by users who let TeXShop automatically soft wrap lines; to TeX, these source files appear to contain whole paragraphs rather than individual lines. In earlier versions of TeXShop, Goto Error highlighted these entire paragraphs, making the error hard to spot.
- Fixed the notorious "toolbar incorrectly drawn bug". This bug occurred when the Preview toolbar contained the "mouse mode matrix" but this
matrix was forced offscreen when the Preview window appeared because the window was too narrow to contain it. In that situation, the tools in the toolbar were drawn too high and partially cutoff, or so high that they were invisible. The bug is fixed.
- Fixed an obscure bug reported by Jean-Michel Bismut: he got intermittent crashes when closing the Preview window with command-W or
the red close circle. The bug mainly appeared when TeXShop was used with an external editor. Fixed.
- Fixed a bug reported by Cesar Rivas: when the Default Page Style was "Single Page", the toolbar scale reported the wrong value,
and thus zoom in and zoom out started from the wrong values. The bug fix solved another problem: previously if the user picked a mouse tool
like "magnify" that was not the default and then typeset, the toolbar would still show the magnify tool active, but the actual tool would change to its default value. Fixed.
- TeXShop has a new SageTeX engine by Dan Drake. This engine is easier to install because SageTeX is now part of Sage rather than an extra download. The engine no longer reruns Sage when typesetting a source in which the sage commands have not changed.
For a brief time, SageTeX was part of TeX Live 2009. This is no longer true because SageTeX is closely tied to Sage and needs to be updated when Sage is updated. SageTeX users should carefully read the short document in ~/Library/TeXShop/Engines/Inactive/Sage before installing the new engine; the document explains the simple step required when upgrading Sage.
- The internal TeXShop script which calls ConTeXt was modified to make the Abort command work. Although it worked for other engines, it recently stopped working for ConTeXT. Steffen Wolfrum reported the bug and was instrumental in finding a fix. The broken script was a tcsh script, and Wolfrum discovered that Abort worked when the internal script was rewritten as a bash script.
- Added a new menu item, "Abort Typesetting", with a keyboard shortcut. This makes it possible to call abort from the keyboard without using the mouse. The shortcut works regardless of which window is active.
- The pdf file is now closed when the Preview window is closed. In version 2.30, the entire document had to be closed to close the pdf file. In 2.29, TeXShop itself had to quit to close the file. So we are making incremental progress.
- Improvements in French localization by Rene Fritz.
- Slight improvements in ConTeXt and MetaPost help sections.
- Slight improvements in latexmk.
- Better error detection in the "Paste Spreadsheet Cells" macro.
- The default KeyEquivalents.plist in ~/Library/TeXShop/Menus was defective; among other things, it had comments
within comments, which is illegal. The file has been fixed.
KeyEquivalents.plist doesn't actually change any keyboard shortcuts because the changes it illustrates are commented out. But users can change TeXShop's default keyboard shortcuts by editing the file. However, there are some limitations. The OgreKit Find Panel menu items are handled in a special manner and cannot be changed with KeyEquivalents. The Macro menu items are also handling in a special way and cannot be changed with KeyEquivalents, although they can be changed with TeXShop's built-in Macro Editor. Finally, File menu items are sometimes overridden by Cocoa, so shortcut changes in that menu can have unintended consequences.
TeXShop Changes 2.30
- TeXShop has a new item in the Help Menu named "About This Release." This item will be revised for each release, and explains any steps needed to activate new features. Users should form a habit of reading this short file after upgrading.
New users get the latest defaults and can ignore the step. But older users may need to make small changes in Preferences, and regenerate certain subfolders in ~/Library/TeXShop. These locations allow users to modify the default behavior of TeXShop, so
the program does not automatically update them because it does not want to deactivate user choices behind the user's back.
- This version fixes a crucial crash bug involving synctex, searching pdf documents, and related notifications. Some users ran into the bug when attempting to search pdf documents. Others had crashes immediately after syncing. Many users avoided the crash entirely. Now it should be fixed for everyone.
- TeXShop has a "Goto Error" menu command, mirrored on the console window. Until this version, the command only worked on individual files. But the command now works with projects controlled by a root file. If an error occurs in an included source file not open on the desktop, that source will open and the line with the error will be highlighted. This change
requires a new flag in all engines: " --file-line-error". In TeXShop default preferences, this is set for pdftex, pdflatex, simpdftex, and xetex. If users wrote other engines, they will need to add the flag for these.
- New MetaPost and MetaFun engines by Nicola Vitacolonna are included. The engines are called "nv-metapost" and "nv-metafun." To prepare for these engines, the operation of TeXShop when using MetaPost and MetaFont has been revised. The built-in MetaFont command has been removed entirely; Vitacolonna's nv-metapost works much better for that purpose. The buildin MetaPost command has been retained for compatibility with projects by current users. This command just calls mpost directly. The preference item which switched this command between MetaPost and mptopdf has been removed.
Users working with MetaPost for illustrations, or MetaFont, users will want to use nv-metapost and nv-metafun instead. Minimal documentation for these commands is available in TeXShop Help's advanced section on ConTeXt and MetaPost. But a more extensive README by Vitacolonna is available in ~/Library/TeXShop/Engines/Inactive/MetaPost.
- Very important improvements to command completion by Herbert Schulz are now included. These improvements allow "tags" in completed commands with parameters. When a command is completed, the entire command, including tags where the required parameters go, appears in the source file, and the first tag is selected. The user can type the parameter, replacing the tag. A keyboard shortcut then activates a new menu item which jumps to the next tag. The user can thus fill in all parameters without removing their hands from the keyboard.
A greatly expanded command completion file by Herbert Schulz is included in this release. For detailed instructions, read the document about command completion written by Schulz and available in ~/Library/TeXShop/CommandCompletion.
- A new "Paste Spreadsheet Cells" macro by Alan Munn has been added to the Macro menu. This wonderful macro allows users to copy an array of cells from a spreadsheet and paste the array, properly formatted with TeX commands, in the TeX source code. Munn wrote instructions for this command, which are in TeXShop Help's Macro section, in Default AppleScript Macros.
- A new latexmk engine, version 4.13a, is included.
- The right justification feature introduced in TeXShop 2.28 for Arabic, Hebrew, and Persian has been improved. Now a line must start with a character from one of these languages before it is right justified. Thus
lines containing TeX commands with embedded Arabic, Hebrew, or Persian will still be left justified.
- Added Windows Latin 1 to the list of supported encodings.
- Added "ctx" to list of extensions which are regarded as TeX files and can be syntax colored and typeset.
- In 2.29, closing a document left the associated pdf file open until TeXShop quit. This bug is fixed; the pdf file is closed when the source document closes.
TeXShop Changes 2.28-2.29
TeXShop Changes 2.27
- When using SyncTeX from source to Preview, the preview window now comes forward.
- There are many changes in TeXShop Help, including a new section on encoding, and separate sections on General Engines, and on the XeTeX engine. References to XeTeX were removed.
- There are slight improvements in the Program, Encoding, and Root macro files by Ramon M. Figueroa-Centeno.
TeXShop Changes 2.21 - 2.26
Here are the changes in version 2.26:
- The TeXShop/Engines/Inactive folder contains two scripts from Daniel Becker which call texcount to count active words in a TeX source file. These engines were promised in 2.25 but erroneously omitted. They are in 2.26. To obtain them, quit TeXShop and move the entire Engines folder from ~/Library/TeXShop to the Desktop. Then restart TeXShop. TeXShop will create a new Engines folder. Merge in any changes you have made in the old Engines folder on the desktop to the new folder.
- Juan Luis Varona sent new Program and Encoding macros which display the various choices, so it is not necessarily to look up the wording of these choices. A few days later, Ramon M. Figueroa-Centeno send similar but fancier macros. Ramon's macros are now in TeXShop. To obtain them, quit TeXShop and move the entire Macros folder from ~/Library/TeXShop to the Desktop. Then restart TeXShop. TeXShop will create a new Macros folder. Merge in any changes you made to the old Macros on the desktop to the new copy, using the Macro Editor.
- A memory leak introduced by the code to split the Preview window in 2.25 is fixed. The bug was similar to the old flaw in PDFKit which caused memory to be gradually used up when typesetting a document many times, but this time the bug was caused by me.
- A bug in the zoom code for the preview window when using multiple monitors is fixed.
- A bug which caused TeXShop to ignore a "% !TEX TS-program = ..." command when typesetting from a file with an associated root file is fixed.
- The French localization is improved.
- A localization error caused the "Split Window" icon on the Preview Window toolbar to display strange text. This is fixed.
- A bug caused the Preview Window's toolbar to vanish temporarily if the user tried to move certain text portions of the toolbar. This is fixed.
- One of the keyboard zoom shortcuts acted only on the top portion of the Preview window when split. This is fixed.
- The TeX mdimporter code distributed with TeXShop in 2.25 contained only i386 code. Now it contains code for both PPC and i386.
Version 2.21 - 2.24 were internal versions, never released. Here are the changes in version 2.25:
- Split window, previously available for the source window, now also works for the Preview window. Buttons and tools which interact with the Preview window are applied to the active portion of the Preview window when split. To activate the other portion, click on it. To avoid cluttering the interface, the active portion of the Preview window is not marked. Note that it is possible to use different Display formats in the two views. For instance, after splitting the window you can activate the lower portion and select Double Multiple Page in the Display Format menu to obtain a single page view in the top half and a double page view in the lower half.
- Syncing from source to Preview now scrolls the selection to the visible portion of the window. When the Preview is split, syncing from source to preview goes to the active portion of the Preview window.
- A new menu command, Show Log File, opens the log file. This file is updated after typesetting. If a source file has a root file, the menu command opens the log file of the root file, rather than the nonexistent root file of the input file.
If the command key is held down while choosing this menu item, a dialog will appear asking for the extension of the file to be opened. For instance, typing "aux" into the dialog opens the aux file rather than the log file. The requested extension can be typed with or without an opening period.
- A new Help menu command, "Show Package Documentation", opens a dialog which requests the name of a package in TeX Live. It then opens the TeX Live documentation for this package, using the command line program "texdoc." This improvement was suggested by Juan Luis Varona.
TeX Live has a vast amount of documentation; go to /usr/local/texlive/2008/texmf-dist/doc/latex to see some (but not all) of this documentation. Note that almost all documentation folders have lower case names; therefore it is best to name packages in lower case when requesting documentation: pdftex, latex, graphicx, geometry, texdoc. But there are exceptions: IEEEtran.
Documentation is sometimes available in several different forms: pdf, html, etc. Add the extension to the request to see a particular form of the documentation. For instance, enter "pdftex.pdf" or "pdftex.html" to see these forms of the pdftex documentation. Texdoc will choose a convenient form on its own if the extension is omitted.
Texdoc does not open the documentation in TeXShop; instead it uses the Mac's default application for a given extension. By default, the Macintosh opens pdf files in Preview and html files in Safari, so texdoc will use those viewers. There is a standard way to redefine the default application for an extension. If you change the default, texdoc will use the new default application.
It is also possible to directly configure texdoc to use particular viewers; see the texdoc documentation for details.
Sometimes texdoc will not find documentation for a package, style file, or program. In that case, nothing will appear. In particular, TeXShop does not put up a warning dialog when documentation is not found. Although such a dialog would be useful at first, in the end it might become annoying.
- It is possible to set the foreground color of the Console window in Preferences. This was requested by users who prefer white characters on black backgrounds for the console.
- A new menu command opens the console if it has been closed.
- The menu items to change the text color in the source, to justify right, left, or center in the source, and to bring up the ruler in the source have been removed, since they make no sense in TeX.
- There are localization improvements in French, Spanish, and Japanese.
- This version fixes a bug which ignored Console Preferences when using external editors.
- TeXShop can now create and edit asy files.
- Added a contextual menu item to the Source and Preview windows: Sync. Some users may prefer this menu item for synchronization because using it avoids the command key.
- The TeXShop/Engines/Inactive folder now contains two scripts from Daniel Becker to call texcount to count active words in a TeX source file. The output may be more accurate than the output from detex, which is currently called by TeXShop's "statistics" command.
Users who upgrade TeXShop can get the new Inactive folder by quitting TeXShop, moving ~/Library/TeXShop/Engines to the desktop, and then restarting TeXShop. The new default Engines folder will be created by TeXShop. After it is created, merge extra items in your old copy on the desktop back into the ~/Library/TeXShop/Engines folder.
- The Inactive folder also contains a "sage.engine" file. This engine makes it possible to use the open source mathematical software Sage, a replacement for Maple, Mathematica, and MatLab, directly from within a TeX source file. For instance, a single TeX line can ask Sage to plot a function; in the typeset output, this plot will appear at that spot. Or a single line can ask Sage to integrate a complicated expression symbolically; in the typeset output, the answer will be shown, typeset consistently with other mathematical expressions in the document. The inactive folder contains an example document typeset in this way. Sage is available free at http://www.sagemath.org/.
- There was discussion on one of the mailing lists about the logic behind TeXShop's "Typeset" menu command, the "%!TEX program" mechanism, and the fact that "BibTeX" and "MakeIndex" are not really typesetting commands. Members of the list tried to understand the logic behind fine details of TeXShop's operation, but this was a hopeless task because there wasn't much logic present.
An attempt has been made in version 2.25 to provide consistent behavior, but without a complete overhaul of the interface. The code now works in the following way:
The "Typeset" command in the Typesetting menu always does exactly the same thing as the "Typeset" button in the source window toolbar. Both commands call the typesetting command listed in the drop down menu next to the toolbar button, unless the first few lines of the source file contain a line of the form
- %!TEX TS-program = ...
If such a line is present, then the Typeset command uses the indicated program instead (unless the drop down menu is set to bibtex or makeindex; see comments below). The selected item in the drop down menu does not change, so commenting out the source line will cause typesetting to revert back to the method indicated in the drop down menu. Incidentally, TeXShop ignores extra comment characters at the beginning of the above source line, so it cannot be commented out by adding an extra comment. I prefer to add a space between the "TS" letters.
In previous versions of TeXShop, it was not possible to select bibtex, makeindex, metapost, context, or metafont in the "%!TEX TS-program" line, for purely historical reasons. This anomaly has been fixed, and any engine can be selected:
- tex, pdftex, latex, pdflatex, bibtex, makeindex, metapost, context, metafont, or a user defined engine
There should be one space after the equal sign before the program name, and case is important.
Selecting bibtex or makeindex in the drop down menu causes these programs to be called even if a "%!TEX TS-program" line is present, since these two programs aren't really typesetting engines and a user may need to call them even when an unusual typesetting engine is being used.
So much for the basic "Typeset" command. The TeXShop "Typeset" menu also contains items to call TeX, LaTeX, BibTeX, MakeIndex, MetaPost, ConTeXt, and MetaFont. These items are present mainly for historical reasons and most users ignore them. Adding new engines to TeXShop doesn't add extra menu items because the menu would become awkwardly long if a user had a large number of extra engines.
The BibTeX and MakeIndex items are treated specially. Selecting one of these items causes TeXShop to run the resulting program regardless of the setting of the toolbar's drop down menu and the possible presence of a "%!TEX TS-program" source line. This is probably the most convenient way to call these two commands.
The remaining TeX, LaTeX, MetaPost, ConTeXt, and MetaFont menu commands behave in a slightly different way. Selecting one of these menu items causes TeXShop to run the resulting command, regardless of the toolbar's drop-down menu selection and regardless of any "%!TEX TS-program" line. Moreover, selecting one of these menu commands changes the toolbar's drop-down menu selection to the engine chosen in the menu command. The idea behind this design is that beginning users may first find the menu commands and typeset using them. If such a user later uses the "Typeset" button in the toolbar, it should cause the same behavior as the earlier menu command.
Sorry for this complexity; I'm trying to balance leaving the interface unchanged for users set in their ways with easier use of the BibTeX and MakeIndex commands.
TeXShop Changes 2.19 - 2.20
Version 2.19 was an internal version, never released. Here are the changes in it and version 2.20:
- Line numbers are displayed in the source file. A preference item turns this feature on or off; a menu item turns it on or off for the currently active window.
This feature depends on free code by Paul Kim at Noodlesoft. The code is at http://www.noodlesoft.com/blog/; see "Displaying Line Numbers with NSTextView". I don't read this blog, but the code was pointed out to me in an email from Ryan Cuthbertson, who downloaded the TeXShop source code, implemented the change, and sent crystal clear instructions explaining how to add the feature. Kudos to Cuthbertson. Kudos especially to Paul Kim and Noodlesoft; Kim's code is so well written that Cuthbertson had to add only 32 lines of code to TeXShop to make it work.
- TeXShop now uses Sparkle to implement "Check for Updates." This brings many advantages. Rather than directing a user to the TeXShop web page when an update is available, TeXShop now lists new features directly, downloads the update upon request, and even quits TeXShop, installs the new version, and restarts the program upon request.
Sparkle is another remarkable product from the open source software community. Written by Andy Matuschak and available at http://sparkle.andymatuschak.org/, it provides every feature you'd want in an update mechanism.The documentation for developers available on the web page is a model of clarity and simplicity. Sparkle is used by a number of other GUI programs for TeX, so users for find it familiar.
- The console window has been greatly improved by Will Robertson, who sent a new Nib file containing his changes several months ago. I waited to implement the improvements until I could add a console preference tab to TeXShop Preferences allowing users to modify Robertson's choices.
The font and background color for the console can be modified in Preferences. Users can adjust the console width to match the number of characters typically output by TeX, and then select a preference allowing the window to be resized only in the vertical direction. Note that preference changes are immediately reflected in the console, so the trick to easy console configuration is to bring a console window to the front, open Preferences, try out various fonts, font sizes, and background colors until satisfied, activate horizontal resizing and adjust the console width, and then, if desired, lock down this width in Preferences.
- A number of items in the Preference panel have been moved to make the operation of the panel more transparent. The most important tab items come first: Source, Preview, Console, Typesetting. In the Preview tab, the "Fixed Magnification Amount" appears immediately following the "Magnification Method" to make it clearer that "Fixed Magnification" only applies when the "Magnification Method" is "Fixed Magnification."
- Previously, clicking the green "Zoom Dot" on TeXShop windows expanded the window to fill the screen. An attempt has been to made this operation more rational. The Source window now expands to fill the left portion of the screen; the console expands only vertically, and the Preview window expands to fill the right portion of the screen. The Preview window expands by the largest amount because users may want to zoom the image and check fine details. I'd appreciate advice on refinement of the zoom behavior. Recall that the behavior must make sense on small portable screens and large Cinema displays.
- For some time, TeXShop recognized hidden preference items to set the background color of the Source and Preview windows. These preference items are now exposed and can be set in the Preference dialog.
- A bug in the MatrixPanel code disabled the hidden preference "matrixsize''. This bug is fixed.
- The name of the alternate typesetting mode "TeX and Ghostscript" has been changed to "TeX and DVI". This fulfills a request of the American Mathematical Society, who have been dealing with users claiming that TeXShop cannot produce dvi files.
TeXShop Changes 2.15 - 2.18
Changes in TeXShop 2.16 through 2.18:
Versions 2.16 and 2.17 of TeXShop were constructed for test versions of MacTeX-2008, and released only to a few people testing that install package. Version 2.18 is now officially released on the TeXShop site.
Here are the changes:
- Added a new Preference item under the Typesetting tab. The preference is called "After Typesetting" and the choices are "Bring Preview Forward"' and "Continue Editing."' The first item activates the Preview window after typesetting and brings it forward, as TeXShop has behaved in the past. When the "Continue Editing" item is activated, typesetting updates the contents of the Preview window but leaves the Edit window active with the editing cursor blinking. This makes it possible to typeset, glance over to check that things look right, and continue editing. This option is particularly useful on large monitors which can show the full contents of both windows.
- Added support for SyncTeX. SyncTeX is new synchronization technology by Jerome Laurens which is included in TeX Live 2008 (but not earlier TeX distributions). The technology is built directly into pdfTeX and XeTeX. In modern TeX distributions, most typesetting actually calls pdfetex (even if using latex to output a dvi file), and thus the technology is available for such typesetting.
To use the technology, add the flag
- --synctex=1
to the command line call to TeX. For example, in TeXShop Preferences under the Engine tab, the lines specifying pdfTeX for Tex and pdfLaTeX should read
- pdftex --shell-escape --synctex=1
- pdflatex --shell-escape --synctex=1
A similar flag should be added to other engine scripts. The TeXShop defaults for these preferences already include this flag for pdftex and pdflatex, but not for other engine files. If the flag is included and an older version of TeX is called, typesetting will still occur (TeX will report to the console that it does not understand the flag.)
The flag causes TeX to output an additional "synctex" file during typesetting, containing information linking the TeX source file(s) to the TeX pdf file. This file is similar to the old pdfsync file generated by the older PdfSync technology, but with the very significant difference that line and page breaks are no longer changed when outputting the data.
Laurens also wrote a command line program named "synctex" which is included in TeX Live 2008; when this program is called with a request for appropriate synchronization data, the program parses the synctex file and outputs appropriate data.
To activate SyncTeX support in TeXShop, go to TeXShop Preferences under the Misc tab and select "SyncTeX" as the "Sync Method." This is the default value if you are installing TeXShop for the first time.
If SyncTeX synchronization is chosen, user interaction is exactly the same as in the old Search method. Hold down the command key while clicking at a spot in the source document. The Preview window will become active and the corresponding spot will be circled in red. Or hold down the command key while clicking at a spot in the Preview window. The source window will become active and the corresponding TeX input commands will be highlighted in yellow.
When these commands are used,TeXShop will fall back on the old Search method if SyncTeX does not find an appropriate synchronization. The most common cause for SyncTeX failure is the absence of a synctex file, which will certainly happen when the file is typeset with an older distribution. Thus users can switch between TeX Live 2007 and TeX Live 2008 without changing their synchronization preference.
A few users might like to test TeXShop's SyncTeX support without being confused by calls to the old Search synchronization method. To simplify this test, there is a new hidden preference which forces synchronization to use only SyncTeX:
- defaults write TeXShop SyncTeXOnly YES
Support for SyncTeX was added to TeXShop 2.18 at the last moment. Synctex is now used in both directions, and is generally much better than the old search synchronization. But many improvements should be possible as I digest what Jerome has provided.
Many thanks to Jerome Laurens for this wonderful work. I think you will notice an immediate improvement.
- Added encodings ISOLatinGreek, MacCentralEurRoman, and WindowsLatin2 (i.e., WindowsCentralEurRoman).
The names of the encodings are
- Greek (ISO 8859-7)
- Mac Central European Roman
- Central European (ISO Latin 2)
- Central European Roman (Windows)
and the
- IsoLatinGreek
- Mac Central European Roman
- ISOLatin2
- WindowsCentralEurRoman
- In
- encoding =
- %!TEX root =
- %!TEX TS-program =
- %!TEX projectfile =
allow a space between % and ! for better formatting, and to remove %! postscript ambiguity. The old syntax without the space is, of course, also supported.
- Added code by Adam Maxwell to permit BibDesk Completions; this is controlled by a new Preference Setting. By default, it is not activated.
- Fixed French nib file so Typeset menu works again (there are no longer simultaneous checks on "PdfTeX" and "TeX \& Ghostscript").
- Fixed tab settings, so now changing tab spacing in Preferences works correctly.
- Command-T now typesets even when the console window is active.
- Fixed pdf updating. If a user has an external editor and uses TeXShop to display pdf output, and if the "Automatic Preview Update" preference is set, then whenever the pdf file is updated, TeXShop reads and displays the latest version, activating the pdf window when it does so. There is a hidden preference item named "BringPdfFrontOnAutomaticUpdate". If this is set to "NO", then the preview window is supposed to be updated but not brought forward. Recently, the preview window did this, but didn't display the new content until the user manually activated it. This is fixed.
- Instead of separate commands to display each of George Gratzer's symbol tables, there is one command to display all of the tables in one document. It is much easier to find a symbol if you can scroll through tables rather than guessing which table has the desired symbol.
- Modified default LaTeX macros to bring them up to date.
Changes in TeXShop 2.15
TeXShop 2.15 was an experimental release. It lived for a long time on my personal web page with a promise to migrate it to the usual TeXShop site. After the promise didn't materialize for several months, the link on my personal site was noticed by Version Tracker, and for several months that system pointed to the experimental 2.15 as the latest release. At last 2.15 has become "official" with the release of TeXShop 2.18.
Here is a list of new features:
- Fixed severe memory leakage on Leopard; said another way, the hidden preference item ReleaseDocumentClasses is now automatically set correctly on Leopard. This very significant bug, which I listed for a long time as the most significant bug in TeXShop, was caused by an Apple bug in PDFKit. This bug is fixed in Leopard. Consequently, users must be running System 10.5 to obtain the fix.
- Fixed pdf drag and drop on Leopard. In earlier versions on Leopard, a dragged pdf selection had a white background, making the feature problematic for Keynote and other programs. Now a dragged pdf selection has a transparent background, as it always did on Tiger.
- Support for the Hiero package, used to typeset hieroglyphics. See http://www.filipvervloesem.be/hierotexmac/ and
the detailed explanation on http://www.filipvervloesem.be/hierotexmac/hierotex.html.
- Support for Sketch, used to construct 3D images in pdf files. See www.frontiernet.net/~eugene.ressler/.
- Generalizing the last two items, support for adding additional extensions to the list of filetypes which can be processed via TeXShop engines.
- The default templates now include a template for Beamer taken directly from the beamer web page. To see it, move the folder ~/Library/TeXShop/Templates to the desktop and restart TeXShop. The default Templates folder will be created. Merge your old Templates folder in with the new one.
Here are more details on each of these items.
- When TeXShop was first released on Tiger, users ran into an annoying bug which caused the program to gradually slow to a crawl after several typesetting actions. The problem occurred when a new pdf file was loaded into PdfKitView for the Preview window. According to Apple documentation, this should have released the previous data from memory. The release did occur, but it caused the program slowdown.
To fix this problem, I added code to TeXShop which tricked the system into believing that the old data structures were still being used so the system didn't try to release them. This meant that TeXShop gradually used more and more memory over time, and it caused other problems as well. In notes to collaborators, I called this "the single most important bug in the program."
This was really a PDFKit bug. But although I have reported several bugs to Apple (and they have been very good about fixing them), I didn't report this problem because I needed to make a small demo program illustrated the bug, and never got around to it.
When system 10.4.3 was released, it looked to me like the problem was resolved, and I modified the TeXShop code to release memory on 10.4.3 and higher. Unfortunately, it soon became apparent that the problem remained, particularly for large pdf files. Luckily, I had added a hidden preference to TeXShop called "ReleaseDocumentClasses"; the value of this preference could be
- 0 to release the data on system 10.4.3 or higher
- 1 to never release the data
- 2 to always release the data
Initially the default value of this preference was 0, but I soon changed it to 1, restoring the old "kludge behavior."
But when Leopard came out, several users reported that this preference can safely be set to 2. Further testing showed that the PDFKit bug was fixed in Leopard.
Therefore, in TeXShop 2.15 the data is always released on Leopard, regardless of the value of ReleaseDocumentClasses. The old behavior still applies on system 10.4.11 and earlier.
But just in case, there is another hidden preference called ReleaseDocumentOnLeopard. The default value of this preference is YES. If it is set to NO, the old preference ReleaseDocumentClasses becomes active and behaves as before.
- TeXShop has the ability to select a portion of the pdf image, copy the selection, and paste it into another program. Users can also drag the selection directly to another program. Before the program LaTeXiT was introduced, this feature was often used, but now LaTeXiT is usually the better way to proceed.
The file format of the copy is controlled by TeXShop preferences; the default value is to copy as pdf with a transparent background, making it easy to use the result in Keynote and similar programs.
This feature broke in the beta version of Leopard which Apple released at the 2007 Developer Conference. Later I managed to modify my code and fix the problem. But in the release version of Leopard, my fix also broke.
At the developer conference I spoke to the author of PDFKit, who recommended a different fix. That fix is now in TeXShop 2.15.
The old code used the NSView method "dataWithPDFInsideRect" directly in the PDFKit View. Before calling this method, it set the background color of the image in PDFKit to be transparent, and it also modified the PDFKit "drawPage" method to skip drawing a background when drawing for a selection. However, PDFKit in Leopard seems to have additional drawing layers which make the individual pages of an image stand out, and these layers add their own backgrounds.
The new method uses PDFKit's page object and the routine "dataRepresentation"', which I learned at the developer conference does not include background information. This data is then placed in a NSPDFImageRep object, imaged in an offscreen NSView object, and captured with the object's "dataWithPDFInsideRect" method.
There is a slight change when copying and dragging selections. Earlier, a selection could span more than one page. Now the copy will only include the portion of the selection which is on the page under the cursor.
By the way, this fixes the last TeXShop Leopard bug known to me.
- TeXShop now contains an engine file in .../Library/TeXShop/Engines/Inactive for use with the Hiero package. An additional README in the folder explains how to install Hiero. The Hiero ".htx" extension is now recognized by TeXShop, and an icon for such files is provided.
To obtain this engine, it is necessary to move the folder ~/Library/TeXShop/Engines elsewhere, say to the desktop. Then restart TeXShop. The program will create a new Engines folder, containing the new inactive items. Then merge the Engines folder on the desktop into this new default Engines folder.
- The same directory contains an engine file for Sketch. An additional README in the folder explains how to install Sketch. The ".sk" extension is now recognized by TeXShop.
- The previous two items are special cases of a general problem. A number of users have tried to use TeXShop's engine mechanism to process a source file and preview the resulting pdf output in cases where the processing engine isn't TeX at all, but rather some other Unix binary program. In many of these cases the source file has a new extension; for instance, ".htx" in the Hiero case, and ".sk" in the Sketch case.
There are two problems with this technique, one minor and one major. The minor problem is that when TeXShop creates a file, it always adds an appropriate extension, usually ".tex". In the Save dialog there is a pulldown menu listing all extensions known to TeXShop. By using this menu, files can be created with other extensions like ".ltx", ".ctx", and so forth.
But if an extension is not in this list, creating it within TeXShop is tricky. Users often try to directly type an extension, saving for example a file with name "myfile.htx". But actually TeXShop will then create "myfile.htx.tex" and even worse, the Finder may then hide the ".tex" extension.
Luckily, there is a solution. One of the file types which TeXShop can save is named "Plain Text Document". Such a file has no extension. So if the user saves "myfile.htx" after selecting the "Plain Text Document" dropdown menu item, they actually will get "myfile.htx".
The good news is that when TeXShop opens a file with an unexpected extension, say by dragging the file to the TeXShop icon, it will preserve the correct extension when saving. So this first problem is a minor problem during file creation, but it doesn't interfere with later processing the file.
The major problem is that TeXShop deactivates the "Typeset" button when a file is opened with an unknown extension, or with an extension which is not used by source files. For example, TeXShop can open pdf files and jpg files, but it doesn't allow the user to typeset such files!
Users who wanted to process ".htx" and ".sk" files with an engine found that they could not use the engine because of this behavior.
TeXShop 2.15 has a new mechanism for such users. A hidden preference allows users to add extensions to the list of legal extensions which activate the Typeset button. For example, the command
- defaults TeXShop OtherTeXExtensions -array-add "htx"
adds ".htx" to the list. To clear the list and start over with the built-in defaults, use
- defaults TeXShop OtherTeXExtensions -array
Actually, ".htx" and ".sk" are now built-in, so these users do not need the new mechanism. But it is available for future users.
- The Beamer template can certainly be improved. I'd appreciate help from experts.
Versions 1.42 and 2.05 add extra features to TeXShop and fix some bugs.
New features in 2.05:
- TeXShop 2.05 is now a Universal Binary, containing code for both the PowerPC and
Intel processors. The system automatically runs the correct version of the code.
- The default TeXShop preference for the teTeX binary directory is
/usr/local/teTeX/bin/powerpc-apple-darwin-current. But if users have installed Gerben Wierda's latest TeX redistribution, they also have Intel binaries. On Intel machines, the teTeX binary directory should then be
/usr/local/teTeX/bin/i386-apple-darwin-current. TeXShop now has code to make this change automatically. When the program first starts, it calls "uname -p" to determine the current processor. If the result is
"i386", then TeXShop permanently changes the above preference to
/usr/local/teTeX/bin/i386-apple-darwin-current. However this change is not made if the user has manually changed the default /usr/local/teTeX/bin/powerpc-apple-darwin-current to some other location. Thus if a user has the Fink teTeX distribution or some other distribution and has set the teTeX binary directory preference to point to it, the preference will not be changed.
- When TeXShop was first released on Tiger, users ran into an annoying bug which caused
the program to gradually slow to a crawl after several typesetting actions. This bug was fixed
a couple of days after the release. The problem occurred when a new pdf file was loaded into
the PdfKitView in the Preview window. According to Apple documentation, this should have
released the previous data structure from memory. The release did occur, but it caused
the program slowdown. So the bug fix consisted of tricking the system into believing that
the data structures were still being used so the system didn't try to release them.
A side effect
was that memory gradually filled up and some users learned that they needed to quit TeXShop
and restart after each day's work.
Recent investigation seems to show that this bug is fixed in Tiger 10.4.3. Consequently
the latest version of TeXShop tests which system is running and releases the old data
structures when the system is at least 10.4.3, but not otherwise.
This behavior is controlled by a new hidden Preference item:
- defaults write TeXShop ReleaseDocumentClasses 0
The default value is 0, causing the program to behave as just described. If the
value is 1, the old data structures are never released and the program behaves exactly
as earlier versions of TeXShop 2. If the value is 2, old data structures are always released.
Thus if you find that the program becomes sluggish after several typesetting jobs,
change ReleaseDocumentClasses to 1 and then report the behavior to me with as many
details as possible.
- Michael Witten, a student at MIT, added multiple wrapping modes to TeXShop.
Users can choose "no wrapping" so lines continue right until the user pushes ENTER,
or "word wrapping" so text is wrapped at word boundaries (this was the prior behavior),
or "character wrapping" so text wraps exactly at the last possible character. Not that
these wrappings are "soft"; resizing the window will change the wrapping. The default wrapping
is "word wrapping" but a menu command allows the wrapping to be changed. Moreover, a hidden
preference allows the default wrapping to be changed:
- defaults write TeXShop LineBreakMode 1
where "None" = 0, "Word Wrap" = 1, and "Character Wrap" = 2.
Wrapping is done at the right side of the window unless the ruler is active; if it is,
wrapping is done at the "right marker"
- Witten also added the command "Hard Wrap". If a paragraph is selected, this command
inserts hard wrapping commands at the right side of this paragraph. After this step,
resizing the window leaves the wraps fixed. This is useful if you send source to a colleague
whose editor has fixed width and no wrapping. If the "Hard Wrap" command is chosen but
no selection has been made, the hard wrap applies to the entire document. Note that
"Hard Wrap" is undoable.
- The TeXShop Application Bundle now contains Norman Gall's TeX-mdimporter Spotlight
importer. Files with extensions .tex, .latex, .ltx, .ctx. and .texi will be indexed
by Spotlight when saved. In systems 10.4 through 10.4.2, TeXShop files were automatically indexed because they have type TEXT, but Apple changed this procedure in 10.4.3. So the importer is
now required to index files. The system automatically recognizes the importer when TeXShop is first installed. It is then used to index .tex, .ltx, etc. files even if TeXShop is not running.
If Gall later
updates the importer and you install the new version in ~/Library/Spotlight or other canonical
spots, the updated version will be used rather than the version in the TeXShop bundle because Apple's importer search routines use importers in bundles as a last resort.
Gall's importer was not written with TeXShop in mind, but is instead designed to be used by all TeX editors and front-ends; the hope is that
there will be a universal importer rather than a different one for each front end. For the
latest version, see http://www.spookyhill.net/~gall/latex.
- The commands "altpdftex" and "altpdflatex" in Gerben Wierda's TeX distribution
have changed to "simpdftex tex" and "simpdftex latex". These are now the default preference
values for new TeXShop installations.
Moreover, the first time a user tries to typeset in the "tex + ghostscript" mode,
TeXShop will check these preference items, and change them if necessary. It does this by
determining whether "simpdftex" is in the TeX binary directory. If so, and if the command
in the TeX + dvips + distiller "TeX Program" field in the TeXShop Engine Preferences is "altpdftex", then
this field is changed to "simpdftex tex". Any additional flags in the preference field are retained.
At the same time, the "Latex Program" field is changed. If it is "altpdflatex", it is changed
to "simpdftex latex", retaining any additional flags.
- Added ISO Latin 9 encoding
- Now (apple)-[ and (apple)-] act differently in the editing window and preview window. In the editing window they are "unindent" and "indent".
In the preview window they are "back" and "forward". A disadvantage is that it was not possible to add these commands to the menus, so users need to remember these abbreviations.
This change was requested by users with German and other keyboards on which (apple)-< and (apple)-> cycle through windows. Users with English keyboards cycle through windows with (apple)-`.
- Added a new hidden preference
- defaults write TeXShop LeftRightArrowsAlwaysPage YES
The default value is NO. When set to YES, the left and right arrows
scroll by a page even if the horizontal school bar is active.
- Changed the English under the Preview tab of Preferences from
"After Window Review" to "Magnification Style" and changed "Preview
Window Magnification" to "Preview Window Fixed Magnification" to
more carefully explain the function of these preference items. Notice
that TeXShop only uses the Preview Magnification value if the
Magnification Style has been set to "Fixed Magnification".
- Added a new item
which can be added to the top of TeX source files. This change is primarily for ConTeXt users so they can use the new sync method. When synching from the preview window to the source window, TeXShop needs to know all sources file for the document being previewed so it can open source files not currently open if necessary. It does this by parsing the root document, looking for \include and \input lines. But ConTeXt uses different commands to input files. The new syntax allows ConTeXt users to directly indicate in the root document which additional source files need to be searched. Here are examples:
- %!TEX projectfile = /Users/koch/MyDoc/chapter1.tex
- %!TEX projectfile = chapter2.tex
- %!TEX projectfile = ../chapter3.tex
- Added .Rnw as an extension TeXShop can edit. This was a
request of Paolo Bosetti, who uses TeX and R and Sweave together.
- When a user tries to open a .dvi file, TeXShop runs a script to
convert the dvi file to a pdf file. In previous versions, it ran a
different script when the .dvi was in a writeable directory than when its
directory was not writeable. But Gerben Wierda has revised the simpdftex
script to handle both cases, so now TeXShop always calls simpdftex to
do the conversion. Actually it calls the TeX + dvips + distiller script which is set in Preferences; this preference will be simpdftex if the
user has a fairly recent TeX distribution.
- Added a new hidden Preference
- defaults write TeXShop RedConsoleAfterError NO
If this default is YES, then after the first error the remaining text
in the console will be red. The default value is NO.
- Slightly modified the appearnce of the Console window, particularly in
English. More work is needed here. Note that the console window can be resized and
relocated, and the system will remember this new size and location when TeXShop is
restarted.
- In version 2.05, fixed "undo past a save" using the new Tiger command
[textView breakUndoCoalescing]. Previous versions of TeXShop allowed users to undo
past a save command. But this required "tricky code" and one effect of the trick was that TeXShop sometimes
lost track of whether the current state of the document had previously been saved, and so
didn't save the document before typesetting, giving strange results in the preview window.
- Versions 2.00 through 2.04 of TeXShop sometimes had trouble remembering new preference settings; it was necessary to set them several times before they "took." This is fixed.
New features in 1.42 and 2.05:
- The commands "altpdftex" and "altpdflatex" in Gerben Wierda's TeX distribution
have changed to "simpdftex tex" and "simpdftex latex". These are now the default preference
values for new TeXShop installations.
Moreover, the first time a user tries to typeset in the "tex + ghostscript" mode,
TeXShop will check these preference items, and change them if necessary. It does this by
determining whether "simpdftex" is in the TeX binary directory. If so, and if the command
in the TeX + dvips + distiller "TeX Program" field in the TeXShop Engine Preferences is "altpdftex", then
this field is changed to "simpdftex tex". Any additional flags in the preference field are retained.
At the same time, the "Latex Program" field is changed. If it is "altpdflatex", it is changed
to "simpdftex latex", retaining any additional flags.
- Added ISO Latin 9 encoding
- New German localization and help files.
- New Japanese Help by Yoshihisa Okazaki with help from Seiji Zenitani.
- New Spanish help files and localization.
- Uses version 1.2.4 of OgreKit.
- Conversion of eps, ps, and dvi files to pdf (caused by opening such a file)
now works even if the path to the file has folders whose names contain spaces.
In all three cases, the file can now be in a folder without write permission.
- Trash AUX files now removes files with more extensions: cos, idv, 4ct, 4tc, lg, xref, ttt, fff, ent, wrm.
- If the user tries to open a file with UTF-8 Unicode encoding, but the file is not
a legal utf8 file, a dialog now appears warning of the problem, and the file is opened with
MacOSXRoman encoding.
- Bib files are promoted to full class citizens; text can be dragged to them,
syntax coloring works, etc.
- A remark: users have reported that they can no longer "find" words in the console
window. Actually, they can. This window has two portions. When typesetting ends, the
bottom portion is active, so the find panel searches that portion. To activate the top,
click on it. Then "find" works.
- Added a preference to control first mouse behavior: "Select on Activate."
When this is YES,
a click in the source window will also
set the insertion point to the click point. If it is NO, a second click is required
to change the insertion point.
- Added pdf to the types of files TeXShop can edit, and added a pdf icon.
This allows TeXShop to be chosen as the default pdf viewer.
- Added Lilypond, abc, and bst as extensions that can be edited.
- Added code by David Reitter so that selecting the word
\int, etc., selects the beginning "\" as well.
Bugs fixed:
- Japanese Image Copy Type Preference failed due to incorrect localization. Now fixed.
- Command Completion's configuration file is now loaded and saved in UTF-8 Unicode.
- Errors fixed in pdfsync.
- When typesetting engines are called, they are now passed the program filename with
extension, rather than just the filename.
- In 1.35, it was only possible to switch between the OgreKit Find panel and the
Apple Find panel in the English localization. This is fixed.
- The menu item to bring up the statistics panel was only in the English version.
Now it is in all versions.
- In all display modes except single page mode, a black border is drawn around each
pdf page. Previously this border was slightly inside the page, cutting off a slight border
around the page. Now it is just outside the page. Thanks to Scott Ranby for pointing out
this error.
- The "%!TEX TS-program" and "%!TEX root =" commands now when when used with an
external editor.
Versions 1.37 and 2.00 add extra features to TeXShop and fix some bugs.
New features in 2.00:
- A new synchronization method has been added to TeXShop, using the ability in Tiger
to search for strings in pdf files. The new method does not require including a
pdfsync.sty file, so it works out of the box on files typeset using any engine:
pdftex or pdflatex, TeX + ghoscript or LaTeX + ghostscript, XeTeX, and other engines.
- Click on a word or phrase in the source file. TeXShop will scroll the preview window to the
corresponding phrase and circle it in red. Click on a word or phrase in the
preview window. TeXShop will open the corresponding source file if it is not already
open, scroll the source to the appropriate spot, and highlight the source phrase
in yellow.
- A new TeXShop preference item selects the synchronization method to be used:
the old pdfsync method, the new search method, or a combination in which the
new search is used, but the program falls back on pdfsync if the new search does not
succeed.
- TeXShop 2.00 uses Apple's PDFKit to display the pdf preview window. This software
is introduced in system 10.4.0 (Tiger), so TeXShop 2.00 requires Tiger. PDFKit makes
the following new features possible:
New features in 2.00 and 1.37:
The remaining new features are available in both new versions.
- Earlier versions of TeXShop allowed users to set the typesetting engine of a file, its
encoding, and its root file by adding appropriate comments to the top of the source file. For example,
the following commands set the typesetting engine to xelatex, the encoding to UTF-8 Unicode,
and the root file to ../Main.tex:
- %&xelatex
- %&encoding= UTF-8 Unicode
- %SourceDoc ../Main.tex
But this syntax was a mistake because the symbols "%&" are reserved for the use of TeX.
- In versions 1.37 and 2.00 of TeXShop, the syntax has been changed to the following:
- %!TEX TS-program = xelatex
- %!TEX encoding = UTF-8 Unicode
- %!TEX root = ../Main.tex
It you used the earlier facility, you need to change your old source files to the new syntax. I'm
very sorry to cause this work, but the change is really necessary.
- If you are in the middle of a project and cannot make the change now, you can temporarily
set a hidden preference to revert to the old syntax. To do so, open Apple's Terminal program and
type
- defaults write TeXShop UseOldHeadingCommands YES
Once this is done, the new commands will be recognized but the old commands will also work.
However, I recommend turning this preference off as soon as possible.
- Commands have been added to the default Macros menu which insert the symbols "%!TEX TS-program = "
and "%!TEX encoding = " and "%!TEX root = " into the source document; new users will see these entries. Users who are upgrading can easily add these symbols as well. To add the program entry, choose "Open Macro Editor" under the Macro menu. Click the "New Item" button, name the item "Program" and set its content to
Repeat for the "Encoding" and "Root" items.
- Martin Kerz added a "Check for Updates..." command to TeXShop. He also designed the new TeXShop
web page. Thanks!
- OgreKit for searching has been upgraded to the latest 2.0.1 version.
- Additional filetypes can be edited, including files with extensions "abc", "bst", "bib", "lp", and
"pdf". The addition of "pdf" allows TeXShop to be chosen as the default pdf viewer. A new pdf icon
has been created so the system can use it on pdf files it will display in TeXShop.
- TeXShop has always had a "Revert To Saved" item under the File menu, but it has never worked!
Sorry. This is fixed.
- David Reitter modified the selection code so if the user clicks on a control word like
\gamma, the initial "\" symbol will also be chosen.
- A new preference item "Select on Activate" was added. When this item is checked, a mouse click
on the text window will select this window and also place the cursor at the spot that was clicked. If
the item is not checked, the initial mouse click will only activate the window. A separate click is then
needed to position the cursor.
- New hidden preferences were added for users who change the default foreground and background colors of the editing window. These preferences set the color of the insertion point (without these preferences, the insertion point could become invisible). To set the insertion point to white, for example,
- defaults write TeXShop insertionpoint_R 1.0
- defaults write TeXShop insertionpoint_G 1.0
- defaults write TeXShop insertionpoint_B 1.0
- When a file is typeset, all open changed files with the same root
are first saved.
- Improvements were made in the pdfsync code.
- In previous versions, it was possible to add a Macro button to the
Preview Window Toolbar in English, but not in other localizations. This is
fixed thanks to Juan Luis Varona.
- New Japanese Help by Yoshihisa Okazaki with help from Seiji Zenitani.
- A proxy icon is now added to the title of the preview window. This icon can be dragged to the desktop or other folders to create a copy of the pdf file. The source window has always had a proxy icon. Thanks to Rene Donner for suggesting this feature and explaining how to implement it.
Version 1.36 was never released.
Version 1.35 adds extra features to TeXShop and fixes some bugs.
New features:
- An important recent development is the release of XeTeX and XeLaTeX by
Jonathan Kew. See
- http://scripts.sil.org/xetex
XeTeX is not part of Gerben Wierda's standard installation, but it is available
with Wierda's i-Installer as an optional install directly from Jonathan Kew.
XeTeX can access Macintosh fonts directly, so TeX documents can be written
with Lucida Grande, Zapfino, and any other Mac font. Moreover, XeTeX
understands Unicode, so for example users can type Arabic into the
source window from right to left, typeset with TeX, and obtain Arabic
in the output window. In particular, XeTeX source documents have
UTF-8 Unicode encoding.
TeXShop 1.35 supports XeTeX directly as follows:
- a) XeTeX and XeLaTeX are now available in the pull-down typesetting menu
on the source window
- b) Using preferences, a user can make XeTeX or XeLaTeX the default
typesetting option
- c) If one of the first ten lines of the source has the form
- %!TEX encoding = UTF-8 Unicode
then that file will be loaded and saved with UTF-8 Unicode encoding,
regardless of the default encoding chosen for other documents
- d) If the first line of the source has the form
- %!TEX TS-program = xetex or %!TEX TS-program = xelatex
then the appropriate program will be used regardless of the
typesetting option chosen.
- These XeTeX features form a special case of a new general method for adding
typesetting engines to TeXShop. There is a now a folder in ~/Library/TeXShop named
Engines; the files in this folder are shell scripts which call typesetting programs.
When TeXShop first starts, it examines this folder and adds the script names of
files it contains to the pull-down typesetting menu. Choosing one of these items and
pushing the Typeset button calls the script. Users can write their own scripts and add
them to the Engines folder.
Items in ~/Library/TeXShop/Engines can be chosen as default typesetting method
in TeXShop Preferences.
The typesetting program can be set in the source code by writing one of the following
on any of the first twenty lines of the source:
- %!TEX TS-program = tex
- %!TEX TS-program = latex
- %!TEX TS-program = pdftex
- %!TEX TS-program = pdflatex
- %!TEX TS-program = personaltex
- %!TEX TS-program = personallatex
This new syntax also works for any new typesetting engine added to
~/Library/TeXShop/Engines. For example, %!TEX TS-program = xelatex chooses
XeLaTeX.
The encoding used to open or save a file can be set by writing a line of the form
- %!TEX encoding = UTF-8 Unicode
as one of the first 20 lines of a source document. Any supported encoding is allowed;
TeXShop's Help Files list the string which must appear on the right for each of
these encodings. To bypass this behavior, hold down the option key while opening
a file.
The old SourceDoc syntax has been modified to conform with the above changes.
For example, to set the root file to ../Main.tex, write
- %!TEX root = ../Main.tex
(The old syntax is still supported for setting the program, encoding, and SourceDoc,
but users are urged to switch to this new syntax.)
- TeXShop has a new Find panel by Isao Sonobe. This panel supports regular expressions.
Users can switch between the new panel and the original one in Preferences.
The Find panel depends on OgreKit, a Cocoa framework for handling regular
expressions by Sonobe. See
- http://www-gauge.scphys.kyoto-u.ac.jp/~sonobe/OgreKit/
OgreKit is distributed using a slightly modified version of the BSD license. This
license can be found in the Documentation included directly in the OgreKit Framework
folder in the TeXShop source distribution. OgreKit requires Panther, so the new panel
will only appear on machines running Panther.
There are many nice features in this new Find panel, which users can discover for
themselves. OgreKit modifies the "Find" menu submenu of the TeXShop Edit menu,
replacing it with a more extensive menu. This might be confusing to Localizers,
because the menu in the TeXShop nib file is not the menu they will see when TeXShop
is running. The Find menu in the nib file should not be modified because it will
be active in system 10.2. Instead the corresponding menu in OgreKit needs to be
localized in the TeXShop source. The Find panel presents buttons controlling how
it will find words; the settings of the buttons will be remembered from session to
session. Adjust them until Find works as expected and then relax.
- TeXShop 1.35 is distributed with the latest pdfsync.sty by Piero d'Ancona and J. Laurens.
This fixes typesetting problems caused by the version distributed with TeXShop 1.34.
TeXShop did not keep up with the changes by d'Ancona and Laurens for several months; sorry!
In the new version, \include and \input are supported; to use the second, the syntax
\input{thisfile} must be used rather than the syntax \input thisfile. The new version
supports \pdfsync, \pdfsyncstart, and \pdfsyncstop. Use the first of these commands
at any spot where you want to reference a point. If pdfsync breaks your code, enclose
the offending section in a \pdfsyncstop, \pdfsyncstart pair.
- Suppose you are typesetting myfile.tex. Pdfsync creates a file named myfile.pdfsync
containing synchronization data. Roughly speaking, each data entry describes
a synchronization point as follows:
- the page number of the output where the point occurs
- the location on this page
- the name of the source file producing this particular output
- the line number in this source file for this particular output
There is a way to get TeXShop to display these synchronization points. The preview
window toolbar has a new checkbox item called SyncMarks. By default, this item is not
shown; use Customize Toolbar in the Window menu to select it. When the checkbox is
checked, synchornization points are shown.
By default, this item will not be checked when the Preview window first appears. A hidden
preference item can change this:
- defaults write TeXShop ShowSyncMarks YES
- TeXShop 1.35 has new matrix code by Jonas Zimmermann. The Matrix Panel now
makes tables. Examine the panel to find all of the new features. There is a hidden preference
to set the default size of the matrix:
- defaults write TeXShop matrixsize 12
A very small number of users may have modified "matrixpanel.plist" in
~/Library/TeXShop/MatrixPanel. This plist has been extended; the new list is
called "matrixpanel_1.plist". Please edit this file to add your changes.
- In previous versions of TeXShop, if you clicked elsewhere and then clicked on the
edit window to edit, you would need to click twice to correctly position the cursor.
This is now changed; the first click in the edit text is recognized and positions the
cursor.
When applescript runs under the Macro menu, it starts a small second application
embedded in the TeXShop folder to actually run the script. That is because when a
command like "latex" runs, and there is an error on the source, the console appears
to accept user input, but the TeXShop event loop is not running during the
applescript action, so no user input can occur.
Many applescripts do not have this problem. TeXShop now allows users to begin
applescript macros with the command
When written this way, the script will be run directly by TeXShop rather than by
the second small application.
- Added a menu command "Trash AUX Files" and a button on the console "Trash
AUX Files." When involked, these commands move to the trash all files in the
current source directory with the same name as the source file and extensions
aux, bbl, blg, brf, glo, idx, ilg, ind, ioa, lof, log, lot, mtc, mlf, out, pdfsync, and toc.
Thanks to Will Robertson for suggesting this command and producing this list of
extensions.
Additional extensions can be added to this list with a hidden preference. To add
"dvi" to the list
- defaults write TeXShop OtherTrashExtensions -array-add "dvi"
Several such extensions can be added in this way, one by one. To remove all
additions
- defaults write TeXShop OtherTrashExtensions -array
The original list of extensions above will always remain active.
Suppose a book project has a main.tex file in a folder, and then chapters in subfolders
which are accessed using commands like \include{chapter1/chapter1.tex}. When this
book is typeset, main.aux and other files will appear in the primary folder, and
chapter1.aux will appear in a subfolder. So the "Trash AUX Files" command does
not do a complete cleanup. But if the option key is pressed when the menu item
is chosen or the button on the console window is pressed, then
- a) SourceDoc and Root File information will be used to find the
root document
- b) All files with appropriate extensions listed above will be moved to the
trash from this folder and all subfolders, even if the name does not
agree with the name of the root file.
Some users may want to throw caution to the winds and arrange that "Trash AUX Files"
always performs this more extensive cleanup. A hidden preference allows this:
- defaults write TeXShop AggressiveTrashAUX YES
- Added new templates by Will Robertson. These are heavily commented. It is
intended that users will edit them to fit their own requirements. The templates are
only installed if TeXShop is running for the first time, or if the Templates folder is
completely removed from ~/Library/TeXShop. But Will's templates are in a folder named
"More" in the TeXShop distribution; old users can obtain them by moving
"More" to ~/Library/TeXShop/Templates.
- Added new macros by Will Robertson to create tables and arrays, to insert a reference,
and to open other project files quickly. These macros have been praised on
the TeX-On-MacOSX mailing list. The macros are available for new users;
older users can obtain them by following simple instructions which come with
TeXShop 1.35.
- Added a macro to examine files in the teTeX tree. For example, if "article.sty" is
typed in the dialog produced by the Macro, kpsewhich is used to find this
file in the tree and open it in TeXShop.
- There are hidden preferences to set the color of the text in the source window
- defaults write TeXShop foreground_R 0.3
- defaults write TeXShop foreground_G 0.3
- defaults write TeXShop foreground_B 0.3
This color will show if syntax coloring is on; otherwise it will be black and then
color can be selected in the Font menu.
When used with existing hidden preferences to set the source window background
color, these commands can be used to write source as white on black, or with
other color schemes. TeXShop has new macros to set the source window colors,
and to reset to default colors.
- There are hidden preferences to make the source, preview, and console windows
partly transparent.
- defaults write TeXShop ConsoleWindowAlpha 0.75
- defaults write TeXShop SourceWindowAlpha 0.75
- defaults write TeXShop PreviewWindowAlpha 0.75
Here an alpha value of 0.00 is completely transparent and an alpha value of 1.00 is
completely opaque. Use these commands cautiously!
- TeXShop now has a Statistics panel, which lists the number of words, lines, and
characters in a document. This is obtained by calling
When first called, the document on disk is tested. After changes are made to the
document, the "update" button saves the document and calls detex again. The
detex command removes tex commands, but the word count is still only approximate.
Input and include files are counted by this command.
- New German Help by Martin Kerz. Kerz also redesigned the TeXShop Help
Window to follow Apple's current guidelines. These changes appear in
English and German, but may not appear in other localizations.
- When a file is drag-and-dropped, any alias is now resolved. Thus alias graphic
files (and other files) can be used provided they are dragged and dropped to the
source. Alias files will not work if their names are typed directly because the tex
engine does not understand aliases (it does understand symbolic links).
- Several changes were made in the Japanese portions of the code by
Seiji Zenitani, with help from Yu Itoh and Koichi Inoue. There is a new Japanese
encoding, Shift JIS X0213, which will become a new standard in Japan. There is
now utf.sty support for pTeX. Before this change, Japanese pTeX supported only
6000 Kanji characters, but utf.sty supports more than 20,300 characters.
This support is turned on by a preference item in Misc. When on, TeXShop exports
non-ptex chracters as utf.sty codes. For example, unicode characters become
\UTF(Hex code) and non-unicode characters become \CID(glyph ID).
- Zenitani also added new Japanese default settings. Previously, Japanese ptex
distributors provided their own "altpdflatex" scripts, which was confusing for
beginning users. This new version of TeXShop bundles "altpdflatex-for-ptex"
scripts and installs them in ~/Library/TeXShop/bin. The new Japanese default
settings in Preferences automatically set up TeXShop to use these new scripts.
- Added the following Chinese encodings at the request of Adam Si:
Mac Chinese Traditional, Mac Chinese Simplified, DOS Chinese Traditional,
DOS Chinese Simplified, GBK, GB 2312, and GB 18030.
- Added a new Japanese help system by Yoshihisa Okazaki.
- Added new Spanish localization and help.
- TeXShop can now open and write files with extension .dn and .engine.
- There is a hidden preference
- defaults write TeXShop BringPdfFrontOnAutomaticUpdate NO
which causes the pdf window to remain where it is when it automatically updates
and is used with an external editor. This preference was requested by a user
with an X11 editor and only seems necessary in this case.
- Users sometimes upgrade Mac OS X via "archive and install". After the installation, TeXShop
remains but teTeX is blown away. The first time such users typeset a file, they
see an error dialog reporting that "pdflatex cannot be found." This error dialog has
been revised to explain more clearly the likely cause, and resolution, of the
problem.
- The TeXShop web page now contains a "LaTeX Documentation" section listing
recommended books and links to free LaTeX guides on the internet. The web page
also makes available a number of short LaTeX example files by Will Robertson.
Bugs fixed:
- When a large number of windows were open, switching from one window to
another took a long time and yielded a spinning disk; TeXShop was completely
unresponsive during this time. This slowdown was caused by a bug in the Macro
code. The problem is now fixed.
- If a dvi file was opened in a directory without write permission, TeXShop could
not create and display a corresponding pdf file. Now it will create the pdf file
in a temporary directory and display it.
- If the abort button was pushed in the console and the user later typed and
pushed RETURN, the program crashed. Fixed.
- Two minor error dialogs, which should have appeared in a window, instead
appeared on the desktop with an inoperable "OK" button. This is fixed.
- In localizations other than English, attempts to get the applescript dictionary
crashed TeXShop. Fixed.
- The Bibtex, etc., tools in the source window did not work if a file had a root
file. Fixed.
Version 1.34 adds extra features to TeXShop and fixes some bugs.
New features:
- Added a Matrix Panel by Jonas Zimmermann, zimmerleut@gmx.de. Many
thanks.
- At the request of Claus Gerhardt, added an extra applescript command,
"goto line". For instance
- tell front document of application "TeXShop"
- goto line 15
- end tell
- Added a first cut at pdfsync. Clicking on a spot in the pdf file while holding down
the command key takes the user to the corresponding point in the source file.
If the source file has include files, this operation will open
the appropriate include file and take the user to a point in that file. Read the
help file "General Help: Pdfsync" for important details. This change depends
on pdfsync.sty, a file create by Piero D'Ancona with improvements by JÃrÃme
Laurens.
- Also added pdfsync the other way. Clicking on a spot in the source file (including
source files with root files) while holding down the command key will select
the corresponding page in the pdf file.
Bugs fixed:
- The TeX, Latex, Bibtex, Makeindex, Metapost, Context, and Metafont buttons
on the toolbar reset the default typesetting engine. This no longer happens.
Thus it is possible to hit the Bibtex button and then hit command-T to typeset
again.
- The abort button on the console window did not stay fixed when the window
was resized. Thanks to Sean Luke for pointing out these first two errors.
- The command-1 keystroke switches back and forth between the source and
preview windows. In previous versions, this did not work when a source
window had a root file set by myfile.texshop or %SourceDoc. This is now fixed.
Clicking command-1 while in the source brings up the corresponding preview
window. Clicking command-1 again brings up the original source file.
A given preview window may have several source files. Command-1
will bring up the last source file which was switched to the preview using
command-1, or the root source file if there was no previous switch.
- New Spanish help files by Juan Luis Varona Malumbres. Thanks.
- Printing now respects the "scale" setting in Page Setup. It does not respect the
"paper size" setting since paper size is set in teTeX. Printing works like this:
the dimensions of the printed document are set by tex and encoded in the
pdf file; this pdf is resized by the scale factor if this factor is not 100%, but otherwise
is placed full size and centered on the printed page; usually the document size
and printed page size are the same, but in rare cases when they are not,
the edges of the document might be cut off.
Version 1.33 adds extra features to TeXShop and fixes some bugs.
New features:
Bugs fixed:
- A few users reported that their printers added a slight yellow background to the page. Only a few printers had that problem. Frank Stengel discovered that it was caused
by a NSEraseRect call in the print drawing routine. This call has been removed;
now TeXShop prints using only one line, the vanilla Cocoa call
[myRep draw].
- In Panther, all Text objects offer word completion. If a portion of a word is typed
and option-escape is typed, the system will offer a list of possible completions.
This works in TeXShop, TextEdit, and other Cocoa programs. But TeXShop's
Command completion was broken in Panther, and made it impossible to use
this new feature. This is fixed.
- TeXShop has an applescript command to add text, but this command did not
update the undo stack.
This was fixed by Stefan Walsen; his patch is in version 1.33.
- If the user printed the source and later printed the typeset document, the document
would be lowered on the page. This is fixed.
- Jerry Keough found a strange bug when using TeXShop in Jaguar. If the user's preference setting asked that no empty document appear at startup and if the user opened a document, made the
pdf window active, and then reached over and closed the source window, the next menu use would
crash the program. This bug did not occur in Panther. It is fixed.
Version 1.32 adds two extra features to TeXShop and fixes some bugs.
New features:
-
There is a new menu item, "New Tag", which inserts an empty tag in the
source text and positions the cursor so the user can add the name of the tag.
As a corollary, there is now a keystroke to add a new tag; the keystroke
is command-2.
-
In Applescript macros, the terms #LOGPATH#, #AUXPATH#, #INDPATH#,
#BBLPATH#, and #HTMLPATH# will now be recognized; this has been added
at the request of Claus Gerhardt.
-
There is a new option to set the program called by MetaPost. See the
TeXShop help file for an explanation.
-
The drag and drop code has been improved by Seiji Zenitani. Dropping
files of types pdf, jpg, jpeg, tif, tiff, eps, or ps on the source document will
produce \includegraphics and a reference to the file. Dropping a file of type
cls, sty, or bib will \documentclass, \usepackage, or \bibliographystyle and
a file reference. Dropping any other text file will produce \input and a file
reference.
Bugs fixed:
- Although the magnification level can increase to 1000 in version 1.31,
the arrow keys next to the magnification control only allowed values up to
400. This is fixed.
- If the preview window's toolbar was in text-only mode and the magnification
panel was selected, the resulting small dialog window would not go away
in 1.31. This is fixed.
- In Preferences, if the user set the tab size or the preview window magnification
and then cancelled, the new values would still appear when the Preference
panel was again displayed. This is fixed.
- Suppose the preference to place the first page on the right side is active.
In 1.31, the left arrow key did now work in double page mode, and the right arrow
key stopped one page before the end. In double multipage mode, the end
key, the page down key, and the right arrow key stopped before displaying
the last page. All of these problems are fixed.
Version 1.31 adds some extra features to TeXShop and fixes several bugs.
New features:
-
Macros items are now specific to the typesetting engine set in the current
window. Two default sets are created when TeXShop first starts, one for
Latex and one for Context. (The Context set was created by Hans Hagen;
thanks!). Suppose a different engine is selected, say TeX. When it
starts, it will have the default Latex macros. But if this set of Macros
is edited with the Macro editor, the new set will always be associated
with TeX, while the old Latex macros will continue to be associated
with Latex. Of course the Latex macros can also be changed.
-
A new preference item allows the first page in the two double page modes
to be either on the left or on the right. Books usually put this page on
the right, so that is the default preference.
-
The preference dialog has a new pulldown menu to reset preferences to
default values. This addition was requested by Seiji Zenitani for users in
Japan who must cope with three different versions of pTeX. These users can
now rapidly set preferences without consulting documentation on web sites.
-
The largest possible magnification in the preview window is
now 1000 (previously it was 400).
-
Additional French menu translations by Hendrik Chaltin; thanks!
Bugs fixed:
- Three Panther problems are fixed. A few interface changes
were made to improve appearance in Panther. This
release is essential for Panther.
- In Panther, older versions of TeXShop refuse to create
new files, although they can open existing files. This was fixed
by adding two lines to the "displayName" code.
- In Panther, the small yellow tags which display the current
page when scrolling in multipage and double multipage display
formats were blank. Also, the small yellow tags which display
the size of a selection rectangle to copy
a portion of the pdf window were blank. This is fixed.
- On my system, Panther spellchecking often fails for all
programs. This happens at boot time. The computer boots
up, but even if the first program used is TextEdit or Mail, it refuses
to "spell check as you type" and the "Spelling dialog" refuses
to appear. I suspect this is due to a defective third party program on my
disk, since other Panther users haven't seen the problem. But
I haven't been able to isolate the bug. Once the problem occurs, TextEdit and Mail have minor text
input glitches which are cured by turning off continuous spell
checking. TeXShop had more serious glitches in this situation.
So in 1.31, extra code has been added to turn off continuous
spell checking when TeXShop starts if the spell checker is not
available.
- Fixed a bug reported by Luis Sequeira: when text was dragged within
the source window, it was always copied and pasted. It should have been cut and
pasted unless the option key was down. This is fixed.
- Juan Luis Varona Malumbres slightly improved Spanish help (small
icon for the list of help files in the drawer).
- In two page mode, typesetting no longer scrolls to the first
page.
- The new page and magnification buttons retain firstResponder
status (as before 1.29) so users can experiment with several
settings without clicking again for each experiment.
- In version 1.30 and before, if the user input an impossible line
into the "Go To Line" dialog, the program could crash; this is fixed.
Thanks to Eric Seidel for the bug report.
- Kevin Ballard, kevin@sb.org, contributed a new English.lproj folder
with revised placement of interface items in preferences, slightly revised
menu items, and other changes to improve the look of the interface
in Panther. Many thanks!
- Made spacing changes for Panther in the German preference panel.
Thanks to Martin Kerz for the suggestions.
- There is a hidden preference item to turn off tag computation:
"defaults write TeXShop TagSections NO" but this preference was disabled
somewhere along the line and certainly in 1.30. It is enabled again.
- The Preference window is no longer hidden when the program is
deactivated.