Доступны ли символы ∈ и ℝ в eqn/roff?

Используйтеmv:

file='WDMyCloud_plexmediaserver_1.16.1.1291.bin(07082019)'
mv "$file" "${file%.bin*}.bin"

Используйте prenameилиfile-rename(в Debian/Ubuntu, также известный как простоrename):

prename -n 's/\.bin.*$/.bin/' WDMyCloud_plexmediaserver_1.16.1.1291.bin\(07082019\)

Удалите -n, чтобы выполнить переименование.

9
06.05.2021, 14:12
3 ответа

Если вы хотите увидеть символ Юникода, такой как U+211D, в groff, вам нужно найти шрифт, который его содержит, и предоставить файл метрик шрифта для groff, обычно путем преобразования файла ttf в pfa и добавления его в список.

Один из сайтов, который выполняет поиск -некоторых распространенных шрифтов, — это fileformat.info , который показывает, что большинство DejaVuшрифтов содержат этот символ, например DejaVu Serif. В Fedora этот шрифт ttf можно установить из пакета dejavu-sans-fonts, поэтому я предполагаю, что FreeBSD может иметь что-то подобное. (Если нет, попробуйте один из других подходящих шрифтов ).

В качестве альтернативы, если у вас есть команда fc-match, вы можете найти уже имеющиеся у вас файлы шрифтов с символом:

fc-match -s -f '%{file}\n' ':charset=211D'

Вам нужно выбрать файлы TrueType (с обычным суффиксом.ttf)из этого списка.

В качестве альтернативы,если у вас есть команды fc-listи ttx, вы можете выполнить медленный поиск по шрифтам ttf имени персонажа с помощью:

fc-list | 
sed -n 's/\.ttf:.*/.ttf/p' |
xargs -l -t ttx -t cmap -o - 2>&1 |
grep  'ttx\|DOUBLE-STRUCK CAPITAL R'

Если он находит глиф, он выводит имя файла и совпадение, например:

ttx -t cmap -o - /usr/share/fonts/dejavu/DejaVuSansMono.ttf 
      <map code="0x211d" name="uni211D"/><!-- DOUBLE-STRUCK CAPITAL R -->

Затем вы можете прочитать объяснение Питера Шаффтера о добавлении шрифтов в groff . Хотя это написано для макросов mom, это применимо к groff в целом, хотя ваши макросы могут не обрабатывать семейство автоматически. Он удобно предоставляет сценарий оболочки , который сделает всю работу за вас. Может потребоваться некоторая настройка, так как каждый дистрибутив любит размещать файлы в разных местах.

Затем вы можете добавить следующее в свой eqnrc, например:

define @R '"\f[DejaVuR]\[u211D]\fR"'

Следующие шрифты не нужны:

define in '{type "relation" size +3 \[mo]}'
8
28.07.2021, 11:34

Набор именованных глифов задокументирован наgroff_charсправочной странице . Я вижу \[mo]для ∈, но не ℝ.

Вы можете вводить произвольные символы с помощью [uNNNN], где NNNN— шестнадцатеричные цифры, поэтому \[u211D]для ℝ. Вы также можете использовать ввод UTF -8, т.е. вставить ℝ напрямую. Вы можете определить имя для него с помощью запроса.char:

.char \[Real] \[u211D]

Мой ответ касается исключительно того, как вы вводите символы. Я не знаю, покрывают ли шрифты, которые использует Грофф, эти символы, или как научить его использовать альтернативные шрифты, если они этого не делают.

7
28.07.2021, 11:34

Вот как можно создать перечеркнутую букву R в базовом troff/groff, а также в eqn.

Вы можете использовать команду \htroff для локального горизонтального перемещения назад от 0.83m, что составляет часть ширины em .em — это условная единица набора текста, равная ширине символа mв шрифте. Таким образом, у нас может быть перечеркнутая буква R другой буквой R:

The R\h'-.83m'R space 1.

Чтобы сделать это более читабельным, вы можете определить строку(.ds)с именем myrealс этой последовательностью и создать ее экземпляр с помощью\*[myreal]:

.ds myreal R\h'-.83m'R
The \*[myreal] space 2.

В eqnвы можете выполнить горизонтальное перемещение с помощью back 50для перемещения влево на 50/100 от em , поэтому нам нужно R back 50 R, но вы также хотите использовать латинский шрифт, поэтому было бы лучше определить макросmyreal:

.EQ
define myreal 'roman { R back 50 R }'
delim $$
.EN

, а затем используйте его. Также определяя встроенные разделители $и$(start и end ), вы можете вызывать макрос в тексте, а также в уравнении:

Given an input in subspace $myreal$:
.EQ
x \[mo] myreal sup 2
.EN

enter image description here


Но после всего этого я обнаружил, что eqn предоставляет команду fatдля перечеркивания со смещением. В зависимости от размера шрифта вам может понадобиться поиграть с параметром fat_offset(, который измеряется в ems/100 ). Поэтому для моего примера выше вы также можете использовать

.EQ
set fat_offset 15
x \[mo] fat roman R sup 2
.EN
2
28.07.2021, 11:34

Теги

Похожие вопросы