Ru-Board.club
← Вернуться в раздел «Программы»

» TeX, LaTeX и т.д.

Автор: math
Дата сообщения: 16.03.2007 12:32
Vastey
Для личного пользования очень удобно.
Для всех, думаю не совсем. Замучаешься потом студентам объяснять, что и как.
Выбор всегда только за самим собой!!!

Автор: snop
Дата сообщения: 16.03.2007 13:06
Vastey

Цитата:
Господа, кто-нить в универе в латексе набирает лекции? Насколько это удобно для математической специальности.

Да, я набираю. Лучше не придумаешь.
math

Цитата:
Для всех, думаю не совсем. Замучаешься потом студентам объяснять, что и как.

У нас есть курсы на которых лекторы дают латех темплейт и желают удачи
Вроде жалоб не было.
Автор: RuBorTex
Дата сообщения: 16.03.2007 17:03
math

Цитата:
Замучаешься потом студентам объяснять, что и как.

Что же это за студенты-математики, которые с LaTeX не разберутся? Насколько я помню, на питерском мат-мехе ещё в начале 90-х (а может и раньше - не знаю) задачки в формате TeX выдавали (ну, разумеется, для желающих могли и в виде распечатки дать).

Автор: TeXpert
Дата сообщения: 16.03.2007 17:51
RuBorTex

Цитата:
Что же это за студенты-математики, которые с LaTeX не разберутся?

Правильно замечено. Своего рода тест на профпригодность.
Автор: Varravann
Дата сообщения: 16.03.2007 22:04
Господа! Вопрос по пакету PSTricks...

В общем, я рисую на нем то, что называется flow charts, т.е. диаграммы состояний системы с конечным количеством оных. Проще говоря, набор "ящиков" и стрелочки между ними (ну и туча подписей). Т.к. схемы эти все время правятся, требуется хороший уровень автоматизации процесса рисования, а поэтому я их рисую не просто линиями и при помощи nodes и node connections. Ящики - это, ясен пень, fnode'ы, а соединения - node connection'ы...

Однако есть тут одна проблемка: на схемах должны быть не только стрелки от ящика к ящику, но и стрелки, так сказать, "из ниоткуда" и "в никуда". Они должны быть перпендикулярны ящику, в или из котрого они ведут, и быть фиксированной длины. При этом проблема усугубляется еще тем, что их нужно рисовать не только по центру node'а, но и с некоторым offset'ом. Ну и, самое главное, они должны быть привязаны к определенному узлу и перетаскиваться вместе с ним (иначе все было бы просто: фиктивный pnode и connection от него к нужному узлу).

На данный момент я решил это довольно извратным способом:

а) Стрелки "извне" рисуются просто:

