Aus ästhetischen Gründen möchte ich für den Vektor Pfeil einen eigenen Font verwenden. Wenn ich diesen Font in einem Beispiel LYX-Dokument verwende erhalte ich jedoch folgenden Fehler:

Open in Online-Editor
! Font U/jksymbols/m/n/10=jksymbols10 at 10.0pt not loadable: Metric (TFM) file
 not found.
<to be read again> 
                   relax 
l.23 Original:$\myvec
                   {A}\myvec{e}_{1}^{\prime}\dot{\myvec{e}}_{2}^{\prime}$
I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

Interessant ist: Wenn ich das LYX Dokument nach PDFLATEX exportiere, dann mit texworks öffne und mit pdflatex übersetze, erhalte ich ein PDF. Es geht also prinzipiell. Wie kann ich nun ohne diesen Umweg LYX dazu bringen meinen Font zu finden und zu laden.

Hier alle Details für den Repro: (Alle Dateien befinden sich übrigens im selben Verzeichnis)

Mein Font befindet sich in den beiden Dateien

jksymbols.mf

Open in Online-Editor
mode_setup;
define_pixels(em,cap,sb);
define_corrected_pixels(o);
beginchar("A",1/2em#,cap#,1pt#); "A vector";
    pickup pencircle scaled 1/2pt;

    z1=(sb-o,1/2h+1sb);
    z2=(w-4sb+o,1/2h+1sb);
    z3=(w-6sb+o,1/2h+4sb);
    z4=(w-8sb+o,1/2h-2sb);

    draw z1--z2;
    draw z3--z2--z4;

    makegrid(0,sb,w/2,w-sb)(0,-1pt,y2,h);
    penlabels(1,2);
endchar;
end

jksymbols10.mf

Open in Online-Editor
font_identifier := "JKSymbols10";
font_size 10.0pt#;
em# := 10pt#;
cap# := 2.5pt#;
sb# := 1/4pt#;
o# := 1/16pt#;
input jksymbols

Die tfm Datei erzeuge ich daraus durch folgende Aufrufe (Was ich eintippe ist fett):

mf jksymbols10.mf

gftodvi jksymbols10.2602gf

tex testfont

name of the font to test = jksymbols10

*bye

Das funktionierende LATEX Dokument

test.tex

Open in Online-Editor
%% LyX 2.1.3 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[10pt]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{amsmath}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.

\usepackage{mathptmx}

\DeclareFontFamily{U}{jksymbols}{}
\DeclareFontShape{U}{jksymbols}{m}{n}{<->jksymbols10}{}
\DeclareSymbolFont{myletters}{U}{jksymbols}{m}{n}
\DeclareMathAccent{\myvec}{\mathord}{myletters}{"41}

\makeatother

\begin{document}
Original: $\vec{A}\vec{e}_{1}^{\prime}\dot{\vec{e}}_{2}^{\prime}$

MeineVersion: $\myvec{A}\myvec{e}_{1}^{\prime}\dot{\myvec{e}}_{2}^{\prime}$
\end{document}

Das LYX Document

Test.lyx

Open in Online-Editor
#LyX 2.1 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass scrbook
\begin_preamble

\usepackage{mathptmx}

\DeclareFontFamily{U}{jksymbols}{}
\DeclareFontShape{U}{jksymbols}{m}{n}{<->jksymbols10}{}
\DeclareSymbolFont{myletters}{U}{jksymbols}{m}{n}
\DeclareMathAccent{\myvec}{\mathord}{myletters}{"41}
\end_preamble
\use_default_options true
\maintain_unincluded_children false
\language ngerman
\language_package none
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize 10
\spacing single
\use_hyperref false
\pdf_title "Template"
\pdf_bookmarks true
\pdf_bookmarksnumbered true
\pdf_bookmarksopen true
\pdf_bookmarksopenlevel 1
\pdf_breaklinks false
\pdf_pdfborder false
\pdf_colorlinks true
\pdf_backref false
\pdf_pdfusetitle true
\pdf_quoted_options "linkcolor=red, citecolor=black, urlcolor=blue, filecolor=blue,  pdfpagelayout=OneColumn, pdfnewwindow=true,  pdfstartview=XYZ, plainpages=false, pdfpagelabels"
\papersize default
\use_geometry false
\use_package amsmath 2
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 1
\use_package mathtools 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 1
\index Index
\shortcut idx
\color #008000
\end_index
\leftmargin 2cm
\rightmargin 4.5cm
\secnumdepth 2
\tocdepth 2
\paragraph_separation indent
\paragraph_indentation default
\quotes_language german
\papercolumns 1
\papersides 2
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard
Original:
\begin_inset Formula $\vec{A}\vec{e}_{1}^{\prime}\dot{\vec{e}}_{2}^{\prime}$
\end_inset

\end_layout

\begin_layout Standard
Meine Version:
\begin_inset Formula $\myvec{A}\myvec{e}_{1}^{\prime}\dot{\myvec{e}}_{2}^{\prime}$
\end_inset

\end_layout

\end_body
\end_document

gefragt 21 Sep '16, 13:53

Joker's gravatar image

Joker
3123
Akzeptiert-Rate: 0%

Wenn ich raten soll: Ich nehme mal an, du hast deine Schrift im Dokumentenordner. Für pdflatex ist das fein, aber Lyx kopiert das Dokument in einen temporären Ordner und kompiliert dort und dann ist die Schrift nicht da. Du solltest die Schrift daher korrekt in einem lokalen texmf-Baum installieren.

(21 Sep '16, 17:46) Ulrike Fischer

Hallo Ulrike, wie funktioniert 'korrekt installieren'? Was ich vor meiner Anfrage schon probiert hatte, war das Kopieren meiner beiden .mf Dateien, der .tfm Datei und der .xxxpk Dateien nach /usr/share/texlive/texmf-dist/fonts/tfm und ....fonts/tfm/public Das hat aber auch nicht geholfen. Wo sucht LATEX nach tfm files oder wie bringe ich LATEX dazu an einer bestimmten Stelle zu suchen?

(22 Sep '16, 11:09) Joker

Nachdem du die Dateien kopiert hast, musst du noch ein texhash ausführen, damit die TeX-interne Datei-Datenbank aktualisiert wird. Dann kannst du mit kpsewhich jksymbols10.mf testen, ob sie gefunden wird.

(22 Sep '16, 11:26) crazyhorse

/usr/share/texlive/texmf-dist ist dafür der falsche TEXMF-Baum. Siehe dazu Wie kann ich Klassen oder Pakete verwenden, die nur als einzelne Datei bereitgestellt werden?.

(22 Sep '16, 12:58) saputello

Vielen Dank für die hilfreichen Kommentare von Ulrike und 'crazyhorse'. Ich fasse das alles mal zu einer Antwort zusammen.

TEX/LATEX sucht die benötigten Dateien im aktuellen Arbeitsverzeichnis und in seinem Verzeichnisbaum. Dort müsen sie allerdings vorher registriert sein. Wie Ulrike richtig angemerkt hat verwendet LYX als Arbeitsverzeichnis irgendein temporäres Verzeichnis, so dass man die mf und tfm Dateien dort nicht vorher hinstellen kann. Beim direkten pdflatex Aufruf über texworks funktioniert es hingegen, denn dann ist das Arbeitsverzeichnis identisch mit dem aktuellen Verzeichnis und da habe ich ja alle Dateien stehen. Das Kopieren der mf und tfm Dateien nach /usr/share/texlive/texmf-dist/fonts/tfm/public war zwar schon besser, aber dann hätte ich dieses Verzeichnis nach dem Hinweis von 'crazyhorse' mit texhash bzw. mktexlsr noch registrieren müssen. Mit diesen Hinweisen und weiterer Internet Recherche bin ich jetzt zu folgender allgemeiner Arbeitsanweisung gekommen.

1) Ermitteln des texmf-local Verzeichnisses der verwendeten TEX Distribution

Für TEXLIVE:

kpsewhich --var-value TEXMFLOCAL

Ergab bei mir /usr/local/share/texmf

Für MIKTEX siehe https://www.tug.org/fonts/fontinstall.html

2) Im ermittelten Verzeichnis das Verzeichnis fonts anlegen. Darunter tfm/public anlegen und das/die tfm Dateien dorthin kopieren sowie unter fonts auch source/public anlegen und das/die mf Dateien dorthin kopieren. Anschließend den gesamten erzeugten Verzeichnisbaum mit

chmod -R 777 /usr/local/share/texmf

beschreibbar machen. (Ansonsten hat sich bei mir mktexlsr beschwert.) Der erzeugte Baum sieht bei mir z.B. so aus:

/usr/local/share/texmf

/usr/local/share/texmf/fonts

/usr/local/share/texmf/fonts/tfm/

/usr/local/share/texmf/fonts/tfm/public/

/usr/local/share/texmf/fonts/tfm/public/jksymbols10.tfm

/usr/local/share/texmf/fonts/source

/usr/local/share/texmf/fonts/source/public/

/usr/local/share/texmf/fonts/source/public/jksymbols.mf

/usr/local/share/texmf/fonts/source/public/jksymbols10.mf

3) Aufrufen von mktexlsr (oder texhash)

Danach konnte ich mein LYX Test-Dokument übersetzen. Für MIKTEX muss man dann analog laut der Beschreibung in https://www.tug.org/fonts/fontinstall.html vorgehen.

Permanenter link

beantwortet 22 Sep '16, 13:01

Joker's gravatar image

Joker
3123
Akzeptiert-Rate: 0%

bearbeitet 26 Sep '16, 18:02

Im Verzeichnisbaum fehlte das fonts Verzeichnis. Ich habe es eingefügt.

(26 Sep '16, 18:04) Joker
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×48
×15

gestellte Frage: 21 Sep '16, 13:53

Frage wurde gesehen: 6,514 Mal

zuletzt geändert: 26 Sep '16, 18:04