Эта страница доступна также на следующих языках: English, Français.

# Общее

## Я нашёл ошибку! Что мне делать?

1. Проверьте, можете ли вы повторно воспроизвести эту ошибку.
2. Спросите в списке рассылки geda-user, есть ли способ её обойти или не победили ли её уже в последней версии gEDA/gaf. Учтите, что прежде чем писать в этот список рассылки, на него нужно подписаться.
3. Проверьте, не отмечена ли уже эта проблема в системе отслеживания ошибок gEDA/gaf. Если нет, заполните отчёт об ошибке. Обязательно представьте всю информацию, необходимую для воспроизведения ошибки, и укажите версию пакета gEDA/gaf, её содержащую.
4. Наконец, как и для всех проектов с открытым исходным кодом, вы можете напрячь свои программистские мускулы и попробовать исправить ошибку самостоятельно. Пожалуйста, представьте заплату с нужными вам изменениями в систему отслеживания ошибок gEDA/gaf. Заплата будет охотно принята для улучшения следующей версии gEDA/gaf.

# Использование gschem

## В диалоговом окне выбора символов нет символов!

Диалоговое окно выбора символов представляет список названий разделов библиотеки. Щёлкните слева от названия по направленному вправо треугольнику. Список развернётся. Прокрутите его вниз до символа, который нужно добавить в схему.

## Как переместить компонент?

1. Выделите компонент, щёлкнув по нему левой кнопкой мыши. Компонент будет подсвечен.
2. Переместите его (нажав левую кнопку мыши) в нужное место.

## Как перемещать компоненты, не таская концов подключенных соединений?

Для переключения такого поведения нажмите [o][r]. То есть сначала клавишу [o], затем [r]. Выполнение команды переключения отразится в окне состояния. Эта команда доступна также из меню Настройки [Options].

## Как изменить размер текста в символе?

1. Выделите символ.
2. Щёлкните правой кнопкой → Войти в символ [Down symbol] (или из меню Иерархия → Войти в символ [Hierarchy → Down symbol]). Это приведёт вас в редактор символов.
3. Выделите номер вывода, который нужно изменить.
4. Выберите пункт меню Правка → Правка текста… [Edit → Edit text…] (или наберите с клавиатуры [e][x]).
5. Измените во всплывающем окне размер шрифта.
6. Повторите это для всех текстовых элементов, которые нужно изменить.
7. Файл → Сохранить [File → Save].
8. Щёлкните правой кнопкой → Наверх [Up] (или Иерархия → Наверх [Hierarchy → Up]). Теперь вы снова в редакторе схем.
9. Пока символ ещё выделен, щёлкните Правка → Обновить компонент [Edit → Update component] (или воспользуйтесь горячими клавишами [e][p]). Если это не работает, просто удалите символ и снова вставьте его.

Эту же процедуру можно использовать и более широко и редактировать в символе что-угодно. (При этом, конечно, вместо Правка текста… [Edit text…] нужно выбрать другую желаемую функцию.)

## Можно ли в gschem задать черту над текстом?

Да, линию над текстом задать можно. Обратная косая черта и знак подчёркивания отмечают начало текста, над которым должна быть линия. Вторая комбинация этих символов вновь включит обычный текст. Пример: дважды щёлкните по атрибуту и наберите «\_это\_».

Учтите, при трансляции в pcb линии над текстом в топологии не будет. Обратная косая черта игнорируется, поэтому по краям текста, над которым должна была бы быть линия, останутся знаки подчёркивания.

## Как разблокировать заблокированный компонент?

Когда компонент заблокирован, средней кнопкой мыши выделить его нельзя, но можно выделить рамкой. Для выделения компонента рамкой нужно, нажав и удерживая левую кнопку мыши, переместить мышь, определив таким образом прямоугольную область, содержащую нужный компонент. Затем, чтобы разблокировать компонент, выполнить команду Правка → Разблокировка [Edit → Unlock].

## Как сделать так, чтобы позиционные обозначения при вычерчивании схемы нумеровались автоматически?

Измените файл `system-gschemrc` или добавьте следующее в файл `gschemrc` (либо в `~/.gEDA/gschemrc`, либо в `gschemrc` в локальном каталоге, из которого вы запускаете gschem):

    (load (string-append geda-data-path "/scheme/auto-uref.scm")) ; загрузить скрипт автонумерации
    (add-hook! add-component-hook auto-uref)       ; автонумерация при добавлении компонента
    (add-hook! copy-component-hook auto-uref)      ; автонумерация при копировании компонента

