Namespaces
Variants
Actions

Difference between revisions of "TeX re-encoding with TeXShop"

From Encyclopedia of Mathematics
Jump to: navigation, search
m (minor edit)
(added installation instructions for two independent TeXShop macros; one for cleaning up maths; one for cleaning up refs)
 
(2 intermediate revisions by the same user not shown)
Line 16: Line 16:
 
The script also cleans up the references list.
 
The script also cleans up the references list.
  
===Installation Instructions===
+
===Installation Instructions for a Single Macro===
 
This has been tested with TeXShop on Mac OS 10.9 only, but will most likely also work for older OS versions. (Of course, TeXShop needs to be installed on your system).
 
This has been tested with TeXShop on Mac OS 10.9 only, but will most likely also work for older OS versions. (Of course, TeXShop needs to be installed on your system).
  
Line 47: Line 47:
  
 
'''Note:''' the It's All Text add-on saves temporary files in <nowiki>Library/Application\ Support/Firefox/Profiles/xxxxxxx.default/itsalltext/</nowiki> (here ''xxxxxxx.default'' needs to be replaced by your profile), but does not seem to delete them after use. You can periodically delete the contents of this folder.
 
'''Note:''' the It's All Text add-on saves temporary files in <nowiki>Library/Application\ Support/Firefox/Profiles/xxxxxxx.default/itsalltext/</nowiki> (here ''xxxxxxx.default'' needs to be replaced by your profile), but does not seem to delete them after use. You can periodically delete the contents of this folder.
 +
 +
<br />
 +
<br />
 +
 +
 +
===Installation Instructions for Two Independent Macros===
 +
 +
There may be situations in which only the list of references needs to be changed (when the maths is already in the right format) or in which only the maths needs to be changed (when the list of references is already in the right format). For this purpose the following two Apple scripts can be installed in TeXShop.
 +
 +
* Open the TeXShop app.
 +
* Go to ''Macros>Open Macro Editor''.
 +
* Click on the ''New Item'' button. In the ''Name:'' field, replace '''New Item''' by '''EOM Clean Up Maths'''. Copy the text from the '''EOM_Clean_Up_Maths.scpt''' script below into the ''Content:'' field.
 +
* Click on the ''New Item'' button. In the ''Name:'' field, replace '''New Item''' by '''EOM Clean Up Refs'''. Copy the text from the '''EOM_Clean_Up_Refs.scpt''' script below into the ''Content:'' field.
 +
* '''Click on the Save button.'''
 +
 +
====EOM_Clean_Up_Maths.scpt====
 +
 +
<pre>
 +
--AppleScript
 +
 +
(*
 +
This script can be used in conjunction with TeXShop to clean up EOM source files.
 +
It replaces "<img ..." strings by $•$ and "<table class="eq" ..." strings by $$•$$.
 +
 +
After execution, the cursor is positioned at the first bullet •.
 +
To go to the next bullet, press CTRL-COMMAND-F in TeXShop;
 +
to go to the previous bullet (if it has not been replaced by TeX code), press
 +
CTRL-COMMAND-G in TeXShop.
 +
 +
This script should be located in a folder called EOM_Scripts together with
 +
the perl script (written by Ulf Rehmann)
 +
 +
eom_replace_for_mac.pl
 +
 +
In case a different folder is used, please change this below.
 +
 +
The perl script needs to be made executable. In order to do this,
 +
open the Terminal app and type
 +
 +
cd Documents/EOM_Scripts/
 +
 +
then press <ENTER> and type
 +
 +
chmod u+x eom_replace_for_mac.pl
 +
 +
then press <ENTER>
 +
 +
Now you can quit the Terminal app.
 +
 +
 +
*)
 +
 +
-- enter location of perl scripts here
 +
set perlpath to "~/Documents/EOM_Scripts"
 +
 +
 +
 +
-- ACTUAL SCRIPT STARTS BELOW
 +
 +
----------------------------------------------------------------------------------------------------
 +
-- copy TeXShop front document into script_source
 +
tell application "TeXShop"
 +
set script_source to text of front document as «class utf8»
 +
end tell
 +
 +
 +
-- make a temporary file on which the perl scripts can operate
 +
set tempfile to make_temp_file()
 +
 +
-- copy script_source into the temporary file
 +
write_to_temp_file(POSIX file tempfile, script_source)
 +
 +
-- replace img strings by $•$ (inline maths) and table strings by $$•$$ (display maths)
 +
set tempstuff to (do shell script "cd " & perlpath & "; ./eom_replace_for_mac.pl " & " < " & quoted form of tempfile)
 +
 +
