ЛАТЕКС по сравнению с [закрытым] DocBook

Вы можете использовать Object.keys() для перебора ключей объекта, а затем использовать Array.filter() для фильтрации ключей, здесь я проверяю, есть ли у внутренних объектов свойство [ 114] и если это свойство истинно:

const mainObj = {
  obj1: { show: true, a: 1 },
  obj2: { show: false, a: 2 },
  obj3: { a: 3 },
  obj4: { show: true, b: 1 }
};

const result = Object.keys(mainObj).filter(key => mainObj[key].show);

console.log(result);

Если вы хотите использовать for-in [119 ] необходимо убедиться, что свойство является частью объекта и не унаследовано от его цепочки прототипов, используя Object.hasOwnProperty() :

const mainObj = {
  obj1: { show: true, a: 1 },
  obj2: { show: false, a: 2 },
  obj3: { a: 3 },
  obj4: { show: true, b: 1 }
};

const result = [];
for (const prop in mainObj) {
  if (mainObj.hasOwnProperty(prop) && mainObj[prop].show) {
    result.push(prop);
  }
}

console.log(result);
[ 1120]

47
задан Svante 28 April 2009 в 12:02
поделиться

9 ответов

Ну, я не использовал DocBook, но из краткого обзора Википедии и Google:

  1. DocBook не имеет элементов для описания математики.
  2. DocBook - это XML, как вы сказать. Для меня это ужасная вещь - писать от руки (или, скорее, с помощью обычного текстового редактора). Возможно, вам нравится писать XML или у вас хорошая IDE. Я думаю, вы могли бы взглянуть на этот вопрос .

На странице Википедии в DocBook перечислены несколько книг, на которые вы, возможно, захотите взглянуть, хотя я, очевидно, не могу сказать, это «хорошие» книги.

Я бы предложил пойти с LaTeX. Попросите кого-нибудь дать вам базовый шаблон, а затем написать LaTeX так же просто, как:

\section{Introduction}

This is my introduction.

\section{Stuff}

Here is some stuff.

\subsection{Particular stuff}

A particular type of stuff.  With maths:

$\int_{x=1}^n 3x^2$

% etc.

Google - ваш друг для поиска базовых шаблонов, с которых вы можете начать:

перейти от исходного кода к документу, вам понадобится рабочая установка LaTeX (что выходит за рамки этого ответа, но довольно просто, если вы работаете в Linux). В идеале ваша установка LaTeX должна включать pdflatex . Затем вы просто запускаете:

pdflatex source.tex

(есть немного больше работы, если у вас есть библиография - но это тема для другого вопроса)

34
ответ дан 26 November 2019 в 19:15
поделиться

The great thing about DocBook is that it is XML based - so a chapter is a full subtree, a section is a full subtree, etc. In LaTeX, separation is only determined by the structure of the document during a linear scan.

The worst thing about Docbook is that it is XML based - lower-level stuff is extremely dirty and annoying to code manually.

28
ответ дан 26 November 2019 в 19:15
поделиться

I'm not really familiar with DocBook, though I have used LaTeX fairly extensively. The idea of LaTeX is not to produce a customized document, it's to produce a readable, attractive document. It's a set of libraries, templates, macros, and so forth around TeX, set up by people who know what they are doing when it comes to document design. Of course, you have special needs that they can't anticipate, so you're going to have to do some tweaking, too. It is a very high-level, declarative language that is meant to reflect the content and structure of a document, rather than what it should look like, the idea being that your ideas and how they are organized is what you should concern yourself with, not the layout of your text on the page. If you need more control, there exists a HUGE library of additional styles and macros and so forth (CTAN), and some of them (memoir comes to mind) give you back a lot of that control.

If you are shoving a lot of complicated formatting stuff into the body of your LaTeX document, you're doing it wrong. What you need to do is get your content in there, and your document structured into chapters and sections and subsections semantically, then go back in and worry about formatting. You shouldn't have to go into the body of your document much at this point; it should all be general stuff that applies to the whole document, preferably in a reusable way. This ensures consistency.

15
ответ дан 26 November 2019 в 19:15
поделиться

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

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

Я предлагаю использовать LaTeX, если вам нужно написать какую-нибудь нетривиальную математику, но конечно, это зависит от того, с каким форматом вам легче работать.

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