## Что такое шина и как её использовать?

«Шина» — это всего лишь декорация. Генератор списка соединений её игнорирует. Фактическая работа по соединению точек между собой возложена на атрибут `netname=` — это то, что gnetlist читает и преобразует в список соединений. Невозможно присоединить дискретную линию или «бит» к шине, потому что, ещё раз, это просто графический элемент.

Некоторым пользователям кажется удобной такая организация соединений, когда в их имена входит название шины. Например, к каждому символу ответвления от шины («busripper») можно добавить атрибут вида `net=busA:1`, что облегчит сортировку соединений.

## Каково назначение кнопок мыши в gschem?

Стандартные настройки таковы:

- Левая кнопка мыши используется для выбора и черчения.
- Средняя кнопка мыши — или для перемещения объекта (щёлкните по объекту и, удерживая кнопку, перемещайте мышь), или для его копирования (нажав и удерживая клавишу [Alt], щёлкните по объекту и, удерживая кнопку, перемещайте мышь).
- Правая кнопка мыши — для контекстного меню.

Привязку средней кнопки можно изменить, добавив в файл `gschemrc` одну из следующих строк:

    (middle-button "action")   ;привязка по умолчанию, перемещение или копирование объекта

или:

    (middle-button "stroke")   ;использование жестов (для этого нужно, чтобы была установлена библиотека libstroke)

или:

    (middle-button "repeat")   ;повтор последней выполненной команды

Привязку правой кнопки можно изменить, добавив в файл `gschemrc` одну из следующих строк:

    (third-button "popup")     ;привязка по умолчанию -- вызов контекстного меню

или:

    (third-button "mousepan")  ;панорамирование в окне схемы

Более подробную информацию об этих настройках смотрите в файле `${install_prefix}/share/gEDA/system-gschemrc`.

## Можно ли в gschem делать иерархические проекты с листами подсхем?

Да. Листы подсхем в основной схеме представляются специальными символами. В разделе документации gschem можно найти пример иерархического проекта (`geda-doc/examples/gTAG/gTAG.sch`). В настоящее время нет способа создать символ подсхемы из существующей схемы автоматически. Его придётся чертить вручную. Мы были бы очень признательны за любые заплаты или сторонние скрипты, с помощью которых можно было бы это сделать.

Атрибут `source=`, прикреплённый к символу подсхемы, задаст путь доступа к файлу этой подсхемы. Выводы символа соответствуют портам — переходам из основной схемы в подсхему. Эти переходы должны соответствовать позиционным обозначениям символов портов в подсхеме. Символами портов в текущей библиотеке gEDA являются `in-1.sym` и `out-1.sym`. Для навигации в иерархии листов подсхем используйте меню иерархии. Также для этого можно использовать менеджер страниц.

Для преобразования иерархии в список соединений просто запустите gsch2pcb для основной схемы. По умолчанию имена соединений и позиционные обозначения компонентов являются строго локальными для подсхемы. При добавлении в список соединений они получают префикс в виде позиционного обозначения символа подсхемы. Можно использовать даже несколько экземпляров символа подсхемы, не опасаясь коротких замыканий. Будут ли изменяться имена соединений или позиционные обозначения, и оставаться таким образом локальными для подсхемы, или не будут, можно настроить в файле конфигурации `gnetlistrc`. Скопируйте соответствующие строки из `system-gnetlistrc` в `gnetlistrc` в текущем рабочем каталоге или в `$HOME/.gEDA/gnetlistrc`. Удобной настройкой может быть такая, когда соединения, представляемые символами питания, становятся глобальными, в то время как обычные соединения остаются локальными для подсхемы. Этого можно добиться разрешением `hierarchy-netattrib-mangle`.

## Можно ли в gschem сделать иерархию, в которой символ в основной схеме изображает многостраничную схему?

Да. Просто прикрепите к символу атрибут `source=` несколько раз с разными значениями. Войдите через этот символ в схему, затем страницы данного уровня можно листать клавишами [Page Up] / [Page Down].

## Можно ли настроить иерархию в нескольких каталогах?

Да. Для этого нужно, чтобы в декларациях `(source-library "...")` и `(component-library "...")` в `gafrc` были перечислены все нужные каталоги.

## Как объявить соединение глобальным?