\newcommand{\StandardSchemeNCInA}[4]{\ncangle[angle=#2,offsetA=#3,offsetB=-#3,arm=1]{->}{#1}{#1}\naput[npos=0.5]{#4}}

Тут, соответственно, #1 - узел, в который рисуем стрелку, #2 - угол рисования, #3 - сдвиг (offset), 1 - стандартная длина стрелки, #4 - надпись на стрелке.


б) А вот нарисовать стрелку наружу куда сложнее - нельзя же сделать стрелку посередине линии.. Приходится извращаться вот так:

\newcommand{\StandardSchemeNCOutA}[5]{\ncbar[angle=#2,offsetA=#3,offsetB=-#3,arm=2]{-}{#1}{#1}\ncput[npos=1.5]{\pnode{#5}}\ncangle[angleA=#2,angleB=-#2,offsetA=#3]{->}{#1}{#5}\naput[npos=0.5]{#4}}

Первые 4 параметра те же, что и в случае "а", а 5й - имя временного нода.

Объяснение алгоритма: как в случае "а" рисуем "палку-стоялку" в нужном месте, на ее конец кладем виртуальный pnode, а потом тянем стрелку от узла к этому pnode'у.

---------------------------------------------------

А теперь сами вопросы:

1) Можно ли это все сделать как-то попроще? Нет ли стандартных механизмов для этого безобразия?

2) Если я буду последовательно в одной картинке объявлять несколько временных узлов с одним и тем же названием, это не приведет к глюкам ПостСкрипта?
Автор: TeXpert
Дата сообщения: 17.03.2007 00:31
Varravann

Цитата:
Однако есть тут одна проблемка: на схемах должны быть не только стрелки от ящика к ящику, но и стрелки, так сказать, "из ниоткуда" и "в никуда". Они должны быть перпендикулярны ящику, в или из котрого они ведут, и быть фиксированной длины. При этом проблема усугубляется еще тем, что их нужно рисовать не только по центру node'а, но и с некоторым offset'ом. Ну и, самое главное, они должны быть привязаны к определенному узлу и перетаскиваться вместе с ним (иначе все было бы просто: фиктивный pnode и connection от него к нужному узлу)

Однозначно рисуй в METAPOST. Изучи 100-страничный мануал с прекрасными примерами -- там есть и про угол прихода, короче, всё. Полиграфическое качество, прекрасный PostScript.
Автор: Varravann
Дата сообщения: 17.03.2007 10:50
TeXpert

Цитата:
Однозначно рисуй в METAPOST. Изучи 100-страничный мануал с прекрасными примерами -- там есть и про угол прихода, короче, всё. Полиграфическое качество, прекрасный PostScript.

Угол прихода и прекрасный постскрипт есть и в PSTricks. Вопрос в доступности координат одних PST-объектов для других PST-объектов.
Автор: TeXpert
Дата сообщения: 17.03.2007 12:34
Varravann
Уж мне поверь -- PSTricks детский сад по сравнению с METAPOST. Последний гибко программируем. Попроще и естественнее будет. Ты бы хоть мануал открыл, что ли...
Автор: alek111
Дата сообщения: 17.03.2007 18:55
Проблемма со сносками.

Если использовать babel с украинским языком, то после знака сноски в основном тексте возникает пробел, с русским языком такого не происходит

Используется MiKTeX2.5

\usepackage[cp1251]{inputenc}
\usepackage[ukrainian]{babel}
...
...
asdf\footnote{qqq}, %перед запятой появляется пробел, без запятой пробел тоже есть

Пробовал:

asdf\footnotemark,\footnotetext{qqq} %\footnotemark пробела не вносит, а \footnotetext вносит.

Перерыл кучу литературы, никакими параметрами пробел после знака сноски не регулируется. Как измерить длину вносимого пробела тоже не понял (чтобы скомпенсировать чем-нибудь типа \kern ...). Остается тупо подобрать значение сдвига и завязать его на em (типа \kern -.5em).

Кто-то сталкивался с такими приколами???
Автор: TeXpert
Дата сообщения: 17.03.2007 19:22
alek111
Загляни в украинский бабель и вычисти оттуда пробел, скорее всего глюк там.
Автор: alek111
Дата сообщения: 17.03.2007 21:59
Посмотрел babel.ins, babel.dtx, ukraineb.ins, ukraineb.dtx. Там ничего прямо связанного с \footnote нету, а косвенно связанное я определить не могу (я пока в этих делах чайник)
Автор: TeXpert
Дата сообщения: 18.03.2007 09:55
alek111
Эти файлы -- грубо говоря, "дистрибутивы". А надо смотреть уже "распакованные", если не ошибаюсь, в данном случае это ldf (language definition file), своеобразный стилевой файл.
Автор: Griefin
Дата сообщения: 18.03.2007 11:47
Раз уже речь зашла о babel, то есть такой вопрос. Как из класса, который подключается до него, заблокировать переопределение некоторых стандартных заголовков? Например, макрос \bibname в классе определяется как "Содержание", нужно чтобы babel не заменял его на "Оглавление". На данный момент существует такое решение:

\def\newbibname{Содержание}

Внутри определения окружения thebibliography стоит команда:
\def\bibname{\newbibname}
Автор: alek111
Дата сообщения: 18.03.2007 12:01
TeXpert
нашел ukraineb.ldf там тоже ничего про footnote нету. Теоретически и не должно быть, он же из .dtx генерируется???
Автор: TeXpert
Дата сообщения: 18.03.2007 12:04
Griefin
Вряд ли можно запретить. Проще восстановить (заново переопределяя) после babel. Я бы предпочёл так. В оригиналы лучше не лезть, за исключением явных ошибок.

Добавлено:
alek111
Версия какая файла? Не хочется качать из-за одного файла. Не мог бы выложить?

Добавлено:
alek111
Короче, просьба ваш ukraineb.ldf вместе со стилевым файлом и исходным текстом вашего документа архивом выложить куда-нибудь. На досуге посмотрю.
Автор: alek111
Дата сообщения: 18.03.2007 15:25
TeXpert
Я еще немного покопался и выяснил, что проблема была не со сносками, а с \selectlanguage{}, я использую его в тексе сносок.

Тестовый файл выглядит так:
Код: \documentclass{article}

\usepackage[cp1251]{inputenc}
\usepackage[german,russian,ukrainian]{babel} % в строке тест3 перед точкой пробел
%\usepackage[german,ukrainian,russian]{babel} % так все нормально
\usepackage{indentfirst}

\begin{document}
тест1 тра-ля-ля.

{тест2 тра-ля-ля\selectlanguage{german}.}

тест3 тра-ля-ля{\selectlanguage{german}}.
\end{document}
Автор: TeXpert
Дата сообщения: 18.03.2007 16:54
alek111
Уже легче).

