Я хочу сделать плотную черную рамку вокруг названий моих глав, в идеале только 1pt
с полями с каждой стороны. До сих пор мои лучшие результаты были с soul
:
Однако вы заметите, что внизу слишком много полей. Кроме того, выделение повторяется вверху каждой нечетной страницы:
Какой умный способ сделать это? Я не против использовать что-то другое, чем soul
, просто это показалось мне хорошим решением.
MWE ниже. Обратите внимание, что вам понадобитсяМикодакишрифт (или, может быть, любой шрифт TTF?) в формате FONTLOCATION
.
\documentclass[book,dvipsnames]{memoir}
\usepackage{xcolor}
\usepackage{fontspec}
\usepackage{anyfontsize}
\usepackage{soul}
\sethlcolor{black}
%% Change height of highlight
\makeatletter
\def\SOUL@hlpreamble{%
\setul{}{2ex}%
\let\SOUL@stcolor\SOUL@hlcolor
\SOUL@stpreamble
}
\makeatother
\newfontfamily{\archivo}[Path=/FONTLOCATION]{Mikodacs.ttf}
\usepackage{lipsum} %% For dummy text
%% Chapterstyle
\makechapterstyle{lucknerto}{%
\setlength{\beforechapskip}{-2\onelineskip}%
\setlength{\afterchapskip}{2\onelineskip}%
\renewcommand*{\printchaptername}{}%
\renewcommand*{\chapternamenum}{}%
\renewcommand*{\chapnumfont}{\normalfont\large\sffamily\bfseries}%
\renewcommand*{\afterchapternum}{}%
\renewcommand{\printchaptertitle}{\centering\archivo\color{White}\fontsize{23}{27.6}\selectfont\MakeUppercase}
}
\chapterstyle{lucknerto} %% enable
%% Pagestyle
\makepagestyle{luckner}%
\makeevenhead{luckner}{}{\small{{\MakeUppercase{book title}}}}{}
\makeoddhead{luckner}{}{\small{{\MakeUppercase{\leftmark}}}}{}
\makeevenfoot{luckner}{\large{\thepage}}{}{}
\makeoddfoot{luckner}{}{}{\large{\thepage}}
\pagestyle{luckner} %% enable
\begin{document}
\chapter{\hl{Foobar}}
\lipsum[1-20]
\end{document}
решение1
Стиль довольно прост в использовании , для этого есть tcolorbox
специальная \tcbox
команда, которую можно изменять в соответствии с личными предпочтениями.
'Трудность' в том, чтобы понять, что memoir
делает с названием главы. Мне пришлось изменить, \printchaptertitle
чтобы иметь аргумент (что является обычным случаем), кроме как работать с движущимися аргументами.
\documentclass[book,dvipsnames]{memoir}
\usepackage{xcolor}
\usepackage{fontspec}
\usepackage{anyfontsize}
\usepackage{soul}
\usepackage{tcolorbox}
\sethlcolor{black}
%% Change height of highlight
\makeatletter
\def\SOUL@hlpreamble{%
\setul{}{2ex}%
\let\SOUL@stcolor\SOUL@hlcolor
\SOUL@stpreamble
}
\makeatother
\newfontfamily{\archivo}[Path=/FONTLOCATION]{Micodacs.ttf}
%\newfontfamily{\archivo}{Liberation Sans}
\usepackage{lipsum} %% For dummy text
\tcbset{chapterhead/.style={%
fontupper=\archivo\fontsize{23}{27.6}\selectfont,
left skip=1ex, % for example
nobeforeafter, %no spacing before and after the box etc
halign=center, % horizontal align within box, can be omitted
valign=center, % vertical align within box, can be omitted
colback=black, % black background colour
size=tight, % tight box
colupper=white, % white foreground colour
}
}
\newtcbox{\blackbox}[1][]{%
chapterhead,
#1,
}
%% Chapterstyle
\makechapterstyle{lucknerto}{%
\setlength{\beforechapskip}{-2\onelineskip}%
\setlength{\afterchapskip}{2\onelineskip}%
\renewcommand*{\printchaptername}{}%
\renewcommand*{\chapternamenum}{}%
\renewcommand*{\chapnumfont}{\normalfont\large\sffamily\bfseries}%
\renewcommand*{\afterchapternum}{}%
\renewcommand{\printchaptertitle}{\centering\tcbox[nobeforeafter,halign=center,valign=center,colback=black,size=tight,colupper=white,code={\noexpand\MakeUppercase}]}%\centering\archivo\color{blue}\fontsize{23}{27.6}\selectfont\MakeUppercase}
\renewcommand{\printchaptertitle}[1]{\centering\blackbox{\MakeUppercase{##1}}}%\centering\archivo\color{blue}\fontsize{23}{27.6}\selectfont\MakeUppercase}
}
\chapterstyle{lucknerto} %% enable
%% Pagestyle
\makepagestyle{luckner}%
\makeevenhead{luckner}{}{\small{{\MakeUppercase{book title}}}}{}
\makeoddhead{luckner}{}{\small{{\MakeUppercase{\leftmark}}}}{}
\makeevenfoot{luckner}{\large{\thepage}}{}{}
\makeoddfoot{luckner}{}{}{\large{\thepage}}
\pagestyle{luckner} %% enable
\begin{document}
\chapter{Foobar}
\lipsum[1-20]
\end{document}
Вывод со шрифтом Mikodacs: