Можно только приветствовать обсуждение возможностей системы LaTeX. Жаль, авторы иногда позволяют себе слегка холиварные заявления, приводящие, соответственно, к слегка холиварным откликам (моим в том числе, увы!).
Однако писать в комментариях о том, что MS Word тоже не лыком шит и позволяет вполне успешно справляться с написанием серьёзных (и нетривиально отформатированных) текстов — это одно, а пояснить сказанное на конкретных примерах — совсем другое.
Думаю, ни у кого нет сомнений, что без тонкой обработки напильником использование Word'а может оказаться на редкость малоприятным занятием. При этом сил, времени и умений на «обтачивание» далеко не у всех хватает.
Я в повседневной работе пользуюсь шаблоном, который и хочу предложить вашему вниманию. Работа над ним ведётся с большими перерывами, поэтому его статус можно обозвать «перманентной бетой». Однако это лучше, чем ничего, да и ждать, пока я сделаю финальный релиз, можно ещё долго.
Итак, шаблон (ссылки ниже — зеркала):
Рапида
Онлайндиск
Это версия для Word 2007, но у меня есть и более старая версия для Офиса 2003.
Как ей пользоваться. Запустив файл-шаблон, вы сразу переходите в режим редактирования нового документа (на основе шаблона).
Первым делом необходимо разрешить макросы (в дальнейшем можно добавить шаблон в доверенный список, и сообщение больше не будет появляться).
Затем нужно произвести «инсталляцию» (Alt+F8, далее выполнить макрос Install). Эта операция создаёт некоторые имена объектов в Word. Удалить имена можно при помощи макроса Uninstall. Инсталляция, конечно, выполняется однократно.
После запуска шаблона вы увидите новую панель Universal:
![image](http://i055.radikal.ru/0812/90/a5ac7340cb0d.png)
Кнопки 1-5 устанавливают соответствующий стиль для заголовка. При этом работает автонумерация:
![image](http://s49.radikal.ru/i126/0812/0a/fa5bb9c6695c.png)
Кнопки следующей группы («Lists») предназначены для работы с нумерованными и маркированными списками. Четыре верхние кнопки создают список (соответствующего типа) первого или второго уровня. Соответственно, незачем больше полагаться на «умный» выбор Вордом текущего уровня списка — достаточно лишь нажать на соответствующую кнопку. Нижняя кнопка сбрасывает текущий счётчик нумерованного списка:
![image](http://s48.radikal.ru/i121/0812/6e/aeb04b1ce407.png)
Третья группа позволяет вставить какой-либо объект в текст. Я работаю в основном с рисунками, таблицами и листингами. Причём каждый вид объекта имеет собственную нумерацию (полагаю, это наиболее типичный сценарий в большинстве случаев):
![image](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/964/551/630/96455163075c0b78faae0bdcaab78217.png)
Я ещё не сделал грамотного переключателя между русской и английской версиями текста. Пока у каждого рисунка выводится заголовок «Fig.», у таблицы «Table», а у листинга — «Listing». Впрочем, в теле макросов легко найти эти строки и заменить любыми другими. Также мне не очень актуальны различные стили для подписей. Пока свой стиль имеют заголовки столбцов таблицы (tabl_header) и тело листинга (listing_body).
(Лирическое отступление: вот за что я зол на MS — так это за то, что они убрали приличный листбокс, показывающий текущий стиль текста. Очень зря!)
По причинам технического характера я был вынужден оформить каждый заголовок как отдельную таблицу (это видно, если включить режим отображения непечатаемых символов). Это не страшно, просто надо быть аккуратнее при вводе заголовка объекта (можно по ошибке вставить текст куда не надо):
![image](http://s57.radikal.ru/i155/0812/33/4b6f43558d95.png)
Внимание: сейчас предполагается двухуровневая нумерация объектов (глава.номер), поэтому в тексте всегда должен присутствовать хотя бы один заголовок первого уровня. Да, ещё одна деталь. Рисунок вставляется как ссылка (не как внедрённый объект), но это можно, конечно, изменить, если требуется.
Группа Refer to Object предназначена для создания ссылок на объекты
Каждая из кнопок с карандашом создаёт ссылку на соответствующий тип объекта (рисунок, листинг, таблица). Открывается окошко с полным списком объектов данного типа, и вы выбираете нужный:
(после вставки):
![image](http://s47.radikal.ru/i116/0812/12/5e2b22a8223a.png)
И номер самого объекта, и ссылка являются автоматически перевычисляемыми полями. Таким образом, можно вставить новый рисунок между рисунками 1 и 2. Он получит номер 2, а рисунок 2 автоматически превратится в рисунок 3. Соответственно, ссылка на рис. 2 станет ссылкой на рис. 3.
По умолчанию, Ворд не обновляет ссылки (это длительная операция). Поэтому после вставки объектов куда-нибудь в середину нужно вызвать принудительное обновление (кнопка с восклицательным знаком).
Конечно, её можно бы вызывать автоматом, но я решил, что это, скорее, повредит, если документ длинный, а пользователь хочет вставить в середину сразу 5-10 объектов.
В последней группе представлены (пока немногочисленные) кнопки стилей:
1) Стиль command. Я использую для выделения переменных:
![image](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/e34/e54/ce5/e34e54ce55aa47619def27b3853993e1.png)
Кнопке соответствует комбинация клавиш Ctrl+Shift+C. Т.е. достаточно выделить фрагмент, нажать комбинацию клавиш — и текст станет моноширинным. Повторное нажатие кнопки (или Ctrl+Shift+C) возвращает фрагменту изначальный стиль абзаца.
2) Стиль listing_body:
![image](http://s48.radikal.ru/i119/0812/3f/d442118309d3.png)
Предположим, в тексте встречается фрагмент кода, но он недостаточно велик для самостоятельного листинга.
3) Стиль «обычный». Вернуться к стандартному стилю абзаца. Полезно, например, чтобы закончить ввод нумерованного списка (нажатие кнопки превращает следующий элемент списка в «просто текст»).
4) Автоформат листинга. Превращает все табуляции в четыре пробела, сдвигает листинг влево насколько это возможно. Смысл сдвига вот в чём. Предположим, я хочу вставить в текст две строки из тела функции foo():
Строки (for(;;)...) окажутся сильно сдвинутыми вправо, а мне этого не нужно.
Вот, пожалуй, и всё. Я также писал модуль для библиографии, но вряд ли когда-нибудь его закончу. EndNote справляется с этой работой более чем удовлетворительно. Но текущая (очень простая) версия моего модуля тоже может оказаться полезной. Могу выложить, если будут просьбы.
Замечание 1: В макросах полно старого ненужного кода. Всё руки не дойдут удалить :)
Замечание 2: Большое спасибо незнакомому автору самой первой версии этого шаблона, попавшей мне в руки примерно в 2003 году. Сейчас шаблон стал совсем иным, но общий дух (как и некоторые куски кода) остались неизменными.
UPDATE: Версия шаблона для Word 2003
Rapidshare
Onlinedisk
К сожалению, у меня сейчас на компьютере не установлен Word03, поэтому я не могу толком проверить, что там и как работает.
Помню только, что в этом шаблоне ещё (вроде бы) нет макроса Install, но его можно вытащить из новой версии. А для старой в архиве лежит Normal.dot с уже произведённой инсталляцией. Ещё помню, что там несколько панелей с кнопками, но реально только одна из них полезна и соответствует 2007-й версии. Если будут проблемы, сообщайте.
UPDATE: Топик перенесён в «Я умный».
Однако писать в комментариях о том, что MS Word тоже не лыком шит и позволяет вполне успешно справляться с написанием серьёзных (и нетривиально отформатированных) текстов — это одно, а пояснить сказанное на конкретных примерах — совсем другое.
Думаю, ни у кого нет сомнений, что без тонкой обработки напильником использование Word'а может оказаться на редкость малоприятным занятием. При этом сил, времени и умений на «обтачивание» далеко не у всех хватает.
Я в повседневной работе пользуюсь шаблоном, который и хочу предложить вашему вниманию. Работа над ним ведётся с большими перерывами, поэтому его статус можно обозвать «перманентной бетой». Однако это лучше, чем ничего, да и ждать, пока я сделаю финальный релиз, можно ещё долго.
Итак, шаблон (ссылки ниже — зеркала):
Рапида
Онлайндиск
Это версия для Word 2007, но у меня есть и более старая версия для Офиса 2003.
Как ей пользоваться. Запустив файл-шаблон, вы сразу переходите в режим редактирования нового документа (на основе шаблона).
Первым делом необходимо разрешить макросы (в дальнейшем можно добавить шаблон в доверенный список, и сообщение больше не будет появляться).
Затем нужно произвести «инсталляцию» (Alt+F8, далее выполнить макрос Install). Эта операция создаёт некоторые имена объектов в Word. Удалить имена можно при помощи макроса Uninstall. Инсталляция, конечно, выполняется однократно.
После запуска шаблона вы увидите новую панель Universal:
![image](http://i055.radikal.ru/0812/90/a5ac7340cb0d.png)
Кнопки 1-5 устанавливают соответствующий стиль для заголовка. При этом работает автонумерация:
![image](http://s49.radikal.ru/i126/0812/0a/fa5bb9c6695c.png)
Кнопки следующей группы («Lists») предназначены для работы с нумерованными и маркированными списками. Четыре верхние кнопки создают список (соответствующего типа) первого или второго уровня. Соответственно, незачем больше полагаться на «умный» выбор Вордом текущего уровня списка — достаточно лишь нажать на соответствующую кнопку. Нижняя кнопка сбрасывает текущий счётчик нумерованного списка:
![image](http://s48.radikal.ru/i121/0812/6e/aeb04b1ce407.png)
Третья группа позволяет вставить какой-либо объект в текст. Я работаю в основном с рисунками, таблицами и листингами. Причём каждый вид объекта имеет собственную нумерацию (полагаю, это наиболее типичный сценарий в большинстве случаев):
![image](https://habrastorage.org/getpro/geektimes/post_images/964/551/630/96455163075c0b78faae0bdcaab78217.png)
Я ещё не сделал грамотного переключателя между русской и английской версиями текста. Пока у каждого рисунка выводится заголовок «Fig.», у таблицы «Table», а у листинга — «Listing». Впрочем, в теле макросов легко найти эти строки и заменить любыми другими. Также мне не очень актуальны различные стили для подписей. Пока свой стиль имеют заголовки столбцов таблицы (tabl_header) и тело листинга (listing_body).
(Лирическое отступление: вот за что я зол на MS — так это за то, что они убрали приличный листбокс, показывающий текущий стиль текста. Очень зря!)
По причинам технического характера я был вынужден оформить каждый заголовок как отдельную таблицу (это видно, если включить режим отображения непечатаемых символов). Это не страшно, просто надо быть аккуратнее при вводе заголовка объекта (можно по ошибке вставить текст куда не надо):
![image](http://s57.radikal.ru/i155/0812/33/4b6f43558d95.png)
Внимание: сейчас предполагается двухуровневая нумерация объектов (глава.номер), поэтому в тексте всегда должен присутствовать хотя бы один заголовок первого уровня. Да, ещё одна деталь. Рисунок вставляется как ссылка (не как внедрённый объект), но это можно, конечно, изменить, если требуется.
Группа Refer to Object предназначена для создания ссылок на объекты
Каждая из кнопок с карандашом создаёт ссылку на соответствующий тип объекта (рисунок, листинг, таблица). Открывается окошко с полным списком объектов данного типа, и вы выбираете нужный:
![image](http://i064.radikal.ru/0812/db/45655b60f160.png)
(после вставки):
![image](http://s47.radikal.ru/i116/0812/12/5e2b22a8223a.png)
И номер самого объекта, и ссылка являются автоматически перевычисляемыми полями. Таким образом, можно вставить новый рисунок между рисунками 1 и 2. Он получит номер 2, а рисунок 2 автоматически превратится в рисунок 3. Соответственно, ссылка на рис. 2 станет ссылкой на рис. 3.
По умолчанию, Ворд не обновляет ссылки (это длительная операция). Поэтому после вставки объектов куда-нибудь в середину нужно вызвать принудительное обновление (кнопка с восклицательным знаком).
Конечно, её можно бы вызывать автоматом, но я решил, что это, скорее, повредит, если документ длинный, а пользователь хочет вставить в середину сразу 5-10 объектов.
В последней группе представлены (пока немногочисленные) кнопки стилей:
1) Стиль command. Я использую для выделения переменных:
![image](https://habrastorage.org/getpro/geektimes/post_images/e34/e54/ce5/e34e54ce55aa47619def27b3853993e1.png)
Кнопке соответствует комбинация клавиш Ctrl+Shift+C. Т.е. достаточно выделить фрагмент, нажать комбинацию клавиш — и текст станет моноширинным. Повторное нажатие кнопки (или Ctrl+Shift+C) возвращает фрагменту изначальный стиль абзаца.
2) Стиль listing_body:
![image](http://s48.radikal.ru/i119/0812/3f/d442118309d3.png)
Предположим, в тексте встречается фрагмент кода, но он недостаточно велик для самостоятельного листинга.
3) Стиль «обычный». Вернуться к стандартному стилю абзаца. Полезно, например, чтобы закончить ввод нумерованного списка (нажатие кнопки превращает следующий элемент списка в «просто текст»).
4) Автоформат листинга. Превращает все табуляции в четыре пробела, сдвигает листинг влево насколько это возможно. Смысл сдвига вот в чём. Предположим, я хочу вставить в текст две строки из тела функции foo():
void main() { void foo() { for(;;) do_something(); } }
Строки (for(;;)...) окажутся сильно сдвинутыми вправо, а мне этого не нужно.
Вот, пожалуй, и всё. Я также писал модуль для библиографии, но вряд ли когда-нибудь его закончу. EndNote справляется с этой работой более чем удовлетворительно. Но текущая (очень простая) версия моего модуля тоже может оказаться полезной. Могу выложить, если будут просьбы.
Замечание 1: В макросах полно старого ненужного кода. Всё руки не дойдут удалить :)
Замечание 2: Большое спасибо незнакомому автору самой первой версии этого шаблона, попавшей мне в руки примерно в 2003 году. Сейчас шаблон стал совсем иным, но общий дух (как и некоторые куски кода) остались неизменными.
UPDATE: Версия шаблона для Word 2003
Rapidshare
Onlinedisk
К сожалению, у меня сейчас на компьютере не установлен Word03, поэтому я не могу толком проверить, что там и как работает.
Помню только, что в этом шаблоне ещё (вроде бы) нет макроса Install, но его можно вытащить из новой версии. А для старой в архиве лежит Normal.dot с уже произведённой инсталляцией. Ещё помню, что там несколько панелей с кнопками, но реально только одна из них полезна и соответствует 2007-й версии. Если будут проблемы, сообщайте.
UPDATE: Топик перенесён в «Я умный».