[1f4adec] | 1 | This file is part of the SyncTeX package. |
---|
| 2 | |
---|
| 3 | The Synchronization TeXnology named SyncTeX is a new feature |
---|
| 4 | of recent TeX engines designed by Jerome Laurens. |
---|
| 5 | It allows to synchronize between input and output, which means to |
---|
| 6 | navigate from the source document to the typeset material and vice versa. |
---|
| 7 | More informations on http://itexmac2.sourceforge.net/SyncTeX.html |
---|
| 8 | |
---|
| 9 | This package is mainly for developers, it mainly contains the following files: |
---|
| 10 | |
---|
| 11 | synctex_parser_readme.txt |
---|
| 12 | synctex_parser_version.txt |
---|
| 13 | synctex_parser_utils.c |
---|
| 14 | synctex_parser_utils.h |
---|
| 15 | synctex_parser_local.h |
---|
| 16 | synctex_parser.h |
---|
| 17 | synctex_parser.c |
---|
| 18 | |
---|
| 19 | The file you are reading contains more informations about the SyncTeX parser history. |
---|
| 20 | |
---|
| 21 | In order to support SyncTeX in a viewer, it is sufficient to include |
---|
| 22 | in the source the files synctex_parser.h and synctex_parser.c. |
---|
| 23 | The synctex parser usage is described in synctex_parser.h header file. |
---|
| 24 | |
---|
| 25 | The other files are used by tex engines or by the synctex command line utility: |
---|
| 26 | |
---|
| 27 | ChangeLog |
---|
| 28 | README.txt |
---|
| 29 | am |
---|
| 30 | man1 |
---|
| 31 | man5 |
---|
| 32 | synctex-common.h |
---|
| 33 | synctex-convert.sh |
---|
| 34 | synctex-e-mem.ch0 |
---|
| 35 | synctex-e-mem.ch1 |
---|
| 36 | synctex-e-rec.ch0 |
---|
| 37 | synctex-e-rec.ch1 |
---|
| 38 | synctex-etex.h |
---|
| 39 | synctex-mem.ch0 |
---|
| 40 | synctex-mem.ch1 |
---|
| 41 | synctex-mem.ch2 |
---|
| 42 | synctex-pdf-rec.ch2 |
---|
| 43 | synctex-pdftex.h |
---|
| 44 | synctex-rec.ch0 |
---|
| 45 | synctex-rec.ch1 |
---|
| 46 | synctex-rec.ch2 |
---|
| 47 | synctex-tex.h |
---|
| 48 | synctex-xe-mem.ch2 |
---|
| 49 | synctex-xe-rec.ch2 |
---|
| 50 | synctex-xe-rec.ch3 |
---|
| 51 | synctex-xetex.h |
---|
| 52 | synctex.c |
---|
| 53 | synctex.defines |
---|
| 54 | synctex.h |
---|
| 55 | synctex_main.c |
---|
| 56 | tests |
---|
| 57 | |
---|
| 58 | |
---|
| 59 | Version: |
---|
| 60 | -------- |
---|
| 61 | This is version 1, which refers to the synctex output file format. |
---|
| 62 | The files are identified by a build number. |
---|
| 63 | In order to help developers to automatically manage the version and build numbers |
---|
| 64 | and download the parser only when necessary, the synctex_parser.version |
---|
| 65 | is an ASCII text file just containing the current version and build numbers. |
---|
| 66 | |
---|
| 67 | History: |
---|
| 68 | -------- |
---|
| 69 | 1.1: Thu Jul 17 09:28:13 UTC 2008 |
---|
| 70 | - First official version available in TeXLive 2008 DVD. |
---|
| 71 | Unfortunately, the backwards synchronization is not working properly mainly for ConTeXt users, see below. |
---|
| 72 | 1.2: Tue Sep 2 10:28:32 UTC 2008 |
---|
| 73 | - Correction for ConTeXt support in the edit query. |
---|
| 74 | The previous method was assuming that TeX boxes do not overlap, |
---|
| 75 | which is reasonable for LaTeX but not for ConTeXt. |
---|
| 76 | This assumption is no longer considered. |
---|
| 77 | 1.3: Fri Sep 5 09:39:57 UTC 2008 |
---|
| 78 | - Local variable "read" renamed to "already_read" to avoid conflicts. |
---|
| 79 | - "inline" compiler directive renamed to "SYNCTEX_INLINE" for code support and maintenance |
---|
| 80 | - _synctex_error cannot be inlined due to variable arguments (thanks Christiaan Hofman) |
---|
| 81 | - Correction in the display query, extra boundary nodes are used for a more precise forwards synchronization |
---|
| 82 | 1.4: Fri Sep 12 08:12:34 UTC 2008 |
---|
| 83 | - For an unknown reason, the previous version was not the real 1.3 (as used in iTeXMac2 build 747). |
---|
| 84 | As a consequence, a crash was observed. |
---|
| 85 | - Some typos are fixed. |
---|
| 86 | 1.6: Mon Nov 3 20:20:02 UTC 2008 |
---|
| 87 | - The bug that prevented synchronization with compressed files on windows has been fixed. |
---|
| 88 | - New interface to allow system specific customization. |
---|
| 89 | - Note that some APIs have changed. |
---|
| 90 | 1.8: Mer 8 jul 2009 11:32:38 UTC |
---|
| 91 | Note that version 1.7 was delivered privately. |
---|
| 92 | - bug fix: synctex was causing a memory leak in pdftex and xetex, thus some processing speed degradation |
---|
| 93 | - bug fix: the synctex command line tool was broken when updating a .synctex file |
---|
| 94 | - enhancement: better accuracy of the synchronization process |
---|
| 95 | - enhancement: the pdf output file and the associated .synctex file no longer need to live in the same directory. |
---|
| 96 | The new -d option of the synctex command line tool manages this situation. |
---|
| 97 | This is handy when using something like tex -output-directory=DIR ... |
---|
| 98 | 1.9: Wed Nov 4 11:52:35 UTC 2009 |
---|
| 99 | - Various typo fixed |
---|
| 100 | - OutputDebugString replaced by OutputDebugStringA to deliberately disable unicode preprocessing |
---|
| 101 | - New conditional created because OutputDebugStringA is only available since Windows 2K professional |
---|
| 102 | 1.10: Sun Jan 10 10:12:32 UTC 2010 |
---|
| 103 | - Bug fix in synctex_parser.c to solve a synchronization problem with amsmath's gather environment. |
---|
| 104 | Concerns the synctex tool. |
---|
| 105 | 1.11: Sun Jan 17 09:12:31 UTC 2010 |
---|
| 106 | - Bug fix in synctex_parser.c, function synctex_node_box_visible_v: 'x' replaced by 'y'. |
---|
| 107 | Only 3rd party tools are concerned. |
---|
| 108 | 1.12: Mon Jul 19 21:52:10 UTC 2010 |
---|
| 109 | - Bug fix in synctex_parser.c, function __synctex_open: the io_mode was modified even in case of a non zero return, |
---|
| 110 | causing a void .synctex.gz file to be created even if it was not expected. Reported by Marek Kasik concerning a bug on evince. |
---|
| 111 | 1.13: Fri Mar 11 07:39:12 UTC 2011 |
---|
| 112 | - Bug fix in synctex_parser.c, better synchronization as suggested by Jan Sundermeyer (near line 3388). |
---|
| 113 | - Stronger code design in synctex_parser_utils.c, function _synctex_get_name (really neutral behavior). |
---|
| 114 | Only 3rd party tools are concerned. |
---|
| 115 | 1.14: Fri Apr 15 19:10:57 UTC 2011 |
---|
| 116 | - taking output_directory into account |
---|
| 117 | - Replaced FOPEN_WBIN_MODE by FOPEN_W_MODE when opening the text version of the .synctex file. |
---|
| 118 | - Merging with LuaTeX's version of synctex.c |
---|
| 119 | 1.15: Fri Jun 10 14:10:17 UTC 2011 |
---|
| 120 | This concerns the synctex command line tool and 3rd party developers. |
---|
| 121 | TeX and friends are not concerned by these changes. |
---|
| 122 | - Bug fixed in _synctex_get_io_mode_name, sometimes the wrong mode was returned |
---|
| 123 | - Support for LuaTeX convention of './' file prefixing |
---|
| 124 | 1.16: Tue Jun 14 08:23:30 UTC 2011 |
---|
| 125 | This concerns the synctex command line tool and 3rd party developers. |
---|
| 126 | TeX and friends are not concerned by these changes. |
---|
| 127 | - Better forward search (thanks Jose Alliste) |
---|
| 128 | - Support for LuaTeX convention of './' file prefixing now for everyone, not only for Windows |
---|
| 129 | 1.17: Fri Oct 14 08:15:16 UTC 2011 |
---|
| 130 | This concerns the synctex command line tool and 3rd party developers. |
---|
| 131 | TeX and friends are not concerned by these changes. |
---|
| 132 | - synctex_parser.c: cosmetic changes to enhance code readability |
---|
| 133 | - Better forward synchronization. |
---|
| 134 | The problem occurs for example with LaTeX \item command. |
---|
| 135 | The fact is that this command creates nodes at parse time but these nodes are used only |
---|
| 136 | after the text material of the \item is displayed on the page. The consequence is that sometimes, |
---|
| 137 | forward synchronization spots an irrelevant point from the point of view of the editing process. |
---|
| 138 | This was due to some very basic filtering policy, where a somehow arbitrary choice was made when |
---|
| 139 | many different possibilities where offered for synchronisation. |
---|
| 140 | Now, forward synchronization prefers nodes inside an hbox with as many acceptable spots as possible. |
---|
| 141 | This is achieved with the notion of mean line and node weight. |
---|
| 142 | - Adding support for the new file naming convention with './' |
---|
| 143 | + function synctex_ignore_leading_dot_slash_in_path replaces synctex_ignore_leading_dot_slash |
---|
| 144 | + function _synctex_is_equivalent_file_name is more permissive |
---|
| 145 | Previously, the function synctex_scanner_get_tag would give an answer only when |
---|
| 146 | the given file name was EXACTLY one of the file names listed in the synctex file. |
---|
| 147 | The we added some changes accepting for example 'foo.tex' instead of './foo.tex'. |
---|
| 148 | Now we have an even looser policy for dealing with file names. |
---|
| 149 | If the given file name does not match exactly one the file names of the synctex file, |
---|
| 150 | then we try to match the base names. If there is only one match of the base names, |
---|
| 151 | then it is taken as a match for the whole names. |
---|
| 152 | The base name is defined as following: |
---|
| 153 | ./foo => foo |
---|
| 154 | /my///.////foo => foo |
---|
| 155 | /foo => /foo |
---|
| 156 | /my//.foo => /my//.foo |
---|
| 157 | 1.17: Tue Mar 13 10:10:03 UTC 2012 |
---|
| 158 | - minor changes, no version changes |
---|
| 159 | - syntax man pages are fixed as suggested by M. Shimata |
---|
| 160 | see mail to tex-live@tug.org titled "syntax.5 has many warnings from groff" and "syntax.1 use invalid macro for mdoc" |
---|
| 161 | 1.17: Tue Jan 14 09:55:00 UTC 2014 |
---|
| 162 | - fixed a segfault, from Sebastian Ramacher |
---|
| 163 | 1.17: Mon Aug 04 |
---|
| 164 | - fixed a memory leak |
---|
| 165 | 1.18: Thu Jun 25 11:36:05 UTC 2015 |
---|
| 166 | - nested sheets now fully supported (does it make sense in TeX) |
---|
| 167 | - cosmetic changes: uniform indentation |
---|
| 168 | - suppression of warnings, mainly long/int ones. In short, zlib likes ints when size_t likes longs. |
---|
| 169 | - CLI synctex tool can build out of TeXLive (modulo appropriate options passed to the compiler) |
---|
| 170 | |
---|
| 171 | Acknowledgments: |
---|
| 172 | ---------------- |
---|
| 173 | The author received useful remarks from the pdfTeX developers, especially Hahn The Thanh, |
---|
| 174 | and significant help from XeTeX developer Jonathan Kew |
---|
| 175 | |
---|
| 176 | Nota Bene: |
---|
| 177 | ---------- |
---|
| 178 | If you include or use a significant part of the synctex package into a software, |
---|
| 179 | I would appreciate to be listed as contributor and see "SyncTeX" highlighted. |
---|
| 180 | |
---|
| 181 | Copyright (c) 2008-2014 jerome DOT laurens AT u-bourgogne DOT fr |
---|
| 182 | |
---|