我有一些讲义,其中使用了边注。现在我想将一些定理或证明标记为重要。为此,我想在边注上添加一些“图标”(可能只是一些星号)。由于笔记在外边距,我想使用内边距。我尝试使用\reversemarginpar
但没有成功,请参阅下面的 MWE。有时星星在一个边距上,有时在另一个边距上。此外,我希望星星与“定理”或“证明”线对齐,而不是它们在下面或上面。
有没有办法将一个框放在内边距的绝对水平位置和当前垂直位置?
\documentclass[italian,a4paper,twoside,headinclude]{scrbook}
\usepackage{amsthm,thmtools}
\usepackage{babel,a4}
\usepackage[nochapters,pdfspacing]{classicthesis}
\usepackage[utf8]{inputenc}
\usepackage{sidenotes}
\usepackage{hyphenat}
\usepackage{mparhack} % fix margin notes (otherwise sometime they go to wrong margin!)
\AfterPreamble{\hypersetup{hidelinks=true,}}
\newcommand{\mymark}[1]{\reversemarginpar\marginpar{#1}\normalmarginpar}
\newcommand{\mynote}[1]{\sidenote[\phantom{}]{#1}}
\newcommand{\mymargin}[1]{\mynote{#1}\index{#1}}
\declaretheorem[name=Teorema,numberwithin=chapter]{theorem}
\begin{document}
\begin{theorem}[Bolzano-Weierstrass]
\mymargin{Bolzano-Weierstrass}
\index{teorema!di Bolzano-Weierstrass}
\mymark{***}%
Se $a_n$ è limitata allora esiste una sottosuccessione
$a_{n_k}$ convergente.
\end{theorem}
%
\begin{proof}
\mymark{**}%
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
\end{proof}
\end{document}
答案1
该marginnote
软件包可以很好地完成这项工作。如果我添加\usepackage{marginnote}
并仅对您的代码进行以下调整:
\newcommand{\mymark}[1]{\reversemarginpar\marginnote{#1}\normalmarginpar}
\newcommand{\mymargin}[1]{\marginnote{{\footnotesize #1}}\index{#1}}
我明白了
更新
根据您的评论,我再次查看了您正在做的事情。虽然这对您有用,但我认为sidenote
在这里使用不正确。我可以详细说明,但本质上您会遇到间距不佳和其他各种问题。
我又想了想,我倾向于建议一种完全不同的方法,因为你使用的是komascript
,即notecolumn
。它需要两次才能正确完成,但它正是为解决你的问题而设计的,它会根据需要移动音符。
请注意这总是需要两次编译才能得到正确的注释。
\documentclass[italian,a4paper,twoside,headinclude]{scrbook}
\usepackage{amsthm,thmtools}
\usepackage{babel,a4}
\usepackage[nochapters,pdfspacing]{classicthesis}
\usepackage[utf8]{inputenc}
\usepackage{scrlayer-scrpage}
\usepackage{scrlayer-notecolumn}
\DeclareNewNoteColumn[%
position={\ifodd\value{page}
\dimexpr \oddsidemargin+1in
-\marginparsep\relax
\else
\dimexpr \evensidemargin+1in
+\textwidth+\marginparsep\relax
\fi},
font=\raggedright\footnotesize\bfseries]{marker}
\RedeclareNoteColumn[%
marginpar,
font=\raggedright\footnotesize]{marginpar}
\newcommand{\mymarker}[1]{\makenote[marker]{#1}}
\newcommand{\mynote}[1]{\makenote[marginpar]{#1}\index{#1}}
\declaretheorem[name=Teorema,numberwithin=chapter]{theorem}
\begin{document}
\begin{theorem}[Bolzano-Weierstrass]\mynote{Bolzano-Weierstrass}\mymarker{***}
\index{teorema!di Bolzano-Weierstrass}
Se $a_n$ è limitata allora esiste una sottosuccessione
$a_{n_k}$ convergente.
\end{theorem}
\begin{proof}
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
\end{proof}
\end{document}
注意:我原本以为只需提供选项,就可以获得我想要的“标记”列reversemarginpar
。\DeclareNewNoteColumn
但我做不到。我思考虽然我还没有深入挖掘出在如何定义这个方面存在一个错误,那就是将注释放在奇数页之外。无论如何,我所拥有的似乎有效!
答案2
这可能有点过头了,但你可以在叠加模式下使用 TikZ。原点位于使用 tikzpicture 的基线处。TikZ 需要运行两次才能确定原点相对于页面其余部分的位置。
棘手的部分是将文本的第一行与基线对齐。节点通常将文本垂直居中(使用left
或right
)。
\documentclass[italian,a4paper,twoside,headinclude]{scrbook}
\usepackage{amsthm,thmtools}
\usepackage{babel,a4}
\usepackage[nochapters,pdfspacing]{classicthesis}
\usepackage[utf8]{inputenc}
\usepackage{hyphenat}
\usepackage{tikzpagenodes}
\AfterPreamble{\hypersetup{hidelinks=true,}}
\makeatletter
\let\tikzpage=\oddpage@page
\makeatother
\newcommand{\mymark}[1]{\begin{tikzpicture}[remember picture,overlay]
\coordinate (here) at (0,0);
\ifodd\tikzpage
\path (current page text area.west |- here)
node[left=\marginparsep,inner sep=0pt] {#1};
\else
\path (current page text area.east |- here)
node[right=\marginparsep,inner sep=0pt] {#1};
\fi
\end{tikzpicture}}
\newcommand{\mynote}[1]{\begin{tikzpicture}[remember picture,overlay]
\coordinate (here) at (0,0);
\ifodd\tikzpage
\path (current page text area.east |- here)
node[right=\marginparsep,inner sep=0pt]
{\smash{\parbox[t]{\marginparwidth}{\raggedright #1}}};
\else
\path (current page text area.west |- here)
node[left=\marginparsep,inner sep=0pt]
{\smash{\parbox[t]{\marginparwidth}{\raggedright #1}}};
\fi
\end{tikzpicture}}
\newcommand{\mymargin}[1]{\mynote{#1}\index{#1}}
\declaretheorem[name=Teorema,numberwithin=chapter]{theorem}
\begin{document}
\begin{theorem}[Bolzano-Weierstrass]
\mymargin{Bolzano-Weierstrass}
\index{teorema!di Bolzano-Weierstrass}
\mymark{***}%
Se $a_n$ è limitata allora esiste una sottosuccessione
$a_{n_k}$ convergente.
\end{theorem}
%
\begin{proof}
\mymark{**}%
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
Questa è la dimostrazione.
\end{proof}
\end{document}