Hallo! In den fd-Dateien unter C:\texlive steht (vgl. fntguide) jeweils ein Aufruf

Open in writeLaTeX
\DeclareFontShape {<encoding>} {<family>} {<series>} {<shape>}
{...} {...}

anhand dieser Informationen ließe sich durch den Befehl

Open in writeLaTeX
%\usefont {<encoding>} {<family>} {<series>} {<shape>}

% Zum Beispiel:
\usefont {T1} {fco} {m} {it}

eine neue Schrift auswählen.

Hier hat ein Nutzer einen Suchbefehl

Open in writeLaTeX
find /usr/share/texmf* -name "*.fd" -exec \
sed -n '/#/ !s!.*\DeclareFontShape{\([^}]*\)}{\([^}]*\)}'\
'{\([^}]*\)}{\([^}]*\)}.*!\1\t\2\t\3\t\4\t'{}'!p' {} \; |
sort -f -k2,2 -k1 | uniq

dafür angegeben, der eine Liste des Typs

Open in writeLaTeX
OML aer bx it /usr/share/texmf-dist/tex/latex/ae/omlaer.fd
OML aer bx n /usr/share/texmf-dist/tex/latex/ae/omlaer.fd
OML aer bx sc /usr/share/texmf-dist/tex/latex/ae/omlaer.fd

ausgibt.

Hierzu die Fragen:

  • Wie kann ich diese Suche bzw. dieses Suchergebnis im Dokument erzeugen?
  • Wie kann ich daraus eine optische Übersicht herstellen?

Zwei Bemerkungen: (i) Der Suchbefehl ist für Linux; weiß jmd. evtl. wie man das auch für Windows machen könnte? (ii) Das Minimalbeispiel unten ist ggf. nicht gut, bei einer Matheschrift (letztes Beispiel) liefert es kuriose Ergebnisse, vll. weiß jmd., wie man das besser machen könnte.

Open in writeLaTeX
\documentclass[12pt]{article}
\parindent0pt
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}

\newcommand{\ABC}{%
ABCDEFGHIJKLMNOPQURSTUVWYZ Ä Ö Ü \par
           abcdefghijklmnopqrstuvwxyz ä ö ü ß\par
           0123456789\par
 .,:;-!" '\$\%\&/@\_\S\#\textasciitilde\textbackslash\textless\textgreater[]\{\}() 
}

%\usefont {encoding} {family} {series} {shape}
%Beispiele für family:
%lmssq ffm fvm fau fco fau lmtt ppl bch
\begin{document}

\verb+\usefont {T1} {fco} {m} {n}+ \\
\usefont {T1} {fco} {m} {it}
\ABC \\

\verb+\usefont {T1} {fco} {m} {it}+ \\
\usefont {T1} {fco} {m} {it}
\ABC  \\

\verb+\usefont {U} {msb} {m} {n}+ \\
\usefont {U} {msb} {m} {n}
\ABC \\

\end{document}

alt text

Danke fürs Lesen und das Interesse!

gefragt 16 Jun '14, 21:19

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

bearbeitet 20 Aug '14, 14:07

cgnieder's gravatar image

cgnieder
22.1k243463

Ich weiß halt nicht, wie ich auf diese Listendaten

OML aer bx it

OML aer bx n

...