В отношении текущего листа все имена соединений глобальны. Являются ли имена соединений глобальными в иерархическом стеке схем или нет, зависит от настроек в `gnetlistrc`. Этот файл может находиться в `$HOME/.gEDA` или в локальном каталоге вместе со схемами. Умолчания установлены в `system-gschemrc`. Если хочется другого поведения, скопируйте соответствующие строки в локальный `gnetlistrc`.

Способа сделать определённые имена соединений глобальными нет. Однако имена для соединений можно разделить на те, что задаются с помощью атрибута `netname`, и те, что определяются атрибутом `net`. Второй атрибут предназначен для настройки соединений символов питания. При его использовании соединения питания к символам подсхем подводить не нужно.

## Можно ли определить особые настройки и библиотеки для подсхем?

Когда схема открывается, libgeda меняет каталог. Так что при обработке схемы она должна загрузить любой `gafrc`, и в подкаталогах тоже.

## Есть ли ограничения для иерархических проектов?

Хотя поддержка подсхем охватывает многие аспекты иерархических проектов, несколько ограничений существует:

- Шины к подсхемам присоединять нельзя.
- В графическом интерфейсе нет способа создать начальную подсхему. Отдельные символы для каждой подсхемы придётся создавать вручную.

Не стесняйтесь исправить эти вопросы. Помощь приветствуется.

# Символы gschem

## Где найти символы кроме тех, что есть в стандартной библиотеке?

Есть веб-сайт gedasymbols.org, предназначенный для ресурсов, которыми пользователи содействуют проекту gEDA. Есть поиск по сайту, предпросмотр символов и их можно загрузить по отдельности. Если соответствующим образом сконфигурировать свой файл `gafrc`, то эти символы можно разместить прямо рядом с файлами схем своего проекта. Может быть вам следует создать локальную библиотеку символов, чтобы все проекты имели доступ к новым символам. Смотрите подробности ниже.

Можно загрузить даже всё содержимое, добавленное пользователями gedasymbols. Смотрите инструкции о том, как получить доступ к gedasymbols с помощью CVS.

## Что за вопрос насчёт тяжёлых символов против лёгких?

Эта терминология выросла из дискуссии, которая часто возникает в списках рассылки geda-user и geda-dev. Лёгкий символ — это символ, содержащий очень мало встроенных атрибутов. При этом почти все атрибуты пользователю придётся добавлять на этапе редактирования схемы (например, в gschem или в gattrib). Тяжёлый символ — это такой, многие атрибуты которого (такие как посадочные места компонентов, названия SPICE-моделей и пр.) уже встроены в файл символа. Поэтому на этапе редактирования схемы атрибуты к тяжёлому символу прикреплять практически не требуется — просто вставляете его и всё готово.

Дебаты между сторонниками тяжёлых и лёгких символов очень детальны и запутаны. В целом, сторонники тяжёлых символов думают, что они позволяют достичь большей интеграции между gschem и pcb, так как важные атрибуты топологии (такие как название посадочного места) уже встроены в символ. Считается, что это хорошо для новых пользователей (нубов), которые просто хотят спроектировать простую плату, и их не волнует миллион вариантов, существующих даже для обычного резистора (например, различные корпуса, ТКС, точность, состав материала и т. д.). Сторонники лёгких символов предпочитают работать с атрибутами при редактировании схемы, потому что думают, что это более гибко. Они сразу указывают, что если пытаться обозначить все различия между разными вариациями компонентов, библиотека тяжёлых символов быстро разрастётся в тысячи компонентов с абсурдно длинными названиями. Они также отмечают, что предпочтительным инструментом для обработки атрибутов при редактировании схем (то есть для файлов `.sch`) является утилита gattrib.

В gEDA/gaf по умолчанию используются лёгкие символы, хотя такую конфигурацию можно изменить и использовать тяжёлые. Более подробно об этом можно узнать из следующих дискуссий в списке рассылки geda-user:

http://archives.seul.org/geda/user/Jun-2005/msg00001.html

http://archives.seul.org/geda/dev/Oct-2005/msg00043.html

http://archives.seul.org/geda/user/Dec-2007/msg00146.html

## Я загрузил символ из библиотеки. Почему он не выравнивается по сетке?

Подавляющее большинство символов в библиотеке создано с выравниванием по сетке в 100 единиц. Убедитесь, что сетка настроена на 100 единиц. Чтобы проверить или изменить это значение, выберите Шаг сетки привязки… [Snap Grid Spacing…] в меню настроек.