-- replace content of tempfile with tempstuff and convert to UNIX (LF) format; uses flip
 +
write_to_temp_file(POSIX file tempfile, tempstuff)
 +
do shell script "/bin/tcsh -c '~/Library/TeXShop/bin/flip -u  " & tempfile & "'"
 +
 +
-- copy everything back to the front document of TeXShop
 +
tell application "TeXShop"
 +
set text of front document to tempstuff as «class utf8»
 +
end tell
 +
 +
-- move the cursor to the first "slot" $•$ or $$•$$
 +
tell application "TeXShop"
 +
activate
 +
end tell
 +
 +
 +
tell application "System Events"
 +
tell process "TeXShop"
 +
key code 126 using command down
 +
key code 3 using {command down, control down}
 +
end tell
 +
end tell
 +
 +
 +
-- stuff below used to create temporary files and write to them
 +
on make_temp_file()
 +
set folder_name to path to temporary items
 +
set file_name to "eom_temp" & (random number from 100000 to 999999)
 +
set existing_file_names to list folder folder_name
 +
repeat while file_name is in existing_file_names
 +
set file_name to "eom_temp" & (random number from 100000 to 999999)
 +
end repeat
 +
return (POSIX path of folder_name) & file_name
 +
end make_temp_file
 +
 +
 +
on write_to_temp_file(temp_file, temp_text)
 +
set file_ref to open for access temp_file with write permission
 +
set eof file_ref to 0
 +
write temp_text to file_ref as «class utf8»
 +
close access file_ref
 +
end write_to_temp_file
 +
</pre>
 +
 +
====EOM_Clean_Up_Refs.scpt====
 +
<pre>
 +
--AppleScript
 +
 +
(*
 +
This script can be used in conjunction with TeXShop to clean up EOM source files.
 +
It cleans up the list of references.
 +
 +
This script should be located in a folder called EOM_Scripts together with
 +
the perl script (written by Ulf Rehmann)
 +
 +
eom_refs.pl
 +
 +
In case a different folder is used, please change this below.
 +
 +
The perl script need to be made executable. In order to do this,
 +
open the Terminal app and type
 +
 +
cd Documents/EOM_Scripts/
 +
 +
then press <ENTER> and type
 +
 +
chmod u+x eom_refs.pl
 +
 +
then press <ENTER>
 +
 +
Now you can quit the Terminal app.
 +
 +
 +
*)
 +
 +
-- enter location of perl scripts here
 +
set perlpath to "~/Documents/EOM_Scripts"
 +
 +
 +
 +
-- ACTUAL SCRIPT STARTS BELOW
 +
 +
----------------------------------------------------------------------------------------------------
 +
-- copy TeXShop front document into script_source
 +
tell application "TeXShop"
 +
set script_source to text of front document as «class utf8»
 +
end tell
 +
 +
 +
-- make a temporary file on which the perl scripts can operate
 +
set tempfile to make_temp_file()
 +
 +
-- copy script_source into the temporary file
 +
write_to_temp_file(POSIX file tempfile, script_source)
 +
 +
-- apply perl script (clean up references) to temporary file with output into a variable called tempstuff
 +
set tempstuff to (do shell script "cd " & perlpath & "; ./eom_refs.pl " & " < " & quoted form of tempfile)
 +
 +
-- replace content of tempfile with tempstuff and convert to UNIX (LF) format; uses flip
 +
write_to_temp_file(POSIX file tempfile, tempstuff)
 +
do shell script "/bin/tcsh -c '~/Library/TeXShop/bin/flip -u  " & tempfile & "'"
 +
 +
-- copy everything back to the front document of TeXShop
 +
tell application "TeXShop"
 +
set text of front document to tempstuff as «class utf8»
 +
end tell
 +
 +
 +
-- stuff below used to create temporary files and write to them
 +
on make_temp_file()
 +
set folder_name to path to temporary items
 +
set file_name to "eom_temp" & (random number from 100000 to 999999)
 +
set existing_file_names to list folder folder_name
 +
repeat while file_name is in existing_file_names
 +
set file_name to "eom_temp" & (random number from 100000 to 999999)
 +
end repeat
 +
return (POSIX path of folder_name) & file_name
 +
end make_temp_file
 +
 +
 +
on write_to_temp_file(temp_file, temp_text)
 +
set file_ref to open for access temp_file with write permission
 +
set eof file_ref to 0
 +
write temp_text to file_ref as «class utf8»
 +
close access file_ref
 +
end write_to_temp_file
 +
</pre>

Latest revision as of 13:29, 13 November 2014