Я предлагаю использовать LaTeX, если вам нужно написать какую-нибудь нетривиальную математику, но конечно, это зависит от того, с каким форматом вам легче работать.

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

Я предлагаю использовать LaTeX, если вам нужно написать какую-нибудь нетривиальную математику, но конечно, это зависит от того, с каким форматом вам легче работать.

9
ответ дан 26 November 2019 в 19:15
поделиться

About two years ago, I tried to like and use DocBook; however, I returned to LaTeX because, at least at the time, LaTeX produced better quality output (PDFs). I never managed to get the DocBook to LaTeX to PDF translation working. My problems were likely "operator error", but I suggest trying DocBook (and LaTeX) for a few simple documents before choosing one.

Here are a few points that led me to choose LaTeX:

  • BibTeX for bibliographies with JabREF as a GUI
  • Excellent quality PDF output
  • Lots of examples on the Internet, including several similar to my preferred format
  • Good books, like "A Guide to LaTeX"

If you like GUIs, take a look at LyX.

8
ответ дан 26 November 2019 в 19:15
поделиться

Я не хочу идти по "более легкому" или лучшему пути, поскольку считаю это делом вкуса и привыкания. Я считаю, что docbook является преимуществом XML, так как, следовательно, его можно преобразовать практически во все, что вам нравится, с помощью XSLT. В сочетании с автономностью это больше похоже на структурирование контента, чем Latex. Docbook действительно широко используется для документирования программного обеспечения с открытым исходным кодом. Вы можете легко взять шаблоны и таблицы стилей, например, Hibernate и / или Spring, и настроить их под свои нужды.

Еще один аспект, на который я хотел бы обратить внимание, - это интеграция в системы сборки. Для Maven доступен плагин под названием docbkx, который просто выводит PDF, HTML и все, что вам нравится, на основе содержимого и соответствующего XSLT. Никаких дополнительных установок не требуется. Единственные способы, которые я видел для этого с Latex, - это установка нескольких пакетов в ОС сборки и создание собственного скрипта на их основе. ИМХО, это нереально, особенно если вы создаете кросс-платформу.

Что касается редактора, я могу посоветовать XMLmind XMLEditor , который требует много усилий и обеспечивает довольно хороший WYSIWYG-подход к docbook.

Если вы полагаетесь на математические выражения, я бы также предпочел латекс, поскольку в docbook нет ничего с такой же мощностью.

7
ответ дан 26 November 2019 в 19:15
поделиться

Arbortext поддерживает собственный LaTeX. Вы можете отправить издательский движок или напечатанный композитор LaTeX, и он передаст его. Он также поддерживает множество других языков композиции.

0
ответ дан 26 November 2019 в 19:15
поделиться

DocBook - это не "механизм набора текста". DocBook - это отделение представления от содержания. DocBook имеет дело только с содержанием; он используется для создания абстрактного представления книги, статьи и т.д. Существует множество инструментов, которые верстают DocBook в соответствии с предопределенными шаблонами. Некоторые из этих инструментов используют LaTeX. AFAIK, O'Reilly использует слегка модифицированную версию языка DocBook для создания авторского контента, затем они передают этот XML в специальные скрипты, которые интегрируются с Adobe FrameMaker для верстки своих книг.

LaTeX - это, по сути, попытка отделить презентацию от контента в TeX, но она не совсем достигает этой цели IMO. В большинстве случаев презентация все еще смешивается с содержанием. Я думаю, что LaTeX в настоящее время является лучшим инструментом с открытым исходным кодом для компоновки постраничных документов. Однако у проприетарных инструментов, таких как InDesign, есть много возможностей (например, хорошая поддержка OpenType), которых нет у TeX (XeTeX вроде как добавляет поддержку OpenType). В любом случае, если вы пишете книгу, я настоятельно рекомендую использовать DocBook для авторинга вашего контента, а не LaTeX.

Тем не менее, похоже, что вы пишете короткие, одноразовые документы с небольшим количеством математики. Я думаю, что LaTeX, вероятно, будет лучшим выбором. Если вам нужно много настраиваемости, возможно, вам придется использовать Plain TeX в противовес LaTeX, но это потребует довольно много работы с вашей стороны.

36
ответ дан 26 November 2019 в 19:15
поделиться

Вы смотрели ConTeXt. Он более гибкий и гораздо проще настраивается по сравнению с LaTeX.

2
ответ дан 26 November 2019 в 19:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: