我想让章节数和论文一样大。这是我目前实现的。
我想要的是在字母之间留出负空间,这样它们就会重叠,而且重叠的部分比数字本身更暗。或者使第二个数字比第一个数字更暗,但仍然重叠。我完全不知道如何自动完成这一操作。
我也保留titlesec
了我的代码,因为当我实施解决方案时,我不知道会发生什么错误(或正确)。
这是我的 MWE。
\documentclass[12pt,twoside,draft]{scrbook}
\usepackage{geometry}
\geometry{
paperwidth=11.7in,
paperheight=8.27in,
top=1in,
bottom=1in,
outer=1.5in,
inner=0.7in,
voffset=0in,
marginparwidth=0.5in,
marginparsep=0.2in,
footskip=0em,
headsep=0pt,
nofoot,
nohead
}
\usepackage{mathtools}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{anyfontsize}
\usepackage{titlesec}
\usepackage[english]{babel}
\titleformat{\chapter}[display]
{\normalfont\bfseries\color{gray!100!white!50}\fontsize{\paperheight}{\paperheight}\selectfont}%
{\resizebox{!}{\paperheight+1in}{\thechapter}}%
{-\paperheight}%
{\color{black}\raggedright\Huge}
\titlespacing{\chapter}{0in}{-1.5in}{40pt}
\begin{document}
\setcounter{chapter}{20}
\chapter{Twenty One}
\lipsum[1]
\end{document}
答案1
\color{gray!100!white!\intens
我做了一些更改。我为每个数字设置了颜色\intens
,从 50 到 75,然后(如果需要)到 100。
另外,我呈现的是章节,而不是\thechapter
,而是\edef\tmp{\thechapter}\expandafter\squeeze\tmp\relax
,\squeeze
其中每个数字后面都有一个负数的字距和颜色的变化。
\documentclass[12pt,twoside,draft]{scrbook}
\usepackage{geometry}
\geometry{
paperwidth=11.7in,
paperheight=8.27in,
top=1in,
bottom=1in,
outer=1.5in,
inner=0.7in,
voffset=0in,
marginparwidth=0.5in,
marginparsep=0.2in,
footskip=0em,
headsep=0pt,
nofoot,
nohead
}
\usepackage{mathtools}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{anyfontsize}
\usepackage{fontspec}
\newfontfamily\chapterfont[LetterSpace=-12]{Latin Modern Roman}
\usepackage{titlesec}
\usepackage[english]{babel}
\titleformat{\chapter}[display]
{\gdef\intens{50}\normalfont\bfseries\color{gray!100!white!\intens}\fontsize{\paperheight}{\paperheight}\selectfont}%
{\resizebox{!}{\paperheight+1in}{%
\chapterfont\edef\tmp{\thechapter}\expandafter\squeeze\tmp\relax}}%
{-\paperheight}%
{\color{black}\raggedright\Huge}
\titlespacing{\chapter}{0in}{-1.5in}{40pt}
\def\squeeze#1#2\relax{#1\ifx\relax#2\relax\ \else%
\xdef\intens{\the\numexpr\intens+25\relax}%
\kern-180pt\color{gray!100!white!\intens}\squeeze#2\relax\fi}
\begin{document}
\setcounter{chapter}{20}
\chapter{Twenty One}
\lipsum[1]
\setcounter{chapter}{101}
\chapter{Century Plus Two}
\lipsum[1]
\end{document}
答案2
使用 XeLaTeX 或 LuaLaTeX 可以非常轻松地实现负字距调整fontspec
。我使用了LetterSpace
用于数字的字体的字体功能。给它一个负值会减少字母之间的间距。我给了它一个值作为-12
示例,它实际上并没有重叠,但可以让您了解您可以做什么。(我尝试了更大的数字,但看起来并不令人满意。)这不是一个比例数字,而是一个“定义为字体大小百分比的标准化加法因子。对于 10 pt 字体,1.0 将在每个字母之间添加 0.1pt。”(fontspec
文档,第 33 页)。
但这并不能解决“重叠时颜色变暗”的问题。为此,您可能需要使用 TikZ 或其他工具单独处理数字。
\documentclass[12pt,twoside,draft]{scrbook}
\usepackage{geometry}
\geometry{
paperwidth=11.7in,
paperheight=8.27in,
top=1in,
bottom=1in,
outer=1.5in,
inner=0.7in,
voffset=0in,
marginparwidth=0.5in,
marginparsep=0.2in,
footskip=0em,
headsep=0pt,
nofoot,
nohead
}
\usepackage{mathtools}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{anyfontsize}
\usepackage{fontspec}
\newfontfamily\chapterfont[LetterSpace=-12]{Latin Modern Roman}
\usepackage{titlesec}
\usepackage[english]{babel}
\titleformat{\chapter}[display]
{\normalfont\bfseries\color{gray!100!white!50}\fontsize{\paperheight}{\paperheight}\selectfont}%
{\resizebox{!}{\paperheight+1in}{\chapterfont\thechapter}}%
{-\paperheight}%
{\color{black}\raggedright\Huge}
\titlespacing{\chapter}{0in}{-1.5in}{40pt}
\begin{document}
\setcounter{chapter}{20}
\chapter{Twenty One}
\lipsum[1]
\end{document}
完全重叠的示例(值为-35
):
答案3
这实际上不是对原始问题的回答,只是与 Steven 讨论的注释。这是一种使用 tikz 不透明度挤压和着色重叠的粗略方法。Stevens sqeeze slitter 代码仍在使用。
\documentclass[a4paper]{standalone}
\usepackage[T1]{fontenc}
\usepackage{fix-cm}
\usepackage{tikz,etoolbox,xcolor}
\usetikzlibrary{calc}
\def\myList{}
\def\intens{50}
\def\adjustment{0pt}
\def\pullback{10mm}
\def\squeeze#1#2\relax{
\listxadd\myList{{#1}{\intens}}
\ifx\relax#2\relax\else%
\xdef\intens{\the\numexpr\intens+25\relax}%
\squeeze#2\relax%
\fi}
\newcommand\Handler[1]{
\begingroup
\def\Splitter##1##2\relax{\gdef\VAL{##1}\gdef\INT{##2}}
\expandafter\Splitter#1\relax
\node[gray!100!white!\INT,opacity=0.5]
at ($(0,0)+(\adjustment,0)$) {\fontsize{10cm}{10cm}\selectfont\VAL};
\global\dimdef\adjustment{\adjustment+\pullback}
\endgroup
}
\newcommand\DoSqeezed[1]{%
\def\myList{}%
\dimdef\adjustment{0pt}%
\edef\tmp{#1}%
\expandafter\squeeze\tmp\relax%
\tikz\forlistloop\Handler\myList;
}
\begin{document}
\DoSqeezed{21}
\DoSqeezed{213}
\end{document}
这可能可以通过某些功能放置在后台titlesec
(我不使用它,所以不熟悉)或使用标准
\begin{tikzpicture}[remember picture,overlay]
...
\end{tikzpicture}
而不是\tikz ... ;
包装纸。
稍微调整了版本,应该也适用于旧式数字。还切换到测试一些在课堂memoir
上不容易测试的东西standalone
\documentclass[a4paper]{memoir}
\setlrmarginsandblock{1cm}*1
\checkandfixthelayout
\pagestyle{empty}
\usepackage[T1]{fontenc}
\usepackage{fix-cm}
\usepackage{tikz,etoolbox,xcolor}
\usetikzlibrary{calc}
\newcommand\myList{}
\newcommand\intens{50}
\newcommand\adjustment{0pt}
\newcommand\pullback{10mm}
\def\squeeze#1#2\relax{
\listxadd\myList{{#1}{\intens}}
\ifx\relax#2\relax\else%
\xdef\intens{\the\numexpr\intens+25\relax}%
\squeeze#2\relax%
\fi}
\newcommand\Handler[1]{
\begingroup
\def\Splitter##1##2\relax{\gdef\VAL{##1}\gdef\INT{##2}}
\expandafter\Splitter#1\relax
\node[anchor=mid west,gray!100!white!\INT,opacity=0.5]
at ($(0,0)+(\adjustment,0)$) {\fontsize{10cm}{10cm}\selectfont\VAL};
\global\dimdef\adjustment{\adjustment+\pullback}
\endgroup
}
\newcommand\DoSqeezed[1]{%
\renewcommand\myList{}%
\dimdef\adjustment{0pt}%
\edef\myTemp{#1}%
\expandafter\squeeze\myTemp\relax%
\tikz
%[remember picture,overlay]
\forlistloop\Handler\myList;
}
\begin{document}
%\newcounter{chapter}
\setcounter{chapter}{678}
\DoSqeezed{\thechapter}
\DoSqeezed{213}
\end{document}
答案4
您可以使用 PDF 原始命令进行重叠。特别是/Multiply
Graphic State 中的方法,以便使重叠区域变暗。您不需要使用 Tikz。
\def\thechapnum{12}
\pdfpageresources{/ExtGState << /mul << /Type /ExtGState /BM /Multiply >> >>}
\def\insertkerns#1{\ifx\end#1\else #1\kern-.3em \expandafter\insertkerns\fi}
\leavevmode{\bf\pdfsave\pdfliteral{/mul gs 0.5 g 80 0 0 80 -100 -500 cm}%
\rlap{\expandafter\insertkerns\thechapnum\end}\pdfrestore}
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
rryuir weeeyuirw fuow ediwe yiriw rfirer rf re ipr ire
\bye
请注意,操作符的参数cm
用于将结果缩放和移动到页面中的适当位置。