Pull to refresh

Как писать конспекты на компьютере быстрее, чем от руки, при помощи VS Code

Reading time5 min
Views51K
Отдельная вкладка для просмотра математики в реальном времени
Отдельная вкладка для просмотра математики в реальном времени

Введение

Далее будут описываться способы ускорения набора LaTeX-овского текста, поэтому если Вы не знаете, что такое LaTeX, то Вам придется изучить это самостоятельно (может кто оставит полезные ссылки в комментариях).

Кратко лишь скажу, что LaTeX-овский текст - это текст, при помощи которого можно создавать документы со сложными математическими формулами, красивым оформлением и т.д.

Эта статья своего рода Roadmap, так как много моментов я оставляю для самостоятельной проработки.

Эта статья является адаптацией этих статей для Vim, с парочкой новинок полезных для не англоязычных писателей.

Замечания

С обновлением расширения LaTeX Workshop больше 9.0.0 HyperSnips начинает тупить. Надеюсь, что это пофиксят в каком-нибудь из расширений.

  • LaTeX Workshop - v9.0.0

  • HyperSnips - v0.2.8 (HyperScopes - v0.0.9)

Обобщение

  • Устанавливаем VS Code

  • Устанавливаем LaTeX

  • Устанавливаем расширение для VS Code - LaTeX Workshop

  • Устанавливаем расширение для VS Code - HyperSnips

  • Настраиваем сниппеты в LaTeX Workshop

  • Настраиваем сниппеты в HyperSnips

  • Устанавливаем и настраиваем программу для удобной смены раскладки

  • Пользуемся

Ссылка на готовые сниппеты в конце статьи.

Далее идёт объяснение того, как это работает. Вы можете пользоваться этим текстом по мере того, пока самостоятельно (ведь так интереснее) осваиваете все сниппеты.

Сниппеты

Сниппеты - это команды, сокращения текста, позволяющие быстро печатать большие объёмы текста.

Например, для набора дроби в LaTeX Вам нужно ввести что-то наподобие "\frac{a}{b}", что в итоге даст нам \frac{a}{b}. Согласитесь, неудобно вводить этот текст напрямую. Благодаря сниппетам, можно сделать команду, чтобы при наборе "a/" текст заменялся на "\frac{a}{}", а курсор устанавливался внутри вторых фигурных скобок, чтобы написать знаменатель. Более того, чтобы выйти из внутренностей текста, часто оказывается удобным использование tab. То есть Вы можете настроить сниппет таким образом, чтобы при нажатии tab курсор устанавливался в конец вставленного текста.

Все мои сниппеты делятся на две группы:

  • для LaTeX Workshop (latex.json)

  • для HyperSnips (latex.hsnips, markdown.hsnips)

В latex.json (Manage->Configure User Snippets->latex.json) я пишу сниппеты, которые активируются при подтверждении (Enter) в окне предложений VS Code. Обрабатывается только пользовательский ввод.

Например, у меня при вводе "\lim" вылетает подсказка замены на "\lim\limits_{}" (таким образом могу сразу написать условие) или "\limpl", чему соответствует \Longleftarrow. В зависимости от ситуации, я могу выбрать то, что мне нужно.

В latex.hsnips (ctrl+shift+p->HyperSnips: Open Snippets Directory->создайте файл latex.hsnips) находятся сниппеты, которые автоматически заменяют текст. Это расширение обрабатывает строку целиком, поэтому эти сниппеты тяжеловеснее.

Например, я точно знаю, что мне не придется (или придется, но редко, тогда отменю замену при помощи ctrl+z) в тексте использовать знак "/". Тогда я без угрызения совести могу назначить на этот символ автозамену на "\dfrac{}{}", что логично.

В моих сниппетах внутри скобок часто стоит пробел, чтобы было удобно перемещаться по тексту при помощи ctrl+left/right.

Все сниппеты можете посмотреть по ссылке в конце статьи, в дальнейшем я их буду дорабатывать (можем вместе доработать).

Набор математики и рисование

Главная трудность, на мой взгляд, при ведении конспектов на компьютере - это набор математики и рисование.

Поскольку компиляция теховского документа происходит не быстро, а слежение за набираемыми формулами предоставляет больше комфорта, полезно использовать возможность расширения LaTeX Workshop отображать математический блок в отдельном окне (ctrl+shift+p->LaTeX Workshop: Open Math Preview Panel).

Также можно делать конспекты не в теховских файлах, а в файлах markdown. Расширение для этого типа файлов уже предустановлено в vs. Плюс этого метода в том, что отображаются не только те формулы, которые вы вводите сейчас, но и те, которые вводили раньше.

Для добавления рисунков я использую mspaint, поскольку относительно других программ он открывается достаточно быстро.

