2 столбца документов в Mathematica - PullRequest
12 голосов
/ 21 августа 2011

Mathematica может использоваться для написания очень хороших документов.Кто-нибудь знает, можно ли писать документы с 2 колонками?Если да, можете ли вы привести некоторые примеры или ссылки на другие записные книжки, демонстрирующие этот стиль.

Ответы [ 3 ]

8 голосов
/ 21 августа 2011

Я не думаю, что в Mathematica поддерживается какая-либо хорошая реализация многоколонок - она ​​не совсем совместима со структурой интерфейса ноутбука.Тот факт, что publicon не поддерживает правильные несколько столбцов, вероятно, является хорошим намеком на то, что Mathematica не поддерживает.

В: Поддерживает ли Publicon макет из нескольких столбцов?

Документы Publicon ориентированы на парадигму вертикальной прокрутки, очень похожую на HTML, а не на постраничную конфигурацию, обнаруживаемую в программах верстки.Несколько столбцов могут быть настроены в таблицах, но не поддерживаются как потоки.Publicon делает упор на структуру документа, позволяющую осуществлять чистый перевод в LaTeX или XML для отправки издателям.Затем издатели могут использовать инструменты макета страницы, которые используют свои собственные конкретные форматы для создания макетов из одного или двух столбцов в соответствии со своими спецификациями.

Хотя, конечно, такие хаки, как Двусторонние ячейки (часть пакета Author Tools, упомянутого в ответе Вербии), который можно использовать ниже.

Вот некоторый код, который генерирует текстовую ячейку с двумя столбцами, которая изменит размер столбцов до размера окна - но текстне перетекает из одного столбца в другой.После того, как ячейка сгенерирована, вы можете ввести ее как обычно.

Cell[BoxData[
   GridBox[{{Cell["Column One:\nsome text", "Text"], 
      Cell["Column Two:\nmore text", "Text"]}}, ColumnsEqual -> True, 
    ColumnSpacings -> 2, ColumnAlignments -> Left, 
    ColumnWidths -> Dynamic[First[WindowSize /. Options[EvaluationNotebook[]]]/(2*18)]]], 
  "Text"] // CellPrint

2 col text

Или вы можете иметь текст слева для ввода / вывода справа

Cell[BoxData[GridBox[{
     {Cell["Column One:\nsome text", "Text"], Cell[BoxData[RowBox[{"1", "+", "1"}]], "Input"]},
     {"\[SpanFromAbove]", Cell[BoxData["2"], "Output"]}}, 
    ColumnsEqual -> True, ColumnSpacings -> 2, ColumnAlignments -> Left, 
    ColumnWidths -> Dynamic[First[WindowSize /. Options[EvaluationNotebook[]]]/(2*18)]]], 
  "Text"] // CellPrint

2 col in/out

Обратите внимание, что я сделал только хитрое преобразование из пикселей в em, разделив первое на 18. Истинное преобразование будет зависеть от системы и шрифта.Кроме того, просто добавление CellLabel s к ячейкам ввода и вывода не работает.Таким образом, In[n]:= Out[n]= может потребоваться добавить вручную с помощью небольшого среднего столбца.

Наконец, должна быть возможность создать что-то вроде двустороннего кода ячейки, используемого пакетом инструментов автора, который захватывает текстЯчейка / MathCaption, за которой следуют ячейка ввода и вывода и объединяет их в двухколоночную конструкцию.

8 голосов
/ 21 августа 2011

Графика и вставка могут использоваться для макетов, например: -

text = StringTake[ExampleData[{"Text", "Prufrock"}], {226, 931}];
columntext1 = StringTake[text, 350];
columntext2 = StringTake[text, {348, 706}];
column1 = Graphics[{White, Rectangle[{0, 0}, {150, 210}], Black,
    Inset[TextCell[columntext1,
      LineSpacing -> {0, 16}, TextJustification -> 1],
     {0, 210}, {Left, Top}, {150, Automatic}]},
   PlotRange -> {{0, 150}, {0, 210}},
   BaseStyle -> {FontFamily -> "Times", 
         FontWeight -> "Plain", FontSize -> 13}];
column2 = Graphics[{White, Rectangle[{0, 0}, {150, 210}], Black,
    Inset[TextCell[columntext2,
      LineSpacing -> {0, 16}, TextJustification -> 1],
     {0, 210}, {Left, Top}, {150, Automatic}]},
   PlotRange -> {{0, 150}, {0, 210}},
   BaseStyle -> {FontFamily -> "Times", 
         FontWeight -> "Plain", FontSize -> 13}];
image = ExampleData[{"TestImage", "House2"}];
clippedimage = Graphics[{Blue, Rectangle[{0, 0}, {500, 270}],
    Inset[image, {250, 170}, {Center, Center}, {512, 512}]},
   PlotRange -> {{0, 500}, {0, 270}}, ImageSize -> 500];
Graphics[{White, Rectangle[{0, 0}, {330, 400}],
  Inset[column1, {75, 295}, {Center, Center}, {150, 210}],
  Inset[column2, {255, 295}, {Center, Center}, {150, 210}],
  Inset[clippedimage, {165, 90}, {Center, Center}, {330, 179}]},
 PlotRange -> {{0, 330}, {0, 400}}, ImageSize -> 330]

enter image description here

4 голосов
/ 21 августа 2011

Это, по-видимому, раньше было возможно при использовании пакета AuthorTools для версии 5 (см. эту ссылку в вики для пользователей Mathematica ).

Однако здесь неттакая палитра в версии 8, и ни палитра «Writing Assistant», ни инспектор опций, кажется, не имеют соответствующей опции.

Возможно, можно что-то сделать, используя Grid с текстовым стилем Cells внутриэто, но я сомневаюсь, что это было бы просто.

...