$\rm \TeX$ re-encoding with TeXShop (OS X, 10.9)

Please read this page first.

For the TeXShop editor (tested on Mac OS 10.9), here is a tool which helps with the task of re-encoding old EoM pages. (Its functionality is similar to this method for Emacs, but without minibuffers.)

If the Applescript and perl scripts are installed as explained below, and the wiki text file for an old EoM page with png images is displayed in the front document of TeXShop, then one keystroke (Option-Command-S) removes all the png encodings and replaces them by $·$ (resp. $$·$$), prompting the user to fill in the appropriate $\rm\TeX$ code. The user can navigate between the placeholders $·$ and $$·$$ by pressing Ctrl-Command-F (forward) and Ctrl-Command-G (backwards). The script also cleans up the references list.

Installation Instructions for a Single Macro

This has been tested with TeXShop on Mac OS 10.9 only, but will most likely also work for older OS versions. (Of course, TeXShop needs to be installed on your system).

  • Create a folder called EOM_Scripts inside your Documents folder. (You can also use a different folder, but then you need to change one line in the script.)
  • Open your favourite text editor (for example TextEdit) and copy these contents into a new document. Save this document (as a Plain Text file) with title eom_replace_for_mac.pl in the folder EOM_Scripts.
  • Then copy these contents into a new document. Save this document (as a Plain Text file) with title eom_refs.pl in the folder EOM_Scripts.
  • The two files you just created are perl scripts (written by Ulf Rehmann) and need to be made executable. In order to do this,
open the Terminal app and type
cd Documents/EOM_Scripts/
then press Enter and type
chmod u+x eom_replace_for_mac.pl
then press Enter and type
chmod u+x eom_refs.pl
then press Enter.
Now you can quit the Terminal app.
  • Open the TeXShop app, go to TexShop>Preferences and set encoding to Unicode (UTF-8).
  • Then go to Macros>Open Macro Editor, click on the Separator button and then on the New Item button. In the Name: field, replace New Item by EOM Clean Up. In the Key: field, enter a lowercase s and tick the Option box. Finally, copy the text of this document into the Content: field. (This text is an Applescript.) Finally, click on the Save button.

Note: if you decided not to use the folder Documents/EOM_Scripts, you need to enter the correct folder name on line 26 of the Applescript.


Usage

Stand-alone

Open the EoM source in a TeXShop window and press Option-Command-S or, alternatively, select EOM Clean Up (installed earlier) from the Macros menu. Once the Applescript is finished, you can navigate between the placeholders $·$ and $$·$$ by pressing Ctrl-Command-F (forward) and Ctrl-Command-G (backward).

In conjunction with the Firefox add-on It's All Text

Follow the instructions here and here and don't forget to choose TeXShop as your editor in the Preferences!

Note: the It's All Text add-on saves temporary files in Library/Application\ Support/Firefox/Profiles/xxxxxxx.default/itsalltext/ (here xxxxxxx.default needs to be replaced by your profile), but does not seem to delete them after use. You can periodically delete the contents of this folder.




Installation Instructions for Two Independent Macros

There may be situations in which only the list of references needs to be changed (when the maths is already in the right format) or in which only the maths needs to be changed (when the list of references is already in the right format). For this purpose the following two Apple scripts can be installed in TeXShop.

  • Open the TeXShop app.
  • Go to Macros>Open Macro Editor.
  • Click on the New Item button. In the Name: field, replace New Item by EOM Clean Up Maths. Copy the text from the EOM_Clean_Up_Maths.scpt script below into the Content: field.
  • Click on the New Item button. In the Name: field, replace New Item by EOM Clean Up Refs. Copy the text from the EOM_Clean_Up_Refs.scpt script below into the Content: field.
  • Click on the Save button.

EOM_Clean_Up_Maths.scpt

--AppleScript

(* 
This script can be used in conjunction with TeXShop to clean up EOM source files.
It replaces "<img ..." strings by $•$ and "<table class="eq" ..." strings by $$•$$.

After execution, the cursor is positioned at the first bullet •. 
To go to the next bullet, press CTRL-COMMAND-F in TeXShop; 
to go to the previous bullet (if it has not been replaced by TeX code), press 
CTRL-COMMAND-G in TeXShop.

This script should be located in a folder called EOM_Scripts together with
the perl script (written by Ulf Rehmann)

eom_replace_for_mac.pl

In case a different folder is used, please change this below.

The perl script needs to be made executable. In order to do this,
open the Terminal app and type

cd Documents/EOM_Scripts/

then press <ENTER> and type

chmod u+x eom_replace_for_mac.pl

then press <ENTER>

Now you can quit the Terminal app.


*)