Символы добавлены в библиотеку такими же пользователями, как и вы. Некоторые люди используют другие настройки сетки, нежели остальные (например, 50 единиц вместо 100). Если вы обнаружили символ, который, кажется, не выравнивается по сетке, попробуйте уменьшить размер сетки и переместить символ так, чтобы концы его выводов «сидели» на сетке. Потом вернитесь к настройкам сетки, подходящим для вас. Кроме того, вы можете послать исправленный символ в список рассылки geda-user.

Символы, находящиеся на сайте gedasymbols.org, ещё более подогнаны под конкретные требования их авторов. Да, документация gEDA строго рекомендует использовать размер сетки 100 единиц. Но каждый любит делать всё по-своему и абсолютного диктатора, который мог бы навязать правила для вносимых в проект символов, нет. Поэтому вам просто надо знать об этой возможности.

## Есть ли явный символ «no connect», который я мог/должен бы вставить в схему, чтобы программа gnetlist не думала, что я забыл добавить какое-то соединение?

Ответ: `misc` → `nc-left, nc-right, nc-top, nc-bottom`.

Будьте осторожны: подчас при этом может быть создано соединение с названием no_connect (или NC??), что может заставить gnetlist соединить эти неподключенные выводы между собой, чего вы, скорее всего, не хотели бы.

Если вы хотите, чтобы символ был чисто графическим (не имел электрических соединений), добавьте атрибут `graphical=1`. Такие символы полностью игнорируются генератором списка соединений.

## Как вынести в схему невидимый атрибут символа?

Невидимые атрибуты, за некоторыми исключениями, из символов в схему не выносятся. Чтобы они выносились, нужно сделать следующее. Поищите следующие ключевые слова в файле `system-gafrc`:

    (attribute-promotion "enabled");
    (promote-invisible "disabled") ; <= Вот это
    (keep-invisible "enabled")

Добавьте в свой `gafrc`:

    (promote-invisible "enabled")

и все атрибуты будут выноситься. Ключевое слово `keep-invisible` служит для того, чтобы те атрибуты, что были скрытыми в файле символа, оставались скрытыми и в схеме.

## Как мне быть с выводами питания для своих символов: делать ли их видимыми (явными) или невидимыми (неявными)?

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

Для старых логических схем, имеющих повсюду пятивольтовую ТТЛ-логику, наличие скрытых выводов может быть и нормально. Если у вас на плате есть только +5 В, то скрытие выводов питания может несколько упростить схему. Однако сегодня немногие проектировщики делают такие схемы; пятивольтовые ТТЛ (и пятивольтовые КМОП) быстро становятся технологией древности.

Скрывать выводы питания аналоговых микросхем было неприемлемо всегда. Во-первых, аналоговые микросхемы часто имеют несколько соединений питания (VCC, VEE), которые требуется указывать явно. Во-вторых, хорошая практика проектирования подразумевает установку развязывающих конденсаторов на всех выводах питания без исключения. К тому же иногда последовательно с питанием устанавливают катушку индуктивности. Так как всё это должно быть начерчено в схеме, то лучше всего для их подключения использовать явный вывод питания. Поэтому никогда не следует использовать скрытые выводы питания для символов аналоговых компонентов.

В новых схемах логики для разных частей микросхемы часто используется несколько источников питания (OVDD, DVDD и т. д.). Обычным также является наличие нескольких типов логики на одной плате (5 В, 3.3 В и т. д.). Поэтому лучше всего размещать и подключать выводы питания таких символов явным образом. Скрытые выводы питания в этом случае будут причиной многих бед, так как, например, питание 3,3 В можно весьма просто ошибочно подключить к пятивольтовому прибору.

Перефразируя Ненси Рейган: просто скажи «нет» скрытым выводам питания.

К вышесказанному добавим, что тем не менее весьма удобным может быть отделение выводов питания от функциональных частей символа. Чтобы добиться этого, надо будет определить отдельный символ питания и задать ему то же самое позиционное обозначение, что и для функциональной части. При запуске gsch2pcb эти двойняшки будут надлежащим образом рассматриваться как один компонент. Так как ни gschem, ни gsch2pcb не могут точно знать, вполне ли укомплектован компонент в схеме обоими созданными для него символами, то это следует проверять самостоятельно. При таком подходе все цепи питания могут вычерчиваться в одном углу схемы отдельно от сигнальных цепей. Для аналоговых схем это в ряде случаев очень удобно.

