05.28.08

Вертикальное выравнивание и объединение ячеек таблицы в latex

Рубрика: Latex, memory tagged , в 22:12 от Engraver

Задача: Ценрировать текст в ячейке таблицы (окружение tabular) по вертикали.

Решение:
Используем пакет multirow. Имеется два случая.

  1. Необходимо объединить несколько ячеек таблицы. Для этого используется команда \multirow{row}*{text}, которая создает ячейку, содержащую text и объединяющую row строк.
    Существует так же вариант команды \multirow{row}{width}*{text}, где задается ширина width ячейки.
  2. Нужно центрировать текст по вертикали в одной строке. Воспользуемся опцией m{width} по центру которой необходимо выровнять всю строку таблицы.

Пример: Код, идущий ниже, создает две таблицы. В первой объединяются ячейки по вертикали, во второй — текст в них центрируется по наиболее высокой ячейке.

\documentclass[a4paper, 12pt]{article}
\usepackage{multirow}
\usepackage{array}\begin{document}
We want to centre text in table cells:
\begin{center}
\begin{tabular}{clc}
\hline
Object & Behaviours & Examples \\
\hline
\multirow{3}{Metals} & conduct current & Fe \\
\cline{2-3}
& solid & Cu \\
\cline{2-3}
& strong & Al \\
\hline
\multirow{2}*{Dielectrics} & may be gaseous & Air \\
\cline{2-3}
& may be solid & Plastics \\
\hline
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{cm{3cm}c}
\hline
Object & Behaviours & Examples \\
\hline
Metals & Metals can be shine and strong. It conducts current well. & Al \\
\hline
Semiconductors & Conductiviti of semiconductors increase with increasing of temperature. & Ge \\
\hline
\end{tabular}
\end{center}
We can do it!
\end{document}

Источник: Lapo Filippo Mori, Tables in LATEX2(epsilon): Packages and Methods, The PracTEX Journal, 2007, No. 1.

05.25.08

Вопрос мэру

Рубрика: Uncategorized tagged , , , , , в 12:23 от Engraver

Какого было тратить миллионы на выборы в День Киева и даже не разогнать тучи над Городом в этот день?! Или это такой черный юмор?

05.16.08

Рубрика: Uncategorized в 23:24 от Engraver

В наш двор наконец вернулись ласточки.

05.15.08

Большой адронный коллайдер

Рубрика: Science tagged , в 17:26 от Engraver

скоро запустится: http://www.lhcountdown.com/

via wealth

05.14.08

alacarte и Ubuntu

Рубрика: Ubuntu tagged , , , в 22:28 от Engraver

Проблема: Сидел себе и редактировал гномовскую менюшку программ, как вдруг все свернулось и отказалось открывать ее. При чем иксовый интерфейс правки меню в Система -> Параметры -> Главное меню отказался запускаться, а в консоли (он, оказывается, называется alacarte) выдал следующее:
$ alacarte
Traceback (most recent call last):
File "/usr/bin/alacarte", line 36, in
main()
File "/usr/bin/alacarte", line 32, in main
app = MainWindow(datadir, version, sys.argv)
File "/usr/lib/python2.5/site-packages/Alacarte/MainWindow.py", line 49, in __init__
self.editor = MenuEditor()
File "/usr/lib/python2.5/site-packages/Alacarte/MenuEditor.py", line 36, in __init__
self.__loadMenus()
File "/usr/lib/python2.5/site-packages/Alacarte/MenuEditor.py", line 46, in __loadMenus
self.applications.dom = xml.dom.minidom.parse(self.applications.path)
File "/usr/lib/python2.5/xml/dom/minidom.py", line 1915, in parse
return expatbuilder.parse(file)
File "/usr/lib/python2.5/xml/dom/expatbuilder.py", line 924, in parse
result = builder.parseFile(fp)
File "/usr/lib/python2.5/xml/dom/expatbuilder.py", line 211, in parseFile
parser.Parse("", True)
xml.parsers.expat.ExpatError: no element found: line 1, column 0
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/apport_python_hook.py", line 78, in apport_excepthook
report_file = open(pr_filename, 'wt')
IOError: [Errno 13] Permission denied: '/var/crash/_usr_bin_alacarte.1000.crash'

Original exception was:
Traceback (most recent call last):
File «/usr/bin/alacarte», line 36, in
main()
File «/usr/bin/alacarte», line 32, in main
app = MainWindow(datadir, version, sys.argv)
File «/usr/lib/python2.5/site-packages/Alacarte/MainWindow.py», line 49, in __init__
self.editor = MenuEditor()
File «/usr/lib/python2.5/site-packages/Alacarte/MenuEditor.py», line 36, in __init__
self.__loadMenus()
File «/usr/lib/python2.5/site-packages/Alacarte/MenuEditor.py», line 46, in __loadMenus
self.applications.dom = xml.dom.minidom.parse(self.applications.path)
File «/usr/lib/python2.5/xml/dom/minidom.py», line 1915, in parse
return expatbuilder.parse(file)
File «/usr/lib/python2.5/xml/dom/expatbuilder.py», line 924, in parse
result = builder.parseFile(fp)
File «/usr/lib/python2.5/xml/dom/expatbuilder.py», line 211, in parseFile
parser.Parse(«», True)
xml.parsers.expat.ExpatError: no element found: line 1, column 0