-- enter location of perl scripts here
set perlpath to "~/Documents/EOM_Scripts"



-- ACTUAL SCRIPT STARTS BELOW

----------------------------------------------------------------------------------------------------
-- copy TeXShop front document into script_source
tell application "TeXShop"
	set script_source to text of front document as «class utf8»
end tell


-- make a temporary file on which the perl scripts can operate
set tempfile to make_temp_file()

-- copy script_source into the temporary file 
write_to_temp_file(POSIX file tempfile, script_source)

-- replace img strings by $•$ (inline maths) and table strings by $$•$$ (display maths)
set tempstuff to (do shell script "cd " & perlpath & "; ./eom_replace_for_mac.pl " & " < " & quoted form of tempfile)

-- replace content of tempfile with tempstuff and convert to UNIX (LF) format; uses flip
write_to_temp_file(POSIX file tempfile, tempstuff)
do shell script "/bin/tcsh -c '~/Library/TeXShop/bin/flip -u  " & tempfile & "'"

-- copy everything back to the front document of TeXShop
tell application "TeXShop"
	set text of front document to tempstuff as «class utf8»
end tell

-- move the cursor to the first "slot" $•$ or $$•$$
tell application "TeXShop"
	activate
end tell


tell application "System Events"
	tell process "TeXShop"
		key code 126 using command down
		key code 3 using {command down, control down}
	end tell
end tell


-- stuff below used to create temporary files and write to them
on make_temp_file()
	set folder_name to path to temporary items
	set file_name to "eom_temp" & (random number from 100000 to 999999)
	set existing_file_names to list folder folder_name
	repeat while file_name is in existing_file_names
		set file_name to "eom_temp" & (random number from 100000 to 999999)
	end repeat
	return (POSIX path of folder_name) & file_name
end make_temp_file


on write_to_temp_file(temp_file, temp_text)
	set file_ref to open for access temp_file with write permission
	set eof file_ref to 0
	write temp_text to file_ref as «class utf8»
	close access file_ref
end write_to_temp_file

EOM_Clean_Up_Refs.scpt

--AppleScript

(* 
This script can be used in conjunction with TeXShop to clean up EOM source files.
It cleans up the list of references. 	

This script should be located in a folder called EOM_Scripts together with
the perl script (written by Ulf Rehmann)

eom_refs.pl

In case a different folder is used, please change this below.

The perl script need to be made executable. In order to do this,
open the Terminal app and type

cd Documents/EOM_Scripts/

then press <ENTER> and type

chmod u+x eom_refs.pl

then press <ENTER>

Now you can quit the Terminal app.


*)

-- enter location of perl scripts here
set perlpath to "~/Documents/EOM_Scripts"



-- ACTUAL SCRIPT STARTS BELOW

----------------------------------------------------------------------------------------------------
-- copy TeXShop front document into script_source
tell application "TeXShop"
	set script_source to text of front document as «class utf8»
end tell


-- make a temporary file on which the perl scripts can operate
set tempfile to make_temp_file()

-- copy script_source into the temporary file 
write_to_temp_file(POSIX file tempfile, script_source)

-- apply perl script (clean up references) to temporary file with output into a variable called tempstuff
set tempstuff to (do shell script "cd " & perlpath & "; ./eom_refs.pl " & " < " & quoted form of tempfile)

-- replace content of tempfile with tempstuff and convert to UNIX (LF) format; uses flip
write_to_temp_file(POSIX file tempfile, tempstuff)
do shell script "/bin/tcsh -c '~/Library/TeXShop/bin/flip -u  " & tempfile & "'"

-- copy everything back to the front document of TeXShop
tell application "TeXShop"
	set text of front document to tempstuff as «class utf8»
end tell


-- stuff below used to create temporary files and write to them
on make_temp_file()
	set folder_name to path to temporary items
	set file_name to "eom_temp" & (random number from 100000 to 999999)
	set existing_file_names to list folder folder_name
	repeat while file_name is in existing_file_names
		set file_name to "eom_temp" & (random number from 100000 to 999999)
	end repeat
	return (POSIX path of folder_name) & file_name
end make_temp_file


on write_to_temp_file(temp_file, temp_text)
	set file_ref to open for access temp_file with write permission
	set eof file_ref to 0
	write temp_text to file_ref as «class utf8»
	close access file_ref
end write_to_temp_file
How to Cite This Entry:
TeX re-encoding with TeXShop. Encyclopedia of Mathematics. URL: http://encyclopediaofmath.org/index.php?title=TeX_re-encoding_with_TeXShop&oldid=32287