Чтобы добавить рисунок, нужно ввести \img, что-то нарисовать и сохранить, допустим, при помощи ctrl+s в нужной директории.

Для графиков я использую следующий плагин: LaTeX Snippets - Visual Studio Marketplace. Он предоставляет очень удобный инструмент для их рисования.

В итоге генерируется следующий код:

\definecolor{c8464016}{HTML}{000000}
\begin{align*}
\begin{tikzpicture}
\begin{axis}[
    legend pos=outer north east,
    title=Example,
    axis lines = middle,
    xlabel = $x$,
    ylabel = $y$,
    domain=-250:250,
    variable = t,
    trig format plots = rad,
]
\addplot [
    samples=70,
    color=c8464016
]
    { -0.2454799040800764 * x ^ 1 + 0.013559562851037057 * x ^ 2};
\addlegendentry{$y=-96.9 -0.245x + 0.014x ^ 2$}
\end{axis}
\end{tikzpicture}
\end{align*}

Чтобы быстро вставить снимок экрана можно использовать это расширение: Paste Image - Visual Studio Marketplace.

Если Вы не англоязычный писатель

Для решения различных трудностей переключения раскладки я использовал программу Punto Switcher, доступную на Windows и Mac.

Для Linux я аналогичными программами не пользовался. Если у Вас есть опыт или знаете полезную статью напишите, пожалуйста, в комментариях.

Одна из частых ошибок, свойственная не англоговорящим - набор текста в неправильной раскладке. Чтобы не переписывать текст, я назначил смену раскладки слова (Настройки Punto Switcher->Горячие клавиши->Отменить конвертацию раскладки) на ctrl+alt+z, а смену выделенного текста (Настройки Punto Switcher->Горячие клавиши->Сменить раскладку выделенного текста) на ctrl+alt+c.

Я отключил полезную функцию автозамены раскладки конкретно для VS Code, так как при работе с кодом в этом редакторе часто делаются лишние замены.

Для меня оказалось удобным назначение на левый и правый shift переключения языка на английский и русский язык соответственно.

Но в действительности не очень приятно каждый раз переключать раскладку, когда английский зачастую используется только в математических блоках, а весь остальной текст - на русском. Поэтому было бы удобнее менять раскладку при вхождении в математический блок и выходе из него.

Самое лучшее, до чего я смог додуматься на Windows, - при запуске HyperSnips (то есть при открытии файла с расширением .tex) запустить скрипт powershell, при обращении к которому будет вводиться комбинация клавиш для смены раскладки (сейчас стоит "^", что соответствует ctrl, такую смену раскладки в дополнение к шифтам также установил в Punto Switcher).

Для других систем я решения не делал, поэтому, если у Вас получится решение лучше, чем это, или если сделаете решение для другой системы, прошу помочь мне дополнить сниппеты на гитхабе.

Быстрое создание шаблонов

Чтобы быстро создавать шаблоны документов, я могу использовать сниппет "template-basic". Но для создания более сложных шаблонов, требующих дополнительных файлов, я использую расширение Project Templates. В приведенном репозитории есть пример шаблона ГОСТ 7.32, широко используемого для создания научно-исследовательских работ.

Добивание - десятипальцевый ввод

После того, как Вы привыкнете к сниппетам, научитесь писать LaTeX и почувствуете, что "уперлись в потолок", можете осваивать слепой десятипальцевый метод печати.

Можете посмотреть материал Портнова - дает полезные советы.

А вообще, если Вы учитесь в школе, универе, вам нужно заботать материал посредством проработки вопросов, билетов, и у Вас достаточно времени (мне хватило недели каждодневного неторопливого написания билетов по функану, чтобы пальцы запомнили кнопки), то можете использовать это время для тренировки этого метода.

С самого начала главное - не торопиться. Нужно стараться прожимать клавиши нужными или удобными пальцами.

В итоге, скорость набора увеличена, стресс уменьшен, ведь не нужно постоянно переключать внимание с экрана на клавиатуру.

При быстром наборе лекций я почти не смотрю ни на клавиатуру, ни на экран, поэтому больше погружен в размышления о преподаваемом материале. Хоть я и допускаю ошибки, но, думаю, это нестрашно, ведь мне никто не запретит их исправить после лекции, благо на компьютере сделать это намного проще, чем на бумаге.

Пример набора текста

Что в итоге скомпилировалось
Что в итоге скомпилировалось

Итоги

Конечно, зная эти основы, Вы можете делать настройки, удобные для Вас лично. Напоследок, хотелось бы сказать, что если Вы еще не знаете горячих клавиш для навигации по тексту, для быстрого изменения текста в VS Code, то было бы полезно их выучить.

Спасибо за внимание!

Ссылки

Zombie1995/TexSnippets (github.com)

Tags:
Hubs:
Total votes 42: ↑42 and ↓0+42
Comments50

Articles