我今天有一个特殊请求。
我想定义自己的 latex 模板 (.cls)。应该有
- 根据章节/节在右/左页面边框上使用相同的垂直文本
- 每页多列
- 根本没有页码(并且丢失了页眉行,如示例中所示
以下代码显示了我目前所创建的内容。您可能猜到这应该是某种餐厅。
\ProvidesClass{menuX}[2018/03/09, v1, menuX, foo]
\LoadClass{scrartcl}
\KOMAoptions{twoside}
\ProcessOptions\relax
\RequirePackage[paperheight=28cm, paperwidth=14cm,%
top=2.5cm, bottom=2cm, left=2.5cm, right=2cm,%
% showframe
]{geometry}
%\pagenumbering{gobble}
\RequirePackage{tikz-page}
\pagestyle{plain}
\RequirePackage{lmodern}
\RequirePackage{xcolor}
\newcommand{\grey}[1]{\textcolor[rgb]{.66 .66 .66}{#1}}
\newcommand{\tikzpagelayout}{
\node[ rotate=90, below](t) at (page.west) {\fontsize{100}{120}\selectfont \grey {testBorderPage}};
}
使用这个,我可以提供一个示例代码,像这样..
\documentclass{menuX}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\begin{document}
Hello World!
\clearpage
Hello again
\end{document}
我希望这能说明我想做什么。这或多或少是一种解决方法,因为我有一些使用乳胶的经验,但根本没有创建我的模板。提前谢谢。
答案1
尤其是您已经在使用scrartcl
,您可以使用 来创建如下页面样式scrlayer
:您创建两个层,一个在左边距,一个在右边距,每个层都有垂直文本。然后,您可以创建仅包含这两个层的页面样式。
\ProvidesClass{menuX}[2018/03/09, v1, menuX, foo]
\LoadClass{scrartcl}
\KOMAoptions{twocolumn,twoside}
\ProcessOptions\relax
\RequirePackage[paperheight=28cm, paperwidth=14cm,%
top=2.5cm, bottom=2cm, left=2.5cm, right=2.5cm,%
]{geometry}
\RequirePackage{lmodern}
\RequirePackage{xcolor}
\RequirePackage{scrlayer}
\RequirePackage{graphicx}
\newcommand{\grey}[1]{\textcolor[gray]{.66}{#1}}
\DeclareNewLayer[
background,
everypage,
leftmargin,
contents={%
\vfil\hfil\rotatebox{90}{%
\fontsize{100}{120}\selectfont\grey\leftmark%
}\hfil\vfil
}]{markmargin-left}
\DeclareNewLayer[
background,
everypage,
rightmargin,
contents={%
\vfil\hfil\rotatebox{90}{%
\fontsize{100}{120}\selectfont\grey\rightmark%
}\hfil\vfil
}]{markmargin-right}
\DeclareNewPageStyleByLayers{markmargin}{markmargin-right,markmargin-left}
\pagestyle{markmargin}
\automark[section]{section}
本示例文档的输出:
\documentclass{menuX}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{lipsum}
\begin{document}
\addsec{First}
\lipsum
\clearpage
\addsec{Second}
\lipsum
\end{document}
编辑:如果您不想要节标题,您可以首先避免添加节:如果
\automark[section]{section}
你写
\manualmark
\renewcommand\section[1]{%
\clearpage%
\markboth{#1}{#1}
}
该命令\section{Some name}
将开始新的一页并更新页边距,但不会执行任何其他操作,尤其是不会打印任何章节标题。当然,那么您必须在示例中使用\section
而不是。\addsec