gpt4 book ai didi

latex - LaTeX 中的多列文档的\textwidth?

转载 作者:行者123 更新时间:2023-12-02 02:02:29 27 4
gpt4 key购买 nike

如这个SO Q & A显示,我发现\textwidth 似乎令人困惑。

这是正常情况下文本的宽度,但是这个变量似乎没有关于带有多列的文本宽度的正确信息。

这是一个 LaTeX 代码,用于打印\textwidth 的宽度(我从 here 复制了代码)。

\documentclass[]{article}\usepackage{layouts}\usepackage{multicol}\usepackage[left=20mm,right=20mm,top=33.95mm,bottom=33.95mm]{geometry}\begin{document}textwidth in cm: \printinunitsof{cm}\prntlen{\textwidth}\begin{multicols}{2}textwidth in cm: \printinunitsof{cm}\prntlen{\textwidth}\end{multicols}\end{document}

因此,对于多列情况,不可能使用\textwidth 来显示盒装文本。

\begin{tikzpicture}  \draw node[draw=black,fill=black!20,rounded corners,inner sep=2ex,text width=\textwidth] {    Lorem ipsum dolor sit amet \dots    };\end{tikzpicture}

\colorbox{red}{\parbox{\textwidth}{Black text on red background}}
  • 如何知道多列文档的真实\texwidth?
  • \linewidth 有什么问题?我尝试了以下示例,但结果不正确,如图所示。\listing 环境给了我正确的结果。
\documentclass[]{article}\usepackage{layouts}\usepackage{multicol}\usepackage{tikz}\usepackage{color}\usepackage{listings}\usepackage[left=20mm,right=20mm,top=33.95mm,bottom=33.95mm]{geometry}\begin{document}textwidth in cm: \printinunitsof{cm}\prntlen{\textwidth}textwidth in cm: \printinunitsof{cm}\prntlen{\linewidth}\colorbox{darkgray}{Black text on red background}\noindent\colorbox{darkgray}{\parbox{\linewidth}{Black text on red background}}\begin{multicols}{2}This one is deep. Remember etaoin shrdlu? (Maybe you don't. Never mind, a bulletin on the subject is forthcoming.) Remember the Illuminati and fnord? Lorem ipsum is the same deal--one of those inscrutable phrases that just keeps turning up. Surely it means something. Surely it's invested with, you know, mysto power. Lorem ipsum, my children. So mote it be.textwidth in cm: \printinunitsof{cm}\prntlen{\textwidth}textwidth in cm: \printinunitsof{cm}\prntlen{\linewidth}This one is deep. Remember etaoin shrdlu? (Maybe you don't. Never mind, a bulletin on the subject is forthcoming.) Remember the Illuminati and fnord? Lorem ipsum is the same deal--one of those inscrutable phrases that just keeps turning up. Surely it means something. Surely it's invested with, you know, mysto power. Lorem ipsum, my children. So mote it be.\noindent\colorbox{darkgray}{Black text on red background}\noindent\colorbox{darkgray}{\parbox{\linewidth}{Black text on red background}}\noindent\begin{tikzpicture}  \draw node[draw=black,fill=black!20,rounded corners,inner sep=2ex,text width=\linewidth] {    Lorem ipsum dolor sit amet \dots    };\end{tikzpicture}\definecolor{darkgray}{rgb}{0.95,0.95,0.95}\lstset{backgroundcolor=\color{darkgray}}\lstset{columns=fullflexible, basicstyle=\ttfamily,  basicstyle=\tiny, numbers=left, numberstyle=\tiny, stepnumber=2, numbersep=5pt}\begin{lstlisting}[frame=tb](let ((buffer (url-retrieve-synchronously           "http://tromey.com/elpa/package-install.el")))  (save-excursion    (set-buffer buffer)    (goto-char (point-min))    (re-search-forward "^$" nil 'move)  ;;$    (eval-region (point) (point-masx))    (kill-buffer (current-buffer))))\end{lstlisting}\end{multicols}\end{document}

http://img571.imageshack.us/img571/1867/screenshot20100718at407.png

最佳答案

看一下下面的代码,它会导致框与列文本的右边缘齐平。看来 multicol 环境中的\linewidth 不是文本的宽度。相反,列文本的宽度计算为(我认为)为\linewidth - (\columnsep/#ofCols)。另外,对于 tikz 图片,内部分隔会添加到框的宽度中,因此在设置框宽度时必须减去它。至少在我看来是这样的:

\documentclass[]{article}
\usepackage{layouts}
\usepackage{multicol}
\usepackage{tikz}
\usepackage{color}
\usepackage{listings}

\usepackage[left=20mm,right=20mm,top=33.95mm,bottom=33.95mm]{geometry}

\begin{document}
textwidth in cm: \printinunitsof{cm}\prntlen{\textwidth}
textwidth in cm: \printinunitsof{cm}\prntlen{\linewidth}

\colorbox{darkgray}{Black text on red background}

\noindent\colorbox{darkgray}{\makebox[\linewidth]{Black text on red background}}

\begin{multicols}{2}


This one is deep. Remember etaoin shrdlu? (Maybe you don't. Never mind, a bulletin on the subject is forthcoming.) Remember the Illuminati and fnord? Lorem ipsum is the same deal--one of those inscrutable phrases that just keeps turning up. Surely it means something. Surely it's invested with, you know, mysto power. Lorem ipsum, my children. So mote it be.

textwidth in cm: \printinunitsof{cm}\prntlen{\textwidth}
textwidth in cm: \printinunitsof{cm}\prntlen{\linewidth}
\newlength{\mywidth}
\setlength{\mywidth}{\linewidth}
\addtolength{\mywidth}{-0.5\columnsep}
\newlength{\mytikzwidth}
\setlength{\mytikzwidth}{\linewidth}
\addtolength{\mytikzwidth}{-4ex}
mywidth: \the\mywidth\\ columnsep: \the\columnsep\\
\noindent\colorbox{lightgray}{\makebox[\mywidth][c]{Black text on red background}}

This one is deep. Remember etaoin shrdlu? (Maybe you don't. Never mind, a bulletin on the subject is forthcoming.) Remember the Illuminati and fnord? Lorem ipsum is the same deal--one of those inscrutable phrases that just keeps turning up. Surely it means something. Surely it's invested with, you know, mysto power. Lorem ipsum, my children. So mote it be.


\noindent\colorbox{darkgray}{Black text on red background}
mywidth: \the\mywidth columnsep: \the\columnsep colwidth: \the\columnwidth \\

\noindent\colorbox{lightgray}{\makebox[\mywidth][c]{Black text on red background}}

\noindent\begin{tikzpicture}
\draw node[draw=black,fill=black!20,rounded corners,inner sep=2ex,text width=\mytikzwidth] {
Lorem ipsum dolor sit amet \dots
};
\end{tikzpicture}

\definecolor{darkgray}{rgb}{0.95,0.95,0.95}
\lstset{backgroundcolor=\color{darkgray}}
\lstset{columns=fullflexible, basicstyle=\ttfamily, basicstyle=\tiny, numbers=left, numberstyle=\tiny, stepnumber=2, numbersep=15pt}
\begin{lstlisting}%[frame=tb]
(let ((buffer (url-retrieve-synchronously
"http://tromey.com/elpa/package-install.el")))
(save-excursion
(set-buffer buffer)
(goto-char (point-min))
(re-search-forward "^$" nil 'move) ;;$
(eval-region (point) (point-masx))
(kill-buffer (current-buffer))))
\end{lstlisting}

\end{multicols}

\end{document}

关于latex - LaTeX 中的多列文档的\textwidth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3277197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com