Pull to refresh

Comments 48

Большие схемы можно, наверное, компилировать отдельно и вставлять сгенерированный PDF в текст работы.
А компиляция в draft режиме не помогает?
У меня draft режим ничего не делает с circuits/circuitikz (посмотреть). Эта опция действует на PGF, но не на TikZ
Да, это можно сделать завернув окружение tikzpicture в класс standalone. Класс документа standalone автоматически подгоняет размер листа под содержимое, и можно с помощью LaTeX генерить PDF с автоподбираемым размером листа. Использовать его можно так:
\documentclass[varwidth=true,border=4pt]{standalone}

Здесь border задаёт поля.
Ещё дополню, что в standalone можно оборачивать не только схемы но и любую графику. Замедление компиляции документа наблюдается не только для схем, но и для любой насыщенной графики TikZ.
Спасибо за статью. Но у меня сразу возникает вопрос: зачем мучаться с TikZ для построения схем даже среднего размера? Я полностью понимаю и разделяю желание хранить подобные схемы в «сыром» виде, чтобы можно было их в любой момент поправить и пересобрать конечный документ. Но почему TikZ? Неужели нет более достойного формата для составления электрических схем?
Немного поделюсь опытом: мне в своей диссертации приходилось рисовать разные графики. И в какой-то момент в мою голову залетела шальная мысль рисовать их на TikZ, но, слава богу, он быстро вылетела. В итоге все вычисления и построения графиков я делал на R; на каждую сборку документа скрипты перезапускались, рендерились новые картинки, вставлялись в документ. Работать удобно, в системе контроля версий все изменения логики построения графиков отслеживаются, легко вносить правки в любой момент. На главная идея в том, что R позволил мне тратить минимум усилий на рисование и отображение рисунков, чтобы я мог сосредоточиться на сути работы.
Это не критика. Я никогда не работал с электрическими схемами, не могу дать конкретных конструктивных советов. Просто подход с TikZ меня не воодушевляет. Пробовали вы искать альтернативные инструменты, которые можно было бы внедрить в процесс построения LaTeX-документа? Быть может, можно было бы избежать недостатков вашего способа, о которых вы пишете в конце статьи.
TikZ обеспечивает максимально нативный вид схемы. Можно нарисовать схемы с формулами LaTeX. Можно объединять их с уже существующей графикой TikZ, чтобы нарисовать схемы установок, которые не являются чисто электрическими схемами. Ни шрифты, ни типы линий ничем не отличаются от остального документа. И весь документ автоматически можно пересобрать один раз нажав на кнопку PDFLaTeX в Kile.

Похожие результаты можно получить используя экспорт SVG в PDF+LaTeX. Он подставляет шрифты LaTeX и обрабатывает формулы LaTeX. Подробнее здесь mydebianblog.blogspot.ru/2013/05/latex-inkscape.html. Но способ уже требует объединения при помощи Makefile или каждый раз переэкспортировать SVG.

Ну и если шрифты LaTeX и формулы в схемах не нужны или не важны, то можно напрямую их заэкспортировать из например KiCAD. Список свободного ПО для рисования схем есть здесь en.wikipedia.org/wiki/Wikipedia:WikiProject_Electronics/Programs

С графиками в TikZ я проблем не вижу. Чтобы строить их не всегда нужно вручную писать код TikZ. Gnuplot и Octave умеют автоматически генерить TikZ, который вставляется через /input{}.
Для Gnuplot нужно использовать set terminal tikz, а для Octave print -dtikz. При этом тоже на графике можно разместить например формулу TikZ, если заключить её в $...$. И всё тоже можно объединить через скрипты. Я так делал, чтобы автоматически перестраивать графики в отчёте, если изменились данные, пришедшие с приборов.

Вручную имеет смысл строить через TikZ графики, которые выражаются аналитической функцией. Кода здесь немного (не больше чем в Gnuplot) и результат весьма достойный.

