Difference between revisions of "TeX re-encoding with TeXShop"
Thomas Unger (talk | contribs) (continue editing) |
Thomas Unger (talk | contribs) (added installation instructions for two independent TeXShop macros; one for cleaning up maths; one for cleaning up refs) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==$\rm \TeX$ re-encoding with TeXShop (OS X, 10.9)== | ==$\rm \TeX$ re-encoding with TeXShop (OS X, 10.9)== | ||
− | Please [ | + | Please [http://www.encyclopediaofmath.org/index.php/Help:HowTo_EoM read this page first]. |
− | For the TeXShop editor (tested on Mac OS 10.9), here is a tool which | + | For the [http://en.wikipedia.org/wiki/Texshop TeXShop editor] (tested on [http://en.wikipedia.org/wiki/Mac_OS_X Mac OS 10.9]), here is a tool which |
− | helps with this | + | helps with the task of re-encoding old EoM pages. (Its functionality is similar to [[Help:HowTo_EoM#Assisting_tool_for_.24.5Crm_.5CTeX.24_re-encoding_using_Emacs|this method for Emacs]], but without minibuffers.) |
− | If the | + | 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, | with png images is displayed in the front document of TeXShop, | ||
− | then one keystroke ( | + | then one keystroke (Option-Command-S) removes all the png encodings |
− | and replaces them by <nowiki>$·$</nowiki> (resp. | + | and replaces them by <nomathjax><nowiki>$·$</nowiki></nomathjax> (resp. |
− | <nowiki>$$·$$</nowiki>), prompting the user to fill in the appropriate | + | <nomathjax><nowiki>$$·$$</nowiki></nomathjax>), prompting the user to fill in the appropriate |
$\rm\TeX$ code. The user can navigate between the placeholders | $\rm\TeX$ code. The user can navigate between the placeholders | ||
− | <nowiki>$·$</nowiki> and <nowiki>$$·$$</nowiki> by pressing Ctrl-Command-F (forward) | + | <nomathjax><nowiki>$·$</nowiki></nomathjax> and <nomathjax><nowiki>$$·$$</nowiki></nomathjax> by pressing Ctrl-Command-F (forward) |
− | and Ctrl-Command-G ( | + | and Ctrl-Command-G (backwards). |
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 Mac OS 10.9 only. | + | 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.) | + | * 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. | + | * Open your favourite text editor (for example TextEdit) and copy [[Eom_replace_for_mac.pl|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. | + | * Then copy [[Eom_refs.pl|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 and need to be made executable. In order to do this, | + | * The two files you just created are perl scripts (written by [[User:Ulf_Rehmann|Ulf Rehmann]]) and need to be made executable. In order to do this, |
::open the Terminal app and type | ::open the Terminal app and type | ||
− | ::''cd Documents/EOM_Scripts/'' | + | :::''cd Documents/EOM_Scripts/'' |
::then press Enter and type | ::then press Enter and type | ||
− | ::''chmod u+x eom_replace_for_mac.pl'' | + | :::''chmod u+x eom_replace_for_mac.pl'' |
::then press Enter and type | ::then press Enter and type | ||
− | ::''chmod u+x eom_refs.pl'' | + | :::''chmod u+x eom_refs.pl'' |
− | ::then press Enter | + | ::then press Enter. |
::Now you can quit the Terminal app. | ::Now you can quit the Terminal app. | ||
− | * Open the TeXShop app, go to TexShop>Preferences and set encoding to '''Unicode (UTF-8)'''. | + | * 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 [[Eom_clean_up.txt|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 <nomathjax><nowiki>$·$</nowiki></nomathjax> and <nomathjax><nowiki>$$·$$</nowiki></nomathjax> 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 [[Help:HowTo_EoM#Editing_including_.24.5Crm_.5CTeX.24_code|here]] and [http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Use_It.27s_All_Text.21_to_invoke_an_external_editor 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 <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 Terminal app and type
- 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
TeX re-encoding with TeXShop. Encyclopedia of Mathematics. URL: http://encyclopediaofmath.org/index.php?title=TeX_re-encoding_with_TeXShop&oldid=32261