## Можно ли использовать выводы нулевой длины?

Для обоих концов вывода можно задать одинаковые значения координат. При этом будет выводиться только красный маркер вывода без продолжения. В настоящее время в gschem графически такой вывод начертить нельзя. Но файл символа можно открыть в текстовом редакторе и добавить вот такую строку:

    P 100 100 100 100 1 0 0

Получится вывод нулевой длины в нижнем левом углу рабочей области. Его можно перемещать, прикреплять к нему атрибуты, копировать его как и любой другой вывод. Если соединение к нему не подключено, он выглядит как маленький красный флаг, в противном случае — пропадает. gnetlist без проблем обрабатывает его как и все прочие выводы.

## Есть ли спецификация или руководство по созданию символов gschem? Если есть, то где?

Есть. Это Руководство по созданию символов.

## Есть ли помощник по созданию символов в gschem?

Помощника, встроенного в графический интерфейс gschem, нет. Но есть скрипты для автоматического создания символов по заданным в файле конфигурации параметрам. Один из этих скриптов — tragesym. Он входит в стандартный набор программ gEDA. Научиться им пользоваться вам поможет краткое руководство.

Один из основных разработчиков проекта написал свой собственный скрипт для создания символов: djboxsym.

Кроме того, существует утилита (ibs2symdef.py), позволяющая создавать файлы описаний символов (symdef) для работы с djboxsym из IBIS-моделей. Она распространяется в рамках проекта PyBIS: PyBIS wiki.

Посмотрите страницу geda:gschem symbol generators на предмет других доступных генераторов.

## Где можно найти информацию о формате файлов gschem?

В отличие от многих САПР электроники, разработчики gschem строго придерживаются удобочитаемого текстового формата. Он используется преднамеренно, для облегчения написания скриптов. К тому же он позволяет быстро править файлы в текстовом редакторе. Описание формата файлов gschem находится здесь.

## Почему символы такие большие?

В gschem нет ничего, что определяло бы абсолютный размер объектов. Единственной связью с реальными единицами измерения являются названия разных рамок основных надписей. По какой-то давно забытой причине в рамках основных надписей с названиями `title-A4.sym` или `title-B.sym` помещаются только относительно простые схемы из символов стандартной библиотеки. Если для более сложных схем вам нужно больше места, просто выберите символ рамки подходящего размера.

gschem масштабирует вывод печати таким образом, что всё содержимое растягивается на выбранный формат листа. Этот формат абсолютно независим от используемого в схеме символа рамки основной надписи. Поэтому нет нужды масштабировать сами символы, чтобы они поместились на конкретном формате. Многие при печати на A4 предпочитают использовать `title-A2.sym` или `title-A3.sym`. Кто-то использует символы основной надписи вообще без рамок и затем чертит прямоугольник подходящего размера (см., например, title-block.sym от Kai-Martin Knaak).

Но в некоторых случаях всё же хочется на самом деле изменить размер символов. Для этого есть несколько способов:

- DJ Delorie написал для проекта скрипт на Perl под названием scale-schematic, находящийся на его странице на сайте gedasymbols.org.
- Можно сделать и свою собственную библиотеку символов. Это не так уж и страшно, так как многие приходят к использованию в любом случае исключительно собственных символов.

# Конфигурирование/настройка gschem

Вариантов настройки gschem гораздо больше, чем может быть здесь рассмотрено. Поэтому, чтобы узнать, что можно изменить ещё, взгляните на `system-gschemrc`.

## Как сконфигурировать локальный файл gafrc, чтобы можно было найти каталог своих символов?

1. Создайте каталог проекта, например `${HOME}/myproj`.
2. Поместите нужные вам символы в `${HOME}/myproj/symbols`.
3. В `${HOME}/myproj` создайте файл `gafrc`.
4. Добавьте в `gafrc` строку:

        (component-library "./symbols")

5. Запустите gschem из каталога проекта. То есть для запуска gschem наберите следующее:

       cd ${HOME}/myproj
       gschem myschematic.sch

Главное, что следует помнить:

- Код Guile, обрабатывающий rc-файлы не понимает или не интерпретирует метасимволы и шаблоны оболочки, такие как «~» или «${HOME}». Он не считает, что «.» — это текущий каталог, и не понимает абсолютных путей доступа к файлам. Если вы хотите сделать что-то мудрёное, то для получения информации о каталогах можно попробовать использовать функции Scheme.
- Убедитесь, что `gafrc` находится в главном каталоге проекта.
- Запускайте все программы gEDA из главного каталога своего проекта.
- Запускайте программы из командной строки в оболочке терминала — не используйте никаких красивых, блестящих иконок для запуска gschem (если они у вас есть), так как вы не узнаете, в каком каталоге gschem запускается, а gschem может не найти `gafrc`.
- Самое главное здесь: запускать gschem из того же каталога, где лежит и `gafrc`.

## Как задать корневой каталог своей библиотеки?

Существует два подхода. Если вам нужно, чтобы каждая библиотека имела уникальное имя, абсолютно каждый из каталогов своих локальных библиотек нужно отдельно прописывать в файле `gafrc`. Но общую часть полного пути вовсе не обязательно повторять снова и снова. С помощью функции `build-path` путь можно формировать «на лету»:

    (define gedasymbols "/путь/к/локальной/библиотеке")
    (component-library (build-path gedasymbols "analog"))
    (component-library (build-path gedasymbols "block"))
    (component-library (build-path gedasymbols "connector"))

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

    (component-library-search "/каталог/с/моими_библиотеками_символов/" "library:")

## Можно ли в задании пути доступа к библиотеке использовать переменные окружения?

К переменной окружения ENV внутри предложений Scheme в `gafrc` можно обратиться с помощью `getenv "ENV"`:

    ; Определение пути доступа к локальному репозиторию символов:
    (define symbolspath (build-path (getenv "HOME") "geda" "symbols"))
    ; Подключение с его помощью конкретной библиотеки:
    (component-library (build-path symbolspath "analog"))

Альтернативный синтаксис — `${ENV}`:

    (component-library "${HOME}/geda/symbols/analog")

## Как сделать так, чтобы название библиотеки отличалось от имени её каталога?

Добавьте третий аргумент в предложение `component-library` в `gafrc`, то есть:

    (component-library "/home/comp/sch_symbols/AutoGen/Panasonic/0603/1P" "Panasonic 0603 1P")

## Можно ли в библиотеке хранить часто необходимые части схем?

Да, благодаря тому, что символы могут содержать вложенные символы и соединения.

1. Скопируйте часть схемы на новый лист (так как рамка основной надписи вам не понадобится, разблокируйте её и удалите).
2. Позиционные обозначения должны заканчиваться на «?», чтобы потом их можно было пронумеровать автоматически.
3. Переместите эту часть схемы в нижний левый угол доступного для чертежа пространства (можно с помощью Правка → Смещение символа… [Edit → Symbol Translate…]).
4. Сохраните полученную схему как символ (с расширением `.sym`) в свою локальную библиотеку.
5. В рабочей схеме откройте окно выбора компонентов и перед вставкой этого составного символа снизу в выпадающем списке выберите Вставить как отдельные объекты [Include component as individual objects]. Содержимое символа будет полностью вставлено на лист. Не забудьте потом снова установить режим по умолчанию для вставки обычных символов.

## Библиотека завалена символами стандартной библиотеки. Можно ли ограничиться только своими локальными библиотеками?

Добавьте в `gafrc` следующие строки, заменив каталоги на свои:

    ; очистить переменную, содержащую пути к библиотекам,
    ; и добавить в неё локальные каталоги:
    (reset-component-library)
    (component-library "/foo/localgedalib1")
    (component-library "/bar/foo/localgedalib2")

Можно либо добавить каталоги для всех локальных библиотек отдельно, или добавить целое дерево пути с подкаталогами. См. выше о том, как это сделать. Весьма неплохо поместить этот `gafrc` в каталог своего проекта. Таким образом при запуске gschem из какого-то другого каталога символы стандартной библиотеки всё равно будут появляться. Также это даёт возможность настройки библиотек специальных символов для особых проектов.

## Что надо сделать, чтобы по умолчанию устанавливался другой размер текста?

Добавьте в свой `gschemrc`

    (text-size 10)

Вместо “10” подставьте нужный размер.

## Скажите, пожалуйста, можно ли настроить светлый цвет фона?

В файл `gschemrc`, находящийся в том месте, где gschem при запуске ищет свои настройки, добавьте такую строку:

    (load (build-path geda-rc-path "gschem-colormap-lightbg"))