Например:
\begin{figure}[!ht]
  \centering
  \begin{tikzpicture}
   \draw[-latex] (0,0) -- (7,0) node [anchor=west] {$\omega$};
   \draw[-latex] (0,0) -- (0,5) node [anchor=south] {$|H(j\omega)|$};
    \draw[domain=0:2,y=4cm, x=3cm,smooth,name path=MR] plot  function{1/(1+x**8)**0.5};
    \path [name path=Fc] (0,3.5) -- (5,3.5);
    \path [name path=Fs] (0,1) -- (5,1);
    \draw [dashed,name intersections={of=MR and Fc}] (0,3.5) node [anchor=east]
    {$\alpha_p$} -- (intersection-1);
    \draw [dashed,name intersections={of=MR and Fc}] (intersection-1) |- (0,0);
    \draw [dashed,name intersections={of=MR and Fs}] (0,1) node [anchor=east]
    {$\alpha_s$} -- (intersection-1);
    \draw [dashed,name intersections={of=MR and Fs}] (intersection-1) |- (0,0);
    \node [anchor=north] at (2.6,0) {$\omega_c$};
    \node [anchor=north] at (4.2,0) {$\omega_s$};
  \end{tikzpicture}
  \caption{Typical 4-th order Butterworth filter magnitude response}  \label{fig:butterw}
\end{figure}


Здесь достаточно замороченный график с греческими буквами и точками пересечений на кривой.
Слышал, что иностранные научные издания иногда требуют оформления статей в формате ТеХ, в этом смысле без него не обойтись. Если есть большой объем таких статей, то и диссертацию имеет смысл делать в этом редакторе. Но на западе это, возможно, дань традиции, так исторически сложилось, ТеХ был тогда, когда еще не было другого научно-технического ПО. В РФ все редакции берут статьи в формате Word, графики-диаграммы там легко делаются в Exel, а схемы предварительно делаются в каком-нибудь редакторе из ПО САПР и вставляются в формате JPG.
А какое другое ПО для набора научно-технического текста вы знаете? Графики в Excel и статьи в Word повеселили, конечно.
Больше никакого не знаю — не было необходимости, в десятке журналов статьи, нигде ничего кроме Word не требовали.
Мы в Nature Communication статью отправили. Биотехнологии. Word и отдельно иллюстрации с видеоматериалами
Это возможно, IEEE, у них вроде такого вида схемы в материалах. Характерное такое изображение символов.
И, кстати, не ГОСТовское. Возможно, потому редакции в РФ и не берут.
Допустим Вы написали в Word огромный текст с сотней формул, с сылками на них, с сотней рисунков, с упомининием рисунков в тексте, с огромным перечнем источников в конце и ссылками на них по тексту. Вот вы набрали этот текст, а потом… Вам вдруг понадобилось вставить в середину пару формул, один махонький рисуночек, да и оказалось, что литературу Вы набрали не по тому ГОСТу, что требует Ваша редакция.

Ваши действия в Word?

Мои действия в LaTeX: 1) вставить формулы 2) вставить рисунок 3) сменить стиль оформления библиографии. Всё. А нумерацией и исправлением ссылок займется текстовый процессор LaTeX.

Вот поэтому иностранные издания в подавляющем большинстве и используют LaTeX. А вот, что

В РФ все редакции берут статьи в формате Word


характеризует их не лучшим образом. Это вот в РФ так «исторически сложилось». К сожалению.

Мои действия в LaTeX: 1) вставить формулы 2) вставить рисунок 3) сменить стиль оформления библиографии. Всё. А нумерацией и исправлением ссылок займется текстовый процессор LaTeX.
Ради справедливости, MS Word тоже умеет выполнять автоматическую нумерацию объектов, ссылки, плавающие рисунки, и форматы библиографии. Но да, MS Word начинает плохеть (тупит, кособочит вёрстку и прочее), когда количество ссылок, формул, табличек и прочей шушеры переваливает за несколько сотен в одном документе. Другое дело, что его часто используют в качестве печатной машинки, а детей на уроках информатики компьютерной грамотности учат фигне вместо эффективных приёмов использования офисных пакетов.
Журналы как правило требуют текст без форматирования, без стилей и с ручными ссылками, т.к. если скомбинировать в одном документе файлы из нескольких Вордов, то гарантированно или он свои ссылки забудет или стили перепутаются. Проблемы с Вордом начинаются гораздо раньше чем через 100 рисунков/таблиц/формул.
Ещё забыл сказать о формулах — копипастить трехэтажные крокодилы однозначно удобнее в LaTeX.

Ради справедливости, MS Word тоже умеет выполнять автоматическую нумерацию объектов, ссылки, плавающие рисунки, и форматы библиографии.