Частичное решение: зайти в ~/.config/menus и заменить файл applications.menu последним по времени бекапом с именем вида applications.menu.undo-X, где X — какое-то число.

05.13.08

Наркота

Рубрика: Uncategorized tagged в 17:36 от Engraver

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

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

05.05.08

Убрать иконки сменных и сетевых носителей с рабочего стола в Ubuntu 8

Рубрика: Ubuntu, memory в 22:57 от Engraver

Автозагрузка в Ubuntu Linux

Рубрика: Linux, Ubuntu, memory tagged , в 21:44 от Engraver

Задача: автоматически запустить при старте системы некий скрипт, демон или программу.
Вариант решения:
Автоматическая загрузка скриптов может понадобиться по различной причине. Например, нужно стартовать некий системный демон, или просто лень каждый раз при запуске компьютера запускать вручную браузер. Если администраторских прав на запуск не требуется, то пользователям графической оболочки GNOME пригодится данный мануал. В случае KDE, в каталоге ~/.kde/Autorun/ будут выполняться все скрипты с соответствующими правами.

Мои «приключения» начались с того, что требовалось запускать скрипт с администраторскими правами и не вводить каждый раз пароль при загрузке иксов. Все оказалось очень просто. Итак, создаем папку, где будут храниться скрипты:
$ mkdir MyScripts
и помещаем в нее необходимый нам скрипт под названием myscript.sh. В моем случае его содержание могло выглядеть вот так:
sudo ipmasq
Последним штрихом будет прописывание пути к скрипту в файл rc.local, находящийся у меня в каталоге /etc. Предварительно сделав с него бекап
sudo cp /etc/rc.local /etc/rc.local.bac
откроем его в текстовом редакторе
sudo gedit /etc/rc.local
и введем перед строкой exit 0
путь к скрипту:
/home/XXXXXX/MyScripts/myscript.sh
Теперь можно перезагружаться =).

05.04.08

Установка драйверов NVidia на Ubuntu

Рубрика: Linux, Ubuntu, memory tagged , , в 11:35 от Engraver

Потратив кучу времени на правильную установку дров на видеокарту GeForce 7300 GT под Ubuntu 8.04 64bit, решил записать как оно должно выполняться. Полный мануал, по которому писалось все нижеприведенное находится тут.

Драйвер NVidia является закрытым, и распостраняется разделенным на две части, одна из которых содержит открытый код, а вторая содержит модули,  выполняющие основные функции. Проверим, стоит ли уже драйвер по умолчанию:
find /lib/modules/`uname -r`/ -iname \*nvidia.ko\*
Должен быть найден только один модуль в подкаталоге volatile. Чтобы система не запуталась, какой драйвер использовать, его необходимо отключить, прописав в файле /etc/default/linux-restricted-modules-common строку DISABLED_MODULES=»nv nvidia_new».
В моем случае перед установкой драйвера нужно было установить лишь пакет
sudo aptitude install libc6-dev
Скачав с сайта nvidia.com необходимый драйвер, с виртуальной консоли (переход на которую осуществляется по Ctrl+Alt+Fn, n=1,2,…,6) останавливаем графическую оболочку командой
sudo /etc/init.d/gdm stop
и запускаем инсталляцию драйвера:
sudo sh NVIDIA-Linux-xXX_XX-XX.XX.XX-pkg2.run
В процессе установки отказываемся от загрузки откомпилированных хеадеров с сайта nvidia (их там все равно не оказалось, в моем случае :D ). В этом случае инсталлятор скомпилирует их сам. Последним вопросом инсталлятора будет предложение запустить утилиту конфигурации nvidia-xconfig. В руководстве http://forum.ubuntu.ru/index.php?topic=3031.0 рекомендовалось отказаться и заполнить файл /etc/X11/xorg.conf, который хранит настройки графического режима, самостоятельно. Однако в ходе эволюции убунты от шестой до восьмой, содержимое xorg.conf все упрощалось и упрощалось, пока не дошло до той степени, когда драйвер просто перестал его понимать О_о. Не обладая изначально знаниями, что туда необходимо прописывать, я сделал резервную копию настроек
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bac
и все же запустил
sudo nvidia-xconfig
который поругавшись поправил файл. Сейчас, мой xorg.conf выглядит так:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildmeister@builder26) Tue Jan 22 17:58:05 PST 2008Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSectionSection "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
EndSection

Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
EndSection

Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection

Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "LG T710BH"
HorizSync 30.0 - 71.0
VertRefresh 50.0 - 160.0
Option "DPMS"
EndSection

Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 7300 GT"
Option "NoLogo" "TRUE"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
#Option "metamodes" "1024x768_85 +0+0; 1280x1024 +0+0; 1024x768 +0+0; 800x600 +0+0; 640x480 +0+0"
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection

Далее, можно было стартовать иксы
sudo /etc/init.d/gdm start
и из иксового терминала запустить утилиту настройки монитора
sudo nvidia-settings
для изменения разрешения и частоты обновления экрана. Установка закончена.