Для добавления штрих-кода в LaTeX документ в формате Code 128 можно воспользоваться макросом code128 от Petr Olšák.
Для этого нужно скопировать из архива файл code128 в ту же папку, в который лежит рабочий документ и подключить его командой:
\input code128
Создание штрих-кода задается с помощью команды \code{} следующим образом:
Обратите внимание, пробелы внутри {} игнорируются. Пробел перед закрывающей скобкой } вызовет ошибку. Если пробел нужен, то нужно использовать \ или /SP. Аналогично нужно экранировать все спецсимволы TeX.
В результате мы получим вот такой штрих-код:

Для получения штрих-кода с подписью нужно воспользоваться командой \codetext{}:

Если нужно получить штрих-код с одними данными, а подпись сделать другую, то используется команда \codeothertext{Текст}{Альтернативный текст}:
В результате получится такой вывод:

Дополнительные параметры настройки вывода штрих-кодов:
\X=.5mm % Модуль X - все размеры ширины кратны \X - по умолчанию 0.33mm
\barheight=1cm % Высота штрих-кода - по умолчанию 1.5cm
\bcorr=.020mm % Штрихи тоньше на \bcorr, а пробелы выше - по умолчанию 0.020mm - желательно не менять
\codetext{123 456 789 000} Последняя команда сформирует вот такой штрих-код (если сравнить со второй картинкой, которая получена с параметрами по умолчанию — разница очень значительная):

Предположим нам нужно создать резюме, в котом будет жирным выделено название поля, такие как имя, фамилия и т.д., а после должно идти значение, которое будет подчеркнутым, например, Фамилия: Иванов. Подчеркивание должно продолжаться до конца строки.
Стандартная команда для подчеркивания слов \underline{} мало поможет, т.к. при добавлении в {} довольно длинного текста, не срабатывает перенос строки. Для многострочного переноса есть команда \uline из пакета \usepackage{ulem} и команда \ul из пакета \usepackage{soul}.
Для заполнения строк до конца пустотой воспользуемся командой \hfill.
Посмотрим на примерах, как отрабатывает каждая из этих команд в разных условиях:
\usepackage{ulem}
\usepackage{soul}
...
\textbf{Фамилия:} \underline{Иванов И.И. \hfill}
\textbf{Имя:} \underline{\makebox[10cm]{}}
\textbf{Отчество:} \uline{\hfill}
\textbf{Возраст:} \uline{ \hfill} \textbf{Рост:} \uline{ \hfill} \textbf{Вес:} \uline{ \hfill}
\bigskip
\textbf{Место жительства:} \underline{Ставпропольский край, Кировский район, станица Петропавловская, ул. Рязанская, д.388}
\bigskip
\textbf{Последнее место работы:} \uline{Научно-исследовательская лаборатория операций по армированию бетона и железобетонных работ по сооружению сборно-монолитных и монолитных конструкций отдела технологии строительно-монтажного управления Академии строительства и архитектуры СССР}
\bigskip
\textbf{Последнее место работы:} \ul{Научно-исследовательская лаборатория операций по армированию бетона и железобетонных работ по сооружению сборно-монолитных и монолитных конструкций отдела технологии строительно-монтажного управления Академии строительства и архитектуры СССР}
\bigskip
\textbf{Личные качества:} \uline{Вежливость, дружелюбие, отзывчивость, порядочность, открытость, вниматель\-ность, коммуникабельность, доброжелательность, самокритичность, опрятность, чистоплотность, пе\-дан\-тичность, мобильность, красноречивость. \hfill}
\bigskip
\textbf{Сильные стороны:} \ul{Самостоятельность, быстрое принятие решений, ориентированность на результат, трудолюбие, самосовершенствование, дисциплинированность, упорство, убедительность, прямолинейность. \hfill}
В данном случае получится вот такая страница:

Как видно из примера (строка "Место жительства"), команда \underline не переносит на новую строку. \hfill в сочетании с \underline не заполняет строку до конца ("Фамилия").
Строка "Имя" иллюстрирует, как можно создать подчеркивание определенного размера: \underline в сочетании с \makebox[10cm]{}.
"Последнее место работы" оформили дважды, через \uline и \ul. Видно, что основное отличие на выводе этих двух команд в том, что команда \uline не вставляет переносы строк. Команда \ul отлично с этим справляется.
Строки "Личные качества" и "Сильные стороны" показывают использование команд \uline и \ul в сочетании с \hfill. На этот раз лучше себя показала команда \uline. \hfill внутри \uline заполнила строку подчеркиванием до конца строки, а вот внутри \ul подчеркивание закончилось на последнем символе. Проблема переносов внутри команды \uline решилась вставкой возможных переносов слов: "пе\-дан\-тичность".
Если просто прописать \uline{\hfill}, то такая комбинация даст пустое подчеркивание до конца строки (строка "Отчество").
Еще одно интересное свойство команды \hfill показано в строке "Возраст, рост, вес". Как видно на изображении, \hfill равномерно растянула каждый блок \uline так, чтобы вся строка заполнилась.
Выбирайте, какой именно вариант наиболее подходящий.
Задача заключается в создании бланка для налоговой службы. Некоторые данные должны быть внесены в таблицу с серыми пунктирными границами. Как это сделать в LaTeX?
Создадим простую таблицу tabular, добавим немного воздуха вокруг данных и зададим цвет линий:
\usepackage{xcolor}
\usepackage{colortbl}
...
\renewcommand{\arraystretch}{1.8} % увеличиваем вертикальные отступы
\arrayrulecolor{lightgray} % устанавливаем цвет границы таблицы
\setlength{\arrayrulewidth}{0.5pt} % устанавливаем толщину линий
\begin{tabular}{c|c|c|c|c|c|c|c|c|c|c|c|} \cline{2-12}
ИНН & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 \\ \cline{2-12}
\end{tabular}
Теперь, используя пакет arydshln, зададим пунктирные линии. Для этого в качестве разделителя столбцов используем двоеточие : , в качестве полных линий \hdashline и укороченных линий \cdashline.
\usepackage{xcolor}
\usepackage{arydshln}
...
\begin{tabular}{c:c:c:c:c:c:c:c:c:c:c:c:} \cdashline{2-12}
КПП & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 \\ \cdashline{2-12}
\end{tabular}
Можно остановиться и на этом, но если необходимо настроить вид пунктирных линий, то можно их можно изменить, меняя \dashlinedash — для длины видимой части линии и \dashlinegap — для отступов между пунктирами.
\usepackage{xcolor}
\setlength{\dashlinedash}{10pt}
\setlength{\dashlinegap}{2pt}
\begin{tabular}{|l:l:l|} \hline
Ячейка 1 & Ячейка 2 & Ячейка 3 \\ \hdashline
Ячейка 4 & Ячейка 5 & Ячейка 6 \\ \hdashline
Ячейка 7 & Ячейка 8 & Ячейка 9 \\ \hline
\end{tabular}
А для настройки отдельных линий можно воспользоваться следующими возможностями пакета arydshln. Для вертикальных линий вместо двоеточия использовать точку с запятой и настройку пунктирной линии ;{dash/gap}. Для горизонтальных линий после команды линии дописать настройку в []: \dashlinedash[dash/gap].
Рассмотрим это на примере:
\usepackage{xcolor}
\renewcommand{\arraystretch}{2.5}
\arrayrulecolor{gray}
\begin{tabular}{|l::c;{2pt/2pt}r|} \hline
Ячейка 1 & Ячейка 2 & Ячейка 3 \\ \hdashline[5pt/2pt]
Ячейка 4 & Ячейка 5 & Ячейка 6 \\ \cdashline{1-2}[1pt/4pt]
\multicolumn{2}{|c;{2pt/2pt};{2pt/2pt}}{Ячейка 7} & Ячейка 8\\ \hdashline \hdashline
\end{tabular}
Ниже вы можете увидеть изображения, иллюстрирующие каждый пример:

Как вставлять картинки в latex, не беспокоясь о том, есть файл изображения или нет?
В случаях, когда нужно добавить в текст изображение и при этом неизвестно, есть ли файлы по указанному пути, можно воспользоваться "условной" командой \IfFileExists.
Посмотрим на примере как это будет выглядеть. Определим новую команду:
\newcommand{\myPict}[4]{%
\IfFileExists{#4}{
\setlength{\unitlength}{1cm}
\begin{picture}(0,0)
\put(#1,#2){\includegraphics[height=#3 cm]{{#4}}}
\end{picture}
}
}
Вызов команды будет следующим:
\myPict{0}{0}{5}{img/img1.jpg}
где первый, второй параметр определяет положение картинки, третий параметр определяет высоту картинки, а четвертый — путь к файлу.
В случае, когда файл img1.jpg не окажется по указанному адресу, компиляция файла продолжится без ошибок.
Команда \myPict проверит наличие файла img/img1.jpg и, если он существует, вставит его с заданными параметрами (сдвиг и высота). Если файл не найден, то изображение просто не появится и ошибки компиляции файла не будет.