А вот без этого

Цитата:
\selectlanguage{german}

пробовал? Немецкие традиции немного другие -- у них, насколько помню, пробел ставится перед, например, вопросительным знаком.


Цитата:
С файлом ukraineb.ldf сложнее, там 320 строк и текстом сюда его выкладывать было-бы неразумно

А я и не просил сюда -- есть множество файлообменников. А вот версию файла я просил. Мылом я не люблю.
Автор: alek111
Дата сообщения: 18.03.2007 17:18
TeXpert
Немецкие традиции тут непричем, если в \selectlanguage вставить другой язык ничего не меняется (я пробовал вставлять русский и англицкий).

Вместо \selectlanguage можно использовать окружения какие нибудь которые делают то-же самое, еще не пробовал.
Совсем убрать нельзя, мне нужно куски немецкого текста вставлять в украинский, причем в самых различных местах (в том числе и в сносках), и хочется чтобы переносы переносились, тире было нужной длины и т.д.

Версия это эта строка???
Код: \ProvidesLanguage{ukraineb}
[2005/03/30 v1.1k Ukrainian support from the babel system]
Автор: TeXpert
Дата сообщения: 18.03.2007 18:03
alek111
У меня старой версии. Выложи два файла куда-нибудь.
Автор: alek111
Дата сообщения: 18.03.2007 18:21
TeXpert
Выложил
http://webfile.ru/1350254
Автор: RuBorTex
Дата сообщения: 18.03.2007 18:29
alek111, как показали эксперименты с Вашим примером, лишний пробел содержится в команде \selectlanguage{ukrainian}. Если в начале всего текста поставить \selectlanguage{german} или \selectlanguage{russian}, то лишнего пробела не будет, а вот \selectlanguage{ukrainian} даёт в "тест3" лишний пробел.

В
Цитата:
тест3 тра-ля-ля{\selectlanguage{german}}.
немецкий стоит внутри блока {}, а точка - снаружи, когда действие немецкого закончивается и происходит автоматическое переключение на предыдущий язык (украинский).

Тот же эффект лишнего пробела можно получить, если изначально выбрать русский текст, а потом в конце предложения перед точкой вставить\selectlanguage{ukrainian}. Если \selectlanguage{ukrainian} вставить пять раз подряд - будет пять лишних пробелов.

Автор: estimated
Дата сообщения: 18.03.2007 18:59
alek111

Цитата:
мне нужно куски немецкого текста вставлять в украинский, причем в самых различных местах (в том числе и в сносках)

аналогичная ситуация. Хотелось бы поделиться своим решением.

Я определил несколько макрокоманд и меняю язык в тексте так:
\en здесь пошел английский \de здесь немецкий, старая орфография \den или новая \ua украинский ...

Т.е. мой метод не в том, чтобы временно переключиться в нужный язык а потом вернуться в дефолтный, а в том чтобы просто переключиться в нужный язык "с концами" по аналогии с переключением раскладки клавиатуры.

Но, конечно, можно использовать и так:
\ua украинский {\de вкрапление немецкого} опять украинский


% International Definitions
\usepackage[cp1251, cp1252]{inputenc}
\usepackage[T2A, T1]{fontenc}
\usepackage[russian, ukrainian, english, german, ngerman]{babel}
\usepackage{textcomp} % \texteuro, etc.
%\usepackage{eurosym}
\usepackage{marvosym}

\newcommand{\en}{\inputencoding{cp1252}\fontencoding{T1}\selectfont\selectlanguage{english}}
\newcommand{\de}{\inputencoding{cp1252}\fontencoding{T1}\selectfont\selectlanguage{german}}
\newcommand{\den}{\inputencoding{cp1252}\fontencoding{T1}\selectfont\selectlanguage{ngerman}}
\newcommand{\ru}{\inputencoding{cp1251}\fontencoding{T2A}\selectfont\selectlanguage{russian}}
\newcommand{\ua}{\inputencoding{cp1251}\fontencoding{T2A}\selectfont\selectlanguage{ukrainian}}
Автор: alek111
Дата сообщения: 18.03.2007 19:30
RuBorTex

Цитата:
как показали эксперименты с Вашим примером, лишний пробел содержится в команде \selectlanguage{ukrainian}

это понятно, непонятно как это исправить. Где в ukrainebb.ldf код, который отвечает за инициализацию языка.

estimated

Цитата:
Хотелось бы поделиться своим решением.

Я примерно так и делаю. Только исходный украинский, а вставки на немецком и если вставка внутри блока то появляется лишний пробел, который проявляется только если после блока стоит знак препинания, а иначе все нормально.


Автор: Varravann
Дата сообщения: 18.03.2007 21:33
Мгм... Идею с Метапостом к сведению принял, но все картинки все же нарисовал в PStricks.