Умеет, но знания об этом сокрыты глубоко в разнообразых неочевидных мышиных меню.

TeX держит структуру документа на поверхности — раз, и, позволяет сосредоточится на содержании документа, а не на его оформлении — два. TeX приучает к грамотной организации документа с самого начала, а Word — сладко отравляет мозг новичка иллюзорными преимуществами WYSIWYG, и понимание структурной организации документа и приобретение навыков в её соблюдении в Word ведет к коренной ломке первичных навыков, которые крепки, а поэтому ломка болезненна.

TeX жил и будет жить. А вот Word — я не знаю.

P.S.: Но по хорошему надо уметь и то, и другое
*Office хорош на производстве, чтобы быстро писать договора, письма, служебки и т.п. Там ему самое место. А затаскивать *Office в научную среду не стоит. Там должен использоваться TeX, DocBook и т.п.

Сам иногда использую LibreOffice для написания тезисов на 1-2 стр. с 1-2 рисунками без формул.
Думаю, это из разряда «теплого, лампового звука» и «настоящий смартфон только от Эппл».
Отнюдь. Это из разряда практического опыта работы в разных пакетах
Ну что же, рад что вы выбрали такой замечательный пакет.
Физики и математики как правило принимают статьи в LaTeX даже в РФ. С техническими науками ситуация печальная. Например «Труды МГТУ им.Н.Э. Баумана» раньше игнорировали LaTeX, а теперь видимо узнали о существовании LaTeX и заявили на своём сайте, что его не принимают. Зато они требуют рисунки в Visio.
Нумерация сквозная по всему документу? Тогда да, проблема. Можно конечно, сделать нумерацию формул списком, тогда автоматически исправится. В Word много инструментов для нумерации. Но я никогда так не заморачивался, лень просто изучать. Разбиваем текст на главы, разделы и нумеруем все в пределах раздела. Типа рисунок 1.1.15, формула 2.4.4. Диссертация у меня была 150 страниц, список литературы около 100 наименований, много правок пришлось делать — особенных проблем с нумерацией не помню.
Нумерация сквозная по всему документу?

Любая нумерация
Можно конечно, сделать нумерацию формул списком,

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

Прелесть теха в том, что там особенно-то и не надо изучать как нумеровать (утрирую конечно). Он сам нумерует и предоставляет средства для управления этим процессом
Спасибо, что сам нумерует это я понял. Это классный пакет, рад за вас, что вы им владеете.
А как вы из главы 5 раздела 8 будете ссылаться на формулу 4(d) из главы 2 раздела 3? Это же сущий ад. Для латеха изменить нумерацию со с сквозной на нумерацию по главам дело одной(!) команды. Можете хоть римскими, хоть арабскими цифрами, хоть буквами как хотите. А из автореферата как ссылаться на формулы в диссертации? Тоже вручную?

Более того, я сейчас перешел на новый уровень абстракции. Скажем если у меня есть внешнее магнитное поле, то я пишу не $\vec{h}_\text{ext}$, а $\hext$, определяя команду \hext. Если у меня есть операторы, которые жирные буквы с крышкой, то я ввожу команду \op{}, которая делает такой оператор и для каждого конкретного оператора (например T) делаю команду \T -> \op{T}. В этом случае все формулы выглядят как $\T \cdot \hext$, что совершенно естественно для глаза. Во-вторых, если я решил, что теперь у меня операторы это готические буквы с тильдой, например, то это дело одной команды поменять везде, причём что в диссертации на 150 страниц, что в статье на 4. Ссылки на уравнения тоже имеют читаемый вид, типа \label{eq:maxwell_with_dielectric} и я всегда вспомню куда надо сослаться, в отличие от бессмысленного 2.4.4, которое ещё и поменяться может.

И самое главное, что я абсолютно уверен, что я нигде не перепутаю нумерацию, ссылки, не забуду вставить какую-то формулу, потому что я всегда получу предупреждение. В отличие от Ворда, который никак не может помочь в этом. Это можно сравнить с выводом формул через CAS и на листочке. Выводить на листочке не только долго, но и опасно, так как легко можно потерять что-то.

