LINUX.ORG.RU

Русский стиль и LaTeX: простые ответы на короткие вопросы.

 ,


1

3

Не в силах мучить Евгения Балдина своими детскими вопросами, а также в надежде на общую пользу для дела и благосклонность модераторов (ибо тема не нова и стереотипна), создаю сей тред.

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

Первый вопрос я уже обсуждал с Евгением.

[Q] Ненумерованные перечни (списки). Как начинать каждый пункт с тире?

[A] Использовать одно из определений, соответственно, использующих короткое тире и знаки минус:

\renewcommand{\labelitemi}{\normalfont\bfseries{--}}
\renewcommand{\labelitemi}{$-$}

Второй вопрос состоит в следующем.

[Q] Какой из пробельных символов предпочтительнее для отбивки единиц измерения, например, числа «7,5» от «мм»?


Ответ на: комментарий от BambarbiyaKirgudu

пол латексу сделали

По латексу не надо, по латеху лучше :)

предпочтительнее для отбивки единиц измерения, например, числа «7,5» от «мм»?

Честно, всем пофигу. Используй что попроще, например, «7.5~mm» или читай литературу по типографике.

Остальные вопросы гуглятся на раз при знании английского.

iVS ★★★★★
()

Спасибо, господа!

[Q] Какой дефис использовать в случае, когда мне нужно сослаться на «70-е» годы прошлого века?

akj
() автор топика
Ответ на: комментарий от akj

[Q] Какой дефис использовать в случае, когда мне нужно сослаться на «70-е» годы прошлого века?

Один короткий.

Zodd ★★★★★
()

[Q] Какой из пробельных символов предпочтительнее для отбивки единиц измерения, например, числа «7,5» от «мм»?

IMHO без особой разницы, главное, чтобы везде одинаково. Обычно я добавляю маленький пробел \,

P.S. Про русский стиль (если это действительно интересно) независимо от системы вёрстки или набора имеет смысл читать в типографической спецлитературе, например, написанной Мильчиным.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от akj

[Q] Какой дефис использовать в случае, когда мне нужно сослаться на «70-е» годы прошлого века?

[A] Я использовал неразрывный дефис:

70"~е

www.linux.org.ru/wiki/en/LOR-FAQ-LaTeX

Спасибо. Добавил.

akj
() автор топика

Господа! Есть ещё проблема.

[Q] Хотелось бы мне оставить метку для перекрёстной ссылки на абзац. Пишу код:

Это тот самый абзац, на который я ссылаюсь.
\label{thislabel}

бла-бла-бла

бла-бла-бла

В настоящем абзаце я ссылаюсь на тот абзац, который находится на странице~\pageref{thislabel}.

Обрабатываю pdflatex. Дважды. Страницу пишет правильную, но ссылка в pdf совсем на другое место. ЧЯДНТ?

akj
() автор топика

Ах, да, Господа!

Работа с таблицами в TeX — это АДъ и погибель.

Q Как заставить TeX расставлять переносы в узких столбцах таблиц?

Здесь http://tex.stackexchange.com/questions/18784/hyphenation-within-multicolumn кое-что есть, но пример у меня не работает (может быть, не подключены некоторые пакеты?).

akj
() автор топика
Ответ на: комментарий от akj

\label ссылается на специальные объекты вроде \equation \section \figure.

Сделать можно так:


\phantomsection
\label{the_label}
[\code]

Array
()

[Q] Почему «неправильно» вычисляется linewidth и textwidth (значително шире полосы набора)?

\begin{center}
 \begin{tabular}{|p{0.4\textwidth}|*{4}{p{0.15\textwidth}|}}\hline
  Характеристики & \hspace{0pt}Проектные & \hspace{0pt}Нормативные & \hspace{0pt}Отечественный & \hspace{0pt}Зарубежный \\\hline
  Диапазон & 10\% & 10\% & 4-12\% & 7-18\%\\\hline
 \end{tabular}
\end{center}
akj
() автор топика
Ответ на: комментарий от akj

Таблицы везде не фонтан. IMHO простые таблицы проще всего делать в org-mode, а сложные в силу cut&paste LaTeX таки удобнее визуальных аналогов. Удобнее в смысле, что до результата на которые можно смотреть без вздрагивания, нужно потратить меньше времени. Тут естественно не учитывается время, которое требуется на обучение, так как LaTeX в школе «в отличии от» не обучают.

А по большому счёту таблицы нужно в тексте по возможности изводить. Это не сильный удобный для восприятия способ подачи материала.

Evgueni ★★★★★
()
Ответ на: комментарий от akj

Гхмм, гхмм. Может быть дело в том, что кроме места на текст в таблице необходимо оставить место на разделительные элементы (вертикальные черты, которых лучше по возможности избегать). То есть попробуйте сделать, чтобы в сумме был не \textwidth, а чуть поменьше.

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

Можно все эти sep'ы обнулить, но тогда будет некрасиво (т.к. текст будет прижиматься к границам таблички).

Кстати, можно просто завести временный счетчик (или подключить пакет `fp`) и вычислять требуемую ширину «на лету», вычитая из `X\textwidth` значение `\tabcolsep` (и что там еще — не помню).

Anon
()
Ответ на: комментарий от Anon

IMHO излишняя автоматизация может превносить неудобства. Тут примерно такой случай когда это правда. Правильнее разобраться с устройством таблицы и руками эту разницу из \textwidth отнять, правда пакет fp или calc при этом будет весьма полезен.

P.S. Хотя наверняка есть пакет, где эта проблема решена, только я его не встречал или внимания не обратил :)

Evgueni ★★★★★
()
Ответ на: комментарий от akj

Сегодня было нужно таки оформить таблицу с узкой колонкой и переносами — пара минут ушла на гуугл. Добавляем в преамбуле:

\usepackage{array}
\usepackage{ragged2e}
\newcolumntype{x}[1]{%
>{\RaggedRight\hspace{0pt}}p{#1}}%

Далее вместо p{ширина} используем x{ширина} Итого: переносы есть, как и выравнивание по левому краю.

Ссылки: http://texblog.org/tag/tabular-raggedleft/ http://tex.stackexchange.com/questions/4839/raggedleft-paragraph-in-a-table

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)

Господа! Новый вопрос есть.

[Q] Как делать сноски в конце страницы для содержимого таблиц?

А погуглил, конечно. И нашёл три варианта:

  1. Создать окружение \minipage (см. http://www.texblog.org/2012/02/03/using-footnote-in-a-table из кеша гугля)
    \begin{minipage}{6cm}
     \begin{tabular}{|l|c|c|}\hline
      A & 1 & 2 \footnote{This is a footnote.} \\\hline
      B & 2 & 1 \\\hline
      C & 3 & 3 \\\hline
     \end{tabular}
    \end{minipage}
    
    Но сноски будут непосредственно под таблицей.
  2. Создать окружение \minipage*, предоставляемое пакетом footnote.
    \documentclass[12pt]{article}
    \usepackage{footnote}
    \begin{document}
    \begin{minipage*}{6cm}
     \begin{tabular}{|l|c|c|}\hline
      A & 1 & 2 \footnote{This is a footnote.} \\\hline
      B & 2 & 1 \\\hline
      C & 3 & 3 \\\hline
     \end{tabular}
    \end{minipage*}
    
    Здесь тоже не без греха. Точнее, без заголовка.
  3. Можно использовать окружение savenotes из пакета footnote.
    \documentclass[12pt]{article}
    \usepackage{footnote}
    \begin{document}
    \begin{savenotes}
     \begin{table}[ht]
      \centering
      \begin{tabular}{|l|c|c|}\hline
       A & 1 & 2 \footnote{This is the first footnote.} \\\hline
       B & 2 & 1 \\\hline
       C & 3\footnote{This is the second footnote.} & 3 \\\hline
      \end{tabular}
      \caption{A table caption.}
     \end{table}
    \end{savenotes}
    \end{document}
    
    Что в принципе работает хорошо (на самом деле плохо: сноски могут остаться на предыдущей странице), но есть проблемы с гиперссылками в pdflatex с пакетом hyperref, например такой код:
    \documentclass[12pt]{article}
    \usepackage{type1ec}
    \usepackage[T2A]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[english,russian]{babel}
    \usepackage{indentfirst}
    \usepackage{misccorr}
    \usepackage{color}
    \usepackage{topcapt}
    \usepackage{caption}
    \usepackage{footnote}
    \usepackage[unicode=true,colorlinks=true,linkcolor=black]{hyperref}
    
    \captionsetup{labelsep=space,justification=justified,singlelinecheck=off}
    \hypersetup{pdflang={ru-RU}}
    
    \begin{document}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    Nunc non nibh id tortor malesuada iaculis eu eget quam.
    Donec at scelerisque elit. Vestibulum felis enim, pretium nec interdum ac, iaculis quis metus.
    
    \begin{savenotes}
    	\begin{table}[ht]
    		\caption{A table caption.}
    		\begin{tabular}{|l|c|c|}
    			\hline
    			A & 1 & 2 \footnote{This is the first footnote.} \\
    			\hline
    			B & 2 & 1 \\
    			\hline
    			C & 3\footnote{This is the second footnote.} & 3 \\
    			\hline
    		\end{tabular}
    		\end{table}%
    	\end{savenotes}
    
    Integer hendrerit pretium sem, quis sodales risus tempus at.
    Phasellus sit amet enim et ligula condimentum pellentesque.
    Mauris lobortis pulvinar dignissim.
    \end{document}
    
    В результате гиперссылки из таблицы ведут в самое начало первой страницы или в под линию сносок. Результат далёк от совершенства.
  4. Есть вариант ручной расстановки сносок при помощи команд \\footnotemark[] и \footnotetext[]{}. Код очевиден. Решение работает хорошо. Можно использовать пакет footmisc для постраничной нумерации сносок. Одна проблема — гиперссылки не создаются.
  5. Есть вариант, подкупающий своей годнотой — использовать пакет tablefootnote, который, судя по поставляемому пример готов сделать для меня желаемое, но в пакете texlive-latex-extra из моего Debian Squeeze этого расширения нет — оно появляется только в Wheezy.

Что же теперь делать? Как добавить tablefootnote (http://mirror.ctan.org/macros/latex/contrib/tablefootnote.zip) к теху (инструкцию из его readme читал, но что-то боязно, джентльмены...)

Смотрел также:

http://www.tex.ac.uk/cgi-bin/texfaq2html?label=footintab

http://www.latex-community.org/viewtopic.php?f=5&t=929

akj
() автор топика

Ещё есть вопрос.

[Q] Можно ли в LaTeX организовать команду, возвращающую ширину?

Мне нужна команда \columnwidth{}, которая возвращает пригодное для использования в качестве параметра модификатора типа колонки, например, m{\columnwidth{0.15}}, соответствовало бы ширине в 15% ширины \linewidth минус две ширины \tabcolsep.

akj
() автор топика
2 июля 2013 г.

Нежелательная растеризация при pdf->ps

Внезапно для себя столкнулся с особенностью pdflatex, проявляющейся при вставке pdf-картинок при помощи graphicx.

Факты:

  1. При печати cups пропускает задания через интерпретатор ghostscript в виде PostScript, а программа просмотра, например, okular генерирует через libpoppler PostScript для печати.
  2. Насколько я понимаю, в коде libpoppler используется тот же код, что когда-то генерировал PostScript из PDF при помощи pdftops (ныне программа есть в poppler-utils).
  3. В спецификации PostScript (см. PLRM3) нет композиции (смешивание при прозрачности) и нескольких других графических преобразований, а в спецификациях PDF есть, в связи с чем, libpoppler при преобразовании PDF->PS растеризует часть изображения (в моём случае — всю страницу с рисунком).
  4. Исходные рисунки (в формате PDF) не содержат операторов композиции и прочих вкусностей, не поддерживаемых в PostScript, что проверяется через утилиту pdftops (выход не содержит оператора image и, соответственно растровых изображений).

Действия:

  1. Добавляю в текст картинку через \includegraphics{fig/fig144.pdf}.
  2. Компилирую через pdflatex (использую штатный TeXLive из Debian 6). В результате имею PDF с векторным нормальным рисунком.
  3. При попытке напечатать или явно преобразовать в PostScript получаю нежелательную растеризацию страницы с картинкой.

Есть какие-нибудь идеи, господа? Что я делаю не так, что pdflatex добавляет к моей картинке что-то не поддерживаемое в PostScript. Если я правильно понимаю философию функционирования pdflatex, то она должна была создать из моей картинки словарную запись и произвести инкапсуляцию по месту внутрь графического оператора матрицы аффинного преобразования.

akj
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.