I'm trying to use this answer: Fake small caps to use fake small caps with Times New Roman in my biblatex bibliography.
For some reason I get the error message "improper alphabetic constant". It seems to be some problem with the rest of my document. Because the linked solution works fine on its own.
Here is my MWE:
% !TEX encoding = UTF-8 Unicode
\documentclass{scrartcl}%
\usepackage[ngerman]{babel}%
\usepackage[utf8]{inputenc}%
\usepackage[T1]{fontenc}%
\usepackage{lipsum}%
\usepackage[%
backend=biber,%
bibstyle=authortitle,% BIBLIOGRAPHY
citestyle=authoryear,% CITATIONS
hyperref=true,%
backref=false,%
sorting=nty,%
maxnames=99,%
isbn=false,%
block=ragged,%
dashed=false,%
]{biblatex}
\usepackage{hyperref}
% ==========================================================
% ==========================================================
% ==========================================================
% FAKE SMALL CAPS
\usepackage{fontspec,graphicx}
\setmainfont{Times New Roman}
%
%
%
\makeatletter
\newlength\fake@f
\newlength\fake@c
\def\fakesc#1{%
\begingroup%
\xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
\fontsize{\fontdimen8\fake@name}{\baselineskip}\selectfont%
\uppercase{#1}%
\endgroup%
}
\makeatother
\newcommand\fauxsc[1]{\fauxschelper#1 \relax\relax}
\def\fauxschelper#1 #2\relax{%
\fauxschelphelp#1\relax\relax%
\if\relax#2\relax\else\ \fauxschelper#2\relax\fi%
}
\def\Hscale{.83}\def\Vscale{.72}\def\Cscale{1.00}
\def\fauxschelphelp#1#2\relax{%
\ifnum`#1>``\ifnum`#1<`\{\scalebox{\Hscale}[\Vscale]{\uppercase{#1}}\else%
\scalebox{\Cscale}[1]{#1}\fi\else\scalebox{\Cscale}[1]{#1}\fi%
\ifx\relax#2\relax\else\fauxschelphelp#2\relax\fi}
%
\renewcommand*{\mkbibnamefamily}{\fauxsc}%
% ==========================================================
% ==========================================================
% ==========================================================
%
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@COMMENTARY{beck.ok,
MAINTITLE = {Beck'scher Online-Kommentar BGB},
SHORTTITLE = {},
EDITOR = {Bamberger, Heinz Georg and Roth, Herbert and Hau, Wolfgang and Poseck, Roman},
SHORTHAND = {BeckOK},
VOLUME = {},
TITLE = {},
YEAR = {2018},
EDITION = {45},
OPTIONS = {howcited},
}
@COMMENTARY{muko.bd1,
MAINTITLE = {Münchener Kommentar zum Bürgerlichen Recht},
SHORTTITLE = {},
SHORTHAND = {MünchKomm},
EDITOR = {Säcker, Franz},
SHORTAUTHOR = {},
VOLUME = {1},
TITLE = {Allgemeiner Teil},
YEAR = {2015},
ADDRESS = {},
EDITION = {7},
OPTIONS = {howcited},
}
@INCOLLECTION{fs.roxin,
AUTHOR = {Beckemper, Katharina},
TITLE = {Unvernunft als Zurechnungskriterium in den „Retterfällen“},
EDITOR = {Manfred, Heinrich},
BOOKTITLE = {Strafrecht als Scientia Universalis - Festschrift f{\"u}r Claus Roxin zum 80. Geburtstag},
SHORTTITLE = {FS Roxin},
YEAR = {2011},
PAGES = {397--411},
OPTIONS = {fshowcited},
}
@ARTICLE{jus2007.881,
author = {Jörg Neuner},
title = {Was ist eine Willenserklärung?},
journal = {JuS},
year = {2007},
pages = {881--888},
}
%
\end{filecontents}
\addbibresource{\jobname.bib}
%
%
%
% === merged files ====
%
%
% biblatex.cfg
% biblatex.cfg
% biblatex.cfg
%%%
\DeclareNameAlias{sortname}{family-given-bold}
\DeclareNameFormat{family-given-bold}{%
\mkbibbold{%
\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\usebibmacro{name:andothers}}}
% ==========================================================
% === Titel nicht kursiv ===
%
\DeclareFieldFormat*{citetitle}{#1}% Zitate: Schriftart der Titel
\DeclareFieldFormat*{title}{#1}% Titel im LitVZ
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat*{journaltitle}{#1}%
\DeclareFieldFormat*{booktitle}{#1}
%
% ==========================================================
% === kein Punkt in Library ===
%
\renewcommand{\finentrypunct}{}% Kein Punkt am Ende des Eintrags im LitVZ
% ==========================================================
% === Hrsg. ===
%
\DeclareFieldFormat{authortype}{\mkbibparens{#1}}% Authortyp in Klammern
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}% Editortyp in Klammern
\DeclareFieldFormat[incollection]{editortype}{\mkbibparens{#1}}%
% ==========================================================
\DeclareDelimFormat{authortypedelim}{\addspace}% Kein Komma nach Autor
\DeclareDelimFormat{editortypedelim}{\addspace}% Kein Komma nach Editor
% ==========================================================
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addspace}%
% ==========================================================
% === Auflage/Aufl. ===
%
\DefineBibliographyStrings{german}{%
edition = {\ifbibliography{Auflage}{Aufl\adddot}},% 'Auflage' statt 'Aufl.'
}
% ==========================================================
% === kein S. bei @article & @incollection ===
%
\DeclareFieldFormat[article,incollection]{pages}{%
\ifcitation
{\mkfirstpage{#1}}
{#1}}%
% ==========================================================
% === Erkennt Satzzeichen & setzt kein Komma ausser bei Abkurzungen ===
%
\DefineBibliographyExtras{german}{\DeclarePunctuationPairs{comma}{*}}
% ==========================================================
% === @article keine Titel zitieren ===
%
\DeclareFieldFormat[article]{citetitle}{}%
% ==========================================================
% === bei @article @incollection postnote in klammern fur seitenzahl ===
%
\AtEveryCite{%
\DeclareFieldFormat[article, incollection]{postnote}{\mkbibparens{#1}}%
}
% ==========================================================
% === bib driver @commentary ===
%
\DeclareBibliographyDriver{commentary}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+title}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}
\newunit
\usebibmacro{location+date}%
\newunit\newblock
\usebibmacro{finentry}}
% ==========================================================
% === @commentary prenote position === otherwise use: https://tex.stackexchange.com/a/430758/53779
%
\DeclareCiteCommand{\footcite}[\mkbibfootnote]%
{\ifentrytype{commentary}{}{\usebibmacro{prenote}}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{%
\DeclareFieldFormat{bibhyperref}{####1}%
\usebibmacro{cite}%
\ifentrytype{commentary}
{\textbf{\addslash}%
\textit{\usebibmacro{prenote}}}
{}}}
{\multicitedelim}
{\usebibmacro{postnote}}
%
\DeclareCiteCommand{\cite}%[\mkbibcite]%
{\ifentrytype{commentary}{}{\usebibmacro{prenote}}}
{\usebibmacro{citeindex}%
\printtext[bibhyperref]{%
\DeclareFieldFormat{bibhyperref}{####1}%
\usebibmacro{cite}%
\ifentrytype{commentary}
{\textbf{\addslash}%
\textit{\usebibmacro{prenote}}}
{}}}
{\multicitedelim}
{\usebibmacro{postnote}}
% ==========================================================
% === @incollection herausgeber der festschrift nicht fett ===
%
\DeclareNameAlias{ineditor}{family-given}
\newbibmacro*{bbx:in:editor}[1]{%
\ifboolexpr{
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}
{\printnames[ineditor]{editor}%
\setunit{\printdelim{editortypedelim}}%
\usebibmacro{#1}%
\clearname{editor}}
{}}
\newbibmacro*{in:editor}{%
\usebibmacro{bbx:in:editor}{editorstrg}}
\newbibmacro*{in:editor+others}{%
\usebibmacro{bbx:in:editor}{editor+othersstrg}}
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\newunit\newblock
\usebibmacro{in:editor+others}%<----- new macro
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
% \usebibmacro{editor+others}% OLD
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
% ==========================================================
% === Kommentare: zitiert als Option ===
%
\newtoggle{tnbcbx@howcited}
\DeclareEntryOption[boolean]{howcited}[true]{\settoggle{tnbcbx@howcited}{#1}}
\DeclareBibliographyOption[boolean]{howcited}[true]{\settoggle{tnbcbx@howcited}{#1}}
\DeclareTypeOption[boolean]{howcited}[true]{\settoggle{tnbcbx@howcited}{#1}}
\newbibmacro{howcited}{%
\iftoggle{tnbcbx@howcited}
{\iffieldundef{shorthand}
{}
{\setunit{\addspace}%
\printtext[parens]{%
\bibstring{citedas}%
\setunit{\addcolon\space}%
\printfield{shorthand}%
\setunit{\addslash}%
\bibstring[\emph]{bearbeiter}}}}
{}}
\NewBibliographyString{bearbeiter}
\DefineBibliographyStrings{ngerman}{
citedas = {zitiert als},
bearbeiter = {Bearbeiter},
}
% ==========================================================
% === Incollection zitiert als option ===
%
\newtoggle{tnbcbx@fshowcited}
\DeclareEntryOption[boolean]{fshowcited}[true]{\settoggle{tnbcbx@fshowcited}{#1}}
\DeclareBibliographyOption[boolean]{fshowcited}[true]{\settoggle{tnbcbx@fshowcited}{#1}}
\DeclareTypeOption[boolean]{fshowcited}[true]{\settoggle{tnbcbx@fshowcited}{#1}}
\newbibmacro{fshowcited}{%
\iftoggle{tnbcbx@fshowcited}
{\iffieldundef{shorttitle}
{}
{\setunit{\addspace}%
\printtext[parens]{%
\bibstring{citedas}%
\setunit{\addcolon\space}%
\begingroup
\csuse{blx@hook@cite}%
\csuse{blx@hook@citekey}%
\DeclareFieldFormat{bibhyperref}{##1}%
\printnames{labelname}%
\setunit{\addcomma\space}%
\printfield{shorttitle}%
\endgroup
}}}
{}}
\renewbibmacro{finentry}{\usebibmacro{howcited}\usebibmacro{fshowcited}\finentry}
% ==========================================================
% ==========================================================
% ==========================================================
% mybiblatexcfg.tex
% mybiblatexcfg.tex
% mybiblatexcfg.tex
% ==========================================================
% ==========================================================
% ==========================================================
%
\renewcommand{\finentrypunct}{}% kein Punkt am Ende im LitVZ
% ==========================================================
%\renewcommand*{\mkbibnamefamily}{\fauxsc}% Autoren in Kapitaelchen
%==========================================================
\AtEveryCite{%
\renewcommand{\mkbibnamefamily}[1]{\mkbibemph{#1}}%
}%
% ==========================================================
\renewcommand*{\multinamedelim}{~\textbf{/}\space}%
\renewcommand*{\finalnamedelim}{~\textbf{/}\space}%
% ==========================================================
\renewcommand*{\newunitpunct}{\addcomma\space}%
% ==========================================================
\renewbibmacro{in:}{%
\ifentrytype{article}
{}
{\printtext{\bibstring{in}\intitlepunct}}}
% ==========================================================
\renewbibmacro{issue+date}{%
\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}%}%
\newunit}
% ==========================================================
% =========== print 'Author, Journal Year, firstpage' =========
% ======================== 09.05.18 ====================
\newbibmacro*{cite:article:journal}{%
\newunit
\printfield{journaltitle}}
%
\newbibmacro*{cite:article:pages}{%
%\newunit%\addcomma
\printfield{pages}}
%
\newbibmacro*{cite:book:shorttitle}{%
\printfield[citetitle]{labeltitle}}
%
\renewcommand*{\postnotedelim}{\addspace}
% ========================================================
\renewbibmacro{cite}{%
\iffieldundef{shorthand}%
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}%
{\usebibmacro{cite:label}%
\setunit{\printdelim{nonameyeardelim}}}
{\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}}%
\ifentrytype{book}
{\setunit{\printdelim{nametitledelim}}%
\usebibmacro{cite:book:shorttitle}}
{}%
\ifentrytype{article}
{\newunit
\usebibmacro{cite:article:journal}%
\setunit{\addspace}%
\usebibmacro{cite:labeldate+extradate}%
\newunit
\usebibmacro{cite:article:pages}}
{}%
\ifentrytype{incollection}
{\setunit{\printdelim{nametitledelim}}%
\usebibmacro{cite:book:shorttitle}%
\newunit
\usebibmacro{cite:article:pages}}
{}}
{\usebibmacro{cite:shorthand}}}
%
% ==========================================================
% ==========================================================
%
\begin{document}
%
% ==========================================================
\printbibliography[title=Literaturverzeichnis alt,heading=bibintoc]
\tableofcontents%
% ==========================================================
Test
\footcite[399]{fs.roxin}\footcite[Wendtland][§ 240 Rn. 63]{beck.ok}\footcite[888]{jus2007.881}
%-----
\end{document}
Any idea what went wrong? Thanks in advance!


fontspecwith XeLaTeX/LuaLaTeX, or set up the legacy NFSS encodings withfontencandinputenc, but not both. (UTF-8 input is also the default on recent versions of LaTeX.) If you’re usingfontspec, your input and font encodings are Unicode. – Davislor Aug 02 '18 at 02:31fontspecandl3kernelwas a good exercise for learning expl3.. – Davislor Aug 03 '18 at 12:18\fauxscisn't desgined to read macros in general. Steven B. Segletes mentions this in a comment to his original answer: Additionally, the\fauxscmacro is not set up to read macros in general. If the macro expands directly to your desired text, you would use\expandafter\fauxsc\expandafter{\foo}, so that\foois expanded to text before it is seen by\fauxsc– Hippo Jun 16 '20 at 17:44