По долгу службы мне приходится программировать на C#. Однажды передо мной встала задача написать модуль, который бы генерировал PDF документы "на лету". После сравнительного анализа различных библиотек я остановился на PDFSharp потому, что она позволяет вставлять картинки, работать с таблицами и, самое главное, в ней реализован компонент для просмотра сгенерированных документов.
четверг, 24 ноября 2011 г.
воскресенье, 6 ноября 2011 г.
Таблицы с большим количеством текста
Обычно не возникает проблем с включением в ячейки таблиц большого количества текста. Тех сам растянет ячейки под нужный размер. Главное не забыть ограничить ширину ячеек указав вместо стандартного параметра c,l или r параметры p,m,b позволяющие указывать ширину ячейки.
Например:
Но вот если использовать объединение ячеек между рядами multirow, то стандартный механизм уже не работает. Высота полученной ячейки будет равна сумме высот объединенных ячеек. И в результате может получится что-то такое:
Видите? Текста слишком много и он накладывается на текст в других ячейках. Единственный, известный мне, способ этого избежать - увеличить высоту ячеек. Делается это следующим трюком:
Эту хитрость я нашел здесь: http://nepsweb.co.uk/docs/tableTricks.pdf
Например:
\begin{tabular}{| p{0.5\linewidth} | c |}
\hline
Конгруэ́нтность (лат. congruens, -ntis — соразмерный, соответствующий) в широком смысле — равенство, адекватность друг другу различных экземпляров чего-либо (обычно — содержания, выраженного в различных формах, представлениях) или согласованность элементов системы между собой.
&
Конгруэ́нтность (лат. congruens, -ntis — соразмерный, соответствующий) в широком смысле — равенство, адекватность друг другу различных экземпляров чего-либо (обычно — содержания, выраженного в различных формах, представлениях) или согласованность элементов системы между собой.
\\ \hline
\end{tabular}
Но вот если использовать объединение ячеек между рядами multirow, то стандартный механизм уже не работает. Высота полученной ячейки будет равна сумме высот объединенных ячеек. И в результате может получится что-то такое:
Видите? Текста слишком много и он накладывается на текст в других ячейках. Единственный, известный мне, способ этого избежать - увеличить высоту ячеек. Делается это следующим трюком:
\newlength{\rowA}
\setlength{\rowA}{8ex} % modify as needed
\newcommand{\strutA}{% no space before strut
\rule[-0.45\rowA]{0pt}{\rowA}% put text approx mid strut
}
\begin{tabular}{|p{0.45\linewidth}|p{0.15\linewidth}|p{0.15\linewidth}|}
\hline
Вариант испытания&Ожидаемый логический уровень & Напряжение на выходе (В)\\ \hline
\multirow{2}{\linewidth}{Выход не имеет нагрузки} & 0&0\\ \cline{2-3}
& 1& 1.27 -- 0 \\ \hline
\multirow{2}{\linewidth}{Выход имеет нагрузку, резистор 1000 Ом,
подключенную к цепи GND }&0& 0 \strutA \\ \cline{2-3}
&1 &0 \strutA \\ \hline
\multirow{2}{\linewidth}{Выход имеет нагрузку резистор 1000 Ом,
подключенную к цепи питания VCC +5В} &0& 5 \strutA \\ \cline{2-3}
& 1&4.3\strutA \\ \hline
\multirow{2}{\linewidth}{Выход имеет нагрузку резистор 1000 Ом,
подключенную к дополнительному источнику
питания постоянного тока напряжением 3В. }&0&2.4\strutA \\ \cline{2-3}
& 1&3\strutA \\ \hline
\multirow{2}{\linewidth}{Выход имеет нагрузку резистор 1000 Ом,
подключенную к дополнительному источнику
питания постоянного тока напряжением 5В.}&0&4.3\strutA \\ \cline{2-3}
&1 &5 \strutA \\ \hline
\multirow{2}{\linewidth}{Выход имеет нагрузку резистор 1000 Ом,
подключенную к дополнительному источнику
питания постоянного тока напряжением 10В.} &0& 9.2\strutA \\ \cline{2-3}
&1& 10\strutA \\ \hline
\end{tabular}
Эту хитрость я нашел здесь: http://nepsweb.co.uk/docs/tableTricks.pdf
пятница, 28 октября 2011 г.
Решение систем уравнений в Octave
В прошлом посте я рассказывал как поставить Octave, а теперь расскажу о том, что с ним можно делать. А именно о решении систем уравнений.
среда, 26 октября 2011 г.
Установка Octave
В этом посте я расскажу как устанавливать такую замечательную вещь, как Octave.
Octave - это свободная/бесплатная програмка/язык программирования для математических расчетов. GNU аналог матлаба. Подробнее про то, что это такое и как устанавливать это под нормальными операционными системами написал тов. virens вот тут.
Дальше для таких же как и я пользователей windows:
Octave - это свободная/бесплатная програмка/язык программирования для математических расчетов. GNU аналог матлаба. Подробнее про то, что это такое и как устанавливать это под нормальными операционными системами написал тов. virens вот тут.
Дальше для таких же как и я пользователей windows:
пятница, 21 октября 2011 г.
Графы в Латех
В ЛаТеХ можно рисовать графы, используя пакет XY.
Подробный, но нерусский, мануал XY guide.
Если верить мануалу, то
Подробный, но нерусский, мануал XY guide.
Если верить мануалу, то
XY-pic is a package for typesetting graphs and diagrams
using Knuth's TEX typesetting system. XY-pic works with
most of the many formats available; e.g., plain TEX,
LATEX, and AMS-TEX. Several styles of input for various
diagram types are supported; they all share a mnemonic
notation based on the logical composition of visual com-
ponents. This guide concentrates on how to typeset
\matrix-like" diagrams, such as commutative diagrams.
пятница, 14 октября 2011 г.
Сложные таблицы в ТЕХ
В этом посте я расскажу о всяких нетривиальных операциях над таблицами в ТЕХ/LaTeX.
Подписаться на:
Сообщения (Atom)