Ворд и латех это как кукрузник и реактивный истребитель по скорости подготовки текста, соответственно. А если совместить latex с системой контроля версий git (пробовали когда-нибудь сравнить два больших вордовых документа, да?) и мощным редактором текста типа vim, emacs и тд, то всё это превращается в боевой космический зведолёт.

Но смысл же не в том, чтобы сделать сияющий корабль под названием latex + git + vim. Смысл в том, что в таком случае компьютер помогает делать работу и делает те куски этой работы, которые может делать лучше человека. В отличие от ворда, где всё может и есть, но настолько не очевидно — вам было проще мучатся с 150 страничным тестом, вместо того чтобы изучить как делать нумерацию). А человек занимается тем чем должен — наукой.

В следующей серии мы можем рассмотреть построение графиков с помощью python + numpy vs Excel :)
Да я понял, LaTeX это такой САПР для теоретиков. Что-то вроде Маткада, где формулы имеют смысл, а не просто графика. Кстати, в Маткаде тоже вроде бы можно статьи писать. Хотя сам не пробовал.
Сборник статей, подготовленный из этих кусков (поступивших в разных форматах doc, docx, rtf), путем копипаста выглядит как лоскутное одеяло, с поехавшими формулами и картинками.

В то же время для TeX это — штатная задача.
Редакции обычно оговаривают версию Word. Графики и диаграммы в Exel для Word «родные», формулы тоже рисуются встроенным инструментом, так что если что и «съезжает», поправить легко — мышкой двинуть.
maisvendoo Уже описал преимущества применения TeX'а.

От себя добавлю, что ПО САПР вообще-то платное и стоит немалых денег. Также чертежи следует сохранять в векторном формате SVG, EPS и т.п. Если его использовать нельзя, то в растровых PNG или GIF. JPG использовать нельзя, так как происходит размытие линий в чертежах и в статьях нередко потом можно видеть чертежи с пятнами. Это результат использования JPG.

Журналам как правило нужен текст в doc отдельно, а картинки отдельно. Это легко получить при помощи latex2rtf, а картинки сконвертировать в нужный формат, переименовать по шаблону и сложить в нужны каталог при помощи например скрипта на Баше.

Ещё файлы LaTeX текстовые, и поэтому хорошо индексируются системами контроля версий. Всегда можно иметь лог изменений, ветки, откатиться назад и держать бэкапы можно например в приватном репозитории на Bitbucket, а не возиться с файлами на флешках наподобие Моя_статья_старая_версия.doc
ПО САПР много и бесплатного, особенно, редакторов схем, без анализа. Чертежи с пятнами в JPG, это если не перевести в черно-белый формат, размытие линий — аналогично. И если вам так уж претят растровые форматы, Wоrd поддерживает импорт и векторных.
Все издания, с которыми я сталкивался, допускают Word тоже. Но обычно пишут, что Tex им больше нравится. Основная причина долгоживущей популярности в том, что многим исследователям он тоже больше нравится. Я написал три статьи в Word (мой профессор один из тех, кто Tex не знает), но мы сотрудничаем с другим институтом для другой статьи, и их проф сказал, что признает только Tex. И вот мне пришлось писать на Tex, и я очень доволен, собираюсь продолжать.

Причин много: 1. чистый текст—это хорошо (можно копировать, сравнивать версии, заменять регекспом) 2. вы концентрируетесь на тексте, не на оформлении 3. Tex делает за вас рутинную работу (нумерация и ссылки на формулы, главы, библиографию). В ворде можно все это делать, но намного неудобнее (для формул надо ставить макросы или mathtype, для библиографии zotero или mendelay; mathtype глючный, у них есть критические баги—они сами признали в переписке, я однажды переделывал все формулы; макросы для формул иногда конфликтуют с zotero; если вы перенесете главу, то все ссылки на нее испортятся).

А если вы верстаете диссертацию, то Word—это позор, потому что его typesetting, типографика, никуда не годятся. Вот очень наглядное сравнение.
Я не специализируюсь на оформлении бумажек и потому не считаю применение Word позором. Меня Word вполне устраивает.
В РФ в «формате Word» берут материалы либо конченые мурзилки, в которых публикация и за публикацию-то не считается, либо там, где нужно хорошо приплатить, чтобы это уродство кто-то перенабрал в латехе.
Вы не правы. Вполне нормальные ВАКовские журналы предпочитают Ворд. В основном это касается переферийных издательств. Допустим, моя крайняя публикация была набрана в латехе. Прямой вопрос ответственному за прием материалов человеку дал ответ, что мол, да, о латехе слышали, но вот сложилось так, что принимаем в ворде. Пришлось брать GrindEQ конвертировать и слегка править результат конвертации. Хорошо, что исходники чертежей были в SVG, который понимаем Visio, так что подгонка заняла не более часа.

Ну вот так у нас в РФ просто заведено, вот ворд и всё
У меня всё показывает правильно в нескольких браузерах.
Странно, у меня картинок нет вообще, вырезаны. Возможно AdBlock постарался.
И еще — я не претендую на истину в последней инстанции, просто поделился опытом, если нравится TeX или еще что-то — флаг в руки, пишите, рисуйте, оформляйте текст в консоли — да все что хотите! Спасибо за внимание.
И будем в консоли, если эту окажется рациональным.

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

P.S.: В свое время тоже оформил кандидатскую в ворде. Докторскую так оформлять точно не буду
Мне не нравится, когда инструмент написания текста нужно изучать. Я посмотрел на LaTeX, когда у меня еще стояла Linux, и мне этот редактор показался чересчур сложным для инструмента набора текста. Редакции, в которые я пишу, обычно требуют экспериментального подтверждения написанного — железку, программу, их изготовление достаточно трудоемко и требует много времени. Статьи я пишу редко, раза 2-3 в год максимум, а иногда и вообще за год ни одной не пишу. Поэтому, нет смысла забивать голову командами текстового редактора, которые через год придется снова вспоминать. Я понимаю, если у кого-то статьи это конечный продукт, которым он отчитывается перед работодателем и он вынужден кропать их каждый месяц, то для него требуется какой-то особенный редактор, со множеством специальных опций, работой с векторной графикой и т.д. А мне векторная графика в текстовом редакторе ни к чему — я рисую схемы в пакете САПР, моделирую их там, потом отдаю паять или паяю сам, проверяю параметры, и если что-то получается, пишу статью. При написании перегоняю схему из пакета САПР в текстовый редактор. Переведенную в JPG формат схему более нигде не использую, только в конкретной статье. Если мне она требуется для другой статьи в измененном виде, открываю САПР, меняю там и опять перевожу в JPG. В редакторе САПР много чего можно, вставлять надписи, рисунки, рисовать различные линии и стрелки и т.п. Вот и вся технология.
Мне не нравится, когда инструмент написания текста нужно изучать

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

Мне не нравится, когда… нужно изучать


Не в упрек Вам, но замечу, что в среде студенческой молодежи, выше приведенная фраза стала жизненным девизом за последние годы
Спасибо, институт я закончил в 1990 году и с тех пор изучал все больше какие-то технические моменты (одно время еще и бухгалтерские), а не инструменты оформления. В изучении должны быть какие-то приоритеты. Еще раз — если кто-то плотно занят написанием статей, ему требуется продвинутый инструмент для оформления, если статьи пишутся раз в год, инструмент желательно иметь такой, которым не придется каждый раз овладевать заново.
Похоже, тут всем больше доставляет то, что LaTeX кто-то критикует, а не какие-то тонкости его использования.
Кажется это первое подобие холивара на тему «ворд против латеха», который я видел, все же обычно пользователи ворда в собрания адептов латеха просто не заходят.

Среди преимуществ латеха традиционно перечисляют объективные: бесплатность, доступность, возможность работы с простым (plain) текстом, вследствие чего простота контроля версий, повторяемость и предсказуемость результата и пр. Также субъективные: качество документа на выходе, разделение форматирования и содержания и еще, скажем так, легкость и быстрота осуществления глобальных изменений (об этом выше писал ivlis).

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

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

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

В общем, понятно, что выбор за пользователем и все такое, но мне кажется немного предсказуемым, что в хабе «LaTeX» комментарий в духе «Я слышал, что где-то заставляют пользоваться латехом; хорошо, что не везде, потому что по мне и ворд ничего» звучит примерно как «Я слышал, что где-то заставляют слушать Бетховена, а по мне и Стас Михайлов ничего». Как по мне, то этот комментарий везде так звучит, но это, конечно, только мое мнение.
Only those users with full accounts are able to leave comments. Log in, please.