## Как подстроить цвета в gschem?

В настоящее время графического интерфейса для интерактивной корректировки цветов в gschem нет. Но их можно поправить в rc-файле.

1. Скопируйте файл `gschem-colormap-lightbg` или `gschem-colormap-darkbg` в `$HOME/.gEDA/mycolors`.
2. Отредактируйте по вкусу цвета в `.gEDA/mycolors`.
3. Добавьте в `gschemrc` строку:

    (load (build-path (getenv "HOME") ".gEDA" "mycolors"))

## Каждый раз при запуске gschem появляется окно журнала. Можно ли его отключить?

В файле `system-gschemrc` вы найдёте следующий раздел:

    ; log-window string
    ;
    ; Controls if the log message window is mapped when gschem is started up
    ; Possible options:
    ;       startup - opened up when gschem starts
    ;       later   - NOT opened up when gschem starts
    ;                 (can be opened by Options/Show Log Window)
    ;
    (log-window "startup")
    ;(log-window "later")

Закомментируйте строку `startup` (с помощью символа «;») и раскомментируйте строку `later`, или добавьте в свой `gschemrc` следующую строку:

    (log-window "later")

Если вы хотите, чтобы вместо окна журнала сообщения выводились на стандартный вывод (stdout), добавьте в свой `gschemrc` такую строку:

    (logging-destination "tty")

## Есть ли способ запретить журналирование в $HOME/.gEDA/logs/?

Добавьте в свой `gschemrc` строку:

    (logging "disabled")

## Можно ли сделать так, чтобы для новых схем устанавливалась моя собственная рамка основной надписи?

Добавьте следующую строку в свой `gschemrc`:

    (define default-titleblock "title-A3.sym")

Замените `title-A3.sym` именем файла символа предпочитаемой рамки.

# Печать/вывод

## Как напечатать схемы из командной строки?

Файл в формате PostScript или PDF для своей схемы можно получить с помощью команды gaf export.

PDF-файл из файла схемы создаётся следующей командой (замените в ней MY_SCH именем файла своей схемы):

    gaf export -o MY_SCH.pdf MY_SCH.sch

Приведённый ниже `bash`-скрипт, который я назвал gschem-print, создаст для каждого из заданных в командной строке файлов схем Postscript-файл, а затем распечатает его на используемом по умолчанию принтере:

    #!/bin/bash

    # 'gaf export' options
    # -oPS_FILENAME output to Postscript file PS_FILENAME

    for name in $*
    do
        base="${name%.*}"
        gaf export --output=$base.ps -- $base.sch
        lpr -P$PRINTER $base.ps
    done

Размер бумаги можно настроить с помощью ключа `-p`. Для установки размера бумаги в A4 используется команда вида:

    gaf export --paper=iso_a4 -o MY_SCH.pdf MY_SCH.sch

Чтобы задать “US Letter” как предпочтительный размер бумаги для всех открываемых схем, выполните:

    gaf config --user export paper na_letter

## Как вывести PDF/PNG в цвете?

Отредактируйте файл `system-gschemrc` или добавьте в `gschemrc` одну из следующих строк (то есть в `~/.gEDA/gschemrc` или в `gschemrc` в том каталоге, из которого вы запускаете gschem).

    (print-color "enabled")      ; для вывода цветных PDF
    (image-color "enabled")      ; для вывода цветных PNG (включено по умолчанию)

## Как вывести чёрно-белые Postscript/PNG?

Для вывода чёрно-белого Postscript добавьте в `gschemrc` следующее:

    (output-color "disabled")     ; монохромный Postscript (включено по умолчанию)

Для вывода чёрно-белых PNG добавьте в `gschemrc` следующее:

    (image-color "disabled")      ; монохромные PNG

## Как сделать PDF?

Выберите в меню Файл→Сохранить изображение… [File→Write image…]. Откроется окно записи изображения. Там можно выбрать экспорт в PDF.

Или просто запустите:

    gaf export --output=foo.pdf bar.sch

## Как вставить схемы в LaTeX-документ?

При обычном использовании команды latex вам понадобится файл в формате EPS (Encapsulated PostScript). Для pdflatex вам будет нужен файл в формате PDF. Для создания соответствующего файла нужно выполнить:

    gaf export --size=auto --output=foo.eps foo.sch

или:

    gaf export --size=auto --output=foo.pdf foo.sch