zugreifen kann :(

(17 Jun '14, 17:09) cis

Man könnte vll. auch mit Cygwin arbeiten, wenn solche komplizierten Suchen in Windows nicht möglich sind - für Linux scheint die Suche ja gelöst zu sein.

(18 Jun '14, 00:40) cis

@cis: Wenn Du die Ausgabe von find ein eine Datei schreiben lässt, kannst Du diese mit datatool verarbeiten. Statt find könnte man auch gleich ein perl-Skript schreiben, das die Suche erledigt, und eine entsprechende LaTeX-Datei erzeugt. Das sollte dann auch unter Windows funktionieren (wenn man perl installiert hat, was immer zu empfehlen ist). BTW: Warum verwendest Du den Font im T1- oder U-Encoding, wenn die fd-Datei ein anderes Encoding enthält? Die Ausgabe würde ich übrigens als Tabelle über die \char-Codes machen (siehe encguide).

(18 Jun '14, 08:49) gast3

Das mit datatool klingt nach einem guten Tip. Da ist aber evtl. erstmal das Problem: "Windows, Linux oder nicht usw." Ich versuche das gerade mit cygwin. Statt Perl hoffe ich eher auch arara, weil ich das eher verstehe und weils gut ist (und man ggf. kein Perl braucht, auch wenns sich's sicher lohnt) ;)

PS: Ah, jetzt weiß ich, was Du meinst, mit dem char-Code. Ja, muß ich mal da suchen. €dit: Aja, alles klar! Gute Idee!

(18 Jun '14, 10:33) cis

@Ijon Tichy: "perl-Skript" - Ich glaube, das ist hier so ziemlich die letzte Hoffnung. Aber wenn Du sowas schreiben kannst, ich kann's nicht :|

(25 Jun '14, 09:24) cis
1

@cis: Wäre es nicht viel einfacher, luaLaTeX oder XeLaTeX zu verwenden und sich einfach anzuschauen, was an Systemfonts installiert ist? Dazu bringen die meisten Systeme eigene recht komfortable Werkzeuge mit oder man verwendet einschlägige Tools wie den Windows Fonts Viewer.

(25 Jun '14, 12:47) gast3

Mhh, Systemfonts sind die Fonts, die ich unter C:\windows\fonts habe? Ja, die sind ja bekannt und eine Art Übersicht hat man dazu direkt in dem Ordner. Nö, ich will ja die Fonts, die mir TeXLive liefert.

(25 Jun '14, 13:46) cis

@cis: Was ich bisher ganz vergaß: Für die Fonts in TeX Live gibt es auch den fontsampler. Ich glaube aber nicht, dass der noch aktuell ist.

(20 Aug '14, 14:01) gast3
Ergebnis 5 von 8 show 3 more comments

Ich kann mal zeigen, was ich bis jetzt habe:

Zunächst habe ich eine arara-Regel geschrieben:

Open in writeLaTeX
!config
# FontLister rule for arara
# version: 0.1
# requires arara 3.0+
identifier: fontlister
name: FontLister
command: <arara> @{program} @{search}
arguments:
- identifier: program
  flag: <arara> @{parameters.program}
  default: C:\texlive\Cygwin\bin\bash.exe
- identifier: search
  flag: <arara> @{parameters.search}
  default: -c "/bin/find /cygdrive/c/texlive -name '*.fd' -exec /bin/sed -n '/#/ !s!.*\DeclareFontShape{\([^}]*\)}{\([^}]*\)}{\([^}]*\)}{\([^}]*\)}.*!\1;\2;\3;\4;'{}'!p' {} \; | /bin/sort -f -k2,2 -k1 | /bin/uniq > @{getBasename(file)}.csv"

Mit %arara: fontlister erzeugt diese dann eine Datei jobname.csv mit dem Inhalt

Open in writeLaTeX
L7x;uzc;b;it;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/lithuanian/l7xuzc.fd
LAE;aealbattar;bx;n;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/arabi/laeaealbattar.fd
LAE;aealbattar;m;n;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/arabi/laeaealbattar.fd
LAE;asv;bx;n;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/arabi/laeasv.fd
LAE;asv;m;n;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/arabi/laeasv.fd
LAE;cmr;b;n;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/arabi/laecmr.fd
LAE;cmr;bx;it;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/arabi/laecmr.fd

*Hinweis: Mit diesem willkürlichen Auszug funktioniert der Code unten auf jeden Fall.*

Und dann verwende ich ein Dokument, was diese Daten einliest. Ich habe dabei einmal angefangen, auzuschließen, was nicht ging (Kodierungen, Familien). Abgesehen davon, daß das so eine ziemliche Sisyphusarbeit ist das so nicht gut: Z.B. die Family cmr mußte bei der Kodierung LAE ausgeschlossen werden, bei anderen Kodierungen dürfte cmr aber tun.

Kurz: Verbesserungsvorschläge wären wünschenswert. Gerne auch in Form einer Überarbeitungsantwort - ich kann dann diese AW wieder löschen.

Open in writeLaTeX
%Möglichst nur einmal laufen lassen! ====
% arara: fontlister     
%============================

%arara: pdflatex    
\documentclass[12pt, numbers=enddot]{scrartcl}
\usepackage[utf8]{inputenc}
 \usepackage{selinput}
 \SelectInputMappings{adieresis={ä},  germandbls={ß}}
\usepackage[
LAE,  
B1, BCG, BCQ, IL2, L7X, T1, LBL, LBM, LBS, LCY, LCYW, LFE, LG, LGI,
LGR, LMC,  LSI, LTH, LTW, LY1, OML, OMS, OT1, OT2, OT4, QX,
T1, T2A, T2B, T2C, T3, T5, TS1, X2, 
]{fontenc}
%\usepackage[utf8]{inputenx}
%
\usepackage[ngerman]{babel}

\usepackage{datatool}
\usepackage{xcolor}
%\usepackage{hyperref}

%Überschriften
\setkomafont{disposition}{\normalcolor\usefont{T1}{lmtt}{\bfdefault}{n}}%\bfseries\ttfamily

\newcommand{\ABC}{%
ABCDEFGHIJKLMNOPQURSTUVWYZ Ä Ö Ü \par
           abcdefghijklmnopqrstuvwxyz ä ö ü ß\par
           0123456789\par
 .,:;-!" '\$\%\&/@\_\S\#\textasciitilde\textbackslash\textless\textgreater[]\{\}() 
}

%\usepackage{filecontents}
%
%\begin{filecontents}{mydata.csv}
%8r;bch;b;it;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/psnfss/8rbch.fd
%B1;auncl;b;n;
%T1;etr;b;n;/cygdrive/c/texlive/2013/texmf-dist/tex/latex/archaic/t1etr.fd
%\end{filecontents}

\DTLsetseparator{;}
\DTLloaddb[
  noheader,
   keys={encoding,family,series,shape,adress}
  ]{mydb}
  {\jobname.csv} 
  %{mydata.csv}

\begin{document}

%\tableofcontents
%\newpage

\DTLforeach*[
\not\DTLiseq{\encoding}{8r}
\and\not\DTLiseq{\encoding}{C00}
\and\not\DTLiseq{\encoding}{C01}
\and\not\DTLiseq{\encoding}{C05}
\and\not\DTLiseq{\encoding}{C09}
\and\not\DTLiseq{\encoding}{C10}
\and\not\DTLiseq{\encoding}{C11}
\and\not\DTLiseq{\encoding}{C19}
\and\not\DTLiseq{\encoding}{C20}
\and\not\DTLiseq{\encoding}{C21}
\and\not\DTLiseq{\encoding}{C31}
\and\not\DTLiseq{\encoding}{C32}
\and\not\DTLiseq{\encoding}{C33}
\and\not\DTLiseq{\encoding}{C34}
\and\not\DTLiseq{\encoding}{C35}
\and\not\DTLiseq{\encoding}{C36}
\and\not\DTLiseq{\encoding}{C37}
\and\not\DTLiseq{\encoding}{C40}
\and\not\DTLiseq{\encoding}{C41}
\and\not\DTLiseq{\encoding}{C42}
\and\not\DTLiseq{\encoding}{C43}
\and\not\DTLiseq{\encoding}{C49}
\and\not\DTLiseq{\encoding}{C50}
\and\not\DTLiseq{\encoding}{C52}
\and\not\DTLiseq{\encoding}{C60}
\and\not\DTLiseq{\encoding}{C61}
\and\not\DTLiseq{\encoding}{C62}
\and\not\DTLiseq{\encoding}{C63}
\and\not\DTLiseq{\encoding}{C64}
\and\not\DTLiseq{\encoding}{C65}
\and\not\DTLiseq{\encoding}{C70}
\and\not\DTLiseq{\encoding}{C80}
\and\not\DTLiseq{\encoding}{C81}
\and\not\DTLiseq{\encoding}{C90}
\and\not\DTLiseq{\encoding}{EU1}
\and\not\DTLiseq{\encoding}{EU2}
\and\not\DTLiseq{\encoding}{FML}
\and\not\DTLiseq{\encoding}{HE8}
\and\not\DTLiseq{\encoding}{JT1}
\and\not\DTLiseq{\encoding}{JT2}
\and\not\DTLiseq{\encoding}{JY1}
\and\not\DTLiseq{\encoding}{JY2}
\and\not\DTLiseq{\encoding}{L7X} %nicht L7x
%\and\not\DTLiseq{\encoding}{LAE}
\and\not\DTLiseq{\encoding}{LCH}
\and\not\DTLiseq{\encoding}{LCT}
\and\not\DTLiseq{\encoding}{LDV}
\and\not\DTLiseq{\encoding}{LET}
\and\not\DTLiseq{\encoding}{Let}
\and\not\DTLiseq{\encoding}{LHE}
\and\not\DTLiseq{\encoding}{LIT}
\and\not\DTLiseq{\encoding}{LKL}
\and\not\DTLiseq{\encoding}{LMA}
\and\not\DTLiseq{\encoding}{LHE}
\and\not\DTLiseq{\encoding}{LMO}
\and\not\DTLiseq{\encoding}{LMS}
\and\not\DTLiseq{\encoding}{LMU}
\and\not\DTLiseq{\encoding}{LS1}
\and\not\DTLiseq{\encoding}{LS2}
\and\not\DTLiseq{\encoding}{LSB1}
\and\not\DTLiseq{\encoding}{LSB2}
\and\not\DTLiseq{\encoding}{LSB3}
\and\not\DTLiseq{\encoding}{LSB}
\and\not\DTLiseq{\encoding}{LSBC1}
\and\not\DTLiseq{\encoding}{LSBC2}
\and\not\DTLiseq{\encoding}{LSBC3}
\and\not\DTLiseq{\encoding}{LSBC4}
\and\not\DTLiseq{\encoding}{LSBC5}
\and\not\DTLiseq{\encoding}{LSF}
\and\not\DTLiseq{\encoding}{LSI}
\and\not\DTLiseq{\encoding}{LTA}
\and\not\DTLiseq{\encoding}{LTG}
\and\not\DTLiseq{\encoding}{LTL}
\and\not\DTLiseq{\encoding}{LTW}
\and\not\DTLiseq{\encoding}{LUC}
\and\not\DTLiseq{\encoding}{MDA}
\and\not\DTLiseq{\encoding}{MDB}
\and\not\DTLiseq{\encoding}{MKR}
\and\not\DTLiseq{\encoding}{mTT}
\and\not\DTLiseq{\encoding}{MY1}
\and\not\DTLiseq{\encoding}{MY2}
\and\not\DTLiseq{\encoding}{MY3}
\and\not\DTLiseq{\encoding}{OMX}
\and\not\DTLiseq{\encoding}{T1R}
\and\not\DTLiseq{\encoding}{U}
\and\not\DTLiseq{\encoding}{UT1}
\and\not\DTLiseq{\encoding}{LMO}
%\and\not\DTLiseq{\encoding}{LBS}
%\and\not\DTLiseq{\encoding}{LMO}
%\and\not\DTLiseq{\encoding}{LMO}
%\and\not\DTLiseq{\encoding}{LMO}
%\and\not\DTLiseq{\encoding}{LMO}
\and\not\DTLiseq{\family}{etr}
\and\not\DTLiseq{\family}{aehani}
\and\not\DTLiseq{\family}{aehor}
\and\not\DTLiseq{\family}{aeostorah}
\and\not\DTLiseq{\family}{aerehan}
\and\not\DTLiseq{\family}{andlso}
\and\not\DTLiseq{\family}{ararial}
\and\not\DTLiseq{\family}{arcour}
\and\not\DTLiseq{\family}{aromega}
\and\not\DTLiseq{\family}{arsimpo}
\and\not\DTLiseq{\family}{artimes}
\and\not\DTLiseq{\family}{asv}
\and\not\DTLiseq{\family}{cmr} %Nicht gut weil auch in anderen Kodierungen!!!!!
\and\not\DTLiseq{\family}{dthuluth}
\and\not\DTLiseq{\family}{dtpn}
\and\not\DTLiseq{\family}{dtpnsp}
\and\not\DTLiseq{\family}{kacstbook}
\and\not\DTLiseq{\family}{maghribi}
\and\not\DTLiseq{\family}{naskhi}
\and\not\DTLiseq{\family}{reqaa}
\and\not\DTLiseq{\family}{traditionalarabic}
\and\not\DTLiseq{\family}{bskm} 
\and\not\DTLiseq{\family}{bsksy}
%\and\not\DTLiseq{\family}{ararial}
%\and\not\DTLiseq{\family}{ararial}
%\and\not\DTLiseq{\family}{ararial}
%\and\not\DTLiseq{\family}{ararial}

]{mydb}
{\encoding=encoding, \family=family, \series=series, \shape=shape, \adress=adress}{%
  \section[\textbackslash usefont\{\encoding\}\{\family\}\{\series\}\{\shape\}]{\textbackslash usefont\{\encoding\}\{\family\}\{\series\}\{\shape\} \\
\footnotesize{found in:  \adress}}

\begingroup
 \usefont{\encoding}{\family}{\series}{\shape}
 \ABC
\endgroup
}
\end{document}

alt text

Permanenter link

beantwortet 20 Jun '14, 02:44

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

bearbeitet 20 Jun '14, 20:29

Das Ausschließen der encoding's war wahrscheinlich richtig so.

Ansonsten könnnte man so

\and\not\(\DTLiseq{\encoding}{LAE} \and \DTLiseq{\family}{cmr}\)

bestimmte Kombinationen ausschließen. Aber das ist auch nicht gut, weil manche Familien cmr tun scheints bei der Kodierung LAE, Fehlermeldungen hier, "LAE/cmr/*/* not found", müssen also an den weiteren Parametern liegen - was man bräuchte wäre eine Ausschlußmethode, die ggf. einen Hinweis hinschreibt o.ä., aber dafür kenne ich datatool nicht gut genug.

(20 Jun '14, 20:27) cis
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:

×76
×48
×24

gestellte Frage: 16 Jun '14, 21:19

Frage wurde gesehen: 10,039 Mal

zuletzt geändert: 20 Aug '14, 14:07