Невозможно отобразить символы Unicode (например, λ) в PDF-файле Jupyter

Я использую Юлию в jupyter notebook.

Я хочу сгенерировать pdf-файл с результатами моей работы. Однако при создании PDF-файла λ математического выражения λ=3 теряется, поэтому в PDF-формате выводится =3.

Вот код записной книжки jupyter

In[1]: λ=3 
Out[1]: 3

Вот PDF-файл, созданный с помощью записной книжки jupyter

In[1]: =3 
Out[1]: 3

Это не относится к pdf, созданному с помощью nteract, где выражение λ=3 полностью распечатано. Однако общий вид PDF-файла, созданного с помощью nteract, не так хорош, как PDF-файл, созданный с помощью jupyter notebook.

Вот распечатанный PDF-файл, созданный с помощью nteract (выглядит точно так же, как и сам код):

In[1]: λ=3
Out[1]: 3

Может кто-нибудь знает, как напечатать такой символ с помощью jupyter notebook?

Спасибо заранее


person ecjb    schedule 30.03.2018    source источник
comment
Некоторый минимальный код для воспроизведения может помочь.   -  person Jongware    schedule 31.03.2018
comment
Я попробовал принятый ответ, к сожалению, у меня это не сработало. Затем я нашел способ как бы обойти эту проблему, используя $\lambda$ такую ​​нотацию, к счастью, у меня это сработало. Короче говоря, не используйте буквы юникода, а используйте латексный синтаксис для генерации греческих букв.   -  person Timeless    schedule 21.10.2020


Ответы (1)


Проблема связана с тем, как сам Jupyter генерирует и компилирует файл latex. Jupyter по умолчанию компилирует файл с xelatex для поддержки Unicode. Я предполагаю, однако, что xelatex требует некоторых конфигураций в файлах, и Jupyter не создает файл, который работает "из коробки" с помощью простой команды xelatex.

Вы можете изменить конфигурацию Jupyter для компиляции файла латекса, созданного с помощью команды pdflatex или latex.

Решение. Найдите свой каталог конфигурации Jupyter (т.е. вывод jupyter --config-dir, в Linux обычно ~/.jupyter. Чтобы узнать, какой jupyter использует IJulia, запустите using IJulia; IJulia.jupyter, затем найдите каталог конфигурации этого jupyter)

Создайте файл jupyter_notebook_config.py в этом каталоге, если его еще нет.

Поместите следующую строку кода в конец этого файла и сохраните ее:

c.PDFExporter.latex_command = ['pdflatex', '{filename}']

Затем вы можете экспортировать PDF-файл с помощью записной книжки, как обычно. Персонажи должны появиться, в самый раз. Это должно работать при условии, что команда pdflatex находится в вашей оболочке.

Если у вас нет pdflatex, но есть latex, вы также можете использовать следующую строку вместо приведенного выше кода:

c.PDFExporter.latex_command = ['latex', '--output-format=pdf', '{filename}']

Если вы не можете изменить конфигурацию Jupyter, загрузите файл latex и скомпилируйте его с помощью команды latex --output-format=pdf filename.tex.

Надеюсь, что это работает!

person hckr    schedule 30.03.2018
comment
К сожалению, это не сработало для меня, я получаю такие ошибки, как! Ошибка пакета ucs: неизвестный символ Unicode 12479 = U + 30BF, - person minexew; 25.07.2018
comment
['pdflatex', '{имя файла}'] - person minexew; 30.07.2018
comment
Проблема может быть связана с вашим дистрибутивом Latex. Не могли бы вы попробовать pdflatex с латексной копией записной книжки (скачать как * .tex)? - person hckr; 30.07.2018