В преамбулу своего LaTeX-документа нужно добавить `\usepackage{graphicx}`. Вставка схемы в документ осуществляется командой `\includegraphics`.

Простой пример:

    \documentclass{article}
    \usepackage{graphicx}
    \begin{document}
      \begin{figure}
      \includegraphics[width=100mm]{foo}
      \end{figure}
    \end{document}

## Как разбить лист схемы в формате Postscript на несколько страниц?

Сама программа gschem такой функциональности не предоставляет, но есть программа poster, которая как раз это и делает. Её можно загрузить отсюда (GNU) или отсюда (KDE Print).

# Проблемы установки/работы gschem

## После установки gschem не работает!? Что может быть не так?

Если вы запускаете gschem и получаете окно без панели меню, без цветов, и при нажатии клавиши программа завершается со следующим сообщением:

    ERROR: Unbound variable: current-keymap

или появляется ошибка такого вида:

    Gtk-CRITICAL : file gtkpixmap.c: line 97 (gtk_pixmap_new): assertion `val != NULL' failed.
    Gtk-CRITICAL : file gtkpixmap.c: line 97 (gtk_pixmap_new): assertion `val != NULL' failed.
    Tried to get an invalid color: 0
    Tried to get an invalid color: 7
    Tried to get an invalid color: 0
    Tried to get an invalid color: 7

то gschem не находит какого-то rc-файла. Есть два необходимых rc-файла. Первый — это `system-gschemrc`, второй — `system-gafrc`.

- rc-файл `system-gschemrc` должен устанавливаться при установке gschem и обычно находится в `${prefix}/share/gEDA/system-gschemrc`. `${prefix}` — это каталог установки gEDA (обычно `/usr`, `/usr/local` или `$HOME/geda`). Этот файл может быть также установлен в `/etc/gEDA` (так делается в пакетах `.deb`).
- rc-файл `system-gafrc` должен устанавливаться при установке общей библиотеки gEDA/gaf libgeda. Он находится в `${prefix}/share/gEDA/system-gafrc`. Этот файл может устанавливаться также в `/etc/gEDA` (так делается в пакетах `.deb`). Непосредственно программой gschem этот файл не загружается.

Удостоверьтесь, что эти файлы установлены. Файл `gschem.log` (создаваемый при каждом запуске gschem) содержит полезную отладочную информацию, которая должна помочь вам определить, что идёт не так. Проверьте этот файл на предмет того, где gschem ищет свои rc-файлы.

Кроме того, в некоторых более старых версиях gEDA/gaf было несколько ошибок, возникавших при установке rc-файлов в другие места (другие, нежели `${prefix}/share/gEDA`), так что произведите обновление до более свежей версии.

## «Добавить Компонент» не предлагает символов! Что с этим делать?

Убедитесь, что по крайней мере в одном из файлов конфигурации у вас указан действительный путь доступа к библиотеке символов. При запуске gschem проверяет следующие файлы конфигурации (в системе Debian):

1. системный файл `gafrc` дистрибутива: `/etc/gEDA/system-gafrc` (будет перезаписан при обновлении)
2. локальный системный файл `gafrc`: `/usr/share/gEDA/gafrc.d/gafrc` (для версий gEDA после лета 2009 г.)
3. пользовательский файл `gafrc`: `~/.gEDA/gafrc`
4. локальный файл `gafrc`: `$PWD/gafrc`
5. системный файл `gschemrc`: `/etc/gEDA/system-gschemrc`
6. пользовательский файл `gschemrc`: `~/.gEDA/gschemrc`
7. локальный файл `gschemrc`: `$PWD/gschemrc`

Все эти файлы конфигурации могут добавлять или не добавлять пути к списку поиска библиотек. Если конфигурационный файл содержит команду:

    (reset-component-library)

пути поиска библиотек будут очищены. Порядок, само собой, важен, так как эта команда удалит все пути, заданные до её вызова.

## Я использую gschem/gaf через SSH-соединение и получаю ошибку:'Xlib: extension "RENDER" missing on display "localhost:10.0".'

Если вы зайдёте на удалённую машину, сделав:

    $ ssh -X имя_пользователя@удалённая_машина

и после этого получите указанное сообщение от Xlib RENDER, то попробуйте использовать:

    $ ssh -Y имя_пользователя@удалённая_машина

Последняя команда разрешает надёжный X11-форвардинг.