======================================

Пара других вопросов:

1) Языки vs переносы.
У меня в русском тесте идут вкрапления английского. Достаточно ли для их корректной обработки в начале сказать \usepackage[english,russian]{babel}, а потом на каждый фрагмент английского применять \selectlanguage{english}? Или для полной корректности нужны еще какие-то примочки?

2) Системы уравнений с разбивкой по страницам.
Я набираю ядреные математические тексты, где системы уравнений зачастую имеют по 20 и более строк и занимают по странице. Спрашивается, как сделать так, чтобы уравнения, с одной стороны, были красиво выровнены (что удобно делать при помощи eqnarray), но, с другой стороны, образовывали не единый бокс, а могли сами построчно делиться между страницами (чего eqnarray, вроде как, не умеет)? Можно ли это сделать стандартными средствами или лучше применять какие-то спец.пакеты?

Добавлено:
3) И как сделать так, чтобы в внутристрочных формулах ($stuff$) команда \frac{a}{b} не уменьшала бы a и b, а раздвигала строку?
Я понимаю, что можно набрать просто $a/b$, но мне так кажется не очень красиво... Кстати, а не существует ли какой-то средней команды, которая рисует дробь через косую черту, но при этом все же немного приподымает числитель и опускает знаменатель?
Автор: RuBorTex
Дата сообщения: 18.03.2007 21:46
alek111
Цитата:
лишний пробел, который проявляется только если после блока стоит знак препинания, а иначе все нормально.

В моём тестовом файле (небольшая модификация Вашего) пробел возникает в любом месте, где употребляется команда переключения на украинский.

Добавление:
Кое-как нейтрализовать этот глюк мне удалось установкой в качестве основного языка русского (чтобы по выходе из блока сноски происходило переключение на русский, а не на украинский).

Где именно в "бабеле" затесался этот пробел - не знаю, хотя и пытался сравнить рус. и укр. ldf. К сожалению, в TeXе я не эксперт.
Автор: alek111
Дата сообщения: 18.03.2007 22:05
RuBorTex

Цитата:
Кое-как нейтрализовать этот глюк мне удалось установкой в качестве основного языка русского (чтобы по выходе из блока сноски происходило переключение на русский, а не на украинский).

Только-что обнаружил. Если использовать \foreignlanguage{}{} или \begin{otherlanguage}{} ... \end{otherlanguage} то такого глюка нету.
Думаю создать окружение, чтобы было что-то типа \begin{de} ... \end{de} и для мелких вставок что-то типа \newcommand{\de}[1]{\foreignlanguage{german}{#1}}
Автор: TeXpert
Дата сообщения: 18.03.2007 22:19
Varravann
eqnarray морально устарел, лучше align.


Цитата:
И как сделать так, чтобы в внутристрочных формулах ($stuff$) команда \frac{a}{b} не уменьшала бы a и b, а раздвигала строку?

Куча способов. Есть ещё \dfrac.


Цитата:
Кстати, а не существует ли какой-то средней команды, которая рисует дробь через косую черту, но при этом все же немного приподымает числитель и опускает знаменатель?

Можешь сам написать макро, довольно просто. Один бокс приподнимаешь, другой наоборот.
Автор: Pavel80
Дата сообщения: 18.03.2007 22:56
Кто работал с программой Latex2html
Автор: Varravann
Дата сообщения: 19.03.2007 00:14
TeXpert

Цитата:
eqnarray морально устарел, лучше align.

Нубский вопрос: к какому пакету относится окружение align? Т.е. где доки копать?


Цитата:
Куча способов. Есть ещё \dfrac.

Аналогичный вопрос: это из какого пакета?


Цитата:
Можешь сам написать макро, довольно просто. Один бокс приподнимаешь, другой наоборот.

Извиняйте, не умею я писать макры, которые двигают что-то в формулах.. Да и стремновато немного. Не мог бы ты наляпать такое простое макро?
Только вот тут одна проблема есть: не будет ли поднятый/опущенный материал "задевать" соседние строки и можно ли этот факт как-то контролировать...

Добавлено:
1) Так.. Вкурил: это все AMS. Но вот чем align лучше eqnarray я так навскидку и не понял...

2) dfrac - не решение проблемы - это просто принудительное раздвигание строчек.
Автор: orgru
Дата сообщения: 19.03.2007 01:06

Цитата:
2) dfrac - не решение проблемы - это просто принудительное раздвигание строчек.

а ты что спрашивал?

Цитата:
И как сделать так, чтобы в внутристрочных формулах ($stuff$) команда \frac{a}{b} не уменьшала бы a и b, а раздвигала строку?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Форматы|кодеки|снятие и обработка звука|lossless&lossy|codec


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.